2158
.pdfЛабораторная работа №8
Представление математической модели в пространстве состояний
СВ MATLAB существуют средства автоматического извлечения
линеаризованных уравнений в пространстве состояний из моделей Simulink. Поскольку наша цель – управление, то нам надо вывести на
выход все переменные состояния моделируемой системы. В качестве исследуемой математ ческой модели используем модель из предыдущейилабораторной работы [1].
Для того чтобы определить, какие состояния модели Simulink существуют, можно воспользоваться встроенным средством анализа,
вызвав его через меню Tools / Control design / Linear analysis в Simulink (рис. 55) [1, 2].
бА Д Рис. 55. Значения переменных состояния колебательнойИсистемы
В левой части появившегося окна Control and Estimation Tools Manager в дереве необходимо выбрать Workspace / Project - / Operation Points / Default Operating Point. Справа будут перечислены со-
стояния в таблице State: Value.
Для получения аналитической модели представим собранную в Simulink систему в виде подсистемы. Для этого подключим вместо
51
источника сигнала Signal Builder блок входа In1 из библиотеки Simulink / Sources. Подключим на выход интеграторов и вместо ос-
циллографа Scope блоки выходов Out1 из Simulink / Sinks. Номера выходов Portnumber (задаются в свойствах блока Out) зададим в полном соответствии с таблицей из Control and Estimation Tools Manager: вы-
Стемуи:
ход Integrator – выход 1, выход Integrator1 – выход 2, выход Joint Sensor – выход 3. Такая нумерация удобна, так как нам надо получить диагональную матр цу C модели в пространстве состояний [1, 2].
В результате проделанных действий получаем следующую сис-
Рис. 56. Структурная схема коле ательной системы в виде подсистемы
Для получения аналитической модели: матриц A,B,C,D модели
пространства состояний [1, 6] |
|
|
|
||||
|
бА |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
x A x B u; |
|
|
|
|
|
|
|
y C x D u |
|
|
|
необходимо использовать функцию linmod. Вызов функции: |
|||||||
|
|
|
|
|
Д |
|
|
[A,B,C,D] = linmod('ModelSub') |
|
|
|
||||
|
|
||||||
где ModelSub–имя модели (имя файла .mdl в текущем рабочем ката- |
|||||||
логе). |
|
|
|
|
|
И |
|
После вызова получаем матрицы: |
|
||||||
A = |
|
|
|
|
|
|
|
0 |
1.0000 |
|
0 |
0 |
|
|
|
0 |
0 |
0 |
|
0 |
|
|
|
0 |
0 |
0 |
1.0000 |
|
|
|
|
0 |
0 -1.0000 |
0 |
|
|
|
||
|
|
|
|
|
|
|
|
52
B=
0
1
0
-1 |
|
|
|
С |
|||
C = |
|
|
|
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
и0 |
|||
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
D = |
|
б |
|
0 |
|
||
|
|
|
|
0 |
|
|
|
0 |
|
|
|
рить. Измерять все иАне тре уется – некоторые состояния можно восстановить по значениям других. По матрицам A,C можно узнать, возможно ли это сделать в принципеД. Для этого служит функция obsv, вычисляющая матрицу наблюдаемости, если ее ранг равен числу со-
Синтез на людателя для оценки состояний по выходам
В реальности все состояния объекта управления сложно изме-
стояний n, то все состояния возможно восстановить. Соответствующий вызов obsv дает
значит, все состояния наблюдаемы – что очевидно, потому что C– диагональная.
Попробуем измерять только два состояния x 1 и x 3, изменив матрицу:
И
Тест на наблюдаемость дает следующий результат:
rank(obsv(A,C))
ans =4
т.е. по измеряемым двум состояниям можно восстановить все 4.
53
Для этого необходимо синтезировать так называемый наблюдатель – это модель объекта управления, которая работает параллельно с ним и подключена к тому же входу u. Состояние наблюдателя – xˆ, его выход – yˆ.Уравнение динамики наблюдателя при D=0 записыва-
ются в виде [1] |
|
|
|
|
|
С |
|
|
|
|
|
|
|
|
|
|
|
|
xˆ A xˆ B u L (y yˆ) yˆ Cxˆ. |
(31) |
|||
Если обознач ть eˆ y yˆ |
, |
то динамика наблюдателя может |
|||
при |
|
|
|
||
|
|
|
|
|
|
быть зап сана через eˆ (A LC) e. |
|
||||
Так как |
y yˆ надо, что |
ыeˆ 0, то задача вычисления L – |
это обеспечен е устойчивости на людателя, которая может быть ре-
когда наблюдательсобственноера отает ыстрее регулятора [1, 6]. Например, если вектор со ственных чисел для регулятора
шена методом размещения полюсов независимо от синтеза регулятора (выч слен я матр цы K).
Для с нтеза на людателя, сначала выберем минимальное абсо-
лютное |
значение λˆ, такое чтобы оно было больше абсо- |
лютной величины |
ˆ |
ственных чисел регулятора λ>>λ – это условие, |
P = [-1 -2 -3 -4]; А
то для наблюдателя мы можем выбрать
P_ = [-10 -12 -13 -14];
Наблюдатель описывается уравнениями
коде команд MATLAB.
|
|
|
|
|
T |
|
|
|
|
xˆ Aˆ |
xˆ Bˆ(u, y) ; |
(32) |
|
|
|
|
ˆ |
T |
|
|
|
|
|
|
|
||
|
|
yˆ |
Дˆ |
|||
|
|
Cxˆ |
D(u, y) |
xˆ, |
||
ˆ |
ˆ ˆ |
ˆ |
|
|
|
|
где матрицы A,B,C,D– соответственно переменные A , B , C , D в |
||||||
|
|
|
|
|
|
И |
На рис. 57 представлено сравнение моделей.
Управление моделью SimMechanics реализовано по полному вектору состояния, управление моделью в пространстве состояний (блок типа State-Space с именем Model_ss) – через наблюдатель (блок типа State-Space с именем Estimator).
Перед моделированием необходимо очистить Workspace и выполнить следующие команды [1, 6]:
54
n = 4; % число состояний
m = 2; % число наблюдаемых выходов k = 1; % число входов
%1. Все состояния наблюдаемы
С[A,B,C,D] = linmod('ModelSub'); % синтез регулятора
P = [-1 -2 -3 -4]; Kи= place (A, B, P);
% переменные для с нтеза на основе оптимизации k1 = K(1);
k2 = K(2);
k3 = K(3);
k4 = K(4); k = 1;
C_f = C; D_f = D; % сохраняем предыдущее представление
% 2. Наблюдаемы только x(1) и x(3) C = [1 0 0 0; 0 0 1 0];
D = [0; 0]; |
|
Д |
|||
|
|
|
|||
% синтез наблюдателябА |
|||||
P_ = [-10 -12 -13 -14]; % выбор собственных чисел (полюсов) |
|||||
L = place(A',C', P_)'; % синтез размещением полюсов |
|||||
% создание модели пространства состояний для наблюдателя |
|||||
L = |
|
И |
|||
B_ = [B L]; |
|
|
|
||
D_ = zeros(n,m+k); |
|
|
|
||
C_ = eye(n); |
|
|
|
||
A_ = A - L*C; |
|
|
|
||
|
В результате выполнения этих команд получаем матрицу L: |
|
|
||
24.9805 |
-1.4329 |
|
|
|
|
155.0787 -18.1644 |
|
|
|
||
-1.4092 |
24.0195 |
|
|
|
|
-17.8407 141.9214 |
|
|
|
55
С |
|
|
отеки |
||
б |
||
Р с. 57. Модель SimMechanics, вставленная через блок Model |
||
з |
л |
Simulink / Ports & Subsystems, (вверху) |
|
модель в пространстве состояний (внизу) |
|
|
|
А |
|
|
Д |
|
|
И |
Рис. 58. Диаграммы реакций выходов систем на единичный импульс
Поведение системы с наблюдателем и без него не отличаются, как не отличаются реакции аналитической модели и компонентой мо-
дели SimMechanics.
Оптимизационный синтез регулятора в Simulink
Синтез управления может быть осуществлен с помощью Simulink Design Optimization – это мощное средство параметрического синтеза систем управления и идентификации моделей, встроенное в Simulink.
56
Для использования этого средства необходимо [1, 6]:
разместить в модели блок Signal Constraint из библиотеки
Simulink Desing Optimization в Simulink;
подключить этот блок к сигналу, значение которого необходимо регулировать;
Снастроить допустимые границы переходного процесса и установившегося значения регулируемого сигнала;
определ ть опт мизируемые переменные и их начальные значения; изапуст ть процесс оптимизации.
об раем модель колебательной системы совместно с блоком
Signal Constraint (р с. 59). В настройках блока State-Space задаем матрицы A, B, C f, D f.
Рис. 59. МодельбАколе ательной системы совместно с блоком Signal Constraint
Открываем параметры SignalДConstraint, выбираем границы изменения выходного сигнала (рис. 60). Можно оставить так, как есть.
И
Рис. 60. Настройки блока Signal Constraint
57
Добавляем переменные для оптимизации, открываем через ме-
ню в свойствах Signal Constraint пункт Optimization / Tuned Parameters, нажимаем Add, выбираем k, k1, k2, k3, k4 – это компоненты вектора обратной связи K и входного усилителя K_.
После этого нажимаем в свойствах Signal Constraint на кнопку С"Воспроизведение" или через меню Optimization / Start. И наблюдаем за процессом оптимизации. На каком-то шаге может появиться сообщение, что с гнал в модели достиг значения бесконечности. В этом случае рекомендуется остановить оптимизацию и запустить снова
(будетипредложено) [1, 6].
бА Д
Рис. 61. Процесс оптимизации параметровИрегулятора
В результате оптимизации были предложены следующие значе-
ния параметров регулятора: k = -14854; k1 = -4,0641; k2 = -13,229; k3 = -15011; k4 = -4993,1.
58
С |
|
|
и |
|
|
|
Р с. 62. Осц ллограмма на выходе колебательной системы |
|
|
с регулятором после оптимизации |
|
|
Порядок моделирования |
|
1. |
Собрать математическую модель колебательной системы |
|
|
|
Д |
(см. рис. 56) при помощи пакета SimMechanics. |
||
2. |
ПолучитьбАматрицы A, B, C, D модели колебательной системы |
|
в пространстве состояний. |
|
|
3. |
Синтезировать наблюдатель для оценки состояний по выхо- |
|
дам, собрать модель колебательной системы с наблюдателем в про- |
||
|
|
И |
странстве состояний (см. рис. 57). Сравнить эту модель с Simulinkмоделью.
4. Синтезировать регулятор при помощи Simulink Design Optimization (см. рис. 59), получить графики выходной величины колебательной системы с регулятором после оптимизации.
Содержание отчета
1.Название лабораторной работы и ее цель.
2.Структурная схема колебательной системы в виде подсистемы.
3.Команды для синтеза наблюдателя.
59
4.Модели колебательной системы в SimMechanics и в пространстве состояний. Диаграммы реакций выходов систем на единичный импульс.
5.Оптимизационный синтез регулятора в Simulink, его резуль-
таты.
СибАДИ |
|
|
Контрольные вопросы |
1. |
Что такое наблюдаемость системы? |
2. |
Что такое управляемость системы? |
3. |
Каково назначение пакета Simulink Design Optimization? |
60