• Nenhum resultado encontrado

CONTROLE ÓTIMO. Aluno: João Pedro T. Brandão Orientador: Alex Castro

N/A
N/A
Protected

Academic year: 2021

Share "CONTROLE ÓTIMO. Aluno: João Pedro T. Brandão Orientador: Alex Castro"

Copied!
11
0
0

Texto

(1)

CONTROLE ÓTIMO

Aluno: João Pedro T. Brandão Orientador: Alex Castro

Introdução

Este trabalho é um estudo verticalizado sobre métodos de otimização e métodos numéricos para o cálculo aproximado de soluções subótimas. Utilizando recursos de

programação não-linear e da linguagem MatLab, além de estudos feitos anteriormente, para serem implementados em métodos de aproximação visando resolver problemas de controle ótimo. Avaliamos as vantagens práticas dos métodos como tempo de execução e convergência à soluções ótimas.

Ambiente MatLab

O ambiente MatLab foi escolhido por sua simplicidade em aplicar métodos numéricos além de conter diversos recursos já implementados. Isso facilita bastante a prototipagem de algoritmos para a aproximação numérica em problemas matemáticos gerais. A manipulação de matrizes e vetores está embutida na linguagem simplificando o seu uso. Por exemplo, na linguagem C++ uma multiplicação de duas matrizes ( × ) e ( × ) resultaria em:

for ( int i = 0 ; i < n ; ++i ) { for ( int j = 0 ; j < n ; ++j ) { for ( int k = 0 ; k < n ; ++k ) { C[ i ][ j ] = C[ i ][ j ] + A[ i ][ k ]*B[ k ][ j ]; } } }

Utilizando a linguagem MatLab, o código acima se transforma em:

C = A*B;

Por outro lado, a linguagem C++ é útil na otimização dos códigos numéricos quando tempo se torna um recurso escasso. Usamos a função fmincon do pacote Optimization

Toolbox que permite a execução do algoritmo Programação Sequencial Quadrática assim

como ajustes de seus parâmetros. Aplicamos os métodos pseudo-espectral de Legendre e o método Bellman-PS usando fmincon para obter soluções ótimas.

Programação Sequencial Quadrática

O algoritmo é usado para minimizar uma função  com restrições de igualdade  = 0, ( ) = ( ( ), … , ( )) , e restrições de desigualdade ℎ ≤ 0, ℎ( ) = (ℎ ( ), … , ℎ( )). Construímos a Lagrangeana:

( , , ) = ( ) − ( ) − ℎ( )

Linearizamos os vínculos e usamos a aproximação quadrática da Lagrangeana para obter:

(2)

(



) ≈ (



) + ∇(



)∆

∆ = 



− 



,

∆ =





,

∆ = 



− 



Reduzimos o problema de programação não linear a um problema de programação quadrática.

Algorítmo

1. Escolha um chute inicial ( ,  ,  ). 2. Monte a Lagrangeana.

3. Faça a aproximação quadrática da Lagrangeana do ponto ( , , ). 4. Use o método Quase-Newton para achar o passo a ser seguido. 5. Acrescente o passo a ( , , ) e repita o 3º passo.

No entanto, usaremos a função fmincon do ambiente e linguagem MatLab por questões práticas. O ambiente nos proporciona uma implementação eficiente do algoritmo e a fácil manipulação de parâmetros para adaptar aos nossos requerimentos.

Problema Geral de Controle Ótimo Problema intuitivo

Usaremos como base um problema de controle ótimo intuitivo: o da locomoção de um trem de um ponto A até um ponto B. Por estar em cima de trilhos, o caminho do trem já está pré-determinado. Portanto, devemos considerar os seguintes parâmetros do trem:

1. Sua posição ao longo do caminho. 2. Sua velocidade.

3. Sua aceleração.

Sabemos que sua velocidade inicial, no ponto A, é zero, e sua velocidade final, no ponto B, também deve ser zero. De fato, controlamos apenas a aceleração do trem, que acaba influenciando os outros dois parâmetros.

Visando otimizar o consumo de combustível, a solução ótima seria acelerar o trem até um certo ponto da trajetória deixando que a inércia obtida o levasse exatamente até o final.

