北航机电系统仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称机电系统设计仿真实验
课程代码171703
机电系统设计和仿真
实验报告
学生姓名
学生学号
指导教师
院(系)名称
2XXX年XX月XX日
一、Simulink 自主实验—具有悬挂物的移动高架吊车
为了调整力F 作用下沿x 轴移动的质量为M 的高架吊车和挂在长缆绳上的块m 的
自由度,必须建立一个模型,块m 与垂直点成角θ振荡
图1 移动高架吊车模型
1、具有两个自由度的移动高架吊车模型
为此,使用如下定义的拉格朗日方程
''c p q
L E E d L L D
F dt q q q =-⎧
⎪
⎛⎫∂∂∂⎨-+= ⎪⎪∂∂∂⎝
⎭⎩ 其中:q
x(t)和θ(t)的自由度 D
由于摩擦而消耗的能量 F q
由自由度q 产生的力
E c 和E q
系统的动能和势能
1.1 系统移动时的动能
2
2221111
2222
c m m dx E M mV Mx mV dt ⎛⎫=+=+ ⎪⎝⎭
组件速度由下式决定:
()
2
22
2cos m V x l lx θ
θθ=++
于是
()22211
cos 22
c E M m x ml mlx θθθ=
+++ 1.2 系统的势能
cos p E mgl mgl θ=-
1.3 在q(t)= θ(t)自由度下的Lagrange 方程
如果D=0,则自由度相等,因此不考虑总摩擦损失
()()2
2211cos 1cos 22
L M m x ml mlx mgl θθθθ=
+++-- 根据自由度θ施加的力为零
0F θ=
2cos L
ml mlx θθθ
∂=+∂ 2
cos sin d L ml mlx mlx dt θθθθθ∂⎛⎫=+- ⎪∂⎝⎭
sin sin L
mlx mgl θθθθ
∂=--∂ 简化后给出第一Lagrange 方程
cos sin 0l x g θθθ++=
1.4 在q(t)=x(t)自由度下的Lagrange 方程
根据自由度x 给吊车施力:
()x F F t =
()cos L
M m x ml x
θθ∂=++∂ ()2
cos sin d L M m x ml ml dt x θθθθ∂⎛⎫=++- ⎪
∂⎝⎭
0L
x
∂=∂ 简化后给出Lagrange 第二方程
()()2cos sin M m x ml ml F t θθθθ++-=
1.5 操作点附近的线性模型
得到的模型是非线性的,且不同自由度下有不同的方程。如果只考虑在操作点θ0
=0附近只有很小的θ变化,可考虑如下的简化
cos 1
sin θθθ
=⎧⎨
=⎩ 另外,有
()
2cos sin cos d
dt
θθθθθθ-=
这就给出了如下的线性微分方程
()()
0M m x ml F t x l g θθθ⎧++=⎨
++=⎩
根据x(t)和θ(t)的微分系统给出
()()()()()()()11M m t g t F t
Ml Ml m x t g t F t M M
θθθ+⎧=--⎪⎪⎨
⎪=+⎪⎩ 2、系统的数学模型
对x(t)和θ(t)的微分系统方程组进行拉氏变换得
()()()()()221
()1()M m S s g s F s Ml Ml m S X s g s F s M M
θθθ+⎧=--⎪⎪⎨
⎪=+⎪⎩ 将M=10 kg ,m=5 kg ,l=1 m ,g=9.8≈10,F 0=1代入上式并进一步变换得
242()10()10150X s s F s s s +=+ 2()1()10150
s F s s q =-+ 3、利用Simulink 对系统进行仿真 3.1 系统开环过程仿真
打开一空白模型编辑窗口,根据该系统的数学模型,创建、设置、连接模块,如图2所示。
图2仿真模型结构图
由于在模型文件中使用了To file模块,输出结果已经保存到MATLAB工作空间当中,可以使用MATLAB命令来绘制结果,代码如下,结果如图4所示。
●>> load('D:\MATLAB7\out1')
>> plot(out(1,:),out(2,:))
>> grid on
>> title('X(t)-t');
>> xlabel('Time(sec)');
>> ylabel('Distance(m)');
◆>> load('D:\MATLAB7\out2')
>> plot(out(1,:),out(2,:))
>> grid on
>> title('θ(t)-t');
>> xlabel('时间(秒)');
>> ylabel('角度(弧度)');
运行仿真,结果如图3所示。