Controle de PID de Temperatura PIC18F C18

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Controle de PID de Temperatura PIC18F C18

Mensagempor ÁgioFelipe » 19 Fev 2013 21:28

Novamente um assunto que já foi bastante discutido por aqui, mas o material que encontrei no fórum e na net não foram bastante para sanar minhas dúvidas, por isso resolvi criar o tópico. Só que agora é mais voltado para a prática.

Bem amigos, no momento estou implementando o PI mas deixei PID no título para aparecer este tópico no sistema de busca quando procurarem por PID. Tenho uma máquete pronta com um túneo de ar usando um secador de cabelo para aquecer uma peça metálica na qual o LM35 está em contato. Um LCD mostra a temperatura atual e desejada.
O controle P (Proporcional) funcionou perfeitamente, ficando com o erro de regime permanente, diferença entre desejada e atual, o que é característica do controle P. O I (Integral) é justamente para resolver esse problema.
Na implementação do I é feito um somatório do erro,ou seja, vai acumulando, agora as perguntas:

- Como definir a frequencia, vou somar a cada 100ms,500ms, 1s?
- Quando o somatório do fator integral deve ser zerado para recomeçar um processo?

No aguardo.
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04

Mensagempor MOR_AL » 19 Fev 2013 23:43

- Como definir a frequencia, vou somar a cada 100ms,500ms, 1s?

O ideal seria que a frequência fosse infinita, para pegar qualquer mínima variação da temperatura, certo?
Na prática, por exemplo, se você deseja controlar a temperatura com a precisão de um grau, então você não pode deixar que a temperatura monitorada possa variar mais que um grau entre duas medições consecutivas, o que me parece óbvio. Com o sistema sem realimentação, provoque um step máximo de temperatura. A temperatura deve seguir algo como a tensão de carga de um capacitor em um circuito Vcc, chave Liga/desliga, R em série e C para terra. Não há necessidade de deixar a temperatura subir muito, porque ocorre maior variação da temperatura no início. Monitore essa temperatura e verifique quanto tempo leva para variar de um delta Temp, que você considera como menor resolução do seu sistema. Inverta esse tempo e encontre a frequência. Escolha uma taxa de monitoração maior que a frequência obtida.

- Quando o somatório do fator integral deve ser zerado para recomeçar um processo?

Teoricamente, nunca! Praticamente no início do processo.
Se for necessário zerar o fator integral, é porque, ou seu PID não está bem calibrado, ou ocorreu algum problema com seu sistema.

Agora. Observe o ponto em que for colocado o sensor. É lá que a temperatura será controlada.
Observe também, se a inércia térmica do seu sensor é mais rápida que a inércia térmica do seu sistema. Imagine que a temperatura aumenta um grau em um segundo, mas o seu sensor é lento e não acompanha essa variação. Então você estará monitorando uma temperatura errada.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor ÁgioFelipe » 20 Fev 2013 10:08

MOR_AL,
mas se a frequencia fosse infinita aconteceria o seguinte:
- Digamos que no inicio do processo o fator integral é igual a zero e a diferença entre atual e desejada fosse 25º, então:
Integral = Erro + Integral;
Como ele repete essa operação em uma altíssima frequencia logo de início o fator Integral alcançaria valores tb altíssimos, resultado: O meu secador trabalha sempre na potencia máxima, o fator Integral não tem que ir crescendo aos poucos?

Sobre zerar o fator integral, digamos que nesta mesma situação onde temos de início um Erro de 25º, o aquecedor iria trabalhar para que esse erro fosse igual a zero, o que ocorreria depois de 1minuto por exemplo. Se eu mudar a temperatura desejada para uma mais alta de forma que o novo Erro será tb de 25º, se o termo integral não for zerado, a resposta do sistema agora será diferente da anterior, já vou começar esse 2º processo com o Integral novamente lá em cima, ou seja, com valores já saturados.

O que acha?
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04

Re: Controle de PID de Temperatura PIC18F C18

