exponenta event banner

Одновременная стабилизация с использованием надежного управления

В этом примере используются команды Toolbox™ надежного управления ucover и musyn для разработки высокопроизводительного контроллера для семейства нестабильных растений.

Неуверенность завода

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

Pnom = tf(2,[1 -2]);

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

p1 = Pnom*tf(1,[.06 1]);              % extra lag
p2 = Pnom*tf([-.02 1],[.02 1]);       % time delay
p3 = Pnom*tf(50^2,[1 2*.1*50 50^2]);  % high frequency resonance
p4 = Pnom*tf(70^2,[1 2*.2*70 70^2]);  % high frequency resonance
p5 = tf(2.4,[1 -2.2]);                % pole/gain migration
p6 = tf(1.6,[1 -1.8]);                % pole/gain migration

Охват неопределенной модели

Для целей проектирования с обратной связью нам необходимо заменить этот набор моделей одной неопределенной моделью растения, диапазон поведения которой включает p1 через p6. Это одно использование команды ucover. Эта команда принимает массив моделей LTI Parray и номинальная модель Pnom и моделирует разницу Parray-Pnom как мультипликативная неопределенность в динамике системы.

Поскольку ucover ожидает массив моделей, используйте stack команда для сбора моделей установки p1 через p6 в один массив.

Parray = stack(1,p1,p2,p3,p4,p5,p6);

Далее используйте ucover чтобы «покрыть» диапазон поведения Parray с неопределенной моделью формы

P = Pnom * (1 + Wt * Delta)

где вся неопределенность сосредоточена в «немодированной динамике» Delta (a ultidyn объект). Потому что выигрыш Delta равномерно ограничен 1 на всех частотах, «формирующий» фильтр Wt используется для определения того, как относительная величина неопределенности изменяется с частотой. Этот фильтр также называют функцией взвешивания неопределенности. Попробуйте использовать фильтр 4-го порядка Wt для этого примера:

orderWt = 4;
Parrayg = frd(Parray,logspace(-1,3,60));
[P,Info] = ucover(Parrayg,Pnom,orderWt,'InputMult');

Результирующая модель P - объект с одним входом и одним выходом в неопределенном состоянии-пространстве (USS) с номинальным значением Pnom.

P
P =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 5 states.
  The model uncertainty consists of the following blocks:
    Parrayg_InputMultDelta: Uncertain 1x1 LTI, peak gain = 1, 1 occurrences

Type "P.NominalValue" to see the nominal value, "get(P)" to see all properties, and "P.Uncertainty" to interact with the uncertain elements.
tf(P.NominalValue)
ans =
 
    2
  -----
  s - 2
 
Continuous-time transfer function.

График величины Бода подтверждает, что формирующий фильтр Wt «охватывает» относительные изменения в поведении растений. В зависимости от частоты уровень неопределенности составляет 30% при 5 рад/сек (-10dB = 0,3), 50% при 10 рад/сек и 100% после 29 рад/сек.

Wt = Info.W1;
bodemag((Pnom-Parray)/Pnom,'b--',Wt,'r'); grid
title('Relative Gaps vs. Magnitude of Wt')

Figure contains an axes. The axes contains 7 objects of type line. These objects represent untitled1, Wt.

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

Проектирование надежного контроллера для неопределенной модели установки P, мы выбираем желаемую полосу пропускания с замкнутым контуром и минимизируем чувствительность к возмущениям на выходе установки. Структура управления показана ниже. Сигналы d и n представляют собой помехи нагрузки и помехи измерений. Контроллер использует шумное измерение выхода установки y для формирования управляющего сигнала u.

Рис. 1: Структура управления.

Фильтры Wperf и Wnoise выбираются для обеспечения требуемой полосы пропускания и некоторого адекватного скатывания. Функция передачи с замкнутым контуром от [d;n] кому y является

    y = [Wperf * S , Wnoise * T] [d;n]

где S=1/(1+PC) и T=PC/(1+PC) - функции чувствительности и дополнительной чувствительности. Если мы проектируем контроллер, который поддерживает коэффициент усиления по замкнутому контуру от [d;n] кому y ниже 1, затем

    |S| < 1/|Wperf| ,    |T| < 1/|Wnoise|

Путем выбора соответствующих профилей величин для Wperf и Wnoise, мы можем обеспечить небольшую чувствительность (S) внутри полосы пропускания и адекватного скатывания (T) за пределами полосы пропускания.

Например, выберите Wperf в качестве фильтра нижних частот первого порядка с коэффициентом усиления постоянного тока 500 и пересечением коэффициента усиления на требуемой полосе пропускания desBW:

desBW = 4.5;
Wperf = makeweight(500,desBW,0.33);
tf(Wperf)
ans =
 
  0.33 s + 4.248
  --------------
   s + 0.008496
 
Continuous-time transfer function.

Аналогично, выбрать Wnoise в качестве фильтра верхних частот второго порядка с величиной 1 при 10*desBW. Это приведет к усилению разомкнутого контура PC к скатыванию с уклоном -2 для частот за пределами 10*desBW.

NF = (10*desBW)/20;  % numerator corner frequency
DF = (10*desBW)*50;  % denominator corner frequency
Wnoise = tf([1/NF^2  2*0.707/NF  1],[1/DF^2  2*0.707/DF  1]);
Wnoise = Wnoise/abs(freqresp(Wnoise,10*desBW))
Wnoise =
 
    0.1975 s^2 + 0.6284 s + 1
  ------------------------------
  7.901e-05 s^2 + 0.2514 s + 400
 
