还是碰摩的!我的方程运行出来总是这样!!!请教请教
是轮盘机匣系统碰摩分析,一运行matlab就出现“Error using ==> mpowerMatrix must be square.
Error in ==> lanlan502_1 at 20
dy=[x(2);
Error in ==> funfun\private\odearguments at 110
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...”
不知道怎么回事啊!!!!求教高手指点!!!
函数:function dy=lanlan502_1(t,x)
global w
dy=zeros(8,1);
m=1;%轮盘等效质量
mb=2;%机匣等效质量
e=0.05e-3;%轮盘偏心距
c=0.86e3;%轮盘等效外阻尼
cb=0.86e3;%机匣的等效外阻尼
k=4e4;%轮盘等效刚度
kc=2.05e5;%机匣等效刚度
ks=2.05e5;%轴刚度非线性系数
f=0.06;%轮盘与机匣摩擦系数
deta=0.1e-3;%转子与机匣半径间隙
r=sqrt((x(1)-x(5))^2+(x(3)-x(7))^2);
H=1/2*(sign(abs(r-deta))+sign(r-deta)); %判断是否发生碰摩,sign正数返回1,负数返回-1
FN=kc*(r-deta);
FT=f*FN;
Fx=FT*(x(2)-x(4))/r-FN*(x(1)-x(3))/r;
Fy=-FN*(x(2)-x(4))/r-FT*(x(1)-x(3))/r;
dy=[x(2);
H*Fx/(m*w^2)-c*x(2)/(m*w)-k*x(1)/(m*w^2)-ks*(x(1)^2+x(3)^2)*x(1)/(m*w^2)+e*cos(t);
x(4);
H*Fy/(m*w^2)-c*x(4)/(m*w)-k*x(3)/(m*w^2)-ks*(x(1)^2+x(3)^2)*x(3)/(m*w^2)+e*sin(t)-g/w^2;
x(6);
-H*Fx/(mb*w^2)-cb*x(6)/(mb*w)-kc*x(5)/(mb*w^2);
x(8);
-H*Fy/(mb*w^2)-cb*x(8)/(mb*w)-kc*x(7)/(mb*w^2)-g/w^2];
主程序:global w
w=400:5:2000;
x0=;
for h=1:length(w)
disp(w(h));
T=2*pi;
=ode45('lanlan502_1',,x0,[],w(h));
plot(w(h),y(3500:100:end,1),'k.');hold on
end
Error using ==> mpower
Matrix must be square.
Ref: 10F,常见的程序出错问题整理 http://forum.vibunion.com/thread-46001-1-1.html
回复 2 # ChaChing 的帖子
好的,我去看看,谢谢元老{:{23}:} 回复 3 # xiaoshihanlan 的帖子
你的r为零,改改初值看看
回复 4 # pclgood 的帖子
g没有定义
页:
[1]