|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
振动方程2x''+x=sin(0.1t)
数值解和理论解 见下面的matlab 程序 最下面是个函数龙格库塔法要调用的
clc,clear
global I I_A K F0
I=1;
I_A=1;
K=1;
f=0.1;
F0=1;
%解析解
x=F0/(K-f^2*(I+I_A))
%数值解
p0=[0 0];
[t p]=ode45('IRF1',[0 100000],p0);
p_dis=p(:,1)'; %将位移提取出来
Amp=zeros(1,1);
h=size(t,1);%t一共取了多少个
h1=fix(h/10*9); %t是x轴的变量,取其三分之二的位置,也就是后三分之一的开始点,但是要取个整数,因为正好第三分之二位置不一定有值
Amp(1)=(max(p_dis(1,h1:h))-min(p_dis(1,h1:h)))/2;
Amp
figure
plot(t,p_dis)
xlabel('Time(s)')
ylabel('surge(m)')
function pdot=IRF1(t,p)
global f
global I I_A K F0
pdot=zeros(2,1);
pdot(1)=p(2);
pdot(2)=(F0*sin(f*t)-K*p(1))/(I+I_A);
两者怎么就对应不起来了呢 |
|