MATLAB机构运动仿真

合集下载

基于MATLAB的双摇杆机构运动分析与仿真

基于MATLAB的双摇杆机构运动分析与仿真

基于MATLAB的双摇杆机构运动分析与仿真双摇杆机构是一种常见的机械系统,由两个摇杆组成,通过摇杆的运动来实现转换。

在本文中,我们将基于MATLAB对双摇杆机构进行运动分析与仿真。

首先,我们需要确定双摇杆机构的几何参数。

主要包括摇杆长度、连接点位置、连接点角度等。

假设双摇杆机构的摇杆长度分别为L1和L2,连接点之间的距离为d,连接点1的坐标(x1,y1)和连接点2的坐标(x2,y2),摇杆1和水平方向的夹角为θ1,摇杆2和水平方向的夹角为θ2根据几何原理,可以得到连接点位置之间的关系:x2 = x1 + L1 * sin(θ1) + L2 * sin(θ2)y2 = y1 + L1 * cos(θ1) + L2 * cos(θ2)接下来,我们可以使用MATLAB进行双摇杆机构的运动分析。

首先,我们需要定义一段时间内摇杆1和摇杆2的角度变化情况,可以使用一个时间向量t和对应的角度向量θ1和θ2来表示。

然后,根据上一步中得到的连接点坐标的关系式,可以计算出连接点的运动轨迹。

通过绘制连接点的运动轨迹,我们可以观察到双摇杆机构的运动情况。

以下是一个MATLAB代码示例,用于计算双摇杆机构的运动轨迹并进行绘制:```matlabL1=1;%摇杆1长度L2=2;%摇杆2长度d=0.5;%连接点之间的距离x1=0;%连接点1的横坐标y1=0;%连接点1的纵坐标t=0:0.01:10;%时间向量theta1 = pi/6*sin(t); % 摇杆1的角度变化theta2 = pi/4*sin(t); % 摇杆2的角度变化x2 = x1 + L1 * sin(theta1) + L2 * sin(theta2);y2 = y1 + L1 * cos(theta1) + L2 * cos(theta2);plot(x2, y2);xlabel('X');ylabel('Y');title('Double Crank Mechanism');```运行以上代码,即可得到双摇杆机构的运动轨迹图像。

基于MATLAB曲柄滑块机构运动仿真

基于MATLAB曲柄滑块机构运动仿真

基于MATLAB曲柄滑块机构运动仿真1.题目描述题目:对如图1所示的曲柄滑块机构的运动过程进行仿真,并用动画的方式显示曲柄滑块机构的运动过程,位移曲线、速度曲线和加速度曲线。

图中,AB长R2,BC长R3mm,A点为坐标原点。

图1 曲柄滑块机构示意图2.实现方法利用GUI界面设计来对曲柄滑块机构的运动过程进行仿真,并用动画的方式显示曲柄滑块机构的运动过程。

3.界面设计1. Gui 设计1)新建GUI:菜单-新建-gui,并保存为test52)界面设计:拖拽左侧图标到绘图区,创建GUI界面拖拽左侧图标值绘图区设置如下的按钮最终的仿真界面如图所示3)代码添加:进入代码界面4.代码编程%模型求解a1=str2double(get(handles.edit1,'String'));a2=str2double(get(handles.edit2,'String'));a3=str2double(get(handles.edit3,'String'));a4=str2double(get(handles.edit4,'String'));a5=str2double(get(handles.edit5,'String'));a=a1*((1-cos(a4*a5))+0.25*(a1/a2)*(1-cos(2*a4*a5))); set(handles.edit6,'String',a);a0=(a4*a1)*(sin(a4*a5)+0.5*(a1/a2)*sin(2*a4*a5));set(handles.edit7,'String',a0);a6=(a4*a4*a1)*(cos(a4*a5)+(a1/a2)*cos(a4*a5));set(handles.edit8,'String',a6);%绘制位移、速度、加速度曲线axes(handles.axes3);r1=str2double(get(handles.edit1,'String'));r2=str2double(get(handles.edit2,'String'));omiga1=str2double(get(handles.edit4,'String'));x11=1:720;for i=1:720x1(i)=i*pi/180;%sin(x2(i)=r1/r2*sin(x1(i));x2(i)=asin(-r1/r2*sin(x1(i)));x22(i)=x2(i)*180/pi;r3(i)=r1*cos(x1(i))+r2*cos(x2(i));B=[-r1*omiga1*sin(x1(i));r1*omiga1*cos(x1(i))];A=[r2*sin(x2(i)) 1;-r2*cos(x2(i)) 0];X=inv(A)*B;omiga2(i)=X(1,1);v3(i)=X(2,1);endplot(x11/60,0.5*r1*sin(x1));xlabel('ʱ¼äÖá t/sec')ylabel('Á¬¸ËÖÊÐÄÔÚYÖáÉϵÄλÖÃ/mm')figure(2)plot(x11/60,r3);title('λÒÆÏßͼ')grid onhold off;xlabel('ʱ¼ät/sec')ylabel('»¬¿éλÒÆ r3/mm')figure(3)plot(x11/60,omiga2);title('Á¬¸Ë½ÇËÙ¶È')grid onhold off;xlabel('ʱ¼ä t/sec')ylabel('Á¬¸Ë½ÇËÙ¶È omiga2/rad/sec') figure(4)plot(x11/60,v3*pi/180);title('»¬¿éËÙ¶È')grid onhold off;xlabel('ʱ¼ä t/sec')ylabel('»¬¿éËÙ¶È v3/mm/sec')%绘制表格axes(handles.axes3);grid onaxes(handles.axes1);grid on%制作动画axes(handles.axes1);hf=figure('name','Çú±ú»¬¿é»ú¹¹'); set(hf,'color','r');hold onaxis([-6,6,-4,4]);grid onaxis('off');xa0=-5;%»îÈû×󶥵ã×ø±êxa1=-2.5;%»îÈûÓÒ¶¥µã×ø±êxb0=-2.5;%Á¬¸Ë×󶥵ã×ø±êxb1=2.2;%Á¬¸ËÓÒ¶¥µã×ø±êx3=3.5;%תÂÖ×ø±êy3=0;%תÂÖ×ø±êx4=xb1;%ÉèÖÃÁ¬¸ËÍ·µÄ³õʼλÖúá×ø±êy4=0;%ÉèÖÃÁ¬¸ËÍ·µÄ³õʼλÖÃ×Ý×ø±êx5=xa1;y5=0;x6=x3;%ÉèÖÃÁ¬Öá³õʼºá×ø±êy6=0;%ÉèÖÃÁ¬Öá³õʼ×Ý×ø±êa=0.7;b=0.7c=0.7a1=line([xa0;xa1],[0;0],'color','b','linestyle','-','linewidth',40); %ÉèÖûîÈûa3=line(x3,y3,'color',[0.5 0.60.3],'linestyle','.','markersize',300);%ÉèÖÃתÂÖa2=line([xb0;xb1],[0;0],'color','black','linewidth',10);%ÉèÖÃÁ¬¸Ëa5=line(x5,y5,'color','black','linestyle','.','markersize',40);%ÉèÖÃÁ¬¸Ë»îÈûÁ¬½ÓÍ·a4=line(x4,y4,'color','black','linestyle','.','markersize',50);%ÉèÖÃÁ¬¸ËÁ¬½ÓÍ·a6=line([xb1;x3],[0;0],'color','black','linestyle','-','linewidth',10 );a7=line(x3,0,'color','black','linestyle','.','markersize',50);%ÉèÖÃÔ˶¯ÖÐÐÄa8=line([-5.1;-0.2],[0.7;0.7],'color','y','linestyle','-','linewidth' ,5);%ÉèÖÃÆû¸×±Úa9=line([-5.1;-0.2],[-0.72;-0.72],'color','y','linestyle','-','linewi dth',5);%ÉèÖÃÆû¸×±Úa10=line([-5.1;-5.1],[-0.8;0.75],'color','y','linestyle','-','linewid th',5);%ÉèÖÃÆû¸×±Úa11=fill([-5,-5,-5,-5],[0.61,0.61,-0.61,-0.61],[a,b,c]);%ÉèÖÃÆû¸×ÆøÌålen1=4.8;%Á¬¸Ë³¤len2=2.5;%»îÈû³¤r=1.3;%Ô˶¯°ë¾¶dt=0.015*pi;t=0;while 1t=t+dt;if t>2*pit=0;endlena1=sqrt((len1)^2-(r*sin(t))^2);%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖкáÖáÉϵÄÓÐЧ³¤¶Èrr1=r*cos(t);%°ë¾¶ÔÚÔ˶¯¹ý³ÌÖкáÖáÉϵÄÓÐЧ³¤¶Èxaa1=x3-sqrt(len1^2-(sin(t)*r)^2)-(r*cos(t));%»îÈûÔÚÔ˶¯¹ý³ÌÖеÄÓÒ¶¥µã×ø±êλÖÃxaa0=xaa1-2.5;%%»îÈûÔÚÔ˶¯¹ý³ÌÖеÄ×󶥵ã×ø±êλÖÃx55=x3-cos(t)*r;%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖкá×ø±êλÖÃy55=y3-sin(t)*r;%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖÐ×Ý×ø±êλÖÃset(a4,'xdata',x55,'ydata',y55);%ÉèÖÃÁ¬¸Ë¶¥µãÔ˶¯set(a1,'xdata',[xaa1-2.5;xaa1],'ydata',[0;0]);%ÉèÖûîÈûÔ˶¯set(a2,'xdata',[xaa1;x55],'ydata',[0;y55]);set(a5,'xdata',xaa1);%ÉèÖûîÈûÓëÁ¬¸ËÁ¬½ÓÍ·µÄÔ˶¯set(a6,'xdata',[x55;x3],'ydata',[y55;0]);set(a11,'xdata',[-5,xaa0,xaa0,-5]);%ÉèÖÃÆøÌåµÄÌî³äset(gcf,'doublebuffer','on');%Ïû³ýÕð¶¯drawnow;end5.结果(1)对它的结构参数进行设置,如下图所示。

基于MATLAB的平面四连杆机构运动仿真

基于MATLAB的平面四连杆机构运动仿真
业信息 化
12端 点 B运 动分析 .
在 复 数 坐标 系 中 ,端 点 B的位 置 可 表 示 为 B ri,则 =2 ̄ e2

』Brn02 I =c2 I 2si O R 2s e o mB=r
速度分别为 :
( 5 ) 一



分 别 对 上 式 求 一 次 、二 次 导 数 ,得 到 B点 的 速 度 、加
[ ] 孙 桓 , 陈作 模 . 械 原 理 [ ] . 京 : 高 等 教 育 出版 社 1 机 M 北
2 0 . 0 6
( 转第 8 下 4页 )
1 00
5 0


5 0

10 0
图 4 交 替 反相 层 叠 下 相 电 压 波形 及 对 应 频谱
1 0. 0 0
lve i v re sa d DTC o rd v p lc t n .I E a so e l n etr n mo r e a p i ai s EE Tr n n i o
[ ] 刘风 君 ,多 电平 逆 变技 术及 其 应 用 [ ] , 京 :机 械 工 业 出 4 M 北
1 00 0 .
8 . 0O

5 0 0.
≮ 0

S O 0.

1 0. 0 0 0
^ 1 j f
1 0 2 0 0. 0. 3 0 400 0. . 500 6 0 . 0。

0 20 . 40 . 60 . 80 . 1 0 0.
t / ms



ll1 斟 s2 v t c西 m o2 B j
l 『 Is 一s i I 一 c ].∞ o h1 I l +s c o j

