Проектирование контроллера формирования контура

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

Например, рассмотрим модель самолета NASA HiMAT 2 на 2 (Safonov, Laub и Hartmann [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] Safonov, M.G., Laub, A.J., and Hartmann, G., «Feedback Properties of Multivariable Systems: The Role and Use of Return Difference Matrix», IEEE. TranSS. of. Контр., 1981, AC-26 (1), стр. 47-65.

См. также

Похожие темы