JP2004220566A - 機構シミュレーション方法および機構シミュレーションプログラム - Google Patents
機構シミュレーション方法および機構シミュレーションプログラム Download PDFInfo
- Publication number
- JP2004220566A JP2004220566A JP2003389710A JP2003389710A JP2004220566A JP 2004220566 A JP2004220566 A JP 2004220566A JP 2003389710 A JP2003389710 A JP 2003389710A JP 2003389710 A JP2003389710 A JP 2003389710A JP 2004220566 A JP2004220566 A JP 2004220566A
- Authority
- JP
- Japan
- Prior art keywords
- model
- simulation
- variables
- dynamics
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 131
- 238000004088 simulation Methods 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000007704 transition Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 230000006399 behavior Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
Landscapes
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
【課題】連続系方程式を用いて機構の挙動を時間軸に沿ってシミュレーションするダイナミクスシミュレーションと、3次元機構モデルを用いたキネマティックスシミュレーションとを併用する機構シミュレーション方法およびプログラムの提供。
【解決手段】 ダイナミクスシミュレーションと、キネマティックスシミュレーションとを併用する機構シミュレーション方法及びであって、連続系方程式における変数と3次元機構モデルの機構要素との対応関係を読み込むステプログラムップ501、502と、ダイナミクスシミュレーションを実行し連続系方程式の変数の値を求めるステップ504と、対応関係を参照し、変数の値に基づいて3次元機構モデルの機構要素に対するキネマティックスシミュレーションを実行するステップ506とを具備する。
【選択図】図3
【解決手段】 ダイナミクスシミュレーションと、キネマティックスシミュレーションとを併用する機構シミュレーション方法及びであって、連続系方程式における変数と3次元機構モデルの機構要素との対応関係を読み込むステプログラムップ501、502と、ダイナミクスシミュレーションを実行し連続系方程式の変数の値を求めるステップ504と、対応関係を参照し、変数の値に基づいて3次元機構モデルの機構要素に対するキネマティックスシミュレーションを実行するステップ506とを具備する。
【選択図】図3
Description
本発明は、コンピュータを用いて機構の挙動をシミュレーションする方法およびプログラムに関し、特に微分方程式ないしは代数方程式からなる連続系方程式を用いた機構の時間軸に沿った挙動に関するダイナミクスシミュレーションと、3次元の形状データを含む3次元機構モデルを用いたキネマティックスシミュレーションとを併用するものである。
現在、コンピュータを用いて機械やプラント等の連続系の時間軸上での挙動のシミュレーションを行う際には、対象を微分方程式などでモデル化し、数値積分などの手法を用いて解を求めることが行われている。さらに、複雑な系の挙動を表現するためには、ハイブリッドモデリングと呼ばれる手法が使われることもある。ハイブリッドモデルを用いたシミュレーションは、通常の連立微分方程式によるシミュレーションをさらに高度化したものであり、「ハイブリッドシミュレーション」と呼ばれている。このようなシミュレーション挙動をするシステムを「ハイブリッドシステム」と呼ぶこともある。シミュレーションの目的で作成されるハイブリッドモデルは、概念的には常微分方程式や代数方程式を連立させた連立方程式によって表現される連続系モデルと、イベント発生に伴う状態遷移を表現するための状態遷移モデルとを組み合わせたモデルである。ハイブリッドモデルによれば、連続系モデルで表現される状態が外部からのイベントなどにより瞬時に切り替わるシステムを表現することができ、より高度なモデル表現が可能である。
ハイブリッドモデルを記述するための言語として、米国ゼロックス社(商標)のパロアルト研究所にて創作されたHCC(Hybrid Concurrent Constraint Programming)と呼ばれる言語がある(下記非特許文献1参照)。HCCは発展途上にあり、現在も米国NASAのエイムズ研究所において研究が進められている。HCCは制約処理プログラミング(コンストレイントプログラミング)と呼ばれる技術の一種であり、連続系モデルを表現する常微分方程式や代数方程式を制約として扱い、これら方程式をそのまま順不同で記述することができる。このような制約記述に、状態遷移を制御する記述を付加してHCC言語のハイブリッドモデルは完成される。HCCによれば、方程式をそのまま制約として羅列する(プログラミングする)ことができ、複雑なモデルを記述することが可能である。
このようにハイブリッドモデルの技術を用いれば、系の特性を常微分方程式などでモデル表現し、初期状態から時間の推移に従ってどのような挙動を示すかをシミュレーションすることができる。このような微分方程式などの方程式によるモデル化は外乱による過渡応答や振動など動的な挙動を表現できるため、ダイナミクスシミュレーション(動力学シミュレーション)とも呼ばれる。
微分方程式などで表現可能な対象や現象を的確にモデル化できるハイブリッドモデルの技術の応用例として、ソフトウェアにより機構が制御されるメカトロニクス機器の機構シミュレーションがある。かかる機構シミュレーションによれば、機構の実機が存在しない状況においても、当該機構を制御する制御ソフトウェアのプロトタイピング、テスト、あるいはデバッグなどが行えるようになる。
一方、機構の3次元的な形状データや、部品同士の関節などによる接続関係の情報などを用いて、機構の3次元空間内での幾何学的な動作のシミュレーションを行う技術が知られている。3次元CADの技術や機構シミュレーションソフトウェアがこれに相当し、例えば、特開2001−222572公報(下記特許文献1)に記載の技術も参考にすることができる。このようなソフトウェアは振動特性のような時間軸に沿った系の挙動のシミュレーションはできないが、複雑な位置関係などを扱うことができ、キネマティックスシミュレーション(機構学シミュレーション)と呼ばれることもある。
特開2001−222572に記載の技術は、ソフトウェアにより機構が制御されるメカトロニクス機器の機構シミュレーションを、キネマティクスシミュレーションおよび限定的かつすでにパッケージソフトウェアに組込み済みの限られたダイナミクスの範囲において、実現した公知例である。
機構シミュレーションソフトウェアの中には、ダイナミクスシミュレーションの機能を取り入れ、機構学と動力学の両方を扱えるようにしたものも存在する。しかし、このようなソフトウェアは、前記HCCで示したようなプログラミング言語的に、複雑な系のモデル化を柔軟に行えるダイナミクスシミュレーションには対応していない。このため、ユーザがシミュレーションの目的に応じて最適なモデル化手法を選び、それに基づいて作成したモデル記述を用いてキネマテティクスシミュレーションとダイナミクスシミュレーションを並立させて実行することができなかった。さらに、より複雑なハイブリッドモデリング技術を用いる場合には、キネマティクスシミュレーションとダイナミクスシミュレーションを連携させることは困難であった。
特開2001−222572公報 インターネット<URL:www2.parc.com/spl/projects/mbc/publications.html#cclanguages>
特開2001−222572公報 インターネット<URL:www2.parc.com/spl/projects/mbc/publications.html#cclanguages>
本発明はかかる事情を考慮してなされたものであり、微分方程式などの方程式記述によるダイナミクスモデルやハイブリッドモデルを用いた複雑なダイナミクスモデルと3次元形状データを含むキネマティクスモデルを容易に連携させることを可能とすることを目的とする。
また、これにより、ダイナミクスシミュレーションとキネマティクスシミュレーションを並立した高度なシミュレーションを、ソフトウェアにより機構が制御されるメカトロニクス機器の実機レスシミュレーションに適用可能にすることを目的にする。
本発明の一観点に係る機構シミュレーション方法は、複数の変数を有する連続系方程式から構成されるダイナミクスモデルを用いて機構の挙動をシミュレーションするダイナミクスシミュレーションを実行する第1のシミュレータと、複数の機構要素から構成される3次元機構モデルを用いて前記機構の3次元空間内での幾何学的な動作をシミュレーションするキネマティックスシミュレーションを実行する第2のシミュレータとを連携させる機構シミュレーション方法である。この機構シミュレーション方法は、前記第1のシミュレータが前記ダイナミクスシミュレーションを実行することにより前記連続系方程式のいずれかの変数の値を計算するステップと、前記複数の変数と前記複数の機構要素との対応を表すテーブルを参照し、前記値が計算された変数に対応付けられる機構要素を特定するステップと、計算された前記変数の値と特定された前記機構要素とを表す情報を前記第2のシミュレータに送信するステップと、前記情報に基づいて、前記第2のシミュレータが前記キネマティックスシミュレーションを実行するステップとを具備する。
本発明によれば、ハイブリッドモデルを用いるようなダイナミクスシミュレーションと3次元キネマティクスシミュレーションを簡便かつ効果的に連携させることが可能となり、かつダイナミクスシミュレーションは、ハイブリッドモデル記述言語のようなプログラミング言語により自由に記述することが可能となる。これにより、複雑な機構系を簡便かつ正確にモデル化でき、該機構系を制御する制御ソフトウェアとの連携シミュレーションにも好適な機構シミュレーション方法およびプログラムを提供できる。
以下、図面を参照しながら本発明の実施形態を説明する。なお、以下では、ダイナミクスシミュレータとしてハイブリッドモデリング技術を採用し、かつ、機構制御ソフトウェアないしは機構制御ソフトウェアのシミュレータと連携して動作する最も複雑な実施形態の1つの態様をもとに説明する。
<第1の実施形態>
図1は、本発明の第1実施形態に係る機構シミュレータの概略構成を示すブロック図であり、図2は、かかる機構シミュレータが機構制御ソフトウェアないしは機構制御ソフトウェアのシミュレータと連携する場合の構成を示している。
図1は、本発明の第1実施形態に係る機構シミュレータの概略構成を示すブロック図であり、図2は、かかる機構シミュレータが機構制御ソフトウェアないしは機構制御ソフトウェアのシミュレータと連携する場合の構成を示している。
機構シミュレータはダイナミクスシミュレーション部101およびキネマティクスシミュレーション部103および変数・機構要素対応テーブル105から構成され、機構制御ソフトウェアないしは機構制御ソフトウェアのシミュレータ108と制御信号109をやり取りする。なお、本実施形態は一般的なコンピュータ107を用いて構成することができ、その基本的なハードウェア構成として、図示しないが中央演算ユニット(CPU)、メモリ、外部記録装置、通信インターフェース(I/F)、および表示装置やキーボード、マウス等の入力装置を備える。また、これらのハードウェアを制御するためのオペレーティングシステム(OS)を備える。また、本発明の実施形態に係る機構シミュレータは、このようなオペレーティングシステム上で動作するアプリケーションソフトウェアとして実装することができる。
シミュレーション対象である機構の動力学的なモデル記述は、後で詳細に説明するハイブリッドモデル記述言語により記述され、ファイル(ハイブリッドモデル記述)102としてあらかじめ記憶されている。一方、3次元形状情報を含む機構モデルデータも所定のフォーマットに従いファイル(3次元機構モデル)104としてあらかじめ保存されている。これらのデータはシミュレーション開始時に読み込まれる。この段階では、ダイナミクスシミュレーション部101およびキネマティクスシミュレーション部103がそれぞれ単独に動作することが可能である。次に、あらかじめ保存されていたダイナミクスモデル記述に現れる変数と3次元機構モデルの機構要素との対応関係データ106を読み込む、ないしはPCのキーボードなど入力デバイスより直接データを入力することにより、変数・機構要素対応テーブル105のデータがセットされる。これにより、ダイナミクスシミュレーション部101およびキネマティクスシミュレーション部103が連携して動作する準備が整う。
実際のシミュレーションにおいては、モータなどアクチュエータヘの加速コマンドや加速レートのパラメータ設定などの情報が、機構制御ソフトウェアないしは機構制御ソフトウェアのシミュレータ108から送信され、それに基づきハイブリッドモデルとして記述された適切な状態遷移と方程式に基づく数値積分による系の挙動が計算される。ハイブリッドモデルにより、どのようにダイナミクスが表現され、状態遷移が実現できるかについては、後で詳細に説明する。
実際の機構制御系においては、機構制御ソフトウェアからのコマンドやパラメータは、一定の時間サイクルごとに指定されたI/Oポートを読み込みにいくポーリング(Polling)処理によって取得される。そのためシミュレーションにおいても、これと同じ時間間隔ごとにシミュレーションをすすめていく。
すなわち、図3に示されるフローチャートのように、ハイブリッドモデルの読み込みステップ501および3次元機構モデル読み込みステップ502を実行し(501と502の順序は入れ替わった実施形態としても全く問題はない)、シミュレーションを開始する。前記一定のサイクルごとに制御信号を読み込みに行く制御信号受信ステップ503を行い、それに基づく適切な状態遷移と方程式に基づく数値積分による系の挙動が計算されるダイナミクスシミュレーションステップ504が実行される。これにより、各変数の値が計算されるので、変数と機構要素の対応関係をチェックしキネマティクスシミュレーション部に値を送信するステップ505が実行され、その値に基づきキネマティクスシミュレーションがステップ506で実行される。機構制御系は、機構からセンサー情報を受け取って、新たな制御コマンドの必要性を判断するので、ダイナミクスシミュレータ101ないしはキネマティクスシミュレータ103から得られる主にセンサーデータを機構制御系に送信するステップ507が実行される。このあと、あらかじめ指定された時間だけシミュレーションが進んだかどうかを判断するステップ508を行い、まだ実行途中であれば次の時間に進めるために、データの記録などの処理を行うステップ509が実行され、ふたたび制御信号の受信ステップ503にもどる。
このような本実施形態に係るダイナミクスシミュレーションのためのハイブリッドモデル記述102の詳細を、具体例を挙げて説明する。
図4および図5は、具体例に係るハイブリッドモデルの記述対象である機構を示す図である。この機構は、バルブ301、バネ303、およびピストン302を備えた簡素な構造を有するシリンダ装置である。
バルブ301は外部からの指令(イベント)に応じて開閉動作する。これによりシリンダ装置内の空気の流れを図2のように右側に変更するイベントを以下、「Right」と呼び、空気の流れを図3のように左側に変更するイベントを「Left」と呼ぶ。図4は、バルブ301にRightのイベントが与えられた状態を示しており、ピストン302には紙面左向きへの力が作用している。この状態を示す運動方程式はシリンダ装置の下部に示してあるように、「−F=mx”」である。これに対し図5は、バルブ301にLeftのイベントが与えられた状態を示しており、空気の流れの向きが変わり、運動方程式は同図のように「F=mx”」に変化している。
図6は、このような状態変化とそれぞれの状態に対応する運動方程式を状態遷移図として表現したものである。ハイブリッドモデルは、この図6に示されるような状態遷移と、各状態の記述が微分方程式や代数方程式で表現されるものを指す。図6によれば、状態が2つあって、かかる2つの状態間に状態遷移が存在することがわかる。
図7は、図6の状態遷移図をもとに具体的なハイブリッドモデル内容をHCC(Hybrid Concurrent Constraint Programming)言語で記述したプログラムの一例を示す図である。図7において、(ソース)プログラムの論理行番号を仮にL1〜L8とする。L3、L4、およびL8は、この機構の初期状態やバルブ操作タイミングなどの運転条件の記述に相当し、L5およびL6は、図6に示した状態遷移の表現記述である。
HCCでは、運動方程式は、図から分かるようにプログラム内でそのまま記述することができる。また、それぞれの状態へ遷移する条件は、「always if」に続いて記述し、また、それぞれの状態から遷移していく条件は「watching」に続けて記述すればよい。
なお、HCCでは、プログラムの記述の順序(図7における論理行番号L1→L8の順序)にそって実行されるわけではない。HCCでは、個別のプログラム記述のうち、シミュレーションを実行する時間軸に沿って成立するものが探索され、実行される。すなわち、論理行番号L1→L8の順序は、実行順序とは関係がない。たとえば、シミュレーションを開始した時点では、L3およびL8のみが有効である。ここで、イベントRight(ev1)がL3により発生するため、L6の前提条件であるRightが有効となり、L6に記述されている運動方程式eq2が有効になる。つまり、図4の左側の状態からシミュレーションが実行されることになる。
さらに、時間が50になるとL4が有効となり、イベントLeft(ev2)が発生し、L6の遷移条件(「watching」以下、すなわちLeft)が有効となって、L6の運動方程式eq2が無効となる。これに代わって、L5の前提条件が有効となり、運動方程式eq1が有効となる。
なお、以上のようなプログラム例は外部からのイベント(ev3,ev4)によって状態が遷移する場合を記述したものであったが、勿論、内部の状況によって状態を変化させてもよい。たとえば、図4においてバルブ301が切り替えられない場合には、移動するピストン302がバネ303に接触し、該バネ303からの反力を受けるようになる。すなわちピストン302の位置に関して、外部からのイベントが無い場合でも状態遷移が起こる場合が存在する。このような場合は、例えばxが正であるかどうかといった内部変数の評価式(不等式)による評価結果に基づいて状態遷移の必要性を判断できる。
一般的に、ハイブリッドモデルは、常微分方程式や代数方程式をあるいはこれらを連立させた連立方程式(連続系方程式)によって表現される連続系モデルと、イベント発生に伴う状態遷移を表現するための状態遷移モデルとを組み合わせたモデルである。ハイブリッドモデルによれば、連続系モデルで表現される状態が外部からのイベントなどにより瞬時に切り替わるシステムを表現することができる。
次に、図10から図12を用いて、3次元機構モデル104およびキネマティクスシミュレーション部103の具体的な実施形態を説明する。
3次元機構モデル104では、図10に示すように個々の部品の形状が、その構成要素である面や稜線、頂点などの要素の集合として表現される。これら面や稜線、頂点などは部品の形状の境界を表現しているため、境界表現の形状モデルと呼ばれ、3次元のCADシステムなどで広く用いられている。このように表現された個々の部品の関係は、さらに部品の部分形状間の関係として表現される。この例では、部品401、部品402、部品403の3次元形状があり、部品401の部分形状である平面404と部品402の部分形状である平面406が一致し、同様に円筒面405と円筒面407が同軸であるいう関係が定義されている。同様に部品402と部品403については、部分形状である平面408と平面410の一致関係、および平面409と平面411との一致関係が定義されている。
図11は、図10で定義された関係が計算機メモリなどの記憶手段にどのような形式で記憶されるかをグラフの形式で表現したものである。3次元形状の情報および部分形状の情報の他に、平面同士の一致関係412、414、415および円筒同士の同軸関係413がデータとして存在する。このような情報から部品401、402、403の相対的位置関係を計算する機能は幾何拘束処理ライブラリとして既存のソフトウェアが提供されている。具体的には、それぞれの部品には、部品特有のローカル座標系が設定されており、この座標系と空間内に固定されたワールド座標系との変換マトリックスという形でこの位置関係が表現される。すなわち、図11に示されている一致などの関係から、部品401と部品402、部品403の位置を表現する変換マトリックスが幾何拘束処理ライブラリなどにより自動的に計算される。
図12は、部分形状の間で定義された一致関係、すなわち部分形状間の拘束関係をすべて満足するように算出された部品間の位置関係の例を示す。すなわち、幾何拘束処理ライブラリが自動算出した部品の変換マトリックスを部品の形状データに作用させて得られた部品の位置を示している。このように組み立てられた部品には、416で示される回転自由度と417で示される並進自由度が存在する。実際に機構として作用させるためには、これらにモータなどのアクチュエータを装着し、外部の信号に基づいて駆動することが行われる。そこで、回転自由度416に装着されるアクチュエータにJoint1という名前を付け、並進自由度417に装着されるアクチュエータにSlide1という名前を付ける。キネマティクスシミュレーション部103はアクチュエータの名前とその値を指定すると、図12のような3次元グラフィックスのアニメーションにて機構の動きを確認することなどが可能になる。また、図12に示されている距離418を計算する機能などはキネマティクスシミュレーション部103に実装されており、部品403が溝の端まで到達したかどうかを検知するリミットスイッチセンサーの機能をこの距離の値の判定によってシミュレートすることができる。このセンサーの名前をSwitch1とすると、キネマティクスシミュレーション部103はSwitch1という名前でセンサー状態を問い合わせると、そのときのセンサーの状態を得ることができる。
今、アクチュエータSliede1は、実際には図4のシリンダ装置に取り付けられているとする。この場合、図7のダイナミクスシミュレータの記述における変数xが機構要素であるアクチュエータSlide1に対応する。さらにJoint1に相当するモータの挙動がダイナミクスシミュレータの記述において変数yとなっているとすると、変数・機構要素対応テーブル105は具体的に図13に示すようになる。
このような例においては、図3のフローチャートにおいて、図7のダイナミクスモデル記述に基づきステップ504においてxおよびyの値の変化が計算される。次にステップ505において、変数・機構要素対応テーブル105である図12のテーブルが参照され、キネマティクスシミュレーション部103に対して、xの値とSlide1という名前の組でデータが送信され、同じくyの値とJoint1という名前の組でデータが送信される。ステップ506では、図12のような個々の部品の3次元的な位置が計算され、それに基づき距離418も算出される。距離418の値によりセンサーSwitch1の値もセットされる。ステップ507では、Switch1の値などが機構制御系へ送信される。
<第2の実施形態>
次に、本発明の第2の実施形態を説明する。第1の実施形態では公知のハイブリッドプログラミング言語であるHCCを用いて説明したが、ここでは本出願の発明者が開発したハイブリッドプログラミング言語であるDCML(Dynamics Constraint Modeling Language)に基づいて説明する。DCMLでは、HCCなど他のハイブリッドモデリング言語と同様に、連立常微分方程式で表現される連続系のシステムの初期値問題を解くことができる。すなわち、初期値を与えて、時間的にどのように系が変化するかをシミュレーションするダイナミクスシミュレーションを行うことができる。モデルの記述に当っては、常微分方程式ないしは代数方程式を制約の形式で宣言的に表現することができる。ただし、DCMLでは、処理の高速化などの目的から不等式は許されいない。この点はHCCと異なる。DCMLはあるタイミングで連続系のシステム表現モデルを不連続的に切り替えることを許している。すなわち、イベントによってタイミングを指定し、そのタイミングにおいて常微分方程式ないしは代数方程式を制約の形式で表現されている制約の削除、追加、入れ替えを行うことができる。
次に、本発明の第2の実施形態を説明する。第1の実施形態では公知のハイブリッドプログラミング言語であるHCCを用いて説明したが、ここでは本出願の発明者が開発したハイブリッドプログラミング言語であるDCML(Dynamics Constraint Modeling Language)に基づいて説明する。DCMLでは、HCCなど他のハイブリッドモデリング言語と同様に、連立常微分方程式で表現される連続系のシステムの初期値問題を解くことができる。すなわち、初期値を与えて、時間的にどのように系が変化するかをシミュレーションするダイナミクスシミュレーションを行うことができる。モデルの記述に当っては、常微分方程式ないしは代数方程式を制約の形式で宣言的に表現することができる。ただし、DCMLでは、処理の高速化などの目的から不等式は許されいない。この点はHCCと異なる。DCMLはあるタイミングで連続系のシステム表現モデルを不連続的に切り替えることを許している。すなわち、イベントによってタイミングを指定し、そのタイミングにおいて常微分方程式ないしは代数方程式を制約の形式で表現されている制約の削除、追加、入れ替えを行うことができる。
DCMLではオブジェクト指向の考え方に基づきクラスという形でモデル部品(ソフトウェア部品)を定義することができる。まずモデル部品の性質や挙動がクラス定義として記述され、個々のモデル部品の実体(インスタンス)はクラスのコンストラクタと呼ばれるメカニズムによって生成される。アクチュエータやセンサーなどがクラスとしてモデル化されていると、DCMLによるダイナミクスシミュレータ用のモデルは、これらクラスを活用してコンパクトに記述することができる。さらに制約を宣言的に順不同に記述できるという性質から、モデル部品のプログラムを単純に結合するのみで、全体のモデルを作成することができる。
以下、さらに例を用いてDCMLプログラムがどのように記述されるかを説明する。図14は不連続な変化を含まない単純なDCMLプログラムを示している。DCMLではC++に類似した文法を採っている。このプログラム例において、contは連続変数ないしは連続値を取る関数の宣言である。a=0; b=0; は時間t=0において連続変数の初期値を示す。制御文always は、対応するb’=0.2; a’=sin(b); が対応する時間区間においてアクティブであることを示している。この例では、不連続的変化をおこすイベントは発生しないので、対応する時間区間は時間区間全体になり、すべての時間で、b’=0.2; a’=sin(b); はアクティブになる。最後の文 sample(a); では特別な組込み関数の呼び出しており、指定された変数の時間変化を記録する。
DCMLにおいては、変数は連続変数とイベント変数があり、それぞれの宣言文にはcontとeventを用いる。連続系は連続変数を用いて表現される連続系拘束によって表現される。連続系拘束の表現の文法を形式的に表すと以下のようになる。
ここで、Variableは変数名でありConstantは実数を表す。Variable’ はVariableの時間微分となる。連続系はアクティブな連続系拘束の連立方程式としてモデル化される。連続系拘束のアクティブ化(有効化)と無効化は制御文で制御される。制御文の付いていない連続系拘束は時間0においてのみ有効になり、変数の初期値を指定する。連続系拘束をアクティブにしておくにはalways文を使う必要がある。例えば、以下のように用いる。
連続系システムの不連続変化は連続系拘束の有効化と無効化に対応する。このような制御は条件文の評価により実行される。DCMLでは条件文は2つの種類が用意されている。
上記when文は、CondClause2が成立するタイミングを探し、そのタイミングにおいて連続系拘束Aを有効化する。do-watching文は、まず連続系拘束Bを有効化し、次にCondClause2が成立するタイミングを探索し、連続系拘束Bを無効化する。
DCMLでは、オブジェクト指向の考え方に基づき、クラス定義を行うことができる。クラス定義はC++に類似した文法となっている。簡単なクラス定義の例を図15に示す。変数のスコープ(有効範囲)は、変数宣言のprivate文またはpublic文で定義される。パブリック変数はC++のような形式で外部からアクセスできる。例えば、図15中のパブリック変数m_aはapp1.m_aという形式で外部から参照可能となる。クラスのコンストラクタDCML_Class( cont a )は、この場合1つの引数cont aを持ち、この引数cont aはクラスの初期化に用いられる。def文はクラスの実体を規定しており、シミュレーション時に実行される部分である。この例では、状態遷移はm_a' = 0が成立するタイミングにおいて発生する。
図16は紙搬送系モデルの一例を示している。このモデルは説明のため実際のモデルよりも大幅に簡略化してある。モータや紙などのモデル部品はS1中に示されるようにあらかじめ用意されている。モータの初期化には、初期スピード、加速時間、停止タイミングを属性として指定できる。モータは、モータスタートコマンドを受け取ると指定された初期スピードで動きはじめ、加速する。その後、スピード一定モードに移り、指定されたタイミングで停止する。紙はベルトコンベアで搬送されることが想定されており、モータの回転各速度と紙の速度の関係がモデルに記述されている。図中S2に示されているのが、設計者によって追加されるべきプログラムである。最初の行はmotor1がpaper1の搬送系に取り付けられていることを示し、それらの速度が等しいことを表す。これに続く行の記述には、モータおよび紙の定義と制御シナリオが含まれる。この例では、モータスタートコマンドはtime = 10とtime = 70で発生する。実際のシミュレーションに際しては、あらかじめ定義された部分と設計者によって追加されるべきプログラムが結合され、ダイナミクスシミュレーションのためのシミュレーションモデルとなる。
さらに、図8を用いて、ハイブリッドモデル記述を用いたダイナミクスシミュレーションの詳細について説明する。図8は、図1および図2に示したダイナミクスシミュレーション部101の一実施形態を示したブロック図である。
本実施形態は、ハイブリッドモデル前処理部801と、ハイブリッドモデルシミュレーション実行部802とにより構成されている。ハイブリッドモデル記述102は、HCC言語で記述されたソースプログラムであって、本実施形態に係るハイブリッドモデル前処理部801への入力である。制御信号109はハイブリッドモデルシミュレーション実行部802への入力であり、この制御信号109は機構制御ソフトウェアもしくは機構制御ソフトウェアのシミュレータから与えられる。また、本実施形態に係る機構ハイブリッドモデルシミュレーション実行部802からの出力は、シミュレーション結果としての変数値の演算結果およびその時間履歴であり、変数値時間履歴記憶部805に対して出力される。
図8に示すように、ハイブリッドモデル前処理部801は、モデル方程式制御情報解析部811を備える。また、ハイブリッドモデルシミュレーション実行部802は、方程式構文解析部812、方程式データ記憶部814、連続系方程式切り替え部815、及び連続系シミュレーション部803とを備える。なお、本実施形態は一般的なコンピュータを用いて構成することができ、その基本的なハードウェア構成として、図示しないが中央演算ユニット(CPU)、メモリ、外部記録装置、通信インターフェース(I/F)、および表示装置やキーボード、マウス等の入力装置を備える。また、これらのハードウェアを制御するためのオペレーティングシステム(OS)を備える。また、本発明の実施形態に係る機構シミュレータは、このようなオペレーティングシステム上で動作するアプリケーションソフトウェアとして実装することができる。
次に、ハイブリッドモデル前処理部801における処理について説明する。ハイブリッドモデル記述102は、まずハイブリッドモデル前処理部801のモデル方程式制御情報解析部811おいて処理され、モデル方程式登録プログラム806、モデル方程式制御プログラム807が生成される。また、ハイブリッドモデルシミュレーション実行部102を構成するソフトウェアモジュールとして、モデル方程式の登録を行うための関数及び連続系方程式を切り替えるための関数がAPI(Application Program Interface)関数として提供される。モデル方程式登録プログラム806およびモデル方程式制御プログラム807は、該当する上記API関数を呼び出す記述を、入力されたハイブリッドモデル記述102に沿って適切に組み合わせたプログラムである。この観点から考えると、ハイブリッドモデル前処理部801は、入力をハイブリッドモデル記述102とし、出力を例えばC言語のAPI関数呼び出しの記述を含むCプログラム(ソース)とするような、一種のコンパイラと考えることもできる。このようなモデル方程式登録プログラム806とモデル方程式制御プログラム807は、さらにC言語などのコンパイラによりコンパイルされ、例えば実行時に動的にリンク可能なライブラリが生成される。ハイブリッドモデルシミュレーション実行部802は、シミュレーション実行にあたって、生成された動的リンクライブラリがリンクされ、入力ハイブリッドモデルを忠実に再現するシミュレーションプログラムが完成し、実行可能になる。その実行時には、まず方程式構文解析部812を起動するAPI関数が呼ばれ、その後に連続系方程式切り替えのAPI関数群が実行されて連続系シミュレーションが遂行される。
ハイブリッドモデルシミュレーション部802のアプリケーションインターフェースを構成する具体的なソフトウェアモジュールの仕様などは様々考えられるが、ここでは説明の都合上、以下の3つのAPI関数が最低定義されているとする。なお、プログラミング言語はC言語とする。
1つ目のAPI関数XXX_AddEqnDataは、1つの連続系方程式を表す文字列のポインタを引数に指定する。XXX_AddEqnDataは、この連続系方程式を構文解析し、連続系方程式の記述をシミュレーション実行可能なデータ構造(内部データ表現)に変換し、かかる内部データ表現を方程式データ記憶部814に登録する処理を行う。なお、ここの連続系方程式には、ユニークなID番号が割り当てられる。
たとえば「ab/cos(a-(c+b))-3c」という式が与えられたと仮定すると、上記内部データ表現として図9のような木構造を生成する。この木構造において、例えば参照数字61は線形多項式の親ノード(節)、62は掛け算のノード、63は割り算のノード、64は外部関数(四則演算以外の意)のノード、65は線形多項式を構成する各項のノードを表している。本例において、木構造の葉に相当するものはすべて変数(a,b,c)であり、これらに実数の係数が加わって線形式となる。線形式はcosなどの外部関数の引数になったり、掛け算や割り算の対象となる。変数には、別途、値が確定しているかどうかのフラグが設けられており、またこのような木構造のデータに基づいて該変数の現在の値が保持される。木構造のすべての葉の値(すなわち変数の値)が確定していれば、式の値を計算することができる。方程式データ記憶部114では、式の値の計算などを高速に行うことができるように、予め内部のデータ構造をつなぎ合わせて木構造を構成してある。
上記処理において何らかのエラーが発生した場合には、errにエラーコードがセットされる。正常に処理が終了した場合は、登録された方程式のID番号を返り値とする。
2番目のAPI関数XXX_ActivateEqnは、引数に指定された方程式のID番号に相当する方程式を有効にする。もし、すでに有効となっている方程式が指定されている場合には何もしない。返り値はエラーコードである。
3番目のAPI関数XXX_DeActivateEqnは、XXX_ActivateEqnとは逆に、引数に指定された方程式のID番号に相当する方程式を無効にする。すでに無効となっている方程式が指定された場合には何もしない。
3番目のAPI関数XXX_DeActivateEqnは、XXX_ActivateEqnとは逆に、引数に指定された方程式のID番号に相当する方程式を無効にする。すでに無効となっている方程式が指定された場合には何もしない。
モデル方程式制御情報解析部811は、まずXXX_AddEqnDataを必要な方程式について順に呼ぶ関数(InitEqnData)を生成する。これがモデル方程式登録プログラム806に相当する。
また、モデル方程式制御情報解析部811は、シミュレーション実行の際に、時間が△t進むごとに条件のチェックおよび方程式の変更(入れ替え)を行う関数(ChangeEqn)も生成する。これはモデル方程式制御プログラム807に相当する。上記したようなハイブリッドモデル前処理部801における処理により、例えば、図7に示したハイブリッドモデル記述について、以下のようなC言語のソースプログラムが自動生成される。
なお、GetEventは、名前で指定されたイベントが生起しているかどうかをチェックする関数である。
以上のプログラムは、上述したようにC言語コンパイラによってコンパイルされ、さらに動的リンクライブラリの形式に整えられ、実行時にリンクされる。
なお、本実施形態では、プログラム言語としてC言語を用いた例について説明したが、本発明はこれに限定されるものではなく、例えばCPP(C++)言語、SpecC言語等の他のプログラム言語を用いてもよい。
次に、シミュレーションの実行について説明する。シミュレーション実行時においては、ハイブリッドモデルシミュレーション実行部802が起動され、図2に示す機構制御ソフトウエアのシミュレータ108などから得られる制御信号109を受信しながら、連続系方程式の値を計算することでシミュレーション実行が行われる。このとき、連続系方程式切り替え部815は、上記したモデル方程式制御プログラム807に基づいて、連続系方程式の切り替えを有効・無効のフラグを用いて実行する。図4の状態では、図7の運動方程式eq1は無効であり、運動方程式eq2が有効になっている。ここで、Leftのイベントが発生した図3の状況においては、図7の運動方程式eq1を有効にし、運動方程式eq2を無効にするようフラグを操作する。これら有効・無効のフラグは方程式データ記憶部814に記憶される方程式それぞれの属性データとして管理される。
連続系シミュレーション部803は、方程式データ記憶部814を参照し、同記憶部814に木構造の形式で格納されている連続系方程式の内部データ表現を演算対象として、時間ステップづつ数値積分を実行する。シミュレーションは、常微分方程式及び代数多項式の連立からなる非線形連立方程式についての初期値問題である。このため、例えば図4に示される初期状態が与えられている。具体的には、例えば一般によく使われているルンゲクッタアルゴリズムを用いて変数の値を計算する。
必要なデータは機構シミュレータから出力を行い、さらに連続系方程式切り替え部815の処理に戻り、上記の処理を繰り返すことにより必要な時間のシミュレーションを実行する。シミュレーション結果は、変数値時間履歴記憶部805に保存され、シミュレーション終了後の分析などに利用される。
[数1]−[数6]であらわされるようなハイブリッドモデル言語と、それを用いた図16のようなシミュレーションモデルをダイナミクスシミュレーション部101として利用し、キネマティクスシミュレーション部103と連携する場合を考える。図16のDCMLモデルを用いる場合には、図13に例示されている対応関係において、変数名として、paper.val_や motor1.val_などを指定することになる。これらは、設計者によって追加されるべきプログラムに含まれているので比較的指定しやすい。これに対し、3次元の機構モデルを動作させるために関係を付けなければならない変数でありながらダイナミクスモデルのなかでは、予め定義されたモデルにしか出現しない変数などについては、図13のような対応関係をモデル作成時に付けるのが困難である。
たとえば、両軸のモータがあり、片方の軸は駆動用で、反対側の軸には冷却用のファンが直結しているような場合を考える。図16のようなモデルにおいて、設計者が追加するプログラムでは、ファンの回転角について考える必要はない。しかし、シミュレーションの際には、3次元キネマティクスシミュレーションによってファンの回転の様子をグラフィックス画面において確認したい場合には、ファンの軸を示す機構要素に対して、モータのクラス定義のみに現れるファン軸の変数名を指定する必要がある。しかし、あらかじめ定義されたクラスを多数読み込んで複雑なモデルを構築する場合には、キネマティクスシミュレーション用の要素とダイナミクスシミュレーション用の変数の両者を即座に選択して対応付けることが難しい。そこで本実施形態においては、モデルを読み込んだ際に、関係を付けられる要素を列挙し、可能性のあるもののみをユーザに提示して選択させるような構成にする。
まず、キネマティクスモデルにおける3次元機構モデルの機構要素を列挙する。図12の例では、Slide1とJoint1の移動量のみが機構要素と成り得るので、これを画面に表示し、ユーザに選ばせる。図17は、このようなユーザ入力画面10(入力ダイアログ)の一例を示している。ここでは、機構要素はすでに入力済みであり、選択された機構要素の名称101が表示されている。選択可能要素ボタン102を押すことにより、選択可能な機構要素を選択することができる。
一方、ダイナミクスモデル変数については、事前登録されたモデルから変数を選ぶためのボタン103とそれ以外の変数を選ぶためのボタン104が用意されている。事前登録されたモデルから変数を選ぶためのボタン103は、読み込まれたクラスに関係する変数を選ぶためのボタンであり、それ以外の変数を選ぶためのボタン104はクラスのメンバでない変数を選ぶためのボタンである。それ以外の変数を選ぶためのボタン104を押した場合には、ポップアップメニューにそのような変数の一覧が表示され、その中から選択をする。
事前登録されたモデルから変数を選ぶためのボタン103が押された場合には、クラスの一覧を表示し、その一覧のなかからユーザにクラスを選択させる。図18はその選択画面20を示している。図16のダイナミクスモデルの例では、MotorとPaperの2つのクラスがあるので、これらは共に表示されている。ここで、Motorが選択されると、さらに図19のように部品の実体を選択させるポップアップメニュー201が表示される。ここでは、Motorの実体(インスタンス)としてはmotor1が1つだけ定義されている。これがユーザに選択されると、図20のようにパブリックな連続変数のみの一覧2001が表示される。ここで、val_が選択され、ユーザによりOKボタン2002が押されると、図21のようにmotor1.val_(11)が指定される。
クラスの機能を利用するなどしてハイブリッドモデルのモデル部品を定義しておく場合には、設計者が作成するダイナミクスモデルの記述は簡便になる一方、キネマティクスモデルとの対応関係定義などでは変数を探すのが複雑かつ面倒になる。これに対し本発明の第2実施形態によれば、ハイブリッドモデルの構造に即した形でデータを階層的に扱い、それにあわせた形態でメニューを階層的に構成することで、容易にキネマティクスモデルの機構要素とダイナミクスモデルの変数の対応関係定義が行えるようになる。
101…ダイナミクスシミュレーション部、102…ハイブリッドモデル記述、103…キネマティクスシミュレーション部、104…3次元機構モデル、105…変数・機構要素対応テーブル、106…変数・機構要素対応データ、107…コンピュータ、109…制御信号
Claims (16)
- 複数の変数を有する連続系方程式から構成されるダイナミクスモデルを用いて機構の挙動をシミュレーションするダイナミクスシミュレーションを実行する第1のシミュレータと、複数の機構要素から構成される3次元機構モデルを用いて前記機構の3次元空間内での幾何学的な動作をシミュレーションするキネマティックスシミュレーションを実行する第2のシミュレータとを連携させる機構シミュレーション方法であって、
前記第1のシミュレータが前記ダイナミクスシミュレーションを実行することにより前記連続系方程式のいずれかの変数の値を計算するステップと、
前記複数の変数と前記複数の機構要素との対応を表すテーブルを参照し、前記値が計算された変数に対応付けられる機構要素を特定するステップと、
計算された前記変数の値と特定された前記機構要素とを表す情報を前記第2のシミュレータに送信するステップと、
前記情報に基づいて、前記第2のシミュレータが前記キネマティックスシミュレーションを実行するステップとを具備する機構シミュレーション方法。 - 前記ダイナミクスモデルは、連続系モデルと状態遷移モデルとからなるハイブリッドモデルを含み、前記ダイナミクスシミュレーションはハイブリッドシミュレーションを含む請求項1に記載の方法。
- 前記状態遷移モデルには前記機構を制御する機構制御ソフトウェアを含む外部からの制御信号が入力される請求項2に記載の方法。
- 前記機構要素はアクチュエータの回転角ないしは移動量を含む請求項1に記載の方法。
- 請求項1に記載の方法であって、前記複数の変数と前記複数の機構要素との対応を表すテーブルを作成するステップをさらに具備し、該ステップは以下を含む:
前記複数の変数を表すダイナミクスモデルのデータを読み込むステップ;
前記複数の機構要素を表す3次元機構モデルのデータを読み込むステップ;
前記ダイナミクスモデルのデータから、前記複数の機構要素のいずれかに対応付けることが可能な変数を抽出するステップ;
前記3次元機構モデルのデータから、前記複数の変数のいずれかに対応付けることが可能な機構要素を抽出するステップ;および
抽出された変数のいずれかと抽出された機構要素のいずれかとの組み合わせをユーザに選択させるステップ。 - 請求項5に記載の方法であって、前記組み合わせをユーザに選択させるステップは以下を含む:
抽出された各々の変数が属するクラスのいずれかを前記ユーザに選択させる第1のステップ;
前記第1のステップにより選択されたクラスに属するメンバー変数を前記ユーザに選択させる第2のステップ。 - 前記ダイナミクスモデルのデータは、ハイブリッドモデリング言語の記述データを含む請求項5に記載の方法。
- 生成されたテーブルをファイルに格納するステップをさらに具備する請求項5に記載の方法。
- 複数の変数を有する連続系方程式から構成されるダイナミクスモデルを用いて機構の挙動をシミュレーションするダイナミクスシミュレーションを実行する第1のシミュレータと、複数の機構要素から構成される3次元機構モデルを用いて前記機構の3次元空間内での幾何学的な動作をシミュレーションするキネマティックスシミュレーションを実行する第2のシミュレータとを連携させる機構シミュレーションプログラムであって、
前記第1のシミュレータが前記ダイナミクスシミュレーションを実行することにより前記連続系方程式のいずれかの変数の値を計算する手順と、
前記複数の変数と前記複数の機構要素との対応を表すテーブルを参照し、前記値が計算された変数に対応付けられる機構要素を特定する手順と、
計算された前記変数の値と特定された前記機構要素とを表す情報を前記第2のシミュレータに送信する手順と、
前記情報に基づいて、前記第2のシミュレータが前記キネマティックスシミュレーションを実行する手順とをコンピュータに実行させる機構シミュレーションプログラム。 - 前記ダイナミクスモデルは、連続系モデルと状態遷移モデルとからなるハイブリッドモデルを含み、前記ダイナミクスシミュレーションはハイブリッドシミュレーションを含む請求項9に記載のプログラム。
- 前記状態遷移モデルには前記機構を制御する機構制御ソフトウェアを含む外部からの制御信号が入力される請求項10に記載のプログラム。
- 前記機構要素はアクチュエータの回転角ないしは移動量を含む請求項9に記載のプログラム。
- 請求項9に記載のプログラムであって、前記複数の変数と前記複数の機構要素との対応を表すテーブルを作成する手順をさらに具備し、該手順は以下を含む:
前記複数の変数を表すダイナミクスモデルのデータを読み込む手順;
前記複数の機構要素を表す3次元機構モデルのデータを読み込む手順;
前記ダイナミクスモデルのデータから、前記複数の機構要素のいずれかに対応付けることが可能な変数を抽出する手順;
前記3次元機構モデルのデータから、前記複数の変数のいずれかに対応付けることが可能な機構要素を抽出する手順;および
抽出された変数のいずれかと抽出された機構要素のいずれかとの組み合わせをユーザに選択させる手順。 - 請求項13に記載のプログラムであって、前記組み合わせをユーザに選択させる手順は以下を含む:
抽出された各々の変数が属するクラスのいずれかを前記ユーザに選択させる第1の手順;
前記第1の手順により選択されたクラスに属するメンバー変数を前記ユーザに選択させる第2の手順。 - 前記ダイナミクスモデルのデータはハイブリッドモデリング言語の記述データを含む請求項13に記載のプログラム。
- 生成されたテーブルをファイルに格納する手順をさらに具備する請求項13に記載のプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003389710A JP2004220566A (ja) | 2002-12-26 | 2003-11-19 | 機構シミュレーション方法および機構シミュレーションプログラム |
US10/743,090 US7398190B2 (en) | 2002-12-26 | 2003-12-23 | Method and program for linking dynamics simulation and kinematic simulation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002376209 | 2002-12-26 | ||
JP2003389710A JP2004220566A (ja) | 2002-12-26 | 2003-11-19 | 機構シミュレーション方法および機構シミュレーションプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004220566A true JP2004220566A (ja) | 2004-08-05 |
Family
ID=32911113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003389710A Pending JP2004220566A (ja) | 2002-12-26 | 2003-11-19 | 機構シミュレーション方法および機構シミュレーションプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7398190B2 (ja) |
JP (1) | JP2004220566A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008243042A (ja) * | 2007-03-28 | 2008-10-09 | Toshiba Corp | ハイブリッドモデルのシミュレーション装置、方法及びプログラム |
JP2011059789A (ja) * | 2009-09-07 | 2011-03-24 | Toshiba Corp | ハイブリッドモデルシミュレーション装置および方法 |
WO2011036768A1 (ja) * | 2009-09-25 | 2011-03-31 | 株式会社 東芝 | シミュレーション装置 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3940665B2 (ja) * | 2002-11-27 | 2007-07-04 | 株式会社東芝 | ハイブリッドシミュレーション装置およびプログラム |
JP4413891B2 (ja) * | 2006-06-27 | 2010-02-10 | 株式会社東芝 | シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラム |
JP2009104388A (ja) * | 2007-10-23 | 2009-05-14 | Toshiba Corp | シミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラム |
DE102009043425A1 (de) * | 2009-09-29 | 2011-04-07 | Siemens Aktiengesellschaft | Simulationssystem und Verfahren für eine technische Anlage |
DE102010008478A1 (de) * | 2010-02-18 | 2010-11-11 | Harald Weisz | EDV-System zum automatischen oder halbautomatischen Konstruieren und Konstruktionsverfahren |
US8688412B2 (en) * | 2010-04-07 | 2014-04-01 | Honeywell International Inc. | System and method for solving chemical engineering equations and model development using equation editor |
JP5957827B2 (ja) * | 2011-08-23 | 2016-07-27 | 富士通株式会社 | 生成装置、生成プログラムおよび生成方法 |
JP2013206062A (ja) | 2012-03-28 | 2013-10-07 | Omron Corp | シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム |
CN103123668B (zh) * | 2013-01-16 | 2015-12-23 | 西北工业大学 | 一种基于混合单元法的空间绳系机器人系统的仿真方法 |
CN103853869B (zh) * | 2013-08-26 | 2017-07-14 | 上海宇航系统工程研究所 | 一种飞行器分离仿真方法 |
CN105426639A (zh) * | 2015-12-25 | 2016-03-23 | 北京经纬恒润科技有限公司 | 一种六自由度数学仿真模型的仿真系统及方法 |
CN105653802A (zh) * | 2015-12-31 | 2016-06-08 | 中国地质大学(武汉) | 一种基于三维分析的汽车起重机吊臂挠度计算方法及设备 |
CN111344116A (zh) * | 2017-11-16 | 2020-06-26 | 索尼公司 | 信息处理设备、信息处理方法、计算机程序及程序制造方法 |
CN119396408B (zh) * | 2025-01-06 | 2025-04-04 | 武汉鼎元同立科技有限公司 | 面向Modelica模型的初始稳态编译方法及系统 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452238A (en) * | 1989-06-13 | 1995-09-19 | Schlumberger Technology Corporation | Method for solving geometric constraint systems |
US5043929A (en) * | 1989-06-13 | 1991-08-27 | Schlumberger Technologies, Inc. | Closed-form kinematics |
US5255571A (en) * | 1992-06-25 | 1993-10-26 | United Parcel Service Of America, Inc. | Three degree of freedom actuator system |
US5294873A (en) * | 1992-10-27 | 1994-03-15 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Kinematic functions for redundancy resolution using configuration control |
WO1995002801A1 (en) * | 1993-07-16 | 1995-01-26 | Immersion Human Interface | Three-dimensional mechanical mouse |
US6983227B1 (en) * | 1995-01-17 | 2006-01-03 | Intertech Ventures, Ltd. | Virtual models of complex systems |
US5831853A (en) * | 1995-06-07 | 1998-11-03 | Xerox Corporation | Automatic construction of digital controllers/device drivers for electro-mechanical systems using component models |
US5812394A (en) * | 1995-07-21 | 1998-09-22 | Control Systems International | Object-oriented computer program, system, and method for developing control schemes for facilities |
US5754023A (en) * | 1995-10-26 | 1998-05-19 | Cybernet Systems Corporation | Gyro-stabilized platforms for force-feedback applications |
US6111577A (en) * | 1996-04-04 | 2000-08-29 | Massachusetts Institute Of Technology | Method and apparatus for determining forces to be applied to a user through a haptic interface |
US5877954A (en) * | 1996-05-03 | 1999-03-02 | Aspen Technology, Inc. | Hybrid linear-neural network process control |
US6191798B1 (en) * | 1997-03-31 | 2001-02-20 | Katrix, Inc. | Limb coordination system for interactive computer animation of articulated characters |
US6445964B1 (en) * | 1997-08-04 | 2002-09-03 | Harris Corporation | Virtual reality simulation-based training of telekinegenesis system for training sequential kinematic behavior of automated kinematic machine |
US6816821B1 (en) * | 1997-09-03 | 2004-11-09 | Stmicroelectronics Limited | Post image techniques |
US6289502B1 (en) * | 1997-09-26 | 2001-09-11 | Massachusetts Institute Of Technology | Model-based software design and validation |
US6505085B1 (en) * | 1999-03-04 | 2003-01-07 | Massachusetts Institute Of Technology | Method and apparatus for creating time-optimal commands for linear systems |
US6266053B1 (en) * | 1998-04-03 | 2001-07-24 | Synapix, Inc. | Time inheritance scene graph for representation of media content |
US7084884B1 (en) * | 1998-11-03 | 2006-08-01 | Immersion Corporation | Graphical object interactions |
US6321157B1 (en) * | 1999-04-27 | 2001-11-20 | Ford Global Technologies, Inc. | Hybrid modeling and control of disc engines |
US6526373B1 (en) * | 1999-10-08 | 2003-02-25 | Dassault Systemes | Optimization tool for robot placement |
JP3802297B2 (ja) * | 1999-11-10 | 2006-07-26 | 株式会社東芝 | ヘッド位置決め制御システム及びディスク記憶装置 |
JP3897948B2 (ja) | 2000-02-14 | 2007-03-28 | 富士通株式会社 | 支援システムおよび支援プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6516293B1 (en) * | 2000-03-13 | 2003-02-04 | Smith International, Inc. | Method for simulating drilling of roller cone bits and its application to roller cone bit design and performance |
WO2002023286A1 (en) * | 2000-09-13 | 2002-03-21 | University Of Washington | Time domain passivity control of haptic interfaces |
KR100661333B1 (ko) * | 2000-11-17 | 2006-12-27 | 혼다 기켄 고교 가부시키가이샤 | 레그식 이동 로봇의 보용 생성장치 |
US7054694B2 (en) * | 2001-05-30 | 2006-05-30 | Yokogawa Electric Corporation | Process control system |
JP3944566B2 (ja) * | 2001-07-30 | 2007-07-11 | 国立大学法人 東京大学 | リンク機構において動力学的に関節加速度を求める方法 |
US7085694B2 (en) * | 2001-10-22 | 2006-08-01 | Sandia Corporation | Apparatus and method for interaction phenomena with world modules in data-flow-based simulation |
JP3866595B2 (ja) * | 2002-03-15 | 2007-01-10 | 株式会社東芝 | ハイブリッドモデル作成装置及びプログラム |
US7130781B2 (en) * | 2002-04-10 | 2006-10-31 | 3M Innovative Properties Company | One-dimensional modeling of the manufacture of multi-layered material |
US7125388B1 (en) * | 2002-05-20 | 2006-10-24 | The Regents Of The University Of California | Robotic gait rehabilitation by optimal motion of the hip |
US7159211B2 (en) * | 2002-08-29 | 2007-01-02 | Indian Institute Of Information Technology | Method for executing a sequential program in parallel with automatic fault tolerance |
JP2004102441A (ja) * | 2002-09-05 | 2004-04-02 | Honda Motor Co Ltd | プラントの制御装置 |
JP3940665B2 (ja) * | 2002-11-27 | 2007-07-04 | 株式会社東芝 | ハイブリッドシミュレーション装置およびプログラム |
US20040181380A1 (en) * | 2002-12-26 | 2004-09-16 | Mitsunobu Yoshida | Simulation method and program product |
US7026979B2 (en) * | 2003-07-03 | 2006-04-11 | Hrl Labortories, Llc | Method and apparatus for joint kinematic and feature tracking using probabilistic argumentation |
JP4587738B2 (ja) * | 2003-08-25 | 2010-11-24 | ソニー株式会社 | ロボット装置及びロボットの姿勢制御方法 |
US7079984B2 (en) * | 2004-03-03 | 2006-07-18 | Fisher-Rosemount Systems, Inc. | Abnormal situation prevention in a process plant |
US7627389B2 (en) * | 2005-06-16 | 2009-12-01 | Klingelnberg Gmbh | Method and apparatus for the free-form optimization of bevel and hypoid gears |
JP4413891B2 (ja) * | 2006-06-27 | 2010-02-10 | 株式会社東芝 | シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラム |
-
2003
- 2003-11-19 JP JP2003389710A patent/JP2004220566A/ja active Pending
- 2003-12-23 US US10/743,090 patent/US7398190B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008243042A (ja) * | 2007-03-28 | 2008-10-09 | Toshiba Corp | ハイブリッドモデルのシミュレーション装置、方法及びプログラム |
JP2011059789A (ja) * | 2009-09-07 | 2011-03-24 | Toshiba Corp | ハイブリッドモデルシミュレーション装置および方法 |
WO2011036768A1 (ja) * | 2009-09-25 | 2011-03-31 | 株式会社 東芝 | シミュレーション装置 |
Also Published As
Publication number | Publication date |
---|---|
US7398190B2 (en) | 2008-07-08 |
US20040186698A1 (en) | 2004-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9594856B2 (en) | System and method to embed behavior in a CAD-based physical simulation | |
Lédeczi et al. | Composing domain-specific design environments | |
US7865350B1 (en) | Partitioning a model in modeling environments | |
JP2004220566A (ja) | 機構シミュレーション方法および機構シミュレーションプログラム | |
JP3940665B2 (ja) | ハイブリッドシミュレーション装置およびプログラム | |
Han et al. | Open software platform for robotic services | |
Bliudze et al. | Rigorous design of cyber-physical systems: Linking physicality and computation | |
WO2014113751A1 (en) | Functional debugging of equation-based languages | |
Sakairi et al. | Model based control system design using sysML, simulink, and computer algebra system | |
Rozhdestvensky et al. | Computer modeling and simulation of dynamic systems using wolfram systemmodeler | |
US11593076B2 (en) | Method for merging architecture data | |
US9841954B1 (en) | Method and system for automatic code generation | |
Zaeh et al. | Model-driven development of PLC software for machine tools | |
JP4564255B2 (ja) | シミュレーション装置 | |
Campos et al. | Automated deduction and usability reasoning | |
Lu et al. | Model-driven design of simulation support for the terra robot software tool suite | |
Lu et al. | Simulation and visualization tool design for robot software | |
Niyonkuru et al. | A kernel for embedded systems development and simulation using the boost library | |
Heitmeyer et al. | On model-based software development | |
Jambon et al. | Dialogue validation from task analysis | |
Campbell et al. | Modeling and simulation with compose and activate | |
Cleaveland | Programming is modeling | |
Aldrich | Coverage analysis for model-based design tools | |
Bjarnason | Interactive Tool Support for Domain-Specific Languages | |
Geng et al. | Automated code generation for development of electric vehicle controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070821 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071022 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071113 |