Prévia do material em texto
matlab para controle Aula 01 SEATEL 2018 Copyright© 2018 Anderson de Lima Luiz Isabella Wosniack Universidade Federal do Paraná Grupo PET Elétrica agenda 1. Revisão MATLAB ∙ Ambiente MATLAB ∙ Alguns comandos úteis ∙ Scripts ∙ Vetores e Matrizes ∙ Gráficos ∙ Exercício 1 2. Sistemas Lineares de Controle ∙ Definição ∙ Função de Transferência ∙ Exercício 2 ∙ Realimentação ∙ Resposta ao Degrau ∙ Simulação Linear ∙ Exercício 3 1 revisão matlab revisão matlab 3 revisão matlab Alguns Comandos Úteis.. ∙ Comando clc: Limpar janela de comando ∙ Comando clear: Apagar variáveis criadas ∙ Comando help: Informação sobre alguma função 4 revisão matlab Scripts ∙ Permitem realizar alterações rapidamente ∙ Reutilização de códigos ∙ Geração de arquivos.m ∙ Comandos executados sequencialmente ∙ New -> Script ∙ Comentário: % ∙ Seção: %% 5 revisão matlab Gerando um Vetor ∙ x = primeiro : último ∙ x = primeiro : incremento : último ∙ x = linspace(primeiro, último, número de elementos) ∙ x = [1 2 3] Exemplo: 1 >> x = 1:3 2 x = 1 2 3 3 4 >> x = 1:0.5:3 5 x = 1.0000 1.5000 2.0000 2.5000 3.0000 6 7 >> x = linspace(1,5,6) 8 x = 1.0000 1.8000 2.6000 3.4000 4.2000 5.0000 6 revisão matlab Gerando uma Matriz ∙ Os elementos de cada linha são separados por vírgula ou espaço em branco e as colunas são separadas por ponto e vírgula Exemplo: 1 >> y = [1 2 3; 4, 5, 6; 7 8 9] 2 y = 3 1 2 3 4 4 5 6 5 7 8 9 6 7 >> y = [1 2 3; linspace(4,6,3); 7 8 9] 8 y = 9 1 2 3 10 4 5 6 11 7 8 9 7 revisão matlab Gráficos no MATLAB ∙ Gráficos bidimensionais, tridimensionais, malhas e superfícies ∙ plot(valores de x, valores de y, opções de estilo) Exemplo: Plotar a função y = sen(x), com 0 ≤ x ≤ 2π 8 revisão matlab Gráficos no MATLAB ∙ Gráficos bidimensionais, tridimensionais, malhas e superfícies ∙ plot(valores de x, valores de y, opções de estilo) Exemplo: Plotar a função y = sen(x), com 0 ≤ x ≤ 2π 1 >> x = linspace(0,2*pi); 2 >> y = sin(x); 3 >> plot(x, y, 'red o') 9 revisão matlab Gráficos no MATLAB 1 >> x = linspace(0,2*pi); 2 >> y = sin(x); 3 >> plot(x, y, 'red o', 'linewidth', 2) 4 >> title('Funcao Seno') 5 >> axis([0 6 -1 1]) 6 >> xlabel('t') 7 >> ylabel('sen(t)') 8 >> legend('sen(t)') 9 >> grid 10 revisão matlab Exercício 1: Dado um circuito RC, a fórmula que mostra a variação de tensão no tempo pode ser escrita como: v(t) = Vf · (1− e( −t τ )) Considerando Vf = 5, R = 1kΩ e C = 4.7µF, encontre o tempo t = tm necessário para que a tensão no capacitor chegue a 4,9 V. Crie um vetor linearmente espaçado contendo 10 elementos que comece em 0 e termine no valor tm. Calcule o valor de v(t) para cada instante de tempo do vetor criado anteriormente e plote um gráfico da tensão v(t) em função do tempo. 11 revisão matlab Resolução: v(t) = Vf · (1− e( −t τ )) v(t) Vf = 1− e( −t τ ) v(t) Vf − 1 = −e( −t τ ) −v(t) Vf + 1 = e( −t τ ) Aplicando ln em ambos os lados: ln(1− Vt Vf ) = −t τ · ln(e) t = tm = −τ · ln(1− Vt Vf ) 12 revisão matlab 1 R = 1e3; 2 C = 4.7e-6; 3 tau = R*C; 4 Vf = 5; 5 Vt = 4.9; 6 7 tm = -tau*log(1 - Vt/Vf) % Descobrindo valor de tm 8 9 T = linspace(0,tm,10); % Vetor linearmente espacado de 0 a tm 10 %Calculando V para cada instante de tempo: 11 for i = 1 : 10 12 V(i) = Vf * (1 - exp(- T(i)/tau)); 13 end 14 15 plot(T, V) 16 xlabel('tempo (s)') 17 ylabel('tensao (V)') 18 axis([0 0.0184 0 5]) 19 grid 20 title('tensão em função do tempo') 13 revisão matlab 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 tempo (s) 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 te n s a o ( V ) tensão em função do tempo 14 sistemas lineares de controle sistemas lineares de controle Definição: ”Sistema que estabelece uma relação de comparação entre uma entrada de referência e uma saída, utilizando a diferença como meio de controle” K. Ogata – Engenharia de Controle Moderno 16 sistemas lineares de controle Dois tipos de controle: Controle Malha Aberta Controle Malha Fechada 17 sistemas lineares de controle Função de Transferência ∙ Relação entre a entrada e saída de um sistema descrito por equações diferenciais ∙ Em sistemas lineares, é definida como sendo a transformada de Laplace da saída pela transformada de Laplace da entrada. G(s) = L[saida] L[entrada] = Y(s) X(s) 18 sistemas lineares de controle Função de Transferência ∙ Função tf cria funções de transferência de tempo contínuo ou discreto no domínio da frequência Sintaxe: tf(vetor numerador, vetor denominador) Exemplo: 1 tf([1 0 1], [1 1 1]) 2 3 ans = 4 s^2 + 1 5 ----------- 6 s^2 + s + 1 7 8 Continuous-time transfer function. 19 sistemas lineares de controle Exercício 2: Escreva no Matlab o script correspondente a função de transferência abaixo: H(s) = 4+ 4s4 + 3s+ 1s2 5s2 + 9 20 sistemas lineares de controle Solução: Reescrevendo a função com os coeficientes na ordem correta: H(s) = 4s4 + 1s2 + 3s+ 4 5s2 + 9 1 H = tf([4 0 1 3 4],[5 0 9]) 2 3 H = 4 5 4 s^4 + s^2 + 3 s + 4 6 --------------------- 7 5 s^2 + 9 8 9 Continuous-time transfer function. 21 sistemas lineares de controle Realimentação Informações sobre a saída do sistema determinam o sinal de controle que deve ser aplicado ao processo em determinado instante ∙ Aumento da precisão do sistema ∙ Rejeição a distúrbios ∙ Melhoria da dinâmica do sistema 22 sistemas lineares de controle Realimentação ∙ Função feedback() calcula a função de transferência equivalente da realimentação de uma função de transferência por outra Sintaxe: feedback(função principal, função realimentação) Exemplo: 1 X = tf([1 0 1], [1 1 1]) 2 3 H = feedback(X, 1) 4 H = 5 s^2 + 1 6 ------------- 7 2 s^2 + s + 2 8 Continuous-time transfer function. 23 sistemas lineares de controle Resposta ao Degrau 24 sistemas lineares de controle Resposta ao Degrau ∙ RiseTime: tempo para a resposta passar de 10% a 90% ∙ PeakTime: tempo para a resposta alcançar o primeiro pico do sobressinal. ∙ SettlingTime: tempo para a curva de resposta alcançar e permanecer dentro de uma faixa em torno do valor final (normalmente 1%, 2% ou 5%) 25 sistemas lineares de controle Resposta ao Degrau ∙ Função step() plota a resposta ao degrau unitário de uma função de transferência Sintaxe: step(função de transferência) Exemplo: 1 H = tf([1 1],[1 1 1]) 2 step(H) 3 4 H = 5 s + 1 6 ----------- 7 s^2 + s + 1 26 0 1 2 3 4 5 6 7 8 9 10 0 0.2 0.4 0.6 0.8 1 1.2 1.4 Step Response Time (seconds) A m p lit u d e sistemas lineares de controle Resposta ao Degrau ∙ Função stepinfo() fornece características referentes a resposta ao degrau Sintaxe: stepinfo(função de transferência) Exemplo: 1 H = tf([1 1],[1 1 1]) 2 stepinfo(H) 3 4 RiseTime: 0.9409 5 SettlingTime: 7.5054 6 SettlingMin: 0.9403 7 SettlingMax: 1.2984 8 Overshoot: 29.8352 9 Undershoot: 0 10 Peak: 1.2984 11 PeakTime: 2.3947 27 sistemas lineares de controle Simulação Linear ∙ Função lsim() plota a resposta a um sinal de entrada genérico de uma função de transferência Sintaxe: lsim(função de transferência, vetor de entrada, vetor tempo) Exemplo: 1 H = tf([2],[1 2 1]) 2 [u, t] = gensig('square', 2, 10, 0.01); 3 lsim(H, u, t) 4 axis([0 10 -0.5 1.5]) 28 sistemas lineares de controle Simulação Linear 0 1 2 3 4 5 6 7 8 9 10 -0.5 0 0.5 1 1.5 Linear Simulation Results Time (seconds) A m p lit u d e 29 sistemas lineares de controle Exercício 3: Dado o filtro RC abaixo, determine sua função de transferência. Em seguida, apresente a resposta ao degrau do sistema utilizando as funções step() e lsim(). Estime o valor do tempo de subida e compare com o valor obtido a partir da função stepinfo(). Utilize R = 10kΩ e C = 10µF. 30 sistemas lineares de controle Solução: ∙ Função de transferência: vin(t) = R · i(t) + vout(t) vin(t) = R · C dvout(t) dt + vout(t) Vin(s) = RCs · Vout(s) + Vout(s) Vin(s) = Vout(s)(RCs+ 1) Vout(s) Vin(s) = 1 RCs+ 1 31 sistemas lineares de controle Solução: 1 R = 10e3; 2 C = 10e-6; 3 H = tf([1],[R*C1]) 4 step(H) 5 grid 6 7 %% Utilizando o lsim() 8 [u, t] = gensig('square', 1, 1, 0.001); 9 lsim(H, u, t) 10 axis([0 1 -0.2 1.2]) 11 grid 32 sistemas lineares de controle Solução: Comando step() 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Step Response Time (seconds) A m p lit u d e System: H Time (seconds): 0.0112 Amplitude: 0.106 System: H Time (seconds): 0.23 Amplitude: 0.9 33 sistemas lineares de controle Solução: Comando lsim() 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 Linear Simulation Results Time (seconds) A m p lit u d e System: H Time (seconds): 0.511 Amplitude: 0.104 System: H Time (seconds): 0.733 Amplitude: 0.903 34 sistemas lineares de controle Solução: Utilizando o comando stepinfo(): 1 R = 10e3; 2 C = 10e-6; 3 H = tf([1],[R*C 1]) 4 stepinfo(H) 5 6 ans = 7 RiseTime: 0.2197 8 SettlingTime: 0.3912 9 SettlingMin: 0.9045 10 SettlingMax: 1.0000 11 Overshoot: 0 12 Undershoot: 0 13 Peak: 1.0000 14 PeakTime: 1.0546 35 matlab para controle Aula 02 SEATEL 2018 Copyright© 2018 Anderson de Lima Luiz Isabella Wosniack Universidade Federal do Paraná Grupo PET Elétrica agenda 1. Polos e Zeros ∙ Polos e Zeros de uma função de transferência ∙ Expansão em Frações Parciais ∙ Exercício 4 ∙ Mapa de Polos e Zeros ∙ Exercício 5 ∙ Exercício 6 2. Diagrama de Bode ∙ Margem de Ganho e Margem de Fase ∙ Exercício 7 3. Trabalhando com dados CSV ∙ Importação de dados ∙ Utilização de dados em funções ∙ Exercício 8 1 polos e zeros sistemas lineares de controle Polos e Zeros de uma função de transferência ∙ Zeros: raízes do numerador. Estão localizados no plano-s onde a função de transferência é zero ∙ Polos: raízes do denominador. Localizados no plano-s em que a magnitude da função de transferência é infinita. Determinam propriedades de estabilidade do sistema 3 sistemas lineares de controle Expansão em Frações Parciais ∙ A função residue() calcula a expansão em frações parciais Sintaxe: [r,p,k] = residue(num, den) Exemplo: H(s) = 2s+ 1 s2 + 3s+ 2 1 num = [2 1]; 2 den = [1 3 2]; 3 %expansão em fracoes parciais: 4 [r,p,k] = residue(num, den) 5 6 r = 3, -1 7 p = -2, -1 8 k = [] 4 sistemas lineares de controle Ou seja, a função de transferência H(s) = 2s+ 1 s2 + 3s+ 2 Pode ser reescrita como: H(s) = − 1 s+ 1 + 3 s+ 2 Fazendo a transformada inversa de cada termo: h(t) = −e−t + 3e−2t, t ≥ 0 Em geral, polos mais a esquerda do plano-s estão associados a sinais que decaem mais rápido do que os polos mais próximos ao eixo imaginário Se os polos estiverem no eixo positivo de s, a resposta teria um crescimento exponencial e, portanto, o sistema seria instável 5 sistemas lineares de controle Exercício 4: Dada a seguinte função de transferência: H(s) = 2s3 + 5s2 + 3s+ 6 s3 + 6s2 + 11s+ 6 Escreva função na forma de expansão em frações parciais 6 sistemas lineares de controle Resposta: H(s) = 2s3 + 5s2 + 3s+ 6 s3 + 6s2 + 11s+ 6 = − 6 s+ 3 − 4 s+ 2 + 3 s+ 1 + 2 7 sistemas lineares de controle ∙ A função tf2zp() converte a forma numerador-denominador para a forma de polos e zeros Sintaxe: [z,p,k] = tf2zp(num, den) Exemplo: 1 num = [2 1]; 2 den = [1 3 2]; 3 [z, p, k] = tf2zp(num,den) 4 5 z = -0.5000 6 p = -2, -1 7 k = 2 8 sistemas lineares de controle Mapa de Polos e Zeros ∙ Os polos e zeros podem ser complexos, sendo representados graficamente em um plano complexo, o qual chamamos de plano-s. 9 sistemas lineares de controle Mapa de Polos e Zeros ∙ Função pzmap() plota os pólos e zeros de uma função de transferência Sintaxe: pzmap(função de transferência) Exemplo: 1 H = tf([2 1],[1 3 2]) 2 pzmap(H) 3 4 H = 5 6 2 s + 1 7 ------------- 8 s^2 + 3 s + 2 10 sistemas lineares de controle Mapa de Polos e Zeros -2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 0.50.640.760.86 0.94 0.985 0.250.50.7511.251.51.752 0.160.340.50.640.760.86 0.94 0.985 0.160.34 Pole-Zero Map Real Axis (seconds -1) Im a g in a ry A x is ( s e c o n d s -1 ) System: H Pole : -1 Damping: 1 Overshoot (%): 0 Frequency (rad/s): 1 System: H Zero : -0.5 Damping: 1 Overshoot (%): 0 Frequency (rad/s): 0.5 System: H Pole : -2 Damping: 1 Overshoot (%): 0 Frequency (rad/s): 2 11 sistemas lineares de controle Exercício 5: Dada a seguinte função de transferência: H(s) = 2s3 + 5s2 + 3s+ 6 s3 + 6s2 + 11s+ 6 Plotar o diagrama de polos e zeros da função e comparar com o resultado utilizando a função tf2zp() 12 sistemas lineares de controle Exercício 6: 13 sistemas lineares de controle Exercício 6: 1. Criar a função de transferência do sistema da figura (Dica: funções tf e feedback) 2. Plotar em uma mesma janela as respostas ao degrau da planta e do sistema completo 3. Na mesma janela plotar os mapas de polos e zeros da planta e do sistema completo 14 sistemas lineares de controle Resposta: 0 0.1 0.2 0.3 0.4 0 0.05 0.1 Degrau planta Time (seconds) A m p lit u d e -30 -20 -10 0 -1 -0.5 0 0.5 1 Polos e zeros da planta Real Axis (seconds -1 ) Im a g in a ry A x is ( s e c o n d s -1 ) 0 0.05 0.1 0 0.05 0.1 0.15 Degrau sistema completo Time (seconds) A m p lit u d e -100 -50 0 -100 -50 0 50 100 Polos e zeros sistema completo Real Axis (seconds -1 ) Im a g in a ry A x is ( s e c o n d s -1 ) 15 diagrama de bode sistemas lineares de controle Diagrama de Bode ∙ Representações gráficas da resposta em frequência ∙ Gráficos do módulo e fase em função da frequência Sintaxe: bode(função de transferência) Exemplo: 1 H = tf([1],[1 1]) 2 bode(H) 3 grid 4 5 H = 6 1 7 ----- 8 s + 1 17 sistemas lineares de controle Diagrama de Bode -40 -30 -20 -10 0 M a g n it u d e ( d B ) 10-2 10-1 100 101 102 -90 -45 0 P h a s e ( d e g ) Bode Diagram Frequency (rad/s) 18 sistemas lineares de controle Margem de Ganho e Margem de Fase Dado um sistema realimentado, para que este seja instável, duas condições devem ser satisfeitas: 1. O sinal de erro, aplicado em G(s) deve retornar com uma amplitude maior ou igual à original 2. O defasamento total do circuito deve ser 0 ou 360 ∙ Margem de ganho: é o fator pelo qual o ganho pode ser aumentado antes que o sistema fique instável ∙ Margem de fase: é o numero de graus de G(s) acima de −180, na frequência de cruzamento de ganho, onde o módulo da função é igual a 1 (ou seja, 0db) 19 sistemas lineares de controle Exercício 7: Calcule a margem de ganho e margem de fase do sistema abaixo para K = 5: O sistema é estável ou instável? O que acontecerá de K for alterado para 1? e para 20? 20 trabalhando com dados csv trabalhando com dados csv Importação de Dados: 22 trabalhando com dados csv ∙ Após importar os dados, estes ficam guardados no workspace como vetores ∙ Todas as operações com vetores são válidas ∙ Pode-se utilizar o comando plot() para conferir os dados Exemplo: Se os dados importados forem, por exemplo, Volt1 e second1, pode-se plotá-los da seguinte forma: plot(second1, Volt1) 23 utilização dos dados csv em funções ∙ Todas as funções que aceitam vetores como argumento, aceitarão também os dados csv importados. ∙ As funções que normalmente utilizam dados csv como argumentos são a lsim() e stepinfo() Exemplo: plot(second1, Volt1) 24 utilização dos dados csv em funções Exercício 8: Dado o circuito RLC abaixo e sua função de transferência, plotar a saída teórica e a obtida experimentalmente. Comparar a resposta teórica e experimental. H(s) = 1 LC s2 + R L s+ 1 LC Sendo R = 1kΩ, L = 1mH e C = 1nF. 25 utilização dos dados csv em funções Resolução: 1 R = 1e3; 2 L = 1e-3; 3 C = 1e-9; 4 5 % função de transferência teórica: 6 H = tf([1/(L*C)],[1 R/L 1/(L*C)]) 7 8 % resposta teórica: 9 lsim(H, Volt, second1-0.1e-6, 'b') 10 hold 11 12 % resposta experimental: 13 plot(second1, Volt1, 'r') 14 legend('teorico','experimental') 15 xlabel('tempo') 16 ylabel('amplitude (V)') 17 grid 26 utilização dos dados csv em funções -2 0 2 4 6 8 10 12 14 16 18 ×10-6 -1.5 -1 -0.5 0 0.5 1 1.5 2 teorico experimental Linear Simulation Results tempo (seconds) a m p lit u d e ( V ) 27 utilização dos dados csv em funções Dica: rlc_gui 28 matlab para controle Aula 03 SEATEL 2018 Copyright© 2018 Anderson de Lima Luiz Isabella Wosniack Universidade Federal do Paraná Grupo PET Elétrica agenda 1. Lugar das Raízes ∙ Interface sisotool ∙ Ferramenta rltool() ∙ Exercício 1 2. Projeto de Controlador ∙ Exercício 2 ∙ Exercício 3 ∙ Controlador PI ∙ Exercício 4 1 lugar das raízes lugar das raízes Definição: Representação gráfica do comportamento de um sistema, conforme a variação do seu ganho. Em outras palavras, é a trajetória dos polos do sistema, conforme o ganho varia. 3 lugar das raízes T(s) = kG(s) 1+ KG(s)H(s) O ganho K aparece no denominador, influenciando diretamente na localização dos polos 4 lugar das raízes No MATLAB, a ferramente utilizada para determinar o lugar das raízes é o rltool() sintaxe: rltool(ft da planta em malha fechada) 5 lugar das raízes Exemplo: Seja a planta do sistema determinada pela seguinte função de transferência: G(s) = s+ 5 (s+ 1)(s+ 2)(s+ 6) Determine o ganho de forma ao tempo de assentamento ser 3s e o overshoot ser 5%. 6 lugar das raízes Solução: G(s) = s+ 5 (s+ 1)(s+ 2)(s+ 6) G(s) = s+ 5 s3 + 9s2 + 20s+ 12 1 G = tf([1 5],[1 9 20 12]) 2 rltool(G) 3 4 %% tendo determinado o ganho: 5 K = 1.49 6 H1 = feedback(K*G, 1) 7 stepinfo(H1) Possível resposta: K = 1,49 7 lugar das raízes Exercício 1: Seja a planta do sistema determinada pela seguinte função de transferência: G(s) = s+ 5 s2 + 11s+ 10 Utilizando a ferramenta rltool, determine o ganho de forma ao tempo de assentamento ser 3 segundos e o overshoot ser 5%. Em seguida, veja se o sistema cumpre com os requisitos analisando a resposta ao degrau do mesmo (função stepinfo()). Possível resposta: K = 13.14 8 projeto de controlador projeto de controlador Interface Sisotool ∙ Para iniciar a ferramenta sisotool, deve-se primeiro definir a função de transferência da planta no ramo direto ∙ Após definida a planta, digite na janela de comando: sintaxe: sisotool(ft da planta) 10 projeto de controlador 11 projeto de controlador Arquitetura do sistema ∙ Antes de definir o tipo ou os valores do controlador é necessário saber como o mesmo ou os mesmos estarão dispostos na arquitetura do sistema 12 projeto de controlador Ajuste do compensador 13 controlador proporcional Exercício 2: Dado o sistema abaixo, calcule a função de transferência do sistema em malha fechada para um controlador C proporcional genérico (deixe em função de kp) Analise a resposta ao degrau do sistema para kp = 0.5, 1, 5 e 10, determinando o tempo de subida, de assentamento e o overshoot para cada um. O que acontece com o tempo de subida a medida que aumentamos o ganho? E erro? 14 G(s) = 1 1s2 + 3s + 2 controlador proporcional Exercício 3: Para a mesma planta do exercício anterior, projete um controlador proporcional que atenda as seguintes características: ∙ Tempo de subida: 1s ∙ Overshoot: 10% Resposta: um possível controlador proporcional seria o qual tivesse Kp = 4.17. 15 controlador proporcional integral Controlador PI 16 controlador proporcional integral Exercício 4: Para a planta de um sistema descrita pela função de transferência abaixo, obter uma resposta ao degrau com as seguintes especificações: ∙ erro nulo em regime permanente ∙ tempo de subida de 2s ∙ tempo de assentamento menor que 10s ∙ overshoot menor que 20% G(s) = 1 1s2 + 3s + 2 17 matlab para controle Aula 04 SEATEL 2018 Copyright© 2018 Anderson de Lima Luiz Isabella Wosniack Universidade Federal do Paraná Grupo PET Elétrica agenda 1. Controlador PID ∙ Função pid ∙ Exercício 1 ∙ Exercício 2 2. Simulink ∙ Ambiente ∙ Blocos básicos ∙ Exercício 3 ∙ Exercício 4 ∙ Exercício 5 ∙ Exercício 6 ∙ Exercício 7 ∙ Exercício 8 1 controlador pid controlador pid Controlador PID A função pid() retorna a função de transferência de um controlador PID, tendo como parâmetros os valores dos ganhos proporcional, integral e derivativo. sintaxe: pid(kp, ki, kd) Exemplo: 1 kp = 1; 2 ki = 1; 3 kd = 1; 4 C = pid(kp,ki,kd) 3 controlador pid Exercício 1: Para a função de transferência: H(s) = 1 s2 + 4s+ 2 Fazer um estudo sobre a influência dos ganhos proporcional, integral e derivativo no sistema. Qual a influência do ganho Kp? e do Ki e Kd? 4 controlador pid Exercício 2: Para a função de transferência: H(s) = 1 2s+ 1 Utilizando o comando step, analisar o tempo de subida e de assentamento do sistema em malha fechada. Em seguida, utilizando a função pid(), obter controlador que permita ao sistema ter uma resposta ao degrau com as seguintes características: ∙ Tempo de subida menor que 0.2s ∙ Tempo de assentamento de 0.5s ∙ Erro nulo em regime permanente 5 simulink simulink Simulink Para abrir a interface simulink, basta clicar no ícone ”Simulink Library”na aba ”Home”. Obs: Pode levar algum tempo para o simulink ser inicializado 7 simulink 8 Ambiente A janela apresentada ao lado será aberta. Nela é possível observar a grande variedade de blocos funcionais que o simulink apresenta Para criar um novo modelo, basta clicar no ícone indicado pela seta simulink Blocos básicos ∙ Os blocos mais comuns utilizados para controle estão na aba Simulink em seus sub-tópicos. ∙ Para utilizar os blocos, basta abrir um novo modelo e arrastá-los para dentro da janela do modelo. ∙ Após um bloco ser adicionado ao modelo, pode-se alterar suas configurações clicando duas vezes sobre o mesmo. ∙ Existe um mecanismo de busca textual no canto superior esquerdo. 9 simulink 10 Blocos básicos No sub-tópico “Commonly Used Blocks”, estão presentes alguns blocos muito utilizados em modelos de controle, tais como: Gain(Ganho), Mux (Multiplexador), Scope (Utilizado para visualizar resultados), Sum (Soma e subtração de sinais), Integrator (Integrador), entre outros. simulink Blocos básicos No sub-tópico “Continuous” estão alguns blocos utilizados em modelos de tempo contínuo. Nesse sub-tópico estão presentes outros blocos básicos importantes como: TransferFcn, PID Controller, Derivative, Zero-Pole, entre outros. 11 simulink 12 Blocos básicos No sub-tópico “Sources” estão os blocos de fontes que podem ser utilizados. A que está mais presente nos modelos de controle é a fonte step (degrau). Há também outras fontes importantes como ramp (rampa), clock (relógio), pulse generator (pulsos quadrados), entre outras. simulink Blocos básicos ∙ Com os blocos já posicionados dentro do modelo, para interliga-los basta clicar na extremidade de um bloco e arrastar até outro para surgir uma conexão. ∙ Após pronto, o modelo pode ser testado clicando-se no botão “Run”. ∙ Lembre-se de configurar o tempo da simulação. ∙ Dependendo dos blocos utilizados, os resultados podem se apresentar de diferentes formas. Utilizando o bloco scope, os resultados serão apresentados em uma interface similar a de um osciloscópio. 13 simulink Exercício 3: Para uma planta a qual a função de transferência é dada por: H(s) = 100 2s2 + 16s+ 4 Projetar um modelo com um controlador P para que se obtenha sobre-elevação máxima de 20% e tempo de assentamento menor que 5 segundos. Obs: Deixar o tempo de simulação configurado em 10 segundos e colocar o Sample time como sendo 0.01 segundos. 14 simulink Exercício 4: Para uma planta a qual a função de transferência é dada por: H(s) = 100 2s2 + 16s+ 4 Projetar um modelo com um controlador PD para que se obtenha sobre-elevação máxima de 5% e tempo de assentamento menor que 5 segundos. 15 simulink Exercício 5: Para uma planta a qual a função de transferência é dada por: H(s) = 100 2s2 + 16s+ 4 Projetar um modelo com um controlador PI para que se obtenha sobre-elevaçãomáxima de 30%, erro nulo em regime permanente e tempo de assentamento menor que 3 segundos. 16 simulink Exercício 6: Para uma planta a qual a função de transferência é dada por: H(s) = 100 2s2 + 16s+ 4 Projetar um modelo com um controlador PID para que se obtenha sobre-elevação máxima de 20%, erro nulo em regime permanente e tempo de assentamento menor que 3 segundos. 17 simulink Exercício 7: Para uma planta a qual a função de transferência é dada por: H(s) = 20 s2 + 20s+ 20 Projetar um modelo com um controlador (P, PI ou PID) para que se obtenha sobre-elevação máxima de 5%, erro nulo em regime permanente e tempo de assentamento menor que 3 segundos. 18 simulink Exercício 8: Para uma planta a qual a função de transferência é dada por: H(s) = 20 s2 + 20s+ 20 Projetar um modelo com um controlador (P, PI ou PID) para que se obtenha sobre-elevação máxima de 5%, erro nulo em regime permanente e tempo de assentamento menor que 3 segundos. Utilize o bloco PID Controller 19 matlab para controle Aula 05 SEATEL 2018 Copyright© 2018 Anderson de Lima Luiz Isabella Wosniack Universidade Federal do Paraná Grupo PET Elétrica agenda 1. Controlador em Avanço ∙ Exercício 1 2. Controlador em Atraso ∙ Exercício 2 3. Simulação Linear ∙ Exercício 3 4. Controlador ∙ Exercício 4 1 controlador avanço e atraso controlador em avanço Exercício 1: Utilizando alguma das ferramentas apresentadas em aula (sisotool ou rltool), projete um controlador em avanço para a seguinte função de transferência: G(S) = 1 s(s+ 7) O sistema deverá respeitar os seguintes requisitos: ∙ Overshoot = 10% ∙ ts = 1 segundo ∙ MF = 60◦ 3 controlador em avanço Exercício 1: Utilizando alguma das ferramentas apresentadas em aula (sisotool ou rltool), projete um controlador em avanço para a seguinte função de transferência: G(S) = 1 s(s+ 7) O sistema deverá respeitar os seguintes requisitos: ∙ Overshoot = 10% ∙ ts = 1 segundo ∙ MF = 60◦ Possível resposta: C(s) = 259.95 s+ 4.8 s+ 15.5 4 controlador em atraso Exercício 2: Para a mesma planta anterior, fazer um controlador em atraso G(S) = 1 s(s+ 7) O sistema deverá respeitar os seguintes requisitos: ∙ Overshoot = 10% ∙ ts = 1 segundo ∙ MF = 60◦ ∙ tr = 2s 5 controlador em atraso Exercício 2: Para a mesma planta anterior, fazer um controlador em atraso G(S) = 1 s(s+ 7) O sistema deverá respeitar os seguintes requisitos: ∙ Overshoot = 10% ∙ ts = 1 segundo ∙ MF = 60◦ ∙ tr = 2s Possível resposta: C(s) = 1.3659 s+ 4.1 s+ 1 6 simulação linear Exercício 3: Sendo a função de transferência H: H(s) = 6, 143 · 107 · s+ 1, 571 · 1011 s3 + 1.343 · 104 · s2 + 7, 571 · 107 · s+ 1, 571 · 1011 Plote o gráfico da resposta teórica dessa função, para o vetor entrada do arquivo CSV (Volt) e, no mesmo gráfico, plote o vetor da resposta real, que está no arquivo CSV (Volt1). 7 controlador Exercício 4: Projete um controlador utilizando o sisotool para que a seguinte planta: H(s) = 1 15s2 + 30s Obtenha para a resposta ao degrau: ∙ Erro nulo ∙ Tempo de assentamento menor que 2,5 segundos ∙ sobreelevação menor que 10% Plotar o gráfico da resposta com todas essas informações 8 Revisão MATLAB sistemas lineares de controle Polos e Zeros Diagrama de Bode Trabalhando com dados CSV Lugar das Raízes Projeto de Controlador Controlador PID simulink Controlador Avanço e Atraso