説明

モデリング・システムの処理システム、方法及びプログラム

【課題】設計のためのモデリング・ツールにおいて、定量基準によりシステム表現の簡略化可能部分を自動判別する。
【解決手段】SysMLのブロックから数式が抽出され、または、Simulink(R)のブロック線図が微分方程式に変換され、その係数は、級数展開される。先ず、微分方程式を、CASにより通常どおり解きその解も、好適には級数展開される。次に、区間解析の技法により、区間係数として、CASによって微分方程式を含む数式を解く。区間解析の結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下であれば、対象としている係数を0にして、CASによって微分方程式を含む数式を解く。そこで再度、結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下であれば、対象としている係数の項を微分方程式から落とし、微分方程式を簡易化する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、自動車、ロボット、航空機などの機構装置を設計するためのモデリング・システムに関し、より詳しくは、モデリング・システムで使用される数式を処理するためのシステム、方法及びプログラムに関するものである。
【背景技術】
【0002】
従来より、MATLAB(R)/Simulink(R)などのシミュレーション・モデリング・ツールで、モデルを作成してテストし、実機に搭載することが行われている。MATLAB(R)/Simulink(R)を利用したモデリングの技術は、特開2005−222420号公報など多数の公開公報に記載されている。
【0003】
一方、最近になって、特開2009−176010号公報に開示されているように、UMLの拡張であるSysMLで、機構装置をモデリングすることも行われている。
【0004】
MATLAB(R)/Simulink(R)では、多くの場合、モデルの挙動は微分方程式に帰着されるし、UML/SysMLでも、モデルの要素の挙動や制約は、数式を使って記述される。
【0005】
その際、典型的には、特開平7−281714号公報で述べられているように、記述された数式モデルをどう扱うかということは、課題であり続けている。
【0006】
ところで、ある製品を設計する際の制御ストラテジーにおいて、一般的な評価関数に基づき設計されたシステム記述を、具体的なモデリングで用いる場合、ある複雑な数式モデルに対して、より簡略な表現が可能かどうか決定したいという要望がある。なぜなら、複雑な数式モデルをそのまま設定すると、複雑な構成になって、部品コスト、製造コストが嵩むなどの問題点が生じることがある。そこで、等価な機能を、より簡素化された数式モデルで記述できるなら、コスト節約として、とても有意義である。
【0007】
しかし、SysML等による制御ストラテジー設計で、数式やSimulink(R)によるシステム記述の詳細度適切性について基準が不明確であることが課題である。
【0008】
例えばSysMLにおける制約として内部ブロック図等の数式や、Simulinkモデルとしてシステム要素を、どの程度の詳細度で記述するかは、モデリングが用いられる局面あるいはモデル作成者の主観に依存してきた。
【0009】
また、注目している制御部分をモデリングする場合、一般的な評価基準から設計されたシステム記述のみでは、着目している制御対象のモデリングの意味に幅を持たせてしまい、過度に複雑な制御システムを設計してしまう可能性があり、それを回避するためには、モデリング詳細度の適切性を定量基準に基づいて簡略化可能部分があるかどうか判別することが必要である。
【0010】
しかし、そのような技術は、今まで知られていない。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2005−222420号公報
【特許文献2】特開2009−176010号公報
【特許文献3】特開平7−281714号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
この発明の目的は、設計のためのモデリング・ツールにおいて、定量基準によりシステム表現の簡略化可能部分を自動判別することを可能ならしめる技術を提供することにある。
【0013】
この発明の他の目的は、不必要に複雑となっている部分をシステムの簡略化可能部分として定量的に判別することで、物理的意味を保持しつつ、効率的な制御システム設計を可能とすることにある。
【0014】
この発明の更に他の目的は、コントローラの設計を最適化することで実際のオペレーション領域を絞り込むことを可能とすることにある。
【課題を解決するための手段】
【0015】
この発明は、上記目的を達成するためになされたものであり、この発明によれば先ず、コンピュータの処理により、例えばSysMLのブロックから数式が抽出され、または、Simulink(R)のブロック線図が微分方程式に変換され、いずれにしても、コンピュータのメモリまたはハードディスク上に、数式が用意される。
【0016】
この発明に従えば、抽出された、微分方程式を含んでいてもよい数式の係数は、級数展開される。このとき、好適な級数展開は、非線形の信号処理などでよく用いられる、ボルテラ級数展開である。
【0017】
次に、この発明のシステムは、微分方程式を含む数式を、既知の数式処理システム(CAS)によって解く。この解は、一旦、メモリまたはハードディスク上に保存される。
【0018】
次に、この発明のシステムは、級数展開された微分方程式を含む数式の一係数に擾乱を与えて、区間解析の技法により、区間係数として、CASによって微分方程式を含む数式を解く。
【0019】
次に、この発明のシステムは、区間解析の結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下かどうかを判断する。そうでなければ、微分方程式を含む数式の級数展開された次の係数を選び、そうであれば、対象としている係数を0にして、CASによって微分方程式を含む数式を解く。
【0020】
そこで再度、結果の解と、保存されている、普通に解いた解の係数ベクトルを比較して、ベクトル間距離が既定値以下かどうかを判断する。
【0021】
もしそのベクトル間距離が既定値以下であると判断されると、対象としている係数は省略可能であると判断される。
【0022】
この発明の別の側面によれば、上記で得られた数式がブロック線図に逆変換され、そのブロック線図について、コンピュータ・メモリ上でグラフ表現に変換され、その上で、位相幾何的な種数が判定される。そして、種数がある数より小さいことにより、ブロック線図の記述の妥当性を判定する。
【発明の効果】
【0023】
この発明によれば、設計のためのモデリング・ツールにおいて、モデルの数式表現において、安定性を考慮して合理的に項を省略することによって、定量基準によりシステム表現の簡略化可能部分を自動判別することが可能となる。
【0024】
また、発明によれば、数式表現の簡略化を通じて、不必要に複雑となっている部分をシステムの簡略化可能部分として定量的に判別することによって、物理的意味を保持しつつ、効率的な制御システム設計を行うことができる。
【図面の簡単な説明】
【0025】
【図1】この発明を実施するためのハードウェア構成の一例のブロック図である。
【図2】この発明を実施するための機能ブロック図を示す図である。
【図3】SysMLのブロックからの数式の抽出と、簡易化した数式の抽出を示す図である。
【図4】ブロック線図を数式に変換し、簡易化した数式をブロック線図に変換する図である。
【図5】数式を簡易化する処理のフローチャートを示す図である。
【図6】数式を簡易化する処理のフローチャートを示す図である。
【図7】ブロック線図の種数を判別する処理のフローチャートを示す図である。
【図8】H2最適コントローラを設計する例を示す図である。
【発明を実施するための形態】
【0026】
以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
【0027】
図1を参照すると、本発明を実施するための一例のシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図1において、システム・パス102には、CPU104と、主記憶(RAM)106と、ハードディスク・ドライブ(HDD)108と、キーボード110と、マウス112と、ディスプレイ114が接続されている。CPU104は、好適には、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のPentium(商標) 4、Core(商標)2 Duo、Xeon(商標)、AMD社のAthlon(商標)などを使用することができる。主記憶106は、好適には、2GB以上の容量をもつものである。
【0028】
ハードディスク・ドライブ108には、個々に図示しないが、オペレーティング・システムが、予め格納されている。オペレーティング・システムは、Linux(商標)、マイクロソフト社のWindows(商標)7、Windows XP(商標)、Windows(商標)2000、アップルコンピュータのMac OS(商標)などの、CPU104に適合する任意のものでよい。
【0029】
ハードディスク・ドライブ108にはまた、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能な、UML/SysMLモデリング・システムである、IBM(R) Rational(R) Rhapsody(R)と、MathWorks社から入手可能なシミュレーション・モデリング・システムである、MATLAB(R)/Simulink(R)が導入されている。図2の機能ブロック図では、UML/SysMLモデリング・システムは、ブロック202として図示され、MATLAB(R)/Simulink(R)は、ブロック202として図示されている。
【0030】
ハードディスク・ドライブ108にはさらに、数式処理ツール(CAS)として、Maximaが導入されている。尚、本実施例で使用可能なCASとして、Maximaに限定されず、MapleSoftから入手可能なMapleや、Wolfram Researchから入手可能なMathematicaなどの利用可能な任意のCASを使用してもよい。あるいは、MATLABのToolBoxにあるSymbolic Math Toolboxを使用してもよい。
【0031】
ハードディスク・ドライブ108にはさらに、図2に図示し後で詳述する、UML/SysMLモデリング・システム202のためのソース・モデル・ファイル206、シミュレーション・モデリング・システムのためのソースコード208が格納される。
【0032】
ハードディスク・ドライブ108にはさらに、数式抽出モジュール210、数式変換モジュール212、区間解析モジュール214、安定性判別モジュール220、数式注入モジュール224、ブロック線図への変換モジュール226、種数判定モジュール228が保存され、必要に応じてオペレーティング・システムの作用で主記憶106に読み出され、実行される。
【0033】
キーボード110及びマウス112は、オペレーティング・システムまたは、ハードディスク・ドライブ108から主記憶106にロードされ、ディスプレイ114に表示されたプログラム(図示しない)を起動したり、文字を打ち込んだりするために使用される。
【0034】
ディスプレイ114は、好適には、液晶ディスプレイであり、例えば、XGA(1024×768の解像度)、またはUXGA(1600×1200の解像度)などの任意の解像度のものを使用することができる。ディスプレイ114は、図示しないが、処理すべきグラフ・データや、グラフの類似度を表示するために使用される。
【0035】
次に、図2を参照して、本発明に係る機能ブロック図を説明する。UML/SysMLモデリング・システム202は、上述のように、この実施例ではIBM(R) Rational(R) Rhapsody(R)であるが、これには限定されず、任意のUML/SysMLモデリング・システムを使用することができる。
【0036】
UML/SysMLモデリング・システム202上でユーザは、UML/SysMLの規則に従い、設計のモデルを作成し、モデル・ファイル206として、ハードディスク・ドライブ108に保存することができる。また随時読み出して編集することができる。
【0037】
図3のブロック302、304及び306は、SysMLのクラス図の例を示す。
【0038】
シミュレーション・モデリング・システム204は、この実施例では、上述のようにMATLAB(R)/Simulink(R)であるが、これには限定されず、オープンソースのScilab/Scicosなど任意のシミュレーション・モデリング・ツールを使用することが可能である。
【0039】
シミュレーション・モデリング・システム204上でユーザは、GUI操作で機能ブロックを配置し連結することにより、ソースコード208を生成し、ハードディスク・ドライブ108に保存することができる。また随時読み出して編集することができる。ソースコード208は、機能ブロック間の依存関係を記述するための、MDLファイルを含んでいてもよい。
【0040】
数式抽出モジュール210は、UML/SysMLモデリング・システム202のうちの指定されたブロックから、振る舞いを既定する式または制約式を抽出して、後の処理のため、好適には主記憶106上に配置する。図3の例では、ブロック306に数式(この場合は微分方程式)が含まれ、数式抽出モジュール210によって数式308として抽出される。
【0041】
数式変換モジュール212は、シミュレーション・モデリング・システム204で記述されているブロック線図を、対応する微分方程式に変換して、好適には主記憶106上に配置する機能を有する。数式変換モジュール212は、基本的にはC、C++、Java(R)などのプログラムで作成することもできるし、MapleとMapleSimの組合せにより実現することもできる。
【0042】
図4(a)に、シミュレーション・モデリング・システム204によって作成されたブロック線図の例を示す。数式変換モジュール212は、図4(a)に示すブロック線図を、図4(b)に示す微分方程式に変換する。
【0043】
区間解析モジュール214は、数式抽出モジュール210または数式変換モジュール212から受け取った微分方程式を含む数式の係数を、CAS216の機能を使用してボルテラ級数展開する。ボルテラ級数展開は、特開平11−261436号公報、特開2006−86681号公報、特開2006−260244号公報、及び特開2006−28746号公報などに記載されており従来より周知なので、ここでは詳しくは説明しない。
【0044】
尚、本発明で使用する級数展開は、ボルテラ級数展開以外に、目的に応じてテイラー展開などの任意の級数展開を使用することができる。
【0045】
区間解析モジュール214はまた、区間解析のために、級数展開の係数に基づき生成した区間を生成し、CAS216に渡す機能をもつ。
【0046】
CAS216は、数式抽出モジュール210または数式変換モジュール212から与えられた数式自体をボルテラ級数展開し、あるいは微分方程式の解をボルテラ級数展開して、数式の解の展開された級数218として、ハードディスク・ドライブ108に保存する。展開された級数218には、数式抽出モジュール210または数式変換モジュール212から受け取った微分方程式を含む数式の係数のボルテラ級数展開のデータも含まれる。
【0047】
安定性判別モジュール220は、区間解析モジュール214、CAS216と協働して、簡略化された数式222を求めるように動作する。安定性判別モジュール220の動作は、図5及び図6のフローチャートを参照して、後で詳細に説明する。
【0048】
安定性判別モジュール220は、処理の結果、簡略化された数式222を生成して、好適には、主記憶106の所定の領域に配置する。簡略化された数式222は、図3のSysMLのブロックでは、参照番号310で示され、Simulink(R)用では、図4(c)に示されている。
【0049】
数式注入モジュール224は、簡略化された数式222を、SysMLのブロックに注入して、上書きする。図3では、簡略化された数式310が、ブロック306に注入される。
【0050】
ブロック線図への変換モジュール226は、図4(c)に示されている、簡略化された数式310を、図4(d)に示すように、ブロック線図へ変換する機能をもつ。このような微分方程式のブロック線図への変換は、簡略化された数式310としての微分方程式をMATLAB(R)での表現にして、それをS-functionというSimulinkで使えるブロックの一つにすることにより、達成される。ただ、多少、手操作での処理が必要になる場合がある。
【0051】
種数判定ブロック228は、図4(d)に示すような、微分方程式から変換されたブロック線図に対して、種数を求めることにより、ブロック線図の妥当性を判断する機能をもつ。種数とは、位相幾何学的な性質で、曲面に開いている穴の数のことである。種数判定ブロック228のより詳細な処理は、図7のフローチャートを参照して、後で詳細に説明する。
【0052】
次に、図5及び図6のフローチャートを参照して、図2の安定性判別ブロックの処理を説明する。先ず、図5のステップでは、図4に示すように、数式変換モジュール212がブロック線図を変換するか、図3に示すように、数式抽出モジュール210がブロックから数式を抽出するかして、微分方程式を含む数式が主記憶106上に用意される。
【0053】
尚、以下では、微分方程式を例にとって説明するが、これには普通の数式も含まれるものとする。すなわち、微分方程式を下記の式のように表記したとき、
【数1】


