Як вирішити оптимальну задачу управління, коли закон руху залежить від певної функції вектора стану?


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))
. Я виправлю оригінальне запитання.
Даніель Уіллз

Ласкаво просимо до інженерії.SE, +1 за відмінне перше питання.
Кріс Мюллер

Ви шукаєте закрите чи формальне рішення чи запитуєте про практичну оптимізацію? У першому випадку вам слід запитати це на веб-сайті, наприклад math.stackexchange.com . В останньому випадку існує ряд дисциплін, присвячених практичній оптимізації. В будь-якому випадку вам потрібно надати більше деталей, щоб отримати реальну відповідь.
footwet

Я шукаю практичну оптимізацію. Детальніше: Підмножина змінної управління залежить від (яку я називаю ), а підмножина змінних управління залежить від (яку я викликаю ). Додатково мені потрібно вибрати функцію . Максимізація підлягає обмеженню Отже, інтуїтивно зрозумілим способом її вирішення є: - відгадайте - вирішіть (зараз стандартну) задачу оптимального управління ( задано ) - перевірте, чи , якщо ні, вгадайте інше Але ви бачите, що немає причини, щоб алгоритм зближувався. Як люди вирішують це?tyxzx(t)
h(z(x(t)),y(t))=0
x(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

Ви можете використовувати дискретизацію задачі на точок, так що вам потрібно лише визначити кінцеву кількість параметрів (якщо припустимо, що і є дещо безперервними функціями). Для похідної та інтеграції можна використовувати метод Ейлера, можна використовувати методи вищого порядку, але ускладнюють вирішення проблеми.Nfg

Переформулювання дає:

h=t1N1,x=[x1,x2,,xN],y=[y1,y2,,yN],

maxx,yn=1N1f(h(n1),xn,yn)hs.t.xn+1=xn+g(h(n1),xn,yn)h,n=1,2,,N1

Вам також потрібно додати граничні обмеження до обмежень рівності проблеми оптимізації. Ви можете використовувати декілька різних методів для вирішення цієї проблеми, наприклад, якщо у вас є доступ до Matlab, ви можете використовувати fmincon , який мінімізує функцію витрат, яку можна виправити, додавши знак мінус перед сумою. Часто також доводиться наводити початкові здогадки, що також може вплинути на рішення, оскільки різні здогадки можуть сходитися до різних локальних максимумів. Збільшуючи ви повинні отримати більш точне рішення, але, напевно, це займе більше часу. Це може зійти швидше, якщо ви вирішите задачу з меншою кількістю точок і інтерполюєте їх, а потім використаєте це як початковий здогад для проблеми більшої кількості балів.N

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.