Mensagempor Djalma Toledo Rodrigues » 20 Fev 2013 12:47

ÁgioFelipe escreveu:Novamente um assunto que já foi bastante discutido por aqui, mas o material que encontrei no fórum e na net não foram bastante para sanar minhas dúvidas, por isso resolvi criar o tópico. Só que agora é mais voltado para a prática.


A Teoria é a prática.


Agiofelipe, o Sistema possui Inércia.

Se kI (Velocidade de Integração) for maior que a Inécia do Sistema ele se torna instável.


Veja bem

O Controlador PID é inerentemente Analógico.

é claro que um uC qualquer pode executá-lo

Ele é tão simples, que em um organismo vivo, existem PIDs aos milhares.

Cito exemplos em nosso corpo:

Pressão Ocular
Pressão Intra Craneana
Movimentos dos Olhos
Movimentos dos mebros superiores ou inferiores
("As minhas pernas andam por si" como bem disse Machado de Assis)

a lista é enorme.

por isso se você quer se Aprofundar no Controlador PID,
entende-lo de Verdade,
senti-lo funcionar

Implenete o Controlador PID Analógico

são apenas 5 Estágios, 5 Amp Operacional

TL071 já esta "de bom tamanho"

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor MOR_AL » 20 Fev 2013 19:50

ÁgioFelipe escreveu:MOR_AL,
mas se a frequencia fosse infinita aconteceria o seguinte:
- Digamos que no inicio do processo o fator integral é igual a zero e a diferença entre atual e desejada fosse 25º, então:
Integral = Erro + Integral; Aqui seria Erro (n) = kp * Erro (n - 1) + kd * (Erro (n - 1) - Erro (n - 2)) + ki * somatório Erros .

Como ele repete essa operação em uma altíssima frequencia logo de início o fator Integral alcançaria valores tb altíssimos, resultado: O meu secador trabalha sempre na potencia máxima, o fator Integral não tem que ir crescendo aos poucos? Não! Para um sistema sem overshoot, o erro tem que ir decrescendo, para um sistema com overshoot, a envoltória do erro tem que ir decrescendo. O erro oscila com oscilações cada vez com menor amplitude em torno da temperatura escolhida.
Uma taxa infinita pressupõe que as memórias tenham capacidade numericamente infinita. Isso é a teoria. Na prática essa taxa é um pouco maior que a maior resposta do sistema sem realimentação. O correto é montar as equações do sistema e observar, por meio do Root-Locus (posição dos polos e zeros no plano real versus complexo) se o seu sistema é estável (polos no semi-plano real negativo). Quando não se dispõe das equações, se procura ajustar com um sistema PID. Parece que você não considerou a opção prática e olhou apenas para a teórica (absurda).



Sobre zerar o fator integral, digamos que nesta mesma situação onde temos de início um Erro de 25º, o aquecedor iria trabalhar para que esse erro fosse igual a zero, o que ocorreria depois de 1minuto por exemplo. Se eu mudar a temperatura desejada para uma mais alta de forma que o novo Erro será tb de 25º, se o termo integral não for zerado, a resposta do sistema agora será diferente da anterior, já vou começar esse 2º processo com o Integral novamente lá em cima, ou seja, com valores já saturados.
Bom. Se você deseja poder variar 50 ºC ou 2 x 25ºC, o seu sistema deve prever isso. Sua memória tem que ter capacidade de armazenar a informação antes de saturar. Porém costuma-se limitar os valores das três parcelas (que contém kp, kd e ki) para um valor máximo, que pode ser o maior valor do registro. Se 8 bits 255 ou -127 e +128; se 16 bits 65535 ou ...

O que acha?
Eu acho que você está pensando e isso é bom.
Não se esqueça das minhas duas observações anteriores. O controle é no ponto que o sensor se situa e a rapidez de resposta do sensor.
Dê uma estudada no meu tutorial. É um bom princípio de leitura.
[]'s
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x