exponenta event banner

Анализ реального мю

В этом примере показано, как использовать Toolbox™ надежного управления для анализа надежности неопределенной системы только с реальной параметрической неопределенностью. Границы устойчивости для жесткого транспортного летательного аппарата вычисляются с помощью закона управления выходной обратной связью. Для получения дополнительной информации о модели см. «Практический подход к анализу надежности с аэронавигационными приложениями» Г. Ферререра. Анализ устойчивости для систем только с реальной параметрической неопределенностью может вызвать численные трудности. В этом примере сравниваются три метода вычисления пределов устойчивости для систем только с реальной параметрической неопределенностью.

Создание неопределенной модели для транспортного самолета

Модель жесткого корпуса большого транспортного самолета имеет четыре состояния, два входа и четыре выхода. Состояния: sideslip (бета), скорость крена (p), скорость рыскания (r) и угол крена (phi). Входами являются отклонение руля направления (дельтап) и отклонение элерона (дельтар). Выходами являются боковое ускорение (ny), скорость крена (p), скорость рыскания (r) и угол крена (phi). Уравнения состояния зависят от 14 аэродинамических коэффициентов, каждый из которых имеет 10-процентную неопределенность.

Создайте неопределенности для аэродинамических коэффициентов.

deg2rad = pi/180;      % conversion factor from degs to radians
rad2deg = 1/deg2rad;   % conversion factor from radians to degs
gV = 0.146418;         % g/V
tan_theta0 = 0.14;     % tan(theta0)
alpha0 = 8*deg2rad;    % (rad)

Ybeta = ureal('Ybeta',-0.082,'Percentage',10);
Yp = ureal('Yp',0.010827,'Percentage',10);
Yr = ureal('Yr',0.060268,'Percentage',10);
Ydeltap = ureal('Ydeltap',0.002,'Percentage',10);
Ydeltar = ureal('Ydeltar',0.0118,'Percentage',10);
Lbeta = ureal('Lbeta',-0.84,'Percentage',10);
Lp = ureal('Lp',-0.76,'Percentage',10);
Lr = ureal('Lr',0.74,'Percentage',10);
Ldeltap = ureal('Ldeltap',0.095,'Percentage',10);
Ldeltar = ureal('Ldeltar',0.06,'Percentage',10);
Nbeta = ureal('Nbeta',0.092,'Percentage',10);
Np = ureal('Np',-0.23,'Percentage',10);
Nr = ureal('Nr',-0.114,'Percentage',10);
Ndeltar = ureal('Ndeltar',-0.151,'Percentage',10);

Уравнения состояния для динамики самолета с жестким кузовом:

A = [Ybeta (Yp+sin(alpha0)) (Yr-cos(alpha0)) gV; ...
    Lbeta  Lp Lr 0; Nbeta Np Nr 0; 0 1 tan_theta0 0];
B = [Ydeltap Ydeltar; Ldeltap Ldeltar; 0 Ndeltar; 0 0];
C = -1/gV*deg2rad*[Ybeta Yp Yr 0];
C = [C; zeros(3,1) eye(3)];
D = -1/gV*deg2rad*[Ydeltap Ydeltar];
D = [D; zeros(3,2)];
AIRCRAFT = ss(A,B,C,D);

Модель самолета имеет исполнительные механизмы для руля направления и элерона. Каждый исполнительный механизм моделируется с использованием системы второго порядка, и результирующая динамика добавляется на вход модели жесткого тела. P - модель самолета и исполнительных механизмов с разомкнутым контуром.

N1 = [-1.77, 399];
D1 = [1 48.2 399];
deltap_act = tf(N1,D1);

N2 = [2.6 -1185 27350];
D2 = [1 77.7 3331 27350];
deltar_act = tf(N2,D2);

P = AIRCRAFT*blkdiag(deltap_act,deltar_act);

Создание системы замкнутого контура

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

K = [-629.8858 11.5254 3.3110 9.4278; ...
  285.9496 0.3693 -2.6301 -0.5489];

CLOOP = feedback(P,K);

Анализ стабильности: Итерация мощности

Вы можете использовать robstab для расчета надежных пределов устойчивости для этой системы. В этом примере рассматриваются методы вычисления нижних границ для mu, что эквивалентно вычислению верхней границы на границе устойчивости. По умолчанию robstab использует комбинацию итерации мощности и нижней границы на основе коэффициента усиления для вычисления mu нижняя граница. Сначала изучите итерацию мощности. Параметр «» m mussv используется для принуждения robstab для использования только суперитерации.

ropt = robOptions('Mussv','m5','VaryFrequency','on');
[SM1,WCU1,INFO1] = robstab(CLOOP,ropt);

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

semilogx(INFO1.Frequency,1./INFO1.Bounds)
xlim([1e-3 1e3])

Figure contains an axes. The axes contains 2 objects of type line.

Рисунок 1: Границы Mu для самолета, использующего итерацию мощности, нижняя граница.

Анализ стабильности: усложнить реальную неопределенность

Одним из способов упорядочить эту проблему надежной стабильности является добавление небольшого количества сложной неопределенности к реальной параметрической неопределенности с использованием complexify команда. Увеличение alpha увеличивает сложность проблемы.

alpha = 0.05;
CLOOP_c = complexify(CLOOP,alpha);

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

[SM2,WC2,INFO2] = robstab(CLOOP_c,ropt);

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

semilogx(INFO2.Frequency,1./INFO2.Bounds)
xlim([1e-3 1e3])

Figure contains an axes. The axes contains 2 objects of type line.

Рис. 2: Границы Mu для самолета с использованием итерации мощности + усложнить нижнюю границу.

Анализ стабильности: нижняя граница на основе коэффициента усиления

Для некоторых проблем степень сложности, необходимая для регуляризации нижней границы, существенно меняет проблему, и вместо нее следует использовать нижнюю границу, основанную на коэффициенте усиления. Установить 'g' как mussv опция форсирования robstab для использования нижней границы на основе коэффициента усиления. Заметим, что этот подход вычислительно медленнее по сравнению с использованием итерации мощности и усложнением.

ropt = robOptions('Mussv','g','VaryFrequency','on');
[SM3,WC3,INFO3] = robstab(CLOOP,ropt);

semilogx(INFO3.Frequency,1./INFO3.Bounds)
xlim([1e-3 1e3])

Figure contains an axes. The axes contains 2 objects of type line.

Рис. 3: Границы Mu для самолета с использованием нижней границы на основе коэффициента усиления.

См. также

|

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