Деменков Н.П. Вычислительные аспекты решения задач оптимального управления (2007) (1253737), страница 20
Текст из файла (страница 20)
Действительно, рассмотрим на траекториях системы функционалJ = X(T) cos λ – Z(T) sin λ,где момент Т определяется из условия Y(T) = 0. Функционал J является проекцией вектора (X(T), Z(T)) на направление, исходящееиз начала координат в плоскости (X, Z) под углом λ к оси X. Максимизируя функционал J и изменяя λ от 0 до π, мы получим границу области D(Y0, V0).Рассмотрим плоскую постановку задачи, т. е.ϕ = 0; Z = 0; β = 0.Время окончания процесса tk = Т определяется из условия Y(tk) = 0.Минимизируемый функционал J = X(tk).Решите задачу при следующих начальных условиях:Y0 = 5,875 км;V0 = 1,075 км/c;t0 = 0;X0 = 0.В качестве начального приближения для управления можнопринять нуль на всем интервале времени. При этом дальность будет равна Х = 19 км.После решения задачи оптимизации получим X max = 209 км.Траектория на максимальную дальность имеет четыре основных участка:1) набор высоты при работающем двигателе;2) полет по баллистической кривой в разряженных слоях атмосферы;3) стабилизация высоты полета после входа в плотные слои;4) планирование при максимальном угле атаки α = 0,314 послеснижения скорости.1585.5.
Задача набора высотыСамолет летит со скоростью Vo на высоте ho. Нужно изменитьего скорость до V1 и высоту до h1 так, чтобы расход горючего наэто изменение был минимальным.Эта задача легко решается методом динамического программирования. Для того чтобы представить рассматриваемый процесс какмногошаговый, введем следующий способ описания состояний самолета. Процесс изменения V и h будем изображать на плоскости(V, h). Проведем дискретизацию переменных, разбив диапазоны изменения V и h на необходимые интервалы (рис.
5.10). При этом дис-Рис. 5.10. К задаче набора самолетом высотыкретные состояния объекта управления будем представлять узламисетки. Если считать, что в каждом узле сетки возможно применениетолько двух управлений (Ui = 0 – изменение скорости V; Ui = 1 –изменение только высоты h), то множеством допустимых управлений будет множество типа U = {0, 1}.Для того чтобы оценить траекторию, нужно знать расход топлива на каждом шаге – целевую функцию L(x, u), значения которойзададим в виде условных чисел на каждом переходе.159Дискретные значения V отметим числами, начиная с конечногозначения.
Так же поступим в отношении h. Тогда переменная xijбудет означать состояние при V = i и h = j, из которого до концапроцесса остается сделать i + j шагов.Двигаясь последовательно от конечной точки к начальной,фиксируем в узлах оптимальные для каждого промежуточного состояния затраты. После того, как значения Jn* (x) и u* определеныдля всех узлов сетки, находим оптимальную траекторию перемещения самолета.5.6. Задача распределения ресурсовВ распоряжении инвестора имеется какой-то запас средств (ресурсов) Р, который должен быть распределен между К предприятиями П1, П2, ..., Пk. Каждое из предприятий Пi при включении внего каких-то средств X приносит доход, зависящий от X, т.
е.представляющий собой какую-то неубывающую функцию Li(X).Все функции Li(X) (i = 1, 2, ..., k) заданы. Спрашивается, как нужнораспределить средства Р между предприятиями, чтобы в суммеони дали максимальный доход?Эта задача легко решается методом динамического программирования. Хотя в своей постановке она не содержит упоминанияо времени, можно все же операцию распределения средств мысленно развернуть в какой-то последовательности, считая за первыйшаг вложение средств в предприятие П1, за второй – вложениесредств в П2, и т.
д.Объект управления в данном случае – средства, или ресурсы,которые распределяются. Состояние объекта перед каждым шагомхарактеризуется одним числом S – наличным запасом еще не вложенных средств. В этой задаче «пошаговыми управлениями» являются средства Х1, X2, ..., Xk, выделяемые предприятиям. Требуется найти оптимальное управление, т. е. такую совокупность чиселХ1, X2, ..., Xk, при которой суммарный доход максимален:kJ = ∑ Li ( X i ) = > max.i =1Найдем для каждого i-го шага условный оптимальный выигрыш Ji(S) (от этого шага и до конца расчетов), если мы подошли к160данному шагу с запасом средств S.
Соответствующее ему условноеоптимальное управление Хi(S) есть средства, вкладываемые в i-епредприятие.Начнем оптимизацию с последнего (k-го) шага. Если мы подошли к этому шагу с остатком средств S, то очевидно, что мыдолжны вложить всю сумму S целиком в предприятие Пk. Поэтомуусловное оптимальное управление на k-м шаге – отдать последнему предприятию все имеющиеся средства S, т. е.
Xk(S) = S, а условный оптимальный выигрыш Jk(S) = Lk(S).Задаваясь рядом значений S (располагая их достаточно тесно),мы для каждого значения S будем знать Xk(S) и Jk(S). Последнийшаг оптимизирован.Перейдем к предпоследнему, т. е. (k – 1)-му, шагу. Пусть мы подошли к нему с некоторым запасом средств S.
Обозначим Jk–1(S) условный оптимальный выигрыш на двух последних шагах: (k – 1)-ми k-м, который уже оптимизирован.Если мы выделим на (k – 1)-м шаге (k – 1)-му предприятиюсредства Х, то на последний шаг останется (S – X). Наш выигрышна двух последних шагах будет равен:Lk–1(X) + Jk(S – X),и нужно найти такое количество средств Х, при котором этот выигрыш максимален:Jk–1(S) = max {Lk–1(X) + Jk(S – X)},x≤ sгде max означает, что берется максимальное значение по всем X,x≤ sкакие только возможны (вложить средств больше, чем S, мы неможем), от выражения, стоящего в фигурных скобках. Этот максимум и есть условный оптимальный выигрыш за два последнихшага, а то значение X, при котором этот максимум достигается,является условным оптимальным управлением на (k – 1)-м шаге.Далее оптимизируем (k – 2)-й, (k – 3)-й шаги и т.
д. Для любогоi-го шага будем находить условный оптимальный выигрыш за всешаги, начиная с этого и до конца расчета, по формулеJi(S) = max {Li(X) + Ji+1(S – X)}x≤ s161и соответствующее ему условное оптимальное управление Xi(S) –то значение X, при котором этот максимум достигается.Дойдя до первого предприятия П1, нам не нужно будет варьировать значение Si, так как мы точно знаем, что запас средств перед первым шагом равен Р:J* = J1(Р) = max {L1(X) + L2(Р – X)}.x≤ PИтак, максимальный выигрыш (доход) от всех предприятийнайден.
То значение X, при котором достигается максимум последнего выражения, и есть оптимальное управление X1* на 1-мшаге. После того, как мы вложим эти средства в первое предприятие, у нас их останется Р – X1*.Для полученного значения S выделяем второму предприятиюоптимальное количество средств: X2* = X2(Р – X1*) – и так далее доконца расчета.Задаваясь различными исходными данными по имеющимся ресурсам и предприятиям, решите задачу распределения ресурсов(рис. 5.11). Аналогичным образом можно решить и другие задачи.Рис.
5.11. К задаче распределения ресурсовЭто, например, установление регламента замены оборудования,задачи транспортировки и т. п.1625.7. Задача трассировкиТребуется определить траекторию, связывающую точки (X0, Y0)и (Xk, Yk) и минимизирующую затраты J при наличии ограничений(например, на условия прокладки жгута между элементами на плате при изготовлении печатных плат, прокладки кабельных системна предприятии или на условия передвижения транспорта по холмистой местности и т. п.).Для решения задачи методом динамического программирования плоскость (X, Y) разбивается на дискретные участки и проводится дискретизация переменных путем разбиения диапазонов изменения X и Y на интервалы. При этом дискретные состояния объекта управления будут представляться узлами сетки.
Будем считать, что в каждом узле возможно применение лишь двух управлений: U = 0, когда изменяется лишь координата X, и U = 1, когдаизменяется координата Y. Таким образом, множеством допустимых управлений будет множество типа U = {0, 1}.Для того чтобы оценить оптимальный маршрут прокладкижгута, т. е. его траекторию, нужно знать расходы на прокладкужгута на каждом шаге. Это и будет целевой функцией L(X, U),значения которой зададим в виде условных чисел на каждом переходе. Затраты на прокладку жгута проводов в пределах каждогоконкретного участка покажем между узлами.Для того чтобы представить рассматриваемый процесс какмногошаговый, введем подходящий способ описания состоянийобъекта. Дискретные значения X отметим числами, начиная с конечного значения.
Так же поступим в отношении Y. Тогда переменная xij будет означать состояние при X = i и Y = j, из которогодо конца процесса остается сделать i + j шагов.Обозначим через Xn множество состояний, из которых процессзаканчивается за n шагов. В это множество войдут все те переменные xij , для которых i + j = n. Полагая n = 0, 1, 2,..., получаем X0 == x00; X1 = {x10, x01}; X2 = {x20, x11, x02} и т. д.Теперь можно приступать к решению задачи.