运动控制平台建模-钟有博-2013.12.11(1).docx_第1页
运动控制平台建模-钟有博-2013.12.11(1).docx_第2页
运动控制平台建模-钟有博-2013.12.11(1).docx_第3页
运动控制平台建模-钟有博-2013.12.11(1).docx_第4页
运动控制平台建模-钟有博-2013.12.11(1).docx_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

六自由度运动平台第一章 六自由度运动平台介绍1.1简介在有人驾驶的模拟器之中用来给驾驶员提供运动感觉的模拟系统。它是模拟器中重要的模拟系统之一。通过这种系统,驾驶员可以大致感觉到所操纵的运动装备(如飞机、飞船、坦克、舰船、汽车等)的加速度大小和方向,在某种特定情况下也可感觉其姿态。六自由度运动模拟器是由六支油缸,上、下各六只万向铰链和上、下两个平台组成,下平台固定在基础上,借助六只油缸的伸缩运动,完成上平台在空间六个自由度(X,Y,Z,)的运动。由于六自由度运动模拟器的研制,涉及机械、液压、电气、控制、计算机、传感器,空间运动数学模型、实时信号传输处理、图形显示、动态仿真等等一系列高科技领域,因而六自由度运动模拟器的研制变成了高等院校、研究院所在液压和控制领域水平的标志性象征。六自由度运动平台是液压及控制技术领域的皇冠级产品,掌握了它,在液压和控制领域基本上就没有了难题。1.2用途模拟出各种空间运动姿态,可广泛应用到各种训练模拟器如飞行模拟器、舰艇模拟器、海军直升机起降模拟平台、坦克模拟器、汽车驾驶模拟器、火车驾驶模拟器、地震模拟器以及动感电影、娱乐设备等领域,甚至可用到空间宇宙飞船的对接,空中加油机的加油对接的模拟中。在加工业可制成六轴联动机床、灵巧机器人等。第二章 六自由度运动平台建模2.1 三维坐标转换2.1.1方向余弦2.1.2 方向余弦矩阵数学上两空间坐标系之间的角度关系可用以矩阵来表示,及方向余弦矩阵。2.1.3 欧拉角定义2.1.4 根据欧拉角求方向余弦矩阵2.2位置分析位置分析是求解输入与输出构件之间的位置关系,它包括位置正解和位置反解。当已知机构主动件的位置,求解机构输出件的位置称位置分析的正解,当已知输出件的位置,求解机构输入件的位置,称为位置分析的反解。本章采用矩阵分析方法,选用两个直角坐标系,推导出二者之间的齐次变换矩阵和液压缸上下铰的坐标向量矩阵,在此基础上建立了运动平台输入与输出构件间的位置关系。目前动力学问题研究的焦点是算法的计算速度问题,因为只有在足够高的计算速度下,才能为控制器实时地给定广义力的需要值,从而控制器根据这一要求去进行驱动器的输出力控制。在所有的算法中,牛顿-欧拉法所建立的动力学方程的求解具有很好的快速性,适合于用在实时控制方面。所以我们使用牛顿-欧拉法来建立系统的动力学方程。本文的牛顿方程是建立在静坐标系上的,而欧拉方程是建立在动坐标系上。这样有利于直接引用运动学分析所得的角速度、角加速度及惯量矩阵等,避免了对其进行坐标转换,简化了运算过程,使得运算时间更短,这就更适合于实时控制了。2.2.1 六自由度运动模拟器机构位置反解六自由度运动模拟器机构的位置反解,是在已知运动平台的位置和姿态的情况下,求解六个液压缸的位置。2.2.2 广义坐标定义体坐标相对于静坐标的位置可以用广义坐标来描述, q 的分量为 qi。其中q1、q2、q3为体坐标与静坐标的三个姿态角,q4、q5、q6为体坐标原点 O 在静坐标系O X 、 O Y 、 O Z 三轴上的坐标。姿态角的定义如图 2-1所示图 2-1空间姿态角示意图偏航角q3体轴OX在平面 X O Y 上的投影OX1与 O X 间的夹角;纵摇角 q2OX 轴与平面X O Y 的夹角;横摇角 q1体坐标中 XOZ 平面与通过 OX 轴的铅垂面间的夹角XO Z2.2.3坐标变换矩阵在体坐标与静坐标之间,存在一个齐次变换矩阵。由静坐标系到体坐标系坐标变换的次序为:第一次沿 O X 向平移 q4,变换矩阵为:(2-1)第二次沿 OY向平移 q5,变换矩阵为: (2-2)第三次沿 OZ向平移q6,变换矩阵为: (2-3)三次平移后,坐标系 O X YZ平移到 OX Y Z,接着进行三次旋转变换。第一次绕 OZ轴旋转偏航角 q3,变换矩阵为: (2-4)上式中,简写为,简写为 cq (i=1,2,6),以后分析中均如此简化。sin( qi)简写为sqi,cos( qi)简写为cqi(i=1,2,6),以后分析中均如此简化。第二次绕 OY1轴旋转纵摇角q2,变换矩阵为: (2-5)第三次绕 OX 轴旋转横摇角 q1,变换矩阵为: (2-6)综合以上各个变换,即可以得到由静坐标系到体坐标系的坐标变换矩阵T 为:(2-7)2.2.4液压缸铰支点坐标的确定六自由度运动模拟器结构参数示意图如图 2-2所示图 2-2六自由度运动模拟器结构参数示意图图中A1A6液压缸上铰点;B1B6 液压缸下铰点;A1B1A6B6 表示第一第六号液压缸;K0 台体上台面的中心点;Om 负载质心;OM 台体质心;G0 系统(包括负载和台体)质心;L1液压缸上铰点A1A2、A3A4、A5A6之间的距离;L1 液压缸下铰点B2B3、B4B5、B6B1之间的距离;L3液压缸上铰点A2A3、A4A5、A6A1之间的距离;L3 液压缸下铰点B1B2、B3B4、B5B6之间的距离;L2 液压缸上下铰点间的初始长度;M 台体质量;m 负载质量;ha 台体上铰点中心到台体质心的距离;h0 系统质心到台体质心的距离;hm0 负载质心到台体质心的距离;hm 负载高度;hM 台体高度;需要说明的是,图 2-3 并不是严格的机械图,下面图并不是上面图的俯视图,之所以这么画,是为了清楚表达液压缸的铰支点与台面和底座的连接关系。用矩阵A来表示液压缸缸筒上端铰支点Ai(i=1,2,6)在动坐标系中的坐标向量。矩阵A第一列的第一行至第三行元素分别表示A1点在动坐标系中的X轴、Y轴和Z轴的坐标,其余列的意义与第一列的意义类似。经过运算可得 (2-8)式中h1=ha+ h0.将矩阵 A 写成齐次坐标的形式为 (2-9)初始位置时,矩阵 A 在两个坐标系的值完全一致,当平台运动时,A 在体坐标系的值不变,但在静坐标系中已发生变化。液压缸活塞杆上铰点在静坐标系的坐标向量用矩阵 G 来表示,矩阵 G 计算公式为 (2-10)用矩阵B来表示液压缸缸筒下铰支点Bi(i=1,2,6)在静坐标系中的坐标向量。矩阵B第一列的第一行至第三行元素分别表示B1点在静坐标系中的X轴、Y轴和Z轴的坐标,其余列的意义与第一列意义类似。经过运算可得(2-11)式中 h2=h+h0-hM/2;h台体的上台面到液压缸下铰点所在平面的距离;将矩阵 B 写成齐次坐标的形式为 (2-12)2.2.5 位置反解液压缸活塞杆的伸缩量(即位移)可由液压缸的上下铰支点之间的距离减去铰支点初始长 l来确定。铰支点间距离的计算公式为 (i=1,2,6) (2-13)式中,gij为 A 矩阵变换到静坐标系后所得各点对应的坐标,其计算公式如(2-10)所示。液压缸活塞杆的伸缩量为 (i=1,2,6) (2-14)2.3六自由度运动模拟器机构位置正解六自由度运动模拟器机构的位置正解,是在已知六个液压缸的位置的情况下,求解运动平台的位置和姿态。k=13(gki-bki)2=di+l22 (i=1,2,3,4,5,6) (2-15)令fiQ=fiq1,q2,q3,q4,q5,q6=k=13gki-bki2-di+l22=0 (i=1,2,3,4,5,6) (2-16)从而得到一个非线性方程组,解此非线性方程组,即可求出q(i =1,2,.6)。正解方法和步骤:首先令Q0=q10,q20,q30,q40,q50,q60=(0,0,0,0,0,qmid),其中qmid为运动平台在中位时沿OZ轴的升沉值。将fiQ (i=1,2,3,4,5,6)在Q0附近进行泰勒展开,并取其线性部分得:fiQ0+i=16qi-qi0fiQ0qi=0(2-17)令Q=Q-Q0其中qi=(qi-qi0)则得i=16qifiQ0qi=-fiQ0(2-18)其为以Q为未知数的线性方程组,系数矩阵为J:J=f1q1f1q2f1q3f1q4f1q5f1q6f2q1f2q2f2q3f2q4f2q5f2q6f3q1f3q2f3q3f3q4f3q5f3q6f4q1f4q2f4q3f4q4f4q5f4q6f5q1f5q2f5q3f5q4f5q5f5q6f6q1f6q2f6q3f6q4f6q5f6q6J=f1q1f1q2f2q1f2q2f1q6f2q6f6q1f6q2f6q6(2-19)如果|J|0则可以解出Q令Q=Q0+Q(2-20)若|Q|(为求解精度),则可以把Q看作为所求得的正解。否则重复(2-17)(2-20)的步骤,直到满足求解精度为止。以上求解非线性方程组的数值方法,可以被称为牛顿泰勒展开法。因为运动平台一般在中位附近动作,在算法中把正解的初始值设为运动平台处于中位时的姿态,保证了算法的收敛,并使得收敛速度更快。对于(2-16)式求qm((m=1,2,3,4,5,6))的偏导数可得:fiqm=2k=13gki-bkigkiqm=2g1i-b1ig2i-b2ig2i-b2ig1iqmg2iqmg3iqm(i=1,2,3,4,5,6)由式G=gij4x6=TA得:Q qm=gijqm4x6=TA qm=T qmA由此,就可以求出系数矩阵J,其中T q10sinq1sinq3+cosq1sinq2sinq30-sinq1cosq3+cosq1sinq2sinq3cosq1sinq3-sinq1sinq2cosq30-cosq1cosq3-sinq1sinq2sinq300 cosq1cosq2 00 -sinq1cosq2 000T q2、T q3、T q4、T q5、T q62.4切线法(牛顿法)求解次非线性方程组切线法就是从函数曲线上的一点出发,不断用曲线的切线代替曲线,求得收敛于根的数列。2.4.1切线法原理:解非线性方程f( x ) = 0 的切线法也称牛顿法,它是把方程线性化的一种近似方法,用函数 f (x)的切线代替曲线产生一个收敛于方程根的迭代序列,从而得到方程的近似根。把函数 f ( x)在某一初始值 x 。点附近展开成泰勒级数:取其线性部分,近似地代替函数f (x)可得方程的近似式:设,解该近似方程可得:把函数 f ( x )在xl点附近展开成泰勒级数,取其线性部分替代函数f (x),设,得:如此继续做下去,就可以得到牛顿迭代公式:,k = 0 , l , 2 , ( a) 由式(a)得出的迭代序列 xl , x2,xk,在一定的条件下收敛于方程的根x*。2.4.2切线法几何意义图 4 -3 方程求根切线法原理示意图选取初值x0后,过点作曲线的切线,其方程为。设切线与X釉的交点为x1,则,再过作切线,与x轴的交点为,如此不断作切线,求与x轴的交点,便可得出的一系列的交点x1,x2,xk,它们逐渐逼近方程的根x*。2.4.3切线法的收敛性理论可以证明,在有根区间a, b上,如果、连续且不变号,则只要选取的初始近似根x0满足 f ( x 。),切线法必定收敛。它的收敛速度经推导可得出:( b)是个常数,式(b)表明用牛顿迭代公式在某次算得的误差,与上次误差的平方成正比,可见牛顿迭代公式的收敛速度很快。第三章 基于matlab/simulink建立算法模型3.1 matlab用法3.2matlab实现切线法求正解1.首先建立函数fwdfun储存方程组编程如下将fwdfun.m保存到工作路径中:function f=fwdfun(Q);%定义非线性方程组如下%变量Q=q1q2q3q4q5q6%函数f=f(1) f(2) f(3) f(4) f(5) f(6)symsq1q2q3q4q5q6; f(1)=(G(1,1)-B(1,1)2+(G(2,1)-B(2,1)2+(G(3,1)-B(3,1)2)-(d1+l0)2;f(2)=(G(1,2)-B(1,2)2+(G(2,2)-B(2,2)2+(G(3,2)-B(3,2)2)-(d2+l0)2;f(3)=(G(1,3)-B(1,3)2+(G(2,3)-B(2,3)2+(G(3,3)-B(3,3)2)-(d3+l0)2;f(4)=(G(1,4)-B(1,4)2+(G(2,4)-B(2,4)2+(G(3,4)-B(3,4)2)-(d4+l0)2;f(5)=(G(1,5)-B(1,5)2+(G(2,5)-B(2,5)2+(G(3,5)-B(3,5)2)-(d5+l0)2;f(6)=(G(1,6)-B(1,6)2+(G(2,6)-B(2,6)2+(G(3,6)-B(3,6)2)-(d6+l0)2;f=f(1) f(2) f(3) f(4) f(5) f(6);-2.建立函数dfwdfun用来求方程组的雅克比矩阵将dfwdfun.m保存到工作路径中:df= dfwdfun( Q)%用来求解方程组的雅克比矩阵储存在dfun中f=fwdfun(Q); df=diff(f,q1);diff(f,q2);diff(f,q3);diff(f,q4);diff(f,q5);diff(f,q6);df=conj(df);end-3.编程牛顿法求解非线性方程组将fwdnewton.m保存到工作路径中:function Q= fwdnewton(Q0,tol,N)%其中Q0为迭代初值tol为精度要求N为最大迭代步数f=subs(fwdfun(Q0),q1q2q3q4q5q6,Q0(1) Q0(2) Q0(3) Q0(4) Q0(5) Q0(6);df=subs(dfwdfun(Q0),q1q2q3q4q5q6,Q0(1) Q0(2) Q0(3) Q0(4) Q0(5) Q0(6);Q1=Q0-f/df;n=1;while(abs(Q1-Q0)=tol)&(nsimulink(2)点击图标(icon):2、新建文件(1)ctrl+N(2)图标:new file icon3、新建模型步骤(1)生成集成块(2)连线(3)仿真运行3.3.2 对集成块和连线的操作3.3.3 simulink集成块库3.3.4查看和分析仿真结果1、运用scope block2、运用return variables3、运用workspace block3.4基于 simulink的反解建模仿真Simulink是Matlab软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与Matlab语言的主要区别在于,其与用户的交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型构建,而非语言编程上。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需要单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而用户可以立即看到系统的仿真效果,以下是利用Simulink建立运动平台反解模型的建模过程。转换矩阵T模型,用MATLAB Function模块实现矩阵运算并将结果输出,在MATLAB Function模块中输入T矩阵,输入端是给定的参考姿态Q=(q1, q2, q3, q4, q5, q6),如图所示图2.3矩阵T模型矩阵B模块,使用MATLAB Function模块,在模块中输入B矩阵公式。输入端是上平台的铰支点所在圆的半径Rb,和铰支点的分布角b。如图所示图2.4矩阵B模型矩阵A模块,使用MATLAB Function模块,在模块中输入A矩阵公式。输入端是上平台的铰支点所在圆的半径Rt,和铰支点的分布角a。如图所示图2.5 矩阵A模型根据计反解算公式(2-13)、(2-14)、(2-15)建立反解模型,l0为上、下平台各铰支点间的初始长度,输出为各个液压气缸的伸缩量(即移位量)li,如图所示:图2.6 反解过程模型其中Mod子系统模块用来求上、下平台各铰支点间的距离,输出为各液压气缸伸缩后的长度,即各个杆的长度,其模型如图所示图2.7 Mod子系统模型参考运动姿态模块,主要由Top Plat Reference子系统和Mux模块组成,如图所示图2.8 参考姿态模型其中Top Plat Reference子系统模型,可以根据平台所要求的运动来规定,在动坐标的初始位置时,动坐标系原点在静坐标系下为q4q5q6=000+H,所以在q6中加上数值为H的常数模块,如图所示图2.9 Top Plat Reference子系统模型反解过程的总体模型如图2.10所示,图2.10(b)是将反解算法过程封装成子系统后的总体模型。图2.10(a) 反解总体模型图2.10(b) 封装后的反解总体模型mech_stewart_controledit inertiaCylinderfunction mass, inertia = inertiaCylinder(dens, length, rout, rin)% Calculates the mass and inertia of a cylinder(计算气缸的质量和惯性)第四章 基于SimMechanics First Generation 的Stewart platform建模及机构系统仿真4.1 SimMechanics简介SimMechanics是Matlab仿真中的一个工具箱,同时结合Simulink、Matlab的功能。利用SimMechanics模块框图对机构运动进行建模和动态仿真。通过一系列关联模块来表示机构系统,在仿真时通过SimMechanics可视化工具将机构系统简化为机构结构的直观显示。它可以与Simulink配合使用。用户可以通过传感器模块和执行器模块将SimMechanics模块和Simulink模块连接起来。SimMechanics软件拥有一系列的模块库,机械模型和仿真工具。这些模块库里的模块是用来建立机械系统的基础。这些机械系统由一些刚体组成,而这些刚体由代表了平移自由度和旋转自由度的运动铰连接起来。和用标准的Simulink工具箱建模一样,用户可以用一些分层子系统表达出你的机械系统。用户可以施加运动约束,应用力或者转矩,集成牛顿动力学,以及测量最终的运动。可在输送机装备的演示模型里看到一些特征的工作情况。4.2SimMechanics模块SimMechanics模块组提供了建模的必要模块,可以直接在Simulink中使用。SimMechanics支持用户自定义的构件模块,可以设定质量和转动惯量。通过节点联接各个构件来表示可能的相对运动,还可以在适当的地方添加运动约束、驱动力。模块组包含刚体子模块组(Bodies)、约束与驱动模块组(Constraints&Drivers)、力单元模块组(Force Elements)、接口单元模块组(Interface Elements)、运动铰模块组(Joints)及传感器和激励器模块组(Sensors&Actuators)和辅助工具模块组(Utilities)。4.2.1刚体子模块组(Bodies)双击此模块,弹出模块组,此模块组包括四个模块:刚体(Body)、机架(Ground)机械环境(Machine Enviroment)和共享机械环境(Shared Enviroment)。机械环境(machine environment):是为仿真定义环境变量。包含有重力、维数、分析模式、约束求解器、误差、线性化和可视化。共享环境(shared environment):联接两个刚体模块使他们享有相同的机械环境。机架(ground):只有一个连接端,另外一个固定。表示将系统固定在一个惯性系中。刚体(body):有两个连接端,其中一个为主动端,另一端为从动端。使用刚体时可以定义质量、惯性矩、坐标原点、刚体的初始位置和角度。对Body模块参数设置及操作的详细说明质量属性:包括质量和惯性张量。质量是正的实际标量。惯性张量是3*3的对称矩阵,并不一定是对角矩阵。通过刚体重心的位置以及相对于坐标轴的方位可以知道刚体是怎样旋转的,模型中刚体的初始条件如果不加修改会一直保持到仿真开始。随动坐标固定在刚体上并随着刚体一起运动,刚体最少有一个坐标,并且坐标的原点在重心。默认有三个坐标系,刚体重心坐标系(CG)和两个附加坐标系CS1和CS2,分别固定在重心和刚体的两端。并可通过操作增加和删除坐标系。例如为每一个铰、约束、驱动以及激励器和传感器配置一个坐标系。4.2.2约束与驱动模块组(Constraints&Drivers)双击该模块组,弹出如图所示。用户可以在系统中给刚体所允许的相对运动施加运动约束,这些约束限制了自由度或者使自由度成为为了时间的函数。Angle Driver:设定两个刚体坐标间的角度。Distance Driver:设定两个坐标原点的距离。Gear Constraint:齿轮约束。Linear Driver:确定两个刚体坐标间的向量差。Parallel Constrant:平行约束。Point-Constraint:曲线约束。Velocity Driver:确定两个刚体坐标间的相对线速度和角速度。4.2.3力单元模块组(Force Elements)Body Spring&Damper:在两个刚体之间施加线性阻尼振子。Joint Spring&Damper:在两个刚体间的单自由度铰或单自由度转动铰建立一个线性阻尼振荡力或力矩。4.2.4接口模块组(Interface Elements)双击模块弹出图示模块组。分别提供移动副接口和转动副接口。4.2.5运动铰模块组(Joints)双击模块,弹出图示模块组。用户可以用运动铰将一个刚体和另一个缸体连接起来,运动铰代表了两个刚体之间可能的运动和系统的自由度。此模块组中提供了各种运动铰,利用这些运动铰就可以将刚体构件连接起来。分别有Bearing(三个方向转动)、Bushing(三个方向移动,三个方向转动)、Custom Joint(自定义铰)、Cylindrical(柱面铰)、Gimbal(万向铰,旋转三个角度)、In-plane(平面内移动)、Planar(平面铰)、Prismatic(单自由运动铰)、Revolute(单自由转动铰)、Screw(螺旋铰)、Six-DoF(六自由度)、Spherical(球面铰,三个自由度)、Telescoping(一个方向移动一个方向转动)、Universal(万向铰,旋转两个角度)、Weld(刚节点)。打开其中包含的两个子模块组Disassembled Joints和Massless Connectors。a.双击Disassembled Joints,弹出如图模块组,其中模块是分解后的铰,不同于Joints中对应的铰,它们有不同的基准点。b.双击Massless Connectors,弹出如图模块组,其中模块是Joint中对应的铰的组合。4.2.6传感器与激励器模块组(Sensors&Actuators)双击模块,弹出图示模块组。该模块组中的模块用来和普通的Simulink模块进行数据交换。传感器模块用来探测刚体和运动铰的运动。传感器模块输出的是Simulink信号,可以像应用其他Simulink信号一样应用它,用户可以把一个传感器模块和一个Simulink示波器模块(Scope)相连,这样就可以在一个系统中显示出它的动态。并可通过激励器模块把这些信号反馈回一个SinMechanics系统,并通过这些信号指定这个系统的力矩和转矩。激励器模块是用来确定刚体和运动铰的运动。它们从Simulink接收力或转矩信号并且可以通过这些信号向刚体或运动铰施加力或转矩,这些Simulink信号包括系统自身从传感器模块输出反馈。Body Actuator:通过广义力或力矩来驱动刚体。Body Sensor:刚体检测模块。Constraint&Drivr Sensor:检测一对受约束刚体间的力或力矩。Driver Actuator:对一对互相约束的刚体施加相对运动。Joint Actuator:在铰链处施加力或力矩。Joint Initial Condition:在仿真之前给铰施加初始位移和速度。Joint Sensor:铰检测模块。Joint Stiction Actuator:给铰施加初始位移和速度。Variable Mass&Inertia Actuator:在一个坐标系中,刚体的质量随时间变化。4.2.7辅助工具模块组(Utilities)双击模块弹出图示模块组.Connection Port:子系统物理建模连接端口。Continuous Angle:将传感器输出的非连续、有界角度转换成无界连续的角输出。Convert from Rotation Matrix to Virtual Reality Toolbox:将3*3的旋转矩阵转换成等价的VRML(虚拟现实语言)的旋转轴和角的形式。Mechanical Branching Bar:将多个sensor/actuator映射为铰(Joint)、约束(Constraint)、驱动器(Driver)或刚体坐标的系统的一个sensor/actuator端口。4.3模拟和分析机械运动SimMechanics软件为你所仿真的机械系统提供了四种分析模式:正向动力学模式(ForwardDynamics),平衡模式(Triming),反向动力学模式(InverseDynamics)和运动学模式(Kinematics)。在任何一种模式里,你都可以将机械模型转化为一种简便的生成代码译本。1、刚体运动的数学解决方式。为了使正向动力学模式可以用数学方法解决,系统必须满足一定的条件:l所有刚体的质量和惯性张量都必须已知。每个刚体上每一瞬间所施加的力和转矩都必须已知。l自由度之间的任何运动约束都只能指定在位置和(或)速度之间。如果约束是互相一致的,并且少于自由度的数目,那系统的运动就是有意义的,它可以被集成发现。l指定初始状态(初始位置和初始速度)并且始终维持所有约束。在反向动力学模式中,变为你指定运动,并且得到产生这些运动所需的力和转矩。2、正向动力学,平衡,和线性化在正向动力学模式里,一个SimMechanics仿真用常微分方程(ODE)解算器的Simulink序列解算牛顿方程,集成所用的力和转矩,获得最终的运动。常微分方程解算器设计的是映射在运动约束的数学复本上的自由度的运动,并在施加约束的系统里生成力和转矩。平衡:平衡模式允许你用Simulink里的平衡特征寻找机械运动里稳定或平衡的状态。一旦发现这些状态,就将它们设置为线性化分析的起始点。线性化:你可以使用Simulink线性化工具使系统的正向运动线性化,并且获得它对某些值(力,转矩,约束和初始条件)的微小扰动的响应。反向动力学:SimMechanics仿真可以解决正向动力学的逆向问题,可以通过你所应用于系统中的一系列已知运动求出产生它所需的力和转矩。根据系统的拓扑结构,你从这两种(反向动力学和运动学)模式中选择其中更高效的一种分析系统的反向动力学问题:反向动力学模式应用于开放式的拓扑系统(模型图表没有闭环)。l用运动学模式分析闭环模型的运动时,要考虑环路终点所施加的不可见约束。约束和驱动模块只能出现在闭环中,所以你也可以用运动学模式分析约束力和约束力矩。4.4生成代码SimMechanics软件和Simulink加速模式, Simulink z Coder tTM软件,xPCTMetTarg软件都是兼容的。它们能生成你最初在Simulink中用模块图表创造出的模型的代码译本,加快仿真速度,使模型更简便。一个机械模型里的静摩擦力能创立动力学的间断点,引起Simulink模式迭代。这些间断点和模式迭代必将限制代码的生成。4.5模型可视化、动画化SimMechanics软件支持一个内部的可视化窗口作为模型建立,模型动画化,模型调试的有力辅助工具。想要知道如何使用这个窗口,请看前面的运行一个演示模型。这个窗口通过以下的形式演示这些刚体和他们的刚体坐标系:抽象简明的图形,凸壳或者等价椭圆体。这些是标准几何体。l通过外部图形文件可以指定自定义几何体。你也可以在一个外部计算机辅助设计(CAD)平台上装配出一个你所需的设计。然后通过代表这个设计的一个数据文件自动生成SimMechanics模型。1、建模时的刚体可视化你可以通过以下方法使用可视化窗口建模:在开始建立刚体之前你可以打开一个SimMechanics可视化窗口,然后就像在你的模型窗口里创立和配置刚体一样,你可以在显示窗口里看到刚体并且配置它们。这种方法对于刚开始学习如何创立复杂的SimMechanics模型的人非常适用。这种情况下,可视化窗口会指导你装配和连接刚体几何体。你也可以不用可视化窗口建模,可以等你完成建模后再打开可视化窗口查看完整的模型。2、用标准几何体显示刚体可视化窗口可以用两种标准的抽象图形去显示刚体,一种来源于刚体的质量特性,另一种来源于刚体的刚体坐标系。这些图形是以刚体模块对话框里指定的有限的刚体信息为基础的几何图表。质量特性:一个刚体的动力学部分决定于刚体的总质量和质量在空间里的分布情况,比如封闭的惯性张量。任何一个刚体都只有唯一的一个与它相对应的并且拥有相同质量和惯性张量的均质椭球体。这些均质椭球体是显示刚体的一种可视化方式。这些椭球体坐标轴的相对尺寸代表着每个坐标轴的惯性力矩。几何特性:每个SimMechanics刚体都被至少含有一个刚体坐标系的刚体模块表现出来。最小刚体坐标系原点放置在刚体的重心(CG)上。你也可以在刚体上创立其他的刚体坐标系。附加在刚体上的任何关节,约束,驱动,执行器或传感器也必须同时附着在刚体坐标系原点上。一系列的刚体坐标系原点可以封闭在一个平面里;如果有多于三个原点不共面,则原点所在的平面可以封闭成体。其中拥有向外弯曲曲率的最小平面就是凸壳。凸壳是可以在空间里显示一个刚体的另一种抽象图形。少于四个坐标系原点产生的是简单刚体特征。凸壳不包括刚体坐标系原点在重心上的情况。3、仿真时的运动动画化你可以在显示模型刚体的时候,或者当你建模的时候,或者已经完成建模的时候打开可视化窗口,也可以当一个模型正在Simulink模型窗口运行的时候打开可视化窗口。无论你是选择用椭球体的方式显示刚体,还是用凸壳的方式显示刚体,可视化窗口都可以使刚体运动的仿真动画化,并且使模型的运动和Simulink端的进程同步化。4、与计算机辅助设计的连接以一个外部数据文件(提前从一个被支持的计算机辅助设计(CAD)平台上输出)为基础,你可以用SimMechanics接入口自动生成一个SimMechanics模型。这个数据文件捕获计算机辅助设计(CAD)装配所拥有的重要的动态特征,表现出一个机械系统。最终的模型一旦被生成,也可以像其他SimMechanics模型一样进行修改和扩充。4.6 SimMechnics建模过程4.6.1建模基本步骤不管模型有多么复杂都可以用同样的步骤建立模型。这些步骤有些类似建造一个Simulink模型。(a)选择Groud、Body、和Joint模块:从Bodies和Joints模块组中拖放建立模型所必需的Body和Joint模块,还包括Machine Environment模块和至少一个Ground模块到Simulink窗口中。其中各个模块介绍如下:Machine Environment模块是用来设定机器的机械参数设置。Ground模块表示将一个系统固结在一个惯性系统中。Body模块就表示刚体构件。Joint模块表示互相连接构件之间的相对运动。(b)定位于联接模块:将Joint和Body模块拖放到适当的位置,然后按正确的顺序将它们依次连接起来,可参考如下形式: Machine EnvironmentGroundJointBodyJointBody-Body。整个系统可以是一个开环的或者是闭环的拓扑结构,但至少有一个构件是Ground模块,而且有一个环境设置模块直接与其相连。一个构件可能不止两个铰(Joint),即可以产生分支。但是一个较只能连接两个构件。(c)配置Body模块:双击模块,打开参数对话框,配置质量属性(质量和惯性矩),然后确定Body模块和Ground模块与整体坐标系或其他坐标系之间的关系。(d)配置Joint模块:双击模块,打开参数对话框,设置移动或转动轴,或球面铰结点等。(e)选择、连接和配置Constraint模块和Driver模块:从它们的模块库中添加模块到模型窗口中,打开并配置它们每一个对话框,为了限制或驱动Constraint/Driver所连接的两个构件的相对运动。(f)选择、连接和配置Actuator和Sensor模块:从对应的模块库中添加所需模块至模型窗口,并依次连接。通过Actuator模块确定控制信号,通过Sensor模块测量运动。Actuator、Sensor模块实现SimMechanics模块与Simulink模块的连接。利用这两个模块就能够达到与Simulink环境实现信号传递。同时,Actuator模块从Simulink模块接受信号(如Sources模块库)来激励机构运动。Sensor模块的输出端口向Simulink中输出信号(Sinks模块库),反馈输出结果。(g)装入子系统:在SimMechanics模块建造的系统完成后就可以装入子系统作为一个模块进行调用,就如同Simulink中的子系统一样使用。通过SimMechanics中的Utilities模块库中的Connection Port模块可将SimMechanics模型作为子系统与一个更大的模型连接起来。4.6.2配置、运行模型基本步骤将模块都连接好后,此时的模型还需要确定如何运行,确定各项设置及装载可视化。(a)SimMechanics为运行机器模型提供了四种分析方式,最常用的是Forward Dynamics方式。但是对于一个机器更加完整的分析就需要用到其他三种方式。可以对于一个模型创建多个版本,在同样的基本组合结构下,为每一个版本连接不同的Actuator模块和Sensors模块,以及不同的配置。(b)使用SimMechanics强大的可视化和动画显示效果。在建造模型的同时,或者模型完成后,但必须是在开始仿真之前,可以利用可视化效果,来调试机器的几何形状。还可以在仿真的同时进行动画显示。(c)在Machine Environment对话框中设定分析方式以及其他的重要机械设置。在Simulink Configuration Parameters中设置可视化和调整仿真设置。在Visualization选项中,选中前两个,如下图所示:4.7 stewart platform的 SimMechnics建模斯图尔特平台是位置和运动控制的典型设计,最初是1965年用来作为飞行模拟器,现在还常用于这目的。从那以后,许多各种不同的应用得益于斯图尔特平台。斯图尔特平台有一个特殊的运动范围,而且能精确地也很容易导向和定位。该平台为一个给定的结构质量提供了大量的硬度或刚度,也因此确定了提供了重要位置的确定。平台的建模适度复杂,有大量的机械约束,需要强健的模拟。大多数的斯图尔特平台变体有六条线性的不同组合腿平台连接组合的驱动腿。完整的装备是一个包含刚体或一个连接不固定的底盘的运动盘的并行机制。在此用到的斯图尔特平台在六点通过通用的运动副连接到地盘。每条腿分成两个部分,即腿的上部分和下部分,并有气缸运动副。每个上支柱通过另外的通用运动副连接到上平台。因此,平台有6*2+1=13运动部件和6*3=18个运动副连接这些部件。如下图所示:4.7.1六条腿的子系统模型的建立Stewart platform的每条腿分为腿的上部分和下部分,之间由液压气缸连接,两端由两个万向铰与上下平台相连接。因此该子系统模型由两个万向铰(Universal)模块,中间一个自定义铰(Custom Joint)模块,上下两个刚体(body)模块构成,另外需加入铰驱动器(Joint Actuator)模块以在铰链处施加力或力矩,加入铰检测(Joint Sensor)模块以输出检测到的气缸运动的位置与速度信号。对模块进行连线操作,连接各个模块如下图所示,类似于Simulink模块的连接操作,但SimMechanics模块之间的连线表示物理连接,而Simulink模块之间的连线表示信号传递,为信号线。各模块的颜色设置,可通过右击相应模块在background选项下选择颜色或自定义颜色。当如图连接好后,选中所有模块,点击右键,在对话框中选择Creat Subsystem选项,便可以生成腿模型的子系统,并命名为Leg1,如下图所示。4.7.2六条腿的子系统模型中各子模块参数设置腿上部分的万向铰(Upper Leg Universal)模块:参数设置对话框如下图所示,Number of Sensor/actuatorPorts对话框中默认设置选择0,即不需要为模块添加一个传感器或激励器接口。在Parameters-Axes对话框中R1输入rev3(1,:)设置转动轴矢量为rev3(1,:)。R2输入rev4(1,:)设置转动轴矢量为rev4(1,:)。图中的Connection parameters区中的Current base:CS2Upper Leg表示当前连接的基件(原动件)为Upper Leg模块的CS2端口,Current follower:CS1Top Plate表示连接的跟随件(从动件)为Top Plate模块的CS1端口。腿下部分的万向铰(Lower Leg Universal)模块参数设置:参数设置对话框如下图所示,大致步骤与内容基本同腿上部分的万向铰(Upper Leg Universal)模块参数设置。腿上部分的刚体模块(Upper Leg)参数设置:数设置对话框如下图所示,质量属性选项中的质量和惯性张量:Mass(质量):upper_leg_mass(单位为Kg)。Inertia:upper_leg_inertia;刚体坐标系统选项定义坐标的位置和方向。配置Position选项卡,这个标签下有CS1、CS2、CG、CS3都是根据初始状态计算出来的,CG为初始重心,CS1为该杆与固定平台连接的铰点坐标,CS2为初始状态下该杆的长度。CS3为理论上与移动副连接的点,因此,把它的ShowPort和CS1的ShowPort勾上。配置Orientation选项卡。Orientation下有CG、CS1、CS2和CS3,但是他们的参数值都是一样的,这里是设置了它的初始状态下的旋转变换矩阵。腿下部分的刚体模块(Lower Leg)参数设置:数设置对话框如下图所示,其参数设置大致与腿上部分的刚体模块(Upper Leg)参数设置。自定义铰(液压气缸)模块参数设置:参数设置对话框如下图所示,Number of Sensor/actuatorPorts对话框中设置选择2,即需要为模块添加2个传感器或激励器接口。在Parameters-Axes对话框中R1-Revolute输入cyl1(1,:)设置转动轴矢量为cyl1(1,:)。P1-Prismatic输入cyl1(1,:)设置平移轴矢量为cyl1(1,:)。图中的Connection parameters区中的Current base:CS3Lower Leg表示当前连接的基件(原动件)为Lower Leg模块的CS3端口,Current follow

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论