% function Rotors_System_Func %子程序
clear
clc
global BN Nb1 Nb2 w1 w2 Ro1 Ri1 Ro2 Ri2 %全局变量
n_one_T=200; %一个周期取点数
n_T=200; %计算周期数
Ro1=4.8828e-2; %半径
Ri1=6.8672e-2;
Nb1=10; %滚子数
Ro2=66.515e-3;
Ri2=58.5e-3; %另一轴承半径
Nb2=34; %滚子数
n_n=0; %计数变量
w2_min=100; % 转数
w2_max=300;
w2_step=100; %转速变化步长
w1_rpm=11000; %W1转速
q_initial(1:8,1)=1e-11; %位移初始值
BN=Ri1/(Ri1+Ro1)*Nb1; %定义一无量钢量
tic
%w2_rpm=100;
for w2_rpm=w2_min:w2_step:w2_max
n_n=n_n+1
w2=w2_rpm/60;
w1=w1_rpm/60; %变为转每秒
r=Ro2/(Ro2+Ri2);
w_cage=w1*r+w2*(1-r); %滚动体转速
w_vc=w_cage*Nb2;
T_vc=2*pi/w_vc; %周期
dt=T_vc/n_one_T; %时间步长
time=n_T*T_vc; %总时间
n=round(time/dt); %计算点数
t_span(1:n)=linspace(0,time,n);
options=odeset('RelTol',1e-6);
[t,q]=ode45('Rotors_System_Sub_Func',t_span,q_initial);
end
toc
wc=[wc,w_rpm];
subplot(2,1,1);plot(w2_rpm,q(:,1),'k.')
subplot(2,1,2);
subplot(2,2,1);plot(q(9800:100:10000,1),q(9800:100:10000,2),'k.','markersize',1)
subplot(2,2,2);plot(q(9800:100:10000,3),q(9800:100:10000,4),'k.','markersize',1)
subplot(2,2,3);plot(w2_rpm,q(9800:100:10000,3),'k.','markersize',1)
subplot(2,2,4);plot(w2_rpm,q(9800:100:10000,7),'k.','markersize',1) |