Описание градиентного метода в функциональном пространстве.
Градиентный метод является одним из эффективнейших численных методов решения задачи оптимального управления. Он состоит в последовательном “улучшении” некоторого произвольно заданного управления, а именно: на каждом этапе улучшения предыдущее управление исправляется в напрвлении наибыстрейшего приближения к искомому оптимальному управлению.
Перейдем к конструированию алгоритма, реализующего данный метод.
Пусть известно некоторое допустимое управление “нулевого приближения” u=u0(t), которому соответствует в силу (4.1), (4.2) фазовая траектория X0 (t) и некоторое численное значение функционала I0=I[u0(t)], вычисленное по формуле (4.3).
Построим новое управление
u(t)=u0(t) + du(t), "tÎ[t0,tk], (4.4)
где du(t) такова, что норма мала.
Тогда вариация фазовой траектории, вызванная таким равномерно малым изменением управления, будет подчиняться так называемым уравнениям в вариациях
, tÎ[t0,tk]; (4.5)
dX(t0)=0. (4.6)
Интегрирование последних от t= t0 до t= tk с введением вспомогательной вектор-функции l(t)=( l1(t), l2(t),…, ln(t)) приводит к следующему результату
(4.7)
Одноко, непосредственное варьирование функционала дает следующее соотношение
(4.8)
Добавим к правой части соотношения (4.8) равное нулю выражение (4.7)
Потребуем, чтобы вектор-функция l(t) удовлетворяла следующим условиям:
"tÎ[t0,tk]; (4.9)
l( tk)=0. (4.10)
Тогда задача построения согласно формулам (4.4) нового “улучшенного” управления сводится к задаче минимизации функционала
(4.11)
где H 0=H(t, X0, u0, l)= - f0 (t, X0, u0) + < l (t), f0 (t, X0, u0)>. (4.12)
Очевидно, что поправки du = (du1(t), du2(t),…, dur(t)), реализующие минимум dI в соответствии с (4.11), должны удовлетворять следующим необходимым условиям:
"tÎ[t0,tk]; (4.13)
Таким образом, “улучшенное” управление u(t)=( u1(t), u2(t), …, ur(t)), "tÎ[t0, tk ], мы найдем по формулам (4.4), задавая достаточно малые абсолютные значения поправок dui, i=1,...,r и определяя их знаки по формулам (4.13).
Следует однако отметить, что предложенное правило вычисления поправок dui, i=1,...,r, "tÎ[t0, tk ] не гарантирует обязательного убывания функционала (4.3) на каждом этапе расчета. Это объясняется невозможностью заранее предполагать, что принятым значениям поправок будет соответствовать значение dI, близкое к DI. Поэтому на каждом этапе расчета следует находить DI=I - I0 и в случае, если DI³0, расчет следует повторить при уменьшенных |dui|, i=1,...,r.
Алгоритм метода.
Итак, нами построен алгоритм расчета оптимального управления и соответствующей ему оптимальной траектории в виде следующей последовательности вычислительных операций.
Шаг 1. Задать управление “нулевого” приближения
u0(t)=( u10 (t), u20 (t), …, ur0 (t)), "tÎ[t0, tk ].
Шаг 2. Проинтегрировать от t= t0 до t= tk систему (4.1)
= fi (t, X(t), u0(t)), i=1,...,n ,
с начальными условиями (4.2) методом Рунге-Кутта с постоянным шагом h. Получить тем самым X0(t)=( x10 (t), x20 (t), …, xn0 (t)), "tÎ[t0, tk ] и значения фазовых координат xi0 (tk) , i=1,...,n в конечный момент времени t=tk.
Шаг 3. Вычислить значение функционала (4.3) на управлении “нулевого” приближения
,
Например, по формуле Симпсона
,
где обязательно должно быть h= .
Вычисление функционала по приведенной формуле можно заменить интегрированием совместно с системой (4.1) уравнения
(t)=f0 (t, X0(t), u0(t)), xn+1 (t0)=0.
Тогда значение функционала найдется так
I[u0(t)] = x0n+1 (tk).
Шаг 4. Если требуется вычислить функции влияния , i=1,...,r, то следующим выполняется шаг 5, иначе идти к шагу 9.
Шаг 5. Проинтегрировать в направлении от t= tk до t= t0 каноническую систему (4.1), (4.9)
с “начальными” условиями xi(tk)= xik, i=1,...,n; li(tk)= 0, i=1,...,n; где xik, i=1,...,n– полученные на шаге 2 значения фазовых координат в момент времени tk .
Шаг 6. Вычислить функции влияния
, i=1,...,r, "tÎ[t0, tk ].
Шаг 7. Вычислить поправки управляющих воздействий
dui(t)=q× , i=1,...,r, "tÎ[t0, tk ],
где q – заранее заданная достаточно малая положительная величина- шаговый коэффициент.
Шаг 8. Вычислить новое “улучшенное” управление
ui(t)=ui0(t) + dui(t), i=1,...,r, "tÎ[t0,tk]
и приступить к выбору надлежащего значения шагового коэффициента q путем повторения вычислений, начиная с шага 2 (но уже без вычислений функций влияния).
Шаг 9. Сравнить новое значение функционала I=I[u0+q ] с его предыдущим значением I0=I[u0(t)].
Если выполняется условие I0I, то следует уменьшать шаг
q=b×q, bÎ(0,1)
с последующим вычислением нового управления u(t)=u0(t) + q и соответствующего ему значения функционала I до тех пор, пока не будет достигнуто требуемое условие I0>I.
Если же уже при начальном значении шагового коэффициента получится I0<I, то можно попытаться увеличить шаг
q=a×q, a>1
двигаясь в том же направлении, пока наблюдается уменьшение значения функционала.
Шаг 10. Проверить условие
I[u0+du]-I[u0] ½£e,
где e- наперед заданное достаточно малое положительное число, определяющее точность результата.
Если условие выполняется, то оптимальное управление найдено и решение задачи следует прекратить; иначе – выполнить следующую итерацию, повторив все вычисления, начиная с шага 2.