matlab机电系统仿真大作业.docx
- 文档编号:1832988
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:22
- 大小:473.47KB
matlab机电系统仿真大作业.docx
《matlab机电系统仿真大作业.docx》由会员分享,可在线阅读,更多相关《matlab机电系统仿真大作业.docx(22页珍藏版)》请在冰点文库上搜索。
matlab机电系统仿真大作业
曲柄滑块机构运动学仿真
1、设计任务描述
通过分析求解曲柄滑块机构动力学方程,编写matlab程序并建立Simulink模型,由已知的连杆长度和曲柄输入角速度或角加速度求解滑块位移与时间的关系,滑块速度和时间的关系,连杆转角和时间的关系以及滑块位移和滑块速度与加速度之间的关系,从而实现运动学仿真目的。
2、系统结构简图与矢量模型
下图所示是只有一个自由度的曲柄滑块机构,连杆与长度已知
图2-1曲柄滑块机构简图
设每一连杆(包括固定杆件)均由一位移矢量表示,下图给出了该机构各个杆件之间的矢量关系
图2-2曲柄滑块机构的矢量环
3.匀角速度输入时系统仿真
3.1系统动力学方程
系统为匀角速度输入的时候,其输入为输出为;
(1)曲柄滑块机构闭环位移矢量方程为:
(2)曲柄滑块机构的位置方程
(3)曲柄滑块机构的运动学方程
通过对位置方程进行求导,可得
由于系统的输出是与,为了便于建立A*x=B形式的矩阵,使x=[],
将运动学方程两边进行整理,得到
将上述方程的v1与w3提取出来,即可建立运动学方程的矩阵形式
3.2M函数编写与Simulink仿真模型建立
3.2.1滑块速度与时间的变化情况以及滑块位移与时间的变化情况仿真的基本思路:
已知输入w2与,由运动学方程求出w3和v1,再通过积分,即可求出与r1。
(1)编写Matlab函数求解运动学方程将该机构的运动学方程的矩阵形式用M函数compv(u)来表示。
设r2=15mm,r3=55mm,r1(0)=70mm,。
其中各个零时刻的初始值可以在Simulink模型的积分器初始值里设置
M函数如下:
function[x]=compv(u)%u
(1)=w2
%u
(2)=sita2
%u(3)=sita3r2=15;r3=55;
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;
2)建立Simulink模型
M函数创建完毕后,根据之前的运动学方程建立Simulink模型,如
下图:
图3-1Simulink模型
同时不要忘记设置r1初始值70,如下图:
图3-2r1初始值设置
设置输入角速度为150rad/s,运行时间为0.1s,点击运行,即可从示波器中得到速度和时间以及位移和时间的图像
3.2.2滑块位移和滑块速度之间的图像
为了得到滑块位移和滑块速度之间的图像,需要通过toworkspace模块将simulink里位移和时间的数据传递到Matlab的工作区中,从而在M文件中再次利用,从Simulink模块传递到工作区的数据的名称是simout。
相应的M文件程序编写如下:
a=simout.data;%Simulink传输到工作区的数据不能直接当作数组来使用,因此需要通过这个语句转换成普通矩阵,从而正常被使用。
x=a(:
2);
y=a(:
1);
plot(x,y);
xlabel('位移');
ylabel('速度');
3.2.3滑块位移和滑块加速度之间的图像
程序编写思路和3.2.2节相同,不再赘述。
程序如下:
a=simout.data;
x=a(:
2);
y=a(:
3);
plot(x,y);
%在这里要注意,toworkspace得到的是1X1数据,因此要转换成正常矩阵,
xlabel('位移');
%设置x轴名字
ylabel('加速度');
%设置y轴名字
3.3仿真结果分析
图3-3滑块速度,滑块位移与时间图像
从图像中可以看出,速度呈周期性变化,变化的周期大约为0.04s,正反向速度的极值都大约是2400mm/s。
周期性变化的原因是曲柄作为动力源,在做圆周运动。
位移也是随着时间呈周期性变化,变化的周期与速度变化的周期一样,都是大约0.04s。
位移的极大值是70mm,位移的极小值是40mm,因此滑块的实际行程是70-40=30mm。
图3-5滑块位移与速度图像
从图像3-5可以看出,滑块位移和速度之间的关系是封闭的曲线,当位移达到极大值与极限值得时候,速度的值都是零,这说明此时滑块运行到了左右极限位置,接下来将开始反向运动。
图3-7极限位置时加速度值放大图
加速度的极值出现在左右极限位置,正方向最大值约为2.45*10^5mm,反向最大值约为-4.3*10^5mm。
因此左右极限位置的时候,加速度最大,随着位移增加,加速度趋向于零,最终在位移为55与57左右的时候变为零。
需要说明一点,图3-6,位移为70mm处,有一个加速度的突变,这个不是模型出错导致的,这个现象产生的原因是,曲柄滑块机构在第一次运动之前,是静止的,这和之后的连续运动的情况有所不同,因此产生了加速度从0到-4.3*10^5mm的突变。
因此,位移大概在55与57左右的时候,是速度最快的时候,也是加速度为零,发生方向变化的时刻,此时速度由上升趋势变为下降趋势,即由加速变为减速。
4.匀角加速度输入时系统仿真
4.1系统动力学仿真
当输入为匀加速的时候,为求出此时系统的动力学方程,需要对之前的系统
位置方程式进行二阶求导才能得到含有加速度的表达式,如下图:
此时,输入连杆2的角加速度为仿真系统的输入量;而,为系统输出;位移,,和速度,,为已知量。
写成A*x=B的矩阵形式为:
4.2M函数编写以及Simulink仿真模型建立
根据之前得到的矩阵形式的含有加速度的系统动力学方程式,可以编写如下的M函数来求解加速度:
function[x]=compa(u)
%u
(1)=a2
%u
(2)=w2
%u(3)=w3
%u(4)=sita2
%u(5)=sita3
r2=15;
r3=55a=[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
然后建立Simulink动力学模型,将该M函数嵌入,并设置输入角加速度为5rad/s^2,r1(0)=70mm,其他位移和速度的初始值都是0,并且将滑块位移的范围限制在40~70(因为实际系统中滑块位移不可能超过这个范围),该范围设置可以通过双击r1的积分器,在参数里进行修改。
同时,为了进一步得到连杆3转角和位移间的关系,将各个变量的数据通过toworkspace模块存储到Matlab工作区之中,然后再编写后续程序得到这两条曲线的双纵坐标图。
下图是滑块位移范围上下限设置窗口
图4-2滑块位移范围设置窗口
后续数据处理程序,从而得到连杆3转角和位移间的关系,如下:
t=tout;%与simulink里的时间变量对应起来a=sita2w3sita3v1r1.data;
[ax,h1,h2]=plotyy(t,a(:
3),t,a(:
5),'plot');
%在这里要注意,toworkspace得到的是1X1数据,因此要转换成正常矩阵,
%转换方法是a=sita2w3sita3v1r1.data,这样就可以了%返回该plotyy的纵坐标设置句柄,h1是左纵坐标参数,h2是右纵坐标参数
set(get(ax
(1),'Ylabel'),'string','连杆3转角/rad');
%设置左纵坐标轴的名字
set(get(ax
(2),'Ylabel'),'string','滑块位移/mm');
%设置右纵坐标轴的名字xlabel('t/s');
%设置x轴名字set(h1,'Linestyle',':
');
%设置左纵坐标轴线型text(0.8,0.2,'连杆转角\rightarrow');text(0.1,0.1,'滑块位移\rightarrow');
%设置箭头和文字标注的位置
4.3
仿真结果分析
图4-4连杆转角数据分析
从4-3图中可以看出,无论是连杆3转角还是滑块位移,都是进行周期变化,
周期大小和曲柄转一周的时间相同,而位移的上下限是之前已经设好的,即40~70。
但由于图4-3并不能看出连杆3转角的范围,因此做了进一步的数据分析,从图4-4可以看出,连杆3转角范围是-0.27~0.27,换算成角度就是-15度~正15度。
此外,从图4-3还可以看出,转角的极值和位移的极值的出现时刻并不相同,位移极值的出现时刻总是比转角极值出现时刻慢。
二悬吊式起重机动力学仿真
1、设计任务描述
起重机械是现代经济建设中改善物料搬运条件,实现生产过程自动化、机械化,提高劳动生产率不可缺少的物流运输设备。
起重机械是一种空间运输设备,其通过起重吊钩或其他取物装置起升或起升加移动重物。
当起重机起升机构抓举物料在空中移动时,希望物料的空间摆动越小越好。
这样利于物料的准确吊装,保证吊装场地操作工人的安全。
本文以工厂企业中最常用的悬吊式起重机为例,建立起重机的数学模型,得到起重机起重物在垂直方向的偏摆角与起重机小车驱动力之间的关系,分析了起重机在启动、稳定工作和停止时起重物在垂直方向的偏摆情况。
2、系统动力学方程
首先,悬吊式起重机的结构简图如下。
图2-1悬吊式起重机简图
根据该结构简图,我们要进行受力分析,然后建立该模型的动力学方程。
该小车水平方向的受力有外力,轨道摩擦力,以及吊重的水平分力,因此,水平方向上动力学方程为:
该小车,垂直方向的受力有重力,单摆竖直方向分力与小车和钢丝相互作用力,而且竖直方向上小车没有位移,因此,竖直方向上的受力平衡方程为:
又有小车并发生角位移,因此,对小车进行力矩平衡的分析,方程如下:
上述三个公式中用到的字母含义如下:
:
起重机的小车质量,kg;
:
起重机的吊重,kg;
:
钢丝绳在铅直方向的摆角;
I:
起重机的吊重惯量,kg.m^2;
N/(m.s^2)
c:
起重机车轮与导轨之间的等效粘性摩擦系数,l:
钢丝绳长,m;
F:
小车驱动力,N;
X:
小车水平位移,m;
P:
吊车与小车相互作用力在垂直方向上的分力,N
根据小车的竖直方向的受力平衡方程与小车的力矩平衡方程,参数P可以消去,得到公式:
至此,该起重机系统的动力学方程为
1)2)
为了便于建模,对公式
(2)中的二次微分项进行展开,得到公式:
3)
将公式
(1)和公式(3)进行变换得到最终表达式:
3、Simulink仿真模型建立
可以知道,F是系统的输
和的表达式已经知道,
根据上一节分析得到的悬吊式起重机的动力学模型,
入,而和是系统的输出,也是最终需要分析的量。
而只需要再通过两次积分就可以得到角变化量和小车位移。
因此,悬吊式起重机的
Simulink动力学模型如下:
其中k1=1/,k2=/I+,imp=。
由于仿真无法在没有数据的情况下进行,因此在运行该模型之前,要首先在Matlab指令窗口中给出模型中所用到的参数的数值,如下:
mt=50;
%
小车质量50kg
mp=270;
%
吊重270kg
l=4;
%
钢丝绳长4m
c=20;
%
等价黏性摩擦系数20N/m
I=mp*l^2;
%
吊车惯量
imp=l*mp;
%
系数
k1=1/(mt+mp);
%
系数
k2=mp*l/(I+mp*l^2);%
系数
设置仿真时间为200s,并且在相应的模型中的积分环节中设置初始时刻的值,x(0)=0,,,,这一点很重要,初值设置的不
正确,会导致仿真结果也出现很大的错误。
之后,设置两个信号来模拟真实的悬吊式起重机系统的输入,一个是0,即没
有外力输出;另一个是宽度为5s的脉冲信号,来模拟为小车提供驱动力的电机。
然后分别来分析这两种情况下,钢丝绳的摆角的变化。
4、仿真结果分析
4.1F=0,即没有外力输入的情况
图4-1小车位移在无外力情况下位移变化曲线
图4-3小车在无外力情况下的摆角变化曲线
首先分析该模型的的正确性,位移方面,整体上看,位移最终趋向于0,从零
时刻看,位移的初始值是零;摆角方面,角度最终也是趋向于零,而摆角初始值和预设置的初值一样,即从0.01rad开始变化,因此,该simulink的模型是没有错误的。
具体来说,位移方面,负方向位移峰值出现在初始时刻附近,正向位移峰值出现在30s左右,100s之后,位移的变化大幅缩小,趋于稳定。
同时,需要关注的是,小车总是在原点左右来回的反复运动,而在前60s,负
方向的位移总是远远大于正方向的位移,其差值的极大值出现在第一次往复运动中,之后的每一次往复运动,差值都在缩小。
这种现象的原因可能是是由于第一次向下摆动的时候,是从原点开始,而且没有反向位移,不需要先克服反向位移摩擦力功,而之后的每一次运动都要先克服之前产生的位移的摩擦力功,然后再克服本次产生的绝对位移的摩擦力功,因此,第一次的差值最大,而之后,由于摩擦力的存在,机械能不断消耗,能克服摩擦力做的位移也越来越小,差值趋向于零,正负变化近似相等,最终停在原点。
假设初次势能为E1,克服摩擦力的功W=f*s1,由于没有反向的位移与其他能量,因此初始势能的消耗量全部转换成绝对正位移s1。
而第二次由于摩擦力的存在,势能E2本身就必定小于E1,而此次需要克服摩擦力的功为f*(s1+s2),也就是说,需要先克服之前的路程为s1的摩擦力功,才能再克服此次位移为s2的摩擦力功,而s2就是此次相对于原点的绝对位移。
由于E2本就小于E1,而位移s1是之前产生的,又不属于本次的绝对位移,因此s2必定小于s1,这就是为什么一开始正反位移差值最大而最后又趋向于相等的原因。
摆角方面,整体是收敛的趋势,摆动幅值随着时间而衰减,最终趋向于零,而且,由于不存在小车与导轨之间摩擦力与克服摩擦力的位移s,每一次的来回摆动的势能都大致相等,因此,正负摆角的差值始终近似为零。
最终,稳定时间大概在100s之后。
4.2阶跃力输入
模型确认合理可靠之后,将输入信号更换成实际系统电机驱动力的变化曲线由于实际系统中,电机的加速和减速的时间都非常快,因此,可以用持续一定时间的阶跃信号来近似代替,如下图:
力大小为5N,持续时间为5s。
得到的仿真结果为:
图4-4SignalBuilder内信号参数
位移方面:
总体上看,小车的位移最终趋向于一个稳定值,即由于摩擦力的存在,最终
停在了1.27的位置上。
位移的第一个转折点,可以看出在2s左右,这和输入信号的特征相符合,因为输入信号是从2s的时刻开始作用。
位移的净增加速度在40s之后快速下降,但波动的次数较40s之前有所增加,最终在60s左右位移停止增加。
4-8正向与反向角位移最值点分别放大图
摆角方面:
摆角最终是趋向于零,在第一次摆动的时候产生最大值,负角位移最大值出
现在2s左右,紧接着是正向角位移最大值,在4s左右,摆动的周期大约也是4s左右。
之后,角位移的摆动幅值呈衰减趋势,100s之后,幅值接近零。
值得注意的是,正向角位移的极大值远远超过其他时刻的正向角位移值,分析原因可能是阶跃力。
从放大图可以看出,这次极大值就是出现在阶跃力作用时间内(2~7s),同时,为了证明这个想法,特意放大了紧接着的下一次正向极值的出现时刻,如下图:
图4-9第二次正向角位移极值出现时刻
可以清晰的看出,第二次极值的出现时刻已经超过了8s,也就是在阶跃力作
用结束之后。
因此,在加速阶段的正向角位移幅值会远大于加速结束之后的角位移幅值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 机电 系统 仿真 作业