(57)【要約】【課題】  事前に設定された制約内に実現可能な最適解がない場合、モデル予測コントローラ等のプロセスプラントコントローラを駆動するために用いられる最適化技術は、操作変数／制御変数／補助変数の制約を緩和するまたは再定義するための組織化・システム化されかつコンピュータ的に簡単な方法を用いることによって、コントローラが用いる達成可能な解を作成する。【解決手段】最適化ルーチンは、ペナルティを課されたスラック変数を使用し、または該ペナルティ変数の使用と併せて制約モデルの再定義を行って新たな目的関数を作成し、該新たな目的関数を用いて当初の制約限界を最も満足させる制御解を決定する。【選択図】  図２
2004265381.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御方法であって、
目的関数を用いて１組の目標値を定義する解を作成するオプティマイザを走行させるステップと、
１組のプロセス変数制約に関して前記解が実現可能か否かを決定するステップであって、
前記解が実現不可能な場合は、
（１）少なくとも１つのプロセス変数のプロセス変数制約を再定義して前記１つのプロセス変数に関する新たなプロセス変数制約の上限および下限を定義し、
（２）前記１つのプロセス変数の前記目的関数にペナルティ変数を追加することにより新たな目的関数を作成し、該ペナルティ変数は、前記１つのプロセス変数が前記１つのプロセス変数の新たなプロセス変数制約限界の１つと相違する量に基づくものであり、
（３）前記新たな目的関数で前記オプティマイザを再走行させ、前記１つのプロセス変数の前記新たなプロセス変数制約限界で、１組の新たな目標値を定義する新たな解を作成する、ステップと、
コントローラに前記目標値または前記新たな目標値を提供するステップと、
前記目標値または前記新たな目標値を用いて前記コントローラを走行させて前記プロセスを制御するための１組の制御信号を作成するステップとを含む方法。
【請求項２】
請求項１に記載の方法であって、前記目的関数に１組のスラック変数を提供し、少なくとも１つの前記プロセス変数に関するペナルティを、該少なくとも１つのプロセス変数が関連する制約を侵害する量に基づいて定義するステップを更に含む方法。
【請求項３】
請求項２に記載の方法であって、１つまたは複数の経済的コストを定義する前記目的関数内でユニットコスト変数よりもはるかに大きい、前記１組のスラック変数と関連するユニットペナルティを設定するステップを含む方法。
【請求項４】
請求項１に記載の方法であって、前記目的関数に１組のスラック変数を提供し、少なくとも１つの前記プロセス変数に関するペナルティを、該少なくとも１つのプロセス変数が理想休止値と相違する量に基づいて定義するステップを更に含む方法。
【請求項５】
請求項４に記載の方法であって、１つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記１組のスラック変数と関連するユニットペナルティを設定するステップを含む方法。
【請求項６】
請求項１に記載の方法であって、前記目的関数に１組のスラック変数を提供し、少なくとも１つの前記プロセス変数に関するペナルティを、該少なくとも１つのプロセス変数が設定点と相違する量に基づいて定義するステップを更に含む方法。
【請求項７】
請求項６に記載の方法であって、１つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よるもはるかに大きい、前記１組のスラック変数と関連するユニットペナルティを設定するステップを含む方法。
【請求項８】
請求項１に記載の方法であって、１つまたは複数の経済的コストを定義する前記目的関数内の１つまたは複数のユニットコスト変数よりもはるかに大きい、前記ペナルティ変数のユニットペナルティを提供するステップを含む方法。
【請求項９】
請求項１に記載の方法であって、経済的コストを定義する前記目的関数内のあらゆる前記ユニットコスト変数よりも大きい前記ペナルティ変数のユニットペナルティを提供するステップを含む方法。
【請求項１０】
請求項１に記載の方法であって、前記コントローラを走行させるステップに多入力／多出力コントローラの走行を含む方法。
【請求項１１】
請求項１０に記載の方法であって、前記多入力／多出力コントローラを走行させるステップにモデル予測制御タイプのコントローラの走行を含む方法。
【請求項１２】
プロセス制御に用いるプロセッサで実行されるよう適合されたシステムであって、
コンピュータ読取り可能媒体と、
前記コンピュータ読取り可能媒体に記憶され、目的関数を用いて１組の目標値を定義する解を作成するために前記プロセッサ上で実行されるよう適合された、オプティマイザ・ルーチンと、
前記コンピュータ読取り可能媒体に記憶され、１組みのプロセス変数制約に対して前記解が実現可能か否かを判断するために前記プロセッサ上で実行されるよう適合された、実現可能性対応ルーチンであって、前記解が実現不可能な場合は、
少なくとも１つのプロセス変数のプロセス変数制約を再定義し、該１つのプロセス変数の新たなプロセス変数制約の上限および下限を定義し、
前記１つのプロセス変数のペナルティ変数を前記目的関数に追加することにより新たな目的関数を作成し、該ペナルティ変数は、前記１つのプロセス変数が該１つのプロセス変数の前記新たなプロセス変数制約限界の１つと相違する量に基づいて、前記目的関数にペナルティを課し、
前記新たな目的関数で前記オプティマイザ・ルーチンを再走行させ、前記１つのプロセス変数の前記新たなプロセス変数制約限界を伴う１組の新たな目標値を定義する新たな解を作成する、実現可能性対応ルーチンと、
前記コンピュータ読取り可能媒体に記憶され、前記目標値または前記新たな目標値を用いて前記プロセスを制御するための１組の制御信号を作成するために前記プロセッサ上で実行されるよう適合された、コントローラ・ルーチンと、を備えるシステム。
【請求項１３】
請求項１２に記載のシステムであって、前記目的関数は、少なくとも１つの前記プロセス変数のペナルティを、該少なくとも１つのプロセス変数が関連する制約を侵害する量に基づいて定義する、１組のスラック関数を含むシステム。
【請求項１４】
請求項１３に記載のシステムであって、前記目的関数は、１つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記１組のスラック変数に関連するユニットペナルティを含む、システム。
【請求項１５】
請求項１２に記載のシステムであって、前記目的関数は、少なくとも１つの前記プロセス変数のペナルティを、該少なくとも１つのプロセス変数が理想休止値と相違する量に基づいて定義する１組のスラック変数を含む、システム。
【請求項１６】
請求項１５に記載のシステムであって、前記目的関数は、１つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記１組のスラック変数に関連するユニットペナルティを含む、システム。
【請求項１７】
請求項１２に記載のシステムであって、前記目的関数は、少なくとも１つの前記プロセス変数のペナルティを、該少なくとも１つのプロセス変数が設定点と相違する量に基づいて定義する１組のスラック変数を含む、システム。
【請求項１８】
請求項１７に記載のシステムであって、前記目的関数は、１つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記１組のスラック変数に関連するユニットペナルティを含む、システム。
【請求項１９】
請求項１２に記載のシステムであって、前記目的関数は、１つまたは複数の経済的コストを定義する前記目的関数内の１つまたは複数のユニットコスト変数よりもはるかに大きい前記ペナルティ変数のユニットペナルティを含む、システム。
【請求項２０】
請求項１２に記載のシステムであって、前記目的関数は、経済的コストを定義する前記目的関数内のあらゆるユニットコスト変数よりも大きい前記ペナルティ変数のユニットペナルティを含む、システム。
【請求項２１】
請求項１２に記載のシステムであって、前記コントローラルーチンは多入力／多出力コントローラルーチンを含む、システム。
【請求項２２】
請求項２１に記載のシステムであって、前記多入力／多出力コントローラルーチンは、モデル予測制御タイプのコントローラルーチンを含む、システム。
【請求項２３】
プロセス制御方法であって、
１組のプロセス変数の各々と関連する少なくとも１つの制約を定義するステップと、
前記プロセス変数と関連する１つまたは複数の経済的ユニットコストと、１つの前記プロセス変数の前記制約を侵害する前記１つのプロセス変数と関連するペナルティ変数とを含む、目的関数を定義するステップであって、前記ペナルティ変数は前記各経済的ユニットコストよりも大きいユニットペナルティを有する、ステップと、
前記目的関数を用いて前記プロセス制御に用いる１組のプロセス制御信号を作成するステップと、を含む方法。
【請求項２４】
請求項２３に記載の方法であって、前記少なくとも１つの制約を定義するステップは、前記１つのプロセス変数と関連する１組の範囲限界を定義するステップを含む、方法。
【請求項２５】
請求項２３に記載の方法であって、前記少なくとも１つの制約を定義するステップは、前記１つのプロセス変数と関連する設定点を定義するステップを含む、方法。
【請求項２６】
請求項２３に記載の方法であって、前記少なくとも１つの制約を定義するステップは、前記１つのプロセス変数と関連する理想休止値を定義するステップを含む、方法。
【請求項２７】
請求項２３に記載の方法であって、前記少なくとも１つの制約を定義するステップは、前記１つのプロセス変数と関連する第１の組の範囲限界と、前記１つのプロセス変数と関連する第２の組の範囲限界とを定義するステップを含み、目的関数を定義するステップは、前記第１の組の範囲限界の侵害に関連する第１のペナルティ変数と、前記第２の組の範囲限界の侵害に関連する第２のペナルティ変数とを定義するステップを含み、前記第１のペナルティ変数と関連する第１のユニットペナルティは前記第２のペナルティ変数と関連する第２のユニットペナルティよりも小さい、方法。
【請求項２８】
請求項２３に記載の方法であって、前記少なくとも１つの制約を定義するステップは、前記１つのプロセス変数と関連する第１の値と、前記１つのプロセス変数と関連する１組の範囲限界とを定義するステップを含み、目的関数を定義するステップは、前記第１の値と相違する前記１つのプロセス変数と関連する第１のペナルティ変数と、前記１組の範囲限界を侵害する前記１つのプロセス変数と関連する第２のペナルティ変数とを定義するステップを含み、前記第１のペナルティ変数と関連する第１のユニットペナルティは前記第２のペナルティ変数と関連する第２のユニットペナルティよりも小さい、方法。
【請求項２９】
請求項２８に記載の方法であって、前記第１の値は設定点である方法。
【請求項３０】
請求項２８に記載の方法であって、前記第１の値は理想休止値である方法。
【請求項３１】
請求項２３に記載の方法であって、前記目的関数を用いて、前記プロセス変数の１つが該プロセス変数の前記制約を侵害することが予測される期間水平線に渡って最適な１組の制御信号を作成するステップを含む、方法。
【請求項３２】
請求項２３に記載の方法であって、前記１つのプロセス変数が該１つのプロセス変数と関連する前記制約を侵害すると予想される場合を検出し、該１つのプロセス変数の前記制約を再定義し、前記目的関数を再定義し、前記１つのプロセス変数が該１つのプロセス変数と関連する前記制約に侵害すると予想される場合に前記再定義した目的関数を用いて前記１組のプロセス制御信号を決定するステップを含む、方法。
【請求項３３】
請求項３２に記載の方法であって、前記目的関数を再定義するステップは、前記１つのプロセス変数の前記目的関数に更なるペナルティ変数を追加するステップを含み、前記更なるペナルティ変数は、前記１つのプロセス変数が該１つのプロセス変数に関する前記再定義された制約と相違する量に基づいて、前記目的関数にペナルティを課す、方法。
【請求項３４】
請求項３３に記載の方法であって、前記更なるペナルティ変数を追加するステップは、１つまたは複数の経済的コストを定義する前記目的関数内の前記経済的ユニットコストよりも大きい、前記更なるペナルティ変数と関連する更なるユニットペナルティの設定を含む、方法。
【請求項３５】
請求項３３に記載の方法であって、前記更なるペナルティ変数を追加するステップは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりも大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するステップを含む、方法。
【請求項３６】
請求項３３に記載の方法であって、前記更なるペナルティ変数を追加するステップは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりもはるかに大きい、前記更なるペナルティ変数と関連する更なるユニットペナルティを設定するステップを含む、方法。
【請求項３７】
プロセスを制御するプロセッサに用いられるシステムであって、
コンピュータ読取り可能媒体と、
前記コンピュータ読取り可能媒体に記憶され、１組のプロセス変数の各々と関連する少なくとも１つの制約を記憶するために前記プロセッサで実行されるよう適合された、第１のルーチンと、
前記コンピュータ読取り可能媒体に記憶され、前記プロセス変数と関連する１つまたは複数の経済的ユニットコストと、前記１つのプロセス変数の制約を侵害する前記少なくとも１つの前記プロセス変数と関連するペナルティ変数とを定義する目的関数を記憶するために、前記プロセッサで実行されるよう適合された、第２のルーチンと、
前記コンピュータ読取り可能媒体に記憶され、前記目的関数を用いて前記プロセスの制御に使用する１組のプロセス制御信号を作成するために前記プロセッサで実行されるよう適合された、第３のルーチンと、を含むシステム。
【請求項３８】
請求項３７に記載のシステムであって、前記１つのプロセス変数の前記少なくとも１つの制約は、前記１つのプロセス変数と関連する１組の範囲限界を含む、システム。
【請求項３９】
請求項３７に記載のシステムであって、前記１つのプロセス変数の前記少なくとも１つの制約は、前記１つのプロセス変数と関連する設定点を含む、システム。
【請求項４０】
請求項３７に記載のシステムであって、前記１つのプロセス変数の前記少なくとも１つの制約は、前記１つのプロセス変数に関連する理想休止値を含む、システム。
【請求項４１】
請求項３７に記載のシステムであって、前記１つのプロセス変数の前記少なくとも１つの制約は、前記１つのプロセス変数と関連する第１の組の範囲限界と、前記１つのプロセス変数と関連する第２の組の範囲限界とを含み、前記目的関数は、前記第１の組の範囲限界に関連する第１のペナルティ変数と、前記第２の組の範囲限界に関連する第２のペナルティ変数とを含み、前記第１のペナルティ変数と関連する第１のユニットペナルティは前記第２のペナルティ変数と関連する第２のユニットペナルティよりも小さい、システム。
【請求項４２】
請求項３７に記載のシステムであって、前記１つのプロセス変数の前記少なくとも１つの制約は、該１つのプロセス変数と関連する第１の値と、該１つのプロセス変数と関連する１組の範囲限界とを含み、前記目的関数は、前記第１の値と相違する該１つのプロセス変数と関連する第１のペナルティ変数と、前記１組の範囲限界を侵害する前記１つのプロセス変数と関連する第２のペナルティ変数とを含み、前記第１のペナルティ変数と関連する第１のユニットペナルティは前記第２のペナルティ変数と関連する第２のユニットペナルティよりも小さい、システム。
【請求項４３】
請求項４２に記載のシステムであって、前記第１の値は設定点であるシステム。
【請求項４４】
請求項４２に記載のシステムであって、前記第１の値は理想休止値であるシステム。
【請求項４５】
請求項３７に記載のシステムであって、前記第３のルーチンは、前記目的関数を用いて、前記１つのプロセス変数が該１つのプロセス変数の前記制約を侵害すると予測される期間水平線に渡って最適な１組のプロセス制御信号を作成するよう適合された、システム。
【請求項４６】
請求項３７に記載のシステムであって、前記コンピュータ読取り可能媒体に記憶され、プロセッサ上で行われるよう適合された第４のルーチンを含み、１つの前記プロセス変数が該１つのプロセス変数と関連する前記制約を侵害すると予想される場合を検出して該１つのプロセス変数の制約を再定義し、前記目的関数を再定義して、該１つのプロセス変数が該１つのプロセス変数と関連する前記制約を侵害すると予想される場合に、前記第３のルーチンに前記再定義した目的関数を用いて前記１組のプロセス制御信号を決定させる、システム。
【請求項４７】
請求項４６に記載のシステムであって、前記第４のルーチンは、前記１つのプロセス変数に関する前記目的関数に更なるペナルティ変数を追加することによって前記目的関数を再定義するよう適合され、前記更なるペナルティ変数は、前記１つのプロセス変数が該１つのプロセス変数に関する前記再定義された制約と相違する量に基づいて前記目的関数にペナルティを課す、システム。
【請求項４８】
請求項４７に記載のシステムであって、前記第４のルーチンは、前記目的関数内の前記経済的ユニットコストよりも大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するよう適合された、システム。
【請求項４９】
請求項４７に記載のシステムであって、前記第４のルーチンは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりも大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するよう適合された、システム。
【請求項５０】
請求項４７に記載のシステムであって、前記第４のルーチンは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりもはるかに大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するよう適合された、システム。
【請求項５１】
請求項３７に記載のシステムであって、前記第３のルーチンは、コントローラのための１組の目標値を作成するよう適合されたオプティマイザルーチンである、システム。
【請求項５２】
請求項３７に記載のシステムであって、前記第３のルーチンはコントローラルーチンであるシステム。
【請求項５３】
請求項３７に記載のシステムであって、前記第３のルーチンはモデル予測制御タイプのコントローラルーチンであるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2002年9月11日に出願された米国特許出願第10/241,350号、名称"Integrated Model Predictive Control and Optimization Within a Process Control System（プロセス制御システムにおける統合されたモデル予測制御および最適化）"の一部継続出願であり、該出願の開示は引用により本明細書に明示的に援用される。
【０００２】
本発明は、概してプロセス制御システムに関し、より特定的には、例えばプロセスプラントを制御するためのモデル予測コントローラ等で使用される場合のプロセス制御システム・オプティマイザにおける制約および限界の実現可能性への対応に関する。
【背景技術】
【０００３】
化学プロセス、石油プロセスまたはその他のプロセスに使用されるような、分散または大規模なプロセス制御システム等のプロセス制御システムは、通常、1つまたは複数のプロセスコントローラを備え、該コントローラは通信手段によって、相互に、および少なくとも1つのホストまたはオペレータ・ワークステーションと、およびアナログ、ディジタル、或いはアナログ／ディジタルを組み合わせたバスを介して1つまたは複数のフィールド装置と、連結されている。フィールド装置としては、例えば、バルブ、バルブポジショナー、スイッチおよびトランスミッタ（温度、圧力、流量のセンサ等）があり、バルブの開閉やプロセスパラメータの測定等、プロセス内の機能を実施する。プロセスコントローラは、フィールド装置によって生成されるプロセス測定値および／またはフィールド装置に関するその他の情報を示す信号を受信し、この情報を用いて制御ルーチンを実行し、制御信号を生成する。この制御信号が、バスを通してフィールド装置に送信され、プロセスの動作を制御する。フィールド装置およびコントローラからの情報は通常、オペレータ・ワークステーションによって実行される1つまたは複数のアプリケーションで利用でき、オペレータは、プロセスの現状の目視、プロセス動作の修正等、プロセスに関する所望の機能を行うことができる。
【０００４】
プロセスコントローラは通常、フロー制御ループ、温度制御ループ、圧力制御ループ等、1つのプロセスに関して定義されるまたは1つのプロセス内に含まれる複数の異なるループの各々に関して、異なるアルゴリズム、サブルーチンまたは制御ループ（これらはすべて制御ルーチンである）を実行するようプログラムされている。一般的に、これらの各制御ループは、アナログ入力（AI）機能ブロック等の1つまたは複数の入力ブロック、比例積分微分（PID）またはファジー論理制御機能ブロック等の単一出力制御ブロック、およびアナログ出力（AO）機能ブロック等の単一出力ブロックが含まれる。これらの制御ループは通常、単一入力／単一出力制御を行う。その理由は、制御ブロックは、例えばバルブの位置といった単一のプロセス入力を制御するために用いられる単一の制御出力を生じるからである。しかし、場合によっては、独立して作動する複数の単一入力／単一出力制御ループを使用することは、あまり効果的でないことがある。その理由は、制御されるプロセス変数が単一のプロセス入力以外のものの影響を受け、また実際のところ、各プロセス入力が多数のプロセス出力の状態に影響を与える可能性があるからである。一例として、例えば2つの入力ラインによって充填され単一の出力ラインで排出されるタンクを有するプロセスにおいて、各ラインが異なるバルブによって制御され、タンクの温度、圧力および流量が所望の値またはその付近で制御されている場合に、このような状況が発生することがある。上述したように、タンクの流量、温度および圧力の制御は、個別の流量制御ループ、個別の温度制御ループ、および個別の圧力制御ループを用いて行われると考えられる。しかし、このような状況において、温度制御ループが、タンク内の温度を制御するために入力バルブの1つの設定を変えるよう作動すると、タンク内の圧力が上昇し、これにより例えば圧力ループが圧力を下げるために排出バルブを開放することもある。そして、この動作により、流量制御ループが入力バルブの1つを閉鎖し、これが温度に影響を与え、そのため温度制御ループがまた別の動作をする可能性がある。この例から理解されるように、単一入力／単一出力制御ループは、プロセス出力（この場合は流量、温度および圧力）を、出力が決して安定した状態に達することなく振動するという許容できない方法で行動させる。
【０００５】
そこで、特定の制御プロセス変数に対する変化が複数のプロセス変数または出力に影響を与えるような状況でプロセス制御を行うために、モデル予測制御（MPC）または他のタイプのアドバンスド制御が用いられている。1970年代後半から、モデル予測制御の実施に関する多数の成功例が報告されており、MPCはプロセス業界におけるアドバンスド多変数制御の主たる形式となっている。さらに、MPCは、分散制御システム内において分散制御システム層ソフトウェアとして実施されている。
【０００６】
一般的に、MPCは、複数のプロセス入力各々の変化が複数のプロセス出力各々に与える影響を測定し、この測定された応答を用いて制御行列またはプロセスのモデルを作成する、多重入力／多重出力制御戦略である。プロセスモデルまたは制御行列（一般的にプロセスの定常状態の動作を定義する）は、数学的に反転され、多重入力／多重出力コントローラとして、またはその中で用いられ、プロセス入力に対してもたらされる変化に基づいてプロセス出力を制御する。場合によっては、プロセスモデルは各プロセス入力のプロセス出力応答曲線（通常はステップ応答曲線）として表され、これらの曲線は、例えば各プロセス入力に提供される一連の擬似ランダムステップ変化に基づいて作成されることもある。これらの応答曲線は、既知の方法でプロセスをモデル化するために用いることができる。MPCはこの技術分野では周知であるため、本明細書内では具体的な内容の説明は省略するが、Qin, S. JoeおよびThomas A. Badgwellによる"An Overview of Industrial Model Predictive Control Technology," AIChE Conference、1996年、に記載されている。また、米国特許第4,616,308号および第4,349,869号にも、プロセス制御システムに使用できるMPCコントローラが概説されている。
【０００７】
MPCは、非常に効果的で役立つ制御技術であることがわかっており、プロセス最適化と合わせて利用されている。MPCを用いたプロセスを最適化するために、オプティマイザは、MPCルーチンによって決定される1つまたは複数のプロセス入力変数を最小化または最大化することによって、当該プロセスを最適地点で走行させる。この技術はコンピュータ的には可能であるが、経済的な見地からプロセスを最適化するためには、例えばプロセスの経済的な動作（プロセス流量または品質等）の改善に著しい影響を与えるようなプロセス変数を選択する必要がある。財務または経済的な観点からプロセスを最適地点で動作させるには、通常、単一のプロセス変数だけでなく、多くのプロセス変数を相互に併用して制御する必要がある。
【０００８】
MPCによるダイナミックな最適化を行うための解決策として、二次計画法技術または内点方法等のより現代的な技術を用いた最適化が提案されている。これらの方法によって、最適解が決定され、オプティマイザは、プロセスダイナミックス、現行の制約および最適化目標を考慮して、コントローラ出力（つまりプロセスの操作変数）における動きをコントローラに提供する。しかし、このアプローチはコンピュータに莫大な負荷をかけるものであり、現行の技術水準では実際上、実現可能ではない。
【０００９】
MPCを用いる多くの場合において、プロセス内で利用できる操作変数の数（つまりMPCルーチンの制御出力）は該プロセスの制御変数の数（つまり特定の設定地点になるよう制御されるべきプロセス変数の数）を上回る。その結果、大抵は、最適化および制約の扱いに利用可能な自由度が多くある。理論上は、このような最適化を行うためには、プロセスの最適動作地点を定義する、プロセス変数、制約、限界および経済的要因で表される値を算出しなければならない。多くの場合、これらのプロセス変数は制約された変数である。なぜなら、これらに付随しこれらの変数がその中に保たれるべきプロセスの物理的特性に関して、限界があるからである。例えば、タンクのレベルを表すプロセス変数は、実際のタンク内で物理的に到達可能な最大レベルと最小レベルに制限される。最適化関数は、制約変数または補助変数の各々に関連して、利益が最大になりコストが最小になるようなレベルで作動するよう、コストおよび／または利益を計算することができる。そして、これらの補助変数の測定値は入力としてMPCルーチンへ提供され、MPCルーチンによって、最適化ルーチンにより定義される補助変数の作動地点と等しい設定地点を持つ制御変数として、扱われることができる。
【００１０】
2002年9月11日に出願された"Integrated Model Predictive Control and Optimization Within a Process Control System（プロセス制御システムにおける統合されたモデル予測制御および最適化）"という名称の米国特許出願第10/241,350号であって、本願の譲受人に譲渡され、その開示内容がここに引用され明示的に援用される出願は、最適化が多変数モデル予測制御と一体を成す、MPCブロック等のアドバンスド制御ブロックを用いたオンライン最適化を提供する方法および装置を開示している。この技術は、かなりの部分において成功している。その理由は、MPCコントローラは、正常動作において、定常状態までのプロセス出力の未来予測を提供し、これによってオプティマイザが信頼できる動作をするために必要な条件を作成するからである。しかし、解を探索するためのこの最適化アプローチは常に機能するわけではない。その理由は、状況によっては、可能な最適解と関連するコントローラ出力または予測コントローラ出力（本明細書では操作変数という）またはプロセス出力（本明細書では制御変数という）の中には、これらの変数に関して事前に設定された予測された制約または限界の範囲外になる場合があり、したがって、その解は事前に定義された実現不可能な範囲内に入るからである。オプティマイザは、MPCまたは他のコントローラと統合された場合は常に、最大限可能な限り実現不可能な範囲内で作動するのを避けて解を探すことが望ましく、また多くの制御状態において、その必要がある。
【００１１】
現時点では、オプティマイザが、実現可能ではないがあらゆるプロセス制御出力または入力が事前に設定された制約あるいは限界を維持する最適な解があると判断した場合、オプティマイザは一般的に、許容できる解を得るために1つまたは複数の制約または限界を緩和する。この回復技術は通常、操作変数および制御変数の各々に関連する優先順位を用いて、どの制約または限界を最初に緩めるかを判断する。ここで、簡単なアプローチとしては、オプティマイザがより優先順位の高い制約を満たすことができる解を得るために、優先順位の最も低い制約を外す方法がある。しかし、この技術は、実現不可能な解における制約を扱う上で必ずしも最も合理的な方法ではない。その理由は、1つまたは複数の優先順位の高い制約に最低限の調整を加えるだけのために優先順位の低い制約を外すことによって、これら優先順位の低い制約が範囲から大幅に逸れる可能性があるからだ。また、通常は、実現可能な解を得るために外さなければならない制約の数を推測する必要がある。当然、優先順位の高い制約を満たすために外す制約の数は、最小限に抑えることが望ましい。しかし、外す制約の適切な数を判断するためには、システム内の利用可能な自由度に基づいてオフライン算出を行うか、さもなければ、オプティマイザに制約を1つずつ外すことを繰り返させ、制約が減少した新たな組み合わせで実現可能な解が得られるかどうか判断することを、実現可能な解が得られるまで行う必要がある。残念ながら、リアルタイムまたはオンラインの最適化システムではオフラインの算出はうまく機能せず、反復のアプローチは一般的に境界がない。そのため、実現可能な解を得るまでに許容できない程の遅延が生じることがある。つまり、制約を順次外していくことによって最適な解を作成するプロセスは、解が得られるまで繰り返す必要があり、このようなオープンエンドの反復プロセスは、リアルタイムの最適化アプリケーションにおいてはほどんどの場合望ましいものではない。
【００１２】
これ以外にも、実現不可能な解が存在する場合に最適化を達成させるための周知のアプローチがいくつか提案されている。例えば、Tyler, M.L.およびMorari M.による"Propositional Logic in Control and Monitoring Problems," Proceedings of European Control Conference '97、pp.623-238、ベルギー、ブリュッセル、1997年6月、には、優先順位を付けるために整数変数を用いる方法が開示されており、混合整数最適化問題のシークエンスを解決することによって侵害の大きさを最小限にしている。一方、Vada, J.、 Slupphaug, O.、Foss, B.A.、による"Infeasibility Handling in Linear MPC subject to Prioritized Constraints," Preprints IFCA'99 14th World Congress、中国、北京、1999年7月、には、満たすことのできない制約の侵害を最少限に抑えるために線形計画法（LP）または二次計画法（QP）の問題のシークエンスを解決する上で利用できるアルゴリズムについて述べられている。しかし、これらのいずれのアプローチもコンピュータ的に厳しく、一般的に迅速かつリアルタイムのアプリケーションには適当でないか、あるいは許容できない。一方、Vada. J.、Slupphaug, O.およびJohansen, T.A.による"Efficient Infeasibility Handling in Linear MPC subject to Prioritized Constraints," ACC2002 Proceedings、アラスカ州アンカレッジ、2002年5月、には、計算される制約の侵害を最適化するLPウエイトを算出するオフライン・アルゴリズムが開示されている。この技術はオフライン環境に対する過剰な計算の負荷を減らすが、更なるオフラインでの最適化問題への対応が必要であり、オンラインまたはリアルタイムの最適化プロシージャにはそれほど有益ではない。
【特許文献１】米国特許第4,616,308号
【特許文献２】米国特許第4,349,869号
【特許文献３】米国特許出願第10/241,350号
【特許文献４】米国特許第6,445,963号
【非特許文献１】Qin, S. Joe、Thomas A. Badgwell著「An Overview of Industrial Model Predictive Control Technology」AIChE Conference、1996年
【非特許文献２】Tyler, M.L.、Morari M.著「Propositional Logic in Control and Monitoring Problems」Proceedings of European Control Conference '97、 pp.623-628、1997年6月
【非特許文献３】Vada, J.、Slupphaug, O.、Foss, B.A.著「Infeasibility Handling in Linear MPC subject to Prioritized Constraints」Preprints IFCA'99 14th World Congress、1999年7月
【非特許文献４】Vada. J.、Slupphaug, O、Johansen, T.A.著「Efficient Infeasibility Handling in Linear MPC subject to Prioritized Constraints」ACC2002 Proceedings、2002年5月
【発明の開示】
【発明が解決しようとする課題】
【００１３】
モデル予測制御プロシージャ等のアドバンスド制御手順を最適化するために使用できる統合最適化技術は、事前に設定された制約または限界の範囲内に実現可能な最適解がない場合に、操作変数または制御変数の制約または限界を緩和あるいは再定義する、組織化・システム化されかつ計算が簡単な方法を用いることによって、制御プロシージャで使用する達成可能な最適解を探索する。特に、最適化ルーチンは、事前に設定された制約限界内では実現不可能なオプティマイザの解に直面した場合は、ペナルティを課されたスラック変数に基づいて、および／または制約モデルを再定義することによって、強力で信頼性のある技術を用いて最適な解をシステマチックに選択する。本明細書に開示される技術は計算がシンプルであるため、この技術はリアルタイム・オプティマイザのオンラインでの実施に適する。
【課題を解決するための手段】
【００１４】
1つの実施形態では、オプティマイザは、ペナルティを課されたスラック変数を含む目的関数を使用して、事前設定限界から外れた1つまたは複数の操作変数または制御変数が存在する場合の最適解を探索してもよい。もう1つの実施形態では、オプティマイザは制約モデルを再定義することにより限界から外れた操作変数または制御変数の許容可能な限界を再定義し、新たな制約モデルで定義されたペナルティ変数で目的関数を使用して、優先順位の低い制約がそれ以上侵害されることなく、限界から外れている優先順位の高い制約を事前に設定された限界に向かって進ませてもよい。さらにもう1つの実施形態では、オプティマイザは、ペナルティを課されたスラック変数の使用と制約モデルの再定義とを統合し、フレキシブルで効果的な制約対応技術を提供してもよい。
【発明を実施するための最良の形態】
【００１５】
さて、図1において、プロセス制御システム10はプロセスコントローラ11を含み、該プロセスコントローラ11は、データヒストリアン12と、および各々がディスプレイスクリーン14を有する1つまたは複数のホストワークステーションまたはコンピュータ13（いかなる種類のパソコン、ワークステーション等でもよい）と、通信可能に接続される。コントローラ11は、入力／出力（I/O）カード26、28を介してフィールド装置15-22にも接続される。データヒストリアン12は、データを記憶するための所望の種類のメモリおよび所望または周知のソフトウェア、ハードウェア、またはファームウェアを有する、所望の種類のデータ収集ユニットであってよく、ワークステーション13のうちの1つとは分離されていても（図1に示すように）、その一部でもよい。コントローラ11は、例えば、エマーソン・プロセス・マネジメント（Emerson Process Management）により販売されるDeltaVTMコントローラで、例えば、イーサネット（Ｒ）接続または他の所望の通信ネットワーク29を通してホストコンピュータ13とデータヒストリアン12とに通信可能に接続されてよい。通信ネットワーク29には、ローカルエリアネットワーク（LAN）、ワイドエリアネットワーク（WAN）、電気通信ネットワーク等の形態があり、有線または無線技術を用いて実現される。コントローラ11は、例えば標準的な4-20ミリアンペア装置と関連する、および／またはFOUNDATIONTMフィールドバスプロトコル（フィールドバス）、HARTTMプロトコルのようなスマート通信プロトコルと関連する、所望のハードウェアおよびソフトウェアを用いてフィールド装置15-22と通信可能に接続される。
【００１６】
フィールド装置15-22は、センサ、バルブ、トランスミッタ、ポジショナ等、いかなる種類の装置でもよく、I/Oカード26、28は、所望の通信プロトコルまたはコントローラプロトコルに従ういかなる種類のI/O装置でもよい。図1に示す実施形態において、フィールド装置15-18は、アナログ回線を通してI/Oカード26と通信する標準的な4-20ミリアンペア装置であり、フィールド装置19-22は、フィールドバスプロトコル通信を用いてディジタルバスを通してI/Oカード28と通信する、フィールドバスフィールド装置のようなスマート装置である。当然、フィールド装置15-22は、将来開発されるあらゆる標準またはプロトコルを含む、所望する他のいかなる標準またはプロトコルに従うものでもよい。
【００１７】
プラント10内の多くの分散コントローラの1つであり内部に少なくとも1つのプロセッサを含むコントローラ11は、1つまたは複数のプロセス処理ルーチンを実行または監視し、該ルーチンは、その内部に記憶される、またはこれに関連する、制御ループを含んでもよい。コントローラ11はまた、装置15-22、ホストコンピュータ13、およびデータヒストリアン12と通信し、所望の方法でプロセスを制御する。本明細書に記載される制御ルーチンまたはエレメントはいかなるものも、所望する場合は、その一部を別のコントローラまたは他の装置に実現または実行させてもよいという点に留意すべきである。同様に、プロセス制御システム10内で実現される、本明細書に記載の制御ルーチンまたはエレメントは、ソフトウェア、ファームウェア、またはハードウェア等を含む、いかなる形態でもよい。この点に関して、プロセス制御エレメントは、例えばコンピュータで読取り可能な媒体に記憶されたルーチン、ブロック、またはモジュールを含むプロセス制御システムの、いかなる部分であってもよい。モジュール、またはサブルーチン、サブルーチンの複数部分（コードの列、等）等の制御プロシージャの一部分である、制御ルーチンは、はしご論理、順次機能チャート、機能ブロック図、目的に基づくプログラミング、または他のいかなるソフトウェアプログラミング言語または設計パラダイムを用いた、所望するいかなるソフトウェアのフォーマットで実現してもよい。同様に、制御ルーチンは、例えば、1つまたは複数のEPROM、EEPROM、専用集積回路（ASIC）、または他のハードウェアエレメントもしくはファームウェアエレメント内にハードコードされてもよい。さらに、制御ルーチンは、図形設計ツールまたは他の種類のソフトウェア／ハードウェア／ファームウェアプログラミングツールもしくは設計ツールを含め、何らかの設計ツールを用いて設計されてもよい。このように、コントローラ11は、所望の方法で、制御戦略または制御ルーチンを実行するように構成されてよい。
【００１８】
1つの実施形態において、コントローラ11は、一般的に機能ブロックと称されるものを用いて制御戦略を実行する。この戦略において、各機能ブロックは、全体の制御ルーチンの一部または対象であり、他の機能ブロックと（リンクと呼ばれる通信によって）関連して動作し、プロセス制御システム10内のプロセス制御ループを実行する。機能ブロックは通常、トランスミッタ、センサまたは他のプロセスパラメータ測定装置と関連するもの等の入力機能、PID制御、ファジー論理制御等を実行する制御ルーチンと関連するもの等の制御機能、または、バルブのような装置の動作を制御する出力機能、の1つを実行し、プロセス制御システム10内で何らかの物理的な機能を実行する。当然、ハイブリッド機能ブロックおよび他の種類の機能ブロックが存在する。機能ブロックはコントローラ11内に記憶されてこれにより実行されてもよいが、これは通常、これらの機能ブロックが標準的な4-20ミリアンペアの装置、およびHART装置のような何らかの種類のスマートフィールド装置に用いられるかもしくはこれらと関連する場合であり、またはフィールドバス装置の場合のようにフィールド装置自体の内部に記憶されこれにより実行されてもよい。ここでは、制御システムについて、目的に基づくプログラミングパラダイムを用いる機能ブロック制御戦略を用いて説明しているが、制御戦略または制御ループもしくは制御モジュールは、はしご論理、順次機能チャート等の他の規約を用いて、または他の所望のプログラミング言語またはプログラミングパラダイムを用いて実行または設計されてもよい。
【００１９】
図1の拡大ブロック30に示すように、コントローラ11は、ルーチン32、34として示される、複数の単一ループ制御ルーチンを含んでよく、また制御ループ36として示される1つまたは複数のアドバンスド制御ループを実行してもよい。このような各ループは通常、制御モジュールと称される。単一ループ制御ルーチン32、34は各々、適切なアナログ入力（AI）機能ブロックおよびアナログ出力（AO）機能ブロックに接続された単一入力／単一出力ファジー論理制御ブロックおよび単一入力／単一出力PID制御ブロックを用いて信号ループ制御を実行するものとして示され、機能ブロックは、バルブのようなプロセス制御装置と関連してもよく、温度トランスミッタおよび圧力トランスミッタのような測定装置と関連してもよく、またプロセス制御システム10内の他の装置と関連してもよい。アドバンスド制御ループ36は、多数のAI機能ブロックに通信可能に接続された入力と多数のAO機能ブロックに通信可能に接続された出力とを有するアドバンスド制御ブロック38を含むものとして示されるが、アドバンスド制御ブロック38の入力および出力は、他の所望の機能ブロックまたは制御エレメントと通信可能に接続され他の種類の入力を受信し他の種類の制御出力を提供してもよい。後述するが、アドバンスド制御ブロック38は、モデル予測制御ルーチンとオプティマイザとを統合して、プロセスまたはプロセスの一部の最適制御を実行する制御ブロックでもよい。本明細書内ではアドバンスド制御ブロックはモデル予測制御（MPC）ブロックを含むものとして述べられるが、ニューラルネットワークモデリングまたは制御ルーチン、多変数ファジー論理制御ルーチン等の、他の多入力／多出力制御ルーチンまたはプロシージャでもよい。アドバンスド制御ブロック38を含む図1に示される機能ブロックは、コントローラ11により実行されるか、またはワークステーション13のうちの1つもしくはフィールド装置19−22のうちの1つのような他の処理装置内に位置しこれにより実行されることは理解されるであろう。
【００２０】
図1に示すように、ワークステーション13の1つはアドバンスド制御ブロック生成ルーチン40を含み、該ルーチンは、アドバンスド制御ブロック38を作成、ダウンロード、および実行するのに用いられる。アドバンスド制御ブロック生成ルーチン40は、ワークステーション13内のメモリに記憶されプロセッサにより実行されてよいが、該ルーチン（またはその一部）は、所望する場合は、さらにまたは代替的に、プロセス制御システム10内の他の装置内に記憶されこれによって実行されてもよい。一般的に、アドバンスド制御ブロック生成ルーチン40は、アドバンスド制御ブロックを作成し該アドバンスド制御ブロックをプロセス制御システム内に接続する制御ブロック作成ルーチン42と、アドバンスド制御ブロックにより収集されたデータに基づいてプロセスのためのプロセスモデルまたはその一部を作成するプロセスモデル化ルーチン44と、プロセスモデルからアドバンスド制御ブロックのための制御論理パラメータを作成し、これらの制御論理パラメータを、プロセス制御に用いるためにアドバンスド制御ブロック内に記憶またはダウンロードする制御論理パラメータ作成ルーチン46と、アドバンスド制御ブロックと併せて用いるオプティマイザを作成するオプティマイザルーチン48とを含む。これらのルーチン42、44、46、48は、一連の異なるルーチンから構成できる。この一連のルーチンには、プロセス出力の受信に適合した制御入力と制御信号のプロセス入力への提供に適合した制御出力とを有するアドバンスド制御エレメントを作成する第1のルーチンと、プロセス制御ルーチン（所望の構成ルーチンでよい）内のアドバンスド制御エレメントをユーザがダンウンロードし通信可能に接続できるようにする第2のルーチンと、アドバンスド制御エレメントを用いて各プロセス入力に対し励起波形を提供する第3のルーチンと、アドバンスド制御エレメントを用いて励起波形に対する各プロセス出力の応答を反映するデータを収集する第4のルーチンと、アドバンスド制御ブロックのための1組の入力を選択するまたはユーザが選択できるようにする第5のルーチンと、プロセスモデルを作成する第6のルーチンと、プロセスモデルからアドバンスド制御論理パラメータを作成する第7のルーチンと、アドバンスド制御論理および必要な場合はプロセスモデルを、アドバンスド制御エレメント内に配置してアドバンスド制御エレメントがプロセスを制御できるようにする第8のルーチンと、アドバンスド制御ブロック38内で用いるオプティマイザを選択するまたはユーザが選択できるようにする第9のルーチン等がある。
【００２１】
図2は、プロセス50に通信可能に連結されたアドバンスド制御ブロック38の1つの実施形態を更に詳細に示したブロック図である。アドバンスド制御ブロック38は、他の機能ブロックに提供する1組の操作変数MVを生成し、一方これらの他の機能ブロックはプロセス50の制御入力に接続されることが、この図から理解される。図2に示すように、アドバンスド制御ブロック38は、MPCコントローラブロック52、オプティマイザ54、目標変換ブロック55、ステップ応答モデルまたは制御行列56、および入力処理／フィルタブロック58を含む。MPCコントローラ52は、標準的なM×M平方（Mは1以上の任意の数字でよい）のMPCルーチンまたはプロシージャで、出力と同数の入力を有する。MPCコントローラ52は、入力として、プロセス50内で測定される1組のN個の制御変数CVおよび補助変数AV（値のベクトル）と、未来のある時期にプロセス50に提供される周知のまたは予想される変化または外乱である1組の外乱変数DVと、目標変換ブロック55から提供される1組の定常状態目標制御変数CVTおよび補助変数AVTとを受け取る。MPCコントローラ52は、これらの入力を用いて1組のM個の操作変数MVを（制御信号の形で）作成し、操作変数MV信号を供給してプロセス50を制御する。
【００２２】
さらに、MPCコントローラ52は、1組の予測定常状態制御変数CVSSおよび補助変数AVSSを、制御変数CV、補助変数AV（それぞれ予測水平線で）および操作変数MV（制御水平線で）の予測値を表す1組の予測定常状態操作変数MVSSと併せて算出し、入力処理／フィルタブロック58に提供する。入力処理／フィルタブロック58は、制御変数CVSS、補助変数AVSS、操作変数MVSSの決定された予測定常状態値を処理し、これらの変数に対するノイズおよび予測し得ない外乱の影響を減少させる。入力処理／フィルタブロック58は、ローパスフィルタ、またはこれらの値に対するノイズ、モデル化エラー、および外乱の影響を減少させる他のいかなる入力処理をも含んでもよく、またフィルタ処理された制御変数CVSSfil、補助変数AVSSfil、および操作変数MVSSfilをオプティマイザ54に提供することは理解されるであろう。
【００２３】
オプティマイザ54は、この例では線形計画法（LP）オプティマイザであり、選択ブロック62から提供されてもよい目的関数（OF）を用いてプロセス最適化を行う。あるいは、オプティマイザ54は二次計画法オプティマイザ、つまり線形モデルと二次目的関数を有するオプティマイザでもよい。一般的に、目的関数OFは、複数の制御変数、補助変数、操作変数（まとめてプロセス変数と称する）の各々に関連するコストまたは利益を特定し、オプティマイザ54は、この目的関数を最大化または最小化する1組のプロセス変数を探索してこれらの変数の目標値を決定する。選択ブロック62は、オプティマイザ54に提供される目的関数OFを、プロセス50の最適動作を定める様々な方法を数学的に表す1組の事前に記憶された目的関数64の1つとして選択してもよい。例えば、ある事前に記憶された目的関数64はプラントの利益を最大化するよう構成され、別の目的関数64は供給が不足している特定の原材料の使用を最低限に抑えるよう構成され、また別の目的関数64はプロセス50内で製造される製品の品質を最大化するよう構成されてもよい。一般的に、目的関数は、制御変数、補助変数及び操作変数それぞれの動きに関連するコストまたは利益を用いて、制御変数CVの設定点または範囲および補助変数AVと操作変数MVの限界によって定められる許容される1組の地点内で、最も最適なプロセス動作点を決定する。当然、原材料の使用や利益率等の複数の懸念事項それぞれをある程度最適化する目的関数を含む、ここに述べられているものに代わり、またはそれに加えて、所望の目的関数を用いることもできる。
【００２４】
ユーザまたはオペレータは、オペレータまたユーザの端末（図1のワークステーション13の1つなど）上で用いる目的関数64を提示することによって、ある目的関数64を選択してもよく、この選択は入力66を介して選択ブロック62に提供される。入力66に対して、選択ブロック62は選択された目的関数OFをオプティマイザ54に提供する。当然、ユーザまたはオペレータはプロセスの動作中に使用する目的関数を変更することができる。所望する場合は、ユーザが目的関数を提供または選択しない場合にデフォルト目的関数を用いてもよい。可能なデフォルト目的関数の1つを以下に詳しく説明する。図1のオペレータ端末13には、アドバンスド制御ブロック38の一部として示されてはいるが様々な目的関数が記憶されており、これらの目的関数の1つを、このアドバンスド制御ブロック38の作成中または生成中に該ブロックに提供してもよい。
【００２５】
目的関数OFに加えて、オプティマイザ54は入力として、1組の制御変数設定点（通常はプロセス50の制御変数CVのためにオペレータが特定した設定点で、オペレータまたは他のユーザによって変更可能）と、各制御変数CVに関連する範囲およびウエイトまたは優先順位とを受け取る。更にオプティマイザ54は、プロセス50の制御に用いられる、補助変数AVのための1組の範囲または制約限界および1組のウエイトまたは優先順位と操作変数MVのための1組の限界とを受け取る。オプティマイザ54はまた、1つまたは複数のプロセス変数と関連する、設定点、好ましい動作範囲、理想休止値、その他の限界を受け取ってもよい。一般的に、補助変数および操作変数の範囲は補助変数および操作変数の限界を定め（通常はプラントの物理的な特性に基づく）、制御変数の範囲は制御変数がプロセスをうまく制御するために動作できる範囲を提供する。制御変数、補助変数および操作変数のウエイトは、最適化プロセス中の制御変数、補助変数および操作変数の相互の相対的重要度を特定してもよく、状況によって、これらの変数と関連する制約または限界を侵害する必要がある場合は、オプティマイザ54が制御目標解を生成できるようにするために用いられてもよい。
【００２６】
オプティマイザ54は、動作中、線形計画法（LP）技術を用いて最適化を行ってもよい。周知のように、線形計画法は目的関数と称される一定の追加関数を最大化または最小化する1組の線形等式および不等式を解くための数学的な技術である。上記のとおり、目的関数はコストや利益といった経済価値を表すこともあれば、経済目的の代わりに、またはこれに加えて他の目的を表すこともある。更に、以下に説明するが、目的関数は、CV、AV、MVの全てが事前に設定された限界内に入る解がない場合は、制約または限界の侵害に関連するコストまたはペナルティを含むよう調整し、許容される解を決定するためにこれを利用できるようにすることもある。
【００２７】
理解されるとおり、定常状態ゲイン行列は、操作変数および制御変数または補助変数の可能な各対のための定常状態ゲインを定める。言い換えると、定常状態ゲイン行列は、操作変数および外乱変数各々のユニット変化のための各制御変数および補助変数における定常状態ゲインを定める。この定常状態ゲイン行列は一般的にN×M行列であり、Nは制御変数および補助変数の数、Mはオプティマイザルーチンで用いられる操作変数の数である。一般的に、NはMより大きくても、等しくても、小さくてもよく、最も一般的なケースではNはMよりも大きい。
【００２８】
周知のまたは標準的なLPアルゴリズムまたは技術を用いると、オプティマイザ54は一般に、選択された目的関数OFを最大化または最小化する1組の目標操作変数MVTを決定するよう（定常状態ゲイン行列から決定される）反復し、その結果可能な場合は、制御変数CV設定点範囲限界、補助変数AV制約限界、および操作変数MV限界内で、これを満たすまたは満たさないプロセス動作を行う。1つの実施形態では、オプティマイザ54は操作変数の変更を実際に決定し、予測定常状態の制御変数CVSSfil、補助変数AVSSfilおよび操作変数MVSSfilの表示を用いて、プロセス動作を現行の動作から変更させるよう決定する、つまり、目標または最適プロセス動作点に達するプロセス中にMPC制御ルーチンのダイナミック動作を決定する。このダイナミック動作は、現行の動作点から目標動作点への移行中にいかなる制約限界をも侵害しないことを確実にすることが望ましいため、重要である。
【００２９】
ある実施形態において、LPオプティマイザ54は以下の形式の目的関数を最小化するよう設計されてもよい。
【００３０】
【数１】
2004265381.tif 000003
【００３１】
ここで、Q = 総コスト/利益、P = AVS、CVSと関連する利益ベクトル、C = MVSと関連するコストベクトル、A = ゲイン行列、ΔMV = MVSにおける変化を算出するためのベクトル、である。
【００３２】
利益値は一般に正数、コスト値は一般に負数で、目的に対する各々の影響を示す。この目的関数または他の目的関数を用いて、LPオプティマイザ54は、制御変数CVが目標設定点からの範囲内に収まり、補助変数AVが自身の上限および下限の制約内に収まり、操作変数MVが自身の上限および下限内に納まるようにしながら、目的関数を最小化する操作変数MVにおける変化を算出する。
【００３３】
使用可能なある最適化プロシージャにおいて、操作変数の増分値は現時点（t）で用いられ、操作変数の増分の合計は、位置的な現在値ではなく予測水平線の端点で決定される制御変数および補助変数の増分値と併せて予測水平線に渡り用いられる。これはLPアプリケーションでは一般的である。当然、LPアルゴリズムはこのバリエーション用に適切な修正が加えられてもよい。いかなる場合でも、LPオプティマイザ54は定常状態モデルを用いてもよく、その結果、そのアプリケーデョンには一般的に定常状態が要求される。MPC設計で普段用いられる予測水平線により、自己規制プロセスのために未来定常状態が保証される。予測水平線をp、制御水平線をcとすると、増分形式で表されるm×nの入力・出力プロセスのための、可能な1つの予測プロセス定常状態の等式は次の通りである。
【００３４】
【数２】
2004265381.tif 000004
【００３５】
ベクトルΔMV(t+c)は、すべてのコントローラ出力mviによってもたらされる制御水平線に渡るの変化の合計を表すため、次のようになる。
【００３６】
【数３】
2004265381.tif 000005
【００３７】
これらの変化は、操作変数MVおよび制御変数CVの双方に関する限界を満たすことが望ましく（ここで補助変数は制御変数として扱われる）、したがって次のようになる。
【００３８】
【数４】
2004265381.tif 000006
【００３９】
【数５】
2004265381.tif 000007
【００４０】
この場合、製品価値を最大化し原材料コストを最小化する目的関数は、次のように併せて定めることができる。
【００４１】
【数６】
2004265381.tif 000008
【００４２】
ここで、UCVは制御変数CVプロセス値におけるユニット変更のためのコストベクトル、UMVは操作変数MVプロセス値におけるユニット変更のためのコストベクトルである。
【００４３】
上記の等式(1)を適用すると、目的関数は操作変数MVに関して次のように表すことができる。
【００４４】
【数７】
2004265381.tif 000009
【００４５】
LPアルゴリズムは、最適な解を探索するために、等式(7)で定められる領域内の初期頂点のための目的関数を計算し、目的関数の最大値（最小値）を有する頂点が最適解であると該アルゴリズムが決定するまで、各ステップ毎に解を改善する。そして、決定された最適操作変数値は、制御水平線内で達成される目標操作変数MVTとしてコントローラに適用または提供される。
【００４６】
一般的に、作成された行列上でLPアルゴリズムを走行させた場合、3つの結果が想定できる。1つ目は、目標操作変数MVTのための独自の解が得られること。2つ目は、その解には境界がないこと。ただし、これは制御変数および補助変数各々に上限と下限がある場合には起こらない。3つ目は、プロセス変数の限界を満たす解がないこと。つまり、これはプロセス変数の境界または制約が厳しすぎることを意味する。3番目のケースに対処するためには、制約全体を緩和し、緩和した制約で再びオプティマイザを走行させて解を得てもよい。基本的に、操作変数の限界（上限／下限）をオプティマイザが変更することはできないことが前提となっているが、この前提が事実である必要はない。補助変数の制約または限界（上限／下限）にも同様の前提を用いることができる。しかし、オプティマイザは、制御変数CVの特定の設定点への走行（CV設定点制御）から、制御変数CVの設定点からの範囲またはこの周辺の範囲内のいかなる値への走行（CV範囲制御）へと変更することができる。この場合、制御変数の値は特定の設定点ではなくある範囲内に置かれる。自身の制約をを侵害する補助変数AVがいくつかあり、CV設定点制御からCV範囲制御へと移行しても解をもたらさない場合は、提供されたウエイトまたは優先順位の指定に基づいて補助変数の制約を緩和または無視することも可能である。ある実施形態において、解は、補助変数の平方エラーを最小化し、各々がその制約の侵害を許容すること、または優先順位が最も低い補助変数の制約を放棄すること、を順次行うことにより決定される。以下に更に詳述するが、限界を超えた解に対処する他の方法としては、事前に設定された限界または制約を侵害する各プロセス変数に関するコストまたはペナルティを評価するスラック変数またはペナルティ変数を含むよう目的関数を変更し、新たな目的関数でオプティマイザを再走行させる、および／または限界を超える1つまたは複数のプロセス変数に関する限界を再定義する方法、新たな限界内のプロセス変数に関するペナルティを含むよう目的関数を変更してこれらの変数を当初の限界に向かって走行させ、新たな目的関数でオプティマイザを再走行させてこれらの再定義された限界内で最適な解を探索する方法等がある。まずは、最初に目的関数を選択する方法について説明する。
【００４７】
上記のとおり、目的関数OFは制御ブロック生成プログラム40によるデフォルトによって選択または設定される。最適化する能力が提供されることが望ましいが、制御変数の設定点が、補助変数および操作変数の動作制約を監視するような方法で維持されることしか要求されない状況も多い。これらのアプリケーションについては、ブロック38は単なるMPC機能ブロックとして構成されてもよい。このような簡単な使用を可能にするために、デフォルト「動作」目的関数は、デフォルト補助変数AVウエイトと共に、様々な変数に割り当てられたデフォルトコストと共に自動的に作成されてもよい。これらのデフォルトは、補助変数AVまたは操作変数MVと等しい、または別の所定のコスト割当てをもたらす、補助変数AVおよび操作変数MVのあらゆるコストを設定してもよい。エキスパート・オプションが選択されたら、ユーザは追加の最適化選択を作成し、様々な目的関数64に関連するコストを定めてもよい。またエキスパート・ユーザは、デフォルト目的関数のデフォルト補助変数AVおよび制御変数CVウエイト、加えて制約限界または設定点範囲侵害コストを、修正することができる。これは、以下に詳述するが、オプティマイザが当初、実現可能な解を得られない場合に、オプティマイザによって使用されることができる。
【００４８】
1つの実施形態において、例えばプロセス構成に関して経済的要素が定められていない場合、目的関数は、MPC構成から自動的に構成されてもよい。一般的に、目的関数は次の数式を用いて構成することができる。
【００４９】
【数８】
2004265381.tif 000010
【００５０】
変数CjおよびPjは構成設定から定義できる。特に、制御変数CV設定点は下限（LL）または上限（HL）のみで定義されると仮定すると、Pj値は次のように定義できる。
【００５１】
設定点がLLで定義されるかまたは最小値が選択される場合、Pj=-1
設定点がHLで定義されるかまたは最大値が選択される場合、Pj=1
補助変数AVに関する構成情報が入力されないと仮定すると、補助変数AVについてはすべてPj=0である。同様に操作変数MVについても、Cj値は好ましい操作変数目標MVTが定義されるかどうかによって異なる。好ましい操作目標MVTが定義される場合は次のようになる。
【００５２】
MVTがHLまたは最大値が選択される場合、Cj=1
MVTがLLまたは最小値が選択される場合、Cj=-1
MVTが定義されない場合、Cj=0
所望する場合は、オプティマイザ54をMPCコントローラ52と併せて使用する選択は調整可能であり、それによって最適化の度合いを提供することができる。この機能を実行するために、コントローラ52で用いられる操作変数MVの変更は、MPCコントローラ52とオプティマイザ54によって決定される操作変数MVの変更に様々なウエイトをかけることによって、行うことができる。このような操作変数MVのウエイトの組み合わせは、ここでは有効MV（MVeff）と称する。有効MVeffは次のように決定することができる。
【００５３】
【数９】
2004265381.tif 000011
【００５４】
Sは任意にまたは発見的に選択される。通常、Sは1より大きく10の範囲内の可能性が高い。ここで、α=1の場合、オプティマイザは発生点に設定された場合と同様に有効出力に寄与する。α=0の場合、コントローラはMPCダイナミック制御しか提供しない。当然、0から1までの間の範囲の場合は、オプティマイザおよびMPC制御に様々な寄与をもたらす。
【００５５】
上記のデフォルト目的関数は、オプティマイザの様々な可能な動作モードの最中に該オプティマイザの動作を確立するために用いてもよい。特に、制御変数CVの数が操作変数MVの数と一致する場合、デフォルトの設定に伴って予想される行動は、制御変数CV設定点は、補助変数AVおよび操作変数MVがその限界内に入るよう計画されている限りにおいて、維持できるということである。補助変数または操作変数は限界を超えることが予測される場合、制御変数作動設定点は、可能な場合はこれらの限界を侵害しないようその範囲内で変更することができる。この場合、オプティマイザ54が補助変数と操作変数の限界を満たす解を得られず、制御変数をその範囲内で維持したとすると、制御変数はその範囲内で維持され、補助変数および／または操作変数はその制約限界を逸脱することが許容される。最適な解を探索するために、限界を侵害するよう計画されたこれらの補助変数AVおよび操作変数MVは同等に扱われ、これらの平均限界逸脱は最小化される。この行動を達成するために、目的関数によって用いられるデフォルトコスト／利益は、逸脱が設定点を下回るよう範囲が定義されている場合は制御変数CVに1の利益が割り当てられるように、また逸脱が設定点を上回るよう範囲が定義されている場合は制御変数CVに-1の利益が割り当てられるように、自動的に設定されてもよい。限界内の補助変数AVには利益0が割り当てられ、操作変数MVにはコスト0が割り当てられてもよい。また、補助変数には利益1または-1が割り当てられ、操作変数にはコスト0.1が割り当てられてもよい。
【００５６】
制御変数CVの数が操作変数MVの数よりも少ない場合は、余分な自由度を用いて、構成された操作変数MVの最終休止地点と関連する要件を示すことができる。ここで、制御変数設定点（制御変数CV設定点が定義されている場合）は、補助変数および操作変数がその限界内に入るよう計画されている限りにおいて、維持できる。操作変数が、構成された最終休止位置から逸脱する平均値は最小化される。1つまたは複数の補助変数および操作変数がその限界を侵害すると予測される場合、制御変数作動設定点は、これらの限界が侵害されることがないよう、その範囲内で変更される。この条件において複数の解が存在する場合、制御に用いられる解は、構成された最終休止位置からの操作変数の逸脱の平均値が最小化される解となる。
【００５７】
正常な状態において、上記の方法でオプティマイザ54によって生成される目標設定点は許容可能な範囲内となり、操作変数、補助変数および制御変数は現在の限界または範囲内のまま維持される。しかし、制約限界内では補償できない程に外乱が深刻な場合は、侵害される制約もいくつか出てくる。その場合、オプティマイザ54は、上記の設定点緩和技術と併せてデフォルトまたは選択された目的関数を用いて実現可能な解（つまりいかなる制約または限界も侵害されない解）を得られない可能性がある。このような状況で最適化を提供するために可能な方法としては、いかなる最適化動作をも放棄し、優先順位の低い制約を外すこと等がある。
【００５８】
最適化を放棄することは実現不可能な解に対処するための最も簡単かつ可能な方法ではあるが、これは制約を扱うための最適な方法ではない。その理由は、限界内に実現可能な解がない場合でも、多くの場合、最適化の目的を考慮に入れて制約の侵害を最小化することが可能だからである。さらに、優先順位の低い制約を外すことは究極の行動であり、これは優先順位の高い制約を満たすという点では役立つが、外された制約の限界からの制御されない乖離が過度に生じる可能性があるため、受け入れられないこともある。優先順位の低い制約を外すことに関するもう1つの問題として、解を得るために優先順位の低い制約をいくつ外さなければならないかを予測する必要がある。このような予測は、システム内で利用可能な自由度に基づくものであり、最適化プロシージャの前に算出するか、または該プロシージャ中に決定しなければならない。後者の場合、制約を順次外していき最適解を生成するプロセスを、解が得られるまで繰り返す必要が生じることもあり、このようなオープンエンドの反復プロセスは多くのリアルタイム最適化アプリケーションでは望ましいものではない。
【００５９】
しかし、状況によっては、実現可能な解が存在しない目的関数が当初構成されている場合でも、変数の優先順位と制約侵害の大きさに応じて制約侵害の各々に関して目的関数内でペナルティを割り当て（一般的には目的関数内でスラック変数を用いると称される）、1つまたは複数のプロセス変数について制約限界を再定義し、再定義された限界を用いて該プロセス変数を前の限界に向かって進ませる一方、他のプロセス変数が当初の制約または限界から外れないよう目的関数を再定義することによって、またはこれら双方の技術を組み合わせることによって、許容できる解を得ることも可能であることが判明した。
【００６０】
より具体的には、実現不可能なオプティマイザの解はスラック変数という周知の概念を用いて対応することができる。この技術は、侵害される制約の優先順位および限界侵害の大きさのいずれか片方または両方に応じてペナルティを割り当てる。一般的に、従来技術では、コントローラ制約限界侵害が存在する場合の最適化においてスラック変数を用いるのが可能であると提示されているが、本発明者は、これを実施するための方法が具体的に開示されていないことを認識している。したがって、以下に述べる技術は、本発明者が、当初の目的関数を用いて生成された解に必然的に制約侵害が存在する場合に、スラック変数を用いてオプティマイザによって用いられる目的関数を再定義するために開発したものである。
【００６１】
一般的に、スラック変数とは、予測プロセス変数が侵害される限界を（上方または下方に）超える値または程度と定義される。スラック変数を最小化するために（それによって限界侵害を最小化するために）、オプティマイザによって用いられる目的関数は、ゼロ以外のスラック変数値のペナルティを含めて再定義され、結果として、オプティマイザが、目的関数によって定められる経済的目的などの他の目的と併せて、スラック変数を最小化する解を探索する。この技術によれば、オプティマイザが実現不可能な解しか提供できないという状況になった場合でも、目的関数は、各プロセス変数（操作変数、補助変数または制御変数等）の限界侵害と関連する、または少なくとも事前に設定された限界を超えると計画された各プロセス変数と関連する、コストまたはペナルティを含めて再定義される。所望の場合は、目的関数が、関連する限界を侵害する各プロセス変数の各限界侵害から発生するコストまたはペナルティを定義するスラック変数を含むように、各プロセス変数に関して同一のまたは異なるペナルティを定義してもよい。再定義された目的関数内のスラック変数のコストまたはペナルティは、限界侵害の大きさおよび該限界侵害が発生するプロセス変数に応じて変化する。ユニットコストまたはペナルティは、例えば、優先順位の高いプロセス変数限界については高くなり、優先順位の低いプロセス変数限界については低くなる。いかなる場合でも、再定義された目的関数は、事前に定義された経済的要因（利益およびコスト）と1つまたは複数のプロセス変数のゼロでないスラック変数の存在と関連するコストまたはペナルティとの双方が存在する中で、再定義された目的関数を最小化（または最大化）することによって最適解を探索するために用いられる。
【００６２】
より具体的には、線形計画法においてスラック変数ベクトルSmax・0およびSmin・0は次のように用いることができる。
【００６３】
【数１０】
2004265381.tif 000012
【００６４】
【数１１】
2004265381.tif 000013
【００６５】
ここで、AVはこれらの等式においてはCV項に含まれる（つまり、CV変数は制御変数が補助変数であるか否かにかかわらず全ての出力を含む）ことは理解されるであろう。線形計画法モデルにおいては等式(10)と(11)とに同等性が求められ、スラック変数SminおよびSmaxは、特定のアプリケーションの意味を持たない支持的な仮パラメータの役割しか果たさない。このアプリケーションにおいて、追加的なスラック変数S+およびS-は、スラックベクトル上の限界範囲を拡大するために用いられ、S+・0は上限増に用いられ、S-・0は下限減に用いられる。等式(10)および(11)は、次のように再定義されるか、または書き直されると効果的である。
【００６６】
【数１２】
2004265381.tif 000014
【００６７】
【数１３】
2004265381.tif 000015
【００６８】
ここで、値S+およびS-は各々、予測されるプロセス変数が低制約の限界および高制約の限界を侵害する値である。この定義により、新たなスラック変数S+およびS-は、目的関数内でペナルティを課すファクタを定義し、範囲内でまたは範囲から最小限のオーバーランでLP解を得るために用いられる。一例として、目的関数は項PST-*S-およびPST+*S+を加えることによって拡張され、次のようになる。
【００６９】
【数１４】
2004265381.tif 000016
【００７０】
ここで、PS-は下限を侵害するスラック変数ペナルティベクトル、PS+は上限を侵害するスラック変数ペナルティベクトルであり、またPS->>UCVおよびPS+>>UCV（符号>>は非常に大きいを意味する）である。
【００７１】
次いで、新たに定義された目的関数は、新たに定義された目的関数を最小化することによって値S-およびS+に関連するコストによって定義されるようにこれらの値が最小になるようにして、目的関数の他の目的に関して限界のオーバーランを最適に減少させるという意味において最適な解を得るよう、標準的な方法で用いられてもよい。
【００７２】
一般的に、スラック変数S-およびS+に関連するペナルティは、目的関数内でまたはこれに関連して最適化される経済的コストあるいは利益よりもはるかに高くなるべきである。したがって、ベクトルPS-およびPS+（これらは異なるスラック変数と関連するペナルティを定義する）は、目的関数内で用いられる経済的コスト／利益ベクトルよりもはるかに大きいあらゆる要素を有するべきである。一般的に、ベクトルPS-およびPS+の最小要素は、UCVベクトルの最大要素よりも数倍大きいと仮定することは合理的である。したがって、ここに述べるように、スラック変数は経済的コストや利益等と比較して、目的関数内で高いペナルティを課されるべきである。
【００７３】
図5は、プロセス変数（関連する設定点なし）の制約侵害に対応するためのスラック変数の使用を図示する。特に、図5は、(1)点206で示すように、予測プロセス変数が事前に設定された制約限界（線202および204で定義）内にあるケース、(2)点208で示すように、予測プロセス変数が最大制約限界202を超えるケース、および(3)点210で示すように、予測プロセス変数が最低制約限界204を下回るケース、について、Smax(i)とSmin(i)の値を示す。第1のケース（点206に関連）では、高制約および低制約の限界は侵害されていないため、S+(i)とS-(i)の値はゼロである。この場合、目的関数内のプロセス変数にペナルティは与えられないか、または関連付けされない。しかし、第2のケース（点208で表示）では、点208が上限202を越えるため、S+(i)の値はゼロではない。太点線は、スラック変数S+(i)の値を示しており、この値には、目的関数内においてこのプロセス変数の上限侵害と関連するユニットコストが乗算される。同様に、第3のケース（点210で表示）では、点210が下限204を超えるためS-(i)の値はゼロではない。ここでの太点線は、スラック変数S-(i)の値を示しており、この値には、目的関数内においてこのプロセス変数の下限侵害と関連するユニットコストが乗算される。当然、図5は信号プロセス変数と関連する単一時間を示しており、再定義された目的関数は徐々に制御水平線まで制約侵害を最小化することは理解されるであろう。
【００７４】
オプティマイザは、上記のように拘束限界侵害を最小化するのに加えて（またはそれに代えて）、現実不可能な解を得た場合でも、または他の理由で設定点を最適化する場合でも、ペナルティを課されたスラック変数を用いて設定点最適化をもたらすこともできる。特に、ペナルティを課されたスラック変数は、実現不可能な解に応答して、または他の所望の理由により、事前に選択された設定点（例えばオペレータまたは他のソースによって提供された設定点）の周囲に定められた許容可能な範囲内で設定点を緩和させ、他のプロセス変数が自身と関連する限界を満たすよう、または満たす値に近づくようにするために、用られてもよい。設定点範囲には、高範囲（設定点が事前選択設定点より高い範囲内で逸脱できる）、低範囲（設定点が事前選択設定点より低い範囲内で逸脱できる）、または両方が含まれる。本技術で用いられる該設定点範囲は、片側でも両側でもよい。片側範囲は、事前選択設定点範囲外に逸脱するための目的関数内のペナルティを定めるが、設定点範囲内の設定点から逸脱するための目的関数内の経済的コストのみを提供する、最小化目的関数または最大化目的関数と関連してもよい。一方、両側範囲は通常、経済的目的は有しないが、範囲外で高いペナルティを課されたスラック変数を用いて拡大された好ましい範囲内で、事前選択設定点にできるだけ近い最適解を得るために用いられる。好ましい設定点範囲がゼロと等しい場合、この状況は、周囲にペナルティを課されたスラック変数を伴う設定点と実質的に等しい。
【００７５】
図6および図7は各々、拡大範囲を伴うおよびこれを伴わない場合のスラック変数の使用を示す。図6において、点215は、線217および219によって画成される範囲内のプロセス変数の設定点を示す。線217および219で限られる範囲内の設定点からの逸脱に関連するスラック変数ペナルティはない。しかし、点221で示すようにプロセス変数が範囲の高範囲限界217を超える場合は、目的関数内におけるこの逸脱のペナルティを評価するために、上述した制約侵害の場合にスラック変数を用いるのと同様に、ペナルティを課されたスラック変数S+(i)が用いられる。同様に、点223で示すようにプロセス変数が低範囲限界219を超える場合は、目的関数内におけるこの逸脱のペナルティを評価するために、上述した制約侵害の場合にスラック変数を用いるのと同様に、ペナルティを課されたスラック変数S-(i)が用いられる。
【００７６】
図7は、拡大範囲の状況におけるスラック変数の使用を示す。ここで、第1のスラック変数ペナルティは、第1の範囲内の設定点からの逸脱に関して評価され、高いペナルティを課されたスラック変数（高ペナルティを課されたコストを伴う）は第1の範囲外の設定点の可能な範囲を拡大するために用いられる。特に、点230は、予測プロセス変数が、事前選択設定点231より上だが線232および234によって画成される事前設定許容範囲内に位置する状況を示す。ここで、変数S(i)aboveは点230の事前設定設定点231からの逸脱に関連するペナルティを定めるために用いられる。点線で示すように、S(i)above変数の非ゼロ値は目的関数内でペナルティが課される。一方、点236は、設定点と関連する操作変数が事前設定高範囲の限界232をS+(i)値だけ越える場合の、高ペナルティを課されたスラック変数の使用を示す。ここで、大きい太点線は、S+(i)値が、目的関数内でS(i)above変数と比べてより高いペナルティを課され、それによって範囲限界232外の逸脱は、範囲限界232内での設定点231からの逸脱よりも、はるかに大きなペナルティが課されるようにすることを示している。
【００７７】
同様に、点238は、予測プロセス変数が、事前選択設定点231より下だが線232および234によって画成される事前設定許容範囲内に位置する状況を示す。ここで、変数S(i)belowは点238の事前選択設定点231からの逸脱に関連するペナルティを定めるために用いられる。点線で示すように、S(i)below変数の非ゼロ値は目的関数内でペナルティが課される。さらに、点240は、設定点と関連するプロセス変数が事前設定低範囲の限界234をS-(i)値だけ越える場合の、高ペナルティを課されたスラック変数の使用を示す。ここで、大きい太点線は、S-(i)値が、目的関数内でS(i)below変数と比べてより高いペナルティを課され、それによって範囲限界234外の逸脱は、範囲限界234内での設定点231からの逸脱よりも、はるかに大きなペナルティが課されるようにすることを示している。
【００７８】
両側範囲を有する設定点制御に関する等式は、次のように表すことができる。
【００７９】
【数１５】
2004265381.tif 000017
【００８０】
【数１６】
2004265381.tif 000018
【００８１】
【数１７】
2004265381.tif 000019
【００８２】
ここで、SbelowおよびSaboveは設定点の下および上に位置する解のスラック変数のベクトルであり、項PSPTbelow*Sbelow+PSPTabove*Saboveは目的関数に加算されるべきであり、ここで、PSPTbelowは設定点より下に位置する解のユニットペナルティであり、PSPTaboveは設定点より上に位置する解のユニットペナルティである。目的関数は上記に定めるS-およびS+変数のスラック変数ペナルティをも含むことは理解されるであろう。
【００８３】
ペナルティを課されたスラック変数を伴う制約に対応するためのこの技術は、実現不可能な状況への対応において著しいフレキシビリティをもたらす。特に、ペナルティを課されたスラック変数を適用することによって、オプティマイザは、解が事前選択限界または制約から外れる場合でも、目的関数によって定義される、全体的な制約侵害コストを最小化する最適解を常に探索することができる。しかし、プロセス変数出力の中には、ペナルティを課されたスラック変数で再定義されたオプティマイザを実行する前には限界内であったが、スラック変数を用いた解の結果、限界を超えるものもある。さらに、特定のプロセス変数に関して限界をオーバーランする量は、解を生成する前に量的に定義されるものではない。この2つの特徴は、多くのアプリケーションにおいて望ましいことではない。なぜなら、アプリケーションの中には、優先順位の高いプロセス変数を範囲内に入れるために当初範囲限界内にあった優先順位の低いプロセス変数を限界から外すといったことをしないよう求められるものもあるからだ。また、アプリケーションの中には、すべてのプロセス変数に関して十分に定義された解の限界が求められるものもある。これら2つの目的は、実現不可能な状況または解に応答して制約モデルを再定義することにより満たすことができる場合もある。
【００８４】
特に、厳しく定義された限界侵害の程度を履行するように実現不可能性に対応するために、制約モデル自体を再定義することもある。当然、この再定義は第1の最適化動作が行われ、ペナルティを課されたスラック変数が使用されず当初の限界内に解が存在しない場合、またはペナルティを課されたスラック変数が使用されたがペナルティが課されたスラック変数による解が受け入れられない場合、これに続いて実行される。一般的に、再定義された限界は、当初の限界およびいくらかの名目値を引いた当初の限界を侵害する予測プロセス変数（つまり制御変数CV）の値として設定される。これらの新たに定義された限界は、第2の最適化走行において、該新たに再定義された限界を侵害せずに目的関数を最小化または最大化する解を探索するために用いられる。この限界の再定義は、当初の限界を侵害するプロセス変数が悪化するのを防ぐと同時に、当初の事前設定限界を侵害しなかった他のプロセス変数が第2の最適化走行でこれを侵害するのを防ぐ。しかし、プロセス変数は、当初の限界内（プロセス変数の予測値が当初の限界を侵害しない場合）または新たに定義された限界内（プロセス変数の予測値が当初の限界を侵害する場合）で最適化が続けられ、限界侵害が存在する中で限られた最適解を提供する。
【００８５】
この技術は、次のように制御変数CVについて数学的に定義することもできる。解がなく高限界CVHLを越える場合、CVの新限界は次のように定義される。
【００８６】
CVHL' = CVprediction
CVLL' = CVHL-D
ここで、解が当初の限界と同一になるのを避けるには、D=1-3%である。
【００８７】
同様に、低限界CVLLを越える場合、新限界は次のように定義される。
【００８８】
CVLL' = CVprediction
CVHL' = CVLL+D
当然、操作変数MVおよび補助変数AV等の他のプロセス変数についても同様の限界が定義できる。
【００８９】
図8に、これらの新たに定義された限界の概要を示す。特に、当初の制約CVHLおよびCVLLは図8の左側に線250および252で示され、これらの制約を侵害する2つのCV予測値（当初の目的関数を用いたオプティマイザの第1のパスによって生成される）は点254および256で示されている。2組の再定義された限界CVHL'およびCVLL'は、線258と260、および線262と264の組で示されている。理解されるとおり、再定義された限界258と260との組は点254の新たな限界に対応し、上側は点254によって、下側は当初の限界250からデルタ関数を引いた地点で限られる。同様に、再定義された限界262と264との組は点256の新たな限界に対応し、上側は点256（最大の正側）によって、下側は当初限界252にデルタ関数を加えた地点（最小の正側）で、限られる。これらの新たな限界の組は、点254または256（いずれか適切な方）の新たな限界として目的関数内で用いられ、新たな目的関数はこれらの限界から外れた解を得ることは認められない。また、新たな限界260（点254の場合）または新たな限界262（点256の場合）と新たなCV値との距離に基づき、高ペナルティが課された係数が割り当てられ、目的関数においてこれを用いて、新たな限界を有する新CVを新たな下限260へ、または新たな上限262へ進ませてもよい。より特定的には、制約対応モデルまたは限界を再定義した後、範囲または限界を超えるすべてのCVに関するペナルティベクトルは、該CVを超過限界の方向に進ませるように再計算されてもよい。この目的を達成するために、限界侵害に対するペナルティは経済的評価をオーバーライドすべきであり、また新たな限界に関連するペナルティは高ペナルティを課された変数となるべきである。
【００９０】
このように、限界を超えると予測される各プロセス変数（例えばCV）について、プロセス変数に領域を与えるために新たな限界が確立されるが、オプティマイザの第2のパスにあるプロセス変数を当初の限界へと進ませるために目的関数においてペナルティを課す方法が用いらる。これにより、いかなる限界（限界を超えるプロセス変数の場合は新たに定義された限界、また当初の限界を侵害しないプロセス変数の場合は当初の限界）をも侵害することなくプロセス変数を最適化する。しかし、この場合、限界（目的関数の第1のパス内で当初限界を侵害しなかったプロセス変数の当初限界、または目的関数の第1のパス内で当初限界を侵害したプロセス変数の再定義された限界）は限られ、オプティマイザはこれらの限界内で解を探索することができる。
【００９１】
再定義された限界および該限界に関するペナルティ係数を用いたLP目的関数の一般的な形式は次のように表される。
【００９２】
【数１８】
2004265381.tif 000020
【００９３】
プロセス出力のコストがベクトルによって表される場合は、次のようになる。
【００９４】
【数１９】
2004265381.tif 000021
【００９５】
結果、ベクトルは次のようになる。
【００９６】
【数２０】
2004265381.tif 000022
【００９７】
制約を優先順位に対応させるために、侵害された制約出力の追加のペナルティviは、プロセス変数（例えばCV）が上限を超える場合は負の値として定義し、プロセス変数が下限を超える場合は正の値として定義することができる。追加ペナルティviのコストベクトルへの寄与は、次のように表される。
【００９８】
【数２１】
2004265381.tif 000023
【００９９】
制約が経済的要素よりも優先順位に対応するために、このベクトルはあらゆる要素がベクトルCMTよりも大きくなければならない。したがって、次のようになる。
【０１００】
【数２２】
2004265381.tif 000024
【０１０１】
ここで、riは再定義されたCVの優先順位／ランク数、rmaxは最低の優先順位／ランクに関する最大優先順位／ランク数、rminは最高の優先順位／ランクに関する最小優先順位／ランク数である。
【０１０２】
高予測|vi|を用いることによって、計算を簡単にすることができる。
【０１０３】
【数２３】
2004265381.tif 000025
【０１０４】
実際的な目的においては、極めて低いプロセスゲインを計算から排除するために|aij|>.05と仮定する。事前設定限界または事前設定範囲を越えるすべてのプロセス変数（例えばCV）に関するvペナルティを計算した後で、ペナルティはプロセス変数の優先順位に応じて次のように調整してもよい。
【０１０５】
【数２４】
2004265381.tif 000026
【０１０６】
各々の制約を超える特定のプロセス変数のコストを等式(23)に従って算出した後、すべての操作変数のあらゆる制約の総コストを等式(19)から算出してもよい。ペナルティを算出する手順は、制約を侵害するすべてのCVに対して、等式(22)
を適用し、優先順位の最も低い侵害された制約（ri最大値）から優先順位の最も高い侵害された制約へと順次適用すべきである。実際的な目的のためには、有効ペナルティベクトルは正規化してもよい。可能な正規化技術の1つとして、すべてのベクトル要素を最大要素で割り、100を掛ける方法がある。
【０１０７】
所望する場合、制約対応の概念は上記の2つのアプローチを統合した状況、特にペナルティを課されたスラック変数とモデル再定義とを組み合わせた状況まで拡大することも可能である。この統合アプローチにおいて、制約侵害がない場合、またはペナルティを課されたスラック変数を用いて算出された最適解が受け入れられるものである場合は、ペナルティが課されたスラック変数のみが用いられる。しかし、制約が侵害されペナルティが課されたスラック変数による解が受け入れられないものである場合は、プロセス出力限界が再定義される。この場合、新たな出力限界は、図8に示すように、限界を侵害する予測プロセス出力に関する予測と等しくなる。しかし、当初の限界も、前述のスラック変数アプリケーションの場合と同様に、ペナルティを課されたスラック変数を定義するために依然として用いられる。
【０１０８】
図9は、スラック変数および限界再定義を統合した使用を示す。特に、点270は、線272および274で示される当初限界CVHLおよびCVLL内の予測プロセス変数つまりCVを示す。点276は上限CVHL272を侵害する予測プロセス変数つまりCVを示す。この場合、図8の限界再定義に関して既に概説したように、限界はCVHL'およびCVLL'として再定義される。また、スラック変数S'maxおよびS+(i)は、上記のようにスラック変数ペナルティを用いて当初限界の侵害に対するペナルティを評価するために使用される。同様に、点280は下限CVLL274を侵害する予測プロセス変数つまりCVを示す。この場合、図8の限界再定義に関して既に概説したように、限界はCVHL'およびCVLL'として再定義される。また、スラック変数S'minおよびS-(i)は、上記のようにスラック変数ペナルティを用いて当初限界の侵害に対するペナルティを評価するために使用される。
【０１０９】
この技術は次の等式を用いて表すことができる。
【０１１０】
【数２５】
2004265381.tif 000027
【０１１１】
【数２６】
2004265381.tif 000028
【０１１２】
【数２７】
2004265381.tif 000029
【０１１３】
【数２８】
2004265381.tif 000030
【０１１４】
ここで、再定義された限界値CVLL'およびCVHL'は、オプティマイザが超えてはならない下限および上限である。該限界値は、当初限界よりも範囲の広い限界外のCV予測値または限界外の値として設定される。CV範囲制御および両側CV範囲制御のための統合等式も同様に作成することができる。また、片側制御のための統合等式は、等式(25)ないし(28)と同一である。両側範囲制御は次の等式によって実現することもできる。
【０１１５】
【数２９】
2004265381.tif 000031
【０１１６】
これは等式(15)と同一である。
【０１１７】
理解されるとおり、この統合アプローチによって制約への対応はよりフレキシブルな方法で管理することが可能となる。現行では、入力はハードなまたは固定の定義された制約限界しか有していない。しかし該アプローチを用いることによって、いくつかの入力に関してハード制約に含まれるソフトな制約を定義することができる。ソフトな制約のためのペナルティを課されたスラック変数を取り入れることにより、MVのペナルティを課された範囲を容易に定めることができる。これらのソフトな範囲のための等式は次のように表すことができる。
【０１１８】
【数３０】
2004265381.tif 000032
【０１１９】
【数３１】
2004265381.tif 000033
【０１２０】
最後に、同様のアプローチを用いて、オプティマイザに、操作変数MV等のプロセス変数を好ましい入力値、つまりいわゆる「理想休止値」に進ませることもできる。このアプローチは図9に示されており、理想休止値は線290で表され、MV限界の上限および下限は各々線292および294で表されている。点296および298は、予測値が理想休止値290よりも上または下にある状況を示している。これらの場合、ペナルティを課されたスラック変数S(i)aboveおよびS(i)belowは、理想休止値からの逸脱に関連する目的関数内のコストまたはペナルティを定めるために用いられる。理想休止値を有するMVに関する等式は次のように表される。
【０１２１】
【数３２】
2004265381.tif 000034
【０１２２】
【数３３】
2004265381.tif 000035
【０１２３】
【数３４】
2004265381.tif 000036
【０１２４】
理解されるように、ペナルティを課されたスラック変数S-、S+、Sbelow、Sabove等の構成要素、ユニットコストまたはペナルティは、変数の優先順位、変数のユニットコストおよび／または限界侵害の程度等の他の係数の関数として、目的関数内で設定または選択される。
【０１２５】
これらの技術を用いたテストで、限界侵害は、高レベル外乱を適用することによって、または入力および出力に対して下限と上限が侵害されるようにこれらを設定することによって、達成された。これらのテストにより、該技術の有益性が確認された。特に、これらのテストの最中に、オプティマイザは適切かつ効果的に機能し、優先順位の低い制約の侵害を増やすことなく優先順位の高い制約の侵害を改善した。したがって、スラック変数およびモデル再定義を適用して実現不可能なLP解に対応することは、極めてフレキシブルで効果的なアプローチである。
【０１２６】
さらに、上述した制約対応の原則は、制約モデルの変更を複数作成してより特定的な要件を満たすよう用いることも可能である。同様に、このアプローチは、例えばガソリン配合最適化等のMPC制御を用いない他のリアルタイム最適化アプリケーションに用いることもできる。さらに、オプティマイザ54は上述の技術を用いて、1つまたは複数の実現可能な解がある状況において、範囲制御、理想休止値を実現することができる。したがって、オプティマイザ54は、これらの技術を、実現可能な解を得られない状況で目的関数を用いる際に、または1つまたは複数の実現可能な解を得ることが可能ではあるが設定点範囲内等で理想休止値へさらに最適化することを所望する状況で目的関数を用いる際に、最適化を図るために用いることができる。
【０１２７】
図2を再び参照すると、操作変数目標の組の解を決定した後、オプティマイザ54は1組の最適または目標操作変数MVTを目標変換ブロック55に提供し、該ブロックは定常状態ゲイン行列を用いて目標定常状態制御および目標操作変数MVTから得た操作変数を決定する。この変換は、コンピュータ的には直送式である。なぜなら、定常状態ゲイン行列は、操作変数と制御および補助変数との間の相互作用を定め、それにより、定義された目標（定常状態）操作変数MVTから、目標操作変数CVTおよび目標補助変数AVTを独自に決定するために用いることができるからである。
【０１２８】
これが決定されると、少なくともサブセットの目標制御変数CVTおよび目標補助変数AVT、N個が、入力としてMPCコントローラ52へ提供され、上述のとおり、該コントローラはこれらの目標制御変数CVTおよび目標補助変数AVTを用いて、新たな1組の定常状態操作変数（制御水平線を超える）MVSSを決定する。該MVSSは、制御水平線の端点で現行の制御変数CVおよび操作変数AVを目標値CVTおよびAVTへと進ませる。当然、周知の通り、MPCコントローラは、これらの変数MVSSの定常状態値に達するまで段階的に操作変数を変更するものであり、この変数MVSSは理論上は、オプティマイザ54によって決定される目標操作変数MVTとなる。オプティマイザ54とMPCコントローラ52は、各プロセススキャン中、上述のとおり動作するため、操作変数の目標値MVTはスキャンの間に変更される場合もある。その結果、MPCコントローラは、特にノイズ、予期し得ない外乱、プロセス50の変更等がある場合は、実際にはこれらの目標操作変数MVTのいずれの特定の組にも一度も達しない場合がある。しかし、オプティマイザ54は常に、操作変数MVを最適解へ移動させるようコントローラ52を駆動している。
【０１２９】
周知のとおり、MPCコントローラは52は制御予測プロセスモデル70を含み、これはN×(M+D)のステップ応答行列（Nは制御変数CVの数に補助変数AVの数を足したもの、Mは操作変数の数、Dは外乱変数DVの数）であってもよい。制御予測プロセスモデル70は、出力72上に、制御変数CVおよび補助変数AVの各々に関して事前に算出した予測を作成し、ベクトル加算器74は現行時間に関するこれらの予測値を実際に測定された制御変数CVおよび補助変数AVの値から差し引いて、入力76上にエラーベクトルまたは訂正ベクトルを作成する。
【０１３０】
次いで、制御予測プロセスモデル70は、N×(M+D)のステップ応答行列を用いて、制御予測プロセスモデル70の他の入力に対して提供された外乱変数および操作変数に基づき、制御水平線を超える制御変数CVおよび補助変数AVの各々について未来制御パラメータを予測する。制御予測プロセスモデル70はまた、制御変数および補助変数の予測定常状態値であるCVSSおよびAVSSを、入力処理／フィルタブロック58に提供する。
【０１３１】
制御目標ブロック80は、提供されたN個の目標制御変数CVTおよび補助変数AVTの各々について、ブロック38のために事前に設定された軌跡フィルタ82を用いて目標変換ブロック55により制御目標ベクトルを決定する。特に、軌跡フィルタは、制御変数および補助変数が徐々に各自の目標値へと駆動されるような方法を定めるユニットベクトルを提供する。制御目標ブロック80は、このユニットベクトルおよび目標変数CVTとAVTを用いて、制御水平線期間によって定められる期間の経過における目標変数CVTおよびAVTに変化を定める制御変数および補助変数の各々について、ダイナミック制御目標ベクトルを作成する。続いて、ベクトル加算器84は、ダイナミック制御ベクトルから制御変数CVおよび補助変数AV各々の未来制御パラメータベクトルを差し引き、制御変数CVおよび補助変数AV各々のエラーベクトルを定める。制御変数CVおよび補助変数AV各々の未来エラーベクトルは、例えば最小平方エラー等を制御水平線を超えて最小化する操作変数MVステップを選択するために動作するMPCアルゴリズムに提供される。当然、MPCアルゴリズムまたはコントローラは、MPCコントローラに入力されるN個の制御変数および補助変数とMPCコントローラ52から出力されるM個の操作変数との関係から作成される、M×Mのプロセスモデルまたは制御行列をを用いる。
【０１３２】
より特定的には、オプティマイザと共に機能するMPCアルゴリズムには、2つの主要目的がある。1つは、動作制約内で、最小のMVの動きでCV制御エラーを最小化しようとすること、もう1つは、オプティマイザによって設定される最適な定常状態MV値と、該最適な定常状態MV値から直接算出される目標CV値とを達成しようとすることである。
【０１３３】
これらの目的を達成するための当初の制約のないMPCアルゴリズムは、最低平方解にMV目標値を含むよう拡大することができる。このMPCコントローラの目的関数は次のとおりである。
【０１３４】
【数３５】
2004265381.tif 000037
【０１３５】
ここで、CV(k)は、制御された出力pステップ先の予測ベクトル、R(k)は、pステップ先の参照軌跡（設定点）ベクトル、ΔMV(k)は、cステップ先の制御移動ベクトル、Γy=diag[Γy1,・・・,Γyp]は、制御出力エラーのペナルティ行列、Γu=diag[Γu1,・・・,Γuc]は、制御移動のペナルティ行列、pは、予測水平線（ステップ数）、cは、制御水平線（ステップ数）、Γoは、オプティマイザによって定義されるMVの目標最適変化に関連する、制御水平線を超えるコントローラ出力移動の合計のエラーのペナルティである。表示を簡潔にするために、目的関数は単一入力／単一出力（SISO）制御として示されている。
【０１３６】
理解されるように、最初の2つの項は制約のないMPCコントローラの目的関数であり、3番目の項はコントローラの出力移動の合計を最適目標と等しくするための追加条件を設定する。言い換えると、最初の2つの項はコントローラのダイナミック動作のための目的を設定し、3番目の項は定常状態の最適化目標を設定する。
【０１３７】
制約のないMPCコントローラのための基本解と同様に、このコントローラの基本解は次のように表すことができる。
【０１３８】
【数３６】
2004265381.tif 000038
【０１３９】
ここで、ΔMV(k)は時間kにおけるＭＰＣコントローラ出力の変化、Kampcは最適化されたMPCコントローラゲイン、Suはプロセスダイナミック行列である。Suは、SISOモデルについては寸法p×cのステップ応答から、多入力／多出力MIMOモデルについてはp*n×c*mのステップ応答から構築することができ、ここでmは操作入力、nは制御出力である。
【０１４０】
最適化されたMPCに関して、ダイナミック行列は、SISOモデルについてはサイズ：(p+1)×mまで、MIMOモデルについてはサイズ：(p+m)*n×c*mまで拡大し、MVエラーに対応する。Ep+1(k)は、予測水平線を超えるCVエラーベクトルであり、コントローラ出力合計のエラーはMVの目標最適変化に関連して制御水平線を超えて移動する。行列Γは、行列ΓyおよびΓoを組み合わせたものであり、SISOコントローラについては寸法(p+1)の平方行列、多変数コントローラについては[n(p+m)]の平方行列である。上付きのTは転位行列を示す。
【０１４１】
オプティマイザ54は、すべての制御変数CVおよび補助変数AVに基づいて最適化され、独自の最適動作点を定義する操作変数MVTの目標値の組を決定するため、MPCコントローラ52が制御行列内の制御変数CVと補助変数AVのサブセットのみを用いて動作し、そこから実際に操作変数MV出力が作成されても問題ないと決定されている。その理由は、コントローラ52が選択された制御変数CVおよび補助変数AVのサブセットをこれらに関連する目標値へ進めた場合、制御変数および補助変数の完全な組の他の部分も、それらの目標値に位置するからだ。その結果、M×Mの制御行列を有する平方（M×M）MPCコントローラは、矩形（N×M）プロセスモデルを用いるオプティマイザと共に用いられて、プロセス最適化を実行する。これにより、標準的なMPC制御技術は、非平方行列を近似値に反転することなく、またはコントローラ内におけるこのような変換技術に伴うリスクを負うことなく、標準最適化技術と共に用いられることが可能となる。
【０１４２】
1つの実施形態において、MPCコントローラが平方されている、つまり操作変数AVの数が制御変数CVの数と等しい場合、操作変数MVの目標値はCV値を次のように変更することによって効果的に実現することができる。
【０１４３】
【数３７】
2004265381.tif 000039
【０１４４】
ここで、ΔMVTはMVの最適目標値の変化、ΔCVは最適MVに達するためのCVの変化である。当然、CVの変化はCV設定点を管理することにより実行される。
【０１４５】
オプティマイザ54は動作において、各スキャンごとにMPC非制約コントローラの定常状態目標値を設定し、これを更新する。したがって、MPCコントローラ52は非制約アルゴリズムを実行する。目標値CVTおよびAVTは、制約を明らかにするよう設定されているので、実現可能な解が存在する限りコントローラが制約限界内で機能する。したがって、最適化はMPCコントローラと一体化されている。
【０１４６】
図3および図4は、統合されたモデル予測制御および最適化を行うために用いられるステップを説明するフローチャート90である。フローチャート90は、概して2つのセクション、90ａ（図3）および90ｂ（図4）に分割されており、プロセス動作以前に発生する機能（90ａ）およびプロセス動作中、例えばプロセス動作の各スキャン毎に発生する機能（90ｂ）を示している。プロセス動作に先立ち、オペレータまたはエンジニアは、統合された制御MPCコントローラおよびオプティマイザを含むアドバンスド制御ブロック38を作成するために複数のステップを行う。特に、ブロック92では、アドバンスド制御ブロック38として使用するためにアドバンスド制御テンプレートを選択してもよい。該テンプレートは、ユーザインタフェース13上の構成アプリケーション内のライブラリに記憶され、そこから複製されてもよく、また、特定のMPC、プロセスモデルおよび定常状態ゲイン／制御行列および特定の目的関数を持たずにMPCコントローラルーチン52およびオプティマイザ54の総合的な算術および論理機能を含んでもよい。このアドバンスド制御テンプレートは他のブロックを有するモジュールに設けられてもよく、該他のブロックとしては、例えば、プロセス50内で他の装置と通信するよう構成される入力および出力ブロック等、およびPID、ニューラルネットワーク、およびファジー論理制御ブロックを含む制御ブロック等の他の種類のブロック等がある。1つの実施形態では、モジュール内の各ブロックは、ブロック間で通信を行うよう相互に接続された入力および出力を有する目的由来プログラミング・パラダイム内の目的であることは、理解されるであろう。動作中、該モジュールを走行させるプロセッサは、ブロックへの入力を用いて異なる時点で各ブロックを順次実行して該ブロックの出力を作成する。そして、これらは、ブロック間の特定の通信リンクによって定められるように、他のブロックの入力に提供される。
【０１４７】
オペレータは、ブロック94で、ブロック38で用いられる特定の操作変数、制御変数、制約変数および外乱変数を定義する。所望する場合は、図1のプログラム40などの構成プログラムにおいて、ユーザは制御テンプレートを目視し、記名され構成される入力および出力を選択し、構成環境内の任意の標準ブラウザを用いてブラウズして制御システム内の実際の入力および出力を探索し、これらの実際の制御変数を制御テンプレート用の入力および出力制御変数として選択してもよい。
【０１４８】
ユーザは、アドバンスド制御機能ブロックへの入力および出力を選択したら、制御変数と関連する設定点、制御変数、補助変数および操作変数と関連する範囲または限界、および制御変数、補助変数および操作変数の各々と関連するウエイトを定義してもよい。当然、制約限界または範囲等、これらの情報の一部は、既にこれらの変数と関連付けられていることもある。なぜなら、これらの変数はプロセス制御システム構成環境内で選択または探索されるからである。オペレータは、所望する場合は図3のブロック96で、操作変数、制御変数および補助変数の各々に関するユニットコストおよび／または利益を特定することによりオプティマイザ内で用いられる1つまたは複数の目的関数を構成してもよい。当然、オペレータはこの時点で、上述のようにデフォルト目的関数の使用を選択してもよい。さらに、ユーザは、制御変数、補助変数および操作変数の各々について、各スラック変数またはペナルティ変数、S+、S-、Sabove、Sbelow等に関連するコストまたはペナルティを特定してもよい。ユーザは、所望する場合、当初の制約限界によって定義される実現不可能な解をオプティマイザが扱うまたは対処するための、例えばスラック変数の使用、制約限界の再定義またはこの2つの何らかの組み合わせ等の、特定の方法を指定してもよい。
【０１４９】
入力（制御変数、補助変数および外乱変数）および出力（操作変数）が記名され、アドバンスド制御テンプレートに連結され、ウエイト、限界および設定点がそれらに関連付けられると、図3のブロック98で、アドバンスド制御テンプレートは、制御に使用される機能ブロックとしてプロセス内で選択されたコントローラにダウンロードされる。該制御ブロックの基本的な性質および該制御ブロックの構成方法は、"Integrated Advanced Control Blocks in Process Control System（プロセス制御システムにおける統合されたアドバンスド制御ブロック）"という名称の米国特許第6,445,963号に記載されている。該特許は本発明の譲受人に譲渡され、本明細書内に引用され明示的に援用される。該特許は、プロセス制御システム内でのMPCコントローラ作成の性質について述べたものであり、オプティマイザがそのコントローラに接続される方法については述べていないが、コントローラを接続し構成するための基本的なステップは、引用特許に記載されているものだけでなく、本明細書の制御ブロック38に関するここに記載されるあらゆる論理要素を含むテンプレートと共に、本明細書に述べる制御ブロック38に使用できることは理解されるであろう。
【０１５０】
いかなる場合においても、オペレータは、アドバンスド制御テンプレートがコントローラにダウンロードされた後、ブロック100で、制御テンプレートのテストフェーズを実行させMPCコントローラアルゴリズム内で使用されるステップ応答行列およびプロセスモデルを選択してもよい。前述の特許に記載されている通り、テストフェーズ中に、アドバンスド制御ブロック38内の制御論理は一連の擬似ランダム波形を操作変数としてプロセスに提供し、制御変数および補助変数（MPCコントローラにより本質的には制御変数として扱われる）の変化を監視する。所望する場合、操作変数および外乱変数ならびに制御変数および補助変数は、図1のヒストリアン12によって収集されてもよく、またオペレータは、ヒストリアン12からこのデータを取得しこのデータについて任意の方法でトレンディングを行いステップ応答の行列を取得または決定するための構成プログラム40（図1）を設定してもよい。該各ステップ応答は、操作変数および制御変数の1つ（かつ唯一）におけるユニット変更に対する制御変数または補助変数の1つの時間内の応答を特定するものである。該ユニット変更は一般的にはステップ変更だが、インパルス変更またはランプ(ramped)変更等の他の種類の変更でもよい。一方、所望する場合、制御ブロック38は、擬似ランダム波形をプロセス50に適用する際に収集されたデータに応答してステップ応答行列を生成し、これらの波形を、アドバンスド制御ブロック38を作成しインストールするオペレータまたはユーザによって使用されるオペレータインターフェース13に提供してもよい。
【０１５１】
ステップ応答行列が作成されたら、制御変数および補助変数の数が操作変数の数を上回る場合は、ステップ応答行列を用いて、MPCアルゴリズム内で使用される制御変数および補助変数のサブセットを、MPCコントローラ52内で反転され使用されるM×Mのプロセスモデルまたは制御行列として選択する。この選択プロセスは、オペレータによって手動で行われてもよく、また例えばステップ応答行列にアクセスできるユーザインターフェース13内でルーチンによって自動的に行われてもよい。一般的に、単一の制御変数および補助変数は、単一の補助変数と最も密接に関連するものとして特定される。したがって、単一かつ特異（つまり異なる）の制御変数または補助変数（プロセスコントローラへの入力）は、異なる各操作変数（プロセスコントローラの出力）と関連し、それによってMPCアルゴリズムはM×Mのステップ応答の組から作成されるプロセスモデルに基づくことができる。
【０１５２】
対を成すために発見的アプローチを取る1つの実施形態において、自動ルーチンまたはオペレータは制御変数および補助変数のM個の組（Mは操作変数の数と等しい）を選択する。これは、特定の1つの操作変数におけるユニット変更に対する最大ゲインおよび最速応答時間の組み合わせを持つ単一の制御変数または補助変数を選択し、これらの2つの変数を対にするためである。当然、場合によっては、特定の制御変数または補助変数が複数の操作変数に対して大きなゲインと速い応答時間を有することもある。ここで、該制御変数または補助変数が関連する任意の操作変数と対を成すようにしてもよく、実際は、最大ゲインおよび最速応答時間を生成しない操作変数と対にしてもよい。なぜなら、総計すれば、結果的に、ゲインが少なくなるまたは応答時間が遅くなる操作変数は他の制御変数または補助変数に許容可能な程度の影響を与えないことがあるからだ。したがって、一方が操作変数でもう一方が制御変数または補助変数の対は、全体としては、操作変数に対して最も応答性のある制御変数を表す制御変数および補助変数のサブセットと操作変数を対にするために選択される。さらに、すべての制御変数がM個の制御および補助変数のサブセットの1つとして選択されなくても問題はなく、したがって、MPCコントローラはすべての制御変数を入力として受け取るわけではない。なぜなら、制御変数および補助変数の目標値の組は、非選択制御変数（および非選択補助変数）が自身の設定点にあるかまたは定められた動作範囲内にあるプロセスの動作点を表すために、オプティマイザによって選択されるからだ。
【０１５３】
当然、一方には数十更には数百もの制御変数および補助変数があり、もう一方には数十または数百もの操作変数があるため、少なくとも視覚的な観点から、様々な操作変数の各々に最適に応答する制御変数および補助変数の組を選択するのは難しいと考えられる。この問題を解決するために、オペレータインターフェース13内のアドバンスド制御ブロック生成ルーチン40は、1組のスクリーン表示を含むか、またはこれをユーザあるいはオペレータに提示し、オペレータが、動作中にMPCコントローラ52によって用いられる制御変数および補助変数のサブセットとして使用されるべき制御変数および補助変数を適切に選択できるように補助するか、あるいはこれを可能にするようにしてもよい。
【０１５４】
したがって、オペレータは、図3のブロック120でスクリーンを提示され、特定のまたは選択された1つの操作変数に対する各制御変数および補助変数の応答を目視できるようになっていてもよい。オペレータは、操作変数を通して一度に1つスクロールし、様々な操作変数の各々に対する各制御変数および補助変数のステップ応答を目視してもよく、またこのプロセス中に、該操作変数に対して最適に応答する1つの制御変数または補助変数を選択してもよい。オペレータは通常、操作変数に対して最高の定常状態ゲインと最速応答時間との最適な組み合わせを有する制御変数または操作変数を選択しようとする。
【０１５５】
理解されるように、このようなディスプレイスクリーンは、MPC制御アルゴリズムの入力として用いられるM個の制御変数および補助変数のサブセットをオペレータが目視して選択できるようにするものであり、これらの変数が大量にある場合には特に役立つ。当然、ブロック74で決定された制御変数および制約変数の組は、何らかの事前に設定された基準または選択ルーチンに基づいて自動的または電子的に選択されてもよい。該選択ルーチンは、制御変数および補助変数に関するステップ応答から決定されるゲイン応答および時間の遅延の組み合わせに基づいて、使用する入力変数を選択してもよい。
【０１５６】
別の実施形態においては、自動選択プロセスは、まず、行列の条件数に基づいて入力／出力行列を選択することにより、制御行列を決定してもよい。例えば、条件数をある所望の程度まで最小化し、制御行列から制御構成を作成してもよい。
【０１５７】
この例では、プロセスゲイン行列Aに関して、行列ATAの条件数は行列制御可能性のテストを行って決定されてもよい。一般的に、条件数が小さければ制御可能性が高いことを意味し、条件数が大きければ制御可能性が低くダイナミック制御動作中の制御ステップまたは移動が多いことを意味する。制御可能性の許容程度を定める厳密な基準はないため、条件数は、様々な潜在的条件行列の相対比較として、また悪条件の行列のテストとして用いることもできる。周知の通り、悪条件の行列の条件数は無限に近づく。数学的には、悪条件は、共直線プロセス変数の場合、つまり制御行列における共直線の行または列によって発生する。したがって、条件数および制御可能性に影響を与える主な要因は、行列の行と列との相互関連性である。制御行列内で入力・出力変数を慎重に選択すれば、条件に関する問題を減らすことができる。実際的には、制御行列の条件数が500以上の場合は懸念すべきである。このような行列の場合、コントローラの操作変数の移動が著しく過剰になる。
【０１５８】
上述の通り、制御行列がダイナミック制御の問題を解決する一方、LPオプティマイザは定常状態最適化問題を解決し、MPCコントローラブロックが同数でないMV（AVを含む）およびCVを有する場合でも、制御行列は平方入力・出力行列を有する必要がある。コントローラを生成するために用いる制御行列の入力と出力の選択を始めるために、通常は利用可能なすべてのMVが制御出力として含有または選択される。出力（MV）が選択されたら、ダイナミック制御行列の一部を成すプロセス出力変数（つまりCVとAV）を、悪条件でない平方制御行列を作成するような方法で選択しなければならない。
【０１５９】
ここでは、制御行列内での入力としてのCVおよびAVを自動的にまたは手動で選択する1つの方法を述べるが、他の方法を用いてもよいことは理解される。
【０１６０】
ステップ1−可能な場合はCVの数がMVの数（つまりコントローラ出力の数）と等しくなるまでCVを選択する。MVよりもCVの方が多い場合、CVは、優先順位、ゲインまたはフェーズ応答、ユーザ入力等、所望の基準に基づいて任意の順序で選択してよい。CVの可能な総数がMVの数と等しい場合は、ステップ4に進み、結果的に得られる平方制御行列条件数が許容できるかどうかをテストする。CVの数がMVの数よりも少ない場合、AVはステップ2に記載するように選択される。定義されるCVがない場合は、MVに関して最大のゲインを有するAVを選択し、ステップ2へ進む。
【０１６１】
ステップ2−先に選択されたCVおよびAVによって定義される既に選択された制御行列に追加された、可能性のある全てのAVの条件数を1つずつ算出する。理解されるように、選択されたCVによって定義される行列には、選択されたCVおよびAVの各々について行が含まれ、先に選択された各MVに対する該CVまたはAVの定常状態ゲインが定義される。
【０１６２】
ステップ3−ステップ2で決定され、結果として得られる行列の条件数が最小になるAVを選択し、該行列を、先の行列に選択されたAVが追加されたものとして定義する。この時点で、MVの数が、選択されたCVの数に選択されたAVを加えた数と等しい場合（つまりこの時点で行列が平方になった場合）は、ステップ4に進む。そうでなければステップ2に戻る。
【０１６３】
ステップ4−作成された平方制御行列Acの条件数を算出する。所望する場合は、行列AcTAcの代わりに行列Acの条件数算出を用いてもよい。なぜなら、これらの異なる行列の条件数は他の平方根として関連しているからだ。
【０１６４】
ステップ5−ステップ4で算出された条件数が受け入れられる場合、すべてのCVおよび選択されたAVにMVを関連付ける。これは特定のMVに関して最大のゲインを有するCVまたはAVを選択することにより、対を成す処理が完了するまで行う。この時点で選択プロセスは完了する。ただし、条件数が最低許容条件数を超える場合は、制御行列に追加された最後のAV／CVを除去し、ステップ6のラップアラウンド・プロシージャを行う。
【０１６５】
ステップ6−選択された各MVについて、一度に1つずつラップアラウンド・プロシージャを行い、各ラップアラウンド・プロシージャの結果もたらされる行列の条件数を算出する。本質的に、ラップアラウンド・プロシージャは、除去されたAV（またはCV）の代わりに異なるMV各々の一単位応答を交互に配置することによって行われる。一単位応答は、行列の行のある位置では一単位でありそれ以外の位置ではゼロである。要するに、この場合、特定のMVは各々、好条件の平方制御行列を形成するAVの代わりに、入力および出力として用いられる。一例として、4×4行列の場合、1000、0100、0010、および0001の組み合わせが、ゲイン行列Acの除去されたAVラインの行に配置される。
【０１６６】
ステップ7−各MVについてラップアラウンド・プロシージャを行ったら、条件数が最小になる組み合わせを選択する。何ら改善されない場合は、当初の行列を維持する。この時点で、MV自身の制御に用いられるMV（つまりラップアラウンドされたMV）を除いた特定のMVに関連して最大のゲインを有するCVまたはAVを選択し、選択したすべてのCVおよびAVとMVとを関連付ける。
【０１６７】
当然、このプローシージャによって定義された制御行列およびその結果の条件数はユーザに提供されてもよく、ユーザはコントローラの生成において該定義された制御行列の使用を受け入れても、拒絶してもよい。
【０１６８】
上述した自動プロシージャでは、制御可能性の改善を目的としてMV自身を制御する（つまりラップアラウンドされる）ために選択されたのは、1つのMVのみであった。手動のプロシージャでは、ラップアラウンドされるMVの数は任意でよい。MV自身を制御するために選択されるMVは、コントローラ構成において該当する出力変数選択がないことから明らかである。また、MVの数がCVの総数にAVを加えた数よりも多い場合は、制御のためのラップアラウンドとしてより多くのMVを用いることができる。このように、最終的には平方制御行列が各MVを出力として有するコントローラに提供される。ラップアラウンドを行ってこれを用いるプロセスは、制御行列のために選択されるCVおよびAVの数がコントローラによって制御されるMVの数よりも少ない場合があることを意味し、この差は、制御行列に入力されたMVのラップアラウンドの数であるということが理解されるであろう。また、このラップアラウンド・プロシージャはCVとAVを足した数がMVの数よりも少ないプロセスで用いることができる。
【０１６９】
当然、条件数は定常状態ゲインを用いて上述の通り算出され、それによって制御行列は本質的に定常状態での制御可能性を定義する。プロセスダイナミックス（デッドタイム、ラグ等）およびモデルの不確実性もまた、ダイナミック制御可能性に影響を与える。この影響はプロセス変数（例えば制御変数および補助変数）の優先順位を変えることによって考慮することができ、ダイナミック制御に与える影響に基づいて制御行列に含まれることを命じてもよい。
【０１７０】
定常状態およびダイナミック制御可能性の双方の改善を目的として、他の発見的プロシージャを用いることも可能である。このようなプローシージャは通常、制御行列を作成するいくつかのフェーズで適用される複数の発見的基準（相反するものが含まれる場合もある）を有し、これによって制御行列に何らかの改善をもたらす適切な制御入力の組を選択する。このような発見的プロシージャの1つにおいて、CVおよびMVは最高のゲイン関係に基づいてAVによってグループ分けされる。そして、MVのグルーピング各々について、最速ダイナミックおよび有意のゲインを伴う1つのプロセス出力を選択する。この選択プロセスは、信頼性間隔を考慮しAVよりもCVを優先してもよい（他がすべて等しい場合は）。次いで、プロセスモデル生成ルーチンは、MPC制御の生成中に各グループから選択するパラメータを用いる。各MVについて単一のパラメータしか選択されないため、応答マトリックスは平方であり、反転することが可能である。
【０１７１】
いかなる場合でも、MPCコントローラに入力するM個（またはそれ未満）の制御変数および補助変数のサブセットが選択されたら、図3のブロック124は、決定された平方制御行列から図2のMPC制御アルゴリズムで用いるプロセスモデルまたはコントローラを生成する。周知の通り、このコントローラ生成ステップはコンピュータ集約プロシージャである。次いでブロック126は、このMPCプロセスモデル（固有的に制御行列を含む）またはコントローラを、また必要に応じてステップ応答および定常状態応答ゲイン行列を、制御ブロック38にダウンロードし、このデータは動作のために制御ブロック38に組み込まれる。この時点で、該制御ブロック38はプロセス50内でのオンライン動作の用意ができている。
【０１７２】
所望する場合、プロセスステップ応答はこれらのステップ応答を生成したものとは別の方法で再構成または提供されてもよい。例えば、ステップ応答はシステム内に記憶される異なるモジュールから複製し、操作変数または外乱変数に対する特定の制御変数または補助変数のステップ応答を特定してもよい。さらに、ユーザは、定常安定ゲイン、応答時間、第1オーダーの時間制約および平方エラー等の、ステップ応答に関するパラメータを定義または特定してもよい。また所望する場合、ユーザは、異なるゲインまたは時間制約等、異なるパラメータを指定することによってステップ応答のプロパティを目視し変更してもよい。ユーザが異なるゲインまたは他のパラメータを指定した場合、ステップ応答モデルは、該新たなパラメータまたはパラメータの組を含んで数学的に再生成することができる。この動作は、ユーザがステップ応答のパラメータを知っており、生成されたステップ応答がこれらのパラメータを満たすように、またはこれらに合うように変更する必要がある場合に役立つ。
【０１７３】
ここで図4を参照すると、各動作サイクルまたはアドバンスド制御ブロック38のスキャンの間に、図3のフローチャート90aを用いて作成される基本的なステップが行われ、一方プロセス50はオンライン作動していることが示されている。ブロック150で、MPCコントローラ52は（図2）、測定された制御変数CVおよび補助変数AVの値を受け取り、これを処理する。特に、制御予測プロセスモデルは、CV、AVおよびDVの測定値または入力を処理し未来制御パラメータベクトルを作成すると同時に、予測される定常状態制御変数CVSSおよび補助変数AVSSを作成する。
【０１７４】
次いで、ブロック152で、入力処理／フィルタブロック58（図2）は、MPCコントローラ52によって作成された、予測される制御変数CVSS、補助変数AVSSおよび操作変数MVSSを処理またはフィルタ処理し、このフィルタ処理された値をオプティマイザ54に提供する。オプティマイザ54はブロック154で、標準的なLP技術を実行し、選択されたまたはデフォルトの目的関数を最大化または最小化するが補助変数および操作変数のいかなる限界をも侵害せず制御変数を特定の設定点内またはこれらの変数に関する特定の範囲内に維持する、M個の操作変数目標MVTの組を決定する。一般的に、オプティマイザ54は、制御変数および補助変数の各々をその限界に進ませることによって目標操作変数解MVTを算出する。上記の通り、制御変数の各々が各自の設定点（当初は制御変数の上限として扱われたこともある）に位置し補助変数の各々が各自の制約限界内にある場合に、解が存在することが多い。このような場合、オプティマイザ54は目的関数の最適な結果を生成する決定された操作変数目標MVTのみを出力すればよい。
【０１７５】
しかし、場合によっては、補助変数または操作変数の幾つかまたは全ての制約が厳しく、全ての制御変数がそれらの設定点に位置し全ての補助変数が各々の制約限界内に入る動作点を探索することが不可能なことがある。なぜなら、このような解が存在しないからだ。このような場合、オプティマイザ54は、ブロック155に示すように、新たな目的関数を生成する、および／または、スラック変数および／または上述の限界再定義技術を用いて新たな限界の組を選択する。次いで、ブロック154は新たに作成された目的関数および／またはペナルティ変数を含むあるいは含まない限界を有するオプティマイザを戻し、最適解を決定する。実現可能な解がない場合、または再び受け入れられない解が得られた場合、ブロック155は再び動作し、オプティマイザの更なるパスで用いる新たな1組の限界または新たな目的関数を定義する。例えば、実現不可能な解を有する第1のパスにおいて、ブロック155はスラック変数の使用を選択し、オプティマイザの第2のパスで用いる新たな目的関数を提供してもよい。第2のパスの後で、実現不可能または受け入れられない解が得られた場合、ブロック155はペナルティ変数を含むまたは含まない制約限界を再定義し、これらの新たな制約限界および可能な場合は新たな目的関数を、第3のパスで用いるようブロック154に提供してもよい。当然、ブロック155は、スラック変数および限界再定義の組み合わせを用いて、新たな目的関数および限界を任意のパスで用いるようオプティマイザに提供してもよい。ブロック155はまた、当初の目的関数を用いて実現可能な解が得られない状況においては、当然、新たな目的関数の選択または制約限界の再定義のための、所望する他のあらゆる戦略を用いることもできる。所望する場合、ブロック154で走行される当初の目的関数は、プロセス変数を、オプティマイザの第1のパス（およびその後のパス）中に限界、設定点または理想休止値へ進ませるスラック変数ペナルティを含んでもよい。さらに、ブロック154で用いられる当初の目的関数は、初期に取り扱われるスラック変数制約を含んでもよく、これはオプティマイザの第1のパスで用いられてもよい。そして、その後の走行において、必要であれば限界の再定義を単独で、またはペナルティを課されたスラック変数と合わせて用いてもよい。同様に、オプティマイザのその後のパスにおいて、上述の技術を用いて、スラック変数および限界再定義のいずれか1つまたは双方を用いてプロセス変数を、限界へ、設定点へ、理想休止値等へと進ませてもよい。
【０１７６】
いかなる場合でも、ブロック154が実現可能または受け入れられる解を得た後、ブロック156は、目標変換ブロック55（図2）を用いて、定常状態ステップ応答ゲイン行列を用いて操作変数MVTの目標値から制御変数CVTおよび補助変数AVTの目標値を決定し、選択したこれらの値のN個（NはMと同数またはそれ未満）のサブセットを、目標入力としてMPCコントローラ52へ提供する。MPCコントローラ52は、ブロック158で、制御行列またはそこから派生する論理を用いて非制約MPCコントローラとして上述の通り動作し、これらの目標値の未来CVおよびAVベクトルを決定し、未来制御パラメータベクトルとの間でベクトル減算を行って未来エラーベクトルを作成する。MPCアルゴリズムは既知の方法で動作し、M×Mステップ応答から生成されたプロセスモデルに基づいて定常状態操作変数MVSSを決定し、これらのMVSS値を入力処理／フィルタブロック58（図2）に提供する。MPCアルゴリズムはまた、ブロック160でプロセス50に出力されるMVステップを決定し、これらのステップの第1次を任意の適切な方法でプロセス50に出力する。
【０１７７】
動作中、例えばインタフェース13の1つで駆動する1つまたは複数の監視アプリケーションは、アドバンスド制御ブロックまたはこれに通信可能に接続されている他の機能ブロックから、直接またはヒストリアン12を通して情報を引き受け、ユーザまたはオペレータに対して、アドバンスド制御ブロックの動作状態を見るための1つまたは複数の目視スクリーンまたは診断スクリーンを提供してもよい。機能ブロック技術は、制御機能ブロックおよび出力機能ブロックの双方について、カスケード入力（CAS_IN）およびリモートカスケード入力（RCAS_IN）ならびに対応するバック算出出力（BKCAL_OUTおよびRCAS_OUT）を特徴とする。これらのコネクタを用いて、スーパーバイザー的な最適化MPC制御戦略を既存の制御戦略の頂点に置き、1つまたは複数の目視スクリーンまたはディスプレイを用いて該スーパーバイザー制御戦略を見ることも可能である。同様に、最適化されたMPCコントローラの目標は、所望する場合は戦略からも修正できる。
【０１７８】
ここに記載されているアドバンスド機能ブロックは、同一の機能ブロック内にオプティマイザが配置され、したがってMPCコントローラと同じ装置で実行されるものだが、オプティマイザを別の装置で実行することも可能である。特に、オプティマイザは、ユーザのワークステーション13の1つの中、等の異なる装置に置かれてもよく、各実行中またはコントローラのスキャン中に図2と併せて述べた通りMPCコントローラと通信を行って、目標操作変数（MVT）またはそこから決定される制御変数（CV）および補助変数（AV）のサブセットを算出し、MPCコントローラに提供してもよい。当然、既知のOPCインタフェース等の特別なインタフェースを用いて、コントローラまたは内部にMPCコントローラを有する機能ブロックとオプティマイザを実施または実行するワークステーションあるいは他のコンピュータとの間の通信インタフェースを提供してもよい。図2に関して述べた実施形態と同様に、オプティマイザおよびMPCコントローラは各スキャンサイクル中は相互に通信を行い、統合された最適MPC制御を行わなければならない。
【０１７９】
当然、既にプロセス制御環境内に存在する既知のまたは標準的なリアルタイムオプティマイザ等の、所望する他の種類のオプティマイザでも、本明細書に述べる実現不可能性対応技術を用いることができる。この特徴は、最適化問題が非線形でその解に非線形計画法の技術が必要とされる場合でも有利に用いることができる。さらに、オプティマイザ54はMPCルーチンの目標変数を作成するために用いられると述べてきたが、オプティマイザ54は本明細書に述べた実現不可能性対応技術を用いて、例えばPIDコントローラ、ファジー論理コントローラ等の他の種類のコントローラによって使用される目標値または他の変数を作成することもできる。
【０１８０】
アドバンスド制御ブロックおよび本明細書に述べた他のブロックおよびルーチンは、フィールドバスおよび標準的な4-20ミリアンペア装置と併せて用いられると、ここで述べてきたが、これらは当然ながら、他のプロセス制御通信プロトコルまたはプログラミング環境を用いて実施することもでき、また他の種類の装置、機能ブロックまたはコントローラと共に使用してもよい。ここに述べるアドバンスド制御ブロックおよび関連する生成およびテストルーチンはソフトウェアで実行されるのが好ましいが、これらはハードウェア、ファームウェア等で実行してもよく、プロセス制御システムと関連する他の処理装置で実行されてもよい。したがって、ここに述べたルーチン40は、所望する場合は、標準的な汎用CPUまたは例えばASIC等の特定目的ハードウェアまたはファームウェアで実施されてもよい。ソフトウェアで実施する場合、該ソフトウェアは、コンピュータあるいはプロセッサ等のRAMまたはROMの、磁気ディスク、レーザーディスク、光ディスク、または他の記憶媒体等のコンピュータ読取り可能メモリに記憶されてもよい。同様に、該ソフトウェアは、例えばコンピュータ読取り可能ディスクまたは他の移動可能なコンピュータ記憶メカニズムまたは電話線、インターネット等の通信チャネルを通した変調（これは移動可能記憶媒体を介してかかるソフトウェアを提供するのと同様または相互交換可能であるとみなされる）を含む、既知のまたは所望の提供方法を介してユーザまたはプロセス制御システムへ提供されてもよい。
【０１８１】
したがって、本発明は特定の例を参照して説明されたが、これは単に説明目的のためであり本発明を限定するものではない。ここに開示される実施例に対し、本発明の精神および範囲を逸脱することなく変更、追加または削除を行うことが可能であることは、当業者には明らかであろう。
【図面の簡単な説明】
【０１８２】
【図１】オプティマイザとMPCコントローラとを統合したアドバンスド・コントローラ機能ブロックを有する制御モジュールを含む、プロセス制御システムのブロック図である。
【図２】統合されたオプティマイザおよびMPCコントローラを有する、図１のアドバンスド・コントローラ機能ブロックのブロック図である。
【図３】図２の統合されたオプティマイザおよびMPCコントローラ機能ブロックの作成および搭載方法を示すフローチャートである。
【図４】オンライン・プロセス動作中の、図２の統合されたオプティマイザおよびMPCコントローラの動作を示すフローチャートである。
【図５】図２のオプティマイザの目的関数内のスラック変数を用いた、操作変数の制約または限界を緩和させる方法を示すグラフ図である。
【図６】図２のオプティマイザの目的関数内のスラック変数を用いた、設定点と関連する範囲の緩和方法を示すブラフ図である。
【図７】図２のオプティマイザの目的関数内の低値および高値のスラック変数を用いた、設定点と関連する２組の範囲の緩和方法を示すブラフ図である。
【図８】操作変数の制約モデルまたは制約限界を再定義し、図２のオプティマイザの目的関数内の新たな制約モデルと関連するペナルティ変数を用いる方法を示すグラフ図である。
【図９】限界から外れた操作変数が１つまたは複数存在する場合の、最適化を行うためのスラック変数および制約モデル再定義の双方の使用を示すグラフ図である。
【図１０】操作変数の理想休止値が存在する場合の、最適化を行うためのスラック変数の使用を示すグラフ図である。
【符号の説明】
【０１８３】
10  プロセス制御システム
11  プロセスコントローラ
12  データヒストリアン
13  ワークステーション、コンピュータ、ユーザインタフェース
14  ディスプレイスクリーン
26、28  入力／出力（Ｉ／Ｏ）カード
29  通信ネットワーク
15〜22  フィールドデバイス
32、34  ルーチン
36  制御ループ
38  高度制御ブロック
40  高度制御ブロック生成ルーチン
42  制御ブロック生成ルーチン
44  プロセスモデル化ルーチン
46  制御論理パラメータ作成ルーチン
48  オプチマイザルーチン
50  プロセス
52  ＭＰＣコントローラ
54  オプチマイザ
55  目標変換ブロック
56  ステップ応答モデルまたは制御行列
58  入力処理／フィルタブロック
62  選択ブロック
64  目的関数
66、76  入力
70  制御予測プロセスモデル
72  出力
74、84  ベクトル加算器
80  制御目標ブロック
82  軌跡フィルタ
90  フローチャート
101  傾向プロット領域
102  プロット
104  モード
106  設定時間
112、114  ライン
116  モデル作成ボタン
200  表示スクリーン
204、208  区域
212、216  列
220  ゲイン
224  デッドタイム
228  利用可能変数の列
232a  追加ボタン
232b  取り除きボタン
236  戻るボタン
【図１】
2004265381.tif 000040
【図２】
2004265381.tif 000041
【図３】
2004265381.tif 000042
【図４】
2004265381.tif 000043
【図５】
2004265381.tif 000044
【図６】
2004265381.tif 000045
【図７】
2004265381.tif 000046
【図８】
2004265381.tif 000047
【図９】
2004265381.tif 000048
【図１０】
2004265381.tif 000049
【外国語明細書】
2004265381000001.pdf