(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-07
(45)【発行日】2022-11-15
(54)【発明の名称】フィードバックループを調節するためのインタラクティブなシステム
(51)【国際特許分類】
G05B 13/02 20060101AFI20221108BHJP
G05B 13/04 20060101ALI20221108BHJP
【FI】
G05B13/02 T
G05B13/04
(21)【出願番号】P 2018000555
(22)【出願日】2018-01-05
(62)【分割の表示】P 2016003025の分割
【原出願日】2011-09-29
【審査請求日】2018-01-18
【審判番号】
【審判請求日】2020-09-28
(32)【優先日】2010-09-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】505384841
【氏名又は名称】ザ マスワークス, インク
【氏名又は名称原語表記】THE MATHWORKS, INC.
【住所又は居所原語表記】3 Apple Hill Drive, Natick, MA01760 (US).
(74)【代理人】
【識別番号】100136630
【氏名又は名称】水野 祐啓
(74)【代理人】
【識別番号】100201514
【氏名又は名称】玉井 悦
(72)【発明者】
【氏名】ガヒネット, パスカル
(72)【発明者】
【氏名】アプカリアン, ピエール
(72)【発明者】
【氏名】ノール, ドミニク
【合議体】
【審判長】見目 省二
【審判官】田々井 正吾
【審判官】鈴木 貴雄
(56)【参考文献】
【文献】特開平06-075605(JP,A)
【文献】特開2008-310601(JP,A)
【文献】特開2009-020580(JP,A)
【文献】Pierre Apkarian et. al.,Nonsmooth H∞ Synthesis,IEEE TRANSACTIONS ON AUTOMATIC CONTROL,IEEE,2006年 1月,VOL.51 NO.1,PP.71-86
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/00 - 13/04
(57)【特許請求の範囲】
【請求項1】
モデルにおける1つまたは複数の調整可能な構成要素を識別する段階であって、
各調整可能な構成要素は1つまたは複数のパラメータを含み、
前記識別はコンピュータ装置により実行される、識別する段階と、
1つまたは複数のフィードバックループを識別する段階であって、
前記1つまたは複数のフィードバックループは、前記1つまたは複数の調整可能な構成要素の少なくとも1つを含み、
所定のコマンドを受け取り可能なユーザインターフェースがモデリング環境により提供され、
前記1つまたは複数のフィードバックループは、前記ユーザインターフェースを介してユーザデバイスから受け取られた第1コマンドに基づいて識別され、
前記1つまたは複数のフィードバックループの前記識別は前記コンピュータ装置により実行される、識別する段階と、
前記ユーザインターフェースによる提示を目的として、前記識別された1つまたは複数のフィードバックループの目標ループ形状を示すプロットを前記第1コマンドに基づいて提供する段階であって、
提示を目的とした提供は前記コンピュータ装置により実行される、提供する段階と、
前記提供されたプロットに基づいて、H∞制約を定式化することに関連付けられた第2コマンドを受け取る段階であって、
前記第2コマンドは前記ユーザインターフェースを介して前記ユーザデバイスから受け取られ、
前記第2コマンドの前記受け取りは前記コンピュータ装置により実行される、受け取る段階と、
前記第2コマンドの受け取りおよび設計要件に基づいて、前記識別された1つまたは複数のフィードバックループに関連付けられた多変数制御問題を解くための1つまたは複数のH∞制約を定式化する段階であって、
前記H∞制約は1つまたは複数の伝達関数に関連付けられており、
前記定式化は前記コンピュータ装置により実行される、定式化する段階と、
最適化問題として前記多変数制御問題を定式化するために、前記1つまたは複数の調整可能な構成要素をパラメータ化する段階であって、
前記パラメータ化は、調整される前記1つまたは複数の調整可能な構成要素の1つまたは複数の自由パラメータの識別を含み、
前記パラメータ化は前記コンピュータ装置により実行される、パラメータ化する段階と、
前記コンピュータ装置により且つ前記1つまたは複数の調整可能な構成要素のパラメータ化に基づき、前記最適化問題を解決するために、非平滑H∞最適化アルゴリズムのクラスである調整器を用いて、前記1つまたは複数の調整可能な構成要素の前記1つまたは複数の自由パラメータを調整して前記多変数制御問題を解くための前記H∞制約を実現することにより、前記識別された1つまたは複数のフィードバックループを自動的に調整する段階と、
を含む方法。
【請求項2】
前記識別された1つまたは複数のフィードバックループを調整する段階が、
MATLAB(登録商標)互換言語を用いて、前記識別された1つまたは複数のフィードバックループを調整する段階を含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の調整可能な構成要素を、グラフィカルモデリング環境で使用されるブロックセットから選択する段階をさらに含む、請求項1に記載の方法。
【請求項4】
前記識別された1つまたは複数のフィードバックループを調整する段階が、
前記識別された1つまたは複数のフィードバックループの調整の速度を特定する段階を含む、請求項1に記載の方法。
【請求項5】
前記識別された1つまたは複数のフィードバックループの調整の結果を受け取る段階と、
前記結果を妥当性検証する段階と、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記結果を妥当性検証する際に、前記方法は、
前記1つまたは複数のフィードバックループに関連付けられた閉ループ応答をシミュレートする段階を含む、請求項
5に記載の方法。
【請求項7】
1つまたは複数のプロセッサを備えたシステムであって、該プロセッサが、
モデルにおける1つまたは複数の調整可能な構成要素を識別し、
各調整可能な構成要素は1つまたは複数のパラメータを含み、
1つまたは複数のフィードバックループを識別し、
前記1つまたは複数のフィードバックループは、前記1つまたは複数の調整可能な構成要素の少なくとも1つを含み、
所定のコマンドを受け取り可能なユーザインターフェースがモデリング環境により提供され、
前記1つまたは複数のフィードバックループは、前記ユーザインターフェースを介してユーザデバイスから受け取られた第1コマンドに基づいて識別され、
前記ユーザインターフェースによる提示を目的として、前記識別された1つまたは複数のフィードバックループの目標ループ形状を示すプロットを前記第1コマンドに基づいて提供し、
前記提供されたプロットに基づいて、H∞制約を定式化することに関連付けられた第2コマンドを受け取り、
前記第2コマンドは前記ユーザインターフェースを介して前記ユーザデバイスから受け取られ、
前記第2コマンドの受け取りおよび設計要件に基づいて、前記識別された1つまたは複数のフィードバックループに関連付けられた多変数制御問題を解くための1つまたは複数のH∞制約を定式化し、
前記H∞制約は1つまたは複数の伝達関数に関連付けられており、
最適化問題として前記多変数制御問題を定式化するために、前記1つまたは複数の調整可能な構成要素をパラメータ化し、
1つまたは複数のプロセッサは、前記1つまたは複数の調整可能な構成要素のパラメータ化に際して、調整される前記1つまたは複数の調整可能な構成要素の1つまたは複数の自由パラメータを識別し、
前記1つまたは複数の調整可能な構成要素のパラメータ化に基づき、前記最適化問題を解決するために、非平滑H∞最適化アルゴリズムのクラスである調整器を用いて、前記1つまたは複数の調整可能な構成要素の前記1つまたは複数の自由パラメータを調整して前記多変数制御問題を解くための前記H∞制約を実現することにより、前記識別された1つまたは複数のフィードバックループを自動的に調整する、システム。
【請求項8】
前記識別された1つまたは複数のフィードバックループを調整する際に、前記1つまたは複数のプロセッサは、MATLAB(登録商標)互換言語を用いて、前記識別された1つまたは複数のフィードバックループを調整する、請求項
7に記載のシステム。
【請求項9】
前記1つまたは複数のプロセッサは、さらに、前記1つまたは複数の調整可能な構成要素を、グラフィカルモデリング環境で使用されるブロックセットから選択する、請求項
7に記載のシステム。
【請求項10】
前記識別された1つまたは複数のフィードバックループを調整する際に、前記1つまたは複数のプロセッサは、前記識別された1つまたは複数のフィードバックループの調整の速度を特定する、請求項
7に記載のシステム。
【請求項11】
前記1つまたは複数のプロセッサは、さらに、前記識別された1つまたは複数のフィードバックループの調整の結果を受け取り、前記結果を妥当性検証する、請求項
7に記載のシステム。
【請求項12】
前記1つまたは複数のプロセッサは、前記結果を妥当性検証する際に、さらに、前記1つまたは複数のフィードバックループに関連付けられた閉ループ応答をシミュレートする、請求項
11に記載のシステム。
【請求項13】
コンピュータ実行可能命令を格納した非一時的なコンピュータ可読媒体であって、前記命令が、
1つまたは複数の命令を含み、該命令は、プロセッサにより実行されると、前記プロセッサに、
モデルにおける1つまたは複数の調整可能な構成要素を識別させ、
各調整可能な構成要素は1つまたは複数のパラメータを含み、
1つまたは複数のフィードバックループを識別させ、
前記1つまたは複数のフィードバックループは、前記1つまたは複数の調整可能な構成要素の少なくとも1つを含み、
所定のコマンドを受け取り可能なユーザインターフェースがモデリング環境により提供され、
前記1つまたは複数のフィードバックループは、前記ユーザインターフェースを介してユーザデバイスから受け取られた第1コマンドに基づいて識別され、
前記ユーザインターフェースによる提示を目的として、前記識別された1つまたは複数のフィードバックループの目標ループ形状を示すプロットを前記第1コマンドに基づいて提供させ、
前記提供されたプロットに基づいて、H∞制約を定式化することに関連付けられた第2コマンドを受け取らせ、
前記第2コマンドは前記ユーザインターフェースを介して前記ユーザデバイスから受け取られ、
前記第2コマンドの受け取りおよび設計要件に基づいて、前記識別された1つまたは複数のフィードバックループに関連付けられた多変数制御問題を解くための1つまたは複数のH∞制約を定式化させ、
前記H∞制約は1つまたは複数の伝達関数に関連付けられており、
最適化問題として前記多変数制御問題を定式化するために、前記1つまたは複数の調整可能な構成要素をパラメータ化させ、
前記プロセッサに前記1つまたは複数の調整可能な構成要素をパラメータ化させる前記1つまたは複数の命令は、前記プロセッサに調整される前記1つまたは複数の調整可能な構成要素の1つまたは複数の自由パラメータを識別させ、
前記1つまたは複数の調整可能な構成要素のパラメータ化に基づき、前記最適化問題を解決するために、非平滑H∞最適化アルゴリズムのクラスである調整器を用いて、前記1つまたは複数の調整可能な構成要素の前記1つまたは複数の自由パラメータを調整して前記多変数制御問題を解くための前記H∞制約を実現することにより、前記識別された1つまたは複数のフィードバックループを自動的に調整させる、媒体。
【請求項14】
前記識別された1つまたは複数のフィードバックループを調整させる際に、前記プロセッサに、MATLAB(登録商標)互換言語を用いて、前記識別された1つまたは複数のフィードバックループを調整させる1つまたは複数の命令を含む、請求項
13に記載の媒体。
【請求項15】
前記1つまたは複数の調整可能な構成要素をグラフィカルモデリング環境で使用されるブロックセットから選択するための1つまたは複数の命令を含む、請求項
13に記載の媒体。
【請求項16】
前記プロセッサに、前記識別された1つまたは複数のフィードバックループの調整の結果を受け取らせる1つまたは複数の命令と、前記プロセッサに、前記結果を妥当性検証させる1つまたは複数の命令とを含む、請求項
13に記載の媒体。
【請求項17】
前記結果を妥当性検証させる前記1つまたは複数の命令は、前記1つまたは複数のフィードバックループに関連付けられた閉ループ応答をシミュレートさせる1つまたは複数の命令を含む、請求項
16に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、その内容を引用して本明細書に援用する2010年9月29日付けの米国特許仮出願第12/893670号の優先権を主張する。
【図面の簡単な説明】
【0002】
添付の図面は、本明細書の一部として組み込まれかつその一部をなすものであり、本発明の1つ又は複数の実施形態をその詳細な説明と共に記載する。これら図面は次の通りである。
【
図2】本発明の実施形態および技法を実施するための代表的なシステムを示す。
【
図3】
図3は、本発明の諸側面を実装するために使用可能なモデリング環境の代表的な実装例を示す。
【
図4】その構成要素を調整するために本発明の代表的な実施形態を適用できる代表的なコントローラアーキテクチャを示す。
【
図5】その構成要素を調整するために本発明の代表的な実施形態を適用できる代表的なコントローラアーキテクチャを示す。
【
図6】その構成要素を調整するために本発明の代表的な実施形態を適用できる代表的なコントローラアーキテクチャを示す。
【
図7】システムのH∞合成表現と組み合わせてパラメータを調整するための構造化コントローラを用いる本発明の代表的な実装例を示す。
【
図8】本発明の一実施形態と組み合わせて使用されるフィードバックループの代表的な所望のループ形状を示す。
【
図9】調整可能な要素を含むプラントおよびコントローラを含む代表的な構成であって、構成要素を調整するために代表的な技法を適用できる構成を示す。
【
図10】本発明の一実施形態を用いて調整可能な複数入力・複数出力制御問題と共に使用される代表的な所望のループ形状を示す。
【
図11】本発明の実施形態と共に使用可能なコマンド、オブジェクト、および出力を表示するための代表的なインターフェースを示す。
【
図12】本発明の実施形態と共に使用可能なコマンド、オブジェクト、および出力を表示するための代表的なインターフェースを示す。
【
図13】本発明の実施形態と共に使用可能なコマンド、オブジェクト、および出力を表示するための代表的なインターフェースを示す。
【
図14】本発明の実施形態と共に使用可能なコマンド、オブジェクト、および出力を表示するための代表的なインターフェースを示す。
【
図15】
図15は、本発明の一実施形態を用いて調整可能な構成要素を備えた代表的なコントローラを示す。
【
図16】(A)および(B)本発明の実施形態と共に使用可能なコマンドおよび/または出力を表示するための代表的なインターフェースを示す。
【
図17】本発明の実施形態を用いて調整できる調整可能構成要素を含む代表的な自動操縦装置を図示する。
【
図18】本発明の実施形態を用いて調整できる調整可能構成要素を含む代表的な自動操縦装置を図示する。
【
図19】
図17および18の自動操縦装置に関する入力を受け取りかつ/または出力を表示するために使用可能な代表的なインターフェースを示す。
【
図20】
図17および18の自動操縦装置の構成要素を調整する本発明の実施形態と共に使用可能な代表的な目標ループ形状を示す。
【
図21】
図17および18の自動操縦装置に関する入力を受け取りかつ/または出力を表示するための代表的なインターフェースを示す。
【
図22】
図17および18の自動操縦装置に関する入力を受け取りかつ/または出力を表示するための代表的なインターフェースを示す。
【
図23】
図17および18の自動操縦装置に関連した代表的なステップ応答を示す。
【
図24】
図17および18の自動操縦装置に関連した感度関数のゲインを評価するために使用可能なプロットを示す。
【
図25】本発明の実施形態を実施するために使用可能な代表的な処理を示す。
【
図26】本発明の実施形態を実装するために使用可能な代表的なアーキテクチャを示す。
【
図27】本発明による分散型の実施形態を実装するための代表的なシステムを示す。
【発明を実施するための形態】
【0003】
複数入力・複数出力(MIMO)コントローラを設計するための従来のアプローチは、H∞合成と呼ばれる技法を含むことができる。
【0004】
従来のH∞合成技法
図1は、標準的なH∞合成技法の使用例を表した構成を示す。
図1は、プラントH(s) 110とコントローラC(s) 120とを含むことができる。
図1では、標準的なH∞合成が、入力w 130から出力z 140への閉ループピークゲインを最小化するコントローラC(s) 120を計算する。コントローラC(s) 120は、ブラックボックス(例えば、ユーザはこのブラックボックス内部の内部表現に容易にアクセスできない)として動作できる集中H∞コントローラを表すことができる。H(s)110は、コントローラC(s) 120を用いて制御可能なプラントを表すことができる。プラントH(s)110は、線形プラントモデルとすることができる。
【0005】
従来のH∞合成を用いて、システム100の閉ループ応答(いわゆるH∞ノルム)のピーク入力/出力ゲインを最小化できる。ユーザは、制御プラントH(s)の帯域幅、ロールオフ、オーバーシュート、および/または安定余裕などの設計に関わる側面または目標を指定する制御問題に関する設計仕様を持つことができる。H∞合成に基づくフレームワークは、ユーザが仕様を実現するための補助に適用できる。しかし、従来の∞合成技法を快適に使用しまたは熟練しているユーザ(例えばエンジニア)は非常に少ない。例えば、ユーザが慣れ親しんでいる通常の仕様を、従来の∞合成技法で必要な正規化閉ループゲイン制約に変換することは、ユーザにとって単調で、直感で理解できず、長時間を要する作業と感じることがある。さらに、従来のH∞合成ツールおよび技法の技術的な制約は、典型的なユーザの作業をさらに遅らせかつ/または混乱させることがある。
【0006】
さらに、従来のH∞合成技法は、ユーザの典型的な設計作業の流れをサポートしないため、ユーザにとって好ましくないもとの感じられることがある。さらに、従来のH∞合成技法は、コントローラC(s)120を、コントローラC(s)120により表現されるシステム構造の内部表現へのユーザによる容易なアクセスを許容しないブラックボックスとして扱う。さらに、従来のH∞合成技術は、所与のシステムのC(s)120を生成する際に、別個の入力接続を結合し、かつこれら接続の間に制御ブロックを挿入する。このアプローチは、C(s)120が導出された元となるシステム構造を表現しないC(s)120の構造を生成してしまい、これは、典型的なユーザが従来のH∞合成技法を扱う際に直面する困難さをさらに悪化させてしまう。
【0007】
例えば、ユーザは、実質的に実時間の操作を可能とする設計ツールを望むこともあろう(すなわち、これらツールによりユーザは、ユーザをいらいらさせたり、ユーザと設計ツールとの対話を干渉したりする処理の遅れに遭遇することなく、インタラクティブに設計を行い、設計の諸側面をインタラクティブに修正かつ実行できる)。従来のH∞合成技法は、多くの理由でインタラクティブな動作をサポートしないことがある。例えば、従来の技法は、特に構造または順序制約がコントローラC(s)120に課せられない場合、一対のリカッチの方程式を繰り返し解くことで最適コントローラの計算を試行することがある。上記一対の方程式を解こうとするこれらの繰り返し試行は、長時間を必要としかつ計算コストが高くつくことがあり、これによって、従来のH∞合成技法は、インタラクティブな設計用途には特に望ましくないもとのなる傾向がある。
代表的な技法および実施形態の概要
【0008】
代表的な実施形態は、ユーザが、多変数フィードバック制御問題を定式化しかつ解くために直感的なユーザインターフェースを使用することを可能とする新規の技法を提供する。例えば、代表的な実施形態では、ユーザは、制御システムの全体的性能およびロバスト性を最適化するため合わせて調整する必要がある1つまたは複数のフィードバックループに分散した複数の制御要素を備えた制御問題を扱うことができる。代表的な実施形態はスケーラブルであり、任意の数のフィードバックループおよび/または任意程度の複雑性を備えた問題の制御に応用できる。
【0009】
代表的な実施形態は、
図1に類似したシステム表現であるが、ユーザが、コントローラC(s)をブラックボックスでなくホワイトボックスとして扱うことを可能とするシステム表現を使用できる。例えば、代表的な実施形態では、コントローラC(s)が、各ブロック自身が固定構造および複雑性を備えたブロック対角構造を持つことができる。このC(s)の付加的な複雑性により、ユーザは、コントローラC(s)を、解析対象のシステムの制御アーキテクチャに調和した様態で表現できる。代表的な実施形態は、非平滑H∞オプティマイザを用いて任意のMIMO制御構造を自動的に調整できる。代用的な技法は、ソルバを、C(s)がブロック対角構造を含むH∞合成表現の正準構造にあわせて特殊化する。
【0010】
代表的な実施形態および技法は、MIMO調整タスクの試行にあたり従来の技法によりもたらされる障害を除去するものである。例えば、代表的な実施形態および技法は、制御アーキテクチャおよびコントローラ構造の、オプティマイザに適した費用関数およびパラメータベクトルへの翻訳を自動化する。さらに、代表的な実施形態および技法によって、勾配を安価に計算でき(反復毎にo(N)で、Nはパラメータの数)、さらに、各調整可能ブロックタイプ(ゲインPID、伝達関数、状態空間、生パラメータ等)がそれ自身の寄与を勾配に与えるオブジェクト指向様式で勾配を計算できる。代表的な実施形態は勾配を利用するが、その際に、ユーザが、従来のアプローチでなされていたように、ブロックに関する勾配を計算しそれらを組み合わせて費用関数の全体的な勾配を得る必要がない。従来のアプローチは、簡単なアーキテクチャを除いて手動では処理しにくいことがあり、本発明の幾つかの側面で使用される技法と比べると格段に効率が低いことがある。
【0011】
本発明の代表的な技法は、計算ハードウェアで実現した場合、ユーザがMIMO調整タスクをインタラクティブに実行できるようになる。例えば、代表的な実施形態により、ユーザは、標準的なパーソナルコンピュータ(PC)並びにMATLAB(登録商標)技術計算およびプログラミング環境などの技術計算環境を用いて典型的には1秒未満から30秒未満の範囲での調整時間を体験できる。幾つかの実施形態は、処理時間を減少させるためマルチコアまたは他の種類の多重処理デバイス若しくは環境に導入できる。
【0012】
本明細書に記載した実施形態は、それぞれの実例について線形制御システムとの関連で説明するが、本発明の実施形態を使用して非線形制御問題を解くこともできる。例えば、代表的な技法は、ゲインスケジューリングを含むがそれに限定されない非線形制御設計へのアプローチをサポートできる。
【0013】
代表的なシステム
図2は、一実施形態を実施するための代表的なシステム200を示す。システム200を用いて1つまたは複数のエンティティを含むモデルを構築し、そのモデルのPIDコントローラを設計、実装し、かつ/またはそのコントローラのコードを生成するなどのそのモデルからコードを生成できる。システム200は、コンピュータ205と、取得ロジック210と、オペレーティングシステム215と、モデリング環境220と、モデル230と、入力デバイス240と、表示装置250と、モデル表現260と、プラント270とを含むことができる。
図2のシステムは例示的なものであり、システム200の他の実施形態は、より少ない数のデバイス、多い数のデバイス、かつ/または
図2の構成とは異なる構成のデバイスを含むことができる。
【0014】
コンピュータ205は、処理動作、表示動作、通信動作などを実行するデバイスを含むことができる。例えば、コンピュータ205は、1つまたは複数の処理または記憶装置などの処理動作をユーザのために実行かつ/またはサポートするため使用可能なロジックを含むことができる。コンピュータ205の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、クライアント、サーバ、メインフレーム、携帯型情報端末(PDA)、ウェブ機能付き携帯電話、スマートフォン、スマートセンサ/アクチュエータ、または1つ若しくは複数の動作を実行するための、かつ/または1つ若しくは複数の結果を生成するための命令を実行する別の計算若しくは通信デバイスを含むこともできる。
【0015】
さらに、コンピュータ205は、別のデバイスとの間でデータの送受信を行うことで通信動作を実行することもできる(
図2には示さない)。データは、1つまたは複数のネットワークでかつ/または1つまたは複数のデバイスで使用するよう適合可能な実質的に任意形式を含む任意種類の機械可読情報に関する。データはデジタル情報またはアナログ状態を含むことができる。さらに、データはパケット化しかつ/またはパケット化しなくてもよい。
【0016】
取得ロジック210は、コンピュータ205の外部のデバイスからデータを取得でき、コンピュータ205によってそうした情報を利用可能にすることができる。例えば、取得ロジック210は、コンピュータにデータを利用可能にするために用いられるアナログ‐デジタル変換器、デジタルアナログ変換器、フィルタ、マルチプレクサなどを含むことができる。コンピュータ205は、取得したデータを用いてモデリング動作、コントローラ設計動作などを実行できる。
【0017】
オペレーティングシステム215は、コンピュータ205に関連付けられたハードウェアおよび/またはソフトウェアリソースを管理できる。例えば、オペレーティングシステム215は、ユーザ入力の受信、コンピュータ環境205の運用、メモリ割り当て、システム要求の優先順位付けなどに関連したタスクを管理できる。一実施形態では、オペレーティングシステム215は、仮想オペレーティングシステムとしてもよい。オペレーティングシステム215の実施形態は、Linux(登録商標)、Mac OS、Microsoft Windows(登録商標)、Solaris(登録商標)、UNIX(登録商標)などを含むことができる。さらに、オペレーティングシステム215は、コンピュータ205により提供可能な仮想マシン上で実行できる。
【0018】
モデリング環境220は、ユーザが、数学、科学、工学、医学、ビジネスなどを含むがそれらに限定されない分野に関したシミュレーションまたはモデリングタスクを実行可能とする計算環境を提供する。モデリング環境220は、実行可能意味論を備えたモデルをユーザが構築可能にする命令を実行する1つまたは複数のアプリケーションをサポートできる。例えば、一実施形態では、モデリング環境220は、ユーザが、実行可能意味論を備えた自由形式モデル(1次、2次、3次、4次、5次などのモデル)モデルを作成できるようにしてもよい。モデリング環境220は、さらに、時間ベース、イベントベースなどのモデリング動作をサポートできる。
【0019】
モデル230は、実行可能なテキスト形式またはグラフィカルモデルを含むことができる。例えば、モデル240は、時間ベースモデル、イベントベースモデル、状態遷移モデル、データフローモデル、構成要素ダイアグラム、エンティティフローダイアグラム、方程式ベース言語ダイアグラムなどでよいテキスト形式モデルまたはグラフィカルモデルの情報を含むことができる。モデル230のグラフィカルな実施形態は、処理を実行するための実行可能コードを表現するエンティティ(例えば、ブロック、アイコン等)を含むことができる。これらエンティティのコードを実行して、モデルを用いてシミュレーションを行うことができる。エンティティ同士は、モデル中でデータを1つのエンティティから別のエンティティに移送するための経路を表す線を用いて接続できる。
【0020】
入力デバイス240はユーザ入力を受け取ることができる。例えば、入力デバイス240は、ユーザの動作または行為を、コンピュータ205により解釈可能な信号またはメッセージに変換できる。入力デバイス240は、キーボード、ポインティングデバイス、生体計測デバイス、加速度計、マイクロフォン、カメラ、ハプティックデバイス等を含むことができるが、それらに限定されない。
【0021】
表示装置250は、情報をユーザに表示できる。表示装置250は、ブラウン管(CRT)、プラズマ表示装置、発光ダイオード(LED)表示装置、液晶表示装置(LCD)等を含むことができる。表示装置250の実施形態は、所望ならユーザ入力(例えば、タッチスクリーンを介して)ユーザ入力を受け取るように構成してもよい。一実施形態では、表示装置250は、1つまたは複数のグラフィカルユーザインターフェース(GUI)をユーザに提示できる。これらGUIは、モデル230および/または他の種類の情報を含むことができる。
【0022】
モデル表現260は、モデル230の可視表現および/またはプロットウィンドウなどのモデル230が与える可視表現を含むことができる。例えば、モデル表現260をユーザに表示してもよいし、線で接続された多数のエンティティを含むこともできる。モデル230の実行時には、モデル表現260は、例えばモデルを通るデータの流れを示すように変化させてもよい。
【0023】
プラント270は、データをコンピュータ205に与える1つ又は複数のデバイスを含むことができる。例えば、プラント270は、加速時計、熱電対、光電送受信機、ひずみ計等のセンサを用いて監視されるエンジンシステムを含むことができる。一実施形態では、取得ロジック210は、プラント270からの信号をアナログまたはデジタル形式で受信し、それら信号をコンピュータ205での使用に適した形式に変換できる。
【0024】
代表的なモデリング環境
図3は、モデリング環境220の代表的な実施形態を示す。モデリング環境220は、シミュレーションツール310と、エンティティライブラリ320と、インターフェースロジック330と、コンパイラ340と、コントローラロジック350と、オプティマイザ360と、シミュレーションエンジン370と、リポートエンジン380と、コードジェネレータ390とを含むことができる。
図3に示したモデリング環境220の実施形態は例示的なものであり、モデリング環境220の他の実施形態も、本発明の精神から逸脱することなく、より多いまたは少ないエンティティを含むことができる。
【0025】
シミュレーションツール310は、モデルを構築するためのアプリケーションでよい。シミュレーションツール310を用いて、実行可能意味論を含むテキスト形式モデルまたはグラフィカルモデルを構築できる。グラフィカルモデルの場合は、シミュレーションツール310によって、ユーザは、モデルエンティティおよび/または接続の作成、修正、診断、削除などを行うことができる。シミュレーションツール310は、ユーザ入力を受け取り、モデルを実行し、結果を表示し、コードを生成するなどのため、
図2または3に示した他のエンティティと相互に作用できる。シミュレーションツール310は、テキスト形式モデルを構築若しくはそれらと対話するための編集ウィンドウおよび/またはグラフィカルモデルを作成若しくははそれらと対話するためのGUIを、ユーザに与えることができる。
【0026】
エンティティライブラリ320は、ユーザが、モデル表現360を含む表示ウィンドウにドラッグアンドドロップできるコードモジュールまたはエンティティ(例えば、ブロック/アイコン)を含むことができる。グラフィカルモデルの場合は、さらに、ユーザは接続を用いてエンティティを結合し、プラント370などのシステムのグラフィカルモデルを生成できる。
【0027】
インターフェースロジック330によって、モデリング環境220は、データおよび/または情報をデバイス(例えば、プラント270、ターゲット環境など)またはソフトウェアモジュール(例えば、関数、アプリケーションプログラムインターフェースなど)との間で送受信可能となる。一実施形態では、インターフェースロジック330は、取得ロジック310とモデリング環境220とを接続する。
【0028】
コンパイラ340は、モデルを実行可能形式にコンパイルできる。コンパイラ340が生成するコンパイル済みコードは、コンピュータ205上で実行してモデリング結果を生成できる。一実施形態では、コンパイラ340は、モデルに関連したエラーを診断するデバッグ機能を実現する。
【0029】
コントローラロジック350は、モデル330でコントローラを作成しかつ実装するために使用可能である。例えば、コントローラロジック350は、モデル表現260における様々なタイプのコントローラを表現するエンティティに機能を与える。モデルが実行されると、コントローラロジック350は、モデル表現260におけるエンティティと相互作用することによってこのモデルに対して制御処理を実行できる。一実施形態では、コントローラロジック350は、モデル表現360においてコントローラを実装する制御アルゴリズムを含むことができる。コントローラロジック350の実施形態は、スタンドアローンまたは分散型の実装例として動作するよう構成できる。
【0030】
オプティマイザ360は、モデルのコード、パラメータ、性能(例えば、実行速度)などを最適化できる。例えば、オプティマイザ360はコードを最適化して、そのコードが最適化されない状態で実行された場合に比べて、例えばそのコードがより少ないメモリを占有し、より効率的に実行し、より高速で実行するようできる。オプティマイザ360は、例えば、コントローラのパラメータ最適するため、コントローラロジック350の最適化を行うこともできる。一実施形態では、オプティマイザ360はコンパイラ340、コントローラロジック350、コードジェネレータ390などと共に動作してもよいし、またはオプティマイザ360をそれらに組み込んでもよい。オプティマイザ360の実施形態は、例えばオプティマイザ360が処理するデータを受け取るための多のオブジェクト指向ソフトウェアと相互作用するソフトウェアオブジェクトを介して実装できる。
【0031】
シミュレーションエンジン370は、モデルを実行してシステムをシミュレートするための処理を実行できる。シミュレーションエンジン370は、ユーザの選択またはシステムの選択に基づいてスタンドアローンまたは遠隔シミュレーションを実行するよう構成できる。
【0032】
レポートエンジン380は、モデリング環境220における情報に基づいてレポートを生成できる。例えば、レポートエンジン380は、コントローラが設計仕様を満足するかを示すレポート、コントローラが安定して動作するかを示すレポート、モデルが適切にコンパイルするかを示すレポートなどを生成できる。レポートエンジン380の実施形態は、表示装置250で表示するための電子形式、ハードコピー形式および/または記憶装置における記憶に適した形式でレポートを生成可能である。
【0033】
コードジェネレータ390は、モデルからコードを生成できる。一実施形態では、コードジェネレータ390はコードを第1形式で受け取り、そのコードを第1形式から第2形式に変換できる。一実施形態では、コードジェネレータ390は、モデルの少なくとも一部から、ソースコード、アッセンブリ言語コード、バイナリコード、インターフェース情報、構成情報、性能情報、タスク情報などを生成できる。例えば、コードジェネレータ390は、モデルからC、C++、SystemC、Java(登録商標)、ストラクチャードテキストなどのコードを生成できる。
【0034】
コードジェネレータ390の実施形態は、さらに、統一モデリング言語(UML)に基づく表現および/またはグラフィカルモデル(例えば、システムモデリング言語(SysML)、拡張マーク付け言語(XML)、リアルタイム/組込みシステムのモデリングおよび解析(MARTE)、ハードウェア記述言語(HDL)、自動車オープンシステムアーキテクチャ(AUTOSAR(登録商標))など)の一部または全部からの拡張を生成できる。一実施形態では、オプティマイザ370は、コードジェネレータ390と相互作用して、パラメータ(例えば、メモリ使用、実行速度、多重処理など)に従って最適化されるコードを生成できる。本発明の原理と整合性があるモデリング環境の実施形態は、さらに、検証構成要素、妥当性検査構成要素などの構成要素を含むこともできる。
【0035】
本発明の実施形態を用いて、多変数フィードバック制御問題をインタラクティブに定式化し、解き、かつ実質的に任意次数および/または遅れの非線形モデルで使用するコントローラを設計できる。実施形態は、厳密な線形化技法を用いて非線形モデルの少なくとも一部を表現できる線形時間不変モデルを生成するように構成可能である。
【0036】
代表的な制御アーキテクチャ
一例として、本発明の実施形態は、実質的に任意の順序で配置されかつ1つまたは複数のフィードバックループを備えたコントローラブロックなどを含みうる複数の構成要素を備えた制御アーキテクチャに応用できる。
【0037】
図4は、本発明の実施形態が適用できる代表的な制御アーキテクチャ、具体的には高い迎え角モードにあるF-14で使用される自動操縦装置を示す。この自動操縦装置はGUI400に表示でき、ゲインおよび時間制約を含む8つの調整可能なパラメータを含むことができる。
【0038】
図5は、蒸留塔で使用されるコントローラの代表的なアーキテクチャを示す。
図5のコントローラは、GUI500を介してユーザに表示され、調整が必要な4つの比例積分(PI)ゲインおよび2x2ゲイン行列を含むことができる。
【0039】
図6は、風力タービンで使用されるピッチおよびヨー制御の代表的なアーキテクチャを示す。
図6のアーキテクチャは、GUI600を介してユーザに表示され、調整が必要な3つのPIコントローラおよび2つのゲインを含むことができる。
図6に示したように、本発明の実施形態で使用されるGUIは、ウィンドウ、ペインなどの複数のインターフェースを含むことができる。
【0040】
本発明の実施形態は、さらに別の種類のアーキテクチャや、
図4-6および本願の他の部分で示したアーキテクチャに比べ複雑性が高いまたは低いアーキテクチャで使用できる。
【0041】
本明細書で開示した代表的な実施形態および/または技法は、任意の複数の制御構造を単一の一般的な表現に還元することによってそれら構造の効率的な調整を可能とする。
【0042】
代表的な正準構造
図7は、変換された任意の制御構造を表すために使用できる代表的な正準構造を図示する。
【0043】
図7を参照すると、システム700は、インターフェースを介してユーザに表示でき、さらに制御システムの固定構成要素を単一の集中モデルへと組み合わせる線形モデルでよいH(s)710を含むことができる。本発明の一実施形態では、H(s)710はシステムのすべての固定制御構成要素を表現できる。 システム700は、調整対象の要素を含みうるコントローラ720も含むことができる。例えば、代表的な実施形態では、コントローラ720は、調整対象の制御要素を表す1つまたは複数のブロックB
1 730からB
N 740を含む構造化コントローラ(structured controller)とすることができる。一例として、コントローラ720が単一のブロックを含むときは、そのブロックはB1と呼び、3つのブロックを備えたコントローラ720は、B
1、B
2、およびB
3というブロックを含むものとする。調整対象の制御要素の設計は一様ではない。例えば、調整対象の要素は、コントローラまたはプラント内のゲイン、動的要素(例えば、伝達関数、状態空間モデルなど)および/または設計パラメータを含むことができる。
【0044】
コントローラ720の代表的な実施形態は、ブロックB1 - BNからなるブロック対角集合体を含むことができ、構造化コントローラ720と呼ぶことができる。構造化コントローラ720は、反復されるブロック(すなわち、B2などの特定のブロックは対角線上に複数回現れることがある)を含むことができる。
【0045】
システム700は、次のように、周波数領域の対応する式を用いて表現できる。
【0046】
【0047】
方程式1において、H(s)および調整されたブロック(B1 - BN) は、信号uおよびyを介してフィードバック様態で相互作用する。式1の正準構造は次の3つの属性を備える。
【0048】
(1)
がブロックとして現れる信号フローダイアグラムは、ブロック
を そのダイアグラムの他の部分から分離しかつそれらの入力および出力を付加してブロック対角構造を作成することによって、この正準構造に変換できる。
【0049】
【0050】
(2)その係数が、なんらかのパラメータ
の有理関数である伝達関数または状態空間モデルは、この正準構造形式に変換可能であり、ここでブロック
は次の形式である。
【0051】
【0052】
(3)この正準表現は直列、並列、およびフィードバック相互接続において閉じている。すなわち、こうした正準構造の任意の相互接続は、より大きなブロックリストを備えた別の正準構造を生ずる。
【0053】
上述の性質(1) -(3)により、本発明の原理と整合性がある
図7の正準構造を調整するための任意方法は、任意の次数および構造の線形制御要素を備えた実質的にいかなる制御構造にも確実に適用できる。
【0054】
調整可能ブロックをパラメータ化するための代表的な技法
代表的な実施形態は、システム内の調整可能な要素をパラメータ化して調整タスクを最適化問題として定式化するように構成できる。例えば、一実施形態では、すべての調整可能な要素をパラメータ化してよい。表1では、比例積分偏差(PID)ブロック、固定次数伝達関数、および固定次数状態空間ブロックなどの共通制御要素のパラメータ化を要約した。
【0055】
【0056】
さらに、代表的な実施形態は、ソフトウェアベースのツールを提供かつ/または使用するよう構成して、ユーザに基本的なパラメータを含む式を記述させることで制御要素のカスタムパラメータ化を作成させることができる。例えば、本発明の一実施形態で使用される代表的なソフトウェアツールは、ユーザが、例えば次のような付加的な構造を備えた調整可能ブロックを作成可能とする。
実数の値aでパラメータ化された低域フィルタ
オブザーバー形式の状態空間コントローラ:
【0057】
【数4】
数式4において、パラメータはゲイン行列KおよびLである。
【0058】
多目的サポートのための代表的な技法
一例として、次の2つのH∞制約が与えられる。
これには次のような2つの別個の閉ループ伝達関数が関わる。
【0059】
【数5】
上記式で、F(.,.)は、
図7で記述される一次分数変換(LFT)相互接続を示す。
【0060】
【数2】
上記式は、調整される構造化補償器を表現する。
【0061】
2つのH∞制約(
)は、次の単一のH∞制約に結合可能であり、
これは次の集約伝達関数で結合できる。
【0062】
【0063】
C(s)が全次(full-order)複数入力・複数出力(MIMO)コントローラである場合、従来のH∞合成技法は、得られるコントローラの
ブロック対角構造のため、得られる問題を解くことができない。
【0064】
対照的に、本発明の代表的な実施形態は、
ブロック対角構造およびブロック繰り返しをサポートする。従って、本発明の代表的な実施形態は、従来のH∞合成技法ではうまくいかない次の多目的問題のような問題を解くために使用できる。
「
および
となるようにC(s)を調整せよ。」
或いは、同様に、
「
となるようにC(s)を調整せよ。」
という問題も単一目的問題を解くことと変わらない。実際的な見知からは、代表的な実施形態により、ユーザは各ループ伝達関数を独立して制約することができ、すべての要件を獲得する単一のMIMO制約を見つける必要がなくなる。これは多くのユーザにとって望ましい特徴であり、それは、すべての要件を獲得する単一のMIMO制約の発見は、交差項がユーザの問題設定方法と干渉するので、ユーザには困難なタスクとなることが多いためである。
【0065】
ループ整形要件を自動的に定式化するための代表的な技法
ループ整形は、フィードバック制御システムを調整するための一般的な周波数領域技法である。一例として、単入力・単出力(SISO)フィードバックループに関し、ループ整形法は次からなる。
1. 設計要件を、開ループ応答L(s)の所望のゲイン特性について表現する(周波数の関数としてのゲイン)。例えば、ゲインは、良好な追跡および外乱阻止のためには低周波数において高く(>1)すべきであり、雑音およびモデリングエラーに対する不感受性のためには高周波数において低く(<1)すべきである。遷移周波数(ゲイン=1)は、交差周波数
と呼ばれ、制御システムの応答速度に直接影響する。
2. 補償器の調整可能パラメータを調節して、閉ループ安定性および適切な安定余裕を維持しつつ所望のループ整形にアプローチする。
【0066】
マルチループ制御システムに関し、この手順は、後述する幾つかの修正を施してMIMO開ループ応答に適用できる。
【0067】
直ぐ上のステップ(1)は、周波数領域技法に詳しい制御エンジニアには通常よく理解されている。例えば、積分動作を備えたフィードバックループの所望のループ整形は、
図8に示したプロット800で表現できる。一実施形態では、プロット800は、表示装置250を用いてGUIを介してユーザに表示できる。
【0068】
図8を参照すると、0dB交差周波数はω
c = 10(ω
c は
図8の矢印805にある)であり、約1/10 = 0.1秒の応答時間に対応する
図8では、応答時間は、フィードバックループが変化にいかに速く反応するかを示すことができる。
を増大または減少させると、応答をそれぞれ速くまたは遅くできる。
図8のループ形状はw<10 (領域810)について高いゲインを備え、w>10 (領域820)について低いゲインを備える。
【0069】
代表的な実施形態および技法は、所望ループ形状またはその近くに達するためシステム中の補償器の調整可能パラメータを調節するのに適している。本発明の実施形態で使用される技法は、ループ整形目標(すなわち、開ループゲインを整形して指定された特性に一致させること)を何らかのH∞ノルム制約に定式化すると有利となることがある。ループ整形目標をH∞ノルム制約に定式化するための幾つかの公知技法が存在するが、こうした変換は、ロバスト制御理論やH∞合成の訓練を経ていないエンジニアには困難を伴うことが多い従来のアプローチを採用する際にエンジニア(例えば、ユーザ)が直面する困難さを除去するため、代表的な実施形態では、この再定式化ステップを単純化する技法を用いる。例えば、幾つかの実施形態は、この再定式化ステップを自動化して構成および/または計算の負担からユーザを解放できる。
【0070】
図9は、本発明の諸側面を実装するために使用できるシステム900を示す。
図900は、入力信号r、出力信号y、コントローラC(s)910、およびプラントG(s)920と共にSISOおよびMIMOフィードバックループを含むことができる。さらに、システム900は信号uおよびnも含む。
図9において、C(s)910は、1つまたは複数の調整可能ブロックを含むことができ、信号uおよびyは同数の項目(すなわち、同じ数のコントロールと測定値)を含むものと仮定できる。
【0071】
図9では、開ループ伝達関数は次のように表現できる。
【0072】
【数7】
さらに、閉ループ伝達関数は次の通りであって、
【0073】
【0074】
【0075】
目標ループ形状
および外乱阻止率
が与えられているとき、次を考える。
【0076】
【0077】
次のH∞制約により、
以下が保証されることを確認できる。
【0078】
【0079】
ここで、
・
であり、ループゲイン
は1より大きく、
・
であり、ループゲインは1より小さいので、
これは次に等しい。
【0080】
【0081】
式12の最初の2つの制約は、ループゲインを交差周波数から十分に大きくまたは十分に小さくすることにより所望のループ形状を実現するものである。例えば、1つの実装例では、交差周波数から離れた上限値および下限値などのループゲインの所望値を含むことができる。式12の第3および第4制約は、SおよびTのゲインを交差近くで1に維持するよう作用でき、これは適切なオーバーシュートおよび安定余裕を確保するために重要である。最後に、
図12の最後の制約により、ユーザは
を減少させることで外乱阻止特性を改善できる。
【0082】
図9に関する上述の説明を要約すると、次のH∞制約
は、所望のループ形状を実現し、適切な余裕を与え、
を介して外乱阻止を最適化することが示されている。これにより、ループ整形目標を、本発明の代表的な技法とともに使用するのに適したH∞制約に変換するシステム化された方法がもたらされる。例えば、代表的な実施形態および技法により、ユーザからの次の基本的な情報のみを用いて動作可能なソフトウェアツールを作成できるようになる。
・目標ループ形状
(一実施形態では、ゲインのみが重要となる場合もある。
・調整可能ブロック
・閉ループシステムのブロックダイアグラムにおける信号r、d、yの位置。
【0083】
この情報から、本発明の諸側面を実装するソフトウェアツールは、本発明の諸側面と整合性がある構造化H∞合成技法を用いて自動的にGおよびCを抽出し、X(s)を構築し、ブロックパラメータを調整できる。これらソフトウェアツールおよび技法は、所望の交差周波数
から適切なループ形状を自動的に生成することにより、かつ積分動作が必要かどうかを判断することにより、目標ループ形状
の必要性をさらに無くすことができる。
【0084】
本発明のソフトウェアで実現された側面は、MIMO問題にも適用できる。例えば、代表的な技法を、それぞれが特定の関節を制御する4つの別個のフィードバックループを含んだロボットアームの制御に適用できる。MIMOの場合は、改良点としては、SISO問題で使用されるループ形状とは異なるループ形状の使用が含まれうる。
【0085】
図10は、本発明の諸側面に従ってMIMO問題を扱うことができるループ形状を示す。
図10では、トレース1010は、概ね0dBゲインである平坦部1015を含む。平坦部1015は、一定範囲の交差周波数を考慮したものである。一定範囲の交差周波数を見込むことは、結合されたマルチループ制御システムにおいては、すべてのループが同一の周波数で0dB交差可能とは限らないこことに対応させる助けになる。
【0086】
本発明の側面を実装するためのソフトウェアに基づいたツール
本発明の代表的な実施形態は、本明細書に記載した技法を実施するためのソフトウェアで実装可能である。本発明のソフトウェアで実現された実施形態は、一定の形式でかつ典型的なユーザにより容易に理解される用語を用いてユーザが情報を入力可能とするグラフィカルユーザインターフェース(GUI)などのインターフェースをユーザに提供する。さらに、ソフトウェアで実現された実施形態は、制御システムの迅速な設計および/または解析をサポートするアルゴリズムおよび処理技法を利用する。事実、本発明の実施形態を構成することにより、制御システムの効率的な設計および解析を促すような作業の流れをユーザが使用できるようにするインタラクティブな制御設計および解析をサポート可能である。
【0087】
例えば、代表的な実施形態が本明細書に記載の技法を実装するための1つまたは複数のソフトウェアツールを使用する場合は、ソフトウェアツールは、限定するわけではないがユーザに例えば次のようなサービスを提供できる。
1. 制御要素の構造を特定し、これら要素のパラメータ化を自動的に生成する。
2. カスタム要素およびパラメータ化を作成する。
3. 所与の制御アーキテクチャを
図7の対応する正準構造にマッピングする。
4. 簡潔な設計要件をH∞制約に変換する。
5. 基調をなす構造化H∞合成問題を解くことによって制御要素を自動的に調整する。
6. 元々の制御要素について結果を提示する。
7. 通常の線形解析ツールとの厳密な統合化によって設計の妥当性検証を促進する。
【0088】
説明を明確にするため、代表的な実施形態および技法は、MATLABのプログラミング言語および/またはMathWorks社の制御システムツールボックスのようなMATLAB言語と互換性があるツールボックスと関連付けて説明する。本発明の実施形態および/またはこれら実施形態に関連した技法は、本発明の精神から逸脱することなく、他のソフトウェアパッケージおよび/またはアプリケーションなどを用いて、他のプログラミング環境で実装することもできる。例えば、実施形態および/または技法は、MATLAB互換製品/言語、Octave、Python、Comsol(登録商標) Script、National Instruments社からのMATRIXx、Wolfram Research社からのMathematica(登録商標)、Mathsoft Engineering & Education社からのMathcad、MaplesoftからのMaple、Imagine That社からのExtend、フランス国立情報学自動制御研究所(INRIA)からのScilab(登録商標)、Cadence社からのVirtuoso(登録商標)、Dynasim社からのModelicaまたはDymola、C/C++ライブラリを含むがそれらに限定されないアプリケーションを用いて実装できる。
【0089】
幾つかの実施形態では、本発明の技法を実装するための環境は、ユーザが、数学、科学、工学、医学、商業などに限定されないがそれらを含む分野に関連したタスクを、C++、C、Fortran、Pascalなどの従来のプログラミング言語でユーザがコードを開発することを要件とするような別の種類の計算環境で実行する場合と比べ、より効率的に実行可能とする計算環境を提供するハードウェアまたはハードウェア/ソフトウェアに基づいたロジックを含む。
【0090】
一実装例では、この環境は、当業者が慣れ親しんだ数学的表記法で問題および/または解を表現するのに使用できる動的型付き言語を含むことができる。例えば、この環境は配列を基本要素として使用でき、この場合、配列は次元設定を必要としない。これら配列を用いて、演算が一配列内の値など一組の値すべてに適用できるという意味で配列プログラミング(array programming)をサポートできる。配列プログラミングにより、配列に基づいた処理を、個別の非配列の明示的ループ(すなわちスカラー処理)を行うことなく、プログラマーにデータ集団全体を考慮しかつ処理させうる高レベルプログラミング技法またはモデルとして扱うことができることがある。
【0091】
さらに、この環境は、データ解析、データ視覚化、アプリケーション開発、シミュレーション、モデリング、アルゴリズム開発などのために使用可能な行列および/またはベクトル定式化を実行するために適合させてもよい。これらの行列および/またはベクトル定式化は、統計、金融、画像処理、信号処理、制御設計、生命科学、教育、離散事象解析および/または設計、状態ベース解析および/または設計などの多くの分野で使用できる。
【0092】
所望であれば、本発明の側面と一貫性がある実施形態および技法は、The MathWorks社製のSimulink(登録商標)環境、Stateflow(登録商標)環境、SimEvents(商標)環境など、Simulink/Stateflow/SimEvents互換製品、Visual Solutions社製のVisSim 、National Instruments社製の LabView(登録商標)、Dynasim社製のDymola 、Measurement Computing社製の SoftWIRE、DALSA Coreco社製のWiT、 Agilent社製のVEE ProまたはSystemVue、PPT Vision社製のVision Program Manager、Khoral Research社製のKhoros、Gedae社製のGedae、INRIA製のScicos、Cadence社製のVirtuoso、IBM社製のRational Rose、Telelogic社製のRhopsody または Tau、カリフォルニア州立大学バークリー校製のPtolemy、或いは 統一モデリング言語(UML)またはSysML環境の諸側面に限定されないがそれらを含む製品を用いてグラフィックベースの環境で実装できる。
【0093】
調整可能ブロックを指定するための代表的な技法
本発明の実施形態により、ユーザはシステム中の調整可能ブロックを指定でき、ここで、整可能ブロックは、最適性能およびロバスト性を実現するために調整しなければならない制御システムの構成要素である。例えば、制御システムの調整可能な構成要素は、本発明の実施形態における
図7の正準構造におけるブロック
iに対応できる。
【0094】
代表的な実施形態は、ゲイン、PID、伝達関数、および状態空間モデルなどの要素を制御するためのオブジェクトを用いることができる。さらに、これらのオブジェクトは、調整可能なパラメータに対応するように、またユーザによるパラメータの初期化、設定(例えば、固定)、および解放を可能とするために使用できる。
【0095】
一例として、ユーザは、テキスト形式のユーザインターフェースなどの、2つの入力と2つの出力とを備えた調整可能なゲインを生成するインターフェースと対話できる。モデリング環境220はインターフェース1100を生成できる。例えば、インターフェース1100は、表示装置250を介してユーザに表示されるテキスト形式編集ウィンドウでよい。
図11を参照すると、代表的な実施形態では、ユーザは、プロンプト(例えば>>)でコマンド1105を入力できる。
【0096】
コマンド1105に応答して、モデリング環境220は、インターフェース1100を介してユーザに表示できるオブジェクト1110を返すことができる。一実施形態では、モデリング環境220を構成して、モデリング環境220と互換性がある他の種類のオブジェクトを表示するのに使用される形式に似た形式でオブジェクトG 1110を表示できる。例えば、オブジェクトG 1110は、数値でなく調整可能パラメータの記述を含みうる「Gain」属性を除けば、制御システムツールボックス内の通常の線形時間不変(LTI)オブジェクトに類似していてもよい。例えば、
図12を参照すると、ユーザはコマンド1205を入力し、モデリング環境220はG.Gainの値を含みうる応答1210を返すことができる。
【0097】
続けて
図12を参照すると、応答1210はG.Gainのデフォルト値を含むことができる。代表的な実施形態では、デフォルト値は、ユーザが1つまたは複数の値をデフォルト値から別の値に変更するまでモデリング環境220で使用される現在の値としてよい。例えば、ゲインのデフォルト/現在「値」は、応答1210において[0 0]である。ユーザが、コマンド1205および1220を入力することでゲイン行列の最初の項目を1に設定できるようにしてもよい。例えば、ユーザは次を入力できる。
>> G.Gain.Value(1) = 1
>> G.Gain.Free(1) = false
【0098】
ユーザは次にG.Gainを入力でき、モデリング環境220は出力1225を返すことができる。
図12では、出力1225は、この新しい制約(「値」のデフォルト設定からユーザ指定設定への変更)を反映するゲイン行列のパラメータ化を示すことができる。
【0099】
代表的な実施形態では、ユーザは、調整可能PIDブロック、伝達関数ブロック、または状態空間ブロックなどの他の種類のブロックを、
図13に示したようにそれぞれコマンド1305、1310、および1315を用いて、インターフェース1300内で作成できる。
【0100】
代表的な実施形態は、ユーザに、典型的なまたは主たる必要性に対処する事前定義ブロックを与えることができる。ユーザによっては、事前定義ブロックが必要性を満たすには十分となることもある。しかし、他のユーザには、事前定義ブロックの構造を上回る構造を備えたブロックなど、より高度かつ/またはロバストな制御要素に対する必要性など別の必要性がある場合もあろう。
【0101】
代表的な実施形態を適合して、低域フィルタブロック、ノッチフィルタブロック、オブザーバー形式の状態空間ブロックなどの事前定義ブロックとは異なるブロックを必要とするユーザの必要性をサポートできる。例えば、幾つかの実施形態は、事前定義ブロックとは異なる一組のブロックを提供するように構成できる。しかし、こうした一組のブロックは、一定のユーザの必要性を満たすには多数のブロックを含む必要がある場合もあろう。本発明の一実施形態では、ユーザが単純な代数を用いて自分自身のパラメータ化を構築可能とするフレームワークが提供される。このフレームワークによって、ユーザのすべての必要性を網羅するために多数のブロックの組を維持する必要性がなくなる。
【0102】
一実施形態では、このフレームワークは次を含むことができる。
1. パラメータの基本概念を具体化する「パラメータ」オブジェクト。
2. パラメータへの通常の処理を
図7の正準構造に自動的に変換するコンピュータ代数。
【0103】
一例として、次の低域フィルタを考える。
【0104】
【数13】
上記式では、aが実パラメータである。式13は一次伝達関数である。しかし、上記で導入された伝達関数ブロック(
図13、コマンド1305)は、同じ係数aが分母および分子に存在するという制約(言い換えれば、DCゲインが1に制限される)を表現できない。代表的な実施形態では、ユーザは、次のようなコマンド1320(
図13)を入力することでこの制御要素を指定できる。
>> s = tf('s');
>> a = realp('a',2);
>> F = feedback(a/s,1)
【0105】
コマンド1320はモデリング環境220により処理され、@genssオブジェクト「F」が返され、ここでは返されたオブジェクトは、「a」を唯一のブロックとして
図7の正準構造を具現化している。ユーザはインターフェース1300にコマンド1325をタイプでき、モデリング環境220は、次のような応答1330を返すことができる。
ans =
a: [1x1 realp]
【0106】
本発明の実施形態は、「a」が通常の二倍値である場合と同じFを生成する構文を用いる事ができる。この特徴により、ユーザがパラメータと対話する新たなAPIを学ぶ必要性がなくなる。例として、制御システムツールボックスにおいて通常のLTIオブジェクトを操作するための構文は、パラメータおよびパラメトリックモデルを扱うように継ぎ目なく拡張される。本発明の実施形態は、所望時にパラメータと相互作用する代替的な構文をサポートすることもできる。例えば、パラメトリック低域フィルタF(s)を指定するための代替的な構文は、次のようにコマンド1335(
図13)を介して表現できる。
>> a = realp('a',2);
>> F = tf(a,[1 a])
【0107】
コマンド1335の代替的な構文は、制御システムツールボックスで通常の伝達関数を生成するための構文に類似しており(すなわち、対応しており)、これは次のようにコマンド1340を介して表現される。
>> a = 2;
>> F = tf(a,[1 a])
【0108】
1335または1340を入力すると応答1345を返すことができ、これは得られた伝達関数をインターフェース1300を介して表示する。
【0109】
本発明の実施形態を用いて、上述の例に比べより複雑な制御問題を解くこともできる。一例として、オブザーバー形式の状態空間コントローラは次のように与えることができる。
【0110】
【0111】
式14において、A、B、C、およびDは既知の行列であり、調整可能な変数はゲイン行列K(状態フィードバックゲイン)およびL(オブサーバーゲイン)である。コントローラのこの構造化状態空間パラメータ化は、例えばゲインスケジューリングに有用である。説明目的で、本発明の実施形態を使用する際には2つの測定値y、1つの制御信号u、および3つの状態xが存在すると仮定できる。ユーザは、コマンド1410(
図14)を次のようにタイプすることでこの調整可能ブロックを作成できる。
>> K = realp('K',zeros(1,3));
>> L = realp('L',zeros(3,2));
>> OBC = ss(A-B*K-L*C+L*D*K,L,-K,0)
【0112】
ここでユーザは次のコマンド1420をタイプできる。
>> OBC.Blocks
【0113】
モデリング環境220はこのコマンドを処理し、インターフェース1400を介して次のように応答1430を表示できる。
ans =
K: [1x3 realp]
L: [3x2 realp]
【0114】
図13に関連して述べた例と同様に、
図14に関連して述べる例は、モデリング環境220で通常の状態空間モデルを作成するための構文に似た(すなわち、実質的に同一の)構文を用いている。一実施形態では、
図14のコマンドを入力すると、次のように構造補償器を備えた
図7の正準構造をカプセル化する@genssモデルが得られる。
【0115】
【0116】
図7を再び参照すると、
図7の正準構造には2つの部分があり、具体的には(1)相互接続モデルH(s)および(2)調整可能ブロック
である。
図8-14および対応する記載では、調整可能ブロック(上記文の項目(2))を指定するためのツールおよび技法を説明した。相互接続モデルを構築するためのツールおよび技法は後述する。
【0117】
正準構造を導出するための代表的な技法
代表的な実施形態および技法を用いて2つ以上のアプローチをサポートできる。例えば、幾つかの実施形態および技法は、(1)モデリング環境(例えば、Simulinkモデリング環境、Simulink互換環境などのグラフィカルモデリング環境)内に存在するツールを用いてH(s)を自動的に抽出することをサポートできる。例えば、H(s)は、Simulinkモデリング環境内にある線形化ツールを使用して自動的に抽出できる。そして(2)、H(s)は、テキスト形式計算および/またはモデリング環境(例えば、MATLABプログラミング環境、MATLAB互換環境など)に関連した標準的なコマンドを用いて自動的に構築できる。例えば、H(s)は、ユーザがMATLABプログラミング環境と対話することで、ブロックダイアグラムを構築するためのコマンドを用いて構築できる。
【0118】
代表的な実施形態を用いて、グラフィカルモデリング環境のようなグラフィックベースの環境で調整可能ブロックを指定できる。一例として、ユーザはSimulinkモデリング環境と対話して、制御システムで使用するための調整可能ブロックを指定できる。
【0119】
Simulink環境では、H(s)は、(1)調整されるブロック
(
図7)と、(2)外部入出力信号wおよびz(
図7)とが分かれば完全に特定できる。調整可能ブロックがSimulinkブロックとしてブロックダイアグラムに存在する場合は、この情報は次のように容易に与えられる。
1. ブロック
それぞれへのブロックパスのリスト。
2. wおよびzを構成する信号がブロックダイアグラムを出入りする場所を指定する線形化入出力点。
【0120】
この情報が指定されると、LINLFTなどのコマンドが計算を実行し、H(s)をLTIモデルとして返す。上述の処理手順は、線形モデルおよび非線形モデルに適用できる。この処理手順が非線形モデルに適用されると、制御アーキテクチャの線形化モデルが生成される。
【0121】
MATLAB環境のようなテキスト形式プログラミング環境におけるH(s)の導出は、調整可能ブロックの指定に関して上述したコンピュータ代数に依存することがある(例えば、
図11-14およびに関連した記載)。代表的な実施形態により、ユーザは通常のLTIモデルを組み合せるための典型的な演算を拡張して(例えば、MathWorks制御システムツールボックスで行うことができるように)、パラメータオブジェクト、パラメトリックブロック、および
図7に示した種類のパラメトリックLFTモデルを扱うことも可能となる。典型的な演算処理の例には、限定するわけではないが次が含まれる。
・通常の代数:プラス、マイナス、乗算、除算、逆数など。
・相互接続演算:入力または出力連結、付加、並列、直列、フィードバック、lft、接続など。
【0122】
代表的な実施形態は、オブジェクト指向フレームワーク並びに静的および動的一次分数変換(LFT)モデル(
図7に示したように、行列またはLTIモデルと、ブロック対角配列の調整可能ブロックとのLFT相互接続として定義される)を使用する。代表的な実施形態は、ユーザがダブル配列、LTIモデル、パラメータ、調整可能ブロック、およびLFTモデルを結合可能とするオブジェクトシステムを生成できる。例えば、LFTモデルは最も一般的なモデルであり、@genmat、@genss、および@genfrdのような、それぞれダブル行列、状態空間モデル、周波数応答データモデルなどのHの3つの異なる数値表現に対応する3つの種類とすることができる。得られるオブジェクトシステムは閉じており、調整可能(パラメトリック)要素を備えたLTIモデルの実質的にいかなる組合せも、
図7の正準構造を備えた@genssまたは@genfrdモデルを生成する。
【0123】
図15は、本発明の代表的な実施形態により提供されるオブジェクトベースのフレームワークを用いて対話可能な実行可能グラフィカルモデル1500を示す。
図15は、複数の実行可能ブロックを備えることができるモデル1500を含んでいてもよい。スコープブロック1505および蒸留塔(プラント)ブロック1510(以下、プラントブロック1510と呼ぶ)などのモデル1500内の幾つかのブロックは調整可能ではない。対照的に、ゲインブロック1515並びにPIコントローラブロック1520および1525などのモデル1500内の他のブロックは調整可能とすることができる。モデリング環境220の実施形態は、第一種類の視覚的識別子(線の太さ、シェーディング、色、フィルパターン、テキストパターンなど)を用いて調整可能ブロックを示し、第二種類の視覚的識別子を用いて非調整可能ブロックを示すように構成できる。
【0124】
図15を続けて参照すると、プラントブロック1510のLTIモデルGをモデル1500内に設けることができ、ユーザはモデル1500と対話して、rからyへの閉ループ伝達のLFTモデルを構築できる。例えば、ユーザは、次のようにコマンド1605および1610(
図16A)を入力できる。
% 調整可能ブロックを指定する
>> DM = ltiblock.gain('Decoupler',eye(2));
>> PI_L = ltiblock.pid('PI_L','pi');
>> PI_V = ltiblock.pid('PI_V','pi');
および
% 閉ループ伝達Tを導出する
>> C = append(PI_L,PI_V) * DM;
>> T = feedback(G * C , eye(2));
【0125】
モデリング環境220は、コマンド1605および1610を処理し、@genssモデルTを生成できる。ユーザはモデリング環境220と対話し、次のようにコマンド1615を入力することで、モデルTをその部分であるHおよびBに分解できる(
図7に示したように)。
>> [H,B] = getLFTModel(T)
【0126】
モデリング環境220はコマンド1615を処理し、次のように応答1620を返すことができる。
a =
x1 x2
x1 -0.01333 0
x2 0 -0.01333
b =
u1 u2 u3 u4 u5 u6
x1 0 0 2 0 0 0
x2 0 0 0 2 0 0
c =
x1 x2
yD 0.5853 -0.576
yB 0.7213 -0.7307
? -0.5853 0.576
? -0.7213 0.7307
? -0.5853 0.576
? -0.7213 0.7307
d =
u1 u2 u3 u4 u5 u6
yD 0 0 0 0 0 0
yB 0 0 0 0 0 0
? 1 0 0 0 1 0
? 0 1 0 0 0 1
? 1 0 0 0 0 0
? 0 1 0 0 0 0
【0127】
連続時間モデル。
B =
[1x1 ltiblock.pid ]
[1x1 ltiblock.pid ]
[2x2 ltiblock.gain]
【0128】
調整可能パラメータを最適化するための代表的な技法
一旦、ユーザが、モデル1500およびモデリング環境220と対話して、設計要件を重み付き閉ループモデルT(s)について次のH∞制約
として定式化すると、ユーザは次のようにコマンドを入力することでオプティマイザを呼び出すことができる。
>> T = hinfstruct(T0,options)
ここで、T0は未調整閉ループモデルであり、optionsはオプティマイザのオプションセットである。モデリング環境220は、このコマンドを処理し、さらに、調整可能パラメータがオプティマイザにより発見された一定の値に設定された調整済み閉ループモデルTを返す。例えば、一実施形態では、すべての調整可能パラメータは、オプティマイザ360により決定された最良値に設定できる。
【0129】
ユーザは、1つまたは複数の調整可能ブロックの調整済み値にアクセスを望むこともあり得る。例えば、一実施形態では、ユーザは、次のようにコマンドを入力することで各調整可能ブロックの調整済み値にアクセスできる。
>> T.Blocks
【0130】
場合によっては、C0は、1つまたは複数の調整可能ブロックを含む補償器からなることもある。こうした場合、ユーザは、本発明の代表的な実施形態を用いて、調整済みパラメータ値をC0に関しLETモデルに「プッシュ」できる。例えば、ユーザは次のコマンドをタイプできる。
>> C = replaceBlock(C0,T.Blocks)
モデリング環境220はこのコマンドを処理し、C0における関連するパラメータ値を、Tにおけるそれらの調整済み値と自動的に置換できる。代表的な実施形態は、SimulinkまたはSimulink互換モデルのようなモデルにおけるブロックパラメータの調整の効率化を容易にするヘルパー関数などの関数を含むことができる。一例として、かつSimulinkを参照すると、
・LINLFTを拡張して、調整の対象として選択されたSimulinkブロックに基づいて適切な調整可能ブロックオブジェクト(ltiblock.gain、ltiblock.tf・・・)を自動的に選びかつ構成できる。
・ヘルパー関数を用いて、hinfstructにより計算された調整済みパラメータ値をSimulinkブロックにプッシュバックできる。
ヘルパー関数は、文書化された関数が動作する際に、それら文書化関数により使用される文書化されていない関数のような関数を含むことができる。
【0131】
結果を検査するための代表的な技法
代表的な実施形態は、調整可能ブロックおよびLFTモデルを通常のLTIモデルのピアとして扱うことができる。こうすることにより、代表的な実施形態は、STEPまたはBODEなどの標準的なコマンドを用いて調整済み制御システムを直接解析できる。例えば、ユーザは次のコマンドをタイプできる。
>> bode(T) % Tのボード応答をプロットする
【0132】
モデリング環境220はこのコマンドを処理し、表示装置を介してユーザに1つまたは複数のボードプロットを表示できる。
【0133】
代表的な実施形態により、さらに、ユーザは、標準的なtf()、ss()、zpk()、frd()、pid()コマンドを用いて調整可能要素を通常のLTIモデルに変換できる。例えば、FがTを構成する調整可能ブロックの1つであれば、ユーザはFを次のようなコマンドを使って伝達関数に変換できる。
>> Ftuned = tf(T.Blocks.F) % Fの調整済み値を伝達関数として得る
【0134】
上述のコマンドおよび技法は、ユーザが従来のツールと対話する際には利用できないロバストな調整機能をユーザに提供する。これら技法/コマンドは、テキスト形式またはグラフィカルなモデリング環境をユーザにとって過剰に複雑または混乱の原因とすることなくロバストな機能を提供する。
【0135】
本発明の一実施形態を実施するための代表的な作業の流れ
図17は、F14ジェット戦闘機で使用されるアナログ自動操縦装置の代表的モデル1700を示す。本発明の代表的な実施形態および技法をモデル1700に適用することで、F14のアナログ自動操縦装置を調整できる。例えば、実施形態および技法は、Simulinkモデリング環境を用いてF14の長手方向軸に関して自動操縦装置を調整できる。モデル1700は、標準的なカスケードループ自動操縦装置を実装できるコントローラブロック1705を含むことができる。
【0136】
図17を参照すると、モデル1700は、ピッチ速度qを指令する内側ループ1715と、迎え角アルファを指令する外側ループ1715を含むことができる。
【0137】
図18は、コントローラブロック1705をより詳細に示す。
図18に示すように、ウィンドウ1705-Aは、
図17のコントローラブロック1705に含まれる構成要素および接続を含む。
図18では、この自動操縦装置は固定構造体を備え、調整の必要があるかもしれないゲインおよび前置フィルタからなる。例えば、調整可能ゲインブロック1820、1825、および1830は、三角形の形状およびシェーディングをつけて表示されており、このシェーディングはゲインブロックが調整可能であることをユーザに示すものとすることができる。前置フィルタ1805、1810、および1815は、四角形の形状およびシェーディングをつけて表示してよく、このシェーディングは前置フィルタブロックが調整可能であることをユーザに示すものとすることができる。
図18は、調整可能なシェーデッドPI補償器1840も含むことができる。本発明の実施形態は、調整可能なゲインブロックを示すために第1色および/またはシェーディング密度を用い、調整可能な前置フィルタブロックおよび/またはPI補償器ブロックを示すために第2色および/またはシェーディング密度を用いてもよい。
【0138】
代表的な実施形態および技法により、ユーザは選択した制御要素を自動的かつ一緒に調整して所望レベルの性能およびロバスト性を実現できる。
【0139】
図19を参照すると、ユーザは次のコマンド1905
s = tf('s');
pKa = realp('Ka',0);
pKq = realp('Kq',0);
pKf = realp('Kf',0);
pKi = realp('Ki',1);
pTal = realp('Tal',1);
pW1 = realp('W1',0);
pW2 = realp('W2',0);
を入力して
図17および18の自動操縦装置のパラメータを定義できる。
図19では、ユーザは、すべてのパラメータを実スカラーパラメータとして定義することを選択できる。コマンド1905では、ユーザは、ほとんどのパラメータをゼロに初期化する選択もできる。
【0140】
ユーザはモデリング環境220と対話し、積分器と、アルファ前置フィルタと、ピッチ前置フィルタとをコマンド1905のパラメータを含む表現として生成できる。例えば、ユーザは、コマンド1910を次のように入力して積分器と、アルファ前置フィルタと、ピッチ前置フィルタとを生成できる。
Integrator = pKi/s; % Ki/s
AlphaSensor = tf(1,[pTal 1]); % 1/(Tal*s+1)
PitchFilter = tf([1 pW1],[1 pW2]); % (s+W1)/(s+W2)
【0141】
オブジェクトを追跡するための代表的な技法
ユーザは、
図17および18の自動操縦装置モデルと対話する際に、追跡オブジェクトをH∞制約として定式化することを望むかもしれない。所望の帯域幅は1 rad/s(ラジアン/秒)とすることができ、ユーザは、ほとんどオーバーシュート無しで迎え角アルファに操縦桿入力(パイロット要求)を追跡させたいと望むこともあろう。代表的な実施形態および技法を用いて、ユーザの要件を外側ループ(アルファ)1715(
図17)の開ループ形状について定式化できる。
【0142】
ユーザは、次のコマンド1915を入力することで、自分が現実的と考える目標ループを定義できる。
wc = 1; % 目標クロスオーバー
LS = (1+0.01*s/wc)/(0.01+s/wc);
bodemag(LS,{1e-3,1e3}), grid, title('Target loop shape')
【0143】
モデリング環境220はコマンド1915を処理し、GUI2000を介して
図20に示したボードプロットを表示できる。GUI2000は、帯域幅が概ね1 rad/s (0dBクロスオーバー)となり、かつ1% を超過しない可能性が高い定常状態エラー(すなわち、w=0で40dBゲイン)を保証するループ形状を表示する。外側ループは積分器を含んでいないので(積分器は
図17のピッチ速度ループに含まれている)、ユーザは、w=0でより大きなゲインを現実的には期待できないことを理解するかもしれない。
【0144】
(r, n, d)をアルファにマッピングする閉ループモデルであって、rがアルファコマンドであり、nがアルファの測定ノイズであり、dがアクチュエータに入る外乱である閉ループモデルを導出して、上述の代表的なループ整形技法が使用できるようにする必要があるかもしれない。代表的な一実施形態では、ユーザは、(1)モデル中の調整済みブロックを列挙し、(2)信号r、n、d、アルファを線形化入出力(I/O)としてマーキングし、(3)LINLFTコマンドを用いて(r, n, d)からy=alphaへの閉ループ伝達のLEFモデルを抽出することができる。一例として、ユーザは、
図21に示したコードを生成できる。
例えば、ユーザは、次のようにテキストをインターフェース2100に入力することでコード部分2105および2110を作成できる。
% 調整済みブロック
TunedBlocks = {...
'f14/Controller/Alpha-sensor Low-pass Filter',...
'f14/Controller/Pitch Rate Lead Filter',...
'f14/Controller/Ka',...
'f14/Controller/Kq',...
'f14/Controller/Kf',...
'f14/Controller/Integrator'};
%
図4の構造化補償器
C = blkdiag(AlphaSensor,PitchFilter,pKa,pKq,pKf,Integrator);
linios = [...
linio('f14/Controller/Stick Prefilter',1,'in') ; ... % r
linio('f14/Aircraft Dynamics Model',4,'outin') ; ...% アルファ,n
linio('f14/Controller',1,'in') ]; % d
H = linlft('f14',linios,TunedBlocks);
% 閉ループ伝達[r;n;d] -> y=アルファ
Ta0 = lft(H,C);
【0145】
ここで、ユーザはエラー信号e = r-yを必要とする場合があり、これは次を入力することでT10の出力として加えることができる。
T10 = [0 0 0;1 0 0] + [1;-1] * Ta0;
【0146】
ユーザは、上述のループ整形重みを加えることでH∞制約として定式化を完了できる。例えば、ユーザは、次のようにコマンド2205をインターフェース220(
図22)に入力できる。
beta = 3;
Win = blkdiag(1,1/LS,beta);
Wout = blkdiag(1,LS);
T10 = Wout * T10 * Win;
T10.InputName = {'r','n','d'};
T10.OutputName = {'y','e'};
【0147】
代替的な実施形態では、こうしたループ整形重みは、ユーザ入力を必要としなくてもモデリング環境2200によってプログラムにより付加させてもよい。
【0148】
図21および22に関連した入力がモデリング環境220に入力されると、
図20のループ整形目標は次のH∞制約によって獲得できる。
.
【0149】
ロバスト性目的を識別するための代表的な技法
図17のカスケードループ構造は、2つの測定値(アルファおよびq)と1つの制御(昇降舵たわみデルタ)とを備えたMIMO制御構造である。幾つかの例では、ユーザは各SISOループの安定余裕を評価しようとするかもしれないが、そうしたアプローチでは十分なMIMO余裕が保証できるとは限らない。本発明の実施形態によりサポートされたより信頼性および正確性が高いアプローチは、次の感度関数のピークゲインが1に近い状態を維持することを保証する。
【0150】
【数16】
式16では、Gはデルタを(アルファ, q)にマッピングし、Kは(アルファ, q)からデルタを生成する集約コントローラ(aggregate controller)である。言い換えれば、第2の要件は次の通り。
【0151】
【0152】
上述のように、
の閉ループモデルは、感度関数Sがプラントの出力(アルファ, q)において測定されることに注視することにより導出でき、かつLINLEFTを使用できる。例えば、ユーザはコマンド2210(
図22)を入力できる。
linios = [...
linio('f14/Aircraft Dynamics Model',4,'inout') ; ...% アルファ
linio('f14/Aircraft Dynamics Model',3,'inout') ]; % q
H = linlft('f14',linios,TunedBlocks);
S0 = lft(H,C);
T20 = S0;
【0153】
代表的な調整技法
T2の閉ループモデルが導出されると、ユーザは、コントローラパラメータの調整を望むかもしれない。代表的な実施形態は、追跡およびロバスト性に関するH∞制約の単一制約への結合を促進する。例えば、この単一の制約はユーザが次を定義すると表現できる。
T0 = blkdiag(T10,T20);
【0154】
モデリング環境220は、HINFSTRUCT ソルバに、オプティマイザ360を用いて5回の最適化を実行するよう命令できる。例えば、オプティマイザ360は、局所極小において早期終了の危険を軽減するため5つの異なる開始点からこれら5回の最適化を実行できる。さらに、オプティマイザ360は、高ゲイン設計を防ぐため、閉ループポールの大きさを50に限定できる。ユーザは、次のコマンドを入力することで上述の最適化を実行するようにオプティマイザ360を構成できる。
Options = hinfstructOptions('Display','final','RandomStart',4,'SpecRadius',50);
【0155】
ユーザは、次のコマンドを入力することで指定した最適化を実行できる。
T = hinfstruct(T0,Options);
【0156】
モデリング環境220は、これらコマンドが実行されると調整済み目標Tを返すことができる。
【0157】
解を検査するための代表的な技法
ユーザはコントローラ設計を妥当性検証したいと望むこともあり、代表的な実施形態では、ユーザがインタラクティブに検証を実行できる。一実施形態では、この設計の検証は、調整済みパラメータ値を閉ループ伝達Ta0 (アルファループ) およびS(感度関数)にプッシュすることで実行できる。ユーザは、次のような2つのコマンドを入力できる。
Ta = replaceBlock(Ta0,T.Blocks);
S = replaceBlock(S0,T.Blocks);
【0158】
モデリング環境220はこれらコマンドを処理し、アルファループの閉ループ応答をシミュレートできる。
【0159】
図23は、モデル1700のアルファループの閉ループ応答を示す代表的なプロット2300を図示する。
例えば、ユーザは次のコマンド
step(Ta(1,1)) % アルファへのアルファコマンド
を入力して、プロット2300を表示装置250を介して表示させられる。
【0160】
さらに、代表的な実施形態では、ユーザは、Sのピークゲインが0dBに近くなることを検証できる。例えば、ユーザは次をタイプできる。
sigma(S) % 感度関数のピークゲイン
【0161】
モデリング環境220はこのコマンドを処理し、表示装置250を介して
図24のプロット2400を表示できる。
【0162】
さらに、代表的な実施形態では、モデリング環境220と対話することによって、ユーザは調整済みパラメータ(例えば、Kq)の値にアクセスできる。例えば、ユーザは、
T.Blocks.Kq.Value % Kqゲインの調整値
をタイプでき、このコマンドが処理されるとモデリング環境220は応答を生成する。例えば、次をユーザに表示できる。
ans =
4.3486e-001
【0163】
代表的な処理
図25は、本発明の1つまたは複数の実施形態を実施するための代表的な処理を示す。ユーザは、1つまたは複数の調整可能な構成要素を含むモデルを作成できる(動作2505)。例えば、ユーザはグラフィカルモデルと対話でき、信号を表す線で接続された多くの構成要素を含む自由形式グラフィカルモデルを構築してよい。このモデルは、1つまたは複数のフィードバックループを含むことができ、さらに、プラントとして表現できる固定構成要素と、コントローラを介して表現できる1つまたは複数の調整可能な構成要素とを含むことができる。さらに、ユーザは、固定および調整可能な構成要素を生成するためのコマンドをユーザ自身が入力するテキスト形式環境を用いてモデルを生成できる。一実施形態では、本発明の一実施形態が既存のモデルを受け取るような場合は、動作2505はオプションとしてもよい。
【0164】
モデルが識別されると、このモデルに関連付けられた設計要件を受け取ることができる(動作2510)。例えば、ユーザは、このモデルに関する開ループ応答の所望のゲインプロファイルを指定し、構造化コントローラにグループ化できるモデル内の調整可能ブロックを指定し、かつ/またはモデルの閉ループ表現への入力、出力、および外乱のモデル内の位置を識別できる。代替的には、ユーザは、このモデルに関する設計要件を指定するために使用できるテキスト形式環境におけるコマンドと対話してもよい。別の実施形態では、設計要件を、APIなどを介してプログラムによってデータ格納から読み込んでもよい。
【0165】
設計要件は、本発明の代表的な実施形態を用いてH∞制約に定式化できる(動作2515)。例えば、本発明の一実施形態は、ユーザ入力装置を介して受け取られた設計要件(例えば、ループ形状目標)を、モデルの構成要素の調整に用いるH∞制約に自動的に変換できる。コンピュータ205は、H∞合成技法を用いて処理演算を実行し、プラント、コントローラ、および伝達関数を抽出できる(動作2520)。一実施形態では、このコントローラは、ブロック対角構造に配置される調整可能構成要素の調整可能なパラメータを含むことができる。例えば、設計要件のH∞制約への変換では、
図7に示したように制御アーキテクチャを正準構造にマッピングすることが含まれうる。
【0166】
変換後は、プラント、コントローラ、および伝達関数は、このモデルのパラメータを調整するために使用可能なオプティマイザと互換性がある形式とすることができる。この互換形式はこのオプティマイザに入力可能であり、このオプティマイザは、構造化コントローラに関連付けられた構成要素を調整できる(動作2525)。一実施形態では、このオプティマイザは、未調整構成要素を受け取ることができる。
【0167】
このオプティマイザは、調整済み構成要素を含む結果を生成できる(動作2530)。例えば、調整済み構成要素は、動作2510で受け取られた設計要件を満足しつつ、このモデルの安定性目標も満足できる。
【0168】
このオプティマイザが生成した結果は検証して、この結果によって、このモデルが所望の様態で動作可能となることを保証できる(動作2535)。例えば、結果の妥当性検査により、オーバーシュート余裕が超えられてしまうことがなく、所望の応答速度が達成され、安定余裕が維持され、所望のループゲインが達成され、所望の外乱阻止が達成されることなどが保証される。
【0169】
代表的なアーキテクチャ
図26は、
図2のコンピュータ205を実装するのに使用可能な代表的なコンピュータアーキテクチャを示す。
図26は、コンピュータ205に対応するエンティティの代表的なダイアグラムである。図示したように、このエンティティは、バス2610、処理ロジック2620、主メモリ2630、読出し専用メモリ(ROM)2640、記憶装置2650、入力デバイス2660、出力デバイス2670、および/または通信インターフェース2680を含むことができる。バス2610は、このエンティティの構成要素間での通信を可能とするパスを含むことができる。
【0170】
処理ロジック2620は、命令を解釈かつ実行可能なプロセッサ、マイクロプロセッサ、または他の種類の処理ロジック(書替え可能ゲートアレイ(FPGA)、グラフィック処理装置(GPU)、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、特定用途向きプロセッサ(ASIP)、プログラマブル論理回路(PLD)等)を含むことができる。一実装例として、処理ロジック2620は、シングルコアプロセッサまたはマルチコアプロセッサを含むことができる。別の実装例では、処理ロジック2620は、単一の処理装置または、処理クラスタまたは計算グリッドなどの一群の処理装置を含むことができる。さらに別の実装例では、処理ロジック2620は、互いに対してローカルまたはリモートでよい多数のプロセッサを含むことができ、処理時に1つまたは複数のスレッドを使用可能としてよい。
【0171】
主メモリ2630は、ランダムアクセス記憶装置(RAM)か、情報および処理ロジック2620が実行するための命令を記憶できる他の種類の動的記憶装置を含むことができる。ROM2640は、ROM装置か、処理ロジック2620が使用するための静的情報および/または命令を記憶できる他の種類の静的記憶装置を含むことができる。記憶装置2650は、磁気固体および/または光学記録媒体並びにその対応するドライブ、または処理ロジック2620が使用するための静的情報および/または命令を記憶できる他の種類の静的記憶装置を含むことができる。
【0172】
入力デバイス2660は、オペレータが情報を、キーボード、マウス、ペン、タッチパッド、加速度計、マイクロフォン、音声認識、カメラ、生体計測機構などに入力可能とするロジックを含むことができる。一実施形態では、入力デバイス2660は、入力デバイス240と一致していてもよい。
【0173】
出力デバイス2670は、情報をオペレータに出力する表示装置、プリンタ、スピーカ、ハプティックインターフェースなどの機構を含むことができる。通信インターフェース2680は、このエンティティが他のデバイスおよび/またはシステムと通信可能とする送受信装置のようなロジックを含むことができる。例えば、通信インターフェース2680は、ネットワークを介して他の装置またはシステムと通信するための機構を含むことができる。
【0174】
図26に示したエンティティは、主メモリ2630などのコンピュータ可読媒体に記憶されているソフトウェア命令の処理ロジック2620による実行に応答して演算処理を実行できる。コンピュータ可読媒体は、物理的(たとえば有体の)または論理メモリ装置として定義してよい。これらソフトウェア命令は、記憶装置2650などの他のコンピュータ可読媒体または他の装置から通信インターフェース2680を介して主メモリ2630に読み込み可能である。主メモリ2630に含まれたソフトウェア命令により、これらソフトウェア命令が処理ロジック2620により実行されると、この処理ロジックが本明細書に記載の技法を実行可能となる。代替的には、本明細書に記載の技法を実装するため、ソフトウェア命令に代えてまたはそれらと組み合わせてハードワイヤード回路を使用してもよい。よって、本明細書に記載した実装例は、ハードウェア回路またはソフトウェアの特定の組合せに限定されるものではない。
【0175】
図26はこのエンティティの代表的な構成要素を示しているが、他の実装例では、このエンティティは、
図26に示したものより少ない、異なる、または付加的な構成要素を含んでもよい。さらに別の実装例では、このエンティティの1つまたは複数の構成要素が、このエンティティの1つまたは複数の他の構成要素により実行されると説明されている1つまたは複数のタスクを実行してもよい。
【0176】
代表的な分散実施形態
分散実施形態は、2つ以上の処理リソースを用いて処理を実行できる。例えば、幾つかの実施形態は、単一の処理装置内で2つ以上のコアを用いて処理を実行し、単一の筐体内に設けられた多数の処理装置にわたり処理を分散し、かつ/またはネットワークにより接続された多種類の処理ロジックにわたり処理を分散してもよい。
【0177】
図27は、分散計算環境を用いて、クライアント装置(例えばコンピュータ205)のために非線形モデルのコントローラのインタラクティブな設計をサポートできる代表的なシステムを示す。システム2700は、コンピュータ205と、ネットワーク2730と、サービスプロバイダ2740と、リモートデータベース2750と、クラスタ2760とを含むことができる。
図27の実装例は例示的なものであって、本発明の他の分散型実装例は、
図27の代表的な構成と比べより多くの装置および/若しくはエンティティ、より少ない装置および/若しくはエンティティ、並びに/または構成が異なる装置/エンティティを含むことができる。
【0178】
コンピュータ205は、グラフィカルユーザインターフェース(GUI)2710とモデリング環境220とを含むことができる。GUI 2710は、ユーザがコンピュータ205および/またはリモートデバイス(例えばサービスプロバイダ2740)と対話することを可能とするインターフェースを含むことができる。代表的な実施形態では、GUI 2710は、
図4-6および15-18のインターフェースと似たものでよい。
【0179】
ネットワーク2730は、データ(例えば、パケットデータまたは非パケットデータ)を伝送可能な任意のネットワークを含むことができる。ネットワーク2730の実装例は、インターネットプロトコル(IP)、非同期転送モード(ATM)、周期式光ファイバ網(SONET)、ユーザデータグラムプロトコル(UDP)、IEEE 802.10などの実質的にあらゆるネットワークプロトコルを用いて動作可能なインターネットなどのローカルエリア・ネットワーク(LAN)、メトロポリタン地域ネットワーク(MAN)および/またはワイドエリアネットワーク(WAN)を含むことができる。
【0180】
ネットワーク2730は、ルータ、スイッチ、ファイヤーウォール、および/またはサーバ(図示しない)等のネットワーク装置を含むことができる。 ネットワーク2730は、ワイヤード導体および/または光ファイバを用いたハードワイヤードネットワークとしてもよいし、かつ/または自由空間光、無線周波数(RF)、かつ/若しくは音響透過路を用いたワイヤレスネットワークでもよい。一実装例では、ネットワーク2730は、インターネットのような実質的に開放された公衆網でよい。別の実装例では、ネットワーク2730は、企業仮想ネットワーク(原語:corporate virtual network)のようなより制限されたネットワークでもよい。本明細書に記載したネットワークおよび/またはネットワーク上で動作する装置の実装例は、特定のデータタイプ、プロトコル、アーキテクチャ/構成などに限定されるものではない。例えば、一実施形態では、ネットワーク2730は、量子互換ネットワーキングプロトコルを使用する量子ネットワークでよい。
【0181】
サービスプロバイダ2740は、サービスを他の装置が利用可能とする装置を含むことができる。例えば、サービスプロバイダ2740は、1つまたは複数のサービスを、サーバおよび/または他の装置を用いる送信先に提供するエンティティを含む。サービスは、演算を行うため送信先によって実行される命令を含むことができる。代替的には、サービスは、送信先のために演算を行うため送信先のために実行される命令を含むこともできる。
【0182】
一例として、サービスプロバイダが、1つまたは複数のウェブベースサービスをコンピュータ205などの送信先に提供するウェブサーバを運用すると仮定する。このウェブベースサービスにより、コンピュータ205は、サービスプロバイダが運用するハードウェアを用いて電気的および/または機械的システムの分散シミュレーションを実行できる。例えば、コンピュータ205のユーザは、サービスプロバイダのハードウェアを使用してシステムモデルのPIDコントローラをインタラクティブに設計できる。一実装例では、顧客(ユーザ)はサービス契約に基づいてサービスを受けることができる。サービス契約は、月毎の契約、利用毎の料金、サービスプロバイダ2740と顧客との間で交換された情報量に基づく料金、顧客が使用したプロセッササイクルの数に基づく料金、顧客が使用したプロセッサの数に基づく料金などの取り決めを含むことができる。
【0183】
リモートデータベース2750は、コンピュータ205などの他の装置が使用するための機械可読情報を記憶する装置を含むことができる。一実施形態では、リモートデータベース2750は、システムモデル、コントローラなどに関する情報を含んだデータ構造を記憶する記憶装置(例えば、ハードディスク、光ディスク、ソリッドステート記憶装置など)のアレーまたはグリッドを含むことができる。
【0184】
クラスタ2760は、リモート処理(例えば、分散処理、並行処理など)を実行するために使用できる実行回路2770などの一群の処理装置を含むことができる。実行回路2770は、コンピュータ205のような要求装置のために処理演算を実行するハードウェアおよび/またはハードウェア/ソフトウェアに基づく装置を含むことができる。一実施形態では、実行回路2770はそれぞれ部分的な結果を計算でき、これら部分的な結果はモデルの全体的な結果へ結合可能である。
【0185】
代表的な実装例
一実施形態は、コンピュータ実装方法または非一時的コンピュータ可読媒体上に存在する機械実行可能命令を含むことができる。この方法および/または命令は、任意のフィードバック制御構造において設計パラメータを調整するために実装でき、この場合は、コンピュータ実装方法は、例えばローカルマシンのようなスタンドアローンを用いてまたは分散環境(例えば、複数コンピュータ装置のクラスタまたはグリッド)において実施できる。
【0186】
例えば、コンピュータ実装方法として実行する場合、この方法は、調整される1つまたは複数の自由パラメータを備えた1つまたは複数の調整可能な構成要素を識別することを含むことができる。これら調整可能な構成要素は、上記任意のフィードバック制御構造のテキスト形式のまたはグラフィカルなモデルの一部とすることもできる。この方法は、上記1つまたは複数の調整可能な構成要素を含む1つまたは複数のフィードバックループを識別することもさらに含むことができる。
【0187】
この方法は、上記の任意フィードバック制御構造を標準形式に変換することをさらに含むことができ、上記標準形式は、上記の任意フィードバック制御構造における既知および固定構成要素を含む集中線形モデルと、上記調整可能な構成要素を用いて形成された収集体とを含む。これら調整可能な構成要素から形成された収集体は、ブロック対角様式にグループ化または配置できる。この方法では、上記のブロック対角配列における構成要素は、上記のブロック対角配列における個々の構成要素またはパラメータがユーザに可視であり、アルゴリズムにとって利用可能であり、読み出しまたは書き込み可能であるという意味で、アクセス可能とすることができる。
【0188】
これら方法は、H∞目標または制約を使用して設計目標および/または設計要件を表現できる。この方法の一実装例では、これらH∞目標または制約は、閉ループシステムにおける1つまたは複数の二地点間伝達関数に関する。この方法は、さらに、調整可能な構成要素をパラメータ化できる。例えば、この方法は、調整可能な構成要素を静的にまたは動的にパラメータ化できる。調整可能な構成要素がパラメータ化されると、この方法は、このパラメータ化に基づいてこれら調整可能な構成要素の自由パラメータと相互作用できる。
【0189】
この方法は、調整器を用いて上記フィードバック制御構造を調整できる。例えば、一実装例では、この方法は、非平滑H∞最適化アルゴリズムのクラスである調整器を用いて上記のフィードバック制御構造を調整できる。この調整器は上記の標準形式に対して作用でき、上記調整可能な構成要素がブロック対角形式となったときに調整可能パラメータに作用できる。さらに、上記の調整器は、これらパラメータを調整して上記のH∞目標を最小化しかつ/または上記のH∞制約を実現することができる。
【0190】
このコンピュータ実装方法は、MATLAB互換環境のような技術計算環境で実装できる。さらに、この方法は、Simulink互換環境またはLabview互換環境の様なテキスト形式のまたはグラフィカルな環境で実装してもよい。さらに、幾つかの実装例は、例えば調整可能な構成要素、固定構成要素、接続、アルゴリズムなどを含みうるブロックの組と相互作用できる。
【0191】
このコンピュータ実装方法は、任意のフィードバック制御構造のインタラクティブな設計および調整をサポートするような様態で実装することも可能である。例えば、ユーザによる実時間のインタラクティブな設計および調整動作をサポートする方法を実装することもできる。この方法の実装例は、FPGA、ASIC、ASIP、PLD、GPU, DSP、マルチコアデバイス、分散計算リソースなどを用いて実装してもよい。
【0192】
ユーザに代わって多目的または多要件設計タスクを単純化するため、この方法の実装例では、さらに、ユーザまたは装置が複数の二地点間閉ループ伝達関数で別個の目標または制約を指定できる。本発明の幾つかの実装例は、ユーザまたはユーザのグループにより用いられる従来の作業の流れをサポートすることによってこれを行う。この方法を拡張して、設計要件を二地点間伝達関数に適用することを含むことができ、この適用は、多目的および多要件設計タスクの定式化を促進する。この方法は、所望なときにオブジェクト指向フレームワークい導入できる。
【0193】
本発明の幾つかの実施形態は、コンピュータ実装方法の動作および/または非一時的コンピュータ可読媒体上に存在する実行可能命令を含むことができる。例えば、媒体/実行可能命令として実装されているときは、この媒体は、実行されると本発明の一実施形態または実装例を実行する命令を格納することができる。一実装例では、これら実行された命令は、ユーザに代わって本発明の方法または技法を実行できる。一実装例では、この媒体は、プロセッサ上で実行されると、調整可能な構成要素を静的に指定し、調整可能な構成要素を動的に指定し、かつ/または上記調整可能な構成要素のパラメータと相互作用するためのAPIを実装する実行可能命令を保持できる。一実装例では、このAPIはオブジェクトベースでもよい。
【0194】
実行されると、これら実行可能命令は、所定組の構成要素のパラメータ化を実現する所定のインターフェースを識別できる。さらに、これら命令は、一組の算術演算を実装しかつ/または一組のヘルパー関数を実装できる。さらに、上記の実行された命令は、これら算術演算およびヘルパー関数を用いて調整可能な構成要素を動的に作成できる。一実装例では、この動的な作成は、基本パラメータ構成要素および固定係数または固定構成要素を組み合わせることを含むことができる。
【0195】
さらに、実行された命令は、調整可能な構成要素のパラメトリックモデルを生成できる。一実装例では、上記のパラメトリックモデルは、調整可能な構成要素の調整可能なパラメータに対応でき、ユーザ入力がこれら調整可能なパラメータと相互作用可能とする。例えば、ユーザ入力は調整可能なパラメータを初期化し、調整可能なパラメータを固定し、または調整可能なパラメータから選択したものを解放できる。
【0196】
本発明の別の実施形態は、コンピュータ実装方法としてまたは1つ若しくは複数の非一時的可読媒体上に存在する実行可能命令を介して実装できる。この実施形態は、標準的な形式の任意フィードバック制御構造を構築し、かつ設計要件のH∞定式化で使用される二地点間伝達関数を指定するためのアプリケーションプログラムインターフェース(API)を、実装し、導入し、動作させたりできる。このAPIの実施形態は、所望であればオブジェクトベースでもよい。
【0197】
この実施形態は、入力構文を用いて算術演算子および/またはブロックダイアグラム演算を指定するユーザ入力機構と相互作用できる。例えば、この入力構文は、ユーザがPIDコントローラのような他の種類の制御構造と対話するためにこの構文を使ったことがあるという意味でユーザにとって慣れた構文とすることができる。この入力構文によって、ユーザは、線形時間不変モデル構成要素を入力でき、この線形時間不変モデル構成要素は線形時間不変モデルにおいて入力ソフトウェアベースインターフェースとして使用され、このソフトウェアベースのインターフェースは、調整可能なパラメータを備えた調整可能な構成要素を記述する。
【0198】
この実施形態は、算術演算子およびブロックダイアグラム演算の一方または両方を用いて線形時間不変モデル構成要素とソフトウェアベースインターフェースとを結合できる。ブロックダイアグラム演算の例には、直列接続、並列接続、またはフィードバック接続を含むことができるがそれらに限定されない。この実施形態はユーザ入力機構と相互作用でき、この相互作用により、入力構文は標準形式の制御システム全体を漸進的に構築できる。この標準形式は、上記線形時間不変モデル構成要素および上記調整可能な構成要素を含むことができる。さらに、この入力構文を用いて、上記標準形式に基づいたパラメトリックモデルの生成を促進できる。このパラメトリックモデルは、オプティマイザと互換性がある形式とすることができ、その互換形式によりパラメトリックモデルをオプティマイザに入力できる。このパラメトリックモデルは、設計要件が満足されるような様態で調整されるように設定できる。
【0199】
この実施形態は、上記標準形式および上記調整可能な構成要素と相互作用してH∞目標を最小化しかつ/またはH∞制約を実現するオプティマイザを用いて、上記パラメトリックモデルを最適化することをサポートするよう構成できる。この実施形態は、ヘルパー関数をユーザ入力機構に与えるように構成してもよい。さらに、ユーザが上記入力構文を用いてAPIと対話するときに、この実施形態によれば、ヘルパー関数をユーザが入力機構を介してアクセス可能とする。また、この実施形態は、入力機構と互換性があり入力機構とともに動作できる関数を与えるように構成できる。これら関数を用いて制御システムに問い合わせしかつ/または制御システムを解析できる。
【0200】
本発明の一実施形態は、ループ整形要件をH∞定式にプログラムにより定式化するためのコンピュータ実装方法および/または非一時的媒体上に存在するコンピュータ実行可能命令を含むことができる。この実施形態は、方法として実施される場合は、スタンドアローンまたは分散装置を用いて実装でき、かつ一人または複数のユーザのためにインタラクティブな(例えば、実時間)動作をサポートするよう構成できる。この方法は、開ループゲインの目標形状またはこの目標形状のプロキシを受け取ることを含むことができる。例えば、この目標ループ形状またはプロキシは、ユーザのために入力機構(例えば、キーボードまたはGUIなど)から受け取ることができるが、或いは、例えばコンピュータ可読記憶媒体からプログラムにより検索してもよい。
【0201】
この方法は、制御構造およびフィルタを上記目標ループ形状またはプロキシから導出するソフトウェアツールと相互作用することを含むことができる。さらに、このソフトウェアツールは、上記の導出された制御構造およびフィルタから標準形式を構築し、H∞制約を上記の導出された制御構造およびフィルタから構築できる。この方法では、上記の標準形式およびH∞制約は、制御システムに関する設計要件を獲得できる。
【0202】
別の実施形態は、標準形式の構造を利用するためのコンピュータ実装方法および/またはコンピュータ可読媒体上に存在する実行可能命令を含むことができる。上記標準形式の構造を利用することで、ユーザのためにインタラクティブな作業の流れをサポート可能な調整器アルゴリズムの性能を向上できる。この実施形態は、最適化手順の最中にオプティマイザにより与えられる調整可能なパラメータの値を受け取ることができる。最適化手順は、最適化動作を実行するための機械実装技法を含むことができる。
【0203】
さらに、この実施形態は、構築手順/技法を用いて、上記調整可能なパラメータ値の標準形式の状態空間モデルを構築できるが、この構築は、上記調整可能なパラメータに関連付けられた調整可能な構成要素を実装するためにソフトウェアオブジェクトを使用し、各ソフトウェアオブジェクトには、上記受け取られたパラメータ値に関する、その状態空間表現を与える役割を担わせ、上記調整可能な構成要素の集約状態空間行列を生成するため状態空間行列を集約し、かつ/または上記調整可能な構成要素の集約状態空間行列を、集中プラントモデルの状態空間表現と組み合せて、上記標準形式の所望の閉ループ状態空間モデルを得ることにより実行される。
【0204】
この実施形態は、上記構築手順の中間結果をキャッシュしてその後の勾配計算を加速することができる。勾配情報は、上記目標と制約とを微分するために連鎖法則などの法則を適用することと、上記標準形式の状態空間モデルを構築するのに使用されたものと同じソフトウェアオブジェクトを使用することと、各ソフトウェアオブジェクトに、上記受け取られたパラメータに関してスカラー値関数の勾配を与える役割を担わせることと、このスカラー値関数は上記法則適用の副産物であり、上記キャッシュされた中間結果を用いて、各調整可能な構成要素により与えられた勾配データを上記目標および制約の全体的な勾配に効率的に集約することと、によって計算できる。
【0205】
この実施形態は、プロセッサのために付加的な計算を要求することなく勾配情報を利用可能とすることができる。例えば、勾配情報は、勾配情報を利用可能にしないで要する計算コストと比較して、追加の計算コストなしで利用可能とすることができる。さらに、この実施形態は、上記調整可能なパラメータの所与の値に関する閉ループシステムを実質的に計算コストなしで導出できる。例えば、このコストは、それを含めてもがシステム設計、モデリング時間などに関連した計算予算に悪影響を与えないという意味で無視しうるほど小さい。
結論
【0206】
幾つかの実装例によれば、ユーザは、ユーザが慣れ親しんだ特徴を用いてシステムモデルの設計コントローラをインタラクティブに設計できる。
【0207】
本発明の代表的な実施形態の上述の説明は、本発明を例証および記述するものであるが、すべてを網羅することを意図したものでなく、本発明を開示された通りの形式に限定することを意図したものでもない。修正および変更は上述の教示を参照すれば可能であるし、本発明を実行することで発見されることもあろう。例えば、一連の動作を
図25に関して上述したが、これら動作の順序は、他の実現例では本発明の原理に一致するように修正できる。さらに、非独立動作は並列で実行してもよい。
【0208】
さらに、本発明の原理と矛盾しない実現例も、図面に示しかつ本明細書に記載されたもの以外の装置および/または構成を用いて、本発明の精神から逸脱することなく実現できる。具体的な導入様態および/または用途によっては、装置および/または構成要素を、
図2、3、26、または27に示した実現例に追加かつ/またはそれらから削除してもよい。また、開示した実現例は、特定の組合せのハードウェアに限定されるものではない。
【0209】
さらに、本発明の特定の部分は、1つまたは複数の機能を実行する「ロジック」で実装できる。このロジックは、ハードワイヤード論理回路、特定用途向けIC、書替え可能ゲートアレイ、およびマイクロプロセッサなどのハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せを含むことができる。本発明の説明で使用されたいずれの要素、動作、命令も、特に明記されていなければ本発明に不可欠で必須なであると解釈すべきではない。また、本明細書では、「1つの(原語:a)」という冠詞は、1つまたは複数の要素を含むことを意図している。1つの要素のみを意図する場合は、「1つの(原語: one)」または他の用語を使用する。さらに、本明細書では、「に基づいて」という用語は、特に明記されていなければ「少なくとも部分的には~に基づいて」を意味するよう意図されている。
【0210】
本明細書で用いた見出しおよび小見出しは、本明細書を小区分に分割することにより読者を補助することを意図している。これらの見出しおよび小見出しは、本発明の範囲を限定したり、本発明の特徴を定義したりするものと解釈すべきではない。