● 制御例-1

 ここからは、こんな制御をしたらこうなった、という例です。この例は、安定後のズレが生じないことだけを目的とした、次のようなプログラムです。
  • 設定温度以上なら、出力を20%下げる。
  • 設定温度未満なら、出力を20%上げる。

制御・測定周期:10秒、安定後の温度範囲: 69.4~71.4℃(温度差 2.0℃)
 制御周期が10秒で、70℃に達した後、5回目の制御(40秒後)まで出力0にならないので、当然ですが、初回の温度上昇がかなり大きくなっています。安定後は、ズレはほとんどありませんが、変動があって温度差が大きめになりました。

 ● 制御例-2

 上の制御例の、初回の温度上昇と、安定後の温度変動を抑えようとしたプログラムです。
  • はじめは比例制御で、測定温度と、ひとつ前の測定温度の差が1℃未満になったら、安定したと判断。
  • 安定後は、(設定温度 - 測定温度)を1/10した値の分(温度差+1℃なら、+10%)、出力を上下させる。

制御・測定周期:10秒、安定後の温度範囲: 68.7~71.8℃(温度差 3.1℃)
 出力の調整を滑らかにしたら、変動が抑えられるかと思ったのですが、大きな波で変動するようになってしまいました。出力を徐々に変えていくと、必要なタイミングより遅れてしまい、上がったところを上に、下がったところを下に押す、というような制御になってしまったようです。

 ● 制御例-3

 他にも、いろいろとやってみましたが、温度を安定させるには、やはり比例制御を基本にした方が良さそうだ、と考えたプログラムです。制御周期を5秒と短くしました。
  • はじめは比例制御で、測定温度と、ひとつ前の測定温度の差が0.3℃未満になったら、安定したと判断。
  • 安定後は、平均温度(初期値が設定温度、ひとつ前の平均 × 0.9 + 測定温度 × 0.1)の1 / 10だけ、設定温度をズラす。

制御・測定周期:5秒、安定後の温度範囲: 69.4~70.5℃(温度差 1.1℃)
 出力を変動させる基準の、平均温度が波にならないようにし、設定温度の調整も、1 / 10ずつ、徐々にやるようにしました。安定した温度になるまで時間がかかっていますが、450秒くらいから安定したので、これを完成としてみました。