(57)【要約】【課題】実際に即したより適切な制御ができるようにする。【解決手段】目標値演算部１０５は、変数制約設定部１４１，傾き制約設定部１４２，求解演算部１４３を備える。変数制約設定部１４１は、操作変数や制御変数に対する制約を設定する。傾き制約設定部１４２は、積分系を含む制御変数の傾きに対する制約を設定する。積分系を含む制御変数が上下限を逸脱する可能性に応じ、制約設定が変化する。設定・演算された各種制約、制御対象のモデル、所与の最適化評価関数は、求解演算部１４３に渡され、全ての変数が制約内にあり、かつ評価関数を最小にするような最適目標値が求められる。【選択図】  図３
2015225635.tif 000002
【特許請求の範囲】
【請求項１】
制御対象が制御に用いた操作変数および前記制御対象が出力する制御変数を含む前記制御対象のデータを収集するデータ収集部と、
前記制御対象の数学モデルを記憶するモデル記憶部と、
前記データ収集部に収集されたデータのなかの最適化の対象となる最適化対象変数のうち少なくとも積分要素の出力を含まない制御変数に対して所定の時間後の値を予測する将来予測部と、
積分要素の出力を含む制御変数に対して所定の時間後の単位時間当たりの変化量を予測する積分系傾き予測部と、
最適化対象変数の所定の時間後の値に対して制約を設定する変数制約設定部と、
前記積分要素の出力を含む制御変数の所定の時間後の変化量に対して制約を設定する傾き制約設定部と、
前記変数制約設定部および前記傾き制約設定部で設定された制約を満たしかつ与えられている最適化の評価関数を最適化する前記最適化対象変数の最適解を求める求解演算部と
を備え、
前記傾き制約設定部は、傾き制約が設定される制御変数の収集値または予測値によって傾き制約を変化させ、前記制御変数が変数制約設定部で設定された制約を外れる可能性が低い場合に、前記可能性が高い場合の傾き制約よりも緩和された傾き制約を設定することを特徴とする最適化装置。
【請求項２】
請求項１記載の最適化装置において、
前記傾き制約設定部は、制御変数の傾きの上下限を制約として設定することを特徴とする最適化装置。
【請求項３】
請求項２記載の最適化装置において、
前記傾き制約設定部は、制御変数の収集値または予測値からその上下限を引いた差に応じて前記制御変数の傾きの上下限を設定し、前記差の増加に対して前記傾きの上下限が非増加となるように設定することを特徴とする最適化装置。
【請求項４】
請求項２または３記載の最適化装置において、
前記傾き制約設定部は、制御変数の収集値または予測値とその下限が一致した場合は、傾きの下限を０にし、上限が一致した場合は傾きの上限を０にすることを特徴とする最適化装置。
【請求項５】
請求項１記載の最適化装置において、
前記傾き制約設定部は、制御変数の傾きに対するペナルティ関数を制約として設定することを特徴とする最適化装置。
【請求項６】
請求項５記載の最適化装置において、
前記傾き制約設定部は、制御変数の収集値または予測値とその上下限との差に応じてペナルティ関数を設定し、前記収集値または予測値が前記上下限内にある場合は、同じ傾きの大きさに対し、前記差が小さいほどペナルティ関数の値を大きくすることを特徴とする最適化装置。
【請求項７】
請求項１〜６のいずれか１項に記載の最適化装置において、
前記傾き制約設定部は、動作を調整するパラメータが設定されていることを特徴とする最適化装置。
【請求項８】
制御対象が制御に用いた操作変数および前記制御対象が出力する制御変数を含む前記制御対象のデータを収集するデータ収集ステップと、
前記制御対象の数学モデルを記憶するモデル記憶ステップと、
前記データ収集ステップで収集されたデータのなかの最適化の対象となる最適化対象変数のうち少なくとも積分要素の出力を含まない制御変数に対して所定の時間後の値を予測する将来予測ステップと、
積分要素の出力を含む制御変数に対して所定の時間後の単位時間当たりの変化量を予測する積分系傾き予測ステップと、
最適化対象変数の所定の時間後の値に対して制約を設定する変数制約設定ステップと、
前記積分要素の出力を含む制御変数の所定の時間後の変化量に対して制約を設定する傾き制約設定ステップと、
前記変数制約設定ステップおよび前記傾き制約設定ステップで設定された制約を満たしかつ与えられている最適化の評価関数を最適化する前記最適化対象変数の最適解を求める求解演算ステップと
を備え、
前記傾き制約設定ステップでは、傾き制約が設定される制御変数の収集値または予測値によって傾き制約を変化させ、前記制御変数が変数制約設定部で設定された制約を外れる可能性が低い場合に、前記可能性が高い場合の傾き制約よりも緩和された傾き制約を設定することを特徴とする最適化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象となる石油精製プロセス，石油化学プロセスなどの工業プロセスを最適化する最適化装置および方法に関する。
【背景技術】
【０００２】
石油精製プロセスや石油化学プロセスなどの工業プロセスにおいて、多入力多出力の動的なシステムの制御方法、すなわち、多変数制御手法の１つとして、モデル予測制御が広く知られている。
【０００３】
モデル予測制御は元々、多入力・多出力システムとなるようなプロセスにおいて、操作変数（プロセスの入力にあたる）と制御変数（プロセスの出力にあたる）に課せられた上下限などの制約を守りつつ、これらの値を目標値へと整定（漸近）させる制御手法として発展してきた。これらに加えて現在では、プロセスの定常状態における目標値を線形計画法（Linear Programming、以下ＬＰと略記）や二次計画法（Quadratic Programming、以下ＱＰと略す）といった最適化手法により、モデル予測制御の目標値を最適化することも行われている（特許文献１、非特許文献１〜４参照）。
【０００４】
このようなモデル予測制御の例について以下に説明する。多変数モデル予測制御を行うシステムは、図１５に示すように、定常状態最適化部（最適化装置）４０１と多変数モデル予測制御の演算を実行するモデル予測制御部４０２とを備える。定常状態最適化部４０１は、ＬＰやＱＰなどの最適化手法により、最適化評価関数，上下限制約値，操作変数，制御変数などを入力して最適目標値を算出する。
【０００５】
モデル予測制御部４０２は、最適目標値，制御変数，および上下限値などを入力して操作変数を算出し、算出した操作変数を制御対象のプロセス４０３に対して出力する。モデル予測制御部４０２は、プロセスの操作変数や制御変数が最適目標値に収束するよう、上下限制約を考慮しつつ制御演算（操作変数の算出）を行う。制御対象であるプロセス４０３では、モデル予測制御部４０２からの操作変数が入力され、また、制御変数を出力する。モデル予測制御の具体的な計算については、非特許文献４などに詳述されているので、ここでは説明を省略する。
【０００６】
次に、定常状態最適化部４０１の動作について説明する。図１６に示すように、データ収集部４０４が、制御対象のプロセス４０３から制御変数、操作変数、外乱変数など、プロセス４０３の将来の状態を予測するために必要なデータを収集する。このデータは将来予測部４０５に送られる。将来予測部４０５では、目標値演算のベースとなる、制御変数等の将来予測値を求める。一般には、操作変数や外乱変数など、プロセス４０３への入力となる値が変わらないと仮定した上で、制御変数が収束した時の値を演算によって求める。言い換えれば、プロセス４０３に新たな操作を行わなかった場合に到達するであろう定常状態における制御変数の値を予測する。
【０００７】
モデル記憶部４０６は、プロセス４０３の数学モデルを記憶する。数学モデルの例としては、伝達関数モデル、状態空間表現モデルなどがある。目標値演算部４０７は、プロセス４０３の変数の将来予測値（通常は定常状態における予測値）、プロセス４０３の数学モデル、変数の上下限制約を基に、ＬＰやＱＰによって、与えられた最適化評価関数を最適にする目標値を計算する。この値が最適な定常目標値として、モデル予測制御部に渡される。
【０００８】
次に、目標値演算部４０７が、ＬＰやＱＰによって目標値を決める手順について、より詳しく説明する。以下では、ｕ1，ｕ2，…，ｕmは操作変数を、ｙ1，ｙ2，…，ｙnは制御変数の値を表すものとする。操作変数の数はｍ、制御変数の数はｎである。ｋは現在の制御周期を表すインデックスとする。制御変数や操作変数をまとめてベクトルとして扱う時は、式（１）のように表記する。更に、制御変数と操作変数のベクトルを１つにして扱う時は、式（２）のようにｘで表記する。
【０００９】
【数１】
2015225635.tif 000003
【００１０】
以下、将来予測部４０５が算出した定常状態での変数値を基点とし、基点からの差分に対して最適化を行う方法を説明する（以下、差分型最適化と呼ぶ）。例えば特許文献１では、モデル予測制御を対象としたシステムの定常状態の目標値計算方法について開示されているが、特許文献１では、差分型の最適化演算が行われている。また、非特許文献２では、最適目標値をＬＰによって決定する方法について議論されているが、非特許文献２でも差分型の最適化が使われている。
【００１１】
ここでも、差分型の最適化を主に扱う。なお、本発明自体は差分型の最適化に限るものではなく、差分型でない最適化にも適用可能である。
【００１２】
差分型最適化を式で表した１例を示す。操作変数は、１制御周期前の値ｕ（ｋ−１）、制御変数は、その操作変数の値が継続したと仮定して将来予測部が計算した収束値ｙ（∞）を基点とし、基点からの差分Δｕ、Δｙを使って定式化する。ｕ、ｙ、Δｕ、Δｙ、ｕ（ｋ−１）、ｙ（∞）の関係は、以下の式（３）のようになる。
【００１３】
【数２】
2015225635.tif 000004
【００１４】
以下、図１７に従って説明する。変数定常予測値は、将来予測部が算出した定常状態での制御対象の変数の値であり、上の式ではｕ（ｋ−１）とｙ（∞）が対応している。上下限制約は、変数の定常目標値の上下限値である。ここでは、変数値に下線をつけたものが下限を、上線をつけたものが上限を表すものとする。例えば、ｕi（ｉ番目の操作変数）が満たすべき式は、次式のようになる。
【００１５】
【数３】
2015225635.tif 000005
【００１６】
定常変数制約設定部４７１では、操作変数と制御変数が守るべき制約を決める。一般的には、各変数の下限と上限を必ず守るべき条件として制約を設定する。差分型最適化を行っている場合は、式（５）のように基点からの差分に対して制約式が設定され、求解演算部４７２に渡される。
【００１７】
【数４】
2015225635.tif 000006
【００１８】
最適化評価関数は、ＬＰやＱＰの評価関数である。一般には最小化すべき関数として与える（最適化の目的が最大化である場合は、符号を反転した評価関数を与えれば最小化問題となる）。差分型最適化の場合には、以下の式（６）に示すような評価関数Ｊ（Δｘ）が与えられる。
【００１９】
【数５】
2015225635.tif 000007
【００２０】
ここで、Ｈが非ゼロであればＱＰ、ゼロであればＬＰである。なお、評価関数がΔｘではなくｘの式として与えられた場合は、式（３）を用いることで式（６）の形に変形できる。
【００２１】
制御対象モデルは、操作変数と制御変数の関係式を得るためのモデルを与える。差分型の最適化であれば、制御変数の変化量Δｙが操作変数の変化量Δｕと比例関係にあるとして、次の式（７）のように表されるのが一般的である。
【００２２】
【数６】
2015225635.tif 000008
【００２３】
式（７）のＧ0が制御対象のモデルとなる。更に言えば、ゲイン行列でもある（ｎ行ｍ列となる）。例えば制御対象の伝達関数モデルがＧ（ｓ）であれば、ゲイン行列はＧ0＝Ｇ（０）として計算できる。
【００２４】
求解演算部４７２は、式（５）と式（７）の条件を満たす範囲で式（６）の評価関数を最小化するようなΔｘを求める。得られた最適解は基点（ｕ（ｋ−１）、ｙ（∞））からの差分なので、その値を基点に加えることで最終的な最適定常目標値が得られる。なお、この最適化問題を解く手法自体は公知技術である。
【００２５】
なお、目標値演算部４０７の具体的な計算方法は上記に限られるものではなく、他の計算手順も可能である。例えば上記では、上下限値内に制限することによって操作変数や制御変数の制約を規定したが、これ以外の方法もある。例えば、制御変数が上下限値から逸脱した量に応じたペナルティを、前述した評価関数に追加する方法もある。この方法の場合は、制御変数は上下限値から逸脱することを許されるが、逸脱する量が大きくなると評価関数が大きくなるため、逸脱する量は抑制されることになる。
【００２６】
また、ここでは、制約といった場合は、上下限値内や設定値から外れることを一切許容しないもの、および上下限値内や設定値から外れることは許容するがペナルティによって上下限値や設定値からの逸脱を抑制するようなもの、の双方を包含するものとする。また、上下限値内や設定値から外れることを許容しないタイプの制約をハードな制約、外れることを許容するタイプの制約をソフトな制約と呼ぶ。ソフトな制約の場合、元々の上下限値や設定値から外れることが許容されるため、それらを満たさない解が得られることがある。ここでは、上述したような場合も含めて「制約を満たす」と表現するが、実際に満たされるのは元々の上下限値や設定値から広げられた制約であることに注意する。
【００２７】
ところで、これまで説明してきた方法には１つの問題がある。プロセスが積分要素を含む場合を扱えないという問題である。
【００２８】
積分要素とは、出力が入力の時間積分に比例するような要素である。伝達関数で表すとＫ／ｓである。積分要素を持った動的システム（以下、積分系と呼ぶ）の例として、タンクを用いて説明する。タンク内の流体の体積をｙ1、流入流量がｕ1、流出流量がｕ2であるとすると、これらの関係は、以下の式（８）で表される。流入流量、流出流量をシステムへの入力、体積を出力と考えれば、このシステムは積分系となっている。
【００２９】
【数７】
2015225635.tif 000009
【００３０】
積分要素は、入力を０にしない限り、出力が一定にならない。そのため、積分系の出力は一定値にならず、変化し続けることがある。例えば、タンクの例で言えば、流入流量と流出流量が釣り合わない場合、タンク内の流体体積は変化し続けることになる。流入流量が流出流量より多い状態が継続すれば、タンク内の流体は溢れ、流出流量の方が多ければ、タンクはいつかは空になる。もちろん、通常はそうならないよう制御する必要がある。
【００３１】
実際のプロセスにおいても、積分要素を持ったものがあり、最適化の対象となりうる。しかし、このようなプロセスに前述した手法はそのままでは適用できない。なぜならば、プロセスが積分要素を含む場合、Ｇ0が有限にならないからである。これは、積分要素の伝達関数がＫ／ｓであり、ｓ＝０で無限大になることからきている。このため、積分要素を含むプロセスの最適化手法は通常と異なったものとなる。例えば、モデル予測制御の産業応用について記述された非特許文献３の３．３．４項（７５３頁）では、積分要素を持つプロセスの定常状態最適化手法として、２つの方法が示されている。
【００３２】
１つは、積分要素の出力を含む制御変数（以下、積分系を含む制御変数と表記）の傾きを０にするという条件を追加する方法である。構成を図１８に示す。制御対象に積分要素を含まない場合の構成との違いは、積分系傾き予測部４０８が追加されることである。ここでは、プロセスへの入力が変わらないと仮定して、積分系を含む制御変数の傾きが収束する値を予測する。この値と制御変数の傾きの変化量の和が必ず０になるように、目標値演算部４０７が目標値を決める。
【００３３】
以下に１例を示す。制御変数をｙ1、ｙ2で表し、操作変数をｕ1、ｕ2で表すとして、ｕ1、ｕ2からｙ1までの伝達関数には積分要素は無く、ｕ1、ｕ2からｙ2までの伝達関数は積分要素を含むとする。また、ｙ2の傾きをｙ2(SL)で表すものとする。以上の仮定の上で、目標値を求める最適化演算を定式化した式（９）を以下に示す。
【００３４】
【数８】
2015225635.tif 000010
【００３５】
ここまでの式は、ｙ2が対象から外されていることを除けば式（５）〜式（７）と本質的な違いは無い。これらに加えて、次の新しい式（１０）が追加される。
【００３６】
【数９】
2015225635.tif 000011
【００３７】
ここで、ｙ2(SL)（∞）は、積分系傾き予測部で予測された値である。この値に、ｕの変化量Δｕによって生じるｙ2の傾きの変化量Δｙ2(SL)を足した項が式（１０）１行目の左辺であり、これを０にすることが満たすべき条件として追加されている。なお、Ｇj,i（ｓ）は、操作変数ｉから制御変数ｊまでの伝達関数を表す。
【００３８】
図１９を用いて、改めて目標値演算部４０７の動作を説明する。積分系が無い場合と最大の相違点は、傾きゲイン行列演算部４７４、および傾き上下限設定部４７５である。なお、目標値演算部４０７は、定常ゲイン行列演算部４７３も備える。傾き上下限設定部４７５は、式（１０）の１行目と２行目に対応し、積分系を含む制御変数の傾きに対する上下限を設定する。一般的には式（１０）の右辺のように、上限＝下限＝０とする。傾きゲイン行列演算部４７４は、Δｕとｙ2の傾きの変化量Δｙ2(SL)を関係づける行列、すなわち、式（１０）の３行目の行列Ｓを算出する。求解演算部４７２では、式（９）を基に、評価関数Ｊ（Δｘ）を最小化するΔｘを求める。このΔｘから最適定常目標値を得る手順は、従来技術と基本的には同じである。このようにすることで、積分要素を含むプロセスであっても最適化が可能となる。
【００３９】
非特許文献３でもう１つ示されている方法は、積分系を含む制御変数の傾きの大きさ（例えば傾きの２乗）に比例する項を、最適化の評価関数にペナルティ関数として加えることである。全体の構成は前述した方法と同じであるが、図２０に示すように、目標値演算部４０７の構成が一部異なる。
【００４０】
傾きペナルティ設定部４７５ａは、積分系を含む制御変数の傾きに対するペナルティ関数を設定する。ペナルティ関数をＰ（Δｘ）として、式（１１）で表すものとなる。
【００４１】
【数１０】
2015225635.tif 000012
【００４２】
ｙ2(SL)（∞）、Δｙ2(SL)、Δｕ、Ｓの意味は前述の例と同じである。ｐはペナルティの大きさを決める定数である。この式（１１）は、ｙ2の傾きの２乗に比例したペナルティを課すことを意味している。
【００４３】
また、求解演算部４７２は、評価関数修正部４７３ａを備え、評価関数修正部４７３ａは、与えられた評価関数Ｊ（Δｘ）に傾きペナルティ設定部が設定したペナルティ関数Ｐ（Δｘ）を加算して、新たな評価関数を得る。この評価関数が、Ｊ（Δｘ）の代わりに求解演算部４７２で使われる。修正後の評価関数をＪmodified（Δｘ）で表すと、「Ｊmodified（Δｘ）＝Ｊ（Δｘ）＋Ｐ（Δｘ）・・・（１２）」のような式となる。
【００４４】
求解演算部４７２は、Ｊmodified（Δｘ）を最小とするΔｘを求める。このため、ペナルティの項に係る定数ｐを十分大きな値に設定すれば、本来の評価関数を最小化するよりも、制御変数の傾きを小さくする方が優先される。結果として、制御変数の傾きを十分小さな値にしつつ、与えられた最適化評価関数をできるだけ小さくするような目標値が得られる。
【００４５】
これらの方法を用いれば、積分系プロセスであっても、定常状態における目標値を最適化することが可能になる。
【先行技術文献】
【特許文献】
【００４６】
【特許文献１】特許第４６１４５３６号公報
【非特許文献】
【００４７】
【非特許文献１】大嶋正裕、「モデル予測制御―理論の誕生・展開・発展―」、計測と制御、第３９巻、第５号、３２１−３２５頁、２０００年。
【非特許文献２】石川昭夫、大嶋正裕、谷垣昌敬、村上周太、「定常最適化機能を持つモデル予測制御での悪条件の除去法」、化学工学論文集、第２４巻、第１号、２４−２９頁、１９９８年。
【非特許文献３】S. Joe Qin, Thomas A. Badgwell, "A survey of industrial model predictive control technology", Control Engineering Practice ,vol.11, pp.733-764, 2003.
【非特許文献４】Jan M. Maciejowski （足立修一・管野政明訳）、「モデル予測制御 ― 制約のものとでの最適制御 ―」、 東京電機大学出版局、２００５年（原著２００２年）。
【発明の概要】
【発明が解決しようとする課題】
【００４８】
しかしながら、従来技術で説明した方法では、実際にはより良い最適目標値が存在する場合でも、そのような最適解が得られないという問題点があった。例として、次の式（１３）に示すような、操作変数と制御変数がそれぞれ１つで、積分要素を持つプロセスを考える。
【００４９】
【数１１】
2015225635.tif 000013
【００５０】
式（１３）において、ｕ1はプロセスの操作変数（入力）、ｙ1は制御変数（出力）、ｄはある定数である。ここで、最適化の目的が、操作変数ｕ1の最小化だったとする。もし、このプロセスが、厳密に式（１３）に従った振る舞いをするのであれば、従来技術での解はｕ1＝ｄか、それに近い値となる。なぜならば、ｕ1がｄ以外の値だと、ｙ1に傾きが発生するためであり、従来技術はそうならないように目標値を決めるからである。
しかし、実際のプロセスは上記の仮定と異なり、式（１３）に従った振る舞いをするものばかりではない。例えば、以下の式（１４）のように、ｄが制御変数ｙ1に依存するような、非線形特性を持つプロセスもある。
【００５１】
【数１２】
2015225635.tif 000014
【００５２】
ここで、図２１に示すように、対象とするプロセスが、ｙ1が減少するとｄの値も単調減少するような特性の場合を仮定する。例えば、ｙ1が１００の時にはｄは１０だが、ｙ1が８０になるとｄは８になるといった具合に、ｙ1とｄが正の相関を持つようなプロセスである。更に、ｕ1とｙ1の下限は、それぞれ８と８０、現在値は１０と１００とする。この場合、従来技術では、ｙ1の傾きの現在の推定値を基に最適な目標値を決めるため、ｕ1の目標値は１０となる。
【００５３】
しかしながら、実際には、ｕ1を１０よりも小さくしてｙ1がより小さくなるように制御すれば、すなわち、図２１に示すように、太線に沿って少しずつｕ1とｙ1を小さくしていけば、ｙ1の傾きを０にするｕ1の値も小さくなるため、ｕ1の目標値を更に最適化できる。このような制御を継続すれば、最終的には、ｕ1の目標値は８まで小さくすることができる。以上をまとめると、ｄがｙ1に依存するような場合、従来技術では目標値を最適化できない、言い換えれば更に最適化する余地が残るということになる。このように、従来では、制御対象の実際の特性に即したより適切な制御ができないという問題があった。
【００５４】
本発明は、以上のような問題点を解消するためになされたものであり、制御対象の実際の特性即したより適切な制御ができるようにすることを目的とする。
【課題を解決するための手段】
【００５５】
本発明に係る最適化装置は、制御対象が制御に用いた操作変数および制御対象が出力する制御変数を含む制御対象のデータを収集するデータ収集部と、制御対象の数学モデルを記憶するモデル記憶部と、データ収集部に収集されたデータのなかの最適化の対象となる最適化対象変数のうち少なくとも積分要素の出力を含まない制御変数に対して所定の時間後の値を予測する将来予測部と、積分要素の出力を含む制御変数に対して所定の時間後の単位時間当たりの変化量を予測する積分系傾き予測部と、最適化対象変数の所定の時間後の値に対して制約を設定する変数制約設定部と、積分要素の出力を含む制御変数の所定の時間後の変化量に対して制約を設定する傾き制約設定部と、変数制約設定部および傾き制約設定部で設定された制約を満たしかつ与えられている最適化の評価関数を最適化する最適化対象変数の最適解を求める求解演算部とを備え、傾き制約設定部は、傾き制約が設定される制御変数の収集値または予測値によって傾き制約を変化させ、制御変数が変数制約設定部で設定された制約を外れる可能性が低い場合に、可能性が高い場合の傾き制約よりも緩和された傾き制約を設定する。
【００５６】
上記最適化装置において、傾き制約設定部は、制御変数の傾きの上下限を制約として設定すればよい。また、傾き制約設定部は、制御変数の収集値または予測値からその上下限を引いた差に応じて制御変数の傾きの上下限を設定し、差の増加に対して傾きの上下限が非増加となるように設定するようにしてもよい。また、傾き制約設定部は、制御変数の収集値または予測値とその下限が一致した場合は、傾きの下限を０にし、上限が一致した場合は傾きの上限を０にしてもよい。
【００５７】
上記最適化装置において、傾き制約設定部は、制御変数の傾きに対するペナルティ関数を制約として設定してもよい。また、傾き制約設定部は、制御変数の収集値または予測値とその上下限との差に応じてペナルティ関数を設定し、収集値または予測値が上下限内にある場合は、同じ傾きの大きさに対し、差が小さいほどペナルティ関数の値を大きくしてもよい。
【００５８】
上記最適化装置において、傾き制約設定部は、動作を調整するパラメータが設定されているようにしてもよい。
【００５９】
本発明に係る最適化方法は、制御対象が制御に用いた操作変数および制御対象が出力する制御変数を含む制御対象のデータを収集するデータ収集ステップと、制御対象の数学モデルを記憶するモデル記憶ステップと、データ収集ステップで収集されたデータのなかの最適化の対象となる最適化対象変数のうち少なくとも積分要素の出力を含まない制御変数に対して所定の時間後の値を予測する将来予測ステップと、積分要素の出力を含む制御変数に対して所定の時間後の単位時間当たりの変化量を予測する積分系傾き予測ステップと、最適化対象変数の所定の時間後の値に対して制約を設定する変数制約設定ステップと、積分要素の出力を含む制御変数の所定の時間後の変化量に対して制約を設定する傾き制約設定ステップと、変数制約設定ステップおよび傾き制約設定ステップで設定された制約を満たしかつ与えられている最適化の評価関数を最適化する最適化対象変数の最適解を求める求解演算ステップとを備え、傾き制約設定ステップでは、傾き制約が設定される制御変数の収集値または予測値によって傾き制約を変化させ、制御変数が変数制約設定部で設定された制約を外れる可能性が低い場合に、可能性が高い場合の傾き制約よりも緩和された傾き制約を設定する。
【発明の効果】
【００６０】
以上説明したことにより、本発明によれば、制御対象の実際の特性より適切な制御ができるようになるという優れた効果が得られる。
【図面の簡単な説明】
【００６１】
【図１】図１は、本発明の原理を説明するための説明図である。
【図２】図２は、本発明の実施の形態１における最適化装置の構成を示す構成図である。
【図３】図３は、本発明の実施の形態１における最適化装置の一部構成を示す構成図である。
【図４】図４は、積分系を含む制御変数の現在値と上限、または下限までの差に応じた傾きの上下限の設定について説明する説明図である。
【図５】図５は、傾きの上下限がある一定の値以上にならないように制限する設定について説明する説明図である。
【図６】図６は、傾きの上下限を所定の状態に２段階で切り替えた設定について説明する説明図である。
【図７】図７は、積分系を含む制御変数の傾きに対するペナルティの傾きに掛かる係数ｐについて説明する説明図である。
【図８】図８は、本発明の実施の形態１における最適化装置の動作（最適化方法）を説明するフローチャートである。
【図９】図９は、本発明の実施の形態２における最適化装置の一部構成を示す構成図である。
【図１０】図１０は、本発明の実施の形態２における最適化装置の一部動作を説明するための説明図である。
【図１１】図１１は、本発明の実施の形態２における最適化装置の適用例を示す構成図である。
【図１２】図１２は、本発明の実施の形態３における最適化装置の一部構成を示す構成図である。
【図１３】図１３は、ペナルティ関数の調整について説明する説明図である。
【図１４】図１４は、定常状態に至るまでの過渡状態を複数の区間に分けた状態を示す説明図である。
【図１５】図１５は、多変数モデル予測制御を行うシステムの構成を示す構成図である。
【図１６】図１６は、定常状態最適化部の構成を示す構成図である。
【図１７】図１７は、定常状態での変数値を基点として、この基点からの差分に対して最適化を行う方法を説明するための説明図である。
【図１８】図１８は、積分系を含む制御変数の傾きを０にするという条件を追加した定常状態最適化部の構成を示す構成図である。
【図１９】図１９は、目標値演算部４０７の構成を示す構成図である。
【図２０】図２０は、目標値演算部４０７の他の構成を示す構成図である。
【図２１】図２１は、対象とするプロセスの特性の１例を示す説明図である。
【発明を実施するための形態】
【００６２】
以下、本発明の実施の形態について図を参照して説明する。
【００６３】
はじめに、本発明の原理等について説明する。プロセスの定常状態目標値の最適化の元々の目的は、制御変数や操作変数を指定された上下限から逸脱しないようにしつつ、最適化の評価関数を小さくすることである。従来技術で用いられている、積分系を含む制御変数の傾きを０もしくは十分小さい値に保つという手段は、前述の目的からすれば十分条件ではあるが、必要条件ではない。また、前述したような例では、積分系を含む制御変数の傾きを０にするという条件は必要以上に厳し過ぎるとも考えられる。
【００６４】
もし、図１に示すように、積分系を含む制御変数の現在値、もしくは将来予測値が指定された上下限から十分に離れているのであれば、傾きを０にすることは必須ではない。短時間で上下限に到達するような大きな傾きでなければ、指定された上下限から制御変数を逸脱させないという目的は達成できる。
【００６５】
一方、積分系を含む制御変数の現在値や将来予測値が上限付近にある場合は、正の傾き（制御変数を増加させる方向）を持つことは、上限からの逸脱の恐れが高くなることを意味するので許容し難い。しかし、下限から十分に離れているのであれば、負の傾き（制御変数を現象させる方向）については許容できる。現在値や将来予測値が下限付近にある場合についても同様なことが言え、負の傾きは許容し難いが、正の傾きは許容できる場合があると考えられる。
【００６６】
以上のことを考えると、傾きに対する制約は、常に必要というわけではない。積分系を含む制御変数が上下限を逸脱する可能性が高い時は傾きに対する制約を厳しく、これ以外では緩くしても、制御変数を上下限値内に保ちながらプロセスの定常状態目標値を最適化するという目的は達成できる。
【００６７】
本発明では、積分系を含む制御変数に対する傾きを常に抑制するのではなく、上下限値から外れる恐れが高くなった場合に、少なくとも上下限値を外れる方向への傾きが抑制されるようにして定常状態目標値を決める。一方で、そうでない場合は、恐れがある場合よりも傾きに対する制約を緩和し、傾きの制約が原因となって最適化が進まない状況を回避する。こうすることで、従来技術の問題点で指摘したようなケースであっても、積分系を持つ制御変数や、その制御変数と関係を持つ操作変数の目標値をより望ましい値へ近づけることができる可能性が高くなる。
【００６８】
［実施の形態１］
はじめに、本発明の実施の形態１について、図２，図３を用いて説明する。図２，図３は、本発明の実施の形態１における最適化装置の構成を示す構成図である。この最適化装置は、データ収集部１０１，将来予測部１０２，積分系傾き予測部１０３，モデル記憶部１０４，目標値演算部１０５を備える。
【００６９】
データ収集部１０１は、制御対象であるプロセス１０６から制御変数，操作変数，外乱変数などの、プロセス１０６の将来の応答を予測するために必要なデータを収集する。これらのデータは、将来予測部１０２および積分系傾き予測部１０３に送られる。
【００７０】
モデル記憶部１０４は、プロセス１０６の挙動を予測し、また、操作変数の変化量と制御変数の変化量の関係を求めるために必要な数学モデルを記憶する。この数学モデルとしては、伝達関数モデル，状態空間表現モデル，ステップ応答モデルなどがある。当然ながら、これらのモデルに限るものではなく、他の数学モデルも利用可能である。
【００７１】
目標値演算部１０５は、プロセス１０６の変数の将来予測値、プロセス１０６の数学モデル、変数の上下限制約を基に、ＬＰやＱＰによって、与えられた最適化評価関数を最適にする目標値を計算する。
【００７２】
将来予測部１０２は、目標値演算のベースとなる、最適化対象変数の将来予測値を求める。最適化対象の制御変数、すなわち、評価関数に含まれるか制約が設定されている制御変数であって、かつ、積分要素の出力を含まない制御変数は、将来予測値が必要となる。一方、積分要素の出力を含む制御変数については、将来予測値は必須ではない。ただし、上記制御変数の将来予測値が無い場合、最適化された時の値を計算することができないので、評価関数に含めることはできない。操作変数については、現在の値が継続すると仮定すれば、将来予測値を求める必要は無い。以上をまとめると、将来予測部１０２は、少なくとも最適化対象の制御変数のうち積分要素の出力を含まない変数の予測を行うことが必須の要件となる。
【００７３】
次に、積分要素の出力を含まない制御変数の予測を行う手順について述べる。将来予測部１０２は、プロセス１０６への入力である操作変数や外乱変数の値が現在のまま継続すると仮定して、プロセス１０６の予め定めた所定の時間後における制御変数の値を予測する。この所定の時間は、予測対象となる制御変数の値がほぼ一定に収束するのに十分な時間を充てることが好ましい。この時間は、実際に予測値を計算してみることでもわかり、また、その制御変数を出力とする数学モデルの特性（例えば，モデルのステップ応答が最終値±２％の範囲内に収れんするまでの時間）から決めることもできる。なお、上記所定の時間は制御変数ごとに異なっていてもよいく、また、全体で同じ時間を適用しても良い。ただし、後者の場合については、予測対象となる制御変数のうち、最も収束が遅いものの時間をあてはめることが望ましい。
【００７４】
制御変数の将来応答を、制御対象の数学モデルと過去の制御対象への入力時系列から求める方法については、非特許文献１などの制御やモデル予測制御の文献に記述されている。これを、将来応答がほぼ一定になるまでの時間か、予め数学モデルの特性などから決めた時間まで計算すれば、制御変数の将来予測値となる。もしくは，数学モデルと過去の制御対象への入力時系列から、制御変数が収束する値を求めることができるのであれば、求めた値を将来予測値としても良い。これは、所定の時間を無限にすることに相当する。
【００７５】
積分要素の出力を含む制御変数の将来予測値が必要な場合についても、同様にして計算することが可能である。ただし、積分要素の出力は、その単位時間あたりの変化量、すなわち傾きを０にしない限り変化し続けるので、制御変数の応答がある値に収束するまで計算し、また、モデルの特性から所定の時間を決定することができない。よって、前述した所定の時間は、設計者が予め決定するか、調整パラメータとして外部から与える必要がある。なお、この場合の所定の時間は少なくとも、操作変数や外乱変数の値を変えてから、制御変数の単位時間あたりの変化量が、ほぼ一定値へと収束するまでに必要な時間よりも長くすることが好ましい。また、望ましくは、積分要素の出力を含まない制御変数における所定の時間と同程度に設定するのが良い。
【００７６】
なお、積分要素の出力を含む制御変数を求める場合で、ある操作変数や外乱変数からその制御変数までの伝達特性には積分要素が含まれ、別の変数からは含まれないような場合、別言すれば、その制御変数を出力とする数学モデルにおいて、積分要素の有無が入力となる操作変数や外乱変数に依存するため混在しているような場合がある。この場合については、積分要素を含まない数学モデルを使って応答を計算する場合は、応答がほぼ一定値に収束するまで計算を行い、積分要素を含む数学モデルを使って応答計算する場合は、応答の単位時間あたり変化量がほぼ一定に収束するまで計算するなどのように、積分要素の有無によって計算方法を変えることもできる。もちろん、積分要素の有無に関係なく、予め決めた所定の時間までの将来応答を求め、その値を以て将来予測値とするのでもよい。
【００７７】
将来予測値を計算する際に利用可能な数学モデルとしては、インパルス応答列モデル、ステップ応答列モデル、伝達関数、ＡＲＸ（Auto Regressive eXogeneous）モデル、状態空間表現モデルなどがある。もちろん、これらに限定するものではなく、操作変数や外乱変数の時系列データから将来の制御変数の値を予測できるようなものであれば、あらゆるモデルが利用可能である。
【００７８】
積分系傾き予測部１０３は、積分要素の出力を含む制御変数について、現在より所定の時間が経過した後の単位時間あたり変化量、すなわち、傾きを予測する。予測対象が値そのものではなく傾きであるという点を除けば、将来予測部１０２の演算と同様である。この所定の時間は、傾きがほぼ一定値へと収束するまでに必要な時間と同程度にするか、より長くすることが好ましい。また、この所定の時間は、制御変数ごとに異なっていても構わないし、将来予測部１０２で使われる所定の時間と違っていても良い。
【００７９】
制御対象への入力となる操作変数や外乱変数の時系列から、出力となる制御変数の傾きを求めるためには、入力から出力までの数学モデルから積分要素を取り除いたモデルを使えばよい。例えば伝達関数モデルであれば、積分要素は伝達関数では１／ｓで表されるので、入力から出力までの伝達関数にｓを掛けて積分要素を取り除き、それを分子と分母とで通分した伝達関数を求めれば、それが入力から出力の傾きまでのモデルとなる。このモデルを用いれば、制御変数の傾きを計算できる。
【００８０】
この他、将来予測部１０２と同様な方法で、制御変数の所定の時間が経過するまでの将来応答を一旦求め、その単位時間変化量を求めることでも、制御変数の傾きの予測値を得ることができる。
【００８１】
次に、目標値演算部１０５の詳細について、図３を用いて説明する。目標値演算部１０５は、変数制約設定部１４１，傾き制約設定部１４２，求解演算部１４３を備える。目標値演算部１０５への入力のうち、制御対象モデル、最適化評価関数、変数上下限制約は、従来技術と同じである。傾き将来予測値は、積分系傾き予測部１０３が算出した値であり、従来技術のところで述べた積分系定常傾き予測値を一般化したものである。積分系傾き予測部１０３における所定の時間が、制御変数の傾きがほぼ一定になるまでに必要な時間よりも十分に長ければ、従来技術で述べた積分系定常傾き予測値と違いは無い。
【００８２】
変数将来予測値も同様で、従来技術のところで述べた変数定常予測値を一般化したものであり、所定の時間を十分に長く取れば同じになる。傾き調整パラメータについては後述するが、これは本発明の実施にあたって必須ではない。また、必要に応じて制御対象から収集したデータ、例えば制御変数の現在値などを利用することもできるが、必須ではない。
【００８３】
変数制約設定部１４１は、操作変数や制御変数に対する制約を設定する。基本的には従来技術と同じであり、一般には式（５）に示したように、守るべき上下限（ハードな制約）として与えられる。
【００８４】
傾き制約設定部１４２は、積分系を含む制御変数の傾きに対する制約を設定する。従来技術の傾き上下限設定部、傾きペナルティ設定部に相当するが、積分系を含む制御変数が上下限を逸脱する可能性に応じて制約設定が変化する点が従来技術と異なる。
【００８５】
以下、複数の例で説明する。１例として、積分系を含む制御変数の現在値と上限、または下限までの差に応じて、傾きの上下限を設定する方法がある。制御変数の現在値が上限に近づいたら傾きの上限を小さくして０に近づけ、上限から離れたら傾きの上限を緩和するといった方法である。単純な方法としては、図４に示すように、現在値と上限との差、同下限との差に比例して傾きの上下限を決める方法がある。式で表すと、以下の式（１５）に示すものとなる。式（１５）において、ｃは正で有限の定数である。
【００８６】
【数１３】
2015225635.tif 000015
【００８７】
この制約によれば、制御変数の現在値ｙi（ｋ）が、下限に達するか下回ると、傾きの下限が０に設定されるため、負の傾きを生じるような最適目標値は設定されなくなる。一方で、ｙi（ｋ）が下限を大きく上回ると、傾きの下限は負の値となるため、負の傾きを生じるような最適目標値が許容されることになる。上限についても同様な動作となる。このようにすることで、制御変数の現在値がその上下限に接近し、逸脱する恐れが高い場合には傾きに対する制約を厳しくし、これ以外の状態では緩和するような振る舞いが実現できる。
【００８８】
なお、上述した例では、制御変数の現在値とその上下限との差を用いて傾きの上下限を設定したが、現在値の代わりに現在予測値を用い、また、将来予測値を用いることも考えられる。
【００８９】
また、定数ｃを、傾きの上限と下限とで異なる値にしてもよい。制御変数の上限と下限とで逸脱した場合の危険性に差があるような場合、例えば上限は多少超えても直ちに危険ではないが、下限を下回ると装置の安全に大きく影響する場合であれば、傾きの上限についてはｃを大きく、同下限については小さく設定するようなことも考えられる。
【００９０】
また、傾きの上下限を、現在値とその上下限の差に単純に比例させるのではなく、２乗にする、平方根を取る、より複雑な関数を適用するといったことも考えられる。ただし、本発明の技術思想を考慮するならば、前述した差が大きくなるほど傾きの上下限を緩めるような設定が好ましい。また、このような設定にしないと、効果が得られない可能性もある。すなわち、傾きの上下限がある関数ｑで表され、以下の式（１６）に示すものであるとすると、ｑは、以下の式（１７）で示される性質を持つことが好ましい。
【００９１】
【数１４】
2015225635.tif 000016
【００９２】
更に言えば、制御変数の現在値、もしくは現在予測値や将来予測値がその上下限に達した場合は、逸脱する方向への傾きは許容すべきではないので、ｘが０もしくは負値ならばｑ（ｘ）が０であるのが好ましい。このようにすることで、制御変数が上限に達した場合や超えた場合は、その傾きについては０以下だけが許容された最適目標値になる。また、傾きの大きさに別途制限を設けたい場合は、図５に示すように、傾きの上下限がある一定の値以上にならないように制限する方法も考えられる。
【００９３】
より簡便な方法として、図６に示すように、傾きの上下限を以下の式（１８）のように２段階で切り替える方法も考えられる。この方法では、制御変数の現在値とその上下限との差が、定数Ｂになるまでは制御変数の傾きを許容するが、それを超えて制御変数が上下限に近づいた場合はその傾きを許容しない設定に切り替える。ただし、この方法の場合、制御変数が上下限にある程度近づいたところで、傾きの制約が厳しくなるので、従来技術ほどではないにせよ、最適化の余地が残る可能性がある。
【００９４】
【数１５】
2015225635.tif 000017
【００９５】
以上、傾き制約設定部１４２の例として、積分系を含む制御変数の現在値と上限、または下限までの差に応じて、傾きの上下限を設定する方法について複数の例で説明した。これらの例示の共通点は、制御変数の収集値または予測値からその上下限を引いた差に応じ、差が増加するに連れて傾きの上下限が減少、または変わらないということである。言い換えれば、差の増加に対して傾きの上下限が増加することが無い、すなわち非増加であることが共通の特徴となっている。
【００９６】
傾き制約設定部１４２の別の実現方法として、積分系を含む制御変数の傾きに対するペナルティの大きさを、制御変数の値と上下限の差に応じて設定する方法もある。例えば、式（１１）の代わりに以下の式（１９）に示すペナルティを設定する。
【００９７】
【数１６】
2015225635.tif 000018
【００９８】
ペナルティが傾きの２乗に比例するのは従来技術と同じだが、それに掛かる係数ｐが定数ではなく、制御変数の値とその上下限との差によって変化するところが異なる。係数ｐは、図７に示すように、制御変数が上下限に近い場合は大きな値を、そうでない場合は小さな値を取る。こうすることで、制御変数値が上下限付近にある場合は傾きを抑制して上下限からの逸脱を抑制し、それ以外の場合は傾きを許容することで更なる最適化の余地を作る。
【００９９】
ここまで、傾き制約設定部１４２により望ましい効果を得る方法として、傾きに対する上下限による方法と、ペナルティ関数による方法とをそれぞれ説明してきたが、いずれか一方があれば本発明は実施可能である。また、両方を組み合わせることも可能である。１例として、傾きの上下限を広げる量に応じてペナルティを課す方法を数式化したものを、以下の式（２０）に示す。式（１５）で示した傾きの上下限をεiだけ広げることが許される代わりに、広げた量の２乗に応じたペナルティ関数が設定されるようになっている。このペナルティ関数は式（１９）同様、制御変数の現在値がその上下限にどれだけ近いかに依存するようになっている。
【０１００】
【数１７】
2015225635.tif 000019
【０１０１】
以上の手順を経て設定・演算された各種制約、制御対象のモデル、所与の最適化評価関数は、求解演算部１４３に渡され、全ての変数が制約内にあり、かつ評価関数を最小にするような最適目標値が求められる。
【０１０２】
以下、一連の演算の１例を数式で示す。まず、将来予測部１０２で演算された定常状態の予測値が、以下の式（２１）で示されるものとなる。これらの値が最適化の基点となる。
【０１０３】
【数１８】
2015225635.tif 000020
【０１０４】
ここでは、差分型の最適化を考えているので、制御変数ｙ、操作変数ｕともに、これらの基点との差分として、以下の式（２２）に示すように表される。
【０１０５】
【数１９】
2015225635.tif 000021
【０１０６】
積分系傾き予測部１０３で予測された傾き予測値ｙ(SL)(∞)、この値からの差分Δｙ(SL)、実際の傾きｙ(SL)、それらの関係式は、以下の式（２３）に示すようになる。なお、数式が必要以上に複雑にならないよう、全ての制御変数を含む形で書いているが、積分要素の出力を含まない制御変数については実際には無視（削除）される。
【０１０７】
【数２０】
2015225635.tif 000022
【０１０８】
変数制約設定部１４１では、操作変数の値と制御変数の値について、以下の式（２４）に示すように、基点からの差分に対する上下限が設定される。
【０１０９】
【数２１】
2015225635.tif 000023
【０１１０】
傾き制約設定部１４２では、以下の式（２５）のように、制御変数の現在値等とその上下限との差に応じて傾きに対する上下限値を設定し、またペナルティ関数を設定する。
【０１１１】
【数２２】
2015225635.tif 000024
【０１１２】
制御対象モデルは、ΔｕとΔｙの関係、ΔｕとΔｙ(SL)の関係を与える。１例として、以下の式（２６）を示す。
【０１１３】
【数２３】
2015225635.tif 000025
【０１１４】
与えられた評価関数Ｊ（Δｘ）、修正された評価関数Ｊmodified（Δｘ）、求解演算部１４３で解かれる最適化問題は、以下の式（２７）で表される。
【０１１５】
【数２４】
2015225635.tif 000026
【０１１６】
ここで得られた解Δｘoptをｘ0に加算して、最終的な最適目標値となる。
【０１１７】
以上をまとめると、本発明の実施の形態１における最適化装置の動作（最適化方法）は、図８のフローチャートに示すようになる。
【０１１８】
まず、ステップＳ１０１で、データ収集部１０１が、制御対象が制御に用いた操作変数および制御対象が出力する制御変数を含む制御対象のデータを収集する（データ収集ステップ）。次に、ステップＳ１０２で、モデル記憶部１０４に、制御対象の数学モデルを記憶する（モデル記憶ステップ）。
【０１１９】
次に、ステップＳ１０３で、将来予測部１０２が、ステップＳ１０１で収集されたデータのなかの最適化の対象となる最適化対象変数のうち少なくとも積分要素の出力を含まない制御変数に対して所定の時間後の値を予測する（将来予測ステップ）。
【０１２０】
次に、ステップＳ１０４で、積分系傾き予測部１０３が、積分要素の出力を含む制御変数に対して所定の時間後の単位時間当たりの変化量を予測する（傾き予測ステップ）。次に、ステップＳ１０５で、変数制約設定部１４１が、最適化対象変数の所定の時間後の値に対して制約を設定する（変数制約設定ステップ）。次に、ステップＳ１０６で、傾き制約設定部１４２が、積分要素の出力を含む制御変数の所定の時間後の変化量に対して制約を設定する（傾き制約設定ステップ）。ここでは、傾き制約が設定される制御変数の収集値または予測値によって傾き制約を変化させ、制御変数が変数制約設定部で設定された制約を外れる可能性が低い場合に、可能性が高い場合の傾き制約よりも緩和された傾き制約を設定する。
【０１２１】
次に、ステップＳ１０７で、求解演算部１４３が、ステップＳ１０５およびステップＳ１０６で設定された制約を満たし、かつ与えられている最適化の評価関数を最適化する最適化対象変数の最適解を求める（求解演算ステップ）。
【０１２２】
なお、最適化装置は、ＣＰＵ（Central Processing Unit；中央演算処理装置）と主記憶装置と外部記憶装置とネットワーク接続装置となどを備えたコンピュータ機器であり、主記憶装置に展開されたプログラムによりＣＰＵが動作することで、上述した各機能が実現される。また、各機能は、複数のコンピュータ機器に分散させるようにしてもよい。
【０１２３】
なお、本発明の場合、現在値が変わると定常状態目標値が変わる可能性がある。しかしながら、これは対象となるプロセスの非線形性に起因するものである。従来技術で述べた手法でもプロセスが非線形ならば起こりうることであり、本発明特有の短所というわけではない。
【０１２４】
［実施の形態２］
次に、本発明の実施の形態２について説明する。実施の形態２においても、図２に示すように、データ収集部１０１，将来予測部１０２，積分系傾き予測部１０３，モデル記憶部１０４，目標値演算部１０５を備える。目標値演算部１０５以外は、前述した実施の形態１と同様である。
【０１２５】
実施の形態２では、図９に示すように、目標値演算部１０５が、傾き上下限設定部１４２ａを備え、また、ゲイン行列演算部１４４，傾きゲイン行列演算部１４５を新たに備える。実施の形態１では傾き制約設定部１４２であった部分を、実施の形態２では、傾き上下限設定部１４２ａとしており、制御変数の傾きに対する上下限設定を変えることのみで本発明の効果を得ようとするものになっている。また、ゲイン行列演算部１４４と傾きゲイン行列演算部１４５が加わっているが、基本的には従来技術と同じものである。新たに追加された入力として傾き調整パラメータがあり、傾き上下限設定部１４２ａで算出される上下限を調整するために用いられる。
【０１２６】
ゲイン行列演算部１４４と傾きゲイン行列演算部１４５は、モデル記憶部１０４で記憶されている数学モデルから、求解演算部１４３で必要とするゲイン行列、傾き行列を算出するものであり、ゲイン行列演算部１４４は制御変数の変化量Δｙが操作変数の変化量Δｕとを関係づける式（７）に現れる行列Ｇを計算する。
【０１２７】
傾きゲイン行列演算部１４４は、操作変数の変化量Δｕと制御変数の傾きの変化量とを関係づける行列Ｓを求める。例えば、モデル記憶部１０４に制御対象の伝達関数Ｇ（ｓ）が記憶されているならば、それぞれ、以下の式（２８）で計算できる。
【０１２８】
【数２５】
2015225635.tif 000027
【０１２９】
変数制約設定部１４１は、実施の形態１と同じである。求解演算部１４３も、ペナルティ関数による評価関数の修正が無いことを除けば実施の形態１と同じである。
【０１３０】
傾き上下限設定部１４２ａは、実施の形態１の傾き制約設定部１４２の動作を限定したものであり、両者ともに目的は同じである。また、実施の形態２においては、傾き調整パラメータを外部から与えることができるようになっている。傾き調整パラメータは、目標値演算部１０５全体で１つの値を設定するのでも、制御変数毎に設定できるようにしてもよいが、広範な制御対象に対応できるようにするためには、制御変数毎に調整できる方が好ましい。例えば、制御変数毎に以下の式（２９）に示すようにして、傾きに対する上下限を調整可能な形で与える。
【０１３１】
【数２６】
2015225635.tif 000028
【０１３２】
ａi、ｂiが外部から与えた傾き調整パラメータである。傾きを抑制すべき制御変数は、ａi、ｂiを０に設定する。このようにすることで、従来技術と同様、常に制御変数の傾きを抑制した最適目標値が得られる。一方、そうでない変数については、ａi、ｂiを０より大きく、かつ微小ではない数に設定する。ａi、ｂiを大きくすると、従来技術の問題点で説明したケースにおいて最適化が積極的になされる。ただし、制御変数がその上下限を逸脱する恐れも高くなる。ａi、ｂiを小さくすると、前述したケースで最適化が進む速さは遅くなるが、制御変数が上下限を逸脱する恐れは小さくなる。
【０１３３】
このように、傾き調整パラメータを導入することで、本発明の効果の強さを、制御変数が上下限を逸脱する危険性とバランスを取りながら調整できるという効果が得られる。また、目標値演算部１０５内で決まっている定数ではなく、外部から与える形を取っているので、制御対象の特性を理解しているユーザが、その特性に応じてきめ細やかに調整できるといった効果もある。
【０１３４】
他の方法として、次の式（３０）による調整方法もある。
【０１３５】
【数２７】
2015225635.tif 000029
【０１３６】
ここで、ｙ（ｋ）はｉ番目の制御変数の現在値、ｙi(SL)は定常状態におけるｉ番目の制御変数の傾きである。Ｔiは時間に関する正のパラメータ、αi，βiは、０以上のパラメータである。αi，βiを１に設定すると、これは、図１０に示すように、Ｔiだけ時間が経過した後に制御変数値が上下限に達するような傾きまでが許容されることになる。また、αi，βiを０．５に設定すると、その半分の傾きまでが許容されることになる。このように時間に関するパラメータを導入することで、傾き調整パラメータαi，βiが正規化され、制御対象が異なっても制御の時間パラメータ（例えば整定時間、立ち上がり時間など）を基準とした調整が可能になるという効果が得られる。
【０１３７】
更に、図１１に示すように、Ｔiとして、目標値演算部１０５が算出した目標値に向かって制御するモデル予測制御部２０１から取得した制御の時間パラメータを用いることもできる。モデル予測制御部２０１の時間パラメータに連動し、目標値演算部１０５の傾き上下限設定部１４２ａを動作させることで、制御の時間パラメータが変わった時に、自動で目標値演算部１０５の振る舞いを調整できるというメリットがある。
【０１３８】
ここで、Ｔiの設定方法であるが、モデル予測制御部２０１の制御仕様として制御変数の目標値整定時間が与えられている、もしくは算出されているのであれば、その値を用いるのが最もわかりやすい。この場合、αi，βiが１を超えた値になっているということは、目標値整定時間に達する前に上下限を逸脱するような傾きを許容していることになるので、実用上はあまり好ましくない。よって、αi，βiは、０〜１の範囲内で設定することが好ましいと言える。
【０１３９】
なお、上述では目標値に向かって制御する制御部がモデル予測制御部であるとして説明したが、これに限定するものではない。目標値に向かって制御する制御部があり、制御の時間に関するパラメータが取得できるのであれば、ここで説明した手法は適用可能である。逆に、制御部がモデル予測制御部であっても、制御の時間に関するパラメータを取得することができない場合は、実施することはできない。
【０１４０】
［実施の形態３］
次に、本発明の実施の形態３について説明する。実施の形態３においても、図２に示すように、データ収集部１０１，将来予測部１０２，積分系傾き予測部１０３，モデル記憶部１０４，目標値演算部１０５を備える。目標値演算部１０５以外は、前述した実施の形態１，２と同様である。
【０１４１】
実施の形態３では、図１２に示すように、目標値演算部１０５が、傾きペナルティ設定部１４２ｂを備える。また、求解演算部１４３が、評価関数修正部１４３ａを備える。他の構成は、実施の形態２と同様である。
【０１４２】
実施の形態１では傾き制約設定部１４２であった部分を、実施の形態３では、傾きペナルティ設定部１４２ｂとしている。実施の形態３では、傾きペナルティ設定部１４２ｂにより、制御変数の傾きに対してペナルティを課すことのみで効果を得ようとしている。なお、ゲイン行列演算部１４４および傾きゲイン行列演算部１４４は、実施の形態２と同じである。
【０１４３】
また、求解演算部１４３は、傾きペナルティ設定部１４２ｂで設定されたペナルティに基づいて所与の評価関数を修正する評価関数修正部１４３ａが加わることが、実施の形態１との差異になる。また、傾きペナルティ設定部１４２ｂの可調整パラメータとして、傾き調整パラメータを受け付けるようになっている。
【０１４４】
実施の形態３では、積分系を含む制御変数の傾きに対する制約を、傾きの大きさに対するペナルティ関数として設定している。このペナルティは、評価関数修正部１４３ａで、外から与えられた元の最適化評価関数に付加される。求解演算部１４３は、ペナルティを追加された評価関数が最適となるような解を求める。
【０１４５】
以下、傾き調整パラメータによりペナルティ関数を調整する方法を例示する。例えば、ペナルティ関数を以下の式（３１）に示すように設定する。
【０１４６】
【数２８】
2015225635.tif 000030
【０１４７】
式（３１）において、γiが傾き調整パラメータである。パラメータγiを大きくすると、傾きの大きさの２乗が同じでもペナルティ関数が大きくなるので、制御変数の傾きを抑制する作用が大きくなる。パラメータγiを小さくすると、傾きを許容する作用が大きくなる。
【０１４８】
別の調整法としては、図１３に示すように、ペナルティ関数の最大値と最小値の差異を変化させる方法がある。ペナルティ関数の最大値はパラメータに依存しないので、制御変数の値が上下限付近にある時に傾きを抑制する作用は、パラメータを小さくしてもあまり変わらない。一方で、制御変数の値が上下限から離れると、パラメータが小さいほど傾きを許容する作用が大きくなる。結果として、パラメータが小さいほど、傾きを許容してでも積極的に最適化するようになる。
【０１４９】
なお、本発明は以上に説明した実施の形態に限定されるものではなく、本発明の技術的思想内で、当分野において通常の知識を有する者により、多くの変形および組み合わせが実施可能であることは明白である。上述では、定常状態のみ、もしくは制御変数の値や傾きの変化が十分小さくなった後の状態のみを最適化対象としたが、本発明の適用はこれに限るものではない。
【０１５０】
例えば、定常状態に至るまでの過渡状態を複数の区間に分け、各区間における操作変数や制御変数の値、制御変数の傾きを最適化対象に含めるような場合でも、本発明が適用可能である。この場合、傾き制約設定部１４２は、少なくとも、定常状態における積分系を含む制御変数の傾き（図１４の区間Ｎが終わった時点）に対して制約を設定する必要がある。一方で、過渡状態の各区間については、必ずしも傾きに対する制約を設定する必要は無い。
【符号の説明】
【０１５１】
１０１…データ収集部、１０２…将来予測部、１０３…積分系傾き予測部、１０４…モデル記憶部、１０５…目標値演算部、１０６…プロセス。
【図１】
2015225635.tif 000031
【図２】
2015225635.tif 000032
【図３】
2015225635.tif 000033
【図４】
2015225635.tif 000034
【図５】
2015225635.tif 000035
【図６】
2015225635.tif 000036
【図７】
2015225635.tif 000037
【図８】
2015225635.tif 000038
【図９】
2015225635.tif 000039
【図１０】
2015225635.tif 000040
【図１１】
2015225635.tif 000041
【図１２】
2015225635.tif 000042
【図１３】
2015225635.tif 000043
【図１４】
2015225635.tif 000044
【図１５】
2015225635.tif 000045
【図１６】
2015225635.tif 000046
【図１７】
2015225635.tif 000047
【図１８】
2015225635.tif 000048
【図１９】
2015225635.tif 000049
【図２０】
2015225635.tif 000050
【図２１】
2015225635.tif 000051