J'ai la configuration suivante:
- Arduino Duemilanove
- Petit chauffe-eau connecté avec relais optique (PWM est ok)
- Capteur de température étanche DS18B20
- Quantité d'eau inconnue (mais le capteur de température et le chauffage sont toujours sous l'eau).
Comment puis-je contrôler avec précision la température de l'eau, sur la base des lectures du capteur de température? Par précision, je veux dire jusqu'à la précision du capteur de température (dans ce cas, ± 0,5 ° C). Tout devrait fonctionner sur Arduino, donc aucune capacité de stockage ou de traitement de données supplémentaire n'est disponible. Pour le débogage, je peux évidemment utiliser un ordinateur.
J'ai essayé d'exécuter PID, mais il semble vraiment difficile de
- Évitez les dépassements - dépassement de la température cible soit initialement, soit lorsque de l'eau (froide) est ajoutée
- Stabilisez correctement après avoir ajouté de l'eau froide.
Réponses:
Vous devez connaître le temps de réponse de votre système et la répétabilité de vos mesures pour caractériser vos données (établir la confiance). Je suggère de prendre des échantillons et de les calculer en moyenne avant de rallumer le radiateur.
À mon humble avis, l'eau ne restera pas volontiers à moins de 0,5 ° C. Pouvez-vous autoriser les modes grossier et fin? Utilisez un PWM plus élevé pour de grandes différences, puis un PWM plus bas lorsque vous êtes proche de la cible.
Une fois installé sur votre cible, vous pouvez essayer d'améliorer la stabilité de la température. Bien que des choses prédéfinies comme PID fonctionnent pour beaucoup, j'implémente normalement des fonctionnalités comme celle-ci manuellement.
la source
BrettAM, dE (taux de changement d'erreur) changera lorsque le paramètre de contrôle, dans ce cas la largeur d'impulsion du signal de l'élément chauffant est modulé, est modifié par le PID. Ma formulation en disant que le taux de changement d'erreur de température était un mauvais choix. Le terme dérivé travaillera également pour prendre en compte les petites variations de la chaleur spécifique de l'eau avec la température (4,186 kJ / (kg K) @ 20C à 4,219 kJ / (kg K) @ 100C).
Mon point étant, oui, le terme dérivé calcule le taux de variation de dE. Étant donné que l'erreur est ici la différence entre la température souhaitée et la température réelle, le dérivé calcule alors les changements de la vitesse à laquelle l'eau est chauffée.
Le problème est qu'il est souvent difficile de créer un système stable avec un terme dérivé. Un système PID devrait être basé principalement sur le terme proportionnel. Lorsque vous modifiez la quantité d'eau, à mon avis, vous créez plus de non-linéarité que le PID ne peut compenser. Pour cette raison, le PID doit être quelque peu répétable et si le niveau d'eau varie fortement, son système n'est plus répétable.
À L'OP: Dans ma conception similaire, je vais essayer d'utiliser un petit combo radiateur / ventilateur et une pompe 12V DC pour faire couler l'eau comme méthode de refroidissement de l'eau. Je pense que cela pourrait mieux fonctionner. En cas de succès, je vous le ferai savoir.
la source
Vous devez maintenir constante la quantité d'eau chauffée. La vitesse à laquelle la température de l'eau augmente varie lorsque vous modifiez la quantité d'eau (en ajoutant de l'eau froide comme vous l'avez mentionné). Un contrôleur proportionnel-intégral-dérivé (PID) fonctionne en observant la dérivée (taux de variation) de la variable que vous essayez de contrôler. Votre PID ne fonctionnera jamais correctement si le taux de changement de température n'est pas (raisonnablement) constant.
Examinez la chaleur spécifique de l'eau, principalement l'équation Q = c m dT. Q est la chaleur ajoutée, qui, je suppose, est constante dans votre configuration. m est la masse de la substance à chauffer (doit être maintenue constante!). c est la chaleur spécifique de l'eau, qui est de 4,186 joules / gramme * degréC. Si Q, m et c sont constants, alors dT, la vitesse à laquelle la température de l'eau augmentera sera également constante (en réalité, c varie légèrement avec la température, mais je dirais que cela peut être ignoré si vous travaillez de 0 à 100C). Essayez de régler votre PID avec une quantité d'eau constante et vous obtiendrez peut-être de meilleurs résultats.
Quel chauffe-eau utilisez-vous? Je fais actuellement quelque chose de similaire, mais j'essaie d'utiliser une plaque chauffante du laboratoire de chimie et je connais d'énormes dépassements. J'ai envisagé de passer à un chauffe-aquarium, mais vous souhaitez savoir ce que vous utilisez?
-Mat
la source