MATLAB基本杆组-运动学仿真

MATLAB基本杆组-运动学仿真

⎡ ri cos (θ i + π ) ⎤ 2 ⎡ xC ⎤ ⎡ xB ⎤ ⎡ ri cos (θ i + π 2 ) ⎤ ⎢ y ⎥ = ⎢ y ⎥ + ⎢ r sin θ + π 2 ⎥ θi + ⎢ r sin θ + π ⎥ θi ( i )⎦ ⎣ i ( i )⎦ ⎣ C⎦ ⎣ B⎦ ⎣ i
xC = xB − riθi sin (θi ) = xD − rjθ j sin (θ j ) yC = yB + riθi cos (θi ) = yD + rjθ j cos (θ j )
再次对时间t求导数,得到点C的加速度为
xC = xB − riθi sin (θi ) − riθi2 cos (θi ) = xD − rjθ j sin (θ j ) − rjθ j2 cos (θ j ) yC = yB + riθi cos (θi ) − riθi2 sin (θi ) = yD + rjθ j cos (θ j ) − riθ i2 sin (θ j )
( (
) )
§5-1 曲柄的MATLAB运动学仿真模块
xB = ri cos (θi ) + rj cos (θ j ) yB = ri sin (θi ) + rj sin (θ j )
对时间分别求两次导数
xB = − rjθ j sin (θ j ) xB = − rjθ j sin (θ j ) − rjθ j2 cos (θ j )
求导数
−riθi sin (θi ) + rjθ j sin (θ j ) = xD − xB riθi cos (θi ) − rjθ j cos (θ j ) = yD − yB

基于MATLAB的平面四连杆机构运动仿真.

