zp814 发表于 2012-4-21 20:46

各位大侠帮忙看看传递矩阵程序问题

m1=1.9213;%单位:Kg
m2=0.3409;
m3=0;
m4=0.1671;
m5=0.7782;
m6=0;
m7=0.08;
l1=24.25*10^-3;%单位:m
l2=10.25*10^-3;
l3=14.25*10^-3;
l4=61.43*10^-3;
l5=47.12*10^-3;
l6=6.94*10^-3;
I1=5.96*10^-7;%单位:m^4
I2=5.96*10^-7;
I3=1.296*10^-7;
I4=8.7*10^-8;
I5=8.7*10^-8;
I6=5.14*10^-8;
E=206*10^9;%单位:Pa
M1=0;
Q1=0;
M7=0;
Q7=0;
k3=5.79*10^9;%单位:N/m
k6=4.9*10^9;
c3=0;
c6=0;
syms m1 m2 m3 m4 m5 m6 m7
syms l1 l2 l3 l4 l5 l6
syms I1 I2 I3 I4 I5 I6
syms E
syms y1 a1 y7 a7 M1 Q1 M7 Q7 w;
syms k3 k6 c3 c6
p1=[1 0 0 0;
    0 1 0 0;
    0 0 1 0;
    m1*w^2 0 0 1];
%Z1L=;
%Z1R=p1*Z1L;
T2=[1 l1 l1^2/(2*E*I1) l1^3/(6*E*I1);
    0 1 l1/(E*I1) l1^2/(2*E*I1);
    0 0 1 l1;
    w^2*m2 w^2*m2*l1 w^2*m2*l1/(2*E*I1) 1+w^2*m2*l1^3/(6*E*I1)];
%Z2R=T2*Z1R;
T3L=[1 l2 l2^2/(2*E*I2) l2^3/(6*E*I2);
    0 1 l2/(E*I2) l2^2/(2*E*I2);
    0 0 1 l2;
    0 0 0 1];
T3R=[1 0 0 0;
   0 1 0 0;
   0 0 1 0;
   (m3*w^2-3*c3*w-k3) 0 0 1];
T3=T3L*T3R;
%Z3R=T3*Z2R;
T4=[1 l3 l3^2/(2*E*I3) l3^3/(6*E*I3);
    0 1 l3/(E*I3) l3^2/(2*E*I3);
    0 0 1 l3;
    w^2*m4 w^2*m4*l3 w^2*m4*l3/(2*E*I3) 1+w^2*m4*l3^3/(6*E*I3)];
%Z4R=T4*Z3R;
T5=[1 l4 l4^2/(2*E*I4) l4^3/(6*E*I4);
   0 1 l4/(E*I4) l4^2/(2*E*I4);
   0 0 1 l4;
   w^2*m5 w^2*m5*l4 w^2*m5*l4/(2*E*I4) 1+w^2*m5*l4^3/(6*E*I4)];
%Z5R=T5*Z4R;
T6L=[1 l5 l5^2/(2*E*I5) l5^3/(6*E*I5);
   0 1 l5/(E*I5) l5^2/(2*E*I5);
   0 0 1 l5;
   0 0 0 1];
T6R=[1 0 0 0;
   0 1 0 0;
   0 0 1 0;
   (m6*w^2-3*c6*w-k6) 0 0 1];
T6=T6L*T6R;
%Z6R=T6*Z5R;
T7=[1 l6 l6^2/(2*E*I6) l6^3/(6*E*I6);
   0 1 l6/(E*I6) l6^2/(2*E*I6);
   0 0 1 l6;
   w^2*m7 w^2*m7*l6 w^2*m7*l6/(2*E*I6) 1+w^2*m7*l6^3/(6*E*I6)];
%Z7R=T7*Z6R;
T=T7*T6*T5*T4*T3*T2*p1;
Z7=;
%Z7=T*Z1L;
A=T(3:4,3:4);
h=det(A);
w=solve('h=0')

zp814 发表于 2012-4-21 21:26

本人是初学者啊,向给位大师求助啦。

ChaChing 发表于 2012-4-22 19:28

专业部分不懂,学习中, 仅就matlab提出疑问
m1~m7都已经给值了, 为何还用符号?
(syms m1 m2 m3 m4 m5 m6 m7)

欧阳中华 发表于 2012-4-22 19:43

.
   不动matlab,但看起来问题不是很复杂呀,就几个传递阵,简单的首先检查输入数据是不是都输入进去,然后可以将各个传递阵表达看看是不是正确,再就是检查一下状态矢量是不是正确,最后就是传递连乘喽..

   一步一步检查,一定能检查出来的...

zp814 发表于 2012-4-22 20:35

{:{46}:}

zp814 发表于 2012-4-22 20:36

回复 3 # ChaChing 的帖子

这个是想算出符号矩阵,也没用,太复杂。

yyxt007 发表于 2012-4-22 21:58

回复 1 # zp814 的帖子

看着像是转子动力学里面用传递矩阵法计算临界转速哦;
det(A)非连续函数,有奇点存在,不能采用一般的多项式求根方法;
建议试试频率扫描法求解。
页: [1]
查看完整版本: 各位大侠帮忙看看传递矩阵程序问题