Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2158

.pdf
Скачиваний:
11
Добавлен:
07.01.2021
Размер:
3.53 Mб
Скачать

Лабораторная работа №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

C = [1 0 0 0; 0 0 1 0]; D = [0; 0];
rank(obsv(A,C)) ans =4

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]