Quero aprender o controle PID (Proporcional – Integral – Derivativo) principalmente para temperatura.
Eu gostaria de aprender de preferência através de um projeto fácil de fazer.
Você poderia recomendar algo que levaria algumas semanas para aprender?
Edit: Eu quero controlar a temperatura de um tanque de água. O aquecimento é feito por um resistor.
microcontroller
control-system
pid-controller
Daniel Grillo
fonte
fonte
Respostas:
Controlar a temperatura (depende do seu meio) não é terrivelmente difícil. Esse foi o meu primeiro projeto quando comecei. Perdoe-me, se eu repetir coisas que você já sabe.
Suponho que você já tenha uma maneira de controlar o sistema (ou seja, um aquecedor ou uma unidade mais fria) e uma maneira de obter feedback do sistema (um sensor de temperatura como um termistor ou algo assim). Você precisará de ambos para implementar um loop PID, que é um tipo de controle de loop fechado. Tudo o que você realmente precisa fazer depois é escrever um pouco de software para enviar comandos de controle, ler comentários e tomar decisões sobre esse feedback.
Eu começaria lendo o PID sem um doutorado . É o artigo que usei quando tive que regular a temperatura em um experimento científico. Ele fornece algumas imagens fáceis de entender e um bom código de amostra (um loop básico que você pode ajustar apenas precisa de 30 linhas) que explica como controlar sua 'planta' - nesse caso, o que você deseja controlar a temperatura .
A essência do controle PID - Proporcional-Integral-Diferencial - é usar o desempenho instantâneo, passado e futuro previsto (respectivamente) do sistema para determinar como controlar um sistema em um determinado ponto no tempo para atingir um ponto definido. Em muitos casos, será necessário ajustar os fatores de ganho do algoritmo para obter o desempenho desejado de que você precisa - com que rapidez a temperatura aumentará, quanto você deseja evitar excedentes etc. Você pode até achar que não precisa do diferencial ou mesmo controle integral para chegar onde você quer estar!
fonte
Sim. Pegue um termistor e um resistor. Escolha uma resistência que possa puxar uma corrente decentemente grande (> 100mA).
Use pasta térmica entre eles e prenda-os com fita adesiva. Conecte o circuito do termistor a um microcontrolador através do ADC. Use um transistor para controlar o resistor e controle-o com um PWM.
Desenvolva um PID que permita controlar a temperatura com um dial e pratique a criação de um PID que ultrapasse e toque a temperatura. Faça um amortecimento excessivo e demore uma eternidade para atingir a temperatura, e tente amortecê-lo criticamente e atingir a temperatura na velocidade máxima.
Deixe-me saber se mais detalhes ajudariam.
Depois de fazer isso, reduza a condutância térmica, tente adicionar um estágio que atrasará a propagação da temperatura e tente controlar bem.
Isso também pode ser feito com um LED e um foto-transistor.
fonte
Além da aplicação óbvia de controle de temperatura, aqui está um projeto bonito que exigia controle PID. Crie um bot para seguir as linhas: http://elm-chan.org/works/ltc/report.html
fonte
Um bom simulador de PID está disponível para o Scilab.
fonte
Apenas adicionando meus 2 centavos às boas respostas já.
O uso prático do PID para controle de temperatura geralmente possui comportamentos não lineares se a detecção de erro de temperatura é limitada (o ganho do amplificador operacional satura a saída) e a energia disponível para controlar a temperatura é fixa.
Considere um controlador on-off. O sistema terá latência a partir do momento em que o calor é aplicado e uma mudança na temperatura é detectada. Sem loop PID, essa latência cria um loop instável oscilando e, se houver histerelas, a energia alterna com ruído (On-Off-On). Entretanto, um ganho muito alto (como um comparador) resulta em um pequeno erro de temperatura residual. A latência afeta o tempo do ciclo e o excesso.
Se houver uma perturbação externa, como uma lâmpada do tanque, que possa adicionar calor significativo, o regulador do aquecedor deverá responder assim que um aumento de temperatura for detectado pelo calor da lâmpada. Se o swith da lâmpada não fizer parte do loop PID, ele não poderá "antecipar" o efeito (ganho derivado de feedback). Obviamente, se as lâmpadas gerarem muito calor, a temperatura não poderá ser regulada e excederá o ponto de ajuste.
Seu controle de calor com controle PID pode precisar de uma entrada para o estado do interruptor da lâmpada e controle de saída para regular a energia da luz como fonte secundária de calor, novamente se for demais.
Definindo seus requisitos para erro de controle absoluto,% de ultrapassagem e tempo de resposta são algumas entradas de design necessárias para otimizar seu loop PID. Igualmente importante é definir os distúrbios do sistema e incluí-los no sistema de controle de entrada e saída. por exemplo. Potência de aquecimento da lâmpada e escolha do (s) sensor (es) e localização.
Além da experiência.
Minha primeira experiência com aquecedor de água foi durante a era do leito aquático dos anos 70, quando eu era estudante, projetei meu próprio controlador de temperatura usando um termistor, circuito de controle e um interruptor triac de cruzamento zero para o aquecedor. Comecei com o controle do comparador e encontrei uma resposta incomum ao pular na cama. Por isso, adicionei controle proporcional usando ruído não filtrado no sensor para fornecer "ciclos perdidos" proporcionais quando o triac do ZCS estava ligado próximo ao limite. Eu poderia regular a temperatura dentro de 0,1 ° C. A resposta foi mais suave, mas o resultado foi o mesmo.
No meu caso, sempre que eu pulava na cama, a resistência térmica diminuía levemente devido à pressão adicionada e a luz de potência brilhava mais fraca por um minuto ou dois até que a temperatura caísse um décimo de grau ou para coincidir com o aumento aparente da temperatura devido a peso e pressão adicionais. o colchão de água contra o termostato.
fonte