seminário de programação em - embarcados€¦ · seminário de programação em sistemas...
Post on 30-Aug-2021
2 Views
Preview:
TRANSCRIPT
Seminário de programação em sistemas embarcados
Implementando controle PID digital em sistemas embarcados
Felipe S. Neves
• Compensadores, o compensador PID;
• Implementação PID em sistemas embarcados;
• Algoritmo PID digital clássico;
• Algoritmo PID digital (2p2z);
• Implementando filtros IIR eficientes;
• Estudo de caso;
• Perguntas.
Agenda
• Considere o sistema de controle em malha fechada abaixo:
Figura 1: Sistema de malha fechada típico (OGATA,2002).
Compensadores
• O elemento amplificador aplica ao sinal de erro, além do ganho, e outras propriedades sobre sua atuação sobre a planta;
• Entre essas, podem ser aplicados avanço, e/ou, atraso de fase;
• Então um compensador é um bloco que modifica a resposta de uma dada planta a ser controlada;
• Exemplos: phase lead-lag, type – II, type-III.
Compensadores
• O controlador do tipo PID, também é um tipo de compensador, com a seguinte função de transferência:
• Possui até 3 ações, com diferentes propriedades, definíveis em intensidade por 3 coeficientes(Kp, Ki, Kd);
• Escalável, o usuário decide quais ações quer usar, a que não desejar no seu sistema basta apenas zerar o coeficiente.
O compensador PID
• Implementável geralmente com o uso de amplificadores operacionais:
Figura 2 : PID analógico (OGATA, 2012).
O compensador PID
• Possuem vantagens a destacar, elevada largura de banda;
• Circuito de baixo custo;
• Porém, a estabilidade depende da tolerância dos componentes;
• Sensível a variação de temperatura sob os componentes;
• Pouco flexível, modificar para uma implementação paralela, envolve um novo projeto de circuito.
O compensador PID
Implementando PID em sistemas embarcados
• A implementação do compensador é feita de forma numérica;
• O mesmo ocorre com os parâmetros relativos a compensação (ex: Kp, Ki , Kd são constantes armazenadas em memória);
• Os sinais de set-point e feedback são discretizados através de um conversor de dados (ex.: A/D);
• O processo inverso ocorre com sinal da variável manipulada, que é trazida para o domínio analógico (ex D/A, PWM).
Implementando PID em sistemas embarcados
● Análogo a um sistema de malha fechada de tempo contínuo, obtemos seu equivalente discreto:
Figura 3: Sistema de malha fechada discreto (STARR, 2006).
Implementando PID em sistemas embarcados
• O grande desafio de um sistema de controle discreto, é sua largura de banda finita (limitada a frequência de clock do processador);
• Assim, o sinais de feedback e(ou) set-point precisam ter sua banda limitada (eliminar o efeito “aliasing” );
• Empregado na forma de circuitos discretos (filtros – ativos);
Implementando PID em sistemas embarcados
• Além disso, sistemas discretos estão sujeitos a erros de quantização:
Figura 4: Discretizador típico de um conversor A/D (CHOUINARD, 2013).
Implementando PID em sistemas embarcados
• Uma vez discretizada a informação, alguns tempos precisam ser respeitados;
• Critério de Nyquist-Shannon: ;
• Execução da ação de compensação deve ser periódica (tempo real, determinístico);
• Considerar atraso entre aquisição e disponibilização do sinal manipulado na saída do sistema.
Implementando PID em sistemas embarcados
• De forma similar a aquisição, o sinal de atuação discreto deve ser reconstruído antes de atuar sobre a planta:
Figura 5: Exemplo de conversão D/A (LYONS, 2008).
Implementando PID em sistemas embarcados
• Qualquer processador de uso geral então pode ser utilizado para computar um PID;
• Basta apenas que este possua formas de discretizar e reconstruir os sinais de feedback e atuação;
• Entre os dispositivos podem ser usados DSPs e FPGA porém...
Implementando PID em sistemas embarcados
• ...além de dispositivos sofisticados, microcontroladores de uso geral podem executar um compensador;
• Conclusão, tendo hardware necessário, basta derivar um bom algoritmo.
Implementando PID em sistemas embarcados
Algoritmo PID digital clássico
• Implementar compensadores digitais consistem em aproximar sua função de transferencia para uma equivalente;
• Para essa tarefa empregam-se métodos numéricos (newton, regra de simpson e trapeizodal, backward differences);
• Equações diferenciais, são mapeadas no que se chamam equações de diferença.
Algoritmo PID digital clássico
• Implementar compensadores digitais consistem em aproximar sua função de transferencia para uma equivalente;
• Para essa tarefa empregam-se métodos numéricos (newton, regra de simpson e trapeizodal, backward differences);
• Equações diferenciais, são mapeadas no que se chamam equações de diferença.
Algoritmo PID digital clássico
• Recapitulando a função de transferência de um controle PID genérico:
• Podemos reescrever esta no domínio do tempo, em função do sinal de erro:
Algoritmo PID digital clássico
• A equação do compensador PID no domínio do tempo possui uma integração e uma derivada;
• Numericamente uma integral é pode ser realizada executando a seguinte operação:
• E a operação de derivada:
Algoritmo PID digital clássico
• Podemos quantificar “dt” como sendo o intervalo entre amostras, assim obtendo a operação de integração e derivada discretas:
• “n” representa a posição de uma dada amostra corrente.
Algoritmo PID digital clássico
• Assim, obtemos a seguinte equação discretizada de um compensador tipo PID:
• Podemos notar que o termo “ts” foi abstraído da equação, para “dentro” dos coeficientes Ki e Kd;
• O termo integral se traduz em acumular as amostras e, o termo derivativo em subtrair a corrente da anterior;
• Veremos que essa recursão natural do PID discreto será útil mais adiante.
Algoritmo PID digital clássico
• Esse algoritmo destaca – se pela sua simplicidade;
• Ocupa pouca memória de programa e dados;
• Velocidade de execução rápida, apenas algumas instruções aritméticas.
Algoritmo PID digital clássico
• Por outro lado, possui algumas desvantagens;
• A aproximação usada para a integral demora para convergir nos primeiros resultados;
• Wind-Up , estouro do integrador caso seu ganho seja muito grande.
Algoritmo PID digital clássico
Algoritmo PID 2p2z
• Adicionaremos mais um domínio de trabalho.
Figura 6: Diferentes domínios de sistemas (MOULTON, 2003).
Algoritmo PID 2p2z
• Precisaremos utilizar alguns elementos da transformada Z;
• Além de compensadores PID o método pode ser usado para mapear qualquer função de transferência em S;
• Vamos considerar o sistema PID anterior:
Algoritmo PID 2p2z
• Similar ao algoritmo clássico, vamos substituir os termos em “s”;
• Por valores similares em “z” efetuando essa transformada;
• E obteremos uma função de transferência discreta:
Algoritmo PID 2p2z
• Podemos simplificar a equação anterior fazendo:
Algoritmo PID 2p2z
• E manipulando mais um pouco a equação chegamos a função de transferência final abaixo:
Algoritmo PID 2p2z
• Colocando a equação em função do valor de saída obtemos:
• Tomando a transformada “Z” inversa temos finalmente:
Algoritmo PID 2p2z
Implementando filtros IIR eficientes
• A função de transferência digital do PID é um caso especial de filtro IIR:
• Bem similares, não?
Implementando filtros IIR eficientes
• Filtros digitais necessitam de memórias para armazenar estados anteriores;
• Existem duas grandes formas para efetuar essa tarefa, atualização do histórico das amostras passadas;
• Uso de uma memória com endereçamento circular.
Implementando filtros IIR eficientes
• Memória com endereçamento circular, muito implementada em DSPs:
Figura 7: Memória circular elementar.
Implementando filtros IIR eficientes
• O grande desafio é o overhead para incremento/decremento circular;
• Exige uma operação de módulo além do incremento (ou seja uma divisão);
• DSPs, ou processadores dedicados possuem gereciamento desse tipo de endereçamento por hardware.
Implementando filtros IIR eficientes
• Porém, nosso filtro IIR é de segunda ordem, e possui quantidade de estados fixa;
• O Endereçamento circular também é possível da seguinte forma:
• Desde que:
Implementando filtros IIR eficientes
• As vantagens são principalmente o pequeno overhead, e a não necessidade de atualizar histórico do filtro;
• Entre as desvantagens, o desperdício de um bloco de memória (pouco significativa pois a estrutura de dados do PID é pequena);
• Apenas alguns tamanhos de buffer circular são permitidos.
Implementando filtros IIR eficientes
Estudo de caso
Perguntas?
Muito Obrigado!
top related