欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 17:03:06
...

【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);%第二个方程

注意:
【Matlab代码】有持续外力下单*度阻尼系统的数值解
修改为: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);

【Matlab代码】有持续外力下单*度阻尼系统的数值解
结论:系统的振动会震荡衰减。随着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)

【Matlab代码】有持续外力下单*度阻尼系统的数值解
微信“图像处理与模式识别研究所”关注我呦