Consideremos agora que o objetivo seja otimizar o tempo de viagem. Num mundo ideal, poderíamos acelerar o trem ao máximo durante todo o percurso, freando apenas um pouco antes do final para que a velocidade chegasse à zero no ponto B. Como existem restrições decorrentes de fenômenos físicos embutidas no sistema, incluindo aceleração e velocidade máxima, é necessário incluir estas restrições no modelo para torna-lo mais realístico. Podemos também incluir outras restrições, como limite na quantia de combustível.

Estes são apenas dois de muitos exemplos onde o problema de controle ótimo pode ser aplicado no mundo real.

Problema Geral

O problema de controle ótimo consiste em achar uma regra de controle para um sistema satisfazendo certo critério de otimização. Isso inclui uma função custo que depende de variáveis de controle e estado. Um controle ótimo conduz os caminhos das variáveis de controle que minimize essa função custo.

Minimizar a função:

! = "#$(%

), %

, $&%

'

(, %

'

) + * ℒ,$(%), -(%), %./%

01

02 Sujeito aos vínculos dinâmicos:

(3)

$3(%) = 4,$(%), -(%), %. Às restrições de desigualdade:

5,$(%), -(%), %. ≤ 0

5 = (5

, 5



, … , 5

6

)

Às restrições do tipo igualdade, conhecidas também por condições de fronteira:

Φ#$(%

), %

, $&%

'

(, %

'

) = 0

Φ = (Φ

, Φ



, … , Φ



)

A função ℒ é conhecida como a Lagrangeana.

Quando a função objetivo é o tempo percorrido, i.e. ! = %', é preciso aplicar uma transformação afim, 8, no intervalo #% , %').

8: #%

, %

'

) → ,−1,1.

8($) =

%

2

'

− %

$ −

%

'

+ %

%

'

− %

Atualizando todas as restrições, o tempo final se torna um parâmetro livre nas restrições do tipo igualdade, desigualdade e/ou fronteiras.

Solução Numérica

Como as funções de estado e controle não são conhecidas previamente, precisamos de um método numérico que encontre tais funções e que respeite as restrições estabelecidas anteriormente. Começamos discretizando o intervalo ,% , %'. e adotando uma malha para nossos cálculos, i.e., % < % < % < ⋯ < % < % < ⋯ < %@A < %@ = %'. Assim, as funções de estado e controle também são discretizadas, tornando cada ponto do estado e controle, $(%) e -(%) B = 0,1, … , C, em uma variável. Utilizando o método PSQ,

considerando a função custo como função objetiva, i.e. a integral da Lagrangeana, e aplicando as restrições necessárias, é possível achar uma solução ótima para o caso discreto. Para a solução do caso contínuo usamos um polinômio interpolador.

Esse método, porém, nos traz uma serie de dificuldades. Usar uma malha equidistante para interpolação polinomial não garante que o polinômio aproximante seja efetivamente útil na prática. Outro problema é a discretização de vínculos diferenciais que seja estável e tenha boas propriedades de convergência. Diferenças finitas (a aproximação de derivadas variações médias) pode acarretar alguns problemas na qualidade das soluções sub-ótimas obtidas. Além do mais, visamos um método que possa ser aplicado em situações de tempo real. Cada vez que discretizamos o intervalo em C + 1 pontos, obtemos 2(C + 1) parâmetros livres a serem otimizados; com o exemplo mencionado anteriormente necessitando de 3(C + 1) parâmetros, 2(C + 1) parâmetros para as funções de estado $ E $, e C + 1 parâmetros para a função de controle -. Caso a função objetivo seja o tempo percorrido, o tempo final %' é também considerado um parâmetro livre. Precisamos de um método com o qual uma solução ótima possa ser obtida com um número pequeno de nós.

Método Pseudo-Espectral de Legendre

Por simplicidade, reconhecemos que qualquer intervalo pode ser mapeado no intervalo ,−1,1. por meio de transformações afins, e será esse o intervalo usado daqui em diante. O método vigente resolve os impasses mencionados previamente. Utilizamos os nós Legendre-Gauss-Lobatto (LGL) adquiridos através das raízes dos polinômios de Legendre, @($). O polinômio de Legendre é definido pela seguinte expressão:

(4)



@

($) =

2

@

1

C!

/

@

/$

@

($



− 1)

@

Assim, para obtermos C + 1 nós LGL, encontramos as raízes do polinômio de

