MATLAB/Simscape在机械手仿真教学的应用

时间:2022-07-28 10:59:33

MATLAB/Simscape在机械手仿真教学的应用

摘要:针对机械手教学过程中的动力学问题,以一个三杆机械手为例,利用Simscape模块库进行仿真教学建模,并详细介绍其基本组成模块,根据机械手的结构简图可直接建立物理仿真模型,通过仿真结果可直接观察到各杆臂的运动轨迹及各关节的运动参数。

关键词:MATLAB;Simscape;机械手;仿真试验

机械手是自动化生产过程中逐渐出现的一种新型工业设备,随着《中国制造2025》的提出,工业机械手成为智能制造必不可少的设备,而社会上操作维护机械手的技术人员相对紧缺,故各高校纷纷开设机器人相关课程[1]。机械手的运动轨迹规划和控制策略研究是机器人课程教学中的重要环节,通常利用公式推导、求解微分方程以及画图等方法对其进行求解,过程较为烦琐且容易出错,不利于学生理解,所以可将计算机仿真技术应用在机械手教学上[2]。随着科学技术和教育现代化的快速发展,计算机仿真模拟教学以其效率高、互动性强等特点越来越受到国内高校的重视[3]。本文以三杆机械手为例,介绍使用MATLAB/Simulink中Simscape下的Multibody子模块库建立其仿真教学模型的过程。Simulink是MATLAB最重要的仿真工具之一,提供了可视化的人机交互环境,仿真模型由方框图表示,与传统的仿真软件用微分方程和差分方程相比,具有更直观、方便、灵活的特点,能够更好地帮助学生理解问题,提高课堂效率[4-5]。

1机械手结构

机械手结构一般由多个杆件通过铰链连接起来。如图1所示一个三杆机械手,设A点为坐标原点,AB、BC和CD杆长度为l1=l2=l3,初始位置如图中所示,BC杆与Y轴的夹角a=45°。假设AB、BC和CD杆的质量均匀分布,可求得B点的坐标为(0,l1,0),AB杆的重心坐标为(0,l1/2,0)。同理,C端坐标为(l1sina,l1+l2cosa,0),BC杆重心坐标为(l2sina/2,l1+l2cosa/2,0),D端坐标为(l2sina+l3,l1+l2cosa,0),CD杆重心坐标为(l2sina+l3/2,l1+l2cosa,0)。

2物理仿真模型的建立

现利用Simscape工具箱下的多体结构模块Multibody建立教学仿真模型。如图2所示,Ground模块、BodyAB模块、BodyBC模块和BodyCD模块分别代表地、连杆AB、连杆BC和连杆CD,它们之间分别通过铰链模块RevoluteA,RevoluteB和RevoluteC连接,各个关节通过FromWorkspace模块和JointActuator模块提供驱动力。另外,为了得到各个关节的运动参数,在每个铰链模块处都设置了关节传感器模块JointSensor,由此可测得每个关节处的速度、加速度等参数,并通过示波器模块Scope显示出来。仿真模型模块介绍如下。

2.1基本组成模块

Ground模块表示绝对坐标系中的静止地面点,将其连接到关节会阻止该关节的一侧移动,每个有效的模型必须至少有一个Ground模块,且必须将其中一个连接到MachineEnvironment模块。Body模块表示具有可以自定义属性的刚体,必须定义的属性包括刚体的端点坐标和重心坐标等,还可改变显示刚体的几何颜色信息。如图3所示,在属性框内分别输入各杆的端点及其重心的坐标,由于各点坐标都是绝对坐标,故均选择“world”选项即可。Revolute模块可使两个物体围绕之间的轴进行旋转,有单个旋转自由度,旋转方向符合右手法则。旋转关节是Multibody的原始关节之一,必须将关节模块连接到两个且仅两个Body块,即基座和从动块。在参数设置界面将Numberofsensor/actuatorports设置为2,则会多出两个接口用来连接JointActuator和JointSensor模块。

