动态系统 MATLAB 例子
例2.4 现在讨论图2.1所示的机械系统。该系统一开始处于静止状态。位移x和y从它们各自的平衡位置开始测量。假设力p(t)是阶跃输入,位移x(t)是输出,试求该系统的传递函数。
然后,假设m = 0.1 kg,b₂ = 0.4 N·s/m,k₁ = 6 N/m,k₂ = 4 N/m,并假设p(t)是幅值为10 N的阶跃力,求出解析解x(t)。
该系统的运动方程为
m¨x+k1x+k2(x−y)=pm¨x+k1x+k2(x−y)=p
k2(x−y)=b2˙yk2(x−y)=b2˙y
在零初始条件的假设下对这两个方程进行拉普拉斯变换,可以得到
(ms2+k1+k2)X(s)=k2Y(s)+P(s)(ms2+k1+k2)X(s)=k2Y(s)+P(s)
k2X(s)=(k2+b2s)Y(s)k2X(s)=(k2+b2s)Y(s)
从式(2.3)解得Y(s)并将其代入式(2.2),可得
(ms2+k1+k2)X(s)=k22k2+b2sX(s)+P(s)(ms2+k1+k2)X(s)=k22k2+b2sX(s)+P(s)
或者
[(ms2+k1+k2)(k2+b2s)−k22]X(s)=(k2+b2s)P(s)[(ms2+k1+k2)(k2+b2s)−k22]X(s)=(k2+b2s)P(s)
由此可以得到传递函数
X(s)P(s)=b2s+k2mb2s3+mk2s2+(k1+k2)b2s+k1k2X(s)P(s)=b2s+k2mb2s3+mk2s2+(k1+k2)b2s+k1k2
将mm,k1k1,k2k2和b2b2的给定数值代入式(2.4),可以得到
X(s)P(s)=0.4s+40.04s3+0.4s2+4s+24=10s+100s3+10s2+100s+600X(s)P(s)=0.4s+40.04s3+0.4s2+4s+24=10s+100s3+10s2+100s+600
由于P(s)P(s)是幅值为10 N的阶跃力,所以
P(s)=10sP(s)=10s
于是,从式(2.5)可得
X(s)=10s+100s3+10s2+100s+600⋅10sX(s)=10s+100s3+10s2+100s+600⋅10s
为了求得解析解,需要将X(s)展开成为部分分式。为此,可以采用如下MATLAB程序来求留数、极点和直接项:
>> num = [100 1000];
>> den = [1 10 100 600 0];
>> [r,p,k] = residue(num, den)
结果:
r =
-0.6845 + 0.2233i
-0.6845 - 0.2233i
-0.2977
1.6667
p =
-1.2898 + 8.8991i
-1.2898 - 8.8991i
-7.4204
0
k =
[]
根据该MATLAB输出,X(s)X(s)可以被写成:
X(s)=−0.6845+j0.2233s+1.2898−j8.8991+−0.6845−j0.2233s+1.2898+j8.8991+−0.2977s+7.4204+1.6667sX(s)=−0.6845+j0.2233s+1.2898−j8.8991+−0.6845−j0.2233s+1.2898+j8.8991+−0.2977s+7.4204+1.6667s
X(s)=−1.3690(s+1.2898)−3.9743(s+1.2898)2+8.89912+−0.2977s+7.4204+1.6667sX(s)=−1.3690(s+1.2898)−3.9743(s+1.2898)2+8.89912+−0.2977s+7.4204+1.6667s
对X(s)X(s)进行拉普拉斯逆变换就可以得到:
x(t)=−1.3690e−1.2898tcos(8.8991t)−0.4466e−1.2898tsin(8.8991t)−0.2977e−7.4204t+1.6667x(t)=−1.3690e−1.2898tcos(8.8991t)−0.4466e−1.2898tsin(8.8991t)−0.2977e−7.4204t+1.6667
其中x(t)x(t)的单位是米,时间tt的单位是秒。这就是该问题的解析解。
参考文献
控制理论MATLAB教程 KO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!