第五章控制系统仿真§5.2 微分方程求解方法
以一个自由振动系统实例为例进行讨论。
如下图1所示弹簧-阻尼系统,参数如下:
M=5 kg, b=1 N.s/m, k=2 N/m,
F=1N
x b
M F
k
图1 弹簧-阻尼系统
假设初始条件为:00?t时,将m拉向右方,忽略小车的摩擦阻力,mx0)0(? smx/0)0(??求系统的响应。
)用常微分方程的数值求解函数求解包括ode45、ode23、ode113、ode15s、
ode23s等。
wffc1.m myfun1.m
一、常微分方程的数值求解函数ode45求解
解:系统方程为Fkxxbxm??????
这是一个单变量二阶常微分方程。
将上式写成一个一阶方程组的形式,这是函数ode45调用规定的格式。
令:xx?)1((位移)
)1()2(????xxx(速度)
上式可表示成:
??????????????????????????)1(*20)2(*101)2()2()2( )1(xxxxxxx??
下面就可以进行程序的编制。
%写出函数文件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)')