Формирование цикла контроллера оси подачи HIMAT

В этом примере показано, как использовать Robust Control Toolbox™, чтобы спроектировать мультивход, мультивыходной контроллер путем формирования усиления ответа разомкнутого цикла через частоту. Этот метод применяется к управлению осью подачи самолета HIMAT.

Мы показываем, как выбрать подходящую целевую форму цикла и использовать loopsyn функция, чтобы вычислить многомерный контроллер, который оптимально совпадает с целевой формой цикла.

Технические требования формирования цикла: производительность, пропускная способность и робастность

Как правило, формирование цикла является компромиссом между двумя потенциально конфликтными целями. Мы хотим максимизировать коэффициент усиления разомкнутого контура, чтобы получить самую лучшую производительность, но для робастности, мы должны опустить усиления ниже 0dB, где точность модели плоха, и высокое усиление может вызвать нестабильность. Это требует хорошей модели, где производительность необходима (обычно в низких частотах), и достаточный спад на более высоких частотах, где модель часто плоха. Туалет частоты, где усиление пересекает 0dB линию, называется частотой среза и отмечает переход между требованиями робастности и производительностью.

Рисунок 1: технические требования формирования Цикла.

Целевая форма цикла

Существует несколько инструкций для выбора целевой формы цикла Gd:

  • Робастность устойчивости: Gd должен иметь усиление меньше, чем 0dB в высоких частотах, где модель объекта управления так плоха, что ошибка фазы может приблизиться к 180 градусам.

  • Производительность: Gd должен иметь высокое усиление, где вы хотите хорошую точность регулировки и хорошее подавление помех.

  • Перекрестное соединение и спад: Gd должен пересечь 0dB линию между этими двумя областями частоты и список прочь с наклоном-20 к-40 дБ/десятилетие мимо туалета частоты среза.

Простая целевая форма цикла

Gd=Wc/s

где перекрестный Wc обратная величина времени нарастания желаемого переходного процесса.

Модель самолета HiMAT НАСА

В целях рисунка давайте использовать модель с шестью состояниями продольной динамики самолета HiMAT, обрезанного на уровне 25 000 футов и 0.9 Маха. Движущие силы самолета нестабильны с двумя фугоидными режимами правой полуплоскости.

Рисунок 2: самолет НАСА HiMAT

Эта модель имеет два входных параметров управления:

  • Отклонение элевона

  • Отклонение утки

Это также имеет два измеренных выходных параметров:

  • Угол альфы нападения

  • Передайте угловую тету

Модель ненадежна вне 100 рад/секунда. Режимы изгиба фюзеляжа и другие неопределенные факторы вызывают отклонения между моделью и истинным самолетом целых 20 децибелов (или 1 000%) вне частоты 100 рад/секунда.

ag = [
-2.2567e-02  -3.6617e+01  -1.8897e+01  -3.2090e+01   3.2509e+00  -7.6257e-01;
9.2572e-05  -1.8997e+00   9.8312e-01  -7.2562e-04  -1.7080e-01  -4.9652e-03;
1.2338e-02   1.1720e+01  -2.6316e+00   8.7582e-04  -3.1604e+01   2.2396e+01;
0            0   1.0000e+00            0            0            0;
0            0            0            0  -3.0000e+01            0;
0            0            0            0            0  -3.0000e+01];
bg = [0     0;
      0     0;
      0     0;
      0     0;
     30     0;
      0    30];
cg = [0     1     0     0     0     0;
      0     0     0     1     0     0];
dg = [0     0;
      0     0];
G = ss(ag,bg,cg,dg);
G.InputName = {'elevon','canard'};
G.OutputName = {'alpha','theta'};

clf
step(G), title('Open-loop step response of HIMAT aircraft')

Наша задача состоит в том, чтобы управлять alpha и theta путем издания соответствующего элевона и команд утки. Мы также хотим минимальный избыток между каналами - то есть, команда в альфе должна оказать минимальное влияние на тету и наоборот.

Цикл, формирующий шаги проекта

Разработка контроллера с loopsyn включает следующие шаги:

  • Шаг 1: Посмотрите на динамику объекта и ответы

  • Шаг 2: Укажите, что желаемый цикл формирует Gd

  • Шаг 3: используйте loopsyn вычислять оптимальный контроллер формирования цикла

  • Шаг 4: Анализируйте имеющий форму цикл L, T с обратной связью и чувствительность S

  • Шаг 5: Проверьте, что ответы с обратной связью соответствуют вашим спецификациям.

Шаг 1: анализ динамики объекта

В этом примере, модели G самолета имеет два нестабильных полюса фугоидного режима правой полуплоскости. Это имеет один нуль, который находится в левой полуплоскости:

plant_poles = pole(G)
plant_poles = 6×1 complex

  -5.6757 + 0.0000i
   0.6898 + 0.2488i
   0.6898 - 0.2488i
  -0.2578 + 0.0000i
 -30.0000 + 0.0000i
 -30.0000 + 0.0000i

plant_zeros = tzero(G)
plant_zeros = -0.0210

Мы будем использовать sigma чтобы построить min и макс. ввод-вывод получают как функция частоты:

