Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade I: Introdução ao Controle Digital.• Unidade II: Equações A diferenças e a Transformada Z.• Unidade III: Sistemas de Controle Digital usando a transformada Z.• Unidade IV: Projeto de Compensadores Digitais.• Unidade V: Projeto no espaço de estado de sistemas contínuos.• Unidade VI: Representação de sistemas de controle digital no espaço de estado.• Ementa: Prof. Felipe fcaetano2000@yahoo.com.br sala 1301 ANALÓGICO DIGITAL Eq. Diferenciais Eq. Diferenciais Função de Transf. H(s) Função de Transf. H(z) Software de modelagem utilizado pela Estácio: SCILAB. Controlabilidade → Observabilidade → Bibliografia: a) Nise, Norman - Engenharia de Sistemas de Controle - LTC, 3a edição - 2004 b) Ogata, K - Engenharia de Controle Moderno - Prentice HALL, 3a edição - 2003 A/D INTERFACE CONTROLADOR ENTRADA DE REFERÊNCIAINTERFACEAMPLIFRELE Forno Elétrico sensor D/A Temp. desejada Temp. obtida E(s) E(z) digital G(z) ][]1[][][]1[][ 1 )( 1012 2 1 1 2 2 1 10 NnbnxbnxbMnanyany zazaza zbzbzbb zH NMn n n n −++−+=−++−+⇒ ++++ ++++ = −−− −−− KK K K ωjez = s z Controle e Servomecanismos II segunda-feira, 23 de fevereiro de 2015 20:30 Página 1 de Servomec_2 1.1 - Configuração básica de um sistema de controle digital em malha fechada: x(t) Sinal Digital Sinal Analógico 1.2 - Modelagem do Conjunto A/D + D/A Para criação desse modelo no domínio analógico, vamos considerar que ele possa ser modelado matematicamente por um amostrador ideal e por um CKT sustentador de ordem zero ("zero order holder - ZOH). Em outras palavras, o conversor A/D gera uma sequência de amostras a cada Ta (período de amostragem) segundos, enquanto o sustentador de ordem zero mantém um nível constante de amplitude, dado pelo valor da amostra saída do amostrador ideal, durante o período de tempo igual a Ta. Sinal Digital Ta HOLD u(t - kTa) u(t - kTa-Ta) (kTa) (k + 1)Ta (kTa) (k + 1)Ta Ta Introdução ao Controle Digital segunda-feira, 2 de março de 2015 20:30 Página 2 de Servomec_2 Sendo assim: ∑ ∞ −∞= −−−−= k aaaa TkTtukTtukTxtx )]()()[(()(* atraso Aplicando Laplace: Laplace depende do sinal de entrada x não depende do sinal de entrada x nem de k Passando novamente para o domínio do tempo: )]()([*)()()(* a k aa TtutukTtkTxtx −−−= ∑ ∞ ∞− δ convolução Ta HOLD x(t) xa(t) x*(t) 2 - TRANSFORMADA Z. Pela análise anterior, o sinal obtido após o amostrador ideal é um trem de impulsos com energia igual ao valor da amostra do sinal x(t) no instante t = kTa. ∑ ∞ ∞− −= k aaA kTtkTxtx )()()( δ No domínio de Laplace: ∑ ∞ ∞− − = k skT aA aekTxsX )()( Uma maneira mais conveniente de trabalhar com a equação anterior é fazer: sTaez += representação para sinal analógico representação para sinal digital ou Para fins práticos, a transformada z de um sinal discreto (ou digital) x[k] é definida como: ∑∑ ∞ ∞− − ∞ ∞− − == k k k k aA zkxzkTxsX ][)()( ∑ ∞ = − = 0 ][)( k kzkxzX ∑∑ ∞ −∞= − − ∞ −∞= +−− − = −= k sT skT a k sTkTskT a s e ekTx s e s ekTxsX a a aaa 1)()()(* )( Modelagem A/D - D/A segunda-feira, 2 de março de 2015 21:00 Página 3 de Servomec_2 OBS: Conceito de Impulso: Exemplo: Encontre a transformada z para uma função rampa unitária ≥ < = 0, 0,0)( tt t tr amostrada a 2 amostras/s (fa = 2Hz) freq. de amostragem Transformada z segunda-feira, 2 de março de 2015 21:30 Página 4 de Servomec_2 Rampa Unitária: ≥ < = 0, 0,0)( tt t tx sinal analógico > ∈< = = 0,5,0 0,0)( kk zkk kTx kTt a a -1 -0,5 x(kTa) t(seg) 0,5 1 1,5 2 0,5 1 1,5 2 Conversão A/D Ta = 0,5s [ ] → representa "discreto" → índice da amostra SINAL DISCRETO Ou: x[k] = {...; 0; 0,5; 1; 0;...} Representação no mundo discreto k = 0 Logo: ≥ < = 0,5,0 0,0][ kparak k kx E sua transformada z é: ∑∑ ∞ = − ∞ = − == 00 ][)( k k a k k kzTzkxzX → Caso geral; Ta qualquer ...)320()( 321 0 ++++== −−− ∞ = −∑ zzzTkzTzX a k k a mas: ...)321()( 21 +++= −− zzTzzX a então: ...)1()()( 321 −−− +++=− zzzTzXzzX a Para |z| >1: − =− −11 1)()1( z TzXz a Soma de termos em PG com a1 = 1 e q = z-1 OBS: para |q| < 1, − = − = 11 1 z zT q aS apg )²()( 1−= z zTzX a razão Ta = 0,5 → )²7( 5,0)7( 1−= z x Resolução segunda-feira, 9 de março de 2015 20:30 Página 5 de Servomec_2 OBS1: A transformada z de sinais discretos obtidas a partir de um processo de conversão A/D dependerão de período da amostragem (Ta) OBS2: Na prática, usamos tabelas com as transformadas de sinais discretos básicos e com as propriedades da transformada z. 2.1 - Implementação dos sistemas digitais Mundo analógico: no tempo -> equações diferenciais )(...1)(...1 01 1 101 1 tyb dt xdb dt xdbtya dt yd a dt yd n n nn n nn n nn n ++−+=++−+ − − − − − Na frequência: 0 1 1 0 1 1 ...1 ...)( asa bsbsb su n n n n n n +++ +++ = − − − − aplicando Laplace: Mundo discreto: no tempo -> equações de diferenças ][...]1[][][...]1[][ 101 nkxbkxbkxbnkyakyaky nn −++−+=−++−+ transformada z OBS1: z-1 → corresponde ao um atraso de uma amostra. z-n →corresponde ao um atraso de n amostras. OBS2: Sistema analógico: Polos do semi plano esquerdo plano s )( ωσ js += Sistema digital ou sistema discreto estável: 1 1 plano z pólos no interior do círculo unitário sTaez = Observações segunda-feira, 9 de março de 2015 21:00 Página 6 de Servomec_2 Transformada z UNILATERAL Transformada z BILATERAL⇒= ⇒= ∑ ∑ ∞ −∞= − ∞ = − k k k k zkxzX zkxzX ][)( ][)( 0 1 1 plano zjω σ plano s sTaez = 16/03 23/03 30/03 → AV1 e Ativ. Estrut. 3 e 4 Para obtenção da transformada z inversa é comum utilizarmos o método de decomposição em frações parciais, exemplificado a seguir: 2121 1 1 .))(( ))(()()( ps B ps A psps pssN sGps −− = −− − =− ))((lim 1 1 pssGA ps −= → Frações Parciais: Exemplo 13.2 - Nise )7,0)(5,0( 5,0)()( )( −− == zz z zG zX zY ( ))()( 1 zGTzkg −= 0 = resposta ao impulso Plano z diagrama de pólos e zeros X(z) Y(z) G(z) Tz(g(k)) δ[k] g[k] Resposta: Para um sistema com 2 pólos reais e distintos, temos: R Im 0,70,5 1 1 − ⇔ 1 1 1)( ps ApA t − + − = −− = 7,05,0)7,0)(5,0( 5,0)( z zB z zA zz z zG kk BAkg )7,0()5,0.()( += ⇓ − − 5,0 1 z zTz − − 7,0 1 z zTz Pela tabela de transformadas: (I) pz z zXpkx Tz Tz k − =⇔= − )(][ 1 OBS IMG 1834 Transformada z inversa segunda-feira, 16 de março de 2015 20:30 Página 7 de Servomec_2 Pela equação (I) podemos dizer: )7,0)(5,0( 5,0 7,0 1 5,0 1)( −− = − + − = zzz B z A z zG Receita de bolo: 5,2 2,0 5,0 7,0 5,0lim)5,0.()(lim 5,05,0 −= − = − = −= →→ z z z zGAzz p1 p1 5,2 2,0 5,0 5,0 5,0lim)7,0.()(lim 7,07,0 == − = −= →→ z z z zGB zz p2 p2 − + − −= 7,0 5,2 5,0 5,2)( z z z z zG Pela tabela → kkkg )7,0.(5,2)5,0).(5,2()( +−= No SciLab OBS: Pequena Introdução - Entrada de Dados: a = 5 a = 7; → inibe a exibição da resposta na tela a b = 2 , 5 → "," ou ";" separa comandos da mesma linha 1o cmd 2o cmd equivale a: b = 2 ans = 5 b = 5.7 → Software sensível a caixa alta Números reais têm sua parte inteira separada da parte fracionária por ponto. vlinha = [1 2 3] → 1 2 3 xlinha = [3 , 2 , 1] → 3 2 1 ycoluna = [1; 2; 3] → 1 2 3 → para gerar matrizes ou vetores, os dados devem estar entre colchetes. →vírgula ou espaço separam elemento da mesma linha, enquanto ponto-vírgula separam linhas diferentes. M = [1 , 2 , 3 ; 4 5 5] =⇒ 554 321 M 1a linh 2a linh Análise de Sinais e Sistemas: 1o passo: Definindo o sistema num = poly ([0 0.5] , 'z' , 'c') z0 z1 vetor é de coeficientes den = poly ([0.5 0.7] , 'z' , 'r') vetor é de raízes saída: num = 0,5z den = 0,35 - 1,2z + z² = (z - 0,5) (z - 0,7) variáveis s1 = syslin("d" , num , den) → obs: help syslin 2o passo: Definição da Entrada (nesse caso, Impulso) x = [1 , zeros(1 , 50)] → x{1,0,0,0...,0} 1 linha e 50 colunas 50 zeros É equivalente a: den = poly([0.35 -1.2 1] , 'z' , 'c') Exemplo segunda-feira, 16 de março de 2015 21:30 Página 8 de Servomec_2 X(z) Y(z) G(z) )7,0)(5,0( 5,0 )( )()( −− == zz z zX zY zG kkkg )5,0(5,2)7,0(5,2][ −= pela teoria resposta ao impulso )(][ 1 zGkg Tz Tz − ⇔resposta ao impulso → ← função de transf. OBS1: Se ao invés de 'd' tivéssemos usado 'c', então teríamos criado um sistema contínuo (analógico - Laplace): s1 = syslin('c' , num , den) -->s1 = syslin('c' , num , den) s1 = 0.5s -------------- 2 0.35 - 1.2s + s OBS2: Nesse caso, definimos o sistema a partir de sua função de transferência. Porém é possível usar syslin para criar um sistema a partir de sua representação em equação de estado (vide help syslin). 2o passo: Definindo a entrada: No nosso caso, a entrada é o impulso unitário. ≠ = = 0,0 0,1][ k k kδ Digital: Analógico: δ(t) x = [1 , zeros(1 , 50)] → x{1,0,0,0...,0} Modelagem no SciLab segunda-feira, 23 de março de 2015 20:30 Página 9 de Servomec_2 3o passo: Obter a saída: y = flts (x , s1) → só vale para sistemas digitais (sistemas analógicos, utilizar "csim") x[k] y[k] s1 OBS2: )( )( 35,02,11 5,0 35,02,1² 5,0)( 21 1 zX zY zz z zz z zG = +− = +− = −− − × � �� ��� )(5,0)(35,0)(2,1)( 121 zXzzYzzYzzY −−− =+− ]1[5,0]2[35,0]1[2,1][ −=−+−− kxkykyky Transformada z Inversa Transformada z ]1[5,0]2[35,0]1[2,1][ −+−−−= kxkykyky Equações a diferenças finitas É isso o que a "flts" implementa, supondo: y[-1], y[-2] e x[-1] = 0 y[0] = 0 y[1] = 0,5 y[2] = 0,6 . . . Modelagem no SciLab segunda-feira, 16 de março de 2015 21:00 Página 10 de Servomec_2 Passos Adicionais: k = 0:50 → k = {0,1,2,3...,50} plot (k , y , '.r') var1 = k var2 = y OBS: plot (k , y) plot (y) plot (y , '.g') Existem vários empregos ou sintaxes para o comando plot, vide help plot. Obtendo o sinal teórico: yteo = 2.5 * 0.7^k - 2.5 * 0.5^k corresponde a: kkky 5,05,27,05,2][ ×−×= clf → Apagar gráfico. plot(yteo - y) diferença corresponde ao erro entre o real analógico e o equivalente digital Operadores Matemáticos: * → multiplicação / → divisão + → soma - → subtração ^ → potenciação Modelagem no SciLab segunda-feira, 16 de março de 2015 21:30 Página 11 de Servomec_2 Ativ. Estruturada 4 1 e 2, entregar no dia da prova http://simulado.estacio.br/alunos/ Dado: 4,0 5,0 )( )()( − == z z zU zY zH u[k] = δ[k] y[k] = ? H(z) Descubra y[k] Ta = 1s Pela tabela: pz zkupep ez z e kat aT akT − →⇒=⇒ − → +− − − ][ considerando que: então: T → Período de Amostragem (ou Ta) − = 4,0 5,0)( z z zH Resposta: então: h[k] = 0,5(0,4)k MAS h[k] é a resposta ao impulso unitário, logo: y[k] = 0,5(0,4)k u[k] ℎ��� � � � ��� � � �(�)Resposta ao impulso Função de Transferência )(][ )(][ zXZNnx zXnx NTz Tz − →− → x[n] y[n] Atividade Estruturada 4: 1) ]2[3,0]1[6,0][3,0]2[9,0][ −+−+=−− nxnxnxnyny )(3,0)(6,0)(3,0)(9,0)( 212 zXzzXzzXzYzzY −−− ++=− )()3,06,03,0()()9,01( 212 zXzzzYz −−− ++=− 9,0² 3,06,0²3,0 9,01 3,06,03,0 )( )()( 2 21 − ++ = − ++ == − −− z zz z zz zX zY zH 1 . -0 Eq. a diferenças finitas pela tabela transf. Z . z² . z² transf. Z inversa )()}({ zFzNTtfz N−=−= Exercício Simulado segunda-feira, 30 de março de 2015 20:30 Página 12 de Servomec_2 num = poly([0.3 , 0.6 , 0.3] , 'z' , 'c') → den = poly ([-0.9 , 0 , 1] , 'z' , 'c') → s1 = syslin('d' , num , den) → num = 0,3z² + 0,6z + 0,3 den = z² - 0,9 0,3�� + 0,6� + 0,3 �� − 0,9 z0 z¹ z² z0 z¹ z² Diagrama de pólos e zeros Zeros: 0,3z² + 0,6z + 0,3 = 0 z² + 2z + 1 = 0 (z+ 1)² = 0 → z1 = z2 = -1 Polos:÷0,3 z² - 0,9 = 0 z² = 0,9 z = ±√0,9 ≅ ±0,94 R Im 0,94-0,94 1 1 -1 Re(s) = Plano sPlano z módulo: z = a + bi 1²² <+ ba ωσωσ aaa jTTjT eee .)( =+ 1;0 <<↑ eσ ωaa jTsT eez == Mas ωσ js += ωjs = ωσσ js +=⇒< 0 1.1 MatLab / Octave a = [0.3 0.6 0.3] b = [-0.9 0 1] s1 = tf(a , b) n y[n] y[n - 2] x[n] x[n - 1] x[n - 2] 0 y[0] = 0,3 y[-2] = 0 x[0] = 1 x[-1] = 0 x[-2] = 0 1 y[1] = 0,6 y[-1] = 0 x[1] = 0 x[0] = 1 x[-1] = 0 2 y[2] = 0,57 y[0] = 0,3 x[2] = 0 x[1] = 0 x[0] = 1 3 y[3] = 0,54 y[1] = 0,6 x[3] = 0 x[2] = 0 x[1] = 0 4 y[4] = 0,513 y[2] = 0,57 x[4] = 0 x[3] = 0 x[2] = 0 5 y[5] = 0,486 y[3] = 0,54 x[5] = 0 x[4] = 0 x[3] = 0 6 y[6] = 0,4617 y[4] = 0,513 x[6] = 0 x[5] = 0 x[4] = 0 7 y[7] = 0,4374 y[5] = 0,486 x[7] = 0 x[6] = 0 x[5] = 0 8 y[8] = 0,41553 y[6] = 0,4617 x[8] = 0 x[7] = 0 x[6] = 0 SciLab: num = poly([0.3 , 0.6 , 0.3] , 'z' , 'c') den = poly ([-0.9 , 0 , 1] , 'z' , 'c') s1 = syslin('d' , num , den) 1.2 n = 0 até n = 8: ]2[3,0]1[6,0][3,0]2[9,0][ −+−+=−− nxnxnxnynyExemplo p/ n = 2: y[2] = 0,57 0,3 0 0 1 -0,27→ (+) 0,3 Na aplicação: x[n] = δ[n] y[n] = h[n] n de -10 a 100: cond. iniciais: y[-1] = 0; y[-2] = 0 10 zeros 100 zeros Definição do Intervalo: n = -10:100 x = [zeros(1 , 10) , 1 , zeros(1 , 100)] 16 cos8,1 pi Ex.2: Modelagem Ativ. Estr. 4 segunda-feira, 30 de março de 2015 21:00 Página 13 de Servomec_2 Modelando Sistemas Analógicos no Domínio Digital: Como já havíamos visto, um sistema de controle digital segue o diagrama de blocos abaixo: No mundo digital gostaríamos de ter: Para transformar os blocos ABAIXO: D/A G(s) Supondo que o conversor D/A é do tipo zero order hold (ZOH): s e sTa− −1 G(s) H(z) onde: L-1 → Transformada Inversa de Laplace Tz → Transformada z Ta → Período de Amostragem como projetar? planta analógico digital ( ) s sG e sTa )(1 −− −= −− s sGLTzzzH )()1()( 11 Modelando no Domínio Digital segunda-feira, 13 de abril de 2015 20:30 Página 14 de Servomec_2 1 2)( + + = s s sG Logo: 1)1( 2)( + += + + = sB s A ss s s sG 1 1 2lim)1.()(lim 2 1 2lim.)(lim 11 00 −= + = += = + + = = −→−→ →→ s s s sGB s s s s sGA ss ss aT t ez z z z s sGLzTtuetu s L s L s sGL − −−−−− − − − = ⇒−= + − = 1 2)()()()(2 1 112)( 1111 Usando a tabela de Laplace Usando a tabela de Transformada Z Supondo Ta = 0,5s: − × − − − × − = − − − −= − − 607,0 1 1 21 1 2)1()( 5,01 z z z z z z z z ez z z z zzH 607,0 1214,12 607,0 12)( − +−− = − − −= z zz z z zH 607,0 214,0)( − − = z z zH 1 − ��" = 1 − 1� = � − 1 � Exemplo 13.4 - NISE segunda-feira, 13 de abril de 2015 21:00 Página 15 de Servomec_2 Modelagem de Sistemas Analógicos no domínio digital: Revisão: s e sTa− −1 G(s) Conv. DA Planta ZOH (Zero Order Hold) G(z) digital ≡ −= −− s sGLTzzzG )()1()( 11 Tz = Transformada zL-1 = Transformada Inversa de Laplace Exemplo 13.4 607,0 213,0)( 1 2)( 5,0 − − = → + + = = z z zG s s sG sTa OBS: A representação digital de um sistema analógico depende do período de amostragem. Essa dependência é tão importante que, em alguns casos, determinados valores de Ta podem levar a um sistema digital instável, mesmo que o sistema analógico seja estável. aula anterior No SciLab (Ex. 13.4): 1o passo: Determinar o sistema analógico: num = poly(-2 , 's' , 'r') → s + 2 den = poly(-1 , 's' , 'r') →s + 1 sa = syslin ('c' , num , den) 1 2 + + = s s sa 2o passo: Obtendo o sistema discreto: ta = 0.5 sd = dscr(sa , ta) sd = ss2tf(sd) Gerou o sistema discreto supondo o uso de um conversor D/A do tipo ZOH. Além disso, esse sistea está representado na forma de Equações de Estado. += += DuCxY BuAxX& vetor de entrada sinal de entrada sinal de saída A, B, C e D formam o modelo de Equações de Estado Transforma do modelo de equações de estado (ss) para o modelo de função de transferência (tf). sd ss sd tf ss2tf tf2ss analógico digital sa Modelagem A/D segunda-feira, 20 de abril de 2015 20:30 Página 16 de Servomec_2 1- Apenas usando o SciLab, refaça o exemplo 13.4 para a) Ta = 0,001 c) Ta = 1 b) Ta = 0,01 d) Ta = 5 2- Fazer o exercício 13.3 calculando teoricamente (no papel) G(z) e depois verificando a resposta no SciLab. 3679,0 264,1)( 4 8)( 25,0 − = → + = = z zG s sG sTa resposta Exercícios segunda-feira, 20 de abril de 2015 21:00 Página 17 de Servomec_2 ≡ ≡ ≡ −= −− s sGLTzzzG )()1()( 11 −= −− s sGsGLTzzzGG )()()1()( 211121 caso mais comum 4444 34444 214444 34444 21 )( 211 )( 111 21 21 )()1()()1()()( sGsG s sGLTzz s sGLTzzzGzG −× −= −−−− )(.1 )( zHG zG + caso mais comum Quando H(z) =1 (realimentação unitária): )(1 )()( zG zG zHeq + = )().(1 )( zHzG zG + ≡ ≡ Redução de Diagrama de Blocos segunda-feira, 20 de abril de 2015 21:30 Página 18 de Servomec_2 a a a a aa T T T T TT ez e ez zez ez z ez z z z z z s sGLTzzzG − − − − −− −− − − = − +−− = − − −= − − − − = −= )1(101 .1011.10 1 1 .10)()1()( 11 Estabilidade de Sistemas Digitais que combinam parte analógica com parte digital: Exemplo 13.7 - Defina a faixa de valores para o período de amostragem (Ta)que garanta a estabilidade do sistema. s e sTa− −1 Ta G(z) Resp. das aulas anteriores: −= −− s sGLTzzzG )()1()( 11 Onde: Tz = Transformada z L-1 = Transformada Inversa de Laplace 1o passo: Cálculo de $�" %&(')' ( Se 1)1( 10)( 1 10)( + += + =⇒ + = s B s A sss sG s sG 1010lim)1.()1( 10lim 10 1 10lim.)1( 10lim 11 00 −= = + + = = + = + = −→→ →→ s s ss B s s ss A ss ss Logo: )()1(10)(10)(10 1 1010 1 1010)( 1111 tuetuetu s L s L ss L s sGL tt −−−−−− −=−= + − = + −= 2o passo: Cálculo de )� %$�" %&(')' ((, fazendo t = kTa: ][10][10][)1(10)(1 kuekukue s sGL aa kTkT −−− −=−= Portanto: Tz Tz 3o passo: De aulas anteriores: X(s) Y(s) conv AD )()(1 )( )(.1 )( )( )()( zHzG zG zHG zG zX zY zT + ≠ + == Porém, para H(s) = 1 → )(1 )( )( )()( zG zG zX zY zT + == ZOH conv. D/A Planta Analógica 448447648476 − − − = = − − aTez z z z s sGLTzTz .10 1 .10)(1 Estabilidade segunda-feira, 27 de abril de 2015 20:30 Página 19 de Servomec_2 Para determinarmos a estabilidade do sistema de malha fechada, devemos calcular por último: a a aa a a a a a T T TT T T T T T ez e eez e ez e ez e zG zG zX zY zT − − −− − − − − − −+ − = −+− − = − − + − − = + == 1110 )1(10 )1(10 )1(10 )1(101 )1(10 )(1 )( )( )()( *+,+� � �*+,+ = 11-� . − 10 Por último, o sistema T(z) será estável se seu polo tiver módulo menor que 1. 1101111|1011| <−<−⇒<− −− aa TT ee -1 1 Para: sT eee a TTT aaa 2,0 11 9ln 11 991111011 ≅ −<+ >⇒>⇒−>− −−− → 0 < Ta < 0,2s ou fa > 5Hz |z²| = a² + b² < 1 No caso de exemplo visto, a função de transferência do sistema de malha fechada é do tipo: cuja determinação dos polos é trivial e da estabilidade também. Mas se e /(�) = 01�1 +⋯+ 0"� + 03, N > 2; Como definir sua estabilidade?? 1º caso: ANÁLISE: Se {an, ... , a0} são conhecidos, basta usar o computador para calcular as raízes de D(z) e verificar se existe algum polo com módulo maior do que 1 para definí-lo como INSTÁVEL. 2º caso: PROJETO: Se {an, ... , a0} dependem de parâmetros de projeto (por exemplo, período de amostragem ou ganho), então faça: )(�) = �� + 0 )(�) = 4(�)/(�) 1º passo: converter para o domínio analógico, fazendo 2º passo: usar o critério de ROUTH-HORWITZ � = 5 + 15 − 1 )1ln( 1111111011 −>+ <⇒<⇒<− −−− a TTT T eee aaa =0 Estabilidade segunda-feira, 27 de abril de 2015 21:30 Página 20 de Servomec_2 Determine a faixa de valores de k que torna o sistema digital em um sistema estável. ZOH )4( 3 +ss k sTa 2,0= s e sTa− −1 ZGRID PlZR routh-t(h , [k]) 1º caso: ANÁLISE → conheço o polinômio do denominador. 2º caso: PROJETO → O polinômio do denominador depende de parâmetros de projeto. transf bilinear 1 1 − + =s s z 1ºpasso 2ºpasso: critério de Routh-Horwitz Usar computador: OBS: A transformada bilinear apresentada: 1 1 1 1 − + =⇔ − + = z z s s s z possui a característica de preservar a estabilidade do sistema. sTaez += Plano s Plano z transf. bilinear Exercício 14 segunda-feira, 4 de maio de 2015 20:30 Página 21 de Servomec_2 Suponha: )(�) = 4(�)/(�) 1,02,0²³)( +−−= zzzzD o sistema é estável? Usando a transformada bilinear temos: 1º passo 0)³1( )³1(1,0)²1)(1(2,0)1)²(1()³1(01,0)1( )1(2,0)²1( )²1( )³1( )³1( = + −+−+−−+−+ ⇒=+ − + − − + − − + s ssssss s s s s s s OBS: 12²)²1( ++=+ sss )1( +sx 12² ++ ss sss ++ ²2³ 13²3³)³1( +++=+ ssss 12² ++ ss 1−s 12² −−− ss sss ++ ²2³ 1²³)1)².(1( −−+=−+ sssss 12²)²1( +−=− sss 1+s 12² +− ss sss +− ²2³ 1²³)²1).(1( +−−=−+ sssss 13²3³)1)².(1()³1( −+−=−−=− ssssss )²1(12² −=++ sss 1−s 12² −+− ss sss +− 2³ 13²3³)³1( −+−=− ssss Na sequência, aplicamos o critério de ROUTH-HURWITZ. Para o caso em questão temos: (065³ + 0�5² + 0"5 + 03 = 0) 1 0 1 02 13 0¹ ² ³ cs bs aas aas 1ª linha: pego o primeiro, pulo um termo e pego o próximo IDEM, porém pegando inicialmente o 2º termo 2 02 13 1 a aa aa b −= Tabela de ROUTH 0 1 10 1 102 1 1 02 1 )0.(0 a b ba b baa b b aa c == −− =−= 0)13²3³(1,0)1²³(2,0)1²³()13²3³( =−+−++−−−−−+−+++ ssssssssssss 01745²19³07,15,4²9,1³1,0 )10( =−−− →=+++− −× ssssss Exemplo 13.8 segunda-feira, 4 de maio de 2015 21:00 Página 22 de Servomec_2 No nosso exemplo, a3 = 1, a2 = -19, a1 = -45 e a0 = -17. Logo, a tabela de Routh será: 17 089,45¹ 1719² 451³ 0 − − −− − s s s s Olhando para a primeira coluna, percebe-se que ocorreu uma mudança de sinal. Logo o sistema é instável e terá um polo fora do círculo de raio unitário cada mudança de sinal = 1 polo instável 17 089,45¹ 1719² 451³ 0 − − −− − ks s ks s Outro ponto importante é que, para o problema apresentado, bastaria determinarmos os polos do sistema calculando as raízes do polinômio D(z). Isso poderia ser feito facilmente no SciLab. Por exemplo, considere: 1,02,0²³ 1)( +−− − = zzz z zT arbitrado 89,45 19 194517 19 1719 451 1 −≅ ×−− = − −− − −=b Exemplo 13.8 segunda-feira, 4 de maio de 2015 21:30 Página 23 de Servomec_2 Vimos em uma aula anterior que: 1,02,0²³ 1)( +−− = zzz zG era instável usando o comando plzr do SciLab e antes no papel usando a transformada bilinear e o método Routh-HURWITZ. Vejamos como usar o SciLab para calcular a transformada bilinear do sistema e a tabela de Routh. a) Criando o sistema digital: coeficiente domínio digital b) Passando para o domínio analógico pela transformada bilinear: num = poly (1 , 'z' , 'c') den = poly([0.1 , -0.2 , -1 , 1], 'z' , 'c' sd = syslin('d' , num , den) sd = tf2ss(sd) sa = bilin(sd , [1 , 1 , 1 , -1] sa = ss2tf(sa) passa de função de transf. para espaço de estados � = 5 + 15 − 1 OBS: sa = bilin (sd, [a, b, c, d]) → obtém o sistema analógico, substituindo z por 05 + 9 :5 + ; passa para função de transf. c) Obtendo a tabela de Routh: routh_t(sa,0) 17 089,45¹ 1719² 451³ 0 − − −− − s s s s 1,02,0²³ 1 +−− = zzz sd 1745²19³ 1030²30³10 −−− +−+− = sss sss sa bateu com o feito no papel na aula passada Modelos: EDO: y" - y' + y = x' + 3x 1² 3)( +− + = ss s sH FT (TF) j2 35,0 + j 2 35,0 − 2 411 −± polos e zeros DUCXY BUAXX += +=& ss2tf tf2ss U Y No SciLab segunda-feira, 11 de maio de 2015 20:30 Página 24 de Servomec_2 OBS: Projeto de Sistemas analógicos com SciLab - questão da estabilidade: G(s) controlador proporcional planta Seja )3)(2( 4)( +− + = ss s sG k= 0 k= 0 Planos No SciLab num = poly(-4 , 's' , 'r') den = poly([-3, +2], 's' , 'r') G = syslin('c' , num , den) k = poly(0 , 'k') routh_t(G , k) regime contínuo igual a k = poly(0, 'k' , 'r') Root-Locus 046 01¹ 461² 0 ks ks ks +− + +− 2 3 2 3 4 6046 101 >⇒ =>⇒>+− −>⇒>+ k kk kk Projetos de Sistemas segunda-feira, 11 de maio de 2015 21:30 Página 25 de Servomec_2 Projeto de Controladores Proporcionais por Root-Locus: - Considerações Iniciais a) Estabilidade Plano S Plano Za sT ez = aT0ω Período de Amostragem 1 1 ωωωσ jsjsjs =⇒+=⇒+= 0 =∠ = ⇒= a Tj Tz z ez a ω ω 1||asTez = ANALÓGICO DIGITAL b) Tempo de Acomodação - Regra de Projeto: σ 4 −=sT ±2% 0 4 σ=− sT Tempo de acomodação constante Plano S Plano Za sT ez = 1 4 0 <== − s a a T T T eer σ ωσ js += 0 =∠ = ⇒== + a T TjTTj Tz ez eeez a aaa ω σ ωσωσ 0 00 || . )( ANALÓGICO DIGITAL asTez = ↑< 00σ ts Projeto de Controladores segunda-feira, 18 de maio de 2015 20:30 Página 26 de Servomec_2 c) OVERSHOOT ²1 ξ piξ − − = eOV ξ = fator de amortecimento ω n nξωσ −= ωξω =− ²1n curva para overshoot constante → Plano S asTez += ²1 ξ piξ − − = eOV Plano Z OBS: )ln(1 ²1 )cot( OV piξ ξθ −= − = )cos()cos( ξθξθ ar=⇒= ωξ ξω js + − −= ²1 asTez += =∠ =⇒= − − − − a T Tj T Tz ezeez a a a ω ξ ξω ωξ ξω ²1²1 || . qdo ω↑ ⇒ |z|↓ qdo ω↑ ⇒ ∠z ↓ ANALÓGICO DIGITAL Exemplo: No sistema abaixo, calcule o valor de k para que ξ = 0,7 (overshoot ≅ 5%) )5,0)(1( 1 −− + zz zx(t) y(t) controlador proporcional planta )( )( zD zN )()( )()( zkNzD zkN zT + = Revisão σ jω -1 1 k=? 0,5 k=0k=0 resposta k → ∞ Lugar Geométrico dos polos do sistema de malha fechada nξωσ −= ωξω =− ²1n Projeto de Controladores segunda-feira, 18 de maio de 2015 21:00 Página 27 de Servomec_2 No SciLab: num = poly(-1 , 'z' , 'r') den = poly([0.5 , 1], 'z' , 'r') sd = syslin('d' , num , den) evans(sd , 10) zgrid(0.7 , 1) sistema kmax ξ ωn k = 1 / real (horner(sd , [1 , %i] * locate (1))) ))(Re( 1 ozG k −= k = 0,0620673 0,0627 numer denom roots Utilizar comandos para definir interseção: Exemplo segunda-feira, 18 de maio de 2015 21:30 Página 28 de Servomec_2 Projeto de Controladores utilizando a Transformada de Tustin. Na aula passada, vimos como projetar um controlador proporcional digital diretamente pelo uso do root locus (método de Evans). No entanto, nem sempre é possível obter todas as especificações técnicas desejadas para o sistema. Nesses casos, podemos utilizar uma técnica em que projetamos um controlador no domínio analógico e depois o convertemos para o mundo digital pela transformada de Tustin, dada por: )1( )1(2 + − = z z T s a Exemplo: Projete um controlador avanço de fase para o sistema abaixo, para obter um overshoot de 20% e um tempo de acomodação de 1,1s. )10)(6( 1)( ++ = sss sGp Solução: Primeiro projetamos um controlador no domínio contínuo. Gc(s) Gp(s) Controlador Analógico Suponhamos inicialmente Gc(s) = k (novamente controlador proporcional). Nesse caso: k Gp(s) Por sua vez, para um overshoot de 20%, temos: 222 2 2²1²1 )1()2,0ln()1()2,0ln(²1 ²1 )2,0ln(2,0 ξξξ pi ξξ pi ξξ piξξpiξξpiξ =−⇒= − −⇒= − −⇒ − −=⇒=⇒= − − − − aeeOVa 43421visto em controle 1 4559,0 1 )1(222 ≅ + =⇒=+⇒=− a a aaaa ξξξξ °≅= 87,62)cos(ξθ a ξθ =)cos( 26245,0)2,0ln( 2 ≅ − = pi a )10)(6( 1)( ++ = sss sGp )(1 )()( skG sG sT p p + = )( )( sD sNGp = )()( )()( skNsD skN sT + = Transformada de Tustin segunda-feira, 25 de maio de 2015 20:30 Página 29 de Servomec_2 reta para overshoot constante e igual a 20% plano S O root locus do sistema será: θ = 62,87 k → ∞ polos do sistema de malha fechada plano S σ σ 44 −=⇒−= s s T T de controle 1: No SciLab: num = poly(1 , 's' , 'c') den = poly([-10 , -6 , 0], 's' , 'r') sa = syslin('c' , num , den) evans(sa) sgrid(0.4559 , 1) visualmente: σ ≅ -1,75 (??1,79??) Ts ≅ 2,28s σ 4 −=sT ξ ωn Regra de projeto para ± 2% Aplicando zoom: Exemplo segunda-feira, 25 de maio de 2015 21:00 Página 30 de Servomec_2 Obtido: 1,2 Ts = 2,28s OV = 20% 1,2 Ts = 1,1s Desejado: Logo: Para Ts = 1,1s 63,3 1,1 44 ' −=−=−= sT σ θ = 62,87 k → ∞ polos do sistema de malha fechada plano S → σ' = -3,65 Determinar σ ' que atende ao requisito de projeto: Conclusão: O controlador proporcional não atende aos requisitos. Devemos portanto utilizar um controlador do tipo AVANÇO DE FASE e para deslocarmos o Root Locus obtido para que passe pelo polo desenhado no plano S: )87,62(63,363,3 °+−= tgjs cc c c c PzPs zsk sG > − − = ,)( )()( • Exemplo segunda-feira, 25 de maio de 2015 21:30 Página 31 de Servomec_2 ? = Gc(s) Transf. de TUSTIN Gc(z) = ? Planta Para Gp(s) = )10)(6( 1 ++ sss , temos: σ jω -10 -6 0 σ θ sTs 1,1= Overshoot p/ 20% → ↓ polo desejado ← polo obtido Plano S PARA UM CONTROLADOR PROPORCIONAL 62,89° σ = 3,63 63,344 =−=⇒−= s s T T σ σ Conclusão: Não consegue atender as especificações com um controlador proporcional. -3 ,6 3 polo desejado → Plano S )( )()( c c c Ps ZsksG − − = Controlador Avanço de Fase Como já escolhemos Zc = -6 para cancelar e realocar um dos polos dominantes, temos: Pc < Zc )( )6()( c c Ps sk sG − + = deslocado root locus E o polo desejado está em: 44 344 21 d tgjs ω )89,62(63,363,3 °+−= Solução: a calcular a calcular Continuação segunda-feira, 1 de junho de 2015 20:30 Página 32 de Servomec_2 Cálculo de Pc: Regra do Root Locus: TODO PONTO QUE PERTENCE AO ROOT LOCUS SATISFAZ A: °+=∑−∑ 180)12( Lpoloszeros θθ No exemplo, não há zeros finitos no sistema de malha aberta logo: °+=−−−⇒°+=∑− 180)12(180)12( 321 LLpolos θθθθ -3 ,6 3 62,89° polo desejado no sistema de malha fechada polos do sistema de malha aberta = 180 - 62,89° = 117,11° = 3,63.tg(62,87°) = 7,091 Por sua vez: °≅ =⇒= − = 064,48 37,6 091,7 37,6 091,7 63,310 )( 22 arctgtg d θ ωθ Logo: -117,11 - 48,064 - θ3 = -180 → θ3 = 180 - 165,174 = 14,826° 1,2943,30)(63,3)(63,363,3)( 333 −≅−=−−===−−= −− = θ ω θ ωωθ tg P tg P P tg dcdc c d pelo livro Finalmente temos: 746,0 16741778)()1,29( )6(1977)( . − − = → + + = z z zG s s sG c TUSTINtransf c aaa TzT z z z T s + − = + − = 22 )1( )1( . 2Ta = 0,01s (enunciado) num = poly([6*1977 , 1977], 's' , 'c') den = poly(-29.1 , 's' , 'r') sa = syslin('c' , num , den) sd = bilin(sa , [2 , -2 , 0.01 , 0.01]) sd = ss2tf(sd) Gerei Gc(s) Calculei Gc(z) pela transformada de TUSTIN 2 ,−2 0.01 , 0.01 No SciLab: Solução segunda-feira, 1 de junho de 2015 21:00 Página 33 de Servomec_2 Dada uma função de transferência geral, temos: n nn n nn azaz bzbzb zH +++ +++ = − − ... ...)( 1 1 1 10 n n n n zaza zbzbb zH −− −− +++ +++ = ...1 ...)( 1 1 1 10 mult. por ��A ��A Logo: )()...()()...1( 11011 zXzbzbbzYzaza nnnn −−−− +++=+++ ][...]1[][][...]1[][ 101 NnxbnxbnxbNnyanyany nn −++−+=−++−+ ↓ no tempo atraso de 1 amostra x[n-1] x[n-2] Graficamente: z -1 z -1 z -1 ... bn b1 b2 a1 b0 + + + + x[n] z -1 z -1 z -1 a2 an - - - + y[n] ... No exemplo: 746,0 16741778)( − − = z z zGc ]1[1674][1778]1[746,0][ −−=−− nxnxnyny ]1[1674][1778]1[746,0][ −−+−= nxnxnyny→ Graficamente: Propr. da Transf. Z: ⇆x[n-k] z-kX(z) TZ TZ-1 Programar no SciLab o equivalente a função FLTS, podendo utilizar os comandos: for• numer• denom• coef• roots• lenght• help• ATIVIDADE ESTRUTURADA PARA AV2: -> flts(sist , entrada) vetores → saídasistema na forma de função de transferência Implementação de controladores segunda-feira, 1 de junho de 2015 21:30 Página 34 de Servomec_2 e[n] = x[n] - y[n] O sinal de erro é definido como a diferença entre a saída desejada (sinal aplicado na entrada) e a saída realmente obtida. Ou seja: Por sua vez, o erro em regime estacionário é obtido quando fazemos n→∞ . Pelo teorema de valor final, temos: G(z) E(z)X(z) Y(z) Mas: )(1 )()()())(1)(( )()()()()()()()()()( zG zX zEzXzGzE zXzGzEzEzGzEzXzYzXzE + =⇒=+ =+⇒−=−= )(1lim)()1(lim][lim)( 1 1 1 zE z z zEznee zzn − =−==∞ → − →∞→ Logo: )(1 )()1(lim)( 1 1 zG zX ze z + −=∞ − → a) Para uma entrada do tipo degrau unitário: 1 )( − = z z zX pk e + =∞ 1 1)( , onde ))((lim 1 zGk z p → = b) Para uma entrada do tipo rampa unitária: )²1()( −= z zT zX a vk e 1)( =∞ , onde )()1(lim1 1 zGz T k z a v −= → c) Para uma entrada do tipo parábola: )³1(2 )1()( − + = z Tzz zX a ak e 1)( =∞ , onde )()²1(lim ² 1 1 zGz T k z a a −= → Função de transferência digital, série / paralelo;• Erro estacionário, cálculo• Resposta ao degrau e ao impulso• Passar do analógico para digital usando conversor D/A do tipo ZOH• Para AV2: Erro em regime estacionário segunda-feira, 8 de junho de 2015 20:30 Página 35 de Servomec_2 Calcule os erros ao degrau, rampa e parábola para os sistemas abaixo, supondo Ta = 1s: ⇒ − − = 75,0 5,0)( z z zGa) b) ∞===∞⇒= − −− =−= ∞===∞⇒= − −− =−= = + = + =∞⇒= − − == → → → 0 11)(0 75,01 )5,01)²(11( ²1 1)()²1(lim ² 1 0 11)(0 75,01 )5,01)(11( ²1 1)()1(lim1 3 1 21 1 1 1)(2 75,01 5,01)(lim 1 1 1 a z a a v z a v p z p k ezGz T k k ezGz T k k ezGk ∞==∞⇒=−−= − −− =−= ===∞⇒=−= − −− =−= = ∞+ = + =∞⇒∞== − − == → → → a z a a v z a v p z p k ezGz T k k ezGz T k k ezGk 1)(0)5,01)(11()11( )5,01)²(11( ²1 1)()²1(lim ² 1 2 5,0 11)(5,05,01)11( )5,01)(11( ²1 1)()1(lim1 0 1 1 1 1)( 0 5,0 11 5,01)(lim 1 1 1 ⇒ − − = 1 5,0)( z z zG ↕ 1/3 0,667 a) b) Planta 75,0 5,0 − − z z 75,0 5,0 − − z z c c Pz Zz − − Para: Zc = 0,75 Pc = 1 controlador planta 1 5,0 − − z z 25,12 5,0 75,0 5,01 75,0 5,0 )( )()( − − = − − + − − == z z z z z z zX zY zT Exemplos: segunda-feira, 8 de junho de 201521:00 Página 36 de Servomec_2 Determine numericamente a saída do sistema para uma entrada degrau unitário, supondo y[-1] = 0: n y[n-1] x[n] x[n-1] y[n] 0 y[-1] = 0 x[0] = 1 x[-1] = 0 y[0] = 1 1 y[0] = 1 x[1] = 1 x[0] = 1 y[1] = 1,5 2 y[1] = 1,5 x[2] = 1 x[1] = 1 y[2] = 2 u[n] y[n] 1 5,0 − − z z Resp: ]1[5,0][]1[][ 1 5,01)( 1 5,0)( 1 1 1 1 −−=−− → − − = → − − = − −× − − nxnxnyny z z zH z z zH temponoz z ]1[5,0][]1[][ −−+−= nxnxnyny equação a diferença finita 2057 no tempo No SciLab: y = flts(x , sd) 5; = � − 0,5� − 1 [1 -0.5] num = numer(sd) den = denom(sd) coeff_num = coeff(num) coeff_den = coeff(den) for ... ... Atividade Estruturada para AV2: Reproduzir função flts via programação no SciLab Exercício segunda-feira, 8 de junho de 2015 21:30 Página 37 de Servomec_2 1 - Estabilidade 2 - Equações a diferença 3 - Passar um sistema (+DA) do mundo analógico para o mundo discreto: 4 - Projeto pelo root-locus → estabilidade: 5 - Erro em regime estacionário ou aplicação do teorema do valor final -1 1 k = 0 k = 0k →∞ k →∞ ?)3( 0)1( ]2[25,0][5,0]1[][ = =− −−+−= y y nxnxnyny zz z z z zX zY nxnxnyny z z − − → − − = −−=−− × − − ² 25,0²5,0 )1(1 25,05,0 )( )( ]2[25,0][5,0]1[][ ² ² 1 2 Planta G(s) s e sTa− −1 G(z) −= −− s sGLTzzzG )()1()( 11 x(t) X(s) X(z) -�DEF(G) 1 5 + 0 � � − -�D . F(G) 1 5 � � − 1 Exemplo consulta tabela: Ta → Período de Amostragem )()1(lim)( 1 1 zEze z − → −=∞ )()²1(lim ² 1 , 1 )()1(lim1,1 )(lim, 1 1 1 1 1 zGz T k k zGz T k k zGk k z a a a z a v v z p p −= −= = + → → →degrau rampa parábola )()()1(lim)()1(lim)( 1 1 1 1 zXzHzzYzy zz − → − → −=−=∞ Sist. Malha Fechada )(1 )( zG zG + Revisão AV2 segunda-feira, 15 de junho de 2015 20:30 Página 38 de Servomec_2 1a Opção: Programar em SciLab o equivalente a função flts: Instruções: ( )∑∑∑ === −−−+=⇒−−−= −++−++−−−−−= N i ii N i i N i i NN inyainxbnxbnyinyainxbny NnbnxbnxbNnyanyany 1 0 10 101 ][][][][][][][ ][]1[][][]1[][ KK b = coeff(numer(sd)) a = coeff(denom(sd)) y(n) = 0 for i = 1:N y(n) = y(n) + (?) end for n = (?): lenght(x) end Criar variáveis como: a , b , Delta , k , x , sd , y y = flts(x , sd) 2a Opção: Resolver exercício exemplo 13.9: )100)(36( 100)( ++ = sss k sG Considerando os dados: overshoot = 20% tempo de pico = 0,1s kv = 40 Ta = 0,001s Atividade Estruturada - AV2 segunda-feira, 15 de junho de 2015 21:30 Página 39 de Servomec_2
Compartilhar