(57)【特許請求の範囲】
【請求項１】
モータを駆動源として三次元的な動作を行う機構装置を制御するための制御プログラムを実行する組込ソフトウェア実行装置と、前記組込ソフトウェア実行装置からの入力データに応じたシミュレーション計算をプロセッサにより行い、構築された前記機構装置の仮想機構モデルを動作させるシミュレーション装置と、を備えたシミュレーションシステムにおいて、
前記シミュレーション装置は、
前記組込ソフトウェア実行装置との入出力処理と、入力された指令値入力に対する前記仮想機構モデルの動作部分の三次元的な動作に関する機構演算処理を実行する第１処理部と、
前記機構演算処理の結果に基づき、前記仮想機構モデルの動作部分の描画を含むユーザインタフェースの表示に関する第２処理を実行する第２処理部と、を有し、
前記シミュレーション装置のプロセッサに、
定期的にタイマ割り込みを行なうタイマ割り込み処理と、前記タイマ割り込みが行なわれた場合の前記第１処理部による入出力処理と機構演算処理と、前記タイマ割り込みが行なわれない場合の所定のスリープ時間中に前記第１処理部による入出力処理と機構演算処理を停止させる処理と、を含む第１のタスクと、
前記第１のタスクより長い周期で、かつ、前記第１のタスクより優先順位を低くして、前記第２処理部による前記仮想機構モデルの動作部分の描画処理を前記スリープ時間中に行なう第２のタスクと、を行なわせることを特徴とするシミュレーションシステム。
【請求項２】
前記シミュレーションシステムにおいて、予め定義された駆動機構の関係から、任意の選んだ軸にかかるモータ駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を用いて、動作に必要なモータの駆動トルクをリアルタイムに算出し表示する第３処理部を設けたことを特徴とする請求項１記載のシミュレーションシステム。
【請求項３】
モータを駆動源として三次元的な動作を行う機構装置を制御するための制御プログラムを実行する組込ソフトウェア実行装置と、前記組込ソフトウェア実行装置からの入力データに応じたシミュレーション計算をプロセッサにより行い、構築された前記機構装置の仮想機構モデルを動作させるシミュレーション装置と、を備えたシミュレーションシステムの制御方法において、
前記シミュレーション装置が有する第１処理部が、前記組込ソフトウェア実行装置との入出力処理と、入力された指令値入力に対する前記仮想機構モデルの動作部分の三次元的な動作に関する機構演算処理を実行するステップと、
前記シミュレーション装置が有する第２処理部が、前記機構演算処理の結果に基づき、前記仮想機構モデルの動作部分の描画を含むユーザインタフェースの表示に関する第２処理を実行するステップと、を有し、
定期的にタイマ割り込みを行なうタイマ割り込み処理と、前記タイマ割り込みが行なわれた場合の前記第１処理部による入出力処理と機構演算処理と、前記タイマ割り込みが行なわれない場合の所定のスリープ時間中に前記第１処理部による入出力処理と機構演算処理を停止させる処理と、を含む第１のタスクと、
前記第１のタスクより長い周期で、かつ、前記第１のタスクより優先順位を低くして、前記第２処理部による前記仮想機構モデルの動作部分の描画処理を前記スリープ時間中に行なう第２のタスクと、を行なわせることを特徴とするシミュレーションシステムの制御方法。
【請求項４】
モータを駆動源として三次元的な動作を行う機構装置を制御するための制御プログラムを実行する組込ソフトウェア実行装置と、前記組込ソフトウェア実行装置からの入力データに応じたシミュレーション計算をプロセッサにより行い、構築された前記機構装置の仮想機構モデルを動作させるシミュレーション装置と、を備えたシミュレーションシステムの制御プログラムにおいて、
前記プロセッサに、
前記組込ソフトウェア実行装置との入出力処理と、入力された指令値入力に対する前記仮想機構モデルの動作部分の三次元的な動作に関する機構演算処理を実行するステップと、
前記機構演算処理の結果に基づき、前記仮想機構モデルの動作部分の描画を含むユーザインタフェースの表示に関する第２処理を実行するステップと、を実行させ、
定期的にタイマ割り込みを行なうタイマ割り込み処理と、前記タイマ割り込みが行なわれた場合の前記第１処理による入出力処理と機構演算処理と、前記タイマ割り込みが行なわれない場合の所定のスリープ時間中に前記第１処理部による入出力処理と機構演算処理を停止させる処理と、を含む第１のタスクと、
前記第１のタスクより長い周期で、かつ、前記第１のタスクより優先順位を低くして、前記第２処理による前記仮想機構モデルの動作部分の描画処理を前記スリープ時間中に行なう第２のタスクと、を行なわせることを特徴とするシミュレーションシステムの制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、組込ソフトウェア実行装置からの制御入力に応じて仮想機構モデルをシミュレーション計算により動作させるシミュレーションシステム、方法、プログラム及び記録媒体に関し、特に、機構演算処理と第２処理を分離して仮想機構モデルを動作させるシミュレーションシステム、方法、プログラム及び記録媒体に関する。
【０００２】
【従来技術】
従来、モータを駆動源として三次元的な動作を行う機構装置、例えばＣＤチェンジャ、ＭＤチェンジャ、プリンタ等を開発設計する際には、その機構の構想を練った後、詳細設計、出図、部品手配を行ってから実機を試作する。同時に、機構装置の組込ソフトウェア実行装置を実現する通常組込ソフトウェアと呼ばれる制御プログラムを開発する。この制御プログラムを開発する際には、試作した実機を制御しながら、組込ソフトウエアの概略設計、詳細設計、更にデバッグを行っている。
【０００３】
図３３は従来システムの例であり、組込ソフトウェアを開発する際には、マイコン、マイコンを搭載した制御ボードを含む組込ソフトウェア実行装置２００と機構装置（メカ実機）２０２を準備し、組込ソフトウェア実行装置２００と機構装置２０２を信号線により接続し、モータに対するモータ信号やセンサからの信号の入出力を行っている。
【０００４】
しかし、組込ソフトウェアの開発に比べて機構装置の製作には時間がかかるため、ソフトウェア開発が機構装置の試作機が出来上がるまで結合試験ができないという問題があった。
【０００５】
この問題を解決する技術として、図３４のように、機構装置に代えて計算機上に仮想的機構モデルを構築した仮想メカモデルシミュレーション装置２０６を準備し、インタフェース装置２０４を介して組込ソフトウェア実行装置２００と結合し、仮想的機構モデルを実際の機構装置と見なして制御プログラムの開発を進めるシミュレーションシステムが提案されている。
【０００６】
【発明が解決しようとする課題】
しかしながら、このようなシミュレーションシステムでは、組込ソフトウェア実行装置２００からの指令入力に対し仮想メカモデルシミュレーション装置２０６で仮想機構モデルの3次元の動きを計算しながら描画しており、描画に関する処理である仮想機構モデルを構成する部品の位置姿勢計算と画面描画処理に時間がかかり、モデルの動きが制御プログラムの実行に比べてどうしても遅くなってしまう。そこで、組込ソフトウェア実行装置２００と仮想メカモデルシミュレーション装置２０６との間に同期信号や同期処理を入れる必要があった。
【０００７】
図３５は組込ソフトウェア実行装置２００と仮想メカモデルシミュレーション装置２０６との間に同期処理を入れた従来システムの処理フローである。組込ソフトウェア実行装置２００の制御プログラムは、ステップＳ１で同期信号Ｆｌａｇ１をシミュレーション装置に出力し、ステップＳ２で仮想メカモデルシミュレーション装置２０６からの同期信号Ｆｌａｇ２を待っている。
【０００８】
これによって仮想メカモデルシミュレーション装置２０６の遅い動きに制御プログラムの時間を合わせている。仮想メカモデルシミュレーション装置２０６から同期信号Ｆｌａｇ２を受信すると、ステップＳ３でセンサ値を入力し、ステップＳ４で適宜のイベント処理を行った後、ステップＳ５でモータ指令値をシミュレータに出力し、この処理を繰り返す。
【０００９】
仮想メカモデルシミュレーン装置２０６は、ステップＳ１０１で組込ソフトウェア実行装置２００からの同期信号Ｆｌａｇ１を待っており、制御プログラムでの一回の処理サイクルが済んで同期信号(Flag1)を受信すると、ステップＳ１０２でモータ指令値を入力し、ステップＳ１０３で機構モデルの指令値入力に対する三次元的な動きの機構演算を実行し、ステップＳ１０４で描画のために動きのあった仮想機構モデルを構成する全部品の位置姿勢を計算する。
【００１０】
続いてステップＳ１０５で仮想機構モデルを画面に表示するための三次元の画面描画処理を実行し、ステップS１０６でセンサ値を出力した後、最終的にステップＳ１０７で同期信号Ｆｌａｇ２を組込ソフトウェア実行装置に出力し、組込ソフトウェア実行装置２００の制御プログラムに次のサイクルを実行させる。
【００１１】
このように従来システムにあっては、組込ソフトウェア実行装置の組込ソフトウェアである制御プログラムにステップＳ２の同期信号待ちの状態を作ることにより、処理に時間のかかっている機構モデルのシミュレーションと時間スケールを合わせている。
【００１２】
しかし、従来のシミュレーションシステムにあっては、組込ソフトウェアの開発者にとって、シミュレーション装置の同期待ちという余分な処理を、制御プログラムの中に追加しなければならない煩雑さがある。また画面描画に関する処理に時間がかかるため、組込ソフトウェア実行装置からのモータ指令値の入力に対するシミュレーション装置での機構モデルの動きが実際の制御におけるリアルタイムな動きにならず、制御プログラムによる指令がリアルタイムで機構モデルに反映されないという不具合もあった。
【００１３】
本発明は、組込ソフトウェア実行装置の制御プログラム側での同期待ちを必要とすることなくシミュレーション計算により仮想機構モデルをリアルタイムで動かすことのできるシミュレーションシステム、方法、プログラム及び記録媒体を提供することを目的とする。
【００１４】
【課題を解決するための手段】
図１は本発明の原理説明図である。本発明は、制御プログラム１１を実行して機構装置を制御する組込ソフトウェア実行装置１０と、機構装置の仮想機構モデルを構築し、組込ソフトウェア実行装置１０からの入力データに応じたシミュレーション計算により仮想機構モデルを動作させる仮想メカモデルシミュレーション装置１４を備えたシミュレーションシステムを対象とする。
【００１５】
このようなシミュレーションシステムにつき本発明にあっては、仮想メカモデルシミュレーション装置１４に、第１タスクとなる組込ソフトウェア実行装置１０との入出力と仮想機構モデルの機構演算に関する第１処理を実行する第１処理部１８と、第１処理部１８の空き時間を使用して、第２タスクとなる仮想機構モデルの描画を含むユーザインタフェースに関する第２処理を実行する第２処理部２０とを設けたことを特徴とする。
【００１６】
本発明にあっては、仮想機構モデルを動作させるシミュレーション装置の処理の中には、処理量が少なく高速に計算できる高速低負荷処理として、モータ指令値入力、機構演算及びセンサ値出力といった処理があり、また処理量が大きく時間のかかる低速高負荷処理として、部品の位置姿勢計算と画面描画といったユーザインタフェースに関する処理がある点に着目し、シミュレーション装置の処理を高速低負荷処理と低速高負荷処理に分けて、高速低不可処理は制御プログラムからの制御サイクルと同じ周期で高速に実行し、低速高負荷処理は数回の制御サイクルに対し一回というように間引いて実行する。
【００１７】
これにより組込ソフトウェア実行装置とシミュレーション装置の間で時間合わせのための同期処理を必要とせず、仮想機構モデルのリアルタイムなシミュレーションが実現できる。
【００１８】
本発明は、シミュレーション装置に２台のプロセッサを設けて第１処理部と第２処理部を別々に実装し、第１処理部による入出力及び機構演算と前記第２処理部による描画処理を並列に実行する。
【００１９】
また本発明は、シミュレーション装置のプロセッサに第１処理部と第２処理部をマルチタスクで実装し、第１処理部による入出力と機構演算は優先度を高くして短い周期で実行し、第２処理部による描画処理は優先度を低くして長い周期で実行する。
【００２０】
マルチタスクの場合には、タイマカウンタと同期を取ることにより第１処理部の処理を一定周期で実行させ、これにより正確な周期でシミュレーション計算が実行できる。
【００２１】
また本発明のシミュレーションシステムにおいて、機構装置はパルス信号や正弦波信号などの周期的な信号を入力とするモータ、例えばステッピングモータ、ＡＣモータ、ＰＷＭモータなどを備えている場合、シミュレーション装置は、組込ソフトウェア実行装置からのモータ指令としてモータに対するパルス信号や正弦波信号を入力して仮想機構モデルを動作させることができる。
【００２２】
第２処理を実行する描画処理は、仮想機構モデルの動く部分を対象に描画処理を実行する。これにより描画に必要な対象部品の位置計算と画面描画の処理量を低減し、リアルタイムに近い状態でモデルの動きが表示できる。
【００２３】
本発明のシミュレーションシステムは、更に、予め定義された駆動機構の関係から、任意の選んだ軸にかかる負荷全体の等価慣性、等価静摩擦、等価動摩擦の少なくともいずれかを、選んだ軸から見た値に換算して表示する第３処理部を設けたことを特徴とする。更に第３処理部は、予め定義された駆動機構の関係から、任意の選んだ軸にかかるモータ駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を用いて、動作に必要なモータの駆動トルクをリアルタイムに算出し表示する。
【００２４】
本発明のシミュレーション装置は、組込ソフトウェア実行装置からの入力データに対しトルクモータを実現して仮想機構モデルを動作させることを特徴とする。即ち、シミュレーション装置は、所定のシミュレーションサイクル毎に、
組込ソフトウェア実行装置の指令入力データからトルクモータの目標トルクを求め、
トルクモータの駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を求め、
目標トルク、等価慣性、等価静摩擦及び等価動摩擦からモータの変位量を求めてモータの変位を更新する処理を繰り返すことを特徴とする。
【００２５】
シミュレーション装置は、シミュレーション中における組込ソフトウェア実行装置からの入力データを時間データと共に記憶しておき、シミュレーション後に記憶データを使って再度シミュレーションを再現することを特徴とする。
【００２６】
本発明は、機構装置の仮想機構モデルを構築し、組込ソフトウェア実行装置からの入力データに応じたシミュレーション計算により仮想機構モデルを動作させるを備えたシミュレーション方法を提供するものであり、
組込ソフトウェア実行装置との入出力と仮想機構モデルの機構演算に関する第１処理を実行する第１処理ステップと、
第１処理ステップの空き時間を使用して、仮想機構モデルのユーザインタフェースに関する第２処理を実行する第２処理ステップと、
を備えたことを特徴とする。
【００２７】
本発明は、コンピュータに、組込ソフトウェア実行装置との入出力と仮想機構モデルの機構演算に関する第１処理を実行する第１処理ステップと、第１処理ステップの空き時間を使用して、前記仮想機構モデルのユーザインタフェースに関する第２処理を実行する第２処理ステップとを実行させることを特徴とするプログラムを提供する。
【００２８】
本発明は、コンピュータに、組込ソフトウェア実行装置との入出力と仮想機構モデルの機構演算に関する第１処理を実行する第１処理ステップと、第１処理ステップの空き時間を使用して、仮想機構モデルのユーザインタフェースに関する第２処理を実行する第２処理ステップとを実行させるプログラムを格納したコンピュータ読取可能な記録媒体を提供する。
【００２９】
これらシミュレーション方法、プログラム及び記録媒体の詳細は、シミュレーションシステムの場合と基本的に同じになる。
【００３０】
【発明の実施の形態】
図２は本発明によるシミュレーションシステムのシステム構成の説明図である。
【００３１】
図２において、本発明のシミュレーションシステムは、組込ソフトウェア実行装置１０、インタフェース装置１２を備えた仮想メカモデルシミュレーション装置１４、及び表示装置１６で構成される。組込ソフトウェア実行装置１０及び仮想メカモデルシミュレーション装置１４のそれぞれは、ＭＰＵメモリハードディスクなどで構成されるコンピュータ装置で実現される。
【００３２】
組込ソフトウェア実行装置１０には制御負荷とする機構装置のコントローラとして機能する制御プログラム１１が実装されており、この制御プログラム１１は開発設計の途中にある試作品又は開発設計の済んだ完成品である。
【００３３】
制御プログラム１１は、組込ソフトウェア実行装置１０の持っているループサンプリングの周期でモータ指令値としてのモータ信号Ｅ１を、インタフェース装置１２を介して仮想メカモデルシミュレーション装置１４に出力し、そのシミュレーション結果をセンサ値を示すセンサ信号Ｅ２より読み込む処理を繰り返している。
【００３４】
仮想メカモデルシミュレーション装置１４には、組込ソフトウェア実行装置１０の制御プログラム１１が制御対象とする機構装置に対応して仮想的に構築された仮想機構モデル１５が準備されている。この仮想機構モデル１５はＣＡＤなどにより作成することができ、３次元の機構モデルを構成している。
【００３５】
この実施形態にあっては、表示装置１６には仮想メカモデルシミュレーション装置１４に構築している仮想機構モデル１５の中のシミュレーション動作の際に動く部分のみを取り出して、３次元機構モデル２５として表示している。この部分的な３次元機構モデル２５は、組込ソフトウェア実行装置１０からのモータ信号Ｅ１に対応した仮想メカモデルシミュレーション装置１４におけるシミュレーション計算に基づいて動作する。
【００３６】
即ち３次元機構モデル２５は、例えばモータ２６の出力軸のギア２８をギア３０に連結し、ギア３０の軸に設けたカム３２を回転するようにしており、このカム３２の１回転をセンサ３４で検出するようにしている。
【００３７】
組込ソフトウェア実行装置１０からモータ２６に対するモータ指令値としてのモータ信号Ｅ１が出力されると、仮想メカモデルシミュレーション装置１４において、モータ信号Ｅ１に対応した３次元機構モデル２５のモータ２６の一定回転に対する機構動作を演算し、この機構演算の演算結果に基づいてギア２８，３０及びカム３２の位置を計算し、３次元第２処理により表示装置１６上に、シミュレーションにより動作した状態の３次元機構モデル２５を第２表示する。
【００３８】
図３は、図２の表示装置１６に表示している３次元機構モデル２５のシミュレーション動作による動きを分解して概略的に表している。図３（Ａ）の表示画面１６−１にあっては、組込ソフトウェア実行装置１０よりモータ信号Ｅ１がモータ２６に送られ、このモータ信号Ｅ１に応じたモータ出力軸のギア２８の回転に応じてギア３０の回転が計算され、結果としてカム３２の回転動作が図３（Ｂ）のようにして行なわれる。
【００３９】
このようにしてモータ回転に対するギアの位置の変化が計算されると、最終的に図３（Ｃ）のように、その動きによるセンサ３４からのセンサ信号Ｅ２を組込ソフトウェア実行装置１０に出力して、１回のループサンプリングにおけるシミュレーション動作を行なうことになる。
【００４０】
図２の実施形態にあっては、表示装置１６に仮想メカモデルシミュレーション装置１４上に構築している仮想機構モデル１５の中のモータ信号Ｅ１によって動く部分のみを取り出して３次元機構モデル２５として表示しているが、このような動きのある部分のみならず、例えば図４の表示装置１６のようにシミュレーションの対象としている仮想機構モデル１５の全体的な３次元モデル、例えば図示のようなＣＤチェンジャ３６を表示させても良い。
【００４１】
本発明の望ましい実施形態にあっては、シミュレーションによる３次元機構モデルの滑らかな動きを表示装置１６上で実現するため、図４のような仮想機構モデルの全体的な詳細画像に代えて、例えば図２の表示装置１６のようにモータ及びその負荷機構を含む動く部分の３次元機構モデル２５のみを表示させることで、３次元機構モデル２５の第２処理の処理量を低減し、モデル描画に要する１回の処理時間を短縮するようにしている。
【００４２】
勿論、描画する３次元機構モデルのデータ量を低減して処理時間を短縮する処理としては
（１）モデルの形状を高速に描画できる形状に変更する。
（２）モデルを２次元断面で表示する。
（３）モデル全体を拡大（ズーム）して画面中のモデルの表示部分を減らす。
（４）動く部分だけを表示する。
などがあるが、このうちの（４）の動く部分だけを表示する方法が最も利便性が高く、しかもモデルのデータ量を動く部分だけに絞って削減したとしても、シミュレーション中の動作が３次元で任意の視点から確認できるという特徴を損なうことがないという利点を維持できる。
【００４３】
このように動く部品だけで３次元機構モデルを表示させるためには、シミュレーション開始前に仮想メカモデルシミュレーション装置１４上に構築されている仮想機構モデル１５の中から動く部品だけを抽出すれば良い。
【００４４】
即ち仮想メカモデルシミュレーション装置１４上に構築している仮想機構モデル１５は、モデルの動きをシミュレーションするために動く部品である関節と各関節の間の連動関係、例えばギア比、更には部品と部品の結合関係をデータとして設けるので、間接部品及び間接と結合した部品を抽出することで、例えば図２の３次元機構モデル２５のような動く部分の抽出が可能である。
【００４５】
このように仮想機構モデルを対象とした図２のシミュレーション装置において、仮想メカモデルシミュレーション装置１４には入出力・演算処理部（第１処理部）１８、描画処理部（第２処理部）２０、駆動トルク演算処理部（第３処理部）２２、及び指令入力記憶部２４の各機能が設けられている。
【００４６】
このうち組込ソフトウェア実行装置１０からのモータ信号Ｅ１の入力を受けて３次元機構モデル２５のシミュレーション動作を行なうための処理部は、基本的に第１処理部１８と第２処理部２０で構成される。
【００４７】
入出力・演算処理部として機能する第１処理部１８は、インタフェース装置１２を経由した組込ソフトウェア実行装置１０との間のモータ信号Ｅ１及びセンサ信号Ｅ２の入出力と、装置上に構築されている仮想機構モデル１５に対しモータ信号Ｅ１を入力した場合のモデル定義に従って、モータの動きに対し全ての機構要素の動きを計算する機構演算を実行する。
【００４８】
これに対し第２処理部２０は、第１処理部１８の演算結果に基づいて表示装置１６上に３次元機構モデル２５を第２するための第２処理を実行する。
【００４９】
本発明の仮想メカモデルシミュレーション装置１４にあっては、仮想機構モデル１５のシミュレーション処理を、第１処理部１８の処理と第２処理部２０による処理に分離することによって、組込ソフトウェア実行装置１０側での同期処理待ちを必要とすることなく、その制御プログラム１１からの指令値によるシミュレーション動作をリアルタイムで実現することができる。
【００５０】
図５は、図２の組込ソフトウェア実行装置１０の制御プログラム１１のフローチャートと、仮想メカモデルシミュレーション装置１４に設けている第１処理部１８による第１タスク１８−１、及び第２処理部２０による第２タスク２０−１のフローチャートを表わしている。
【００５１】
組込ソフトウェア実行装置１０の制御プログラム１１は、装置固有のループサンプリングの周期でステップＳ１のセンサ値入力、ステップＳ２のイベント処理、更にステップＳ３のモータ指令値出力の処理を繰り返している。
【００５２】
制御プログラム１１でステップＳ３のモータ指令値出力が実行されると、これに対応したモータ信号Ｅ１が仮想メカモデルシミュレーション装置１４にインタフェース装置１２を介して送られる。モータ信号Ｅ１は第１タスク１８−１のステップＳ１０１におけるモータ指令値入力の処理により取り込まれ、次のステップＳ１０２で仮想機構モデルの機構演算を実行する。
【００５３】
この機構演算はモータ指令値に対し仮想機構モデルがどのような動きをするかをシミュレーション前に予め設定しておき、シミュレーション中は設定に従って仮想機構モデルを動かすことになる。
【００５４】
具体的には、図２の表示装置１６に表示した３次元機構モデル２５のように、モータ２６に対しギア２８，３０及びカム３２などの機構要素が連結されており、３次元機構モデルにはこの連動関係も事前に設定されている。モデルの連動関係は、ギアの場合はギア比を設定し、カムであれば駆動と従動の位置関係をテーブル化することで、連動による動きの計算処理を軽くしている。
【００５５】
シミュレーション動作中は３次元機構モデル２５の機構要素の連動関係を用いてモータ２６の動きに対しすべての機構要素であるたとえばギア２８，３０及びカム３２の動きを計算する。
【００５６】
この機構演算によって、ギア２８，３０やカム３２、更にカム３２に対応して設けているセンサ３４における新たな位置や姿勢が決まることになる。このため、最終的にステップＳ１０３でセンサ値が決まることから、このセンサ値をセンサ信号Ｅ２として組込ソフトウェア実行装置１０の制御プログラム１１に出力する。
【００５７】
このような第１タスク１８−１を構成するモータ指令値入力機構演算及びセンサ値出力は、データ処理量が比較的少なく、高速に計算することができる。このため第１タスク１８−１は、組込ソフトウェア実行装置１０のループサンプリングと同じ高速周期で計算処理を実行することができる。
【００５８】
高速計算可能な第１タスク１８−１に対し、本発明にあっては、シミュレーション計算結果のモデルの動きを描画するための第２タスク２０−１を独立したタスクとして分離している。この第２タスク２０−１は、ステップＳ２０１の部品の位置姿勢計算とステップＳ２０２の画面描画処理を含んでいる。
【００５９】
この部品の位置姿勢計算及び画面描画処理は、シミュレーション計算全体の中でデータ処理量が多く、計算に時間がかかる処理である。このような第２タスク２０−１を、従来のシミュレーション装置にあっては高速に計算できる第１タスク１８−１と分離せずに一体化した処理としていたため、第２タスク２０−１の時間遅れに対する同期処理のため組込ソフトウェア実行装置１０側で同期待ちの処理を必要としていた。
【００６０】
しかしながら本発明にあっては、シミュレーション計算を処理高速軽負荷処理である第１タスク１８−１と低速高負荷処理である第２タスク２０−１の２つに分離したことで、第１タスク１８−１については組込ソフトウェア実行装置１０のループサンプリングと同じ周期で高速に計算し、これに対し第２タスク２０−１については第１タスク１８−１の複数回の実行に対し１回だけ行なうように間引いた処理とすることで、組込ソフトウェア実行装置１０との間で同期処理を必要としないリアルタイムなシミュレーションを実現することができる。
【００６１】
図６は、図２の仮想メカモデルシミュレーション装置１４において、第１処理部１８と第２処理部２０に分けた２つのタスクを実行するための仮想メカモデルシミュレーション装置１４の構成の実施形態である。この図６の実施形態にあっては、仮想メカモデルシミュレーション装置１４に２台のＣＰＵ３８−１，３８−２を設け、それぞれのＣＰＵ３８−１，３８−２で分離した２つの第１タスク１８−１と第２タスク１８−２を並列に実行するようにしたことを特徴とする。
【００６２】
即ち、ＣＰＵ１８は組込ソフトウェア実行装置１０からのモータ信号Ｅ１をインタフェース装置１２を介して入力し、図５の第１タスク１８−１に示したステップＳ１０１〜Ｓ１０３のモータ指令値入力機構演算及びセンサ値出力を高速で実行する。
【００６３】
この第１タスク１８−１の実行結果はＣＰＵ３８の第２タスク２０−１に送られ、第１タスク１８−１の数回の実行に対し、間引きした１回だけ第２タスク２０−１による図５の第２タスク２０−１に示しているステップＳ２０１の部品の位置姿勢計算とこれに基づくステップＳ１０２の画面描画処理が実行される。
【００６４】
図７は、２つのタスクに分けた本発明のシミュレーション処理を実施する仮想メカモデルシミュレーション装置１４の他の実施形態である。この実施形態にあっては、仮想メカモデルシミュレーション装置１４にＣＰＵ３８を１台だけ設け、１つのＣＰＵ３８上で２つのシミュレーション処理に分けた第１タスク１８−１と第２タスク２０−１を実行する。
【００６５】
このように２つのタスクをＣＰＵ３８上で実行する処理は、マルチタスク機能を持つＯＳ上で実装することができ、一般にマルチタスク機能を持つＯＳ上ではタスクごとに実行優先度を設定することができる。
【００６６】
そこで本発明のシミュレーション処理にあっては、第１タスク１８−１については第２タスク２０−１を含む他のタスクより高い優先度を設定し、他の処理の影響を受けずに組込ソフトウェア実行装置１０からのモータ信号Ｅ１に対しリアルタイムでシミュレーション計算と応答ができるようにする。
【００６７】
これに対し第２タスク２０−１については、第１タスク１８−１よりも低い優先度を設定し、第１タスク１８−１の処理が中断しているときに第２タスク２０−１の処理を実行させる。このため、第１タスク１８−１のループ処理の中に一定時間処理を中断するスリープ処理を追加し、このスリープ処理の間に第２タスク２０−１による第２処理を実行できるように補償する。
【００６８】
図８は、図７のマルチタスク機能を持つＯＳ上に実装した第１タスク１８−１と第２タスク２０−１のフローチャートである。第１タスク１８−１にあっては、ステップＳ１０１のモータ指令値の入力、ステップＳ１０２の機構演算、ステップＳ１０３のセンサ値出力に加え、ステップＳ１０４に一定時間処理を中断するスリープ処理を設けている。
【００６９】
このようにリアルタイムで動作する第１タスク１８−１にスリープ処理を含ませることで、スリープ処理の間、それより優先度の低い第２タスク２０−１の実行を保証し、これによって第１タスク１８−１に対し間引きした回数で第２タスク２０−１を実行することができる。
【００７０】
図９は、図７と同じ１つのＣＰＵ３８上で２つの第１タスク１８−１と第２タスク２０−１を、マルチタスク機能を持つＯＳ上への実装で実行する場合の他の実施形態であり、この実施形態にあっては第１タスク１８−１の正確な時間周期での処理を実行するためタイマ割込みを使用するようにしたことを特徴とする。
【００７１】
図９において、組込ソフトウェア実行装置１０に対し仮想メカモデルシミュレーション装置１４は、インタフェース装置１２を介して接続され、モータ信号Ｅ１の入力とセンサ信号Ｅ２の出力を行なっている。これに加えて、この実施形態にあっては仮想メカモデルシミュレーション装置１４に対し新たにタイマ割込み発生装置４０を設けている。
【００７２】
仮想メカモデルシミュレーション装置１４におけるシミュレーション処理にあっては、仮想機構モデルの動きを計算する場合、予め設定したモータの速度と１回のシミュレーション時間から動きの量が決まるため、時間管理が重要になる。そこで図９のように、仮想メカモデルシミュレーション装置１４に対しタイマ割込み発生装置４０を設け、リアルタイムで動作する第１タスク１８−１の処理を正確な時間周期で実行させる。
【００７３】
図１０はタイマ割込みによるシミュレーション処理のタイムチャートであり、優先度を高く設定した第１タスク１８−１に対し、タイマ割込み発生装置４０からのタイマ割込み４２により一定時間ごとに割込みを発生し、タイマ割込み４２ごとに第１タスク１８−１のタスク４４−１，４４−２，…を割り当てることで、正確な時間周期での実行を実現する。
【００７４】
このタイマ割込み４２を行なうタイマ割込み発生装置４０としては、ＯＳが持つタイマ機能や外部のタイマ装置を使えば良い。勿論、タイマ割込み発生装置４０からのタイマ割込み４２は、第１タスク１８−１に設定した優先度より更に高い優先度を持つことは勿論である。
【００７５】
このように第１タスク１８−１がタイマ割込み４２に同期してタスク４４−１，４４−２，…のように実行されることで、タイマ割込み４２の周期のタスク４４−１，４４−２，…以外の空き時間をそれより優先度の低い第２タスク２０−１のタスク４６−１，４６−２，…に割り当てることができる。
【００７６】
そして、このタイムチャートの例にあっては、第１タスク１８−１のタイマ割込み４２に同期した５回のタスク４４−１〜４４−５の空き時間の第２タスク２０−１への割当てタスク４６−１〜４６−５によって１回の第２処理が行なわれる間引き処理ができる。
【００７７】
また間引き処理となる第２タスク２０−１の起動方法としては、前回の処理が終わり次第、次の処理を行なう方法とするか、あるいは一定時間ごとに起動する方法かのいずれかとすることができる。
【００７８】
図１１は図９，図１０のタイマ割込みによるシミュレーション処理の実施例における仮想メカモデルシミュレーション装置１４の第１タスク１８−１と第２タスク２０−１のフローチャートである。
【００７９】
まず高速計算となる第１タスク１８−１にあっては、ステップＳ１０１でタイマ割込みを待っており、タイマ割込みがなければ、ステップＳ１０２の一定時間の処理中断即ちスリープ処理となる。この処理中断の間に第２タスク２０−１におけるステップＳ２０１，Ｓ２０２の部品位置の姿勢計算及び画面描画計算が分割実行される。
【００８０】
ステップＳ１０２でタイマ割込みを判別すると、ステップＳ１０３でモータ指令値を入力し、ステップＳ１０４で機構演算を実行し、更にステップＳ１０５でセンサ値を出力し、一連のサンプリングループを終了し、再びステップＳ１０１で次のタイマ割込みを待つことになる。
【００８１】
ここで本発明の仮想メカモデルシミュレーション装置１４にあっては、シミュレーション処理に必要な第１タスク１８−１と第２タスク２０−１以外に、例えばマウスイベントを受け取り、そのイベントを処理するタスクや、入力データをメモリに保存する処理などを実行している。
【００８２】
そこで、シミュレーション処理以外のタスクについては、そのタスクの優先度を低く設定することで、シミュレーション処理を中断させることなく高速な組込ソフトウェア実行装置１０に対する応答処理が確保できる。
【００８３】
このようにマウスイベントやメモリ保存などの処理のタスクが低い優先度で設定されていることで、シミュレーション中にマウス操作によってモデル全体を回転させたりズームしたりすることが可能であり、マウス操作によっても高速計算を行なっている第１タスク１８−１が中断されることはなく、組込ソフトウェア実行装置１０側での同期処理を不要としている。
【００８４】
図１２は本発明のシミュレーションシステムの他の実施形態であり、この実施形態にあってはステッピングモータのパルス信号を指令値として入力するシミュレーションを行なうようにしたことを特徴とする。
【００８５】
即ち、図３３に示した従来の同期処理を必要とするシミュレーション処理にあっては、同期処理を行なっている組込ソフトウェア実行装置１００とパルス信号を出力する装置が独立しているため、同期処理を行なっていてもパルス信号が勝手に出力されてしまい、パルス信号を入力するシミュレーションが実行できない問題がある。
【００８６】
これに対し本発明にあっては、組込ソフトウェア実行装置１０と仮想メカモデルシミュレーション装置１４との間で同期処理を必要としないため、仮想メカモデルシミュレーション装置１４に対しパルス信号をリアルタイムで入力することができる。これによってパルスモータにより駆動されるステッピングモータを備えた機構装置に対応した仮想機構モデルを構築している仮想メカモデルシミュレーション装置１４におけるシミュレーション処理が実現できる。
【００８７】
図１２において、組込ソフトウェア実行装置１０に対し実機としての機構装置に設けているステッピングモータ５４を駆動するため、パルス発振回路４８、励磁回路５０及びドライバ５２が設けられることになる。
【００８８】
組込ソフトウェア実行装置１０は、モータ信号Ｅ１を出力することでパルス発振回路４８を起動し、これによってパルス発振回路４８からは一定周期でパルス信号Ｅ３が停止するまでの間、連続的に出力され、励磁回路５０及びドライバ５２を介してステッピングモータ５４を駆動することになる。
【００８９】
このようなステッピングモータ５４を対象とした駆動系に対し、本発明の仮想メカモデルシミュレーション装置１４に対しインタフェース装置１２を介して例えばパルス発振回路４８からのパルス信号Ｅ３を入力する。この仮想メカモデルシミュレーション装置１４に対するパルス信号の入力は、励磁回路５０の出力からのパルス信号Ｅ４としても良い。
【００９０】
仮想メカモデルシミュレーション装置１４は、パルス信号Ｅ３の入力に対し１パルスに対するステッピングモータ５４の回転量が予め定義されていることから、１パルスに対応したシミュレーション計算を行なってモデルを動作させるようになる。
【００９１】
図１３は、図１２のステッピングモータを対象とした仮想メカモデルシミュレーション装置１４における第１タスク１８−１と第２タスク２０−１のフローチャートである。
【００９２】
第１タスク１８−１にあっては、ステップＳ１０１で１パルスをモータ指令値として入力し、ステップＳ１０２で１パルスに対応して予め定めているステッピングモータの回転量に対応した機構演算を実行し、ステップＳ１０３でセンサ値を出力する。そしてステップＳ１０６で一定時間処理を中断するスリープ処理を行なった後、再びステップＳ１の１パルスの入力に戻る。
【００９３】
一方、第２タスク２０−１にあっては、ステップＳ１０４の第１タスク１８−１の一定時間の処理中断の間に、ステップＳ２０１の部品の位置姿勢計算と、ステップＳ２０２の画面描画計算を時分割で実行し、結果として間引き的に第２処理を行なうことになる。
【００９４】
再び図２を参照するに、仮想メカモデルシミュレーション装置１４には指令入力記憶部２４が設けられている。本発明における組込ソフトウェア実行装置１０からのモータ信号Ｅ１に基づいてリアルタイムに３次元機構モデル２５をシミュレーションする場合、実際の機構装置と同じ速さで３次元機構モデル２５が動くため、表示装置１６上でモデルを見ながら動作を検証・解析することが難しい。
【００９５】
このような問題に対しては、シミュレーションの中で表示画面をアニメーション化し、シミュレーション後に再生する方法も考えられるが、同じ計算機上でシミュレーションとアニメーション録画を同時に処理することは難しい。
【００９６】
そこで本発明にあっては、仮想メカモデルシミュレーション装置１４に設けた指令入力記憶部２４により組込ソフトウェア実行装置１０から入力したモータ信号Ｅ１の全てを時間データと共に記憶しておき、この記憶データを使用し、記憶データからのモータ信号を発生する時間を調整することで、全く同じ動作を任意の速さで再生することができる。
【００９７】
実際に指令入力記憶部２４で記憶するデータとしては、シミュレーション中の時間とモータ信号Ｅ１の値とすれば良い。またシミュレーション中にあっては、第２処理を間引き処理としているが、再生時には時間的に余裕があることから、間引き処理を行なわずにスローモーション的に細かく動作を表現するようにしても良い。
【００９８】
次に図２の仮想メカモデルシミュレーション装置１４に設けている駆動トルク演算処理部２２の処理機能を説明する。
【００９９】
図２の仮想メカモデルシミュレーション装置１４に設けている駆動トルク演算処理部（第３処理部）２２における駆動トルクの算出は、表示装置１６に表示している３次元機構モデル２５を対象に、例えばモータ２６の駆動軸にかかる負荷全体の等価慣性（出量及びモーメント）、等価静摩擦及び等価動摩擦を算出し、これらの等価慣性、等価静摩擦及び等価動摩擦を用いて、負荷の動作に必要な駆動トルクをリアルタイムに算出して表示装置１６の画面上に表示する。
【０１００】
また駆動トルク演算処理部２２としては、駆動トルクそのものの算出表示以外に、駆動トルクの算出のためのパラメータとして演算している等価慣性、等価静摩擦及びまたは等価動摩擦を、同様にリアルタイムに算出して画面上に表示することもできる。そこで、その駆動トルクの算出表示に必要な等価慣性、等価静摩擦及び等価動摩擦のそれぞれについて詳細に説明した後、駆動トルクの算出処理を説明する。
【０１０１】
図１４は、等価慣性の概念を示した説明図である。等価慣性とは、図１４（Ａ）における駆動軸５６、ギア５８，６０，６１のような一連の従動関節（負荷）の慣性（モーメント）を、図１４（Ｂ）のように駆動関節となるモータの駆動軸５６から見たときの値に換算して表示するものである。ここでギア６４は図１４（Ａ）のギア６０，６２を代表している。
【０１０２】
このように駆動関節となるモータから見た等価慣性（モーメント）を用いることで、モータがどれだけの負荷を持っているかを簡単に知ることができ、任意の角加速度で動作するために必要なトルクや任意のトルクによって得られる負荷の加速度を簡単に知ることができ、モータの選定に役立つ。ここでは、まず等価慣性（モーメント）の求め方を説明し、続いて機構解析ソフトウェアにおいて等価慣性（モーメント）を算出する方法を説明する。
【０１０３】
まず等価慣性の求め方を説明する。関節を構成している部品の質量をｍ、慣性モーメントをＩとすると、この部品の運動エネルギＥは次式で表わすことができる。
【０１０４】
【数１】
0004837844.tif 000002
【０１０５】
ここでｘ，φはそれぞれ直進と回転の関節値である。
【０１０６】
駆動関節（モータ）から見た等価慣性モーメントの値をＩｅｑ、関節値をθとすると、運動エネルギー保存の法則から
【０１０７】
【数２】
0004837844.tif 000003
【０１０８】
という関係が成り立つ。この式を等価慣性モーメントＩｅｑについて求めると、
【０１０９】
【数３】
0004837844.tif 000004
【０１１０】
となる。これがモータ軸から見た部品（負荷）の等価慣性モーメントである。
【０１１１】
またモータが直線往復運動などを行う並進関節の場合、部品の等価慣性ｍｅｑは同様に
【０１１２】
【数４】
0004837844.tif 000005
【０１１３】
となる。なお、ｙはモータ関節の関節値である。
【０１１４】
次に機構解析ソフトウェアを用いて等価慣性を求める方法を説明する。まず前提として機構解析ソフトウェアでは、既に設定されたギア、カム、ローラ、クラッチ、ラチェットなどの機構関係が存在し、駆動関節が変化すると、その機構関係に基づいて従動関節が動作し、それに応じて各従動関節を構成している各部品の姿勢が変化し、３次元描画に用いられているものとする。ここで部品の姿勢は位置（Ｐ）、回転行列（Ｒ）で表わされる。
【０１１５】
等価慣性を求めるためには、このような各部品の姿勢の変化を利用する。即ち図１５のように、モータ６６の駆動関節ＪをΔθ動かすと、関節関係によって従動部品Ｌが姿勢６８−１から姿勢６８−２に変化する。この変化量を部品Ｌの重心の直線移動量Δｘと、ある単位ベクトルＫ軸周りの回転量ΔΦで表わしたとすると、部品Ｌの等価慣性Ｉｅｑは式（３）もしくは式（４）より、次の式で求めることができる。
【０１１６】
【数５】
0004837844.tif 000006
【０１１７】
ここでnは部品Ｌの出量、Ｉは部品ＬのＫ軸回りの慣性モーメントである。
【０１１８】
この部品Lの姿勢は、位置Ｐと回転行列Rで得られる。したがって、変化前の部品Ｌの姿勢（Ｐａ，Ｒａ）と、駆動関節ＪがΔθ変化したときの部品Lの姿勢（Ｐｂ，Ｒｂ）から、次の式を用いて重心の直線移動量Δｘ、単位K軸回りの回転量Δφ、及び慣性モーメントIを求めなければならない。
【０１１９】
【数６】
0004837844.tif 000007
【０１２０】
ただし、ｒ11，ｒ22，ｒ33は
【０１２１】
【数７】
0004837844.tif 000008
【０１２２】
で表わすことのできる行列の要素、Ｌは部品Ｌの慣性テンソルである。また、単位行列Ｋは次のような式で表わすことができる。
【０１２３】
【数８】
0004837844.tif 000009
【０１２４】
図１６は、等価慣性を求めるアルゴリズムのメインルーチンのフローチャートである。まずステップＳ１で、等価慣性を得たい駆動関節の従動関節を構成している全ての部品リスト（ＬＬｉｓｔ）を作成する。この部品リストＬＬｉｓｔを作成するための処理は、図１７，図１８及び図１９のフローチャートに示すようになる。図１７は部品リスト作成のメインルーチンであり、ステップＳ１で駆動関節の部品リストＪＬｉｓｔと従動関節の部品リストＬＬｉｓｔを初期化した後、ステップＳ２でそれぞれの検索関数をコールする。
【０１２５】
図１８は駆動関節部品リストの検索アルゴリズムのフローチャートである。また図１９は従動関節部品リストの検索アルゴリズムのフローチャートである。
【０１２６】
再び図１６を参照するに、次にステップＳ２で部品リストＬＬｉｓｔの部品の全てに対し、各部品の現在の姿勢（Ｐａ，Ｒａ）を保存する。続いてステップＳ３で駆動関節値をΔθだけ増加し、駆動部品を動かす。この駆動関節値の増加に対応して、ステップＳ４で等価慣性の算出を行なうため、図２０の等価慣性算出関数をコールする。
【０１２７】
図２０の等価慣性算出関数のフローチャートは、全ての従動部品に対し現在の姿勢（Ｐｂ，Ｒｂ）と図１６のステップＳ２で求めた変化前の姿勢（Ｐａ，Ｒａ）から姿勢のΔｘ，Δφ及びＩを求め、個々の部品の等価慣性を求める。
【０１２８】
具体的には、ステップＳ１で等価慣性Ｉeqを０に初期化した後、ステップS２で部品リストＬＬｉｓｔの中で未処理の部品があるか否かチェックし、未処理の部品があれば、ステップＳ３〜ステップＳ９により、各部品ごとに順番に等価慣性を算出し、図１６のステップＳ３で行なった駆動部品のΔθの動きに対する等価慣性を加算することで最終的な等価慣性を求める。
【０１２９】
次に等価静摩擦を説明する。等価静摩擦も等価慣性と同じく、駆動関節から見た従動関節全ての静摩擦を等価的に見たものである。これにより、ギアの組み合せなどによる負荷を動かすために必要な最低限のトルクを得ることができ、同じくモータの選定に役立つ。
【０１３０】
いま図２１のように、減速比ｒ、伝達効率Ｒのギア７０の先に、静摩擦トルクＦのギアとなる駆動関節７０の先に静摩擦トルクＦのギアでなる従動関節７２があったとする。駆動関節７０のトルクをτとして、静摩擦と力の釣り合いが取れていたとすると、
【０１３１】
【数９】
0004837844.tif 000010
【０１３２】
という関係が成り立つ。これにより
【０１３３】
【数１０】
0004837844.tif 000011
【０１３４】
が駆動間接軸から見た従動関節７２の等価的な静摩擦となる。
【０１３５】
従動関係が図２２（Ａ）のように、駆動関節７４に対し従動関節７６，７８というように連なっている場合は、式（１２）を再帰的に用いて
【０１３６】
【数１１】
0004837844.tif 000012
【０１３７】
という式で表わすことができる。
【０１３８】
また図２２（Ｂ）のように、駆動関節８０に対し従動関節８２，８４のように分岐している場合は、
【０１３９】
【数１２】
0004837844.tif 000013
【０１４０】
という式で表わすことができる。ここでＦｎ，Ｒｎ，ｒｎは、図中の各関節の静摩擦トルク、伝達効率、減速比である。
【０１４１】
これまでの例ではギア関係で実現例を示したが、減速比ｒを、駆動側の関節をΔθ動かしたときの従動側の関節が動く値Δφの比（Δφ／Δθ）と考えることで、カム関係（溝を含む）でも同じ計算で実現できる。これは、あらゆる機構において力（トルク）と移動量の積は等しいからである。更に、カム関係において駆動関節と従動関節のどちらかが回転関節で、もう片方が並進関節であっても、単位系を適切に選ぶことによって、この関係は成立する。
【０１４２】
例えば図２３（Ａ）のような回転関節８６と並進関節９０の溝機構で考える。ここで溝８８には回転関節８６のピン９１が摺動する。この機構において、Ｆは並進関節９０の摩擦力（単位Ｎ）、τは回転関節８６の駆動トルク（単位Ｎｍ）、ｌは回転関節８８の軸から溝８８に対するピン９１の接触面までの距離（単位ｎ）である。なお、駆動を並進関節９０、従動を回転関節８６と考えても結果は等しい。
【０１４３】
この際、ｘ＝ｌｃｏｓθという関係が成り立つので、減速比ｒは
【０１４４】
【数１３】
0004837844.tif 000014
【０１４５】
となる。一方、ピン９１の溝８８に対する接触面が鉛直方向にあることから、力の釣り合いは図２３（Ｂ）のような関係にあり、これから
【０１４６】
【数１４】
0004837844.tif 000015
【０１４７】
という関係が成り立つ。これにより、ｌｓｉｎθは消去することが可能で
【０１４８】
【数１５】
0004837844.tif 000016
【０１４９】
となる。そして伝達効率Ｒを考慮すると、式（１２）と同じになる。
【０１５０】
以上のことから、図２４のフローチャートに示すアルゴリズムに従って機構の等価静摩擦を求めることができる。まずステップＳ１で駆動間接の全ての部品リストＪＬｉｓｔを作成する。この部品リストの作成処理は、図１７〜図１９の詳細と同じになる。続いてステップＳ２で部品リストＪＬｉｓｔ内の全ての部品に対し現在の関節値（ｑ）を記憶した後、ステップＳ３で駆動間接をΔθだけ動かす。
【０１５１】
そしてステップＳ４で等価静摩擦を算出するための静摩擦算出関数をコールする。このステップＳ４の静摩擦算出関数の詳細は、図２５のフローチャートに示すようになる。図２５の静摩擦算出関数のフローチャートにあっては、ステップＳ１で変化前の関節値ｑａ、現在の関節値ｑｂをセットした後、ステップＳ２で両者を比較し、プラスの変化であればステップＳ４の正方向の静摩擦とし、マイナスの変化であればステップＳ３の負方向の静摩擦とする。そして、ステップＳ５で未処理の従動部品がなくなるまで、ステップＳ６〜Ｓ１２の静摩擦算出処理を繰り返す。
【０１５２】
この静摩擦算出関数の処理で静摩擦（トルク）を正と負に分けているが、バネとか重力などによる向きの違いを簡易的に表現するためである。また滑りに関しては、滑りが発生したときに生ずる摩擦力を設定し、それを加算するように処理する。
【０１５３】
再び図２４を参照するに、ステップＳ４で等価静摩擦が算出できたならば、ステップＳ５で駆動関節を逆方向にΔθ戻して、初期状態に戻す。
【０１５４】
次に等価動摩擦について説明する。等価動摩擦は等価慣性や等価静摩擦と同じ概念を動摩擦に拡張したものである。即ち、駆動関節の角速度をωaとした時、従動関節全ての動摩擦を駆動間接の軸回りに換算し、
τ＝Ｋωa                                （１８）
という形で表わしたときのＫを等価動摩擦と考える。
【０１５５】
図２１と同じように、減速比ｒ、伝達効率Ｒのギアである駆動間接７０によって動摩擦係数ｋの従動関節７２が１つあった場合を考えると、従動関節７２の角速度ωｂは減速比の定義により
ωb＝ｒωa                              （１９）
という式が成り立つ。即ち、従動関節軸に発生する動摩擦トルクは
τb＝Ｋωb＝Ｋｒωa                    （２０）
となる。このトルクを駆動関節軸回りに換算した場合、
【０１５６】
【数１６】
0004837844.tif 000017
【０１５７】
これより、等価動摩擦は
【０１５８】
【数１７】
0004837844.tif 000018
【０１５９】
で表わすことができる。
【０１６０】
更に図２２（Ａ）のように、駆動関節７４に対し従動関節７６，７８が連なっていた場合、等価性摩擦と同じように再帰的に計算し、
【０１６１】
【数１８】
0004837844.tif 000019
【０１６２】
となる。ここで、Ｋ０，Ｋ１，Ｋ２はそれぞれ駆動関節軸及び１段目、２段目の従動関節軸の動摩擦係数、Ｒ１，ｒ１は駆動間接軸と１段目の従動関節のギアの伝達係数と減速比、Ｒ２，ｒ２は１段目と２段目の従動間接の伝達関数と減速比である。
【０１６３】
更に図２２（Ｂ）のように複数の従動関節がある場合や、図２３のように片方が回転関節で片方が並進関節の場合における考え方も、等価静摩擦における考え方と同じになる。
【０１６４】
図２６は等価動摩擦を算出するアルゴリズムのフローチャートであり、図２７にそのステップＳ４の動摩擦算出関数の詳細のフローチャートを示している。この図２６の等価動摩擦の算出アルゴリズムにあっても、ステップＳ１で駆動関節の部品リストＪＬｉｓｔを作成した後、ステップ２で部品リスト内の全ての部品に対し、現在の関節値ｑｔを記憶し、ステップＳ３で駆動関節をΔθ動かす。そしてステップＳ４に進み、図２７に示す動摩擦算出関数の処理を実行する。最終的にステップＳ５で、駆動関節を逆方向にΔθ戻して初期状態とする。
【０１６５】
次に駆動トルクの算出処理を説明する。今までに説明した等価慣性、等価静摩擦及び等価動摩擦を用いて図２の仮想メカモデルシミュレーション装置１４に設けた駆動トルク演算処理部２２は、シミュレーション中にリアルタイムでモータ２６の駆動トルクを算出表示することができる。
【０１６６】
駆動間接となるモータ２６の駆動トルクをτ、変位をθとすると、３次元機構モデル２５の運動方程式は
【０１６７】
【数１９】
0004837844.tif 000020
【０１６８】
という形で表わすことができる。ここでＩ，Ｋｄ，Ｋｓは、それぞれ負荷全体の等価慣性、等価動摩擦及び等価静摩擦である。更に式（２４）において一般に第２項の影響は小さいので無視すると、以下のような式になる。
【０１６９】
【数２０】
0004837844.tif 000021
【０１７０】
この式（２５）をシミュレーションサイクルごとに解くことで、モータ２６にかかる負荷をリアルタイムに算出することができる。
【０１７１】
図２８及び図２９に駆動トルクを算出するアルゴリズムのフローチャートを示す。まずステップＳ１でモータ速度を算出する。このモータ速度の算出は、図３０を参照して後の説明で明らかにする。続いてモータ速度の変化が０でなければ、ステップＳ３でシミュレーションループのサンプリング時間で割って加速度ａを求める。
【０１７２】
続いてステップＳ４で図１７〜図１９のフローチャートに従って部品リストＪＬｉｓｔ，ＬＬｉｓｔを作成する。そしてステップＳ５で駆動関節の部品リストＪＬｉｓｔの全ての関節に対し、現在の関節値（ｑ）を記憶した後、ステップＳ６で従動関節の部品リストＬＬｉｓｔの全ての部品に対し、現在の姿勢（Ｐａ，Ｒａ）を記憶する。続いてステップＳ７で速度の正、負を調べ、速度が正であればステップＳ８でモータ関節値をΔθ増やす。負であればステップＳ９でモータ関節値をΔθ減らす。
【０１７３】
次に図２９のステップＳ１０で等価慣性算出関数をコールして等価慣性を求める。具体的には図１６，図２０の処理を実行する。次にステップＳ１１で動摩擦算出関数をコールして実行する。具体的には図２６，図２７の処理を実行する。更にステップＳ１２で静摩擦算出関数をコールし、具体的には図２４，図２５の処理を実行して静摩擦を算出する。そしてステップＳ１３でモータの駆動トルクを算出する。
【０１７４】
その後、ステップＳ１４で速度が正か負か判別し、正であればステップＳ１５でトルク計算に使用する静摩擦Ｋｓをプラスとし、負であればステップＳ１７でトルク計算に使用する等価静摩擦Ｋｓをマイナスとする。
【０１７５】
そしてステップＳ１６，Ｓ１８で、ステップＳ８，Ｓ９の場合と逆に、モータ関節値を設定して初期状態に戻した後、ステップＳ１９で最終的にモータ駆動トルクＴを算出し、ステップＳ２０で現在のモータ速度Ｖを次回の計算のためにＶ＝０とする。勿論、ステップＳ２で速度差が０であれば、ステップＳ２１でモータ駆動トルクを０として処理を終了する。
【０１７６】
この図２８，図２９におけるモータ駆動トルクの計算処理は、図２の仮想メカモデルシミュレーション装置１４の中の１つの処理として組み込まれることになる。本発明にあっては、最も優先度の高い処理として第１処理部１８により入出力・機構演算処理を行なっていることから、駆動トルク演算処理部２２はそれより優先度の低いタスクとして処理が割り当てられることになる。具体的には、優先度の低い描画のための第２処理部２０によるタスクと同じ優先度の処理に駆動トルク演算処理部２２によるタスクを設定すれば良い。
【０１７７】
図３０は図２８のステップＳ１におけるモータ速度計算処理の説明図である。図３０はモータを１次遅れ系とみなした時のモータの回転速度ωの初期変化の特性を示している。モータを１次遅れ系とみなした時の時刻ｔにおけるモータ速度は
【０１７８】
【数２１】
0004837844.tif 000022
【０１７９】
により表わされる。ここでωiは目標速度、ω0は目標速度指令前のモータ速度、Ｔはモータの性質をあらわす制定時間４Ｔに比例した定数である。
【０１８０】
次に本発明のシミュレーションシステムにあっては、仮想機構モデルについて算出した等価慣性、等価動摩擦、等価静摩擦を用いてトルクモータを実現することができる。このトルクモータは、組込ソフトウェア実行装置１０からのモータ速度信号Ｅ１となる入力ビット群からモータの目標速度を得てモータの動きを計算しているものを、目標速度の代わりに目標トルクを得ることで実現できる。そこで入力ビット群から求めた目標トルクからシミュレーションサイクルにおけるモータの移動量Δθを得るための方法を説明する。
【０１８１】
いまモータの速度ωがω0の時に目標トルクτがモータにかかったと考える。
【０１８２】
【数２２】
0004837844.tif 000023
【０１８３】
とすると、式（２５）より
【０１８４】
【数２３】
0004837844.tif 000024
【０１８５】
となり、これを解くと
【０１８６】
【数２４】
0004837844.tif 000025
【０１８７】
となる。
【０１８８】
これにより全体のシミュレーションサイクルにおけるモータ速度をωｋ−１としたとき、現在のシミュレーションサイクルのサンプリング間隔Δｔの間のモータ移動量Δθは
【０１８９】
【数２５】
0004837844.tif 000026
【０１９０】
と表わすことができる。ここでτ0は式（２６）のように目標トルクから静摩擦トルクを引いた値である。
【０１９１】
このため本発明のシミュレーション処理にあっては、次の手順に従ったアルゴリズムを実行することでトルクモータを実現できる。
（１）組込ソフトウェア実行装置１０からの入力ビット群から目標モータトルクを求める。
（２）等価慣性、等価動摩擦及び等価静摩擦を求める。
（３）式（２９）よりモータの変位量Δθを求め、モータの変位を更新する。
（４）次回系の計算のためにモータ速度を記憶する。
【０１９２】
次に図２の仮想メカモデルシミュレーション装置１４で実行されるシミュレーションプログラムを格納したコンピュータ読み取り可能な記録媒体の実施形態を説明する。
【０１９３】
図３１のコンピュータシステム１００は本発明のシミュレーションプログラムを実行するシステムであり、本体部１０２を有し、本体部１０２には図３２のようにＣＰＵ１２０、ＲＡＭ１２２、ＲＯＭ１２４、ディスクドライブ装置ＨＤＤ１２６、ＣＤ−ＲＯＭドライブ１２８、ＦＤドライブ１３０、キーボード、マウス、ディスプレイを接続するＩ／Ｏインタフェース１３２、ＬＡＮインタフェース１３４、モデム１３６などが内蔵されている。
【０１９４】
コンピュータシステム１００は更に、本体部１０２からの指示により表示画面１０４ａに画像などの情報を表示するディスプレイ１０６、コンピュータシステム１００に種々の情報を入力するためのキーボード１０８、ディスプレイ１０６の表示画面１０４ａ上に任意の位置を指定するマウス１１０、回線で接続されたデータベースにアクセスするＬＡＮインタフェース１３４、モデム１３６が備えられている。
【０１９５】
本発明のシミュレーションプログラムは、ＣＤ−ＲＯＭ、フロッピィディスク、ＤＶＤディスク、光ディスク、ＩＣカードなどの可搬型記憶媒体、モデム１３６及びＬＡＮインタフェース１３４を利用し、回線を介して接続されたデータベース、更には他のコンピュータシステムのデータベースに格納され、コンピュータシステム１００にインストールされた後に、コンピュータシステム１００で実行される。
【０１９６】
ここで記録媒体とは、ＣＤ−ＲＯＭ１１６、フロッピィディスク（ＦＤ）１１８、ＤＶＤディスク、光ディスク、ＩＣカードなどの可搬型記憶媒体や、コンピュータシステム１００の内外に備えられたハードディスクＨＤＤなどの記憶装置の他、回線を介してプログラムを保持するデータベース、あるいは他のコンピュータシステム並びにそのデータベース、更には回線上の伝送媒体を含むものである。
【０１９７】
なお本発明は上記の実施形態に限定されず、その目的と利点を損なわない適宜の変形を含む。また本発明は上記の実施形態に示した数値による限定は受けない。
【０１９８】
（付記）
（付記１）
制御プログラムを実行して機構装置を制御する組込みソフトウェア実行装置と、
前記機構装置の仮想機構モデルを構築し、前記組込みソフトウェア実行装置からの入力データに応じたシミュレーション計算により前記仮想機構モデルを動作させるシミュレーション装置と、
を備えたシミュレーションシステムにおいて、
前記シミュレーション装置に、
前記組込みソフトウェア実行装置との入出力と前記仮想機構モデルの機構演算に関する第１処理を実行する第１処理部と、
前記第１処理部の空き時間を使用して、前記仮想機構モデルの描画を含むユーザインタフェースに関する第２処理を実行する第２処理部と、
を設けたことを特徴とするシミュレーションシステム。（１）
【０１９９】
（付記２）
付記1記載のシミュレーションシステムおいて、前記シミュレーション装置に２台のプロセッサを設けて前記第１処理部と第２処理部を別々に実装し、前記第１処理部による入出力及び機構演算と前記第２処理部による描画処理を並列に実行することを特徴とするシミュレーションシステム。
【０２００】
（付記３）
付記1記載のシミュレーションシステムおいて、前記シミュレーション装置のプロセッサに前記第１処理部と第２処理部をマルチタスクで実装し、前記第１処理部による入出力と機構演算は優先度を高くして短い周期で実行し、前記第２処理部による描画処理は優先度を低くして長い周期で実行することを特徴とするシミュレーションシステム。
【０２０１】
（付記４）
付記３記載のシミュレーションシステムにおいて、タイマカウンタと同期を取ることにより前記第１処理部の処理を一定周期で実行させることを特徴とするシミュレーションシステム。
【０２０２】
（付記５）
付記１記載のシミュレーションシステムにおいて、前記機構装置はパルス信号や正弦波信号を入力とするモータを備え、前記シミュレーション装置は、前記組込みソフトウェア実行装置からのモータ指令として前記モータに対するパルス信号や正弦波信号を入力して前記仮想機構モデルを動作させることを特徴とするシミュレーションシステム。
【０２０３】
（付記６）
付記１記載のシミュレーションシステムにおいて、前記第２処理部は、仮想機構モデルの動く部分を対象に描画処理を実行することを特徴とするシミュレーションシステム。
【０２０４】
（付記７）
付記１記載のシミュレーションシステムにおいて、更に、予め定義された駆動機構の関係から、任意の選んだ軸にかかる負荷全体の等価慣性、等価静摩擦、等価動摩擦の少なくともいずれかを、前記選んだ軸から見た値に換算して表示する第３処理部を設けたことを特徴とするシミュレーションシステム。
【０２０５】
（付記８）
付記７記載のシミュレーションシステムにおいて、更に、予め定義された駆動機構の関係から、任意の選んだ軸にかかるモータ駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を用いて、動作に必要なモータの駆動トルクをリアルタイムに算出し表示する第３処理部を設けたことを特徴とするシミュレーションシステム。（２）
【０２０６】
（付記９）
付記８記載のシミュレーションシステムにおいて、前記シミュレーション装置は、前記組込みソフトウェア実行装置からの入力データに対しトルクモータを実現して仮想機構モデルを動作させることを特徴とするシミュレーションシステム。
【０２０７】
（付記１０）
付記８記載のシミュレーションシステムにおいて、前記シミュレーション装置は、所定のシミュレーションサイクル毎に、
前記組込みソフトウェア実行装置の指令入力データからトルクモータの目標トルクを求め、
トルクモータの駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を求め、
前記目標トルク、等価慣性、等価静摩擦及び等価動摩擦からモータの変位量を求めてモータの変位を更新する処理を繰り返すことを特徴とするシミュレーションシステム。
【０２０８】
（付記１１）
付記１記載のシミュレーションシステムにおいて、前記シミュレーション装置は、シミュレーション中における前記組込みソフトウェア実行装置からの入力データを時間データと共に記憶しておき、シミュレーション後に前記記憶データを使って再度シミュレーションを再現することを特徴とするシミュレーションシステム。
【０２０９】
（付記１２）
機構装置の仮想機構モデルを構築し、組込みソフトウェア実行装置からの入力データに応じたシミュレーション計算により前記仮想機構モデルを動作させるシミュレーション方法において、
前記組込みソフトウェア実行装置との入出力と前記仮想機構モデルの機構演算に関する第１処理を実行する第１処理ステップと、
前記第１処理ステップの空き時間を使用して、前記仮想機構モデルの描画を含むユーザインタフェースに関する第２処理を実行する第２処理ステップと、
を備えたことを特徴とするシミュレーション方法。（３）
【０２１０】
（付記１３）
付記１２記載のシミュレーション方法おいて、前記シミュレーション装置に２台のプロセッサを設け、前記第１処理ステップによる入出力及び機構演算と前記第２処理ステップによる描画処理を並列に実行することを特徴とするシミュレーション方法。
【０２１１】
（付記１４）
付記１２記載のシミュレーション方法おいて、前記シミュレーション装置のプロセッサに前記第１処理ステップと第２処理ステップをマルチタスクで実装し、前記第１処理ステップによる入出力と機構演算は優先度を高くして短い周期で実行し、前記第２処理ステップによる描画処理は優先度を低くして長い周期で実行することを特徴とするシミュレーション方法。
【０２１２】
（付記１５）
付記１４記載のシミュレーション方法において、タイマカウンタと同期を取ることにより前記第１処理ステップの処理を一定周期で実行させることを特徴とするシミュレーション方法。
【０２１３】
（付記１６）
付記１２記載のシミュレーション方法において、前記機構装置はパルス信号や正弦波信号を入力とするモータを備え、前記組込みソフトウェア実行装置からのモータ指令として前記モータに対するパルス信号や正弦波信号を入力して前記仮想機構モデルを動作させることを特徴とするシミュレーション方法。
【０２１４】
（付記１７）
付記１２記載のシミュレーション方法において、前記第２処理ステップは、仮想機構モデルの動く部分を対象に描画処理を実行することを特徴とするシミュレーション方法。
【０２１５】
（付記１８）
付記１２記載のシミュレーション方法において、更に、予め定義された駆動機構の関係から、任意の選んだ軸にかかる負荷全体の等価慣性、等価静摩擦、等価動摩擦の少なくともいずれかを、前記選んだ軸から見た値に換算して表示する第３処理ステップを設けたことを特徴とするシミュレーション方法。
【０２１６】
（付記１９）
付記１２記載のシミュレーション方法において、更に、モータ駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を用いて、動作に必要なモータの駆動トルクをリアルタイムに算出し表示する第３処理ステップを設けたことを特徴とするシミュレーション方法。
【０２１７】
（付記２０）
付記１９記載のシミュレーション方法において、前記組込みソフトウェア実行装置からの入力データに対しトルクモータを実現して仮想機構モデルを動作させることを特徴とするシミュレーション方法。
【０２１８】
（付記２１）
付記２０記載のシミュレーション方法において、前記シミュレーション装置は、所定のシミュレーションサイクル毎に、
前記組込みソフトウェア実行装置の指令入力データからトルクモータの目標トルクを求め、
トルクモータの駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を求め、
前記目標トルク、等価慣性、等価静摩擦及び等価動摩擦からモータの変位量を求めてモータの変位を更新する処理を繰り返すことを特徴とするシミュレーション方法。
【０２１９】
（付記２２）
付記１２記載のシミュレーション方法において、前記シミュレーション装置は、シミュレーション中における前記組込みソフトウェア実行装置からの入力データを時間データと共に記憶しておき、シミュレーション後に前記記憶データを使って再度シミュレーションを再現することを特徴とするシミュレーション方法。
【０２２０】
（付記２３）
コンピュータに、
組込みソフトウェア実行装置との入出力と仮想機構モデルの機構演算に関する第１処理を実行する第１処理ステップと、
前記第１処理ステップの空き時間を使用して、前記仮想機構モデルの描画を含むユーザインタフェースに関する第２処理を実行する第２処理ステップと、
を実行させることを特徴とするプログラム。（４）
【０２２１】
（付記２４）
付記２３記載のプログラムおいて、２台のコンピュータに、前記第１処理ステップによる入出力及び機構演算と前記第２処理ステップによる描画処理を並列に実行させることを特徴とするプログラム。
【０２２２】
（付記２５）
付記２４記載のプログラムおいて、コンピュータに前記第１処理ステップと第２処理ステップをマルチタスクで実装し、前記第１処理ステップによる入出力と機構演算は優先度を高くして短い周期で実行させ、前記第２処理ステップによる描画処理は優先度を低くして長い周期で実行させることを特徴とするプログラム。
【０２２３】
（付記２６）
付記２５記載のプログラムにおいて、タイマカウンタと同期を取ることにより前記第１処理ステップの処理を一定周期で実行させることを特徴とするプログラム。
【０２２４】
（付記２７）
付記２３記載のプログラムにおいて、パルス信号や正弦並信号を入力とするモータに対し、前記組込みソフトウェア実行装置からのモータ指令として前記モータに対するパルス信号や正弦波信号を入力して前記仮想機構モデルを動作させることを特徴とするプログラム。
【０２２５】
（付記２８）
付記２３記載のプログラムにおいて、前記第２処理ステップは、仮想機構モデルの動く部分を対象に描画処理を実行させることを特徴とするプログラム。
【０２２６】
（付記２９）
付記２３記載のプログラムにおいて、更に、予め定義された駆動機構の関係から、任意の選んだ軸にかかる負荷全体の等価慣性、等価静摩擦、等価動摩擦の少なくともいずれかを、前記選んだ軸から見た値に換算して表示する第３処理ステップを設けて実行させることを特徴とするプログラム。
【０２２７】
（付記３０）
付記２９記載のプログラムにおいて、更に、モータ駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を用いて、動作に必要なモータの駆動トルクをリアルタイムに算出し表示させる第３処理ステップを設けて実行させることを特徴とするプログラム。
【０２２８】
（付記３１）
付記３０記載のプログラムにおいて、前記組込みソフトウェア実行装置からの入力データに対しトルクモータを実現して仮想機構モデルを動作させることを特徴とするプログラム。
【０２２９】
（付記３２）
付記３１記載のプログラムにおいて、所定のシミュレーションサイクル毎に、前記組込みソフトウェア実行装置の指令入力データからトルクモータの目標トルクを求め、
トルクモータの駆動軸から見た負荷全体の等価慣性、等価静摩擦及び等価動摩擦を求め、
前記目標トルク、等価慣性、等価静摩擦及び等価動摩擦からモータの変位量を求めてモータの変位を更新する処理を繰り返すことを特徴とするプログラム。
【０２３０】
（付記３３）
付記２３記載のプログラムにおいて、シミュレーション中における前記組込みソフトウェア実行装置からの入力データを時間データと共に記憶しておき、シミュレーション後に前記記憶データを使って再度シミュレーションを再現することを特徴とするプログラム。
【０２３１】
（付記３４）
コンピュータに、
組込みソフトウェア実行装置との入出力、仮想機構モデルの機構演算、及び前記仮想機構モデルの描画を含むユーザインタフェースに関する処理を実行するステップと、
予め定義された駆動機構の関係から、任意の選んだ軸にかかる負荷全体の等価慣性、等価静摩擦、等価動摩擦の少なくともいずれかを、前記選んだ軸から見た値に換算して表示させるステップと、
を実行させることを特徴とするプログラム。
【０２３２】
（付記３５）
付記３４のプログラムにおいて、更に、前記等価慣性、等価静摩擦及び等価動摩擦を用いて、動作に必要なモータの駆動トルクをリアルタイムに算出して表示させることを特徴とするプログラム。
【０２３３】
（付記３６）
コンピュータに、
組込みソフトウェア実行装置との入出力と仮想機構モデルの機構演算に関する第１処理を実行する第１処理ステップと、
前記第１処理ステップの空き時間を使用して、前記仮想機構モデルの描画を含むユーザインタフェースに関する第２処理を実行する第２処理ステップと、
を実行させるプログラムを格納したコンピュータ読取可能な記録媒体。（５）
【０２３４】
【発明の効果】
以上説明してきたように本発明によれば、モータ指令値入力、機構演算及びセンサ値出力といった高速低負荷処理と、部品の位置姿勢計算と画面描画といった低速高負荷処理にシミュレーション処理を分け、高速低負荷処理は組込ソフトウェア実行装置に設けている制御プログラムのサイクルと同じ周期で高速に実行し、これに対し描画処理となる低速高負荷処理については数回に１回というように間引いて実行することで、組込ソフトウェア実行装置とシミュレーション装置との間の時間合せのための同期処理を不要とし、仮想機構モデルのリアルタイムなシミュレーションが実現でき、仮想機構モデルを用いた制御プログラムの設計開発を効率良く行なうことができる。
【０２３５】
また仮想機構モデルのモータなどのアクチュエータについて、等価慣性、等価静摩擦、等価動摩擦、更には駆動トルクがリアルタイムで算出されて表示されることで、機構モデルのモータ選定などの設計作業をより適切に行なうことができる。
【０２３６】
また同期処理が不要となったことで、ステッピングモータにおけるパルス入力によるシミュレーションを実現することができる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明システム構成の説明図
【図３】仮想機構モデルの動く部分を表示した場合のシミュレーション動作の説明図
【図４】画面表示された仮想機構モデルの説明図
【図５】図２におけるシミュレーション処理のフローチャート
【図６】２台のＣＰＵで２つのタスクを並列に処理する実施形態の説明図
【図７】マルチタスクにより処理する実施形態の説明図
【図８】図７におけるシミュレーション処理のフローチャート
【図９】タイマ割込みに同期してシミュレーションを実行する実施形態の説明図
【図１０】図９のシミュレーション処理のタイムチャート
【図１１】図９によるシミュレーション処理のフローチャート
【図１２】ステッピングモータのパルス指令によりシミュレーションを実行する実施形態の説明図
【図１３】駆動トルク演算処理を含むシミュレーション処理を実行する実施形態のフローチャート
【図１４】等価慣性の概念わ示した説明図
【図１５】等価慣性モーメントの算出法の説明図
【図１６】等価慣性を求めるアルゴリズムのフローチャート
【図１７】等価慣性を得たい駆動関節・部品の検索アルゴリズムのフローチャート
【図１８】図１７における従動関節検索の詳細のフローチャート
【図１９】図１７における従動関節検索の詳細のフローチャート
【図２０】図１６における等価慣性算出処理の詳細のフローチャート
【図２１】等価静摩擦の概念を示した説明図
【図２２】従動関係が複数ある場合の等価静摩擦の概念を示した説明図
【図２３】回転と並進の溝機構の説明図
【図２４】等価静摩擦算出処理のフローチャート
【図２５】図２４における等価静摩擦算出の詳細のフローチャート
【図２６】等価動摩擦算出処理のフローチャート
【図２７】図２６における等価動摩擦算出の詳細のフローチャート
【図２８】モータ駆動トルク算出アルゴリズムのフローチャート
【図２９】図２８に続くモータ駆動トルク算出アルゴリズムのフローチャート
【図３０】図２８におけるモータ速度算出の説明図
【図３１】本発明のシミュレーションプログラムを格納した記録媒体が使用されるコンピュータシステムの説明図
【図３２】図３１における本体部の内部構成のブロック図
【図３３】組込ソフトウェア実行装置に実機を結合した従来システムの説明図
【図３４】組込ソフトウェア実行装置に仮想機構モデルのシミュレーション装置を結合した従来システムの説明図
【図３５】同期待ち処理を含む従来のシミュレーションのフローチャート
【符号の説明】
１０：組込ソフトウェア実行装置
１１：制御プログラム
１２：インタフェース装置
１４：仮想メカモデルシミュレーション装置
１６：表示装置
１８：入出力・演算処理部（第１処理部）
１８−１：第１タスク
２０：描画処理部（第２処理部）
２０−２：第２タスク
２２：駆動トルク演算処理部（第３処理部）
２４：指令入力記憶部
２６：モータ
２８，３０：ギア
３２：カム
３４：センサ
３６：仮想的機構モデル（ＣＤオートチェンジャ）
３８，３８−１，３８−２：ＣＰＵ
４０：タイマ割込み発生装置
４８：パルス発振回路
５０：励磁回路
５２：ドライバ
５４：ステッピングモータ
【図１】
0004837844.tif 000027
【図２】
0004837844.tif 000028
【図３】
0004837844.tif 000029
【図４】
0004837844.tif 000030
【図５】
0004837844.tif 000031
【図６】
0004837844.tif 000032
【図７】
0004837844.tif 000033
【図８】
0004837844.tif 000034
【図９】
0004837844.tif 000035
【図１０】
0004837844.tif 000036
【図１１】
0004837844.tif 000037
【図１２】
0004837844.tif 000038
【図１３】
0004837844.tif 000039
【図１４】
0004837844.tif 000040
【図１５】
0004837844.tif 000041
【図１６】
0004837844.tif 000042
【図１７】
0004837844.tif 000043
【図１８】
0004837844.tif 000044
【図１９】
0004837844.tif 000045
【図２０】
0004837844.tif 000046
【図２１】
0004837844.tif 000047
【図２２】
0004837844.tif 000048
【図２３】
0004837844.tif 000049
【図２４】
0004837844.tif 000050
【図２５】
0004837844.tif 000051
【図２６】
0004837844.tif 000052
【図２７】
0004837844.tif 000053
【図２８】
0004837844.tif 000054
【図２９】
0004837844.tif 000055
【図３０】
0004837844.tif 000056
【図３１】
0004837844.tif 000057
【図３２】
0004837844.tif 000058
【図３３】
0004837844.tif 000059
【図３４】
0004837844.tif 000060
【図３５】
0004837844.tif 000061