のようになる。
【0054】
すなわち、ここで、P(x) = Q(x) = 0と仮定すると、R(x)だけ残って、普通の、微分方程式を含まない数式に帰着される。また、この例では、1階の微分方程式であるが、より高階の微分方程式である場合もあることを理解されたい。但し、ニュートンの方程式が典型的にそうであるように、ほとんどの設計の目的には、2階までの微分方程式で十分である。また、微分方程式は、CASが解ける範囲で、連立微分方程式であってもよい。
【0055】
本発明の一実施例によれば、このような微分方程式をそのままCAS216で解くのではなく、微分方程式の関数P(x), Q(x), R(x)が、CAS216の機能によって級数展開される。
【0056】
本発明に好適な級数展開は、通常、非線形システムの解析に用いられるボルテラ級数展開であり、下記の式で一般的に表記される。
【数2】


この式で、実際は∞のところは、主記憶106のサイズの限界に基づく利用可能なメモリサイズに合わせて、適当な有限の項数で打ち切る。この式で、hp(m1,...,mp)は、ボルテラ核(Volterra kernel)と呼ばれる。この実施例では、x(n-mi) ( i = 1,...,p)としては、場合に応じて、指数関数、三角関数、代数関数などが使用される。
【0057】
尚、ボルテラ級数展開について、既にいくつかの特許公開公報を従来技術として挙げたが、ボルテラ級数展開のより詳細な技法については、Analytical and Numerical Methods for Volterra Equations (Studies in Applied and Numerical Mathematics) by Peter Linz (Hardcover - Jan 1, 1987)などを参照されたい。
【0058】
また、本実施例で想定する好適な級数展開がボルテラ級数展開であるが、本発明はボルテラ級数展開に限定されず、場合に応じて、テイラー級数展開、フーリエ級数展開などの知られているその他の級数展開も使用することができる。
【0059】
P(x), Q(x), R(x)の各々をボルテラ級数展開したとき、その各々を
x(n-m1)...x(n-mp)の項で纏めると、P(x), Q(x), R(x)の各々につき、ボルテラ核を含む係数の列が得られる。
【0060】
すると、x(n-m1)...x(n-mp)の並びをベクトルとして、Xと表記すると、係数のベクトルp,q,rで以って、P(x) = pX, Q(x) = qX, R(x) = rXと表記することができる。そこで、ベクトルp,q,rの成分を並べて、αと表記することにする。
【0061】
ステップ504では、CAS216が、微分方程式を解き、本発明の一実施例では、その解をやはりボルテラ級数展開で、βXと表記する。ここのXは、P(x), Q(x), R(x)で述べたXと同じものである。βの値は、後で参照するために、主記憶106の適当な領域に格納される。
【0062】
ステップ506では、区間解析モジュール214によってベクトルαの一要素α1が、ある適当な小さい擾乱の値δを以って、区間[α1,δ] = α1±δに置き換えられ、この区間係数ベクトルαIで、CAS216が再び、微分方程式を解く。そして、本発明のこの実施例では、その解をやはりボルテラ級数展開で、βIXと表記する。ベクトルβIの値は、後で参照するために、主記憶106の適当な領域に格納される。
【0063】
尚、区間解析は、精度保証付き数値計算で使われる技法で、基本演算は、下記のとおりである。
[A,α] + [B,β] = [A + B,α+β]
[A,α] - [B,β] = [A - B,α+β]
[A,α] × [B,β] = [AB,A|β|+|B|α+αβ]
さらに、任意の関数f(x)について、f([A,α])なども定義することができる。
区間解析のより詳細な技法については、現代非線形科学シリーズ6「精度保証付き数値計算」大石進一著、コロナ社、2000年などを参照されたい。
【0064】
ステップ508では、区間演算による解の係数ベクトルβIと、通常演算による解の係数ベクトルβが比較される。より具体的には、ある距離関数d()が与えられて、
d(β,βI)の値が計算される。
【0065】
ここで使用される好適な距離は、多変数間の相関に基づく、マハラノビス距離であり、特にここでは、dM(β,βI)と表記することにする。マハラノビス距離は、共分散行列の逆数を掛け合わせたベクトル差の値の平方根として定義される。なお、本発明で使用される距離は、マハラノビス距離に限らず、場合により、ユークリッド距離、マンハッタン距離など、知られているその他の距離を使用することもできる。
【0066】
次のステップ510では、ベクトル間距離が既定値以下か、すなわち、
ある既定値δresultを以って、dM(β,βI) <= δresultかどうかが判断される。もしそうでなければ、ステップ512で、係数ベクトルαの次の係数を選んで、ステップ506に戻る。すなわち、ステップ506では、選ばれた係数に基づき区間が作成され、微分方程式が解かれる。
【0067】
ステップ512で、dM(β,βI) <= δresultであると判断されると、ステップ514に進み、そこで、対象としている係数α1について、対象としている係数を0にして、CAS216で、再度、微分方程式を解く処理が行われる。その結果の解の係数ベクトルをβ0とすると、ステップ516では、dM(β,β0)の値が計算される。
【0068】
ステップ518では、dM(β,β0) <= δresultかどうかが判断される。尚ここで、比較する既定値は、ステップ510とは異なる値を使用してもよい。
【0069】
ステップ518でdM(β,β0) <= δresultと判断されると、ステップ520で、対象としている係数を省略することが決定される。その決定の情報は、主記憶106の所定の位置に格納され、後で、簡約化された微分方程式222を提供するために使用される。
【0070】
一方、ステップ518でdM(β,β0) <= δresultでないと判断されると、ステップ522で、対象としている係数の省略順位を下げる、すなわち、実際的に、その係数は省略しない。
【0071】
ステップ520またはステップ522の後は、ステップ522に行って、ベクトルαの成分である、全ての係数について完了したかどうかが判断される。そうでなければステップ506に戻り、そうならば、図6のフローチャートの処理に移行する。
【0072】
図6のステップ602では、システムは安定性を考慮する必要があるかどうかが判断される。安定性を考慮する必要がないシステムとは、フィードバックループが存在せず、入力がなくなれば次第に出力も減ることが事前に分かっているシステムである。
【0073】
もし、システムは安定性を考慮する必要がないシステムなら。直ちに処理は終了する。
【0074】
ステップ602で、安定性を考慮する必要があるシステムであると判断されると、ステップ604に進み、そこで、簡易化された式を含むシステムの安定性が判別される。ここでの安定性判定の方法は従来知られている任意の方法を用いることができるが、一番典型的なのは、ナイキストの判定法である。なお、ナイキストの判定法は、自動制御理論の文献に記述されており、この発明の要旨ではないので、ここでは詳説しない。
【0075】
また、システムが離散系であるなら、状態行列の固有値に基づく判定法も使用可能である。
【0076】
こうして、ステップ606で、簡易化された式を含むシステムが安定であると判定されると、処理は終了する。
【0077】
ステップ606で、簡易化された式を含むシステムが安定でないと判定されると、ステップ608で、αのうちのある係数を戻したときに計算されるβIとβの間の係数ベクトル間距離dM(β,βI)の大きさの降順に、αの成分である係数を、簡易化された式に戻して、ステップ610で再びシステムの安定性が判断される。この安定性の判定方法は、ステップ604での方法と同じでよい。
【0078】
その結果、ステップ610でシステムが安定と判断されると、処理は終了する。ステップ610でシステムが不安定と判断されると、ステップ612で、係数ベクトル間距離の降順で次の係数が選ばれて、ステップ608に戻る。
【0079】
図6のフローチャートには明示されていないが、全ての係数を戻してもシステムが安定にならないと、エラー終了となる。
【0080】
結局、図5及び図6の処理の結果、P(x), Q(x), R(x)のボルテラ級数展開項の一部が省略された、下記の簡略化された数式222が得られる。
【数3】

