|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 leison1982 于 2014-4-26 21:02 编辑
最近遇到一个问题百思不得其解,请大家指点迷津,刘彦柱的《振动力学》第129页有一个例题求一个带集中质量杆自由振动的频率和模态,本人照着做了一个算例,用数值方法求解(d)式得到了频率,然后用(e)式求模态,然后发现各个模态之间不是相互正交的,不知道怎么回事?模态之间不是应该相互正交,积分为0吗,就是附件matlab程序中计算的C12(1阶和2阶积分,虽然是数值积分也不应该这么大呀,其他阶之间也是这样),请大家看看哪里错了?
function axial_fre
clc
clear all
global mode E Area L cont alfa
mode=6;
L=1500;%长度(m)
alfa=1.22;%质量比 (d)式右端1/alfa
cont=4.032E3;%(d)式a
omgn=(2*(1:mode)-1)*pi/(2*L)*cont;%不带集中质量杆自由振动频率
omgi=modefun(mode,omgn);
for i=1:mode
x=myfun(omgi(i))
end%验算求出频率是否满足式(d)
dL=0.1;%积分微段
x=0:dL:L;
Mshape=zeros(mode,length(x));
for i=1:mode
Mshape(i,:)=sin(omgi(i)*x/cont);%式(e)求模态
end
plot(x,Mshape)%各个模态图形
%模态之间数值积分
C=sum(Mshape.^2,2)*dL%各阶振型矩形积分
CC=sum(((Mshape(:,1:length(x)-1)+Mshape(:,2:length(x)))/2).^2,2)*dL%各阶振型梯形积分
C12=sum(Mshape(1,:).*Mshape(2,:),2)*dL%1阶和2阶积分矩形积分
a1=(Mshape(1,1:length(x)-1)+Mshape(1,2:length(x)))/2;
a2=(Mshape(2,1:length(x)-1)+Mshape(2,2:length(x)))/2;
CC12=sum(a1.*a2,2)*dL%1阶和2阶积分梯形积分
function omgi=modefun(mode,omgn)%在自由振动频率附近求解各个频率
omgi=zeros(1,length(omgn));
for i=1:mode
X=fsolve(@myfun,[omgn(i)-1],optimset('Display', 'off'));
omgi(i)=X;
end
disp(omgn)
disp(omgi)
function f=myfun(x)%方程(d)
global L cont alfa
f(1)=(x*L/cont)*tan(x*L/cont)-alfa;
|
|