Eu tenho a seguinte configuração:
- Arduino Duemilanove
- Aquecedor de água pequeno conectado com relé óptico (PWM está ok)
- Sensor de temperatura impermeável DS18B20
- Quantidade desconhecida de água (mas o sensor de temperatura e o aquecedor estão sempre debaixo d'água).
Como posso controlar com precisão a temperatura da água, com base nas leituras dos sensores de temperatura? Com precisão, quero dizer a precisão do sensor de temperatura (neste caso, ± 0,5 ° C). Tudo deve ser executado no Arduino, para que não haja capacidade adicional de armazenamento ou processamento de dados. Para depuração, obviamente posso usar o computador.
Eu tentei executar o PID, mas parece realmente difícil
- Evite overshooting - ultrapassando a temperatura alvo inicialmente ou quando é adicionada água (fria)
- Estabilize adequadamente depois de adicionar água fria.
Respostas:
Você precisa conhecer o tempo de resposta do seu sistema e a repetibilidade de suas medições para caracterizar seus dados (estabelecer confiança). Sugiro coletar amostras e calculá-las antes de ligar o aquecedor.
Imho, a água não ficará feliz dentro de 0,5 ° C. Você pode permitir modos grosso e fino? Use um PWM mais alto para grandes diferenças e, em seguida, diminua o PWM quando estiver próximo do destino.
Uma vez focado no seu alvo, existem alguns meios para tentar melhorar a estabilidade da temperatura. Enquanto coisas pré-criadas, como o PID, funcionam para muitos, normalmente implemento funcionalidades como esta manualmente.
fonte
BrettAM, dE (taxa de variação do erro) mudará conforme o parâmetro de controle; neste caso, a largura de pulso do sinal do elemento aquecedor é modulada, é variada pelo PID. Minha redação ao dizer que a taxa de alteração do erro de temperatura foi uma péssima escolha. O termo derivado também trabalhará para cuidar das pequenas variações no calor específico da água com a temperatura (4,186 kJ / (kg K) a 20 ° C a 4,219 kJ / (kg K) a 100 ° C).
Meu argumento é que sim, o termo derivado calcula a taxa de variação de dE. Como o erro aqui é a diferença entre a temperatura desejada e a temperatura real, o derivado calcula as alterações na taxa na qual a água é aquecida.
O problema é que muitas vezes é difícil criar um sistema estável com um termo derivado. Um sistema PID deve basear-se principalmente no prazo proporcional. Quando você varia a quantidade de água, na minha opinião, está criando mais não linearidade do que o PID pode compensar. Por esse motivo, os PIDs precisam ser um pouco repetíveis e, se o nível da água variar bastante, seu sistema não pode mais ser repetido.
AO OP: No meu projeto semelhante, vou tentar usar um pequeno conjunto de radiador / ventilador e uma bomba de 12V DC para passar a água como um método de resfriamento da água. Eu sinto que isso pode funcionar melhor. Se for bem-sucedido, eu o informarei.
fonte
Você precisa manter a quantidade de água aquecida constante. A taxa na qual a temperatura da água aumenta mudará quando você variar a quantidade de água (adicionando água fria como você mencionou). Um controlador de derivada proporcional-integral (PID) funciona observando a derivada (taxa de variação) da variável que você está tentando controlar. Seu PID nunca funcionará corretamente se a taxa de mudança de temperatura não for (razoavelmente) constante.
Observe o calor específico da água, principalmente a equação Q = c m dT. Q é o calor adicionado, o que eu assumiria que é constante em sua configuração. m é a massa da substância que está sendo aquecida (deve ser mantida constante!). c é o calor específico da água, que é de 4,186 Joules / grama * grauC. Se Q, m e c forem constantes, então dT, a taxa na qual a temperatura da água aumentará também será constante (na realidade, c varia um pouco com a temperatura, mas eu diria que isso pode ser ignorado se você estiver trabalhando de 0- 100C). Tente ajustar seu PID com uma quantidade constante de água e você poderá obter melhores resultados.
Qual aquecedor de água você está usando? Atualmente, estou fazendo algo parecido, mas estou tentando usar um prato quente do laboratório de química e experimentando enormes superações. Eu considerei mudar para um aquecedor de aquário, mas gostaria de saber o que você está usando?
-Matt
fonte