化学工場のプロセスを制御する際、「カスケード制御」という用語をよく聞く一方で、実はあまりよくわかっていないということはありませんか?
カスケード制御では複数の制御装置を利用することで、通常のフィードバック制御よりも制御の高速性を達成できます。
簡単なプロセスのシミュレーションを通してカスケード制御を考えていきましょう。
カスケード制御の特徴
カスケード制御の定義
カスケード制御はJIS(Z8116)によって「フィードバック制御系において,一つの制御装置の出力信号によって他の制御系の目標値を決定する制御。」と説明されており、メインのフィードバック制御に、サブのフィードバック制御を加えることで、メインで制御したいプロセス変数をより早く安定化させる手法です。
定義を読んでもよくわからないよ
この後、簡単なプロセスでカスケード制御を紹介するので、安心してください。
変化に対して高速に応答可能
まずはカスケード制御の目的と特徴を確認しましょう。
カスケード制御の最大の目的は対象プロセスの迅速な制御を行うことです。
例えば、熱容量が大きいタンクの加温する場合、熱的平衡に達するまで非常に長い時間がかかります。そのため、通常のフィードバック制御では制御がうまくいかず、オーバーシュートやハンチングを起こすことがあります。
熱容量が大きいタンクの他、真空炉、オートクレーブの温度制御など、カスケード制御は制御を開始してから変化が測定されるまでの時間やむだ時間が長いプロセスの制御に適しています。
ブロック線図にすると多重ループになる
ブロック線図で表すと多重ループ構造になることもカスケード制御の特徴です。
例えば、後ほど紹介するタンクの温度制御においてもブロック線図はループが2重になります。カスケード制御においては内側のループをスレーブループ(またはマイナーループ)といい、外側のループをメインループ(またはメジャーループ)といいます。
メイン制御装置の出力結果によって、サブのフィードバック制御装置の目標値が変化することがカスケード制御の特徴です。
カスケード制御のデメリットとして、多重のフィードバック制御を組み立てる必要があるため、制御パラメーター(上ブロック線図での$50$や$0.5$)の個数が増えてしまうという弱点があります。
簡単なプロセス
ここから、簡単なプロセスを使って、カスケード制御を具体的に紹介します。
タンク中の水を一定($80\unicode{x2103}$)にするプロセスを考えましょう。タンクジャケットにある電熱線の電流増減によってタンクの水温調整を行うとします。
タンクにはタンクジャケット(オイル$240\unicode{x2103}$)からの熱流入と外気($0\unicode{x2103}$)への熱流出だけがあるとします。
外気温が$5\unicode{x2103}$上昇した際のタンクの温度がどのように制御されるかを考えていきましょう。
そのほかの条件は図の通りとします。
通常制御の場合
まず、非カスケード制御(通常制御とします)でタンク温度を制御する場合を考えましょう。
通常制御では制御対象の誤差$\Delta{e}_{タンク}$からヒーター制御$\Delta{I}_{ヒーター}$を直接変更します。
ヒートバランスからタンク水温変化の時間発展式を導くと、通常制御ではタンク水温は次のように振舞うことがわかります。
タンク水温変化の時間発展式はこちら
タンクとオイルの熱バランスから、時間発展の式を立てることができます。
- タンクの熱バランス
-
タンク水の熱容量は$3000(\text{kg})\times{4}(\text{kJ/kg・K})$$=12000(\text{kJ/K})$
タンクの材質から、$1\text{m}^2,1\unicode{x2103}$あたりの熱移動量は$\frac{20(\text{W/m・K})}{0.05(\text{m})}=24(\text{kJ/hr・m}^2\text{・K})$
タンク⇒外の伝熱面積が$10\text{m}^2$、オイル⇒タンクの伝熱面積が$5\text{m}^2$であるので、タンク水の温度変化は次の式で表すことができます。
$12000\frac{\text{d}}{\text{d}t}\Delta{T}_{タンク}=$$-240(\Delta{T}_{タンク}-\Delta{T}_{外})$$+120(\Delta{T}_{オイル}-\Delta{T}_{タンク})$
整理すると$\frac{\text{d}}{\text{d}t}\Delta{T}_{タンク}=$$-\frac{3}{100}\Delta{T}_{タンク}+\frac{1}{100}\Delta{T}_{外}+\frac{2}{100}\Delta{T}_{外}$です。
- オイル熱バランス
-
オイルの熱容量は$600(\text{kg})\times{2}(\text{kJ/kg・K})$$=1200(\text{kJ/K})$
直流$100(\text{V})$ヒーターの電流値が$\Delta{I}_{ヒーター}(\text{A})$変わると、電力は$100\Delta{I}_{ヒーター}(\text{W})$$=360\Delta{I}_{ヒーター}(\text{kJ/hr})$変化します。したがって、ヒーター電流値変化によるオイルの温度変化は次の式になります。
$1200\frac{\text{d}}{\text{d}t}\Delta{T}_{オイル}=$$360\Delta{I}_{ヒーター}$
整理すると$\frac{\text{d}}{\text{d}t}\Delta{T}_{オイル}=\frac{3}{10}\Delta{I}_{ヒーター}$です。
- ヒーター電流値制御
-
タンク水温設定値$\Delta{T}_{タンク}^{\text{set}}$と実測値$\Delta{T}_{タンク}$とのずれ$\Delta{e}_{タンク}$を用いて、ヒーター電流値$\Delta{I}_{ヒーター}$を$\Delta{I}_{ヒーター}^{\text{set}}=0.5\Delta{e}_{タンク}$で変更します。
ブロック線図を利用した解はこちら
ブロック線図を作ると次のようになります。
外気温がステップ状に$5\unicode{x2103}$上昇するので、$\Delta{T}_{外}=\frac{5}{s}$として$\Delta{T}_{タンク}$について解くと$\Delta{T}_{タンク}(s)=2.801\frac{0.0357}{(s+0.015)^2+0.0357^2}$と変形できます。逆ラプラス変換を行うと$\Delta{T}_{タンク}(t)=2.801e^{-0.015t}\sin(0.0357t)$になります。
通常制御では、タンクの温度が$100\text{hr}$($4$日以上)経っても安定しないんだね。
熱容量が大きいために、通常制御では温度がなかなか一定になりません。
カスケード制御の場合
では、保温をカスケード制御してみましょう
このタンクの水温制御をカスケード制御した場合を考えましょう。
オイル温度計を加えてカスケード制御してみます。タンク水温のずれをもとにオイル温度設定値を変化させ、狙いのオイル温度になるようヒーター電流値を制御するとします。
図の赤い部分が通常制御から増えた制御部分だね
カスケード制御では$\Delta{T}_{オイル}^{\text{set}}$を変化させるところに特徴があります。
通常制御と同じように、水温の時間発展方程式を利用して外気温が$5\unicode{x2103}$上昇した場合を考えましょう。結果として、カスケード制御では通常制御と比べ、タンク水温がかなりすばやく一定に制御できます。
タンク水温変化の時間発展式はこちら
- タンクの熱バランス
-
通常制御と同じく$\frac{\text{d}}{\text{d}t}\Delta{T}_{タンク}$$=-\frac{3}{100}\Delta{T}_{タンク}+\frac{1}{100}\Delta{T}_{外}+\frac{2}{100}\Delta{T}_{外}$になります。
- オイル熱バランス
-
通常制御と同じく$\frac{\text{d}}{\text{d}t}\Delta{T}_{オイル}=\frac{3}{10}\Delta{I}_{ヒーター}$になります。
- オイル設定値の制御
-
タンク水温設定値$\Delta{T}_{タンク}^{\text{set}}$と実測値$\Delta{T}_{タンク}$とのずれ$\Delta{e}_{タンク}$を用いて、オイル設定値を$\Delta{T}_{オイル}^{\text{set}}=50\Delta{e}_{タンク}$で変更します。
- ヒーター電流値制御
-
タンク水温設定値$\Delta{T}_{オイル}^{\text{set}}$と実測値$\Delta{T}_{オイル}$とのずれ$\Delta{e}_{オイル}$を用いて、ヒーター電流値を$\Delta{I}_{ヒーター}^{\text{set}}=0.5\Delta{e}_{オイル}$で変更します。
カスケード制御では$10\text{hr}$くらいでほとんど温度が一定になったね。
オイルの設定値を変更したことで、外乱への応答が早くできるようになりました。
このタンク水温のカスケード制御に対するブロック図を作ると次のようにフィードバック制御のループが二重構造になります。
たしかにカスケード制御ではループが2重になっているね。
ブロック線図を利用した解はこちら
ブロック線図を$\Delta{T}_{タンク}$について解くと$\Delta{T}_{タンク}(s)=\frac{2}{(100s+3)(s+0.15)+7.5}\Delta{T}_{外}(s)$になります。($\Delta{T}_{タンク}^{\text{set}}=0$とする)
外気温が外乱で$5\unicode{x2103}$上昇した場合、$\Delta{T}_{タンク}=\frac{5}{s}$になるので、これを代入して整理すると、$\Delta{T}_{タンク}(s)=0.1886[\frac{1}{s}$$-\frac{s+0.09}{(s+0.09)^2+0.2672^2}+1.647\frac{0.2672}{(s+0.09)^2+0.2672^2}]$になります。
逆ラプラス変換で$\Delta{T}_{タンク}(t)$にもどすと、$\Delta{T}_{タンク}(t)=0.1886[1-e^{-0.09t}$$(\cos(0.2672t)+1.647\sin(0.2672t))]$になります。
まとめ
このページでは簡単なプロセスを使ってカスケード制御について紹介しました。
カスケード制御では熱容量の大きい真空装置やオートクレーブなど、通常のフィードバック制御ではオーバーシュートやハンチングを起こしやすいプロセスに対しても、制御の高速性を達成することができます。
ただし、カスケード制御は設定しなければならない制御パラメーターが増えることに注意しましょう。