Legendre de C graus. Sabemos que dado C + 1 pontos há um único polinômio interpolador de grau C coincidindo nesses pontos. Os nós LGL são acumulados nas bordas que acabam diminuindo o efeito de aliasing. Aliasing é o efeito que causa duas funções não poderem ser diferenciadas dadas uma amostragem de pontos como ilustrado abaixo.

Figura 1 - As funções cos(2G(0.9)) e cos(2G(0.1)) são indistinguíveis nos 10 pontos acima Isso evidencia a importância de uma malha não uniforme (ou geométrica) na

discretização de problemas contínuos. Abaixo ilustramos o fenômeno de Runge, a oscilação do polinômio interpolante em malha uniforme, e atenuando-o com nós LGL para 5, 10 e 15 pontos, aproximando a função ($) =

(5)

Figura 2 - Nós Equidistantes e Legendre-Gauss-Lobatto. A função está representada pelas linhas pontilhadas, os nós pelos círculos, e o polinomio interpolador pela linha preenchida

Achado o polinômio interpolador, sua taxa de convergência para a função aproximada é algébrica da ordem de K(A) onde L representa o numero de vezes que a função é

diferenciíavel e  é o grau do polinômio. Se a função for analítica, o polinômio converge exponencialmente, ou seja, da ordem de K(MA6) onde M é uma constante. Como em análise espectral (Fourier) a diferenciabilidade aqui determina a velocidade de convergência (na norma uniforme) entre os aproximantes e o sinal original. Em suma: “Quanto mais diferenciável for, mais rápido a convergência do polinômio”.

Supomos que temos uma função que queremos aproximar. Podemos escrever sua aproximação como uma combinação linear de polinômios de Legendre. Lembrando que a família de polinômios de Legendre até grau C é uma família ortonormal.

($) ≈ 

@

($) = N 4







($)

@

O

Mostre-se então que podemos reescrever tal expressão como:

($) ≈ 

@

($) = N ($



)"



($)

@ O Onde

"



($) =

@(@ )PQ(IR) (IJA )PQ3 (I)

IAIR . Ressaltamos que "&$S( = TS implicando na seguinte propriedade:



@

