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

Оптимальное управление в технических системах. Практикум. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
191
d
èöø
èöø
ç
è
÷
ø
ç
÷
ç
÷
ç
÷
ê
ú
ç
÷
ê
ë
ú
û
(
)
ç
÷
ç
÷
ç
÷
ç
è
÷
ø
xt()
A xt()× B ut()×+
t
d
Присвоим начальному индексу массивов значение 1.
ORIGIN 1:=
Зададим следующие начальные условия:
x
01
0.5-:= x
02
1:=
,
Положим матрицы коэффициентов уравнения:
3-00
æ
A
:= B
5-
201.5-
æ
:=
4.5
,
Управляющее воздействие задано в виде:
ut()
:=
æ
0.8e
×
ö
0.8- t
sin 0.3t()
Решени е будем искать в виде:
t
xt()e
At×
ó ô õ
0
Att-()×
x0×
()
B× ut
×
te
d+
или
t
æ è
x1t() x2t()
3- t
ö
æ
e
ø
è
00e
ö
æ
×
5- t
ø
è
ó
x
ö
01
x
02
ø
3- t t-()×
é
ô
e
ô
00e
ô
ë
õ
0
5-tt-()×
ù û
201.5-
æ
×
4.5
è
ö ø
æ
×
è
()
sin 0.3t
0.8e
×
0.8- t
ö ø
Упростим подынтегральное выражение
3-tt-()×
()
Integr t t,
é
e
0
e
0
5-tt-()×
ù
×
201.5-
æ
4.5
è
sin 0.3t
æ
ö
×:=
ø
0.8e
×
è
0.8-t
ö ø
Подставим в исходное выражение
t
Xt()
æ
è
3- t
e
00e
5- t
ö
ø
æ
ó
x
æ
01
×
x
02
è
ô õ
ç
ö
ø
+:=
ç
ó
ç
ô õ
0
0
()
t
()
tIntegr t t,
d
1
tIntegr t t,
d
2
ö ÷
÷ ÷
Построим графики функции (рис. 6.1) для каждого из эле-
ментов полученного вектора Х(t) – X (t)1 и X(t)2. Задаем значения
аргумента
t 0 0.1, 15..:=
t
d+
192
1
0.5
Xt()
1
0
Xt()
2
0.5
1
0 5 10 15
t
Рис. 6. 1. Аналитическое решение системы дифференциальных
уравнений
Решение систем дифференциальных уравнений
численными методами в MathCad
Mathcad предоставляет пользователю библиотеку встро­енных функций Differential Equation Solving, предназначенных для численного решения систем дифференциальных уравнений. В состав ее входят функции Mathcad, предназначенные для ре­шения задачи Коши и граничных задач для нормальных систем обыкновенных дифференциальных уравнений. Задачи для урав­нений высших порядков сводятся к соответствующим задачам для нормальных систем.
Рассмотрим задачу Коши:
=
¢
=
ì ï
¢
=
ï í
...
ï ï
¢
=
î
),x,...,x,x,t(fx
n2111
),x,...,x,x,t(fx
n2122
.
)x,...,x,x,t(fx
n21nn
ì ï ï
í
...
ï ï
î
,x)t(x
1,001
=
,x)t(x
2,002
=
.x)t(x
n,00n
(6.8)
Система (6.8) называется нормальной системой диффе­ренциальных уравнений. Численное решение задачи Коши со­стоит в построении таблицы приближенных значений x
..., x
решения x1 (t), x2 (t), ..., xN (t) на отрезке [t0 , tN] в точках
i,N
i,1
, x
i,2
t1 , t2 , ..., tN, которые называются узлами сетки. Обозначив
Т
))t(x),...,t(x),t(x()t(X = ,
n21
Т
)x,...,x,x(X = ,
n,02,01,00
,
193
Т
¢
=
где )t(X – искомое решение;
)X,t(F – вектор правых частей.
¢¢¢
))t(x),...,t(x),t(x()t(X
,
n21
Т
))x,...,x,x,t(f),...,x,...,x,x,t(f()X,t(F = ,
n21nn211
X – вектор начальных условий;
0
Запишем систему дифференциальных уравнений в век­торной форме:
)X,t(F)t(X = ,
X)t(X = .
00
В Mathcad решить задачу Коши для такой системы можно с помощью следующих функций:
· rkfixed(x
, t0, tn, n, F) – решение задачи на отрезке мето-
0
дом Рунге – Кутта с постоянным шагом;
· Rkadapt(x
, t0, tn, n, F) – решение задачи на отрезке ме-
0
тодом Рунге – Кутта с автоматическим выбором шага;
· Bulstoer(x
, t0, tn, n, F) – решение задачи на отрезке ме-
0
тодом Булирша-Штера;
Смысл параметров для всех функций одинаков и опреде­ляется математической постановкой задачи: x0 – вектор началь-
ных условий
X ; t
, tn – начальная и конечная точки отрезка ин-
0
0
тегрирования системы (левая и правая границы интервала вре­мени); n – число точек в интервале [t0, tn]; F – имя вектора-
функции )X,t(F правых частей.
Если известно, что искомое решение достаточно гладкое, можно использовать функцию Rkadapt, которая ищет решение с переменным шагом, то есть там, где решение меняется медлен ­нее, шаг увеличивается, а в области быстрого изменения функ­ции шаг уменьшается, что ускоряет поиск решения. Возвраща­ется же решение с равным шагом.
Когда известно, что решение является гладкой функцией, более точное решение даёт функция Bulstoer, которая использу­ет метод Булирша-Штера, и имеет те же аргументы, что и
rkfixed.
194
Пример 1. Численное решение системы дифференци-
ç
è
÷
ø
èöø
альных уравнений в MathCad. Метод Рунге-Кутта. Решим методом Рунге-Кутта исходную систему дифференциальных уравнений, записанную в виде:
d
d
d
d
x1t()
t
x2t()
t
3- x1t()× 2sin0.3t×( )×+ 1.5 0.8× e
5- x2t()× 4.5 0.8× e
0.8- t
×+
0.8- t
×-
для следующих начальных условий:
x
01
0.5-:= x
02
1:=
,
Присвоим начальному индексу массивов значение 1:
ORIGIN 1:=
Сформируем вектор правых частей системы дифференци-
альных уравнений:
0.8- t
×-
ö ÷
Ftxn,
( )
æ
3- x
× 2sin0.3t×( )×+ 1.5 0.8× e
n
:=
ç
1
5- x
× 4.5 0.8× e
n
2
0.8- t×
×+
Сформируем вектор начальных условий:
0.5-
æ
xn
:=
1
Вызов функции rkfixed():
X
rkfixed xn 0, 15, 150, F,( ):=
rk
Результат работы функции – матрица Xrk значений, пер­вый столбец которой содержит значения времени, второй - ис­комые значения x1(t), третий – x2(t).
1 2 3
1
0 -0.5 1
2
=
3 4 5
0.1 -0.467 0.878
0.2 -0.43 0.783
0.3 -0.39 0.706
0.4 -0.349 0.642
X
rk
Для построения графика функций (рис. 6.2) предваритель-
но зададим интервал изменения индекса:
n 0 150..:=
195
1
0.5
X
rk
n2,
Xt()
1
0
X
rk
n3,
Xt()
2
0.5
1
0 5 10 15
X
t, X
, t,
rk
rk
n1,
n1,
Рис. 6. 2. Сравнение численного решения методом Рунге-Кутта
(штрихи) и аналитического решения (сплошные линии) системы
дифференциальных уравнений
Метод Рунге-Кутта с адаптивным шагом. Решим ту же систему дифференциальных уравнений методом Рунге-Кутта с адаптивным шагом. Вектор правых частей уравнения и вектор начальных условий уже сформированы выше в примере реше­ния системы дифференциальных уравнений методом Рунге­Кутта. Вызов функции rkadapt():
X
Результат работы функции – матрица X
rka
Rkadapt xn 0, 15, 150, F,( ):=
значений, пер-
rkа
вый столбец которой содержит значения времени, второй - зна­чения x1(t), третий – x2(t).
1 2 3
1
0 -0.5 1
2
=
3 4 5
0.1 -0.467 0.878
0.2 -0.43 0.783
0.3 -0.39 0.706
0.4 -0.349 0.642
X
rka
Для построения графика функций (рис. 6.3) предваритель­но зададим интервал изменения индекса:
n 0 150..:=
196
1
0.5
X
rka
n2,
Xt()
1
0
X
rka
n3,
Xt()
2
0.5
1
0 5 10 15
X
t, X
, t,
rka
rka
n1,
n1,
Рис. 6.3. Сравнение численного решения методом Рунге-Кутта с
адаптивным шагом (штрихи) и аналитического решения ( сплошные
линии) системы дифференциальных уравнений
Метод Булирша-Штера. Решим ту же систему дифферен­циальных уравнений методом Булирша-Штера. Вектор правых частей уравнения и вектор начальных условий уже сформирова­ны выше в примере решения системы дифференциальных урав­нений методом Рунге-Кутта. Вызов функции Bulstoer():
X
Результат работы функции – матрица X
rkb
Bulstoer xn 0, 15, 150, F,( ):=
значений, пер-
rkb
вый столбец которой содержит значения времени, второй - зна­чения x1(t), третий – x2(t).
1 2 3
1
0 -0.5 1
2
=
3 4 5
0.1 -0.467 0.878
0.2 -0.43 0.783
0.3 -0.39 0.706
0.4 -0.349 0.642
X
rkb
Для построения графика функций (рис. 6.4) предваритель­но зададим интервал изменения индекса:
n 0 150..:=
197
1
0.5
X
rkb
n2,
Xt()
1
0
X
rkb
n3,
Xt()
2
0.5
1
0 5 10 15
X
t, X
, t,
rkb
rkb
n1,
n1,
Рис. 6. 4. Сравнение численного решения методом Булирша-Штера
(штрихи) и аналитического решения (сплошные линии) системы
дифференциальных уравнений
Приведение дифференциальных уравнений
высших порядков к нормальному виду
Рассмотренный подход можно распространить на случай построения переходного процесса системы, описывающейся дифференциальным уравнением высшего порядка
n
a
)t(xd
0
n
dt
1n
-
a
1
)t(xd
1n
-
dt
=+×××++
)t(ub)t(xa
. (6.9)
0n
приведением его к системе дифференциальных уравнений пер­вого порядка (6.1):
)t(dx
dt
+= .
)t(Bu)t(Ax
Решение полученного матричного уравнения при задан­ных начальных условиях могут быть получены как одним из численных методов, реализованным в виде процедуры Mathcad, например, с помощью функции rkfixed, так и аналитическим методом.
Чтобы уравнение (6.9) имело единственное решение, не- обходимо задание начальных условий:
198
x)t(x = ,
¢=¢
dt
00
x)t(x
, (6.10)
00
1n
0
1n
--
x)t(x
= .
0
Введя новые неизвестные функции, можно привести уравнение (6.9) к системе n дифференциальных уравнений пер­вого порядка. Такую систему называют нормальной системой дифференциальных уравнений.
Пусть
dt
)t(dx
= ,
, тогда
)t(x)t(x1=
)t(x
… (6.11)
dx
1n
-
x
=
,
n
a
)t(dx
1n
dt
a
0
a
2
)t(x
n
1n
-
a
0
a
n
...)t(x
a
0
b
0
)t(x
+----=
1
a
0
Совокупность уравнений (6.11) можно записать следую­щим образом:
dx
ö
æ
1
÷
ç
dt
÷
ç ç
dx
ç
dt
ç
...
ç ç
dx
ç ç ç
dx
ç
dt
è
æ
÷
ç
2
÷
ç
÷
ç
=
÷
ç
÷
ç
1n
-
÷
ç
dt
÷
ç è
÷
n
÷ ø
a
a
n
a
0
a
1n
a
0
2n
--
.
a
0
00.010
ö
x
æ
1
÷
ç
00.100
÷
x
ç
2
÷
....
a
2
a
0
ç
....
÷
ç
01.000
÷
ç
x
a
÷
1
ç
-----
÷
x
n
è
a
0
ø
Уравнение (6.12) в матричном виде представляет собой уравнение (6.1), где
00.010
æ ç
ç ç
=
A ,
ç
....
ç ç ç
è
a
a
n
a
a
0
a
--
1n
0
2n
a
0
a
2
.
a
0
ö ÷
00.100
÷ ÷ ÷ ÷
01.000
÷
a
1
-----
÷
a
0
ø
0
ö
æ
÷
ç
0
÷
ç
÷
ç
=
...
b ,
÷
ç
÷
ç
0
÷
ç
1
ø
è
.
)t(u
0
ö
ö
æ
÷
÷
ç
0
÷
÷
ç ÷ ÷ ÷
1n
-
÷ ø
=
x
.(6.12)
÷
ç
u
...
+
÷
ç
0
÷
ç
÷
ç
1
ø
è
x
ö
æ
1
÷
ç
x
÷
ç
2
÷
ç
....
.
÷
ç
÷
ç
x
-n1n
÷
ç
x
ø
è
199
Пример 2. Приведение дифференциального уравнения
второго порядка к нормальному виду. Дифференциальное
уравнение второго порядка
2
T
)t(xd
1
2
dt
)t(dx
T
2
dt
)t(ku)t(x
=++
требуется представить в виде системы нормальных дифферен­циальных уравнений.
Введем замену
)t(dx
dt
2
)t(xd
2
dt
)t(dx
dt
2
1
2
dt
== ,
)t(xd
==
)t(x
:
)t(x)t(x1=
)t(dx
2
,
dt
тогда
)t(dx
dt
T
dt
)t(x
= ,
)t(dx
122
)t(ku)t(x)t(xT
=++ .
Приводим к виду Коши:
)t(dx
dt
)t(dx
2
dt
)t(x
= ,
k
T
1
T
)t(u
T
1
1
2
x
2
.
x
--=
1
T
1
В матричном виде система уравнений:
)t(dx
æ ç
ç ç
ç è
ö
1
dt
2
dt
æ
÷
ç
÷
=
ç
)t(dx
÷
ç
÷
è
ø
10
ö
æ
1
÷
T
1
2
T
ç
ç
--
÷
÷
2
è
T
11
ø
0
ö
æ
)t(x
ö
÷
ç
k
÷
+
÷
ç
)t(x
ç
ø
è
)t(u
÷
÷
T
1
ø
или
где
)t(dx
dt
æ ç
T
=
A ,
2
ç
ç
T
è
+= ,
10
ö ÷
1
--
÷
÷
T
11
ø
)t(bu)t(Ax
=
b ,
0
ö
æ
÷
ç
k
÷
ç
÷
ç
T
1
ø
è
)t(x
)t(x
ö
æ
1
÷
ç
=
ç è
.
÷
)t(x
2
ø
200
Решение систем дифференциальных уравнений
L
=-AT
T
методом преобразования координат
Аналитическое решение системы нормальных дифферен­циальных уравнений (6.1) осложняется в случае, если матрица А недиагональная. Так как
aa
æ ç
ç
At
è
ee .
Для нахождения значений
ö
1211
÷
t
æ
÷
aa
2221
ø
ç
¹=
ç è
tata
1211
ö
ee
÷
tata
÷
2221
ee
ø
At
e можно привести уравнение
(6.1) к новым координатам, в которых матрица, подобная А бы-
ла бы диагональной. К уравнению n-го порядка (6.1) в векторно­матричном виде применим линейное преобразование:
x(t) = Тy(t), (6.13) где Т – неособая матрица перехода к новой системе координат y, допускающая обращение. В силу (6.13) производная имеет вид
dt
dy
T
= ,
dt
dx
тогда исходное уравнение (6.1) можно записать как:
)t(dy
T += .
dt
Последнее выражение умножим на Т
)t(dy
TT
dt
)t(bu)t(ATy
111 ---
+= .
-1
слева:
)t(buT)t(ATyT
Обозначим
1
. (6.14)
Окончательно приходим к уравнению:
)t(dy
dt
1-
+L= , (6.15)
)t(buT)t(y
где L – диагональная матрица составленная из собственных зна- чений матрицы А; Т – матрица собственных векторов матрицы
А. Матрица L может быть найдена двумя способами:
1) из уравнения:
0EAdet =l- , (6.16)
где Е – единичная диагональная матрица.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]