sunhuawen 发表于 2010-10-30 22:25

用Matlab计算简支梁受迫振动响应及频谱分析

题:
这是我编的程序 感觉很对不对 刚学Matlab不久还不是很懂 忘指点
clc
clear all
syms t
E=2.06e11;
A=0.0815;
I=0.03622;
midu=1435.2/0.0815;
l=60;
P=1000;
x1=30;
x=15;
W=200;
ts=1;
fs=999;
t=0:1/fs:1;
for r=1:20
    Wn(r)=(r^2*pi^2/l^2)*sqrt(E*I/(midu*A));
end
double(Wn)
q=zeros(1,1000);
for j=1:20
    q=q+((2*P)/(midu*A*l))*(1/(Wn(j)^2-W^2))*sin(j*pi*x/l)*sin(j*pi*x1/l)*(sin(W*t)-(W/Wn(j))*sin(Wn(j)*t));
end
n=length(q);
Q=fft(q);
m=abs(Q);
f=(0:length(q)-1)*999/length(q);
subplot(2,1,1);
plot(f,m);
subplot(2,1,2);
plot(t,q);

如何画出响应的频谱图??求教

happy 发表于 2010-11-21 17:03

本帖最后由 happy 于 2010-11-21 17:04 编辑

subplot(2,1,1);
plot(f,m);画的就是频谱图

Happy99 发表于 2010-11-21 21:36

水平有限, 没空细看仅随便看下, 仅说些前面小问题, 後面懒得看了..:@L
1.syms t好像多馀
2.for r=1:20, Wn(r)=(r^2*pi^2/l^2)*sqrt(E*I/(midu*A));end的loop多馀, 改用Wnr=(.^2*pi^2/l^2)*sqrt(E*I/(midu*A));
3.double(Wn)好像多馀
...
还是请LZ看下置顶帖或改明白些, 不然太...:@)
页: [1]
查看完整版本: 用Matlab计算简支梁受迫振动响应及频谱分析