(57)【特許請求の範囲】
【請求項１】
プロセス（５８，１７４）の多入力／多出力アドバンスド制御を実行する方法であって、
プロセス制御ルーチン内のアドバンスド制御エレメント（５６，６０，１５０，１７２）を通信可能に接続するステップを有し、前記アドバンスド制御エレメントは、
プロセス出力（Ｙ１−Ｙ３）からプロセス出力信号を受信する複数の制御入力（ＩＮ１−ＩＮ３）と、
プロセス入力（Ｘ1−Ｘ３）へプロセス制御信号を供給する複数の制御出力（ＯＵＴ１−ＯＵＴ３）と、
通信接続時において未生成の状態である多入力／多出力制御論理（１０２）と、を備え、
前記方法は、前記アドバンスド制御エレメント（５６，６０，１５０，１７２）を用いて、テストプロシージャを実行することによりプロセス応答データを特定するステップを有し、前記テストプロシージャは、
前記アドバンスド制御エレメント（５６，６０，１５０，１７２）内の波形ジェネレータ（１０１）を用いて、前記複数のプロセス入力（Ｘ１−Ｘ３）のそれぞれに励起波形を提供する手続きと、
前記アドバンスド制御エレメント（５６，６０，１５０，１７２）を用いて、前記励起波形に対する前記複数のプロセス出力（Ｙ１−Ｙ３）のそれぞれの応答を表す前記プロセス応答データを収集する手続きと、を含み、
前記方法は、
前記収集されたプロセス応答データから、前記プロセスモデル（１０４，１５４，１７８）が前記複数の制御出力（ＯＵＴ１−ＯＵＴ２）によって前記複数のプロセス入力（Ｘ１−Ｘ３）に供給される前記制御信号の変化に対する前記複数のプロセス出力（Ｙ１−Ｙ３）の予測応答をモデリングすることにより、プロセスモデル（１０４，１５４，１７８）を作成するステップと、
前記プロセスモデル（１０４，１５４，１７８）から、前記多入力／多出力制御論理（１０２）を生成するのに用いることが可能なアドバンスド制御論理パラメータ（１０３）を作成するステップと、
前記アドバンスド制御論理パラメータ（１０３）を用いて前記アドバンスド制御エレメント（５６，６０，１５０，１７２）の前記多入力／多出力制御論理（１０２）を生成するステップと、
前記アドバンスド制御エレメント（５６，６０，１５０，１７２）において生成された前記多入力／多出力制御論理（１０２）を用いて、前記アドバンスド制御論理パラメータ（１０３）に従って前記プロセス（５８，１７４）の多入力／多出力制御を実行するステップと、を有する多入力／多出力アドバンスド制御を実行する方法。
【請求項２】
前記プロセス制御ルーチン内で前記アドバンスド制御エレメントを通信可能に接続するステップは、第１の機能ブロック（６６）に前記複数の制御入力のうちのひとつ（ＩＮ１）を通信可能に接続し、第２の機能ブロック（６２，６４）に前記複数の制御出力のうちのひとつ（ＯＵＴ１，ＯＵＴ２）を通信可能に接続するステップを有する、請求項１記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項３】
前記第２の機能ブロックに前記複数の制御出力のひとつを通信可能に接続するステップは、制御機能ブロック（６４）に前記複数の制御出力のうちのひとつ（ＯＵＴ２）を通信可能に接続して前記プロセス制御ルーチン内で制御ループの制御を与えるステップを有する、請求項２記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項４】
前記第２の機能ブロックに前記複数の制御出力のうちのひとつを通信可能に接続するステップは、ある装置と関連する出力機能ブロック（６２）に前記複数の制御出力のうちのひとつ（ＯＵＴ１）を通信可能に接続して前記装置の制御を与えるステップを有する、請求項２記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項５】
前記アドバンスド制御エレメント（５６，６０，１５０，１７２）内の波形ジェネレータ（１０１）を用いて、前記複数のプロセス入力（Ｘ１−Ｘ３）のそれぞれに励起波形を提供する手続きは、多入力／多出力の前記アドバンスド制御エレメント（５６，６０，１５０，１７２）内の前記波形ジェネレータを用いて、前記励起波形として一連の擬似ランダム長パルスを発生させるステップを有する、請求項１記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項６】
前記プロセスモデル（１５４，１７８）からプロセスシミュレーションエレメント（１５２，１７６）を生成するステップと、
前記アドバンスド制御エレメント（１５０，１７２）に前記プロセスシミュレーションエレメント（１５２，１７６）を通信可能に接続するステップと、
生成された前記アドバンスド制御エレメント（１５０，１７２）の前記多入力／多出力制御論理（１０２）を用いて前記プロセスシミュレーションエレメント（１５２，１７６）を制御するステップと、をさらに有する、請求項１記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項７】
プロセスシミュレーションエレメント（１５２）を生成するステップは、前記プロセスモデル（１５４）を変更するステップと、前記変更されたプロセスモデル（１５６）を用いて前記プロセスシミュレーションエレメント（１５２）を生成するステップとを有する、請求項６記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項８】
生成された前記アドバンスド制御エレメント（１５０，１７２）の前記多入力／多出力制御論理（１０２）が前記プロセスシミュレーションエレメント（１５２，１７６）を制御する間に前記生成された前記アドバンスド制御エレメント（１５０，１７２）の前記多入力／多出力制御論理（１０２）を用いて前記プロセス（５８，１７４）を制御するステップをさらに有する、請求項６記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項９】
前記プロセス（５８，１７４）のプロセス出力（Ｙ１−Ｙ３）を前記プロセスシミュレーションエレメント（１５２，１７６）のシミュレーション出力（Ｙ１ＳＩＭ−Ｙ３ＳＩＭ）と比較して、プロセス（５８，１７４）と、前記アドバンスド制御論理パラメータ（１０３）がそれから生成されたプロセスモデル（１０４，１５４，１７８）との間での不一致を測定するステップをさらに有する、請求項８記載の多入力／多出力アドバンスド制御を実行する方法。
【請求項１０】
前記プロセス（５８，１７４）を制御する際に用いられる前記アドバンスド制御エレメント（１５０，１７２）の前記複数の制御入力（ＩＮ１−ＩＮ３）の１つに前記プロセスシミュレーションエレメント（１５２，１７６）のシミュレーション出力（Ｙ１ＳＩＭ−Ｙ３ＳＩＭ）を与えるステップをさらに有する、請求項８記載の多入力／多出力アドバンスド制御を実行する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般にプロセス制御システムに関し、より特定的には、プロセス制御システムにおいて、モデル予測制御ブロックおよびニューラルネットワーク制御ブロックのようなアドバンスド制御ブロックを用いることに関する。
【０００２】
【従来の技術および発明が解決すべき課題】
化学プロセス、石油プロセス、または他のプロセスで用いられるシステムのように、分散プロセス制御システムまたはスケーラブルプロセス制御システムのようなプロセス制御システムは、典型的には、アナログバス、ディジタルバスまたは組み合わされたアナログ／ディジタルバスを介して、少なくともひとつのホストワークステーションまたはオペレータワークステーションとひとつ以上のフィールド装置とに互いに通信可能に結合されたひとつ以上のプロセスコントローラを含む。例えば、弁、弁ポジショナ、スイッチおよび送信器（例えば、温度センサ、圧力センサ、および流量センサ）であってよいフィールド装置は、弁の開閉およびプロセスパラメータの測定のようなプロセス内の機能を実行する。プロセスコントローラは、フィールド装置が測定を行ったプロセス測定値、および／またはフィールド装置に関する他の情報を示す信号を受信し、この情報を用いて制御ルーチンを実行し、次いで制御信号を生成し、この制御信号は、プロセスの動作を制御するべく、バスによってフィールド装置に送られる。フィールド装置およびコントローラからの情報は典型的には、オペレータワークステーションにより実行されるひとつ以上のアプリケーションに利用可能であり、これにより、オペレータは、プロセスの現状を見たり、プロセスの動作を修正したりするような、プロセスに対して所望の機能を実行することができる。
【０００３】
今まで、従来のフィールド装置は、アナログバスまたはアナログ線を介して、プロセスコントローラとの間でアナログ（例えば４ミリアンペアから２０ミリアンペア）信号を送受信するのに用いられていた。これらの４ミリアンペアから２０ミリアンペアの信号は、装置が測定した測定値または装置の動作を制御するために必要なコントローラが生成した制御信号を示すという点で事実上制限があった。しかしながら、過去１０年ぐらいで、マイクロプロセッサ およびメモリを含むスマート（賢い）フィールド装置はプロセス制御産業において普及した。プロセス内で一次的な機能を実行するだけでなく、スマートフィールド装置は、装置に関するデータを記憶し、ディジタルフォーマットでまたは組み合わされたディジタルおよびアナログフォーマットでコントローラおよび／または他の装置と通信を行い、自己較正、識別、診断などの二次的なタスクを行う。ＨＡＲＴ（登録商標）、ＰＲＯＦＩＢＵＳ（登録商標）、ＷＯＲＤＦＩＰ（登録商標）、Ｄｅｖｉｃｅ−Ｎｅｔ（登録商標）、およびＣＡＮプロトコルのような多くの標準的通信プロトコルおよびオープンスマート装置通信プロトコルは、様々な製造者が製造したスマートフィールド装置を同じプロセス制御ネットワーク内で一緒に用いることが出来るように開発された。
【０００４】
さらに、プロセス制御産業内では、プロセス制御機能を非集中化しようとする動きがある。例えば、ファウンデーション（商標）フィールドバス（以下フィールドバス）プロトコルとして知られているフィールドバスファウンデーションにより広められた全ディジタル、２線式バスプロトコルは、様々なフィールド装置内に位置する機能ブロックを用いて、集中化コントローラ内で前に実行された制御動作を実行する。特に、各フィールドバスフィールド装置は、ひとつ以上の機能ブロックを含み実行することが可能であり、この機能ブロックの各々は他の機能ブロック（同じ装置内でまたは異なる装置内で）との間で入出力動作を行い、プロセスパラメータを測定したり、検出したり、比例・積分・微分（ＰＩＤ）制御ルーチンを実行するように装置を制御したり制御動作を実行したりするような何らかのプロセス制御動作を行う。プロセス制御システム内の様々な機能ブロックは、（例えばバスによって）互いと通信を行いひとつ以上のプロセス制御ループを形成するように構成され、その個々の動作はプロセス中に広がり、従って、分散化（非集中化）される。
【０００５】
プロセスコントローラは典型的には、流量制御ループ、温度制御ループ、圧力制御ループなどのような、あるプロセスのために規定されるかまたはそこに含まれる多くの異なる制御ループの各々のために、異なるアルゴリズム、サブルーチンまたは制御ループ（これらは全て制御ルーチンである）を実行するようにプログラムされる。一般的に、このような各制御ループは、アナログ入力（ＡＩ）機能ブロックのようなひとつ以上の入力ブロック、比例・積分・微分（ＰＩＤ）機能ブロックまたはファジィ論理制御機能ブロックのような単一出力制御ブロック、およびアナログ出力（ＡＯ）機能ブロックのような単一出力ブロックを含む。これらの制御ループは典型的には、単一入力/単一出力制御を実行する。なぜなら制御ブロックは、弁位置などのような単一のプロセス入力を制御するのに用いられる単一の出力を作成するからである。しかしながら、場合によっては、多くの独立して動作する単一入力/単一出力制御ループを用いることはあまり有効ではない。なぜなら、制御されているプロセス変数は１個を上回るプロセス入力により生じさせられているからであり、事実、各プロセス入力は多くのプロセス出力をもたらしてよい。この例としては、例えば、２本の入力ラインにより充填され、単一の出力ライン（各ラインは異なる弁により制御される）により空にされるタンクを有するプロセスを挙げられるが、この場合は、タンクの温度、圧力、スループットは所望の値になるようにまたはそれに近似するように制御される。上でのべたように、タンクのスループット、温度、および圧力の制御は、別個のスループット制御ループ、別個の温度制御ループおよび別個の圧力制御ループを用いて実行されてもよい。しかしながら、この状況では、タンク内の温度を制御すべく入力弁のうちのひとつの設定を変更する際の温度制御ループの動作は、タンク内の圧力を増大させ、これにより、例えば、圧力ループに出力弁を開放させて圧力を下げるようにする。この動作は次いで、スループット制御ループに入力弁のうちのひとつを閉じさせ、これによりその温度をもたらし、温度制御ループに何らかの他の動作を行わせる。この例において理解されるように、単一入力/単一出力制御ループにより、プロセス出力（この場合、スループット、温度および圧力）は、安定した状態に達することなく発振することとなり、これは望ましくない。
【０００６】
モデル予測制御または他の種類のアドバンスド制御は、従来、これらの状況において制御を行うのに用いられてきた。一般的に、モデル予測制御は多入力／多出力制御戦略であり、この戦略においては、多くのプロセス入力の各々を変更したことによる多くのプロセス出力の各々に対する影響が測定され、これらの測定された応答はついでプロセスのモデルを作成するのに用いられる。プロセスのモデルは数学的に反転され、ついで、多入力／多出力コントローラとして、プロセス入力に行われた変更に基づいてプロセス出力を制御するのに用いられる。場合によっては、プロセスモデルは、プロセス入力の各々に対するプロセス出力応答曲線を含み、これらの曲線は、プロセス入力の各々に送られる、一連の、例えば、擬似ランダムステップ変更に基づいて作成されてよい。これらの応答曲線は公知の態様でプロセスをモデル化するのに用いることができる。モデル予測制御は当該技術で公知であり、従って、ここでは具体的には述べない。モデル予測制御は、Qin, S, Joeおよび Thomas Badgwellによる１９９６年のAIChE Conferenceの「工業モデル予測制御技術の概要（"An Overview of Industrial Model Predictive Control Technology"）」に記載される。
【０００７】
従来、モデル予測コントローラを作成してプロセス制御ネットワーク内にそのコントローラを配置するには、多大な時間と努力が必要であり、非常に費用がかかった。通常、ある特定のプロセスのためのモデル予測コントローラを作成するために、プロセスエキスパート（典型的には外部のコンサルタント）がプラントに来て、プラントまたはプロセス動作を観察するように雇われていた。モデル予測コントローラのための適切なプロセス入力および出力を選択した後、エキスパートは制御室に座り、オペレータに、選択されたプロセス入力の各々に対し、一連の段状の入力波形を送るように命令し、選択されたプロセス出力の各々に対するこれらの入力の各々の影響を測定するように命令した。プロセスデータを全て収集した後、エキスパートは、収集されたデータをオフラインシステムに送った。そこで、エキスパートは、第１のルーチンを実行させて、プロセスが通常に動作していなかったとか、遮断されたとか、なんらかの他のエラーが存在していてそのために収集されたデータがプロセスの通常動作を表現できなかったときに収集されたデータのような不良データを除く目的で、収集されたデータをふるいにかけた。オフラインシステムはついで、ふるいにかけられたデータを用いて第２のルーチンを実行させ、プロセスのモデルを作成する。その後、プロセスのためのモデル予測コントローラを作成するため、公知の態様でプロセスのモデルは反転されるか用いられた。いったんモデル予測コントローラが作成されると、それはプロセス制御システム内に挿入されなければならなかったが、これは、制御を行なうために、プロセスエンジニアがもうすでに制御システム内で制御ルーチンをプログラムして、モデル予測コントローラに指定されたコントローラ入力（すなわちプロセス出力）の各々を送り、モデル予測コントローラにコントローラ出力（すなわちプロセス入力）の各々を制御システム内の適切な場所に送らせなければならなかったということである。プロセス制御ルーチンまたはシステムで用いられるモデル予測コントローラ入力および出力に対して同じ名前を使用する売り手もいるが、場合によっては、プロセス制御システム内で規定される通り、モデル予測コントローラの入力および出力をプロセス出力および入力に一致させることが必要であった。いづれにせよ、プロセス制御システム内にモデル予測コントローラを組み込むステップには多大なプログラミングの努力を必要としていただろう。
【０００８】
結果、当該技術で公知ではあるが、収集されたデータからプロセスモデルを作成したり、モデル予測コントローラを作成したり、このコントローラをプロセス内に組み込んだりするのは時間がかかり、エキスパートの入力が必要であり、非常に費用がかかるものである。事実、プロセスのための単一のモデル予測コントローラを作成するには数ヶ月の月日がかかり、数千万円ぐらいかかるだろう。プロセスオペレータにとって残念なことに、プロセス機器のエージング（経年変化）により生じる変化のようなプロセスの変化は、プロセスにとって、作成されたモデル予測コントローラが時代遅れであり、一致しないものであることを強いることになり、これは、別のモデル予測コントローラを作成するために再度プロセス全体を実行させなければならないことを意味する。
【０００９】
さらに、モデル予測コントローラは典型的にはオフラインシステムにより作成されたので、このコントローラは一般的に、制御システムにより実行される単一のループまたは他の制御ルーチンと同じ方法でプロセス制御システム内に統合されなかった。従って、ユーザまたはオペレータがモデル予測コントローラの状態および動作を見れるように特別な図形を作成する必要があった。この理由のために、コントローラ内で制御ブロックまたは制御ループの動作と統合されるプロセス制御表示機構を有するフィッシャー・ローズマウント・システムズ（Fisher Rosemount Systems Inc）が販売しているデルタＶ（商標）のようなプロセス制御システム内にモデル予測コントローラを組み込むことは難しかった。事実、デルタＶシステムは、ユーザに、プロセスの動作を表示するエンジニアのビュー、オペレータのビューなどのような様々なビューを与える。いったんセットアップされると、これらのビューは、例えば、プロセスコントローラ内で実行される機能ブロックの動作により自動的に更新される。しかしながら、異なるシステムによりオフラインで設計されたモデル予測コントローラのためにビューまたは他の情報スクリーンを加えるには、デルタＶシステムが用いるフォーマットとは典型的には異なるフォーマットで、特別の図形表示を作成しなければならなかった。
【００１０】
これらの問題はモデル予測コントローラに対して存在したが、ニューラルネットワークモデル化システムまたはニューラルネットワーク制御システム、多変数ファジィ論理コントローラ、リアルタイムオプティマイザ(optimizer)などのような、他のアドバンスド多入力／多出力制御ブロックまたはシステムの開発および使用においても、同じまたは類似の問題が存在する。
【００１１】
【課題を解決するための手段】
本発明のある態様によれば、アドバンスド（advanced）制御ブロックは、フィールドバスパラダイム(paradigm)のような制御パラダイムを用いて実行される制御ブロックと統合される方法で、プロセス制御システム内で、モデル予測制御、ニューラルネットワークモデル化またはニューラルネットワーク制御などのような多入力／多出力制御を実行する。アドバンスド制御ブロックは、それぞれプロセス出力およびプロセス入力に接続されてプロセスを制御するための所望の入力および出力を有する制御ブロックを作成することにより開始されてよい。制御ブロックは、最終的には、例えば完全なモデル予測コントローラを含むものであるが、最初は、データ収集ユニットと、それと関連する波形ジェネレータとを有する。所望であれば、制御ブロックは、チューニングされていないかまたはそうでなければ未成の制御論理を有してよい。なぜなら、この論理はミッシングチューニングパラメータであるか、実行する必要のある行列係数かまたは他の制御パラメータであるからだ。制御ブロックは、もしもアドバンスド制御ブロックがプロセスを制御するのに使用されているとしたら、規定された入力および出力が接続されるだろうというような方法で、これらの入力および出力が制御システム内で通信可能に結合された状態で、プロセス制御システム内に配置される。テストプロシージャの間、制御ブロックは体系的に、プロセスモデルを作成する際に用いられるように特殊設計された波形ジェネレータにより生成された波形を用いて、制御ブロックを出力を介してプロセス入力の各々をアップセットする。ついで、制御ブロック入力を介して、制御ブロックは、プロセス入力の各々に送られた生成された波形の各々に対するプロセス出力の各々の応答に関するデータを収集することを調整する。このデータは、例えば、データヒストリアン（data historian）に送られて記憶されてよい。
【００１２】
十分なデータが収集された後、プロセスモデル化プロシージャは実行され、プロセスモデルは、例えば、モデル予測コントローラプロセスモデル生成ルーチンを用いて、収集されたデータから生成される。その後、アドバンスド制御ブロック論理パラメータ決定ルーチンを用いて、プロセスを制御するのに用いられるべき制御論理が必要なパラメータを作成するか生じさせる。制御論理パラメータ、そして必要ならば、プロセスモデルは、次いで、アドバンスド制御論理パラメータおよびプロセスモデルを有するアドバンスド制御ブロックを用いてプロセスを制御できるように、制御ブロックにダウンロードされてアドバンスド制御ブロックの形成を完成させる。
【００１３】
アドバンスド制御ブロックは、プロセス制御システム内の他の制御ブロックと同じフォーマットでまたは同じプログラミングパラダイムに従って設計することができ、従って、プロセス制御ルーチン内で他のブロック（またはエレメント）により支援される同じ図形ビューを支援することができる。このように、アドバンスド制御ブロックは、ひとり以上のユーザに表示されるべきひとつ以上の図形ビューを有してもよく、アドバンスド制御ブロックの動作の間にこれらのビューにデータを送ってもよい。
【００１４】
さらに、プロセスモデル化プロシージャにより生成されたプロセスモデルは、プロセスの動作をシミュレートする、および／または、プロセスおよびアドバンスド制御ブロックの対話をシミュレートするのに用いられてよい。ある場合においては、プロセスシミュレーションブロックは、決定されたプロセスモデルから作成されてよく、このプロセスシミュレーションブロックは、アドバンスド制御ブロックを用いて実際のプロセスを制御する前に、作成されたアドバンスド制御ブロックに通信可能に結合されて、アドバンスド制御ブロックの動作をテストする。別の場合においては、プロセスシミュレーションブロックは、プロセス内のエージングまたは他の変化を反映するために、決定されたプロセスモデルの変更バージョンを用いて作成されてよい。このシミュレーションブロックは、アドバンスド制御ブロックに通信可能に接続されて、プロセスに変更がある状態でアドバンスド制御ブロックの動作をシミュレートし、これによりプロセスモデルの不一致が存在している場合において、アドバンスド制御ブロックの実行を決定する。さらに別の場合においては、プロセスモデルから作成されたシミュレーションブロックは、プロセスと関連して実行されてよく、例えば、実際のプロセス出力のうちのひとつを測定するセンサが故障したとき、アドバンスド制御ブロックのための入力として用いられるべき仮想プロセス出力を作成するのに用いられてよい。シミュレートされたプロセス出力は、実際のプロセス出力と比較されて、プロセスと、アドバンスド制御ブロックを作成するのに用いられるプロセスモデルとの間の不一致、すなわち、プロセス／プロセスモデル不一致の量を決定してよい。
【００１５】
【発明の実施の形態】
さて図１を参照して、プロセス制御システム１０は、データヒストリアン(data historian)１２と、各々がディスプレイスクリーン１４を有する、ひとつ以上のホストワークステーションまたはコンピュータ１３（任意の種類のパソコン、ワークステーションなどであってよい）とに接続されたプロセスコントローラ１１を含む。コントローラ１１は、入力／出力（Ｉ／Ｏ）カード２６、２８を介してフィールド装置１５―２２にも接続される。データヒストリアン１２は、データを記憶するための所望の種類のメモリおよび所望のまたは公知のソフトウェア、ハードウェア、またはファームウェアを有する所望の種類のデータ収集ユニットであってよく、ワークステーション１３のうちのひとつとは別個（図１に示されるように）であってもよく、その一部であってもよい。コントローラ１１は、例えば、フィッシャー・ローズマウント・システムズ（Fisher Rosemount Systems，Inc）により販売されるＤｅｌｔａＶ（商標）コントローラであるが、例えば、イーサネット（登録商標）接続または他の所望の通信ネットワークによってホストコンピュータ１３とデータヒストリアン１２とに通信可能に接続される。 コントローラ１１は、例えば標準的な４−２０ミリアンペア装置と関連する所望のハードウェアおよびソフトウェア、および／またはフィールドバスプロトコル、ＨＡＲＴプロトコルのようなスマート通信プロトコルと関連する所望のハードウェアおよびソフトウェアを用いてフィールド装置１５−２２にも通信可能に接続される。
【００１６】
フィールド装置１５―２２は、センサ、弁、送信器、ポジショナなど、任意の種類の装置であってよく、Ｉ／Ｏカード２６、２８は、所望の通信プロトコルまたはコントローラプロトコルに従う任意の種類のＩ／Ｏ装置であってよい。図１に示される実施の形態においては、フィールド装置１５―１８は、アナログ回線によってＩ／Ｏカード２６と通信する標準的な４―２０ミリアンペア装置であり、フィールド装置１９―２２は、フィールドバスプロトコル通信を用いてディジタルバスによってＩ／Ｏカード２８と通信する、フィールドバスフィールド装置のようなスマート装置である。一般的に、フィールドバスプロトコルは、フィールド装置を相互接続する２線式ループまたはバスに標準化された物理インタフェースを与える全ディジタルシリアル双方向通信プロトコルである。フィールドバスプロトコルは、事実、プロセス内のフィールド装置のためにローカルエリアネットワークを与え、これによって、プロセス設備（facility）中に分散された位置でプロセス制御機能を実行する（フィールドバスプロトコルにしたがって規定された機能ブロックを用いて）ことができ、これらプロセス制御機能の実行の前後に互いと通信して全体の制御戦略を実行することが出来る。フィールドバスプロトコルは、プロセス制御ネットワークで用いられるために開発された比較的新しい全ディジタル通信プロトコルであるが、このプロトコルは当該技術で公知であり、とりわけ、テキサス洲、オースティンに本部を置く非営利組織のフィールドバスファウンデーションにより出版され、流通され、そこから入手可能である無数の記事、パンフレットおよび仕様書に詳細に説明されていることは理解されるであろう。従って、フィールドバス通信プロトコルの詳細についてはここでは述べられない。当然、フィールド装置１５―２２は、将来において開発される規格またはプロトコルを含め、他の所望の規格またはプロトコルに従う。
【００１７】
コントローラ１１は、１個以上のプロセス制御ルーチンを実行するかまたは監督し、そこに記憶されるかまたはそれと関連する制御ループをふくんでよく、装置１５―２２、ホストコンピュータ１３およびデータヒストリアン１２と通信を行い所望の方法でプロセスを制御する。尚、本明細書で述べる制御ルーチンまたはエレメントは、所望であれば、様々なコントローラまたは他の装置により実行される一部を有してよい。同様に、プロセス制御システム１０内で実行されるべき本明細書で述べる制御ルーチンまたはエレメントは、ソフトウェア、ファームウェア、ハードウェアなどを含め、任意の形をとってよい。本発明の目的のために、プロセス制御エレメントは、例えば、コンピュータ読み取り可能な媒体上に記憶されるルーチン、ブロックまたはモジュールを含め、プロセス制御システムの一部または部分であってよい。制御ルーチンは、モジュール、または、サブルーチン、サブルーチンの一部（コードのラインのような）などのような制御プロシージャの一部であってよく、はしご論理、順次機能チャート、機能ブロック図、もしくは他のソフトウェアプログラミング言語もしくは設計パラダイムを用いてのように、所望のソフトウェアフォーマットで実行されてよい。同様に、制御ルーチンは、例えば、ひとつ以上のＥＰＲＯＭ  ＥＥＰＲＯＭ、専用集積回路（ＡＳＩＣ）、または他のハードウェアエレメントもしくはファームウェアエレメント内にハードエンコード(hard-coded)されてもよい。 さらに、制御ルーチンは、図形設計ツールまたは他の種類のソフトウェア／ハードウェア／ファームウェアプログラミングツールもしくは設計ツールを含め、何らかの設計ツールを用いて設計されてよい。このように、コントローラ１１は、所望の方法で、制御戦略または制御ルーチンを実行するように構成されてよい。
【００１８】
ある実施の形態においては、コントローラ１１は、一般に機能ブロックと称されるものを用いてある制御戦略を実行する。この戦略においては、各機能ブロックは、全体の制御ルーチンの一部（例えばサブルーチン）であり、他の機能ブロックと（リンクと呼ばれる通信によって）関連して動作してプロセス制御システム１０内のプロセス制御ループを実行する。機能ブロックは典型的には、送信器、センサまたは他のプロセスパラメータ測定装置と関連するものとしての入力機能、ＰＩＤ制御、ファジィ論理制御などを実行する制御ルーチンと関連するものとしての制御機能、または、弁のような装置の動作を制御する出力機能のうちのひとつを実行してプロセス制御システム１０内で何らかの他の物理的な機能を実行する。当然、ハイブリッド機能ブロックおよび他の種類の機能ブロックが存在する。機能ブロックはコントローラ１１内に記憶されてこれにより実行されてよいが、これは典型的には、これらの機能ブロックが標準的な４―２０ミリアンペアの装置、およびＨＡＲＴ装置のような何らかの種類のスマートフィールド装置のために用いられるかもしくはこれらと関連し、またはフィールドバス装置の場合のようにフィールド装置自体内に記憶されてこれにより実行されてもよい。制御システムについてここでは機能ブロック制御戦略を用いて説明しているが、制御戦略または制御ループもしくは制御モジュールは、はしご論理、順次機能チャートのような他の規約を用いて、または他の所望のプログラミング言語またはプログラミングパラダイムを用いて実行されるか設計されるだろう。
【００１９】
図１の拡大されたブロック３０に示されるように、コントローラ１１は、ルーチン３２、３４として示される、多くの単一ループ制御ルーチンをふくんでよく、所望であれば、制御ループ３６として示されるひとつ以上のアドバンスド制御ループを実行してよい。このようなループ各々は典型的には制御モジュールと称される。単一ループ制御ルーチン３２、３４はそれぞれ、適切なアナログ入力（ＡＩ）機能ブロックおよびアナログ出力（ＡＯ）機能ブロックに接続された単一入力／単一出力ファジィ論理制御ブロックおよび単一入力／単一出力ＰＩＤ制御ブロックを用いて信号ループ制御を実行するものとして示され、機能ブロックは、弁のようなプロセス制御装置と関連してもよいし、温度送信器および圧力送信器のような測定装置と関連してもよいし、プロセス制御システム１０内の他の装置と関連してもよい。アドバンスド制御ループ３６は、多数のＡＩ機能ブロックに通信可能に接続された入力と多数のＡＯ機能ブロックに通信可能に接続された出力とを有するアドバンスド制御ブロック３８を含むものとして示されるが、アドバンスド制御ブロック３８の入力および出力は他の所望の機能ブロックまたは制御エレメントに接続されて他の種類の入力を受け取り他の種類の制御出力を与えてもよい。アドバンスド制御ブロック３８は、制御信号を２個以上のプロセス入力を与えることにより２個以上のプロセス出力を制御するのに用いられる何らかの種類の多入力／多出力制御ブロックであってよい。アドバンスド制御ブロック３８はここではモデル予測制御（ＭＰＣ）ブロックとして説明されているが、アドバンスド制御ブロック３８は、ニューラルネットワークモデル化ブロックまたはニューラルネットワーク制御ブロック、多変数ファジィ論理制御ブロック、リアルタイムオプティマイザ(optimizer)ブロックなどのような他の多入力／多出力ブロックであってもよい。アドバンスド制御ブロック３８を含む図１に示される機能ブロックはコントローラ１１により実行されるか、またはワークステーション１３のうちのひとつもしくはフィールド装置１９―２２のうちのひとつのような他の処理装置内に位置しこれにより実行可能であることを理解されたい。
【００２０】
図１に示されるように、ワークステーション１３のうちのひとつはアドバンスド制御ブロック生成ルーチン４０を含み、このルーチンは、ここで詳細に述べる方法でアドバンスド制御ブロック３８を作成し、ダウンロードし、実行するのに用いられる。アドバンスド制御ブロック生成ルーチン４０はワークステーション１３内のメモリ内に記憶されてプロセッサにより実行されてよいが、このルーチン（またはその一部）は、所望であれば、さらにまたは代替的に、プロセス制御システム１０内の他の装置内に記憶されて実行されてよい。一般に、アドバンスド制御ブロック生成ルーチン４０は、アドバンスド制御ブロックを作成してこのアドバンスド制御ブロックをプロセス制御システム内に接続する制御ブロック作成ルーチン４２と、アドバンスド制御ブロックにより収集されたデータに基づいてプロセスのためのプロセスモデルまたはその一部を作成するプロセスモデル化ルーチン４４と、プロセスモデルからアドバンスド制御ブロックのための制御論理パラメータを作成し、これらの制御論理パラメータを、プロセスを制御する際に用いられるためにアドバンスド制御ブロック内に記憶するかダウンロードする制御論理パラメータ作成ルーチン４６とを含む。ルーチン４２、４４、４６は、一連の異なるルーチンで構成可能であるが、この一連のルーチンとは、プロセス出力を受け取るように構成される制御入力と制御信号をプロセス入力に与えるように構成される制御出力とを有するアドバンスド制御エレメントを作成する第１のルーチンと、プロセス制御ルーチン（所望の構成ルーチンであってよい）内のアドバンスド制御エレメントをユーザが通信可能に接続できるようにする第２のルーチンと、アドバンスド制御エレメントを用いてプロセス入力の各々に対し励起波形を与える第３のルーチンと、アドバンスド制御エレメントを用いて波形に対するプロセス出力の各々の応答を反映するデータを収集する第４のルーチンと、収集されたデータからプロセスモデルを作成する第５のルーチンと、プロセスモデルからアドバンスド制御論理パラメータを生じさせる第６のルーチンと、アドバンスド制御論理、およびもし必要ならばプロセスモデルをアドバンスド制御エレメント内に配置してアドバンスド制御エレメントがプロセスを制御することができるようにする第７のルーチンとである。
【００２１】
さて図２を参照して、フローチャート５０は、図１のプロセス制御システム１０のようなプロセス制御システム内の、アドバンスド制御ブロック、特にＭＰＣ制御ブロックを作成して用いるステップを示す。図２のフローチャート５０はＭＰＣブロックまたはモジュールの作成を示しているが、ニューラルネットワークモデル化ブロックまたはニューラルネットワーク制御ブロック、多変数ファジィ論理制御ブロックなどのように多入力／多出力制御ブロックのような他のアドバンスド制御ブロックを作成して用いるために同じステップまたは類似のステップを実行することができる。
【００２２】
まず、時間５２で、ＭＰＣプロシージャを実行する事によりプロセス制御システム１０内の制御を向上させるかまたは与えるべく決定が行われる。この決定は、プロセス制御システム１０が最初にセットアップされるときかまたは、単一ループ制御ルーチンのような他の制御ルーチンが不十分な制御を与えると発見された後になって行われる。時間５２で、オペレータまたは他のユーザがＭＰＣブロック生成ルーチン４０を実行して、プロセス制御システム内でＭＰＣモジュールまたは制御ループを作成するステップを開始する。このプロセスの一部として、オペレータは、設計されているＭＰＣブロックの出力が接続されるべきプロセス入力を選択するとともに、設計されているＭＰＣブロックの入力が接続されるべきプロセス出力を選択する。ＭＰＣブロックが有する入力および出力の個数は任意であるが、各ＭＰＣブロックは一般に、３種の入力を有し、これらは、あるセットポイント（または設定範囲内）で維持されるべきプロセス変数またはプロセスパラメータである制御されたパラメータ入力、プロセスと関連する例えば物理的限界に基づいたある特定の限界値または範囲に制約されるプロセス変数であり、ＭＰＣブロックがその入力を制約された範囲または限界値の範囲から外れるように強制してはならない制約された入力、および、変更される場合、制御されたパラメータに対し変更を生じさせるものとして知られているプロセス入力のような他のプロセス変数であるプロセス妨害パラメータ入力である。ＭＰＣブロックはプロセス妨害パラメータ入力を用いて、制御されたパラメータ（すなわち制御されたプロセス出力）に対する変化を予知し、これらの変化の影響をそれらが生じる前に制限する。ＭＰＣブロックがこれらのエレメントを効果的に制御することができるようにするための制御されている装置または他のプロセスエレメントからのフィードバックのような他の入力もＭＰＣブロックに与えられてよい。同様に、ＭＰＣブロックの出力は、制御ループ入力、装置制御入力などを含む所望のプロセス変数または他のプロセス入力を制御するために接続されてよい。ＭＰＣブロックを他の制御エレメントに接続することにより生じさせられるルーチンはここではＭＰＣモジュールと称される。ユーザはＭＰＣ機能ブロックを作成してよいが、ユーザは、機能ブロックのライブラリのようなメモリからの初期機能ブロックを得て、この機能ブロックを用いるかまたはプロセス制御システムで用いられるこの機能ブロックのインスタンスを作成してよい。同様に、ユーザまたは他のプロバイダは、他の所望の方法で機能ブロックまたは他の制御エレメントを与えてよい。
【００２３】
ステップ５４で、オペレータは、プロセス制御システム内で通信可能に接続された特定の入力および出力を備えたＭＰＣブロック（モデル予測制御を与えるのに必要な情報をまだ全部有しているわけではない）を有するＭＰＣモジュールを作成し、このブロックまたはモジュールを、ＭＰＣモジュールを実行する適切なコントローラまたは他の装置にダウンロードする。このプロセスの一部として、オペレータは、ＭＰＣブロックの出力を適切なプロセス入力に通信可能に結合するとともにＭＰＣブロックの入力を適切なプロセス出力に通信可能に結合することにより、ＭＰＣブロックを実行するように、プロセス制御システム１０を構成する。
【００２４】
図３を参照して、ＭＰＣブロック５６はプロセス５８に接続されるものとして示される。ＭＰＣブロック５６は、３個の入力ＩＮ1−ＩＮ3 と３個の出力ＯＵＴ1―ＯＵＴ3とを有する３ｘ３制御ブロックであり、プロセス５８は入力Ｘ1−Ｘ5と出力Ｙ1−Ｙ6とを含む。当然、ＭＰＣブロック５６およびプロセス５８が含む入力および出力の個数は任意である。ＭＰＣブロック５６は一般に正方形ブロック、すなわち、同じ個数の入力および出力を有してよいが、この構成は必要でなく、ＭＰＣブロック５６の有する入力および出力の数は異なっていてよい。図３に示されるように、オペレータは、プロセス出力Ｙ1−Ｙ3をそれぞれＭＰＣブロック入力ＩＮ1−ＩＮ3に通信可能に接続し、ＭＰＣブロック出力ＯＵＴ1―ＯＵＴ3をそれぞれプロセス入力Ｘ1―Ｘ3に通信可能に接続する。当然、プロセス５８の入力および出力のうちのいづれかは、プロセス制御システム１０と関連する他の制御ルーチン内の他のエレメントに接続されてよい（図３のプロセス入力および出力に接続された点線により示されるように）。一般に、制御入力をプロセス５８に与えている（プロセス入力Ｘ1―Ｘ3に接続された点線により示されるように）ＭＰＣブロック５６および他のブロックは、なんらかのスイッチを介して接続され、これらのスイッチは図３にボックス５９で示される。スイッチ５９は、ハードウェアスイッチまたはソフトウェアスイッチであってよいが、所望であれば、フィールドバス機能ブロックのような機能ブロックの異なる入力に異なる制御入力信号を送ることにより与えられてよく、ＭＰＣブロック５６からの制御信号とＰＩＤ機能ブロックからのような異なる機能ブロックからの制御信号とを受け取る機能ブロックのモードに基づいて、これらの信号の間で選択を行うことができる。
【００２５】
当然、オペレータは所望の方法で、ＭＰＣブロック５６をプロセス５８に接続可能であり、一般に、オペレータがプロセス制御システム１０内の単一制御ルーチンのような他の制御ループを作成するのに用いるのと同じ制御構成プログラムまたは設計プログラムを用いるだろう。例えば、オペレータは、所望の図形プログラミングルーチンを用いて、ＭＰＣブロック５６とプロセス入力出力との間の接続を指定してもよい。このようにして、ＭＰＣブロック５６は、他の制御ブロック、エレメント、またはルーチンと同じ方法で支援されてよく、これは、ＭＰＣブロック５６の構成および接続と、システム１０内の他のブロックの構成、接続および支援と同じような制御システム１０内のそのブロックの支援とを行う。ある実施の形態においては、制御システム１０内の他のブロックと同様にＭＰＣブロック５６は、フィールドバス機能ブロックと同じであるかまたはそれと類似であるように設計された機能ブロックである。この実施の形態においては、ＭＰＣブロック５６は、フィールドバスプロトコルにおいて特定されるか与えられた通り、同じまたは類似の種類の入力、出力などを有してよく、例えば、フィールドバスプロトコルにより特定されたものと同じであるかまたは類似の通信リンクを用いて、コントローラ１１により実行可能である。プロセス制御ルーチンおよびそのエレメントを図形で作成する方法は、 「プロセス制御環境を構成するためのシステム"System for Configuring a Process Control Environment"」と題されたドゥーブらの米国特許第５、８３８、５６３号に記載され、この特許を本明細書において引用により援用する。  当然、他の種類の機能ブロックを用いるかまたはプロセス制御構成パラダイム内の他のルーチン、サブルーチンまたは制御エレメントを用いるものを含め、他の制御ループまたは制御モジュール設計戦略も同様に用いられてよい。
【００２６】
フィールドバス機能ブロックパラダイムが与えるブロックような、機能ブロックの相互接続に基づいた制御システムを用いるとき、ＭＰＣブロック５６はプロセス制御ルーチン内の他の機能ブロックに直接接続可能である。例えば、ＭＰＣブロック５６は、ＭＰＣブロック５６の制御出力を、制御されている装置と関連する出力ブロック（ＡＯブロックのような）に直接接続することにより弁などの制御装置に接続されてよい。同様に、ＭＰＣブロック５６は、他の制御機能ブロックの入力ような、他の制御ループ内の機能ブロックに制御信号を与えて、これらの制御ループの動作を予知するかオーバーライドしてもよい。
【００２７】
図４Ａ、４Ｂは、例えば、フィールドバスタイプのＭＰＣ機能ブロック６０を示し、これは、プロセス制御システム内の他のフィールドバスタイプの機能ブロックに接続されて、単一ループ制御ルーチンにより実行される既存の多変数戦略を調整する。特に、ＭＰＣ機能ブロック６０は、操作されている弁と関連するＡＯブロック６２のＲＣＡＳ  ＩＮ（リモートカスケード）入力に接続された第一の出力ＯＵＴ1と、ＰＩＤ機能ブロック６４のＲＣＡＳ ＩＮ（リモートカスケード）入力に接続された第２の出力ＯＵＴ2とを有する。さらに、ＭＰＣブロック６０は、ＡＩ機能ブロック６６から送られた第一の入力Ｉ1（制御されたパラメータ入力）と、ＡＩ機能ブロック６８（図４Ｂ）から送られた第一の入力Ｉ２（制御されたパラメータ入力）と、ＡＩ機能ブロック７０から送られた第３の入力Ｉ3（妨害パラメータ入力）とを有する。ＡＩ機能ブロック６６、６８、７０は、センサのようなフィールド装置により測定され、送信器または他の装置により制御ルーチンに送信される信号と関連し、これを与えてよい。ＭＰＣブロック６０は、ＭＰＣブロック６０により機能ブロック６２、６４に送られる制御信号の影響を決定する際に用いられるＡＯ機能ブロック６２およびＰＩＤ機能ブロック６４のリモートカスケード出力（ＲＣＡＳ ＯＵＴ）から、入力ＢＫＣＡＬ ＩＮ1およびＢＫＣＡＬ ＩＮ2（バック較正入力）で、フィードバックを受け取る。ＡＩ機能ブロック６６の出力はＰＩＤ機能ブロック７２の入力に与えられ、ＰＩＤ機能ブロック７２は、ＡＯ機能ブロック６２のカスケード入力（ＣＡＳ ＩＮ）に制御信号を与え、ＰＩＤ機能ブロック７２のＢＫＣＡＬ ＩＮ入力でＡＯ機能ブロック６２の出力ＯＵＴからのフィードバック信号を受信し、それにより、プロセスの通常の動作の間に、すなわち、ＭＰＣ動作なしに、操作された値を制御する。同様に、ＡＯ機能ブロック６８は、その出力（プロセス出力）をＰＩＤ機能ブロック７４の自動入力に送り、ＰＩＤ機能ブロック７４は、制御信号をＰＩＤ機能ブロック６４のカスケード入力に与える。ＰＩＤ機能ブロック７４は、機能ブロック７４のＢＫＣＡＬ ＩＮ入力でＰＩＤ機能ブロック６４からフィードバック信号も受信する。図４Ａ、４Ｂ（図５と同様に）の機能ブロックの入力および出力は、フィールドバスプロトコルの場合と同じように規定され、フィールドバスプロトコルにより与えられた規定および構成に従って動作する。
【００２８】
理解されることであるが、機能ブロック６６、７２、６２は、第１の単一ループ制御ルーチンを形成し、機能ブロック６８、７４、６４は第２の単一ループ制御ルーチンを形成し、これら両方は、プロセスの通常動作または自動動作の間に動作されてよい。しかしながら、ＭＰＣブロック６０は、ＡＯ機能ブロック６２およびＰＩＤ機能ブロック６４のリモートカスケード入力に制御入力与えることにより、ＰＩＤ機能ブロック６４と関連するループの制御だけでなく、ＡＯ機能ブロック（および関連の装置）の制御を引き受けてよく、これにより、これらの機能ブロックは（自動モードの代わりに）リモートモードで動作するようになり、従って、自動入力のかわりにリモート入力で制御入力を用いて動作する。リモートモードで動作するとき、機能ブロック６２、６４は、それぞれＰＩＤ機能ブロック７２、７４の入力を無視する。このように、ＭＰＣブロック６０はブロック６２、６４に接続されてその制御を与えてもよいが、スイッチオン・オフしてもよい。ＭＰＣ機能ブロック６０により制御されていないときは、ブロック６２、６４は、単一ループ制御戦略に従って、それぞれブロック７２、７４により依然として制御されている。
【００２９】
同様に、図５は、プロセス制御ルーチン内で接続されて単一ループルーチンを調整するＭＰＣ機能ブロック８０を示す。特に、ＭＰＣ機能ブロック８０は、ＡＩ機能ブロック８２、８４からの制御されたパラメータ入力とＡＩ機能ブロック８６からの妨害パラメータ入力とを受け取る。ＭＰＣ機能ブロック８０は、操作された値と関連するＡＯ機能ブロック９０に制御出力を与え、制御ループ９４内のＰＩＤ機能ブロック９２のカスケード入力（ＣＡＳ  ＩＮ）にセットポイント出力を与える。ＡＯ機能ブロック９０およびＰＩＤ機能ブロック９２は、ＭＰＣ機能ブロック８０のバック（back）較正入力に、バック較正出力を与える。制御ループ９４は、ＡＩ機能ブロック９６も含み、ＡＩ機能ブロック９６は、ＰＩＤ機能ブロック９２の自動入力に制御パラメータ入力（すなわちプロセス出力）を与え、ＰＩＤ機能ブロック９２ついで、例えば、異なる弁または装置と関連するＡＯ機能ブロック９８に制御出力を与える。ＡＯ機能ブロック９８は、ＰＩＤ機能ブロック９２のバック較正入力にフィードバックを与える。図５の構成において、ＭＰＣ機能ブロック８０は、ＡＯ機能ブロック９０と関連する弁を直接制御し、そのループのセットポイントを操作することによりループ９４の動作を制御する。しかしながら、ループ９４は、ＭＰＣ機能ブロック８０が動作しているときに動作し続ける。そのようなものとして、ＭＰＣ機能ブロック８０は、ＡＯ機能ブロック９８と関連する装置を間接的に制御するが、制御ループ９４を直接制御する。当然、ＭＰＣブロックは他の所望の方法でプロセス制御ルーチン内で接続されて、制御装置または他の制御エレメントを直接的にまたは間接的に制御する。さらに、図形プログラミング技術または非図形プログラミング技術を含め、なんらかの技術を用いて制御ルーチンまたはモジュールが生じさせられてよい。
【００３０】
このように、理解されるだろうが、図３においてＭＰＣブロック５６の出力が接続されるプロセス入力Ｘ1―Ｘ3は、既存の制御戦略内で規定された制御ループへの入力、またはプロセスに接続された弁または他の装置への入力を含め、所望のプロセス入力であってよい。同様に、ＭＰＣブロック５６の入力に接続されたプロセス出力Ｙ1-Ｙ3は、弁または他のセンサの出力、ＡＯ機能ブロックまたはＡＩ機能ブロックの出力、または他の制御エレメントもしくは制御ルーチンの出力を含め、所望のプロセス出力であってよい。
【００３１】
図２のステップ５４を再び参照して、いったん、オペレータが、それぞれ所望のプロセス出力および入力に接続された入力および出力を有する初期のＭＰＣブロックを含む制御モジュールを作成すると、初期のＭＰＣブロックを有する制御モジュールは、コントローラ１１またはワークステーション１３のうちのひとつのような適切な装置にダウンロードされて、実行される。つぎに、ステップ９９で、オペレータは、初期ＭＰＣブロックに、公知の方法でプロセスを励起し始めるように命令し、プロセスが励起されている間にプロセス入力データおよびプロセス出力データを収集するように命令する。
【００３２】
図３に示されるように、初期ＭＰＣブロック５６は、データ収集ユニット１００と、波形ジェネレータ１０１と、汎用制御論理１０２と、制御パラメータ１０３およびプロセスモデル１０４を記憶するための記憶装置とを含む。汎用論理１０２は、例えば、ある特定のインスタンスにおいて動作するか制御を実行することができるように係数または他の制御パラメータを必要とする汎用ＭＰＣルーチンであってよい。場合によっては、汎用論理１０２は、プロセスを制御するために、制御されているそのプロセスのためのプロセスモデルを必要としていてもよい。例えば、コントローラ１１にダウンロードされた後、初期のＭＰＣブロック５６は、ＭＰＣ作成ルーチン４２によって、ＭＰＣブロック５６の作成の次のフェーズを開始するように命令され、このフェーズにおいては、データは、プロセスモデルを作成する際に用いられるプロセス出力の各々のために収集される。特に、オペレータによりそうするように命令されたとき（または他の所望の時間で）、ＭＰＣブロック５６の波形ジェネレータ１０１は、その出力ＯＵＴ1―ＯＵＴ3で一連の波形を生成し始め、これにより、プロセス入力Ｘ1― Ｘ3の各々に励起波形を与える。所望であれば、これらの波形は、ユーザワークステーション１３内のソフトウェアにより波形ジェネレータ１０１に与えられてよいが、好ましくは、波形ジェネレータ１０１により作成される。波形ジェネレータ１０１により生成された波形は好ましくは、プロセスの通常動作の間に予測される異なる範囲の入力にわたってプロセスが動作するように設計される。ＭＰＣ制御ルーチンのためのプロセスモデルを作成するために、波形ジェネレータ１０１は、プロセス入力Ｘ1―Ｘ3の各々に、一連の異なる組のパルスを送ってよく、パルスは組ごとに同じ振幅を有するが擬似ランダム長を有し、異なる組のパルスは異なる振幅を有する。このような一連の組のパルスは、異なるプロセス入力Ｘ1―Ｘ3の各々のために作成され、ついで、１個ずつ、順次これらの入力の各々に送られてよい。この時間において、ＭＰＣブロック５６内のデータ収集ユニット１００は、波形ジェネレータ１０１により生成された波形の各々に対するプロセス出力Ｙ1―Ｙ3の応答を示すデータを収集するかまたはこのデータの収集を調整し、生成されている励起波形に関するデータを収集するかまたは収集を調整してもよい。このデータは、ＭＰＣブロック５６内に記憶されてよいが、このましくは、データヒストリアン１２に自動的に送られて記憶され、および／またはワークステーション１３に送られて、ここでこのデータは、ディスプレイスクリーン１４上に表示されてよい。
【００３３】
このように、なんらかのアドバンスド制御論理（まだ完全には生成されていない）を用いてプロセス５８を制御しようとするかわりに、ＭＰＣブロック５６はまず、プロセス５８に一組の励起波形を与え、これらの励起波形に対するプロセス５８の応答を測定する。当然、波形ジェネレータ１０１により生成された励起波形は、アドバンスド制御ルーチンのための作成制御論理パラメータにとって有用なプロセスモデルを作成するために生じさせられた所望の波形であってよい。この例においては、波形ジェネレータ１０１は、モデル予測コントローラのためのプロセスモデルを作成するのに有用であると知られている一組の波形を生成し、これらの波形は、この目的のために、現在知られているかまたは将来において開発されるなんらかの形をとってよい。モデル予測制御のためのプロセスモデルを作成するべくデータを収集する目的でプロセスを励起するのに用いられる波形は周知であるので、ここでは詳細に述べない。同様に、ニューラルネットワーク、多変数ファジイ論理などの制御ルーチンのような他のアドバンスド制御（モデル化を含む）ルーチンのためのプロセスモデルを作成する際に用いられる波形ジェネレータ１０１により、他の種類のまたは所望の種類の波形が生成されてよい。
【００３４】
尚、波形ジェネレータ１０１は、所望の形をとってよく、例えば、ハードウェア、ソフトウェアまたはその両方の組み合わせにおいて実行されてよい。ソフトウェアで実行される場合、波形ジェネレータ１０１は、所望の波形を生成するのに用いられるアルゴリズムを記憶してよいし、生成されるべき波形のディジタル表現を記憶してよいし、または他のルーチンまたは記憶されたデータを用いてそのような波形を作成してもよい。ハードウェアで実行されるときは、波形ジェネレータ１０１は、例えば、発振器または矩形波ジェネレータの形をとってもよい。所望であれば、オペレータは、プロセスのほぼ正確な応答時間、プロセス入力に送られるべき波形の振幅のステップサイズなどのような、波形を設計するのに必要なパラメータを入力するように頼まれるかもしれない。ＭＰＣブロック５６が最初に作成されるかまたはオペレータがＭＰＣブロック５６にプロセスをアップセットするか励起し、プロセスデータを収集するのを開始するように命令するときに、この情報を得るためにオペレータは促されてよい。好ましい実施の形態において、データ収集ユニット１００は、確実に完全かつ正確なプロセスモデルが作成されるように、オペレータが入力する応答時間の３倍かまたは５倍の時間において励起波形の各々に応答してデータを収集する（またはデータの収集を確実にする）。しかしながら、データが集められる時間量は任意である。
【００３５】
いづれにせよ、ＭＰＣブロック５６は好ましくは、波形ジェネレータ１０１がプロセス入力Ｘ1―Ｘ3の各々に対し必要な励起波形を全て送り終えてしまうまで、そしてデータ収集ユニット１００がプロセス出力Ｙ1―Ｙ3のためのデータを収集してしまうまで、動作する。当然、ＭＰＣブロック５６の動作は、このデータ収集プロセスの間に所望であればまたは必要であれば中断されてもよい。
【００３６】
図６を参照して、制御論理生成ルーチン４０によりディスプレイ１４のうちのひとつの上にオペレータに提示可能なスクリーンディスプレイ１１８により、オペレータはアドバンスド制御ブロックを生成する異なるステップを実行できる。特に、スクリーンディスプレイ１１８は、データディスプレイ領域１２０と、アドバンスド制御ブロック生成ルーチン４０の様々な部分を開始するのに用いられる３個のボタン１２２、１２３、１２４を含む。開始テストボタン１２２により、オペレータは、初期のＭＰＣブロック５６にプロセス５８に励起信号を送らせて、データヒストリアン１２に対し送る入力データおよび出力データを収集させる。ボタン１２２は、例えば、励起ルーチンを実行するために残っている時間、すなわちＭＰＣブロック５６が励起波形の全てを生成してこれらの波形に応答して生成されたプロセスデータを収集するのにかかる時間を示す。ボタン１２２を押す前に、オペレータは、プロセスが入力に応答するのにかかる典型的な時間を示す応答時間を入力して、励起波形を生成するためにＭＰＣブロック５６により用いられるステップサイズを示すか指定してよく、このデータはＭＰＣブロック５６の波形ジェネレータ１０１に与えられてよい。ボタン１２２を押した後、ＭＰＣブロック５６により収集されたデータはデータディスプレイ領域１２０上で表示されてもよく、所望であれば、ユーザは、プロセスモデルを作成するのに用いられてはいけないデータにフラグをつけてもよい。尚、データ収集ユニット１００は、確実にこのデータをデータヒストリアン１２または他の記憶装置に送られ記憶されることによりデータを収集してもよい。
【００３７】
次に、図２に示されるように、ステップ１２５で、オペレータは、あるポイントで、プロセスモデル化ルーチン４４を実行することによりＭＰＣブロックを作成する次のフェーズを実行することを決定してよく、プロセスモデル化ルーチン４４は、データヒストリアン１２からの収集されたデータにアクセスして、公知のプロセスモデル生成ルーチンを実行して、収集されたデータからプロセスモデルを作成する。一般的に、オペレータは、図６のスクリーンディスプレイ上の生成制御ボタン１２３を選択することでこのフェーズを開始してよい。
【００３８】
所望であれば、プロセス制御ルーチン４４は、収集されたデータに関してデータふるい分けプロシージャを実行してもよい。このデータふるい分けプロシージャは、アウトライアー（outlier）の収集データ、および他の明らかなエラーデータを検査し、収集されたデータと関連する状態値および限界値のような、収集されたデータと関連する他の値を検査して、そのデータが不良または不適当な状態を有する機能ブロックにより生成されたものかどうか、そのデータが限界値にあったかどうか、そのデータが、機能ブロックまたは他のエレメントが不適当なモードであったときに生成されたものであるかどうか、またはそのデータが、異常なプロセス状況下または望ましくないプロセス状況下でなんらかの方法で生成されたものであるかどうか決定する。例えば、フィールドバス通信プロトコルにおいては、機能ブロックにより生成されたデータは、データヒストリアン１２内にデータとともに記憶可能であり、データをふるいにかけるために用いられる状態、限界値、およびモード指標も含む。所望であれば、データふるい分けルーチンは、図６のデータディスプレイ領域１２０上でオペレータに収集されたデータを示してもよく、このルーチンによって、例えば、プロセス状況のオペレータの知識に基づいてこのデータを強調表示するかまたは識別することにより、オペレータは、ふるい落とされるすなわち除かれるべきデータに印を付けることができる。このように、プロセス５８がオフラインであったとき、プロセス５８が適切に制御されていなかったとき、プロセス５８が修理中であったとき、プロセス５８内のセンサまたは他の装置が故障していたか取りかえ中などにＭＰＣブロック５６により収集されたデータは、選別されて、プロセスモデルを作成するために用いられるべきデータから除かれてよい。
【００３９】
図６に示されるように、ディスプレイ領域１２０内のトレンド(trend)は、トレンドプロットとしてＭＰＣ入力および出力を含むものとして表示されてよい。プロットは、これらの入力および出力の値に基づいて自動基準化される。また、表示されるプロットの部分の時間フレームは好ましくは、指定された応答時間の２倍であるだろう。スライダバー１２６を用いて、時間ウインドウは、過去２日のような以前の時間にさかのぼった値を示すように変更されてもよい。プラント動作上で良好なデータを収集できるように、自動化テスト機能を用いてもよい。開始テストボタン１２２を選択することにより、ＭＰＣブロックにより操作されるプロセス入力、指定された応答時間にわたって、ＭＰＣブロックにより操作されるプロセス入力は、擬似ランダムシーケンスにおける指定されたステップサイズにより衝突される（bumped）。また、開始テストボタン１２２が選択されたとき、データディスプレイ上の開始および終了分割バーは、自動化テストの開始および終了に印をつけるように自動的に設定され、ＭＰＣブロック５６は、プロセス５８に、励起波形のような出力信号の擬似ランダムシーケンスを与えることにより、操作された出力の制御を引き受ける。
【００４０】
ディスプレイ領域１２０内の時間バーまたはデータウインドウは、プロセスモデルを作成するために用いられるデータを選択するのに用いられてもよい。オペレータは、分割バーのうちのひとつを選択して、それを所望の開始時間および終了時間にドラッグ（drag）して、プロセスモデルを識別するために考慮される時間フレームを変更する。開始バーおよび終了バー間の時間の一部が通常のプラント動作を表していなければ、ユーザまたはオペレータは、プロセスモデル識別プロセスの間に無視されるべきデータ値を選択するために時間のこの部分を捕らえる。これに応答して、選択された領域は、より暗い背景色で示され、プロセスモデルを作成するとときに自動的に除かれる。
【００４１】
データをふるいにかけた後、プロセスモデルルーチン４４は、選別されたデータからプロセスモデルを作成する。上で述べたように、プロセスモデル化ルーチン４４は、所望のまたは公知のタイプのプロセスモデル化解析を行って、収集されふるいにかけられたデータからプロセスモデルを作成してよく、作成されたプロセスモデルは、数学アルゴリズム、一連の応答曲線などのような任意の形をとってよい。
【００４２】
プロセスモデル化ルーチン４４がプロセスモデルを決定する際に問題を有しているならば、その問題の指標は、図６に示されるようなユーザディスプレイの状態領域において反映されてもよい。ひとつの問題が示されているが、これは、プロセスモデルを識別するかまたは作成するのに十分なサンプルがないということである。  規定された構成のためには最低限ＸＸＸ個のサンプルが必要であるとメッセージがでている。データファイルはＸＸＸ個のサンプルだけを含むだけであるというメッセージがこの問題をオペレータに知らせるために生成されてよい。検出されるおそれのある別の問題としては、プロセス入力について十分な励起が生じなかったということである。このような問題が生じたとき、この影響に対するメッセージ、ＴａｇＸ、ＴａｇＹなどの信号タグ名を識別するもの、および励起量に対する最小変更をオペレータに与えることが出来る。
【００４３】
所望の場合、そして、成功したモデルが識別されなかった状況では、ユーザは、プロセスモデル化が行われている期間の時間フレームを変更してもよいし、または、プロセスモデル化ルーチン４４で用いられているデータが有効であるようにプロセス入力を変更してもよい。識別されるプロセスモデルは、後にアクセスできるように所望のデータベース内に自動的にセーブされてよい。熟練したユーザは、識別されたプロセスモデルを調べるか編集したいと思うだろう。図６のスクリーン上のアドバンスドボタン１２４を選択することにより、選択されたモデルおよび現在のＭＰＣ機能ブロック構成からＭＰＣコントローラを生成することまたはＭＰＣ制御論理を作成するのに用いられるべき新たなモデルとしての結果として生じるモデルをセーブすることの選択肢を与えられる。生成コントローラオプションが選択されると、ユーザには、編集されているＭＰＣモジュールにおけるＭＰＣブロックのために前にセーブされたモデルをユーザが選択し得るダイアログが提示可能である。編集オプションを選択することにより、ユーザには、問題のＭＰＣモジュールのために作成されたモデルのリストが提示可能である。モデルを選択した後、ユーザは、プロセスステップ応答のオーバービューを表示するスクリーンまたは、後に説明する他のスクリーンを見て、プロセスステップ応答を編集して新たなまたは変更されたモジュールを作成する。
【００４４】
プロセスのあるポイントにおいて、論理パラメータ作成ルーチン４６は、初期ＭＰＣブロック５６の汎用論理１０２が必要なパラメータ（ＭＰＣブロック５６内の変数内に記憶されるべき）を作成するために実行され、モデル予測制御を実行してよい。これらの制御パラメータは、例えば、ＭＰＣ論理のための行列または他のＭＰＣ係数、チューニングパラメータ、ニューラルネットワークパラメータ（ニューラルネットワークのための）、倍率（多変数ファジイ論理のための）または他の所望のパラメータであってよく、通常は、生成されたプロセスモデルに基づいて決定される。論理パラメータ作成ルーチン４６は、プロセスモデルからパラメータを作成するための所望のプロシージャまたは公知のプロシージャを実行してもよい。一般に、このプロセスは、行列フォーマットでプロセスモデルを反転することを伴う。しかしながら、他の所望の論理パラメータ作成ルーチンも用いることができる。プロセスのために収集されたデータからプロセスモデルを作成し、そのプロセスモデルからＭＰＣパラメータまたは他の制御論理パラメータを生成する詳細は、当該技術で公知であるので、これらのプロシージャはさらにここでは述べない。尚、しかしながら、オペレータがＭＰＣブロック５６のための制御論理パラメータの作成に関するなんらかの入力を有してもよい。事実、オペレータは、ＭＰＣコントローラを作成するのに典型的には用いられるある変数の値を指定する能力を要求されるかまたは与えられてよい。例えば、オペレータが指定してよいのは、ＭＰＣブロックへの制約された入力の各々のセットポイントおよび限界値、制御変更を行うべき期間の時間フレーム、すなわち、セットポイント軌跡（trajectory）フィルタおよびこのフィルタと関連する時定数、ＭＰＣ出力またはプロセス出力の最大の動きまたは最小の動き（速度限界値）、制御されたパラメータのいづれかが統合的に応答するかどうか、ＭＰＣ最適ファクタ、ＭＰＣ変数またはＭＰＣチューニングパラメータ、ＭＰＣブロックの水平線（horizon）、すなわち所望の状態になるように制御するために順方向計算のステップがいくつ実行されるべきであるか、ＭＰＣブロック５６の入力および出力の各々に対するエンジニアリングユニット範囲、操作された変数目標値のうちのどれが、制約条件のうちのひとつが違反されたときに緩められることを許可されているかまたは実現されないか、ＭＰＣブロック入力および出力の各々の記述および／または名前、設定可能な最適変数の値、ＭＰＣブロックの積極性または頑強性に関する変数の値などである。所望であれば、制御論理生成ルーチン４６は、これらの変数またはセッティングのいくぶんかまたは全てのデフォルト値を記憶し、これらのデフォルト値を用いてＭＰＣ論理を作成する。しかしながら、オペレータまたは他のユーザは、ユーザディスプレイ１４を介してこれらのセッティングを変更することができる。
【００４５】
いづれにせよ、ＭＰＣ論理パラメータ作成ルーチン４６はこの情報、および、ＭＰＣ係数のようなＭＰＣ（または他の）制御論理パラメータを作成するのに必要な他の情報を用いて実行される。スクリーンディスプレイ１１８上の生成制御ボタン１２３は、プロセスモデルおよび制御論理パラメータの作成が成功したかどうかを示してよい。
【００４６】
ＭＰＣ制御論理パラメータが作成された後、図２のステップ１２８で、ＭＰＣ制御論理パラメータまたはＭＰＣ係数がプロセスシミュレーションブロックを用いてテストされてもよい。このシミュレーションブロックは一般に、プロセスのために作成されたプロセスモデルから作成されてよく、ここで説明されるようにテスト環境内でＭＰＣブロックに接続されて、作成されたＭＰＣ制御論理がプロセスの通常動作の範囲にわたって申し分なく動作するかどうかテストする。ＭＰＣ論理が満足いくものでなければ、ステップ５４、９９、および１２５のいづれかまたは全てが繰り返されて異なるＭＰＣ制御論理を作成してよい。しかしながら、もしもＭＰＣ制御論理が満足いくものであれば、ステプ１３０で、ＭＰＣ制御論理パラメータおよびプロセスモデルは、ＭＰＣブロック５６にダウンロードされてパラメータ記憶装置１０３およびプロセスモデル記憶装置１０４内に記憶され、プロセス５８を制御するのに用いられる。このように、ＭＰＣ制御論理が必要なパラメータは、ＭＰＣブロック５６に与えられ、そこに格納され、ＭＰＣブロック５６は、ＭＰＣ制御論理１０２にしたがってプロセス内で動作するかまたは制御を実際に実行するように委託される。当然、所望であれば、必要なパラメータと共に実際のＭＰＣ論理１０２はワークステーション１３で作成されて、ＭＰＣブロック１６にダウンロード可能である。
【００４７】
いったん、コントローラ１１によりダウンロードされ実行されると、ＭＰＣブロック５６を有するＭＰＣモジュールまたはループは、制御ルーチン内の他のブロックまたはエレメントと同じ方法で機能を報告することを行ってよい。なぜなら、上で述べたように、ＭＰＣブロック５６およびこのブロックを含む制御モジュールは、プロセス制御システム１０内の他の制御ブロックと同じプログラミングパラダイムを用いて設計されるからである。ある実施の形態においては、ＭＰＣブロックまたはモジュールは、それと関連する図形ビューを有してよく、これは、例えば、ワークステーション１３のうちのひとつのうちのディスプレイスクリーン１４のうちのひとつによって、ユーザまたはオペレータに表示可能であり、これらのビューは、ＭＰＣ制御モジュール内のブロックと関連するデータを予約し、このデータを予め規定されたまたは指定された方法で表示する。
【００４８】
図７を参照して、例えば、図１のプロセス制御システム１０の一部分が示され、ディスプレイ１４Ａおよび１４Ｂと装置１５−２２とに通信リンク（具体的には示されていない）を介して結合されたコントローラ１１をふくんでいる。コントローラ１１内で、ＭＰＣモジュール１３２は、一組のＡＩ機能ブロックから入力を受け取り、一組のＡＯ機能ブロックに出力を与えるＡＰＣ機能ブロックを有するものとして示され、単一のループ制御ルーチン１３４は、ＡＯ機能ブロックを制御するために、ＡＩ機能ブロックからの入力を受け取るＰＩＤブロックを含むものとして示される。
【００４９】
オペレータのビューおよびエンジニアのビューのような、これら２個の制御モジュールの動作の異なるビューが、ディスプレイスクリーン１４Ａおよび１４Ｂ上で図形で示される。特に、ディスプレイスクリーン１４Ａ上のエンジニアのビューは、エンジニアがこれらのループに関する情報にアクセスしてこれらのループを操作できるように作成されるループ１３４の図形表現だけでなくループ１３２の動作の図形表現も含む。同様に、ループ１３４の図形表現だけでなくループ１３２の動作の図形表現を有するオペレータのビューがディスプレイスクリーン１４Ｂ上に与えられ、これにより、オペレータは、これらのループに関する情報にアクセスし、これらのループを操作できる。しかしながら、オペレータのビュー内で与えられた情報は、エンジニアのビュー内の情報とは異なっていてよく、ループ１３２、１３４と対話するようにこれらのビューにより与えられたケイパビリティは異なっていてよい。例えば、オペレータのビューは、オペレータがセットポイントを変更して、制限された機能を実行するこのとができるようにするだけであり、エンジニアのビューは、ユーザが、ユーザがループのセットアップに対し変更を加えたり、機能ブロック内のプログラミングに変更を加えることができるようにする。
【００５０】
これらの異なるビューは、「プロセス制御プログラミングのための均一制御テンプレート生成システムおよび方法"Uniform Control Template Generating System and Method for Process Control Programming"」と題されたBlevinsへの米国特許第５、５９４、８５８号（本明細書において引用により援用される）で述べられるテンプレートに対して開示されたものと類似の方法で機能ブロックと関連して作成されてよい。しかしながら、これらのブロックを用いて作成されるＭＰＣブロックおよびモジュールは、プロセス制御システム１０内の他のブロック、ルーチンまたはエレメントとして同じ種類の図形支援または報告支援を与えることができ、なぜなら、これは、ＭＰＣブロックが他の制御ブロックと同じプログラミング戦略を用いてオンラインで作成されたからであるということを理解されたい。この機能により、オペレータ、技術者、エンジニアなどがＭＰＣ制御モジュールまたはＭＰＣブロック内で起こっているものを見れるよう特別なプログラミングを与える必要がなくなる。
【００５１】
所望であれば、ＭＰＣモジュール１３２は、予め規定されたビューまたはディスプレイによって、ユーザに所望の情報を報告してもよいし、ユーザまたはオペレータが所望の行為を行えるようにしてもよい。例えば、ユーザにはあるスクリーンが与えられ、これは、ＭＰＣモジュール１３２により生成されたまたはそれと関連する警報（アラーム）を示し、制御されたパラメータ、制約されたパラメータ、および妨害パラメータ（制御されたパラメータおよび制約されたパラメータの計画された値を示してよい）のプロットを与え、ユーザまたはオペレータが、例えば、モードパラメータ（ＭＰＣモジュール１３２が例えばフィールドバスプロトコルを用いて作成されるとき）を用いてＭＰＣモジュール１３２の実行を制御できるようにし、セットポイント、制約条件、および制御された入出力または制約された入出力の値を数値的にまたはバーグラフで示し、ＭＰＣセットポイントまたはＭＰＣ目標値を変更できるようにし、例えば、入力が不良であるのか、不確実であるのかまたは制限されているかを示すためにＭＰＣ入力の状態を示し、または他の所望のデータを示すか所望の機能を行うものである。
【００５２】
ＭＰＣ制御モジュール内のＭＰＣブロックにＭＰＣ制御論理をダウンロードすることに加えて、図２のステップ１３５で、作成された論理を有するＭＰＣ論理またはＭＰＣブロックは、例えば、ＭＰＣブロックの使用方法をユーザに訓練し、ＭＰＣブロックをテストするために、ひとつ以上のシミュレーション環境で用いるためにワークステーションに送られてもよい。このようなシミュレーション環境は、１９９９年５月６日に出願された「単一コンピュータ上で分散プロセス制御システム機能性を統合すること"（Integrating Distributed Process Control System Functionality on a Single Computer）"」と題された米国仮出願番号６０／１３２，７８０に詳細に記載されるシステムを用いて与えられてよいが、この仮出願は、本発明の譲受人に譲渡され、その開示を本明細書において引用により援用される。さて、図８を参照して、シミュレーション構成１４９は、シミュレーション環境において、作成されてプロセスシミュレーションブロック１５２に接続されたＭＰＣブロック１５０を含む。シミュレーション構成１４９は、図２のステップ１２８で、例えば、完成したＭＰＣブロックをテストするのに用いられて、そのために作成されたプロセスを十分に制御するかどうか決定してもよいし、または、図２のステップ１３５で、例えば、ＭＰＣブロックを用いて訓練または他のテスト環境を与えるのに用いられてもよい。図８のＭＰＣブロック１５０は３個の入力ＩＮ1−ＩＮ3と３個の出力ＯＵＴ1−ＯＵＴ3とを有するものとして示され、３個入力Ｘ1−Ｘ3と３個５２に接続され、出力Ｙ1―Ｙ3は、ＭＰＣブロック１５０の入力ＩＮ1−ＩＮ3にそれぞれ接続される。シミュレーションブロック１５２は、図８のブロック１５４により示されるように、図２のステップ１２５で作成されたプロセスモデルを用いてそれのためのＭＰＣブロック１５０が作成されたプロセスをシミュレートしてもよい。この場合、図２のステップ１２５で作成されたプロセスモデルはシミュレーションブロック１５２内に記憶されて、そのプロセスモデルとＭＰＣブロック１５０から受け取った入力とに基づいて、プロセスの応答をシミュレートするのに用いられてよい。代替的には、シミュレーションブロック１５２は、図８のブロック１５６により示されるように、ステップ１５２で生成されたプロセスモデルに対して変更されるプロセスモデルから作成されてもよい。この場合、ステップ１２５で作成されたプロセスモデルは、例えば、プロセスになされた物理的な変更、プロセス内の機器のエージングなどにより引き起こされたプロセスに対する変更をシミュレートするために変更されてよい。所望であれば、図２のブロック１２５で作成されたプロセスモデルは、このブロックが最初にＭＰＣブロック１５０を作成するのに用いられるプロセスと一致しないプロセスを制御するのに用いられるときに、ＭＰＣブロック１５０の動作をテストするために様々な方法で変更されてよい。このように、所望であれば、ブロック１５６が与えた変更されたプロセスモデルは、シミュレーションブロック１５２内で用いられて、プロセスが変化したりＭＰＣ制御論理に一致しないときにＭＰＣブロックが与える制御の範囲を決定し、これにより、ユーザは、長期間にわたって動作するかまたはプロセス変化が生じたプロセスを制御するのに良好なＭＰＣブロックを設計することができる。
【００５３】
変更されたプロセスを生成するには、ユーザまたはオペレータはルーチンを実行し、ステップ１２５で作成されたプロセスモデルまたは、５ｘ５ＭＰＣブロック１５０のために図９のスクリーンに示されるもののような、関連するプロセス入力／出力応答曲線の組を見て、これらの応答曲線のうちの変更すべきひとつを選択する。選択された応答曲線（オーバーヘッド％Ｃ３Ｈ６対リボイラーオイル流量と示される）はさらに、図１０に示されるようなさらなるスクリーンによって表示されるか操作されてよい。図１０に示されるように、ユーザまたはオペレータは、応答曲線をインポート（取り入れ）するか消去し、ＦＩＲ応答を加え、不動作時間およびゲインなどの応答パラメータを変更し、新たなスタートポイントまたは終了ポイントを選択し、曲線のポイントの値を変更し、曲線に対し様々な勾配をつけ、曲線をスケールして、それにより、変更された応答曲線、したがって、変更されたプロセスモデルを作成する。当然、ユーザまたはオペレータは、他の方法でプロセスモデルを部分的に変更（修正）するか変更する。ユーザは、プロセスモデル１５０を作成するか編集してもよく、このようなモデルからプロセスシミュレーションブロックまたはエレメント１５２を作成してもよく、プロセスシミュレーションブロック１５２をＭＰＣブロック１５０に通信可能に接続してもよく、左手のプロセッサ１３において、または他の所望のシミュレーション環境においてもしくはプロセス環境において、図１に示されるルーチン１５３のようなルーチンを用いて、接続されたループを実行してもよい。
【００５４】
さて図１１を参照して、実際のプロセス１７４に接続されたＭＰＣブロック１７２を有するものとしてさらなる制御ループ１７０が示される。この場合、ＭＰＣブロック１７２の３個の出力ＯＵＴ1−ＯＵＴ3は、プロセス１７４のために作成されたプロセスモデル１７８に基づいたシミュレートされたプロセスブロック１７６の３個の入力Ｘ1SIM―Ｘ3SIMだけでなくプロセス１７４の３個のプロセス入力Ｘ1―Ｘ3に接続されされる。この構成においては、ＭＰＣブロック１７２は、実行時間においてプロセス１７４を制御し、シミュレートされたプロセスブロック１７６も制御するが、このブロック１７６は、例えば、図１のワークステーション１３のうちのひとつにおいてまたは他のコントローラもしくは装置において実行されてよく、シミュレートされた出力Ｙ1SIM―Ｙ3SIMを生成する。このようなシステムにおいては、シミュレートされたプロセスブロック１７６の出力Ｙ1SIM―Ｙ3SIMと、実際のプロセス１７４の出力Ｙ1―Ｙ3とは比較され、プロセス出力Ｙ1―Ｙ3がシミュレートされた出力Ｙ1SIM―Ｙ3SIMとは非常に異なるかどうか、したがって、実際のプロセス１７４とＭＰＣブロック１７２がそこからが作成されたプロセスモデル１７８とに間に不一致があるかどうか決定する。不一致がある場合、別のＭＰＣブロック１７２を作成するかまたはプロセス１７４を制御する際にＭＰＣブロック１７２が用いる論理パラメータまたはモデルを再生する必要がある。
【００５５】
また、もしも何らかの理由でプロセス１７４の出力Ｙ1―Ｙ3のうちのひとつが、例えば、この出力を測定するセンサの誤動作が原因でエラーになった場合、シミュレートされたプロセスブロック１７６からの対応するシミュレートされた出力は、図１１の点線で示されるようにＭＰＣブロック１７２の適切な入力に与えられてよく、これにより、故障したセンサまたは装置が取りかえられるか修理されるまで、ＭＰＣブロック１７２は実際のプロセス１７４の良好な制御を与えることができる。このようにして、実際のプロセス出力の各々のために、仮想プロセス出力が、シミュレートされたプロセスブロック１７６により作成されてよいし、これらの仮想出力のうちのひとつ以上は、対応する実際のプロセス出力に欠陥があるかまたは使用できないときにＭＰＣブロック１７２への入力として使用されてよい。例えば、深夜に、プロセス出力Ｙ1―Ｙ3のうちのひとつを測定するセンサが誤動作した場合、ユーザまたはオペレータは、修理者が故障したセンサを取りかえるか修理する次の日まで、ＭＰＣブロック１７２がプロセス１７４の十分な制御を与えることができるように、ＭＰＣブロック１７２の適切な入力に対応する仮想出力を単に接続すればよい。シミュレートされたプロセスブロック１７６は、実際のプロセス１７４が実行されている間中実行可能であり、シミュレートされたプロセスブロック１７６が現実的な仮想出力を生成することができるように全て同じ入力が設けられている。当然、他のシミュレーションシナリオが実行されて、ＭＰＣブロック１５０または１７２の作成と関連して作成されたプロセスモデルを用いることができるし、 またはＭＰＣブロック１５０または１７２の作成と関連して作成されたプロセスモデルの変形例として作成されたプロセスモデルを用いることもできる。
【００５６】
必要な制御論理パラメータおよびそのためのプロセスモデルがない場合にＭＰＣブロックを作成して、このブロックを、他の制御ブロックまたはエレメントがシステム内で接続される方法と同様の方法でプロセス制御システム内で接続し、ＭＰＣブロックを実行してプロセスデータを収集し、プロセスデータからプロセスモデルを作成し、プロセスモデルからＭＰＣブロックのための論理パラメータを作成し、論理パラメータをロードし、そして必要であれば、プロセスモデルをＭＰＣブロック内にダウンロードすることにより、オフラインになる必要もなく、ＭＰＣ制御ルーチンがどのように作成されなければならないかについて多くを知る必要もなく、プロセスモデルを生成するために波形を作成するよう多大な技術的処理を行う必要もなく、制御ルーチンを再プログラムしてモデル予測制御または他のアドバンスド制御を実行する必要もなく、ユーザはプロセス制御ルーチン内でＭＰＣブロックまたはＭＰＣモジュールを作成できる。その結果、この方法は時間および費用を節約し、プロセス制御環境内で仮想プロセス出力のシミュレーションおよび生成のためなど他の目的のために、作成されたプロセスモデルを用いる。
【００５７】
理解されるだろうが、ここで述べてきたＭＰＣルーチンまたはアドバンスド制御論理生成ルーチンおよび方法により、ユーザは、ＭＰＣブロック、ニューラルネットワークモデル化ブロックまたはニューラルネットワーク制御ブロックなどのアドバンスド制御ブロックが作成される方法について多大な専門的知識を必要とせず、これらのブロックを作成することが可能であり、オペレータは、アドバンスド制御を実行するために多大なプロセス再プログラミングを実行することもなくアドバンスド制御ブロックを作成して用いることができる。アドバンスド制御ブロックは、システム内の他の制御エレメントと同じプログラミングパラダイムを用いて作成されるので、ユーザは、プロセスの一貫したビュー、またはアドバンスド制御ブロックを有するプロセスの図形表示が与えられる。さらに、プロセスモデルは、例えば、ＭＰＣ機能ブロックのために作成される必要があるので、このプロセスモデルは、テスト、訓練、プロセス／プロセスモデル不一致を検出すること、またはプロセスを制御する際に用いられるプロセスの仮想出力を生成することなどの他の目的のためにプロセスをシミュレートするのに用いることが出来るシミュレーション機能ブロックを生成するのに用いることができる。
【００５８】
アドバンスド制御ブロック、プロセスシミュレーションブロック、ならびに関連の生成ルーチンおよびテストルーチンは、ここではフィールドバス装置および標準の４−２０ミリアンペアの装置と関連して用いられると説明したが、当然、他のプロセス制御通信プロトコルまたはプログラミング環境を用いて実行されてよく、他の種類の装置、機能ブロックまたはコントローラとともに用いられてよい。さらに、ここで「機能ブロック」という表現を用いているのは、フィールドバスプロトコルまたはデルタVコントローラプロトコルが機能ブロックとして識別するものに限定されず、なんらかのプロセス制御機能を実行するのに用いられる任意のタイプの制御システムおよび／または通信プロトコルと関連する他のタイプのブロック、プログラム、ハードウェア、ファームウェアなどを含む。また、機能ブロックは典型的には、オブジェクト志向プログラミング環境内でオブジェクトの形をとっているが、その必要がない場合もある。
アドバンスド制御ブロック、プロセスシミュレーションブロック、ならびに関連の生成ルーチンおよびテストルーチンは、好ましくはソフトウェアで実行されるが、ハードウェア、ファームウェアなどで実行されてもよく、プロセス制御システムと関連する他のプロセッサにより実行されてよい。このように、ここで述べるルーチン４０は、所望であれば、標準的な多目的ＣＰＵにおいて、または例えば、ＡＳＩＣのような特殊設計されたハードウェアもしくはファームウェア上で実行されてよい。ソフトウェアで実行するならば、ソフトウェアは、コンピュータまたはプロセッサなどのＲＡＭまたはＲＯＭ内で磁気ディスク、レーザディスク、光ディスク、または他の何らかの記憶媒体上のような、コンピュータ読取り可能なメモリ内に記憶されてもよい。同様に、このソフトウェアは、例えば、コンピュータ読取り可能なディスクまたは他の可搬コンピュータ記憶メカニズム上でのものを含む公知のまたは所望の送り方法によりユーザまたはプロセス制御システムに送られてもよいし、電話回線、インターネットなどのような通信チャンネル上で変調されてもよい（同じものであるとして見られるかまたは可搬の記憶媒体によりこのようなソフトウェアを与えることと交換可能である）。
【００５９】
本発明は、具体例を参照して説明されたが、これらは、あくまでも例示的であり、本発明を限定するものではなく、本発明の精神および範囲を逸脱することなく、開示された実施の形態に、変更、追加、およびまたは消去を加えてよいことは当業者には明らかである。
【図面の簡単な説明】
【図１】アドバンスド制御ブロックを作成して用いることのできるプロセス制御システムのブロック／概略図である。
【図２】図１のプロセス制御システム内のアドバンスド制御ブロックの動作および作成を示すフローチャートである。
【図３】プロセス制御ルーチン内で接続されてプロセスを制御するモデル予測制御ブロックのブロック図である。
【図４】Ａは、プロセス制御ルーチン内の機能ブロックに接続されて既存の制御戦略を調整するモデル予測制御機能ブロックのブロック図である。
Ｂは、プロセス制御ルーチン内の機能ブロックに接続されて既存の制御戦略を調整するモデル予測制御機能ブロックのブロック図である。
【図５】プロセス制御ルーチン内の機能ブロックに接続されて単一ループ制御ルーチンを調整するモデル予測制御機能ブロックのブロック図である
【図６】アドバンスド制御ブロックを作成するのに用いられるプロセスモデル化ツールにより生成されたスクリーンディスプレイの例を示す図である。
【図７】図１のプロセス制御システムの部分のブロック／概略図であり、アドバンスド制御ブロックと関連する図形ビューを用いることを示す図である。
【図８】プロセスシミュレーションブロックに接続されたモデル予測制御ブロックのブロック図である。
【図９】アドバンスド制御ブロックを作成するかまたはプロセスシミュレーションブロックを作成するために用いられるプロセスモデル化ツールにより生成されたスクリーンディスプレイの例を示す図である。
【図１０】アドバンスド制御ブロックを作成するかまたはプロセスシミュレーションブロックを作成するために用いられるプロセスモデル化ツールにより生成されたスクリーンディスプレイの例を示す図である。
【図１１】プロセスと、プロセスの動作をシミュレートして仮想プロセス出力を生成するプロセスシミュレーションブロックとに接続されたモデル予測制御ブロックのブロック図である。
【符号の説明】
５８  プロセス
５６  アドバンスド制御ブロック
１０２  制御論理
１０１  波形ジェネレータ
１０４  プロセスモデル
【図１】
0005190161.tif 000002
【図２】
0005190161.tif 000003
【図３】
0005190161.tif 000004
【図４】
0005190161.tif 000005
【図５】
0005190161.tif 000006
【図６】
0005190161.tif 000007
【図７】
0005190161.tif 000008
【図８】
0005190161.tif 000009
【図９】
0005190161.tif 000010
【図１０】
0005190161.tif 000011
【図１１】
0005190161.tif 000012