|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
是轮盘机匣系统碰摩分析,一运行matlab就出现“Error using ==> mpower
Matrix 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=[0.02;0.1;0.01;0.1;0.02;0.1;0.01;0.1];
for h=1:length(w)
disp(w(h));
T=2*pi;
[t y]=ode45('lanlan502_1',[0:T/100:100*T],x0,[],w(h));
plot(w(h),y(3500:100:end,1),'k.');hold on
end
|
|