基于MATLAB与ADAMS的机械臂联合仿真研究

  • 格式:pdf
  • 大小:443.35 KB
  • 文档页数:3

【摘 要】为提高机械臂设计效率,充分利用了虚拟仿真,搭建了机械臂的虚拟仿真系统。首先在 Solidworks 中建立了四关节机械臂的实体模型;然后将其导入动力学仿真软件 Adams 中,进行运动学及 动力学仿真;最后通过 Adams 与 Matlab 的接口模块 Adams/control,利用 Matlab/Simulink 模块搭建了机 械臂的联合仿真控制系统,实现基于 Matlab 与 Adams 的机械臂的联合仿真。仿真结果表明机械臂系统具 有较好的动态响应特性及较好的轨迹跟踪能力。
来进行驱动,每个电机都由相应的一套伺服驱动控制系统来进行 包括 4 个控制转矩变量、4 个关节位置变量及 4 个关节角速度变
控制,而各个伺服控制系统的指令统一由一个上位机来进行给 量。Adams 可以利用其专有的函数实时地调用控制系统输出的转
定。这样,整个机械臂控制系统就相当于一个由多个伺服系统构 矩变量值,并将其作为该时刻的转矩指令驱动机械臂的关节运
2.1 机械臂三维模型的建立
方法是将 Solidworks 中的文件保存为 Parasolid 格式,然后导入到
Adams 具有很强的运动学及动力学仿真能力,但很难精确建 Adams 中。在 Adams 中,需要对导入的每个零部件进行编辑,定
立复杂的三维实体模型。为了能够建立准确的机械臂三维模型, 义其材料、质量、转动惯量等相关属性,从而使得虚拟样机与实际
Research on coordinated simulation of robot arm based on MATLAB and ADAMS
MA Ru-qi,HAO Shuang-hui,ZHENG Wei-feng,HAO Ming-hui,SONG Bao-yu (School of Mechatronics Eng,Harbin Institute of Technology,Harbin 150001,China)
械臂的性能,而且还会耗费大量的物料和时间,因此有必要借助
虚拟技术,在制造物理样机之前,先建立一个虚拟的样机系统[1-2]。 通过对虚拟样机系统的测试,可以发现系统的不足,并予以改进, 这样既可以有效地缩短机械臂的开发周期,又可以有效地提高机 械臂的性能。Adams 能够方便的实现多刚体系统的运动学及动力 学仿真,Matlab 具有强大的计算功能,并可以方便的构建控制系 统[3~5]。利用这两个软件建立机械臂的联合仿真系统,既可以对机
证仿真时各个零部件能够有正确的运动。
2.3 运动学及动力学仿真
定义好约束后,通过在机械臂的四个关节处定义旋转驱动
(motion)或者力矩(torque)便可以进行运动学及动力学仿真。在
Adams 运动仿真系统中,可以通过驱动函数和力矩函数来定义所
需要的各种驱动方式。为了验证机械臂系统运动的有效性及可靠
Z YX
腕关节
小臂 肘关节 大臂 肩关节 腰关节
械臂的运动学及动力学进行仿真分析,又可以搭建机械臂的控制 系统,通过交互式联合仿真,可以有效地提高机械臂的性能,为实 际物理样机的研制提供技术依据。
2 虚拟样机机械系统
图 1 机械臂三维模型
2.2 机械臂运动仿真系统的建立
机械臂的运动学及动力学仿真需要在 Adams 中进行,因此 需要将 Solidworks 中建立的简化三维模型导入到 Adams 中。其
子系统。
3 虚拟样机控制系统
3.1 控制系统结构
机械臂是一个多输入多输出、强耦合的复杂机电系统,要对
其实现精确的控制比较困难。为此,先不考虑机械臂的动态控制,
只对其进行运动控制,使其能够准确的跟踪给定的轨迹曲线。其
基本的控制结构,如图 4 所示。
预定轨迹
控制器
实际轨迹 机械臂
了减少外部干扰对系统的影响,在保证控制系统稳定的前提下,尽 量采用较大的增益值。
选择了 Solidworks 三维设计软件。设计的机械臂具有四个关节, 物理样机具有相同或者是相近的物理特性,以便更好的模拟实际
能实现四个自由度的回转运动。考虑到刚性要求,底部腰关节采 系统。要对机械臂进行运动学及动力学仿真,还需要为导入
*来稿日期:2009-06-22 *基金项目:863 计划专题课题(2006AA04Z231)
4 联合仿真系统
4.1 联合仿真机械子系统的建立
为了进行 Adams 与 Matlab 的联合仿真,需要将 Adams 中已经 建立好的机械臂机械系统导入到 Matlab 中,作为 Matlab/Simulink 中的一个子系统,以便在 Matlab 中利用 Simulink 仿真模块搭建联 合仿真系统,从而实现机械系统与控制系统的联合仿真。
关键词:机械臂;联合仿真;虚拟样机;运动仿真;ADAMS;MATLAB 【Abstract】To improve the design efficiency of robot arm,a virtual simulation system was built by making full use of the virtual simulation technology. First,a three-dimensional model of the robot arm with four-freedom was built in Solidworks software;and then,the model was imported into the dynamic simula- tion software Adams for kinematic and dynamic simulation;At last,through the interface modular part (Adams/control)of Matlab and Adams,robot arm control system was established by using simulink module of Matlab software and coordinated simulation of four-freedom was successfully implemented. The simula- tion results indicate that the coordinated simulation system of the robot arm has preferable dynamic re - sponse characteristics and nicer locus-tracking ability. Key words:Robot arm;Coordinated simulation;Virtual prototype;Motion simulation;ADAMS; MATLAB
50.0 40.0 30.0 20.0 10.0
0.0 -10.0 -20.0 -30.0 -40.0 -50.0
0.0
model_1
.dabi.CM_Angular_Velocity.Z .dabi.CM_Angular_Velocity.X .dabi.CM_Angular_Velocity.Y
第4期
机械设计与制造
2010 年 4 月
Machinery Design & Manufacture
93
文章编号:1001-3997(2010)04-0093-03
基于 MATLAB 与 ADAMS 的机械臂联合仿真研究 *
马如奇 郝双晖 郑伟峰 郝明晖 宋宝玉 (哈尔滨工业大学 机电工程学院,哈尔滨 150001)
臂系统化简为单输入单输出的伺服控制系统。对于交流伺服系
统,不考虑电感时的拖动系统是一个稳定的二阶系统。为了加快
系统的响应,可以考虑加入比例环节,同时为了增大系统的阻尼,
抑制系统超调,需要引入微分环节,从而构成了 PD 位置控制,其
结构,如图 6 所示。
θref Kpi
Ti 驱动器
θ觶
Kvi
传感器
θ
图 6 机械臂关节位置控制结构
5.0
10.0
15.0
Time(s)
图 3 机械臂运动学及动力学仿真
经过仿真分析可以得出,机械臂模型能够按给定的驱动函数
图 5 机械臂控制结构
3.2 关节位置伺服控制
设计的是串联机械臂,因此可通过控制各个关节的位置角度
使末端执行机构达到预期要求的目标位置。这就要求对各个关节
的位置角度进行精确控制。
当不考虑机械臂的动态特性时,可以将多输入多输出的机械
伺服电机 1
编码器 1
伺服控制器 2
伺服电机 2
编码器 2



