Алгоритм кратной синхронизации для регулирования расфазировки роторов виброустановки с учетом динамики привода, страница 36

19.  Ярошевич Н.П. К теории синхронизации механических вибровозбудителей, связанных с линейной колебательной системой. // Проблемы машиностроения и надежности машин. 2003. №4. С.3-10 

Приложение №1  

Программа исследования алгоритма управления двукратной синхронизацией виброустановки

%Головная программа модели движения в  плоскости Oxy

%с учетом динамики СЭП i gruza

close all

clear

format compact

format short e

global J J_1 J_2 m_0 m rho k_c U1 U2...

g beta c_2 c_1 r c_3 delta c_4 c_5 m_g V t_1 t_2 V1 V2

global alfa1 alfa2 gamma1 gamma2 H HG

global ras rasa FF newan1 newan2

global flag ta pogra1 pogra2 pogrs1 pogrs2 rasp rasap R ts fa tv

mpd=9;

m=1.5;

m_0=mpd+2*m;

m_g=3;

J_1=0.014;

J_2=0.014;

rho=0.04;

J=0.2;

r=0.2;

g=9.81;

c_1=5300;

c_2=5300;

c_3=164;

c_4=2000;

c_5=2650;

k_c=0.01;

beta=5;

V=0.6;

t_1=5;

t_2=9;

gamma1=0.014; gamma2=0.02;

alfa1=0.25; alfa2=0.25;

HG=m*rho^2*250^2/2;

t0=0;

tfin=50;

ph10=-1;

ph20=0.75;

x0=[0 0 0 0 0 0 ph10 0 ph20 0 0 0 0.1 0 3 0 0]

%[t,x]=ode45('tok2krpp1',[t0,tfin],x0);

[t,x]=ode45('tokbelolikpp',[t0,tfin],x0);

for k=1:length(t);

H=0.5*J_1*(x(k,8))^2+m*g*rho*sin(x(k,7))+0.5*J_2*(x(k,10))^2+m*g*rho*sin(x(k,9))+ 0.5*c_5*(x(k,3)-x(k,13))^2+ 0.5*c_2*(x(k,3))^2+...   

m_0*g*x(k,3)+x(k,4)*(m*rho*x(k,8)*cos(x(k,7))+m*rho*x(k,10)*cos(x(k,9)))+...

0.5*m_0*(x(k,4))^2;

U1=-gamma1*((1-alfa1)*(H-HG)*x(k,8)+(2*alfa1/J_1)*(2*x(k,8)-x(k,10))+(2*alfa1/J_1)*(2*x(k,7)-x(k,9)));

U2=-gamma2*((1-alfa2)*(H-HG)*x(k,10)-(alfa2/J_2)*(2*x(k,8)-x(k,10))-(alfa2/J_2)*(2*x(k,7)-x(k,9)));

uu1(k)=U1;

uu2(k)=U2;

HH(k)=H;

end;

clear J_1 J_2 m_0 m  k_c U1 U2 g beta  

figure

subplot(321),plot(t,x(:,1)),grid

title('x(t)')

subplot(322),plot(t,x(:,11)),grid

title('x_1(t)')

subplot(323),plot(t,x(:,3)),grid

title('y(t)')

subplot(324),plot(t,x(:,13)),grid

title('y_1(t)')

subplot(325),plot(t,x(:,7),t,x(:,9)),grid

title('\phi1,\phi2')

subplot(326),plot(t,2*x(:,7)-x(:,9)),grid

title('2*\phi_1-\phi_2')

figure

subplot(321),plot(t,x(:,8),t,x(:,10)),grid

title('d\phi_1/dt(t),d\phi_2/dt(t)')

subplot(322),plot(t,2*x(:,8)-x(:,10)),grid

title('2*d\phi_1/dt(t)-d\phi_2/dt(t)')

subplot(323),plot(t,x(:,16)),grid

title('M1')

subplot(324),plot(t,x(:,17)),grid

title('M2')

subplot(325),plot(t,x(:,3)-x(:,13)),grid

title('y-y1')

subplot(326),plot(t,x(:,12)),grid

title('dx_1(t)/dt')

figure

subplot(221),plot(x(:,1),x(:,3)),grid

title('y(x)')

subplot(222),plot(x(:,11),x(:,13)),grid

title('y1(x1)')

figure

subplot(221),plot(t,x(:,15)),grid

title('m_g')

subplot(222),plot(t,uu1,t,uu2),grid

title('uprav.moment1 & uprav.moment2')

Приложение №2  

Подпрограмма для программы в приложении №1

function xdot= tokbelolikpp(t,x)

global  J J_1 J_2 m_0 m rho k_c U1 U2...

g beta c_2 c_1 r c_3 delta c_4 c_5 m_g V t_1 t_2 V1 V2

global alfa1 alfa2 gamma1 gamma2 H HG

global ras rasa FF newan1 newan2

global flag ta pogra1 pogra2 pogrs1 pogrs2 rasp rasap R ts fa tv

xdot=zeros(size(x));

x1=x(1);   x2=x(2);

x3=x(3);   x4=x(4);

x5=x(5);   x6=x(6);

x7=x(7);   x8=x(8);

x9=x(9);    x10=x(10);

x11=x(11);    x12=x(12);

x13=x(13);    x14=x(14);

x15=x(15); x16=x(16);

x17=x(17);

H=0.5*J_1*(x8)^2+m*g*rho*sin(x7)+0.5*J_2*(x10)^2+m*g*rho*sin(x9)+...

0.5*c_5*(x3-x13)^2+...  

0.5*c_2*(x3)^2+m_0*g*x3+x4*(m*rho*x8*cos(x7)+m*rho*x10*cos(x9))+0.5*m_0*(x4)^2;

U1=-gamma1*((1-alfa1)*(H-HG)*x8+(2*alfa1/J_1)*(2*x8-x10)+(2*alfa1/J_1)*(2*x7-x9));

U2=-gamma2*((1-alfa2)*(H-HG)*x10-(alfa2/J_2)*(2*x8-x10)-(alfa2/J_2)*(2*x7-x9-2));

%U1=-gamma1*((1-alfa1)*(H-HG)*x8+(alfa1/J_1)*(x8-2*x10));

%U2=-gamma2*((1-alfa2)*(H-HG)*x10-(2*alfa2/J_2)*(x8-2*x10));

if abs(rasa)>=0

if abs(rasa)<=0.3

if flag==0

ts=t;

flag=1;

else

ts=ts;

end;

else

flag=0;

ts=t;

end;

else

flag=0;

ts=t;

end;

rasfaz=abs(2*x7-x9);

rasa=rasfaz-(fix(rasfaz/6.28)*6.28);

rasa=abs(2*x7-x9);

rasa=rasfaz-(fix(rasfaz/6.28)*6.28);

a1=m_0;

a3=m*rho*(sin(x5+x7)+sin(x5+x9));

a4=m*rho*sin(x5+x7);

a5=m*rho*sin(x5+x9);

a7=m_0;

a8=m*rho*(cos(x5+x7)+cos(x5+x9));

a9=m*rho*cos(x5+x7);

a10=m*rho*cos(x5+x9);

a11=m*rho*(sin(x5+x7)+sin(x5+x9));

a12=m*rho*(cos(x5+x7)+cos(x5+x9));