(54)【発明の名称】コンピュータ読み取り可能媒体、任意の次数のプラントを制御するためのコンピュータによって実施される方法、任意の次数のプラントを制御するための装置、PIDコントローラを調整するための方法、PIDコントローラ設計の安定性を評価するための方法、及びPIDコントローラ設計を評価するための方法
(58)【調査した分野】(Int.Cl.,DB名)
前記対話型の調整インターフェースは、Simulink(シミュリンク)モデル中の比例・積分・微分(PID)コントローラブロックで使用される、請求項12の媒体。
【発明を実施するための形態】
【0008】
本発明の原理に整合する実施例についての以下の詳細な説明は添付の図面を参照する。それぞれの図面中の同じ参照番号は、同じもしくは類似の要素を示す。また、以下の詳細な説明は本発明を限定するものではなく、本発明の範囲は、特許請求の範囲及びその等価物によって画定される。
【0009】
例示的な実施形態は、比例積分(PI)コントローラ及び比例積分微分(PID)コントローラを調整するための方法、コンピュータ読み取り可能媒体、及び装置を含む。いくつかの実施形態は、ユーザーが、閉ループ応答速度、閉ループ帯域幅、位相マージン(但し、これらには限定されない)などの平均的なユーザーになじみのなるパラメータを調整することによってコントローラの性能仕様を指定できるようにする。これらの性能仕様は、コントローラに対して使用されるP利得、I利得、及びD利得などのパラメータの調整とは異なる。ユーザーが、性能
仕様を用いてコントローラを設計できるようにすることによって、ユーザーと、自由形式(または自由形態。以下同じ)のモデリング環境で動作するコントローラツールボックスなどのコントローラ設計アプリケーションとの間の直感的な対話(もしくは相互作用)を容易にすることができる。
【0010】
本発明の1実施形態は、ユーザーが、コントローラのP利得、I利得、及びD利得を手動で決定及び/または調整することなく、コントローラを設計できるようにする。たとえば、1実施例は、開ループ周波数応答から動作することができ、かつ、システムの1入力1出力(SISO)ループ表現と共に動作することができる。他の実施形態は、システムが同時に1つのループで連続的に処理される場合に、多入力多出力(MIMO)システムで動作することができる。該実施形態は、プラントの次数(plant order)や設備における時間遅延の存在に制限を設けることなく動作することができる。たとえば、ユーザーは、該ユーザーが規定したロバスト性指標(たとえば、オーバーシュート、ゲインマージンなど)を満たしつつ、所望の帯域幅及び/または位相マージンなどの性能目標を達成するPIDコントローラを設計することができる。ユーザーは、閉ループ帯域幅及び位相マージンのようなパラメータを指定することによって該目標を達成することができる。これとは対照的に、従来のアプローチは、ユーザーが、満足のいく性能を最終的に得るまで、該ユーザーがP、I、及びDに関する値を試行的に使用することを要求する場合がある。
【0011】
別の実施形態は、ユーザーに、入力機構(たとえばスライダー)を含むグラフィカルユーザーインターフェース(GUI)を提供して、ユーザーが、コントローラが動作するときの位相マージン、閉ループ帯域幅、及び/または応答速度を変更できるようにすることができる。該実施形態は、ユーザーが入力機構を操作するときに、(振幅対時間曲線などの)応答曲線を表示することによって、対話形式のコントローラ設計をサポートすることができる。
【0012】
いくつかの実施形態はコードの生成をサポートすることもでき、これによって、コントローラ用の実行可能コードを生成することができる。たとえば、ユーザーは、自動車で使用される燃料噴射システム用のPIDコントローラを規定することができる。ユーザーは、コントローラを動作させるC++コードなどのコードを生成することができ、及び、該コードを、自動車中のコントローラ(たとえば、自動車中の組込コントローラ)を動作させる処理装置に送ることができる。
【0013】
例示的なシステム
図1は、1実施形態を実施するための例示的なシステム100を示す。システム100を用いて、1以上のエンティティ(構成要素など)を含むモデルを構築し、該モデル用のPIDコントローラを設計及び実装し、及び/または、該コントローラ用のコードを生成することができる。システム100は、コンピュー
タ105、収集ロジック110、オペレーティングシステム115、モデリング環境120、モデル130、入力装置140、表示装置150、モデル表現160、及びプラント170を備えることができる。
図1のシステムは例示であり、システム100の他の実施形態は、
図1の構成とは異なる構成において、より少数の装置、及び/または、より多くの装置、及び/または、同数の装置を備えることができる。
【0014】
コンピュータ105は、処理動作、表示処理、通信処理などを実行する装置を備えることができる。たとえば、コンピュータ105は、ユーザーの代わりに処理作業を実行及び/またはサポートするために使用することが可能な、1以上の処理装置もしくは記憶装置などのロジックを備えることができる。コンピュータ105の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、クライアント、サーバー、メインフレーム、個人用携帯型情報機器(PDA)、ウェブ対応の携帯電話、スマートフォン、高性能センサー/アクチュエーター、または、1以上のアクティビティ(動作など)を実行し、及び/もしくは、1以上の結果を生成するための命令を実行する別の演算装置もしくは通信装置を備えることができる。
【0015】
コンピュータ105は、さらに、別の装置(
図1には図示していない)にデータを送信し、もしくは、該別の装置からデータを受信することによって通信動作を実行することができる。データは、1以上のネットワークで使用するのに適合させることができ、及び/または、1以上の装置で使用するのに適合させることができる実質的に任意のフォーマットを有する任意のタイプの機械読み取り可能情報とすることができる。データは、デジタル情報またはアナログ情報を含むことができる。さらに、データを、パケット化することができ、及び/または、パケット化しないようにすることができる。
【0016】
収集ロジック110は、コンピュータ105の外部の装置からデータを取得することができ、及び、該データをコンピュータ105が利用できるようにすることができる。たとえば、収集ロジック110は、データをコンピュータ105が利用できるようにするために使用されるアナログ−デジタル変換器、デジタル−アナログ変換器、フィルター、マルチプレクサなどを備えることができる。コンピュータ105は、取得したデータを用いて、モデリング処理、PIDコントローラ設計処理などを実行することができる。
【0017】
オペレーティングシステム115は、コンピュータ105に関連付けられているハードウェア資源及び/またはソフトウェア資源を管理することができる。たとえば、オペレーティングシステム115は、ユーザー入力を受信し、
コンピュータ105を動作させ、メモリーを割り当て、システム要求を優先順位付けすることなどに関連するタスクを管理することができる。1実施形態では、オペレーティングシステム115を仮想オペレーティングシステムとすることができる。オペレーティングシステム115の実施形態は、Linux(商標)、Mac OS(商標)、Microsoft Windows(商標)、Solaris(商標)、UNIX(商標)などを含むことができる。オペレーティングシステム115は、さらに、コンピュータ105が提供することができる仮想マシン上で動作することができる。
【0018】
モデリング環境120は、ユーザーが、数学、科学、工学、医学、事務(但し、これらには限定されない)などの分野に関連するタスクのシミュレーションまたはモデリング(モデル化)を実行できるようにするコンピューティング環境を提供することができることができる。モデリング環境120は、ユーザーが、実行可能なセマンティック(executable semantics)を有するモデルを構築できるようにする命令を実行する1以上のアプリケーションをサポートすることができる。たとえば、1実施形態では、モデリング環境120は、ユーザーが、実行可能なセマンティックを有する自由形式のモデル(たとえば、1次、2次、3次、4次、5次等のモデル)を生成できるようにすることができる。モデリング環境120はさらに、時間ベース、事象ベースなどのモデリング処理をサポートすることができる。
【0019】
モデル130は、テキストモデル(textual model)またはグラフィカルモデル (graphical model)に関する情報を含むことができる。たとえば、モデル130は、時間ベースのモデル、事象ベースのモデル、状態遷移モデル、データフローモデル、コンポーネント図(component diagram)、エンティティフロー図、方程式ベース言語図(equation based language diagram)などとすることができるテキストモデルまたはグラフィカルモデルに関する情報を含むことができる。モデル130のグラフィカルな実施形態は、処理を実行するための実行可能コードを表すエンティティ(たとえば、ブロックやアイコンなど)を含むことができる。これらのエンティティ用のコードを実行して、モデルを使用するシミュレーションを実行することができる。モデル中の1つのエンティティから別のエンティティにデータを転送するための経路を表すラインを用いてエンティティを互いに接続することができる。
【0020】
入力装置140はユーザー入力を受け取ることができる。たとえば、入力装置140は、ユーザーの動きや行為を、コンピュータ105が解釈できる信号またはメッセージに変換することができる。入力装置140は、キーボード、ポインティングデバイス、バイオメトリック装置、加速度計、マイクロホン、カメラ、触覚装置(またはハプティック装置)(但し、これらには限定されない)などを含むことができる。
【0021】
表示装置150はユーザーに情報を表示することができる。表示装置150は、陰極線管(CRT)、プラズマディスプレイ装置、発光ダイオード(LED)表示装置、液晶表示(LCD)装置などを含むことができる。必要であれば、表示装置150の実施形態を、(たとえばタッチスクリーンを介して)ユーザー入力を受け取るように構成することができる。1実施形態では、表示装置150は、ユーザーに対して、1以上のグラフィカルユーザーインターフェース(GUI)を表示することができる。GUIは、モデル1
30、及び/または、他のタイプの情報を含むことができる。
【0022】
モデル表現160は、モデル130によって提供される仮想表現を含むことができる。たとえば、モデル表現160をユーザーに対して表示することができ、該モデル表現160は、ラインによって接続された複数のエンティティ(構成要素など)を含むことができる。モデル130が実行されると、モデル表現160は、たとえば、該モデルを通るデータの流れを示すように変化することができる。
【0023】
プラント170は、コンピュータ105にデータを提供する1以上の装置を含むことができる。たとえば、プラント170は、加速度計、熱電対、光−電気トランシーバー、歪みゲージなどのセンサーを用いてモニターされるエンジン系(エンジンシステムともいう)を含むことができる。1実施形態では、収集ロジック110は、プラント170からアナログもしくはデジタル形式の信号を受け取ることができ、及び、該信号をコンピュータ105が使用するのに適した形式に変換することができる。
【0024】
例示的なモデリング環境
図2は、モデリング環境120の例示的な実施形態を示す。モデリング環境120は、シミュレーションツール210、エンティティライブラリ220、インターフェースロジック230、コンパイラ240、コントローラロジック250、オプティマイザ260、シミュレーションエンジン270、レポートエンジン280、及び、コードジェネレータ290を含むことができる。
図2に示されているモデリング環境120の実施形態は例示であって、モデリング環境120の他の実施形態は、本発明の思想から逸脱することなく、より多くのまたはより少ないエンティティを含むことができる。
【0025】
シュミレーションツール210をモデルを構築するためのアプリケーションとすることができる。シュミレーションツール210を用いて、実行可能なセマンディックを有するテキストモデルもしくはグラフィカルモデルを構築することができる。グラフィカルモデルの場合には、シミュレーションツール210を用いることによって、ユーザーは、モデルのエンティティ及び/または接続の生成、変更、診断、削除などができる。シミュレーションツール210は、
図1または
図2に示されている他のエンティティと相互作用して、ユーザー入力を受け取り、モデルを実行し、結果を表示し、コードを生成するといったことなどができる。
【0026】
エンティティライブラリ220は、ユーザーが、モデル表現160を含む表示ウィンドウにドラッグ・アンド・ドロップすることができるコードモジュールまたはコードエンティティ(たとえば、ブロック/アイコン)を含むことができる。グラフィカルモデルの場合は、ユーザーはさらに、接続を用いてエンティティを結合して、プラント170などのシステムのグラフィカルモデルを生成することができる。
【0027】
インターフェースロジック230は、モデリング環境120が、装置(たとえば目標環境)またはソフトウェアモジュール(たとえば、アプリケーションプログラムインターフェース)にデータ及び/もしくは情報を送信し、または、該装置またはソフトウェアモジュールからデータ及び/もしくは情報を受信するのを可能にすることができる。1実施形態では、インターフェースロジック230は、収集ロジック110をモデリング環境120に接続することができる。
【0028】
コンパイラ240は、モデルを実行可能な形式にコンパイルすることができる。コンパイラ240によって生成されたコンパイルされたコードをコンピュータ105で実行して、モデリング結果を生成することができる。1実施形態では、コンパイラ240は、モデルに関連するエラーを診断するためのデバッグ機能を提供することもできる。
【0029】
コントローラロジック250を用いて、モデル130中にコントローラを生成して実施することができる。たとえば、コントローラロジック250は、エンティティに、モデル表現160中のコントローラのタイプを表す機能を提供することができる。モデルが実行されると、コントローラロジック250は、モデル表現160中のエンティティと相互作用することによって該モデルに対する制御処理を実行することができる。1実施形態では、コントローラロジック250は、モデル表現160中のコントローラ(たとえばPIDコントローラ)を実施する制御アルゴリズムを含むことができる。コントローラロジック250の実施形態を、独立型または分散型で動作するように構成することができる。
【0030】
オプティマイザ260は、モデル用のコードを最適化することができる。たとえば、オプティマイザ260は、コードが最適化されていない場合よりも、たとえば、コードがより少ないメモリーを占有するようにし、また、コードがより効率的に実行するようにし、また、コードがより速く実行するようにするために、コードを最適化することができる。オプティマイザ260は、コントローラロジック250の最適化を実行して、たとえば、コントローラのパラメータを最適化することもできる。1実施形態では、オプティマイザ260は、コンパイル240、コントローラロジック250、コードジェネレータ290などと共に動作することができ、または、オプティマイザ260をそれらに組み込むことができる。
【0031】
シミュレーションエンジン270は、モデルを実行してシステムをシミュレートするための処理を実行することができる。シミュレーションエンジン270を、ユーザーの好みまたはシステム環境設定に基づいて、単独でシミュレーションを実行するように構成することも、遠隔シミュレーションを実行するように構成することもできる。
【0032】
レポートエンジン280は、モデリング環境120中の情報に基づいてレポートを生成することができる。たとえば、レポートエンジン280は、PIDコントローラが設計使用を満たしているか否かを示すレポート、コントローラが安定して動作するか否かを示すレポート、モデルが適正にコンパイルされているか否かを示すレポートなどを生成することができる。レポートエンジン280の実施形態は、表示装置150で表示するための電子形式で、及び/または、ハードコピー形式で、及び/または、記憶装置に格納するのに適した形式でレポートを生成することができる。
【0033】
コードジェネレータ290は、モデルからコードを生成することができる。1実施形態では、コードジェネレータ290は、第1の形式でコードを受け取ることができ、及び、該コードを該第1の形式から第2の形式に変換することができる。1実施形態では、コードジェネレータ290は、モデルの少なくとも一部から、ソースコード、アセンブリ言語コード、バイナリーコード、インターフェース情報、コンフィギュレーション情報、性能情報、タスク情報などを生成することができる。たとえば、コードジェネレータ290は、C、C++、SystemC(システムシー)、Java、Structured Text(構造化テキスト)などによるコードをモデルから生成することができる。
【0034】
コードジェネレータ290の実施形態はさらに、いくつかまたは全てのグラフィカルモデルからの表現及び/または拡張機能に基づいて(たとえば、System Modeling Language(SysML:システムモデリング言語)、Extensible Markup Language(XML:拡張マークアップ言語)、Modeling and Analysis of Real Time and Embedded Systems(MARTE)、Hardware Description Language(HDL:ハードウェア記述言語)、Automotive Open SystemArchitecture(AUTOSAR)など)のUnifiedModeling Language(UML:統一モデリング言語)を生成することができる。1実施形態では、オプティマイザ2
60は、コードジェネレータ290と相互作用して、パラメータ(たとえば、メモリー使用(使用量など)、実行速度、マルチプロセッシングなど)にしたがって最適化されたコードを生成することができる。
【0035】
本発明の実施形態を用いて、実質的に任意の次数及び/または遅延を有する非線形モデルで使用するためのコントローラを対話形式で設計することができる。精密な線形化技術を用いて非線形モデルの少なくとも一部分を表すことができる線形時変モデルを生成するように、実施形態を構成することができる。
【0036】
例示的なモデル表現
図3は、モデル300の例示的な表現を示す。モデル300は、ユーザーによって規定された速度とすることができる所望の速度310で移動する車両の速度を制御するためのシステムを例示するものである。モデル300において、走行制御システム330を自動車350用に設計することができる。所望の速度310と実際の速
度を比較して速度誤差320が得られる。速度誤差320を走行制御システム330に入力することができ、走行制御システム330は自動車の速度を調整することができる。走行制御システム330は、アクセル位置命令340と通信して、アクセルペダルの位置を設定し、これによって、自動車350の速度を調整する。自動車350は、再び、所望の速度310と比較するために、実際の速
度の形式で、速度計を通じて出力フィードバックを提供することができる。
【0037】
図3では、実際の速
度は、フィードバック信号として示されている。実際の速
度を用いて、所望の速度310と実際の速
度との差である速度誤差320を計算する。走行制御システム330は、速度誤差320に応答して、アクセル位置命令340を計算して、自動車350の速度を変更するように設計される。
【0038】
走行制御システム330を設計するためには、自動車350の挙動が既知であることが必要とされる場合がある。走行制御システム330を成功裏に設計するためには、さらに、ある時間期間にわたってアクセルペダルの位置が自動車350の速度にどのような影響を与えるかについての理解が要求される場合がある。自動車350の挙動を正確に理解することによって、ロバストな(すなわち頑強な)走行制御システム330の設計が可能になる。いくつかの状況では、自動車の挙動をシステムモデルにおいて取得乃至把握することができる。
【0039】
いくつかの場合では、走行制御システムなどの物理的システムの正確なモデルは、非常に複雑な記述を必要とする。たとえば、自動車は非線形システムでありえ、そのような非線形システムに対しては、分析及び制御設計技術が利用できない場合がある。たとえば、非線形の自動車をシミュレートすることを望んでいるユーザーは、該自動車を数値的に表すために近似を使用することが必要になる場合がある。1例として、非線形の自動車モデルを線形化などの技術を用いて近似することができる。線形化を、自動車モデルの1つの部分(たとえば1つの動作ポイント)、または、自動車モデルの複数の部分に適用することができる。モデルの複数の部分に線形化を適用する場合には、それらの近似をゲインスケジューリング技術を用いて組み合わせることができるが、これは、種々の動作入力において得られた線形化されたモデルを組み合わせて、自動車モデルに対する1つの近似を得ることにより行うことができる。
【0040】
さらに
図3を参照すると、モデル300が該モデルのある部分にわたって線形化されると、線形化ポイント(linearization point)を選択することができる。たとえば、第1の線形化ポイントを、アイコ
ンを用いて特定することができ、第2の線形化ポイントを、
線形化ポイント380を用いて特定することができる。線形化ポイント370及び380を用いて、線形化するモデル300の部分を特定することができる。いくつかの実施形態では、ユーザーが線形化ポイント370、380を選択でき、または、それらの線形化ポイントを(たとえばユーザー入力を要することなく)プログラムで決定することができる。開ループポイント390を指定することができ、該開ループポイント390は、フィードバックループ360における開いた部分、すなわち、切断箇所を示すことができる。フィードバックループ360の切断は、モデル300の部分を線形化するのに役立ちうる。たとえば、
線形化ポイント370、380、
及び開ループポイント390を用いて、自動車モデルだけ(すなわち、閉ループ及びコントローラのない)の線形化を指定することができる。
【0041】
線形化ポイント370、380、及び、開ループポイント390が選択されると、動作ポイントを選択することができる。動作ポイントを、該動作ポイントを中心としてモデル300が線形化されるところのポイントとすることができ、該動作ポイントは、ある特定の時間におけるモデル300の状態を画定乃至定義することができる。
【0042】
たとえば、車のエンジンのモデルでは、動作ポイントは、典型的には、エンジン速度、スロットル角度、エンジン温度、周囲の大気条件などの変数によって記述される。モデルの挙動、すなわち、モデルの「力学」として典型的に知られているものは、一般的には動作ポイントの値の影響を受ける。たとえば車の場合には、エンジンの挙動は、車が高度が高い場所で動作しているか低い場所で動作しているかで大きく異なりうる。この場合、高度は車のエンジンの動作ポイントの一部である。線形モデルは、システムの動作ポイント付近の小さな領域において有効となりうる近似である。近似は、動作ポイントの近くでは良好であるが、それから離れると妥当でなくなる場合がある。3000ft(フィート)で動作するように構成された車の線形モデルは、300ftに近い高さでは非常に精度が高いであろうが、該車が、たとえば、海面の高さを走行するときには精度は落ちるであろう。
【0043】
非線形関数に適用された線形近似技術を示す1例を
図4に示す。
【0044】
図4は、y=x
2として示される例示的な非線形関数405の場合の動作ポイント440を示す。線形近似410がx=0.3でなされる場合には、元の関数を、
【数1】
として近似することができる。この線形近似410は直線の式である。元の関数は、この線形近似とx=0.3で交差する。x=0.3の付近の領域では、この近似は非常に正確であるが、xがx=0.3からさらに遠ざかると精度が非常に悪くなる。一般に、複雑な物理的システムの線形化の場合には、近似は、選択された動作ポイントの近くでは正確である。したがって、動作ポイントの仕様によって、線形化によって与えられる結果が直接的に決定される。
【0045】
いくつかの実施例では、単一の線形近似、たとえば近似410を用いて、非線形システムを表すことができる。他の状況では、2つ以上の線形近似を用いて非線形システムの複数の部分を表すことができる。たとえば、近似410、近似420、及び近似430を用いて、3つの動作ポイントにおける非線形関数405を近似することができる。これら3つの動作ポイント用に設計されたコントローラをゲインスケジューリング技術を用いて組み合わせることによって、非線形システム用のコントローラ全体を得ることができる。
【0046】
例示的な制御技術
本発明の実施形態を実施するための技術を以下で説明する。1入力1出力(SISO)フィードバックループを有するシステムの一般化された表現を
図5に示す。たとえば、
図5のシステムを、
図3の自動車走行制御システムの一般化された表現とすることができる。
図5では、PIDコントローラ520は走行制御システム330を表すことができ、プラント525は自動車350を表すことができる。
【0047】
図5の実施例では、プラント525を線形時不変モデルとすることができ、コントローラ520をPIDコントローラとすることができ、信号R 505は基準信号を表すことができ、信号515は、e=r−yと表すことができる誤差信号を表すことができ、信号D 530は出力外乱を表すことができ、信号Y 540は出力を表すことができる。
【0048】
ユーザーは、コントローラ520を設計するときには、コントローラ520が、プラント525と共に動作するときに達成すべき目標を有することができる。たとえば、ユーザーは、閉ループの安定度、ゼロ定常状態誤差、(たとえば、ステップ入力rまたはdに対する応答yが既定の時間間隔内で上昇して安定する)応答時間、ロバスト性要件(たとえば、ステップ応答が小さなオーバーシュートを有し、ゲインマージンが6dBで位相マージンが45°などのようにゲインマージン及び位相マージンが十分に大きい)を指定することができる。
【0049】
調整可能なパラメータP、I、D、及びNを有する標準的な連続時間PIDコントローラを、
【数2】
で表すことができる。
【0050】
上記のうちの1つなどの設計目標を満たすPIDコントローラを設計するために従来の技術を適用するユーザーは、P、I、D、及びNを見出すことが必要とされる場合がある。ここで、Nは周波数範囲を表し、微分項がアクティブ、すなわち、(1+s/N)の形式であるときには、微分フィルターの極位置を表す。コントローラの4つのパラメータの決定には、たとえば、4次元(4D)空間のコンピュータによる大量の計算を要する(すなわち計算集約型の)探索が必要になりうる。たとえば、P、I、D、及びNを見つけるための4D空間の探索には、各次元が100個のデータ探索ポイントを含む場合には、100
4(100,000,000)個のデータポイントをテストすることが必要になるだろう。この結果、4D探索は、(速度が)遅すぎて、対話型のアプリケーション(たとえば、ユーザーが、あるモデル用のPIDコントローラを対話形式で設計することを可能にするアプリケーション)をサポートできない場合がある。
【0051】
例示的な実施形態は、対話型PID設計アプリケーションをサポートできるように、PIDパラメータの迅速な調整を容易にすることができる。実際に、いくつかの実施形態は、ユーザーが、入力を変更して、直ちに(すなわち、典型的なユーザーに不便を感じさせる遅延を生ずることなく)、変更されたコントローラを反映した表示を見ることができるように、リアルタイムで動作することができる。たとえば、1実施形態では、開ループ応答の利得(ゲイン)L=GCが最初に0dBラインと交差する周波数ω
cを固定乃至調整することができる。この実施形態では、ω
cは閉ループ帯域幅に直接関係し、該閉ループ帯域幅は、コントローラの応答速度に直接関係する。該実施形態はまた、クロスオーバー周波数(または交差周波数)における所望の位相マージンであるθ
mを固定乃至調整することができる。θ
mはまた、コントローラに関連するオーバーシュートの大きさを部分的に制御することができる。この実施形態ではさらに、所与の位相マージン目標θ
mを得るためにω
cを調整すること、または、所与のクロスオーバー周波数目標ω
cを得るためにθ
mを調整することが可能である。
【0052】
ω
c及びθ
mが選択されると、ω
cにおけるゲインクロスオーバー周波数、及び、ω
cにおける位相マージンθ
mでPIDをパラメータ化することによって、PIDコントローラの2つの残りのパラメータを調整することができる。このパラメータ化を、
【数3】
と記述することができる。ここで、角度ψ
z、α、βは、0°と90°の間の値をとる変数である。周波数ω
cにおけるPIDに起因する全位相シフトは、
【数4】
によって与えられる。
尚、本明細書及び特許請求の範囲では、表記の便宜上、
【数60】
をψと記載している。
【0053】
例示的な実施形態は、開示した制御技術をコンピューティング装置に実装するように適合化される。それらの実施形態では、方程式を離散時間表現で表して、それらの方程式をコンピューティング装置で実施することが必要になりうる。たとえば、式2のパラメータ化を、離散時間表現で、
【数5】
と書き直すことができる。ここで、T
sはサンプリング時間である。式4では、このパラメータ化は、実数ゼロ並びに角度α及びβである自由パラメータを有するPIDも考慮される。式4をさらに参照すると、Cは、ω
cにおいて単位利得(unit gain)を有する3つのファクターの積であり、この場合、第1のファクターは積分動作であり、第2のファクターは、P及びI項に起因する位相進みを捕捉乃至表し、第3のファクターはD及びN項に起因する追加の位相進みを捕捉乃至表す。式4において、第3のファクターは、0<α<β<90のときには、1つの実数ゼロ及び1つの実数極を有する位相進み回路(lead network。または微分回路)である。第3のファクターはまた、β<αのときに位相遅れをもたらすことができる。1実施形態では、第3のファクターを除去して、ω
cにおけるゲインクロスオーバー及びω
cにおける位相マージンθ
mを有する独特のPIコントローラを作製することができる。第1のファクターを省くと(積分動作のない)PDコントローラのパラメータ化が得られ、第2のファクターを省くとP項(比例動作)をゼロに設定することになる。したがって、本明細書に記載されている技術を用いて、P、PI、PD、及びIDなどのように、PIDNコントローラを任意に特化するように調整することができる。
【0054】
所定の条件もしくは想定が満たされるときには、α及びβの適切な値を例示的実施形態で使用するために選択することができる。たとえば、ω
cが第1のゲインクロスオーバーであり、応答速度がω
cの関数であり、ω
cが、性能目標(たとえば、閉ループ安定性及び十分なロバスト性)を満たすように選択されるときには、α及びβの適切な値を選択することができる。
【0055】
閉ループ安定性及び十分なロバスト性を用いてα及びβの適切な値を選択するときには、いくつかの実際の問題に遭遇しうる。たとえば、閉ループ安定性のテストは、それが閉ループの極を明示的に計算することによって実施されるときには、コンピュータによる大量の計算を要する(すなわち、計算コストが高い)場合がある。そして、αとβの各々による設計の価値のランク付けは難しい場合がある。なぜなら、所望の特徴(たとえば、オーバーシュートが小さい、リンギングがない、整定時間が短いなど)を定量化することは難しい場合があり、及び/または、該所望の特徴は、典型的にはコンピュータによる大量の計算処理である閉ループステップ応答の計算を要する場合があるからである。
【0056】
例示的な実施形態は、周波数領域の情報(たとえば、開ループボード応答)を用いて、選択された設計目標を達成し、及び、一貫したコントローラ設計を提供することによって、従来技術に付随する欠点を回避する。例示的な実施形態が、安定性及びロバスト性に関してα、βの設計値を速やかに評価できる1つの理由は、例示的な実施形態で使用される開ループボード応答が、(閉ループステップ応答の計算や、閉ループ安定性のテストなどに比べて)コンピュータによる大量の計算を要しない(すなわち計算コストが安い)ことである。これらの計算コストが安い計算によって、従来技術に比べて速度が向上する。かかる速度の向上により、典型的な実施形態は、対話型のPID評価や実質的にリアルタイムでの(たとえば、典型的なユーザーに不便を感じさせる遅延を生じることなく)動作のチューニングなどの典型的なユーザーのワークフローをサポートすることができる。
【0057】
例示的な実施形態は、ナイキスト基準を再解釈して開ループボード応答から閉ループ安定性を評価する技術を利用することによって対話型のワークフローをサポートすることができる。たとえば、ナイキストの安定判別試験を次のようにすることによって特徴付けることができる。
L(s)を開ループ伝達関数とし、PをL(s)の不安定な(右半面の)極の数とし、
ψ(ω)を、ラジアン単位でのL(jω)の位相の任意の連続表現とし、
(ω
0,ω
1,…,ω
k)をゲインクロスオーバー周波数の順序集合とし、この場合、|L(jω)|=1であり、L(jω)のゲインがω
kで減少しているときにはkは偶数とし(すなわち、DCゲインが1より小さいときには、該シーケンスはω
1から開始する)、
(ψ
0,ψ
1,…, ψ
k)を周波数(ω
0,ω
1,…,ω
k)におけるψ(ω)の値とし、
m
0及びm
∞を、それぞれ、0近傍と無限大におけるL(s)の勾配とし(たとえば、
【数6】
は、s→0のときは有限)、
δ
0を、|L(0)|>1のときは1、それ以外のときは0とし、
δ
∞を、|L(∞)|>1のときは1、それ以外のときは0とする。
【0058】
上記条件が満たされる場合には、閉ループ伝達関数1/(1+L(s))は、
【数7】
のときに限り安定である。ここで、μ( )は、
【数8】
によって定義される整数値関数である。
【0059】
式5は、ゲインクロスオーバー周波数(ω
0,ω
1,…,ω
k)における位相角(ψ
0,ψ
1,…, ψ
k)に関する安定性試験を提供する。プラントG及び選択されたPID構造から、右側の量は既知である。この情報が与えられると、以下のa〜eを確かめることができる。
a.左側は常に偶数なので、右側も偶数でなければならない。左側が奇数のときには、δ
0とδ
∞が明確に異なる場合に、フィードバック符号を切り替えることによって安定性を回復することができる。それ以外の場合にはPIDを安定化させることはできない。
b.2γが、調整後の右側の値であるときは、安定条件は、
【数9】
である。
c.ゲインクロスオーバー周波数ω
0が1つだけ存在するときには、
【数10】
であり、これは、開ループ位相角
【数11】
が、
【数12】
の間隔で配置されていなければならないことを示している。位相マージン要件を含めると、この間隔は、
【数13】
まで狭くなる。
d.複数のゲインクロスオーバー周波数ω
0,…,ω
2m−1,ω
2mが存在するときには、
【数14】
を満たす無数のやり方がある。
e.実際には、クロスオーバー周波数の追加のペアω
2k−1,ω
2kは、一般に、閉ループ安定性には寄与しない、すなわち、μ(ψ
2k−1)=μ(ψ
2k)と仮定することができる。
【0060】
典型的な制御システムでは、安定性を、高周波数作動ではなく低周波数作動によって達成することができる。この制約の下では、複数のクロスオーバー周波数が存在する場合に安定となるための十分条件は、(1)第1の(または最初の)クロスオーバー周波数ω
0における開ループ位相各ψ(ω
0)が、
【数15】
の間隔で配置されていること、及び、(2)クロスオーバーの連続するペアω
2k−1,ω
2kについて、位相角がμ(ψ
2k−1)=μ(ψ
2k)を満たすことである。等価的には、ループゲインが1より大きい場合には(正味の)180°位相交差が存在しないことである。
【0061】
例示的な実施形態は、閉ループ安定性及び位相マージン要件θ
mを評価する技術を含むことができる。この技術を、整数γを計算し(この計算は1回だけ実行される場合がある)、及び、適切な周波数グリッドω
Gに対してプラントGのゲイン(利得)及び畳み込まれていない位相(unwrapped phase。または、つなぎあわされた位相)を計算する(この計算も1回だけ実行される場合がある)ことによって実行することができる。この場合、候補であるPIDコントローラについて、この技術は、
f.プラントのゲイン及び位相に対するコントローラの寄与を重ね合わせることによって開ループの大きさ及び位相ψ(ω)を計算し、
g.ゲインクロスオーバー周波数ω
0,…,ω
2m−1,ω
2mを特定して、グリッドω
Gに対する線形補間を用いて対応する位相値ψ
0,…,ψ
2m−1,ψ
2mを計算し、
h.ψ
0が、間隔
【数16】
で配置されていることを確認し、
i.k=1,…,mの場合にμ(ψ
2k−1)=μ(ψ
2k)であることを確認し、
j.位相マージンが、追加のクロスオーバー周波数ω
1, ω
2,…,ω
2m−1,ω
2mにおいて少なくともθ
mであることを確認する
ことができる。
【0062】
候補であるPIDコントローラに対する上記のテストは、ω
Gに相当するベクトルに対する操作(または演算)を含むことができる。多くの場合に、それらのベクトルを数百のポイントから構成することができ、これによって、該テストを、時間ベースの自由形式モデリング環境(たとえば、Simulink(シミュリンク)モデリング環境)などのコンピューティング環境で迅速に実行することが可能になる。たとえば、1実施例では、該テストを、MATLABコンピューティング環境やMATLAB準拠のコンピューティング環境などの技術計算環境で迅速に実行することによって、対話型のコントローラ設計作業を例示的な実施形態によってサポートすることができる。
【0063】
上記のナイキストの安定判別試験から、第1の(または最初の)クロスオーバー周波数ω
0における開ループ位相ψ
0は、
【数17】
の間隔で配置されなければならない。プラントが位相ψ
c(ω
0)を有し、PIDが最大90°だけ該位相を変化させることができると仮定すると、次の3つの状況が生じうる。
(1)PIDは、該位相を所望の範囲に移動させることができない。これは、クロスオーバー周波数ω
0が許容されない状況を表している。
(2)ψ
c(ω
0)−90がすでに要求された間隔内にある。この状況では、第2のPIDファクターから要求される最小位相進みはΔψ=0である。
(3)ψ
c(ω
0)−90は要求された間隔内にはない。この状況では、PIDコントローラは、非ゼロ位相進みΔψを提供しなければならない。
【0064】
Δψが与えられると、ナイキストの安定判別試験(ナイキストの安定判別法ともいう)を満足させるために、及び/または、ロバスト性及び設計上の利点を最大にするために、自由パラメータα及びβを選択することが必要である。0<α<β<90及びΔψ−90<β−αという制約を適用することによって、特定のアプリケーション(または用途)に対して最良の(α、β)の組み合わせを含むことができる(α、β)の組み合わせにおいて、ホーム位置に粗くグリッドを配置することができる2D(2次元)範囲が画定される。例示的な実施形態は、ロバスト性及び(α、β)設計値の品質をランク付けするために1以上のメリット関数(または設計クライテリア。以下同じ)を使用することができる。たとえば、1実施形態は、1以上の既定の基準にしたがってロバスト性及び各(α、β)設計値の品質をランク付けすることができる。
【0065】
本明細書に開示されている例示的な技術は、感度関数S=1/(1+GC)及び補関数(complementary function。または共約関数)T=GC/(1+GC)を含む複合メリット関数を利用することができる。|1+GC(jω)|は、臨界点(−1、0)までのオープンループ応答の距離であるので、|S(jω)|の大きさは、L(jω)が臨界点にどれだけ近づいているか、及び、フィードバックループのロバスト性の評価基準を提供する。同様に、|T(jω)|の大きさの程度は、どれだけの数もしくは大きさのオーバーシュートが閉ループ応答に現れるかに関連する。本明細書に開示されている技術を利用するときには、S及びTの大きさを、理想値
【数18】
に近い状態に維持することが望ましい場合がある。
【0066】
式9の値を、開ループが純粋な積分器、すなわち、L(s)=ω
0/sである状況に対応付けることができる。具体的には、ゲイン| T(jω)|は、0からω
0の近傍までの周波数範囲において1に近くなければならない。1より大きいゲイン(利得)はオーバーシュートを生成する可能性があり、1より小さいゲインは動力学的に遅く、安定するまで時間がかかる。式9を参照すると、ゲイン| T(jω)|はω
0を超えたところでロールオフする。ゲイン値が、ω>>ω
0のある周波数ωで1に近づくと、閉ループ応答は、その周波数でリンギングを生じる可能性がある。
【0067】
例示的な実施形態は、たとえば、対話型のモデリングアプリケーションをサポートするために使用されるPIDコントローラに関連付けられた設計目標をバランスさせるメリット関数を利用することができる。適切なメリット関数は、設計目標を満たす設計の開発を容易にすることができる。1実施形態で使用できる例示的なメリット関数を次のように書くことができる。
【数19】
ここで、下限T
min及び上限T
maxは次のように選択される。
【数20】
【0068】
図6は、上記式11のT
min (ω)及びT
max (ω)のゲインテンプレートを示す。
図6を参照すると、T
max(ω)は線605で表されており、T
min (ω)は線610で表されている。
【0069】
上記式10を参照すると、角度α及びβは、ナイキストの安定判別試験をパスするメリット関数Fが最小になるように選択される。Fの値が0.1より小さいときに、十分な調整を一般的に達成することができる。例示的な実施形態は、最適な(α、β)の組み合わせを探索する技術を利用することができる。探索技術の例には、ブルートフォースグリッディング(brute-force gridding)、直接サーチ法、もしくは、勾配降下法(但し、これらには限定されない)が含まれる。
【0070】
例示的な実施形態は、5°ずつ増やしながら(α、β)の範囲[0,45]×[45,90]をグリッド(全部で100個のポイント)に配置し(すなわちそれらの範囲をグリッド化し)、Δψ−90<β−αという制約を満たさないか、またはナイキストの安定判別試験に合格しないポイント(α、β)を破棄する粗いグリッディング(coarse gridding:粗いグリッド配置)技術を用いて満足のゆく結果を生成することができる。このグリッディング技術は、残りのポイントにおいてメリット関数Fを評価して、Fの最小値(この最小値をF
minと呼ぶ)を生じるポイントを選択することができる。
【0071】
所与のクロスオーバー周波数ω
0に対するF
minの値は、対応する帯域幅を有するPIDの実現可能性(もしくは実行可能性)を示す。F
minが0.1よりずっと大きいときは、PIDの性能/ロバスト性は貧弱となる場合がある。この状況では、クロスオーバー周波数ω
0を調整することが必要になりうる。いくつかの状況では、(プラントの固有周波数ω
Tに基づく)目標周波数の近傍における粗い探索でも、この性能/ロバスト性の問題を解決するのには一般的に十分である。たとえば、F
minを、間隔[0.01ω
T, 100ω
T]に及ぶ10個の候補であるクロスオーバー周波数について計算することができる。次に、許容可能なF
min値を有するω
Tに最も近いクロスオーバー周波数を選択することができる。
【0072】
例示的なユーザーインターフェース
以下に説明するユーザーインターフェースは、上述のアルゴリズムを用いて高速で対話型のワークフローをユーザーに提供することができる。これらの高速で対話型のワークフローは、制御アルゴリズムの速度によって、及び、ユーザーが、典型的なユーザーになじみのある用語を用いてPIDコントローラの特性乃至特徴を指定することができるようにすることによってサポートされる。
【0073】
図7は、PIDコントローラを指定するための例示的なユーザーインターフェースを示す。1実施形態では、モデリング環境120は、コントローラロジック250を介してユーザーにユーザーインターフェース700を提供することができる。たとえば、ユーザーは、モデル表現160で作業をしている場合があり、プラント170などのシステムのモデルで使用するためのPIDコントローラを生成することを望んでいる場合がある。ユーザーは、ポインティングデバイスを用いてアイコンを選択することができ、表示装置150を介してユーザーにインターフェース700を提供することができる。
【0074】
インターフェース700は、ユーザーが生成中のPIDコントローラに関する情報を提供する識別子705を含むことができる。1実施形態では、ユーザーは、たとえばダブルクリックすることによって、走行制御システム330を選択し、その場合、インターフェース700が表示装置150に表示されるようにすることができる。他の実施形態は、複数のインターフェース700を含むことができ、この場合、インターフェース700の各々のインスタンスは、複数のコントローラを含んでいるモデル中の1つのコントローラに関連付けられている。
【0075】
図7を参照すると、選択フィールド710は、ユーザーが、PIDコントローラやPIコントローラなどのコントローラのタイプを選択できるようにすることができる。ドメインフィールド715は、ユーザーが、コントローラが連続時間コントローラであるか離散時間コントローラであるかを選択できるようにすることができる。インターフェース700は、コントローラの種々の設定(値)に関する情報を表示し、及び/または、受け取るための1以上のページ720を含むことができる。たとえば、アクティブなページを前面に表示して、P、I、及びDの係数、コントローラの形式乃至形態(たとえば並列コントローラ)、及び、指定された微分フィルターのフィルター係数に関する情報をユーザーに提供することができる。インターフェース700は、アクティブではない他のページを含むことができ、タブ725を用いてそれらのページを識別することができる。ユーザーは、タブ725を選択して、該タブに関連するページをアクティブにすることができる。
【0076】
インターフェース700はまた、インターフェース700中の情報、及び/または、コントローラが接続されているモデル中で利用可能な情報を用いて該コントローラを調整するチューニングボタン730を含むことができる。1実施形態では、チューニングボタン730を選択し、コンピュータ105を用いてP、I、及びDのゲインを自動的に生成することができる。たとえば、1実施形態では、ゲインを、デフォルト時の設計性能仕様を用いて生成することができる。該実施形態はさらに、デフォルト時の設計性能仕様を用いて初期設計に基づくインターフェース700を開くことができる。チューニングボタン730はさらに、コントローラ設計アルゴリズムが、コントローラブロッ
クの入力及び出力に接続されているモデルを自動的に線形化するようにすることができる。1実施形態では、チューニングボタン730が選択されているときにモデル全体を線形化することができる。
図3において、チューニングボタン730を選択すると、
図3の加算ブロック(+及び−)によって自動車350の線形モデルに−1を乗じる結果となる。
【0077】
初期条件フィールド735は、ソース(たとえば、内部ソースまたは外部ソース)、積分器、及び/または、フィルターに関する情報を提供することができる。インターフェース700はまた、インターフェース700に情報を格納し、インターフェース700を閉じ、インターフェース700からユーザー選択を取り消し、ユーザーにインターフェース700に関する支援(ヘルプ)を提供し、及び/または、インターフェース700を介して表示された情報をモデルに適用するためのボタン740を含むことができる。
【0078】
図8は、PIDコントローラの応答を調整するためのユーザーインターフェースの一例を示す。インターフェース800を用いて、コントローラの応答に関する情報を表示し、及び、コントローラに関連するユーザー入力を受け取ることができる。1実施形態では、インターフェース800は、ユーザーが選択することができるアクションを表すアイコンを含むことが可能なツールバー805を含むことができる。たとえば、ズームアイコンを用いて、ユーザーは、コントローラに関連するグラフの一部を拡大(ズームイン)することができる。
【0079】
グラフ領域810は、閉ループシステムの伝達関数815及び817に関する情報を含むことができる。たとえば、グラフ領域810は、ブロック応答(線817)または調整(チューニング)後の応答(線815)についての振幅対時間のグラフを表示することができる。説明文820は、線815及び817に関する説明をユーザーに提供することができる。設計領域830は、コントローラの特性を変更することが可能なユーザー操作式のメカニズム(構造)を含むことができる。たとえば、設計領域830は、コントローラの応答速度を速くしたり遅くしたりするために操作されるスライダー835を含むことができる。1実施形態では、コントローラロジック250は、スライダーの初期位置(たとえば、最小値と最大値の中間)を設定することができ、ユーザーは、スライダーをその初期位置から必要なだけ移動させることができる。1実施形態では、伝達関数815は、ユーザーがスライダー835を移動させるのに応じてリアルタイムで変化することができる。
【0080】
例示的な実施形態で使用されるインターフェースを、ユーザーが、コントローラの1つ以上のパラメータを変更できるように構成することができる。たとえば、インターフェース800は、ユーザーが、コントローラの応答速度を変更できるようにする1つのスライダー835を含む。他の実施形態は、ユーザーが、他のパラメータを、単独で、または、応答速度や他のタイプのパラメータと組み合わせて変更できるようにすることができる。
【0081】
図9Aは、PIDコントローラの応答を調整するためユーザーインターフェースの1例を示す。
図9Aのユーザーインターフェースは、
図8のインターフェースと比較すると、コントローラを設計するためのより高度なインターフェースでありうる。インターフェース900を用いて、閉ループ帯域幅及び位相マージンといった2つのパラメータを用いてコントローラを調整することができる。インターフェース900は、インターフェース700や800に関して説明した特徴を含むことができ、さらに、設計領域930を含むことができる。
【0082】
設計領域930は、コントローラのパラメータを変更するための2つ以上のユーザー操作式入力メカニズムを含むことができる。たとえば、第1のスライダー935を用いてPIDコントローラの閉ループ帯域幅を変更することができ、第2のスライダー945を用いてPIDコントローラの位相マージンを変更することができる。設計領域930はさらに、閉ループ帯域幅に関する数値情報を表示するための第1の表示部940、及び、位相マージンに関する情報を表示するための第2の表示部950を含むことができる。
【0083】
図9Bは、インターフェース900(901として示されている)の代替的実施例を示す。インターフェース901を、P、I、D、及びN値などの設計されたPIDパラメータ、並びに、整定時間やオーバーシュートなどの1以上の性能及びロバスト性測定値を表示するように構成することができる。たとえば、コントローラパラメータを領域960に表示することができ、性能及びロバスト性指標を領域965に表示することができる。
【0084】
本明細書に記載されているPIDコントローラ及び制御技術と共に使用されるユーザーインターフェースの他の実施形態を、
図7、
図8、
図9A及び
図9Bに示されている構成とは異なるやり方で構成することができる。そのよう他の構成は、本発明の思想から逸脱することなく例示した実施形態よりも多くの特徴もしくは少ない特徴を含むことができる。
【0085】
例示的な処理
例示的な処理は、本明細書で説明されている制御アルゴリズムを使用して、コントローラを設計するための迅速で対話型の環境をユーザーに提供することができる。
【0086】
図10A及び
図10Bは、本発明の実施形態を実施するために使用できる例示的な処理を示している。本明細書に記載されている実施形態を用いることによって、ユーザーは、該ユーザーが経験する典型的なワークフローに合致もしくは準拠したやり方でコントローラの開発及び実施を行うことが可能になる。たとえば、ユーザーは、典型的なやり方で自由形式モデリング環境と対話することができる。ユーザーはまた、典型的なやり方で、応答速度、位相マージン、閉ループ応答、閉ループ帯域幅などのコントローラの動作特性を検討することができる。いくつかの実施形態では、ユーザーは、典型的なワークフローを維持しつつ、該ユーザーになじみのある動作特性乃至操作特徴を用いてモデル中のPIDコントローラなどのコントローラを対話形式で設計及び実施することが可能である。
【0087】
図10Aを参照すると、本発明の1実施形態は、コントローラを用いて制御されるシステムモデルと対話することができる(処理1005)。たとえば、ユーザーは、システムを所望の態様で動作させることができるように制御することが必要とされる該システムのモデルを開発することができる。ユーザーは、所望の動作を実現するために、該モデル中に1つ以上のコントローラを配置することを試みることができる。
【0088】
ユーザーはモデル中のいくつかのポイント(位置)を特定することができるが、それらのポイントによって、LTIモデルを形成するために線形化される該モデルの領域が決定される(処理1010)。該モデルの特定された領域はLTIモデルを形成するように線形化される(処理1015)。該モデルのある領域が線形化されると、LTIモデルと共に使用されるコントローラの仕様を受け取ることができる(処理1020)。
【0089】
たとえば、ユーザーは、モデルのコントローラブロックを選択して、該ブロックを該モデル内に配置することができる。ダイアログウィンドウは、コントローラブロックを開いて、ユーザーが、該モデルのLTI部を制御するために使用されるコントローラの仕様を入力できるようにすることができる。たとえば、ユーザーは、コントローラの所望の応答速度、コントローラの位相マージン、コントローラの閉ループ応答、及び/または、コントローラの閉ループ帯域幅を指定することができる。
【0090】
図10Bを参照すると、ユーザーから受け取った仕様を用いてコントローラのパラメータを決定することができる(処理1025)。1実施形態では、
図5及び
図6に関して説明した制御技術を用いてコントローラのパラメータ(コントローラパラメータ)を決定することができる。いくつかの実施形態は、ユーザー入力に基づいてコントローラパラメータを自動的に決定することができる。いくつかの実施形態では、コントローラが、ユーザーによって入力された(1以上の)仕様を満たすか否かを判定することができる(処理1030)。たとえば、ユーザーがコントローラの特定の応答速度を指定している場合に、処理1030において、コンピュータ105は、該コントローラがその応答速度要件を満たすことができるか否かを判定することができる。
【0091】
コントローラが(1以上の)仕様を満たす場合には、該(1以上の)仕様を満たすコントローラをモデルに提供することができる(処理1035)。これとは対照的に、コンピュータ105が、コントローラは仕様を満たさないと判定すると、コンピュータ105は、該(1以上の)仕様のいくつかの側面またはコントローラのパラメータを変更することができる(処理1040)。コンピュータ105が(1以上の)仕様もしくはパラメータを変更すると、コンピュータ105は、該(1以上の)仕様を達成するものに可能な限り合理的に近いコントローラの設計を試みることができる。1実施形態では、要求された仕様を満たすことができず、それゆえ、要求を満たす適切なコントローラを設計するために該要求された仕様を変更する必要があることをユーザーに知らせることができる。
【0092】
処理1035の後、(1以上の)仕様を満たすコントローラをモデルのLTI部に適用することができる(処理1045)。コントローラは、該モデルが動作する(または該モデルが実行する)ときに該モデルのLTI部を制御することができる。例示的な実施形態では、コントローラがモデル中にあるときに、ユーザーは、該コントローラのパラメータを調整することが可能である。たとえば、
図8、
図9A及び
図9Bに示されているユーザーインターフェースなどのユーザーインターフェースを用いることによって、典型的なユーザーが直感的に使用できる特徴を用いてコントローラのパラメータを調整することができる。たとえば、ユーザーは、ポインティングデバイスを用いてスライダーを動かすことによって、コントローラの応答速度を高めることができる。スライダーの移動によって、PIDコントローラのパラメータを自動的に調整して最新のコントローラを生成することができる。
【0093】
例示的な1実施形態は、ユーザー入力をポーリングして、ユーザー入力が利用可能か否かを判定することができる(処理1050)。ユーザー入力が検出されると、ユーザーの選択(ユーザー選択)を受け取ることができ(処理1055)、処理1025において、該ユーザー選択を用いてコントローラのパラメータを再計算することができる。ユーザー入力が利用できないときには、処理1045で行われるようにして、現存のコントローラをモデルに適用し続けることができる。
【0094】
例示的なアーキテクチャ
図11は、
図1のコンピュータ105を実施するために使用できる例示的なコンピュータアーキテクチャを示す。
図11は、コンピュータ105に対応するエンティティ(実際の構成)の例示的な図である。図示されているように、エンティティは、バス1110、処理ロジック1120、メインメモリー1130、読み出し専用メモリー(ROM)1140、記憶装置1150、入力装置1160、出力装置1170、及び/または、通信インターフェース1180を備えることができる。バス1110は、該エンティティの構成要素間の通信を可能にする経路を含むことができる。
【0095】
処理ロジック1120は、命令を解釈して実行することができるプロセッサ、マイクロプロセッサ、または、他のタイプの処理ロジック(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)など)を備えることができる。1実施例では、処理ロジック1120は、シングルコアプロセッサ、または、マルチコアプロセッサを含むことができる。別の実施例では、処理ロジック1120は、単一の処理装置、または、処理クラスターやコンピューティンググリッドなどの一群の処理装置を含むことができる。さらに別の実施形態では、処理ロジック1120は、ローカル(局所的)なものとすることができる複数のプロセッサ、または、互いに離れているものとすることができる複数のプロセッサを含むことができ、及び、処理中に1以上のスレッドを使用することができる。
【0096】
メインメモリー1130は、処理ロジック1120によって処理乃至実行される情報及び命令を記憶することが可能なランダムアクセスメモリー(RAM)もしくは別のタイプの動的記憶装置(またはダイナミックメモリ)を含むことができる。ROM1140は、処理ロジック1120によって使用される静的情報及び/または命令を記憶することが可能なROM装置もしくは別のタイプの静的記憶装置(またはスタティックメモリ)を含むことができる。記憶装置1150は、処理ロジック1120によって使用される静的情報及び/または命令を記憶することが可能な磁気記録媒体、固体(または半導体)記録媒体、及び/または、光学記録媒体、並びに、対応する駆動装置、または、他のタイプの静的記憶装置を含むことができる。
【0097】
入力装置1160は、オペレータが該エンティティに情報を入力できるようにする、キーボード、マウス、ペン、タッチパッド、加速度計、マイクロフォン、音声認識機能、カメラ、生体測定機構などのロジックを含むことができる。1実施形態では、入力装置1160は入力装置140に一致する。
【0098】
出力装置1170は、オペレータに情報を提示するディスプレイ、プリンタ、スピーカー、触覚インターフェースなどを含むメカニズムを含むことができる。通信インターフェース1180は、該エンティティが他の装置及び/またはシステムと通信できるようにする任意のトランシーバー様
のロジックを含むことができる。たとえば、通信インターフェース1180は、ネットワークを介して他の装置またはシステムと通信するためのメカニズム(構造乃至装置)を含むことができる。
【0099】
図11に示すエンティティは、処理ロジック1120が、メインメモリー1130などのコンピュータ読み取り可能記憶媒体に格納されているソフトウェア命令を実行するのに応答していくつかの処理を実行することができる。コンピュータ読み取り可能記憶媒体を、物理的な(たとえば実体のある)記憶装置または論理的な記憶装置として定義することができる。ソフトウェア命令を、記憶装置1150などの別のコンピュータ読み取り可能記憶媒体から、または、通信インターフェース1180を介して別の装置から、メインメモリー1130へと読み出すことができる。メインメモリー1130に格納されているソフトウェア命令が処理ロジックで実行されると、該命令によって、処理ロジック1120は、本明細書に記載されている技術を実行することができる。代替的には、ハードウェアに組み込まれた回路(ハードワイヤード回路)を、ソフトウェア命令の代わりに、または、ソフトウェア命令と組み合わせて用いることによって、本明細書に記載されている技術を実施することができる。したがって、本明細書に記載されている実施例は、ハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されない。
【0100】
図11は、該エンティティの例示的な構成要素を示しているが、他の実施例では、エンティティは、
図11に示されているエンティティよりも少ない数の構成要素を含むことができ、該エンティティとは異なる構成要素を含むことができ、もしくは、該エンティティの構成要素に加えて他の構成要素を含むことができる。さらに他の実施例では、エンティティの1以上の構成要素は、該エンティティの1以上の他の構成要素によって実行されるものとして説明した1以上のタスクを実行することができる。
【0101】
例示的な分散型実施形態
分散型実施形態は、2つ以上の処理資源を用いて処理を実行することができる。たとえば、いくつかの実施形態は、単一の処理装置中の2つ以上のコアを用いて処理を実行することができ、及び/または、単一の筐体内に設置された複数の処理装置間に処理を分散させることができ、及び/または、ネットワークによって接続された複数のタイプの処理ロジック間に処理を分散させることができる。
【0102】
図12は、分散型コンピューティング環境を用いて、クライアント装置(たとえば、コンピュータ105)の代わりに非線形モデルのコントローラの対話形式による設計をサポートすることができる例示的なシステムを示している。システム1200は、コンピュータ105、ネットワーク1230、サービスプロバイダ−1240、リモートデータベース1250、及びクラスター1260を含むことができる。
図12の実施例は例示であり、本発明の他の分散型実施例は、より多くの装置及び/もしくエンティティ、並びに/または、より少ない装置及び/またはエンティティ、並びに/または、
図12の例示的な構成とは異なる構成において複数の装置/エンティティを含むことができる。
【0103】
コンピュータ105は、グラフィカルユーザーインターフェース(GUI)1210及び
コンピューティング環境1
220を含むことができる。GUI 1210は、ユーザーが、コンピュータ105及び/またはリモートの装置(たとえば、サービスプロバイダー1240)と対話乃至相互作用できるようにするインターフェースを含むことができる。例示的な1実施形態では、GUI 1210を、
図7、
図8、
図9A及び
図9Bのインターフェースに類似したものとすることができる。
【0104】
ネットワーク1230は、データ(たとえば、パケットデータまたは非パケットデータ)を伝送することができる任意のネットワークを含むことができる。ネットワーク1230のいくつかの実施例は、インターネットプロトコル(IP)、非同期転送モード(ATM)、同期光ネットワーク(SONET)、ユーザ・データグラム・プロトコル(UDP)、IEEE 802.10などの実質的に任意のネットワークプロトコルを用いて動作することが可能な、ローカル・エリア・ネットワーク(LAN)、及び/または、メトロポリタン・エリア・ネットワーク(MAN)、及び/または、インターネットなどのワイド・エリア・ネットワーク(WAN)を含むことができる。
【0105】
ネットワーク1230は、ルーター、及び/または、スイッチ、及び/または、ファイアウォール、及び/または、サーバーなどのネットワーク装置(不図示)を含むことができる。ネットワーク1230を、配線された導体及び/もしく光ファイバーを用いて直結されたネットワークとすることができ、並びに/または、自由空間を伝わる光周波数乃至無線周波数(RF)及び/もしくは音響伝播経路を用いた無線ネットワークとすることができる。1実施例では、ネットワーク1230を、インターネットなどの実質的にオープンな公衆ネットワークとすることができる。別の実施例では、ネットワーク1230を、会社の仮想ネットワークなどのより制限されたネットワークとすることができる。本明細書に記載されているネットワークの実施例及び/またはネットワーク上で動作する装置は、如何なる特定のデータタイプ、プロトコル、アーキテクチャ/構成などにも限定されない。たとえば、1実施形態では、ネットワーク1230を、量子互換ネットワーキングプロトコル(quantum-compatible networking protocol)を使用する量子ネットワークとすることができる。
【0106】
サービスプロバイダー1240は、サービスを他の装置が利用できるようする装置を含むことができる。たとえば、サービスプロバイダー1240は、サーバー及び/または他の装置を用いて1以上のサービスを宛先(目的地)に提供するエンティティを含むことができる。それらのサービスには、ある処理を実施するために宛先において実行される命令を含めることができる。代替的には、サービスには、宛先の代わりに(または宛先のために)処理を実施するために該宛先に代わって(または該宛先のために)実行される命令を含めることができる。
【0107】
1例として、サービスプロバイダーが、コンピュータ105などの宛先に1以上のウェブベースのサービスを提供するウェブサーバーを動作させる場合を考える。ウェブベースのサービスは、コンピュータ105が、該サービスプロバイダーによって動作させられるハードウェアを用いて、電気的及び/または機械的システムの分散型シミュレーションを実行できるようにすることができる。たとえば、コンピュータ105のユーザーが、サービスプロバイダーのハードウェアを用いてシステムモデルのPIDコントローラを対話的に設計できるようにすることができる。1実施例では、顧客(ユーザー)は、加入契約毎にサービスを受けることができる。加入契約には、月決めの料金支払、使用毎の料金支払、サービスプロバイダー1240と顧客との間で交換された情報量に基づく料金支払、顧客によって使用されたプロセッササイクルの数に基づく料金支払、顧客によって使用されたプロセッサの数に基づく料金支払などの取り決めを含めることができる。
【0108】
リモートデータベース1250は、コンピュータ105などの他の装置によって使用される機械読み取り可能情報を格納する装置を含むことができる。1実施形態では、リモートデータベース1250は、システムモデルやコントローラなどに関する情報を含んでいるデータ構造を格納する、ずらりと並んだまたはグリッド状に配置された複数の記憶装置(たとえば、ハードディスク、光ディスク、固体状態(または半導体)記憶装置など)を含むことができる。
【0109】
クラスター1260は、遠隔処理(たとえば、分散処理、並列処理など)を実行するために使用できる実行ユニット(UE)1270などの一群の処理装置を含むことができる。実行ユニット1270は、コンピュータ105などの要求側装置の代わりに処理を実行するハードウェアベース、及び/または、ハードウェア/ソフトウェアベースの装置を含むことができる。1実施形態では、実行ユニット1270の各々は部分的な結果を計算することができ、それらの部分的な結果を組み合わせて、モデルについての全体の結果を得ることができる。
【0110】
単独の実装形態または分散型の実装形態で動作する実施形態は、MathWorks社によるMATLAB(商標)、Octave、Python、Comsol Script、National InstrumentのMATRIXx、Wolfram Research社のMathemataica、Mathsoft Engineering & Education社のMathcad、MaplesoftのMaple、Imagine That社のExtend、Computer Science andControl(INRIA) のThe French Institution for ResearchのScilab、CadenceのVirtuoso、DynasimのModelicaもしくはDymola(但し、これらには限定されない)などのテキストベースのコンピューティング(計算)アプリケーション及び/またはモデリングアプリケーションに関連するコードで、本明細書に記載されている動作を実行することができる。
【0111】
いくつかの実施形態は、さらに、The Math Works社のSimulink(商標)、Stateflow(商標)及びSimEvents(商標)など、Visual SolutionsのVisSim、National InstrumentsのLabView(商標)、DynasimのDymola、Measurement ComputingのSoftWIRE、DALSA CorecoのWiT、AgilentのVEE Pro もしくはSystem Vue、PPT VisionのVision Program Manager、Khoral ResearchのKhoros、Gedae社のGedae、(INRIA)のScicos、CadenceのVirtuoso、IBMのRational Rose、International BusinessMachines (IBM)社のRhapsodyもしくはTau、カリフォルニア大バークレー校のPtolemy、ASCET, CoWare、または、統一モデリング言語(UML)のいくつかの側面、または、 SysML環境(但し、これらには限定されない)などのグラフィカルモデリング環境に関連するコードで、本明細書に記載されている動作を実行することができる。グラフィカルモデリング環境は、ブロック図及び/または他のタイプの図を含むことができる。
【0112】
いくつかの実施形態を、静的または動的に型づけされるプログラミング言語をサポートする技術計算環境などの種々のコンピューティング環境で実施することができる。たとえば、動的に型づけされる言語(dynamically typed language)を、当業者になじみのある数学的表記で問題及び/または解を表すために使用される言語とすることができる。たとえば、動的に型づけされる言語は配列(アレイ)を基本要素として用いることができ、この場合、該配列の次元(次数)もしくは大きさを決定する必要はない場合がある。それらの配列を用いて、演算もしくは処理を配列中の値などの値の全集合に適用できるという点において、配列プログラミングをサポートすることができる。配列プログラミングは、配列ベースの演算を、プログラマーが、個々の非配列演算すなわちスカラー演算の明示的なループを用いることなく、データの全集合を検討して該集合に対する演算を行うことができるようにする高レベルのプログラミング技術もしくはモデルとして扱うことを可能にする。動的に型づけされる言語を使用する例示的な1実施形態を、組込みアプリケーションで使用するためのコードを生成するために使用できる組込みMATLABプログラミング言語で実施することができる。
【0113】
例示的な実施形態
1実施形態では、1以上のコンピュータ読み取り可能媒体は、処理ロジックで実行されると、任意の非線形モデルの比例・積分・微分(PID)コントローラのパラメータを決定する1以上の実行可能命令を保持することができる。該実施形態では、該媒体は、非線形化すべき該任意の非線形モデルの一部を自動的に決定するための1以上の命令を保持することができ、この場合、該任意の非線形モデルは自由形式モデリング環境にある。それらの命令は、該任意の非線形モデルの該決定された一部を線形化することができ、この線形化は線形モデルを生成することができる。それらの命令は、該線形モデルの開ループ周波数応答を計算し、及び、ユーザーの代わりに設計仕様を受け取ることができ、この場合、その設計仕様は、開ループ応答の所望のゲインクロスオーバー周波数、または、該ゲインクロスオーバー周波数における所望の位相マージンを特定している。それらの命令は、周波数応答及び受け取った入力を用いてPIDコントローラのゲイン(利得)を自動的に調整することができ、この場合、この自動調整(自動チューニング)は、PIDコントローラが線形モデルを制御するときに所望の性能を達成するように、及び、該任意の非線形モデル用の対話型PIDコントローラ設計をサポートする時間内で実行されるように構成される。必要な場合には、グラフィカルユーザーインターフェース(GUI)に関連する可動式スライダーを用いて所望のゲインクロスオーバー周波数及び所望の位相マージンを指定できるように、または、可動式のスライダーを用いて所望のゲインクロスオーバー周波数を指定し、かつ、所望の位相マージンを自動的に選択できるように該実施形態を構成することができる。Simulink(シミュリンク)準拠の言語またはSimulink(シミュリンク)モデルと対話もしくは相互作用をするブロックの代わりに(または該ブロックのために)調整を実行できるように該実施形態を構成することもできる。
【0114】
別の実施形態では、1以上の実行可能命令を保持する1以上のコンピュータ読み取り可能媒体を提供することができ、この場合、該命令は、処理ロジックで実行されると、コントローラを表すブロックを、該ブロックがモデル中で動作乃至実行するときに、該ブロック内で使用されるコントローラを生成するアルゴリズムに結合する。この実施形態では、該媒体は、線形時不変(LTI)モデルを受け取るための1以上の命令を保持することができる。この実施形態では、LTIモデルは、任意の非線形モデルの一部を表す動作条件において該任意の非線形モデルを近似することができる。LTIモデルはさらに、遅延を有することができ、及び、実質的に任意の次数を有することができる。それらの命令をさらに、性能及びロバスト特性を受け取るように構成することができ、この場合、該性能及びロバスト特性は、LTIモデルを制御するコントローラについてのものであり、該性能及びロバスト特性は、開ループのゲインクロスオーバー周波数、及び、開ループの位相マージンを特定する。この実施形態では、それらの命令はさらに、該性能及びロバスト特性を、該特性を満たすコントローラを生成する調整アルゴリズムに提供することができ、この場合、該調整アルゴリズムは、該性能及びロバスト特性を満たすコントローラパラメータを自動的に調整する。必要に応じて、該ブロックは、コントローラパラメータを該ブロックに書き込むようにする調整メカニズムを含むことができる。この実施形態では、それらのブロックは、ユーザーが、コントローラのロバスト性とコントローラの性能とのトレードオフを対話形式で実行できるようにすることができる。該実施形態は、モデルへのコントローラのリアルタイムでの提供をサポートすることができ、この場合、リアルタイムには、ユーザーによるブロックまたはコントローラアルゴリズムの対話型の操作に悪影響を与えない程度の処理遅延が含まれる。該実施形態では、コントローラを、比例(P)コントローラ、積分(I)コントローラ、比例微分(PD)コントローラ(微分フィルターを含む場合もあれば含まない場合もある)、比例積分(PI)コントローラ、または、PIDコントローラ(微分フィルターを含む場合もあれば含まない場合もある)とすることができる。
【0115】
さらに別の実施形態では、1以上の実行可能命令を保持する1以上のコンピュータ読み取り可能媒体を提供することができ、この場合、該命令は、処理ロジックで実行されると、線形化されたプラントモデルで使用されるコントローラを調整する。この実施形態では、該媒体は、対話型の調整用インターフェースを開始するための1以上の命令を保持することができ、この場合、該対話型の調整用インターフェースは、ループ応答を計算し、該ループ応答をグラフィカルに(すなわち、図やグラフなどを使って)表示し、性能及びロバスト性情報を計算し、該性能及びロバスト性情報をグラフィカルに表示し、コントローラのパラメータを調整し、ユーザー入力を受け取るように構成される。それらの命令はまた、プラントモデルを線形化して線形化されたプラントモデルを生成することができ、この場合、該線形化されたプラントモデルは、該プロントの実行中にコントローラによって制御される。それらの命令はユーザー入力を受け取ることができ、この場合、該ユーザー入力はゲインクロスオーバー周波数及び開ループ位相マージンを指定する。それらの命令はまた、コントローラのパラメータを調整することができ、この場合、該調整は、指定されたゲインクロスオーバー周波数及び開ループ位相マージンに基づいてコントローラのいくつかのパラメータを自動的に解明(パラメータの解明とは、たとえば、パラメータのタイプを特定し、及び/または、該パラメータの値を決定することを意味する)し、小さくされた探索空間内の残りのコントローラパラメータを自動的に最適化し、及び、指定された入力に対応乃至合致する特性乃至特徴を有する調整されたコントローラを生成するように構成され乃至作動する。それらの命令はさらに、該調整されたコントローラの応答を表示することができ、この場合、該応答は、該調整されたコントローラが、プラントの実行中に該プラントで(もしくは該プラントと共に)どのように動作するかを示す。この実施形態では、該対話型の調整インターフェースを、Simulink(シミュリンク)モデル内の比例・積分・微分(PID)コントローラブロックで用いることができる。必要に応じて、調整されたコントローラの特性がメリット関数を満たすようにすることができる。該実施形態はまた、固定パラメータ以外のパラメータについての最適化の実行をサポートすることができる。該実施形態は、該対話型の調整インターフェースを、立ち上がり時間、整定時間、オーバーシュート、ピーク(値)、ゲインマージン(ゲイン余裕)、位相マージン(位相余裕)、最大感度、最大相補感度(maximum complementary sensitivity)、または、閉ループ安定性を表示するための命令を含むように構成することができる。該実施形態では、プラントを、1入力1出力(SISO)ループとして表すことができる。該実施形態は、任意の非線形モデルの動作ポイントを選択するための命令を含むことができ、この場合、該動作ポイントは、プラントが線形化されて設計される場所(ポイント)を示し、調整されたコントローラは、該動作ポイントに近接する任意の非線形モデルを制御する。該実施形態を、さらに、該任意の非線形モデルの第2の動作ポイントを選択し、該第2の動作ポイントに近接する任意の非線形モデルを制御するための調整されたコントローラを生成し、及び、該調整されたコントローラを第1の動作ポイントに関して(たとえば、該第1の動作ポイントもしくはその近傍で動作するように)、及び、該調整されたコントローラを第2の動作ポイントに関して(たとえば、該第2の動作ポイントもしくはその近傍で動作するように)スケジューリングするためのゲインスケジューリングを実行するように構成することができる。
【0116】
さらに他の実施形態では、1以上の実行可能命令を保持する1以上のコンピュータ読み取り可能媒体を提供することができ、この場合、該命令は、処理ロジックで実行されると、1つ、2つ、3つ、または4つのパラメータを有するコントローラのパラメータを決定し、該コントローラは、非線形モデルを制御するように構成される。該媒体は、自由形式モデリング環境にある非線形モデルの少なくとも一部を線形化するための命令を保持することができ、この場合、該線形化は、所定の領域にわたって有効もしくは妥当な線形モデルを生成する。該媒体はまた、線形モデルの開ループ周波数応答を計算し、及び、該開ループ応答の所望のゲインクロスオーバー周波数に対する入力もしくは該ゲインクロスオーバー周波数における所望の位相マージンに対する入力を受け取るための命令を保持することができる。該媒体はまた、該周波数応答及び受け取った該入力を用いてゲインを自動的に調整するための命令を保持することができ、この場合、該自動的な調整によって所望の性能目標が達成され、該自動的な調整は、該任意の非線形モデル用の対話型PIDコントローラ設計をサポートする時間中に実行される。
【0117】
さらに別の実施形態では、任意の次数のプラントを制御するためのコンピュータによって実施される方法が提供される。該方法を、非線形システムモデル中に表示可能な対話型コントローラブロックを用いて該非線形システムモデルと対話もしくは相互作用するように、及び、該対話型コントローラブロックを用いて該システムモデルを線形化するように構成することができる。該方法は、該システムモデルにおいて使用するためのプラントを生成することができ、この場合、該プラントは、該線形化に基づいて生成され、該プラントは任意の決定された次数(または次元)を有し、及び、該プラントは、該システムモデルが動作乃至実行するときに、該対話型コントローラブロックによって制御される。該方法は、該対話型コントローラブロックが動作乃至実行するときに該対話型コントローラブロックの特性を指定するユーザー入力を受け取ることができ、この場合、該入力は、ゲインクロスオーバー周波数及び位相マージンを含む。該実施形態では、該入力を、該対話型コントローラブロックに関連付けられているグラフィカルユーザーインターフェース(GUI)を介して受け取ることができる。該方法は、該対話型コントローラブロックに関連付けられているコントローラを調整することができ、この場合、該調整は、自動的に実行され、及び、コントローラのパラメータの数が2つ以下のときに該パラメータを解明すること、及び、コントローラのパラメータが3つ以上あるときに2つのパラメータを解明して、残りのパラメータを最適化することを含むことができる。
【0118】
さらに別の実施形態では、任意の次数のプラントを制御するための装置が提供される。該プラントは、非線形システムモデルと対話もしくは相互作用するための手段、及び、該システムモデルを線形化するための手段を備えることができる。該システムはまた、該システムモデルにおいて使用するためのプラントを生成するための手段を含むことができ、この場合、該プラントは該線形化に基づいて生成され、該プラントは任意の決定された次数を有し、及び、該プラントは、該システムモデルが動作乃至実行するときに対話型コントローラ手段によって制御される。該装置は、該対話型コントローラ手段の特性を指定するユーザー入力を受け取るための手段を含むことができ、この場合、該入力は、ゲインクロスオーバー周波数及び位相マージンを指定する。該装置は、該対話型コントローラ手段に関連付けられているコントローラを調整するための手段を含むことができ、この場合、該調整は自動的に実行され、該調整は、コントローラのパラメータが2つ以下のときに該パラメータを解明すること、及び、コントローラのパラメータが3つ以上あるときに2つのパラメータを解明して、残りのパラメータを最適化することを含む。
【0119】
結論
いくつかの実施例は、ユーザーが、該ユーザーになじみのある特徴乃至特性を用いてシステムモデルのコントローラを対話形式で設計することを可能にする。
【0120】
本発明の例示的な実施形態についての以上の説明は例示及び説明のために提供されたものであって、本発明を網羅することも、本発明を開示した形態そのものに限定することも意図されていない。上記教示に照らして種々の変更及び変形が可能であり、それらの変更及び変形は本発明の実施から得られる場合もある。たとえば、一連の処理乃至動作を
図10A及び
図10Bに関して説明したが、本発明の原理に適合する他の実施例では、それらの処理乃至動作の順番を変更することができる。さらに、互いに依存関係にない処理乃至動作を並列もしくは同時に実行することができる。
【0121】
さらに、本発明の思想から逸脱することなく、本発明の原理に適合する実施例を、図示したもの以外の装置及び構成を用いて、並びに本明細書に記載したもの以外の装置及び構成を用いて実施することができる。特定の配置乃至構成及び/またはアプリケーションに依存して、いくつかの装置及び/または構成要素を、
図1または
図11または
図12の実施例に追加することができ、及び/または、それらの実施例から削除することができる。さらに、開示されている実施例は、ハードウェアのいかなる特定の組み合わせにも限定されない。
【0122】
さらに、本発明のいくつかの部分を、1以上の機能を実行する「ロジック」として実施することができる。このロジックは、ハードワイヤードロジックなどのハードウェア、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、マイクロプロセッサ、または、ハードウェアとソフトウェアの組み合わせを含むことができる。本発明の説明で使用されている要素、処理乃至動作、または命令は、それらが本発明にとって重要であるかまたは必須であることが明示されていない場合には、そのように重要または必須であるものと解釈されるべきではない。また、本明細書で使用されている「ある」という冠詞は、1以上のアイテム(事物)を含むことが意図されている。1つのアイテムだけが存在することが意図されている場合には、「1つの」という用語または類似の用語が使用されている。さらに、本明細書で使用されている「に基づいて」という用語は、「に少なくとも部分的に基づいて」を意味する(但し、これとは別の意味であることが明示されている場合を除く)ことが意図されている。
【0123】
本明細書で使用されている見出し及び副見出しは、本明細書をサブセクションに分割することによって読み手を補助するために付されている。それらの見出し及び副見出しは、本発明の範囲を限定するものとして解釈されるべきではなく、及び、本発明の特徴を画定するものとしても解釈されるべきではない。