Comment résoudre un problème de contrôle optimal où la loi du mouvement dépend d'une fonction du vecteur d'état?

11

Un problème de contrôle optimal typique avec le vecteur d'état x (t) et le vecteur de contrôle y (t) peut être exprimé comme suit:

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

sous réserve de x(t)=g(t,x(t),y(t)) et des conditions aux limites pour x .

Je veux résoudre un problème qui ressemble beaucoup, mais la loi de mouvement du contrôle est:

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

Ici, z(.) Doit être choisi. Mais son argument est l'État.

Je ne sais même pas par où commencer à chercher des solutions. Comment puis-je aborder ce problème?

Daniel Wills
la source
1
Je suppose que la bonne façon de l'écrire est
x(t)=g(t,x(t),y(t),z(x(t))
. Je corrigerai la question d'origine.
Daniel Wills
Bienvenue sur engineering.SE, +1 pour une excellente première question.
Chris Mueller
Vous êtes à la recherche d'une solution formelle ou fermée, ou vous vous interrogez sur l'optimisation pratique? Dans le premier cas, vous devriez le demander sur un site comme math.stackexchange.com . Dans ce dernier cas, il existe un éventail de disciplines consacrées à l'optimisation pratique. Dans les deux cas, vous devez fournir plus de détails pour obtenir une vraie réponse.
feetwet
Je recherche une optimisation pratique. Plus de détails: Un sous-ensemble de la variable de contrôle dépend de (que j'appelle ) et un sous-ensemble des variables de contrôle dépend de (que j'appelle ). De plus, je dois choisir la fonction . La maximisation est soumise à une restriction Une manière intuitive de le résoudre est donc: - devinez - résolvez le problème de contrôle optimal (désormais standard) ( étant donné ) - vérifiez si , sinon, devinez un autre Mais vous voyez qu'il n'y a aucune raison pour que l'algorithme converge. Comment les gens résolvent-ils cela?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

Réponses:

3

Pourquoi devrait- il être externe à ?gzg

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

maintenant utiliser commegg

g peut être n'importe quelle fonction arbitraire, donc n'importe quelle fonction pourrait simplement être incorporée dans .zg

Concernant votre restriction mentionnée dans la section commentaire. Toutes les restrictions sur l'entrée de contrôle pourraient être appliquées via la fonction de coût:h

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

Où est suffisamment grand pour garantir des valeurs de assez proches de zéro mais pas si grandes que les erreurs numériques dans domineraient le origine .Chhf

Meule
la source
1

Vous pouvez utiliser la discrétisation du problème en points, de sorte que vous n'avez qu'à déterminer un nombre fini de paramètres (en supposant que et sont des fonctions quelque peu continues). Pour la dérivée et l'intégration, vous pouvez utiliser la méthode Euler, des méthodes d'ordre supérieur peuvent être utilisées, mais rendent le problème plus difficile à résoudre.Nfg

La reformulation donne:

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

Vous devez également ajouter les contraintes de frontière aux contraintes d'égalité du problème d'optimisation. Vous pouvez utiliser plusieurs méthodes différentes pour résoudre ce problème, par exemple si vous avez accès à Matlab, vous pouvez utiliser fmincon , ce qui minimise la fonction de coût qui peut être corrigée en ajoutant un signe moins devant la somme. Souvent, vous devez également fournir une estimation initiale, ce qui peut également affecter la solution, car différentes suppositions peuvent converger vers différents maxima locaux. En augmentant vous devriez obtenir une solution de plus en plus précise, mais cela prendra probablement plus de temps à résoudre. Il peut converger plus rapidement si vous utilisez la solution d'un problème avec moins de points et les interpolez puis utilisez cela comme une estimation initiale pour le problème du plus grand nombre de points.N

fibonatique
la source