exponenta event banner

Управление угловой скоростью в автопилоте HL-20

Это часть 2 примера серии по проектированию и настройке системы управления полетом для HL-20 транспортного средства. Эта часть касается замыкания внутренних петель, контролирующих угловые скорости тела.

Архитектура управления

Откройте модель HL-20 с ее системой управления полетом.

open_system('csthl20_control')

Эта 6-DOF модель адаптирована от NASA HL-20 Lifting Body Airfair (аэрокосмический блок). Модель сконфигурирована для моделирования окончательного подхода к месту посадки. «Система наведения» генерирует траекторию глиссады и соответствующие команды крена, угла атаки (альфа) и угла бокового скольжения (бета). Перед «Системой управления полетом» поставлена задача отрегулировать управляющие поверхности для отслеживания этих команд. Блок «Controller» внутри «Flight Control System» представляет собой вариационную подсистему с различными конфигурациями автопилота.

Контроллеры «Baseline» и «Classical» используют классическую каскадно-петлевую архитектуру с тремя внутренними петлями P-only для управления угловыми скоростями p, q, r и тремя внешними петлями PI для управления угловыми положениями phi, alpha, beta. Шесть пропорциональных коэффициентов усиления и три интегральных коэффициента усиления планируются как функция альфа и бета. «Базовый» вариант содержит базовый дизайн, показанный в корпусе NASA HL-20 Несущего тела (Аэрокосмический Blockset). Части 2 и 3 этой серии используют вариант «Classical» для прохождения процесса настройки. Активным вариантом управляет переменная рабочей области CTYPE. Установите его значение 2 для активации варианта «Classical» контроллера.

% Select "Classical" variant of controller
CTYPE = 2;

% call model update to make sure only active variant signals are analyzed during linearization
set_param('csthl20_control', 'SimulationCommand', 'update');

Обратите внимание, что этот вариант использует сочетание таблиц поиска и функциональных блоков MATLAB для планирования усиления автопилота.

Настройка настройки контроллера

В Части 1 этой серии (Обрезка и линеаризация HL-20 Планера) мы получили линеаризованные модели блоков «HL20 Планер» и «Селектор органов управления» для 40 различных ориентаций самолётов (40 различных пар значений (альфа, бета)). Загрузите эти массивы линеаризованных моделей.

load csthl20_TrimData G7 CS

size(G7)
8x5 array of state-space models.
Each model has 34 outputs, 9 inputs, and 7 states.
size(CS)
8x5 array of state-space models.
Each model has 6 outputs, 5 inputs, and 0 states.

slTuner интерфейс - удобный способ получения линеаризованных моделей «csthl20_control», пригодных для проектирования и анализа системы управления. С помощью этого интерфейса можно обозначить сигналы и интересующие точки в модели и указать, какие блоки требуется настроить.

ST0 = slTuner('csthl20_control');
ST0.Ts = 0;   % ask for continuous-time linearizations

Здесь интересующие точки включают угловые и тарифные требования, соответствующие ответы и отклонения da, de, dr.

AP = {'da;de;dr'
   'HL20 Airframe/pqr'
   'Alpha_deg'
   'Beta_deg'
   'Phi_deg'
   'Controller/Classical/Demands'  % angular demands
   'p_demand'
   'q_demand'
   'r_demand'};
ST0.addPoint(AP)

Поскольку мы уже получили линеаризованные модели блоков «HL20 Airframe» и «Controls Selector» как функцию (альфа, бета), простейшим способом линеаризации всей модели «csthl20_control» является замена каждого нелинейного компонента семейством линейных моделей. Это называется «подстановкой блоков» и часто является наиболее эффективным способом линеаризации сложных моделей при множественных рабочих условиях.

% Replace "HL20 Airframe" block by 8-by-5 array of linearized models G7
BlockSub1 = struct('Name','csthl20_control/HL20 Airframe','Value',G7);

% Replace "Controls Selector" by CS
BlockSub2 = struct('Name','csthl20_control/Flight Control System/Controls Selector','Value',CS);

% Replace "Actuators" by direct feedthrough (ignore saturations and second-order actuator dynamics)
BlockSub3 = struct('Name','csthl20_control/Actuators','Value',eye(6));

ST0.BlockSubstitutions = [BlockSub1 ; BlockSub2 ; BlockSub3];

Теперь вы готовы к элементу конструкции элемента управления.

Закрытие внутренних контуров

Начните с трех внутренних контуров, управляющих угловыми скоростями p, q, r. Чтобы сориентироваться, постройте график передаточной функции разомкнутого контура от отклонений (da, de, dr) к угловым скоростям (p, q, r). С помощьюslTuner , можно запросить модель для любой интересующей функции переноса.

% NOTE: The second 'da;de;dr' opens all feedback loops at the plant input
Gpqr = getIOTransfer(ST0,'da;de;dr','pqr','da;de;dr');

bode(Gpqr(1,1),Gpqr(2,2),Gpqr(3,3),{1e-1,1e3}), grid
legend('da to p','de to q','dr to r')

Этот график Боде предполагает, что диагональные термины ведут себя как интеграторы (вплоть до знака) за пределами 5 рад/с. Это оправдывает использование только пропорционального управления. В соответствии с базовой конструкцией установите целевую полосу пропускания для циклов p, q, r на 30, 22,5 и 37,5 рад/с соответственно. Коэффициенты усиления Kp, Kq, Kr для каждого значения (альфа, бета) легко получаются из частотной характеристики установки на этих частотах, и фазовые графики показывают, что Kp должен быть положительным (отрицательная обратная связь) и Kq, Kr должен быть отрицательным (положительная обратная связь).

% Compute Kp,Kq,Kr for each (alpha,beta) condition. Resulting arrays
% have size [1 1 8 5]
Kp = 1./abs(evalfr(Gpqr(1,1),30i));
Kq = -1./abs(evalfr(Gpqr(2,2),22.5i));
Kr = -1./abs(evalfr(Gpqr(3,3),37.5i));

bode(Gpqr(1,1)*Kp,Gpqr(2,2)*Kq,Gpqr(3,3)*Kr,{1e-1,1e3}), grid
legend('da to p','de to q','dr to r')

Чтобы завершить проектирование внутреннего цикла, переместите эти значения коэффициента усиления в соответствующие таблицы поиска в модели Simulink и обновите slTuner объект.

MWS = get_param('csthl20_control','ModelWorkspace');
MWS.assignin('Kp',squeeze(Kp))
MWS.assignin('Kq',squeeze(Kq))
MWS.assignin('Kr',squeeze(Kr))

refresh(ST0)

Далее нужно настроить внешние петли, контролирующие крен, угол атаки и угол бокового скольжения. Часть 3 этой серии (Управление отношением в HL-20 Autopilot - SISO Design) показывает, как настроить классическую архитектуру SISO и часть 4 (Управление отношением в HL-20 Autopilot - MIMO Design) рассматривает преимущества архитектуры MIMO.

Связанные темы