正確な水温管理


9

私は次の設定をしています:

  • Arduino Duemilanove
  • 光リレーに接続された小型給湯器(PWMは問題ありません)
  • 防水DS18B20温度センサー
  • 不明な量の水(ただし、温度センサーとヒーターは常に水中にあります)。

温度センサーの読み取り値に基づいて、水温を正確に制御するにはどうすればよいですか?正確には、温度センサーの精度(この場合は±0.5°C)までを意味します。すべてがArduinoで実行されるため、追加のデータストレージや処理能力は利用できません。デバッグには、明らかにコンピュータを使用できます。

PIDを実行してみましたが、本当に難しいようです

  1. オーバーシュートを避ける-最初に、または(冷たい)水が追加されたときに目標温度を超える
  2. 冷水を加えた後、適切に安定させます。

PIDを調整しましたか、それとも単に標準値を使用していましたか?
Peter Bloomfield

私は運が悪く、さまざまな「PIDの調整方法」ガイドを使用してPIDパラメータを調整しようとしました。私もPIDAutotuneを試しましたが、そこから何も得ることができませんでした。PIDがこれに適合しないと言っているのではありません。
Olli 14

給湯器を使用すると、多くの不整合が発生します。温度プローブと比較して、タンクのヒーターはどこにありますか?
Matt Clark、

1
全体を通して温度を均一にするために水を混ぜる何かを追加する必要があるでしょう。次に、発熱体の熱特性、無効になってから冷却されるまでの時間などを考慮する必要があります。これは、システム内の水の量にも依存します。発熱体の温度を制御できる場合、それは長い道のりになります。
Daniel

問題のATMの一部ではありませんが、注目に値します。精度、精度、再現性を混同しないでください。精度とは、報告された温度が実際の温度にどれだけ近いかを意味します。精度は、デバイスが識別できる最小の違いです(DS18b20の場合、.0625℃)。再現性とは、同じ温度で測定された測定値の違いです。最後の2つは、最初の2つよりも重要です。でも0.5degC正確なセンサー+/-で、あなたはまだいくつかの1 /℃が.... 16thsの(必要条件での違い、区別または少なくとも)内に温度を保持することができ
JRobert

回答:


2

データの特性を明らかにするために、システムの応答時間と測定の再現性を知る必要があります(信頼を確立する)。ヒーターをオンにする前に、サンプルを取り、それらを平均化することをお勧めします。

イムホ、水は0.5°C以内にうまく留まらないでしょう。粗いモードと細かいモードを許可できますか?大きな差異には高いPWMを使用し、ターゲットに近い場合は低いPWMを使用します。

ターゲットに戻ったら、温度安定性を改善するためのいくつかの方法があります。PIDなどのビルド済みのものは多くの場合に機能しますが、通常はこのような機能を手動で実装します。


0

BrettAM、dE(エラーの変化率)は、制御パラメーターとして変化します。この場合、ヒーターエレメント信号のパルス幅が変調され、PIDによって変化します。温度誤差の変化率は悪い選択だと言った私の言い回し。微分項は、温度による水の比熱の小さな変動(4.186 kJ /(kg K)@ 20C〜4.219 kJ /(kg K)@ 100C)にも対応します。

私のポイントは、はい、微分項はdEの変化率を計算します。ここでの誤差は望ましい温度と実際の温度の差なので、導関数は水が加熱される速度の変化を計算します。

問題は、微分項を持つ安定したシステムを作成することがしばしば難しいことです。PIDシステムは、主に比例項に基づいている必要があります。私の意見では、水の量を変えると、PIDが補償できるよりも多くの非直線性が生じます。このため、PIDはある程度再現可能である必要があり、水位が大きく変動すると、彼のシステムは再現できなくなります。

OPに:私の同様の設計では、水を冷却する方法として、小さなラジエーター/ファンコンボと12V DCポンプを使用して水を流そうとします。これでうまくいくと思います。成功した場合はお知らせします。


Arduino SEへようこそ!これは質問に直接回答するものではありません(別のコメントへの回答が増えるようです)。編集ボタンを使用して、この情報が質問にどのように回答するかを明確にしていただけますか?ありがとう!
匿名ペンギン

-2

加熱する水の量を一定に保つ必要があります。水の量を変化させると、水温の上昇率が変化します(前述のように冷水を追加)。比例-積分-微分コントローラー(PID)は、制御しようとしている変数の微分(変化率)を観測して機能します。温度変化率が(合理的に)一定でない場合、PIDは正しく機能しません。

水の比熱、主に方程式Q = c m dTを調べます。Qは追加された熱で、セットアップでは一定であると想定します。mは、加熱される物質の質量です(一定に保つ必要があります!)。cは水の比熱で、4.186ジュール/グラム*℃です。Q、m、cが一定の場合、dTの場合、水温の上昇率も一定になります(実際には、cは温度によってわずかに異なりますが、0から作業している場合は無視できます。 100C)。一定の水量でPIDを調整してみてください。より良い結果が得られる場合があります。

どの給湯器を使っていますか?私は現在同様のことをしていますが、化学実験室のホットプレートを使用しようとしています。アクアリウムヒーターへの切り替えを検討しましたが、使用しているものを知りたいですか?

-マット


PIDは、変化率が一定であるとは想定していません。dE(エラーの変化率)が一定の場合、「D」項は存在しません。それに加えて、水がどれだけの量であるかを知るために、より多くの熱が蒸気に失われるため、高温では水はゆっくり加熱されます。PIDは特定の熱質量に理想的に調整されている可能性がありますが、それでも幅広い水位と外部温度/圧力で機能するはずです。
BrettAM 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.