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

Projeto De Sistema De Controle De Tanques Não Lineares - Teoria

Este trabalho apresenta os processos de modelagem e projeto de controlador proporcional e integrativo (PI) para estabelecer os níveis desejados de água em um sistema de tanques acoplados.

   EMBED


Share

Transcript

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA ELÉTRICA ENGC54 - LABORATÓRIO INTEGRADO VI Alunos: Lucas Marins Batista, [email protected] Ueslei Reis dos Santos Júnior, [email protected] Wellington Passos, [email protected] Turma: T01 Professor: Bernardo Ordonez PROJETO DE SISTEMA DE CONTROLE DE TANQUES NÃO LINEARES TEORIA Salvador – BA, 06 de Janeiro de 2013 1/17 1. Objetivos Realizar a modelagem de um sistema de tanques acoplados de dinâmica não linear e projeto de controlador PI capaz de levar em simulação o nível da água a valores previamente estabelecidos mantendo em malha fechada um tempo de acomodação com critério de 2% menor que 150s e sobressinal máximo de 20%, como avaliação parcial para a disciplina ENGC54 - Laboratório integrado 6 da graduação em Engenharia Elétrica da UFBA. 2. Introdução Este trabalho apresenta os processos de modelagem e projeto de controlador proporcional e integrativo (PI) para estabelecer os níveis desejados de água em um sistema de tanques acoplados. Dividido em duas partes, o segundo trabalho “Projeto de Sistema de Controle de Tanques não Lineares - Prática“, propõe uma implementação prática do projeto desenvolvido. No item três (3) é realizada a modelagem dos tanques e são desenvolvidas as equações dinâmicas. O item quatro (4) aborda as técnicas de linearização e projeto do controlador PI. O item cinco (5) conclui o trabalho. O apêndice ou item sete (7) apresenta o conjunto de códigos feitos em Matlab usados para auxiliar nas tarefas. 3. Modelagem e dinâmica dos tanques Possuir um ou mais modelos para um sistema permite que se possam realizar previsões matemáticas sobre o seu comportamento sob qualquer tipo de entrada e possibilita o projeto dos controladores. Os primeiros itens são dedicados a obter um modelo matemático para os tanques. Logo após, é verificado o seu comportamento para variações em torno do ponto de operação. Com esse teste, é possível verificar o tempo de acomodação e a existência de sobressinal na resposta em malha aberta. 2/17 3.1. Geometria do tanque em trapézio Uma representação em duas dimensões do tanque em trapézio é mostrada na figura 1. Enquanto a profundidade é constante, o comprimento varia com a altura na dependência do ângulo teta. Figura 1 – Tranque trapezoidal A área da seção transversal é dada por: Utilizando a relação trigonométrica no triangulo ABC: portanto, onde: d1 é o comprimento da base inferior do trapézio; d2 é o comprimento adicional da base do trapézio dependente do nível da água; d3 é o valor da profundidade do tanque h é o nível da água; é a inclinação do lado do trapézio em relação à sua base inferior. A1 é a área da seção transversal do tanque. 3/17 3.2. Geometria do tanque circular Uma representação em duas dimensões do tanque circular é mostrada na figura 2. Enquanto a profundidade é constante, o comprimento varia com a altura na dependência do raio da circunferência. Figura 2 – Tanque circular. Aplicando o Teorema de Pitágoras ao triângulo ABC, obtemos: Encontrando também a área da seção transversal: onde: R é o valor do raio da circunferência; h é o valor do nível da água em relação à base da circunferência; d3 é o valor da profundidade; x é o valor da metade do comprimento do tanque ao nível h. A2 é a área da secção transversal do tanque. 4/17 3.3. Dinâmica dos tanques acoplados Esta análise, que se aplica a ambos os tanques da figura 3, visa encontrar as equações diferenciais que descrevem o sistema. Partindo do princípio da conservação das massas: Sendo q a taxa de água armazenada no tanque e qout as vazões de saída. Logo, Figura 3 – Tanques acoplados As vazões de saída podem ser escritas na forma: Substituindo na relação anterior, isolando a derivada: Para os dois tanques, temos as equações que descrevem o fenômeno: 5/17 3.4. Pontos de equilíbrio No equilíbrio, ou em regime estacionário, a variação de água no tanque é zero, ou seja, A solução desse sistema são as vazões de entrada de regime estacionário em função das alturas desejadas: 3.5. Resultados de simulação Com o auxílio do Simulink e do código em Matlab do Apêndice, o conjunto de tanques foi simulado para o conjunto de constantes fornecidas na tabela 1: Grandeza Valor Nível desejado no tanque 1 (H1) 7cm Nível desejado no tanque 2 (H2) 2,5cm Nível inicial no tanque 1 (h01) 9cm Nível inicial no tanque 2 (h02) 5cm K1 2,5cm/s Kac 2cm/s Profundidade dos tanques (d3) 9,5cm Base do trapézio (d1) 9,1cm Inclinação do lado do trapézio ( ) 1,92344 Raio da circunferência 9,2cm Vazão de equilíbrio no tanque 1 (Qin1) 23,5cm/s Vazão de equilíbrio no tanque 2 (Qin2) 4cm/s Tabela 1 – Constantes fornecidas para as simulações. Os gráficos obtidos através da simulação estão representados na figura 4. Os degraus foram obtidos variando-se a condição inicial de cada tanque em 2 cm com relação ao nível final enquanto a entrada dos tanques foi alimentada com a vazão que levaria os níveis dos tanques até os valores desejados. É possível observar que a resposta a um degrau positivo é mais rápida que a resposta a um degrau negativo, evidenciando a natureza não linear do sistema. Como não há sobressinal nas respostas, a característica importante obtida é o período máximo de 200 segundos até a estabilização, que é aproximadamente igual para ambos os tanques. 6/17 Figura 4 – Respostas ao degrau dos tanques em malha aberta Figura 5 – Diagrama de blocos do sistema não linear de tanques acoplados 4. Projeto do controlador PI O projeto do controlador consiste em alocar os polos de malha fechada de modo que se satisfaçam alguns requisitos de desempenho desejados. Para as técnicas de projeto clássicas para a obtenção de um controlador PI possam ser aplicadas, é preciso antes linearizar as equações e desacoplar as variáveis do modelo através do projeto de um compensador. O controlador deve manter em malha fechada um tempo de acomodação com critério de 2% menor que 250s e sobressinal máximo de 20%. 7/17 4.1. Linearização A linearização aproxima a dinâmica do sistema por uma reta em torno do ponto de operação, como o apresentado na tabela 1. Utilizando a série de Taylor, pode-se aproximar uma função por: onde x0 é o conjunto das grandezas do sistema no ponto de operação, ou seja, é ndimensional. Partindo do modelo não linear do problema em questão: Definindo o ponto de equilíbrio como calculados anteriormente na tabela 1, pode-se aproximar F(x) no ponto de equilíbrio por: Como , podemos definir: Considerando , e definindo a saída desejada como , encontra-se: Na posse das matrizes A, B, C e D, têm-se o espaço de estados: 4.2. Desacoplamento de variáveis Para a sintonia do controlador através de métodos clássicos de controle, pode-se utilizar uma técnica de desacoplamento ideal, como na figura 6. Para sintonizar C(s), considera-se um sistema desacoplado T(s)=Y(s)/V(s). A ideia é que a relação 8/17 entrada/saída da planta torne-se uma matriz diagonal T(s) com o acréscimo de um compensador, e para isso calculamos uma matriz de transferência D(s): Figura 6 – Diagrama de blocos de controlador com compensador de desacoplamento. então: Relembrando que T(s) deve ser diagonal e pode ser uma matriz qualquer, pode fazer: e como T(s)=G(s)*D(s), um conjunto de manipulações matriciais levam à relação: Com o sistema desacoplado pode-se proceder a sintonia do controlador como um problema monovariável e depois incorporar D(s) ao controlador. Neste caso: e o controlador final: 4.3. Sintonia do controlador PI Um controlador PI possui a função de transferência na forma: onde: Kp é a constante de proporcionalidade; Ki é a constante de integração; Ta é o pólo de malha aberta adicionado pelo controlador PID. A sintonia do controlador consiste então em posicionar o zero do controlador PID e escolher um valor para o ganho proporcional. Para tanto, podemos escolher alguns 9/17 requerimentos desejáveis do regime transitório ou usar alguma das várias regras para sintonia existentes na literatura. Neste trabalho, optou-se por obter em malha fechada um tempo de acomodação com critério de 2% menor 150s e sobressinal máximo de 20%,. Levando em consideração que as funções de transferência de T(s) são da forma: Um bom critério é tornar o zero Ta do controlador entre 1,5 e 3 vezes o zero Z da planta. Com isso, o valor da constante KP pode ser escolhido comparando a equação característica do sistema em malha fechada: com a equação característica desejada: encontrando como solução: 4.4. Resultados O processo de linearização fornece um modelo no espaço de estados. Após o desacoplamento, as funções de transferência independentes para cada tanque são extraídas. Utilizando o mesmo procedimento do item 3.5, foram obtidas as respostas ao degrau da figura 7. Figura 7 – Respostas ao degrau dos modelos linearizados dos tanques. 10/17 Uma rápida observação é que o tempo de acomodação é idêntico não apenas entre os dois tanques, mas também entre as respostas aos degraus positivo e negativo, mantendo-se igual a 200s. A fim de verificar a validade da linearização, os gráficos do item 3.5 e os da figura 5 foram postos na figura 8. Podem-se observar poucas diferenças entre as curvas, de modo que o resultado da linearização é confiável e pode ser usado no lugar das equações reais para o projeto do controlador. Figura 8 – Validação dos resultados da linearização Do projeto do controlador PI, foram obtidas as funções de transferência: O desempenho dos controladores pode ser observado na figura 9, obtida utilizando os mesmos critérios do item 3.5, utilizando o modelo não linear durante a simulação. Lembrando que Ctotal = D(s)*C(s). 11/17 Figura 9 – Resposta ao degrau do sistema controlado em malha fechada. As principais características do sistema final são um sobressinal máximo igual a 10% e um tempo de acomodação de aproximadamente 60s, atingido os objetivos definidos no início do trabalho. São evidentes as diferenças nas respostas aos degraus positivo e negativo dadas as não linearidades. Um último gráfico de interesse são os sinais de controle usados para a obtenção da resposta do controlador, apresentados na figura 10. Como esperado, as respostas convergem para a mesma vazão de regime estacionário. As vazões negativas significam drenagem, enquanto que a positivas indicam suprimento de água. Figura 10 – Vazões de entrada para o sistema de tanques. 12/17 Figura 11 – Diagrama de blocos do controle em malha fechada simulado no Simulink 5. Conclusão O estudo realizado proporcionou conhecimento e entendimento sobre o projeto básico de controladores e o uso de ferramentas como o Matlab para tal. O controlador desenvolvido se mostrou eficiente em simulação, de modo que próximos trabalhos podem ser voltados para a sua realização prática em um conjunto de tanques reais, ou que os procedimentos aqui usados sejam aplicados em outros problemas de controle. 6. Referências [1] Notas de aula do Prof. Dr. Bernardo Ordonez [2] Ibrahim, D., “Microcontroller Based Applied Dgital Control”, © 2006, Jonh Wiley & Sons, Ltd. ISBN: 0-470-86335-8 [3] Fontes, Fernando Maia Neto, “Modelagem e controle de nível em um sistema de tanques acoplados – comparação entre controladores”, 2009, Trabalhalho de final de graduação pela UFBA, disponível em http://www.tcc.eng.ufba.br/busca.php [4] Ogata, katsuhiko, “Engenharia de controle moderno”, edição 4, editora Prentice Hall, 2003 13/17 7. Apêndice 1 – Código em Matlab 7.1. Alocação das variáveis. %%Variáveis definidas %%rodar este em primeiro lugar %constantes k1=2.5;%cm2/s kac=2;%cm2/s %alturas fixas, não precisa delas. hfixo1 = 7; %cm hfixo2 = 7; %cm hfixo1 = 0; %m hfixo2 = 0; %m %alturas iniciais do tanque h01 = 5; %cm h02 = 0.5;%cm %dimensões tanque 1 profundidade1 = 9.5; %cm d3 = profundidade1; d1 = 9.1; %cm tgteta=1.92344; %dimensões tanque 2 profundidade2 = 9.5;%cm raio = 9.2;%cm %referências h1=7; %em cm e ponto de operação 1 h2=2.5; % em cm e ponto de operação 2 %vazões de entrada qin1 = h1*(k1+kac)- h2*kac; %cm3/s qin2 = h2*(k1+kac)- h1*kac; %cm3/s 7.2. Linearização %%Linearização %%rodar este em segundo lugar % Célula Real %defie variáveis syms h1f h2f q1f q2f %equações diferenciais h1fun = (q1f-(k1*h1f)-(kac*(h1f-h2f)))/((d1+(h1f/(tgteta)))*profundidade1); h2fun = (q2f-(k1*h2f)-(kac*(h2f-h1f)))/(2*profundidade2*(sqrt((2*h2f*raio)((h2f)^2)))); 14/17 F1 = h1fun; F2 = h2fun; %ponto de operação H1=h1; H2=h2; Q1= qin1; Q2= qin2; %calculo derF11 = derF12 = derF21 = derF22 = da matriz A diff(F1,h1f); diff(F1,h2f); diff(F2,h1f); diff(F2,h2f); derF11=subs(derF11,[h1f, derF12=subs(derF12,[h1f, derF21=subs(derF21,[h1f, derF22=subs(derF22,[h1f, h2f, h2f, h2f, h2f, q1f, q1f, q1f, q1f, q2f],[h1, q2f],[h1, q2f],[h1, q2f],[h1, h2, h2, h2, h2, Q1, Q1, Q1, Q1, Q2]); Q2]); Q2]); Q2]); A = [ derF11 derF12 ;derF21 derF22]; %calculo da matriz B derF11B=diff(F1,q1f); derF12B=diff(F1,q2f); derF21B=diff(F2,q1f); derF22B=diff(F2,q2f); derF11B=subs(derF11B,[h1f, derF12B=subs(derF12B,[h1f, derF21B=subs(derF21B,[h1f, derF22B=subs(derF22B,[h1f, h2f, h2f, h2f, h2f, q1f, q1f, q1f, q1f, q2f],[h1, q2f],[h1, q2f],[h1, q2f],[h1, h2, h2, h2, h2, Q1, Q1, Q1, Q1, Q2]); Q2]); Q2]); Q2]); B = [ derF11B derF12B ;derF21B derF22B]; C=[ 1 0 ; 0 1]; D=[0 0; 0 0]; 7.3. Projeto controlador %%Projeto do controlador %rodar este em terceiro lugar %calculo do compensador %o compensador faz com que o controlador enxergue as variáveis %de estado da planta como variáveis independentes, ou seja, %com funções de transferência distintas. Isso permite o uso %dos métodos clássicos de projeto de controlador. 15/17 sssis=ss(A,B,C,D); %modelo no espaço de estados do sistema linearizado zpksis = zpk(sssis); %modelo na forma zero-polo-ganho polos = pole(sssis);%polos do sistema T = [zpksis(1,1) 0; 0 zpksis(2,2)];%Planta com ft compensada Dk = (zpksis^-1)*T;%compensador Dks = ss(Dk,'min');%modelo no espaço de estados do compensador [DkA,DkB,DkC,DkD]=ssdata(Dks); %funções de transferência independentes da planta FTh1 = zpksis(1,1); [FTh1z,FTh1p,FTh1k] = zpkdata(FTh1,'v'); FTh2 = zpksis(2,2); [FTh2z,FTh2p,FTh2k] = zpkdata(FTh2,'v'); %lugar das raizes com controlador %os zeros foram escolhidos sem critério C1 = zpk(1.5*zero(FTh1),0,1) [C1z,C1p,C1k] = zpkdata(C1,'v'); C2 = zpk(2*zero(FTh2),0,1) [C2z,C2p,C2k] = zpkdata(C2,'v'); %rlocus(FTh1*C1,FTh2*C2) 7.4. Gráficos %gráficos e resultados %rodar após configurar os scopes do simulink %resposta ao degrau do sistema completo em malha aberta t1 = ScopeData(:,1)'; h1graf = ScopeData(:,2)'; h2graf = ScopeData(:,3)'; t11 = ScopeData11(:,1)'; h1graf1 = ScopeData11(:,2)'; h2graf1 = ScopeData11(:,3)'; figure(1) plot(t1,h1graf,t1,h2graf,t11,h1graf1,t11,h2graf1) grid title('Resposta do sistema ao degrau'); legend('Resposta do tanque 1 a degrau negativo','Resposta do tanque 2 a degrau negativo','Resposta do tanque 1 a degrau positivo','Resposta do tanque 2 a degrau positivo'); XLabel('Tempo (s)'); YLabel('Nível (cm)'); %resposta ao degrau do sistema linearizado em malha aberta t2 = ScopeData2(:,1)'; h1graf2 = ScopeData2(:,2)'; h2graf2 = ScopeData2(:,3)'; t22 = ScopeData22(:,1)'; h1graf22 = ScopeData22(:,2)'; h2graf22 = ScopeData22(:,3)'; figure(2) plot(t2,h1graf2,t2,h2graf2,t22,h1graf22,t22,h2graf22) grid title('Resposta do sistema linearizado ao degrau'); 16/17 legend('Resposta do tanque 1 a degrau negativo','Resposta do tanque 2 a degrau negativo','Resposta do tanque 1 a degrau positivo','Resposta do tanque 2 a degrau positivo'); XLabel('Tempo (s)'); YLabel('Nível (cm)'); %avaliação da validade da linearização figure(3) plot(t1,h1graf,'b',t1,h2graf,'g',t2,h1graf2,'r',t2,h2graf2,'m',t11,h1graf1,'b',t 11,h2graf1,'g',t22,h1graf22,'r',t22,h2graf22,'m') grid title('Comparação entre o sistema real e a sua linearização'); legend('Resposta do tanque 1','Resposta do tanque 2','Resposta do tanque 1 linearizado','Resposta do tanque 2 linearizado'); XLabel('Tempo (s)'); YLabel('Nível (cm)'); %resposta ao degrau do sistema com controlador t3 = ScopeData3(:,1)'; h1graf3 = ScopeData3(:,2)'; h2graf3 = ScopeData3(:,3)'; t33 = ScopeData33(:,1)'; h1graf33 = ScopeData33(:,2)'; h2graf33 = ScopeData33(:,3)'; figure(4) plot(t3,h1graf3,t3,h2graf3,t33,h1graf33,t33,h2graf33) grid title('Resposta do sistema controlado em malha fechda'); legend('Resposta do tanque 1 a degrau negativo','Resposta do tanque 2 a degrau negativo','Resposta do tanque 1 a degrau positivo','Resposta do tanque 2 a degrau positivo'); XLabel('Tempo (s)'); YLabel('Nível (cm)'); %sinais de controle t4 = controle1(:,1)'; t44 = controle11(:,1)'; u1 = controle1(:,2)'; u2 = controle1(:,3)'; u11 = controle11(:,2)'; u22 = controle11(:,3)'; figure(5) plot(t4,u1,t4,u2,t44,u11,t44,u22) grid title('Sinais de controle'); legend('Sinal de controle para tanque 1 a degrau negativo','Sinal de controle para tanque 2 a degrau negativo','Sinal de controle para tanque 1 a degrau positivo','Sinal de controle para tanque 2 a degrau positivo'); XLabel('Tempo (s)'); YLabel('Vazão (litros/s)'); 17/17