Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas...

45

Transcript of Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas...

Page 1: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •
Page 2: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Seminário de programação em sistemas embarcados

Implementando controle PID digital em sistemas embarcados

Felipe S. Neves

Page 3: Seminário de programação em - Embarcados€¦ · 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

Page 4: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• Considere o sistema de controle em malha fechada abaixo:

Figura 1: Sistema de malha fechada típico (OGATA,2002).

Compensadores

Page 5: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 6: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 7: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• Implementável geralmente com o uso de amplificadores operacionais:

Figura 2 : PID analógico (OGATA, 2012).

O compensador PID

Page 8: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 9: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Implementando PID em sistemas embarcados

Page 10: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 11: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

● 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

Page 12: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 13: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 14: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 15: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 16: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 17: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •
Page 18: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• ...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

Page 19: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Algoritmo PID digital clássico

Page 20: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 21: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 22: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 23: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 24: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 25: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 26: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 27: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 28: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Algoritmo PID 2p2z

Page 29: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• Adicionaremos mais um domínio de trabalho.

Figura 6: Diferentes domínios de sistemas (MOULTON, 2003).

Algoritmo PID 2p2z

Page 30: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 31: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 32: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• Podemos simplificar a equação anterior fazendo:

Algoritmo PID 2p2z

Page 33: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• E manipulando mais um pouco a equação chegamos a função de transferência final abaixo:

Algoritmo PID 2p2z

Page 34: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• Colocando a equação em função do valor de saída obtemos:

• Tomando a transformada “Z” inversa temos finalmente:

Algoritmo PID 2p2z

Page 35: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Implementando filtros IIR eficientes

Page 36: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• A função de transferência digital do PID é um caso especial de filtro IIR:

• Bem similares, não?

Implementando filtros IIR eficientes

Page 37: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 38: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• Memória com endereçamento circular, muito implementada em DSPs:

Figura 7: Memória circular elementar.

Implementando filtros IIR eficientes

Page 39: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 40: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 41: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

• 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

Page 42: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Estudo de caso

Page 43: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Perguntas?

Page 44: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •

Muito Obrigado!

Page 45: Seminário de programação em - Embarcados€¦ · Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves •