Come posso risolvere un problema di controllo ottimale in cui la legge del movimento dipende da alcune funzioni del vettore di stato?


11

Un tipico problema di controllo ottimale con il vettore di stato x (t) e il vettore di controllo y (t) può essere espresso come:

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

soggetto a x(t)=g(t,x(t),y(t)) e condizioni al contorno per x .

Voglio risolvere un problema che sembra molto simile, ma la legge di movimento del controllo è:

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

Qui, z(.) Deve essere scelto. Ma il suo argomento è lo stato.

Non so nemmeno da dove iniziare a cercare soluzioni. Come posso affrontare questo problema?


1
Immagino che il modo corretto di scriverlo sia
x(t)=g(t,x(t),y(t),z(x(t))
. Correggerò la domanda originale.
Daniel Wills

Benvenuto in engineering.SE, +1 per un'ottima prima domanda.
Chris Mueller,

Sei alla ricerca di una soluzione chiusa o formale o stai chiedendo l'ottimizzazione pratica? Nel primo caso dovresti chiederlo su un sito come math.stackexchange.com . In quest'ultimo caso esiste una serie di discipline dedicate all'ottimizzazione pratica. In entrambi i casi è necessario fornire maggiori dettagli per ottenere una risposta reale.
feetwet

Sto cercando l'ottimizzazione pratica. Maggiori dettagli: Un sottoinsieme della variabile di controllo dipende da (che sto chiamando ) e un sottoinsieme delle variabili di controllo dipende da (che sto chiamando ). Inoltre, devo scegliere la funzione . La massimizzazione è soggetta a una restrizione Quindi un modo intuitivo per risolverlo è: - indovina - risolvi il problema (ora standard) di controllo ottimale ( dato ) - controlla se , in caso contrario, indovina un altro Ma vedi che non c'è motivo per cui l'algoritmo converge. Come lo risolvono le persone?tyxzx(t)
h(z(x(t)),y(t))=0
x(t)x(t)h(z(x(t)),y(t))=0x(t)
Daniel Wills,

Risposte:


3

Perché dovrebbe essere esterno a ?zg

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

ora usa comegg

g può essere qualsiasi funzione arbitraria, quindi qualsiasi funzione potrebbe essere semplicemente incorporata in .zg

Per quanto riguarda la restrizione menzionata nella sezione commenti. Eventuali restrizioni sull'ingresso di controllo potrebbero essere applicate tramite la funzione di costo:h

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

Dove è sufficientemente grande da garantire valori di abbastanza vicini a zero ma non così grandi che errori numerici in dominerebbero l'originale .Chhf


1

Puoi usare la discretizzazione del problema in punti, in modo tale che devi solo determinare un numero finito di parametri (supponendo che e siano funzioni in qualche modo continue). Per la derivata e l'integrazione è possibile utilizzare il metodo Euler, è possibile utilizzare metodi di ordine superiore, ma rendere il problema più difficile da risolvere.Nfg

La riformulazione fornisce:

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

È inoltre necessario aggiungere i vincoli di limite ai vincoli di uguaglianza del problema di ottimizzazione. Puoi utilizzare diversi metodi per risolvere questo problema, ad esempio se hai accesso a Matlab potresti usare fmincon , che minimizza la funzione di costo che può essere risolta aggiungendo un segno meno davanti alla somma. Spesso devi anche fornire un'ipotesi iniziale, che potrebbe anche influenzare la soluzione, poiché ipotesi diverse potrebbero convergere in diversi massimi locali. Aumentando dovresti ottenere una soluzione sempre più accurata, ma probabilmente ci vorrà più tempo per risolverlo. Potrebbe convergere più velocemente se usi la soluzione di un problema con meno punti e li interpoli e poi usi quello come ipotesi iniziale per il problema del maggior numero di punti.N

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.