基于MATLAB的平面四连杆机构运动仿真.
方向回转。将上述参数代入程序后,计算得到机构运动参数。
图2~4分别为θ4角速度、点C的速度变化曲线。
4结论
本文在复数向量坐标系中推导了四连杆机构运动方程,并应用MATLAB软件进行了连杆机构运动数值仿真。从计算结果可以看出,该方法可以方便快捷地得到连杆运动参数,能够有效提高分析效率和计算精度,可进一步推广到多连杆机构设计及优化计算中。
文章编号:1009-9492(201104-0051-02
引言
四连杆机构因其结构灵活、能够传递动力并有效地实现预定动作,在很多领域得到了广泛应用
[1]
。进行连杆机
构运动分析,传统方法主要是图解法或分析法[2]
,无论设
计精度还是设计效率都相对低下,无法满足现代机械高速高精度的要求。随着计算机技术的飞速发展,特别是以
面四杆机构[J ].机械制造, 2002,
(3:26-28.
[3]周进雄,张陵.机构动态仿真[M ].西安:西安交通大学出
版社, 2002.
[4]李娟玲,张建峰.基于C语言的平面连杆机构的运动分析
[J ].机械研究与应用, 2006, 19(5:117-120.
[5]宋兆基. MATLAB6.5在科学计算中的应用[M ].北京:清
华大学出版社, 2005.
[6]王正林.精通MATLAB科学计算[M ].北京:电子工业出
版社, 2009.
[7]曹惟庆.机构设计[M ].北京:机械工业出版社, 2004. [8]李洪涛,徐巍华.基于MATLAB软件对抽油机连杆运动规律
的仿真研究[J ].机械工程师, 2009(5:99-101.
参考文献:
[1]孙桓,陈作模.机械原理[M ].北京:高等教育出版社,
2006.

MATLAB机构动态仿真

MATLAB机构动态仿真
5000 4000 3000 2000 Piston Speed (mm/s) 1000 0 -1000 -2000 -3000 -4000 -5000
0
0.01
0.02
0.03 0.04 Time (sec)
0.05
0.06
0.07
三 通过运动学仿真求解加速度 对曲柄连杆机构的闭环矢量方程求二阶导数,可得到机构的加速度特性:
注意:上述仿真图形中:常数模块 Alpha-2 的值设为 10;Matlab Function 模 块对应的函数文件名称为 compacc.m。 按下表设置初始条件,进行仿真。 位置 2 /rad 3 /rad r1 / mm(in) 2 /rad/s 3 /rad/s r1-dot
值 0 0 127 0 0 0
r2=25.4; r3=101.6; 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))]; x=inv(a)*b; 该函数需要额外的输入2、2 和3。为此,需增加 3 个积分模块,仿真框图 下图所示。
再加入一个 Mux 模块,将输出结果合成为一个矩阵。该矩阵输入到 yout 模 块(该模块实际上是 sinks 库中的 To Workspace,插入后双击该模块,将变量名 称由 simout 改为 yout。特别要注意的是,根据 版本的不同,可能需要将 ..........Matlab . . . . . . ........... “ Save format ”由“ Structure ”改为“ Array ” ) ,这样做的结果是将运算结果存 . . . . . . . . . . . ... . . . . . . . . . .... . . . . . .

基于MATLAB的曲柄滑块机构运动的仿真

基于MATLAB的曲柄滑块机构运动的仿真

基于MATLAB 的曲柄滑块机构运动的仿真摘要:本文在曲柄滑块机构运动简图的基础上,对其数学运动模型进行分析,用解析法计算曲柄的转角和角速度,及滑块的位移和速度,并用MATLAB软件进行仿真。

1引言在机械传动系统中,曲柄滑块机构是一种常用的机械机构,它将曲柄的转动转化为滑块在直线上的往复运动,是压气机、冲床、活塞式水泵等机械的主机构。

这里用解析法,并用MATLAB对其进行仿真。

2曲柄滑块机构的解析法求解曲柄滑块机构的运动简图如图1所示,在图1中,L i、L2和e分别为曲柄滑块的曲柄、连杆和偏差,‘、2分别为曲柄和连杆的转角,「:、「:分别为曲柄和连杆的角速度,S为滑块的位移。

(1)块的位移S 和速度S2.1位移分析按图1中四边形ABCD 的矢量方向有:AB =CD将上式转化成幅值乘以角度的形式,得到如下等式:L :e 闻十=S + ie分别取上式的虚部和实部,并在 e 前面乘N , N 取值1或—1,用以表示滑 块在x 轴的上方或者下方,得到下面两式:,以及滑L cos 1 L 2cos 2 = S (2) L sin 1 L 2sin 2 = Nb(3)整理上面两个公式得到S 和:2的计算公式:S 二 L i cos 1 L 2 cos 22.2速度分析将(1)式两边对时间求导得(6)式L i -'i ie i 1- L 2 \ ie i 2= S(6)取(6)式的实部和虚部,整理得 S 和:2的计算公式:■L 1 ;*1cos12 ■L 2 COS ®2根据(7)式和(8)式即可得到滑块的速度及连杆的角速度。

2.3实例分析及其MATLAB 仿真 2.3.1实例分析下面对图2所示的曲柄滑块机构做具体分析。

图2曲柄滑块机构简图*二 arcs inNe - L 1 sin 打L2(5)S 「:L i sin (—2)cos :2yx例中:几=36mm,r2=140mm,^60d /sec,求'2,2,S 和S。

基于MATLAB与SolidWorks的平面六杆机构运动分析及仿真

基于MATLAB与SolidWorks的平面六杆机构运动分析及仿真

表3平面六杆机构中预设的部分构件初始参数
3.2平面六杆机构motion运动分析
本部分介绍了利用SolidWorks中的motion插件
进行运动仿真分析以输出平面六杆机构中构件5的
运动图像。首先,利用SolidWorks中的motion功能,将
电机加装在杆*上,设定电机转速恒定为10 r=d・s>#
,X motion 分析中,对构件 5 进行运动分析
终端



回 入库
旧管
系统,
资 的用 ,
本:
Research and Design "0 Fixed Network Terminal Inventory Management
U*#=)-
bang bing
(Chongbo Information Technology Researph Institute Ko・HLtd・,Nanjing Jiangs. 211500)

输出平面六杆机构中构件 5 的位移、速度、加速度运
动图像⑷(构件5运动图像如图4所示)。
0.00 0.72 1.44 2.16 2.88 3.60 4.32 5.04 5.76 6.48 7.20
Js
4>1
Ie
>FG
0.00 0.72 1.44 2.16 2.88 3.60 4.32 5.04 5.76 6.48 7.20
Js
4>2滑块I方
-速度
@
50 100 150 200 250 300 350 400
角度JM
图!平面六杆机构构件4的运动图像
' (" " 789:;<FG*H

基于MATLAB软件的铰链四杆机构运动分析仿真软件开发

基于MATLAB软件的铰链四杆机构运动分析仿真软件开发

文章编号: 1009-3818(2002)02-0047-03基于MATLAB 软件的铰链四杆机构运动分析仿真软件开发覃虹桥1 魏承辉2 罗佑新2(1华中科技大学材料学院 湖北武汉430074)(2常德师范学院机械工程系 湖南常德415003)摘 要: 建立了铰链四杆机构运动分析的数学模型,以MATLAB 程序设计语言为平台,将参数化设计与交互式相结合,设计了铰链四杆机构仿真软件,该软件具有方便用户的良好界面,并给出界面设计程序,从而使机构分析更加方便、快捷、直观和形象.设计者只需输入参数就可得到仿真结果,再将运行结果与设计要求相比较,对怎样修改设计做出决策.它为四杆机构设计提供了一种实用的软件与方法.关键词: 铰链四杆机构;按钮;界面;仿真中图分类号: TH 311.52;TH 113.2+2 文献标识码: A铰链四杆机构的运动学分析是机构学中典型的机构运动分析之一,如果设计铰链四杆机构时能及时图示其运动轨迹和速度分析,从而将图示结果与设计要求相比较,可以及时修改设计中的偏差.目前,MALTAB 已经不再是/矩阵实验室0,而成为国际上最流行的科学与工程计算的软件工具,以及一种具有广泛应用前景的全新的计算机高级编程语言,它在国内外高校和科研部门正扮演着越来越重要的角色,功能也越来越大,不断适应新的要求提出新的解决办法.可以预见,在科学运算与科学绘图领域,MATLAB 语言将长期保持其独一无二的地位.然而,国内至今尚未见到采用MATLAB 开发的有关机构学的软件,笔者以MATLAB 的科学运算与绘图的强大功能开发了铰链机构运动仿真软件.1 铰链四杆机构运动轨迹仿真软件1.1 程序功能与数学模型1)程序功能 本程序可以进行铰链四杆机构的运动分析及位置求解.用户在铰链四杆机构运动分收稿日期:2002-12-10基金项目:湖南省教育厅科研资助项目(00C289)第一作者:覃虹桥(1959-)男高级工程师研究方向:机械设计制造析仿真软件里输入各种参数,即可自动演示不同的铰链四杆机构(曲柄摇杆机构、双曲柄机构、双摇杆机构)的运动.2)数学模型 已知AB=a ,BC =b ,C D =c ,AD=d .AB 为主动杆,以匀角速度逆时针旋转,AD 为机架,见图1.图1 铰链四杆机构运动简图Fig.1 plame four-linkage motion diagram分析:求B C 的运动轨迹,可找B 、C 两点坐标与转动角度51的关系,然后求51+d 51及B 、C 两点的坐标,即可求出运动轨迹.由图1有矢量方程:AB +BC =AD +DC ,则其分量方程为:a c os 51+b cos 52=d +c cos 53(1)a sin 51+b sin 52=c sin 53(2)将式(1)、(2)联立消去52并整理得:a 2+c 2+d 2-b 22ac +d c os 53a -d cos 51c -cos (51-53)=0(3)再改写为:sin 51sin 53+(cos 51-da)cos 53+a 2+c 2+d 2-b 22ac -d c os 51c=0(4)令r 1=sin 51,r 2=cos 51-d a ,r 2222第14卷第2期常德师范学院学报(自然科学版)Vol.14No.22002年6月Journal of Changde Teachers University(Natural Science Edition)Jun.2002则(4)化为:r 1sin 53+r 2cos 53=r 3(5)由三角恒等式求得:53=2arctg r 1?r 21+r 22-r 23r 2+r 3(6)式(6)两个解对应于机构的两种不同装配形式./+0对应于图1的实线,而/-0对应于图1的虚线.B 点坐标:B x =A x +a cos 51,B y =A y +a sin 51C 点坐示:C x =D x +c cos 53,C y =D y +a sin 53从运动杆的转角53,对时间求导可得DC 的角速度,由式(1)、(2)解出52按速度合成可求得BC 的转动角速度[2].1.2 程序框图以曲柄摇杆机构的运动仿真程度为例,程序框图如下:图2 程序框图Fig.2 Programming frame diagram1.3 程序代码采用MATLAB 开发图形界面,程序如下:%fourlinkages.mh_main=figure(.Units .,.normalized .,.Position .,[.3,.3,.5,.5],,.MenuBar .,.none .,.Name .,.四杆机构仿真.,.Number Title .,,.off .,.Resize .,.off .);h_axis=axes(.Units .,.normalized .,.Position .,[.12,.15,.6,.6],,.Tag .,.axPlot .,.Visible .,.on .,.XLim .,[-50,80<,.YLim .,-60,80]);h_text1=uicontrol (.Style .,.Text .,.Tag .,.myText1.,.Units .,,.normalized .,.Position .,[0.78,0.55,.05,.38],.String .,,.输入已知参数.,,.HorizontalAlignment .,.right .);h_te xt2=uicontrol(.Style .,.Text .,.Tag .,.myText2.,.Units .,,.nor malized .,.Position .,[0.15,0.90,.35,0.05],.String .,,.正在仿真,,OK !.,,.HorizontalAlignment .,.right .);a =20;b =50;c =40;d =50;fai =60;four_linkages0(a,b ,c,fai );%初始化图形h_edit1=uicontrol(.Style .,.Edit .,.Tag .,.myEdit1.,.Units .,,.normalized .,.Position .,[0.86,.85,.10,.1],.String .,.20.,,.HorizontalAlignment .,.right .);h_edit2=uicontrol(.Style .,.Edit .,.Tag .,.myEdit2.,.Units .,,.normalized .,.Position .,[0.86,.75,.10,.1],.String .,.50.,,.HorizontalAlignment .,.right .);h_edit3=uicontrol(.Style .,.Edit .,.Tag .,.myEdit3.,.Units .,,.normalized .,.Position .,[0.86,.65,.10,.1],.String .,.40.,,.HorizontalAlignment .,.right .);h_edit4=uicontrol(.Style .,.Edit .,.Tag .,.myEdit4.,.Units .,,.normalized .,.Position .,[0.86,.55,.10,.1],.String .,.60.,,.HorizontalAlignment .,.right .);h_list=uic ontrol(.Style .,.ListBox .,.Tag .,.myList .,.Units .,,.normalized .,.Position .,[0.78,.35,.20,.15],.String .,.正置|反置.,,.HorizontalAlignment .,.right .,.Value .,1);k=1;h_button1=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.25,.2,.1],.String .,,.运动轨迹仿真.,.CallBack .,,.hd1=findobj(gcf,..Tag ..,..myEdit1..);.,,.a =eval(get(hd1,..String ..));.,,.hd2=findobj(gcf,..Tag ..,..myEdit2..);.,,.b =eval(get(hd2,..String ..));.,,.hd3=findobj(gcf,..Tag ..,..myEdit3..);.,,.c =eval(get(hd3,..String ..));.,,.hd4=findobj(gcf,..Tag ..,..myEdit4..);.,,.d =eval(get(hd4,..String ..));.,,48常德师范学院学报(自然科学版)2002年.kk =get(findobj(gcf,..Ta g ..,..myList ..),..Value ..);.,,.four_linkages(a,b,c,d,kk ).]);%调用回调函数轨迹仿真.h_button2=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.15,.2,.1],.String .,,.角速度分析.,.CallBack .,.four_linkages1(a,b,c,d ,kk ).);h_button3=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.05,.2,.1],,.String .,.退出.,.CallBack .,.four_linkages2.);%调用回调函数退出系统在主程序中有3个回调函数和一个初始化函数,回调函数分别用轨迹仿真、运动分析和退出系统.回调函数程序按前述数学模型编程(程序略);初始化函数用程序运行时初始化界面的图形.运行程序产生以下界面(图3).图3 程序运行界面Fi g.3 Programming Interface在界面中输入已知参数,则可生成相应的图形.当输入a =20,b =50,c =40,d =60,装配形式选取正置时,如果选运动轨迹仿真,则得仿真轨迹(图4);如果装配形式选反置,进行轨迹仿真(图5).(注:图4 运动轨迹仿真(装配形式正置)Fi g.4 Moti on track simulation(positiveset)图5 运动轨迹仿真(装配形式为反置)Fig.5 Motion track simulation (in reverse positive set)在图4、5中为节省篇幅,这两个图形只选了对应图3的图形部分,界面的其它部分未剪取.).而当选取装配形式进行轨迹仿真后,可再选角速度分析,得到连杆与摇杆的角速度图形(略).2 结论1)自动演示不同的四杆机构的运动,模拟仿真运动轨迹与从动件的速度分析,有助于分析机构的速度、加速程度和机构的工作性能;2)采用MATLAB 语言开发机构仿真运动分析软件,开发界面容易,运行程序时无需编辑、连接,给使用者以极大的方便.只要输入数据,即可得到结果.将运行结果与设计要求相比较,从而引导设计者修改设计.参 考 文 献1 薛定宇.科学运算程序MATLAB5.3程序设计与应用[M ].北京:清华大学出版社,2000.2 孟宪源.现代机构手册(上)[M].北京:机械工业出版社,1994.3 王沫然.Si mulink4建模及动态仿真[M].北京:电子工业出版社,2002.THE DEVELOPMENT OF EMULATIONAL SOFTWARE FOR ANALYSIS OF MOTION IN PLANE GEMEL FOUR -LINKAGEBASED ON MATLAB SOFTWAREQING Hong -qiao 1 WEI CH eng -hui 2LU O You -xin 2(1T he material institute,Cen tral China University of Science and T echnology,Wuhan Hubei,430074)(2Department of Mechanical Engineering,Changde Teachers University,Changde Hunan 415003)Abstract A mathematical model of motion analysis was estab -lished in plane four-linkage,and emulational software was deve-loped .The software adop ted Matlab5.3.1as a desi gn language.It combined parametric design with interactive design and had good in -terface for user.Thus,i t was fas ter and more convenient to analyse linkage.The emulational result was obtained as soon as input param -eters was imported and the devisers can make decision-making of modification by the comparing emulational result with design de -mand.It provides an applied software and method for linkage.Key words Gemel Four -Linkage;button;interface;emula -tion(责任编校:谭长贵)49第2期覃虹桥 魏承辉 罗佑新 基于MATLAB 软件的铰链四杆机构运动分析仿真软件开发。

