ЖУРНАЛ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И МАТЕМАТИЧЕСКОЙ ФИЗИКИ, 2015, том 55, № 5, с. 742-757
УДК 519.626
ЧИСЛЕННЫЕ МЕТОДЫ ОПТИМИЗАЦИИ УПРАВЛЕНИЯ В ЛИНЕЙНЫХ СИСТЕМАХ
© 2015 г. А. И. Тятюшкин
(664033 Иркутск, ул. Лермонтова, 134, Институт динамики систем и теории управления СО РАН)
e-mail: tjat@icc.ru Поступила в редакцию 18.02.2014 г.
Переработанный вариант 20.11.2014 г.
Рассматриваются численные методы решения задач оптимального управления в линейных системах: задачи терминального управления с ограничениями на управление и на фазовые координаты, задача оптимального быстродействия. Для решения этих задач предлагается набор алгоритмов, обладающих различными требованиями к памяти и ориентированных на поиск оптимального управления в линейных системах с некоторыми особенностями, например, когда множество достижимости системы имеет плоские грани. Библ. 15. Фиг. 2. Табл. 2.
Ключевые слова: методы выпуклых оболочек, оптимальное управление, задача быстродействия, фазовые ограничения, адаптивные алгоритмы, линейное программирование.
DOI: 10.7868/S0044466915050166
ВВЕДЕНИЕ
Задачи терминального управления и задачи быстродействия составляют важный класс прикладных задач оптимального управления. К ним относятся, например, следующие задачи из динамики полета: приведение движущихся объектов в заданное положение, ориентация и стабилизация летательных аппаратов, подъем ракеты на максимальную высоту и другие задачи управления движением. Наряду с линейной моделью объекта управления на стадии проектирования или на малом временном отрезке нередко используется линейная модель. При этом многие задачи терминального управления формируются в виде задачи минимизации квадратичной функции, которая служит мерой уклонения конечного состояния от некоторого заданного состояния. Кроме того, последовательность таких задач возникает и при решении задачи быстродействия прямыми методами. Поэтому построению эффективных вычислительных алгоритмов для решения этой задачи уделяется большое внимание.
Для решения задачи минимизации выпуклой функции конечного состояния конструируются прямые и двойственные алгоритмы градиентного типа. При этом поиск ведется по точкам множества достижимости, которые генерируются с помощью решений сопряженной системы, полученных для начальных условий — столбцов единичной матрицы до процесса оптимизации. Такой способ существенно снижает трудоемкость итераций градиентного метода.
Для решения важной в инженерной практике задачи быстродействия описывается алгоритмическое обеспечение, основанное на математических методах (см. [1]—[5]) и позволяющее реализовать многометодную технологию (см. [6], [7]) поиска оптимального управления.
Во многих прикладных задачах оптимального управления в линейных системах имеются ограничения не только на управление, но и на фазовые координаты системы. Наиболее распространенный подход, применяемый в настоящее время к численному решению таких задач, состоит в дискретизации системы с формированием задачи линейного программирования (ЛП), для которой затем используются специальные алгоритмы ЛП. Эффективность такого подхода в силу больших размеров получаемой задачи ЛП в значительной мере зависит от степени учета структуры матрицы условий алгоритмами ЛП, а также от способа компактного хранения данных задачи и формы представления базисной матрицы.
1. РЕШЕНИЕ ЗАДАЧ ТЕРМИНАЛЬНОГО УПРАВЛЕНИЯ
Будем исследовать задачи оптимального управления в линейных системах вида
х = Л(>)х + В( >) и(>) +/(>), х(>0) = х0, (1)
где х(^ е Rn, u(t) е Rr, A(t), B(t), f (t) — п х п-, п х г-, п х 1-матрицы с кусочно-непрерывными элементами.
В теории линейных управляемых систем значительную роль играет переходная матрица Ф(^ т) (см. [1]), называемая также матрицей Грина. Она удовлетворяет следующему матричному дифференциальному уравнению:
аф(>,т) = -Ф(>,т)Л(т), Ф(>, >) = Е. (2)
ат
С помощью этой матрицы решение системы (1) записывается по формуле Коши
>
х(>) = Ф(>, >0)х0 + |ф(>,т)[В(т)и(т) + /(т)]ат.
>0
Введя обозначение
>1
с = Ф(>1, >0)х° + ]Ф(>1, т)/(т)ат,
>0
'0
вектор состояния в момент t = t1 представим в виде
>1
+
>0
х(>1) = с + |ф(>1, т)В(т)и(т)ат.
Заметим, что вектор с является состоянием системы (1) в момент t = t1, в которое она переводится с помощью нулевого управления = 0).
Множество конечных состояний x(t1), соответствующее заданному классу допустимых управлений, называется множеством достижимости системы (1).
Пусть задан некоторый вектор xТ е Rn. Поставим вопрос о существовании управления, переводящего систему (1) в заданное состояние xТ. Ответ на данный вопрос дает следующий критерий управляемости Калмана (см. [2]): для системы (1) тогда и только тогда существует управление которое переводит систему из состояния x0 при t = ^ в состояние xТпри t1 > когда вектор xТ — с принадлежит области значений линейного преобразования
Ж = |ф( >1,т) В (т) В' (т)Ф' (>1,т) ат.
Для вычисления матрицы W по квадратурным формулам необходимо интегрировать в обратном времени уравнение (2). Вместо расчета по квадратурным формулам можно совместно с (2) интегрировать дополнительное матричное уравнение
а ¥(> 1, т) = Ф(>1, т)В(т)В'(т)Ф'(>1, т), ¥(>1, >1) = 0. ат
Тогда при t = ^ будем иметь W = —V(t1,
Менее трудоемкий способ вычисления матрицы W приведен в [1] и заключается в решении матричного уравнения
а ¥(т) = Л(т) ¥(т) + ¥(т)Л(т)' + В(т)В(т)', ¥(>0) = 0, (3)
ат
интегрирование которого от ^ до ^ дает матрицу W = V(t1).
Важнейшим свойством линейных систем, которое позволяет добиться существенного ускорения численных методов оптимизации, является выпуклость множества достижимости. С использованием этого свойства многие алгоритмы дают возможность найти новое приближение для управления с помощью решения простой задачи выпуклого программирования. В отличие от нелинейных систем алгоритмы решения данной задачи не требуют дополнительных интегрирований системы (1).
Другое преимущество линейных систем состоит в том, что применение формулы Коши позволяет исключить переменные состояния и установить явную зависимость функционала от управления. В некоторых случаях это дает возможность получить решение задачи оптимального управления в явной форме. Например, управление с минимальной энергией (см. [3]) представляется с помощью решения уравнения (2) и вектора множителей Лагранжа, который является решением линейной системы алгебраических уравнений.
Рассмотрим алгоритмы, на основе которых строится многометодная технология, применяемая программными системами (см. [6]) для численного решения задач терминального управления.
1.1. Минимизация выпуклой функции конечного состояния
Пусть на правых концах траекторий системы (1) определена непрерывно дифференцируемая выпуклая скалярная функция ф(х(^)) и поставлена задача
ф(х(ti)) —- min. (4)
При отсутствии ограничений на управление и фазовые координаты ее можно решить с помощью простого алгоритма: сначала найдем безусловный (без учета связей (1)) минимум функции ф(х), т.е.
точку хТ = arg min ф(х), а затем вычислим управление, с минимальной энергией переводящее сих е Rn
стему (1) из х0 в хТ, или установим отсутствие такого управления в случае неуправляемости системы (см. [5]).
Более распространенный подход к решению задачи (1), (4) состоит в применении градиентных методов
uk +t) = u (t) + akB'(t)yk(t), k = 0, 1, ..., где y(t) — решение задачи Коши
у (t) = -A'( tM t), у( ti) = -Уф( x (11)), (5)
ak находится, например, из условия наискорейшего спуска.
Опишем вычислительную технологию решения задачи (1), (4) с ограничениями на управление
ау(1) < Uj(t) < ßj(t), j = lTr, t e [to, ti], (6)
методом условного градиента. В отличие от традиционной схемы метода, в которой точки множества достижимости получаются интегрированием системы (1), построим алгоритм, в котором эти точки генерируются с помощью базисных решений сопряженной системы.
Решением линейной вспомогательной задачи Уф(хк(?1))'х —»- min, определяемой на каждом шаге метода, будет управление
k Га,-(t), b,(t)>k(t)< 0,
Uk(t) = \ jW jV 7 V V 7 _ (7)
lßj(t), bj(t)>k(t)> 0, j = 1, r,
где yk(t) — решение задачи Коши (5) при y(t1) = — Уф(хк(?1)). Итерация метода условного градиента описывается формулами
uk +1 (t) = u (t) + аk[Uk(t) - uk(t)],
(8)
ak = arg max ф(х (t1) + а[Х (t1) -x (t1)]).
0 <а< 1
Для получения точек xk(t1) и х необходимо интегрировать систему (1) при управлениях ик(^ и ик (0. Используя покоординатное представление точки x(t1):
>1
х(>1) = с1 + (>) 'В(>) и(>) й>, I = 1, п,
>0
можно исключить операцию интегрирования системы (1), заменив ее интегрированием более простой системы. Для этого необходимо предварительно найти решения задачи (5) при
уХ^) = е1, I = 1, п , с помощью этих решений посчитать и запомнить в узлах интегрирования строки я х я-матрицы M(t), равные уi(t)'B(t), I = 1, п . Проинтегрировав систему (1) при и(1) = 0, вычислить вектор с.
Пусть теперь задано допустимое управление ик(1). Тогда итерация (8) состоит из следующих операций:
1) решается задача Коши хк = М(()ик(1), х^) = с, в результате чего находится вектор х^);
2) решается задача Коши (5) и по формулам (7) вычисляется управление ик (0;
3) решается задача Коши хк = М(1) ик (0, хк = с, после чего будем иметь хк (^);
4) решается задача одномерного поиска
ф(хк(>1) + а[х(>1) -х (>1)]) —»- шт ,
0 <а< 1
по формуле (8) строится новое приближение.
Начиная со второй итерации операцию 1) можно не выполнять, так как значение X + будет найдено при выполнении операции 4). Однако в целях сохранения устойчивости процесса вектор X +1(t1) через определенное число итераций следует получить с помощью операции 1). Итерационный процесс (8) прекращается при выполнении неравенства
Ф(/(>1)) - ф(хк(>1) + ак[хк(>1) -х(>1)]) < 6 или необходимого условия оптимальности
>1
-|В'(>)ук(>)[ик(>) - ик(>)]й> < б1,
>0
где — решение задачи Коши (5). Значение левой части второго неравенства удобно находить при выполнении операции 2). Значения 6 и б1 определяют точность решения задачи (1), (5), (6) и должны задаваться с учетом погрешностей счета величин, ст
Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.