(57)【特許請求の範囲】
【請求項１】
１以上の実行可能命令を保持する１以上のコンピュータ読み取り可能媒体であって、該命令は処理装置で実行されると、任意の非線形モデルの比例・積分・微分（PID）コントローラのパラメータを決定し、該命令は、
線形化すべき前記任意の非線形モデルの部分を決定するステップと、
前記任意の非線形モデルの前記決定された部分を線形化するステップであって、該線形化によって線形モデルが生成される、ステップと、
前記線形モデルの開ループ周波数応答を計算するステップと、
ユーザーに代わって設計仕様を受け取るステップであって、該設計仕様は、前記開ループ周波数応答の所望のゲインクロスオーバー周波数ωｃ、または、前記所望のゲインクロスオーバー周波数ωｃにおける所望の位相マージンθｍを規定することからなる、ステップと、
前記開ループ周波数応答を用いて、PIDコントローラのパラメータを自動的に調整し、これによって、該調整されたパラメータを有するPIDコントローラが、前記設計仕様を満たし、かつ、メリット関数を最小にするようにするステップ
を含み、
前記PIDコントローラの２つの自由パラメータα及びβが、
【数５０】
0005648049.tif 000023
として連続時間表現で記述されるパラメータ化か、または、
【数５１】
0005648049.tif 000024
として離散時間表現で記述されるパラメータ化
によって調整され、
ここで、Tsはサンプリング時間であり、ψｚ、α、及びβは、０°と９０°の間の値をとる変数であり、前記所望のゲインクロスオーバー周波数ωｃにおける前記PIDコントローラに起因する全位相シフトは、
【数５２】
0005648049.tif 000025
によって与えられることからなる、コンピュータ読み取り可能媒体。
【請求項２】
前記自動的に調整するステップによって、ユーザーによって指定されるか、または、プログラムによって指定される所望の性能が達成される、請求項１の媒体。
【請求項３】
前記設計仕様がグラフィカルユーザーインターフェース（GUI）を介して受け取られ、該GUIは、前記任意の非線形モデルにおけるPIDコントローラを表す構成要素に関連付けられる、請求項１の媒体。
【請求項４】
前記所望のゲインクロスオーバー周波数ωｃ及び前記所望の位相マージンθｍが、グラフィカルユーザーインターフェース（GUI）に関連付けられている可動式のスライダーを用いて指定されるか、または、
前記所望のゲインクロスオーバー周波数ωｃが前記可動式のスライダーを用いて指定され、及び、前記所望の位相マージンθｍが自動的に選択される、請求項１の媒体。
【請求項５】
前記自動的な調整が、
Simulink（シミュリンク）準拠の言語、または、
Simulink（シミュリンク）モデル、または、
MATLAB準拠の言語、または、
MATLABモデル
と相互作用する構成要素に代わってもしくは該構成要素のために実行される、請求項１の媒体。
【請求項６】
１以上の実行可能命令を保持する１以上のコンピュータ読み取り可能媒体であって、
該命令は、
線形時不変（LTI）モデルと性能及びロバスト特性を受け取るステップと、
前記性能及びロバスト特性を調整アルゴリズムに提供するステップ
を処理装置に実行させ、
前記LTIモデルは、
任意の非線形モデルの一部を表す動作条件において該任意の非線形モデルを近似し、
１以上の時間遅延を有することができ、
実質的に任意の次数を有することができ、
前記性能及びロバスト特性は、前記LTIモデルを制御するコントローラの性能及びロバスト特性であって、該性能及びロバスト特性は、
開ループのゲインクロスオーバー周波数ωｃ、及び、
開ループ位相マージンθｍ
を特定し、
前記調整アルゴリズムは、前記性能及びロバスト特性を満たすPIDコントローラのコントローラパラメータを自動的に調整することからなる、コンピュータ読み取り可能媒体。
【請求項７】
前記任意の非線形モデルは自由形式のモデリング環境にある、請求項６の媒体。
【請求項８】
前記PIDコントローラを表す前記LTIモデルのブロックは、前記コントローラパラメータを該ブロックに書き込むようにする調整メカニズムを含む、請求項６の媒体。
【請求項９】
前記ブロックは、ユーザーが、コントローラのロバスト性とコントローラの性能との間のトレードオフを対話形式で実行できるようにする、請求項８の媒体。
【請求項１０】
前記PIDコントローラは前記LTIモデルにリアルタイムで提供され、ここで、該リアルタイムには、ユーザーによる前記ブロックの対話型操作に悪影響を与えない処理遅延が含まれる、請求項６の媒体。
【請求項１１】
前記PIDコントローラは、
比例（P）コントローラ、
積分（I）コントローラ、
微分フィルターを有する比例微分(PD)コントローラ、
微分フィルターを有さない比例微分(PD)コントローラ、
比例積分（PI）コントローラ、
微分フィルターを有するPIDコントローラ、
微分フィルターを有さないPIDコントローラ
の少なくとも１つである、請求項６の媒体。
【請求項１２】
１以上の実行可能命令を保持する１以上のコンピュータ読み取り可能媒体であって、
該命令は、
対話型の調整インターフェースの動作を開始するステップと、
プラントモデルを線形化して線形化されたプラントモデルを生成するステップであって、該線形化されたプラントモデルは、該プラントモデルの実行中に前記コントローラによって制御される、ステップと、
ゲインクロスオーバー周波数ωｃ及び開ループ位相マージンθｍを指定するユーザー入力を受け取るステップと、
前記コントローラのパラメータを調整するステップ
を処理装置に実行させ、
前記対話型の調整インターフェースは、
コントローラのループ応答を計算し、
前記コントローラの前記ループ応答をグラフィカルに表示し、
前記コントローラの性能及びロバスト性情報を計算し、
前記性能及びロバスト性情報をグラフィカルに表示し、
前記コントローラのパラメータを調整し、及び、
ユーザー入力を受け取る
ためのものであり、
前記コントローラのパラメータを調整するステップは、
前記指定されたゲインクロスオーバー周波数ωｃ及び前記開ループ位相マージンθｍに基づいて前記コントローラのいくつかのパラメータを代数計算を用いて自動的に解明するステップと、
縮小された探索空間内の自由パラメータα及びβを自動的に最適化するステップと、
調整されたコントローラを生成するステップであって、該調整されたコントローラは、前記ユーザー入力に対応する特性を有する、ステップと、
前記調整されたコントローラの応答を表示するステップであって、該応答は、前記プラントモデルの実行中に、前記調整されたコントローラが前記プラントモデルと共にどのように動作するかを示す、ステップ
を含むことからなる、コンピュータ読み取り可能媒体。
【請求項１３】
前記対話型の調整インターフェースは、Simulink（シミュリンク）モデル中の比例・積分・微分（PID）コントローラブロックで使用される、請求項１２の媒体。
【請求項１４】
前記調整されたコントローラの特性はメリット関数を満たす、請求項１２の媒体。
【請求項１５】
前記パラメータを調整するステップはさらに、固定パラメータωｃ及びθｍ以外のパラメータについて最適化を実行するための１以上の命令を含む、請求項１２の媒体。
【請求項１６】
前記対話型の調整インターフェースはさらに、前記調整されたコントローラについて、
立ち上がり時間、
整定時間、
オーバーシュート、
ピーク、
ゲインマージン、
位相マージン、
最大感度、
最大相補感度、
閉ループ安定性
のうちの少なくとも１つを表示するための１以上の命令を含む、請求項１２の媒体。
【請求項１７】
前記プラントモデルは１入力１出力（SISO）ループとして表現されることができる、請求項１２の媒体。
【請求項１８】
前記プラントモデルが任意の非線形モデルであり、前記媒体が、該任意の非線形モデルの動作ポイントを選択するための１以上の命令をさらに含み、
前記動作ポイントは、前記プラントモデルが線形化されるポイント、及び、前記プラントモデルが設計されるポイントを示し、
前記調整されたコントローラは、前記任意の非線形モデルが前記動作ポイントに近接したポイントで動作するように該非線形モデルを制御する、請求項１２の媒体。
【請求項１９】
前記任意の非線形モデルの第２の動作ポイントを選択すること、
前記任意の非線形モデルを前記第２の動作ポイントに近接したポイントで動作するように該非線形モデルを制御するための調整されたコントローラを生成すること、及び、
前記調整されたコントローラを、前記第１の動作ポイント及び前記第２の動作ポイントに関してスケジューリングするためのゲインスケジューリングを実行すること
をさらに含む、請求項１８の媒体。
【請求項２０】
１以上の実行可能命令を保持する１以上のコンピュータ読み取り可能媒体であって、該命令は処理装置で実行されると、１つまたは２つまたは３つまたは４つのパラメータを有するコントローラのパラメータを決定し、該コントローラは非線形モデルを制御するためのものであり、
該命令は、自由形式モデリング環境において前記非線形モデルの少なくとも一部を線形化し、前記コントローラのゲインを自動的に調整するためのものであり、
前記線形化によって、線形モデルが生成され、
前記線形化は、
前記線形モデルの開ループ周波数応答を計算し、及び、
前記開ループ周波数応答の所望のゲインクロスオーバー周波数ωｃもしくは前記所望のゲインクロスオーバー周波数ωｃにおける所望の位相マージンθｍに対する入力を受け取ることを含み、
前記周波数応答及び前記受け取った入力を用いて前記コントローラのゲインの自動的な調整が行われ、
前記自動的な調整によって所望の性能目標が達成され、
前記自動的な調整は、前記任意の非線形モデルのためのユーザーによる対話型のPIDコントローラ設計をサポートする時間中に実行されることからなる、コンピュータ読み取り可能媒体。
【請求項２１】
任意の次数のプラントを制御するためのコンピュータによって実施される方法であって、
非線形システムモデル中に表示可能な対話型コントローラブロックを用いて該非線形システムモデルを線形化するステップと、
前記システムモデルで使用するためのプラントを生成するステップであって、該プラントは、前記線形化に基づいて生成され、該プラントは、任意の決定された次数を有し、及び、前記システムモデルが動作するときに前記対話型コントローラブロックによって制御される、ステップと、
前記対話型コントローラブロックが動作するときに、該対話型コントローラブロックの特性を指定するユーザー入力を受け取るステップであって、前記入力は、ゲインクロスオーバー周波数ωｃ及び位相マージンθｍを含み、前記入力は、前記対話型コントローラブロックに関連付けられているグラフィカルユーザーインターフェース（GUI）を介して受け取られる、ステップと、
前記対話型コントローラブロックに関連付けられているコントローラを自動的に調整するステップであって、
前記コントローラのパラメータの数が２つ以下のときに、該パラメータを解明するステップと、
前記コントローラのパラメータの数が３つ以上のときに、２つのパラメータを解明し、かつ、残りのパラメータを最適化するステップ
を含むステップ
を含む方法。
【請求項２２】
任意の次数のプラントを制御するための装置であって、
非線形システムモデルを線形化するための手段と、
前記システムモデルで使用するプラントを生成するための手段であって、該プラントは、前記線形化に基づいて生成され、任意の決定された次数を有し、及び、前記システムモデルが動作しているときに対話型コントローラ手段によって制御されることからなる、手段と、
前記対話型コントローラ手段の特性を指定するユーザー入力を受け取るための手段であって、該入力は、ゲインクロスオーバー周波数ωｃ及び位相マージンθｍを指定し、該入力は、ユーザーインターフェース手段を介して受け取られることからなる、手段と、
前記対話型コントローラ手段に関連付けられているコントローラを自動的に調整するための手段であって、該調整は、
前記コントローラのパラメータの数が２つ以下のときに、該パラメータを解明することと、
前記コントローラのパラメータの数が３つ以上のときに、２つのパラメータを解明し、かつ、残りのパラメータを最適化すること
とを含むことからなる、手段
を備える装置。
【請求項２３】
比例・積分・微分（PID）コントローラを調整するための方法であって、
前記PIDコントローラの設計目標を特定するステップであって、該設計目標は、決定された閉ループ安定性と決定されたロバスト性指標とを含む、ステップと、
開ループのゲインクロスオーバー周波数を表す第１の値ωｃを指定するステップと、
前記開ループの位相マージンを表す第２の値θｍを指定するステップと、
前記第１の値ωｃ及び第２の値θｍが指定されているときに前記PIDコントローラの自由パラメータα及びβを調整するステップであって、調整後の前記PIDコントローラが前記設計目標を満たし、かつ、メリット関数を最小にするようにするステップ
を含み、
前記固定パラメータωｃ及びθｍ、並びに、前記自由パラメータα及びβは、
【数５３】
0005648049.tif 000026
として連続時間表現におけるPIDコントローラを表すために使用されるか、または、
【数５４】
0005648049.tif 000027
として離散時間表現におけるPIDコントローラを表すために使用され、
ここで、Tsはサンプリング時間であり、ψｚ、α、及びβは、０°と９０°の間の値をとる変数であり、前記ゲインクロスオーバー周波数ωｃにおける前記PIDコントローラに起因する全位相シフトは、
【数５５】
0005648049.tif 000028
によって与えられることからなる、方法。
【請求項２４】
前記ロバスト性指標が、オーバーシュートまたはゲインマージンを含む、請求項２３の方法。
【請求項２５】
開ループ周波数応答を用いてプラント用の比例・積分・微分（PID）コントローラ設計の安定性を評価するための方法であって、
整数値γを決定するステップと、
ωＧとして表される周波数グリッドにわたって前記プラントのゲイン値及び畳み込まれていない位相値を決定するステップと、
前記PIDコントローラの開ループ振幅及び開ループ位相を決定するステップであって、該開ループ位相はψ（ω）として表される、ステップと、
前記PIDコントローラのゲインクロスオーバー周波数を特定するステップと、
前記周波数グリッドωＧにおける前記特定されたゲインクロスオーバー周波数について対応する位相値を決定するステップと、
前記整数値γを用いて、第１のクロスオーバー周波数における位相角がある間隔内にあるか否かを判定するステップであって、該第１のクロスオーバー周波数における位相角がψ０であり、前記間隔を、
[（２γ−１）π＋θｍ，（２γ＋１）π−θｍ]として表すことができる、ステップと、
他のクロスオーバー周波数の位相角がある関係を満たすか否かを判定するステップであって、該関係は、前記他のクロスオーバー周波数の位相角が前記PIDコントローラの閉ループ安定性に影響しないことを示し、該関係を、ｋ＝１，…，ｍについて、μ（ψ２ｋ−１）＝μ（ψ２ｋ）と表すことができる、ステップと、
ある位相マージンが、追加のクロスオーバー周波数における位相マージン値を少なくとも満たすか否かを判定するステップであって、該位相マージンはθｍによって与えられ、前記追加のクロスオーバー周波数を、ω１、ω２，…，ω２ｍ−１，ω２ｍと表すことができることからなる、ステップ
を含む方法。
【請求項２６】
比例・積分・微分（PID）コントローラ設計を評価するための方法であって、
前記PIDコントローラ設計の第１の自由パラメータα及び第２の自由パラメータβを特定するステップであって、該PIDコントローラ設計は、第１の固定パラメータ及び第２の固定パラメータを含み、前記第１の固定パラメータはゲインクロスオーバー周波数ωｃであり、前記第２の固定パラメータは位相マージンθｍである、ステップと、
前記第1の自由パラメータαの複数の値を特定するステップと、
前記第２の自由パラメータβの複数の値を特定するステップと、
前記第１の自由パラメータα及び前記第２の自由パラメータβの１以上の値を含む範囲を、グリッディング技術を用いてグリッドに配置するステップと、
前記グリッディング技術で使用される前記第1の自由パラメータα及び前記第２の自由パラメータβの前記１以上の値の使用に関する範囲の制約を特定するステップと、
前記制約に反するか、または、ナイキストの安定判別試験をパスしない前記第１の自由パラメータα及び前記第２の自由パラメータβの値を破棄するステップと、
破棄されず、かつ、前記ナイキストの安定判別試験をパスした前記第１の自由パラメータαの値及び前記第２の自由パラメータβの値を含むペア（α、β）についてメリット関数を評価するステップと、
決定されたクロスオーバー周波数について前記メリット関数の最小値を生成するペア（α、β）を選択するステップ
を含む方法。
【請求項２７】
前記グリッドへの配置（グリッディング）が、前記グリッディング技術を用いて、決定された増分毎に実行される、請求項２６の方法。
【請求項２８】
前記制約によって２次元の範囲が画定され、該制約は、０＜α＜β＜９０、及び、Δψ−９０＜β−αとして表される、請求項２６の方法。
【請求項２９】
前記メリット関数は、感度関数及び相補感度関数を含む、請求項２６の方法。
【請求項３０】
前記メリット関数は、
【数２３】
0005648049.tif 000029
と表される、請求項２９の方法。
【請求項３１】
前記メリット関数は、
【数２４】
0005648049.tif 000030
として規定される下限を有し、該メリット関数は、
【数２５】
0005648049.tif 000031
として規定される上限を有する、請求項３０の方法。
【請求項３２】
前記メリット関数の最小値が前記上限を上回るときに前記クロスオーバー周波数を変更するステップをさらに含む、請求項３１の方法。
【請求項３３】
比例・積分・微分（PID）コントローラ設計を評価するための方法であって、
前記PIDコントローラ設計の第１の自由パラメータα及び第２の自由パラメータβを特定するステップであって、該PIDコントローラ設計は、第１の固定パラメータ及び第２の固定パラメータを含み、前記第１の固定パラメータはゲインクロスオーバー周波数ωｃであり、前記第２の固定パラメータは位相マージンθｍである、ステップと、
前記第1の自由パラメータαの複数の値を特定するステップと、
前記第２の自由パラメータβの複数の値を特定するステップと、
前記第１の自由パラメータα及び前記第２の自由パラメータβの１以上の値を含む範囲を、前記第1の自由パラメータαと前記第２の自由パラメータβの最適な組み合わせを探索する技術を用いて探索するステップと、
前記第1の自由パラメータα及び前記第２の自由パラメータβの前記１以上の値の使用に関する制約を特定するステップと、
前記制約に反するか、または、ナイキストの安定判別試験をパスしない前記第１の自由パラメータα及び前記第２の自由パラメータβの値を破棄するステップと、
破棄されず、かつ、前記ナイキストの安定判別試験をパスした前記第１の自由パラメータαの値及び前記第２の自由パラメータβの値を含むペア（α、β）についてメリット関数を評価するステップであって、前記メリット関数は前記第1の自由パラメータαと前記第２の自由パラメータβの最適な組み合わせ（α、β）を探索する前記技術において動作する、ステップと、
決定されたクロスオーバー周波数ωｃについて前記メリット関数の最小値を生成するペア（α、β）を選択するステップ
を含む方法。
【請求項３４】
前記メリット関数によってα及びβの値が選択される、請求項３３の方法。
【請求項３５】
α及びβが、
【数２６】
0005648049.tif 000032
または、
【数２７】
0005648049.tif 000033
という式で使用される、請求項３４の方法。
【請求項３６】
前記第1の自由パラメータαと前記第２の自由パラメータβの最適な組み合わせを探索する前記技術が、直接サーチ法または勾配降下法を含む、請求項３３の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、35U.S.C §119に基づいて、２００９年６月５日に出願された仮特許出願番号61/184,615について優先権を主張するものであり、該仮特許出願の全内容は参照により本明細書に組み込まれるものとする。
【背景技術】
【０００２】
モデリングアプリケーション（modeling application）によって、ユーザーは、特定の次数のモデル（たとえば、１次のシステムモデル、または、時間遅延を有する１次のシステムモデル）を生成することに制約されない自由形式の環境でシステムモデルを生成することが可能になる。自由形式の環境では、ユーザーは、ほとんど全ての次数及び／またはタイプのシステムモデルを生成することが可能である。時々、ユーザーには、それらの自由形式のモデルを動作させるのが難しい場合がある。
【０００３】
たとえば、ユーザーは、自由形式の環境で開発されたシステムモデル用のコントローラを設計するのは難しいと思う場合がある。コントローラの設計が難しい場合があるのは、ユーザーが、直感的に理解できない場合があるいくつかのパラメータに関してコントローラを指定しなければならない場合があるからである。
【０００４】
ユーザーが、自由形式の環境で開発されたシステムモデル用の比例・積分・微分（PID）コントローラを実現したいと考えていると仮定する。該ユーザーは、コントローラが、位相マージンや閉ループ応答速度などの所望の特性を有すべきことを念頭に置いている場合がある。従来の応用形態では、ユーザーが、コントローラのそれらの所望の特性を、該コントローラを設計するために使用されるＰ（比例）利得、Ｉ（積分）利得、及びＤ（微分）利得の特定の値に関連付けることが必要な場合がある。所望の特性をＰ、Ｉ、及びＤの値に関連付けることはユーザーには難しい場合があることがわかっているが、これは、Ｐ、Ｉ、及びＤの利得と所望の特性（例えば、位相マージンや閉ループ応答速度）との関係が複雑で、非線形であり、及び、自由形式のモデリングアプリケーションの平均的ユーザーには直感的に理解できないからである。これらの困難のために、ユーザーは、フィードバックシステム（すなわち、コントローラとシステムの組み合わせ）の許容可能なまたは所望の応答を達成するコントローラをいつか設計できることを期待してＰ、Ｉ、及びＤの値を試行錯誤的に推測せざるを得ない状況に置かれている。
【０００５】
自由形式のモデル用のコントローラを設計する際に自由形式のモデリング環境のユーザーが直面する困難のために、ユーザーは、複雑なコントローラなどのいくつかのタイプのコントローラを設計するために自由形式の環境を利用するのをあきらめる場合がある。
【０００６】
本願に組み込まれて本願の一部を構成する添付の図面は、本発明の１以上の実施形態を図示し、及び、本明細書と共に本発明を説明するものである。
【図面の簡単な説明】
【０００７】
【図１】本発明の１実施形態を実施するための例示的なシステムを示す。
【図２】本発明の１実施形態を実施するための例示的な機能図を示す。
【図３】モデルの例示的な表現を示す。
【図４】非線形モデルを線形化するための例示的な近似技術を示す。
【図５】本発明の原理に適合するコントローラを備えることができるモデルの一般的な表現を示す。
【図６】コントローラを設計するための技術と共に使用することができる例示的な利得テンプレートを示す。
【図７】PIDコントローラを選択するための例示的なユーザーインターフェースを示す。
【図８】PIDコントローラの応答を調整するための例示的なユーザーインタラクションを示す。
【図９Ａ】PIDコントローラの応答を調整するための例示的なユーザーインタラクションを示す。
【図９Ｂ】PIDコントローラの応答を調整するための例示的なユーザーインタラクションを示す。
【図１０Ａ】本発明の１実施形態を実施するために使用することができる例示的な処理を示す。
【図１０Ｂ】本発明の１実施形態を実施するために使用することができる例示的な処理を示す。
【図１１】本発明の１実施形態を実施するための例示的なアーキテクチャを示す。
【図１２】自由形式のモデルにおいてコントローラを対話形式で設計して実施するための例示的な分散型実施形態を示す。
【発明を実施するための形態】
【０００８】
本発明の原理に整合する実施例についての以下の詳細な説明は添付の図面を参照する。それぞれの図面中の同じ参照番号は、同じもしくは類似の要素を示す。また、以下の詳細な説明は本発明を限定するものではなく、本発明の範囲は、特許請求の範囲及びその等価物によって画定される。
【０００９】
例示的な実施形態は、比例積分（PI）コントローラ及び比例積分微分（PID）コントローラを調整するための方法、コンピュータ読み取り可能媒体、及び装置を含む。いくつかの実施形態は、ユーザーが、閉ループ応答速度、閉ループ帯域幅、位相マージン（但し、これらには限定されない）などの平均的なユーザーになじみのなるパラメータを調整することによってコントローラの性能仕様を指定できるようにする。これらの性能仕様は、コントローラに対して使用されるＰ利得、Ｉ利得、及びＤ利得などのパラメータの調整とは異なる。ユーザーが、性能仕様を用いてコントローラを設計できるようにすることによって、ユーザーと、自由形式（または自由形態。以下同じ）のモデリング環境で動作するコントローラツールボックスなどのコントローラ設計アプリケーションとの間の直感的な対話（もしくは相互作用）を容易にすることができる。
【００１０】
本発明の１実施形態は、ユーザーが、コントローラのＰ利得、Ｉ利得、及びＤ利得を手動で決定及び／または調整することなく、コントローラを設計できるようにする。たとえば、１実施例は、開ループ周波数応答から動作することができ、かつ、システムの１入力１出力（SISO）ループ表現と共に動作することができる。他の実施形態は、システムが同時に１つのループで連続的に処理される場合に、多入力多出力（MIMO）システムで動作することができる。該実施形態は、プラントの次数（plant order）や設備における時間遅延の存在に制限を設けることなく動作することができる。たとえば、ユーザーは、該ユーザーが規定したロバスト性指標（たとえば、オーバーシュート、ゲインマージンなど）を満たしつつ、所望の帯域幅及び／または位相マージンなどの性能目標を達成するPIDコントローラを設計することができる。ユーザーは、閉ループ帯域幅及び位相マージンのようなパラメータを指定することによって該目標を達成することができる。これとは対照的に、従来のアプローチは、ユーザーが、満足のいく性能を最終的に得るまで、該ユーザーがＰ、Ｉ、及びＤに関する値を試行的に使用することを要求する場合がある。
【００１１】
別の実施形態は、ユーザーに、入力機構（たとえばスライダー）を含むグラフィカルユーザーインターフェース（GUI）を提供して、ユーザーが、コントローラが動作するときの位相マージン、閉ループ帯域幅、及び／または応答速度を変更できるようにすることができる。該実施形態は、ユーザーが入力機構を操作するときに、（振幅対時間曲線などの）応答曲線を表示することによって、対話形式のコントローラ設計をサポートすることができる。
【００１２】
いくつかの実施形態はコードの生成をサポートすることもでき、これによって、コントローラ用の実行可能コードを生成することができる。たとえば、ユーザーは、自動車で使用される燃料噴射システム用のPIDコントローラを規定することができる。ユーザーは、コントローラを動作させるC++コードなどのコードを生成することができ、及び、該コードを、自動車中のコントローラ（たとえば、自動車中の組込コントローラ）を動作させる処理装置に送ることができる。
【００１３】
例示的なシステム
図１は、１実施形態を実施するための例示的なシステム１００を示す。システム１００を用いて、１以上のエンティティ（構成要素など）を含むモデルを構築し、該モデル用のPIDコントローラを設計及び実装し、及び／または、該コントローラ用のコードを生成することができる。システム１００は、コンピュータ１０５、収集ロジック１１０、オペレーティングシステム１１５、モデリング環境１２０、モデル１３０、入力装置１４０、表示装置１５０、モデル表現１６０、及びプラント１７０を備えることができる。図１のシステムは例示であり、システム１００の他の実施形態は、図１の構成とは異なる構成において、より少数の装置、及び／または、より多くの装置、及び／または、同数の装置を備えることができる。
【００１４】
コンピュータ１０５は、処理動作、表示処理、通信処理などを実行する装置を備えることができる。たとえば、コンピュータ１０５は、ユーザーの代わりに処理作業を実行及び／またはサポートするために使用することが可能な、１以上の処理装置もしくは記憶装置などのロジックを備えることができる。コンピュータ１０５の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、クライアント、サーバー、メインフレーム、個人用携帯型情報機器（PDA）、ウェブ対応の携帯電話、スマートフォン、高性能センサー／アクチュエーター、または、１以上のアクティビティ（動作など）を実行し、及び／もしくは、１以上の結果を生成するための命令を実行する別の演算装置もしくは通信装置を備えることができる。
【００１５】
コンピュータ１０５は、さらに、別の装置（図１には図示していない）にデータを送信し、もしくは、該別の装置からデータを受信することによって通信動作を実行することができる。データは、１以上のネットワークで使用するのに適合させることができ、及び／または、１以上の装置で使用するのに適合させることができる実質的に任意のフォーマットを有する任意のタイプの機械読み取り可能情報とすることができる。データは、デジタル情報またはアナログ情報を含むことができる。さらに、データを、パケット化することができ、及び／または、パケット化しないようにすることができる。
【００１６】
収集ロジック１１０は、コンピュータ１０５の外部の装置からデータを取得することができ、及び、該データをコンピュータ１０５が利用できるようにすることができる。たとえば、収集ロジック１１０は、データをコンピュータ１０５が利用できるようにするために使用されるアナログ−デジタル変換器、デジタル−アナログ変換器、フィルター、マルチプレクサなどを備えることができる。コンピュータ１０５は、取得したデータを用いて、モデリング処理、PIDコントローラ設計処理などを実行することができる。
【００１７】
オペレーティングシステム１１５は、コンピュータ１０５に関連付けられているハードウェア資源及び／またはソフトウェア資源を管理することができる。たとえば、オペレーティングシステム１１５は、ユーザー入力を受信し、コンピュータ１０５を動作させ、メモリーを割り当て、システム要求を優先順位付けすることなどに関連するタスクを管理することができる。１実施形態では、オペレーティングシステム１１５を仮想オペレーティングシステムとすることができる。オペレーティングシステム１１５の実施形態は、Linux（商標）、Mac OS（商標）、Microsoft Windows（商標）、Solaris（商標）、UNIX（商標）などを含むことができる。オペレーティングシステム１１５は、さらに、コンピュータ１０５が提供することができる仮想マシン上で動作することができる。
【００１８】
モデリング環境１２０は、ユーザーが、数学、科学、工学、医学、事務（但し、これらには限定されない）などの分野に関連するタスクのシミュレーションまたはモデリング（モデル化）を実行できるようにするコンピューティング環境を提供することができることができる。モデリング環境１２０は、ユーザーが、実行可能なセマンティック（executable semantics）を有するモデルを構築できるようにする命令を実行する１以上のアプリケーションをサポートすることができる。たとえば、１実施形態では、モデリング環境１２０は、ユーザーが、実行可能なセマンティックを有する自由形式のモデル（たとえば、１次、２次、３次、４次、５次等のモデル）を生成できるようにすることができる。モデリング環境１２０はさらに、時間ベース、事象ベースなどのモデリング処理をサポートすることができる。
【００１９】
モデル１３０は、テキストモデル（textual model）またはグラフィカルモデル （graphical model）に関する情報を含むことができる。たとえば、モデル１３０は、時間ベースのモデル、事象ベースのモデル、状態遷移モデル、データフローモデル、コンポーネント図（component diagram）、エンティティフロー図、方程式ベース言語図（equation based language diagram）などとすることができるテキストモデルまたはグラフィカルモデルに関する情報を含むことができる。モデル１３０のグラフィカルな実施形態は、処理を実行するための実行可能コードを表すエンティティ（たとえば、ブロックやアイコンなど）を含むことができる。これらのエンティティ用のコードを実行して、モデルを使用するシミュレーションを実行することができる。モデル中の１つのエンティティから別のエンティティにデータを転送するための経路を表すラインを用いてエンティティを互いに接続することができる。
【００２０】
入力装置１４０はユーザー入力を受け取ることができる。たとえば、入力装置１４０は、ユーザーの動きや行為を、コンピュータ１０５が解釈できる信号またはメッセージに変換することができる。入力装置１４０は、キーボード、ポインティングデバイス、バイオメトリック装置、加速度計、マイクロホン、カメラ、触覚装置（またはハプティック装置）（但し、これらには限定されない）などを含むことができる。
【００２１】
表示装置１５０はユーザーに情報を表示することができる。表示装置１５０は、陰極線管（CRT）、プラズマディスプレイ装置、発光ダイオード（LED）表示装置、液晶表示（LCD）装置などを含むことができる。必要であれば、表示装置１５０の実施形態を、（たとえばタッチスクリーンを介して）ユーザー入力を受け取るように構成することができる。１実施形態では、表示装置１５０は、ユーザーに対して、１以上のグラフィカルユーザーインターフェース（GUI）を表示することができる。GUIは、モデル１３０、及び／または、他のタイプの情報を含むことができる。
【００２２】
モデル表現１６０は、モデル１３０によって提供される仮想表現を含むことができる。たとえば、モデル表現１６０をユーザーに対して表示することができ、該モデル表現１６０は、ラインによって接続された複数のエンティティ（構成要素など）を含むことができる。モデル１３０が実行されると、モデル表現１６０は、たとえば、該モデルを通るデータの流れを示すように変化することができる。
【００２３】
プラント１７０は、コンピュータ１０５にデータを提供する１以上の装置を含むことができる。たとえば、プラント１７０は、加速度計、熱電対、光−電気トランシーバー、歪みゲージなどのセンサーを用いてモニターされるエンジン系（エンジンシステムともいう）を含むことができる。１実施形態では、収集ロジック１１０は、プラント１７０からアナログもしくはデジタル形式の信号を受け取ることができ、及び、該信号をコンピュータ１０５が使用するのに適した形式に変換することができる。
【００２４】
例示的なモデリング環境
図２は、モデリング環境１２０の例示的な実施形態を示す。モデリング環境１２０は、シミュレーションツール２１０、エンティティライブラリ２２０、インターフェースロジック２３０、コンパイラ２４０、コントローラロジック２５０、オプティマイザ２６０、シミュレーションエンジン２７０、レポートエンジン２８０、及び、コードジェネレータ２９０を含むことができる。図２に示されているモデリング環境１２０の実施形態は例示であって、モデリング環境１２０の他の実施形態は、本発明の思想から逸脱することなく、より多くのまたはより少ないエンティティを含むことができる。
【００２５】
シュミレーションツール２１０をモデルを構築するためのアプリケーションとすることができる。シュミレーションツール２１０を用いて、実行可能なセマンディックを有するテキストモデルもしくはグラフィカルモデルを構築することができる。グラフィカルモデルの場合には、シミュレーションツール２１０を用いることによって、ユーザーは、モデルのエンティティ及び／または接続の生成、変更、診断、削除などができる。シミュレーションツール２１０は、図１または図２に示されている他のエンティティと相互作用して、ユーザー入力を受け取り、モデルを実行し、結果を表示し、コードを生成するといったことなどができる。
【００２６】
エンティティライブラリ２２０は、ユーザーが、モデル表現１６０を含む表示ウィンドウにドラッグ・アンド・ドロップすることができるコードモジュールまたはコードエンティティ（たとえば、ブロック／アイコン）を含むことができる。グラフィカルモデルの場合は、ユーザーはさらに、接続を用いてエンティティを結合して、プラント１７０などのシステムのグラフィカルモデルを生成することができる。
【００２７】
インターフェースロジック２３０は、モデリング環境１２０が、装置（たとえば目標環境）またはソフトウェアモジュール（たとえば、アプリケーションプログラムインターフェース）にデータ及び／もしくは情報を送信し、または、該装置またはソフトウェアモジュールからデータ及び／もしくは情報を受信するのを可能にすることができる。１実施形態では、インターフェースロジック２３０は、収集ロジック１１０をモデリング環境１２０に接続することができる。
【００２８】
コンパイラ２４０は、モデルを実行可能な形式にコンパイルすることができる。コンパイラ２４０によって生成されたコンパイルされたコードをコンピュータ１０５で実行して、モデリング結果を生成することができる。１実施形態では、コンパイラ２４０は、モデルに関連するエラーを診断するためのデバッグ機能を提供することもできる。
【００２９】
コントローラロジック２５０を用いて、モデル１３０中にコントローラを生成して実施することができる。たとえば、コントローラロジック２５０は、エンティティに、モデル表現１６０中のコントローラのタイプを表す機能を提供することができる。モデルが実行されると、コントローラロジック２５０は、モデル表現１６０中のエンティティと相互作用することによって該モデルに対する制御処理を実行することができる。１実施形態では、コントローラロジック２５０は、モデル表現１６０中のコントローラ（たとえばPIDコントローラ）を実施する制御アルゴリズムを含むことができる。コントローラロジック２５０の実施形態を、独立型または分散型で動作するように構成することができる。
【００３０】
オプティマイザ２６０は、モデル用のコードを最適化することができる。たとえば、オプティマイザ２６０は、コードが最適化されていない場合よりも、たとえば、コードがより少ないメモリーを占有するようにし、また、コードがより効率的に実行するようにし、また、コードがより速く実行するようにするために、コードを最適化することができる。オプティマイザ２６０は、コントローラロジック２５０の最適化を実行して、たとえば、コントローラのパラメータを最適化することもできる。１実施形態では、オプティマイザ２６０は、コンパイル２４０、コントローラロジック２５０、コードジェネレータ２９０などと共に動作することができ、または、オプティマイザ２６０をそれらに組み込むことができる。
【００３１】
シミュレーションエンジン２７０は、モデルを実行してシステムをシミュレートするための処理を実行することができる。シミュレーションエンジン２７０を、ユーザーの好みまたはシステム環境設定に基づいて、単独でシミュレーションを実行するように構成することも、遠隔シミュレーションを実行するように構成することもできる。
【００３２】
レポートエンジン２８０は、モデリング環境１２０中の情報に基づいてレポートを生成することができる。たとえば、レポートエンジン２８０は、PIDコントローラが設計使用を満たしているか否かを示すレポート、コントローラが安定して動作するか否かを示すレポート、モデルが適正にコンパイルされているか否かを示すレポートなどを生成することができる。レポートエンジン２８０の実施形態は、表示装置１５０で表示するための電子形式で、及び／または、ハードコピー形式で、及び／または、記憶装置に格納するのに適した形式でレポートを生成することができる。
【００３３】
コードジェネレータ２９０は、モデルからコードを生成することができる。１実施形態では、コードジェネレータ２９０は、第１の形式でコードを受け取ることができ、及び、該コードを該第１の形式から第２の形式に変換することができる。１実施形態では、コードジェネレータ２９０は、モデルの少なくとも一部から、ソースコード、アセンブリ言語コード、バイナリーコード、インターフェース情報、コンフィギュレーション情報、性能情報、タスク情報などを生成することができる。たとえば、コードジェネレータ２９０は、C、C++、SystemC（システムシー）、Java、Structured Text（構造化テキスト）などによるコードをモデルから生成することができる。
【００３４】
コードジェネレータ２９０の実施形態はさらに、いくつかまたは全てのグラフィカルモデルからの表現及び／または拡張機能に基づいて（たとえば、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：統一モデリング言語）を生成することができる。１実施形態では、オプティマイザ２６０は、コードジェネレータ２９０と相互作用して、パラメータ（たとえば、メモリー使用（使用量など）、実行速度、マルチプロセッシングなど）にしたがって最適化されたコードを生成することができる。
【００３５】
本発明の実施形態を用いて、実質的に任意の次数及び／または遅延を有する非線形モデルで使用するためのコントローラを対話形式で設計することができる。精密な線形化技術を用いて非線形モデルの少なくとも一部分を表すことができる線形時変モデルを生成するように、実施形態を構成することができる。
【００３６】
例示的なモデル表現
図３は、モデル３００の例示的な表現を示す。モデル３００は、ユーザーによって規定された速度とすることができる所望の速度３１０で移動する車両の速度を制御するためのシステムを例示するものである。モデル３００において、走行制御システム３３０を自動車３５０用に設計することができる。所望の速度３１０と実際の速度を比較して速度誤差３２０が得られる。速度誤差３２０を走行制御システム３３０に入力することができ、走行制御システム３３０は自動車の速度を調整することができる。走行制御システム３３０は、アクセル位置命令３４０と通信して、アクセルペダルの位置を設定し、これによって、自動車３５０の速度を調整する。自動車３５０は、再び、所望の速度３１０と比較するために、実際の速度の形式で、速度計を通じて出力フィードバックを提供することができる。
【００３７】
図３では、実際の速度は、フィードバック信号として示されている。実際の速度を用いて、所望の速度３１０と実際の速度との差である速度誤差３２０を計算する。走行制御システム３３０は、速度誤差３２０に応答して、アクセル位置命令３４０を計算して、自動車３５０の速度を変更するように設計される。
【００３８】
走行制御システム３３０を設計するためには、自動車３５０の挙動が既知であることが必要とされる場合がある。走行制御システム３３０を成功裏に設計するためには、さらに、ある時間期間にわたってアクセルペダルの位置が自動車３５０の速度にどのような影響を与えるかについての理解が要求される場合がある。自動車３５０の挙動を正確に理解することによって、ロバストな（すなわち頑強な）走行制御システム３３０の設計が可能になる。いくつかの状況では、自動車の挙動をシステムモデルにおいて取得乃至把握することができる。
【００３９】
いくつかの場合では、走行制御システムなどの物理的システムの正確なモデルは、非常に複雑な記述を必要とする。たとえば、自動車は非線形システムでありえ、そのような非線形システムに対しては、分析及び制御設計技術が利用できない場合がある。たとえば、非線形の自動車をシミュレートすることを望んでいるユーザーは、該自動車を数値的に表すために近似を使用することが必要になる場合がある。１例として、非線形の自動車モデルを線形化などの技術を用いて近似することができる。線形化を、自動車モデルの１つの部分（たとえば１つの動作ポイント）、または、自動車モデルの複数の部分に適用することができる。モデルの複数の部分に線形化を適用する場合には、それらの近似をゲインスケジューリング技術を用いて組み合わせることができるが、これは、種々の動作入力において得られた線形化されたモデルを組み合わせて、自動車モデルに対する１つの近似を得ることにより行うことができる。
【００４０】
さらに図３を参照すると、モデル３００が該モデルのある部分にわたって線形化されると、線形化ポイント（linearization point）を選択することができる。たとえば、第１の線形化ポイントを、アイコンを用いて特定することができ、第２の線形化ポイントを、線形化ポイント３８０を用いて特定することができる。線形化ポイント３７０及び３８０を用いて、線形化するモデル３００の部分を特定することができる。いくつかの実施形態では、ユーザーが線形化ポイント３７０、３８０を選択でき、または、それらの線形化ポイントを（たとえばユーザー入力を要することなく）プログラムで決定することができる。開ループポイント３９０を指定することができ、該開ループポイント３９０は、フィードバックループ３６０における開いた部分、すなわち、切断箇所を示すことができる。フィードバックループ３６０の切断は、モデル３００の部分を線形化するのに役立ちうる。たとえば、線形化ポイント３７０、３８０、及び開ループポイント３９０を用いて、自動車モデルだけ（すなわち、閉ループ及びコントローラのない）の線形化を指定することができる。
【００４１】
線形化ポイント３７０、３８０、及び、開ループポイント３９０が選択されると、動作ポイントを選択することができる。動作ポイントを、該動作ポイントを中心としてモデル３００が線形化されるところのポイントとすることができ、該動作ポイントは、ある特定の時間におけるモデル３００の状態を画定乃至定義することができる。
【００４２】
たとえば、車のエンジンのモデルでは、動作ポイントは、典型的には、エンジン速度、スロットル角度、エンジン温度、周囲の大気条件などの変数によって記述される。モデルの挙動、すなわち、モデルの「力学」として典型的に知られているものは、一般的には動作ポイントの値の影響を受ける。たとえば車の場合には、エンジンの挙動は、車が高度が高い場所で動作しているか低い場所で動作しているかで大きく異なりうる。この場合、高度は車のエンジンの動作ポイントの一部である。線形モデルは、システムの動作ポイント付近の小さな領域において有効となりうる近似である。近似は、動作ポイントの近くでは良好であるが、それから離れると妥当でなくなる場合がある。３０００ft（フィート）で動作するように構成された車の線形モデルは、３００ftに近い高さでは非常に精度が高いであろうが、該車が、たとえば、海面の高さを走行するときには精度は落ちるであろう。
【００４３】
非線形関数に適用された線形近似技術を示す１例を図４に示す。
【００４４】
図４は、ｙ＝ｘ２として示される例示的な非線形関数４０５の場合の動作ポイント４４０を示す。線形近似４１０がｘ＝０．３でなされる場合には、元の関数を、
【数１】
0005648049.tif 000002
として近似することができる。この線形近似４１０は直線の式である。元の関数は、この線形近似とｘ＝０．３で交差する。ｘ＝０．３の付近の領域では、この近似は非常に正確であるが、ｘがｘ＝０．３からさらに遠ざかると精度が非常に悪くなる。一般に、複雑な物理的システムの線形化の場合には、近似は、選択された動作ポイントの近くでは正確である。したがって、動作ポイントの仕様によって、線形化によって与えられる結果が直接的に決定される。
【００４５】
いくつかの実施例では、単一の線形近似、たとえば近似４１０を用いて、非線形システムを表すことができる。他の状況では、２つ以上の線形近似を用いて非線形システムの複数の部分を表すことができる。たとえば、近似４１０、近似４２０、及び近似４３０を用いて、３つの動作ポイントにおける非線形関数４０５を近似することができる。これら３つの動作ポイント用に設計されたコントローラをゲインスケジューリング技術を用いて組み合わせることによって、非線形システム用のコントローラ全体を得ることができる。
【００４６】
例示的な制御技術
本発明の実施形態を実施するための技術を以下で説明する。１入力１出力（SISO）フィードバックループを有するシステムの一般化された表現を図５に示す。たとえば、図５のシステムを、図３の自動車走行制御システムの一般化された表現とすることができる。図５では、PIDコントローラ５２０は走行制御システム３３０を表すことができ、プラント５２５は自動車３５０を表すことができる。
【００４７】
図５の実施例では、プラント５２５を線形時不変モデルとすることができ、コントローラ５２０をPIDコントローラとすることができ、信号Ｒ ５０５は基準信号を表すことができ、信号５１５は、ｅ＝ｒ−ｙと表すことができる誤差信号を表すことができ、信号Ｄ ５３０は出力外乱を表すことができ、信号Ｙ ５４０は出力を表すことができる。
【００４８】
ユーザーは、コントローラ５２０を設計するときには、コントローラ５２０が、プラント５２５と共に動作するときに達成すべき目標を有することができる。たとえば、ユーザーは、閉ループの安定度、ゼロ定常状態誤差、（たとえば、ステップ入力ｒまたはｄに対する応答ｙが既定の時間間隔内で上昇して安定する）応答時間、ロバスト性要件（たとえば、ステップ応答が小さなオーバーシュートを有し、ゲインマージンが６dBで位相マージンが４５°などのようにゲインマージン及び位相マージンが十分に大きい）を指定することができる。
【００４９】
調整可能なパラメータＰ、Ｉ、Ｄ、及びＮを有する標準的な連続時間PIDコントローラを、
【数２】
0005648049.tif 000003
で表すことができる。
【００５０】
上記のうちの１つなどの設計目標を満たすPIDコントローラを設計するために従来の技術を適用するユーザーは、Ｐ、Ｉ、Ｄ、及びＮを見出すことが必要とされる場合がある。ここで、Ｎは周波数範囲を表し、微分項がアクティブ、すなわち、（１＋ｓ／Ｎ）の形式であるときには、微分フィルターの極位置を表す。コントローラの４つのパラメータの決定には、たとえば、４次元（４Ｄ）空間のコンピュータによる大量の計算を要する（すなわち計算集約型の）探索が必要になりうる。たとえば、Ｐ、Ｉ、Ｄ、及びＮを見つけるための４Ｄ空間の探索には、各次元が１００個のデータ探索ポイントを含む場合には、１００４（100,000,000）個のデータポイントをテストすることが必要になるだろう。この結果、４Ｄ探索は、（速度が）遅すぎて、対話型のアプリケーション（たとえば、ユーザーが、あるモデル用のPIDコントローラを対話形式で設計することを可能にするアプリケーション）をサポートできない場合がある。
【００５１】
例示的な実施形態は、対話型PID設計アプリケーションをサポートできるように、PIDパラメータの迅速な調整を容易にすることができる。実際に、いくつかの実施形態は、ユーザーが、入力を変更して、直ちに（すなわち、典型的なユーザーに不便を感じさせる遅延を生ずることなく）、変更されたコントローラを反映した表示を見ることができるように、リアルタイムで動作することができる。たとえば、１実施形態では、開ループ応答の利得（ゲイン）L＝GCが最初に０dBラインと交差する周波数ωｃを固定乃至調整することができる。この実施形態では、ωｃは閉ループ帯域幅に直接関係し、該閉ループ帯域幅は、コントローラの応答速度に直接関係する。該実施形態はまた、クロスオーバー周波数（または交差周波数）における所望の位相マージンであるθｍを固定乃至調整することができる。θｍはまた、コントローラに関連するオーバーシュートの大きさを部分的に制御することができる。この実施形態ではさらに、所与の位相マージン目標θｍを得るためにωｃを調整すること、または、所与のクロスオーバー周波数目標ωｃを得るためにθｍを調整することが可能である。
【００５２】
ωｃ及びθｍが選択されると、ωｃにおけるゲインクロスオーバー周波数、及び、ωｃにおける位相マージンθｍでPIDをパラメータ化することによって、PIDコントローラの２つの残りのパラメータを調整することができる。このパラメータ化を、
【数３】
0005648049.tif 000004
と記述することができる。ここで、角度ψｚ、α、βは、０°と９０°の間の値をとる変数である。周波数ωｃにおけるPIDに起因する全位相シフトは、
【数４】
0005648049.tif 000005
によって与えられる。尚、本明細書及び特許請求の範囲では、表記の便宜上、
【数６０】
0005648049.tif 000006
をψと記載している。
【００５３】
例示的な実施形態は、開示した制御技術をコンピューティング装置に実装するように適合化される。それらの実施形態では、方程式を離散時間表現で表して、それらの方程式をコンピューティング装置で実施することが必要になりうる。たとえば、式２のパラメータ化を、離散時間表現で、
【数５】
0005648049.tif 000007
と書き直すことができる。ここで、Tsはサンプリング時間である。式４では、このパラメータ化は、実数ゼロ並びに角度α及びβである自由パラメータを有するPIDも考慮される。式4をさらに参照すると、Ｃは、ωｃにおいて単位利得（unit gain）を有する３つのファクターの積であり、この場合、第１のファクターは積分動作であり、第２のファクターは、Ｐ及びI項に起因する位相進みを捕捉乃至表し、第３のファクターはＤ及びＮ項に起因する追加の位相進みを捕捉乃至表す。式４において、第３のファクターは、０＜α＜β＜９０のときには、１つの実数ゼロ及び１つの実数極を有する位相進み回路（lead network。または微分回路）である。第３のファクターはまた、β＜αのときに位相遅れをもたらすことができる。１実施形態では、第３のファクターを除去して、ωｃにおけるゲインクロスオーバー及びωｃにおける位相マージンθｍを有する独特のPIコントローラを作製することができる。第１のファクターを省くと（積分動作のない）PDコントローラのパラメータ化が得られ、第２のファクターを省くとＰ項（比例動作）をゼロに設定することになる。したがって、本明細書に記載されている技術を用いて、P、PI、PD、及びIDなどのように、PIDNコントローラを任意に特化するように調整することができる。
【００５４】
所定の条件もしくは想定が満たされるときには、α及びβの適切な値を例示的実施形態で使用するために選択することができる。たとえば、ωｃが第１のゲインクロスオーバーであり、応答速度がωｃの関数であり、ωｃが、性能目標（たとえば、閉ループ安定性及び十分なロバスト性）を満たすように選択されるときには、α及びβの適切な値を選択することができる。
【００５５】
閉ループ安定性及び十分なロバスト性を用いてα及びβの適切な値を選択するときには、いくつかの実際の問題に遭遇しうる。たとえば、閉ループ安定性のテストは、それが閉ループの極を明示的に計算することによって実施されるときには、コンピュータによる大量の計算を要する（すなわち、計算コストが高い）場合がある。そして、αとβの各々による設計の価値のランク付けは難しい場合がある。なぜなら、所望の特徴（たとえば、オーバーシュートが小さい、リンギングがない、整定時間が短いなど）を定量化することは難しい場合があり、及び／または、該所望の特徴は、典型的にはコンピュータによる大量の計算処理である閉ループステップ応答の計算を要する場合があるからである。
【００５６】
例示的な実施形態は、周波数領域の情報（たとえば、開ループボード応答）を用いて、選択された設計目標を達成し、及び、一貫したコントローラ設計を提供することによって、従来技術に付随する欠点を回避する。例示的な実施形態が、安定性及びロバスト性に関してα、βの設計値を速やかに評価できる１つの理由は、例示的な実施形態で使用される開ループボード応答が、（閉ループステップ応答の計算や、閉ループ安定性のテストなどに比べて）コンピュータによる大量の計算を要しない（すなわち計算コストが安い）ことである。これらの計算コストが安い計算によって、従来技術に比べて速度が向上する。かかる速度の向上により、典型的な実施形態は、対話型のPID評価や実質的にリアルタイムでの（たとえば、典型的なユーザーに不便を感じさせる遅延を生じることなく）動作のチューニングなどの典型的なユーザーのワークフローをサポートすることができる。
【００５７】
例示的な実施形態は、ナイキスト基準を再解釈して開ループボード応答から閉ループ安定性を評価する技術を利用することによって対話型のワークフローをサポートすることができる。たとえば、ナイキストの安定判別試験を次のようにすることによって特徴付けることができる。
L(s)を開ループ伝達関数とし、PをL(s)の不安定な（右半面の）極の数とし、
ψ(ω)を、ラジアン単位でのL(jω)の位相の任意の連続表現とし、
(ω０,ω１,…,ωｋ)をゲインクロスオーバー周波数の順序集合とし、この場合、|L(jω)|＝１であり、L(jω)のゲインがωｋで減少しているときにはｋは偶数とし（すなわち、DCゲインが１より小さいときには、該シーケンスはω１から開始する）、
(ψ０,ψ１,…, ψｋ)を周波数(ω０,ω１,…,ωｋ)におけるψ(ω)の値とし、
ｍ０及びｍ∞を、それぞれ、０近傍と無限大におけるL(s)の勾配とし（たとえば、
【数６】
0005648049.tif 000008
は、s→０のときは有限）、
δ０を、|L(０)|＞１のときは１、それ以外のときは０とし、
δ∞を、|L(∞)|＞１のときは１、それ以外のときは０とする。
【００５８】
上記条件が満たされる場合には、閉ループ伝達関数１／(１＋L(s))は、
【数７】
0005648049.tif 000009
のときに限り安定である。ここで、μ( )は、
【数８】
0005648049.tif 000010
によって定義される整数値関数である。
【００５９】
式５は、ゲインクロスオーバー周波数(ω０,ω１,…,ωｋ)における位相角(ψ０,ψ１,…, ψｋ)に関する安定性試験を提供する。プラントG及び選択されたPID構造から、右側の量は既知である。この情報が与えられると、以下のａ〜ｅを確かめることができる。
ａ．左側は常に偶数なので、右側も偶数でなければならない。左側が奇数のときには、δ０とδ∞が明確に異なる場合に、フィードバック符号を切り替えることによって安定性を回復することができる。それ以外の場合にはPIDを安定化させることはできない。
ｂ．2γが、調整後の右側の値であるときは、安定条件は、
【数９】
0005648049.tif 000011
である。
ｃ．ゲインクロスオーバー周波数ω０が１つだけ存在するときには、
【数１０】
0005648049.tif 000012
であり、これは、開ループ位相角
【数１１】
0005648049.tif 000013
が、
【数１２】
0005648049.tif 000014
の間隔で配置されていなければならないことを示している。位相マージン要件を含めると、この間隔は、
【数１３】
0005648049.tif 000015
まで狭くなる。
ｄ．複数のゲインクロスオーバー周波数ω０,…,ω２ｍ−１,ω２ｍが存在するときには、
【数１４】
0005648049.tif 000016
を満たす無数のやり方がある。
ｅ．実際には、クロスオーバー周波数の追加のペアω２ｋ−１,ω２ｋは、一般に、閉ループ安定性には寄与しない、すなわち、μ(ψ２ｋ−１)＝μ（ψ２ｋ）と仮定することができる。
【００６０】
典型的な制御システムでは、安定性を、高周波数作動ではなく低周波数作動によって達成することができる。この制約の下では、複数のクロスオーバー周波数が存在する場合に安定となるための十分条件は、（１）第１の（または最初の）クロスオーバー周波数ω０における開ループ位相各ψ(ω０)が、
【数１５】
0005648049.tif 000017
の間隔で配置されていること、及び、（２）クロスオーバーの連続するペアω２ｋ−１,ω２ｋについて、位相角がμ(ψ２ｋ−１)＝μ（ψ２ｋ）を満たすことである。等価的には、ループゲインが１より大きい場合には(正味の)１８０°位相交差が存在しないことである。
【００６１】
例示的な実施形態は、閉ループ安定性及び位相マージン要件θｍを評価する技術を含むことができる。この技術を、整数γを計算し（この計算は１回だけ実行される場合がある）、及び、適切な周波数グリッドωＧに対してプラントＧのゲイン（利得）及び畳み込まれていない位相（unwrapped phase。または、つなぎあわされた位相）を計算する（この計算も１回だけ実行される場合がある）ことによって実行することができる。この場合、候補であるPIDコントローラについて、この技術は、
ｆ．プラントのゲイン及び位相に対するコントローラの寄与を重ね合わせることによって開ループの大きさ及び位相ψ(ω)を計算し、
ｇ．ゲインクロスオーバー周波数ω０,…,ω２ｍ−１,ω２ｍを特定して、グリッドωＧに対する線形補間を用いて対応する位相値ψ０,…,ψ２ｍ−１,ψ２ｍを計算し、
ｈ．ψ０が、間隔
【数１６】
0005648049.tif 000018
で配置されていることを確認し、
ｉ．ｋ＝１,…,ｍの場合にμ(ψ２ｋ−１)＝μ（ψ２ｋ）であることを確認し、
ｊ．位相マージンが、追加のクロスオーバー周波数ω１, ω２,…,ω２ｍ−１,ω２ｍにおいて少なくともθｍであることを確認する
ことができる。
【００６２】
候補であるPIDコントローラに対する上記のテストは、ωＧに相当するベクトルに対する操作（または演算）を含むことができる。多くの場合に、それらのベクトルを数百のポイントから構成することができ、これによって、該テストを、時間ベースの自由形式モデリング環境（たとえば、Simulink（シミュリンク）モデリング環境）などのコンピューティング環境で迅速に実行することが可能になる。たとえば、１実施例では、該テストを、MATLABコンピューティング環境やMATLAB準拠のコンピューティング環境などの技術計算環境で迅速に実行することによって、対話型のコントローラ設計作業を例示的な実施形態によってサポートすることができる。
【００６３】
上記のナイキストの安定判別試験から、第１の（または最初の）クロスオーバー周波数ω０における開ループ位相ψ０は、
【数１７】
0005648049.tif 000019
の間隔で配置されなければならない。プラントが位相ψｃ(ω０)を有し、PIDが最大９０°だけ該位相を変化させることができると仮定すると、次の３つの状況が生じうる。
（１）PIDは、該位相を所望の範囲に移動させることができない。これは、クロスオーバー周波数ω０が許容されない状況を表している。
（２）ψｃ(ω０)−90がすでに要求された間隔内にある。この状況では、第２のPIDファクターから要求される最小位相進みはΔψ＝０である。
（３）ψｃ(ω０)−90は要求された間隔内にはない。この状況では、PIDコントローラは、非ゼロ位相進みΔψを提供しなければならない。
【００６４】
Δψが与えられると、ナイキストの安定判別試験（ナイキストの安定判別法ともいう）を満足させるために、及び／または、ロバスト性及び設計上の利点を最大にするために、自由パラメータα及びβを選択することが必要である。０＜α＜β＜９０及びΔψ−90＜β−αという制約を適用することによって、特定のアプリケーション（または用途）に対して最良の（α、β）の組み合わせを含むことができる（α、β）の組み合わせにおいて、ホーム位置に粗くグリッドを配置することができる2D（２次元）範囲が画定される。例示的な実施形態は、ロバスト性及び（α、β）設計値の品質をランク付けするために１以上のメリット関数（または設計クライテリア。以下同じ）を使用することができる。たとえば、１実施形態は、１以上の既定の基準にしたがってロバスト性及び各（α、β）設計値の品質をランク付けすることができる。
【００６５】
本明細書に開示されている例示的な技術は、感度関数S＝１／（１＋GC）及び補関数（complementary function。または共約関数）Ｔ＝GC／（１+GC）を含む複合メリット関数を利用することができる。|１＋GC(jω)|は、臨界点（−１、０）までのオープンループ応答の距離であるので、|S(jω)|の大きさは、L(jω)が臨界点にどれだけ近づいているか、及び、フィードバックループのロバスト性の評価基準を提供する。同様に、|T(jω)|の大きさの程度は、どれだけの数もしくは大きさのオーバーシュートが閉ループ応答に現れるかに関連する。本明細書に開示されている技術を利用するときには、Ｓ及びTの大きさを、理想値
【数１８】
0005648049.tif 000020
に近い状態に維持することが望ましい場合がある。
【００６６】
式９の値を、開ループが純粋な積分器、すなわち、L(ｓ)＝ω０／ｓである状況に対応付けることができる。具体的には、ゲイン| T(jω)|は、０からω０の近傍までの周波数範囲において１に近くなければならない。１より大きいゲイン（利得）はオーバーシュートを生成する可能性があり、１より小さいゲインは動力学的に遅く、安定するまで時間がかかる。式９を参照すると、ゲイン| T(jω)|はω０を超えたところでロールオフする。ゲイン値が、ω＞＞ω０のある周波数ωで１に近づくと、閉ループ応答は、その周波数でリンギングを生じる可能性がある。
【００６７】
例示的な実施形態は、たとえば、対話型のモデリングアプリケーションをサポートするために使用されるPIDコントローラに関連付けられた設計目標をバランスさせるメリット関数を利用することができる。適切なメリット関数は、設計目標を満たす設計の開発を容易にすることができる。１実施形態で使用できる例示的なメリット関数を次のように書くことができる。
【数１９】
0005648049.tif 000021
ここで、下限Tmin及び上限Tmaxは次のように選択される。
【数２０】
0005648049.tif 000022
【００６８】
図６は、上記式１１のTmin (ω)及びTmax (ω)のゲインテンプレートを示す。図６を参照すると、Tmax(ω)は線６０５で表されており、Tmin (ω)は線６１０で表されている。
【００６９】
上記式１０を参照すると、角度α及びβは、ナイキストの安定判別試験をパスするメリット関数Fが最小になるように選択される。Fの値が０．１より小さいときに、十分な調整を一般的に達成することができる。例示的な実施形態は、最適な（α、β）の組み合わせを探索する技術を利用することができる。探索技術の例には、ブルートフォースグリッディング（brute-force gridding）、直接サーチ法、もしくは、勾配降下法（但し、これらには限定されない）が含まれる。
【００７０】
例示的な実施形態は、５°ずつ増やしながら（α、β）の範囲［０，４５］×［４５，９０］をグリッド（全部で１００個のポイント）に配置し（すなわちそれらの範囲をグリッド化し）、Δψ−９０＜β−αという制約を満たさないか、またはナイキストの安定判別試験に合格しないポイント（α、β）を破棄する粗いグリッディング（coarse gridding：粗いグリッド配置）技術を用いて満足のゆく結果を生成することができる。このグリッディング技術は、残りのポイントにおいてメリット関数Fを評価して、Fの最小値（この最小値をFminと呼ぶ）を生じるポイントを選択することができる。
【００７１】
所与のクロスオーバー周波数ω０に対するFminの値は、対応する帯域幅を有するPIDの実現可能性（もしくは実行可能性）を示す。Fminが０．１よりずっと大きいときは、PIDの性能／ロバスト性は貧弱となる場合がある。この状況では、クロスオーバー周波数ω０を調整することが必要になりうる。いくつかの状況では、（プラントの固有周波数ωＴに基づく）目標周波数の近傍における粗い探索でも、この性能／ロバスト性の問題を解決するのには一般的に十分である。たとえば、Fminを、間隔［０．０１ωＴ，  １００ωＴ］に及ぶ１０個の候補であるクロスオーバー周波数について計算することができる。次に、許容可能なFmin値を有するωＴに最も近いクロスオーバー周波数を選択することができる。
【００７２】
例示的なユーザーインターフェース
以下に説明するユーザーインターフェースは、上述のアルゴリズムを用いて高速で対話型のワークフローをユーザーに提供することができる。これらの高速で対話型のワークフローは、制御アルゴリズムの速度によって、及び、ユーザーが、典型的なユーザーになじみのある用語を用いてPIDコントローラの特性乃至特徴を指定することができるようにすることによってサポートされる。
【００７３】
図７は、PIDコントローラを指定するための例示的なユーザーインターフェースを示す。１実施形態では、モデリング環境１２０は、コントローラロジック２５０を介してユーザーにユーザーインターフェース７００を提供することができる。たとえば、ユーザーは、モデル表現１６０で作業をしている場合があり、プラント１７０などのシステムのモデルで使用するためのPIDコントローラを生成することを望んでいる場合がある。ユーザーは、ポインティングデバイスを用いてアイコンを選択することができ、表示装置１５０を介してユーザーにインターフェース７００を提供することができる。
【００７４】
インターフェース７００は、ユーザーが生成中のPIDコントローラに関する情報を提供する識別子７０５を含むことができる。１実施形態では、ユーザーは、たとえばダブルクリックすることによって、走行制御システム３３０を選択し、その場合、インターフェース７００が表示装置１５０に表示されるようにすることができる。他の実施形態は、複数のインターフェース７００を含むことができ、この場合、インターフェース７００の各々のインスタンスは、複数のコントローラを含んでいるモデル中の１つのコントローラに関連付けられている。
【００７５】
図７を参照すると、選択フィールド７１０は、ユーザーが、PIDコントローラやPIコントローラなどのコントローラのタイプを選択できるようにすることができる。ドメインフィールド７１５は、ユーザーが、コントローラが連続時間コントローラであるか離散時間コントローラであるかを選択できるようにすることができる。インターフェース７００は、コントローラの種々の設定（値）に関する情報を表示し、及び／または、受け取るための１以上のページ７２０を含むことができる。たとえば、アクティブなページを前面に表示して、Ｐ、Ｉ、及びＤの係数、コントローラの形式乃至形態（たとえば並列コントローラ）、及び、指定された微分フィルターのフィルター係数に関する情報をユーザーに提供することができる。インターフェース７００は、アクティブではない他のページを含むことができ、タブ７２５を用いてそれらのページを識別することができる。ユーザーは、タブ７２５を選択して、該タブに関連するページをアクティブにすることができる。
【００７６】
インターフェース７００はまた、インターフェース７００中の情報、及び／または、コントローラが接続されているモデル中で利用可能な情報を用いて該コントローラを調整するチューニングボタン７３０を含むことができる。１実施形態では、チューニングボタン７３０を選択し、コンピュータ１０５を用いてＰ、Ｉ、及びＤのゲインを自動的に生成することができる。たとえば、１実施形態では、ゲインを、デフォルト時の設計性能仕様を用いて生成することができる。該実施形態はさらに、デフォルト時の設計性能仕様を用いて初期設計に基づくインターフェース７００を開くことができる。チューニングボタン７３０はさらに、コントローラ設計アルゴリズムが、コントローラブロックの入力及び出力に接続されているモデルを自動的に線形化するようにすることができる。１実施形態では、チューニングボタン７３０が選択されているときにモデル全体を線形化することができる。図３において、チューニングボタン７３０を選択すると、図３の加算ブロック（＋及び−）によって自動車３５０の線形モデルに−１を乗じる結果となる。
【００７７】
初期条件フィールド７３５は、ソース（たとえば、内部ソースまたは外部ソース）、積分器、及び／または、フィルターに関する情報を提供することができる。インターフェース７００はまた、インターフェース７００に情報を格納し、インターフェース７００を閉じ、インターフェース７００からユーザー選択を取り消し、ユーザーにインターフェース７００に関する支援（ヘルプ）を提供し、及び／または、インターフェース７００を介して表示された情報をモデルに適用するためのボタン７４０を含むことができる。
【００７８】
図８は、PIDコントローラの応答を調整するためのユーザーインターフェースの一例を示す。インターフェース８００を用いて、コントローラの応答に関する情報を表示し、及び、コントローラに関連するユーザー入力を受け取ることができる。１実施形態では、インターフェース８００は、ユーザーが選択することができるアクションを表すアイコンを含むことが可能なツールバー８０５を含むことができる。たとえば、ズームアイコンを用いて、ユーザーは、コントローラに関連するグラフの一部を拡大（ズームイン）することができる。
【００７９】
グラフ領域８１０は、閉ループシステムの伝達関数８１５及び８１７に関する情報を含むことができる。たとえば、グラフ領域８１０は、ブロック応答（線８１７）または調整（チューニング）後の応答（線８１５）についての振幅対時間のグラフを表示することができる。説明文８２０は、線８１５及び８１７に関する説明をユーザーに提供することができる。設計領域８３０は、コントローラの特性を変更することが可能なユーザー操作式のメカニズム（構造）を含むことができる。たとえば、設計領域８３０は、コントローラの応答速度を速くしたり遅くしたりするために操作されるスライダー８３５を含むことができる。１実施形態では、コントローラロジック２５０は、スライダーの初期位置(たとえば、最小値と最大値の中間)を設定することができ、ユーザーは、スライダーをその初期位置から必要なだけ移動させることができる。１実施形態では、伝達関数８１５は、ユーザーがスライダー８３５を移動させるのに応じてリアルタイムで変化することができる。
【００８０】
例示的な実施形態で使用されるインターフェースを、ユーザーが、コントローラの１つ以上のパラメータを変更できるように構成することができる。たとえば、インターフェース８００は、ユーザーが、コントローラの応答速度を変更できるようにする１つのスライダー８３５を含む。他の実施形態は、ユーザーが、他のパラメータを、単独で、または、応答速度や他のタイプのパラメータと組み合わせて変更できるようにすることができる。
【００８１】
図９Ａは、PIDコントローラの応答を調整するためユーザーインターフェースの１例を示す。図９Ａのユーザーインターフェースは、図８のインターフェースと比較すると、コントローラを設計するためのより高度なインターフェースでありうる。インターフェース９００を用いて、閉ループ帯域幅及び位相マージンといった２つのパラメータを用いてコントローラを調整することができる。インターフェース９００は、インターフェース７００や８００に関して説明した特徴を含むことができ、さらに、設計領域９３０を含むことができる。
【００８２】
設計領域９３０は、コントローラのパラメータを変更するための２つ以上のユーザー操作式入力メカニズムを含むことができる。たとえば、第１のスライダー９３５を用いてPIDコントローラの閉ループ帯域幅を変更することができ、第２のスライダー９４５を用いてPIDコントローラの位相マージンを変更することができる。設計領域９３０はさらに、閉ループ帯域幅に関する数値情報を表示するための第１の表示部９４０、及び、位相マージンに関する情報を表示するための第２の表示部９５０を含むことができる。
【００８３】
図９Ｂは、インターフェース９００（９０１として示されている）の代替的実施例を示す。インターフェース９０１を、Ｐ、Ｉ、Ｄ、及びＮ値などの設計されたPIDパラメータ、並びに、整定時間やオーバーシュートなどの１以上の性能及びロバスト性測定値を表示するように構成することができる。たとえば、コントローラパラメータを領域９６０に表示することができ、性能及びロバスト性指標を領域９６５に表示することができる。
【００８４】
本明細書に記載されているPIDコントローラ及び制御技術と共に使用されるユーザーインターフェースの他の実施形態を、図７、図８、図９Ａ及び図９Ｂに示されている構成とは異なるやり方で構成することができる。そのよう他の構成は、本発明の思想から逸脱することなく例示した実施形態よりも多くの特徴もしくは少ない特徴を含むことができる。
【００８５】
例示的な処理
例示的な処理は、本明細書で説明されている制御アルゴリズムを使用して、コントローラを設計するための迅速で対話型の環境をユーザーに提供することができる。
【００８６】
図１０Ａ及び図１０Ｂは、本発明の実施形態を実施するために使用できる例示的な処理を示している。本明細書に記載されている実施形態を用いることによって、ユーザーは、該ユーザーが経験する典型的なワークフローに合致もしくは準拠したやり方でコントローラの開発及び実施を行うことが可能になる。たとえば、ユーザーは、典型的なやり方で自由形式モデリング環境と対話することができる。ユーザーはまた、典型的なやり方で、応答速度、位相マージン、閉ループ応答、閉ループ帯域幅などのコントローラの動作特性を検討することができる。いくつかの実施形態では、ユーザーは、典型的なワークフローを維持しつつ、該ユーザーになじみのある動作特性乃至操作特徴を用いてモデル中のPIDコントローラなどのコントローラを対話形式で設計及び実施することが可能である。
【００８７】
図１０Ａを参照すると、本発明の１実施形態は、コントローラを用いて制御されるシステムモデルと対話することができる（処理１００５）。たとえば、ユーザーは、システムを所望の態様で動作させることができるように制御することが必要とされる該システムのモデルを開発することができる。ユーザーは、所望の動作を実現するために、該モデル中に１つ以上のコントローラを配置することを試みることができる。
【００８８】
ユーザーはモデル中のいくつかのポイント（位置）を特定することができるが、それらのポイントによって、LTIモデルを形成するために線形化される該モデルの領域が決定される（処理１０１０）。該モデルの特定された領域はLTIモデルを形成するように線形化される（処理１０１５）。該モデルのある領域が線形化されると、LTIモデルと共に使用されるコントローラの仕様を受け取ることができる（処理１０２０）。
【００８９】
たとえば、ユーザーは、モデルのコントローラブロックを選択して、該ブロックを該モデル内に配置することができる。ダイアログウィンドウは、コントローラブロックを開いて、ユーザーが、該モデルのLTI部を制御するために使用されるコントローラの仕様を入力できるようにすることができる。たとえば、ユーザーは、コントローラの所望の応答速度、コントローラの位相マージン、コントローラの閉ループ応答、及び／または、コントローラの閉ループ帯域幅を指定することができる。
【００９０】
図１０Ｂを参照すると、ユーザーから受け取った仕様を用いてコントローラのパラメータを決定することができる（処理１０２５）。１実施形態では、図５及び図６に関して説明した制御技術を用いてコントローラのパラメータ（コントローラパラメータ）を決定することができる。いくつかの実施形態は、ユーザー入力に基づいてコントローラパラメータを自動的に決定することができる。いくつかの実施形態では、コントローラが、ユーザーによって入力された（１以上の）仕様を満たすか否かを判定することができる（処理１０３０）。たとえば、ユーザーがコントローラの特定の応答速度を指定している場合に、処理１０３０において、コンピュータ１０５は、該コントローラがその応答速度要件を満たすことができるか否かを判定することができる。
【００９１】
コントローラが（１以上の）仕様を満たす場合には、該（１以上の）仕様を満たすコントローラをモデルに提供することができる（処理１０３５）。これとは対照的に、コンピュータ１０５が、コントローラは仕様を満たさないと判定すると、コンピュータ１０５は、該（１以上の）仕様のいくつかの側面またはコントローラのパラメータを変更することができる（処理１０４０）。コンピュータ１０５が（１以上の）仕様もしくはパラメータを変更すると、コンピュータ１０５は、該（１以上の）仕様を達成するものに可能な限り合理的に近いコントローラの設計を試みることができる。１実施形態では、要求された仕様を満たすことができず、それゆえ、要求を満たす適切なコントローラを設計するために該要求された仕様を変更する必要があることをユーザーに知らせることができる。
【００９２】
処理１０３５の後、（１以上の）仕様を満たすコントローラをモデルのLTI部に適用することができる（処理１０４５）。コントローラは、該モデルが動作する（または該モデルが実行する）ときに該モデルのLTI部を制御することができる。例示的な実施形態では、コントローラがモデル中にあるときに、ユーザーは、該コントローラのパラメータを調整することが可能である。たとえば、図８、図９Ａ及び図９Ｂに示されているユーザーインターフェースなどのユーザーインターフェースを用いることによって、典型的なユーザーが直感的に使用できる特徴を用いてコントローラのパラメータを調整することができる。たとえば、ユーザーは、ポインティングデバイスを用いてスライダーを動かすことによって、コントローラの応答速度を高めることができる。スライダーの移動によって、PIDコントローラのパラメータを自動的に調整して最新のコントローラを生成することができる。
【００９３】
例示的な１実施形態は、ユーザー入力をポーリングして、ユーザー入力が利用可能か否かを判定することができる（処理１０５０）。ユーザー入力が検出されると、ユーザーの選択（ユーザー選択）を受け取ることができ（処理１０５５）、処理１０２５において、該ユーザー選択を用いてコントローラのパラメータを再計算することができる。ユーザー入力が利用できないときには、処理１０４５で行われるようにして、現存のコントローラをモデルに適用し続けることができる。
【００９４】
例示的なアーキテクチャ
図１１は、図１のコンピュータ１０５を実施するために使用できる例示的なコンピュータアーキテクチャを示す。図１１は、コンピュータ１０５に対応するエンティティ（実際の構成）の例示的な図である。図示されているように、エンティティは、バス１１１０、処理ロジック１１２０、メインメモリー１１３０、読み出し専用メモリー（ROM）１１４０、記憶装置１１５０、入力装置１１６０、出力装置１１７０、及び／または、通信インターフェース１１８０を備えることができる。バス１１１０は、該エンティティの構成要素間の通信を可能にする経路を含むことができる。
【００９５】
処理ロジック１１２０は、命令を解釈して実行することができるプロセッサ、マイクロプロセッサ、または、他のタイプの処理ロジック（たとえば、フィールドプログラマブルゲートアレイ（FPGA）、グラフィック処理ユニット（GPU）、デジタル信号プロセッサ（DSP）、特定用途向け集積回路（ASIC）など）を備えることができる。１実施例では、処理ロジック１１２０は、シングルコアプロセッサ、または、マルチコアプロセッサを含むことができる。別の実施例では、処理ロジック１１２０は、単一の処理装置、または、処理クラスターやコンピューティンググリッドなどの一群の処理装置を含むことができる。さらに別の実施形態では、処理ロジック１１２０は、ローカル（局所的）なものとすることができる複数のプロセッサ、または、互いに離れているものとすることができる複数のプロセッサを含むことができ、及び、処理中に１以上のスレッドを使用することができる。
【００９６】
メインメモリー１１３０は、処理ロジック１１２０によって処理乃至実行される情報及び命令を記憶することが可能なランダムアクセスメモリー（RAM）もしくは別のタイプの動的記憶装置（またはダイナミックメモリ）を含むことができる。ROM１１４０は、処理ロジック１１２０によって使用される静的情報及び／または命令を記憶することが可能なROM装置もしくは別のタイプの静的記憶装置（またはスタティックメモリ）を含むことができる。記憶装置１１５０は、処理ロジック１１２０によって使用される静的情報及び／または命令を記憶することが可能な磁気記録媒体、固体（または半導体）記録媒体、及び／または、光学記録媒体、並びに、対応する駆動装置、または、他のタイプの静的記憶装置を含むことができる。
【００９７】
入力装置１１６０は、オペレータが該エンティティに情報を入力できるようにする、キーボード、マウス、ペン、タッチパッド、加速度計、マイクロフォン、音声認識機能、カメラ、生体測定機構などのロジックを含むことができる。１実施形態では、入力装置１１６０は入力装置１４０に一致する。
【００９８】
出力装置１１７０は、オペレータに情報を提示するディスプレイ、プリンタ、スピーカー、触覚インターフェースなどを含むメカニズムを含むことができる。通信インターフェース１１８０は、該エンティティが他の装置及び／またはシステムと通信できるようにする任意のトランシーバー様のロジックを含むことができる。たとえば、通信インターフェース１１８０は、ネットワークを介して他の装置またはシステムと通信するためのメカニズム（構造乃至装置）を含むことができる。
【００９９】
図１１に示すエンティティは、処理ロジック１１２０が、メインメモリー１１３０などのコンピュータ読み取り可能記憶媒体に格納されているソフトウェア命令を実行するのに応答していくつかの処理を実行することができる。コンピュータ読み取り可能記憶媒体を、物理的な（たとえば実体のある）記憶装置または論理的な記憶装置として定義することができる。ソフトウェア命令を、記憶装置１１５０などの別のコンピュータ読み取り可能記憶媒体から、または、通信インターフェース１１８０を介して別の装置から、メインメモリー１１３０へと読み出すことができる。メインメモリー１１３０に格納されているソフトウェア命令が処理ロジックで実行されると、該命令によって、処理ロジック１１２０は、本明細書に記載されている技術を実行することができる。代替的には、ハードウェアに組み込まれた回路（ハードワイヤード回路）を、ソフトウェア命令の代わりに、または、ソフトウェア命令と組み合わせて用いることによって、本明細書に記載されている技術を実施することができる。したがって、本明細書に記載されている実施例は、ハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されない。
【０１００】
図１１は、該エンティティの例示的な構成要素を示しているが、他の実施例では、エンティティは、図１１に示されているエンティティよりも少ない数の構成要素を含むことができ、該エンティティとは異なる構成要素を含むことができ、もしくは、該エンティティの構成要素に加えて他の構成要素を含むことができる。さらに他の実施例では、エンティティの１以上の構成要素は、該エンティティの１以上の他の構成要素によって実行されるものとして説明した１以上のタスクを実行することができる。
【０１０１】
例示的な分散型実施形態
分散型実施形態は、２つ以上の処理資源を用いて処理を実行することができる。たとえば、いくつかの実施形態は、単一の処理装置中の２つ以上のコアを用いて処理を実行することができ、及び／または、単一の筐体内に設置された複数の処理装置間に処理を分散させることができ、及び／または、ネットワークによって接続された複数のタイプの処理ロジック間に処理を分散させることができる。
【０１０２】
図１２は、分散型コンピューティング環境を用いて、クライアント装置（たとえば、コンピュータ１０５）の代わりに非線形モデルのコントローラの対話形式による設計をサポートすることができる例示的なシステムを示している。システム１２００は、コンピュータ１０５、ネットワーク１２３０、サービスプロバイダ−１２４０、リモートデータベース１２５０、及びクラスター１２６０を含むことができる。図１２の実施例は例示であり、本発明の他の分散型実施例は、より多くの装置及び／もしくエンティティ、並びに／または、より少ない装置及び／またはエンティティ、並びに／または、図１２の例示的な構成とは異なる構成において複数の装置／エンティティを含むことができる。
【０１０３】
コンピュータ１０５は、グラフィカルユーザーインターフェース（GUI）１２１０及びコンピューティング環境１２２０を含むことができる。GUI １２１０は、ユーザーが、コンピュータ１０５及び／またはリモートの装置（たとえば、サービスプロバイダー１２４０）と対話乃至相互作用できるようにするインターフェースを含むことができる。例示的な１実施形態では、GUI １２１０を、図７、図８、図９Ａ及び図９Ｂのインターフェースに類似したものとすることができる。
【０１０４】
ネットワーク１２３０は、データ（たとえば、パケットデータまたは非パケットデータ）を伝送することができる任意のネットワークを含むことができる。ネットワーク１２３０のいくつかの実施例は、インターネットプロトコル（IP）、非同期転送モード（ATM）、同期光ネットワーク（SONET）、ユーザ・データグラム・プロトコル（UDP）、IEEE 802.10などの実質的に任意のネットワークプロトコルを用いて動作することが可能な、ローカル・エリア・ネットワーク（LAN）、及び／または、メトロポリタン・エリア・ネットワーク（MAN）、及び／または、インターネットなどのワイド・エリア・ネットワーク（WAN）を含むことができる。
【０１０５】
ネットワーク１２３０は、ルーター、及び／または、スイッチ、及び／または、ファイアウォール、及び／または、サーバーなどのネットワーク装置（不図示）を含むことができる。ネットワーク１２３０を、配線された導体及び／もしく光ファイバーを用いて直結されたネットワークとすることができ、並びに／または、自由空間を伝わる光周波数乃至無線周波数（RF）及び／もしくは音響伝播経路を用いた無線ネットワークとすることができる。１実施例では、ネットワーク１２３０を、インターネットなどの実質的にオープンな公衆ネットワークとすることができる。別の実施例では、ネットワーク１２３０を、会社の仮想ネットワークなどのより制限されたネットワークとすることができる。本明細書に記載されているネットワークの実施例及び／またはネットワーク上で動作する装置は、如何なる特定のデータタイプ、プロトコル、アーキテクチャ／構成などにも限定されない。たとえば、１実施形態では、ネットワーク１２３０を、量子互換ネットワーキングプロトコル（quantum-compatible networking protocol）を使用する量子ネットワークとすることができる。
【０１０６】
サービスプロバイダー１２４０は、サービスを他の装置が利用できるようする装置を含むことができる。たとえば、サービスプロバイダー１２４０は、サーバー及び／または他の装置を用いて１以上のサービスを宛先（目的地）に提供するエンティティを含むことができる。それらのサービスには、ある処理を実施するために宛先において実行される命令を含めることができる。代替的には、サービスには、宛先の代わりに（または宛先のために）処理を実施するために該宛先に代わって（または該宛先のために）実行される命令を含めることができる。
【０１０７】
１例として、サービスプロバイダーが、コンピュータ１０５などの宛先に１以上のウェブベースのサービスを提供するウェブサーバーを動作させる場合を考える。ウェブベースのサービスは、コンピュータ１０５が、該サービスプロバイダーによって動作させられるハードウェアを用いて、電気的及び／または機械的システムの分散型シミュレーションを実行できるようにすることができる。たとえば、コンピュータ１０５のユーザーが、サービスプロバイダーのハードウェアを用いてシステムモデルのPIDコントローラを対話的に設計できるようにすることができる。１実施例では、顧客（ユーザー）は、加入契約毎にサービスを受けることができる。加入契約には、月決めの料金支払、使用毎の料金支払、サービスプロバイダー１２４０と顧客との間で交換された情報量に基づく料金支払、顧客によって使用されたプロセッササイクルの数に基づく料金支払、顧客によって使用されたプロセッサの数に基づく料金支払などの取り決めを含めることができる。
【０１０８】
リモートデータベース１２５０は、コンピュータ１０５などの他の装置によって使用される機械読み取り可能情報を格納する装置を含むことができる。１実施形態では、リモートデータベース１２５０は、システムモデルやコントローラなどに関する情報を含んでいるデータ構造を格納する、ずらりと並んだまたはグリッド状に配置された複数の記憶装置（たとえば、ハードディスク、光ディスク、固体状態（または半導体）記憶装置など）を含むことができる。
【０１０９】
クラスター１２６０は、遠隔処理（たとえば、分散処理、並列処理など）を実行するために使用できる実行ユニット（UE）１２７０などの一群の処理装置を含むことができる。実行ユニット１２７０は、コンピュータ１０５などの要求側装置の代わりに処理を実行するハードウェアベース、及び／または、ハードウェア／ソフトウェアベースの装置を含むことができる。１実施形態では、実行ユニット１２７０の各々は部分的な結果を計算することができ、それらの部分的な結果を組み合わせて、モデルについての全体の結果を得ることができる。
【０１１０】
単独の実装形態または分散型の実装形態で動作する実施形態は、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（但し、これらには限定されない）などのテキストベースのコンピューティング（計算）アプリケーション及び／またはモデリングアプリケーションに関連するコードで、本明細書に記載されている動作を実行することができる。
【０１１１】
いくつかの実施形態は、さらに、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環境（但し、これらには限定されない）などのグラフィカルモデリング環境に関連するコードで、本明細書に記載されている動作を実行することができる。グラフィカルモデリング環境は、ブロック図及び／または他のタイプの図を含むことができる。
【０１１２】
いくつかの実施形態を、静的または動的に型づけされるプログラミング言語をサポートする技術計算環境などの種々のコンピューティング環境で実施することができる。たとえば、動的に型づけされる言語（dynamically typed language）を、当業者になじみのある数学的表記で問題及び／または解を表すために使用される言語とすることができる。たとえば、動的に型づけされる言語は配列（アレイ）を基本要素として用いることができ、この場合、該配列の次元（次数）もしくは大きさを決定する必要はない場合がある。それらの配列を用いて、演算もしくは処理を配列中の値などの値の全集合に適用できるという点において、配列プログラミングをサポートすることができる。配列プログラミングは、配列ベースの演算を、プログラマーが、個々の非配列演算すなわちスカラー演算の明示的なループを用いることなく、データの全集合を検討して該集合に対する演算を行うことができるようにする高レベルのプログラミング技術もしくはモデルとして扱うことを可能にする。動的に型づけされる言語を使用する例示的な１実施形態を、組込みアプリケーションで使用するためのコードを生成するために使用できる組込みMATLABプログラミング言語で実施することができる。
【０１１３】
例示的な実施形態
１実施形態では、１以上のコンピュータ読み取り可能媒体は、処理ロジックで実行されると、任意の非線形モデルの比例・積分・微分（PID）コントローラのパラメータを決定する１以上の実行可能命令を保持することができる。該実施形態では、該媒体は、非線形化すべき該任意の非線形モデルの一部を自動的に決定するための１以上の命令を保持することができ、この場合、該任意の非線形モデルは自由形式モデリング環境にある。それらの命令は、該任意の非線形モデルの該決定された一部を線形化することができ、この線形化は線形モデルを生成することができる。それらの命令は、該線形モデルの開ループ周波数応答を計算し、及び、ユーザーの代わりに設計仕様を受け取ることができ、この場合、その設計仕様は、開ループ応答の所望のゲインクロスオーバー周波数、または、該ゲインクロスオーバー周波数における所望の位相マージンを特定している。それらの命令は、周波数応答及び受け取った入力を用いてPIDコントローラのゲイン（利得）を自動的に調整することができ、この場合、この自動調整（自動チューニング）は、PIDコントローラが線形モデルを制御するときに所望の性能を達成するように、及び、該任意の非線形モデル用の対話型PIDコントローラ設計をサポートする時間内で実行されるように構成される。必要な場合には、グラフィカルユーザーインターフェース（GUI）に関連する可動式スライダーを用いて所望のゲインクロスオーバー周波数及び所望の位相マージンを指定できるように、または、可動式のスライダーを用いて所望のゲインクロスオーバー周波数を指定し、かつ、所望の位相マージンを自動的に選択できるように該実施形態を構成することができる。Simulink（シミュリンク）準拠の言語またはSimulink（シミュリンク）モデルと対話もしくは相互作用をするブロックの代わりに（または該ブロックのために）調整を実行できるように該実施形態を構成することもできる。
【０１１４】
別の実施形態では、１以上の実行可能命令を保持する１以上のコンピュータ読み取り可能媒体を提供することができ、この場合、該命令は、処理ロジックで実行されると、コントローラを表すブロックを、該ブロックがモデル中で動作乃至実行するときに、該ブロック内で使用されるコントローラを生成するアルゴリズムに結合する。この実施形態では、該媒体は、線形時不変（LTI）モデルを受け取るための１以上の命令を保持することができる。この実施形態では、LTIモデルは、任意の非線形モデルの一部を表す動作条件において該任意の非線形モデルを近似することができる。LTIモデルはさらに、遅延を有することができ、及び、実質的に任意の次数を有することができる。それらの命令をさらに、性能及びロバスト特性を受け取るように構成することができ、この場合、該性能及びロバスト特性は、LTIモデルを制御するコントローラについてのものであり、該性能及びロバスト特性は、開ループのゲインクロスオーバー周波数、及び、開ループの位相マージンを特定する。この実施形態では、それらの命令はさらに、該性能及びロバスト特性を、該特性を満たすコントローラを生成する調整アルゴリズムに提供することができ、この場合、該調整アルゴリズムは、該性能及びロバスト特性を満たすコントローラパラメータを自動的に調整する。必要に応じて、該ブロックは、コントローラパラメータを該ブロックに書き込むようにする調整メカニズムを含むことができる。この実施形態では、それらのブロックは、ユーザーが、コントローラのロバスト性とコントローラの性能とのトレードオフを対話形式で実行できるようにすることができる。該実施形態は、モデルへのコントローラのリアルタイムでの提供をサポートすることができ、この場合、リアルタイムには、ユーザーによるブロックまたはコントローラアルゴリズムの対話型の操作に悪影響を与えない程度の処理遅延が含まれる。該実施形態では、コントローラを、比例（Ｐ）コントローラ、積分（Ｉ）コントローラ、比例微分（PD）コントローラ（微分フィルターを含む場合もあれば含まない場合もある）、比例積分（PI）コントローラ、または、PIDコントローラ（微分フィルターを含む場合もあれば含まない場合もある）とすることができる。
【０１１５】
さらに別の実施形態では、１以上の実行可能命令を保持する１以上のコンピュータ読み取り可能媒体を提供することができ、この場合、該命令は、処理ロジックで実行されると、線形化されたプラントモデルで使用されるコントローラを調整する。この実施形態では、該媒体は、対話型の調整用インターフェースを開始するための１以上の命令を保持することができ、この場合、該対話型の調整用インターフェースは、ループ応答を計算し、該ループ応答をグラフィカルに（すなわち、図やグラフなどを使って）表示し、性能及びロバスト性情報を計算し、該性能及びロバスト性情報をグラフィカルに表示し、コントローラのパラメータを調整し、ユーザー入力を受け取るように構成される。それらの命令はまた、プラントモデルを線形化して線形化されたプラントモデルを生成することができ、この場合、該線形化されたプラントモデルは、該プロントの実行中にコントローラによって制御される。それらの命令はユーザー入力を受け取ることができ、この場合、該ユーザー入力はゲインクロスオーバー周波数及び開ループ位相マージンを指定する。それらの命令はまた、コントローラのパラメータを調整することができ、この場合、該調整は、指定されたゲインクロスオーバー周波数及び開ループ位相マージンに基づいてコントローラのいくつかのパラメータを自動的に解明（パラメータの解明とは、たとえば、パラメータのタイプを特定し、及び／または、該パラメータの値を決定することを意味する）し、小さくされた探索空間内の残りのコントローラパラメータを自動的に最適化し、及び、指定された入力に対応乃至合致する特性乃至特徴を有する調整されたコントローラを生成するように構成され乃至作動する。それらの命令はさらに、該調整されたコントローラの応答を表示することができ、この場合、該応答は、該調整されたコントローラが、プラントの実行中に該プラントで（もしくは該プラントと共に）どのように動作するかを示す。この実施形態では、該対話型の調整インターフェースを、Simulink（シミュリンク）モデル内の比例・積分・微分（PID）コントローラブロックで用いることができる。必要に応じて、調整されたコントローラの特性がメリット関数を満たすようにすることができる。該実施形態はまた、固定パラメータ以外のパラメータについての最適化の実行をサポートすることができる。該実施形態は、該対話型の調整インターフェースを、立ち上がり時間、整定時間、オーバーシュート、ピーク（値）、ゲインマージン（ゲイン余裕）、位相マージン（位相余裕）、最大感度、最大相補感度（maximum complementary sensitivity）、または、閉ループ安定性を表示するための命令を含むように構成することができる。該実施形態では、プラントを、１入力１出力（SISO）ループとして表すことができる。該実施形態は、任意の非線形モデルの動作ポイントを選択するための命令を含むことができ、この場合、該動作ポイントは、プラントが線形化されて設計される場所（ポイント）を示し、調整されたコントローラは、該動作ポイントに近接する任意の非線形モデルを制御する。該実施形態を、さらに、該任意の非線形モデルの第２の動作ポイントを選択し、該第２の動作ポイントに近接する任意の非線形モデルを制御するための調整されたコントローラを生成し、及び、該調整されたコントローラを第１の動作ポイントに関して（たとえば、該第１の動作ポイントもしくはその近傍で動作するように）、及び、該調整されたコントローラを第２の動作ポイントに関して（たとえば、該第２の動作ポイントもしくはその近傍で動作するように）スケジューリングするためのゲインスケジューリングを実行するように構成することができる。
【０１１６】
さらに他の実施形態では、１以上の実行可能命令を保持する１以上のコンピュータ読み取り可能媒体を提供することができ、この場合、該命令は、処理ロジックで実行されると、１つ、２つ、３つ、または４つのパラメータを有するコントローラのパラメータを決定し、該コントローラは、非線形モデルを制御するように構成される。該媒体は、自由形式モデリング環境にある非線形モデルの少なくとも一部を線形化するための命令を保持することができ、この場合、該線形化は、所定の領域にわたって有効もしくは妥当な線形モデルを生成する。該媒体はまた、線形モデルの開ループ周波数応答を計算し、及び、該開ループ応答の所望のゲインクロスオーバー周波数に対する入力もしくは該ゲインクロスオーバー周波数における所望の位相マージンに対する入力を受け取るための命令を保持することができる。該媒体はまた、該周波数応答及び受け取った該入力を用いてゲインを自動的に調整するための命令を保持することができ、この場合、該自動的な調整によって所望の性能目標が達成され、該自動的な調整は、該任意の非線形モデル用の対話型PIDコントローラ設計をサポートする時間中に実行される。
【０１１７】
さらに別の実施形態では、任意の次数のプラントを制御するためのコンピュータによって実施される方法が提供される。該方法を、非線形システムモデル中に表示可能な対話型コントローラブロックを用いて該非線形システムモデルと対話もしくは相互作用するように、及び、該対話型コントローラブロックを用いて該システムモデルを線形化するように構成することができる。該方法は、該システムモデルにおいて使用するためのプラントを生成することができ、この場合、該プラントは、該線形化に基づいて生成され、該プラントは任意の決定された次数（または次元）を有し、及び、該プラントは、該システムモデルが動作乃至実行するときに、該対話型コントローラブロックによって制御される。該方法は、該対話型コントローラブロックが動作乃至実行するときに該対話型コントローラブロックの特性を指定するユーザー入力を受け取ることができ、この場合、該入力は、ゲインクロスオーバー周波数及び位相マージンを含む。該実施形態では、該入力を、該対話型コントローラブロックに関連付けられているグラフィカルユーザーインターフェース（GUI）を介して受け取ることができる。該方法は、該対話型コントローラブロックに関連付けられているコントローラを調整することができ、この場合、該調整は、自動的に実行され、及び、コントローラのパラメータの数が２つ以下のときに該パラメータを解明すること、及び、コントローラのパラメータが３つ以上あるときに２つのパラメータを解明して、残りのパラメータを最適化することを含むことができる。
【０１１８】
さらに別の実施形態では、任意の次数のプラントを制御するための装置が提供される。該プラントは、非線形システムモデルと対話もしくは相互作用するための手段、及び、該システムモデルを線形化するための手段を備えることができる。該システムはまた、該システムモデルにおいて使用するためのプラントを生成するための手段を含むことができ、この場合、該プラントは該線形化に基づいて生成され、該プラントは任意の決定された次数を有し、及び、該プラントは、該システムモデルが動作乃至実行するときに対話型コントローラ手段によって制御される。該装置は、該対話型コントローラ手段の特性を指定するユーザー入力を受け取るための手段を含むことができ、この場合、該入力は、ゲインクロスオーバー周波数及び位相マージンを指定する。該装置は、該対話型コントローラ手段に関連付けられているコントローラを調整するための手段を含むことができ、この場合、該調整は自動的に実行され、該調整は、コントローラのパラメータが２つ以下のときに該パラメータを解明すること、及び、コントローラのパラメータが３つ以上あるときに２つのパラメータを解明して、残りのパラメータを最適化することを含む。
【０１１９】
結論
いくつかの実施例は、ユーザーが、該ユーザーになじみのある特徴乃至特性を用いてシステムモデルのコントローラを対話形式で設計することを可能にする。
【０１２０】
本発明の例示的な実施形態についての以上の説明は例示及び説明のために提供されたものであって、本発明を網羅することも、本発明を開示した形態そのものに限定することも意図されていない。上記教示に照らして種々の変更及び変形が可能であり、それらの変更及び変形は本発明の実施から得られる場合もある。たとえば、一連の処理乃至動作を図１０Ａ及び図１０Ｂに関して説明したが、本発明の原理に適合する他の実施例では、それらの処理乃至動作の順番を変更することができる。さらに、互いに依存関係にない処理乃至動作を並列もしくは同時に実行することができる。
【０１２１】
さらに、本発明の思想から逸脱することなく、本発明の原理に適合する実施例を、図示したもの以外の装置及び構成を用いて、並びに本明細書に記載したもの以外の装置及び構成を用いて実施することができる。特定の配置乃至構成及び／またはアプリケーションに依存して、いくつかの装置及び／または構成要素を、図１または図１１または図１２の実施例に追加することができ、及び／または、それらの実施例から削除することができる。さらに、開示されている実施例は、ハードウェアのいかなる特定の組み合わせにも限定されない。
【０１２２】
さらに、本発明のいくつかの部分を、１以上の機能を実行する「ロジック」として実施することができる。このロジックは、ハードワイヤードロジックなどのハードウェア、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、マイクロプロセッサ、または、ハードウェアとソフトウェアの組み合わせを含むことができる。本発明の説明で使用されている要素、処理乃至動作、または命令は、それらが本発明にとって重要であるかまたは必須であることが明示されていない場合には、そのように重要または必須であるものと解釈されるべきではない。また、本明細書で使用されている「ある」という冠詞は、１以上のアイテム（事物）を含むことが意図されている。１つのアイテムだけが存在することが意図されている場合には、「１つの」という用語または類似の用語が使用されている。さらに、本明細書で使用されている「に基づいて」という用語は、「に少なくとも部分的に基づいて」を意味する（但し、これとは別の意味であることが明示されている場合を除く）ことが意図されている。
【０１２３】
本明細書で使用されている見出し及び副見出しは、本明細書をサブセクションに分割することによって読み手を補助するために付されている。それらの見出し及び副見出しは、本発明の範囲を限定するものとして解釈されるべきではなく、及び、本発明の特徴を画定するものとしても解釈されるべきではない。
【図１】
0005648049.tif 000034
【図２】
0005648049.tif 000035
【図３】
0005648049.tif 000036
【図４】
0005648049.tif 000037
【図５】
0005648049.tif 000038
【図６】
0005648049.tif 000039
【図７】
0005648049.tif 000040
【図８】
0005648049.tif 000041
【図９Ａ】
0005648049.tif 000042
【図９Ｂ】
0005648049.tif 000043
【図１０Ａ】
0005648049.tif 000044
【図１０Ｂ】
0005648049.tif 000045
【図１１】
0005648049.tif 000046
【図１２】
0005648049.tif 000047