($

(6)

Essa expressão é mais favorável do que a anterior por só precisar avaliar a função nos nós LGL e apenas polinômio de Legendre de grau C. Desta expressão obtemos a aproximação de sua derivada V( × ).

V

S

=

W

XX

Y

XX

Z

($



− $



@S

($

)



)

@

($

S

) [E B ≠ ]

−C(C + 1)

4

[E B = ] = 0

C(C + 1)

4

[E B = ] = C

0 _. _.

A figura abaixo mostra como o erro de diferenciação diminui ao passo que o numero de nós aumenta.

Figura 3 - Comparação da derivada (linha pontilhada) com sua aproximação (linha cheia) e o erro Com isso, somos capazes de escrever os vínculos diferenciais do problema de controle ótimo de maneira prática e estável utilizando equações algébricas e possibilitando o uso do algoritmo PSQ.

Para discretizar a integral da Lagrangeana, utilizamos a seguinte aproximação da quadratura de Gauss:

* ($)/$

A

≈ N ($



)`

 @ O Sendo

`



=

 @(@ )

,PQ(IR).J, e  uma função suave qualquer. Mostra-se que se  é a-vezes diferencíavel, onde

b

(c)

b ≤ d

, sua convergência é da ordem de

K(

Ac

)

. Com isso, resolvemos todos impasses necessários para implementação do método.

(7)

Aplicação para problema ilustrativo

Com a finalidade de exemplificar o processo descrito anteriormente, começamos com um problema de controle ótimo cuja solução já é conhecida.

Problema

Minimizar a função:

! = * -(%)



/%

Sujeito aos vínculos dinâmicos:

$3

(%) = $



(%)

$3



(%) = -(%)

As condições de bordo:

$

(0) = 0

$

(1) =

−11

24

$



(0) = 0

E a restrição de desigualdade:

|-(%)| ≤ 1

O problema admite solução ótima:

$

(%) =

W

Y

Z

%



2 4f4 0 ≤ % < 0.5

%

h

3 − %



+

4 −

%

24 4f4 0.5 ≤ % ≤ 1

1

$



(%) = i

−% 4f4 0 ≤ % < 0.5

%



− 2% +

1

4 4f4 0.5 ≤ % ≤ 1

-(%) = j −1 4f4 0 ≤ % < 0.5

2% − 2 4f4 0.5 ≤ % ≤ 1

Algoritmo

1. Calcule o polinômio de Legendre de grau C, os nós LGL, e a matriz de diferenciação. 2. Monte a quadratura de Gauss

3. Adapte as restrições e vínculos dinâmicos à função fmincon. 4. Use fmincon para rodar o algoritmo PSQ para achar solução ótima Script clc clear n = 8; syms t; L = legendpoly(n, t); no = leg_roots(L); % matriz de diferenciação

(8)

D = diff_legend(L, no);

% fator de diferenciação resultando da tranformação afim de [0,1]->[-1,1] D = 2.*D;

% %% MIN int(u).^2

% variaveis [ x1_1 x1_2 ... x1_N+1 x2_1 ... x2_N+1 u_1 ... u_N+1 ] Z = sym('z%d', size([no ; no ; no]));

u = Z(2*length(no)+1:end); % função objetiva

f = (u).^2;

f = leg_int(f, L, no);

% Formato da função objetiva para usar em fmincon F = @(w) subs(f, Z, w);

% %%% Restrições %%% % vínculo diferencial

% Dx1 = x2 <=> Dx1 - x2 = 0

Aeq = [ D -eye(length(no)) zeros(length(no)) ]; beq = zeros([ size(Aeq,1) 1 ]);

% Dx2 = u <=> Dx2 - u = 0

aux = [ zeros(length(no)) D -eye(length(no)) ]; Aeq = [ Aeq ; aux ];

beq = [ beq ; zeros([ size(aux,1) 1 ]) ] ; % condições de fronteira

% x(0) = 0, x(1) = -11/24, v(0) = 0

% Com TA => x(-1) = -1, x(1) = -46/24, v(0) = 0 aux = zeros([ 3 3*length(no) ]) ;

aux(1,1) = 1;

aux(2,length(no)) = 1; aux(3,length(no)+1) = 1; Aeq = [ Aeq ; aux ];

beq = [ beq ; -1 ; -46/24 ; 0 ]; % restrições no controle % abs(u) <= 1

abs_u = [ zeros(length(no)) zeros(length(no)) eye(length(no)) ] ; Aineq = [ abs_u ; -abs_u ];

bineq = [ ones(size(abs_u,1), 1) ; ones(size(abs_u,1), 1) ] ; bineq = 2.*bineq;

% chute inicial

chute = zeros( size([no ; no ; no]) ); % execução fmincon

options = optimset('fmincon');

options = optimset(options, 'Algorithm','SQP','MaxFunEvals', 5000, 'TolX', 1e-6); tic

(9)

solution = fmincon(F, chute, Aineq, bineq, Aeq, beq, [], [], [] ,options); toc

Resultados

Figura 4 - Primeira fileira executada com 5 nós, segunda com 10, e terceira com 15 A solução analítica esta em linhas pontilhadas. Note que com 5 nós já podemos considerar uma aproximação razoável, e com 15, não vemos muita diferença entre uns e outros. Rodamos o exemplo acima para 4 a 30 nós, para comparar o tempo de execução do algoritmo PSQ e o erro entre o resultado obtido e a solução ótima.

(10)

Figura 6 - Erro entre a solução obtida e solução ótima

Vemos que o tempo cresce substancialmente ao passo que os nós crescem, enquanto o erro tende a zero. Com 5 nós temos uma aproximação razoável, e precisamos de 10 nós ou mais para ter boas aproximações. Porem, a solução ótima desse exemplo é bem regular. Quanto mais regular, melhor a aproximação, um fato que não podemos extrapolar para todos os casos, em particular os casos com descontinuidades. Portanto, em geral, para obter

soluções aproximadas com erro pequenos, nos garantimos com 15 a 20 nós. No entanto, isso nos dará um tempo de execução de mais de 20 segundos (no exemplo acima, com 15 nós o tempo de execução é 25 segundos; com 20 nós o tempo é 76 segundos). Para aplicações de tempo real isso é inviável.

Método Bellman-PS

O método se baseia em outros métodos pseudo-espectrais procurando um equilíbrio entre soluções precisas e custo computacional. Usualmente acham-se soluções subótimas com um baixo custo computacional. Embora seja possível achar soluções altamente precisas com o método pseudo-espectral de Legendre, como vimos anteriormente, o tempo de execução rapidamente cresce ao passo que o numero de nós crescem. Para obtermos soluções mais precisas com baixo numero de nós usamos o método Bellman-PS.

Algoritmo

1. Resolva o sistema utilizando o método pseudo-espectral de Legendre 2. Divida o intervalo #% , %')em k segmentos de ,%, % ., faça B = 0 3. Interpole os valores discretos até o final do segmento %

4. Use os valores do controle e estado em % como condição inicial e resolva o sistema. 5. Se B = k − 1 pare, se não, faça B = B + 1 e volte para o 3º passo.

6. A solução é a concatenação dos segmentos. Problema Teste Minimizar:

!,$(. ), -(. ), %

'

. = %

' Sujeito à:

$

3 = $



$



3 = -

$(0) = ,10, 10.

$(%

'

) = ,0,0.

|-| ≤ 1

Implementação

(11)

Precisamos primeiro reparametrizar o problema da variável % para l:

%(l) =



%

'

(l +

1),

onde lm,−1, 1.. As restrições se tornam:

$

3 =

1

2 %

'

$



$



3 =

1

2 %

'

-

$(−1) = ,10, 10.

$(1) = ,0,0.

|-| ≤ 1

Assim ao discretizar o intervalo, precisamos que o tempo final %' seja um parâmetro livre totalizando em 3C + 4 parâmetros (C + 1 para cada $ , $, e -, e mais um para %'). Ao executar o algoritmo PSQ, ele nos retornará o valor mínimo de %'.

