|
楼主 |
发表于 2010-1-13 21:53
|
显示全部楼层
主程序:
%%
clc
clear all;
Nshaft=8; %轴段数量;
%%
RotorE = 2.095e11; %转子弹性模量;
RotorM = 7.85e3; %转子材料密度
ShaftL = [0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25]; %各轴段长度
ShaftDI = ones(1,Nshaft)*0.1; %各轴段外径
ShaftDO = ones(1,Nshaft)*0.0; %各轴段内径;
%%
LocationF=[2,8]; %支承所在节点编号;
SPstiffness=[2e7,2e7]; %支承刚度;
%%
U=pi*(ShaftDI.^2-ShaftDO.^2)*RotorM; %单位长度质量
a=[U;ShaftL;ShaftDI;ShaftDO];
A=a.';
%% 质量矩阵的计算
for i=1:Nshaft
u=A(i,1);
l=A(i,2);
r=A(i,3);
M(:,:,i)=Ms(u,l,r);
end;
B=zeros(Nshaft*2+2,Nshaft*2+2);
%整体质量矩阵第1、2行
B(1:2,1:2)=B(1:2,1:2)+M(1:2,1:2,1);
B(1:2,3:4)=B(1:2,3:4)+M(1:2,3:4,1);
%整体质量矩阵第3至Nshaft*2行
for i=3:2:Nshaft*2
j=i-2;
B(i:(i+1),j:(j+1))=B(i:i+1,j:j+1)+M(3:4,1:2,(i-1)/2);
j=i;
B(i:i+1,j:j+1)=B(i:i+1,j:j+1)+M(3:4,3:4,(i-1)/2)+M(1:2,1:2,(i+1)/2);
j=i+2;
B(i:i+1,j:j+1)=B(i:i+1,j:j+1)+M(1:2,3:4,(i+1)/2);
end
%整体质量矩阵第Nshaft*2+1、Nshaft*2+2行
B(Nshaft*2+1:Nshaft*2+2,Nshaft*2-1:Nshaft*2)=B(Nshaft*2+1:Nshaft*2+2,Nshaft*2-1:Nshaft*2)+M(3:4,1:2,Nshaft);
B(Nshaft*2+1:Nshaft*2+2,Nshaft*2+1:Nshaft*2+2)=B(Nshaft*2+1:Nshaft*2+2,Nshaft*2+1:Nshaft*2+2)+M(3:4,3:4,Nshaft);
%% 回转矩阵的计算
for i=1:Nshaft
u=A(i,1);
l=A(i,2);
r=A(i,3);
J(:,:,i)=Js(u,l,r);
end;
C=zeros(Nshaft*2+2,Nshaft*2+2);
%整体回转矩阵第1、2行
C(1:2,1:2)=C(1:2,1:2)+J(1:2,1:2,1);
C(1:2,3:4)=C(1:2,3:4)+J(1:2,3:4,1);
%整体回转矩阵第3-Nshaft*2行
for i=3:2:Nshaft*2 %节点号为(i+1)/2
j=i-2;
C(i:(i+1),j:(j+1))=C(i:i+1,j:j+1)+J(3:4,1:2,(i-1)/2);
j=i;
C(i:i+1,j:j+1)=C(i:i+1,j:j+1)+J(3:4,3:4,(i-1)/2)+J(1:2,1:2,(i+1)/2);
j=i+2;
C(i:i+1,j:j+1)=C(i:i+1,j:j+1)+J(1:2,3:4,(i+1)/2);
end
%整体回转矩阵第Nshaft*2+1、Nshaft*2+2行
C(Nshaft*2+1:Nshaft*2+2,Nshaft*2-1:Nshaft*2)=C(Nshaft*2+1:Nshaft*2+2,Nshaft*2-1:Nshaft*2)+J(3:4,1:2,Nshaft);
C(Nshaft*2+1:Nshaft*2+2,Nshaft*2+1:Nshaft*2+2)=C(Nshaft*2+1:Nshaft*2+2,Nshaft*2+1:Nshaft*2+2)+J(3:4,3:4,Nshaft);
%% 整体刚度矩阵的计算
for i=1:Nshaft
l=A(i,2);
r=A(i,3);
K(:,:,i)=Ks(l,r,RotorE);
end;
D=zeros(Nshaft*2+2,Nshaft*2+2);
%整体刚度矩阵第1、2行
D(1:2,1:2)=D(1:2,1:2)+K(1:2,1:2,1);
D(1:2,3:4)=D(1:2,3:4)+K(1:2,3:4,1);
%整体刚度矩阵第3至Nshaft*2行
m=1;
Size=size(LocationF);
for i=3:2:Nshaft*2
j=i-2;
D(i:(i+1),j:(j+1))=D(i:i+1,j:j+1)+K(3:4,1:2,(i-1)/2);
j=i;
if Size(1,2)==0; %判断支承位置,添加支承刚度
for i=3:2:Nshaft*2
j=i-2;
D(i:(i+1),j:(j+1))=D(i:i+1,j:j+1)+K(3:4,1:2,(i-1)/2);
j=i;
D(i:i+1,j:j+1)=D(i:i+1,j:j+1)+K(3:4,3:4,(i-1)/2)+K(1:2,1:2,(i+1)/2);
j=i+2;
D(i:i+1,j:j+1)=D(i:i+1,j:j+1)+K(1:2,3:4,(i+1)/2);
end
else
if i==2*LocationF(m)-1;
D(i:i+1,j:j+1)=D(i:i+1,j:j+1)+K(3:4,3:4,(i-1)/2)+K(1:2,1:2,(i+1)/2);
D(i,j)=D(i,j)+SPstiffness(m);
while m<Size(1,2)
m=m+1;
end
else
D(i:i+1,j:j+1)=D(i:i+1,j:j+1)+K(3:4,3:4,(i-1)/2)+K(1:2,1:2,(i+1)/2);
end
end
j=i+2;
D(i:i+1,j:j+1)=D(i:i+1,j:j+1)+K(1:2,3:4,(i+1)/2);
end
%整体刚度矩阵第Nshaft*2+1、Nshaft*2+2行
D(Nshaft*2+1:Nshaft*2+2,Nshaft*2-1:Nshaft*2)=D(Nshaft*2+1:Nshaft*2+2,Nshaft*2-1:Nshaft*2)+K(3:4,1:2,Nshaft);
D(Nshaft*2+1:Nshaft*2+2,Nshaft*2+1:Nshaft*2+2)=D(Nshaft*2+1:Nshaft*2+2,Nshaft*2+1:Nshaft*2+2)+K(3:4,3:4,Nshaft);
%%
syms w;
pin=-B*w^2+C*w^2+D;
Speed=det(pin);
digits(5);
ssss=vpa(solve(vpa(Speed))*60/(2*pi)); 临界转速 |
|