紫砂清壶 发表于 2011-3-29 14:38

帮我看看单自由度系统在任意激励下的响应的matlab程序对不对

本帖最后由 紫砂清壶 于 2011-3-29 14:41 编辑

%求单自由度系统在任意激励下的响应
t=0:0.01:30;
w0=40*pi;k0=pi;A=10;w=40*pi;
m=10;%系统的质量
k=36000*pi^2;%系统的刚度
c=0;%系统的阻尼
wn=sqrt(k/m);%计算无阻尼固有频率
c0=2*sqrt(k*m);%计算临界阻尼
e=c/c0;%计算阻尼比
wd=wn*sqrt(1-e^2);%计算有阻尼固有频率
f1=A*sin((w0+k0*t).*t);%任意激振力
h=exp(-e*wn*t).*sin(wd*t)/(wd*m);%单位脉冲响应表达式
x1=conv(f1,h);%利用卷积函数求系统的响应
subplot(2,1,1)
plot(t(1:3000),x1(1:3000))
grid on
title('系统在任意激励作用下的响应')
xlabel('t/s'),ylabel('x1(t)')
%单自由度系统在简谐力作用下引起的响应
f2=A*sin(w*t);%简谐力
theta=atan(w*c/(1-w^2*m/k))
x2=(A/sqrt((k-w^2*m)^2+(w*c)^2))*sin(w*t-theta);
subplot(2,1,2)
plot(t(1:3000),x2(1:3000))
grid on
title('系统在简谐力作用下的响应')
xlabel('t/s'),ylabel('x2(t)')
=ginput(2)

紫砂清壶 发表于 2011-3-29 18:42

老板看了说 简谐激励的对,任意激励的算出来相差一个倍数,不知道是怎么回事???

紫砂清壶 发表于 2011-3-30 13:54

有没有人知道啊。。。等着急 啊。。。。

VibrationMaster 发表于 2011-3-30 18:42

x1=conv(f1,h);% 漏掉乘上Deltat(=0.01)

meiyongyuandeze 发表于 2011-3-31 14:48

陈教授,好眼力啊,呵呵!

紫砂清壶 发表于 2011-3-31 20:51

回复 4 # VibrationMaster 的帖子

教授,还是不对,改变阻尼增大十倍,任意激励下幅值还是没有什么变化,但是简谐激励下减小为原来的十分之一。。。

VibrationMaster 发表于 2011-4-1 06:11

回复 6 # 紫砂清壶 的帖子

回复 4 # VibrationMaster 的帖子

"改变阻尼增大十倍"--阻尼增大了十倍,还是改变阻尼后响应变成10倍?
"任意激励下幅值还是没有什么变化,但是简谐激励下减小为原来的十分之一。。。 "--你的程序中,两种情形使用两种不同的算法.
页: [1]
查看完整版本: 帮我看看单自由度系统在任意激励下的响应的matlab程序对不对