Оптимальное управление, уравнение Беллмана
дата публикации: 2016-11-13

Оптимальное управление системой, описываемой дифференциальными уравнениями, давно и успешно решенная задача, которая, однако, каждый раз требует практической проработки ввиду того, что каждый новый объект обладает той или иной степенью уникальности. На самом деле не принципиально, что за объект перед нами: электрический привод, автомобиль или даже человек. Все можно с той или иной степенью смоделировать, хоть падение свободного груза, хоть поведение человека. Решаемая классическим вариационным исчислением задача Лагранжа является общим случаем задачи, подход к решению которой мы опишем в этой статье.

Пусть имеется математическая модель системы, которая записывается в следующем виде (в форме Коши):

\begin{cases} & \dot{x_1}(t) = f_1 \left( t, \bf X(t), \bf U(t) \right), \\ & \dot{x_2}(t) = f_2 \left( t, \bf X(t), \bf U(t) \right), \\ & ..., \\ & \dot{x_n}(t) = f_n \left( t, \bf X(t), \bf U(t) \right). \end{cases}

где \bf X(t)=[x_1(t), x_2(t)..x_n(t)] - фазовый вектор, \bf U(t)=[u_1(t), u_2(t)..u_m(t)] - вектор управляющих сигналов, \bf X(t_0) = \bf X_0 - начальные условия. Для линейной системы (частного случая) справедливо соотношение:

\bf F \left( t, \bf X(t), \bf U(t) \right) = \bf A \cdot \bf X(t) + \bf B \cdot \bf U(t),

где \bf A - матрица состояния, \bf B - матрица управления, \bf F \left( t, \bf X(t), \bf U(t) \right) = \left[ f_1 \left( t, \bf X(t), \bf U(t) \right), f_2 \left( t, \bf X(t), \bf U(t) \right),.., f_n \left( t, \bf X(t), \bf U(t) \right) \right] - вектор правых частей.

Управление описанной системой осуществляется через вектор \bf U(t), а значит должно помимо уравнений системы быть еще m уравнений, которые бы позволили однозначно определить это управляющее воздействие. Функционал для данной задачи на периоде [t_0, T] запишется в виде:

J \left( t,\bf X(t) \right) = min \left\{ \int_{t}^{T} G \left( \tau,\bf X(\tau),\bf \dot X(\tau),\bf U(\tau) \right) d\tau \right\}.

Теперь необходимо найти такое \bf U_0(t), чтобы функционал принимал бы минимальное значение на заданном интервале. Рассмотрим поведение функционала на небольшом промежутке времени \Delta t . Очевидно следующее соотношение:

J \left( t + \Delta t,\bf X(t + \Delta t) \right) = min \left\{ \int_{t + \Delta t}^{T} G \left( \tau,\bf X(\tau),\bf \dot X(\tau),\bf U(\tau) \right) d\tau \right\}.

При достаточно малых значениях \Delta t можно разложить выражение J \left( t + \Delta t,\bf X(t + \Delta t) \right) в ряд Тейлора:

J \left( t + \Delta t,\bf X(t + \Delta t) \right) \approx J \left( t,\bf X(t) \right) + min \left\{ \frac{\partial J \left( t,\bf X(t) \right)}{\partial \bf X(t)} \frac{d \bf X(t)}{dt} \Delta t + \frac{d J \left( t,\bf X(t) \right)}{dt} \Delta t \right\}.

Более чем очевидны следующие умозаключения, второе - справедливо для малых \Delta t.

J \left( t,\bf X(t) \right) - J \left( t + \Delta t,\bf X(t + \Delta t) \right) = min \left\{ \int_{t}^{t + \Delta t} G \left( \tau,\bf X(\tau),\bf \dot X(\tau),\bf U(\tau) \right) d\tau \right\}, \int_{t}^{t + \Delta t} G \left( \tau,\bf X(\tau),\bf \dot X(\tau),\bf U(\tau) \right) d\tau \approx G \left( t,\bf X(t),\bf \dot X(t),\bf U(t) \right) \Delta t.

Примем к сведению, что \frac{d \bf X(t)}{dt} = \bf F \left( t, \bf X(t), \bf U(t) \right). Теперь воспользуемся выведенными выражениями и проведем ряд манипуляций:

- \frac{d J \left( t,\bf X(t) \right)}{dt} \Delta t = - J \left( t + \Delta t,\bf X(t + \Delta t) \right) + J \left( t,\bf X(t) \right) + min \left\{ \frac{\partial J \left( t,\bf X(t) \right)}{\partial \bf X(t)} \frac{d \bf X(t)}{dt} \Delta t \right\}, - \frac{d J \left( t,\bf X(t) \right)}{dt} \Delta t = min \left\{ G \left( t,\bf X(t),\bf \dot X(t),\bf U(t) \right) \Delta t + \frac{\partial J \left( t,\bf X(t) \right)}{\partial \bf X(t)} \bf F \left( t, \bf X(t), \bf U(t) \right) \Delta t \right\}, - \frac{d J \left( t,\bf X(t) \right)}{dt} = min \left\{ G \left( t,\bf X(t),\bf \dot X(t),\bf U(t) \right) + \frac{\partial J \left( t,\bf X(t) \right)}{\partial \bf X(t)} \bf F \left( t, \bf X(t), \bf U(t) \right) \right\}.

После всех манипуляций, крайне сложно (а чаще и невозможно) получить аналитическое решение уравнения в общем виде, поэтому на практике уравнение Беллмана в основном применяется для поиска управления линейными (линеаризованными) системами с квадратичным функционалом.