7R六杆_级机构的MATLAB运动学仿真

7R六杆_级机构的MATLAB运动学仿真

图 3 7R 六杆 Ⅲ级机构复数坐标下的运动简图
图 4 中的各积分模块的初值是以曲柄 1 的幅 角为 0172 rad 时 ,相应各个构件的位移 、速度输 入的 ,二个 MA TLAB 函数模块 crank. m 是根据 文献[ 4 ]端点 B 的加速度公式编写的函数 , R6ki. m 是根据式 (4) ~ (7) 编写的函数 ,每个数据线上 标注了相应变量 ,常量模块放置了各个构件的尺 寸 ,长度单位为 m ,角度单位为 rad. 由于曲柄转 速为 10 rad/ s ,因此每转动一周的时间是 01628 s , 设置仿真时间为 1 s ,仿真结果输出到工作空间变 量 simout 中 ,用绘图命令绘制出构件 2 和构件 3 的位移 、速度 、加速度. 分别是图 5 中的 a) 、b) 、c) 、 d) 、e) 、f) .
θk
π +2
-
ecos
θe
π +2
-
esin
θe
π +2
-
f cos
θf
π +2
-
f
sin
θf
+
π 2
-
gcos
θg
π +2
-
gsin
θg
π +2
·
··
θi
··
θj
··
θk
·· = -
θe
··
θf
··
θg
- ricos(θi +π) - risin(θi +π)
ricos(θi +π) ricos(θi +π)
MA TLAB 运动学仿真[J ] . 机械传动 , 2003 (5) :30 -

基于MATLAB的双摇杆机构运动分析与仿真

基于MATLAB的双摇杆机构运动分析与仿真

本科生毕业设计基于MATLAB的双摇杆机构运动分析与仿真Based on the MATLAB double rocker organization movement analysis and simulation基于MATLAB/SIMULINK的双摇杆机构运动学分析与仿真邹凯旋云南农业大学工程技术学院,昆明黑龙潭650201摘要平面连杆机构的应用十分广泛,它的分析及设计一直是机构学研究的一个重要课题。

MATLAB的Simulink是一个对动态系统建模和仿真分析的软件包,为信号与系统仿真实验提供了很好的平台。

借助其强大的模拟仿真分析功能可以方便的实现机构性能分析和动态仿真,降低分析的难度,有效提高设计工作效率、产品开发质量、降低开发成本。

本设计课题以MATLAB的simulink\simMechanics 动态模拟仿真工具为平台,对双摇杆机构进行运动分析。

结果表明该仿真方法能方便、准确的得到机构的运动、动力数据,能为机构的选择、优化设计提供参考依据。

应用此工具可很好地对机械系统的各种运动进行分析,构造出平面连杆机构的数学模型。

通过对此数学模型分析,分离出可独立求解的机构模型,并用相应的机构分析方法对它进行求解,建立了平面连杆机构运动学分析专家系统。

系统可完成部分平面连杆机构的运动学分析及动画仿真,从而为机械系统的建模仿真提供一个强大而方便的工具。