伺服控制器 3
伺服电机 3
编码器 3
Z YX
伺服控制器 4
伺服电机 4
编码器 4
图 2 定义约束后的机械臂模型
在有相对回转运动的四个回转关节处需要定义旋转约束,其
他没有相对运动的零件均定义为固定约束。在定义好各个约束
后,机械臂的各个零件之间便具有确定的约束关系,这样可以保
94
马如奇等:基于 MATLAB 与 ADAMS 的机械臂联合仿真研究
第4期
Adams 中模型定义约束及驱动,如图 2 所示。
服控制器接收到上位机的指令后,控制交流永磁同步电机驱动相 应的机械臂关节;同时,通过磁电编码器进行位置反馈,以实现全 闭环位置控制。系统总体控制结构,如图 5 所示。
伺服控制器 1
成的同步控制系统。各个控制单元之间是并行连接,上位机通过 动;机械臂的各个关节变量又可以被实时地反馈到控制系统中,
高速同步串口把速度或者位置指令传送给各个伺服驱动系统。伺 从而构成了完整的闭环控制系统,实现关节位置的精确控制。
No.4
Apr.2010
机械设计与制造
95
在 Adams/control 模块中,将转矩变量定义为输入变量,用于 存放 Matlab 中控制系统输出的转矩指令;将位置变量与角速度 变量定义为输出变量,用于控制系统中的位置及速度反馈输入。 变量定义完成后,Adams/control 模块将会生成三个文件,这些文 件将用于 Adams 与 Matlab 之间进行数据传递。在 Matlab 中调用 Adams/control 模块,显示已经定义的联合仿真系统所需要的 12个 变量,并对这些变量进行确认。然后在 Matlab 中输入命令:adams_ sys,Matlab 将会产生机械臂机械子系统模块,如图 7 所示。