(57)【要約】      （修正有）【課題】設計のためのモデリング・ツールにおいて、定量基準によりシステム表現の簡略化可能部分を自動判別する。【解決手段】ＳｙｓＭＬのブロックから数式が抽出され、または、Simulink(R)のブロック線図が微分方程式に変換され、その係数は、級数展開される。先ず、微分方程式を、ＣＡＳにより通常どおり解きその解も、好適には級数展開される。次に、区間解析の技法により、区間係数として、ＣＡＳによって微分方程式を含む数式を解く。区間解析の結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下であれば、対象としている係数を０にして、ＣＡＳによって微分方程式を含む数式を解く。そこで再度、結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下であれば、対象としている係数の項を微分方程式から落とし、微分方程式を簡易化する。【選択図】図４
2011128675.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの処理によって、設計を行うモデリング・システムの制御方法であって、
設計されるモデルから数式を得るステップと、
前記数式から、第１の解を求めるステップと、
前記級数において、１つの係数を区間にして、第２の解を求めるステップと、
前記第１の解の係数を第１のベクトルとし、第２の解の係数を第２のベクトルとし、両ベクトルの間の第１の距離を求めるステップと、
前記第１の距離が所定の値以下であることに応答して、前記１つの係数をゼロとして第３の解を求めるステップと、
前記第３の解の係数を第３のベクトルとし、前記第１のベクトルと前記第３のベクトルの間の第２の距離を求めるステップと、
前記第２の距離が所定の値以下であることに応答して、前記数式における前記１つの係数の項を省略可能と判別するステップを有する、
モデリング・システムの制御方法。
【請求項２】
前記数式の解を求める前に、前記数式の係数が、ボルテラ級数展開される、請求項１に記載の方法。
【請求項３】
前記数式の解が、ボルテラ級数展開された解として求められる、請求項１に記載の方法。
【請求項４】
前記距離が、マハラノビス距離である、請求項１に記載の方法。
【請求項５】
前記モデリング・システムが、ＳｙｓＭＬのブロックを生成するモデリング・システムである、請求項１に記載の方法。
【請求項６】
前記ブロックから数式を抽出するステップと、該数式の、項を省略された数式を、前記ブックに注入するステップとを更に有する、請求項５に記載の方法。
【請求項７】
前記モデリング・システムが、ブロック線図を生成するモデリング・システムである、請求項１に記載の方法。
【請求項８】
前記ブロック線図を数式に変換するステップと、該数式の、項を省略された数式をブロック線図に変換するステップを更に有する、請求項７に記載の方法。
【請求項９】
前記数式から変換されたブロック線図の種数を求めるステップを更に有する、請求項８に記載の方法。
【請求項１０】
コンピュータの処理によって、設計を行うモデリング・プログラムであって、
前記コンピュータをして、
設計されるモデルから数式を得るステップと、
前記数式から、第１の解を求めるステップと、
前記級数において、１つの係数を区間にして、第２の解を求めるステップと、
前記第１の解の係数を第１のベクトルとし、第２の解の係数を第２のベクトルとし、両ベクトルの間の第１の距離を求めるステップと、
前記第１の距離が所定の値以下であることに応答して、前記１つの係数をゼロとして第３の解を求めるステップと、、
前記第３の解の係数を第３のベクトルとし、前記第１のベクトルと前記第３のベクトルの間の第２の距離を求めるステップと、
前記第２の距離が所定の値以下であることに応答して、前記数式における前記１つの係数の項を省略可能と判別するステップを有する、
モデリング・プログラム。
【請求項１１】
前記数式の解を求める前に、前記数式の係数が、級数展開される、請求項１０に記載のプログラム。
【請求項１２】
前記数式の解が、級数展開された解として求められる、請求項１０に記載のプログラム。
【請求項１３】
前記級数展開が、ボルテラ級数展開である、請求項１２または請求項１１に記載のプログラム。
【請求項１４】
前記距離が、マハラノビス距離である、請求項１０に記載のプログラム。
【請求項１５】
前記モデリング・プログラムが、ＳｙｓＭＬのブロックを生成するステップを含む、請求項１０に記載のプログラム。
【請求項１６】
前記ブロックから数式を抽出するステップと、該数式の、項を省略された数式を、前記ブックに注入するステップとを更に有する、請求項１５に記載のプログラム。
【請求項１７】
前記モデリング・プログラムが、ブロック線図を生成するステップを含む、請求項１０に記載のプログラム。
【請求項１８】
前記ブロック線図を数式に変換するステップと、該数式の、項を省略された数式をブロック線図に変換するステップを更に有する、請求項１７に記載のプログラム。
【請求項１９】
前記数式から変換されたブロック線図の種数を求めるステップを更に有する、請求項１８に記載のプログラム。
【請求項２０】
コンピュータの処理によって、設計を行うモデリング・システムであって、
設計するモデルを作成し、または編集する手段と、
前記モデルから数式を得る手段と、
前記数式の解を求める機能をもつ計算手段と、
前記計算手段に、前記数式の項の区間を適用して計算させる手段と、
前記計算手段による異なる２つの解の間の距離を求める手段と、
前記数式のを省略することにより、数式を簡略化する手段を有し、
前記解の間の距離が所定の距離より小さいことに応答して、前記数式を簡略化する手段により数式を簡略化する、
モデリング・システム。
【請求項２１】
前記計算手段が、前記数式の係数及び計算結果を級数展開する機能を有する、請求項２０に記載のシステム。
【請求項２２】
前記計算させる手段が、前記数式の項の区間を適用する際に、級数展開する項を使用する、請求項２１に記載のシステム。
【請求項２３】
前記２つの解の間の距離を求める手段は、級数展開された項の間の距離を求める、請求項２１に記載のシステム。
【請求項２４】
前記級数展開が、ボルテラ級数展開である、請求項２３または請求項２２に記載のシステム。
【請求項２５】
前記距離が、マハラノビス距離である、請求項２０に記載のシステム。
【請求項２６】
前記モデリング・システムが、ＳｙｓＭＬのブロックを生成する手段を含む、請求項２０に記載のシステム。
【請求項２７】
前記ブロックから数式を抽出する手段と、該数式の、項を省略された数式を、前記ブックに注入する手段とを更に有する、請求項２６に記載のシステム。
【請求項２８】
前記モデリング・システムが、ブロック線図を生成する手段を含む、請求項２０に記載のシステム。
【請求項２９】
前記ブロック線図を数式に変換する手段と、該数式の、項を省略された数式をブロック線図に変換する手段を更に有する、請求項２８に記載のシステム。
【請求項３０】
前記数式から変換されたブロック線図の種数を求める手段を更に有する、請求項２９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自動車、ロボット、航空機などの機構装置を設計するためのモデリング・システムに関し、より詳しくは、モデリング・システムで使用される数式を処理するためのシステム、方法及びプログラムに関するものである。
【背景技術】
【０００２】
従来より、MATLAB(R)/Simulink(R)などのシミュレーション・モデリング・ツールで、モデルを作成してテストし、実機に搭載することが行われている。MATLAB(R)/Simulink(R)を利用したモデリングの技術は、特開２００５−２２２４２０号公報など多数の公開公報に記載されている。
【０００３】
一方、最近になって、特開２００９−１７６０１０号公報に開示されているように、ＵＭＬの拡張であるＳｙｓＭＬで、機構装置をモデリングすることも行われている。
【０００４】
MATLAB(R)/Simulink(R)では、多くの場合、モデルの挙動は微分方程式に帰着されるし、ＵＭＬ／ＳｙｓＭＬでも、モデルの要素の挙動や制約は、数式を使って記述される。
【０００５】
その際、典型的には、特開平７−２８１７１４号公報で述べられているように、記述された数式モデルをどう扱うかということは、課題であり続けている。
【０００６】
ところで、ある製品を設計する際の制御ストラテジーにおいて、一般的な評価関数に基づき設計されたシステム記述を、具体的なモデリングで用いる場合、ある複雑な数式モデルに対して、より簡略な表現が可能かどうか決定したいという要望がある。なぜなら、複雑な数式モデルをそのまま設定すると、複雑な構成になって、部品コスト、製造コストが嵩むなどの問題点が生じることがある。そこで、等価な機能を、より簡素化された数式モデルで記述できるなら、コスト節約として、とても有意義である。
【０００７】
しかし、ＳｙｓＭＬ等による制御ストラテジー設計で、数式やSimulink(R)によるシステム記述の詳細度適切性について基準が不明確であることが課題である。
【０００８】
例えばＳｙｓＭＬにおける制約として内部ブロック図等の数式や、Simulinkモデルとしてシステム要素を、どの程度の詳細度で記述するかは、モデリングが用いられる局面あるいはモデル作成者の主観に依存してきた。
【０００９】
また、注目している制御部分をモデリングする場合、一般的な評価基準から設計されたシステム記述のみでは、着目している制御対象のモデリングの意味に幅を持たせてしまい、過度に複雑な制御システムを設計してしまう可能性があり、それを回避するためには、モデリング詳細度の適切性を定量基準に基づいて簡略化可能部分があるかどうか判別することが必要である。
【００１０】
しかし、そのような技術は、今まで知られていない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−２２２４２０号公報
【特許文献２】特開２００９−１７６０１０号公報
【特許文献３】特開平７−２８１７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
この発明の目的は、設計のためのモデリング・ツールにおいて、定量基準によりシステム表現の簡略化可能部分を自動判別することを可能ならしめる技術を提供することにある。
【００１３】
この発明の他の目的は、不必要に複雑となっている部分をシステムの簡略化可能部分として定量的に判別することで、物理的意味を保持しつつ、効率的な制御システム設計を可能とすることにある。
【００１４】
この発明の更に他の目的は、コントローラの設計を最適化することで実際のオペレーション領域を絞り込むことを可能とすることにある。
【課題を解決するための手段】
【００１５】
この発明は、上記目的を達成するためになされたものであり、この発明によれば先ず、コンピュータの処理により、例えばＳｙｓＭＬのブロックから数式が抽出され、または、Simulink(R)のブロック線図が微分方程式に変換され、いずれにしても、コンピュータのメモリまたはハードディスク上に、数式が用意される。
【００１６】
この発明に従えば、抽出された、微分方程式を含んでいてもよい数式の係数は、級数展開される。このとき、好適な級数展開は、非線形の信号処理などでよく用いられる、ボルテラ級数展開である。
【００１７】
次に、この発明のシステムは、微分方程式を含む数式を、既知の数式処理システム（ＣＡＳ）によって解く。この解は、一旦、メモリまたはハードディスク上に保存される。
【００１８】
次に、この発明のシステムは、級数展開された微分方程式を含む数式の一係数に擾乱を与えて、区間解析の技法により、区間係数として、ＣＡＳによって微分方程式を含む数式を解く。
【００１９】
次に、この発明のシステムは、区間解析の結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下かどうかを判断する。そうでなければ、微分方程式を含む数式の級数展開された次の係数を選び、そうであれば、対象としている係数を０にして、ＣＡＳによって微分方程式を含む数式を解く。
【００２０】
そこで再度、結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下かどうかを判断する。
【００２１】
もしそのベクトル間距離が既定値以下であると判断されると、対象としている係数は省略可能であると判断される。
【００２２】
この発明の別の側面によれば、上記で得られた数式がブロック線図に逆変換され、そのブロック線図について、コンピュータ・メモリ上でグラフ表現に変換され、その上で、位相幾何的な種数が判定される。そして、種数がある数より小さいことにより、ブロック線図の記述の妥当性を判定する。
【発明の効果】
【００２３】
この発明によれば、設計のためのモデリング・ツールにおいて、モデルの数式表現において、安定性を考慮して合理的に項を省略することによって、定量基準によりシステム表現の簡略化可能部分を自動判別することが可能となる。
【００２４】
また、発明によれば、数式表現の簡略化を通じて、不必要に複雑となっている部分をシステムの簡略化可能部分として定量的に判別することによって、物理的意味を保持しつつ、効率的な制御システム設計を行うことができる。
【図面の簡単な説明】
【００２５】
【図１】この発明を実施するためのハードウェア構成の一例のブロック図である。
【図２】この発明を実施するための機能ブロック図を示す図である。
【図３】ＳｙｓＭＬのブロックからの数式の抽出と、簡易化した数式の抽出を示す図である。
【図４】ブロック線図を数式に変換し、簡易化した数式をブロック線図に変換する図である。
【図５】数式を簡易化する処理のフローチャートを示す図である。
【図６】数式を簡易化する処理のフローチャートを示す図である。
【図７】ブロック線図の種数を判別する処理のフローチャートを示す図である。
【図８】H2最適コントローラを設計する例を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
【００２７】
図１を参照すると、本発明を実施するための一例のシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図１において、システム・パス１０２には、ＣＰＵ１０４と、主記憶（ＲＡＭ）１０６と、ハードディスク・ドライブ（ＨＤＤ）１０８と、キーボード１１０と、マウス１１２と、ディスプレイ１１４が接続されている。ＣＰＵ１０４は、好適には、３２ビットまたは６４ビットのアーキテクチャに基づくものであり、例えば、インテル社のＰｅｎｔｉｕｍ（商標）  ４、Ｃｏｒｅ（商標）２  Ｄｕｏ、Ｘｅｏｎ（商標）、ＡＭＤ社のＡｔｈｌｏｎ（商標）などを使用することができる。主記憶１０６は、好適には、２ＧＢ以上の容量をもつものである。
【００２８】
ハードディスク・ドライブ１０８には、個々に図示しないが、オペレーティング・システムが、予め格納されている。オペレーティング・システムは、Ｌｉｎｕｘ（商標）、マイクロソフト社のＷｉｎｄｏｗｓ（商標）７、Ｗｉｎｄｏｗｓ  ＸＰ（商標）、Ｗｉｎｄｏｗｓ（商標）２０００、アップルコンピュータのＭａｃ  ＯＳ（商標）などの、ＣＰＵ１０４に適合する任意のものでよい。
【００２９】
ハードディスク・ドライブ１０８にはまた、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能な、ＵＭＬ／ＳｙｓＭＬモデリング・システムである、IBM(R) Rational(R) Rhapsody(R)と、MathWorks社から入手可能なシミュレーション・モデリング・システムである、MATLAB(R)/Simulink(R)が導入されている。図２の機能ブロック図では、ＵＭＬ／ＳｙｓＭＬモデリング・システムは、ブロック２０２として図示され、MATLAB(R)/Simulink(R)は、ブロック２０２として図示されている。
【００３０】
ハードディスク・ドライブ１０８にはさらに、数式処理ツール（ＣＡＳ）として、Maximaが導入されている。尚、本実施例で使用可能なＣＡＳとして、Maximaに限定されず、MapleSoftから入手可能なMapleや、Wolfram Researchから入手可能なMathematicaなどの利用可能な任意のＣＡＳを使用してもよい。あるいは、MATLABのToolBoxにあるSymbolic Math Toolboxを使用してもよい。
【００３１】
ハードディスク・ドライブ１０８にはさらに、図２に図示し後で詳述する、ＵＭＬ／ＳｙｓＭＬモデリング・システム２０２のためのソース・モデル・ファイル２０６、シミュレーション・モデリング・システムのためのソースコード２０８が格納される。
【００３２】
ハードディスク・ドライブ１０８にはさらに、数式抽出モジュール２１０、数式変換モジュール２１２、区間解析モジュール２１４、安定性判別モジュール２２０、数式注入モジュール２２４、ブロック線図への変換モジュール２２６、種数判定モジュール２２８が保存され、必要に応じてオペレーティング・システムの作用で主記憶１０６に読み出され、実行される。
【００３３】
キーボード１１０及びマウス１１２は、オペレーティング・システムまたは、ハードディスク・ドライブ１０８から主記憶１０６にロードされ、ディスプレイ１１４に表示されたプログラム（図示しない）を起動したり、文字を打ち込んだりするために使用される。
【００３４】
ディスプレイ１１４は、好適には、液晶ディスプレイであり、例えば、ＸＧＡ（１０２４×７６８の解像度）、またはＵＸＧＡ（１６００×１２００の解像度）などの任意の解像度のものを使用することができる。ディスプレイ１１４は、図示しないが、処理すべきグラフ・データや、グラフの類似度を表示するために使用される。
【００３５】
次に、図２を参照して、本発明に係る機能ブロック図を説明する。ＵＭＬ／ＳｙｓＭＬモデリング・システム２０２は、上述のように、この実施例ではIBM(R) Rational(R) Rhapsody(R)であるが、これには限定されず、任意のＵＭＬ／ＳｙｓＭＬモデリング・システムを使用することができる。
【００３６】
ＵＭＬ／ＳｙｓＭＬモデリング・システム２０２上でユーザは、ＵＭＬ／ＳｙｓＭＬの規則に従い、設計のモデルを作成し、モデル・ファイル２０６として、ハードディスク・ドライブ１０８に保存することができる。また随時読み出して編集することができる。
【００３７】
図３のブロック３０２、３０４及び３０６は、ＳｙｓＭＬのクラス図の例を示す。
【００３８】
シミュレーション・モデリング・システム２０４は、この実施例では、上述のようにMATLAB(R)/Simulink(R)であるが、これには限定されず、オープンソースのScilab/Scicosなど任意のシミュレーション・モデリング・ツールを使用することが可能である。
【００３９】
シミュレーション・モデリング・システム２０４上でユーザは、ＧＵＩ操作で機能ブロックを配置し連結することにより、ソースコード２０８を生成し、ハードディスク・ドライブ１０８に保存することができる。また随時読み出して編集することができる。ソースコード２０８は、機能ブロック間の依存関係を記述するための、ＭＤＬファイルを含んでいてもよい。
【００４０】
数式抽出モジュール２１０は、ＵＭＬ／ＳｙｓＭＬモデリング・システム２０２のうちの指定されたブロックから、振る舞いを既定する式または制約式を抽出して、後の処理のため、好適には主記憶１０６上に配置する。図３の例では、ブロック３０６に数式（この場合は微分方程式）が含まれ、数式抽出モジュール２１０によって数式３０８として抽出される。
【００４１】
数式変換モジュール２１２は、シミュレーション・モデリング・システム２０４で記述されているブロック線図を、対応する微分方程式に変換して、好適には主記憶１０６上に配置する機能を有する。数式変換モジュール２１２は、基本的にはC、C++、Java(R)などのプログラムで作成することもできるし、MapleとMapleSimの組合せにより実現することもできる。
【００４２】
図４(a)に、シミュレーション・モデリング・システム２０４によって作成されたブロック線図の例を示す。数式変換モジュール２１２は、図４(a）に示すブロック線図を、図４(b)に示す微分方程式に変換する。
【００４３】
区間解析モジュール２１４は、数式抽出モジュール２１０または数式変換モジュール２１２から受け取った微分方程式を含む数式の係数を、ＣＡＳ２１６の機能を使用してボルテラ級数展開する。ボルテラ級数展開は、特開平１１−２６１４３６号公報、特開２００６−８６６８１号公報、特開２００６−２６０２４４号公報、及び特開２００６−２８７４６号公報などに記載されており従来より周知なので、ここでは詳しくは説明しない。
【００４４】
尚、本発明で使用する級数展開は、ボルテラ級数展開以外に、目的に応じてテイラー展開などの任意の級数展開を使用することができる。
【００４５】
区間解析モジュール２１４はまた、区間解析のために、級数展開の係数に基づき生成した区間を生成し、ＣＡＳ２１６に渡す機能をもつ。
【００４６】
ＣＡＳ２１６は、数式抽出モジュール２１０または数式変換モジュール２１２から与えられた数式自体をボルテラ級数展開し、あるいは微分方程式の解をボルテラ級数展開して、数式の解の展開された級数２１８として、ハードディスク・ドライブ１０８に保存する。展開された級数２１８には、数式抽出モジュール２１０または数式変換モジュール２１２から受け取った微分方程式を含む数式の係数のボルテラ級数展開のデータも含まれる。
【００４７】
安定性判別モジュール２２０は、区間解析モジュール２１４、ＣＡＳ２１６と協働して、簡略化された数式２２２を求めるように動作する。安定性判別モジュール２２０の動作は、図５及び図６のフローチャートを参照して、後で詳細に説明する。
【００４８】
安定性判別モジュール２２０は、処理の結果、簡略化された数式２２２を生成して、好適には、主記憶１０６の所定の領域に配置する。簡略化された数式２２２は、図３のＳｙｓＭＬのブロックでは、参照番号３１０で示され、Simulink(R)用では、図４(c)に示されている。
【００４９】
数式注入モジュール２２４は、簡略化された数式２２２を、ＳｙｓＭＬのブロックに注入して、上書きする。図３では、簡略化された数式３１０が、ブロック３０６に注入される。
【００５０】
ブロック線図への変換モジュール２２６は、図４(c)に示されている、簡略化された数式３１０を、図４(d)に示すように、ブロック線図へ変換する機能をもつ。このような微分方程式のブロック線図への変換は、簡略化された数式３１０としての微分方程式をMATLAB(R)での表現にして、それをS-functionというSimulinkで使えるブロックの一つにすることにより、達成される。ただ、多少、手操作での処理が必要になる場合がある。
【００５１】
種数判定ブロック２２８は、図４(d)に示すような、微分方程式から変換されたブロック線図に対して、種数を求めることにより、ブロック線図の妥当性を判断する機能をもつ。種数とは、位相幾何学的な性質で、曲面に開いている穴の数のことである。種数判定ブロック２２８のより詳細な処理は、図７のフローチャートを参照して、後で詳細に説明する。
【００５２】
次に、図５及び図６のフローチャートを参照して、図２の安定性判別ブロックの処理を説明する。先ず、図５のステップでは、図４に示すように、数式変換モジュール２１２がブロック線図を変換するか、図３に示すように、数式抽出モジュール２１０がブロックから数式を抽出するかして、微分方程式を含む数式が主記憶１０６上に用意される。
【００５３】
尚、以下では、微分方程式を例にとって説明するが、これには普通の数式も含まれるものとする。すなわち、微分方程式を下記の式のように表記したとき、
【数１】
2011128675.tif 000003
のようになる。
【００５４】
すなわち、ここで、P(x) = Q(x) = 0と仮定すると、R(x)だけ残って、普通の、微分方程式を含まない数式に帰着される。また、この例では、１階の微分方程式であるが、より高階の微分方程式である場合もあることを理解されたい。但し、ニュートンの方程式が典型的にそうであるように、ほとんどの設計の目的には、２階までの微分方程式で十分である。また、微分方程式は、ＣＡＳが解ける範囲で、連立微分方程式であってもよい。
【００５５】
本発明の一実施例によれば、このような微分方程式をそのままＣＡＳ２１６で解くのではなく、微分方程式の関数P(x), Q(x), R(x)が、ＣＡＳ２１６の機能によって級数展開される。
【００５６】
本発明に好適な級数展開は、通常、非線形システムの解析に用いられるボルテラ級数展開であり、下記の式で一般的に表記される。
【数２】
2011128675.tif 000004
この式で、実際は∞のところは、主記憶１０６のサイズの限界に基づく利用可能なメモリサイズに合わせて、適当な有限の項数で打ち切る。この式で、hp(m1,...,mp)は、ボルテラ核(Volterra kernel)と呼ばれる。この実施例では、x(n-mi) ( i = 1,...,p)としては、場合に応じて、指数関数、三角関数、代数関数などが使用される。
【００５７】
尚、ボルテラ級数展開について、既にいくつかの特許公開公報を従来技術として挙げたが、ボルテラ級数展開のより詳細な技法については、Analytical and Numerical Methods for Volterra Equations (Studies in Applied and Numerical Mathematics) by Peter Linz (Hardcover - Jan 1, 1987)などを参照されたい。
【００５８】
また、本実施例で想定する好適な級数展開がボルテラ級数展開であるが、本発明はボルテラ級数展開に限定されず、場合に応じて、テイラー級数展開、フーリエ級数展開などの知られているその他の級数展開も使用することができる。
【００５９】
P(x), Q(x), R(x)の各々をボルテラ級数展開したとき、その各々を
x(n-m1)...x(n-mp)の項で纏めると、P(x), Q(x), R(x)の各々につき、ボルテラ核を含む係数の列が得られる。
【００６０】
すると、x(n-m1)...x(n-mp)の並びをベクトルとして、Xと表記すると、係数のベクトルp,q,rで以って、P(x) = pX, Q(x) = qX, R(x) = rXと表記することができる。そこで、ベクトルp,q,rの成分を並べて、αと表記することにする。
【００６１】
ステップ５０４では、ＣＡＳ２１６が、微分方程式を解き、本発明の一実施例では、その解をやはりボルテラ級数展開で、βXと表記する。ここのXは、P(x), Q(x), R(x)で述べたXと同じものである。βの値は、後で参照するために、主記憶１０６の適当な領域に格納される。
【００６２】
ステップ５０６では、区間解析モジュール２１４によってベクトルαの一要素α1が、ある適当な小さい擾乱の値δを以って、区間[α1,δ] = α1±δに置き換えられ、この区間係数ベクトルαIで、ＣＡＳ２１６が再び、微分方程式を解く。そして、本発明のこの実施例では、その解をやはりボルテラ級数展開で、βIXと表記する。ベクトルβIの値は、後で参照するために、主記憶１０６の適当な領域に格納される。
【００６３】
尚、区間解析は、精度保証付き数値計算で使われる技法で、基本演算は、下記のとおりである。
[A,α] + [B,β] = [A + B,α+β]
[A,α] - [B,β] = [A - B,α+β]
[A,α] × [B,β] = [AB,A|β|+|B|α+αβ]
さらに、任意の関数f(x)について、f([A,α])なども定義することができる。
区間解析のより詳細な技法については、現代非線形科学シリーズ６「精度保証付き数値計算」大石進一著、コロナ社、2000年などを参照されたい。
【００６４】
ステップ５０８では、区間演算による解の係数ベクトルβIと、通常演算による解の係数ベクトルβが比較される。より具体的には、ある距離関数d()が与えられて、
d(β,βI)の値が計算される。
【００６５】
ここで使用される好適な距離は、多変数間の相関に基づく、マハラノビス距離であり、特にここでは、dM(β,βI)と表記することにする。マハラノビス距離は、共分散行列の逆数を掛け合わせたベクトル差の値の平方根として定義される。なお、本発明で使用される距離は、マハラノビス距離に限らず、場合により、ユークリッド距離、マンハッタン距離など、知られているその他の距離を使用することもできる。
【００６６】
次のステップ５１０では、ベクトル間距離が既定値以下か、すなわち、
ある既定値δresultを以って、dM(β,βI)  <= δresultかどうかが判断される。もしそうでなければ、ステップ５１２で、係数ベクトルαの次の係数を選んで、ステップ５０６に戻る。すなわち、ステップ５０６では、選ばれた係数に基づき区間が作成され、微分方程式が解かれる。
【００６７】
ステップ５１２で、dM(β,βI)  <= δresultであると判断されると、ステップ５１４に進み、そこで、対象としている係数α1について、対象としている係数を0にして、ＣＡＳ２１６で、再度、微分方程式を解く処理が行われる。その結果の解の係数ベクトルをβ0とすると、ステップ５１６では、dM(β,β0)の値が計算される。
【００６８】
ステップ５１８では、dM(β,β0)  <= δresultかどうかが判断される。尚ここで、比較する既定値は、ステップ５１０とは異なる値を使用してもよい。
【００６９】
ステップ５１８でdM(β,β0)  <= δresultと判断されると、ステップ５２０で、対象としている係数を省略することが決定される。その決定の情報は、主記憶１０６の所定の位置に格納され、後で、簡約化された微分方程式２２２を提供するために使用される。
【００７０】
一方、ステップ５１８でdM(β,β0)  <= δresultでないと判断されると、ステップ５２２で、対象としている係数の省略順位を下げる、すなわち、実際的に、その係数は省略しない。
【００７１】
ステップ５２０またはステップ５２２の後は、ステップ５２２に行って、ベクトルαの成分である、全ての係数について完了したかどうかが判断される。そうでなければステップ５０６に戻り、そうならば、図６のフローチャートの処理に移行する。
【００７２】
図６のステップ６０２では、システムは安定性を考慮する必要があるかどうかが判断される。安定性を考慮する必要がないシステムとは、フィードバックループが存在せず、入力がなくなれば次第に出力も減ることが事前に分かっているシステムである。
【００７３】
もし、システムは安定性を考慮する必要がないシステムなら。直ちに処理は終了する。
【００７４】
ステップ６０２で、安定性を考慮する必要があるシステムであると判断されると、ステップ６０４に進み、そこで、簡易化された式を含むシステムの安定性が判別される。ここでの安定性判定の方法は従来知られている任意の方法を用いることができるが、一番典型的なのは、ナイキストの判定法である。なお、ナイキストの判定法は、自動制御理論の文献に記述されており、この発明の要旨ではないので、ここでは詳説しない。
【００７５】
また、システムが離散系であるなら、状態行列の固有値に基づく判定法も使用可能である。
【００７６】
こうして、ステップ６０６で、簡易化された式を含むシステムが安定であると判定されると、処理は終了する。
【００７７】
ステップ６０６で、簡易化された式を含むシステムが安定でないと判定されると、ステップ６０８で、αのうちのある係数を戻したときに計算されるβIとβの間の係数ベクトル間距離dM(β,βI)の大きさの降順に、αの成分である係数を、簡易化された式に戻して、ステップ６１０で再びシステムの安定性が判断される。この安定性の判定方法は、ステップ６０４での方法と同じでよい。
【００７８】
その結果、ステップ６１０でシステムが安定と判断されると、処理は終了する。ステップ６１０でシステムが不安定と判断されると、ステップ６１２で、係数ベクトル間距離の降順で次の係数が選ばれて、ステップ６０８に戻る。
【００７９】
図６のフローチャートには明示されていないが、全ての係数を戻してもシステムが安定にならないと、エラー終了となる。
【００８０】
結局、図５及び図６の処理の結果、P(x), Q(x), R(x)のボルテラ級数展開項の一部が省略された、下記の簡略化された数式２２２が得られる。
【数３】
2011128675.tif 000005
【００８１】
尚、図５の処理において、ステップ５０６の区間係数に基づく微分方程式の解を求めることを経ず、いきなり、ステップ５１４で対象とする係数をゼロにして解の比較をしてもよさそうに思われるが、区間係数に基づく微分方程式の解を求めることを経ないでいきなり、ステップ５１４で対象とする係数をゼロにして解を求めると、不安定な局所解に陥る可能性がある。そこで、一旦、区間係数に基づく微分方程式の解を求めることが必要になる。
【００８２】
こうして、下記の簡略化された数式２２２が得られると、それは、図３に示すように、数式注入モジュール２２４によってもとのブロックに注入され、あるいは、図４(d)に示すように、ブロック線図への変換モジュール２２６によって、ブロック線図に変換される。
【００８３】
上記で説明した実施例では、ステップ５０２で、微分方程式の係数がボルテラ級数に展開され、ステップ５０４で微分方程式の解が、ボルテラ級数展開され、ステップ５０６での区間解析の結果の微分方程式の解もボルテラ級数展開され、ステップ５１４でも、微分方程式の解が、ボルテラ級数展開されているが、これには限定されず、以下のような変形例も、本発明の範囲であることを理解されたい。
【００８４】
先ず、微分方程式の係数に、ボルテラ級数展開を適用しないで、そのまま区間解析を行い、微分方程式の解には、ボルテラ級数展開を適用する処理も可能である。これは、システムのダイナミックスがある程度分かっているが、微分方程式の解の挙動がよく分からない場合に採用される。この場合、ステップ５０２で、微分方程式の係数は級数展開されず、ステップ５０４で微分方程式の解が、ボルテラ級数展開され、ステップ５０６での区間解析が級数展開しない係数に適用されるが、結果の微分方程式の解はボルテラ級数展開され、ステップ５１４でも、微分方程式の解が、ボルテラ級数展開される。
【００８５】
次に、微分方程式の係数に、ボルテラ級数展開を適用しないで、そのまま区間解析を行い、解にも、ボルテラ級数展開を適用しない処理も可能である。これは、システムのダイナミックスがある程度分かっており、微分方程式の解の挙動もかなり予測がつく場合に採用される。この場合、ステップ５０２で、微分方程式の係数は級数展開されず、ステップ５０４で微分方程式の解も、ボルテラ級数展開されない。ステップ５０６での区間解析も級数展開しない係数に適用され、結果の微分方程式の解もボルテラ級数展開されない。ステップ５１４でも、微分方程式の解が、ボルテラ級数展開されない。この場合は、解の係数ベクトルは、ボルテラ級数展開されない形で作成され、比較される。
【００８６】
さらに、 微分方程式の係数に、ボルテラ級数展開を適用して、区間解析を行うが、微分方程式の解は、ボルテラ級数展開を適用しないという処理も可能である。これは、あまりないケースであるが、システムのダイナミックスがかなり不明であり、一方、微分方程式の解の挙動はかなり予測がつく場合に採用される。この場合、ステップ５０２で、微分方程式の係数がボルテラ級数に展開されるが、ステップ５０４で微分方程式の解はボルテラ級数展開されない。係数の区間解析は、ボルテラ級数展開された係数に適用され、ステップ５０６での区間解析の結果の微分方程式の解もボルテラ級数展開されない。ステップ５１４でも、微分方程式の解が、ボルテラ級数展開されない。この場合は、解の係数ベクトルは、ボルテラ級数展開されない形で作成され、比較される。
【００８７】
次に、図７のフローチャートを参照して、簡略化された数式２２２から変換されたブロック線図の妥当性判定処理について、説明する。この処理は、種数判定モジュール２２８が行う。
【００８８】
図７のステップ７０２で、種数判定モジュール２２８は、ブロック線図の各ブロックに番号を振り、ブロックの数がＮであれば、Ｎ×Ｎの零行列を作成する。
【００８９】
ステップ７０４では、種数判定モジュール２２８は、Ｉ番目のブロックからＪ番目のブロックへ有向結線されていれば、行列のＩＪ要素を１とする処理を、全てのブロック間結線について行う。
【００９０】
ステップ７０６では、種数判定モジュール２２８は、ブロック線図から生成されたグラフ表現に対応する行列の情報を用いて、グラフの種数を求める。このアルゴリズムに特に限定はないが、例えば、M.L. Furst, J.L. Gross, and L.A. McGeoch, “Finding a Maximum-Genus Graph Imbedding”, Journal of ACM, Vol.35, No.3, July 1988, pp.523-534に記載されているアルゴリズムを使用する。
【００９１】
その結果、ステップ７０８で、種数が２より小さいと判定されると、ステップ７１０に行って、ブロック線図で妥当と判定する。これは、結果のメッセージをシステムが、ディスプレイ１１４に表示してもよい。
【００９２】
ステップ７１２で、種数が２以上で７より小さいと判定されると、ステップ７１４で、ループによる不安定の可能性のため数式記述を推奨する。これも、結果のメッセージをシステムが、ディスプレイ１１４に表示してもよい。
【００９３】
ステップ７１２で、種数が７以上と判定されると、ステップ７１６で、ベクトル演算が結線されているが、複雑すぎる結線可能性のため、数式記述またはブロック分割を推奨する。これも、結果のメッセージをシステムが、ディスプレイ１１４に表示してもよい。
【００９４】
次に、図８を参照して、プラントの制御の例を説明する。この例は、
【数４】
2011128675.tif 000006
を最小化するH2最適コントローラを設計する問題である。
【００９５】
この例では、次の前提で問題が解かれる。
- 次のコントローラ設計ではプラントの全係数が必要とは限らない。
- コントローラで用いる状態変数が数パーセントの誤差を許容可能な状況がある場合、行列AやBの要素で零にできるものがあれば、コントローラ構造も簡略化できる。
- 実際、QとRをスカラー行列として、係数を省略しない場合の状態変数と比べて5%の偏差を許容する場合、図８で印を付けた係数は零としても良いことが本発明から推奨表示される。
- 行列Cについては状態変数やコントローラ設計に影響しないので、ここでの評価対象としなかった。
- ここでH2コントローラとしてはカルマンフィルタを用いて比較を行った。
- また、評価関数のQ,Rに含まれる設計パラメータも同様の簡略化可能性を見出すことができるので、そうすれば、さらにコントローラを簡略化できる可能性がある。
【００９６】
実際、プラントの伝達関数行列関連部を(zI - A)-1Bにより計算すると、与えられた制御対象の4行2列の各要素は（3次/4次）の関数となるが、簡略化の結果、3行2列の要素が（2次/4次）の関数になり、次数削減による実装時の効率化を期待できる。
【００９７】
すなわち、本発明に従い、数式を簡易化すると、最適化による次数や係数削減によって、センサーや配線数を減らせることになり、実装コストを削減できる。そして、結果として、最適化によって高速なコントローラの実装が得られる可能性が高い、という効果が得られる。
【００９８】
以上、この発明を特定の実施例に基づき説明してきたが、この発明は、この特定の実施例に限定されず、当業者が自明に思いつく様々な変形、置換などの構成、技法に適用可能であることを理解されたい。例えば、特定のプロセッサのアーキテクチャ、オペレーティング・システムなどに限定されない。
【符号の説明】
【００９９】
１０２  システム・パス
１０４  ＣＰＵ
１１０  キーボード
１１２  マウス
１１４  ディスプレイ
１０６  主記憶
１０８  ハードディスク・ドライブ
２０２  ブロック
２０２  モデリング・システム
２０６  ソース・モデル・ファイル
２０８  ソースコード
２１０  数式抽出モジュール
２１２  数式変換モジュール
２１４  区間解析モジュール
２１６  ＣＡＳ
２２０  安定性判別モジュール
２２４  数式注入モジュール
２２６  変換モジュール
２２８  種数判定モジュール
【図１】
2011128675.tif 000007
【図２】
2011128675.tif 000008
【図３】
2011128675.tif 000009
【図４】
2011128675.tif 000010
【図５】
2011128675.tif 000011
【図６】
2011128675.tif 000012
【図７】
2011128675.tif 000013
【図８】
2011128675.tif 000014