关键词:连杆机构;动态仿真;SimMechanics;数学模型Based on the MATLAB double rocker organizationmovement analysis and simulationZou kaixuanFaculty of Engineering and Technology Yunan Agricultural University,HeilongtanKunming 650201ABSTRACTPlanar linkage mechanism used widely, its analysis and design of the study of institutions has been an important subject. MATLAB Simulink is a dynamic system modeling and simulation software package, for signal and system simulation results provide a good platform. With its powerful simulation analysis function is realized the performance analysis and the dynamic simulation institutions, reduce the difficulties of analysis, effectively improve the design work efficiency and product development quality, reduce development costs. This design task to MATLAB simulink \ simMechanics dynamic simulation tools as the platform, on the double rocker organization motion analysis. The results show that the simulation method can conveniently, accurately to get the kinematic and dynamic data organization, for the choice of institutions, optimum design to provide the reference. This tool can application is mechanical system analysis of all kinds of sports, constructed the mathematical model of the planar linkage mechanism. Through mathematical model to analysis, separating out can be independent of solving mechanism model, and the corresponding institutions analysis method to solve it, a planar linkage mechanism kinematic analysis of the expert system. System can finish part of planar linkage mechanism kinematic analysis and animated simulation, thus for mechanical system modeling simulation provide a strong and convenient tool.Key words: linkage;Dynamic Simulation;SimMechanics;mathematical model目录摘要 (Ⅰ)ABSTRACT (Ⅱ)目录 (Ⅳ)图目录 (Ⅴ)公式目录 (Ⅴ)前言 (1)一、概述 (1)1. 双摇杆机构的相关知识 (1)2. 双摇杆机构的运动学分析传统方法 (1)3. 用软件进行机构运动学分析的现状和趋势 (2)4. 使用MATLAB/SIMULINK的优势 (2)5. MATLAB/SIMLINK的特点 (3)二、设计任务分析 (3)1. 设计内容和任务 (3)2. 实现技术路线 (4)3. 关键问题和难点分析 (5)三、程序设计与实现 (5)1. 系统组成 (6)2. 程序设计与实现 (6)3. 基于运动学的模型建立 (7)4. 参数化设计 (9)5. 仿真结果 (14)四、设计结果分析 (15)1. 软件的使用方法 (15)2. 存在的缺点和今后改进的方向 (16)五、设计心得 (16)参考文献 (18)致谢 (19)图目录图1-1双摇杆机构 (1)图1-2鹤式起重机 (1)图2-1实现的流程图 (5)图2-2双摇杆机构运动简图 (5)图3-1 Simulink界面 (6)图3-2new model (7)图3-3SimMechanics (7)图3-4 bodies (7)图3-5Joints (8)图3-6Sensors Actuators (8)图3-7双摇杆机构仿真模型图 (9)图3-8Ground模块 (9)图3-9evolute模块 (10)图3-10bodyAB模块 (10)图3-11bodyBC模块 (11)图3-12bodyCD模块 (11)图3-13Joint Seneor模块 (12)图3-14Joint Initial Condition模块 (12)图3-15Scope模块 (12)图3-16机械环境模块 (13)图3-17命令窗口参数输入 (14)图3-18仿真结果的动画显示 (14)图3-19位置图、速度图、加速度图 (15)一、概述1.双摇杆机构的相关知识在双摇杆机构中,两摇杆均可作主动件。

Engineer和MATLAB凸轮配气机构的运动仿真

Engineer和MATLAB凸轮配气机构的运动仿真

Engineer和MATLAB凸轮配气机构的运动仿真作为一名工程师,MATLAB和凸轮配气机构的运动仿真是我工作中不可或缺的技能。

凸轮配气机构是用于控制内燃机气门开闭的重要装置,它通过凸轮的转动驱动汽缸内的柄杆并带动气门运动。

而运用MATLAB进行凸轮配气机构的运动仿真便可以更精确地模拟设备运动并进行性能优化。

我在MATLAB中设计了一个凸轮配气机构模型,并利用其中的模拟工具箱中的Simulink进行动态仿真。

我们首先将内燃机的气门开启和关闭的比例进行优化,保证了最高效的功率输出。

之后,我们使用MATLAB的曲线拟合工具箱来获得不同气门开启和关闭时刻的角度和位置信息。

通过这些数据,我们可以确定最佳的凸轮轮廓。

在为凸轮进行仿真测试之前,我们需要确保真实机器的物理参数已经定义。

MATLAB经典的自适应计算方法可以在相对较短的时间内对不同的凸轮设计进行运动仿真测试,这有助于我们快速地判断各种不同参数下的设计的优劣。

仿真测试呈现了凸轮的不同状态下内燃机气门的开启和关闭过程。

开关气门的时间可以根据我们需要进行调整。

在进行模拟运算时,我们可以模拟不同转速下的内燃机运动,并在不同负载下测试内燃机的动力性能,这使得我们能够以客观的角度评估不同的凸轮设计,并选择最佳设计方案。

我们也可以使用MATLAB来获得不同凸轮形状的旋转速度和运动惯性等信息,这有助于我们进行可靠的控制系统设计。

以及这方面的进一步研究将为制造商提供更高效和可靠的凸轮配气机构设计,从而提高工业内燃机的性能和可靠性。

总的来说,作为一名工程师,MATLAB和凸轮配气机构的运动仿真技能可以帮助我简化产品设计过程,并提供更准确和可靠的性能评估。

通过利用动态仿真,我可以以客观的方法评估各种设计,并选择最佳的方案。

我相信,这些技能将在工业界得到更广泛的重视和应用,为制造商带来更多的商业利益和竞争优势。

数据分析是工程师工作中非常重要的环节,它能够让我们更好地了解产品性能并发现其中的问题。

牛头刨床运动仿真matlab程序

牛头刨床运动仿真matlab程序

附录牛头刨床主运动机构MATLAB程序由主程序six_bar_main 和子函数six_bar 两部分组成。

