(57)【要約】【課題】協調シミュレーションにおいて、プラントモデルの更新タイミングと マイコンモデルの処理の開始タイミングのズレが安定せず、次のプラントモデルの更新タイミングまでにマイコンモデルの処理が完了しない現象が発生する。【解決手段】プラントモデルのシステムシミュレータと制御を行うマイコンのCPUシミュレータから構成され、一定間隔毎に両シミュレータ間でタイムスタンプ付きデータが交換され、システムシミュレータのデータ更新タイミングでCPUシミュレータのCPUに割り込みを発生させる機構を備えたシミュレーション装置。【選択図】  図１
2013084163.tif 000002
【特許請求の範囲】
【請求項１】
プラントモデルのシステムシミュレータとマイコンモデルによる制御を行うCPUシミュレータとがフィードバックループ構成された、協調シミュレーション装置であって、
前記システムシミュレータと前記CPUシミュレータとの間の同期をとる同期アダプタを備え、
前記同期アダプタは、前記プラントモデルの同期信号に基づき、前記マイコンモデルに制御周期毎の位置合わせ情報を与える機能を備えている
ことを特徴とする協調シミュレーション装置。
【請求項２】
請求項１において、
前記同期アダプタは、
一定間隔毎に前記両シミュレータ間でタイムスタンプ付きデータを交換し、
前記システムシミュレータのデータ更新タイミングで前記CPUシミュレータのCPUに割り込みを発生させる機能を備えている
ことを特徴とする協調シミュレーション装置。
【請求項３】
請求項２において、
前記同期アダプタは、
前記システムシミュレータにおいて、前記プラントモデルの同期信号をそのまま使用してパルス信号を発生する同期パルス発振器と、
前記CPUシミュレータに設けられた割り込み要求端子とを備え、
該発振器の信号を前記タイムスタンプ付きデータとする
ことを特徴とする協調シミュレーション装置。
【請求項４】
請求項１において、
前記両シミュレータ間のタイムスタンプ付きデータ交換の間隔Tiと、前記制御周期の間隔Tsと、前記制御周期に対応して実行する前記CPUシミュレータ上の処理時間Tpとの関係として、
前記Tsを前記Tiで割った商から1を引いた値に前記Tiを掛けた時間が、前記Tpよりも大きい
ことを特徴とする協調シミュレーション装置。
【請求項５】
請求項３において、
前記マイコンモデルにおいて、前記システムシミュレータのデータ更新タイミングに同期して、前記マイコンモデルに割り込みを発生させ、前記CPUシミュレータ上の処理時間の位相と、前記制御周期の位相とを一致させる
ことを特徴とする協調シミュレーション装置。
【請求項６】
請求項３において、
前記制御周期が複数ある場合、これに対応する数だけ、前記CPUシミュレータに前記割り込み要求端子を設け、前記両シミュレータ間を仮想的に接続する
ことを特徴とする協調シミュレーション装置。
【請求項７】
請求項１において、
前記同期アダプタは、
一定間隔毎に前記両シミュレータ間でタイムスタンプ付きデータを交換し、
前記制御周期に同期したタイマの割り込みルーチンから前記マイコンモデルの制御プログラムを起動する
ことを特徴とする協調シミュレーション装置。
【請求項８】
複数のシミュレータを連携動作させる協調シミュレーション方法であって、
前記複数のシミュレータは、プラントモデルのシステムシミュレータと、マイコンモデルによる制御を行うCPUシミュレータとがフィードバックループ構成された協調シミュレーション装置であり、
前記協調シミュレーション装置は、前記システムシミュレータと前記CPUシミュレータとの間の同期をとる同期アダプタを備えており、
前記システムシミュレータのデータ更新タイミングで、前記CPUシミュレータに制御周期毎の位置合わせ情報を与え、
前記位置合わせ情報に基づき、前記マイコンモデルに割り込みを発生させ、該マイコンモデルのプログラムを実行する
ことを特徴とする協調シミュレーション方法。
【請求項９】
請求項８において、
一定間隔毎に前記両シミュレータ間でタイムスタンプ付きデータを交換し、
前記システムシミュレータのデータ更新タイミングで前記CPUシミュレータのCPUに割り込みを発生させる
ことを特徴とする協調シミュレーション方法。
【請求項１０】
請求項８において、
一定間隔毎に前記両シミュレータ間でタイムスタンプ付きデータを交換し、
前記制御周期に同期したタイマの割り込みルーチンから前記マイコンモデルの制御プログラムを起動する
ことを特徴とする協調シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のシミュレータを連携して動作させる協調シミュレーション装置及び協調シミュレーション方法に係り、特に、自動車用電子機器、家庭用電子機器、医療用電子機器等の製品に搭載される組み込みシステムの開発に適した協調シミュレーションに関する。
【背景技術】
【０００２】
MATLAB(matrix laboratory＝登録商標)等のシステムシミュレータで設計された制御アルゴリズムを実際の製品に実装する場合、マイクロコントローラ(マイコン)で実現する場合が多い。そのため、制御アルゴリズムの検証をマイコンのバイナリコードで検証するためには、システムシミュレータとCPUシミュレータの二つのシミュレータを連携して動かす、協調シミュレーションが有効である。
【０００３】
このような協調シミュレーションの例が、特許文献１や特許文献２に開示されている。特許文献１には、「ソフトウェア自身で作り出しているタイマの変化をトリガとして各シミュレータを連携動作させることで、シミュレーション効率を低下させることなくシミュレーション精度を確保する」と記載されている。また、特許文献2には、イベント演算部77を備え、ＣＰＵシミュレータ部15と外部モデル実行部16は、シミュレーションエンジン部70からのイベントトリガが入力された時のみ、演算を実行する電子機器のシミュレーション装置１8が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１２８９８７号公報
【特許文献２】特開２００７−２３３６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
協調シミュレーションにおいて、制御アルゴリズムを製品に搭載した場合の動作状態を検証するために検証アルゴリズムを設計し、検証する場合、図９Ａに示すような、制御アルゴリズムのモデル（制御モデル）22とプラントモデル12とからなるフィードバックループ構成の協調シミュレーション装置が用いられる。プラントモデル12のデータは、システムシミュレータ上で離散化され、サンプリング周期(制御周期)毎に値が更新される。
【０００６】
図９Ｂに示すように、図９Ａの制御モデル22をCPUシミュレータ（マイコンモデル）32に置換して接続すると、シミュレーション時間に関して２つのシミュレータ間で同期はとれるが、CPUのプログラム上で実行されるサンプリング周期の処理の開始タイミングが、システムシミュレータの開始タイミングと一致する保証がない。
【０００７】
発明者の研究によれば、以下に述べるように、システムシミュレータで設計され実際の製品上ではうまく動作する制御アルゴリズムが、協調シミュレーションではうまく動作しないという事態の生ずることがある。
【０００８】
まず、図１０により、従来の協調シミュレーション装置におけるタイマ割り込み処理を説明する。CPUシミュレータ（マイコンモデル）32において、タイマがセットされ（Ｓ110）、タイマが起動され（Ｓ111）、タイマ割り込みの場合（Ｓ112＝Yes）にはデータ処理がなされ（Ｓ113）、タイマ割り込みをクリアして（Ｓ114）、次のタイマ起動を待つ。このようなタイマ割り込み処理では、サンプリング周期の処理の開始タイミングが、システムシミュレータの開始タイミングに対して遅れを生ずる可能性がある。
【０００９】
図１１は、従来方式の協調シミュレーション装置における、処理のパイプラインを示す図である。（1）はCPUシミュレータへの入力、（2）はCPUシミュレータにおける処理、（3）はCPUシミュレータからの出力を示している。210はCPUへの入力のデータ遷移、211はCPU入力の注目しているデータ、220はCPU処理のデータ遷移、221はCPU処理の注目しているデータ、230はCPU出力のデータ遷移、231はCPU出力の注目しているデータを示す。また、241〜245は、システムシミュレータデータ更新タイミングである。図１１のCPU処理のデータ遷移220に示すように、CPUの処理時間とその開始タイミングによっては、CPUの処理がデータ221のように、システムシミュレータの１サイクル内、換言すると次のサイクル243の開始時点までに完了せず、CPUの出力（230）のタイミングがデータ231のように１サイクル遅れる恐れがある。
【００１０】
すなわち、協調シミュレーションにおいて、プラントモデルの更新タイミングとマイコンモデルの処理の開始タイミングのズレが安定せず、次のプラントモデルの更新タイミングまでにマイコンモデルの処理が完了しない現象が発生する。この遅れの現象は、実機では再現せず、シミュレーション上でだけ顕在化する。すなわち、制御アルゴリズムのマイコンモデルによるシミュレーション結果が、実機上での制御アルゴリズムの動作とは異なる場合がある。換言すると、協調シミュレーションによる検証結果に対する信頼性が高くない。
【００１１】
特許文献１では、CPUのタイマ割り込みを検知して、システムシミュレータを歩進させる仕組みを備えているが、そのためには、CPUシミュレータの複数、例えば10個、のタイマの中から必要な１つのタイマを選び出し、割り込み制御のための制御線を引きだす必要があり、プログラムによって使用されるタイマが変わる可能性がある。また、システムシミュレータそのものを、CPUシミュレータからのトリガで歩進させる仕組みを組み込む必要があり、工数の増大や改変に伴うバグの作り込みが懸念される。
【００１２】
特許文献２では、イベント演算部77の出力により、ＣＰＵシミュレータ部15と外部モデル実行部16の双方にイベントトリガが入力され、演算が実行される。しかし、プラントモデルとマイコンモデルの双方に同期したタイミングを与えるためのイベント演算部77を、新たに設ける必要があると共に、外部モデル実行部16の動作がイベント演算部77の動作に影響されシミュレーションの精度が低下するという不具合もある。
【００１３】
本発明の目的は、協調シミュレーションにおけるプラントモデルの更新タイミングとマイコンモデルの処理の開始タイミングのズレを解消し、精度の高い協調シミュレーションを実現する、協調シミュレーション装置及び協調シミュレーション方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の代表的なものの一例を示すと、協調シミュレーション装置は、プラントモデルのシステムシミュレータとマイコンモデルによる制御を行うCPUシミュレータとがフィードバックループ構成された、協調シミュレーション装置であって、前記システムシミュレータと前記CPUシミュレータとの間の同期をとる同期アダプタを備え、前記同期アダプタは、前記プラントモデルの同期信号に基づき、前記CPUシミュレータに制御周期毎の位置合わせ情報を与える機能を備えていることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、両シミュレータ間に同期アダプタを追加するだけの簡便な構成で、システムシミュレータの制御周期に同期してCPUシミュレータへの入出力が行われるので、常に精度の高い協調シミュレーションが実現できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施例になる協調シミュレーション装置の構成図。
【図２Ａ】図１の協調シミュレーション装置における、プラントモデルのハード構成、及びその動作を説明する図。
【図２Ｂ】図１の協調シミュレーション装置における、プラントモデルのソフト構成、及びその動作を説明する図。
【図２Ｃ】本発明における、シミュレータ間の通信間隔Ti、サンプリング・制御周期Ts、及び、CPU処理時間Tpの関係を示す図。
【図３】比較例として、システムシミュレータ単体の制御モデルの処理のパイプラインを示す図。
【図４Ａ】図１の協調シミュレーション装置における、マイコンモデルの動作を説明する図。
【図４Ｂ】図１の協調シミュレーション装置における、同期アダプタによる割り込み処理を説明する図。
【図５】本発明における、同期アダプタ適用時の処理のパイプラインを示す図。
【図６】協調シミュレーションを、ハードディスク駆動装置（ＨＤＤ）の制御アルゴリズムの協調シミュレーション装置に適用し、MATLAB解析と協調シミュレーションの較正を行った例を示す図。
【図７】本発明の協調シミュレーションを、ＨＤＤの協調シミュレーション装置に適用した場合の、同期アダプタを採用した効果を、図６の方法で評価した結果を示す図である。
【図８】比較例として、ＨＤＤの協調シミュレーション装置において同期アダプタを採用しない場合について、図６の方法で評価した結果を示す図。
【図９Ａ】協調シミュレーションにおける、フィードバック制御のブロック図。
【図９Ｂ】協調シミュレーションにおける、CPUシミュレータ置換時のフィードバック制御のブロック図。
【図１０】従来の協調シミュレーション装置における、タイマ割り込み処理を説明する図。
【図１１】同期アダプタ未適用時の処理の遅延が発生した場合の、処理のパイプラインを示す図。
【発明を実施するための形態】
【００１７】
本発明は、上記課題を解決するための手段を複数含んでいるが、その一例を挙げるならば、「プラントモデルのシステムシミュレータと制御を行うCPUシミュレータから構成され、一定間隔で、シミュレータ間でタイムスタンプ付きデータが交換され、システムシミュレータのデータ更新タイミングでCPUに割り込みを発生させる機構を備えたこと」を特徴とする。  
以下、本発明の、協調シミュレーションを精度よく行う協調シミュレーション装置について、図面を参照しながら説明する。
【実施例１】
【００１８】
図１は、本実施例の協調シミュレーション装置１の構成例を示す図である。協調シミュレーション装置１は、システムシミュレータ10とCPUシミュレータ30とから構成される。２つのシミュレータは、各々独立にクロックシステムを生成するタイマを内蔵している。２つのシミュレータ間の入出力データは、設定したシミュレーション時間毎にタイムスタンプ付きデータとして交換される。システムシミュレータ10は、システムシミュレータエンジン11と、その上で実行されるプラントモデル12とで構成される。プラントモデル12は、クロックシステムに基づきシステムシミュレータデータ更新タイミングを与える同期信号が生成される。また、この同期信号をそのまま使用してパルス信号を発生する同期パルス発振器(Syn)13を備えている。同期パルス発振器13からの割り込み信号は、システムシミュレータの更新タイミングで発生する。CPUシミュレータ30は、CPUシミュレータエンジン31とその上で構成されるマイコンモデル32とマイコンモデル32上のROM34に内蔵されるプログラムとから構成される。
【００１９】
本発明では、同期パルス発振器(Syn)13と割り込み要求端子（ＩＲＱ）33を含み、システムシミュレータ10とCPUシミュレータ30との間の同期をとる構成を、同期アダプタと定義する。一定間隔毎に両シミュレータ間でタイムスタンプ付きデータが交換され、システムシミュレータ10のデータ更新タイミングで、CPUシミュレータ30のCPUに割り込みを発生させる。
【００２０】
同期アダプタにより、システムシミュレータ10からCPUシミュレータ30に、制御周期Ｓ毎の位置合わせ情報、例えば、位相の立ち上がりエッジの情報が供給される。このように、本発明では、制御周期Ｓに同期して、プラントモデル12のデータの更新タイミングに合せて信号を出力するために、プラントモデル12に発振器Syn13が設けられる。設置例としては、制御周期Ｓと同周期のパルス発振器を設置し、ディレイが0で振幅が1の立ち上がりエッジを開始として設定すればよい。なお、複数の制御周期のモデルがある場合、その制御周期の数だけパルス発振器(Syn)13をプラントモデル12に設置すればよい。
【００２１】
例えば、自動車のエンジン制御を例に挙げると、システムシミュレータ10のプラントモデルは、システム設計や実装設計（制御設計）に基づきMATLABで設計された比較的抽象度の高い制御アルゴリズムであり、システムシミュレータエンジン11は、上記制御設計に基づき、アクセル、ブレーキ等の操作情報やCPUシミュレータ30からの制御出力により制御され、システムシミュレータ10で生成されるエンジン回転数等の各種の情報が制御入力としてCPUシミュレータ30に入力される。CPUシミュレータ30では、ROM34に内蔵されるプログラム（制御アルゴリズム）が自動車のマイコンに搭載予定のエンジン制御用プログラムであり、CPUシミュレータエンジン31は自動車に搭載予定の制御用コンピュータと同じ機能を有するコンピュータである。このように、システムシミュレータ10とCPUシミュレータ30とは、抽象度が異なっている。このような協調シミュレーションを行うことにより、製品開発の早い段階から制御アルゴリズムの検証を行い、その課題を抽出し、プログラムを含む製品開発にフィードバックすることができる。たとえば、制御設計に基づくアルゴリズムの解析では、制御性能を評価できるものの、マイコン制御によるエンジンの応答特性等の実機への実装レベルでの正確な解析やマイコンの実装コスト等の詳細は不明である。一方、マイコン実装による解析では、バイナリコードによる詳細な解析が行える半面、システムモデルによる制御アルゴリズムの表現を早期に行うことはできない。これらの要求を満たし、組み込みシステムにおけるソフトウェアの開発とハードウエアの開発を並行して適切に推進するためには、協調シミュレーションに高い精度が求められる。
【００２２】
図２Ａにより、図１の協調シミュレーション装置における、プラントモデルのハード構成、及びその動作を説明する。プラントモデル40は、プラントモデル12と、同期パルス発振器(Syn)13と、モジュールとしてのＣＰＵ／ＳＹＮＣ41とを備えている。プラントモデル12は、クロックシステムに基づきシステムシミュレータデータ更新タイミング等を与える同期信号を生成する。この同期信号をそのまま使用して、同期パルス発振器(Syn)13はパルス信号を発生する。ＣＰＵ／ＳＹＮＣ41は、プラントモデル12の出力（ＣＰＵ）と同期パルス発振器13の出力（Ｓｙｃ）に基づき、プラントモデル12の同期信号ＳＹＮＣ及びタイムスタンプ付き位置合わせ情報（Ｔｃｐ）を出力する。
【００２３】
タイムスタンプは、OSなどのファイルシステムが、その操作が行われた日時をファイル属性として記録する日時・時刻の情報である。タイムスタンプ付きデータの一例を示すと次の通りである。
【００２４】
Ａ端子：0．37Ｖ（5400ns）
ここで、5400nsは、システムシミュレータ10におけるシミュレーションの開始からの時間を示している。
【００２５】
図２Ｂにより、図１の協調シミュレーション装置における、プラントモデルのソフト構成、及びその動作を説明する。プラントモデル40において、ユーザーにより、パルス発振器モデル43のプロパティとして、システムシミュレータやマイコンモデルの制御周期Ｓと同じ値が設定される。また、ユーザーにより、システムシミュレータ10からCPUシミュレータ30のＩＲＱ端子迄の接続コード45が記述される。
【００２６】
これにより、Syn13からの信号はIRQ（割り込み受付端子）33に仮想的に接続され、システムシミュレータ10とCPUシミュレータ30の間で交換されるデータの一部として伝達される。
【００２７】
図２Ｃは、本発明における、２つのシミュレータ間の通信間隔Ti、サンプリング・制御周期Ts、及び、CPU処理時間Tpの関係を示す図である。Tiと、Tsと、Tpは、次式（1）を満たす必要がある。通信間隔Tiは、制御周期Tsの1／10程度、例えば2μＳ程度である。
【００２８】
((int)(Tp/Ti)−1)*Ti＞Tc      （1）
図３に、比較例として、システムシミュレータ10単体の、制御モデルの処理のパイプラインを示す。縦のライン141〜245は、制御サイクルの更新タイミングを示している。また、110は制御への入力のデータ遷移、111は制御入力の注目しているデータ、120は制御処理のデータ遷移、121は制御処理の注目しているデータ、130は制御モデルから出力するデータ遷移、131は制御出力の注目しているデータを、各々示している。また、141〜145は、システムシミュレータデータ更新タイミングを示している。図３の比較例では、システムシミュレータ10において、制御モデルへの入力110、制御モデルでの処理120、制御モデルからの出力130と、パイプライン的に処理がなされている。換言すると、システムシミュレータ10内で、更新タイミングに同期して、遅延のない処理がなされる。
【００２９】
図４Ａで、図１の協調シミュレーション装置における、CPUシミュレータ30のマイコンモデル32の動作を説明する。図４Ａは、サンプリング・制御周期Tsに対する、CPU処理時間Tpの位相関係を示している。システムシミュレータ10及びCPUシミュレータ30は各々独立したクロックシステムを有しているので、CPU処理時間Tpの位相とサンプリング・制御周期Tsの位相は、通常、ずれている。換言すると、TsとTpの立ち上がりエッジの位相は独立に制御され、両者のタイミングは一致しない場合が多い。
【００３０】
図４Ｂは、図１の協調シミュレーション装置における、同期アダプタによる割り込み処理を説明する図である。
【００３１】
IRQ33がセットされた状態（Ｓ40）で、システムシミュレータデータ更新タイミングに同期したIRQすなわち立ち上がりエッジを検出すると（Ｓ41）、マイコンモデル32に割り込みが発生し、プログラム実行され、タイムスタンプ付きデータに対応する処理がなされる（Ｓ42）。例えば、マイコンモデル32で、シミュレーション開始から5400nsの時間において、Ａ端子の電圧を0．37Ｖにする処理がなされる。処理終了後、IRQがクリアされ（Ｓ43）、次のIRQの検出待ちとなる。
【００３２】
これにより、CPU処理時間Tpの位相はサンプリング・制御周期Tsの位相と常に一致し、遅延のない処理が実行される。
【００３３】
本発明では、同期アダプタを採用し、プラントモデルの更新タイミングに同期するパルス信号を発生するパルス信号発生器と、マイコンモデルでそのパルスを受け付けて、割り込みを発生し、両シミュレータ間の同期をとる構成としたことで、従来の装置における処理の遅延231が抑制される。また、プラントモデルの同期信号をそのまま使用してパルス信号を発生するので、構成が簡単であり、かつ、プラントモデルやマイコンモデルの動作に何ら支障きたすこともない。
【００３４】
図５は、本発明における、同期アダプタ適用時の処理のパイプラインを示す図である。図５において、プラントモデル12から出力（マイコンモデルの入力）データの時間列（CPUへの入力のデータ遷移）を310、マイコンモデル32で処理の時間列（CPU処理のデータ遷移）を320、マイコンモデル32からプラントモデル12への制御データの時間列（CPU出力のデータ遷移）を330で示している。311はCPU入力の注目しているデータ、321はCPU処理の注目しているデータ、331はCPU出力の注目しているデータである。また、310から330を貫く下方向の矢印の線341〜345は、システムシミュレータの更新タイミングを示している。
【００３５】
図５において、注目するデータ321にハッチング(斜線)を掛けている。システムシミュレータデータ更新タイミング342でSyn13からの割り込み信号がマイコンモデル32のIRQ33に入力され、制御処理プログラムが起動し、制御データの時間列320で注目するCPU入力311についてCPU入力の読み込み処理を行い、CPU処理がなされる。CPUの実質処理時間をクロスの斜線321で示している。マイコンモデル32はシステムシミュレータの更新タイミング342で割り込みを受け、処理が開始されるので、次の更新タイミング343までに、注目しているデータ321の処理が終了し、制御データの時間列330でCPU出力331が整っている。これにより、システムシミュレータのみで実現される、図３のシステムシミュレータ10単体の場合のタイミングと同じく、遅延のない検証が実現できる。
【００３６】
なお、図１１に示すような遅延が常に発生しないためには、両シミュレータ間のタイムスタンプ付きデータ交換の間隔Tiと、制御周期の間隔Tsと、制御周期に対応して実行するCPUシミュレータ上の処理時間Tpとの関係として、TsをTiで割った商から1を引いた値にTiを掛けた時間が、Tpよりも大きい、ことが必要である。すなわち、次式（1）の関係を満たす必要がある。
((int)(Tp/Ti)−1)*Ti＞Tc        （1）
図４Ａの例では、Ti＝1、Tp＝10、Tc＝8として、（10−1）*1＞8の関係が成り立つ。
【００３７】
逆に言えば、式（1）を満たす限り、シミュレータ間の通信間隔を長くすることができ、シミュレータの実行時間を短縮することができる。
【００３８】
図６は、本発明の協調シミュレーションを、ハードディスク駆動装置（ＨＤＤ）の制御アルゴリズムの協調シミュレーション装置に適用し、MATLAB解析と協調シミュレーションの較正を行った例を示す図である。具体的な制御対象は、ハードディスク駆動装置のヘッドがディスクの同じトラックを追跡するように、サーボ制御するヘッド位置決めサーボ制御機構である。システムシミュレータ10は、プラントモデルとしてＰＩＤ制御を行うＨＤＤ制御アルゴリズムとMATLAB解析を組み合わせたものであり、CPUシミュレータ30は、ＨＤＤ制御アルゴリズムからコンパイルされたバイナリファイルとMATLAB解析を組み合わせたものである。較正のために、両シミュレータの出力のログ比較し、パルス応答に基づく制御出力値の評価を行った。
【００３９】
図７は、本発明の協調シミュレーションを、ＨＤＤの協調シミュレーション装置に適用した場合の、同期アダプタを採用した効果を、図６の方法で評価した結果を示す図である。換言すると、本発明の協調シミュレーションを、図６の方法で評価したものである。縦軸は制御出力、横軸はＰＩＤ制御ブロックのパルス応答を示している。同期アダプタを採用したことにより、制御アルゴリズム（MATLAB）とマイコンモデル（協調シミュレーション）の波形が完全に一致しており、精度の高い協調シミュレーションが実現できる。
【００４０】
図８は、比較例として、ＨＤＤの協調シミュレーション装置において同期アダプタを採用しない場合について、図６の方法で評価した結果を示す図である。この場合には、制御アルゴリズムに対して協調シミュレーション側に遅れがみられる。すなわち、協調シミュレーション側に、1〜2サンプリング周期（20μｓ〜40μｓ）の遅れを生じ、協調シミュレーションの精度が低下している。
【００４１】
このように、本実施例によれば両シミュレータ間に同期アダプタの機能を追加するだけの簡便な構成で、システムシミュレータの１サイクル（1制御周期Ts）内にCPUシミュレータへの入出力が行われるので、常に精度の高い協調シミュレーションが実現できる。さらに、同期アダプタはプラントモデルの同期信号をそのまま使用するので、プラントモデルの制御アルゴリズムにも何ら影響を及ぼさず、また、システムシミュレータの歩進方法を変更する必要もなく、簡便な構成で実現できる。
【実施例２】
【００４２】
実施例１では主に制御周期が１つの例を示したが、前記のとおり、制御周期が異なる複数の値を持つ場合、対応するIRQ33にも端子を制御周期の数だけ設けて、両シミュレータ間を仮想的に接続すればよい。例えば、制御周期として、20μｓ、10ｍｓ、1ｓ、10ｓ等の異なる複数の周期が用いられる場合がある。この場合、CPUシミュレータ30はシミュレーション上のマイコンモデルなので、制御周期の数に応じてマイコンモデルのコードを書き換えるだけでIRQ端子の増設ができる。
【００４３】
また、実施例１では、IRQ33の割り込みによりマイコンモデルの制御プログラムを実行したが、タイマの値をリミット−1に設定し、タイマの割り込みルーチンからマイコンモデルの制御プログラムを起動するようにしてもよい。また、この場合、マイコンモデルが数制御サイクル毎に、Syn13からのパルスを受け付けるようにしてもよい。
【００４４】
本実施例によれば、このように、本実施例によれば両シミュレータ間に同期アダプタの機能を追加するだけの簡便な構成で、システムシミュレータの制御周期に同期してCPUシミュレータへの入出力が行われるので、常に精度の高い協調シミュレーションが実現できる。さらに、同期アダプタはプラントモデルの同期信号をそのまま使用するので、プラントモデルの制御アルゴリズムにも何ら影響を及ぼさず、また、システムシミュレータの歩進方法を変更する必要もなく、簡便な構成で実現できる。
【符号の説明】
【００４５】
1  協調シミュレータ
10  システムシミュレータ
11  システムシミュレータエンジン
12  プラントモデル
13  同期パルス発振器
20  システムシミュレータ上の制御モデル
22  制御モデル
30  CPUシミュレータ
31  CPUシミュレータエンジン
32  マイコンモデル
33  割り込み要求端子
34  ROM
110  制御への入力のデータ遷移
111  制御入力の注目しているデータ
120  制御処理のデータ遷移
121  制御処理の注目しているデータ
130  制御モデルから出力するデータ遷移
131  制御出力の注目しているデータ
141〜145  システムシミュレータデータ更新タイミング
210  CPUへの入力のデータ遷移
211  CPU入力の注目しているデータ
220  CPU処理のデータ遷移
221  CPU処理の注目しているデータ
230  CPU出力のデータ遷移
231  CPU出力の注目しているデータ
241〜245  システムシミュレータデータ更新タイミング
310  CPUへの入力のデータ遷移
311  CPU入力の注目しているデータ
320  CPU処理のデータ遷移
321  CPU処理の注目しているデータ
330  CPU出力のデータ遷移
331  CPU出力の注目しているデータ
341〜345  システムシミュレータデータ更新タイミング。
【図１】
2013084163.tif 000003
【図２Ａ】
2013084163.tif 000004
【図２Ｂ】
2013084163.tif 000005
【図２Ｃ】
2013084163.tif 000006
【図３】
2013084163.tif 000007
【図４Ａ】
2013084163.tif 000008
【図４Ｂ】
2013084163.tif 000009
【図５】
2013084163.tif 000010
【図６】
2013084163.tif 000011
【図７】
2013084163.tif 000012
【図８】
2013084163.tif 000013
【図９Ａ】
2013084163.tif 000014
【図９Ｂ】
2013084163.tif 000015
【図１０】
2013084163.tif 000016
【図１１】
2013084163.tif 000017