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

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

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

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

$$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],$$

где$x_e$ и$x_{\delta}$ лифт и состояния привода утки, соответственно.

Создайте модель 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 рад/с, указывает, что ваша цель желала формы цикла$G_{d}(s) = 10/s$. Затем используйте 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.

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте