先に紹介した”Excelによる伝達関数の計算”を使ったPID制御のシミュレーションを紹介します。
![](https://kakou-keisann.com/wp-content/uploads/2023/12/image-35-800x272.png)
目次
1.PID調節計、プロセスのパラメータ
ここで使用するPID調節計のアルゴリズムは、微分先行PID制御(PI-D制御)で逆動作です。
PID調節計のパラメータは次のようになっています。
- 比例ゲイン(\(K_P\)) = 3
- 積分時間(\(T_I\)) = 600 秒
- 微分時間( \(T_D\) ) = 600 秒
- 微分ゲイン(\(1 / \eta\)) =10
プロセスのパラメータは次のようになっています。
- プロセスゲイン(\(K\)) = 1
- 無駄時間(\(L\)) = 120 秒
- 一次遅れ(\(T\)) = 600 秒
2.ExcelでのPID制御シミュレーション
2-1.各種パラメータの入力
初めに、時間の設定。各種パラメータを入力します。
- A列
時間を設定します。ここでは、1秒周期で3600秒までとします。 - E列 6~9行
比例ゲイン(\(K_P\)) = 3、積分時間(\(T_I\)) = 600 秒、微分時間(\(T_D\)) = 60 秒を入力します。 - E列 13~15行
プロセスゲイン(\(K\)) = 1、無駄時間(\(L\)) = 120 秒、一次遅れ(\(T\)) = 600 秒を入力します。
2-2. \(SP\) , \(PV\) , \(OP\) , \(e\) の入力
\(SP\) , \(PV\) , \(OP\) , \(e\) の入力を入力します。
- I13 (\(SP\))
\(SP\)は、はじめ0.5で601秒に0.55に変更することとします。 - J13 \(PV\)
\(PV\)は、はじめは安定状態を想定し(\(SP\))と同じとします。
14行目以下は後で入力します。 - K13 \(OP\)
\(OP\)は、プロセスゲイン\(OP\)と\(PV\)から計算されます。
14行目以下は後で入力します。 - L13 \(e\)
\(e\)は、\(SP\)と\(PV\)から計算されます。
![](https://kakou-keisann.com/wp-content/uploads/2023/12/image-17.png)
2-3.PID制御の入力(\(OP\)の計算)
ブロック線図に従い、先に紹介した”Excelによる伝達関数の計算”で使った、伝達関数の計算を貼り付けます。
- N,O列 比例
入力は\(e\)とします。
\(K\) は1,\(Bias\)は0を入力します。 - P,Q列 積分
入力は\(e\)とします。
\(K\)は、\(1/T_I\)、また初期値は、\(OP/K_P\)とします。 - R,S列 一次遅れ
入力は、\(PV\)とします。
時定数Tは\(T_D\)*0.1とします。(\(\eta\)=0.1)
また、\(T_D\)=0の時は、T=0となり計算出来ないので、小さな数値(1E-20)が入るようにします。
\(K\) は1を入力します。 - T,U列 微分
\(K\)は、\(T_D\)とし、入力は一次遅れの出力とします。 - V,W列 比例
入力は比例の出力(O列)+ 積分の出力(Q列)- 微分の出力(U列)、\(K\)は\(K_P\)とします。
\(Bias\)は0を入力します。
以上で\(OP\)が計算されます。
![](https://kakou-keisann.com/wp-content/uploads/2023/12/image-27-800x493.png)
2-4.プロセスの入力(\(PV\)の計算)
ブロック線図に従い、先に紹介した”Excelによる伝達関数の計算”で使った、伝達関数の計算を貼り付けます。
- Y,Z列 比例
入力は計算された\(OP\)、\(K\)はプロセスの\(K\)とします。
\(Bias\)は0を入力します。 - AA,AB列 無駄時間
入力は比例の出力、\(L\)はプロセスの\(L\)とします。 - AC,AD列 一次遅れ
入力は無駄時間の出力、\(T\)はプロセスの\(T\)とします。
\(K\)は1を入力します。
以上で\(PV\)が計算されます。
![](https://kakou-keisann.com/wp-content/uploads/2023/12/image-20-800x696.png)
2-5.\(PV\),\(OP\)の更新
最後に、計算された\(PV\),\(OP\)を次の時間(行)に反映させることにより、シミュレーションを完成させます。
- J列 \(PV\)
前の行で計算された\(PV\)を新しい\(PV\)とします。 - K列 \(OP\)
前の行で計算された\(OP\)を新しい\(OP\)とします。
以上でシミュレーションは完成し、制御状態を確認できます。
![](https://kakou-keisann.com/wp-content/uploads/2023/12/image-21-800x483.png)