Описание градиентного метода в функциональном пространстве.

Градиентный метод является одним из эффективнейших численных методов решения задачи оптимального управления. Он состоит в последовательном “улучшении” некоторого произвольно заданного управления, а именно: на каждом этапе улучшения предыдущее управление исправляется в напрвлении наибыстрейшего приближения к искомому оптимальному управлению.

Перейдем к конструированию алгоритма, реализующего данный метод.

Пусть известно некоторое допустимое управление “нулевого приближения” 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)].

Если выполняется условие I0I, то следует уменьшать шаг

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.