【0081】
尚、図5の処理において、ステップ506の区間係数に基づく微分方程式の解を求めることを経ず、いきなり、ステップ514で対象とする係数をゼロにして解の比較をしてもよさそうに思われるが、区間係数に基づく微分方程式の解を求めることを経ないでいきなり、ステップ514で対象とする係数をゼロにして解を求めると、不安定な局所解に陥る可能性がある。そこで、一旦、区間係数に基づく微分方程式の解を求めることが必要になる。
【0082】
こうして、下記の簡略化された数式222が得られると、それは、図3に示すように、数式注入モジュール224によってもとのブロックに注入され、あるいは、図4(d)に示すように、ブロック線図への変換モジュール226によって、ブロック線図に変換される。
【0083】
上記で説明した実施例では、ステップ502で、微分方程式の係数がボルテラ級数に展開され、ステップ504で微分方程式の解が、ボルテラ級数展開され、ステップ506での区間解析の結果の微分方程式の解もボルテラ級数展開され、ステップ514でも、微分方程式の解が、ボルテラ級数展開されているが、これには限定されず、以下のような変形例も、本発明の範囲であることを理解されたい。
【0084】
先ず、微分方程式の係数に、ボルテラ級数展開を適用しないで、そのまま区間解析を行い、微分方程式の解には、ボルテラ級数展開を適用する処理も可能である。これは、システムのダイナミックスがある程度分かっているが、微分方程式の解の挙動がよく分からない場合に採用される。この場合、ステップ502で、微分方程式の係数は級数展開されず、ステップ504で微分方程式の解が、ボルテラ級数展開され、ステップ506での区間解析が級数展開しない係数に適用されるが、結果の微分方程式の解はボルテラ級数展開され、ステップ514でも、微分方程式の解が、ボルテラ級数展開される。
【0085】
次に、微分方程式の係数に、ボルテラ級数展開を適用しないで、そのまま区間解析を行い、解にも、ボルテラ級数展開を適用しない処理も可能である。これは、システムのダイナミックスがある程度分かっており、微分方程式の解の挙動もかなり予測がつく場合に採用される。この場合、ステップ502で、微分方程式の係数は級数展開されず、ステップ504で微分方程式の解も、ボルテラ級数展開されない。ステップ506での区間解析も級数展開しない係数に適用され、結果の微分方程式の解もボルテラ級数展開されない。ステップ514でも、微分方程式の解が、ボルテラ級数展開されない。この場合は、解の係数ベクトルは、ボルテラ級数展開されない形で作成され、比較される。
【0086】
さらに、 微分方程式の係数に、ボルテラ級数展開を適用して、区間解析を行うが、微分方程式の解は、ボルテラ級数展開を適用しないという処理も可能である。これは、あまりないケースであるが、システムのダイナミックスがかなり不明であり、一方、微分方程式の解の挙動はかなり予測がつく場合に採用される。この場合、ステップ502で、微分方程式の係数がボルテラ級数に展開されるが、ステップ504で微分方程式の解はボルテラ級数展開されない。係数の区間解析は、ボルテラ級数展開された係数に適用され、ステップ506での区間解析の結果の微分方程式の解もボルテラ級数展開されない。ステップ514でも、微分方程式の解が、ボルテラ級数展開されない。この場合は、解の係数ベクトルは、ボルテラ級数展開されない形で作成され、比較される。
【0087】
次に、図7のフローチャートを参照して、簡略化された数式222から変換されたブロック線図の妥当性判定処理について、説明する。この処理は、種数判定モジュール228が行う。
【0088】
図7のステップ702で、種数判定モジュール228は、ブロック線図の各ブロックに番号を振り、ブロックの数がNであれば、N×Nの零行列を作成する。
【0089】
ステップ704では、種数判定モジュール228は、I番目のブロックからJ番目のブロックへ有向結線されていれば、行列のIJ要素を1とする処理を、全てのブロック間結線について行う。
【0090】
ステップ706では、種数判定モジュール228は、ブロック線図から生成されたグラフ表現に対応する行列の情報を用いて、グラフの種数を求める。このアルゴリズムに特に限定はないが、例えば、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に記載されているアルゴリズムを使用する。
【0091】
その結果、ステップ708で、種数が2より小さいと判定されると、ステップ710に行って、ブロック線図で妥当と判定する。これは、結果のメッセージをシステムが、ディスプレイ114に表示してもよい。
【0092】
ステップ712で、種数が2以上で7より小さいと判定されると、ステップ714で、ループによる不安定の可能性のため数式記述を推奨する。これも、結果のメッセージをシステムが、ディスプレイ114に表示してもよい。
【0093】
ステップ712で、種数が7以上と判定されると、ステップ716で、ベクトル演算が結線されているが、複雑すぎる結線可能性のため、数式記述またはブロック分割を推奨する。これも、結果のメッセージをシステムが、ディスプレイ114に表示してもよい。
【0094】
次に、図8を参照して、プラントの制御の例を説明する。この例は、
【数4】


