Как решить задачу оптимального управления, в которой закон движения зависит от некоторой функции вектора состояния?

11

Типичная задача оптимального управления с вектором состояния x (t) и вектором управления y (t) может быть выражена как:

maxx(t),y(t)0t1f(t,x(t),y(t))dt

при условии x(t)=g(t,x(t),y(t)) и граничных условий для x .

Я хочу решить проблему, которая выглядит очень похоже, но закон управления движением таков:

x(t)=g(t,x(t),y(t),z(x(t)))

Здесь необходимо выбрать z(.) . Но его аргументом является государство.

Я даже не знаю, где начать искать решения. Как я могу подойти к этой проблеме?

Дэниел Уиллс
источник
1
Я думаю, правильный способ записать это
x(t)=g(t,x(t),y(t),z(x(t))
. Я исправлю исходный вопрос.
Даниэль Уиллс,
Добро пожаловать в engineering.SE, +1 за отличный первый вопрос.
Крис Мюллер
Вы ищете закрытое или формальное решение, или вы спрашиваете о практической оптимизации? В первом случае вы должны спросить об этом на сайте, как math.stackexchange.com . В последнем случае существует ряд дисциплин, посвященных практической оптимизации. В любом случае вам нужно предоставить более подробную информацию, чтобы получить реальный ответ.
15:15
Я ищу практическую оптимизацию. Более подробная информация: Подмножество управляющей переменной зависит от (который я называю ), а подмножество управляющих переменных зависит от (который я называю ). Дополнительно мне нужно выбрать функцию . На максимизацию накладывается ограничение Таким образом, интуитивный способ ее решения: - угадать - решить (теперь стандартную) задачу оптимального управления ( учитывая ) - проверьте, если , если нет, угадать другое Но вы видите, что нет причин для сходимости алгоритма. Как люди решают это?y x z x ( t ) h ( z ( x ( t ) ) , y ( t ) ) = 0 x ( t )tyxzx(t)
h(z(x(t)),y(t))=0
x ( t ) h ( z ( x ( t ) ) , y ( t ) ) = 0x(t)x(t)h(z(x(t)),y(t))=0x(t)
Даниэль Уиллс

Ответы:

3

Почему должен быть внешним по отношению к ?гzg

g(t,x(t),y(t))=g(t,x(t),y(t),z(x(t)))

теперь используйте как гgg

з гg может быть любой произвольной функцией, поэтому любая функция может быть просто включена в .zg

Что касается вашего ограничения , упомянутой в разделе комментариев. Любые ограничения на вход управления могут быть введены через функцию стоимости:h

fnew(t,x(t),y(t))=fold(t,x(t),y(t))Ch(x(t),y(t))2

Где достаточно велик, чтобы гарантировать значения достаточно близкие к нулю, но не настолько большие, чтобы числовые ошибки в доминировали над исходным .ч ч еChhf

стог
источник
1

Вы можете использовать дискретизацию задачи на точек, так что вам нужно только определить конечное число параметров (при условии, что и являются несколько непрерывными функциями). Для производной и интегрирования вы можете использовать метод Эйлера, можно использовать методы более высокого порядка, но затруднить решение проблемы.F GNfg

Переформулировка дает:

часзнак равноT1N-1,Иксзнак равно[Икс1,Икс2,...,ИксN],Yзнак равно[Y1,Y2,...,YN],

МаксимумИкс,YΣNзнак равно1N-1е(час(N-1),ИксN,YN)часs,T,ИксN+1знак равноИксN+г(час(N-1),ИксN,YN)час,Nзнак равно1,2,...,N-1

Вы также должны добавить граничные ограничения в ограничения равенства задачи оптимизации. Вы можете использовать несколько различных методов для решения этой проблемы, например, если у вас есть доступ к Matlab, вы можете использовать fmincon , который минимизирует функцию стоимости, которую можно исправить, добавив знак минус перед суммой. Часто вам также необходимо указать начальное предположение, которое также может повлиять на решение, поскольку разные предположения могут сходиться к разным локальным максимумам. Увеличивая вы получите более точное решение, но, вероятно, решение займет больше времени. Он может сходиться быстрее, если вы используете решение задачи с меньшим количеством точек и интерполируете их, а затем используете это как начальное предположение для задачи о большем количестве точек.N

fibonatic
источник