Формирующее цикл проектирование контроллера

Одним из самых мощных все же простых инструментов синтеза контроллера является loopsyn. Учитывая объект LTI, вы задаете форму системного графика частотной характеристики разомкнутого цикла, который вы хотите. Затем loopsyn вычисляет стабилизировавшийся контроллер, который лучше всего аппроксимирует вашу заданную форму цикла.

Например, рассмотрите модель самолета НАСА 2 НА 2 HIMAT (Сафонов, Лоб и Хартманн [1]), изображенный в следующей схеме.

Контрольные переменные являются элевоном и приводами утки (и). Выходные переменные являются углом нападения () и углом отношения (). Модель имеет шесть состояний, данных:

где и лифт и состояния привода утки, соответственно.

Создайте модель HiMAT

Следующие команды создают модель в пространстве состояний 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] Сафонов, M.G., Laub, A.J., и Хартманн, G., "Свойства обратной связи Многомерных Систем: Роль и Использование Матрицы Различия в Возврате", Сделка IEEE Автомата. Противоречие, 1981, AC-26 (1), стр 47-65.

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

Похожие темы