1.主程序 six_bar_main文件%1.输入已知数据clear;l1=0.125;l3=0.600;l4=0.150;l6=0.275;l61=0.575;omega1=1;alpha1=0;hd=pi/180;du=180/pi;%2.调用子函数six_bar计算牛头刨床机构位移,角速度,角加速度for n1=1:459;theta1(n1)=-2*pi+5.8199+(n1-1)*hd;ll=[l1,l3,l4,l6,l61];[theta,omega,alpha]=six_bar(theta1(n1),omega1,alpha1,ll);s3(n1)=theta(1);theta3(n1)=theta(2);theta4(n1)=theta(3);sE(n1)=theta(4);v2(n1)=omega(1);omega3(n1)=omega(2);omega4(n1)=omega(3);vE(n1)=omega(4);a2(n1)=alpha(1);alpha3(n1)=alpha(2);alpha4(n1)=alpha(3);aE(n1)=alpha(4);end%3.位移、角速度、角加速度、和牛头刨床图形输出figure(3);n1=1:459;t=(n1-1)*2*pi/360;subplot(2,2,1); %绘角位移及位移线图plot(t,theta3*du,'r-.');grid on;hold on;axis auto;[haxes,hline1,hline2]=plotyy(t,theta4*du,t,sE); grid on;hold on;xlabel('时间/s')axes(haxes(1));ylabel('角位移/\circ')axes(haxes(2));ylabel('位移/m')hold on;grid on;text(1.15,-0.15,'\theta_3')text(3.40,0.27,'\theta_4')text(2.25,-0.15,'s_E')subplot(2,2,2); %绘角速度及速度线图plot(t,omega3,'r-.');grid on;hold on;axis auto;[haxes,hline1,hline2]=plotyy(t,omega4,t,vE); grid on;xlabel('时间/s')axes(haxes(1));ylabel('角速度/rad\cdots^{-1}')axes(haxes(2));ylabel('速度/m\cdots^{-1}')hold on;grid on;text(3.1,0.35,'\omega_3')text(2.1,0.1,'\omega_4')text(5.5,0.45,'v_E')subplot(2,2,3); %绘角加速度及加速度线图plot(t,alpha3,'r-.');grid on;hold on;axis auto;[haxes,hline1,hline2]=plotyy(t,alpha4,t,aE); grid on;hold on;xlabel('时间/s')axes(haxes(1));ylabel('角加速度/rad\cdots^{-2}')axes(haxes(2));ylabel('加速度/m\cdots^{-2}')hold on;grid on;text(1.5,0.3,'\alpha_3')text(3.5,0.51,'\alpha_4')text(1.5,-0.11,'a_E')subplot(2,2,4); %牛头刨床机构x(1)=0;y(1)=0;x(2)=(s3(n1)*1000-50)*cos(theta3(n1));y(2)=(s3(n1)*1000-50)*sin(theta3(n1));x(3)=0;y(3)=16*1000;x(4)=l1*1000*cos(theta1(n1));y(4)=s3(n1)*1000*sin(theta3(n1));x(5)=(s3(n1)*1000+50)*cos(theta3(n1));y(5)=(s3(n1)*1000+50)*sin(theta3(n1));x(6)=13*1000*cos(theta3(n1));y(6)=13*1000*sin(theta3(n1));x(7)=13*1000*cos(theta3(n1))+14*1000*cos(theta4(n1));y(7)=13*1000*sin(theta3(n1))+14*1000*sin(theta4(n1));x(8)=13*1000*cos(theta3(n1))+14*1000*cos(theta4(n1))-900; y(8)=161*1000;x(9)=13*1000*cos(theta3(n1))+14*1000*cos(theta4(n1))+600; y(9)=161*1000;x(10)=(s3(n1)*1000-50)*cos(theta3(n1));y(10)=(s3(n1)*1000-50)*sin(theta3(n1));x(11)=x(10)+25*cos(pi/2-theta3(n1));y(11)=y(10)-25*sin(pi/2-theta3(n1));x(12)=x(11)+100*cos(theta3(n1));y(12)=y(11)+100*sin(theta3(n1));x(13)=x(12)-50*cos(pi/2-theta3(n1));y(13)=y(12)+50*sin(pi/2-theta3(n1));x(14)=x(10)-25*cos(pi/2-theta3(n1));y(14)=y(10)+25*sin(pi/2-theta3(n1));x(15)=x(10);y(15)=y(10);x(16)=0;y(16)=0;x(17)=0;y(17)=16*1000;k=1:2;plot(x(k),y(k));hold on;k=3:4;plot(x(k),y(k));hold on;k=5:9;plot(x(k),y(k));hold on;k=10:15;plot(x(k),y(k));hold on;k=16:17;plot(x(k),y(k));hold on;grid on;axis([-500 600 0 650]); title('牛头刨床运动仿真'); grid on;xlabel('mm')ylabel('mm')plot(x(1),y(1),'o');plot(x(3),y(3),'o');plot(x(4),y(4),'o');plot(x(6),y(6),'o');plot(x(7),y(7),'o');hold on;grid on;xlabel('mm')ylabel('mm')axis([-400 600 0 650]);%4牛头刨床机构运动仿真figure(2)m=moviein(20);j=0;for n1=1:5:360j=j+1;clf;x(1)=0;y(1)=0;x(2)=(s3(n1)*1000-50)*cos(theta3(n1));y(2)=(s3(n1)*1000-50)*sin(theta3(n1));x(3)=0;y(3)=l6*1000x(4)=l1*1000*cos(theta1(n1));y(4)=s3(n1)*1000*sin(theta3(n1));x(5)=(s3(n1)*1000+50)*cos(theta3(n1));y(5)=(s3(n1)*1000+50)*sin(theta3(n1));x(6)=l3*1000*cos(theta3(n1));y(6)=l3*1000*sin(theta3(n1));x(7)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1));x(7)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1));y(7)=l3*1000*sin(theta3(n1))+l4*1000*sin(theta4(n1));x(8)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1))-900; y(8)=l61*1000;x(9)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1))+600; y(9)=l61*1000;x(10)=(s3(n1)*1000-50)*cos(theta3(n1));y(10)=(s3(n1)*1000-50)*sin(theta3(n1));x(11)=x(10)+25*cos(pi/2-theta3(n1));y(11)=y(10)-25*sin(pi/2-theta3(n1));x(12)=x(11)+100*cos(theta3(n1));y(12)=y(11)+100*sin(theta3(n1));x(13)=x(12)-50*cos(pi/2-theta3(n1));y(13)=y(12)+50*sin(pi/2-theta3(n1));x(14)=x(10)-25*cos(pi/2-theta3(n1));y(14)=y(10)+25*sin(pi/2-theta3(n1)); x(15)=x(10);y(15)=y(10);x(16)=0;y(16)=0;x(17)=0;y(17)=l6*1000;k=1:2;plot(x(k),y(k));hold on;k=3:4plot(x(k),y(k));hold on;k=5:9;plot(x(k),y(k));hold on;k=10:15;plot(x(k),y(k));hold on;k=16:17;plot(x(k),y(k));hold on;grid on;axis([-500 600 0 650]);title('牛头刨床运动仿真');grid on;xlabel('mm');ylabel('mm');plot(x(1),y(1),'o');plot(x(3),y(3),'o');plot(x(4),y(4),'o');plot(x(6),y(6),'o');plot(x(7),y(7),'o');axis equal;m(j)=getframe;endmovie(m)2.子函数six_bar文件function[theta,omega,alpha]=six_bar(theta1,omega1,alpha1,ll)l1=ll(1);l3=ll(2);l4=ll(3);l6=ll(4);l61=ll(5);%1计算角位移和线位移s3=sqrt((l1*cos(theta1))*(l1*cos(theta1))+(l6+l1*sin(theta1))*(l6+l1* sin(theta1)));theta3=acos((l1*cos(theta1))/s3);theta4=pi-asin((l61-l3*sin(theta3))/l4);sE=l3*cos(theta3)+l4*cos(theta4);theta(1)=s3;theta(2)=theta3;theta(3)=theta4;theta(4)=sE;%2计算角速度和线速度A=[sin(theta3),s3*cos(theta3),0,0; %从动件位置参数矩阵-cos(theta3),s3*sin(theta3),0,0;0,l3*sin(theta3),l4*(theta4),1;0,l3*cos(theta3),l4*cos(theta4),0];B=[l1*cos(theta1);l1*sin(theta1);0;0]% 原动件位置参数矩阵omega=A\(omega1*B);v2=omega(1); %滑块2的速度omega3=omega(2); %构件3的角速度omega4=omega(3); %构件4的角速度vE=omega(4) %构件5的速度%3计算角加速度和加速度A=[sin(theta3),s3*cos(theta3),0,0; %从动件位置参数矩阵cos(theta3),-s3*sin(theta3),0,0;0,l3*sin(theta3),l4*(theta4),1;0,l3*cos(theta3),l4*cos(theta4),0];At=[omega3*cos(theta3),(v2*cos(theta3)-s3*omega3*sin(theta3)),0,0; -omega3*sin(theta3),(-v2*sin(theta3)-s3*omega3*cos(theta3)),0,0; 0,l3*omega3*cos(theta3),l4*omega4*cos(theta4),0;0,-l3*omega3*sin(theta3),-l4*omega4*sin(theta4),0];Bt=[-l1*omega1*sin(theta1);-l1*omega1*cos(theta1);0;0];alpha=A\(-At*omega+omega1*Bt); %机构从动件的加速度矩阵a2=alpha(1); %a2表示滑块2的加速度alpha3=alpha(2); %alpha3表示杆件3的角加速度alpha4=alpha(3); %alpha4表示杆件4的角加速度aE=alpha(4); %构件5的加速度。

五连杆机构MATLAB仿真

五连杆机构MATLAB仿真

三自由度混联机械臂运动仿真1. 仿真介绍1.1 部件参数在此仿真中,模型采用solidworks制作,通过逐个零件导入仿真系统完成,各个部件的参数为:底座(AE):1.4×0.5×0.4(单位:m),轴间距=1m,轴台高0.06m,分级轴半径为0.03m、0.02m,有圆角;连杆(AB-DE):1.08×0.08×0.02(单位:m),孔间距=1m,孔半径=0.02m;动轴(Z1):0.02(半径)×0.5(长度)(单位:m),还有细节处理成型;(螺栓,螺帽均为自制建议模型,仅用于美化外观)1.2 模块介绍在此仿真中,主要分为三大模块,控制模块、模型模块以及显示模块。

1.2.1 控制模块在此模块中,主要用到MATLAB Fuction、PID控制器、Clock、SUM、PS-Simulink converter和Simulink-PS converter等模块,此模块根据各杆件之间的运动关系控制杆件的运动,从而得到我们所需要的特殊运动。

1.2.2 模型模块在此模块中,主要是进行各部件之间的配合,使杆件之间的运动能够连接起来,从而完成模型整体的构建。

1.2.3显示模型在此模块中,主要用Scope元件显示出各杆件的运动情况,从而让我们判断出该运动是否为我们所需要,以及各个时间点、空间点上的运动情况。

