Формулировка выводов по результатам построенных переходных процессов с различными законами управления
На основе результатов построенных графиков переходных процессов для различных законов управления, можно сформулировать следующие выводы:
• Неуправляемое движение имеет самый долгий переходный процесс, но сводится к установившемуся значению;
• При управляемом движении, имеющим закон управления для случая (t)=0,время переходного процесса незначительно уменьшилось в сравнении с процессом при неуправляемом движении, однако, такой способ управления имеет большую колебательность, что не является хорошим показателем;
• При управляемом движении, имеющим закон управления , значительно уменьшилось время переходного процесса, перерегулирование; в сравнении с законом управления при неуправляемом движении и законом управления, имеющего вид , — колебательность значительно уменьшилась. Данный закон управления дает наилучшие показатели управления;
• При управляемом движении, имеющим закон управления с учетом ограничения угла отклонения рулей ≤, время переходного процесса по крену больше, чем при управлении без ограничения, но тем не менее остается значительно меньше в сравнении с неуправляемым и с законом управления.
Список используемой литературы
1. Грумонвз В.Т., Половинкин В.В. Управляемое движение подводного аппарата. — М.: МАИ, 2005.
Приложение
Cкрипт-файл для расчета параметров автоматической системы управления ДСА по крену:
|
|
script
clear
clc
ro=102;
Delta=0.02;
Jx=5.6;
lambda44=0.18;
G=1435;
yc=-0.007;
S=0.224;
L=7.93;
V=18;
m_omega_x_x=-0.00032;
m_delta_El_x=-0.0019;
m_omega_y_x=0.0028;
Dgamama=0.0174;
mu=0.9;
global delta_el_vol
delta_el_vol=0.262; % max
global a_gammma a_omx a_delta_El a_omy Omega_max_y
a_gammma=(G*yc)/(Jx+lambda44);
a_omx=(m_omega_x_x*ro*S*L^2*V)/(2*(Jx+lambda44));
a_delta_El=(m_delta_El_x*ro*S*L*V^2)/(2*(Jx+lambda44));
a_omy=(m_omega_y_x*ro*S*L^2*V)/(2*(Jx+lambda44));
% 2
Omega_max_y=-(a_delta_El/a_omy)*delta_el_vol;
%3
global K1
K1=-(a_gammma*Dgamama+a_omy*Omega_max_y)/(a_delta_El*Dgamama);
%4
k2=(0:0.01:10);
L=length(k2);
T=zeros(1,L);
S=zeros(3,L);
first=true;
for i=1:L
OMEGA=1/2*sqrt( (a_omx+k2(i)*a_delta_El)^2+4*(a_gammma+K1*a_delta_El) );
S(1,i)=(a_omx+k2(i)*a_delta_El)/2+OMEGA;
S(2,i)=(a_omx+k2(i)*a_delta_El)/2-OMEGA;
Alpha=min(abs(real(S(1,i))),abs(real(S(2,i))));
S(3,i)=k2(i);
if(imag(OMEGA)==0&&first)
K2_kritical=k2(i)
first=false;
end
T(i)=1/Alpha*log(1/Delta);
end
figure
plot(k2,T,'-k',[K2_kritical,K2_kritical],[0,25],'--r');
title('T=f(K2)')
grid on
ylabel('T')
xlabel('K2')
%5
p(1)=-(a_delta_El^2+a_delta_El^2*mu^2);
p(2)=-(2*a_omx*a_delta_El+2*a_omx*a_delta_El*mu^2);
p(3)=-(a_omx^2+4*(a_gammma+K1*a_delta_El)+a_omx^2*mu^2);
K_2=roots(p)
global K2
K2=max(K_2);
%6
global Delta_varian Omega_varioant
n=2;
%grafic_names=cell(1,12);
grafic_names={'neupr Wy=0','neupr Wy=Wy_max','neupr Wy=-Wy_max',...
'upr= K1*gamma Wy=0','upr= K1*gamma Wy=Wy_max',...
'upr= K1*gamma Wy=-Wy_max','upr= K1*gamma+K2*Omega Wy=0',...
'upr= K1*gamma+K2*Omega Wy=Wy_max','upr= K1*gamma+K2*Omega Wy=Wy_max',...
|
|
'upr= K1*gamma+K2*Omega Wy=0 . delta_el=<delta_el_max',...
'upr= K1*gamma+K2*Omega Wy=Wy_max . delta_el=<delta_el_max',...
'upr= K1*gamma+K2*Omega Wy=-Wy_max . delta_el=<delta_el_max'};
for i=1:4
Delta_varian=i;
for j=1:3
Omega_varioant=j;
% call solver
t=0:0.001:10; %interval
w=[0.248;0]; % start condition
[T,Y]=ode45('diffurs',t,w);
figure (n)
subplot(2,1,1)
plot (T,Y(1:end,1),'-m')
hold on
if (i==4)
Delta_Eleron_F=zeros(1,length(t));
for k=1:length(t)
Delta_Eleron=K1*Y(k,2)+K2*Y(k,2);
if (Delta_Eleron>=delta_el_vol)
Delta_Eleron=delta_el_vol;
elseif (Delta_Eleron<=-delta_el_vol)
Delta_Eleron=-delta_el_vol;
end
Delta_Eleron_F(k)=Delta_Eleron;
end
plot (T,Delta_Eleron_F,'-k')
end
hold off
grid on
xlabel('Gamma')
xlabel('Time (seconds)')
legend('Gamma')
subplot(2,1,2)
plot(T,Y(1:end,2),'-b')
grid on
ylabel('Omega')
xlabel('Time (seconds)')
%title(char(n))
legend('Omega X')
fprintf('%s %d %s \n','grafic number ', n,'OK')
disp(grafic_names(n-1))
n = n + 1;
end
end
Файл-функция:
function [di] = diffurs(t,Y)
% Find Gamma AND Wx
%Ou t not used!! Coefficient is constants...
global a_gammma a_omx a_delta_El a_omy Omega_max_y K1 K2 Omega_varioant Delta_varian delta_el_vol
Wx=Y(2);
Gamma=Y(1);
%SELECT Omega
switch Omega_varioant
case 1
Wy=0;
case 2
Wy=Omega_max_y;
case 3
Wy=-Omega_max_y;
otherwise
disp('Error')
end
% select control law
switch Delta_varian
case 1
Delta_Eleron=0;
case 2
Delta_Eleron=K1*Gamma;
case 3
Delta_Eleron=K1*Gamma+K2*Wx;
|
|
case 4
Delta_Eleron=K1*Gamma+K2*Wx;
if (Delta_Eleron>=delta_el_vol)
Delta_Eleron=delta_el_vol;
elseif (Delta_Eleron<=-delta_el_vol)
Delta_Eleron=-delta_el_vol;
end
otherwise
disp('Error')
end
%Delta_EleronS(d_num)=Delta_Eleron;
di(1,1) =Wx; % dGamma/dt
di(2,1) =a_gammma*Gamma+a_omx*Wx+a_delta_El*Delta_Eleron+a_omy*Wy; % dWx/dt
Дата добавления: 2019-01-14; просмотров: 165; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!