【Matlab代码】有持续外力下单自由度阻尼系统的数值解

在这里插入图片描述

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)

在这里插入图片描述
微信“图像处理与模式识别研究所”关注我呦

猜你喜欢

转载自blog.csdn.net/qq_41985559/article/details/108803450
今日推荐