Controlando a temperatura da água com precisão

9

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

  1. Evite overshooting - ultrapassando a temperatura alvo inicialmente ou quando é adicionada água (fria)
  2. Estabilize adequadamente depois de adicionar água fria.
Olli
fonte
Você ajustou seu PID ou estava apenas usando valores padrão?
Peter Bloomfield
Tentei ajustar os parâmetros do PID com vários guias de 'como ajustar o PID', sem sorte. Eu também tentei o PIDAutotune , mas não consegui nada melhor. Não estou dizendo que o PID não se encaixa nisso.
Olli
Com o aquecimento da água, você terá muitas inconsistências. Onde está o aquecedor no seu tanque em relação à sonda de temperatura?
Matt Clark
11
Você provavelmente teria que adicionar algo que misture a água para homogeneizar a temperatura. Então você deve levar em consideração as propriedades térmicas do seu elemento de aquecimento, quanto tempo leva para esfriar depois de desativado, etc ... Depende da quantidade de água no sistema também. Se você pode controlar a temperatura do elemento de aquecimento, isso ajudaria bastante.
Daniel
Não faz parte do seu problema de caixa eletrônico, mas vale a pena notar: não confunda precisão, precisão e repetibilidade. Precisão significa quão perto a temperatura relatada está da temperatura real. A precisão é a menor diferença que o dispositivo pode distinguir (.0625 ° C para o DS18b20). Repetibilidade é o quanto as medições relatadas da mesma temperatura variam uma da outra. Os dois últimos são mais preocupantes que o primeiro. Mesmo com um sensor preciso de +/- 0,5degC, você ainda pode manter a temperatura dentro de (ou pelo menos distinguir diferenças, que é uma condição necessária) de alguns 1/16ths degC ....
JRobert

Respostas:

2

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.

Chris K
fonte
0

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.

MattEE
fonte
Bem-vindo ao Arduino SE! Isso não responde diretamente à pergunta (parece responder mais a outro comentário). Você pode usar o botão editar para esclarecer como essas informações respondem à pergunta? Obrigado!
Anonymous Penguin
-2

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

Matt
fonte
O PID não assume que a taxa de mudança seja constante. Se dE (taxa de variação do erro) fosse constante, o termo "D" não estaria lá. além disso, a água vai esquentar mais devagar a altas temperaturas, pois mais calor é perdido no vapor, tanto quanto água. O PID pode ser ajustado idealmente para uma massa térmica específica, mas ainda deve funcionar para uma ampla variedade de níveis de água e temperaturas / pressões externas.
BrettAM