Continuous-time transfer function.

Убедитесь, что границы 1/Wperf и 1/Wnoise на S и T обеспечивают требуемую пропускную способность и свертывание.

bodemag(1/Wperf,'b',1/Wnoise,'r',{1e-2,1e3}), grid
title('Performance and roll-off specifications')
legend('Bound on |S|','Bound on |T|','Location','NorthEast')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Bound on |S|, Bound on |T|.

Следующее использование connect для построения межсоединений с разомкнутым контуром (блок-схема на рис. 1 без блока контроллера). Укажите каждый блок, показанный на рис. 1, присвойте имена сигналам, поступающим и выходящим из каждого блока, и разрешите connect Выполните проводку:

P.u = 'u';   P.y = 'yp';
Wperf.u = 'd';   Wperf.y = 'Wperf';
Wnoise.u = 'n';  Wnoise.y = 'Wnoise';
S1 = sumblk('e = -ym');
S2 = sumblk('y = yp + Wperf');
S3 = sumblk('ym = y + Wnoise');
G = connect(P,Wperf,Wnoise,S1,S2,S3,{'d','n','u'},{'y','e'});

G является неопределенной системой с 3 входами и 2 выходами, подходящей для надежного синтеза контроллера с помощью musyn.

Надежный синтез контроллера

Проектирование осуществляется с помощью автоматизированной команды надежного проектирования musyn. Целевая полоса пропускания составляет 4,5 рад/с.

ny = 1; nu = 1;
[C,muPerf] = musyn(G,ny,nu);
D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           353.6        249.5        251.9             0
    2           70.74        9.964        10.05             4
    3            1.98        1.604        1.621             8
    4           1.164        1.164        1.188            10
    5           1.089        1.089        1.098            10
    6            1.05         1.05        1.055            10
    7           1.027        1.027        1.032             8
    8           1.016        1.016        1.023             8
    9           1.013        1.013         1.02             8
   10           1.011        1.011        1.012             8

Best achieved robust performance: 1.01

Когда показатель надежности muPerf находится вблизи 1, контроллер достигает целевой полосы пропускания с замкнутым контуром и свертывания. Как правило, если muPerf менее 0,85, то производительность может быть улучшена, и если muPerf больше 1,2, тогда желаемая полоса пропускания замкнутого контура не может быть достигнута для заданной неопределенности установки.

Здесь muPerf приблизительно 1, таким образом, цели достигаются. Результирующий контроллер C имеет 18 состояний:

size(C)
State-space model with 1 outputs, 1 inputs, and 16 states.

Вы можете использовать reduce и мусынperf для упрощения этого контроллера. Вычислите приближения порядков с 1 по 17.

NxC = order(C);
Cappx = reduce(C,1:NxC);

Для каждого контроллера уменьшенного порядка используйте musynperf вычислить надежный показатель эффективности и сравнить его с muPerf. Сохранить контроллер самого низкого порядка с производительностью не хуже 1,05 * muPerfснижение производительности на 5% или менее.

for k=1:NxC
   Cr = Cappx(:,:,k);  % controller of order k
   bnd = musynperf(lft(G,Cr));
   if bnd.UpperBound < 1.05 * muPerf
      break % abort with the first controller meeting the performance goal
   end
end

order(Cr)
ans = 6

Это дает контроллер 6-го порядка Cr с сопоставимой производительностью. Выдержать сравнение Cr с контроллером полного заказа C.

opt = bodeoptions;
opt.Grid = 'on';
opt.PhaseMatching = 'on';
bodeplot(C,'b',Cr,'r--',opt)
legend('Full-order C','Reduced-order Cr','Location','NorthEast')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Full-order C, Reduced-order Cr. Axes 2 contains 2 objects of type line. These objects represent Full-order C, Reduced-order Cr.

Надежная проверка контроллера

Постройте график откликов с разомкнутым контуром для моделей завода p1 через p6 с упрощенным контроллером Cr.

bodeplot(Parray*Cr,'g',{1e-2,1e3},opt);

Figure contains 2 axes. Axes 1 contains 6 objects of type line. This object represents untitled1. Axes 2 contains 6 objects of type line. This object represents untitled1.

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

step(feedback(1,Parray*Cr),'g',10/desBW);

Figure contains an axes. The axes contains 6 objects of type line. This object represents untitled1.

Изменение целевой полосы пропускания с замкнутым контуром

Один и тот же процесс проектирования может повторяться для различных значений полосы пропускания с замкнутым контуром desBW. Это дает следующие результаты:

  • Используя desBW = 8 дает хорошую конструкцию с надежной производительностью muPerf от 1,09. Ответы на шаг по всему Parray семейство совместимо с полосой пропускания 8 рад/с.

  • Используя desBW = 20 дает плохую конструкцию с надежной производительностью muPerf 1,35. Это ожидается потому, что эта целевая полоса пропускания находится вблизи очень большой неопределенности установки. Некоторые из ступенчатых ответов для растений p1,...,p6 на самом деле нестабильны.

  • Используя desBW = 0,3 дает плохую конструкцию с надежной производительностью muPerf 2.2. Это ожидается, потому что Wnoise накладывает скатывание за 3 рад/с, что слишком близко к собственной частоте нестабильного полюса (2 рад/с). Другими словами, надлежащее управление нестабильной динамикой требует более высокой полосы пропускания, чем указано.

См. также

| |

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