- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB微分方程几种求解方法的程序.doc
第五章 控制系统仿真
§5.2 微分方程求解方法
以一个自由振动系统实例为例进行讨论。
如下图1所示弹簧-阻尼系统,参数如下:
M=5 kg, b=1 N.s/m, k=2 N/m, F=1N
x
b
M F
k
图1 弹簧-阻尼系统
假设初始条件为:时,将m拉向右方,忽略小车的摩擦阻力, 求系统的响应。
)用常微分方程的数值求解函数求解包括ode45、ode23、ode113、ode15s、ode23s等。
wffc1.m myfun1.m
一、常微分方程的数值求解函数ode45求解
解:系统方程为
这是一个单变量二阶常微分方程。
将上式写成一个一阶方程组的形式,这是函数ode45调用规定的格式。
令: (位移)
(速度)
上式可表示成:
下面就可以进行程序的编制。
%写出函数文件myfun1.m
function xdot=myfun1(t,x)
xdot=[x(2);1-10*x(2)-20*x(1)];
% 主程序wffc1.m
t=[0 30];
x0=[0;0];
[tt,xx]=ode45(@myfun1,t,x0);
plot(tt,yy(:,1),:b,tt,yy(:,2),-r)
legend(位移,速度)
title(微分方程的解 x(t))
二、方法2:
%用传递函数编程求解ksys1.m
num=1;
den=[5 1 2];
%printsys(num,den)
%t=0:0.1:10;
sys=tf(num,den);
figure(1)
step(sys)
figure(2)
impulse(sys)
figure(3)
t=[0:0.1:10];
ramp=t;
lsim(sys,ramp,t);
figure(4)
tt=size(t);
noise=rand(tt,1);
lsim(sys,noise,t)
figure(5)
yy=0.1*t.^2;
lsim(num,den,yy,t)
w=logspace(-1,1,100);
[m p]=bode(num,den,w);
figure(6)
subplot(211);semilogx(w,20*log10(m));
grid on
subplot(212);semilogx(w,p)
grid on
[gm,pm,wpc,wgc]=margin(sys)
figure(7)
margin(sys)
figure(8)
nyquist(sys)
figure(9)
nichols(sys)
方法3:
% 主程序wffc1.m
t=[0 30];
x0=[0;0];
[tt,yy]=ode45(@myfun1,t,x0);
figure(1)
plot(tt,yy(:,1),:b,tt,yy(:,2),-r)
hold on
plot(tt,0.2-0.2*yy(:,2)-0.4*yy(:,1),-.k)
legend(位移,速度,加速度)
title(微分方程的解)
figure(2)
plot(yy(:,1),yy(:,2))
title(平面相轨迹)
%写出函数文件myfun1.m
function xdot=myfun1(t,x)
xdot=[x(2);0.2-0.2*x(2)-0.4*x(1)];
.页眉.
页脚.
文档评论(0)