以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。以降では、現在から未来への目標値時系列が入力された場合において、制御量を目標値に追従させるための操作量を計算する制御装置10について説明する。本実施形態に係る制御装置10は、任意の目標値の時系列データである目標値時系列{r(t)}や制御対象プラント20の状態等を示す制御量y等に基づいて、制御対象プラント20に対する操作量uを算出する。そして、本実施形態に係る制御装置10は、この操作量uに応じた制御対象プラント20の制御量yを計測し、この制御量yや目標値時系列{r(t)}等に基づいて、次の操作量uを算出する。なお、制御量yとしては、例えば、制御対象プラント20の温度、目標値rとしては、例えば、設定温度等が挙げられる。ただし、制御量y及び目標値rは、温度及び設定温度に限られず、制御対象プラント20における任意の制御量及び当該制御量の目標となる目標値を用いることができる。
本実施形態に係る制御装置10は、計算資源が限られたエッジデバイス(例えば、組み込み型の計算機器やPLC等の制御装置等)であるものとする。ただし、本実施形態に係る制御装置10は、エッジデバイス以外にも、例えば、十分な計算資源を有する各種機器又は装置であっても良い。
[第一の実施形態]
<制御装置10の構成>
まず、本実施形態に係る制御装置10の構成について、図1を参照しながら説明する。図1は、第一の実施形態に係る制御装置10の構成の一例を示す図である。
図1に示すように、本実施形態に係る制御装置10は、目標値先読み部101と、計測部102と、差分器103と、操作量更新部104と、タイマ105とを有する。これら各機能部は、例えば、制御装置10にインストールされた1以上のプログラムがCPU(Central Processing Unit)等に実行させる処理によって実現される。
目標値先読み部101は、所定の制御周期Tc毎に、目標値時系列{r(t)}と、先読み長Tpとを入力して、現在時刻tから先読み長後の時刻t+Tpにおける目標値r(t+Tp)を出力する。先読み長Tpとは、目標値時系列{r(t)}のうち、先読みする目標値r(t+Tp)を決定するための時間長である。なお、以降では、目標値r(t+Tp)を「先読み目標値r(t+Tp)」とも表す。
計測部102は、制御周期Tc毎に、制御対象プラント20の制御量yを計測する。そして、計測部102は、計測した制御量yの最新の値を、制御量現在値y0として出力する。なお、制御対象プラント20の制御量y、操作量uと外乱vとに応じて決定される。外乱vとしては、例えば、制御量yが温度である場合における外気温の低下又は上昇等が挙げられる。
また、計測部102は、操作量更新部104から出力された操作量uを取得し、取得した操作量uの最新の値を、操作量現在値u0として出力する。
差分器103は、目標値先読み部101から出力された先読み目標値r(t+Tp)と、制御量現在値y0との差(偏差)を目標偏差e0として出力する。目標偏差e0は、e0=r(t+Tp)−y0(t)で算出される。なお、以降では、目標偏差e0を「先読み目標偏差e0」とも表す。
操作量更新部104は、制御周期Tc毎に、制御対象プラント20に対する操作量uを出力する。操作量更新部104には、先読み応答補正部111と、操作変化量算出部112と、加算器113とが含まれる。
先読み応答補正部111は、制御対象プラント20のプラント応答モデル{S(t)}と、先読み目標偏差e0(t)と、先読み長Tpと、過去の操作量uの変化量duの時系列データである操作変化量時系列{du(t)}とに基づいて、先読み目標偏差e0(t)を補正した補正目標偏差e*(t)を算出する。補正目標偏差e*(t)の算出方法の詳細については後述する。なお、以降では、操作量uの変化量duを「操作変化量du」とも表す。
操作変化量算出部112は、制御周期Tc毎に、先読み応答補正部111により算出された補正目標偏差e*(t)に基づいて、操作変化量duを算出する。操作変化量算出部112は、例えば、du(t−3Tc)、du(t−2Tc)、du(t−Tc)という順序で操作変化量du(t)を算出し、出力する。なお、操作変化量duは、制御周期Tc毎に操作量uが変化した量である。
加算器113は、計測部102から出力された操作量現在値u0と、操作変化量算出部112から出力された操作変化量duとを加算して、新たな操作量uを算出する。そして、加算器113は、この操作量uを制御対象プラント20に出力する。この操作量uは、u(t)=u0+du(t)=u(t−Tc)+du(t)で算出される。
タイマ105は、制御周期Tc毎に、目標値先読み部101と計測部102とを動作させる。なお、目標値先読み部101と計測部102とが制御周期Tc毎に動作することで、操作量更新部104も制御周期Tc毎に動作する。
<目標値先読み部101の動作>
次に、目標値先読み部101の動作について、図2を参照しながら説明する。図2は、目標値先読み部101の動作の一例を説明するための図である。
図2に示すように、目標値先読み部101は、目標値時系列{r(t)}と、先読み長Tpとが入力されると、現在時刻tから先読み長後の時刻t+Tpにおける先読み目標値r(t+Tp)を出力する。このように、目標値先読み部101は、目標値時系列{r(t)}のうち、先読み長後の時刻t+Tpにおける目標値r(t+Tp)を出力する。
なお、図2に示す例では、目標値時系列{r(t)}が直線によって表される場合を示しているが、これに限られない。目標値時系列{r(t)}は任意の曲線や矩形等によって表されても良い。特に、目標値時系列{r(t)}は、時刻tに応じて周期的に変化する曲線によって表されても良い。また、目標値時系列{r(t)}は、予め設定されていても良いし、未来の目標値r(t)が随時更新されても良い。
<先読み応答補正部111の動作>
次に、先読み応答補正部111の動作について、図3を参照しながら説明する。図3は、先読み応答補正部の動作の一例を説明するための図(その1)である。
図3に示すように、先読み応答補正部111は、プラント応答モデル{S(t)}と、先読み目標偏差e0(t)と、先読み長Tpと、操作変化量時系列{du(t)}とが入力されると、まず、過去の操作変化量duによって現在の制御量y0がTp後に変化すると予測される値を先読み応答補正値yn(t)として算出する。なお、例えば、現在時刻をtとした場合、過去の操作変化量duは、du(t−Tc)、du(t−2Tc)等と表される。
次に、先読み応答補正部111は、先読み目標偏差e0(t)を先読み応答補正量yn(t)によって補正した補正目標偏差e*(t)を算出し、算出した補正目標偏差e*(t)を出力する。図3に示すように、補正目標偏差e*(t)は、e*(t)=r(t+Tp)−(y0(t)+yn(t))=e0(t)−yn(t)で表される。
ここで、一例として、プラント応答モデル{S(t)}がステップ応答モデルである場合における先読み応答補正値yn(t)の計算方法について説明する。
操作変化量時系列{du(t)}のみによる先読み時刻t+Tpにおける制御量yの予測値(先読み応答予測値)yn,A(t)を、
とする。ここで、Mは、先読み応答予測値の計算に使用するモデルの長さ(モデル区間)である。
また、操作変化量時系列{du(t)}のみによる現在時刻tにおける制御量yの予測値(自由応答予測値)yn,B(t)を、
とする。ここで、Mは、上記と同様に、自由応答予測値の計算に使用するモデル区間である。
そして、先読み応答補正部111は、先読み応答予測値yn,A(t)と、自由応答予測値yn,B(t)との差を先読み応答補正値yn(t)とする。すなわち、先読み応答補正部111は、yn(t)=yn,A(t)−yn,B(t)とする。
また、一例として、予測時系列を記憶する予測時系列記憶部121を先読み応答補正部111が利用して先読み応答補正値yn(t)を算出する場合について、図4を参照しながら説明する。図4は、先読み応答補正部の動作の一例を説明するための図(その2)である。なお、予測時系列記憶部121は、例えば、補助記憶装置やRAM(Random Access Memory)等の記憶装置を用いて実現可能である。
図4に示すように、予測時系列記憶部121には、現在時刻をtとして、時刻t−Δtから未来の時刻t+Tbまでの制御量yの予測値yn,C(t−Δt|t),yn,C(t|t),yn,C(t+Δt|t),・・・,yn,C(t+Tb|t)を、時系列として記憶している。なお、Tbは、予測時系列記憶部121に記憶される予測値yn,Cの長さ(時間長)を決める定数であり、Tb=NΔt(Nは、任意の正の整数)であるものとする。また、Δtは、予測間隔であり、Δt=Tcであるものとする。以降では、予測値yn,Cを「一般化予測値yn,C」とも表す。
時刻tで予測した時刻sにおける一般化予測値yn,C(s|t)は、
で算出される。
予測時系列記憶部121に記憶された一般化予測値yn,Cを用いると、上述した自由応答予測値yn,B(t)は一般化予測値yn,C(t|t)と一致し、上述した先読み応答予測値yn,A(t)は一般化予測値yn,C(t+Tp|t)と一致する。
したがって、先読み応答補正部111は、予測時系列記憶部121に記憶された一般化予測値yn,Cを用いて、yn(t)=yn,A(t)−yn,B(t)=yn,C(t+Tp|t)−yn,C(t|t)により先読み応答補正値yn(t)を算出することができる。これにより、補正目標偏差e*(t)=e0(t)−yn(t)を算出及び出力することができる。このように、予測時系列記憶部121を用いることで、先読み応答補正部111は、少ない計算量と少ないメモリとで補正目標偏差e*を計算することができる。
また、予測時系列記憶部121は、操作変化量du(t)が先読み応答補正部111に入力される度に、予測時系列更新部122によって更新される。ここで、時刻tで予測したmΔt先における一般化予測値yn,C(t+mΔt|t)は、
で表される。このため、時刻t+Δtで予測したmΔt先における一般化予測値yn,C(t+Δt+mΔt|t+Δt)は、
となる。すなわち、時刻t+Δで予測したmΔt先における一般化予測値yn,C(t+Δt+mΔt|t+Δt)は、yn,C(t+Δt+mΔt|t+Δt)=S(mΔt)du(t+Δt)+yn,C(t+(m+1)Δt|t)となる。
したがって、時刻t+Δtで予測したmΔ先における一般化予測値yn,Cは、時刻tで予測した(m+1)Δt先の一般化予測値yn,Cに対して、時刻t+Δにおける操作変化量du(t+Δ)による影響を加えた値として更新される。
<予測時系列更新部122が実行する更新処理>
ここで、予測時系列更新部122が予測時系列記憶部121に保持されたデータを更新する処理について、図5を参照しながら説明する。図5は、予測時系列更新部122が実行する更新処理の一例を説明するためのフローチャートである。以降では、予測時系列記憶部121に記憶されている時刻tでの一般化予測値yn,Cを、時刻t+Δtでの一般化予測値yn,Cに更新する場合について説明する。
ステップS1:予測時系列更新部122は、予測時系列記憶部121に記憶されている時刻tでの一般化予測値yn,Cを時刻Δtだけシフトする。
例えば、図6(a)に示すように、yn,C(t−Δ|t),yn,C(t|t),yn,C(t+Δ|t),・・・,yn,C(t+Tp|t),・・・,yn,C(t+Tb|t)が予測時系列記憶部121に記憶されており、それぞれの相対位置mが−1,0,1,・・・,Nであるものとする。この場合、予測時系列更新部122は、相対位置m≧0以上の一般化予測値yn,Cの相対位置mを−1する。すなわち、予測時系列更新部122は、相対位置m=0であるyn,C(t|t)を相対位置m=−1に、相対位置m=1であるyn,C(t+Δt|t)を相対位置m=0に順にシフトする。以降も同様に、予測時系列更新部122は、相対位置m=Nであるyn,C(t+Tb|t)を相対位置m=N−1にシフトするまで、各yn,Cの相対位置mを順にシフトする。
ステップS2:予測時系列更新部122は、最終時刻(すなわち、相対位置m=N)における一般化予測値yn,Cを更新する。時刻tで予測した最終時刻t+NΔt+Δtにおける一般化予測値yn,C(t+NΔt+Δt|t)は、例えば、時刻t+NΔt以前における一般化予測値yn,Cを用いて、
により推定する。これは、時刻tでの時刻t+NΔt−(j−1)Δtにおける一般化予測値yn,Cに対して重みajを掛けて和を取った式である。
一般化予測値yn,C(t+NΔt+Δt|t)は、これ以外にも、例えば、時刻tで予測した時刻t+NΔtの一般化予測値yn,Cをそのまま使う場合、すなわち、yn,C(t+NΔt+Δt|t)=yn,C(t+NΔt|t)とする場合も考えられる。また、例えば、速度変化を考慮して、時刻t+NΔtにおける一般化予測値yn,Cと、時刻t+NΔt−Δtの一般化予測値yn,Cとを外挿して、
を用いる場合も考えられる。例えば、この数7で、r=1とすれば、時刻t+NΔtにおける一般化予測値yn,Cと、時刻t+NΔt−Δtにおける一般化予測値yn,Cとの差がΔtだけ継続すると推定することに相当する。
これにより、図6(b)に示すように、予測時系列記憶部121の相対位置Nがyn,C(t+Tb+Δt|t)=yn,C(t+NΔt+Δt|t)に更新される。
ステップS3:予測時系列更新部122は、最新の操作変化量du(t+Δt)の影響を反映する。すなわち、図6(c)に示すように、予測時系列更新部122は、相対位置m=0〜Nまでの各一般化予測値yn,Cに(t+(m+1)Δt|t)に対して、S(mΔt)du(t+Δt)を加える。
具体的には、相対位置m=0の一般化予測値yn,C(t+Δt|t)に対しては、S(0)du(t+Δt)を加える。また、相対位置m=1の一般化予測値yn,C(t+2Δt|t)に対しては、S(Δt)du(t+Δt)を加える。m≧3の場合も同様である。
ステップS4:予測時系列更新部122は、予測時系列記憶部121に記憶されている各一般化予測値yn,Cを時刻t+Δtの予測時系列とする。すなわち、上記のS3により、m=0〜Nまでの各一般化予測値yn,Cは、yn,C(t+Δt+mΔt|t+Δt)=S(mΔt)du(t+Δt)+yn,C(t+(m+1)Δt|t)と表せる。
そこで、t´=t+Δtとすれば、図6(d)に示すように、相対位置m=−1の一般化予測値はyn,C(t´−Δt|t´)、相対位置m=0の一般化予測値はyn,C(t´|t´)、相対位置m=1の一般化予測値はyn,C(t´+Δt|t´)と表せる。m≧2の場合も同様に、yn,C(t´+mΔt|t´)と表せる。これにより、予測時系列記憶部121に記憶されている時刻tでの一般化予測値yn,Cが、時刻t+Δtでの一般化予測値yn,Cに更新される。
<操作変化量算出部112の動作>
次に、操作変化量算出部112の動作について、図7を参照しながら説明する。図7は、操作変化量算出部112の動作の一例を説明するための図である。
図7に示すように、操作変化量算出部112は、補正目標偏差e*(t)が入力されると、この補正目標偏差e*(t)に対して所定の制御ゲインを乗じることで操作変化量du(t)を算出し、算出したdu(t)を出力する。例えば、所定の制御ゲインとして積分ゲインkIを用いる場合、操作変化量du(t)は、du(t)=kI×e*(t)で算出される。
ただし、補正目標偏差e*(t)に対して所定の制御ゲインを乗じた結果、操作変化量duの上限値dumaxを超える場合、操作変化量算出部112は、dumaxを操作変化量du(t)とする。同様に、補正目標偏差e*(t)に対して所定の制御ゲインを乗じた結果、操作変化量duの下限値duminを下回る場合、操作変化量算出部112は、duminを操作変化量du(t)とする。
<制御装置10を用いた制御ループ>
ここで、本実施形態に係る制御装置10を用いて、制御対象プラント20の制御ループを構成した場合の一例を図8に示す。図8は、第一の実施形態に係る制御装置10を用いて、制御対象プラント20の制御ループを構成した場合の一例を示す図である。
図8に示す例では、以下のように制御ループを構成した。
・制御対象プラント20の実プラント伝達関数:P*(s)
・制御器:K(s)=kI×1/s
・自由応答予測値yn,B(t)を生成するフィルタB:FB(s)
・先読み応答予測値yn,A(t)を生成するフィルタA:FA(s;Tp)
・先読み目標値r(t+Tp)を生成するフィルタC:FC(s;Tp)
図8に示す例では、フィルタCが目標値先読み部101に相当し、制御器K(s)が操作変化量算出部112に相当する。なお、フィルタA及びフィルタCは、先読み応答補正部111が実行する計算を表し、先読み長Tpが出力に影響する。
このとき、フィルタC(目標値先読み部101)は、制御周期Tc毎に、目標値時系列{r(t)}を入力して、先読み目標値r(t+Tp)を出力する。制御器(操作量更新部104)は、先読み目標値r(t+Tp)と制御量現在値y0との差である目標偏差e0を入力して、操作量u(t)を出力する。
制御器は、制御周期TC毎に、操作変化量算出部112で算出した操作変化量duを操作量現在値u0に加算する。また、制御器は、上述したように、補正目標偏差e*(t)に対して所定の制御ゲインを乗ずることで、操作変化量duを算出する。このため、制御器は、積分器で近似することができ、K(s)=kI×1/sとなる。なお、制御器には、r(t+Tp)−(yn,A(t)+w(t))が入力される。また、w(t)=y(t)+v(t)−yn,B(t)である。
図8に示す例では、全体的な動作として、制御量y(t)がフィルタAとフィルタBとによって、時刻Tp経過後の制御量の推定値(すなわち、先読み応答予測値yn,A(t)及び自由応答予測値yn,B(t))に補正される。そして、補正された制御量が、先読み目標値r(t+Tp)と一致するように制御器によって制御される。したがって、本実施形態に係る制御装置10は、現在時刻tからTp経過後の制御量が目標値と一致するような操作量を、従来のモデル予測制御のような最適化演算なしに、決定していると言うことができる。
ここで、例えば、プラントモデルをP(s)とし、先読み長Tpをステップ応答が収束すると見做せるほど十分長い値とすると、FA(s;Tp)は定常ゲインP(0)に等しくなる。このため、本実施形態に係る制御装置10では、先読み長Tpを、無限大も含めた任意の値に設定することができるものの、例えば、ステップ応答が目標値に収束するまでの値とすることが好ましい。特に、ステップ応答が目標値に到達する80%程度までの値とすることが好ましい。更に、例えば、ステップ応答の目標値が周期的に変化するような場合には、この変化周期に合せて十分小さい値とすることが好ましい。
以上のように、本実施形態に係る制御装置10は、任意に設定された先読み長Tpにおける目標値r(t+Tp)を先読みし、この先読みした目標値r(t+Tp)に制御量を追従させることで、少ない計算資源で、高い制御性能を実現することができる。
<制御装置10のハードウェア構成>
次に、本実施形態に係る制御装置10のハードウェア構成について、図9を参照しながら説明する。図9は、第一の実施形態に係る制御装置10のハードウェア構成の一例を示す図である。
図9に示すように、第一の実施形態に係る制御装置10は、入力装置201と、表示装置202と、外部I/F203と、通信I/F204と、ROM(Read Only Memory)205と、RAM206と、CPU207と、補助記憶装置208とを有する。これら各ハードウェアは、バス209により相互に通信可能に接続されている。
入力装置201は、例えば各種ボタンやタッチパネル、キーボード、マウス等であり、制御装置10に各種の操作を入力するのに用いられる。表示装置202は、例えばディスプレイ等であり、制御装置10による各種の処理結果を表示する。なお、制御装置10は、入力装置201及び表示装置202の少なくとも一方を有していなくても良い。
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。制御装置10は、外部I/F203を介して、記録媒体203aの読み取りや書き込みを行うことができる。記録媒体203aには、例えば、SDメモリカード(SD memory card)やUSBメモリ、CD(Compact Disk)、DVD(Digital Versatile Disk)等がある。なお、制御装置10が有する各機能部を実現する1以上のプログラムは、記録媒体203aに格納されていても良い。
通信I/F204は、制御装置10が他の装置とデータ通信を行うためのインタフェースである。なお、制御装置10が有する各機能部を実現する1以上のプログラムは、通信I/F204を介して、所定のサーバ等から取得(ダウンロード)されても良い。
ROM205は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。RAM206は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU207は、例えば補助記憶装置208やROM205からプログラムやデータをRAM206に読み出して、各種処理を実行する演算装置である。
補助記憶装置208は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性のメモリである。補助記憶装置208に格納されているプログラムやデータには、例えば、制御装置10が有する各機能部を実現する1以上のプログラムや基本ソフトウェアであるOS(Operating System)、OS上で動作する各種アプリケーションプログラム等がある。
本実施形態に係る制御装置10は、図9に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図9では、制御装置10が1台のコンピュータで実現される場合のハードウェア構成例を示したが、制御装置10は複数台のコンピュータで実現されていても良い。
[第二の実施形態]
次に、第二の実施形態について説明する。第二の実施形態では、制御対象プラント20に対する予測外乱の時系列データである予測外乱時系列{v(t)}が制御装置10に入力される場合について説明する。これにより、本実施形態に係る制御装置10は、現在から未来に生じる予測外乱の影響も考慮した制御を行うことができるようになる。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、その説明を省略又は簡略化する。
<制御装置10の構成>
まず、本実施形態に係る制御装置10の構成について、図10を参照しながら説明する。図10は、第二の実施形態に係る制御装置10の構成の一例を示す図である。
図10に示すように、本実施形態に係る制御装置10は、更に、外乱影響先読み補正部106を有する。外乱影響先読み補正部106は、例えば、制御装置10にインストールされた1以上のプログラムがCPU等に実行させる処理によって実現される。
外乱影響先読み補正部106は、制御周期Tc毎に、予測外乱時系列{v(t)}と、先読み長Tpとを入力して、外乱補正値v* 0(t)を算出及び出力する。なお、外乱補正値v* 0(t)の算出方法については後述する。
また、本実施形態に係る差分器103は、先読み目標値r(t+Tp)と、制御量現在値y0と、外乱補正値v* 0(t)とから先読み目標偏差e0を出力する。本実施形態では、先読み目標偏差e0は、e0=r(t+Tp)−y0(t)−v* 0(t)で表される。すなわち、本実施形態に係る先読み目標偏差e0は、第一の実施形態に係る先読み目標偏差e0から、更に、外乱補正値v* 0(t)を減じたものである。
また、本実施形態に係る先読み応答補正部111は、プラント応答モデル{S(t)}と、先読み目標偏差e0(t)と、先読み長Tpと、操作変化量時系列{du(t)}とに基づいて、補正目標偏差e*(t)を算出する。このとき、本実施形態では、上記の目標偏差e0(すなわち、外乱補正値v* 0(t)も考慮した目標偏差e0)を補正した補正目標偏差e*(t)を算出する。
<外乱影響先読み補正部106の動作>
次に、外乱影響先読み補正部106の動作について、図11を参照しながら説明する。図11は、外乱影響先読み補正部106の動作の一例を説明するための図である。
図11に示すように、外乱影響先読み補正部106は、予測外乱時系列{v(t)}と、先読み長Tpとが入力されると、現在時刻tから先読み長後の時刻t+Tpにおける予測外乱v(t+Tp)を先読みする。そして、外乱影響先読み補正部106は、予測外乱v(t+Tp)と、現在時刻tの予測外乱v(t)とを用いて、v* 0(t)=f(v(t+Tp)−v(t))により外乱補正値v* 0(t)を算出し、算出した外乱補正値v* 0(t)を出力する。なお、fは、外乱補正関数である。外乱補正関数fとしては任意の関数を用いることができる。
なお、目標値先読み部101とは異なり、外乱影響先読み補正部106は、時刻t+Tpにおける予測外乱v(t+Tp)を出力するわけではない。この理由は、外乱vの影響は制御装置10によるフィードバックにより徐々に低減されていくためである。一例を挙げると、目標値r(t)が一定、かつ、時刻tでe0(t)=0、v(t)=0であり、外乱v(t)が制御装置10の制御周期と比べて非常にゆっくりと徐々に変化する場合、外乱補正値v* 0(t)の補正効果によって操作量が時刻tから時刻t+Tの間継続的に補正されるため、時刻t+T後には、フィードバックによりe0(t+T)は0付近に維持され、結果として時刻t+T後に入力する外乱v(t+T)の影響はその値に関わらずほとんど生じない。外乱補正関数fは、このフィードバックループによる低減効果を表したものということができる。
<先読み応答補正部111の動作>
次に、先読み応答補正部111の動作について、図12を参照しながら説明する。図12は、先読み応答補正部111の動作の一例を説明するための図である。
図12に示すように、先読み応答補正部111は、第一の実施形態に係る補正目標偏差e*(t)に対して、外乱補正値v* 0(t)だけ補正された値である。すなわち、本実施形態に係るe*(t)は、e*(t)=r(t+Tp)−(y0(t)+yn(t)+v* 0(t))=e0(t)−yn(t)−v* 0(t)で表される。
<制御装置10を用いた制御ループ>
ここで、本実施形態に係る制御装置10を用いて、制御対象プラント20の制御ループを構成した場合の一例を図13に示す。図13は、第二の実施形態に係る制御装置10を用いて、制御対象プラント20の制御ループを構成した場合の一例を示す図である。
図13に示す例では、図8に示した制御ループに対して、以下を追加して構成したものである。
・外乱補正値v* 0(t)を生成するフィルタD:FD(s;Tp)
図13に示す例では、フィルタDが外乱影響先読み補正部106に相当する。なお、フィルタDは、先読み長Tpが出力に影響する。
外乱補正値v* 0(t)が制御ループに加わることにより、目標値r(t)だけでなく、予測外乱v(t)も含めた制御を実現することができる。
図13に示す例では、全体的な動作として、制御量y(t)がフィルタAとフィルタBとによって、時刻Tp経過後の制御量の推定値(すなわち、先読み応答予測値yn,A(t)及び自由応答予測値yn,B(t))に補正されると共に、更に、外乱補正値v* 0(t)によっても補正される。そして、補正された制御量が、先読み目標値r(t+Tp)と一致するように制御器によって制御される。したがって、本実施形態に係る制御装置10は、現在時刻tからTp経過後の制御量に外乱補正値が加わった値が目標値と一致するような操作量を、従来のモデル予測制御のような最適化演算なしに、決定していると言うことができる。
例えば、本実施形態に係る制御装置10により室内の温度制御を行う場合を考える。外気温度による室内温度への影響を外乱vとし、室内温度を制御量yとする。また、目標とする室内温度を目標値rとする。ここで、室内温度の現在値が20℃、外気温度の現在値が10℃、目標値が25℃、先読み長を5分とし、過去の操作量の影響がないと仮定する。このとき、外気温度予測により、外気温度が5分経過後に10℃から15℃に上昇し、室内温度を3℃上昇させるように働くことを予測したとする。すると、本実施形態に係る制御装置10は、外乱補正値が3℃であるため、室内温度を現在値の20℃から2℃上昇させるための操作量を決定する。一方で、第一の実施形態に係る制御装置10では、外乱影響先読み補正部106を有しないため、室内温度を20℃から5℃上昇させるための操作量を決定する。
このように、外乱予測時系列が与えられている場合、本実施形態に係る制御装置10は、第一の実施形態と比べて、より少ない操作量で、制御量を目標値に追従させることができるようになる。
[第三の実施形態]
次に、第三の実施形態について説明する。第三の実施形態では、操作量u(t)が離散値である場合について説明する。
ところで、従来技術として、例えば、制御装置の操作量がON/OFF等の離散値しか取りえない場合に、一旦連続値として計算した操作量をPWM(Pulse Width Modulation)変調によって離散化する方法が知られている。また、離散値の最適化問題として整数計画問題や混合整数計画問題等が知られており、これら離散値の最適化問題を解く方法も知られている。
しかしながら、例えば、PWM変調によって離散化する方法では、例えば、搬送波の周期毎に、操作量がONである時間と操作量がOFFである時間との割合が決定されるが、ONとOFFとが必ず交互に行われる。このため、例えば、不要なスイッチングが発生する、スイッチングを抑制するために搬送波周波数を下げると制御精度が悪化する、等の問題がある。他方で、例えば、離散値の最低化問題を解くことでモデル予測制御を行う場合、整数計画問題や混合整数計画問題等のNP困難な問題を解く必要があり、オンラインで最適化演算を行うことは困難である。
そこで、第三の実施形態では、PWM変調によって離散化する方法のように事前に設定される搬送波周波数に依らずに、また、整数計画問題や混合整数計画問題等を解くことなく、高速かつ高精度な制御を実現する場合について説明する。
なお、第三の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、その説明を省略又は簡略化する。
<制御装置10の機能構成>
第三の実施形態に係る制御装置10の機能構成は第一の実施形態と同様であるが、操作変化量算出部112の機能が異なる。本実施形態に係る操作変化量算出部112は、制御周期Tc毎に、操作変化量算出処理を実行して、離散化された操作変化量duを算出する。ここで、操作変化量算出処理では、補正目標偏差e*(t)に基づいて離散化前操作変化量du1を算出した後、この離散化前操作変化量du1を離散化関数πによって離散化することで、操作変化量duを算出する。
<操作変化量算出部112が実行する操作変化量算出処理>
次に、操作変化量算出部112が実行する操作変化量算出処理について、図14を参照しながら説明する。図14は、第三の実施形態に係る操作変化量算出部112が実行する操作変化量算出処理の一例を説明するためのフローチャートである。
ステップS11:まず、操作変化量算出部112は、補正目標偏差e*(t)が入力されると、この補正目標偏差e*(t)に対して所定の制御ゲインを乗じることで離散化前操作変化量du1(t)を算出する。例えば、所定の制御ゲインとして積分ゲインkIを用いる場合、離散化前操作変化量du1(t)は、du1(t)=kI×e*(t)で算出される。
ステップS12:次に、操作変化量算出部112は、離散化前操作変化量du1(t)を離散化関数πによって離散化することで、操作変化量du(t)を算出する。ここで、離散化関数πは、各i(iは自然数)に対して、π(x)=ai (bi≦x≦bi+1)の形で定義されており、所定の区間(つまり、bi≦x≦bi+1)毎に、離散値aiを割り当てる関数(つまり、xが属する区間に応じて、xを離散値aiに変換する関数)である。この離散化関数πを用いて、操作変化量du(t)は、du(t)=π(du1(t))により算出される。
<制御装置10を用いた制御ループ>
ここで、本実施形態に係る制御装置10を用いて、制御対象プラント20の制御ループを構成した場合の一例を図15に示す。図15は、第三の実施形態に係る制御装置10を用いて、制御対象プラントの制御ループを構成した場合の一例を示す図である。
図15に示す例では、以下のように制御ループを構成した。なお、制御器以外は図8に示した例と同様である。
・制御対象プラント20の実プラント伝達関数:P*(s)
・制御器:K(s;π)
・自由応答予測値yn,B(t)を生成するフィルタB:FB(s)
・先読み応答予測値yn,A(t)を生成するフィルタA:FA(s;Tp)
・先読み目標値r(t+Tp)を生成するフィルタC:FC(s;Tp)
ここで、制御器K(s;π)は、上述したように、補正目標偏差e*に制御ゲインkIを乗じた後、離散化関数πにより操作変化量duを算出する。このため、制御器K(s;π)は、例えば、K(s;π)e=π(kI×e)×1/sと非線形積分器で近似することができる。
図15に示す例では、図8に示した例と同様に、全体的な動作として、制御量y(t)がフィルタAとフィルタBとによって、時刻Tp経過後の制御量の推定値(すなわち、先読み応答予測値yn,A(t)及び自由応答予測値yn,B(t))に補正される。そして、補正された制御量が、先読み目標値r(t+Tp)と一致するように制御器によって制御される。したがって、本実施形態に係る制御装置10は、現在時刻tからTp経過後の制御量が目標値と一致するような操作量を、従来のモデル予測制御のような最適化演算なしに、決定していると言うことができる。
また、図15に示す例では、更に、操作量の離散化を予め設定した離散化関数πを用いて行っているため、整数計画問題や混合整数計画問題等を解く必要がない。一方で、離散化された操作変化量duは、フィルタA及びフィルタBに入力されるため、補正目標偏差e*の計算には離散化の影響が反映される。
なお、仮に、先読み長を、ステップ応答が収束すると見做せる程に十分長い値とすると、FA(s;Tp)は定常ゲインP(0)に等しくなり、結果として、特許文献2に記載されている制御ループと一致する。したがって、本実施形態では、特許文献2と比較して、Tpを無限大にとるだけでなく、任意の値に設定することもでき、かつ、目標値時系列の先読み機能を有する点でより効果的な制御が可能となる。
[第四の実施形態]
次に、第四の実施形態について説明する。第四の実施形態では、第三の実施形態で説明した離散化関数πをパラメータ化した上で、シミュレーション最適化によって当該パラメータを最適化する場合について説明する。
なお、第四の実施形態では、主に、第三の実施形態との相違点について説明し、第三の実施形態と実質的に同一の構成要素については、その説明を省略又は簡略化する。
<制御装置10の構成>
まず、本実施形態に係る制御装置10の構成について、図16を参照しながら説明する。図16は、第四の実施形態に係る制御装置10の構成の一例を示す図である。
図16に示すように、本実施形態に係る制御装置10は、更に、離散化パラメータ最適化部107を有する。離散化パラメータ最適化部107は、例えば、制御装置10にインストールされた1以上のプログラムがCPU等に実行させる処理によって実現される。
離散化パラメータ最適化部107は、離散化関数πの最適パラメータ算出処理を実行して、離散化関数πの最適パラメータを算出する。ここで、離散化関数πの最適パラメータ算出処理では、離散化関数πのパラメータの探索範囲を設定した上で、制御シミュレーションの実行結果を用いてパラメータを評価することで、最適パラメータを算出する。なお、以降では、離散化関数πのパラメータをθとして、この1つのパラメータθで表された離散化関数πを
とする。つまり、上記の数8に示す離散化関数πは、所定の区間を1つのパラメータθで定義している。ただし、これは一例であって、離散化関数πは、任意の数のパラメータθ1,θ2,・・・,θLで表されていてもよい。
<離散化関数πの最適パラメータ算出処理>
次に、離散化関数πの最適パラメータθ*の算出処理について、図17を参照しながら説明する。図17は、第四の実施形態に係る離散化関数πの最適パラメータ算出処理の一例を説明するためのフローチャートである。
ステップS21:まず、離散化パラメータ最適化部107は、離散化関数πのパラメータθの探索範囲を設定する。離散化パラメータ最適化部107は、例えば、パラメータθの探索範囲を0≦θ≦θmaxと設定する。ここで、θmaxはパラメータθが取り得る値の最大値であるが、本実施形態では、例えば、θmax=1とすればよい。
ステップS22:次に、離散化パラメータ最適化部107は、上記のステップS21で設定された探索範囲の中からパラメータθを1つ選択する。離散化パラメータ最適化部107は、例えば、探索範囲が0≦θ≦θmaxである場合、この探索範囲をN´等分して、1/N´間隔で、θ=0からθ=θmaxまで昇順に選択すればよい。この場合、θ=0,θ=(1/N´)θmax,θ=(2/N´)θmax,・・・,θ=((N´−1)/N´)θmax,θ=θmaxが順に選択される。
ステップS23:次に、制御装置10は、上記のステップS22で選択されたパラメータθが設定された離散化関数πを用いて、プラントモデルと当該制御装置10との閉ループ動作の制御シミュレーションを所定の時間の間実行して、制御量y(t)と、操作量u(t)と、操作変化量du(t)とを計算する。なお、目標値時系列{r(t)}は任意に設定すればよい。
例えば、制御装置10は、図18(a)に示す目標値時系列{r(t)}を用いて、t=0からt=38まで制御シミュレーションを実行する。或るパラメータθが設定された離散化関数πを用いた制御シミュレーションにより、例えば、図18(a)に示す制御量y(t)と、図18(b)に示す操作量u(t)及び操作変化量du(t)とが得られる。
ステップS24:次に、離散化パラメータ最適化部107は、上記のステップS22で得られた制御量y(t)と操作量u(t)と操作変化量du(t)とを用いて、評価関数Jを計算する。この評価関数Jは、以下で表される。
ここで、λはユーザによって設定される任意の重みである。また、評価関数Je及びJduを以下で定義する。
すなわち、評価関数Jeは目標偏差eに対する評価関数であり、目標値r(t)と制御量y(t)との2乗誤差を積分した値である。一方で、評価関数Jduは操作変化量duに対する評価関数であり、操作変化量duの2乗を積分した値である。
なお、上記の評価関数Je及びJduは一例であって、2乗誤差や2乗以外にも、例えば、時系列の中での絶対値の最大値(∞ノルム)や絶対値の積分値(L1ノルム)等、制御分野で用いられる任意の関数が用いられてもよい。
ステップS25:次に、離散化パラメータ最適化部107は、上記のステップS21で設定された探索範囲の探索が完了したか否かを判定する。すなわち、離散化パラメータ最適化部107は、上記のステップS22で、探索範囲中の全てのパラメータθが選択されたか否かを判定する。
ステップS25で探索範囲の探索が完了したと判定されなかった場合、ステップS22に戻る。これにより、探索範囲中の全てのパラメータθが選択されるまで、ステップS22〜ステップS24が繰り返し実行される。一方で、ステップS25で探索範囲の探索が完了したと判定された場合、ステップS26に進む。
ステップS26:次に、離散化パラメータ最適化部107は、上記のステップS22で選択された各パラメータθのうち、評価関数Jの値が最適(本実施形態では最小)となるパラメータθを最適パラメータθ*とする。これにより、量子化関数πの最適パラメータθ*が得られる。
[実施例1]
次に、実施例1について説明する。実施例1では、第一の実施形態に係る制御装置10によって制御対象プラント20を制御する場合について説明する。実施例1においては、通常、PID制御では制御しにくい、逆応答のある制御対象プラント20に対しても高い制御性能が達成できることを示す。
まず、制御対象プラント20のプラント応答モデルを図19に示す。図19に示すように、実施例1における制御対象プラント20のプラント応答モデルでは、ステップ応答の初期(おおよそ0から1の間)で逆応答が生じており、一般に制御しにくい対象である。
また、実施例1では、特許文献1に開示されている制御系設計支援装置にて制御ゲインを設計するものとする。この制御系設計支援装置に入力される各情報(制御仕様を示す情報)を図20(a)〜図20(c)に示す。図20(a)は、各操作時刻における操作変化量上下限である。図20(b)は、各制御時刻における許容目標偏差制約である。図20(c)は、制御応答波形である。これらの各情報が上記の制御系設計支援装置に入力されることで、図21に示す領域Rが出力される。領域Rは、補正目標偏差e*と操作変化量duとが、図20(a)〜図20(c)に示した各情報を満たす領域、すなわち、制御ゲインの許容範囲を表すグラフである。
ここで、実施例1では、図21に示される領域Rを参考に、この領域Rの中心付近を通る値0.716を制御ゲインとして選択したものとする。すなわち、du(t)=0.716×e*(t)となる。
このとき、第一の実施形態に係る制御装置10を用いて、先読み長Tp=2.0として制御対象プラント20を制御した場合の制御結果を図22に示す。図22(a)は、制御量y(t)と、目標値r(t)と、補正目標偏差e*(t)との時刻変化を示したグラフである。図22(b)は、操作量u(t)と、操作変化量du(t)との時刻変化を示したグラフである。
図22(a)の制御量y(t)のグラフからわかるように、一度時刻t=2付近で逆応答があるものの、制御量y(t)は、時刻t=10付近で目標値r(t)に収束している。
一方で、第一の実施形態に係る制御装置10を用いて、先読み長Tp=0.0として制御対象プラント20を制御した場合の制御結果を図23に示す。図23(a)は、制御量y(t)と、目標値r(t)と、補正目標偏差e*(t)との時刻変化を示したグラフである。図23(b)は、操作量u(t)と、操作変化量du(t)との時刻変化を示したグラフである。
図23(a)の制御量y(t)のグラフからわかるように、制御量y(t)は目標値r(t)に収束しておらず、振動的な応答となっている。これは、Tp=0.0である場合、目標値r(t)の先読みによる効果が働いておらず、通常のPID制御と等しくなるためである。
図22(a)と図23(a)とを比較すればわかるように、第一の実施形態に係る制御装置10を用いることで、先読み長Tp=2.0とした、目標値r(t)の先読みによる効果によって、大幅に制御応答が改善される。
[実施例2]
次に、実施例2について説明する。実施例2でも、第一の実施形態に係る制御装置10によって制御対象プラント20を制御する場合について説明する。実施例2においては、制御対象プラント20のプラントモデルに不確かさがある場合であっても高い制御性能が達成できることを示す。
まず、制御対象プラント20のプラント応答モデルとして、ステップ応答モデルを図24に示す。実施例2では、制御対象プラント20の制御ゲインが変動する可能性があり、図24に示すように、モデルA、モデルB、モデルCの時定数が異なる3つのモデルを想定する。これらのモデルのうち、第一の実施形態に係る制御装置10に入力及び設定されるモデルとしてモデルBを用いるものとする。このような時定数が異なるモデルが想定される制御対象プラント20の具体例としては、例えば、室内温度によって温調設備の起動後の稼働状態(言い換えれば、温調設備の立ち上がり)が異なり得るような制御対象が挙げられる。
また、特許文献1に開示されている制御系設計支援装置に入力される各情報(設計仕様を示す情報)を図25(a)及び図25(b)に示す。図25(a)は、各操作時刻における操作変化量上下限である。図25(b)は、各制御時刻における許容目標偏差制約である。なお、制御応答波形は、図24に示すモデルA、モデルB及びモデルCそれぞれの制御応答波形を用いる。
これらの各情報が上記の制御系設計支援装置に入力されることで、図26(a)〜図26(c)にそれぞれ示す領域RA〜領域RBが出力される。すなわち、図26(a)は、モデルAの制御応答波形を用いた場合における制御ゲインの許容範囲を表すグラフである。図26(b)は、モデルBの制御応答波形を用いた場合における制御ゲインの許容範囲を表すグラフである。図26(c)は、モデルCの制御応答波形を用いた場合における制御ゲインの許容範囲を表すグラフである。
ここで、図26(a)〜図26(c)にそれぞれ示されたグラフを重ね合わせた結果を図26(d)に示す。実施例2では、図26(d)に示される領域(図26(a)〜図26(c)にそれぞれ示されたグラフを重ね合わせた領域)の中心付近を通る値0.649を制御ゲインとして選択したものとする。すなわち、du(t)=0.649×e*(t)となる。
このとき、第一の実施形態に係る制御装置10を用いて、先読み長Tp=2.0として制御対象プラント20を制御した場合の制御結果を図27に示す。図27(a)は、制御対象プラント20のプラント応答モデルがモデルAである場合における制御量y(t)と、目標値r(t)と、補正目標偏差e*(t)との時刻変化を示したグラフである。図27(b)は、制御対象プラント20のプラント応答モデルがモデルAである場合における操作量u(t)と、操作変化量du(t)との時刻変化を示したグラフである。
また、図27(c)は、制御対象プラント20のプラント応答モデルがモデルBである場合における制御量y(t)と、目標値r(t)と、補正目標偏差e*(t)との時刻変化を示したグラフである。図27(d)は、制御対象プラント20のプラント応答モデルがモデルBである場合における操作量u(t)と、操作変化量du(t)との時刻変化を示したグラフである。
同様に、図27(e)は、制御対象プラント20のプラント応答モデルがモデルCである場合における制御量y(t)と、目標値r(t)と、補正目標偏差e*(t)との時刻変化を示したグラフである。図27(f)は、制御対象プラント20のプラント応答モデルがモデルCである場合における操作量u(t)と、操作変化量du(t)との時刻変化を示したグラフである。
図27(a)、図27(c)及び図27(e)のそれぞれのグラフからわかるように、制御対象プラント20のプラント応答モデルがモデルA、モデルB及びモデルCのいずれの場合であっても、目標値r(t)に収束しており、高い制御性能が実現できていることがわかる。すなわち、第一の実施形態に係る制御装置10は、制御対象プラント20のプラントモデルに不確かさがある場合であっても、高いロバスト性を有する制御が実現できることがわかる。
ここで、上記のモデルBが入力及び設定された制御装置10を用いて、目標値r(t)が時刻と共に変動する場合における制御結果を図28に示す。図28(a)及び図28(b)は、Tp=2.0とした場合の制御結果である。一方で、図28(c)及び図28(d)は、Tp=0とした場合の制御結果である。
図28(a)と図28(c)とを比較すればわかるように、Tp=2.0とした場合の方が、制御量y(t)のピークと、目標値(t)のピークとがより近い値となっていることがわかる。また、図28(b)と図28(d)とを比較すればわかるように、Tp=2.0とした場合の方が、操作量u(t)の変化幅も少ない。したがって、第一の実施形態に係る制御装置10を用いることで、目標値r(t)の先読みによる効果によって、高い制御性能を実現できているということができる。本実施例のように、目標値が周期的に変動する場合、先読み長Tpは、変動周期を大幅に超えることがなく、かつ、短すぎない適切な長さに設定することが望ましい。
[実施例3]
次に、実施例3について説明する。実施例3では、第二の実施形態に係る制御装置10によって制御対象プラント20を制御する場合(すなわち、予測外乱時系列{v(t)}が与えられる場合)について説明する。実施例3においては、予測外乱時系列{v(t)}が与えられた場合に高い制御性能が達成できることを示す。
なお、第二の実施形態に係る制御装置10に入力及び設定されるプラント応答モデルは、実施例2のモデルBであり、制御ゲインも実施例2で同様であるものとする。
また、実施例3では、目標値r(t)が0に固定されており、制御対象プラント20に対する外乱が変動し、この外乱の未来の値が予め外乱予測時系列{v(t)}として与えられるものとする。第二の実施形態に係る制御装置10に入力される外乱予測時系列{v(t)}を図29に示す。この外乱予測時系列{v(t)}に対して、外乱影響先読み補正部106は、外乱補正関数fとして、f(x)=0.5xを用いるものとする。すなわち、外乱補正値v* 0(t)は、v* 0(t)=0.5(v(t+Tp)−v(t))で算出されるものとする。
このように、実施例3の外乱補正値v* 0(t)は、先読みした予測外乱v(t+Tp)と、外乱の現在値v(t)との差に対して、所定の乗数を掛けた値であるものとする。なお、乗数=0.5は一例である。乗数としては、例えば、0より大で1未満の任意の乗数を用いることができる。
このとき、第二の実施形態に係る制御装置10を用いて、制御対象プラント20を制御した場合の制御結果を図30に示す。図30(a)及び図30(b)は、Tp=2.0とした場合の制御結果である。一方で、図30(c)及び図30(d)は、Tp=0とした場合の制御結果である。
図30(a)に示されるように、Tp=2.0とした場合の制御量y(t)のピークはおよそ0.12付近であることがわかる。一方で、図30(b)に示されるように、Tp=0とした場合の制御量y(t)のピークはおよそ0.6付近であることがわかる。このように、Tp=2.0とした場合とTp=0とした場合とでは、およそ5倍(=0.6/0.12)のピーク幅の違いあり、Tp=2.0とした場合の方が、ピークが1/5に抑制された高い制御性能を実現できていることがわかる。したがって、第二の実施形態に係る制御装置10を用いることで、目標値r(t)の先読みによる効果と、外乱影響の先読み及び補正の構成とによって、高い制御性能を実現できているということができる。
[実施例4]
次に、実施例4について説明する。実施例4では、第四の実施形態に係る制御装置10によって制御対象プラント20を制御する場合について説明する。実施例4では、操作量u(t)は、離散値(+1,0,−1)しか取り得ないものとする。操作量u(t)が離散値しか取りえない場合は、例えば、温調におけるヒーターのON/OFF制御、2レベルインバータ、3レベルインバータ、DC/DCコンバータ、化学プラントにおける加温/冷却制御、信号処理におけるA/D変換等の様々な産業分野で現れる。
実施例4においては、操作量u(t)が離散値のみであるため、従来のPID制御やMPC等では制御しにくい制御対象プラント20に対しても高い制御性能が達成できることを示す。また、制御対象プラント20のモデルに不確かさがある場合においても、高い制御性能が達成できることを示す。
まず、制御対象プラント20のプラント応答モデルを図31に示す。図31に示すように、実施例4における制御対象プラント2は、ステップ応答が変動する可能性があり、モデルD及びモデルEの過渡応答の異なる2つのモデルを想定する。これらモデルD及びモデルEのうち、モデルDを、制御装置10の先読み応答補正部111に設定するモデルとして用いる。
また、実施例4では、特許文献3に開示されている制御系設計支援装置にて制御ゲインを設計するものとする。この制御系設計支援装置に入力される各情報(制御仕様を示す情報)を図32(a)〜図32(c)に示す。図32(a)は、各操作時刻における操作変化量上下限である。図32(b)は、各制御時刻における許容目標偏差制約である。図32(c)は、制御応答波形である。これらの各情報が上記の制御系設計支援装置に入力されることで、図33に示す領域Rが出力される。領域Rは、補正目標偏差e*と操作変化量duとが、図32(a)〜図32(c)に示した各情報を満たす領域、すなわち、制御ゲインの許容範囲を表すグラフである。
ここで、実施例4では、図33に示される領域Rを参考に、この領域Rの中心付近を通る値0.527を制御ゲインとして選択したものとする。すなわち、du(t)=0.527×e*(t)となる。
このとき、第四の実施形態に係る制御装置10を用いて、制御周期Tc=0.3、先読み長Tp=1.8として制御対象プラント20を制御した場合の評価関数の計算結果を図34〜図36に示す。なお、上記の数8に示す離散化関数πを用いて、そのパラメータをθ(このθを「離散化パラメータ」とも表す。)とする。また、評価関数Jの重みλはλ=0.5とした。
図34(b)は、図34(a)に示す目標値時系列{r(t)}と、モデルDとを用いた評価関数の計算結果である。一方で、図34(c)は、図34(a)に示す目標値時系列{r(t)}と、モデルEとを用いた評価関数の計算結果である。なお、図34(a)に示す目標値時系列{r(t)}は、そのピークが1.3である。
同様に、図35(b)は、図35(a)に示す目標値時系列{r(t)}と、モデルDとを用いた評価関数の計算結果である。一方で、図35(c)は、図35(a)に示す目標値時系列{r(t)}と、モデルEとを用いた評価関数の計算結果である。なお、図35(a)に示す目標値時系列{r(t)}は、そのピークが1.0である。
同様に、図36(b)は、図36(a)に示す目標値時系列{r(t)}と、モデルDとを用いた評価関数の計算結果である。一方で、図36(c)は、図36(a)に示す目標値時系列{r(t)}と、モデルEとを用いた評価関数の計算結果である。なお、図36(a)に示す目標値時系列{r(t)}は、そのピークが0.5である。
図34〜図36に示される計算結果によれば、評価関数Jduに関してはθが小さい程その値が大きい、すなわち、操作変化量duの2乗積分値が大きく、高頻度にスイッチングする傾向があることがわかる。一方で、評価関数Jeに関してはθが或る値以下では凸状となる傾向があるが、θが或る程度大きいと大きな値となる傾向があることがわかる。
これらの計算結果により、本実施例では、評価関数Jが最適となる離散化パラメータθは、0.2〜0.3であることがわかる。
また、第四の実施形態に係る制御装置10を用いて、制御周期Tc=0.3、先読み長Tp=1.8、離散化パラメータθ=0.2として制御対象プラント20を制御した場合の制御結果を図37〜図39に示す。
図37(a)及び(b)は、目標値時系列{r(t)}のピークが1.3である場合に、モデルDを用いて制御対象プラント20を制御した制御結果である。一方で、図37(c)及び(d)は、目標値時系列{r(t)}のピークが1.3である場合に、モデルEを用いて制御対象プラント20を制御した制御結果である。
同様に、図38(a)及び(b)は、目標値時系列{r(t)}のピークが1.0である場合に、モデルDを用いて制御対象プラント20を制御した制御結果である。一方で、図38(c)及び(d)は、目標値時系列{r(t)}のピークが1.0である場合に、モデルEを用いて制御対象プラント20を制御した制御結果である。
同様に、図39(a)及び(b)は、目標値時系列{r(t)}のピークが0.5である場合に、モデルDを用いて制御対象プラント20を制御した制御結果である。一方で、図39(c)及び(d)は、目標値時系列{r(t)}のピークが0.5である場合に、モデルEを用いて制御対象プラント20を制御した制御結果である。
図37〜図39に示される制御結果によれば、いずれも操作量u(t)が離散値(+1,0,−1)であるものの、制御量y(t)が、ステップ状に変化する目標値r(t)に追従していることがわかる。また、制御対象プラント20のモデルがモデルD(つまり、ノミナルモデル)であっても、モデルE(つまり、変動モデル)であっても、追従可能であることがわかる。
更に、図37〜図39に示される制御結果より、操作量の変化頻度が目標値時系列の形状パターンや、目標値の変化タイミングで異なっていることがわかる。これは、PWM変調を用いた制御にはない、可変の変調周期を持った制御といえる。
また、第四の実施形態に係る制御装置10を用いて、制御周期Tc=0.3、先読み長Tp=1.8、離散化パラメータθ=0.2、目標値時系列{r(t)}のピークを1.0として、制御対象プラント20を制御した場合の制御結果を図40に示す。図40(a)及び(b)と図38(a)及び(b)とを比較すると共に、図40(c)及び(d)と図38(c)及び(d)とを比較すると、θを0.2から0.5に変更した場合、評価関数Jduは小さくなるものの、評価関数Jeが増大することがわかる。
このため、第四の実施形態に係る制御装置10は、離散化パラメータθを評価関数Jに基づき最適化することで、目標値追従性と操作量変化頻度とのバランスを最適化することができる。
以下の表1に、本実施例とPWM変調方式とを比較した比較結果を示す。
この表1に示されるように、変換方式として、本実施例では離散化関数を用いるのに対して、PWM変調方式では動的に変化する搬送波(三画波)との比較を行う。このため、PWM変調方式では常に搬送波を生成する必要がある。
また、変調周期は、本実施例では可変であるのに対して、PWMは固定である。また、制御精度と操作変化頻度の調整は、本実施例では離散化パラメータを評価関数で自動最適化するのに対して、PWM変調方式では搬送波周波数次第である。
更に、変調周期内での目標値変化は、本実施例では補正目標偏差の計算に反映されるため対応可能であるのに対して、PWM変調方式では次の変調開始時刻までデューティー比が変化しないため対応不可である。
このため、第四の実施形態に係る制御装置10による制御は、可変な変調周期を持ち、目標値の変化に迅速に対応する特徴を持ちつつ、制御精度と操作変化頻度の調整を自動最適化できる点で、PWM変調方式よりも優れているといえる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。