Preview only show first 10 pages with watermark. For full document please download

Controle De Um Veículo Submersível Não Tripulado

Controle de um submarino

   EMBED


Share

Transcript

O ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA MECÂNICA Controle do Movimento Plano de um VSNT (Veículo Submersível Não Tripulado) Componentes: Alexandre Roitman Rosset Cassio Hideyuki Kawakita Valter Unterberger Filho Vinícius Lopes dos Santos São Paulo 2006 Nº USP: 4941539 Nº USP: 3129704 Nº USP: 3528522 Nº USP: 3725672 2 SUMÁRIO 1. Introdução ............................................................................................................................... 5 2. Modelo Físico .......................................................................................................................... 5 3. Modelo Matemático do Submarino........................................................................................ 6 4. Sensores e Atuadores Necessários .................................................................................... 12 5. Determinação da Função de Transferência e dos Pólos de Malha Aberta do Sistema . 14 6. Análise de Estabilidade do Sistema em Malha Aberta ...................................................... 16 7. Análise de Estabilidade pelo Critério de Routh-Hurwitz ................................................... 17 8. Diagramas de Bode e de Nyquist do Sistema .................................................................... 18 9. Análise da Controlabilidade e Observabilidade do Sistema............................................. 25 10. Projeto de um Observador de Estados............................................................................. 26 11. Matriz de Transição............................................................................................................. 29 11. Projeto de um Regulador de Estados ............................................................................... 31 11.1. Regulador de Estados por Alocação de Pólos ............................................................. 32 11.2. Regulador de Estados por Controle Linear Quadrático............................................... 36 12. Projeto de um Seguidor de Trajetória ............................................................................... 40 12.1. Determinação da Trajetória............................................................................................. 40 12.2. Seguidor de Trajetória por Alocação de Pólos ............................................................. 42 12.3. Seguidor de Trajetórias por Controle Linear Quadrático............................................. 44 13. Controle Clássico................................................................................................................ 46 13.1. O Projeto do Controlador ................................................................................................ 46 13.2. Alocação de Empuxo....................................................................................................... 50 13.3. Seleção dos Parâmetros de Controle ............................................................................ 51 14. Conclusão............................................................................................................................ 54 14. Referências Bibliográficas ................................................................................................. 56 Anexo A – Parâmetros Principais do submersível VSNT Jaú I ............................................ 57 Anexo B – Determinação da Trajetória a ser Seguida em Autolev ...................................... 58 Anexo C – Código Fonte para o Regulador de Estados em Scilab...................................... 59 2 3 Lista de Figuras Figura 1: Configuração básica do VSNT Jaú I. .......................................................... 6 Figura 2: Esboço do Veículo Submarino Não-Tripulado (VSNT).............................. 7 Figura 3: Pólos e funções de transferência para u = 0,15; v = 0; r = 0;ψ = 0 ................... 15 Figura 4: Diagrama de pólos do sistema em malha aberta para u = 0,15; v = 0; r = 0;ψ = 0 . 16 Figura 5: Diagrama de Bode para G11 e G12 ............................................................. 19 Figura 6: Diagrama de Bode para G 21 . ..................................................................... 20 Figura 7: Diagrama de Bode para G22 . ..................................................................... 20 Figura 8: Diagrama de Bode para G31 . ..................................................................... 21 Figura 9: Diagrama de Bode para G32 . ..................................................................... 21 Figura 10: Diagrama de Nyquist para G11 e G12 . ..................................................... 22 Figura 11: Diagrama de Nyquist para G 21 . ............................................................... 23 Figura 12: Diagrama de Nyquist para G22 . ............................................................... 23 Figura 13: Diagrama de Nyquist para G31 . ............................................................... 24 Figura 14: Diagrama de Nyquist para G32 . ............................................................... 24 Figura 15: Representação da Velocidade no Tempo............................................... 30 Figura 16: Trajetória Percorrida ................................................................................ 30 Figura 17: Posição X, em metros, no tempo. ........................................................... 31 Figura 18: Desvios das variáveis de estado – Regulador de estados por alocação de pólos. ...................................................................................................................................... 35 Figura 19: Trajetória real e a trajetória desejada – Regulador de estados por alocação de pólos. ........................................................................................................................... 35 Figura 20: Desvios das variáveis de estado – Regulador de estados linear quadrático. 38 Figura 21: Trajetória real e a trajetória desejada – Regulador de estados linear quadrático. ...................................................................................................................................... 39 Figura 22: Trajetória a ser seguida. .......................................................................... 40 Figura 23: Desvios das Variáveis de Estado para o AP. ......................................... 43 Figura 24: Trajetórias para o Método por Alocação de Pólos ................................ 43 Figura 25: Desvios das variáveis de Estado obtidos com o Método do LQ.......... 45 Figura 26: Trajetória Percorrida pelo Submarino Controlado por LQ ................... 45 Figura 27: Diagrama de blocos - Controle para uma direção genérica. ................ 48 Figura 28: Diagrama de blocos no Simulink para o controlador PD...................... 52 3 4 Figura 29: Submersível com PD – Trajetória real (vermelha) e trajetória de referência (azul) ...................................................................................................................................... 53 4 5 1. Introdução O presente trabalho tem como objeto de estudo a simulação e o controle do movimento plano um VSNT (Veículo Submersível Não Tripulado) de pequenas dimensões para captação de imagens em ambiente fluvial a pequenas profundidades. A modelagem do sistema de lastro do submersível não está no escopo deste trabalho, pois se trata de um assunto bastante complicado para o presente nível de conhecimento. Desse modo, será feita apenas a análise do movimento plano do veículo em questão, que já possibilita o entendimento e a aplicação dos vários conceitos envolvidos num projeto de controle. Pretende-se, a partir do modelo físico do veículo, desenvolver um modelo matemático linearizado em torno de uma trajetória pré-definida. Com essa modelagem e com a aplicação da teoria de controle aprendida em sala (até então Método de Alocação de Pólos e Método Linear Quadrático), é possível desenvolver tanto reguladores de estado quanto seguidores de trajetórias adequados. Reguladores de estado são controladores que visam estabilizar as variáveis de estado do sistema em valores constantes e pré-especificados apesar da atuação de excitações externas de correnteza. Seguidores de trajetórias são controladores responsáveis por manter o submersível em uma rota pré-especificada e, portanto, conhecida, apesar da influência de correntezas que possam prejudicar a manobra planejada. Assim, a finalidade do projeto de controle em questão seria determinar os incrementos de empuxo necessários para compensar os desvios provocados por perturbações externas tanto no caso de reguladores de estado quanto no caso de seguidores de trajetórias. 2. Modelo Físico A estrutura do veículo a ser controlado, no caso o VSNT Jaú I, divide-se em três partes principais: o corpo básico, a torreta e a bolina, conforme pode ser observado na figura 1. 5 6 Figura 1: Configuração básica do VSNT Jaú I. O corpo básico tem formato cilíndrico e extremidades em formato de parabolóide. Nele encontram-se abrigados os sistemas elétricos, eletrônicos, mecânicos e pneumáticos. Na proa situa-se a câmera de vídeo responsável pela captura de imagens e, na popa, encontram-se as saídas dos dois propulsores que compõe o sistema propulsor. Sobre o corpo básico situa-se a torreta. Nela está abrigado o refletor, cuja função é a geração de luz artificial para auxiliar o registro de imagens. A bolina localiza-se na parte inferior do corpo básico e em seu interior abriga-se o sistema de lastro, responsável pelo movimento de caturro (subida e descida do submersível), que não será analisado no presente relatório. Os parâmetros (dimensões, massa, momento de inércia, massas adicionais e amortecimentos viscosos) do veículo submersível adotado, foram obtidos experimentalmente [1] e estão exibidos no Anexo A. 3. Modelo Matemático do Submarino O modelo do submarino, esboçado na figura 2, pode ser interpretado como um modelo físico, que deve ser traduzido matematicamente para que se possa realizar a simulação dinâmica do mesmo. 6 7 Figura 2: Esboço do Veículo Submarino Não-Tripulado (VSNT). A modelagem matemática do problema envolve a escolha de dois sistemas de referenciais: um referencial inercial OXYZ e um segundo referencial, este solidário ao veículo, O1X1Y1Z1, cujos eixos são coincidentes com os eixos principais de inércia do submarino. A origem do sistema de coordenadas solidário ao veículo é o seu centro geométrico. A fim de se iniciar a modelagem, foram adotadas algumas hipóteses simplificadoras: • O corpo do submersível é rígido. • Os pesos e suas distribuições no veículo são constantes. • O centro de gravidade do veículo coincide com o seu centro geométrico, isto é X1G = Y1G = Z1G = 0. • O modelo se movimenta apenas no plano XY (bidimensional), pois admite-se que a força peso e a força de empuxo hidrostático têm o mesmo módulo, mesma direção, sentidos opostos e mesmo ponto de aplicação; • A velocidade na direção X1 é sempre maior ou igual a zero, ou seja, o movimento é sempre avante. • As massas adicionais são constantes e, portanto, independem das acelerações do veículo. • As forças de correnteza podem transladar o baricentro do submersível no espaço, no entanto, não são capazes de faze-lo girar em torno de seu centro de massa. Tendo em vista as hipóteses citadas, as equações de movimento em relação ao referencial móvel são [1]: 7 8 FX = (m + m11 ) ⋅ (u& − v ⋅ r ) FY = (m + m22 ) ⋅ (v& + u ⋅ r ) (1) N = ( I Z + m66 ) ⋅ r& onde: • FX e FY são, respectivamente, as forças resultantes atuantes nas direções X1 e Y1. • N é o momento resultante atuante em relação ao eixo O1Z1. • m é a massa do veículo. • m11 e m22 são as massas adicionais nas direções X1 e Y1, respectivamente. • IZ é o momento de inércia do veículo em relação ao eixo O1Z1. • m66 é o momento de inércia adicional em relação ao eixo O1Z1. • u, v e u& , v& são, respectivamente, as velocidades e acelerações lineares do veículo nos eixos O1X1 e O1Y1 (medidas a partir do referencial fixo ao submarino). • r e r& são, respectivamente, a velocidade e aceleração angular do veículo em relação ao eixo O1Z1 (medidas a partir do referencial fixo ao submarino). As forças (ou momentos) resultantes atuantes em cada um dos eixos têm a seguinte forma: F = −A + P + E onde: • A é a força (ou momento) devido ao amortecimento viscoso, que envolve um termo linear e outro quadrático da respectiva velocidade. • P é a força (ou momento) devido aos propulsores. • E é a força de perturbação gerada pela correnteza e aplicada ao veículo. Logo: FX = − AX + PX + E X FY = − AY + EY (2) N = − AN + PN Tendo em vista que o amortecimento viscoso pode ser modelado como: 8 9 A = c⋅a + d ⋅a⋅ a onde: • c e d são, respectivamente, os coeficientes de amortecimento linear e quadrático. • a é a velocidade do corpo (medida no referencial móvel) no eixo em que se averigua o amortecimento. Obtém-se: A X = c11 ⋅ u + d 11 ⋅ u ⋅ u AY = c 22 ⋅ v + d 22 ⋅ v ⋅ v (3) AN = c 66 ⋅ r + d 66 ⋅ r ⋅ r Levando em consideração a arquitetura do submarino, as forças e momentos devido aos propulsores são: PX = F1 + F2 PN = d ⋅ ( F1 − F2 ) 2 (4) As forças de perturbação EX e EY nada mais são que as projeções das forças de correnteza conhecidas no referencial inercial (OXYZ) no referencial solidário ao veículo (OX1Y1Z1): E X = E Xo ⋅ cosψ + EYo ⋅ senψ EY = − E Xo ⋅ senψ + EYo ⋅ cosψ (5) onde: • EXo é a força de correnteza na direção de X (referencial inercial). • EYo é a força de correnteza na direção de Y (referencial inercial). • ψ é o ângulo de yaw do veículo, ou seja, ângulo formado entre OX1 e OX. De (3), (4) e (5) em (2) resulta: 9 10 FX = −c11 ⋅ u − d11 ⋅ u ⋅ u + F1 + F2 + E Xo ⋅ cosψ + EYo ⋅ senψ FY = −c 22 ⋅ v − d 22 ⋅ v ⋅ v − E Xo ⋅ senψ + EYo ⋅ cosψ N = −c66 ⋅ r − d 66 ⋅ r ⋅ r + (6) d ⋅ ( F1 − F2 ) 2 Obtêm-se as equações finais substituindo-se (6) em (1): (m + m11 ) ⋅ (u& − vr ) = −c11 ⋅ u − d11 ⋅ u ⋅ u + F1 + F2 + E Xo ⋅ cosψ + EYo ⋅ senψ ( m + m22 ) ⋅ (v& + ur ) = −c 22 ⋅ v − d 22 ⋅ v ⋅ v − E Xo ⋅ senψ + EYo ⋅ cosψ ( I Z + m66 ) ⋅ r& = −c66 ⋅ r − d 66 ⋅ r ⋅ r + (7) d ⋅ ( F1 − F2 ) 2 Pode-se mudar do referencial fixo ao veículo para o referencial inercial através das Equações de Euler [2]: X& = u ⋅ cosψ − v ⋅ senψ Y& = u ⋅ senψ + v ⋅ cosψ (8) ψ& = r Nas equações (7) e (8), nota-se a presença de termos não lineares. Faz-se necessária, portanto, a linearização dos mesmos ao redor de um ponto de equilíbrio do sistema ( x , y , z ,...) , através da série de Taylor, desprezando os termos de segunda ordem [3]: f ( x, y, z ,...) = f ( x , y , z ,...) + ∂f ∂x ⋅ (x − x) + X ,Y , Z ,... ∂f ∂y ⋅ ( y − y) + X ,Y , Z ,... ∂f ∂z ⋅ (z − z)K X ,Y , Z ,... Nota-se que, para linearizar uma das equações, deve-se isolar as variáveis do vetor de estados derivado no tempo ( u& , v&, r&, X& , Y& ,ψ& ) e linearizá-las em torno de um ponto de equilíbrio em que u , v , r , F1 , F2 , X , Y ,ψ são as variáveis de regime. Isolando as variáveis em questão, obtém-se: 10 11 u& = v& = [(−c11 ⋅ u − d11 ⋅ u ⋅ u ) + F1 + F2 + E Xo ⋅ cosψ + EYo ⋅ senψ ] (m + m11 ) (−c 22 ⋅ v − d 22 ⋅ v ⋅ v − E Xo ⋅ senψ + EYo ⋅ cosψ ) (m + m22 ) +v⋅r −u⋅r ( F1 − F2 ) ⋅ d ⎤ ⎡ ⎢(−c66 ⋅ r − d 66 ⋅ r ⋅ r ) + ⎥ 2 ⎦ r& = ⎣ ( I Z + m66 ) X& = u ⋅ cosψ − v ⋅ senψ (9) Y& = u ⋅ senψ + v ⋅ cosψ ψ& = r Assim, adotando-se que u& , v&, r&, X& , Y& ,ψ& são funções de u , v, r ,ψ , F1 , F2 , e definindo ∂a = a − a , as equações de (8) ao serem linearizadas com o polinômio de Taylor de primeira ordem correspondente, resultam nas seguintes equações: ∂u& = ∂v& = ∂r& = (−c11 − 2 ⋅ d11 ⋅ u ) (m + m11 ) (−c 22 − 2 ⋅ d 22 ⋅ v ) ( m + m22 ) ( −c 66 − 2 ⋅ d 66 ⋅ r ) ⋅ ∂u + r ⋅ ∂v + v ⋅ ∂r + 1 1 cosψ senψ ⋅ ∂F1 + ⋅ ∂F2 + ⋅ ∂E Xo + ⋅ ∂EYo (m + m11 ) ( m + m11 ) m + m11 m + m11 ⋅ ∂v − r ⋅ ∂u − u ⋅ ∂r − cosψ senψ ⋅ ∂E Xo + ⋅ ∂EYo m + m22 m + m 22 ⋅ ∂r + (10) d d ⋅ ∂F1 − ⋅ ∂F2 2 ⋅ ( I Z + m66 ) 2 ⋅ ( I Z + m66 ) ( I Z + m66 ) & ∂X = cosψ ⋅ ∂u − senψ ⋅ ∂v − u ⋅ senψ ⋅ ∂ψ − v ⋅ cosψ ⋅ ∂ψ ∂Y& = senψ ⋅ ∂u + cosψ ⋅ ∂v + u ⋅ cosψ ⋅ ∂ψ − v ⋅ senψ ⋅ ∂ψ ∂ψ& = ∂r Da teoria de modelagem de sistemas lineares e controle, sabe-se que as equações de (10) podem ser escritas na forma x& = A ⋅ x + B ⋅ u + E ⋅ p y = C ⋅ x + D ⋅u (11) e (12) Este mesmo sistema escrito na forma matricial fica: 11 12 ⎡ − c11 − 2 ⋅ d11 ⋅ u ⎢ m + m11 ⎡ ∂u& ⎤ ⎢ ⎢ ∂v& ⎥ ⎢ −r ⎢ ⎥ ⎢ ⎢ ∂r& ⎥ ⎢ ⎢ &⎥=⎢ 0 ⎢ ∂X ⎥ ⎢ ⎢ ∂Y& ⎥ ⎢ cosψ ⎢ ⎥ ⎢ ⎣⎢∂ψ& ⎦⎥ ⎢ senψ ⎢ 0 ⎣ 1 ⎡ ⎢ m+m 11 ⎢ 0 ⎢ d ⎢ + ⎢ 2 ⋅ (I + m ) z 66 ⎢ 0 ⎢ 0 ⎢ ⎢ 0 ⎣ ⎡ 0 ⎤ ⎡0 ⎢ 0 ⎥ ⎢0 ⎢ ⎥ ⎢ ⎢ 0 ⎥ ⎢0 ⎢ ⎥=⎢ ⎢ ∂X ⎥ ⎢0 ⎢ ∂Y ⎥ ⎢0 ⎢ ⎥ ⎢ ⎢⎣∂ψ ⎥⎦ ⎢⎣0 r − c22 − 2 ⋅ d 22 ⋅ v m + m22 v 0 0 −u 0 0 − c66 − 2 ⋅ d66 ⋅ r 0 0 − senψ I Z + m66 0 cosψ 0 0 1 0 0 0 0 0 ⎡ cosψ 1 ⎤ ⎢m+m 11 m + m11 ⎥ ⎢ ⎥ − ψ sen 0 ⎢ ⎥ −d ⎥ ⎡ ∂F1 ⎤ ⎢ m + m22 2 ⋅ (I z + m66 )⎥ ⋅ ⎢∂F ⎥ + ⎢ 0 ⎥ ⎣ 2⎦ ⎢ 0 ⎢ 0 ⎥ ⎢ 0 0 ⎥ ⎢ ⎥ 0 ⎦ ⎣⎢ 0 0 0 0 0 0⎤ ⎡ ∂u ⎤ ⎡0 0 0 0 0 0⎥⎥ ⎢⎢ ∂v ⎥⎥ ⎢⎢0 0 0 0 0 0⎥ ⎢ ∂r ⎥ ⎢0 ⎥⋅⎢ ⎥ + ⎢ 0 0 1 0 0⎥ ⎢ ∂X ⎥ ⎢0 0 0 0 1 0⎥ ⎢ ∂Y ⎥ ⎢0 ⎥ ⎢ ⎥ ⎢ 0 0 0 0 1⎥⎦ ⎢⎣∂ψ ⎥⎦ ⎢⎣0 0 0 ⎤ ⎥ ⎥ ⎡ ∂u ⎤ ⎥ ⎢ ∂v ⎥ 0 ⎥ ⎢ ⎥ ⎥ ⎢ ∂r ⎥ ⎥⋅⎢ ⎥ + 0 ⎥ ⎢ ∂X ⎥ ⎥ ⎢ ⎥ − u ⋅ senψ − v ⋅ cosψ ⎥ ⎢ ∂Y ⎥ u ⋅ cosψ − v ⋅ senψ ⎥ ⎣⎢∂ψ ⎦⎥ ⎥ 0 ⎦ 0 senψ ⎤ m + m11 ⎥ ⎥ cosψ ⎥ m + m22 ⎥ ⎡∂E Xo ⎤ 0 ⎥ ⋅ ⎢ ∂E ⎥ ⎥ ⎣ Yo ⎦ 0 ⎥ 0 ⎥⎥ 0 ⎦⎥ (13) 0⎤ 0⎥⎥ 0⎥ ⎡ ∂F1 ⎤ ⎥⋅ 0⎥ ⎢⎣∂F2 ⎥⎦ 0⎥ ⎥ 0⎥⎦ A partir das equações matriciais (13), fica claro que não se tem a intenção de medir todas as variáveis de estado do sistema. O objetivo é medir apenas as posições X, Y e ψ do submersível e utilizar um observador de estados para que todas as outras variáveis de estado sejam determinadas. Cabe aqui um pequeno esclarecimento sobre o cálculo do ponto de equilíbrio u , v , r , X , Y ,ψ . Para o caso do regulador de estados, estas grandezas possuem valores constantes e, portanto, pode-se utilizar uma única matriz A no projeto de controle. Já no caso do seguidor de trajetória, estes pontos de operação variam ao longo do seguimento do percurso, e, por isso, a matriz A acaba sendo constante apenas dentro de um intervalo linearizado da trajetória (que é não linear). O item 10.1 discorre mais detalhadamente sobre o cálculo da trajetória do submersível e de seus pontos de equilíbrio. 4. Sensores e Atuadores Necessários O sistema de controle responsável pela execução de uma determinada missão requer, em cada instante, que se conheça com alguma precisão a posição do veículo no meio subaquático, ou seja, as variáveis X e Y. Para tal, devem ser instalados previamente 12 13 na região de operação faróis acústicos (no mínimo três deles) cujas posições são conhecidas. O submersível também possui um sensor deste tipo e, assim pode se localizar através da troca de sinais acústicos com esses faróis. O veículo interroga cada um dos faróis a uma dada freqüência e estes respondem com um sinal a outra freqüência. Medindo o tempo que decorre entre o envio de um sinal e a recepção da resposta, determina-se a distância a cada um dos faróis, o que permite, através de triangulação, estimar a sua posição [4]. Aparelhos giroscópicos têm sido amplamente aplicados em sistemas de navegação para veículos aquáticos e subaquáticos. As grandezas que tipicamente são medidas por tais dispositivos são os ângulos de Euler de orientação do veículo e/ou suas velocidades angulares [5]. Dessa forma, através da utilização de um giroscópio, pode-se determinar as variáveis r e ψ . As velocidades de avanço (u) e deriva (v) podem ser obtidas a partir de acelerômetros. Tais aparelhos medem acelerações através de medidas de inércia de pequenas partículas móveis e, por integração, podem ser obtidas as velocidades. No caso do submersível, seriam necessários dois acelerômetros: um posicionado longitudinalmente (para a determinação da velocidade u) e o outro posicionado de forma transversal (para determinar a velocidade v). Em resumo, para que todas as variáveis de estado do veículo sejam medidas, fazse necessário o uso dos seguintes dispositivos de medição: • 4 faróis acústicos (um deles instalado no veículo e os outros espalhados pela região de operação) para a obtenção de X e Y. • 1 giroscópio para a obtenção de ψ e r. • 2 acelerômetros para a obtenção de u e v. • 2 propulsores, que produzem a entrada de controle do sistema. Tais equipamentos são, no entanto, muito caros e, na realidade, dispensáveis já que se pode fazer uso de um observador de estados. O submersível permanece observável mesmo que apenas as posições X, Y e ψ sejam medidas. Assim, utilizandose 3 faróis acústicos posicionados estrategicamente na região de operação e mais 2 faróis no veículo (um na proa e o outro na popa), é possível, a partir do observador de estados, determinar todas as outras variáveis de estado do sistema. Os atuadores empregados no controle do submarino são os dois propulsores (motores elétricos) localizados na popa do veículo, que juntos permitem que o veículo se locomova com velocidades de cruzeiro de até 0,30 m/s. 13 14 5. Determinação da Função de Transferência e dos Pólos de Malha Aberta do Sistema A função de transferência de um sistema linear invariante no tempo é a razão entre as transformadas de Laplace da saída (função resposta) e a transformada de Laplace da entrada (função excitação). É importante ressaltar que a função de transferência é uma expressão que relaciona a saída à entrada de um sistema linear invariável no tempo em termos dos parâmetros do sistema [3]. Uma função de transferência é capaz de relacionar uma única saída do sistema a uma única entrada do mesmo, sendo, portanto, ideal para sistemas SISO (“Single Input – Single Output”). Assim, para sistemas SIMO (“Single Input – Multiple Output”), MISO (“Multiple Input – Single Output”) e MIMO (“Multiple Input – Multiple Output”) são necessárias várias funções de transferência. No caso do submarino em estudo, tem-se 6 saídas (desvios das velocidades u, v e r medidas em relação ao referencial móvel, e também os desvios das variáveis da equação de Euler X , Y e ψ ) e 2 entradas (desvios das forças propulsoras F1 e F2), o que caracteriza um sistema MIMO. Assim, serão necessárias 12 funções de transferência (Gij), que irão compor a matriz das funções de transferência H(s). Uma vez que o sistema tem 2 entradas e 6 saídas, pode-se representá-lo na forma matricial: ⎡ ∂u ⎤ ⎡G11 ⎢ ∂v ⎥ ⎢G ⎢ ⎥ ⎢ 21 ⎢ ∂r ⎥ ⎢G31 ⎢ ⎥=⎢ ⎢ ∂X ⎥ ⎢G41 ⎢ ∂Y ⎥ ⎢G51 ⎢ ⎥ ⎢ ⎢⎣∂ψ ⎥⎦ ⎢⎣G61 G12 ⎤ G22 ⎥⎥ G32 ⎥ ⎡ ∂F1 ⎤ ⎥⋅ G42 ⎥ ⎢⎣∂F2 ⎥⎦ G52 ⎥ ⎥ G62 ⎥⎦ (14) Com o comando “ss2tf” pode-se, no SCILAB, calcular as funções de transferência para um dado sistema. Pólos são pontos singulares das funções de transferência em que elas se aproximam do infinito. Matematicamente, podem ser definidos como as raízes do polinômio do denominador da função de transferência. Os pólos são importantíssimos na verificação da estabilidade (ou instabilidade) de um sistema dinâmico [3]. 14 15 Conhecidas as funções de transferência do sistema, pode-se calcular facilmente seus pólos, que, por sua vez, podem ser representados pelo diagrama de pólos. Este diagrama pode ser obtido com o comando “plzr” no SCILAB. Com o comando “spec” pode-se obter os pólos do sistema (que também poderiam ser obtido a partir da leitura do diagrama). Como a matriz A depende do ponto de operação u , v , r ,ψ do veículo, ela varia em cada situação de simulação do submarino. No caso de seguidores de trajetória, ter-se-á um ponto de operação e, conseqüentemente uma matriz A para cada trecho da linearização da trajetória. Para que o texto não se torne demasiadamente extenso, serão exibidos a matriz de funções de transferência do sistema bem como seus pólos para o caso de u = 0,15; v = 0; r = 0;ψ = 0 , situação de cruzeiro esta explorada no item 10 para um regulador de estados. Figura 3: Pólos e funções de transferência para u = 0,15; v = 0; r = 0;ψ = 0 . O diagrama de pólos para o mesmo caso fica: 15 16 Figura 4: Diagrama de pólos do sistema em malha aberta para u = 0,15; v = 0; r = 0;ψ = 0 . 6. Análise de Estabilidade do Sistema em Malha Aberta Um sistema, linear ou não, é dito estável se: • Permanece em equilíbrio num ponto de operação quando não existem perturbações, isto é, os transitórios já se dissiparam. • Responde com variações finitas de suas variáveis quando forçado por perturbação finita. • Resposta transiente a uma entrada pulso ou degrau cai sempre a zero. Esta estabilidade está ligada diretamente à posição de seus pólos no plano complexo. Caso todos os pólos estejam situados do lado esquerdo no plano complexo – parte real negativa –, o sistema é dito estável ou amortecido. Caso pelo menos um de seus pólos esteja situado na parte real positiva, o sistema é instável (ou não amortecido) [3]. Além disso, para um sistema estável, a velocidade de resposta do sistema é dada pelo pólo (ou par de pólos) mais próximo do eixo imaginário. No diagrama de pólos mostrado na figura 4 parte dos pólos se encontra na parte real negativa do plano imaginário e a outra metade se encontra sobre o eixo imaginário. O sistema pode ser considerado estável porque os três pólos com parte real nula (que 16 17 poderiam instabilizar o sistema) surgem da inserção da equações de Euler ao modelo matemático do veículo, este foi um artifício usado para a obtenção das posições X, Y e ψ do veículo a partir do próprio sistema linear. Assim, os únicos pólos intrínsecos ao modelo do veículo são: p1 = −0,3086599 ; p 2 = −0,2887311 e p3 = −0,4762651 , todos com parte real negativa. Tal artifício justifica também o fato de termos 6 variáveis de estado em um sistema físico com apenas 3 graus de liberdade. 7. Análise de Estabilidade pelo Critério de Routh-Hurwitz O objetivo deste critério é descobrir se um sistema é estável ou não sem ter de calcular os seus pólos. Dada uma função de transferência: k ⋅ ( s m + d1 ⋅ s m −1 + K + d m −1 ⋅ s + d m ) C ( s) = R( s ) s n + a1 ⋅ s n −1 + a 2 ⋅ s n − 2 + L + a n −1 ⋅ s + a n O Critério de Routh-Hurwitz estabelece: i) Se um dos coeficientes ai , i = 1,L , n for zero ou negativo, o sistema é instável. ii) Se todos os coeficientes ai , i = 1,L , n forem positivos, então deve-se montar a tabela: sn 1 s n −1 a1 s s a2 a4 a6 L a3 a5 a7 L n−2 b1 b2 b3 b4 L n −3 c1 c2 c3 c4 L M M t1 M t2 s 1 s 0 an com: b1 = a1 ⋅ a 2 − a3 ⋅ a 0 a ⋅ a − a5 ⋅ a 0 a ⋅ a − a7 ⋅ a0 a ⋅ a − a9 ⋅ a0 ; b2 = 1 4 ; b3 = 1 6 ; b4 = 1 8 a1 a1 a1 a1 c1 = b1 ⋅ a3 − a1 ⋅ b2 b ⋅ a − a1 ⋅ b3 ; c2 = 1 5 b1 b1 d1 = c ⋅b − b ⋅c c1 ⋅ b2 − b1 ⋅ c 2 ; d2 = 1 3 1 3 c1 c1 17 18 Para as funções de transferência G11 e G12 , tem-se: G11 = G12 = s1 0,0034529 0,3086599 + s 1 s 0 0,3086599 Como todos os elementos da coluna são positivos, o subsistema é estável. Para as funções de transferência G21 e G22 : G21 = −G22 = s2 1 − 0,0011973 0,1375125 + 0,7649962 ⋅ s + s 2 0,1375125 1 s 0,7649962 s 0 0,1375125 Todos os termos da coluna da esquerda são positivos, portanto o subsistema é estável. Para as funções de transferência G31 e G32 , tem-se: G31 = −G32 = s1 0,0079819 0,4762651 + s 1 0 s 0,4762651 Os termos da coluna são positivos, portanto este subsistema também é estável. Como o modelo matemático do veículo é caracterizado por três subsistemas estáveis, pode-se afirmar pelo critério de Routh-Hurwitz que o submersível é estável. 8. Diagramas de Bode e de Nyquist do Sistema Estão exibidos nas figuras a seguir os diagramas de Bode para as funções de transferência G11 ( F1 Î u ), G12 ( F2 Î u ), G 21 ( F1 Î v ), G22 ( F2 Î v ), G31 ( F1 Î r ), G32 18 19 ( F2 Î r ), que são as funções de transferência que realmente influenciam a dinâmica do veículo em questão, conforme explicado no tópico anterior. Figura 5: Diagrama de Bode para G11 e G12 . 19 20 Figura 6: Diagrama de Bode para G 21 . Figura 7: Diagrama de Bode para G 22 . 20 21 Figura 8: Diagrama de Bode para G31 . Figura 9: Diagrama de Bode para G32 . 21 22 Dos diagramas de Bode pode-se perceber que quase todo o sistema é estável e de fase mínima, o que garante velocidade de resposta, com exceção da função , que se apresentou como um sistema de fase mínima e pode ser instável, mas como comentado anteriormente essa possível instabilidade se deve a inserção das equações de Euler e não afetará o modelo. A seguir estão explícitos os diagramas de Nyquist para as funções de transferência G11 ( F1 Î u ), G12 ( F2 Î u ), G21 ( F1 Î v ), G22 ( F2 Î v ), G31 ( F1 Î r ), G32 ( F2 Î r ). Figura 10: Diagrama de Nyquist para G11 e G12 . 22 23 Figura 11: Diagrama de Nyquist para G 21 . Figura 12: Diagrama de Nyquist para G22 . 23 24 Figura 13: Diagrama de Nyquist para G31 . Figura 14: Diagrama de Nyquist para G32 . 24 25 Dos diagramas de Nyquist podemos observar que o sistema é estável em malha fechada, pois não existe nenhum envolvimento do ponto -1+j0 e não existe pólos do sistema em malha aberta no semi-plano direito de s. 9. Análise da Controlabilidade e Observabilidade do Sistema Controlabilidade é a habilidade das variáveis de controle u (t ) afetarem todas as variáveis de estado x(t ) . Se alguma das variáveis de estado não é afetada pelo controle o sistema é dito não controlável. Matematicamente é o mesmo que dizer que um sistema é controlável se, e somente se, a matriz de controlabilidade ς tiver posto n, ou seja, de ς é possível extrair uma matriz nxn com determinante não nulo, onde n é o número de variáveis de estado e ς , definido por: ς = [B AB A 2 B ...... A n −1 B ] (15) Com o comando “contr” no SCILAB é possível obter o posto para uma determinada matriz A. Caso o posto fosse diferente de 6 (número de variáveis de estado) o sistema seria não controlável. Esta análise foi feita para o sistema em questão ( u = 0,15; v = 0; r = 0;ψ = 0 ), que se mostrou controlável. No Anexo C pode-se ler o códigofonte em Scilab para a verificação da controlabilidade do sistema. O sistema é observável se a história das entradas u (t ) ; t 0 < t < t1 ; é suficiente para determinar x0 . Em outras palavras, o sistema é observável se todas as variáveis de estado x(t ) contribuem para as saídas de y (t ) . Essa análise pode ser feita através da matriz de observabilidade σ definida por: [ σ = CT AT C T (A ) C T 2 T ...... (A ) T n −1 CT ] (16) Da mesma maneira que se faz para a matriz de controlabilidade faz-se com a de observabilidade, se o posto de σ for menor que o número de variáveis de estado, o sistema não é observável. A matriz de observabilidade pode ser obtida com o comando “obsv_mat” no SCILAB. O posto pode, então, ser obtido com o comando “rank”. Através deste procedimento, verificou-se que o sistema ( u = 0,15; v = 0; r = 0;ψ = 0 ) é observável. No 25 26 Anexo C pode-se ler o código-fonte em Scilab para a verificação da observabilidade do sistema. 10. Projeto de um Observador de Estados No projeto de controle em questão, nem todas as variáveis estão disponíveis para realimentação, então é necessário estimar as variáveis de estado não disponíveis. A estimativa de variáveis de estado não mensuráveis é comumente denominada observação e o dispositivo que estima ou observa as variáveis de estado é denominado observador de estado ou simplesmente observador. Desenvolver-se-á nesta seção a teoria de um observador de estados de ordem plena, isto é, um tipo de observador que observa todas as variáveis do sistema, independentemente de algumas delas estarem disponíveis para medição direta [3]. O Conceito de observabilidade tem aqui um papel importante: observadores de estado podem ser projetados se, e somente se, a condição de observabilidade for satisfeita [3]. x para designar o vetor de Nas discussões seguintes, utilizar-se-á a notação ~ estado observado. Considere a planta definida por: x& = A ⋅ x + B ⋅ u y =C⋅x (17) O modelo matemático do observador é basicamente o mesmo que o da planta, exceto por um termo adicional que incorpora o erro de estimação para compensar as incertezas nas matrizes A e B e a ausência do erro inicial, portanto define-se o modelo matemático do observador como: ~ x& = A ⋅ ~ x + B ⋅ u + Ke ⋅ (y − C ⋅ ~ x ) = (A − K e ⋅ C )⋅ ~ x + B ⋅ u + Ke ⋅ y (18) onde: • ~ x é o estado estimado e C ⋅ ~ x é a saída estimada. • A saída y e a entrada de controle u são as entradas do observador. 26 27 • A matriz K e , que é denominada matriz de ganho do observador é uma matriz de penalização do termo de correção que envolve a diferença entre a saída medida y e a saída estimada C ⋅ ~ x. Para que se obtenha o erro de observação, deve-se subtrair a equação (18) da equação (17). Assim: x& − ~ x& = A ⋅ x − A ⋅ ~ x − K e ⋅ (C ⋅ x − C ⋅ ~ x ) = ( A − Ke ⋅ C) ⋅ (x − ~ x) (19) Define-se, então, o vetor erro de estimação: e= x−~ x (20) A equação (19) resulta, então, em: e& = ( A − K e ⋅ C ) ⋅ e (21) Nota-se que o comportamento dinâmico do vetor erro de estimação é determinado pelos autovalores da matriz A − K e ⋅ C . Se a matriz A − K e ⋅ C for uma matriz estável, o vetor erro convergirá para zero, qualquer que seja o vetor de erro inicial e, dessa forma, ~ x (t ) convergirá para x(t ) . Se os autovalores de A − K e ⋅ C forem escolhidos de tal maneira que o comportamento dinâmico do vetor erro seja assintoticamente estável e rápido, então qualquer vetor erro tenderá a zero com uma velocidade adequada. A escolha da matriz de ganho K e do observador para que tal condição seja satisfeita pode ser feita a partir da resolução de um problema dual àquele da determinação da matriz de ganho de realimentação K do controlador pelo método da alocação de pólos [3]. Deve-se, agora, introduzir o observador de estados no sistema de controle de malha fechada. Para isso, considera-se, novamente, o sistema de estado completamente controlável e observável: x& = A ⋅ x + B ⋅ u y =C⋅x (22) Para o controle por realimentação de estado baseado no estado observado ~ x: 27 28 u = −K ⋅ ~ x (23) Com esta lei de controle, a equação de estado resulta em: x& = A ⋅ x − B ⋅ K ⋅ ~ x = ( A − B ⋅ K ) ⋅ x + B ⋅ K ⋅ (x − ~ x) (24) Substituindo-se (20) em (24): x& = ( A − B ⋅ K ) ⋅ x + B ⋅ K ⋅ e (25) Combinando-se as equações (21) e (25): ⎡ x& ⎤ ⎡ A − B ⋅ K ⎢ e& ⎥ = ⎢ 0 ⎣ ⎦ ⎣ B⋅K ⎤ ⎡ x⎤ ⋅ A − K e ⋅ C ⎥⎦ ⎢⎣ e ⎥⎦ (26) Note que os pólos de malha fechada do sistema de controle realimentado por estado observado consistem nos pólos devidos ao projeto do controlador e dos pólos devidos ao projeto do observador. Isso significa que os projetos do controlador e do observador são independentes entre si, podendo, portanto, ser conduzidos separadamente e combinados para formar o sistema de controle realimentado por estado observado. Observe que, se a ordem da planta for n, então seu observador de ordem plena também será de enésima ordem e a equação característica resultante do sistema de malha fechada global terá ordem 2n [3]. Procedendo desta forma, o sistema realimentado com estado observado fica: ⎡ x& ⎤ ⎡ A − B ⋅ K ⎢ e& ⎥ = ⎢ 0 6 x6 ⎣ ⎦ ⎣ ⎡ x⎤ ⎡ x⎤ ⎢ e ⎥ = I 12 x12 ⋅ ⎢ e ⎥ ⎣ ⎦ ⎣ ⎦ B ⋅ K ⎤ ⎡ x⎤ ⎡ E ⎤ ⋅ + ⋅ [ p] A − K e ⋅ C ⎥⎦ ⎢⎣ e ⎥⎦ ⎢⎣0 6 x 2 ⎥⎦ (27) Este novo sistema, agora 12x12, deverá ser resolvido na simulação do controlador por alocação de pólos e do controlador linear quadrático. 28 29 11. Matriz de Transição A matriz de transição pode ser dada por: φ = e A∆t = I + A ⋅ ∆t + (A 2 ⋅ ∆t 2 ) (A 3 ⋅ ∆t 3 ) + 2! 3! onde I é a matriz identidade. Quanto maior a série de Taylor empregada melhor é a aproximação, mas também maior é a necessidade de processamento. Para simular um sistema forçado, foi utilizado um sinal de entrada (ou controle) constante no intervalo de tempo ∆t, que para este trabalho foi considerado 1s. Por ser constante, facilita a obtenção do termo de convolução dado por: ⎡ θ = ∆t ⋅ ⎢ I + A ⋅ ∆t + (A ⎣ 2 ) ( ) ⋅ ∆t 2 A 3 ⋅ ∆t 3 ⎤ + ⎥⋅B 2! 3! ⎦ onde B é a matriz de entradas. A simulação foi feita seqüencialmente, de instante ∆t em instante ∆t, utilizando a seguinte equação: x(k +1) = φ ⋅ x( k ) + θ ⋅ u ( k ) isto é, obteve-se x(k +1) a partir do estado no instante anterior, onde u (k ) é o controle usado no intervalo k. Para este trabalho foi considerada uma entrada degrau unitária. A entrada degrau unitária proporciona uma força equivalente a 1N nos propulsores no sistema de controle em malha aberta. Sendo esta constante e igual em ambos os propulsores espera-se que o submarino realize uma trajetória linear, com velocidade constante em X, como mostrado nas figuras a seguir: 29 30 Figura 15: Representação da Velocidade no Tempo. Figura 16: Trajetória Percorrida 30 31 Figura 17: Posição X, em metros, no tempo. É importante notar que a velocidade representa claramente a entrada degrau, partindo do repouso e atingindo uma velocidade constante de aproximadamente 0,019 m . O código fonte para esta aplicação se encontra no Anexo C, junto com o s Observador de Estados. A matriz de transição é muito semelhante ao comando “csim” do Scilab. 11. Projeto de um Regulador de Estados Pretende-se utilizar o regulador de estados desenvolvido para que o submersível, partindo do repouso, desempenhe uma trajetória retilínea em X=0 a uma velocidade de avanço constante u=0,15m/s e com velocidade de deriva nula (v=0m/s), apesar de uma correnteza que gera uma força de 5N na direção positiva de Y que tenderia a deslocar o veículo lateralmente da trajetória desejada. Foram desenvolvidos dois reguladores de estados distintos, o primeiro baseado no controle por alocação de pólos e o segundo a partir de teoria do controle linear quadrático. Nas próximas seções serão exibidos uma rápida introdução à teoria dos métodos de 31 32 controle empregados, os ajustes realizados e os resultados obtidos para cada um dos reguladores de estados construídos. 11.1. Regulador de Estados por Alocação de Pólos Já satisfeitas as condições de controlabilidade de um sistema dinâmico, pode-se efetuar o projeto de seu controlador. Seja um sistema dinâmico escrito na forma: x& = A ⋅ x + B ⋅ u y =C⋅x (28) Existirá sempre uma matriz de ganhos tal que a lei de controle aloca os pólos do sistema em malha fechada em posições previamente escolhidas pelo projetista. Assim: u = − K AP ⋅ x (29) Desta forma, pode-se controlar um sistema instável em malha aberta (desde que o mesmo seja controlável), posicionando-se seus pólos de malha fechada no semi-plano esquerdo do plano complexo. Substituindo (29) em (28): x& = ( A − B ⋅ K AP ) ⋅ x (30) Os novos pólos do sistema (em malha fechada) serão definidos pelas raízes do polinômio característico: det [ sI − ( A − BK AP ) ] = ( s − µ1 )( s − µ2 )( s − µ3 )( s − µ n ) = 0 (31) As seguintes etapas para a determinação da matriz de ganho K AP devem ser seguidas: 1. Garantir a controlabilidade do sistema; 2. A partir da equação característica da matriz A, ou seja: det[s ⋅ I − A] = s n + a1 ⋅ s n −1 + a 2 ⋅ s n −2 + ... + a n −1 ⋅ s + a n = 0 (32) determinar os valores dos coeficientes reais (designados pela letra a); 32 33 3. Determinar a matriz de transformação T que leva a equação de estado do sistema à sua forma canônica controlável. A matriz T é dada por: T = ς ⋅W (33) onde: • ς é a matriz de controlabilidade. • ⎡ a n −1 ⎢a ⎢ n −2 W =⎢ M ⎢ ⎢ a1 ⎢⎣ 1 an−2 a n −3 M 1 0 L a1 L 1 O M K 0 L 0 1⎤ 0⎥⎥ M⎥ ⎥ 0⎥ 0⎥⎦ 4. Com os autovalores desejados (pólos desejados em malha fechada) escrever o polinômio característico: ( s + µ1 ) ⋅ ( s + µ 2 ) ⋅ ... ⋅ ( s + µ n ) = s n + α 1 ⋅ s n −1 + α 2 ⋅ s n − 2 + ... + α n −1 ⋅ s + α n = 0 (34) 5. A matriz de ganho de realimentação K AP requerida é determinada da seguinte forma: K AP = [α n − a n α n −1 − a n −1 L α 1 − a1 ] ⋅ T −1 (35) A escolha de pólos não é uma tarefa simples de ser executada. Envolve a experiência do projeto pelo lugar das raízes. Devem ser escolhidos pólos que fiquem distantes e à esquerda dos pólos dominantes de malha fechada. Porém, se os pólos dominantes forem alocados muito distantes do eixo imaginário de modo que a resposta do sistema se torne muito rápida, os sinais no sistema podem se tornar muito elevados, fazendo com que o sistema se torne não-linear, o que deve ser evitado. A idéia fundamental para desenvolver um bom sistema de controle é escolher uma solução de compromisso, visando ter uma atuação e uma resposta rápida do sistema frente a perturbações e distúrbios, mas que não comprometa sua linearidade e não despenda excessiva energia. Quanto ao comportamento final do sistema, tem-se que se o mesmo for de segunda ordem, então as dinâmicas do sistema poderão ser precisamente correlacionadas com as localizações dos pólos de malha fechada e com os zeros da planta. Para sistemas de ordem superior, a localização dos pólos de malha fechada e as dinâmicas do sistema não são tão facilmente correlacionadas. Conseqüentemente, para a determinação da matriz de ganho KAP de realimentação de estado para um dado sistema, e desejável examinar a resposta característica por meio de simulações computacionais 33 34 para várias matrizes KAP distintas e escolher aquela que confere o melhor desempenho global do sistema. A partir de agora, aplicar-se-á a teoria acima ao projeto do regulador de estados em questão, lembrando que o submersível, partindo do repouso, deve desempenhar uma trajetória retilínea em X=0 a uma velocidade de avanço constante u=0,15m/s e com velocidade de deriva e yaw nulas (v=0m/s e r=0rad/s, respectivamente), apesar da correnteza que gera uma força de 5N na direção positiva de Y tendendo a deslocar o veículo lateralmente da trajetória desejada. Tal manobra deve ser simulada durante 60 segundos. O código fonte em Scilab para o observador de estados por alocação de pólos encontra-se no Anexo C. Os ajustes feitos ao regulador de estados por alocação de pólos foram: • Alocação de pólos do observador de estados: [-3; -3; -3; -3; -3; -3], observe que o observador de estados responde, no mínimo, três vezes mais rápido que o controlador, característica esta fortemente recomendada na literatura de controle. • Alocação de pólos do controlador: [-0,87; -0,55; -0,72+0,81*i; -0,72-0,81*i; -0,48+0,77*i; -0,48-0,77*i], tais pólos foram escolhidos por tentativa e erro, escolhendo-se pólos de forma arbitrária e verificandose se a resposta do sistema era ou não adequada. Os resultados obtidos a partir da simulação da manobra foram: 34 35 Figura 18: Desvios das variáveis de estado – Regulador de estados por alocação de pólos. Figura 19: Trajetória real e a trajetória desejada – Regulador de estados por alocação de pólos. 35 36 Percebe-se a partir do gráfico da figura 5 percebe-se que as velocidades u e r estabilizaram-se no valor desejado (já que seus desvios em relação a referência são nulos), enquanto que a velocidade v apresentou um erro de regime de 0,07m/s. Quanto à trajetória, percebe-se facilmente pelo gráfico da figura 6 que o veículo executa uma trajetória paralela àquela desejada, sendo a diferença entre elas de aproximadamente 0,11m. O erro em regime apresentado pelas variáveis v e Y é uma característica inerente ao sistema que podem ser corrigidas a partir da inserção de integradores ao modelo, no entanto tal ação corretiva encontra-se fora do escopo do presente projeto de controle. Acredita-se que os erros em regime apresentados na execução da manobra são pequenos e aceitáveis, o que caracteriza a correção do projeto de controle do regulador de estados por alocação de pólos. 11.2. Regulador de Estados por Controle Linear Quadrático Para um sistema dinâmico formulado na forma de variáveis de estado e tendo-se já provado que o mesmo é controlável, pode-se procurar uma matriz de ganho para o vetor de controle que seja da forma: u = − K LQ ⋅ x (36) Pode-se resolver o problema da determinação da matriz de ganhos para três diferentes objetivos: obter máxima precisão, atingir o mínimo gasto possível de energia, ou, ainda, garantir minimização de um funcional que leva em consideração os dois objetivos anteriores. Neste último caso, máxima precisão e mínimo gasto de energia são ponderados pelas matrizes Q e R, respectivamente. Tem-se, portanto, a seguinte formulação matemática para o problema: ∞ ( ) J = ∫ xT Qx + u T Ru dt (37) 0 A variável J é a função objetivo que se deseja minimizar e Q e R são as matrizes de ponderação já mencionadas. Existe, aqui, um compromisso entre a maior precisão 36 37 possível e o menor gasto possível de energia. Essa é a solução ótima que se está buscando. Na equação acima a matriz Q é pelo menos semi-definida positiva e R é uma matriz definida positiva. O segundo termo da integral representa o gasto de energia, enquanto que o primeiro termo representa o erro do sistema. Substituindo-se (36) em (28): x& = ( A − B ⋅ K LQ ) ⋅ x (38) Supondo que a matriz A − B ⋅ K LQ é estável e que seus autovalores tenham partes reais negativas, pode-se deduzir que a função objetivo atinge seu valor mínimo quando: K LQ = R −1 BT P (39) Onde P é a solução da equação algébrica de Riccati, escrita a seguir: A T ⋅ P + P ⋅ A + Q − P ⋅ B ⋅ R −1 ⋅ B T ⋅ P = 0 (40) Portanto, para se desenvolver um controlador linear quadrático deve-se seguir a seguinte metodologia: 1. Escolher as matrizes Q e R. 2. Resolver a equação algébrica de Riccati para obter P (Equação 40). 3. Determinar K LQ (Equação 39). A partir de agora, aplicar-se-á a teoria acima ao projeto do regulador de estados em questão, lembrando que o submersível, partindo do repouso, deve desempenhar uma trajetória retilínea em X=0 a uma velocidade de avanço constante u=0,15m/s e com velocidade de deriva e yaw nulas (v=0m/s e r=0rad/s, respectivamente), apesar da correnteza que gera uma força de 5N na direção positiva de Y tendendo a deslocar o veículo lateralmente da trajetória desejada. Tal manobra deve ser simulada durante 60 segundos. O código fonte em Scilab para o observador de estados linear quadrático encontra-se no Anexo C. Os ajustes feitos ao regulador de estados linear quadrático foram: • Alocação de pólos do observador de estados: 37 38 [-3; -3; -3; -3; -3; -3]. • Matrizes de ponderação Q e R: ⎡1 ⎢0 ⎢ ⎢0 Q=⎢ ⎢0 ⎢0 ⎢ ⎣⎢0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 10 0 0 0 10 5 0 0 0 0⎤ 0⎥⎥ 0⎥ ⎥ 0⎥ 0⎥ ⎥ 1⎦⎥ ⎡1 0 ⎤ R=⎢ ⎥ ⎣0 1 ⎦ e tais matrizes foram escolhidas por tentativa e erro, escolhendo-as de forma arbitrária e verificando se a resposta do sistema era ou não adequada. Os resultados obtidos a partir da simulação da manobra foram: Figura 20: Desvios das variáveis de estado – Regulador de estados linear quadrático. 38 39 Figura 21: Trajetória real e a trajetória desejada – Regulador de estados linear quadrático. Assim como no caso do regulador por alocação de pólos, percebe-se que as velocidades u e r estabilizaram-se no valor desejado (já que seus desvios em relação à referência são nulos), enquanto que a velocidade v apresentou um erro de regime de 0,08m/s. Quanto à trajetória, percebe-se facilmente pelo gráfico da figura 8 que o veículo executa uma trajetória paralela àquela desejada, sendo a diferença entre elas de aproximadamente 0,12m. Os resultados obtidos através do regulador de estados linear quadrático foram muito próximos àqueles obtidos com o regulador por alocação de pólos, o que demonstra que a regulagem de ambos são bastante semelhantes apesar de os métodos serem diferentes entre si. Acredita-se que os erros em regime apresentados na execução da manobra são pequenos e aceitáveis, o que caracteriza a correção do projeto de controle do regulador de estados por alocação de pólos. 39 40 12. Projeto de um Seguidor de Trajetória Tratando-se de um submarino, muitas vezes é mais interessante fazê-lo andar por uma trajetória pré-definida, mais complexa do que simplesmente uma reta ou do que conseguir garantir que ele consiga permanecer em uma determinada posição. Essa trajetória deve ser definida em função do tempo para as coordenadas x e y, enquanto que o ângulo relativo ao sistema de coordenadas inercial pode ser expresso como ψ = ψ ( x, y ) , que não deixa de ser também uma função do tempo. Foram desenvolvidos dois seguidores distintos: por alocação de pólos e utilizando o método do de controle linear quadrático, que serão discutidos nas seções seguintes. A trajetória a ser seguida será esclarecida no próximo tópico. Para o seguidor de trajetória foi aplicada uma força de 5N na direção positiva de Y tentando afastar o submarino da trajetória. Essa perturbação foi escolhida aleatoriamente e está sendo aplicada para todo o trabalho, com o intuito de proporcionar comparação entre os diferentes métodos. Tanto para o método por Alocação de Pólos como para o Linear Quadrático no seguidor de trajetória foi utilizada essa mesma perturbação. 12.1. Determinação da Trajetória A trajetória que se pretende seguir é uma senóide completa de amplitude igual a 5 metros em torno do eixo X, o comprimento total a ser percorrido sobre este eixo deve ser igual a 30 metros, conforme mostra a figura 3. Figura 22: Trajetória a ser seguida. 40 41 Tal manobra deve ser realizada pelo submersível em 720 segundos mesmo na presença de correntezas que prejudiquem o seu movimento. A trajetória parametrizada em relação ao tempo t tem a seguinte forma: X (t ) = t γ ⎛ t⎞ Y (t ) = α ⋅ sen⎜⎜ β ⋅ ⎟⎟ ⎝ γ⎠ ⎡ ⎛ t ψ (t ) = arctg ⎢α ⋅ β ⋅ cos⎜⎜ β ⋅ ⎝ γ ⎣ com α = 5 , β = (41) ⎞⎤ ⎟⎟⎥ ⎠⎦ 2 ⋅π e γ = 24 30 Substituindo as equações (41) nas equações de Euler (8) e com alguma manipulação algébrica, pode-se calcular u, v, r em função do parâmetro t em todos os pontos da trajetória. De posse de u, v, r , pode-se substituir nas equações (7) da modelagem matemática do submersível desconsiderando os termos referentes à correnteza e descobrir as forças F1 , F2 também em função de t. As expressões matemáticas para u , v, r , F1 , F2 foram obtidas através do software Autolev, muito útil na resolução de problemas algébricos. Por serem muito extensas, tais expressões, juntamente com o código fonte do programa, encontram-se no Anexo B. Os pontos de equilíbrio u , v , r , X , Y ,ψ , F1 , F2 utilizados na linearização por partes da matriz A nada mais são do que 10 pontos (um a cada 72 segundos) escolhidos sobre a trajetória desejada. Substituindo-se valores do parâmetro t nas expressões de u , v, r , X , Y ,ψ , F1 , F2 obtidas, determina-se os 10 pontos de equilíbrio u , v , r , X , Y ,ψ , F1 , F2 , e, assim, pode-se calcular as 10 matrizes A necessárias para o problema linearizado do seguimento da trajetória. É importante ressaltar que no projeto do seguidor trabalha-se com incrementos ∂u , ∂v, ∂r , ∂X , ∂Y , ∂ψ , ∂F1 , ∂F2 em torno da trajetória e a estes devem ser somadas as variáveis de regime u , v , r , X , Y ,ψ , F1 , F2 para que os valores u , v, r , X , Y ,ψ , F1 , F2 totais sejam obtidos. 41 42 Com a definição do percurso e de todas as matrizes A, o modelo matemático linearizado encontra-se completo, restando apenas escrever as equações obtidas no Scilab para o início do projeto do seguidor de trajetória do submarino. 12.2. Seguidor de Trajetória por Alocação de Pólos A teoria do método de alocação de pólos já foi toda desenvolvida no regulador de estados e não é necessário repetí-la. Serão apenas destacadas as modificações aplicadas para que o método surtisse efeito quando aplicado a um seguidor de trajetórias. Como foi explicado no tópico sobre a trajetória a ser seguida, serão necessárias 10 matrizes A, e, para cada trecho será aplicada a mesma metodologia aplicada ao regulador de estados, com a única diferença que como condição inicial para a solução numérica do sistema, será utilizado o ultimo ponto do trecho anterior. Isso é realizado com alguns simples comandos em MATLAB, que podem ser vistos no ANEXO D. Os pólos para o seguidor de trajetória foram também escolhidos por tentativa e erro, sendo adotados aqueles que fornecessem a trajetória mais próxima da real. • Alocação de pólos do observador de estados: [-3; -3; -3; -3; -3; -3], apesar de a literatura recomendar que os pólos sejam 3 vezes maiores que os pólos do controlados, um dos pólos é superior a -1, mesmo assim o resultado obtido foi satisfatório, e preferiu-se mantê-lo. • Alocação de pólos do controlador: [-1.8833, -0.2367+0.4632*i, -0.2367-0.4632*i, -0.1, -0.21+0.7*i, -0.21-0.7*i], tais pólos foram escolhidos por tentativa e erro, escolhendo-se pólos de forma arbitrária e verificando-se se a resposta do sistema era ou não adequada. 42 43 Figura 23: Desvios das Variáveis de Estado para o AP. Figura 24: Trajetórias para o Método por Alocação de Pólos Na Figura 10, apesar de os desvios parecerem gigantescos a escala mostra que eles são inferiores a 0,5 para as variáveis x e y, enquanto que para ψ , inferiores a 1,6. As posições onde ocorre a mudança da matriz de controle A são notáveis a partir do grande salto que a os desvios apresentam a intervalos constantes. Vale notar que após essas oscilações os desvios sofrem uma alteração significativa, mantendo-se praticamente constante durante o trecho inteiro, o que justifica 43 44 a necessidade das diversas matrizes de controle empregadas. Isso mostra que o desvio permanece praticamente estável para um determinado trecho, e não apresenta tendência de se deslocar para o valor que o desvio do próximo trecho, estabilizado, possui. Por outro lado, ao se analisar a trajetória seguida, nota-se que os desvios entre os trechos são insignificantes frente a amplitude da trajetória, e que após a oscilação o SVNT continua a seguir a trajetória real paralelamente. Esse desvio é causado no início da trajetória, e é conservado até o final. Se for analisado detalhadamente, notar-se-á que o desvio é da ordem de 0,3m , valor considerado excelente frente aos 5m de amplitude da senóide. Tentou-se fazer o controle do submarino pelo método de alocação de pólos primeiramente em SCILAB, mas o resultado obtido foi péssimo, não chegando a trajetória nem a caracterizar uma senóide. Isso se deu provavelmente pelo algoritmo usado pelo programa que, em alguns pontos, divergia. Sabendo-se que a teoria e o código aplicado aplicados estavam corretos, foi decidido tentar em MATLAB, onde foi obtido êxito, como mostrado acima. 12.3. Seguidor de Trajetórias por Controle Linear Quadrático Mais uma vez não será necessário repetir toda a teoria já descrita no item 11.XX, onde um observador de estados já foi desenvolvido pelo método de controle Linear Quadrático. Para o seguidor de trajetória as equações aplicadas são as mesmas, diferenciando, novamente, apenas o fato de serem necessárias mais de uma matriz de controle, devido aos diferentes pontos em torno dos quais o sistema foi linearizado. Para a obtenção dos resultados que serão apresentados mais adiante, foi utilizada as seguintes matizes de ponderação Q e R: ⎡1 ⎢0 ⎢ ⎢0 Q=⎢ ⎢0 ⎢0 ⎢ ⎣⎢0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 4 0 10 0 0 0 10 4 0 0 0 0⎤ 0⎥⎥ 0⎥ ⎥ 0⎥ 0⎥ ⎥ 1⎦⎥ ⎡1 0 ⎤ R=⎢ ⎥ ⎣0 1 ⎦ e Estas matrizes também foram atingidas por tentativa e erro, apesar de ela ser intuitiva. Os maiores valores no quarto e quinto elementos da diagonal representam um 44 45 maior esforço para manter as variáveis X e Y o mais próximo possível do definido, ou seja, um esforço maior para tentar manter o submarino na trajetória. Caso fosse escolhido o primeiro elemento da diagonal, seria realizado um esforço maior para tentar manter a velocidade U próxima àquela definida para a realização da trajetória. Os resultados obtidos estão apresentados a seguir: Figura 25: Desvios das variáveis de Estado obtidos com o Método do LQ Figura 26: Trajetória Percorrida pelo Submarino Controlado por LQ É importante notar que o resultado obtido para o LQ e para o AP são muito semelhantes, inclusive o efeito causado pela mudança da Matriz de Controle calculada para cada trecho. Mesmo assim o submarino responde muito bem ao controle aplicado, conseguindo seguir a trajetória com erro muito pequeno proporcionalmente. Isso pode ser comprovado com a Figura XX, onde são mostrados os erros das variáveis de estado em 45 46 relação à trajetória definida. Os erros de posição, tanto X como Y não superam os 0,4m, enquanto que a trajetória escolhida tem amplitude de 10 metros. Vale notar também que nas curvas o erro apresentado é maior, o que deve ser causado pela dificuldade do submarino em fazer a curva, uma vez que ele não possui propulsores laterais, e quando o VSNT finaliza a curva o erro é reduzido, porém, nunca se reduz a zero. 13. Controle Clássico Nesta seção o controle do submersível será implementado utilizando-se a teoria clássica com a lei de controle do tipo PID, isto é, Proporcional-Integral-Derivativo. Para isso, é preciso partir das funções de transferência do sistema, que caracterizam a abordagem freqüencial da teoria de controle. Tais funções de transferência podem ser facilmente obtidas das equações matriciais desenvolvidas para o controle no espaço de estados, equações (13), principalmente quando se tem acesso a um software como o Scilab (comando “ss2tf”). Apesar desta relação imediata entre funções de transferência e equações do espaço de estados de um sistema, nesta seção as funções de transferência serão obtidas a partir do próprio modelo matemático do veículo, isso porque serão feitas algumas simplificações importantes que acabam sendo difíceis de serem realizadas a partir das equações de estado. No caso do submersível em questão, existe um alto grau de acoplamento entre os movimentos de avanço, deriva e rumo. No entanto, neste projeto de controle, por simplicidade, admite-se que os movimentos são desacoplados e que, por este motivo, os controladores podem ser projetados independentemente. Esta abordagem é relativamente comum na área de engenharia naval e oceânica [1]. 13.1. O Projeto do Controlador O primeiro passo para o projeto de um sistema de controle é a obtenção do modelo matemático do sistema [3]. Para tanto, toma-se por base as equações (1) e (8), aqui representadas sob nova numeração. 46 47 FX = (m + m11 ) ⋅ (u& − v ⋅ r ) FY = (m + m22 ) ⋅ (v& + u ⋅ r ) (42) N = ( I Z + m66 ) ⋅ r& X& = u ⋅ cosψ − v ⋅ senψ Y& = u ⋅ senψ + v ⋅ cosψ (43) ψ& = r Considerando unicamente o movimento de avanço, desprezando a influência das outras variáveis de controle: u& ⋅ (m + m11 ) = −c11 ⋅ u − d11 ⋅ u ⋅ u + FPX (44) Levando em consideração o movimento desacoplado, pode-se escrever que: X& = u e X&& = u& (45) Então, considerando apenas o termo linear de amortecimento: X&& ⋅ (m + m11 ) + c11 ⋅ X& = FPX (46) Aplicando-se a Transformada de Laplace, obtém-se: [(m + m11 ) ⋅ s 2 + c11 ⋅ s] ⋅ X ( s) = FPX ( s) (47) A função de transferência entre o deslocamento na direção X e a força propulsora é dada por: X ( s) 1 = FPX ( s) [(m + m11 ) ⋅ s 2 + c11 ⋅ s ] (48) Analogamente, para os movimentos transversal e de rumo: 47 48 1 Y (s) = FPY ( s) [(m + m22 ) ⋅ s 2 + c 22 ⋅ s] ψ ( s) FPN ( s) = (49) 1 [( I z + m66 ) ⋅ s 2 + c66 ⋅ s] (50) Sabe-se que, há um certo atraso entre o sinal de controle e atuação real dos propulsores. Para levar esse efeito em consideração introduziu-se entre o controlador e os atuadores um atraso de primeira ordem dado por: FPX ( s ) 1 = FPX ' ( s ) T ⋅ s + 1 (51) onde FPX ' ( s ) é a saída do controlador. Admitiu-se que a constante de tempo T seja da ordem de 0,5 segundo [1]. A figura 27 abaixo, mostra a estrutura de controle numa única direção, considerando a função de transferência do sistema e o atraso do propulsor. K P (1 + Td s) 1 T ⋅ s +1 1 M ⋅s + c⋅s 2 Figura 27: Diagrama de blocos - Controle para uma direção genérica. O controlador a ser projetado deve orientar o veículo segundo uma trajetória dada e mantê-lo, dentro de uma pequena tolerância. A passagem de uma orientação para outra deve realizar-se com o mínimo sobressinal e menor tempo de acomodação possível, levando em consideração a limitação de rotação dos propulsores. O controlador deve, também, ser ajustado de modo a não excitar excessivamente outros modos de oscilação do veículo [1]. Conforme pode ser observado pelas equações (48), (49) e (50) a função de transferência do veículo para uma dada direção é de um sistema de ordem 1, isto é, 48 49 apresenta um pólo na origem do plano complexo. Para aplicar o controle clássico a este tipo de sistema há de se observar que controladores PI (proporcional-integral) ou PID (proporcional-integral-derivativo) não são adequados, pois introduzem mais um pólo na origem do plano complexo, o que pode tornar o sistema instável [1]. Por este motivo desenvolver-se-á um controlador tipo PD (proporcional-derivativo), que é adequado inserir um amortecimento no sistema, favorecendo sua estabilidade. A lei de controle aqui aplicada é baseada no erro de posição do centro de gravidade do veículo em relação à posição de referência no instante t. Sejam no instante e X e eY os erros de traqueio das coordenadas X e Y: eX = X r − X eY = Yr − Y (52) (53) onde X r e Yr são as posições de referência definidas ao longo do tempo. Adotando o controlador PD, conforme justificado acima, as forças nestas direções são dadas por: de ⎞ ⎛ FPX = K pX ⋅ ⎜ e X + TdX ⋅ X ⎟ dt ⎠ ⎝ de ⎞ ⎛ FPY = K pY ⋅ ⎜ eY + TdY ⋅ Y ⎟ dt ⎠ ⎝ (54) (55) onde K p é o ganho e Td é a constante de tempo do controlador. Resta agora projetar estas forças no sistema de coordenadas móveis fixo ao veículo. Convém ressaltar que o VSNT não possui propulsores laterais e, assim sendo, somente será considerada a projeção das forças obtidas anteriormente na direção OX1, que resulta em: FP = FPX . cosψ + FPY .senψ (56) Para o rumo será admite-se que a sua referência é dada por [1]: 49 50 ψ r = arctg Yr − Y Xr − X (57) O momento de rumo requerido é, então, dado por: deψ ⎞ ⎛ ⎟ FPN = K pN ⋅ ⎜⎜ eψ + Tdψ ⋅ dt ⎟⎠ ⎝ (58) 13.2. Alocação de Empuxo Até o presente momento foram determinadas as forças requeridas nas direções de avanço e deriva, bem como o momento de guinada. Estes esforços devem ser realizados pelos dois propulsores do submersível. No plano horizontal o empuxo de cada um dos propulsores pode ser determinado resolvendo-se o seguinte sistema de equações: F1 + F2 = FP F1 ⋅ d d − F2 ⋅ = FPN 2 2 (59) Onde F1 e F2 são as forças dos propulsores de popa e d é a distância entre os eixos de rotação dos propulsores. Resolvendo-se este sistema de equações obtém-se que os empuxos são dados pelas equações (60) e (61). Tal cálculo é feito para se descobrir as forças necessárias nos propulsores para que o veículo siga a trajetória estabelecida apesar das perturbações. Para um projeto aplicado de controle, esta é uma etapa muito importante, no entanto, no presente trabalho limita-se a mostrar a eficácia do controlador. F1 = FP FPN + d 2 (60) F2 = FP FPN − 2 d (61) 50 51 13.3. Seleção dos Parâmetros de Controle Para determinar os valores dos parâmetros dos controladores PD, que constituemse em seis no total, ou seja, Kp e Td para cada um dos três movimentos possíveis, admitiu-se que tais movimentos sejam completamente independentes e amortecidos linearmente. A função de transferência em malha aberta deste sistema para uma direção genérica é dada por: x( s) K p ⋅ (1 + Td ⋅ s ) 1 = . e( s ) (T ⋅ s + 1) s ⋅ ( M G ⋅ s + c) (62) O erro deste sistema é dado por: e( s ) = onde G ( s ) = 1 .x r ( s ) 1 + G ( s) K p ⋅ (1 + Td ⋅ s) (T ⋅ s + 1) . (63) 1 s ⋅ ( M G ⋅ s + c) (64) Pode-se mostrar que para sistemas como este, do tipo 1, o erro em regime permanente é zero para entrada de referência igual a degrau unitário e igual a 1/Kp para entrada rampa [1]. A função de transferência entre a saída e a referência para uma direção genérica é dada por: K p ⋅ (1 + Td ⋅ s ) x( s) = 3 xr ( s ) T ⋅ M G ⋅ s + (T ⋅ c + M G ) ⋅ s 2 + (c + K p ⋅ Td ) s + K p (65) Os parâmetros do controlador foram selecionados através do método de tentativa e erro tomando como referência os valores sugeridos pelo critério de Ziegler-Nichols e procurando observar a resposta do sistema considerando-se uma entrada degrau no sinal de referência. Para orientar a busca variou-se Td dentro de uma determinada faixa e o ganho foi selecionado baseando-se no gráfico do lugar das raízes. Para cada par de parâmetros do sistema foi efetuada uma simulação dinâmica e procurou-se selecionar 51 52 ganhos que apresentassem melhor tempo de resposta e sem sobressinal. Tais procedimentos foram realizados por Sorani utilizando recursos do Matlab. Os parâmetros obtidos para o controlador estão exibidos na tabela 1 [1]: Tabela 1: Parâmetros de sintonia do controlador PD. X Y ψ K pi 11 10 12 Tdi 3 4 1 Uma vez conhecidos os parâmetros do controlador para cada uma das direções verificou-se o desempenho de todo o sistema de controle através de simulação dinâmica considerando o modelo matemático completo e impondo uma determinada trajetória para o veículo. Uma trajetória idêntica àquela do item 12.1 sujeita às mesmas condições de perturbação dos itens 12.2 e 12.3, isto é, uma correnteza que proporciona uma força constante de módulo 5N na direção positiva do eixo Y, foi imposta ao veículo visando verificar a eficiência do controlador PD desenvolvido. A ferramenta computacional utilizada nesta simulação foi o Simulink (Matlab). Um diagrama de blocos foi construído a partir das equações (65) e a força de perturbação foi inserida conforme mostra a figura 29. Figura 28: Diagrama de blocos no Simulink para o controlador PD. 52 53 O gráfico da figura 29 a seguir mostra o comportamento do veículo ao trilhar a trajetória senoidal imposta, tomando como base a trajetória desejada. Figura 29: Submersível com PD – Trajetória real (vermelha) e trajetória de referência (azul) Observa-se claramente que o desempenho do controlador foi satisfatório e semelhante ao desempenho do seguidor de trajetórias desenvolvido a partir do Método da Alocação de Pólos e do Método Linear Quadrático. No entanto, o erro em regime apresentado pelo controlador PD foi um pouco superior àquele obtido com as teorias de controle baseadas no espaço de estados (cerca de 0,6m). É importante ressaltar que o atraso na atuação do controlador foi considerado apenas no projeto do PD, assim, já era esperado um certo “delay” entre a trajetória efetiva e a trajetória de referência. Tal comportamento pode ser mais facilmente observado a partir da simulação do mesmo seguidor de trajetórias sem a perturbação introduzida no caso anterior, conforme mostra a figura 30. 53 54 14. Conclusão No presente trabalho de controle foram desenvolvidos reguladores de estados e seguidores de trajetórias para um Veículo Submersível Não-Tripulado para operação em ambiente fluvial. As teorias de controle aplicadas foram: Método da Alocação de Pólos, Método Linear Quadrático e a Teoria Clássica de controle, mais especificamente o controlador PD. Antes de projetar os controladores, foi necessário realizar a modelagem matemática do veículo e verificar a estabilidade do sistema, o que foi feito a partir do cálculo de seus pólos, através do Critério de Routh-Hurwitz e a partir da observação dos Diagramas de Bode e de Nyquist. Em seguida, verificou-se a controlabilidade e observabilidade do submersível. O sistema mostrou-se estável, controlável e observável, permitindo o prosseguimento do projeto sem a necessidade de modificações em seu modelo matemático. Para evitar o uso desnecessário de sensores, o que tornaria o projeto de controle caro e inviável, foi implementado um observador de estados de ordem plena. Desta forma, foi possível projetar controladores eficazes a partir da medição de apenas três das seis variáveis de estado envolvidas no problema. Foi desenvolvido um regulador de estados com o objetivo de manter o veículo numa trajetória retilínea e a uma velocidade de avanço constante de 0,15m/s apesar de perturbações laterais que tendem a desviá-lo da missão pretendida. Foram feitos dois reguladores de estados com a mesma função, um deles a partir do Método da Alocação de Pólos e o outro baseado no Método Linear Quadrático. Os resultados obtidos foram satisfatórios e bastante semelhantes, o que demonstra a correção na aplicação das teorias de controle. Para o seguimento de trajetórias de referência foram elaborados controladores baseados em nos Métodos da Alocação de Pólos, Linear Quadrático e Controle PD (Proporcional-Derivativo). Apesar de a proposta inicial constituir na formulação de um controlador tipo PID (Proporcional-Integral-Derivativo), o emprego de um controlador de caráter integral adicionaria mais um pólo à origem do plano complexo, o que poderia tornar o sistema instável. Por este motivo, optou-se pelo uso do controlador PD. Os diferentes seguidores de trajetória foram testados a partir de simulações dinâmicas nas quais uma trajetória senoidal de referência foi imposta apesar da existência 54 55 de perturbações externas causadas por correntezas. Nas simulações, as perturbações foram consideradas como uma força constante, o que modela matematicamente o efeito do fluxo das águas de um rio. Os três seguidores de trajetória, assim como os reguladores de estado, apresentaram certo erro em regime que é característico do sistema estudado. Em geral as respostas obtidas foram bastante próximas e satisfatórias, porém o seguidor por Alocação de Pólos apresentou uma pequena oscilação na resposta e o seguidor AP exibiu um erro em regime um pouco superior àquele apresentado pelos outros dois seguidores, isto é, cerca de 0,6m de desvio em relação à referência. Muitas dificuldades foram encontradas, principalmente quando da elaboração do relatório parcial. No entanto, com esta versão final do trabalho, conseguiu-se atingir os objetivos e os resultados obtidos foram bastante realistas e plausíveis. 55 56 14. Referências Bibliográficas [1] SORANI, L. A., 2003, “Estudo da Dinâmica e Controle de um Submersível não Tripulado para Uso no Ambiente Fluvial”, Dissertação de Mestrado apresentada à Escola Politécnica, São Paulo. [2] FOSSEN, T. I., 1994, “Guidance and Control of Ocean Vehicles”, John Wiley & Sons, Chichester. [3] OGATA, K., 1982, “Engenharia de Controle Moderno” – 8ª edição, Prentice Hall do Brasil, Rio de Janeiro. [4] TEIXEIRA, R., 2001, “Missões de Monitorização Ambiental Utilizando o Veículo Submarino Isurus”, Instituto de Sistemas e Robótica da Faculdade de Engenharia da Universidade do Porto, Porto. [5] TRABUCO, J., TAVARES, R., 2000, “Desenvolvimento de um Sistema de Navegação para um Veículo Autônomo Submarino”, Trabalho Final de Curso apresentado ao Instituto Superior Técnico da Universidade Técnica de Lisboa, Lisboa. 56 57 Anexo A – Parâmetros Principais do submersível VSNT Jaú I Dados Módulo Unidade Comprimento 1,315 m Largura 0,406 m Altura 1,335 M Massa (m) 164,14 kg Momento de Inércia (Iz) 10,64 kg.m2 Sentido Longitudinal (m11) 125,47 kg Sentido Transversal (m22) 106,25 kg Sentido Rotacional (m66) 5,96 kg.m2 Sentido Longitudinal (c11) 39,63 kg/s Sentido Transversal (c22) 78,07 kg/s Sentido Rotacional (c66) 7,906 kg.m2/s Sentido Longitudinal (d11) 165,87 kg/m Sentido Transversal (d22) 936,69 kg/m Sentido Rotacional (d66) 83,20 kg/m2 Número de Hélices 2 - Configuração Longitudinal - Dimensões Principais Inércia Massas Adicionais Amortecimentos Viscosos Lineares Quadráticos Propulsão Distância entre Propulsores (d) 0,265 m Velocidade Máxima 0,30 m/s Velocidade Média 0,15 m/s 57 58 Anexo B – Determinação da Trajetória a ser Seguida em Autolev (1) constants alpha,beta,gamma (2) variables x,y,psi,u,v,r (3) x=t/gamma -> (4) X = T/GAMMA (5) y=alpha*sin(beta*t/gamma) -> (6) Y = ALPHA*SIN(BETA*T/GAMMA) (7) psi=atan(alpha*beta*cos(beta*t/gamma)) -> (8) PSI = ATAN(ALPHA*BETA*COS(BETA*T/GAMMA)) (9) euler[1]=-d(x,t)+u*cos(psi)-v*sin(psi) -> (10) EULER[1] = U*COS(PSI) - 1/GAMMA - V*SIN(PSI) (11) euler[2]=-d(y,t)+u*sin(psi)+v*cos(psi) -> (12) EULER[2] = U*SIN(PSI) + V*COS(PSI) - ALPHA*BETA*COS(BETA*T/GAMMA)/GAMMA (13) euler[3]=-d(psi,t)+r -> (14) EULER[3] = ALPHA*BETA^2*SIN(BETA*T/GAMMA)/ (GAMMA*(1+ALPHA^2*BETA^2*COS(BETA*T/GAMMA)^2)) + R (15) solve(euler,u,v,r) -> (16) U = (COS(PSI)+ALPHA*BETA*COS(BETA*T/GAMMA)*SIN(PSI))/GAMMA -> (17) V = -(SIN(PSI)-ALPHA*BETA*COS(BETA*T/GAMMA)*COS(PSI))/GAMMA -> (18) R = -ALPHA*BETA^2*SIN(BETA*T/GAMMA)/ (GAMMA*(1+ALPHA^2*BETA^2*COS(BETA*T/GAMMA)^2)) (19) explicit(u,t) -> (20) U = (COS(ATAN(ALPHA*BETA*COS(BETA*T/GAMMA)))+ALPHA*BETA*COS(BETA*T/GAMMA)* SIN(ATAN(ALPHA*BETA*COS(BETA*T/GAMMA))))/GAMMA (21) explicit(v,t) -> (22) V = -(SIN(ATAN(ALPHA*BETA*COS(BETA*T/GAMMA)))ALPHA*BETA*COS(BETA*T/GAMMA)*COS(ATAN(ALPHA*BETA*COS(BETA*T/GAMMA))))/GAMMA (23) explicit(r,t) -> (24) R = -ALPHA*BETA^2*SIN(BETA*T/GAMMA)/ (GAMMA*(1+ALPHA^2*BETA^2*COS(BETA*T/GAMMA)^2)) 58 59 Anexo C – Código Fonte para o Regulador de Estados em Scilab //Parâmetros do submarino c11=39.63; c22=78.07; c66=7.906; d11=165.87; d22=936.69; d66=83.20; m=164.14; m11=125.47; m22=106.25; m66=5.96; Iz=10.64; d=0.265; //Referências ubarra=0.15; vbarra=0; rbarra=0; psibarra=0; //Condição inicial x0=[-0.15;0;0;0;0;0]; //Sistema em malha aberta A=[(-c11-2*d11*abs(ubarra))/(m+m11) rbarra vbarra 0 0 0;-rbarra (-c22-2*d22*abs(vbarra))/(m+m22) -ubarra 0 0 0;0 0 (-c66-2*d66*abs(rbarra))/(Iz+m66) 0 0 0;cos(psibarra) -sin(psibarra) 0 0 0 -ubarra*sin(psibarra)vbarra*cos(psibarra);sin(psibarra) cos(psibarra) 0 0 0 ubarra*cos(psibarra)-vbarra*sin(psibarra);0 0 1 0 0 0]; B=[1/(m+m11) 1/(m+m11);0 0;d/(2*(Iz+m66)) -d/(2*(Iz+m66));0 0;0 0;0 0]; C=diag([0 0 0 1 1 1]); D=zeros(6,2); E=[cos(psibarra)/(m+m11) sin(psibarra)/(m+m11);-sin(psibarra)/(m+m22) cos(psibarra)/(m+m22);0 0;0 0;0 0;0 0]; //Controlabilidade postoC=contr(A,B); if postoC==6 disp('Sistema Controlável') end if postoC~=6 disp('Sistema nao Controlável') end //Observabilidade O=obsv_mat(A,C); postoO=rank(O); if postoO==6 disp('Sistema Observável') end if postoO~=6 disp('Sistema nao Observável') end //Matriz de Transicao deltaT=1; Ident=diag([1 1 1 1 1 1]); psi=Ident+A*deltaT+(A^2*deltaT^2)/2+(A^3*deltaT^3)/6 theta=deltaT*psi*B t=1:1:756; 59 60 u=ones(2,max(size(t))); xmt=[0;0;0;0;0;0]; for i=1:1:max(size(t))-1 xmt(:,i+1)=psi*xmt(:,i)+theta*u(:,i); end xset('window', 5) plot(t,xmt(1,:)); xtitle('Velocidade U (m/s) no Tempo t (s)') xset('window', 6) plot(t,xmt(4,:)); xtitle('Trajetoria X (m) no Tempo t (s)') xset('window', 7) plot(xmt(4,:),xmt(5,:)); xtitle('Trajetoria Y (m) por X (m)') //Auto-valores, matriz de transferência, diagrama de pólos, Bode e Nyquist //sub=syslin('c',A,B,C,D,x0); //autoval=spec(A); //disp(autoval,'Autovalores='); //G=ss2tf(sub); //disp(G,'Funcoes de Transferência='); //xset('window',10); //bode(G(1,1)); //xset('window',11); //bode(G(1,2)); //xset('window',12); //bode(G(2,1)); //xset('window',13); //bode(G(2,2)); //xset('window',14); //bode(G(3,1)); //xset('window',15); //bode(G(3,2)); //xset('window',16); //nyquist(G(1,1)); //xset('window',17); //nyquist(G(1,2)); //xset('window',18); //nyquist(G(2,1)); //xset('window',19); //nyquist(G(2,2)); //xset('window',20); //nyquist(G(3,1)); //xset('window',21); //nyquist(G(3,2)); //xset('window',0) //plzr(sub); //Alocação de pólos do observador polosobs=[-3,-3,-3,-3,-3,-3]; Ke=ppol(A',C',polosobs)'; //Método da alocação de pólos polosap=[-0.87,-0.55,-0.72+0.81*%i,-0.72-0.81*%i,-0.48+0.77*%i,-0.48-0.77*%i]; Kap=ppol(A,B,polosap); AKap=A-B*Kap; Aapobs=[AKap B*Kap; zeros(6,6) A-Ke*C]; Eapobs=[E; zeros(6,2)]; Capobs=diag(ones(12,1)); Dapobs=zeros(12,2); 60 61 x0apobs=[x0;zeros(6,1)]; t=0:0.5:60; [lin col]=size(t); p=[zeros(1,col);5*ones(1,col)]; subcontapobs=syslin('c',Aapobs,Eapobs,Capobs,Dapobs,x0apobs); yapobs=csim(p,t,subcontapobs); Xbarra=ubarra*t; Ybarra=zeros(1,col); PSIbarra=zeros(1,col); Xtotapobs=Xbarra+yapobs(4,:); Ytotapobs=Ybarra+yapobs(5,:); PSItotapobs=PSIbarra+yapobs(6,:); xset('window',1) plot2d(t,yapobs(1,:),style=color("red"),rect=[0,-0.4,60,0.2]); plot2d(t,yapobs(2,:),style=color("blue"),rect=[0,-0.4,60,0.2]); plot2d(t,yapobs(3,:),style=color("green"),rect=[0,-0.4,60,0.2]); xtitle('AP - Desvios das variáveis de estado: du (vermelho), dv (azul), dr (verde)','Tempo (s)','Desvios'); xset('window',2) plot2d(Xbarra,Ybarra,style=color("blue"),rect=[0,-0.02,9,0.14]); plot2d(Xtotapobs,Ytotapobs,style=color("red"),rect=[0,-0.02,9,0.14]); xtitle('AP - Trajetórias: real(vermelho) e desejada(azul)','X','Y'); //Método linear quadrático Q=diag([1 1 1 10^2 10^5 1]); R=diag([1 1]); BR=B*inv(R)*B'; P=ricc(A,BR,Q,'cont'); Klq=inv(R)*B'*P; AKlq=A-B*Klq; Alqobs=[AKlq B*Klq; zeros(6,6) A-Ke*C]; Elqobs=[E; zeros(6,2)]; Clqobs=diag(ones(12,1)); Dlqobs=zeros(12,2); x0lqobs=[x0;zeros(6,1)]; t=0:0.5:60; [lin col]=size(t); p=[zeros(1,col);5*ones(1,col)]; subcontlqobs=syslin('c',Alqobs,Elqobs,Clqobs,Dlqobs,x0lqobs); ylqobs=csim(p,t,subcontlqobs); Xbarra=ubarra*t; Ybarra=zeros(1,col); PSIbarra=zeros(1,col); Xtotlqobs=Xbarra+ylqobs(4,:); Ytotlqobs=Ybarra+ylqobs(5,:); PSItotlqobs=PSIbarra+ylqobs(6,:); xset('window',3) plot2d(t,ylqobs(1,:),style=color("red"),rect=[0,-0.4,60,0.2]); plot2d(t,ylqobs(2,:),style=color("blue"),rect=[0,-0.4,60,0.2]); plot2d(t,ylqobs(3,:),style=color("green"),rect=[0,-0.4,60,0.2]); xtitle('LQ - Desvios das variáveis de estado: du (vermelho), dv (azul), dr (verde)','Tempo (s)','Desvios'); xset('window',4) plot2d(Xbarra,Ybarra,style=color("blue"),rect=[0,-0.02,9,0.14]); plot2d(Xtotlqobs,Ytotlqobs,style=color("red"), rect=[0,-0.02,9,0.14]); 61 62 xtitle('LQ - Trajetórias: real(vermelho) e desejada(azul)','X','Y'); Anexo D – Código Fonte para o Seguidor de Trajetória em Matlab function VSNT = VSNT %Trajetórias e Pontos de Equilíbrio alpha = 5; beta = 2*pi()/30; gama = 24; T = 0:72:720; t = 1:1:756; Xbara = t/gama; Ybara = alpha*sin(beta*t/gama); psibara = atan(alpha*beta*cos(beta*t/gama)); % plot(Xbara,Ybara); for i=1:1:11 psi(i) = atan(alpha*beta*cos(beta*T(i)/gama)); u(i) = (cos(psi(i))+alpha*beta*cos(beta*T(i)/gama)*sin(psi(i)))/gama; v(i) = (alpha*beta*cos(beta*T(i)/gama)*cos(psi(i))-sin(psi(i)))/gama; r(i) = -alpha*beta^2*sin(beta*T(i)/gama)/(gama*(1+alpha^2*beta^2*cos(beta*T(i)/gama)^2)); end %Parâmetros do Submarino c11 = 39.63; c22 = 78.07; c66 = 7.906; d11 = 165.87; d22 = 936.69; d66 = 83.20; m = 164.14; m11 = 125.47; m22 = 106.25; m66 = 5.96; Iz = 10.64; d = 0.265; % Calculo das Matrizes constantes no tempo % As Matrizes A e E, por nao serem constantes, serao calculadas em cada trecho B = [1/(m+m11) 1/(m+m11);0 0;d/(2*(Iz+m66)) -d/(2*(Iz+m66));0 0;0 0;0 0]; C = diag(ones(1,6)); C(1,1) = 0; C(2,2) = 0; C(3,3) = 0; D = zeros(6,2); % Análise de Controlabilidade e observabilidade for i=1:1:11 A = [(-c11-2*d11*abs(u(i)))/(m+m11) r(i) v(i) 0 0 0;-r(i) (-c22-2*d22*abs(v(i)))/(m+m22) -u(i) 0 0 0;0 0 (c66-2*d66*abs(r(i)))/(Iz+m66) 0 0 0;cos(psi(i)) -sin(psi(i)) 0 0 0 -u(i)*sin(psi(i))-v(i)*cos(psi(i));sin(psi(i)) cos(psi(i)) 0 0 0 u(i)*cos(psi(i))-v(i)*sin(psi(i));0 0 1 0 0 0]; Contr(i) = rank(ctrb(A,B)); if Contr(i) ~= 6 resultc = sprintf('A Matriz: [%s] nao é controlável',i); msgbox(resultc,'Controlabilidade'); end Observ(i) = rank(obsv(A,C)); if Observ(i) ~= 6 resulto = sprintf('A Matriz: [%s] nao é observável',i); 62 63 msgbox(resulto,'Observabilidade'); end end %O programa só se manifesta caso o sistema nao seja conrolável ou observável. % Auto-valores, matriz de Transferência, diagrama de pólos x0=[0;0;0;0;0;0]; for i=1:1:11 A = [(-c11-2*d11*abs(u(i)))/(m+m11) r(i) v(i) 0 0 0;-r(i) (-c22-2*d22*abs(v(i)))/(m+m22) -u(i) 0 0 0;0 0 (c66-2*d66*abs(r(i)))/(Iz+m66) 0 0 0;cos(psi(i)) -sin(psi(i)) 0 0 0 -u(i)*sin(psi(i))-v(i)*cos(psi(i));sin(psi(i)) cos(psi(i)) 0 0 0 u(i)*cos(psi(i))-v(i)*sin(psi(i));0 0 1 0 0 0]; sub = ss(A,B,C,D); %Quando se deseja obter as funcoes de transferencia e todos os diagramas de polos tira-se o comentário das 4 linhas abaixo. Elas ficam comentadas para que cada vez que se execute o programa nao sejam todas plotadas. % autoval = eig(A) % ft = ss2tf(A,B,C,D,2) % figure % pzmap(sub); end % Método de Alocacao de Polos ira = sqrt(-1); x0 = [0;0;0;0;0;0]; polosap = [-1.8833,-0.2367+0.4632*ira,-0.2367-0.4632*ira,-0.1,-0.21+0.7*ira,-0.21-0.7*ira]; for i = 1:1:11 A = [(-c11-2*d11*abs(u(i)))/(m+m11) r(i) v(i) 0 0 0;-r(i) (-c22-2*d22*abs(v(i)))/(m+m22) -u(i) 0 0 0;0 0 (c66-2*d66*abs(r(i)))/(Iz+m66) 0 0 0;cos(psi(i)) -sin(psi(i)) 0 0 0 -u(i)*sin(psi(i))-v(i)*cos(psi(i));sin(psi(i)) cos(psi(i)) 0 0 0 u(i)*cos(psi(i))-v(i)*sin(psi(i));0 0 1 0 0 0]; E = [cos(psi(i))/(m+m11) sin(psi(i))/(m+m11);-sin(psi(i))/(m+m22) cos(psi(i))/(m+m22);0 0;0 0;0 0;0 0]; Kap = place(A,B,polosap); AKap = A-B*Kap; % verifap = spec(AKap); t = 0:1:72; [lin col] = size(t); P = [zeros(1,col);5*ones(1,col)]; subcontap = ss(AKap,E,C,D); Yap = lsim(subcontap,P,t,x0); if i == 1 Respap = Yap; x0 = [Yap(36,1);Yap(36,2);Yap(36,3);Yap(36,4);Yap(36,5);Yap(36,6)]; end if i ~= 1 conti = (i-1)*72-36; contf = (i-1)*72+36; for j = conti:1:contf Respap(j,1) = Yap(j-conti+1,1); Respap(j,2) = Yap(j-conti+1,2); Respap(j,3) = Yap(j-conti+1,3); Respap(j,4) = Yap(j-conti+1,4); Respap(j,5) = Yap(j-conti+1,5); Respap(j,6) = Yap(j-conti+1,6); end x0 = [Yap(73,1);Yap(73,2);Yap(73,3);Yap(73,4);Yap(73,5);Yap(73,6)]; end end t = 1:1:756; Xtotap = Xbara.'+Respap(:,4); Ytotap = Ybara.'+Respap(:,5); psitotap = psibara.'+Respap(:,6); 63 64 figure plot(t,Respap(:,4),'red'); hold on; plot(t,Respap(:,5),'green'); hold on; plot(t,Respap(:,6),'blue'); title('AP - Desvios das variáveis de estado: X(vermelho), Y(verde) e PSI(azul)'); xlabel('Tempo (s)') ylabel('Desvios') figure plot(Xbara,Ybara,'blue'); hold on; plot(Xtotap,Ytotap,'red'); title('AP - Trajetórias: real(vermelho) e desejada(azul)'); xlabel('Saida x') ylabel('Saída y') % Método linear quadrático (funcionando) Q = diag([1 1 1 10000 10000 1]); R = diag(ones(1,2)); x0 = [0; 0; 0; 0; 0; 0]; for i = 1:1:11 A = [(-c11-2*d11*abs(u(i)))/(m+m11) r(i) v(i) 0 0 0;-r(i) (-c22-2*d22*abs(v(i)))/(m+m22) -u(i) 0 0 0;0 0 (-c662*d66*abs(r(i)))/(Iz+m66) 0 0 0;cos(psi(i)) -sin(psi(i)) 0 0 0 -u(i)*sin(psi(i))-v(i)*cos(psi(i));sin(psi(i)) cos(psi(i)) 0 0 0 u(i)*cos(psi(i))-v(i)*sin(psi(i));0 0 1 0 0 0]; E = [cos(psi(i))/(m+m11) sin(psi(i))/(m+m11);-sin(psi(i))/(m+m22) cos(psi(i))/(m+m22);0 0;0 0;0 0;0 0]; %BR = B*inv(R)*B'; [Klq,P,e] = lqr(A,B,Q,R); %Klq = inv(R)*B'*P; AKlq = A-B*Klq; %spec(AKlq) t = 0:1:72; [lin col] = size(t); P = [zeros(1,col);5*ones(1,col)]; subcont = ss(AKlq,E,C,D); Ylq = lsim(subcont,P,t,x0); if i == 1 Resplq = Ylq; x0 = [Ylq(36,1);Ylq(36,2);Ylq(36,3);Ylq(36,4);Ylq(36,5);Ylq(36,6)]; end if i ~= 1 conti = (i-1)*72-36; contf = (i-1)*72+36; for j = conti:1:contf Resplq(j,1) = Ylq(j-conti+1,1); Resplq(j,2) = Ylq(j-conti+1,2); Resplq(j,3) = Ylq(j-conti+1,3); Resplq(j,4) = Ylq(j-conti+1,4); Resplq(j,5) = Ylq(j-conti+1,5); Resplq(j,6) = Ylq(j-conti+1,6); end x0 = [Ylq(73,1);Ylq(73,2);Ylq(73,3);Ylq(73,4);Ylq(73,5);Ylq(73,6)]; end end t = 1:1:756; Xtotlq = Xbara.' + Resplq(:,4); %hold on; Ytotlq = Ybara.' + Resplq(:,5); %hold on; PSItotlq = psibara.' + Resplq(:,6); 64 65 figure plot(t,Resplq(:,4),'red'); hold on; plot(t,Resplq(:,5),'green'); hold on; plot(t,Resplq(:,6),'blue'); title('LQ - Desvios das variáveis de estado: X(vermelho), Y(verde) e PSI(azul)'); xlabel('Tempo (s)') ylabel('Desvios') figure plot(Xbara,Ybara,'blue'); hold on; plot(Xtotlq,Ytotlq,'red'); title('LQ - Trajetórias: real(vermelho) e desejada(azul)'); xlabel('Saida x') ylabel('Saída y') 65