2 仿真展示杆件初始位置图任意中间时刻位置图杆件结束位置图仿真图3.解机构过程3.1 反解过程分成两部分求解:AB和BC杆:syms thA thB x ye1=x==cos(thA)+cos(thB);E2=y==sin(thA)+sin(thB);[thA,thB]=solve(e1,e2,thA,thB);得出:thA1=2*atan((4*y)/(x^2 + 2*x + y^2) - (2*y + (-(x^2 + y^2)*(x^2 + y^2 - 4))^(1/2))/(x^2 + 2*x + y^2));thA2==-2*atan((2*y - (-(x^2 + y^2)*(x^2 + y^2 - 4))^(1/2))/(x^2 + 2*x + y^2) - (4*y)/(x^2 + 2*x + y^2));还有两组解不实用就不写出了。

曲柄滑块机构的运动学matlab仿真

曲柄滑块机构的运动学matlab仿真

代码实例[anim_zzy1.m]function f=anim_zzy1(K,ki)% anim_zzy1.m 演示红色小球沿一条封闭螺线运动的实时动画% 仅演示实时动画的调用格式为anim_zzy1(K) % 既演示实时动画又拍摄照片的调用格式为f=anim_zzy1(K,ki)% K 红球运动的循环数(不小于1 )% ki指定拍摄照片的瞬间,取1 到1034 间的任意整数。

% f 存储拍摄的照片数据,可用image(f.cdata) 观察照片。

% 产生封闭的运动轨线t1=(0:1000)/1000*10*pi;x1=cos(t1);y1=sin(t1);z1=-t1;t2=(0:10)/10;x2=x1(end)*(1-t2);y2=y1(end)*(1-t2);z2=z1(end)*ones(size(x2));t3=t2;z3=(1-t3)*z1(end);x3=zeros(size(z3));y3=x3;t4=t2;x4=t4;y4=zeros(size(x4));z4=y4;x=[x1 x2 x3 x4];y=[y1 y2 y3 y4];z=[z1 z2 z3 z4];plot3(x,y,z, 'b' ), axis off % 绘制曲线% 定义" 线" 色、" 点" 型(点)、点的大小(40 )、擦除方式(xor) h=line( 'Color' ,[1 0 0], 'Marker' , '.' , 'MarkerSize' ,40, 'EraseMode' , 'xor' );% 使小球运动n=length(x);i=1;j=1;while 1 % 无穷循环set(h, 'xdata' ,x(i), 'ydata' ,y(i), 'zdata' ,z(i)); % 小球位置drawnow; % 刷新屏幕<21>pause(0.0005) % 控制球速<22>i=i+1;ifnargin==2 &nargout==1 % 仅当输入宗量为2 、输出宗量为1 时,才拍摄照片if (i==ki&j==1);f=getframe(gcf); end % 拍摄i=ki时的照片<25>endif i>ni=1;j=j+1;if j>K; break ; endendend(2)在指令窗中运行以下指令,就可看到实时动画图形。

基于Matlab的机构运动仿真方法及其比较

基于Matlab的机构运动仿真方法及其比较

基于Matlab的机构运动仿真方法及其比较摘要:机构运动仿真在机构学研究中占有着非常重要的地位,本文依照仿真活动生命周期,总结概括了三种机构运动仿真方法,并进行对比研究深入分析。

基于MatLab平台,以曲柄摆杆机构为例探究这三种方法的实现途径。

关键词:Matlab;机构运动仿真;对比前言运动学仿真对于机构设计研究有着非常重要的地位,它能够去除大量的复杂繁琐和重复的计算工作,对运动过程进行直观的表达。

在机构运动仿真中,明确不同仿真方法及其特点,把握仿真方法的发展趋势,从而充分选择和利用不同仿真平台的功能,对于节约仿真费用,提高研究效率等方面有积极作用。

1.Matlab概述Matlab是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

2.机构运动仿真机构仿真周期主要由建立模型,求解模型,展现结果,观察结果和调整模型等五部分构成,如图1所示。

建立模型即列出相关构件或关键点的运动方程,通过求解模型解算出相关点的位姿数据,基于这些数据建立直观的人机界面,将运动过程动态展现给用户。

通常仿真与优化配合使用,由于人机界面的直观性,通过观察常常可以获得优化方面的新信息,利用优化后的新参数调整仿真模型,开始一个新的仿真活动周期,直到获得满意结果为止。

根据对机构仿真中各阶段的侧重不同,可以将机构运动仿真方法基本归为三个大的类别。

第一类的核心是,对仿真模型进行数值求解,称之为基于模型解算的仿真方法。

第二类以提供建模支持手段为核心,利用一些辅助工具来提高建模效率,称之为基于辅助建模的仿真方法。

第三类方法中引进了虚拟现实技术,称之为基于虚拟现实的仿真方法。

以下以图1所示的曲柄摆杆机构为例,说明三种仿真方法的实现过程。

该机构的相关参数分别为l1=370,l2=1049.6,l3=524.7,(xd,yd)=(1080.3,-270)。

机构运动matlab仿真

机构运动matlab仿真

已知:l ab=30mm,l bc=71mm,l cd=35.5mm,l de=28mm,l bs2=35.5,w1=10rad/s,m2=2kg,j s2=0.08kgm2 1,3,4,5上的惯性力和重力不计,构件5上作用阻力p=500N,l ef=20mm求,个运动副的反力和构件1上的平衡力矩MbPF解:分析:将机构分为rigid,RRP ,RRR.1.然后先赋初值:pa=0+0i; r1=0.03; r2=0.071;r4=0.0355;r5=0.028;rbs2=0.0355;w1=10;m2=2;js2=0.008;pe=-0.11+0.04i;t=0:135; phi1=t*pi/180; th1=3*pi/4+phi1;ve=0;ae=0;aa=0;va=0;e1=0;2.然后带入子程序:[ab,vb,pb]=rigid(aa,va,pa,w1,e1,r1,th1);m=-1;pw=-1000+0i;vbet=0;abet=0;bet=0;%导杆的运动参数[pc,th2,lwc,vc,w2,vwc,ac,e2,awc]=KRRP(pb,pw,vb,va,vbet,ab,aa,abet,r2,bet,m);m=-1;pcx=real(pc);[pd,th4,ths,vd,w4,w3,ad,e4,e3]=KRRR2(pe,pc,ve,vc,ae,ac,r5,r4,m);3.知道各点的运动参数,再求解力分析。

先求质点的运动规律。

ref=0.008;[af,vf,pf]=rigid(ad,vd,pd,w4,e4,ref,th4); %求受力点F的运动参数[as2,vs2,ps2]=rigid(ab,vb,pb,w2,e2,rbs2,th2);4.再求解力分析。

