《Simulink运动学仿真.ppt》由会员分享,可在线阅读,更多相关《Simulink运动学仿真.ppt(37页珍藏版)》请在三一办公上搜索。
1、第3章 平面机构运动学仿真,Simulink的使用,3.1 通过运动学仿真求解速度,3-1 曲柄滑块机构的Simulink仿真,1 曲柄滑块机构的闭环矢量方程,请注意这个矢量环和描述四连杆机构的矢量环有重要区别。在四连杆机构的矢量环中,所有矢量的大小都保持常量,只是方向随时间变化。而对于曲柄滑块机构,矢量R1的大小随时间变化,而方向保持不变。这一点在计算对时间的导数时要予以注意。,曲柄滑块机构的闭环矢量方程为:,将 分解到x和y坐标轴上,得到,3-1 曲柄滑块机构的Simulink仿真,上式对时间求导数,有,写成矩阵形式,(46),和连杆2等所有位置已知时,方程(46)用来求解,如果将,视为仿
2、真的输入,可以用数值积分从速度中计算出,、,和,和,3-1 曲柄滑块机构的Simulink仿真,2 曲柄滑块机构运动学的simulink仿真,在面向模块的simulink图形方式中,实现这一过程需要3个积分模块作为仿真的开始。,要使仿真顺利地进行,积分器的输入必须和相应的积分器恰当地连接起来。第一个输入的是,,这里假设,可以使用Source库中中的一个,另外两个速度可以从闭环矢量方程(46)中求得。,为常量并作为仿真的输入,,3-1 曲柄滑块机构的Simulink仿真,编写一个MATLAB函数来求解(46)方程,函数名为compel,存储于文件compelm中。,function x=comp
3、vel(u)%function to compute the unknown velocities for a slider crank with%constant crank input%u(1)=omega-2%u(2)=theta-2%u(3)=theta-3%Define the geometry%r2=1.0;r3=4.0;%a=r3*sin(u(3)1;-r3*cos(u(3)0;b=-r2*u(1)*sin(u(2);r2*u(1)*cos(u(2);%x=inv(a)*b;,3-1 曲柄滑块机构的Simulink仿真,可以用MATLAB中的function块将此函数嵌入到sim
4、ulink仿真中,function块可以在“Functions and Tables”库中找到。,function块可以把矢量作为输入和输出,但矢量必须由原始信号“组装”而成。输入矢量(函数中的u)用Mux块(多路转换器)组装得到。请注意信号连接的顺序和其在函数中使用的顺序完全样。同样地,用DeMux块来分解输出矢量(函数中的x)。,3-1 曲柄滑块机构的Simulink仿真,下面,适当的信号被“联网”到Mux块,,3-1 曲柄滑块机构的Simulink仿真,为完成仿真,加入一个Mux块以此将输出结果集合成一个矩阵。该矩阵在仿真完成时在MATLAB平台中是可见的。,可以对simulink中的信
5、号线进行标注。双击该线,会打开一个文本框允许你输入信号的名称,这对于解释和文件说明仿真过程非常有用。完成后的仿真过程示于图46中。,3-1 曲柄滑块机构的Simulink仿真,本例的初始条件可以通过简单的几何关系求解给出。为了便于求解,假设曲柄的初始位置为,3 建立初始条件,在仿真运行之前,必须为积分器建立适当的初始条件。这是求解任何微分方程的关键一步。而且,这对于运动学仿真显得待别重要。如果使用了不相容的初始条件,将会导致仿真失败。,初始条件必须是机构在某个真实位置时的角度和长度。,这个位置在活塞一气缸装置中被称为“上死点(TDP)”。,滑块处于距离坐标原点长度为,的位置。,0,,此时曲柄和
6、连杆处于同一条线上。,也等于零,,3-1 曲柄滑块机构的Simulink仿真,用下面两种方法建立起仿真的初始条件。最直接的方法就是双击仿真流程图中的积分器图标,在“Initial condition”产中输入数值。这种方法对于更复杂的初始条件会变得非常笨拙。另一种方法是为MATLAB环境变量设置初始值。,在MATLAB命令提示符中键入th20=0;th30=0;r10=5.0;,可以用MATLAB环境中一系列命令来非常容易地改变初始条件,而无需在每次初始条件改变时双击每个积分器图标。其次,这种方法可以在MATILAB允许的最大精度范围给出simulink的初始条件。,对于这里的仿真情况,因为初
7、始条件可以精确给出而显得并不重要。然而。多数的仿真需要使用复杂的几何关系,创始条件的精度对仿真的正确运行有着重要的影响。,3-1 曲柄滑块机构的Simulink仿真,4 仿真结果,假设曲柄以1800 rmin(1885rads)的速度旋转。按这种速度,曲柄仅在0.07s之内就旋转了两圈,所以仿真的时间从00.07s。双击仿真中的constant块可以设置曲柄的旋转速度。出现的对话框允许为曲柄旋转速度输入任意值。角速度的单位是rads注意到这一点是十分重要的。为便于进行分析,以转分(rmin)为单位的曲柄旋转速度必须转化为rads。,3-1 曲柄滑块机构的Simulink仿真,3.2 通过运动学
8、仿真求解加速度,1 考虑加速度的仿真,对时间求二阶导数,必须要特别注意对时间变量乘积的求导过程。曲柄滑块机构的闭环矢量方程对时间的二阶导数方程由下式给出:,写成如下矩阵形式:,比较方程49)和矩阵形式的速度方程(46),这两个方程左端22的矩阵完全一样。由此可以看出闭环矢量方程导数的这一重要特性。可以将此作为推导新的机构运动方程时验证方程正确性的重要检查方式。,49),3-1 曲柄滑块机构的Simulink仿真,求解上面的加速度方程(49)需要一个新的函数文件compacc.m。,function x=compacc(u)%function to compute the unknown acc
9、elerations for a slider crank with%variable speed crank input%u(1)=alpha-2%u(2)=omega-2%u(3)=omega-3%u(4)=theta-2%u(5)=theta-3%Define the geometryr2=1.0;r3=4.0;%a=r3*sin(u(5)1;-r3*cos(u(5)0;b=-(r2*u(1)*sin(u(4)+r2*u(2)2*cos(u(4)+r3*u(3)2*cos(u(5);r2*u(1)*cos(u(4)-r2*u(2)2*sin(u(4)-r3*u(3)2*sin(u(5);
10、x=inv(a)*b;,3-1 曲柄滑块机构的Simulink仿真,修改后的仿真系统,3-1 曲柄滑块机构的Simulink仿真,3-1 曲柄滑块机构的Simulink仿真,2 运行曲柄滑块机构的仿真,前面已经强调指出,必须确保所建立的初始条件的相容性。对于基于速度的仿真,相容性意味着初始条件代表连杆的真实有效位置。对加速度仿真,除了位移的相容性要求外,初始速度也必须表示一个有效的速度组合。将曲柄滑块机构视为一个单自由度系统可以更好地理解这一点。,这里给出两个例子。第一个例子仿真在匀加速下从零速度状态开始执行,第二个例子在匀速条件下运行。,3-1 曲柄滑块机构的Simulink仿真,输入加速度
11、设定为10 rads2,仿真运行时间为4s。,第一个例子仿真在匀加速下从零速度状态开始执行,,3-1 曲柄滑块机构的Simulink仿真,匀速仿真初始条件的设置要稍许复杂些,因为必须首先针对机构的初始状态求解一次速度问题,以便为仿真提供必要的初始条件。下面以前面仿真用过的同样的速度188.5rads为例来加以说明。,为了给出另外两个初始条件,必须求解对应此条件的速度问题。,第二个例子在匀速条件下,很显然,,积分器的初始条件是确定的(188.5rads)。,th20=0;th30=0;r10=5.0;om20=188.5;r2=1.0;r3=4.0;a=r3*sin(th30)1;-r3*cos
12、(th30)0;b=-r2*om20*sin(th20);r2*om20*cos(th20);x=inv(a)*b;om30=x(1);r1dot0=x(2);,3-1 曲柄滑块机构的Simulink仿真,3-1 曲柄滑块机构的Simulink仿真,3 仿真结果,的模是一个表示仿真有效程度的标量。如果在仿真框图的结构上或函数内部出现错误而导致编程中出现错误,初始误差就较大,误差很快就会无限制地增长,此时就需要为以后程序调试设置误差指示量。另一方面,如果误差从零开始缓慢增加,但仍然在仿真所需的时间段内(对曲柄滑块机构一般大约为10倍周期)达到较大的值,那么认为数值积分不够收敛。为了解决此问题,可
13、以降低simulink的误差限。最后一种情况,如果误差从某个非零值开始稳定增长,则设定的初始条件不是自相容的,需要重新设定。,3-1 曲柄滑块机构的Simulink仿真,通过检验机构最终位置满足原有闭环矢量方程的程度,我们就可以得到仿真自身结果的合效性。,4 相容性检验,为此引入一个新的函数,将位移变量作为输入,函数返回的变量代表计算中的固有误差。对曲柄滑块机构,回想其闭环矢量方程为,3-1 曲柄滑块机构的Simulink仿真,新函数comperr的脚本如下所示:,function e=comperr(u)%function to compute the displacement error
14、inherent in the kinematic%simulation%u(1)=theta-2%u(2)=theta-3%u(3)=r1%Define the geometry%r2=1.0;r3=4.0;%ex=u(3)-r2*cons(u(1)-r3*cos(u(2);ey=-r2sin(u(1)-r3*sin(u(2);%e=norm(ex ey);,comperr函数可以很容易地被嵌入到速度仿真成加速度仿真系统中,,3-1 曲柄滑块机构的Simulink仿真,3-1 曲柄滑块机构的Simulink仿真,第五章 平面机构运动学仿真,Simulink的使用,在复数坐标系中,曲柄AB复向
15、量的模,为常数、幅角,为变量,通过转动副A与机架联接,转动副A的复向量的模,为常量,幅角,为常量。,5-2 曲柄的MATLAB运动学仿真模块,曲柄AB的端点B位移、速度和加速度推导如下,1曲柄的运动学矩阵表达式,5-1 曲柄的MATLAB运动学仿真模块,,,(511)对时间分别求两次导数,(511),(512)写成矩阵形式有,(512),编写曲柄原动件MATLAB的M函数如下,function y=crank(x)%Function to compute the accleration of crank%Input parameters%x(1)=rj%x(2)=thetaj%x(3)=dth
16、etaj%x(4)=ddthetaj%0utput parameters%y(1)=ReddB%y(2)=ImddBddB=x(1)*x(4)*cos(x(2)+pi/2)+x(1)*x(3)2*cos(x(2)+pi);x(1)*x(4)*sin(x(2)+pi/2)+x(1)*x(3)2*sin(x(2)+pi);y=ddB;,5-1 曲柄的MATLAB运动学仿真模块,2.曲柄MATLAB运动学仿真模块M函数,也可以改写为如下,function y=crank(lgth,theta)%Function to compute the accleration of crank%Input pa
17、rameters%lgth=rj%theta(1)=thetaj%theta(2)=dthetaj%theta(3)=ddthetaj%0utput parameters%y(1)=ReddB%y(2)=ImddB%ddB=lgth*theta(3)*cos(theta(1)+pi/2)+lgth*theta(2)2*cos(theta(1)+pi);lgth*theta(3)*sin(theta(1)+pi/2)+lgth*theta(2)2*sin(theta(1)+pi);y=ddB;,5-1 曲柄的MATLAB运动学仿真模块,5-2 RRR II级杆组MATLAB运动学仿真模块,1RR
18、R II级杆组运动学矩阵表达式,在复数坐标系中,由3个转动副(B,C,D)和2个构件(长度分别为,,,)组成RRR II级杆组,2个构件的幅角,和,为变量,,则点c的加速度推导如下,(514),(515),对式(215)求导数并整理得,(516),5-2 RRR II级杆组MATLAB运动学仿真模块,1RRR II级杆组运动学矩阵表达式,对方程式(516)求导数并整理得,(516),(517),(518),写成矩阵形式有,将式(5.14)写成矩阵形式:,式(5.19)对时间t求导数,得到点c的速度为,再次对时间t求导数,得到点c的加速度为,5-2 RRR II级杆组MATLAB运动学仿真模块,
19、1RRR II级杆组运动学矩阵表达式,(514),(519),(520),(521),根据式(518)和式(521)编写RRRII级杆组的M函数如下:,5-2 RRR II级杆组MATLAB运动学仿真模块,function y=RRRki(x)%function to compute the acceleration for RRR bar group%Input parameters%x(1)=ri%x(2)=rj%x(3)=theta-i%x(4)=theta-j%x(5)=dtheta-i%x(6)=dtheta-j%x(7)=ReddB%x(8)=ImddB%x(9)=ReddD%x(
20、10)=ImddD%Output parameters%y(1)=ddtheta-i%y(2)=ddtheta-j%y(3)=ReddC%y(4)=ImddC,a=x(1)*cos(x(3)+pi/2)-x(2)*cos(x(4)+pi/2);x(1)*sin(x(3)+pi/2)-x(2)*sin(x(4)+pi/2);b=-x(1)*cos(x(3)+pi)x(2)*cos(x(4)+pi);-x(1)*sin(x(3)+pi)x(2)*sin(x(4)+pi)*x(5)2;x(6)2+x(9)-x(7);x(10)-x(8);ddth=inv(a)*b;y(1)=ddth(1);y(2)
21、=ddth(2);y(3)=x(7)+x(1)*ddth(1)*cos(x(3)+pi/2)+x(1)*x(5)2*cos(x(3)+pi);y(4)=x(8)+x(1)*ddth(1)*sin(x(3)+pi/2)+x(1)*x(5)2*sin(x(3)+pi);,(518),(521),5-2 RRR II级杆组MATLAB运动学仿真模块,图210所示的铰链四杆机构,它由原动件(曲柄1)和1个RRR杆组构成。各构件的尺寸为,示例1 铰链四杆机构的运动学仿真,=400mm,,=1000mm,,700mm,建立如图210所示复数向量坐标,构件1以等角速度10 rad/s逆时针方向回转,试求点C
22、的加速度、构件2,3的角加速度。,=1200 mm。,1、求解初始位置各个构件的幅角、角速度。(详细方法见前面所分析),2、利用前面编制的曲柄(crank.m)和RRR II级杆组(RRRki.m)的M函数,用simulink建立四杆机构模型。,3、设置各模块参数以及仿真参数。,示例1 铰链四杆机构的运动学仿真,simulink环境下所建立的铰链四杆机构的仿真模型,示例1 铰链四杆机构的运动学仿真,也可以考虑用MATLAB实现,将曲柄原动件的M函数文件以及RRRII级杆组的M函数文件改写实现。,各个积分模块的初始值设置:曲柄1的幅角为0。角速度为10(rad/s)。其它构件的初值为前面所分析。,