|
有几个问题,
1. 这个应该建立一个函数,然后再运行,不能在脚本状态下运行;
2. dy=[0,1;-a2/m-(a2/m)*abs(x_dot)]*y+[0;g] ;
是有问题的,[0,1;-a2/m-(a2/m)*abs(x_dot)]不对应啊!你应该整错了吧!
function odeFun( )
m = 70 ;
k = 20 ;
a1 = 1 ;
a2 = 1 ;
g = 10 ;
y0 = [-30 ; 0] ;
tspan = [0 100] ;
[t , y] = ode45(@stu1 , tspan , y0) ;
x1 = 50. - y(: , 1) ;
plot(t , x1) ;
grid
plot(t , y(: , 1)) ;
grid
%函数
function dy = stu1(t , y)
m = 70 ;
k = 20 ;
a1 = 1 ;
a2 = 1 ;
g = 10 ;
y0 = [-30 ; 0] ;
x = y(1) ;
x_dot = y(2) ;
if x > 0
dy = [0 , 1 ; -k/m , -a1/m-(a2/m)*abs(x_dot)] * y + [0 ; g] ;
else
dy = [0 , 1 ; -a2/m-(a2/m)*abs(x_dot)] * y + [0 ;g] ;
end
end
end
|
评分
-
1
查看全部评分
-
|