Jak rozwiązać optymalny problem sterowania, w którym prawo ruchu zależy od funkcji wektora stanu?

11

Typowy problem optymalnego sterowania z wektorem stanu x (t) i wektorem sterowania y (t) można wyrazić jako:

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

z zastrzeżeniem x(t)=g(t,x(t),y(t)) i warunków brzegowych dla x .

Chcę rozwiązać problem, który wygląda bardzo podobnie, ale zasada ruchu kontroli jest następująca:

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

Tutaj należy wybrać z(.) . Ale jego argumentem jest państwo.

Nie wiem nawet, od czego zacząć szukać rozwiązań. Jak podejść do tego problemu?

Daniel Wills
źródło
1
Myślę, że poprawnym sposobem napisania jest
x(t)=g(t,x(t),y(t),z(x(t))
. Poprawię oryginalne pytanie.
Daniel Wills
Witamy w engineering.SE, +1 za doskonałe pierwsze pytanie.
Chris Mueller
Szukasz rozwiązania w formie zamkniętej lub formalnej, czy pytasz o praktyczną optymalizację? W pierwszym przypadku powinieneś o to zapytać na stronie takiej jak math.stackexchange.com . W tym drugim przypadku istnieje szereg dyscyplin poświęconych praktycznej optymalizacji. W obu przypadkach musisz podać więcej szczegółów, aby uzyskać prawdziwą odpowiedź.
wetwet
Szukam praktycznej optymalizacji. Więcej szczegółów: Podzbiór zmiennej kontrolnej zależy od (który nazywam ), a podzbiór zmiennych kontrolnych zależy od (który nazywam ). Dodatkowo muszę wybrać funkcję . Maksymalizacja podlega ograniczeniu Tak więc intuicyjny sposób rozwiązania tego problemu to: - zgadnij - rozwiąż (obecnie standardowy) problem optymalnego sterowania ( dany ) - sprawdź, czy , jeśli nie, zgadnij inny Ale widzisz, że nie ma powodu, aby algorytm się zbiegał. Jak ludzie to rozwiązują?y x z x ( t ) h ( z ( x ( t ) ) , y ( t ) ) = 0 x ( t ) x ( t ) h ( z ( x ( t ) ) , y ( t ) ) = 0 x ( t )tyxzx(t)
h(z(x(t)),y(t))=0
x(t)x(t)h(z(x(t)),y(t))=0x(t)
Daniel Wills

Odpowiedzi:

3

Dlaczego musiałoby być zewnętrzne względem ?gzg

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

teraz użyj jakogg

g może być dowolną dowolną funkcją, więc dowolną funkcję można po prostu włączyć do .zg

Jeśli chodzi o swoją restrykcyjną mowa w sekcji komentarzy. Wszelkie ograniczenia na wejściu sterującym można egzekwować za pomocą funkcji kosztów:h

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

Gdzie jest wystarczająco duże, aby zagwarantować wartości wystarczająco bliskie zeru, ale nie tak duże, że błędy numeryczne w zdominowałyby pierwotne .Chhf

Stóg
źródło
1

Możesz użyć dyskretyzacji problemu do punktów, tak że musisz tylko określić skończoną liczbę parametrów (zakładając, że i są funkcjami ciągłymi). Do pochodnej i integracji można użyć metody Eulera, można zastosować metody wyższego rzędu, ale trudniej rozwiązać problem.Nfg

Przeformułowanie daje:

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

Musisz także dodać ograniczenia graniczne do ograniczeń równości problemu optymalizacji. Możesz użyć wielu różnych metod, aby rozwiązać ten problem, na przykład jeśli masz dostęp do Matlaba, możesz użyć fmincon , który minimalizuje funkcję kosztów, którą można naprawić, dodając znak minus przed sumą. Często musisz także podać wstępne domysły, co może również wpłynąć na rozwiązanie, ponieważ różne domysły mogą zbiegać się z różnymi lokalnymi maksimami. Zwiększając , powinieneś uzyskać coraz dokładniejsze rozwiązanie, ale prawdopodobnie zajmie to więcej czasu. Może się zbiegać szybciej, jeśli użyjesz rozwiązania problemu z mniejszą liczbą punktów i interpolujesz je, a następnie użyjesz tego jako wstępnego odgadnięcia problemu większej liczby punktów.N

włóknisty
źródło