Conclusões

Atualmente estamos aprimorando nossa implementação do método Bellman para entendê-lo melhor. Ao terminar isso, como foi feito anteriormente com o algoritmo PSQ, vamos aprender a usar o pacote DIDO onde os métodos pseudo-espectrais foram

implementados com eficiência. Comparar com a execução do nosso script. Ao longo prazo iremos implementar os métodos aqui descritos em aplicações que trabalhem em tempo real. Referências

1 - Ross, I. M.; Gong, Q.; Sekhavat, P. Bellman Pseudospectral Method. The American Institute of Aeronautics and Astronautics, ago. 2008.

2 - Becerra, V. M; Galvão, R. K. H. Um tutorial sobre métodos pseudo-espectrais para controle ótimo computacional. Sba Controle & Automação, v.21, n.1, maio/jun 2010. 3 - Betts, J. T. Practical Methods for Optimal Control and Estimation Using Nonlinear

Programming. 2. ed. Philadelphia: Society for Industrial and Applied Mathematics, 2009. 123p.

4 - Documentação função fmincon. Disponível em:

<www.mathworks.com/help/optim/ug/fmincon.html>, Acesso em 10 jun. 2014.

5 - Trefethen, L. N. Approximation Theory and Approximation Practice. Philadelphia: Society for Industrial and Applied Mathematics, 2012. 318p.

6 - Maymon, S.; Oppenheim, A. V. Sinc Interpolation of Nonuniform Samples. IEEE Transactions on Signal Processing, 2011.

Referências

Documentos relacionados

Corograpliiu, Col de Estados de Geografia Humana e Regional; Instituto de A lta C ultura; Centro da Estudos Geográficos da Faculdade de Letras de Lisboa.. RODRIGUES,

SENSOR DE

200 ml de água de coco 200 ml de água de coco 1 folha de couve 1 folha de couve Hortelã a gosto Hortelã a gosto Modo de preparo Modo de preparo Bater todos os. Bater todos os

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

A seqüência analítica • Definição do problema • Escolha do método • Amostragem • Pré-tratamento da amostra • Medida • Calibração • Avaliação •

6 Consideraremos que a narrativa de Lewis Carroll oscila ficcionalmente entre o maravilhoso e o fantástico, chegando mesmo a sugerir-se com aspectos do estranho,

Por meio do ordenamento dos ciclos de fácies, foram caracterizadas seis seqüências deposicionais, formadas por ciclos siliciclásticos regressivo-transgressivos, R-T (seqüências S1 e

O desenvolvimento das interações entre os próprios alunos e entre estes e as professoras, juntamente com o reconhecimento da singularidade dos conhecimentos