MVH 发表于 2005-7-28 17:47

maker系列-有阻尼强迫振动程序

function maker2(m,c,k,x0,v0,time,w,f0)
%单自由度简谐强迫震动
%m-为质量,c-阻尼,k-刚度,x0-初位移,v0-除速度;time-仿真时间
%chinamaker@dytrol.com
%2003.11.27
% mx''+cx'+kx=Fsin(wt)
wn=sqrt(k/m);%系统固有频率
freq=w/wn;%外力与固有频率比
damp=c/2/m/wn;%阻尼比
wd=wn*sqrt(1-damp^2);%系统自有振动频率
A=sqrt(((v0+damp*wn*x0)^2+(x0*wd)^2)/wd^2);%自由振动振幅
phi=atan2(2*damp*freq,1-freq^2);%振动相角
t=0:time/1000:time;%振动时间
B=wn^2*f0/k/sqrt((wn^2-w^2)^2+(2*damp*wn*w)^2);%强迫振动振幅
x=A*exp(-damp*wn*t).*sin(sqrt(1-damp^2)*wn*t+phi)+B*sin(w*t+phi);%系统振动时程曲线

plot(t,x);
grid;
xlabel('time(s)');
ylabel('Amplitude');


实例:已知k=40,m=20,c=1.5,F=100,w=5,x0=0,v0=0
>> maker2(20,1.5,40,1.5,1.5,100,5,100)
结果:

vib 发表于 2006-12-7 20:41

有多自由度吗?

suffer 发表于 2006-12-9 09:46

原帖由 vib 于 2006-12-7 20:41 发表
有多自由度吗?

没有仔细看,该程序应该就可以做多自由度的
页: [1]
查看完整版本: maker系列-有阻尼强迫振动程序