|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
大家好,我最近在学习转子动力学,用matlab中的ode45求响应和轴心轨迹,遇到问题,求出结果为NaN,求高手指点,多谢。
题目为:
[M1]{u1''}+[c1]{u1'}+w*[J1]{u2'} + [K1]*{u1}={Px(t)}
[M1]{u2‘'}+[c2]{u2'}-w*[J1]{u1'} +[K1]*{u2}={Py(t)}
[M1]等均为6*6的矩阵。求u1中的某一响应。
我编写得程序为:
function dz=zhuanzi2pan(t,z)
M1
J1
K1 %这些都是根据特定结构求的得,过程略去了
w=500 ;
Q1=zeros(6,1);
Q1(2)=m22*10^(-6)*w^2;
C=2*M1+0.001*K1;%按照比例阻尼算的,不知道对不对
dz=zeros(24,1);
dz(1:6)=z(7:12);
dz(7:12)=M1\Q1*cos(w*t)-w*M1\J1*z(19:24)-M1\C*z(7:12)-M1\K1*z(1:6);
dz(13:18)=z(19:24);
dz(19:24)=M1\Q1*sin(w*t)+w*M1\J1*z(7:12)-M1\C*z(19:24)-M1\K1*z(13:18);
%程序调用
clear,clc
%format long
z0=zeros(24,1);%初始条件
z0(2)=0.1;
z0(14)=0.1;
z0(8)=1;
z0(20)=1;
z0(4)=0.1;
z0(16)=0.1;
z0(10)=1;
z0(22)=1;
tspan=[0:0.01:1];
[t ,z] = ode45(@zhuanzi2pan,tspan,z0);
figure(1)
plot(t,z(:,2))
最终我求得的Z是NaN,求高手指点错误在哪里,谢谢了!
|
|