Одним из самых мощных, но простых инструментов синтеза контроллера является loopsyn. Для завода LTI задается форма графика частотной характеристики систем с разомкнутым контуром. Тогда loopsyn вычисляет стабилизирующий контроллер, который наилучшим образом аппроксимирует заданную форму контура.
Рассмотрим, например, модель NASA HiMAT 2 на 2 (Сафонов, Лауб и Хартманн [1]), изображенную на следующей диаграмме.

Управляющими переменными являются исполнительные механизмы элевона и фонаря (
и).
Выходными переменными являются угол атаки ()
и угол положения ().
Модель имеет шесть состояний, заданных:
![$$x = \left[ {\matrix{
 {{x_1}} \cr
 {{x_2}} \cr
 {{x_3}} \cr
 {{x_4}} \cr
 {{x_5}} \cr
 {{x_6}} \cr
} } \right] = \left[ {\matrix{
 {\dot \alpha } \cr
 \alpha \cr
 {\dot \theta } \cr
 \theta \cr
 {{x_e}} \cr
 {{x_\delta }} \cr
} } \right],$$](../../examples/robust/win64/LoopShapingControllerDesignExample_eq13449096985088901392.png)
где
и
являются состояниями подъемника и рулевого привода соответственно.
Следующие команды создают модель состояния-пространства G самолета.
ag =[ -2.2567e-02 -3.6617e+01 -1.8897e+01 -3.2090e+01 3.2509e+00 -7.6257e-01;
9.2572e-05 -1.8997e+00 9.8312e-01 -7.2562e-04 -1.7080e-01 -4.9652e-03;
1.2338e-02 1.1720e+01 -2.6316e+00 8.7582e-04 -3.1604e+01 2.2396e+01;
0 0 1.0000e+00 0 0 0;
0 0 0 0 -3.0000e+01 0;
0 0 0 0 0 -3.0000e+01];
bg = [ 0 0;
0 0;
0 0;
0 0;
30 0;
0 30];
cg = [ 0 1 0 0 0 0;
0 0 0 1 0 0];
dg = [ 0 0;
0 0];
G = ss(ag,bg,cg,dg);
Чтобы разработать контроллер для формирования графика частотной характеристики (сингулярного значения) таким образом, чтобы пропускная способность системы составляла приблизительно 10 рад/с, укажите требуемую форму контура.
Затем использовать loopsyn найти контроллер формирования петель для G который оптимально соответствует требуемой форме петли Gd.
s = zpk('s');
w0 = 10;
Gd = w0/(s+.001);
[K,CL,GAM] = loopsyn(G,Gd);
Проверьте частотную характеристику разомкнутого контура с помощью результирующего контроллера, K.
sigma(G*K,'r',Gd,'k-.',Gd/GAM,'k:',Gd*GAM,'k:',{.1,30}) legend('Achieved Loop Shape','Target Loop Shape','Gd/GAM','Gd*GAM')

Также проверьте реакцию с замкнутым контуром.
T = feedback(G*K,eye(2)); sigma(T,ss(GAM),'r*',{.1,30}); legend('Closed loop','GAM') grid

Возвращенное значение GAM является показателем точности, с которой оптимальная форма контура соответствует требуемой форме контура. GAM - верхняя граница резонансной пиковой величины функции передачи с обратной связью T = feedback(G*K,eye(2)). В этом случае GAM = 1,6024 = 4 дБ, как показывают сингулярные графики значений. Графики также показывают, что полученная форма контура соответствует желаемой цели. Gd для в пределах около GAM дБ.
[1] Сафонов, М.Г., Лауб, А.Дж. и Хартманн, Г., «Свойства обратной связи многопараметрических систем: роль и использование матрицы разницы в доходности», IEEE Trans. of Automat. Контр., 1981, AC-26 (1), стр. 47-65.