Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория автоматического управления. Лабораторный практикум. Учебное пособие
.pdf
181
Решение систем дифференциальных уравнений
K
K
¢
K
KLK
X),F(
X),F(
X
=
=
численными методами в среде Mathcad
Mat hcad предоставляет пользователю библиотеку встроен-
ных функций Differential Equation Solving, предназначенных для
численного решения систем дифференциальных уравнений. В
состав ее входят функции Mathcad, предназначенные для решения задачи Коши и граничных задач для нормальных систем
обыкновенных дифференциальных уравнений. Задачи для уравнений высших порядков сводятся к соответствующим задачам
для нормальных систем.
Рассмотрим задачу Коши:
,x)(tx
=
0,101
,x)(tx
=
0,202
.
x)(tx
=
n0,0n
(93)
L
=
¢
=
¢
( )
=
K
),x,,x,x(t,fx
n2111
),x,,x,x(t,fx
n2122
K
.
x,,x,xt,fx
n21nn
Система (93) называется нормальной системой дифференциальных уравнений. Численное решение задачи Коши состоит в
построении таблицы приближенных значений x
i,1
, x
, ..., x
i,2
i,N
решения x1 (t), x2 (t), ..., xN (t) на отрезке [t0, tN ] в точках t1 , t2 ,
..., tN, которые называются узлами сетки. Обозначив
Т
,
(t))x,(t),x(t),(x)t(K=X
n21
Т
)x,,x,(x K=X ,
n0,0,20,10
Т
¢
=
X
=X),F(
где (t)X – искомое решение,
¢¢¢
,
(t))x,(t),x(t),x((t)
n21
Т
))x,,x,x(t,f,),x,,x,x(t,(ft
n21nn211
– вектор начальных условий, а
X
0
,
t – вектор правых частей, запишем систему дифференци-
альных уравнений в векторной форме:
t)t(
,
.
)(t XX
00
В Mathcad решить задачу Коши для такой системы можно
с помощью следующих функций:
· rkfixed(x
, t0, tn, n, F) – решение задачи на отрезке мето-
0
дом Рунге – Кутта с постоянным шагом;

182
· Rkadapt(x
X),F(
-
æ
ç
ç
è
ö
÷
÷
ø
æ
ç
ç
è
ö
÷
÷
ø
æ
ç
ç
è
ö
÷
÷
ø
æ
ç
ç
è
ö
÷
÷
ø
, t0, tn, n, F) – решение задачи на отрезке ме-
0
тодом Рунге – Кутта с автоматическим выбором шага;
· Bulstoer(x
, t0, tn, n, F) – решение задачи на отрезке мето-
0
дом Булирша-Штера.
Смысл параметров для всех функций одинаков и опреде-
ляется математической постановкой задачи:
x0 – вектор начальных условий
;
X
0
t0, tn – начальная и конечная точки отрезка интегрирования
системы (левая и правая границы интервала времени);
n — число точек в интервале [t0, tn];
F — имя вектора-функции
t правых частей.
Если известно, что искомое решение достаточно гладкое,
можно использовать функцию Rkadapt, которая ищет решение с
переменным шагом, то есть там, где решение меняется медленнее, шаг увеличивается, а в области быстрого изменения функции шаг уменьшается, что ускоряет поиск решения. Возвращается же решение с равным шагом.
Когда известно, что решение является гладкой функцией,
более точное решение даёт функция Bulstoer, которая использу-
ет метод Булирша-Штера, и имеет те же аргументы, что и
rkfixed.
Пример выполнения
1. Решение с помощью преобразований Лапласа
Присвоим начальному индексу массивов значение 1:
ORIGIN 1:=
A
:= B
. Запишем исходные данные в системе Mathcad
2
.1
1
0
2.2-
2
1
0.7
0.2-
0
1
:= E10
0.4
:= x0
0
0
1
0
0
0
1
1
.
0
:=
0.1
u(t)=1(t).
Найдем изображение по Лапласу управления
ut() Ft():=
Us() ut( ) laplace t,
1
®:=
s
.

183
Запишем ранее полученное уравнение (84) в преобразова-
x0
ê
ë
ú
û
ê
ë
ú
û
0.389
0.231
ниях Лапласа
X s() Es× A-( )1-B× Us()× Es× A-( )
1-
×+:=
и упростим его
Xs()
simplify
float 6,
®
é
ê
ê
ê
ê
0.22- s× 2.5s2×+ 1.0s3×+ 1.68+
s s 0.683889-( )× s 2.92229+( )× s 2.16159+( )×
5.4s× 1.2s2×+ 1.0+
s s 0.683889-( )× s 2.92229+( )× s 2.16159+( )×
ê
ê
Чтобы ускорить процесс вычислений, переприсвоим X(s)
5.02 s× 1.82s2×+ 0.1s3×+ 3.26+
s s 0.683889-( )× s 2.92229+( )× s 2.16159+( )×
ù
ú
ú
ú
.
ú
ú
ú
X s()
é
ê
s s 0.683889-( )× s 2.92229+( )× s 2.16159+( )×
0.22- s× 2.5s2×+ 1.0s3×+ 1.68+
ê
5.4s× 1.2s2×+ 2.32831e-10s3×+ 1.0+
ê
:=
ê
s s 0.683889-( )× s 2.92229+( )× s 2.16159+( )×
ê
ê
5.02 s× 1.82s2×+ 0.1s3×+ 3.26+
s s 0.683889-( )× s 2.92229+( )× s 2.16159+( )×
ù
ú
ú
ú
.
ú
ú
ú
Выполним обратное преобразование Лапласа для строк
вектора X(s) и построим графики функций xi(t) (рис. 81):
invlaplace
Xs()
1
float3,
x1 t( ) 0.43 e
invlaplace
Xs()
2
float3,
0.684 t×
× 0.16 e
0.684 t×
0.43e
× 0.16e
×+ 0.799 e
0.684 t×
0.749e
× 0.566 e
2.92- t×
×+ 0.799 e
2.92- t×
×+ 1.08- e
2.92- t×
2.16- t×
×+
2.16- t×
×+ 0.389-:=
2.16- t×
×+
,
-®
,
,
-®

184
0.755
dt
èöø
èöø
x2 t( ) 0.749 e
0.755
0.684 t×
× 0.566 e
2.92- t×
×+ 1.08- e
×+ 0.231-:=
2.16- t×
,
invlaplace
Xs()
3
float3,
x3t( ) 1.08 e
x1t()
x2t()
x3t()
0.684 t×
× 0.204- e
3
2
1
0
0 0.5 1 1.5 2
0.684 t×
1.08e
× 0.204- e
×+ 0.0207- e
2.92- t×
×+ 0.0207- e
2.92- t×
t
2.16- t×
×+
2.16- t×
×+
-:=
-®
.
Рис. 81. Решения системы уравнений через преобразования Лапласа
2. Решение системы неоднородных дифференциальных
уравнений с диагональной матрицей коэффициентов
Решим в системе Mathcad матричное дифференциальное
уравнение (t)(t)
(t)d
buAxx+= при заданных матрицах коэффи-
циентов A и b, начальных условиях х0 и векторе u(t) через мат-
ричную экспоненту.
Присвоим начальному индексу массивов значение 1:
ORIGIN 1:=
. Запишем начальные условия:
x
01
0.5-:= x
02
.
1:=
Здесь и далее в имени переменной используются подстрочные
надписи (табл. 4); в обозначениях x01 и x02 надписи 01, 02 явля-
ются не индексами, а подстрочниками. В системе Mathcad они
вводятся набором точки перед подстрочником, т. е. х.01, х.02.
Зададим матрицы коэффициентов уравнения
3-00
æ
A
:=
,
5-
201.5-
æ
B
:=
,
4.5
,

185
и вектор управляющих воздействий
ç
è
÷
ø
ç
÷
ç
÷
ç
÷
ê
ë
ú
û
(
)
ç
÷
ç
÷
ç
÷
ç
è
÷
ø
sin 0.3t()
ut()
:=
æ
0.8e
×
0.8- t
ö
.
Решение будем искать в виде
t
At×
xt()e
ó
ô
õ
0
Att-()×
x0×
()
B× ut
×
te
d+
или
æ
è
x1t()
x2t()
ö
ø
æ
è
e
00e
3- t
5- t
ö
ø
x
æ
01
×
x
02
è
t
ö
ó
ô
õ
0
ø
()
tIntegr t t,
d+:=
,
где
3-tt-()×
()
Integr t t,
é
e
00e
5-tt-()×
ù
×
æ
è
201.5-
4.5
æ
ö
×:=
ø
è
Вектор решения будет равен
t
æ
ó
ô
õ
ç
ö
ø
+:=
ç
ó
ç
ô
õ
0
0
Xt()
æ
è
3- t
e
00e
5- t
ö
ø
x
æ
01
×
x
02
è
Построим графики функции для каждого из элементов
t
()
d
1
()
d
2
X(t)1 и X(t)2 полученного вектора Х(t) (см. рис. 82).
sin 0.3t
0.8e
×
ö
tIntegr t t,
÷
÷
÷
tIntegr t t,
.
0.8-t
ö
.
ø
1
0.5
Xt()
1
Xt()
0
2
0.51-
0 5 10 15
Рис. 82. Решение системы дифференциальных уравнений
через матричную экспоненту

186
3. Решение системы уравнений методом диагонализации
èöø
èöø
ø
ø
)
ø
ç
è
÷
ø
èöø
)
1
èöø
èöø
èöø
èöø
(
)
ë
û
ë
û
ê
ë
ú
û
(
)
матрицы коэффициентов
Решим систему дифференциальных уравнений, заданную с
помощью матриц коэффициентов А, В, вектора внешних воздействий u(t) и вектора начальных условий х0
ORIGIN1:=
06-1
æ
A
:= B
5-
000
æ
:= u
2
0
æèö
:= x
1
0
æèö
:=
0
.
0
Так как матрица А недиагональная, то приведем систему
дифференциальных уравнений к новым координатам. Решение
будем искать в виде
t
yt()e
Lt×T1-
× x0×
ó
ô
õ
0
Ltt-()×
1-
×
()
d+ .
T
× B×ut
te
Определяем собственные значения матрицы А (вектор l)
и формируем матрицу L:
l
æ
L
:=
1
00l
ö
L
2
2-00
æ
=
.
3-
l eigenvals A(
:=
2-
æèö
l
=
3-
Находим матрицу Т, а затем и матрицу L, обратную T :
T eigen vecs A(
:= LT
0.447-
æ
T
= L
0.894
0.316-
0.949
-
:=
6.697-
æ
=
6.309
2.23-
3.155
.
Выполняем проверку:
0.894
æ
AT×
= T L×
Находим значения матрицы
exp L
é
()
expl t t,
и подынтегрального выражения
1.788-
11,
0.949
2.849-
t t-
×
0
exp L
22,
0
( )
t t-
×
=
teL
:
ù
®:=
0.894
æ
1.788-
exp3-t× 3t×+
æ
è
1τ)Λ(t --
BuTe
:
0
0.948
2.847-
.
0
( )
exp2-t× 2t×+
ö
ø

187
()
ç
ç
è
÷
÷
ø
ç
ç
è
÷
÷
ø
ç
ç
÷
÷
è
ø
èöø
ø
ø
ø
Integr t t,
()
( )
expl t t,
Находим функции y(t) и x(t):
t
æ
ó
ô
õ
ç
yt( ) expl t0,( )L× x0×
xt() Tyt()× simplify
0
+ simplify
ç
t
ó
ç
ô
õ
0
®:=
Строим график (рис. 83):
t 0 0.01,5..:=
.
æ
L×B×u×
2 4exp3-t×()× 6exp2-t×()×-+
æ
ç
®:=
ç
()
tIntegrtt,
d
1
()
tIntegrtt,
d
2
12- exp3-t×()× 12exp2-t×()×+
( )
12- exp3-t× 3t×+
× 10
( )
12exp2-t× 2t×+
× 5
ö
÷
÷
÷
æ
4- 10
ç
®:=
ç
è
1
ö
2
×
÷
.
÷
1
2
×
1
2
× 4exp3-t×( )× 10
1
2
65
× 6exp2-t×( )× 5
ö
.
×-
1
ö
2
×+
÷
÷
1
2
ø
Рис. 83. Решение методом диагонализации матрицы
4. Решение матричного уравнения с помощью теоремы
Лагранжа-Сильвестра
Решим систему дифференциальных уравнений с помощью
Mathcad. Задаем исходные данные:
ORIGIN1:=
06-1
æ
A
:= B
5-
000
æèö
:= u
2
0
æèö
:= x
1
0
æèö
.
:=
0
0

188
Решение будем искать в виде:
t
)
ø
èöø
(
)
(
)
(
)
(
)
èöø
(
)
(
)
èöø
ç
ç
è
÷
÷
ø
t
At×
xt()e
ó
x0×
õ
0
e
Att-()×
ô
()
B×ut
×
d+
.
Так как матрица А недиагональная, то значение eAt получим с помощью теоремы Лагранжа-Сильвестра. Для этого определяем собственные значения матрицы А – вектор l и задаем
единичную матрицу:
l eigenvals A(
:=
2-
æèö
l
= E
3-
100
æ
:=
.
1
Рассчитываем элементы фундаментальной матрицы
()
F t t,
l
tt-()×
()
F t t,
2-exp3-t× 3t×+
æ
®
6exp3-t× 3t×+
1
e
× 3exp2-t× 2t×+
( )
× 6exp2-t× 2t×+
× e
Al2E×-
l1l
-
×+
( )
×-
l2tt-()×
2
Al1E×-
×+:=
l2l
exp3-t× 3t×+
- exp2-t× 2t×+
( )
3exp3-t× 3t×+
× 2exp2-t× 2t×+
-
,
1
+
( )
×-
.
Находим значение подынтегрального выражения e
12- exp3-t× 3t×+
× 12exp2-t× 2t×+
()
Integr t t,
()
Ftt,
B×u×
®:=
æ
( )
36exp3-t× 3t×+
× 24exp2-t× 2t×+
A(t-t)
×+
( )
×-
Bu(t):
Находим решение системы дифференциальных уравнений:
t
æ
ó
ô
õ
ç
xt() Ft0,( )x0×
+
ç
ç
0
t
ó
ô
õ
0
Задаем интервал времени
()
()
t 0 0.01,5..:=
tIntegr t t,
d
1
tIntegr t t,
d
2
ö
÷
÷
÷
24 6expt()×-( )exp3-t×( )×+
é
®:=
12- 12expt()×+( )exp3-t×( )×
ë
и строим графики функций
x(t)1, x(t)2 .
5. Решение систем дифференциальных уравнений
численными методами в среде Mathcad
Решим методом Рунге-Кутта исходную систему диффе-
ренциальных уравнений, записанную в виде:
.
ù
û
.

189
d
ç
è
÷
ø
èöø
d
d
d
x1t()
t
x2t()
t
3- x1t()× 2sin0.3t×( )×+ 1.5 0.8× e
0.8- t
5- x2t()× 4.5 0.8× e
,
×+
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 значений (табл. 20),
первый столбец которой содержит значения времени, второй искомые значения x1(t), третий – x2(t).
Таблица 20
1 2 3
1
2
X
=
rk
3
4
5
0 -0.5 1
0.1 -0.467 0.878
0.2 -0.43 0.783
0.3 -0.39 0.706
0.4 -0.349 0.642
Решим ту же систему дифференциальных уравнений мето-
дом Рунге-Кутта с адаптивным шагом.

190
Вектор правых частей уравнения и вектор начальных усло-
dt
dt
вий записываются также как и в примере решения системы дифференциальных уравнений методом Рунге-Кутта с фиксированным шагом.
Вызов функции rkadapt:
X
rka
Rkadapt xn 0, 15, 150, F,( ):=
Результатом работы функции является матрица X
.
, анало-
rkа
гичная матрице Xrk.
Точно также записывается вектор правых частей уравнения и вектор начальных условий для метода Булирша-Штера.
Решение производится путем вызова функции Bulstoer:
X
rkb
Bulstoer xn 0, 15, 150, F,( ):=
.
В результате работы функции также получаем матрицу
(матрица X
), подобную Xrk(табл. 20).
rkb
Задания
1. Дифференциальное уравнение объекта управления
a2
2
dy
yd
1a
2
dt
du
b1y(t)0a
dt
u(t)0b
×+×=×+++
3
yd
3
преобразовать к системе уравнений первого порядка в нормальной форме и записать в матрично-векторной форме.
2. Составить матрицы коэффициентов.
3. Получить решения аналитически и численным методом
и построить графики. Исходные данные заданы в табл. 21, 22.
2
ö
æ
xd
÷
Вариант a2 а1 а0 b1 b0
1 2 3 4 5 6 7 8 9
0 2.8 9.2 1.6 0 3 4.5 2.3 0.9
1 2.1 0.1 2.11 0.16 1 0.02 1.53 1.2
2 8 2.1 3.21 0.19 0.5 0.43 1.32 1.4
3 1.5 0.11 2.67 1.23 2 0.36 -3.54 3.2
4 4.3 0.32 3.24 2.87 1.3 -3.17 -2.32 2.7
5 0.9 0.78 1.18 0 0.35 -2.41 -1.13 1.3
6 6.5 2.3 1.32 3.14 3.5 -1.32 3.26 -2.7
7 4.7 1.7 3.21 2.12 1.7 - 3.12 4.67 -3.5
ç
2
÷
ç
dt
ø
è
0
Таблица 21
dx
ö
æ
÷
ç
dt
ø
è
0
х0
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
