【Matlab代码】有持续外力下单*度阻尼系统的数值解
程序员文章站
2022-07-14 17:03:06
...
function dx=odefun4(t,x)
global c;%全局变量
dx=zeros(2,1);%存储x1,x2的导数
dx(1)=x(2);%第一个方程
dx(2)=20*sin(5*t)-20*c*x(2)-100*x(1);%第二个方程
注意:
修改为:dx(2)=20sin(5t)-20cx(2)-100*****x(1);%第二个方程
function ode4(cval)
global c;%全局变量
hold on%hold住图形窗口
tspan=linspace(0,4,200);
for i=1:length(cval);
c-cval(i);
[t,x]=ode45('odefun4',tspan,[1,0]);
text(t(10),x(10,1),['\leftarrow c=',num2str(c)])
plot(t,x(:,1))
end
hold off
cval=[0.4,0.8,1,1.5];
ode4(cval);
结论:系统的振动会震荡衰减。随着c的增大,系统的振动幅度减少而逐渐趋于平衡状态。
function ode5(cval)%cval是一个阻尼系数
global c;%全局变量
c=cval;
tspan=linspace(0,4,200);
[t,x1]=ode45('odefun4',tspan,[1,0]);%有外力
[t,x2]=ode45('odefun3',tspan,[1,0]);%无外力
plot(t,x1(:,1),'r.',t,x2(:,1),'b');
legend('有外力','无外力')
ode(0.9)
微信“图像处理与模式识别研究所”关注我呦