ps4=pc;m4=0;m5=0;js4=0;jf=0;fs4=0;ff=500;m04=0;m05=0;as4=ac;e3r=-e3;[fc,fe,fd]=FRRR(pc,pe,pd,ps4,pf,m4,m5,js4,jf,fs4,ff,m04,m05,as4,af,e3r,e4); %以cde为研究对象psc=pc;m2=2;m3=0;js3=0;f02=0;f03=real(fc);m02=0;m03=0;as3=ac;[fb,fc2,fca,lca]=FRRP(pb,pa,pc,ps2,psc,r2,m2,m3,js2,js3,f02,f03,m02,m03,as2,as3,e2,e3);ps1=pa;m1=0;js1=0;f01=0;m01=0;as1=aa;[fa,m1]=Fbody(pa,pb,ps1,m1,js1,fb,f01,m01,as1,e1);5.最后画出图像:phid=t*1+135; %将弧度转化为度;pcx=real(pc);vcx=real(vc);acx=real(ac);figure(1); plot(phid,pcx);title('c点的位移曲线')xlabel('θ1的角度(°)');ylabel('s(m)')figure(2); plot(phid,vcx)title('c点的速度曲线'); xlabel('θ1的角度(°)') ylabel('v(m/s)')figure(3); plot(phid,acx)title('c点的加速度曲线')xlabel('θ1的角度(°)'); ylabel('a(m/s/s)')figure(4); plot(phid,m1)title('构件1上的平衡力矩M1')xlabel('θ1的角度(°)'); ylabel('力矩(NM)')fex=real(fe);fey=imag(fe);fe=abs(fe);figure(5); plot(phid,fex,phid, fey,phid,fe) legend('X方向的分力','Y方向的分力','合力',1) title('绞点e点的所受的反力')xlabel('θ1的角度(°)'); ylabel('力(N)')fdx=real(fd);fdy=imag(fd);fd=abs(fd);figure(6); plot(phid,fdx,phid, fdy,phid,fd) legend('X方向的分力','Y方向的分力','合力',1) title('绞点d点的所受的反力')xlabel('θ1的角度(°)'); ylabel('力(N)')fcx=real(fc);fcy=imag(fc);fc=abs(fc);figure(7); plot(phid,fcx,phid, fcy,phid,fc) legend('X方向的分力','Y方向的分力','合力',1) title('绞点c点的所受的反力')xlabel('θ1的角度(°)'); ylabel('力(N)')fbx=real(fb);fby=imag(fb);fb=abs(fb);figure(8); plot(phid,fbx,phid, fby,phid,fb) legend('X方向的分力','Y方向的分力','合力',1) title('绞点b点的所受的反力')xlabel('θ1的角度(°)'); ylabel('力(N)')fax=real(fa);fay=imag(fa);fa=abs(fa);figure(9); plot(phid,fax,phid, fay,phid,fa) legend('X方向的分力','Y方向的分力','合力',1) title('绞点a点的所受的反力')xlabel('θ1的角度(°)'); ylabel('力(N)')6.源程序如下:%p68 题目2-4,位置,速度,加速度分析及动态静力分析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机械原理第一次作业(matlab7.0):求:r1旋转360°时,θ2,θ3,ω2,ω3,α2,α3和C点的加速度. 设r1=1000,r2=2000,r3=1800,r4=25001、角位移的M函数:function y=diyiwen(x)% Input parameters% x(1)=theta-1% x(2)=theta-2 guess value% x(3)=theta-3 guess value% x(4)=r1% x(5)=r2% x(6)=r3% x(7)=r4% Output parameters% y(1)=theta-2% y(2)=theta-3theta2=x(2);theta3=x(3);%epsilon=1.0E-6;%f=[x(4)*cos(x(1))+x(5)*cos(theta2)-x(7)-x(6)*cos(theta3);x(4)*sin(x(1))+x(5)*sin(theta2)-x(6)*sin(theta3)];%while norm(f)>epsilonJ=[-x(5)*sin(theta2) x(6)*sin(theta3);x(5)*cos(theta2) -x(6)*cos(theta3)];dth=inv(J)*(-1.0*f);theta2=theta2+dth(1);theta3=theta3+dth(2);f=[x(4)*cos(x(1))+x(5)*cos(theta2)-x(7)-x(6)*cos(theta3);x(4)*sin(x(1))+x(5)*sin(theta2)-x(6)*sin(theta3)];norm(f);end;y(1)=theta2;y(2)=theta3;r1旋转360°时,θ2,θ3的M文件程序:r(1)=1000;r(2)=2000;r(3)=1800;r(4)=2500;dr=pi/180;th(1)=0;th(2)=59.8897 *dr;th(3)=106.0172*dr;y=diyiwen([th(1),th(2),th(3),r(1),r(2),r(3),r(4)])dth=1*dr;for i=1:360y=diyiwen([th(1),th(2),th(3),r(1),r(2),r(3),r(4)]);th23(i,:)=[th(1)/dr,th(2)/dr,th(3)/dr];th(1)=th(1)+dth;th(2)=y(1);th(3)=y(2);endfigure(1)plot(th23(:,1),th23(:,2),th23(:,1),th23(:,3),th23(:,1),th23(:,1)) axis([0,360,0,360])grid ontitle('角位移线图')xlabel('曲柄转角th(1)')ylabel('从动件转角th(2),th(3)')text(300,50,'角th(2)')text(300,150,'角th(3)')text(200,200,'角th(1)')2、角速度的M函数:function y=dierwen(x)% Iput parameters%% x(1)=theta-1% x(2)=theta-2% x(3)=theta-3% x(4)=dtheta-1% x(5)=r1% x(6)=r2% x(7)=r3%% Output parameters%% y(1)=dtheta-2% y(2)=dtheta-3%A=[-x(6)*sin(x(2)) x(7)*sin(x(3));x(6)*cos(x(2)) -x(7)*cos(x(3))];B=[x(5)*sin(x(1));-x(5)*cos(x(1))]*x(4);y=inv(A)*B;ω2,ω3r1旋转360°时ω2,ω3的M文件程序:th(1)=0;dr=pi/180;dth(1)=10;dth(2)=59.8897*dr;dth(3)=106.0172*dr;dth1=1*dr;r(1)=1000;r(2)=2000;r(3)=1800;r(4)=2500;for j=1:360x=dierwen([th(1),dth(2),dth(3),dth(1),r(1),r(2),r(3)]);y=diyiwen([th(1),dth(2),dth(3),r(1),r(2),r(3),r(4)]);dth(2)=y(1);dth(3)=y(2);th(1)=th(1)+dth1;dth23(j,:)=[th(1)/dr,x(1)/dr,x(2)/dr];endfigure(2)plot(dth23(:,1),dth23(:,2),dth23(:,1),dth23(:,3))axis([0,360,-400,400])grid ontitle('角速度线图')xlabel('曲柄旋转角度')ylabel('从动件角速度dth(2),dth(3)(rad/s)')text(250,200,'连杆2角速度')text(50,100,'摇杆3角速度')3、r1旋转360°时,α2,α3程序M文件:r(1)=1000;r(2)=2000;r(3)=1800;r(4)=2500;th(1)=0;dr=pi/180;dth(2)=59.8897 *dr;dth(3)=106.0172*dr;dth(1)=10;dth2=1*dr;for k=1:360x=dierwen([th(1),dth(2),dth(3),dth(1),r(1),r(2),r(3)]);y=diyiwen([th(1),dth(2),dth(3),r(1),r(2),r(3),r(4)]);dth(2)=y(1);dth(3)=y(2);w1=x(1);w2=x(2);C=[-r(2)*sin(dth(2)),r(3)*sin(dth(3));r(2)*cos(dth(2)),-r(3)*cos(dth(3))];D=-[-w1*r(2)*cos(dth(2)),w2*r(3)*cos(dth(3));-w2*r(2)*sin(dth(2)),w2*r(3)*sin(dth(3))]…*[w1;w2]+10*[10*r(1)*cos(th(1));10*r(1)*sin(th(1))];a=inv(C)*D;a2(k)=a(1);a3(k)=a(2);jiao(k)=th(1);th(1)=th(1)+dth2;endfigure(3)plot(jiao/dr,a2,jiao/dr,a3)axis([0,360,-100,100])grid ontitle('角加速度线图')xlabel('曲柄旋转转角')ylabel('从动件角加速度(rad/s^2)')text(200,40,'连杆2的角加速度')text(150,-40,'摇杆3的角加速度')4、C点的加速度函数:C点的M函数文件:function y=cdjsd(x)% x(1)=r(1);% x(2)=r(2);% x(3)=th(1);% x(4)=th(2);% x(5)=w1;% x(6)=w2;% x(7)=a(1);y=[-x(1)*sin(x(3)),-x(2)*sin(x(4));x(1)*cos(x(3)),x(2)*cos(x(4))]*[0;x(7)]+[-x(1)*x(5)*cos(x(3)), -x(2)*x(6)*cos(x(4));-x(1)*x(5)*sin(x(3)),-x(2)*x(6)*sin(x(3))]*[x(5)^2;x(6)^2];r1旋转360°时,C点的加速度的M文件程序:r(1)=1000;r(2)=2000;r(3)=1800;r(4)=2500;th(1)=0;dr=pi/180;dth(2)=59.8897*dr;dth(3)=106.0172*dr;dth(1)=10;dth2=1*dr;for k=1:360x=dierwen([th(1),dth(2),dth(3),dth(1),r(1),r(2),r(3)]);y=diyiwen([th(1),dth(2),dth(3),r(1),r(2),r(3),r(4)]);dth(2)=y(1);dth(3)=y(2);w1=x(1);w2=x(2);C=[-r(2)*sin(dth(2)),r(3)*sin(dth(3));r(2)*cos(dth(2)),-r(3)*cos(dth(3))];D=-[-w1*r(2)*cos(dth(2)),w2*r(3)*cos(dth(3));-w2*r(2)*sin(dth(2)),w2*r(3)*sin(dth(3))]*[w1;w 2]+10*[10*r(1)*cos(th(1));10*r(1)*sin(th(1))];a=inv(C)*D;a2=a(1);ac=cdjsd([r(1),r(2),th(1),dth(2),w1,w2,a2]);th(1)=th(1)+dth2;acx(k)=ac(1);acy(k)=ac(2);jiao(k)=th(1);endplot(jiao/dr,acx,jiao/dr,acy)axis([0,360,-300000,300000])grid ontitle('C点加速度线图')xlabel('曲柄旋转角度')ylabel('C点x,y方向的加速度') text(300,100000,'x方向')text(300,-100000,'y方向')。

相关文档
最新文档