itnaVxICsm
.pdfМИНОБРНАУКИ РОССИИ
___________________________________
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
______________________________________
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ОБЪЕКТОВ И СИСТЕМ УПРАВЛЕНИЯ
Методические указания к лабораторным работам
Санкт-Петербург Издательство СПбГЭТУ «ЛЭТИ»
2014
УДК 004.942:629.123
Математическое моделирование объектов и систем управления: методич. указания к лабораторным работам / cост.: О. Ю. Лукомская, А. Г. Шпекторов. СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2014. 36 с.
Содержат описания лабораторных работ по математическому моделированию объектов и систем управления в среде MATLAB, MATLABSIMULINK. Приведены методики созданий программных моделей и исследования динамических систем в среде MATLAB и MATLAB-SIMULINK.
Предназначены для магистрантов, обучающихся по направлению «Автоматизация и управление», а также могут быть полезны инженернотехническим работникам этой области знаний.
Утверждено редакционно-издательским советом университета
в качестве методических указаний
© СПбГЭТУ «ЛЭТИ», 2014
2
Лабораторная работа 1. ЛИНЕАРИЗАЦИЯ ДИНАМИЧЕСКИХ СИСТЕМ
Цель работы: освоить аналитические и машинные способы линеаризации динамических систем, проанализировать и оценить свойства динамических систем по линеаризованным моделям.
Общие положения
Вэтой работе исследуется математическая модель, линеаризованная в окрестности статического режима.
Вкачестве исходных данных рассматривают систему нелинейных дифференциальных уравнений (СНДУ), записанную в форме Коши:
xɺ(t) = f (x(t), u(t));
y(t ) = g(x(t ), u(t )), (1.1)
где x Rn – вектор состояния; u Rm – вектор управления; y Rk – вектор выходных переменных; f(x, u) и g(x, u) – в общем случае нелинейные функции.
Выбирают статический режим (x(0), u(0)), в окрестности которого производится линеаризация.
Далее определяют матрицы частных производных: матрица состояния
|
|
|
|
|
|
∂f (x, u) |
|
|
|
|
|
|
|
|
|
|
|
|
∂f (x, u) |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(0) … |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
∂x |
|
|
|
|
|
|
|
|
(0) |
|
|
|
∂x |
|
|
|
|
|
(0) |
|
|
(0) |
|
|||||||||||||||
|
∂f (x,u) |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
x=x |
|
|
, u =u |
|
|
|
|
|
|
n |
|
x=x |
|
|
, u=u |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
A = |
|
|
|
|
(0) (0) |
= |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; |
|||
∂x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
x |
, u |
∂f |
|
|
|
(x, u) |
|
|
|
|
|
|
|
|
|
|
|
|
∂f (x, u) |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
∂x1 |
|
|
|
|
|
|
|
|
|
(0) |
|
|
(0) |
|
|
∂xn |
|
|
(0) |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x=x |
, u=u |
|
|
|
x=x |
, u=u |
(0) |
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
аналогичным образом: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
матрица входов B = ∂f (x, u) |
|
|
|
(0) |
|
|
|
(0) |
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
∂u |
|
|
|
x |
, u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
матрица выходов C = |
∂g(x, u) |
|
(0) |
|
|
|
(0) |
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
∂x |
|
|
|
|
|
|
x |
, u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
матрица обхода D = ∂g(x, u) |
|
|
(0) |
|
|
|
(0) |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
∂u |
|
|
|
|
x |
, u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Матрицы А, В, C, D имеют постоянные коэффициенты, зависящие от
статического режима, т. е. от u(0) и x(0). Для СНДУ коэффициенты матриц могут быть определены аналитически, поскольку для каждой частной производной аналитическое выражение записать достаточно просто. Если аналитическое выражение для какого-либо коэффициента записать невозможно или сложно, то этот коэффициент можно определить численно, например:
∂f2 (x, u) |
|
≈ 1 f2 |
(x1(0) |
, …, xn(0), u1(0), u2(0), u3(0) + δ, u4(0), …, ul(0) ) − |
|
|
|||||
|
|
|
|
|
|
∂u3 |
|
x=x(0), u=u(0) δ |
|
|
|
|
|
|
|
||
− f2 (x1(0), …, xn(0), u1(0), …, ul(0) ) |
, |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
где значение δ должно быть малым. Система линейных дифференциальных уравнений (СЛДУ) вида:
ɺ |
|
x(t) = A x(t) + B u(t); |
(1.2) |
|
|
y(t) = C x(t) + D u(t), |
x = x(t ) − x(0), |
записанная относительно векторов, обозначаемых через |
u = u(t ) − u(0) , y(t) = y(t) − y(0) , называется системой, полученной путем
линеаризации в окрестности статического режима (u(0), x(0)).
Эта система обладает следующим замечательным качеством. Если рас-
смотреть |
решение |
системы |
(1.1) |
при |
некоторых начальных |
условиях |
||||||||||||
x(t0 ) = x* |
и при некотором |
изменении вектора |
входов u(t) на |
интервале |
||||||||||||||
t [t0 , t1], то полученное решение х(t) обладает свойством: |
|
|||||||||||||||||
|
|
|
|
x(t) ≈ x* + |
x(t), |
t [t |
0 |
, t ], |
(1.3) |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
||
где х(t) – |
решение системы (1.2) при начальных условиях x(t0 ) = x* − x(0) |
|||||||||||||||||
и при входном векторе u(t |
0 |
) = u(t) − u(0) , t [t |
0 |
, t |
|
]. Другими словами, соот- |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
||||
ветствие математических моделей (1.1) и (1.2) выражено соотношениями: |
||||||||||||||||||
|
|
|
x (t) ≈ x |
(0) |
+ |
x (t), |
i = 1, …, n; |
|
||||||||||
|
|
|
i |
|
|
|
i |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
u |
(t) ≈ u |
(0) |
+ |
u |
(t), |
i = 1, …, l; |
(1.4) |
||||||||
|
|
|
i |
|
|
|
i |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
y |
(t) ≈ y(0) |
+ |
y |
(t), |
i = 1, …, m; |
|
|||||||||
|
|
|
i |
|
|
|
i |
|
i |
|
|
|
|
|
|
|
|
|
Переменные xi (t), |
ui (t) называются приращениями (или отклонения- |
|||||||||||||||||
ми) переменных x , u |
i |
относительно значений x(0) |
, u(0). |
|
||||||||||||||
|
i |
|
|
|
|
|
|
|
|
|
i |
|
|
|
i |
|
||
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
Таким образом, в окрестности статического режима динамику исходного объекта (1.1) с большой точностью описывает динамика объекта (1.2). Знак приближенного равенства в (1.3) означает, что при значительном отклонении
значений вектора u(t) от значения u(0) , т. е. при больших значениях компо-
ненты вектора ui (t) , схожесть будет меньше. В результате процесс исследования динамики нелинейного объекта (1.1) в окрестности его статического режима может быть осуществлен по схеме, показанной на рис. 1.1.
u(t)
u(t) ≈ u(t) −
u(t)
x* = x(0) + x*
xɺ(t) = f (x(t), u(t)) y(t) = g(x(t), u(t))
u (0)
xɺ(t) = A x(t) + B u(t) y(t) = C x(t) + D u(t)
x* = x* − x(0)
Рис. 1.1
x(t)
x(t) ≈ x(0) + x(t)
x(t)
Описание в виде (1.2) является общепринятым. Практически все стандартные методы и программные средства для работы с линейными системами используют такое представление. В частности, пакет MATLAB ориентирован именно на такое представление, когда объект исследования описан в пространстве состояний.
Использование линеаризованной модели дает следующие преимущества при исследовании динамической системы.
1.Решение СЛДУ всегда проще найти, в ряде случаев оно может быть найдено аналитически.
2.Для линейных систем определены такие понятия, как передаточные функции и частотные характеристики. Для оценки устойчивости движения в окрестности положения равновесия достаточно рассчитать собственные числа матрицы А. Кроме того, для линейных систем справедлив принцип суперпозиции, что позволяет, например, использовать методы частотного анализа.
5
3. Для линейных систем методы теории автоматического управления разработаны наиболее полно. Это позволяет строить законы управления для линеаризованных объектов и с учетом преобразования (1.3) переносить их на исходные нелинейные объекты.
В настоящее время возможности среды MATLAB позволяют находить линеаризованные модели без ручного вычисления матриц частных производных. Среда SIMULINK содержит не только средства графического представления и интегрирования динамических систем, но и специальные функции их обработки, в том числе и линеаризации.
Для анализа SIMULINK-объектов используются следующие функции:
[ST, IN, OUT] =TRIM(‘SYS’, X0, U0) – определение статического ре-
жима SIMULINK-модели. Параметры функции: SYS – имя модели, X0, U0 – начальные значения векторов состояния и управления, ST, IN, OUT – установившиеся значения соответственно векторов состояния, входа и выхода.
[A,B,C,D]=LINMOD('SYS',X,U) – получение матриц линеаризованной модели.
Для решения системы нелинейных алгебраических уравнений, соответствующих статическому режиму движения, можно использовать функцию символьной алгебры SOLVE.
Методика проведения работы
1.Построить модель динамической системы в среде SIMULINK в соответствии с исходными данными (табл. 1.1).
2.Подобрать коэффициенты модели таким образом, чтобы система оказалась устойчивой (путем моделирования).
3.Создать модель, аналогичную найденной, используя в качестве входных и выходных сигналов порты входа-выхода.
|
Таблица 1.1 |
Номер варианта |
СНДУ |
1 |
xɺ |
= a x + a x |
2 |
|
|
|
x |
2 |
|
|
+ b u; xɺ |
2 |
= a |
21 |
x + a |
22 |
x |
2 |
+ b u |
||
|
|
|
|
||||||||||||||||||
|
1 |
11 |
1 |
12 |
2 |
|
|
|
|
|
|
11 |
|
1 |
|
21 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
ɺ |
|
|
2 |
|
|
|
|
|
|
|
|
ɺ |
= a21x1 + a22 x2 + b21u |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
x1 = a11x1 + a12 x2 + b11u; x2 |
|||||||||||||||||||||
3 |
ɺ |
|
|
|
|
|
|
|
|
|
|
|
ɺ |
|
|
|
|
|
|
|
|
x1 |
= a11x1 + a12 x2 + b11u; x2 = a21x1x2 + a22 x2 + b21u |
||||||||||||||||||||
4 |
ɺ |
|
|
|
|
|
|
|
|
|
|
|
ɺ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
x1 |
= a11x1 + a12 x2 |
|
x2 |
|
+ b11u; x2 |
= a21x1 + a22 x2 + b21u |
||||||||||||||
|
|
|
|||||||||||||||||||
5 |
ɺ |
|
|
|
|
|
2 |
|
|
|
ɺ |
|
|
|
|
2 |
+ b21u |
||||
|
x1 = a11x1 + a12 x2 |
+ b11u; x2 |
= a21x1 + a22 x2 |
||||||||||||||||||
6 |
ɺ |
|
|
|
2 |
|
|
|
x2 |
|
|
ɺ |
|
|
|
|
|
|
2 |
+ b21u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
x1 |
= a11x1 + a12 x2 |
|
|
|
|
|
+ b11u; x2 |
= a21x1 + a22 x2 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.Определить точку равновесия, используя функцию TRIM.
5.Проверить корректность работы функции TRIM моделированием.
6.Найти линеаризованную модель системы аналитическим и машинным способом. Проверить модели на соответствие.
7.Проверить устойчивость линеаризованной модели по собственным чис-
лам.
8.Определить точку равновесия, соответствующую заданным входным воздействиям.
Содержание отчета
1.Постановка задачи и исходные уравнения.
2.Модель СНДУ в SIMULINK.
3.Значения коэффициентов модели.
4.Скрипт на языке MATLAB, с расчетом и проверкой статического режима, матрицы линеаризованной модели, собственных чисел,
5.Аналитически найденные матрицы линеаризованной модели.
6.Выводы.
Лабораторная работа 2. МОДЕЛИРОВАНИЕ ЛИНЕЙНОЙ ДИНАМИКИ
ПОДВИЖНЫХ ОБЪЕКТОВ
Цель работы: изучить основные методы исследования линейных моделей, овладеть навыками приведения моделей к разным формам, освоить основные функции языка MATLAB из библиотеки Control System Toolbox.
Общие положения
Для работы с динамическими объектами, математическим описанием которых являются системы обыкновенных линейных дифференциальных (или разностных) уравнений с постоянными коэффициентами, в системе
MATLAB предназначен пакет Control System Toolbox (CST). Такие объекты и системы управления в целом именуются в документации по пакету LTIсистемами (linear time-invariant system). В отечественной литературе используется эквивалентное наименование «линейные стационарные системы».
Пусть некоторый линейный стационарный динамический объект имеет вектор состояний x Rn , вектор управлений u E m (вектор входа объекта) и вектор измерений y E k (вектор выхода). В пакете CST используются два
7
взаимосвязанных способа представления дифференциальных уравнений линейной инвариантной во времени математической модели такого объекта:
1) уравнения пространства состояний: xɺ = Ax + B u, y = Cx + Du,
где A, B, C, D – матрицы с постоянными компонентами размеров |
n × n , |
||||||||||||
n × m , k × n , k × m соответственно; |
|
|
|
|
|
|
|
|
|
|
|
||
2) уравнения в изображениях по Лапласу: |
|
|
|
|
|||||||||
|
|
y = H (s)u, |
|
|
|
|
|
||||||
где H (s) – |
передаточная матрица от входа u к выходу y , |
|
|||||||||||
|
h11 |
(s) |
|
h12 |
(s) |
... |
h1m |
(s) |
|
||||
|
h |
(s) |
|
h |
(s) |
... |
h |
(s) |
|
||||
|
H (s) = 21 |
|
|
22 |
|
|
|
|
|
2m |
|
, |
|
|
|
|
|
... |
... |
... |
|
|
|||||
|
... |
|
|
|
|||||||||
|
h |
(s) |
|
h |
(s) |
... |
h |
(s) |
|
||||
|
k1 |
|
|
k 2 |
|
|
|
|
|
km |
|
|
|
где hij (s) – |
рациональные дроби от переменной Лапласа s . |
|
|||||||||||
Указанные компоненты hij (s) |
передаточной матрицы H (s) могут быть |
||||||||||||
заданы в двух вариантах: |
|
|
|
|
|
|
|
|
|
|
|
|
|
а) полиномами nij (s), dij (s) в числителе и знаменателе соответственно |
|||||||||||||
|
|
hij (s) = |
|
nij |
(s) |
; |
|
|
|
(2.1) |
|||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
dij |
(s) |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||
б) коэффициентами усиления k |
ij |
и множествами нулей α p и полюсов βq : |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
ij |
ij |
|
|
hij (s) = kij |
N∏ij (s − αijp ) |
K∏ij (s − βijq ), |
|
|||||||||
|
|
p =1 |
|
|
|
q =1 |
|
|
|
где Nij и Kij – степени полиномов nij (s) и dij (s).
В соответствии с приведенными соотношениями для формирования математической модели, описывающей динамику LTI-объекта, можно задать один из трех наборов параметров:
1)четыре числовые матрицы A, B, C, D для системы уравнений в пространстве состояний;
2)две полиномиальные матрицы N (s) = { nij (s)} и D(s) = {dij (s)};
8
3) числовую матрицу K = {kij с действительными компонентами и две
матрицы Z = {α p |
и P = {βq |
, элементами которых служат векторы с ком- |
ij |
ij |
|
плексными компонентами – нулями и полюсами дробей hij(s).
Приведенные выше три способа задания исходных данных линейных математических моделей определяют три формы представления LTI-систем в пакете прикладных программ CST. Эти формы реализуются с использованием переменных объектного типа – класса системных матриц. Каждая такая переменная является объектом в смысле объектной технологии программирования и представляет конкретную LTI-систему, с которой выполняются те или иные действия в процессе анализа или синтеза. Далее приводятся основные функции для создания и редактирования моделей линейных систем.
1. Создание LTI-моделей.
sys = ss(A,B,C,D) – в пространстве состояний,
sys = ss(A,B,C,D,E) – создание дескрипторной модели, SYS = TF(NUM,DEN) – в форме передаточной функции,
SYS = ZPK(Z,P,K) – через нули, полюса и весовые множители (разложение передаточной функции).
Применение указанных функций без параметров приводит к созданию пустых моделей ss-, tf- и zpk-типов. При одном входном параметре
SYS = SS(D)
SYS = TF(D)
SYS = ZPK(D)
LTI-модель представляет собой пропорциональное звено.
Эти же функции используются для перевода LTI-моделей из одной формы в другую:
SYS_SS = SS(SYS_TF)
SYS_TF = TF(SYS_ZPK)
SYS_ZPK = ZPK(SYS_TF)
Примечание: tf- и zpk-модели определяются однозначно, ss-модель является одной из бесконечного числа реализаций. Для получения минимальной реализации следует применять команду:
SYS_SS = SS(SYS_TF, ‘min’)
Минимальная реализация соответствует минимальной сумме модулей элементов матриц состояния, управления, выхода (наблюдения) и обхода.
9
2. Доступ к свойствам моделей.
LTI-модели в среде MATLAB являются объектами, обладающими набором свойств. Вывод полного списка свойств модели осуществляется при помощи функции GET:
GET(имя объекта)
Для получения списка свойств типовой модели можно применять функцию LTIPROPS(‘тип модели’).
Есть два способа доступа к свойствам объекта. Первый использует ту же функцию GET:
GET(имя объекта,’имя свойства’)
Изменять значение того или иного свойства позволяет функция SET. SET(имя объекта,’имя свойства1’, новое значение1,’имя свойства2’, но-
вое значение2…)
Второй способ предполагает доступ к свойству объекта, как к полю структуры или типа, заданного пользователем:
имя объекта.имя свойства = новое значение.
Примечание. При изменении размерностей входов-выходов LTI-модели следует применять функцию SET, которая позволяет менять одновременно несколько значений разных свойств.
Есть также набор функций быстрого доступа к образующим свойствам моделей:
[A,B,C,D] = SSDATA(SYS)
[NUM,DEN] = TFDATA(SYS)
[Z,P,K] = ZPKDATA(SYS)
3. Частотные и временные характеристики моделей:
а) функция BODE – АЧХ и ФЧХ системы (диаграммы Боде). Есть несколько форматов использования функции:
BODE(SYS) строит АЧХ и ФЧХ системы SYS в логарифмическом масштабе. Частотный диапазон и число точек выбирается автоматически.
BODE(SYS,{WMIN,WMAX}) строит характеристики для заданного частотного диапазона (в радианах в секунду).
BODE(SYS,W) – построение характеристик для вектора частоты W, определенного пользователем (в равномерном или логарифмическом масштабе).
BODE(SYS1,SYS2,...,W) строит характеристики для множества моделей на одном графике. Вектор W определяется пользователем.
10