exponenta event banner

Надежная конструкция с первым вырезом

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

Введение

Модель установки состоит из системы первого порядка с неопределенным коэффициентом усиления и постоянной времени последовательно с слабо затухающим резонансом и значительной немодированной динамикой. Неопределенные переменные задаются с помощью ureal и ultidyn и неопределенная модель установки P строится как произведение простых передаточных функций:

gamma = ureal('gamma',2,'Perc',30);  % uncertain gain
tau = ureal('tau',1,'Perc',30);      % uncertain time-constant
wn = 50; xi = 0.25;
P = tf(gamma,[tau 1]) * tf(wn^2,[1 2*xi*wn wn^2]);
% Add unmodeled dynamics
delta = ultidyn('delta',[1 1],'SampleStateDim',5,'Bound',1);
W = makeweight(0.1,20,10);
P = P * (1+W*delta);

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

step(P,5)

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

Неопределенная модель установки P содержит 3 неопределенных элемента. Для целей проектирования с обратной связью часто желательно упростить модель неопределенности, приблизительно сохраняя ее общую изменчивость. Это одно использование команды ucover. Эта команда принимает массив ответов LTI Pa и номинальный ответ Pn и моделирует разницу Pa-Pn как мультипликативная неопределенность в динамике системы (ultidyn).

Использовать ucover, сначала отобразить неопределенную модель P в семейство ответов LTI с использованием usample. Эта команда выполняет выборку неопределенных элементов в неопределенной системе. Он возвращает массив моделей LTI, где каждая модель представляет одно возможное поведение неопределенной системы. В этом примере создайте 60 выборочных значений P:

rng('default');     % the random number generator is seeded for repeatability
Parray = usample(P,60);

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

Usys = Pn * (1 + Wt * Delta)

где вся неопределенность сосредоточена в компоненте «немодированная динамика» Delta (a ultidyn объект). Выберите номинальное значение P в качестве центра Pn крышки и использовать формообразующий фильтр 2-го порядка Wt чтобы зафиксировать относительный разрыв между Parray и Pn изменяется с частотой.

Pn = P.NominalValue;
orderWt = 2;
Parrayg = frd(Parray,logspace(-3,3,60));
[Usys,Info] = ucover(Parrayg,Pn,orderWt,'in');

Убедитесь, что величина фильтра (красным цветом) «покрывает» относительные изменения частотной характеристики установки (синим цветом).

Wt = Info.W1;
bodemag((Pn-Parray)/Pn,'b--',Wt,'r')

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

Проектирование надежного контроллера для неопределенной установки P, выберите целевую полосу пропускания с замкнутым контуром desBW и выполнить конструирование с минимизацией чувствительности с использованием упрощенной модели неопределенности Usys. Структура управления показана на фиг.1. Основными сигналами являются возмущения d, шум измерения n, управляющий сигнал uи производительность установки y. Фильтры Wperf и Wnoise отражают частотное содержание сигналов возмущения и шума или эквивалентно диапазоны частот, где необходимы хорошие свойства возмущения и подавления шума.

Наша цель - сохранить y близки к нулю, отклоняя возмущение d и минимизация воздействия измерительного шума n. Эквивалентно, мы хотим разработать контроллер, который удерживает выигрыш от [d;n] кому y «маленький.» Обратите внимание, что

y  = Wperf * 1/(1+PC) * d + Wnoise * PC/(1+PC) * n

так что интересующая передаточная функция состоит из взвешенных по производительности и шуму версий функции чувствительности 1/( 1 + PC) и дополняющей функции чувствительности PC/( 1 + PC).

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

Выберите функцию взвешивания производительности Wperf в качестве фильтра нижних частот первого порядка с величиной больше 1 на частотах ниже требуемой полосы пропускания замкнутого контура:

desBW = 0.4;
Wperf = makeweight(500,desBW,0.5);

Чтобы ограничить полосу пропускания контроллера и вызвать скатывание за пределы требуемой полосы пропускания, используйте модель шума датчика Wnoise с магнитудой больше 1 на частотах больше 10*desBW:

Wnoise = 0.0025 * tf([25 7 1],[2.5e-5 .007 1]);

Постройте график профилей величин Wperf и Wnoise:

bodemag(Wperf,'b',Wnoise,'r'), grid
title('Performance weight and sensor noise model')
legend('Wperf','Wnoise','Location','SouthEast')

Затем создайте соединение с разомкнутым контуром, показанное на рис. 1:

Usys.InputName = 'u'; Usys.OutputName = 'yp';
Wperf.InputName = 'd'; Wperf.OutputName = 'yd';
Wnoise.InputName = 'n'; Wnoise.OutputName = 'yn';

sumy = sumblk('y = yp + yd');
sume = sumblk('e = -y - yn');

M = connect(Usys,Wperf,Wnoise,sumy,sume,{'d','n','u'},{'y','e'});

Первый проект: требования к низкой пропускной способности

Проектирование контроллера выполняется с помощью команды автоматизированного надежного проектирования musyn. Неопределенная модель с разомкнутым контуром дана M.

[ny,nu] = size(Usys);
[K1,muBound] = musyn(M,ny,nu);

D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           223.6        100.4        101.4             2
    2           20.15        1.759        1.774            10
    3          0.9756        0.968       0.9786            10
    4          0.9288       0.9288       0.9369             8
    5          0.9123       0.9123       0.9145            10
    6          0.9048       0.9048        0.906            10
    7           0.899        0.899       0.9081            10
    8          0.8979       0.8979       0.8981            10

Best achieved robust performance: 0.898

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

С тех пор, здесь, muBound составляет приблизительно 0,9, цели выполнены, но в конечном итоге могут быть улучшены. В целях проверки создайте графики Боде отклика с разомкнутым контуром для различных значений неопределенности и обратите внимание на типичную частоту пересечения нулевых дБ и запас по фазе:

