dongsheng01 发表于 2011-12-14 19:00:13

振动方程理论解和数值解不一致 是编程错了吗


振动方程2x''+x=sin(0.1t)
数值解和理论解 见下面的matlab 程序
clc,clear
global I I_AK F0f

I=1;
I_A=1;
K=1;
f=0.1;
F0=1;

%解析解
x=F0/(K-f^2*(I+I_A))

%数值解

p0=;
=ode45('IRF1',,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_AK F0

pdot=zeros(2,1);

pdot(1)=p(2);

pdot(2)=(F0*sin(f*t)-K*p(1))/(I+I_A);


两者怎么就对应不起来了呢

ChaChing 发表于 2011-12-19 15:54:26

没细看!
但一个是FRF(steady state), 一个force vib, 可以比较吗?
页: [1]
查看完整版本: 振动方程理论解和数值解不一致 是编程错了吗