João Baptista Bayão Ribeiro USO DO SCILAB PARA O CÁLCULO DO ERRO EM ESTADO ESTACIONÁRIO Rio de Janeiro 2014
2 ÍNDICE SUMÁRIO...3 INTRODUÇÃO...4 SISTEMAS DE REALIMENTAÇÃO UNITÁRIA...6 ERRO EM ESTADO ESTACIONÁRIO PARA SISTEMAS DE REALIMENTAÇÃO UNITÁRIA...8 CÁLCULO NUMÉRICO NO COMPUTADOR...12 OBSERVAÇÕES...14 ESTRATÉGIA PARA USO DA LISTAGEM...15 SISTEMAS EQUIVALENTES PARA REALIMENTAÇÃO NÃO UNITÁRIA...16 CÁLCULO NUMÉRICO NO COMPUTADOR...17 VERIFICAÇÃO...19 INTERPRETAÇÃO...20 OBSERVAÇÕES...21 ESTRATÉGIA PARA USO DA LISTAGEM...22
3 SUMÁRIO USO DO SCILAB PARA CÁLCULO DO ERRO EM ESTADO ESTACIONÁRIO Neste documento, analisa-se o erro em estado estacionário para sistemas de realimentação unitária e não-unitária, conceituando-os. Também apresenta-se listagens para o software Scilab que podem ser usadas para o cálculo desse erro e a determinação do tipo do sistema para entradas degrau, rampa e parabólica.
4 INTRODUÇÃO A Figura 1 mostra a representação mais simples de um sistema de controle com realimentação negativa, onde G(s) representa a função de transferência de caminho direto, no caso a composição de todas as funções de transferência incluindo a de eventuais controladores. H(s) é a resultante no caminho de realimentação, usualmente o sensor. Figura 1 Quando a função de transferência conjunta do controlador e planta não satisfaz aos requisitos de projeto, compensação adicional pode ser usada. Essa compensação é fisicamente implementada por compensadores do tipo caminho direto ou do tipo compensador de realimentação, conforme mostrado nas Figuras 2 e 3 respectivamente. Figura 2
5 Figura 3 Em ambos os casos, procura-se reduzir os modelos das Figuras 2 e 3 a um modelo mais simples, como o da Figura 1. É importante, portanto, o estudo do comportamento de modelos conforme a Figura 1, pois uma vez determinadas as funções de transferência envolvidas, que atendem aos requisitos de projeto, pode-se individualizar as funções de transferência de eventuais controladores e compensadores.
6 SISTEMAS DE REALIMENTAÇÃO UNITÁRIA O sistema da Figura 1 pode ser substituído durante os cálculos por um sistema hipotético de realimentação unitária. A realimentação unitária tem características que simplificam a análise e projeto do sistema. Depois de determinado o G cam_dir(s) retorna-se ao verdadeiro G(s). Quando o sensor pode ser modelado por uma constante de conversão H k, sendo H k uma constante para toda a faixa de frequências do sensor, o sistema equivalente de realimentação unitária pode ser modelado conforme a Figura 4 ilustra. Figura 4 Passa-se então a trabalhar com o sistema de realimentação unitária em lugar do sistema real, observando-se que a função de transferência no caminho direto é: G cam_dir(s)=h k*g eq(s) Definindo-se erro como a diferença entre sinal y esp esperado e sinal y obtido, erro=y esp -y. O comportamento do sistema de realimentação unitária quando t ---> determina o erro em estado estacionário. Quando a saida y convergir para a entrada u, o sinal na saida do somador será igual a zero, pois y=u. Se o sistema estabilizar neste ponto, nada mais pode ser feito, pois a saida do somador é nula, e não se pode amplificar ou fazer outra operação qualquer com um sinal
7 permanentemente igual a zero. nulo. Como nesse instante y=u, diz-se que atingimos o valor desejado de y, e que o erro é Assim, vemos que u é o próprio y des e que o erro pode ser observado diretamente após o somador.
8 ERRO EM ESTADO ESTACIONÁRIO PARA SISTEMAS DE REALIMENTAÇÃO UNITÁRIA Para sistemas de realimentação unitária, o erro aparece diretamente após o somador. Podemos escrever que: erro=y esp -y,, = u y. Chamando o erro de e(t), sua transformada é E(s)=U(s)-Y(s) sendo Y(s) a transformada da saida e U(s) a transformada da entrada, conforme mostra a Figura 5. Figura 5 Assim, E(s)=U(s)-G eq(s)xh kxe(s) E(s)=U(s)/(1+G eq(s)xh k) Este erro varia com o tempo, convergindo para 0, um valor finito ou simplesmente divergindo para. O valor de erro obtido após o transiente do sistema é chamado de erro em estado estacionário (e ss) e é dado por e ss =lim e(t)=lim se(s), conforme o teorema do valor final para as transformadas t s 0
9 de Laplace. Assim, e ss =lim s 0 s U(s) 1+G eq (s)h k. Para testar o sistema, são escolhidas 3 formas de entradas, que estabelecem uma suite de teste organizada por ordem crescente de dificuldade para o sistema : a entrada degrau unitário, a entrada rampa unitária e a entrada parabólica. Conforme o e ss seja finito para cada uma das entradas de teste, o sistema é classificado em sendo do tipo 0, tipo 1 ou tipo 2. Ele será do tipo 0 se o e ss=finito para entrada degrau unitário. Será do tipo 1 se o e ss =finito para entrada rampa unitária e do tipo 2 se e ss=finito para entrada parabólica. Naturalmente um sistema do tipo 0 responderá com um erro infinito a uma entrada rampa unitária e também infinito a uma entrada parabólica. Da mesma forma, se o sistema for do tipo 1, o e ss=0 para uma entrada degrau unitário, e será infinito para uma entrada parabólica e se o sistema for do tipo 2, o e ss=0 para entradas degrau unitário e rampa unitária. A entrada degrau unitário tem U(s)=1/s. A entrada rampa unitária tem U(s)=1/s 2 e a entrada parabólica tem U(s)=1/s 3. O Quadro 1 apresenta um resumo da classificação em função do tipo, das entradas e respostas respectivas. Quadro 1 ENTRADA ENTRADA PARÁBOLA DEGRAU RAMPA TIPO 0 1/(1+K p ) TIPO 1 0 1/K v TIPO 2 0 0 1/K a
10 Com base em que e ss =lim s 0 s U(s) 1+G eq (s)h k então, para entrada degrau unitário e ss =lim s 0 1 = 1 1+G eq(s)h k 1+K p finito. K p é a chamada constante de posição. Para sistemas do Tipo 0, K p tem um valor Para uma entrada do tipo rampa unitária, e ss =lim s 0 Daí 1 sg eq (s)h k = 1 K v. K v é a constante de velocidade. Para sistemas do tipo 1, K v tem um valor finito. finito. Para uma entrada do tipo parabólica, o e ss =lim s 0 1 s 2 G eq (s)h k = 1 K a. Assim, K a é a chamada constante de aceleração. Para sistema do tipo 2, K a tem um valor Se D(s) puder ser fatorado de modo a explicitar um fator s N, então este fator simplificará com s N em lim s N G eq (s) e este limite pode ser numericamente calculado. s 0 Nessas condições podemos calcular o tipo do sistema e o erro. Naturalmente que os valores do Quadro 1 serão obedecidos e apenas uma entrada, degrau, rampa ou parabólica dará um valor finito como resultado. A constante de erro K p, K v ou K a e o tipo do sistema podem ser determinados e consequentemente o erro calculado. O tipo do sistema será o valor de N para o qual o erro for finito e diferente de zero.
11 O erro e o tipo do sistema podem ser calculados de uma forma mais simples. Obtendo da Figura 5 a função de transferência do erro F E (s)= E (s) U(s) = 1 1+H k G eq (s), então E (s)=u(s)f E (s) Aplicando o teorema do valor final a esta equação, obtém-se: e ss =lim su (s)f E (s) s 0 Este erro terá valores conforme o Quadro 1.
12 CÁLCULO NUMÉRICO NO COMPUTADOR A listagem abaixo roda na última versão disponível do Scilab. Roda também na versão 4.0. s=poly(0,'s') pi=4*atan(1) i=sqrt(-1) K=1 'funcao de transferencia da planta'; G=100/(s*(s+10)) 'funcao de transferencia no caminho direto'; GG=K*G 'funcao de transferencia do sistema realimentado'; T=GG/(1+GG) 'funcao de transferencia do erro'; Fe=1/(1+GG) 'funcao de transferencia da entrada'; U=1/s 'resposta ao degrau'; s1n=syslin('c',t); t=0:0.05:15; xset("window",1); y1=csim('step',t,s1n); plot(t',y1') xgrid(0)
13 'resposta a rampa'; ss1n=syslin('c',t/s); t=0:0.05:15; xset("window",2); y2=csim('step',t,ss1n); plot(t',[y2' t']) xgrid 'resposta a parabola'; t=0:0.05:15; ss2n=syslin('c',t/s^2); xset("window",3); y3=csim('step',t,ss2n); plot(t',[y3' (t^2)']) xgrid 'erro estado estacionario'; erro=horner(s*fe*u,0)
14 OBSERVAÇÕES O programa acima listado fornece a funçao de transferência no caminho direto GG, a função de transferência T do sistema realimentado, a função de transferência do erro Fe e o erro em estado estacionário, erro. O programa fornece também 3 simulações, cujos resultados geram 3 gráficos de saida. A janela gráfica 1, que fornece a resposta ao degrau unitário, a janela gráfica 2, que fornece a resposta rampa unitária e a janela gráfica 3 que fornece a resposta a parábola, do sistema definido no início por G e K. Na listagem dada, pode-se ajustar o programa para qualquer G eq(s) e qualquer U(s). A listagem acima é apenas um exemplo. A simulação gráfica permitirá se visualizar a resposta obtida, checando-se esta última quanto aos valores de erro obtidos e a estabilidade da mesma. O cálculo do erro só tem sentido se o sistema for estável. Se o sistema não for estável, se verá pelos gráficos. Se a entrada for superior ao tipo do sistema, a listagem no cálculo da função 'horner' dará divisão por zero, no cálculo do erro, e o Scilab travará. Isso já seria esperado, pois o limite de su(s)f E(s), para s tendendo a zero, é infinito, e isto está sendo calculado numericamente, o que provoca uma divisão por zero. Por exemplo, se o sistema é do tipo 1 ou tipo 0, e for inserido uma entrada parabólica o Scilab vai travar. Observe que as simulações de resposta gráfica são sempre calculadas.
15 ESTRATÉGIA PARA USO DA LISTAGEM O erro calculado tem que ser interpretado. O tipo do sistema pode ser determinado pelo resultado das simulações. Estas podem acusar um sistema tipo 0, 1 ou 2, conforme a saida obtida. Uma estratégia para cálculo do erro, do tipo do sistema e da constante de erro adequada pode ser: 1-Rodar o programa para U=1/s, observando-se os gráficos obtidos e anotando-se o erro obtido. 1. 2-Determinar o tipo do sistema, pela observação das respostas gráficas obtidas em 3-Se o sistema for tipo 0, rodar o programa para 1/s, para calcular o erro. A constante de posição K p será dada por: K p = 1 erro 1 4-Se o sistema for tipo 1, rodar o programa para U=1/s 2. A constante de velocidade K v será igual a 1/erro. 5-Se o sistema for tipo 2, rodar o programa para U=1/s 3. A constante de aceleração será igual a 1/erro.
16 SISTEMAS EQUIVALENTES PARA REALIMENTAÇÃO NÃO UNITÁRIA Quando o caminho de realimentação não puder ser modelado por um ganho unitario, como na Figura 5, o modelo anterior de realimentação unitária não mais é válido, pois se tentarmos mover a função de transferência do sensor H(s) através do somador, como foi feito na Figura 4 para gerar o sistema equivalente de realimentação unitária, a dinâmica de 1/H(s) modifica a dinâmica do sinal de entrada do somador para U(s)/H(s), de modo que após o somador não teríamos mais U(s)-Y(s). O cálculo do e ss. não será correto. Para contornar esse problema, um G eq é definido conforme a Figura 6, que apresenta um sistema de realimentação unitária hipotético equivalente a um sistema real como o da Figura 1: Figura 6 Comparando-se com o sistema da Figura 1, tem-se: G(s) 1+G(s)H (s) = G (s) e 1+G e (s) G(s) Daí, G e (s)= 1+G(s)H (s) G (s) Observe que se o sistema original tiver H(s)=1, caracterizando realimentação unitária, G e(s)=g(s). Se H(s)=H k, seu valor estará embutido no ganho CC de G(s).
17 CÁLCULO NUMÉRICO NO COMPUTADOR Apresenta-se a seguir uma listagem que pode ser utilizada para obter-se algumas características do sistema equivalente de realimentação unitária, como o erro em estado estacionário e o traçado das respostas do sistema às entradas degrau unitário, rampa unitária e parábola. Este programa roda no software Scilab versão 4.0 ou superior. Pode ser utilizado como auxílio ao projeto de compensadores. s=poly(0,'s') pi=4*atan(1) i=sqrt(-1) K=1 'função de transferencia do sensor' H=1/(s+8) 'função de transferencia da planta'; G=96/(s*(s+10)) 'funcao de transferencia equivalente'; Ge=G/(1+G*H-G) 'funcao de transferencia no caminho direto'; GG=K*Ge 'funcao de transferencia do sistema realimentado'; T=GG/(1+GG) 'funcao de transferencia do erro'; Fe=1/(1+GG)
18 'funcao de transferencia da entrada'; U=1/s 'resposta ao degrau'; s1n=syslin('c',t); t=0:0.05:15; xset("window",1); y1=csim('step',t,s1n); plot(t',y1') xgrid(0) 'resposta a rampa'; ss1n=syslin('c',t/s); t=0:0.05:15; xset("window",2); y2=csim('step',t,ss1n); plot(t',[y2' t']) xgrid 'resposta a parabola'; t=0:0.05:15; ss2n=syslin('c',t/s^2); xset("window",3); y3=csim('step',t,ss2n); plot(t',[y3' (t^2)']) xgrid 'erro estado estacionario'; erro=horner(s*fe*u,0)
19 VERIFICAÇÃO Supondo que, na Figura 1, tem-se G(s)= 96 s(s+10) e H(s)=1/(s+8) Portanto 96 s(s+10) G eq (s)= 96 1+ s(s+10) 1 (s+8) 96 s(s+10) 96(s+8) G eq (s)= s 3 +18s 2 +16s 672 Portanto, o sistema é do tipo 0. Assim, K p =lim s 0 G eq (s) K p = 768 672 = 1,143 e ss = 1 1+K p = 7
20 INTERPRETAÇÃO G (s) T(s)= 1+G (s)h (s) = 96(s+8) s 3 +18s 2 +80s+96 Desta forma, se U(s)=1/s e Y(s)=(1/s)T(s) O valor em estado estacionário y ss =lim sy(s)=lim T(s) Portanto s 0 s 0 y ss= 96x8/96=8 Desta forma, o erro em estado estacionário deve ser -7, pois u(t)=1 p t>0, u(t)=0 p t<0 (degrau unitário) Portanto p t>0, u(t), =1 e assim o erro em estado estacionário= 1-8=-7 Observe que o erro é dado em termos das unidades do sinal de saida.
21 OBSERVAÇÕES Na listagem dada, pode-se ajustar o programa para qualquer G eq(s) e qualquer U(s). A listagem acima é apenas um exemplo. A simulação gráfica permitirá se visualizar a resposta obtida, checando-se esta última quanto aos valores de erro obtidos e a estabilidade da mesma. O cálculo do erro só tem sentido se o sistema for estável. Se o sistema não for estável, se verá pelos gráficos. Se a entrada for superior ao tipo do sistema, a listagem no cálculo da função 'horner' dará divisão por zero, no cálculo do erro, e o Scilab travará. Isso já seria esperado, pois o limite de su(s)f E(s), para s tendendo a zero, é infinito, e isto está sendo calculado numericamente, o que provoca uma divisão por zero. Por exemplo, se o sistema é do tipo 1 ou tipo 0, e for inserido uma entrada parabólica o Scilab vai travar. Observe que as simulações de resposta gráfica são sempre calculadas.
22 ESTRATÉGIA PARA USO DA LISTAGEM Uma estratégia para uso da listagem no cálculo do erro pode ser: 1-Rodar o programa para U=1/s, observando-se os gráficos obtidos e anotando-se o erro obtido. 2-Determinar o tipo do sistema, pela observação das respostas gráficas obtidas em 1 e do cálculo de G eq(s) Valor de Ge na listagem dada. 3-Se o sistema for tipo 0, rodar o programa para U=1/s, para calcular o erro. 4-Se o sistema for tipo 1, rodar o programa para U=1/s 2, para calcular o erro. 5-Se o sistema for tipo 2, rodar o programa para U=1/s 3, para calcular o erro.