Адаптивное управление моделью - ссылкой самолета, подвергающегося скале крыла

В этом примере показано, как управлять креном и уровнем крена самолета крыла дельты, подвергающегося скале крыла. В данном примере системная модель неизвестна. Поэтому вы используете адаптивное управление моделью - ссылкой (MRAC), чтобы заставить управляемую систему совпадать с идеальным образцом модели. Самолет моделируется в Simulink®, и контроллер MRAC реализован с помощью блока Model Reference Adaptive Control, обеспеченного программным обеспечением Simulink Control Design™.

Система управления скалы крыла

Скала крыла является явлением, наблюдаемым в самолете крыла дельты, летящем в низких скоростях и высоких углах нападения. Самолет испытывает нежелательные колебания крена, которые делают самолет более трудным для пилота управлять. Цель контроллера MRAC состоит в том, чтобы отменить нежелательное колебание крена. Базовый контроллер может затем быть спроектирован, чтобы достигнуть желаемого ссылочного поведения.

Следующие уравнения задают динамику для модели скалы крыла.

θ˙=pp˙=Δ(x)+LδδaΔ(x)=w0*+w1*θ+w2*p+w3*|θ|+w4*|p|p+w5*θ3

Здесь:

  • x=(θ,p) системный вектор состояния, где θ крен и p уровень крена.

  • δa угловой вход управления элероном для самолета.

  • Lδ управление эффективная матрица, для которой вы знаете, по крайней мере, знак.

  • Δ(x) воздействие скалы крыла

  • wi* неизвестные идеальные веса.

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

x¨m=-4xm-2x˙m+4r(t)

Здесь:

  • xm вектор состояния образца модели.

  • r(t) опорный сигнал крена, обеспеченный пилотом.

Задайте номинал и образцы модели

Задайте следующую упрощенную номинальную модель второго порядка для динамики крена.

A = [0 1; 0 0]; % Second intergrator model
B = [0;1];      % Nominal control effective matrix

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

Am = [0 1; -4 -2]; % Second intergrator model
Bm = [0;4];       % Nominal control effective matrix

Задайте начальные условия для номинала и образцов модели.

theta_0 = 0;   % Iitial roll angle (rad)
p0 = 0;        % Initial roll rate (rad/s)
xm = [0;0];    % Initial condition of the reference plant model     

Структура адаптивного управления моделью - ссылкой

Цель контроллера MRAC состоит в том, чтобы достигнуть асимптотической сходимости ошибки отслеживания e(t)=x(t)-xm(t).

limt(x(t)-xm(t))0

У контроллера MRAC есть следующая структура.

u(t)=-kxx(t)+krr(t)-uad

Здесь:

  • kx содержит усиления управления с обратной связью.

  • kr содержит усиления управления прямого распространения.

  • uad термин адаптивного управления, который отменяет неопределенность модели.

Блок Model Reference Adaptive Control настраивает термин адаптивного управления, чтобы достигнуть желаемого отслеживания образца модели. Опционально, можно также адаптировать обратную связь и усиления управления прямого распространения, Хотя для этого примера усиления управления являются статическими.

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

Am=A-BkxBm=Bkr

Задайте вычисленные усиления контроллера.

Kx = [-4 -2];   % Feedback gain
Kr = 4;         % Feedforward gain

Сконфигурируйте параметры оценки неопределенности

Контроллер MRAC оценивает неопределенность модели онлайн и генерирует действие адаптивного управления uad это отменяет неопределенность, чтобы восстановить номинальную систему для базового контроллера. Термин адаптивного управления моделирует системную неопределенность с помощью следующей модели.

uad=wTϕ(x)

Здесь:

  • w содержит сетевые веса, которые настроены контроллером.

  • ϕ(x) вектор особенности модели неопределенности.

Используя блок Model Reference Adaptive Control, можно выбрать одно из следующих определений характеристического вектора.

  • Системные состояния, где ϕ(x)=x(t) — Этот подход является самой простой опцией, которая может быть хорошей начальной точкой, если вы не знаете сложности системной неопределенности. Если вы находите, что использование состояний как функции не соответственно представляет нелинейную неопределенность, выберите один из других подходов.

  • Радиальные основные функции с Гауссовыми ядрами, где ϕ(x)=[exp(-(x-ci)2σi)]i=1N . Можно сконфигурировать ядра путем определения центров функции ci и полоса пропускания σi.

  • Пользовательские функции обеспечиваются дополнительным входным портом.

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

Задайте параметры для радиальных ядер основной функции.

N = 20;          % Number of RBF kernels
cen_max = 1;     % Upper limit for kernel centers 
cen_min = -1;    % Lower limit for kernel centers
bandwidth = 5;   % Kernel bandwidth

Задайте скорость обучения оценки модели gamma_w и отслеживание веса ошибки Q.

gamma_w = 100;  % Learning rate
Q = 1;          % Tracking error weight

Симулируйте контроллер

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

mdl = "wingrock";
open_system(mdl)

В этой модели:

  • Винг-Рок-Модель блок реализует номинальную модель динамики крена.

  • Блок External Disturbance генерирует воздействие скалы крыла к динамике крена.

  • Блок Reference Command генерирует экспериментальный опорный сигнал.

  • Блок Model Reference Adaptive Control выводит действие управления uad, который является оценкой воздействия скалы крыла.

Блок Model Reference Adaptive Control первоначально сконфигурирован, чтобы использовать состояния из Винг-Рок-Модель блок как функции возмущения.

Установите длительность симуляции и симулируйте модель.

Tf = 40;    % Simulation duration (s) 
sim(mdl);

Сравните получившийся крен самолета со ссылочной командой.

open_system(mdl + "/Roll")

Контроллер не достигает сглаженного переходного процесса второго порядка.

Сравните возмущение, оцененное контроллером MRAC с истинным сигналом воздействия.

open_system(mdl + "/Disturbance")

При использовании состояний, когда возмущение показывает, контроллер точно не оценивает возмущение.

Измените контроллер MRAC, чтобы использовать 20 радиальных основных функций с центрами, охватывающими область значений [-1 1]. Используйте ту же полосу пропускания для всех ядер основной функции.

controller = mdl + "/Model Reference Adaptive Control";
set_param(controller,'FeatureTypeOptions','Radial Basis Function')
set_param(controller,'nCen','N')
set_param(controller,'cSpanMin','cen_min')
set_param(controller,'cSpanMax','cen_max')
set_param(controller,'cSig','bandwidth')

Симулируйте модель.

sim(mdl);

Просмотрите получившуюся эффективность контроллера.

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

Сравните воздействие оценило использование радиальных основных функций к истинному воздействию.

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

Смотрите также

Блоки

Похожие темы