2.2驱动和传感器模块

JointActuator模块可以把与时间相关的力、扭矩或运动输入关节,两个物体之间的连接表示物体之间的相对自由度。若运动是平移的,则该模块需要输入位置、速度和加速度信号;若运动是旋转的,则该模块需要输入角度、角速度和角加速度信号。JointSensor模块可用来测量关节处指定参考坐标系中沿某一旋转轴(或关于球形单元的枢轴点)的运动,包括关节块中关节单元的位置、速度或加速度,还可测量接头上的反作用力和扭矩等。在每个Revolute模块处都连接一个JointSensor模块,用于监测机械手运动过程中各个关节的运动参数。BodySensor模块用来监测刚体块的运动,将BodySensor连接到想要监测的Body模块上,可以测量该Body模块相对于原点的运动位移、运动方向、速度和加速度大小等运动参数。本文将BodySensor模块连接到D端,用于监测机械手执行端的运动轨迹。

2.3输入和输出模块

图5关节A角度变化曲线图5关节A角度变化曲线图6关节A角速度变化曲线图6关节A角速度变化曲线图7D端位移变化曲线图7D端位移变化曲线FromWorkspace模块可以从MATLAB的工作空间内读取信号数据并将其输入模型中,采用关节空间三次多项式轨迹规划法,公式如下:θ(t)=c0+c1t+c2t2+c3t3根据已知的各关节起始点和终止点的位置和角度,求出三次多项式轨迹函数的四个系数[6]。Scope模块可将模拟过程中所监测的连续或离散信号显示出来,支持Simulink所有数据类型,维度包括标量、一维(矢量)、二维(矩阵)和多维,可根据信号数量自动调节多通道显示。需要注意的是,当连接到一个恒定信号时,Scope模块可能显示一个单点。在每个JointSensor模块后都连接一个Scope模块,用于显示机械手姿态变化时各关节的运动参数。

3仿真试验结果

为得到仿真效果,需设置Env属性中的Visua-lization(可视化)选项,在Openconfigurationparameter中选择Animatemachineduringsimu-lation选项,得到仿真效果如图4所示。运行后双击Scope模块可查看机械手每个关节处所测得的速度、加速度、角加速度等运动参数,如图5和图6分别表示关节A处旋转角度和角速度随时间变化的曲线,可设置JointSensor模块选择测量其他运动参数并得到相应的曲线。图7为BodySensor模块测得的机械手执行端D的运动位移变化曲线。

4结论

针对MATLAB/Simscape工具箱,介绍了Multi-body模块库的基本组成模块,并介绍了利用模块库建立机械手物理仿真模型进行动力学分析的仿真教学。与传统的图解法相比,此方法简单有效,不需要进行复杂公式求解,就可以很直观地观察到机构的运动状况,并得出相关的运动参数,还可以通过改变不同的仿真参数,得到不同类型的运动效果,形象地向学生展示出机械手的运动轨迹和各关节运动参数,大大提高了教学质量。

参考文献

[1]杨波.基于MELFA_Works的三菱机械手在仿真教学的应用[J].自动化应用,2018(11):69-70.

[2]王胤,杨庆.仿真教学系统在专业课程教学中的应用与探索[J].教育现代化,2019(61):165-169.

[3]赵海滨,刘冲,陆志国,等.MATLAB_Simulink软件在机器人实验教学中的应用[J].中国教育技术装备,2018(12):125-126,131.

[4]高胜灵,胡松启.基于Matlab/Simulink的导弹六自度弹道仿真系统设计[J].科学技术与工程,2011(1):29-34.

[5]闫小军,陈夏玲.例谈Simulink在物理教学中的应用[J].中国教育技术装备,2019(3):48-51.

[6]李建刚,尹文庆,胡飞,等.基于MATLAB/Simulink的取苗机械臂运动轨迹仿真[J].中国制造业信息化,2009(15):27-29,34.

作者:秦志英 赵季福 赵月静 路子安 王伟