В этом примере показана конструкция YAW DAMPER для самолета 747 ® с использованием классических функций управления в системе управления Toolbox™.

Упрощенная модель отделки самолета во время круизного полета


имеет четыре состояния:
beta (sideslip angle), phi (bank angle), yaw rate, roll rate
и два входа: руль направления и отклонения элерона.
Все углы и угловые скорости в радианах и радианах/сек.
Учитывая матрицы A, B, C, D модели обрезки, используйте команду SS для создания модели состояния-пространства в MATLAB ®:
A=[-.0558 -.9968 .0802 .0415;
.598 -.115 -.0318 0;
-3.05 .388 -.4650 0;
0 0.0805 1 0];
B=[ .00729 0;
-0.475 0.00775;
0.153 0.143;
0 0];
C=[0 1 0 0;
0 0 0 1];
D=[0 0;
0 0];
sys = ss(A,B,C,D);
и маркировать входы, выходы и состояния:
set(sys, 'inputname', {'rudder' 'aileron'},... 'outputname', {'yaw rate' 'bank angle'},... 'statename', {'beta' 'yaw' 'roll' 'phi'});
Эта модель имеет пару слегка затухающих полюсов. Они соответствуют так называемому голландскому режиму крена. Для просмотра этих режимов введите
axis(gca,'normal') h = pzplot(sys); setoptions(h,'FreqUnits','rad/s','Grid','off');

Щелкните правой кнопкой мыши и выберите «Сетка» для построения графика значений демпфирования и собственной частоты. Нужно сконструировать компенсатор, увеличивающий демпфирование этих двух полюсов.
Начните с анализа с разомкнутым контуром, чтобы определить возможные стратегии контроля. Наличие слегка затухающих режимов подтверждается «взглядом на импульсную характеристику:»
impulseplot(sys)

Для проверки ответа в течение меньшего промежутка времени, равного 20 секундам, можно также ввести
impulseplot(sys,20)

Посмотрите на сюжет от элерона до банковского угла фи. Чтобы отобразить только этот график, щелкните правой кнопкой мыши и выберите «I/O Selector», затем щелкните по записи (2,2).
На этом графике показано колебание самолета вокруг ненулевого угла крена. Таким образом, самолет поворачивается в ответ на импульс элерона. Это поведение будет важно позже.
Обычно заслонки рыскания проектируются с использованием скорости рыскания в качестве измеряемого выходного сигнала и руля направления в качестве входного сигнала. Проверьте частотную характеристику для этой пары ввода-вывода:
sys11 = sys('yaw','rudder'); % select I/O pair h = bodeplot(sys11); setoptions(h, 'FreqUnits','rad/s','MagUnits','dB','PhaseUnits','deg');

Этот сюжет показывает, что руль имеет большой авторитет вокруг слегка затухающего голландского режима крена (1 рад/с).
Разумной целью конструкции является обеспечение коэффициента затухания дзета > 0,35, с собственной частотой Wn < 1,0 рад/с. Самый простой компенсатор - это коэффициент усиления. Используйте метод корневого локуса, чтобы выбрать адекватное значение коэффициента усиления обратной связи:
h = rlocusplot(sys11); setoptions(h,'FreqUnits','rad/s')

Ой, похоже, нам нужна положительная обратная связь!
h = rlocusplot(-sys11); setoptions(h,'FreqUnits','rad/s')

Выглядит лучше. Щелкните синюю кривую и переместите черный квадрат для отслеживания значений усиления и демпфирования. Наилучшее достижимое демпфирование по замкнутому контуру составляет около 0,45 при коэффициенте усиления К = 2,85.
Теперь закройте этот контур обратной связи SISO и посмотрите на импульсную характеристику
k = 2.85; cl11 = feedback(sys11,-k);
Примечание: обратная связь предполагает отрицательную обратную связь по умолчанию
impulseplot(sys11,'b--',cl11,'r') legend('open loop','closed loop','Location','SouthEast')

Ответ выглядит довольно хорошо.
Теперь замкните цикл вокруг полной модели MIMO и посмотрите, как выглядит отклик от элерона. Контур обратной связи включает в себя вход 1 и выход 1 установки:
cloop = feedback(sys,-k,1,1); impulseplot(sys,'b--',cloop,'r',20) % MIMO impulse response

Отклик скорости рыскания теперь хорошо затухает.
При перемещении элерона, однако, система больше не продолжает накапливаться, как обычный самолет, как видно из
impulseplot(cloop('bank angle','aileron'),'r',18)

Превышена стабилизация спирального режима. Спиральный режим обычно представляет собой очень медленный режим, который позволяет самолету подниматься и поворачиваться без постоянного ввода элерона. Пилоты привыкли к такому поведению и не понравятся конструкции, которая нормально не летает.
При закрытии контура необходимо убедиться, что спиральный режим не перемещается дальше в левую половину плоскости. Одним из способов устранения этой проблемы конструкторами управления полетом является использование фильтра промывки.
Фильтр промывки:

С помощью инструмента проектирования SISO (help sisotool) можно графически настроить параметры k и a, чтобы найти лучшую комбинацию. В этом примере мы выбираем a = 0,2 или постоянную времени 5 секунд.
Сформировать фильтр промывки для a = 0,2 и k = 1
H = zpk(0,-0.2,1);
соединить промывку последовательно с конструктивной моделью и использовать корневой локус для определения коэффициента k усиления фильтра:
oloop = H * (-sys11); % open loop' h = rlocusplot(oloop); setoptions(h, 'FreqUnits','rad/s') sgrid

Лучшее демпфирование теперь около дзета = 0,305 для k = 2,34. Замкните цикл с моделью MIMO и проверьте импульсную характеристику:
k = 2.34; wof = -k * H; % washout compensator cloop = feedback(sys,wof,1,1); impulseplot(sys,'b--',cloop,'r',20)

Фильтр вымывания также восстановил нормальное поведение банка и поворота, как видно, глядя на импульсную реакцию от элерона к углу банка.
impulseplot(sys(2,2),'b--',cloop(2,2),'r',20) legend('open loop','closed loop','Location','SouthEast')

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