Деменков Н.П. Вычислительные аспекты решения задач оптимального управления (2007) (1253737), страница 6
Текст из файла (страница 6)
Для этогодостаточно решить одну задачу Коши для сопряженной системы иодну задачу Коши для скалярного уравнения (2.21). Таким образом, мыполучили возможность любую краевую задачу с условиями типа (2.18)свести к задаче Коши, перенеся все граничные условия в одну точку.Процедура переноса линейного краевого условия сводится кследующему.1. Интегрируем слева направо дифференциальное уравнениеl = − Aт l с начальными условиями l (t ) = l и вычисляем n зна00чений lj(tk) или l (tk ).2. Используя известное значение l (t ), интегрируем скалярноеуравнение α = ( l , Bu ) с начальным условием α(t0 ) = α 0 и определяем число α(tk).3.
По результатам пп. 1, 2 формируем линейное краевое условие на правом конце α(tk) = ( l (tk), x (tk)).Пример. Заданы уравнения:x1 = t ;37x2 = x1 , t ∈ [1, 4]с начальными условиями x1(4) = 9,5; x2(1) = 1.Необходимо перенести x2(1) = 1 в x2(4).Р е ш е н и е. Запишем сопряженное уравнениеl = − Aт l ,⎡0 −1⎤⎡0 0⎤где A = ⎢; − Aт = ⎢⎥.⎥⎣0 0 ⎦⎣1 0 ⎦Решая систему уравнений⎪⎧l1 = −l2⇒ l1 (1) = 0, l2 (1) = 1,⎨ ⎪⎩ l2 = 0получаем следующие значения:l2 = const; l2 (1) = 1;l = −1; l = −t + c ;111t = 1; l1 (1) = 0; 0 = −t + c1 ; c1 = 1.Интегрируем сопряженную систему и находимl1(t) = 1 – t;l2(t) = 1.При t = 4; l1(4) = –3; l2(4) = 1.Определяемα = ( l , Bu ) = l1u1 + l2u2 = (1 − t )t + 0 = t − t 2 .Интегрируя это уравнение, получаемα(t ) =t 2 t3− + c2 ;2 3так как α(1) = 1 при t = 1, то с2 = 5/6 и α(4) = –12,5.38Подставим полученные числа в уравнениеα(4) = l1(4)x1(4) + l2(4)x2(4), –12,5 = –3·9,5 + 1·x2(4),откуда x2(4) = 16.Теперь решим исходную задачу. Проинтегрируем исходнуюсистему уравненийt2+ c3 ;2t3x2 = + c3t + c46x1 =с начальными условиями x1(4) = 9,5, x2(4) = 16 при t = 4.Получимx1 =t2 3+ ;2 2x2 =t 3 3t 2+ + .6 2 3Для переноса однородных краевых условий поставим следующую задачу.Для системыx = Ax + y(2.23)переслать k начальных условийxj(0) = αj ( j = 1, 2, …, k);(2.24)xj(tk) = βj ( j = k + 1, …, n)на правый конец траектории.Сформируем k вектор-функций li (t ), удовлетворяющих уравнениюli = − Aт li .(2.25)В качестве начальных условий будем использовать матрицыстолбцы39⎡1 ⎤⎢0 ⎥l1 (0) = ⎢ ⎥ ;⎢0 ⎥⎢ ⎥⎢⎣0 ⎥⎦⎡0 ⎤⎢0 ⎥l3 (0) = ⎢ ⎥ , ….⎢1 ⎥⎢ ⎥⎢⎣0 ⎥⎦⎡0 ⎤⎢1 ⎥l2 (0) = ⎢ ⎥ ;⎢0 ⎥⎢ ⎥⎢⎣0 ⎥⎦(2.26)Сформулируем k скалярных уравнений типаα i = ( li , y ), i = 1, 2, …, k(2.27)с нулевыми условиямиαi(0) = αi.(2.28)Процедуру переноса сводим к следующим действиям:1) k раз интегрируем систему дифференциальных уравнений(2.25) с начальными условиями (2.26) и определяем n значений lij(tk);2) k раз интегрируем скалярное уравнение (2.27) с начальнымиусловиями (2.28) и определяем k значений αi(tk);3) по результатам пп.
1) и 2) формируем систему алгебраических уравнений, которую разрешаем относительно xj(tk):kαi(tk) = ( x , li ) = ∑ x j (tk) lij(tk) +j =1n∑j = k +1β j lij, i = 1, 2, …, k.Решаем k уравнений и получаем xj(tk).2.2.2. Метод прогонки, не чувствительный к «быстрорастущим»решениям сопряженной системыМашинная реализация процедуры прогонки может встретитьзначительные трудности, связанные с наличием «быстрорастущих» решений сопряженной системы. В этом можно убедиться наочень простом примере.Пусть исходное уравнение является скалярным:x = − ax + u ,где a(t) > 0.40Тогда сопряженное уравнение l = al будет иметь экспоненциально растущее решение, и фактически вычислить на ЭВМ функцию l(t) окажется невозможным (так как при больших α и t разрядная сетка ЭВМ будет переполнена).
В этом случае мы говорим, чтопроцедура переноса граничных условий является неустойчивой.Возникает вопрос, нельзя ли так построить вектор-функциюl (t ), чтобы ее модуль был постоянной величиной, равной l (t0 ) ?Умножим равенство ( l , x ) = α на некоторую функцию m(t):m(t )( l , x ) = m(t )α.Обозначимg (t ) = m(t ) l (t ),(2.29)где l (t ) по-прежнему удовлетворяет сопряженному уравнениюl (t ) = − Aт (t ) l (t ).Составим уравнение, которому удовлетворяет вектор-функция g(t):m = ml + lm − Aт lm = g − Aт g .g = mlmВыберем m(t) так, чтобы ( g , g ) = const, т.
е. чтобыd( g , g ) = ( g , g ) = 0.dtЭто дает уравнение для m(t) в виде(g,m⎡ m⎤g − Aт g ) = g т ⎢ g − Aт g ⎥ = 0,mm⎣⎦откуда41m ( g , Aт g ) ( Ag , g )==.m(g, g )(g, g )(2.30)Таким образом, вектор-функция g (t ) удовлетворяет следующему уравнению:( Ag , g )g =g − Aт g(g, g )(2.31)при g (t0 ) = m(t0 ) l (t0 ).Так как функция m(t) определяется уравнением (2.30) с точностью до константы, можно принять, что m(t0) = 1. Тогда векторфункция g (t ), определяемая уравнением (2.31), удовлетворяет начальному условию g (t0 ) = l0 и, следовательно,( g (t0 ), x (t0 )) = α 0 .(2.32)Нам осталось определить α(t).
Полагаем, как и прежде,α(t ) = ( g (t ), x (t )).(2.33)Находимα = ( g , x ) + ( g , x ),подставляя в это выражение соотношение (2.31) для g и x == Ax + Bu . Получаем⎡ ( Ag , g )⎤( Ag , g )α = ⎢g − Aт g ⎥ x + ( g , Ax + Bu ) =α + ( g , Bu ).(g, g )⎣ (g, g )⎦(2.34)Таким образом, перенос граничного условия( l0 , x (t0 )) = α 0из точки t0 в точку t совершен по формуле (2.33), где функция g (t )определена как решение задачи Коши для уравнения (2.31) с на42чальным условием g (t0 ) = l0 , а функция α(t) как решение задачиКоши для уравнения (2.34) с начальным условием α(t0 ) = α 0 .Теорема [8].
Если g (t ) – решение задачи Коши для системы(2.31) с начальным условием g (t0 ) = l0 , а функция α(t) удовлетворяет уравнению (2.34) и условию α(t0 ) = α 0 , то векторфункция x (t ) для любых значений времени t удовлетворяет условию ( g (t ), x (t )) = α(t ), причем g = l0 для всех t.Теорема А.А. Абрамова позволяет избежать трудностей, связанных с существованием «быстрорастущих» функций l (t ) и сделать процедуру переноса граничных условий устойчивой.
Однаков этом случае для переноса граничных условий нам приходитсярешать задачу Коши уже для нелинейных дифференциальныхуравнений, хотя процедура численного решения практически приэтом не усложняется.Методы прогонки применимы в том случае, когда:а) уравнения связи линейны;б) уравнения связи содержат дифференциальные нелинейности, т. е. допускают линеаризацию.Для нелинейных систем можно строить итерационные процедуры, но их еще надо найти.Процедура решения краевых задач методом переноса граничных условий состоит в следующем.Рассмотрим дифференциальное уравнениеx = Ax + Bu(2.35)и поставим для него следующую краевую задачу:xi (t0 ) = α 0i , i = 1, 2,..., s;xi (tk ) = βi , i = s + 1,..., n.(2.36)Перенесем s граничных условий из точки t = t0 в точку t = tk, используя метод А.А.
Абрамова. Для этого надо прежде всего ввестивекторы g i (i = 1, 2, …, s), удовлетворяющие одному и тому жедифференциальному уравнению (2.31) и следующим граничнымусловиям:43g i (t0 ) = l i (t0 ),причем0, i ≠ j;lij (t0 ) =1, i = j.Определив векторы g i (t ), мы определим скаляры αi, которыеудовлетворяют следующей задаче Коши:α i =( Ag i , g i )αi + ( g i , Bu ), αi (t0 ) = α 0i .(g i , g i )После этого можно составить недостающие условия для функций xi(tk) (i = 1, 2, …, s):s∑ g ij (tk ) x j (tk ) = αi (tk ),i = 1, 2,..., s.(2.37)j =1Используя (2.36), равенство (2.37) можно переписать в следующей форме:s∑ g i j (tk ) x j (tk ) = αi (tk ) −j =1n∑v = s +1g i v (tk ) pv , i = 1, 2,..., s.(2.38)Разрешив эту систему линейных алгебраических уравненийотносительно xj(tk) (j = 1,2,…,s), мы найдем полную систему условий Коши для вектор-функции x при t = tk.
Интегрируя теперьсистему (2.35) от t = tk до t = t0, мы получим искомое решение краевой задачи.Итак, решение краевой задачи сводится к решению ряда задачКоши. Для того чтобы найти решение краевой задачи, мы должныпроинтегрировать слева направо от t0 до tk s векторных уравнений(2.31) и s скалярных уравнений (2.34), а также одну систему (2.35)справа налево от tk до t0.44Заметим, что мы решали краевую задачу по следующей схеме.1. Перенесли все условия задачи Коши с левого конца траектории на правый конец (эта процедура всегда устойчива).2. Перенесли все условия задачи Коши справа налево для (2.35).Эта процедура может оказаться неустойчивой. В этом случае нужно:а) перенести все условия задачи Коши справа налево (эта процедура всегда устойчива);б) решить задачу Коши для системы (2.35) слева направо.При одновременном переносе нескольких граничных условийнам удалось обойти не все подводные камни, которые могутвстретиться при эффективной реализации процедуры переносаграничных условий.Помимо решения задачи Коши для вектор-функции g i (t ) искалярных функций α i (t ) мы должны суметь разрешить системулинейных алгебраических уравнений (2.38).
Матрица этой системы gij может оказаться плохо обусловленной и найти фактическое значение величин xj(tk) без больших ошибок мы не сможем.Согласно построению, векторы g i (t0 ) (i = 1, 2, . . , s) линейно независимы. Более того, они образуют ортогональную систему векторов.Однако с течением времени скалярные произведения ( g i , g j )все более и более отличаются от нуля. Описанная ситуация является типичной, и если интервал времени достаточно велик, то может оказаться, что изложенную выше схему расчета на ЭВМ реализовать невозможно.С этой трудностью можно справиться, используя ту же идею,которая позволила нам избежать «быстрорастущих» решений.Предположим, что первые из граничных условий (2.36) заданыв видеQ т x (t0 ) = α 0 ,где Q = qij(2.39)– прямоугольная матрица размеров (n × s), т.
е. nстрок и s столбцов; Q т = q т ij – матрица размеров (s × n) причемqijт = q ji ; α 0 – некоторый s-мерный вектор.45В скалярном виде условия (2.39) выглядят следующим образом:n∑ qijт x j (t0 ) = α 0i , i = 1, 2, . . , s.(2.40)j =1Первое из условий (2.36) является частным случаем (2.39), когда матрица Qт имеет вид⎡1⎢0⎢⎢..⎢⎣001..0............00..1........0⎤0 ⎥⎥.. ⎥⎥0⎦s строкs столбцовn столбцовПредположим, кроме того, что детерминант матрицы QтQ – неочень малое число. В частном случае задания условий в форме(2.36) матрица QтQ равна I, т.