PIDオートチューンニング

2018年11月28日 - 未分類

温度調整機能があるITBOXに、ステップ応答法によるPIDオートチューニングを実装してみました。ステップ応答法に関しては、ネット上に多くの情報があるので、詳細な説明は省きます。

アルゴリズム

  1. 現在温度−1度まで冷やす
  2. A点は、現在温度+1度の温度点
  3. A点を超えるまで温める
  4. A点を超えたら冷やす
  5. 再びA点を超えたら停止する
  6. 温度変化曲線からPIDを算出

現在温度は、指定温度、温度変化も任意で構いませんが、現状温度±1度の変化が最も早くできます。

このような温度変動曲線が得られます。この曲線から、最小温度と最大温度の間のデータを使います。

最小温度時点を0として、0.632Kの点を探してicenterとします。この点の前後20点で最小自乗近似を行い、接線を決めます。

この接線 y = ax +bより、LとTを求めます。

L = -a/b
T = icenter-L

CHR法による係数決定方法を使います。

オーバーシュート 0%の場合

KL = K*L
Kp = 0.6*T/KL*1000.0
Ki = 0.6/KL
Kd = 0.3*T/K

オーバーシュート 20%の場合

KL = K*L
Kp = 0.95*T/KL*1000.0
Ki = 0.7/KL
Kd = 0.447*T/K

となります。具体的な結果は、

(‘center = ‘, 26, 0.6199999999999974)
a=-0.772541353383 b=0.0522406015038
overshoot   0% Kp 454.9 Ki 0.040 Kd 3.36
overshoot 20% Kp 720.3 Ki 0.047 Kd 5.01

となりました。Kpが1より大きいのは、ITBOXではペルチェ制御を0から1000の整数で行っているために1000倍されているからです。

PIDオートチューニング中は、PID制御はできません。また、オートチューニングは、常に必要なわけではなく、最初のPIDパラメータ設定時だけ実行するだけです。

Translate »