opt = bodeoptions;
opt.PhaseMatching = 'on';
opt.Grid = 'on';

bodeplot(Parray*K1,{1e-2,1e2},opt);

Рандомизированные графики Бода с замкнутым контуром подтверждают полосу пропускания отклонения возмущений с замкнутым контуром приблизительно 0,4 рад/с.

S1 = feedback(1,Parray*K1);  % sensitivity to output disturbance
bodemag(S1,{1e-2,1e3}), grid

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

step(S1,8);

В этой наивной стратегии проектирования мы сопоставили полосу пропускания шума с требуемой полосой пропускания с замкнутым контуром. Это просто помогает ограничить пропускную способность контроллера. Справедливый взгляд заключается в том, что этот подход фокусируется на ослаблении возмущений на выходе в условиях неопределенности модели установки. Шум датчика по-настоящему не устранен. Проблемы, связанные со значительными объемами шума датчиков, решаются иным образом.

Вторая конструкция: более высокие требования к пропускной способности

Давайте переделаем конструкцию для более высокой целевой полосы пропускания и также настроим полосу пропускания шума.

desBW = 2;
Wperf = makeweight(500,desBW,0.5);
Wperf.InputName = 'd'; Wperf.OutputName = 'yd';
Wnoise = 0.0025 * tf([1 1.4 1],[1e-6 0.0014 1]);
Wnoise.InputName = 'n'; Wnoise.OutputName = 'yn';

M = connect(Usys,Wperf,Wnoise,sumy,sume,{'d','n','u'},{'y','e'});
[K2,muBound2] = musyn(M,ny,nu);

D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           223.6        100.5        101.4             2
    2           20.17        2.117        2.136            10
    3           1.256        1.252        1.263            10
    4           1.179        1.179        1.193            10
    5           1.154        1.154        1.159            10
    6           1.142        1.142        1.144            10
    7           1.135        1.135        1.136            10
    8           1.124        1.124        1.126            10
    9            1.12         1.12        1.124             8
   10           1.114        1.114        1.124            10

Best achieved robust performance: 1.11

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

bodeplot(Parray*K2,{1e-2,1e2},opt)

Рандомизированные графики Bode с замкнутым контуром подтверждают полосу пропускания с замкнутым контуром приблизительно 2 рад/с. Частотная характеристика имеет несколько больший пик, чем было видно в конструкции с меньшей полосой пропускания, из-за повышенной неопределенности в модели на этой частоте. Поскольку значение параметра «Надежная производительность» составляло 1,1, мы ожидали некоторого снижения надежности целевых показателей производительности по сравнению с конструкцией с более низкой полосой пропускания.

S2 = feedback(1,Parray*K2);
bodemag(S2,{1e-2,1e3}), grid

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

step(S2,8);

Третий дизайн: очень агрессивные требования к пропускной способности

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

desBW = 15;
Wperf = makeweight(500,desBW,0.5);
Wperf.InputName = 'd'; Wperf.OutputName = 'yd';
Wnoise = 0.0025 * tf([0.018 0.19 1],[0.018e-6 0.19e-3 1]);
Wnoise.InputName = 'n'; Wnoise.OutputName = 'yn';

M = connect(Usys,Wperf,Wnoise,sumy,sume,{'d','n','u'},{'y','e'});
[K3,muBound3] = musyn(M,ny,nu);

D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           223.6        100.9        101.8             2
    2           20.22        3.579         3.61             8
    3           2.187        2.187        2.213            10
    4           1.996        1.996        2.012            10
    5           1.918        1.919        1.935            10
    6           1.873        1.873        1.949             6
    7           1.856        1.856        1.874            10
    8           1.828        1.828         1.84             8
    9           1.814        1.814        1.823             8
   10           1.809        1.809        1.812             8

Best achieved robust performance: 1.81

Так как надежная производительность превышает 1,8, цели производительности с замкнутым контуром не достигаются при неопределенностях установки. Частотные характеристики системы с замкнутым контуром имеют более высокие пики, указывающие на низкую производительность проектируемого контроллера.

S3 = feedback(1,Parray*K3);
bodemag(S3,{1e-2,1e3}), grid

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

step(S3,1);

Расчеты надежной устойчивости

Графики реакции Bode и Step, показанные выше, генерируются из образцов неопределенной модели установки P. Мы можем использовать неопределенную модель напрямую и оценить надежную стабильность трех систем с замкнутым контуром.

ropt = robOptions('Display','on','MussvOptions','sm5');
stabmarg1 = robstab(feedback(P,K1),ropt);
Computing peak...  Percent completed: 100/100
System is robustly stable for the modeled uncertainty.
 -- It can tolerate up to 274% of the modeled uncertainty.
 -- There is a destabilizing perturbation amounting to 275% of the modeled uncertainty.
 -- This perturbation causes an instability at the frequency 7.59 rad/seconds.
stabmarg2 = robstab(feedback(P,K2),ropt);
Computing peak...  Percent completed: 100/100
System is robustly stable for the modeled uncertainty.
 -- It can tolerate up to 151% of the modeled uncertainty.
 -- There is a destabilizing perturbation amounting to 152% of the modeled uncertainty.
 -- This perturbation causes an instability at the frequency 17.4 rad/seconds.
stabmarg3 = robstab(feedback(P,K3),ropt);
Computing peak...  Percent completed: 100/100
System is not robustly stable for the modeled uncertainty.
 -- It can tolerate up to 84% of the modeled uncertainty.
 -- There is a destabilizing perturbation amounting to 84.2% of the modeled uncertainty.
 -- This perturbation causes an instability at the frequency 79.5 rad/seconds.

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

См. также

| |

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