clf, sigma(G,'g',{.1,100});
title('Singular value plot for aircraft model G(s)');

Рисунок 4: график Сингулярного значения для модели G (s) самолета.

Шаг 2: определение целевой желаемой формы цикла Gd

Для этого проекта мы используем целевую форму цикла Gd (s) =8/s соответствие времени нарастания приблизительно 1/8=0.125 секунда.

s = zpk('s'); % Laplace variable s
Gd = 8/s;     
sigma(Gd,{.1 100})
grid
title('Target loop shape Gd(s).')

% create textarrow pointing to crossover frequency Wc
hold on;
plot([8,35],[0,21],'k.-'); 
plot(8,0,'kd');
plot([.1,100],[0 0],'k');
text(3,23,'Crossover Frequency \omega_c = 8');
hold off;

Рисунок 5: Целевая форма цикла Gd (s).

Шаг 3: Используя LOOPSYN, чтобы вычислить оптимальный формирующий цикл контроллер

Теперь мы готовы спроектировать контроллер H-бесконечности K, таким образом, что усиления ответа разомкнутого цикла G (s) *K (s) совпадают с целевым циклом, формируют Gd, а также возможный (при стабилизации динамики самолета).

[K,CL,GAM] = loopsyn(G,Gd);
GAM
GAM = 1.6445

GAM=1.6445 значения указывает, что форме целевого цикла соответствовали в +/-4.3dB (использующий 20*log10 (GAM) =4.32). Сравните сингулярные значения разомкнутого цикла, L=G*K с целевым циклом формируют Gd:

L = G*K;              % form the compensated loop L
sigma(Gd,'b',L,'r--',{.1,100});
grid
legend('Gd (target loop shape)','L (actual loop shape)');

Рисунок 6: Сингулярные значения L по сравнению с Gd

Шаг 4: анализ Имеющего форму Цикла L, T с обратной связью и чувствительности S

Затем мы сравним усиления передачи разомкнутого цикла L, передачи с обратной связью T и функции чувствительности S.

T = feedback(L,eye(2));
T.InputName = {'alpha command','theta command'};
S = eye(2)-T;

% SIGMA frequency response plots
sigma(inv(S),'m',T,'g',L,'r--',Gd,'b',Gd/GAM,'b:',...
	Gd*GAM,'b:',{.1,100})
legend('1/\sigma(S) performance',...
	'\sigma(T) robustness',...
	'\sigma(L) open loop',...
	'\sigma(Gd) target loop shape',...
	'\sigma(Gd) \pm GAM(dB)');
% Make lines wider and fonts larger

% set(findobj(gca,'Type','line','-not','Color','b'),'LineWidth',2);
h = findobj(gca,'Type','line','-not','Color','b');
set(h,'LineWidth',2);

Рисунок 7: графики частотных характеристик Сигмы.

Шаг 5: Проверка, что Ответы С обратной связью Соответствуют Вашему

Технические требования

Наконец, на этом шаге мы строим переходные процессы системы с обратной связью T.

step(T,8)
title('Responses to step commands for alpha and theta');

Рисунок 8: Ответы на команды шага для альфы и теты.

Наш проект выглядит хорошим. Альфа и средства управления тетой справедливо разъединяются, перерегулирование - меньше 15 процентов, и пиковое время составляет только 0,5 секунды.

Упрощение контроллера

Мы только спроектировали K с 2 выходными контроллерами, с 2 входами с удовлетворительной производительностью. Однако у этого контроллера есть довольно старший разряд:

size(K)
State-space model with 2 outputs, 2 inputs, and 16 states.

Мы можем теперь использовать алгоритмы снижения сложности модели, чтобы попытаться упростить этот контроллер при сохранении его показателей производительности. Сначала мы вычисляем сингулярные значения Ганкеля K чтобы понять, сколько состояний контроллера эффективно способствует закону о надзоре:

hsv = hankelsv(K);
semilogy(hsv,'*--')
grid
title('Hankel singular values of K')
xlabel('Order')

Рисунок 9: сингулярные значения Ганкеля K.

Мера по Сингулярным значениям Ганкеля (HSV) относительная энергия каждого состояния в сбалансированной реализации K. Заметьте, что HSV для 10-го состояния является четырьмя порядками величины, меньшими, чем для 9-го состояния, так попытайтесь вычислить приближение 9-го порядка K

Kr = reduce(K,9);
order(Kr)
ans = 9

Упрощенный контроллер Kr имеет порядок 9 по сравнению с 16 для начального контроллера K. Сравните ошибку приближения K-Kr через частоту с усилениями K.

sigma(K,'b',K-Kr,'r-.')
legend('K','error K-Kr')

Этот график предполагает, что ошибка приближения мала в относительном выражении, таким образом идите вперед и сравните ответы с обратной связью с исходными и упрощенными контроллерами K и Kr

Tr = feedback(G*Kr,eye(2));
step(T,'b',Tr,'r-.',8)
title('Responses to step commands for alpha and theta');
legend('K','Kr')

Рисунок 11: Ответы на команды шага для альфы и теты.

Эти два ответа неразличимы так упрощенный контроллер 9-го порядка Kr хорошая замена для K в целях реализации.