解析解:
time=linspace(0,4,2000);
x=dsolve('5*D2x+2000*x+0.5*5*9.81*Dx=100*sin(30*t)','Dx(0)=0.1','x(0)=0.1');
xdot=diff(x);
x2dot=diff(xdot);
数值方法:
function solve_eq_examp
global k acc;
k=0; % 该计数器输出状态方程被调用的次数
acc=[]; %输出状态方程的时间历程
[t x]=ode45(@Slide_equ,[0:0.01:4],[0.1 0.1]);
子函数
function xdot=Slide_equ(t,x)
global k acc;
k=k+1
xdot=[x(2)
-2000/5*x(1)-0.5*9.8*sign(x(2))+100/5*sin(30*t)];
acc=[acc;[t xdot']]; %这里输出状态方程的时间历程
|