を最小化するH2最適コントローラを設計する問題である。
【0095】
この例では、次の前提で問題が解かれる。
- 次のコントローラ設計ではプラントの全係数が必要とは限らない。
- コントローラで用いる状態変数が数パーセントの誤差を許容可能な状況がある場合、行列AやBの要素で零にできるものがあれば、コントローラ構造も簡略化できる。
- 実際、QとRをスカラー行列として、係数を省略しない場合の状態変数と比べて5%の偏差を許容する場合、図8で印を付けた係数は零としても良いことが本発明から推奨表示される。
- 行列Cについては状態変数やコントローラ設計に影響しないので、ここでの評価対象としなかった。
- ここでH2コントローラとしてはカルマンフィルタを用いて比較を行った。
- また、評価関数のQ,Rに含まれる設計パラメータも同様の簡略化可能性を見出すことができるので、そうすれば、さらにコントローラを簡略化できる可能性がある。
【0096】
実際、プラントの伝達関数行列関連部を(zI - A)-1Bにより計算すると、与えられた制御対象の4行2列の各要素は(3次/4次)の関数となるが、簡略化の結果、3行2列の要素が(2次/4次)の関数になり、次数削減による実装時の効率化を期待できる。
【0097】
すなわち、本発明に従い、数式を簡易化すると、最適化による次数や係数削減によって、センサーや配線数を減らせることになり、実装コストを削減できる。そして、結果として、最適化によって高速なコントローラの実装が得られる可能性が高い、という効果が得られる。
【0098】
以上、この発明を特定の実施例に基づき説明してきたが、この発明は、この特定の実施例に限定されず、当業者が自明に思いつく様々な変形、置換などの構成、技法に適用可能であることを理解されたい。例えば、特定のプロセッサのアーキテクチャ、オペレーティング・システムなどに限定されない。
【符号の説明】
【0099】
102 システム・パス
104 CPU
110 キーボード
112 マウス
114 ディスプレイ
106 主記憶
108 ハードディスク・ドライブ
202 ブロック
202 モデリング・システム
206 ソース・モデル・ファイル
208 ソースコード
210 数式抽出モジュール
212 数式変換モジュール
214 区間解析モジュール
216 CAS
220 安定性判別モジュール
224 数式注入モジュール
226 変換モジュール
228 種数判定モジュール

