exponenta event banner

Самолеты с неустойчивыми полюсами

В этом примере показано, как управлять нестабильным самолетом с насыщающими приводами.

Пример управления одной и той же установкой с помощью явного контроллера MPC см. в разделе Явное управление MPC самолета с нестабильными полюсами.

Определение модели самолета

Линейная разомкнутая динамическая модель самолета имеет следующие матрицы состояния-пространства:

A = [-0.0151 -60.5651 0 -32.174;
     -0.0001 -1.3411 0.9929 0;
      0.00018 43.2541 -0.86939 0;
      0      0       1      0];
B = [-2.516 -13.136;
     -0.1689 -0.2514;
     -17.251 -1.5766;
      0        0];
C = [0 1 0 0;
     0 0 0 1];
D = [0 0;
     0 0];

Создайте завод и укажите начальные состояния как ноль.

plant = ss(A,B,C,D);
x0 = zeros(4,1);

Управляемыми переменными являются углы подъема и флаперона. Углы атаки и тангажа являются измеряемыми выходами, подлежащими регулированию.

Реакция системы с разомкнутым контуром нестабильна.

pole(plant)
ans =

  -7.6636 + 0.0000i
   5.4530 + 0.0000i
  -0.0075 + 0.0556i
  -0.0075 - 0.0556i

Указание ограничений контроллера

Обе манипулируемые переменные ограничены между +/- 25 градусами. Поскольку заводские входы и выходы имеют разные порядки величин, для упрощения настройки MPC используются также масштабные коэффициенты. Типичными вариантами масштабного коэффициента являются верхний/нижний предел или рабочий диапазон.

MV = struct('Min',{-25,-25},'Max',{25,25},'ScaleFactor',{50,50});

Оба выхода установки имеют ограничения для ограничения недопоставок на первом горизонте прогнозирования. Также задаются масштабные коэффициенты для выходных данных.

OV = struct('Min',{[-0.5;-Inf],[-100;-Inf]},...
            'Max',{[0.5;Inf],[100;Inf]},...
            'ScaleFactor',{1,200});

Укажите веса настройки контроллера

Задача управления состоит в получении смещения нуля для кусочно-постоянных привязок, избегая при этом нестабильности из-за насыщения входных данных. Поскольку переменные MV и OV уже масштабированы в контроллере MPC, веса MPC безразмерны и применяются к масштабированным значениям MV и OV. В этом примере два выходных сигнала распределяются поровну с одинаковыми весами OV.

Weights = struct('MV',[0 0],'MVRate',[0.1 0.1],'OV',[10 10]);

Создание контроллера MPC

Создайте MPC-контроллер с указанной моделью завода, временем выборки и горизонтами.

Ts = 0.05;          % Sample time
p = 10;             % Prediction horizon
m = 2;              % Control horizon
mpcobj = mpc(plant,Ts,p,m,Weights,MV,OV);

Моделирование с использованием Simulink

®

Для выполнения этого примера необходимо приложение Simulink ®.

if ~mpcchecktoolboxinstalled('simulink')
    disp('Simulink(R) is required to run this example.')
    return
end

Моделирование управления по замкнутому контуру линейной модели установки в Simulink. Для этого для блока контроллера MPC установите для свойства контроллера MPC значение mpcobj.

mdl = 'mpc_aircraft';
open_system(mdl)
sim(mdl)
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->Assuming output disturbance added to measured output channel #2 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

Отклик по замкнутому контуру показывает хорошую производительность отслеживания уставок.

Ссылки

[1] P. Kapasouris, M. Athans и G. Stein, «Проектирование систем управления с обратной связью для неустойчивых установок с исполнительными механизмами насыщения», Proc. IFAC Symp., on Nonlinear Control System Design, Pergamon Press, pp.302-307, 1990

[2] А. Бемпорад, А. Казавола и Е. Моска, «Нелинейное управление линейными системами с ограничением посредством управления прогностическими ссылками», IEEE ® Trans. Automatic Control, том AC-42, № 3, стр. 340-349, 1997.

bdclose(mdl)

См. также

|

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