
- •Глава 1. Оптимизация статических объектов 6
- •Глава 2. Основы линейного программирования 22
- •Глава 3. Способы описания динамических систем 34
- •Глава 4. Применение вариационных методов для поиска
- •Глава 1. Оптимизация статических объектов
- •1.1. Понятие статических и динамических объектов
- •1.2. Задача нелинейного программирования
- •Задачи на условный экстремум, неопределенные множители Лагранжа
- •1.4. Пример применения метода неопределенных множителей Лагранжа для поиска наибольших значений функций
- •1.5. Общая постановка задачи линейного оценивания параметров
- •Глава 2. Основы линейного программирования
- •2.1. Постановка задачи
- •2.2. Основные геометрические фигуры в линейном программировании
- •Экстремальные точки
- •2.4. Основные теоремы об экстремальных точках
- •2.5. Симплексный метод решения задач линейного программирования
- •2.6. Учет ограничений типа неравенств
- •2.7. Поиск начальной экстремальной точки
- •Глава 3. Способы описания динамических систем
- •3.1. Передаточные функции
- •3.2. Описание в форме Коши
- •3.3. Управляемость, наблюдаемость, стабилизируемость, обнаруживаемость
- •3.4. Понятие фильтра и общая задача регулирования
- •Глава 4. Применение вариационных методов для поиска оптимальных управлений
- •4.1. Понятие линейного пространства
- •4.2. Функционал и его вариация
- •4.3. Вычисление вариации функционала
- •4.4. Задача Эйлера
- •4.5. Применение уравнения Эйлера для поиска оптимального закона управления
- •4.6. Уравнение Эйлера – Пуассона и его применение
- •4.8. Неопределенные множители Лагранжа в вариационном исчислении
- •Глава 5. Вариационные задачи с подвижными границами
- •5.1.Основные виды задач с подвижными границами
- •5.2. Скольжение граничных точек по заданным траекториям
- •Глава 6. Принцип максимума
- •Постановка задачи поиска оптимального управления
- •Пояснения к получению принципа максимума
- •6.3. Динамическое программирование
- •Примеры применения динамического программирования
- •Глава 7. Аналитическое конструирование регуляторов (акор)
- •7.1. Постановка задачи
- •7.2. Решение задачи акор
- •7.3. Уравнение Риккати
- •7.4. Общие свойства решения уравнения Риккати
- •7.5. Способы решения уравнения Риккати
- •7.7. Метод диагонализации
- •Глава 8. Случайные процессы в системах управления
- •8.1. Описание случайных процессов
- •8.2. Стохастические дифференциальные уравнения
- •8.3. Прогнозирование (оценивание) значений случайных величин с использованием закона распределения
- •8.4. Линейное оценивание значений случайных величин
- •Глава 9. Фильтр калмана
- •9.1. Постановка задачи
- •9.2. Основные принципы получения формул дискретного фильтра Калмана
- •9.3. Получение формул фильтра Калмана
6.3. Динамическое программирование
1. Принцип оптимальности.
Каждый конечный участок оптимальной траектории есть опти-мальная траектория. Это следствие аддитивности критерия опти-
мальности.
2. Уравнение Беллмана.
Пусть S (x , t) есть наименьшее значение функционала
J = T∫G (x1 ,..., xn ,u ,τ)dτ , если в момент времени t динамический
t
объект находится в состоянии x . Для функции S (x , t) можно полу-
чить дифференциальное уравнение, называемое уравнением Белл-мана. Это уравнение в частных производных, оно имеет вид
− ∂∂St = min{G (x , u , t )+ < grad S , f >} , где наименьшее значение
рассматривается по аргументу u , градиент вычисляется по аргу-ментам x1 ,..., xn .
58
3. Получение уравнения Беллмана.
Запишем для малого значения t очевидное равенство:
S ( x , t ) = min[G ( x , u , t ) t + T∫ G ( x , u , t ) dτ] + 0( t) ,
t′
где 0( t) – бесконечно малая величина достаточно высокого по-
рядка, минимальное значение правой части рассматривается по ар-гументу u .
За интервал |
времени |
t система перейдет в |
состояние |
x′ = x +Δx , где |
x = f ( x , u , t ) |
t . Начиная с состояния |
x′будем оп- |
тимально управлять системой, тогда будет выполняться соотноше-ние
|
S ( x , t ) = min[ G ( x , u , t ) |
′ ′ |
t) . |
|
|
||
|
t + S ( x , t )] + 0( |
|
|
||||
Разложим |
функцию |
|
|
′ ′ |
в |
ряд |
|
|
|
S ( x , t ) |
|
||||
′ ′ |
|
t + |
∂S |
t и подставим это в послед- |
|
||
S (x ,t ) ≈ S (x , t )+ < grad S , f > |
∂t |
|
нее соотношение. После чего разделим обе части полученного ра-венства на t и перейдем к пределу при t →0 . В итоге получим уравнение Беллмана
∂∂St = min[G (x , u , t )+< grad S , f >] .
Примеры применения динамического программирования
Пример 6.4.1. Пусть имеется динамическая система первого по-рядка, описываемая дифференциальным уравнением
10 dxdt + x = u , (6.4.1)
и задан критерий оптимальности
-
J = T∫x 2 (t )dt .
(6.4.2)
0
Требуется оптимально перевести систему за время T = 3 с. из начального состояния x0 =1 в конечное состояние xT =10 .
59
Будем решать задачу приближенно с применением дискретного варианта метода динамического программирования. Для этого вве-дем дискретный шаг времени t =1 и запишем разностное уравне-
ние xk +1 = 101 (9xk +uk ) , соответствующее уравнению (6.4.1), а так-
2
же заменим выражение (6.4.2) интегральной суммой Jd = ∑xk2 .
k =0
Решение ведется шагами и начинается с предпоследнего значе-ния x2 переменной x . На первом шаге записываем разностное
уравнение x3 = 101 (9x2 + u2 ) и выражение для значения критерия
оптимальности на первом шаге Jd1 = x22 . Считаем неизвестное зна-чение x2 параметром и для каждого значения x2 находим опти-
мальное u2 из условия xT = 101 (9x2 + u 2 ) =10 . Поскольку последнее
уравнение является линейным, то существует его единственное решение:
u 2 = 10 x3 − 9 x 2 = Φ2 ( x2 ) . |
|
|
|
|
|
(6.4.3) |
|
|||
Минимальное значение J M критерия J |
d1 |
равно J M = x 2 |
= ψ( x ) . |
|
||||||
1 |
|
|
|
1 |
2 |
2 |
|
|||
После того, как получены функции u |
2 |
= Φ |
2 |
( x ) |
и J M = ψ |
2 |
( x ) пер- |
|
||
|
|
|
2 |
1 |
|
2 |
|
вый шаг считаем законченным.
На втором шаге задача состоит в том, чтобы получить зависи-
мости J M = ψ ( x ) |
и u |
= Φ |
( x ) |
от переменной состояния |
x |
. Для |
|
|||||||
2 |
1 |
1 |
1 |
1 |
|
1 |
|
|
|
|
|
1 |
|
|
этого записываем разностное уравнение |
|
|
|
|
||||||||||
|
|
|
|
x |
= |
|
|
1 |
(9x +u ) |
|
(6.4.4) |
|
||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
2 |
|
10 |
1 |
1 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
и значение критерия Jd2 = x12 + x22 , соответствующее двум послед-ним шагам, и считаем переменную x1 параметром.
Для каждого значения x1 будем искать оптимальное u1 , предпо-лагая, что, начиная со следующего шага, движение является опти-
мальным, т.е. Jd2 = x12 + x22 = x12 + J1M .
Воспользуемся разностным уравнением (6.4.4) и получим
60
|
|
|
|
|
|
J |
|
= x 2 |
+ [ |
1 |
(9 x + u ) 2 ] . |
|
|
|
|
(6.4.5) |
|
||||||||||||||||||||||
|
|
|
|
|
|
d2 |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
1 |
10 |
|
1 |
1 |
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
Минимальное |
значение J2M критерия |
получается |
|
при |
|
условии |
|
|||||||||||||||||||||||||||||||
u |
= Φ |
( x ) = −9x |
и равно J M = x 2 |
= ψ ( x ) . Второй шаг закончен. |
|
|
|||||||||||||||||||||||||||||||||
1 |
1 |
|
|
1 |
1 |
|
|
|
2 |
|
1 |
|
1 |
1 |
|
|
|
|
|
|
|
||||||||||||||||||
|
На третьем шаге поиску подлежат зависимости |
|
u 0 = Φ0 ( x0 ) |
и |
|
||||||||||||||||||||||||||||||||||
J M = ψ |
|
( x ) . Записываем разностное уравнение x = |
|
1 |
(9x |
+u ) |
и, |
|
|||||||||||||||||||||||||||||||
0 |
|
|
|
||||||||||||||||||||||||||||||||||||
3 |
|
|
|
0 |
|
|
|
|
|
|
|
|
1 |
10 |
|
0 |
0 |
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
предполагая оптимальность движения со следующего шага, выра-жение для критерия оптимальности
J |
|
= J |
|
= x 2 |
+ x 2 |
+ x 2 |
= x 2 |
+ J M = x 2 |
+ x 2 |
= x 2 |
+ [ |
1 |
(9x + u )2 |
] . |
|
||
d |
d3 |
|
|
||||||||||||||
|
|
0 |
1 |
2 |
0 |
2 |
0 |
1 |
0 |
10 |
0 |
0 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
После |
|
|
этого |
легко |
|
получаются |
|
выражения |
|
u0 =Φ 0 ( x0 ) = −9 x0 , J 3M = ψ 0 (x0 ) = x02 .
Вспоминаем, что согласно постановке задачи x0 =1 . Поэтому
u 0 = − 9, x1 = 0, u1 = 0, x 2 = 0, u2 =100 .
Важно отметить следующие особенности дискретного метода динамического программирования:
метод применим, если ограничения заданы разностны-ми уравнениями;
итоги шагов зависят только от значений переменных со-стояния;
предположение об оптимальности движения со следую-щего шага приводит к возможности исключения после-дующих значений переменных состояния, относящихся
к последующим шагам (это важно при малом шаге дис-кретизации, т.е. при большом числе шагов).
Пример 6.4.2. В условиях примера 6.4.1 решить задачу опти-мального управления при ограничениях на управляющее воздейст-
вие u ≤12 .
Разностные уравнения имеют прежний вид, но имеется ограни-чение 10 xk +1 − 9 xk ≤12 . Это накладывает ограничения на возмож-ные значения переменных состояния на каждом из шагов. В данной
61
задаче границы диапазонов значений переменных состояния можно найти на основе соотношений
-
xmin =
axk +1 −c
и
xmax =
axk +1 + c
, если
ax
k +1
−bx
k
≤ c .
k
b
k
b
Первый шаг осуществляется так же, как и в предыдущем приме-ре, только теперь 889 ≤ x2 ≤ 1129 .
Второй шаг уже выполняется сложнее. Казалось бы, что на ос-
нове разностного уравнения x2 = 101 (u1 +9x1 ) следовало бы поло-
жить u1 = −12 и получить наименьшее значение величины x2 . Од-
нако |
на значение переменной |
x1 |
имеется ограничение |
|
|||||||
|
772 |
≤ x ≤ |
1228 |
. Рассмотрим точку |
x = |
772 |
и возьмем u |
|
= −12 , |
|
|
|
|
|
|
2 |
|
||||||
81 |
|
1 |
81 |
|
2 |
81 |
|
|
|
||
|
|
|
|
|
|
|
|
тогда оказывается, что x2 = 66490 и это значение выходит за пределы
допустимого интервала. Будем искать управляющее воздействие из условия x2 = 889 . Это приводит к зависимости u1 = 8809 −9x1 . Но не
всегда это правило может быть использовано. Например, если x2 = 122881 , то u2 = −39 . Поэтому после проведения несложных рас-
суждений получим, что
|
|
|
880 |
− 9 x1 |
,( x1 |
≤ xg ), |
|
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
u1 |
|
|
|
|
|||||||||||||||||||
|
9 |
|
|
|||||||||||||||||||||
|
= |
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
12,( x ≥ xg ), |
|
|
|
|||||||||||||||||||
где |
xg |
= |
988 |
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
x 2 |
+ ( |
88 |
)2 |
, (x ≤ x |
|
), |
|
|
|
||||||||||
|
|
|
|
|
|
|
g |
|
|
|
||||||||||||||
|
|
|
|
M |
|
1 |
9 |
|
|
1 |
|
|
|
|
||||||||||
|
|
|
|
J1 |
= |
|
|
1 |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
x2 |
+ [ |
(−12 + 9 x )2 ], (x ≥ x |
g |
). |
|
||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
1 |
10 |
|
|
1 |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62
Третий шаг следует проводить на основе тех же рассуждений, которые были использованы на втором шаге.
Контрольные вопросы
С какой целью используется принцип максимума?
С какой целью используется метод динамического про-граммирования?
Как формулируется принцип оптимальности?
Как применяется дискретный вариант динамического про-граммирования?
Каковы трудности применения дискретного варианта мето-да динамического программирования для систем высокого порядка?
Используется ли равенство нулю вариации функционала при применении принципа максимума?