Como resolvo um problema de controle ideal, onde a lei do movimento depende de alguma função do vetor de estado?

11

Um problema de controle ótimo típico com o vetor de estado x (t) e o vetor de controle y (t) pode ser expresso como:

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

sujeito a e condições de contorno para .x(t)=g(t,x(t),y(t))x

Eu quero resolver um problema que se parece muito, mas a lei do movimento do controle é:

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

Aqui, Precisa ser escolhido. Mas seu argumento é o estado.z(.)

Nem sei por onde começar a procurar soluções. Como posso abordar esse problema?

Daniel Wills
fonte
1
Eu acho que a maneira correta de escrever é . Corrigirei a pergunta original.
x(t)=g(t,x(t),y(t),z(x(t))
Daniel Wills
Bem-vindo ao engineering.SE, +1 para uma excelente primeira pergunta.
Chris Mueller
Você está procurando uma solução formal ou fechada, ou está perguntando sobre otimização prática? No primeiro caso, você deve perguntar isso em um site como math.stackexchange.com . No último caso, há uma série de disciplinas dedicadas à otimização prática. Em ambos os casos, você precisa fornecer mais detalhes para obter uma resposta real.
feetwet
Estou à procura de otimização prática. Mais detalhes: Um subconjunto da variável de controle depende de (que eu estou chamando de ) e um subconjunto das variáveis ​​de controle depende de (que eu estou chamando de ). Além disso, preciso escolher a função . A maximização está sujeita a uma restrição Portanto, uma maneira intuitiva de resolvê-la é: - adivinhe - resolva o (agora padrão) problema de controle ótimo ( dado ) - verifique se , se não, adivinhe outro Mas você vê que não há razão para o algoritmo convergir. Como as pessoas resolvem isso?tyxzx(t)
h(z(x(t)),y(t))=0
x(t)x(t)h(z(x(t)),y(t))=0x(t)
Daniel Wills

Respostas:

3

Por que precisa ser externo a ?zg

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

agora use comogg

g pode ser qualquer função arbitrária; portanto, qualquer função pode ser incorporada a .zg

Em relação à sua restrição, mencionado na seção de comentários. Quaisquer restrições na entrada de controle podem ser aplicadas através da função de custo:h

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

Onde é suficientemente grande para garantir valores de próximos de zero, mas não tão grandes que erros numéricos em dominem o original .Chhf

Rick
fonte
1

Você pode usar discretização do problema em pontos, de modo que você só tem que determinar um número finito de parâmetros (assumindo e são funções pouco contínuas). Para a derivada e a integração, você pode usar o método Euler, métodos de ordem superior podem ser usados, mas dificultam a solução do problema.Nfg

A reformulação fornece:

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

Você também deve adicionar as restrições de limite às restrições de igualdade do problema de otimização. Você pode usar vários métodos diferentes para resolver esse problema; por exemplo, se você tiver acesso ao Matlab, poderá usar o fmincon , o que minimiza a função de custo que pode ser corrigida adicionando um sinal de menos na frente da soma. Frequentemente, você também precisa fornecer um palpite inicial, o que também pode afetar a solução, pois diferentes suposições podem convergir para máximos locais diferentes. Ao aumentar você deve obter uma solução cada vez mais precisa, mas provavelmente levará mais tempo para resolver. Pode convergir mais rapidamente se você usar a solução de um problema com menos pontos e interpolar-los e depois usá-lo como um palpite inicial para o problema do maior número de pontos.N

fibonático
fonte