

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Ampops e electronica digital no ambito de engenharia de controlo
Tipologia: Esquemas
1 / 3
Esta página não é visível na pré-visualização
Não perca as partes importantes!


Trabalho 5a (adenda)
José Soares Augusto, Maio de 2022 (versão 0.99)
Nesta adenda inclui-se informação adicional que poderá ajudar na realização dos controladores do tipo PID, e do controlador com feedback de variáveis de estado (SVF - “State Variable Feedback”).
Na implementação de SVF no Arduino o tempo T não interessa ao controlador. É no entanto parte integrante da definição do período da onda quadrada r(t) usada como referência, e eventualmente controlará o intervalo entre os comandos Serial.println() que servem para observar variáveis no loop(). Ou seja, ao calcular SVF num sistema de ordem n
u = r −
n
i= 1
ki xi (1)
os xi são os valores directamente lidos nos comandos x1=analogRead(A1), etc... sem interferência de T. Note que (1) é a única equação que implementa o controlador! Terá ainda que ter em conta a passagem de 10 bits para 8 bits nos conversores ADC (entrada) e DAC (saída) e prevenir a saturação do DAC PWM do Arduino (limita-se u ao intervalo 0...255). Para calcular o vector K que agrupa os ki use o Scilab. Obtenha a FdT G(s) e as matrizes A e B do MVE com os seus valores de R e de C. Com a instrução ppol() calcule aquele vector K. O vector K dependerá da posição pretendida para os pólos do sistema com SVF, e como o sistema é controlável, “em teoria” podemos escolher quaisquer pontos do plano s para os colocar. No entanto, devido às limitaçôes dos actuadores (no nosso caso são as gamas dinâmicas do ADC e do DAC do Arduino, que só funcionam entre 0 V e 5 V) não convém ser muito agressivo (e.g. puxar os pólos muito para a esquerda no plano s) na tentativa de tornar o sistema muito rápido. É também uma boa ideia implementar algum “overshoot” (que o RC3 em open-loop não tem, visto ter três pólos reais). Outra opção será escolher um dos polinómios “óptimos” obtidos com o critério ITAE (ver slides das aulas). Uma sugestão razoável para escolher os novos pólos, tendo em atenção que:
é a seguinte:
O valor de β sugerido não deverá causar a excessiva saturação do DAC do Arduino.
Compensação do ganho DC
O sistema com SVF tem em geral atenuação DC, e para podermos compará-lo em termos de amplitude com o original temos que fazer uma “amplificação” da entrada r(t). Sendo
G(s) = C (s I − A )−^1 B
o ganho do sistema open-loop, o valor DC é calculado com s = 0
G( 0 ) = C (− A )−^1 B
No presente caso G( 0 ) = 1 no circuito, se descontarmos a ligeira atenuação introduzida pela impedância de entrada do ADC do Arduino (vista nos terminais A0, A1, ...). Após aplicar SVF a matriz de A passará a ser A − BK (mas B e C não mudam) e então, seguindo o mesmo caminho, o ganho DC em closed-loop será
GCL( 0 ) = C (− A + BK )−^1 B
A amplificação a aplicar à referência r será então
α =
e assim a equação do controlador (1) será modificada para
u = α r −
n
i= 1
ki xi (2)
A implementação digital do PID pode ser “manhosa”, principalmente da parte diferencial (D). Ser “manhosa” aqui significa ser sensível aos valores concretos dos parâmetros do controlador, aos inevitáveis erros de precisão numérica, ao ruído, à saturação do DAC do Arduino, etc.. Assim, vamos dar alguns conselhos sobre a digitalização para que os alunos consigam realizar um sistema funcional... O controlador PID ideal pode ser definido de várias formas. As mais comuns são:
C(s) =
U(s) E(s)
s
sTI
= KP ( 1 + ω I /s + s/ ω D )
onde ω I = 1/TI ω D = 1/TD TI = KP/KI TD = KD /KP
É notório que podemos descrever o PID como a soma de 3 parcelas independentes: a proporcional, a integral e a diferencial: C(s) = CP(s) + CI (s) + CD (s) A parcela CD (s) (uma fracção não regular) sofre habitualmente alterações na implementação prática.
Limitação do ganho D em altas frequências
Coloca-se um pólo bem acima de ω D no termo diferencial, digamos em N ω D = N/TD, com N a valer tipicamente 10 (ou um valor nessa ordem de grandeza). Aquele termo passa a ser:
CD (s) =
KP TD s 1 + sTD /N
Desta forma, o ganho do diferenciador fica limitado nas altas frequências, prevenindo-se assim potenciais problemas devidos à penetração de ruído ou de perturbações de alta frequência no sistema.