【特許請求の範囲】
【請求項1】
コンピュータの処理によって、設計を行うモデリング・システムの制御方法であって、
設計されるモデルから数式を得るステップと、
前記数式から、第1の解を求めるステップと、
前記級数において、1つの係数を区間にして、第2の解を求めるステップと、
前記第1の解の係数を第1のベクトルとし、第2の解の係数を第2のベクトルとし、両ベクトルの間の第1の距離を求めるステップと、
前記第1の距離が所定の値以下であることに応答して、前記1つの係数をゼロとして第3の解を求めるステップと、
前記第3の解の係数を第3のベクトルとし、前記第1のベクトルと前記第3のベクトルの間の第2の距離を求めるステップと、
前記第2の距離が所定の値以下であることに応答して、前記数式における前記1つの係数の項を省略可能と判別するステップを有する、
モデリング・システムの制御方法。
【請求項2】
前記数式の解を求める前に、前記数式の係数が、ボルテラ級数展開される、請求項1に記載の方法。
【請求項3】
前記数式の解が、ボルテラ級数展開された解として求められる、請求項1に記載の方法。
【請求項4】
前記距離が、マハラノビス距離である、請求項1に記載の方法。
【請求項5】
前記モデリング・システムが、SysMLのブロックを生成するモデリング・システムである、請求項1に記載の方法。
【請求項6】
前記ブロックから数式を抽出するステップと、該数式の、項を省略された数式を、前記ブックに注入するステップとを更に有する、請求項5に記載の方法。
【請求項7】
前記モデリング・システムが、ブロック線図を生成するモデリング・システムである、請求項1に記載の方法。
【請求項8】
前記ブロック線図を数式に変換するステップと、該数式の、項を省略された数式をブロック線図に変換するステップを更に有する、請求項7に記載の方法。
【請求項9】
前記数式から変換されたブロック線図の種数を求めるステップを更に有する、請求項8に記載の方法。
【請求項10】
コンピュータの処理によって、設計を行うモデリング・プログラムであって、
前記コンピュータをして、
設計されるモデルから数式を得るステップと、
前記数式から、第1の解を求めるステップと、
前記級数において、1つの係数を区間にして、第2の解を求めるステップと、
前記第1の解の係数を第1のベクトルとし、第2の解の係数を第2のベクトルとし、両ベクトルの間の第1の距離を求めるステップと、
前記第1の距離が所定の値以下であることに応答して、前記1つの係数をゼロとして第3の解を求めるステップと、、
前記第3の解の係数を第3のベクトルとし、前記第1のベクトルと前記第3のベクトルの間の第2の距離を求めるステップと、
前記第2の距離が所定の値以下であることに応答して、前記数式における前記1つの係数の項を省略可能と判別するステップを有する、
モデリング・プログラム。
【請求項11】
前記数式の解を求める前に、前記数式の係数が、級数展開される、請求項10に記載のプログラム。
【請求項12】
前記数式の解が、級数展開された解として求められる、請求項10に記載のプログラム。
【請求項13】
前記級数展開が、ボルテラ級数展開である、請求項12または請求項11に記載のプログラム。
【請求項14】
前記距離が、マハラノビス距離である、請求項10に記載のプログラム。
【請求項15】
前記モデリング・プログラムが、SysMLのブロックを生成するステップを含む、請求項10に記載のプログラム。
【請求項16】
前記ブロックから数式を抽出するステップと、該数式の、項を省略された数式を、前記ブックに注入するステップとを更に有する、請求項15に記載のプログラム。
【請求項17】
前記モデリング・プログラムが、ブロック線図を生成するステップを含む、請求項10に記載のプログラム。
【請求項18】
前記ブロック線図を数式に変換するステップと、該数式の、項を省略された数式をブロック線図に変換するステップを更に有する、請求項17に記載のプログラム。
【請求項19】
前記数式から変換されたブロック線図の種数を求めるステップを更に有する、請求項18に記載のプログラム。
【請求項20】
コンピュータの処理によって、設計を行うモデリング・システムであって、
設計するモデルを作成し、または編集する手段と、
前記モデルから数式を得る手段と、
前記数式の解を求める機能をもつ計算手段と、
前記計算手段に、前記数式の項の区間を適用して計算させる手段と、
前記計算手段による異なる2つの解の間の距離を求める手段と、
前記数式のを省略することにより、数式を簡略化する手段を有し、
前記解の間の距離が所定の距離より小さいことに応答して、前記数式を簡略化する手段により数式を簡略化する、
モデリング・システム。
【請求項21】
前記計算手段が、前記数式の係数及び計算結果を級数展開する機能を有する、請求項20に記載のシステム。
【請求項22】
前記計算させる手段が、前記数式の項の区間を適用する際に、級数展開する項を使用する、請求項21に記載のシステム。
【請求項23】
前記2つの解の間の距離を求める手段は、級数展開された項の間の距離を求める、請求項21に記載のシステム。
【請求項24】
前記級数展開が、ボルテラ級数展開である、請求項23または請求項22に記載のシステム。
【請求項25】
前記距離が、マハラノビス距離である、請求項20に記載のシステム。
【請求項26】
前記モデリング・システムが、SysMLのブロックを生成する手段を含む、請求項20に記載のシステム。
【請求項27】
前記ブロックから数式を抽出する手段と、該数式の、項を省略された数式を、前記ブックに注入する手段とを更に有する、請求項26に記載のシステム。
【請求項28】
前記モデリング・システムが、ブロック線図を生成する手段を含む、請求項20に記載のシステム。
【請求項29】
前記ブロック線図を数式に変換する手段と、該数式の、項を省略された数式をブロック線図に変換する手段を更に有する、請求項28に記載のシステム。
【請求項30】
前記数式から変換されたブロック線図の種数を求める手段を更に有する、請求項29に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−128675(P2011−128675A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−283737(P2009−283737)
【出願日】平成21年12月15日(2009.12.15)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】