(57)【要約】      （修正有）【課題】シミュレーション、コード実行及び検査の効率を改善する。【解決手段】異なるサンプル時間で動作するブロックを別々のサブシステムに分離する為のモデル変換装置であって、モデルファイルを入力し、記述されたモデルの構造を一意に決定するモデル情報を生成するファイル入力部と、モデル情報を記憶するモデル情報記憶部と、モデル情報を読み出し、モデル変換の対象とすべきサブシステムを指定するサブシステム選択情報を作成するサブシステム選択部と、サブシステム選択情報を記憶するサブシステム選択情報記憶部と、指定されるサブシステムに対して、異なるサンプル時間で動作するブロックを別々のサブシステムに分離するようにモデル情報を変更するブロック分離部と、分離されたブロック間を再結線するようにモデル情報を変更する再結線部と、変更後のモデル情報を変換後のモデルファイルとして出力するファイル出力部とを備える。【選択図】図２
2015007931.tif 000002
【特許請求の範囲】
【請求項１】
異なるサンプル時間で動作するブロックを別々のサブシステムに分離する為のモデル変換装置であって、
モデルファイルを入力し、該モデルファイルに記述されたモデルの構造を一意に決定するモデル情報を生成するファイル入力部と、
前記モデル情報を記憶するモデル情報記憶部と、
前記モデル情報記憶部からモデル情報を読み出し、モデル変換の対象とすべきサブシステムを指定するサブシステム選択情報を作成するサブシステム選択部と、
前記サブシステム選択情報を記憶するサブシステム選択情報記憶部と、
前記サブシステム選択情報で指定されるサブシステムに対して、異なるサンプル時間で動作するブロックを別々のサブシステムに分離するように前記モデル情報を変更するブロック分離部と、
前記ブロック分離部により分離されたブロック間を再結線するように前記モデル情報を変更する再結線部と、
変更後の前記モデル情報を変換後のモデルファイルとして出力するファイル出力部とを備えることを特徴とするモデル変換装置。
【請求項２】
請求項１に記載のモデル変換装置であって、
前記モデル情報は、ブロック情報、結線情報、システム情報を含むことを特徴とするモデル変換装置。
【請求項３】
請求項１乃至請求項２に記載のモデル変換装置であって、
モデル内のブロックに対して、該ブロックに結線されたブロックのサンプル時間にしたがって、該ブロックのサンプル時間を修正するサンプル時間修正部をさらに備えることを特徴とするモデル変換装置。
【請求項４】
請求項１乃至請求項３に記載のモデル変換装置であって、
モデル変換を行った後に、変換後のモデルからソースコードの自動生成を行うことを特徴とするモデル変換装置。
【請求項５】
異なるサンプル時間で動作するブロックを別々のサブシステムに分離する為のモデル変換方法であって、
モデルファイルを入力し、該モデルファイルに記述されたモデルの構造を一意に決定するモデル情報を生成するファイル入力ステップと、
前記モデル情報を読み出し、モデル変換の対象とすべきサブシステムを指定するサブシステム選択情報を作成するサブシステム選択ステップと、
前記サブシステム選択情報で指定されるサブシステムに対して、異なるサンプル時間で動作するブロックを別々のサブシステムに分離するように前記モデル情報を変更するブロック分離ステップと、
前記ブロック分離ステップにより分離されたブロック間を再結線するように前記モデル情報を変更する再結線ステップと、
変更後の前記モデル情報を変換後のモデルファイルとして出力するファイル出力ステップとを有することを特徴とするモデル変換方法。
【請求項６】
請求項５に記載のモデル変換方法であって、
前記モデル情報は、ブロック情報、結線情報、システム情報を含むことを特徴とするモデル変換方法。
【請求項７】
請求項５乃至請求項６に記載のモデル変換方法であって、
モデル内のブロックに対して、該ブロックに結線されたブロックのサンプル時間にしたがって、該ブロックのサンプル時間を修正するサンプル時間修正ステップをさらに有することを特徴とするモデル変換方法。
【請求項８】
請求項５乃至請求項７に記載のモデル変換方法であって、
モデル変換を行った後に、変換後のモデルからソースコードの自動生成を行うことを特徴とするモデル変換方法。
【請求項９】
異なるサンプル時間で動作するブロックを別々のサブシステムに分離する為にコンピュータを、
モデルファイルを入力し、該モデルファイルに記述されたモデルの構造を一意に決定するモデル情報を生成するファイル入力部と、
前記モデル情報を記憶するモデル情報記憶部と、
前記モデル情報記憶部からモデル情報を読み出し、モデル変換の対象とすべきサブシステムを指定するサブシステム選択情報を作成するサブシステム選択部と、
前記サブシステム選択情報を記憶するサブシステム選択情報記憶部と、
前記サブシステム選択情報で指定されるサブシステムに対して、異なるサンプル時間で動作するブロックを別々のサブシステムに分離するように前記モデル情報を変更するブロック分離部と、
前記ブロック分離部により分離されたブロック間を再結線するように前記モデル情報を変更する再結線部と、
変更後の前記モデル情報を変換後のモデルファイルとして出力するファイル出力部として機能させることを特徴とするモデル変換プログラム。
【請求項１０】
請求項９に記載のモデル変換プログラムであって、
前記モデル情報は、ブロック情報、結線情報、システム情報を含むことを特徴とするモデル変換プログラム。
【請求項１１】
請求項９乃至請求項１０に記載のモデル変換プログラムであって、
コンピュータを、モデル内のブロックに対して、該ブロックに結線されたブロックのサンプル時間にしたがって、該ブロックのサンプル時間を修正するサンプル時間修正部として、さらに動作させることを特徴とするモデル変換プログラム。
【請求項１２】
請求項９乃至請求項１１に記載のモデル変換プログラムであって、
モデル変換を行った後に、変換後のモデルからソースコードの自動生成を行うことを特徴とするモデル変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの動作を模擬するモデルの構造を変更するモデル変換装置、方法及びプログラムに関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２００５−３３２３３３号公報（特許文献１）がある。この公報には、課題として「モデルベース開発環境において、モデルから生成されるソースコードの関数の複雑度のばらつきを低減する。」と記載されており、その解決手段として、「パーソナルコンピュータ１が、指定されたモデルから、結線によって連なったブロック群をグループ化候補部分として記憶媒体から読み出し（ステップ１０５）、その読み出したグループ化候補部分の複雑度を、ブロック群の種類、ブロック群の結線による接続関係に基づいて累積的に算出する（ステップ１１０）。そして、算出した複雑度が所定の複雑度基準範囲内にある場合（ステップ１１５、１３０）、当該ブロックが新たに含められた後のグループ化候補部分をサブシステム化する（ステップ１３５）。そして、サブシステムを１つの関数とするＣソースコードを生成する。」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３３２３３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
システム開発では、上流工程において、システムの全体または一部の動作を模擬するモデルを記述し、シミュレーションを行うモデルベース開発が普及しつつある。モデルベース開発では、開発工数削減と信頼性向上を目的として、モデルからのプログラム・ソースコードの自動生成も行われている。
【０００５】
モデルを記述する形式には、ＵＭＬ等、様々な形式があるが、特に、制御システムの挙動を数理的に模擬する用途には、基本的な機能を持つ構成要素であるブロックを組み合わせ、ブロック間の入出力データの流れを表す線で結ぶブロック線図が用いられることが多い。
【０００６】
ブロック線図では、複雑なモデルを把握しやすくする為、関連するブロック群をグループ化したブロックであるサブシステムにより階層構造として表現することができる。このとき、ブロック線図モデルから自動生成されるプログラム・ソースコードの関数は、サブシステム単位で生成される。
【０００７】
サブシステムをどのように構成するかは、シミュレーション効率や、モデルから生成したプログラムの実行効率と試験効率に影響を与える。前記特許文献１で述べられているサブシステムの複雑度のほかに、サンプル時間の異なるブロックを含まないようにすることも重要である。サンプル時間とは、ブロックを実行する周期とオフセット時間である。
【０００８】
例えば、空調機の制御システムでは、プラントの時定数が非常に大きい為、モデル上のコントローラとプラントとでは、適切な動作周期に、大きな差がある。すなわち、センサやアクチュエータ等は、データの変化速度が小さい為、秒単位の周期で動作させるのが望ましいが、マイコン・プログラムをベースとしたコントローラは、ミリ秒単位で動作させる必要がある。これらを同一サブシステムに含めると、コントローラだけでなく、センサやアクチュエータもミリ秒単位で動作させることになり、シミュレーション効率が大きく低下する問題がある。また、モデルから生成したプログラムの実行効率と試験効率も同様に低下する。
【０００９】
そこで、本発明は、異なるサンプル時間で動作するブロックを別々のサブシステムに分けることにより、シミュレーション、コード実行及び検査の効率を改善できるモデル変換装置、方法及びプログラムを提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【００１１】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、
異なるサンプル時間で動作するブロックを別々のサブシステムに分離する為のモデル変換装置であって、モデルファイルを入力し、該モデルファイルに記述されたモデルの構造を一意に決定するモデル情報を生成するファイル入力部と、前記モデル情報を記憶するモデル情報記憶部と、前記モデル情報記憶部からモデル情報を読み出し、モデル変換の対象とすべきサブシステムを指定するサブシステム選択情報を作成するサブシステム選択部と、
前記サブシステム選択情報を記憶するサブシステム選択情報記憶部と、前記サブシステム選択情報で指定されるサブシステムに対して、異なるサンプル時間で動作するブロックを別々のサブシステムに分離するように前記モデル情報を変更するブロック分離部と、
前記ブロック分離部により分離されたブロック間を再結線するように前記モデル情報を変更する再結線部と、変更後の前記モデル情報を変換後のモデルファイルとして出力するファイル出力部とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、異なるサンプル時間で動作するブロックを別々のサブシステムに分割することにより、シミュレーション、コード実行及び検査の効率を改善できるモデル変換装置、方法及びプログラムを提供することができる。
【００１３】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１４】
【図１】モデル変換装置１の構成図の例である。
【図２】モデル変換装置１の機能ブロック図の例である。
【図３】モデル変換プログラム１００による中央演算処理装置の処理を説明するフローチャートの例である。
【図４】サブシステム選択部１０２の処理を説明するフローチャートの例である。
【図５】ブロック分離部の処理１０３を説明するフローチャートの例である。
【図６】再結線部１０４の処理を説明するフローチャートの例である。
【図７】異なるサンプル時間のブロックを含むブロック線図モデルの例である。
【図８】モデルファイルの記述例である。
【図９】モデルファイルにおけるブロックの記述例である。
【図１０】モデルファイルにおけるサブシステムの記述例である。
【図１１】モデルファイルにおける結線の記述例である。
【図１２】モデル情報１１３の例である。
【図１３】変換後のモデル情報１１３の例である。
【図１４】変換後のブロック線図モデルの例である。
【図１５】モデル変換装置２の構成図の例である。
【図１６】モデル変換装置２の機能ブロック図の例である。
【図１７】モデル変換プログラム２００による中央演算処理装置の処理を説明するフローチャートの例である。
【図１８】サンプル時間修正部１０６の処理を説明するフローチャートの例である。
【図１９】サンプル時間修正確認画面の例である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例を、図面を用いて説明する。
【実施例１】
【００１６】
本実施例では、異なるサンプル時間で動作するブロックを別々のサブシステムに分割するモデル変換装置の例を説明する。
【００１７】
図７は、異なるサンプル時間のブロックを含むサブシステムを有するモデルの簡単な例を示す図である。
【００１８】
モデルＭは、ブロックＢＩ、サブシステムブロックＳ１、ブロックＢＯの３つのブロックを有しており、これらは、２つの結線ＬＩ，ＬＯによって各々接続されている。ブロックＢＩの動作周期はＴ１、ブロックＢＯの動作周期はＴ２であり、Ｔ１とＴ２は異なっている。
【００１９】
さらに、サブシステムブロックＳ１は、入力ポートブロックＩ，ブロックＢ１，レート遷移ブロックＲＴ、ブロックＢ２，出力ポートブロックＯを有しており、これらは、４つの結線Ｌ１，Ｌ２，Ｌ３，Ｌ４によって各々接続されている。モデルＭ内の結線ＬＩからの信号は、入力ポートブロックＩから入力され、モデルＭ内の結線ＬＯへの信号は、出力ポートブロックＯから出力される。入力ポートブロックＩとブロックＢ１の動作周期はＴ１、ブロックＢ２と出力ポートブロックＯの動作周期はＴ２であり、異なっている。この為、ブロックＢ１とブロックＢ２の間にレート遷移ブロックＲＴが接続されている。レート遷移ブロックは、異なる動作周期のブロックを接続する為のブロックであり、信号の０次ホールド等の処理が行われる。
【実施例２】
【００２０】
実施例１では、モデルのサンプル時間の設定が不適切である場合を考慮していない。例えば、あるブロックについて接続元ブロックと接続先ブロックのサンプル時間が等しいが、自ブロックのみサンプル時間が異なっている場合、自ブロックのサンプル時間の設定が誤っていることが推測され、これらのブロックは、別々のサブシステムに分離しない方が好ましいと考えられる。しかし、実施例１では、この場合にも、異なるサンプル時間のブロックを別々のサブシステムに分割してしまう問題がある。
【００２１】
本実施例では、このような不適切なサンプル時間の設定について、モデル変換処理の前に修正処理を行うことのできるモデル変換装置の例を説明する。
【００２２】
なお、本実施例におけるモデル変換装置２を説明する図１５から図１８において、実施例１のモデル変換装置１と重複する部分については、同一の符号を付し、説明を省略する。
【００２３】
図１５は、本実施例におけるモデル変換装置２の構成図の例である。
【００２４】
モデル変換装置２は、図１におけるモデル変換プログラム１００の代わりにモデル変換プログラム２００を有する点で、実施例１のモデル変換装置１と異なっている。
【００２５】
図１６は、モデル変換装置２の機能を示すブロック図の例である。
【００２６】
中央演算処理装置１１が、モデル変換プログラム２００にしたがって動作することによって、ファイル入力部１０１とサブシステム選択部１０２の間に、サンプル時間修正部１０６が機能する点が、実施例１と異なっている。また、修正確認情報２１は、モデル変換装置１へ入力装置１４を介してユーザにより入力されるデータであり、モデル変換装置２により不適切なサンプル時間を修正するかどうかを指定する情報である。
【００２７】
図１７は、モデル変換装置２の処理を説明するフローチャートの一例である。
【００２８】
ステップＳ０１とステップＳ０２の間に、ステップＳ０６の処理を実行する点で、実施例１と異なっている。
【００２９】
ステップＳ０６において、中央演算処理装置１１は、サンプル時間修正部１０６として動作する。中央演算処理装置１１は、主記憶装置１２からモデル情報１１３を読み込み、ブロック情報１１４の各レコードのうち、不適切なサンプル時間の修正を行う。
【００３０】
図１８は、ステップＳ０６におけるサンプル時間修正処理の詳細を説明するフローチャートの一例である。
【００３１】
ステップＳ４１において、中央演算処理装置１１は、ブロック情報１１４の各レコードを順次読み込む。
【００３２】
ステップＳ４２において、中央演算処理装置１１は、ステップＳ４１で読み込んだブロックを接続元及び接続先とする結線情報レコードを、結線情報１１５から検索し、さらにその接続元及び接続先のブロック情報レコードをブロック情報１１４から検索し、読み込む。接続元及び接続先のブロックタイプがレート遷移である場合には、同様にその接続元または接続先のブロック情報レコードをブロック情報１１４から検索し、読み込む。
【００３３】
ステップＳ４３において、ステップＳ４２で読み込んだ接続元及び接続先ブロック情報レコードのサンプル時間を参照し、接続元及び接続先ブロックのサンプル時間が等しく、かつ現在のブロックのサンプル時間と異なる場合に、現在のブロックのサンプル時間を修正候補と判断し、ステップＳ４４に進み、それ以外の場合、ステップＳ４６に進む。
【００３４】
ステップＳ４４において、中央演算処理装置１１は、修正確認情報２１を読み込み、ステップＳ４３で修正候補としたブロックのサンプル時間を修正するかどうかを決定する。修正する場合は、ステップＳ４５に進み、修正しない場合には、ステップＳ４６に進む。
【００３５】
なお、ステップＳ４４では、図１９に示すような確認画面を、出力装置１５より出力してもよい。
【００３６】
ステップＳ４５において、中央演算処理装置１１は、現在のブロックのサンプル時間を接続元及び接続先ブロックのサンプル時間に変更する。
【００３７】
ステップＳ４６において、中央演算処理装置１１は、ステップＳ４１からステップＳ４５までの処理が、ブロック情報１１４の全てのレコードに対して完了したかどうか判定し、完了している場合には終了し、完了していない場合には、ステップＳ４１に戻り、未処理のレコードについて、ステップＳ４１からステップＳ４５までの処理を繰り返す。
【００３８】
以上により、各ブロックの不適切なサンプル時間が、修正され、モデル情報１１３が変更される。
【００３９】
以上のように、本実施例のモデル変換装置２によれば、ブロックの不適切なサンプル時間設定について、モデル変換処理の前に修正処理を行うので、実施例１のモデル変換装置１に比べ、シミュレーション、コード実行及び検査の効率を改善することができる。
【００４０】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００４１】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００４２】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【００４３】
以下の説明では、適宜、上記のモデルＭを用いて説明する。
【００４４】
図１は、本実施例のモデル変換装置１の構成図の例である。
【００４５】
モデル変換装置１は、コンピュータであり、中央演算処理装置１１、主記憶装置１２、補助記憶装置１３、入力装置１４、出力装置１５を有している。中央演算処理装置１１、主記憶装置１２、補助記憶装置１３、入力装置１４、出力装置１５は、バス１６に接続されており、中央演算処理装置１１の制御により相互にデータの転送を行うことができる。
【００４６】
中央演算処理装置１１は、主記憶装置１２に記憶されたモデル変換プログラム１００にしたがって、モデル変換装置１の各構成要素の制御処理と演算処理を実行する。
【００４７】
補助記憶装置１３は、Ｓｉｍｕｌｉｎｋ（登録商標）等のモデルベース開発環境を用いて予め作成されたモデルファイル１１１及び変換後のモデルファイル１１２を記憶する。
【００４８】
モデルファイルは、モデルの構造、すなわちモデルを構成するブロックの情報と各ブロックを接続する結線の情報と、その他の付随する情報を記述するファイルである。
【００４９】
図８は、モデルファイルの一例を示す図である。
【００５０】
図中の“Ｎａｍｅ”は、モデルの識別子を表している。“Ｓｙｓｔｅｍ”は、モデルの構造を表しており、その中に“Ｂｌｏｃｋ”で表されるブロックの記述と“Ｌｉｎｅ”で表される結線の記述を含んでいる。これらの情報により、モデルの構造を決定することができる。また、モデルファイルは、その他の付随する情報を含み得る。
【００５１】
図９は、ブロックの記述例を示す図である。
【００５２】
図中の“ＢｌｏｃｋＴｙｐｅ”は、ブロックの種類を表している。“ＳａｍｐｌｅＴｉｍｅ”は、サンプル時間を表している。サンプル時間は、シミュレータが、ブロック実行タイミングをスケジューリングするのに使用する。また、ブロックは、その他の付随する情報を含み得る。
【００５３】
図１０は、サブシステムの記述例を示す図である。
【００５４】
サブシステムは、“ＢｌｏｃｋＴｙｐｅ”が“ＳｕｂＳｙｓｔｅｍ”のブロックである。サブシステムは、一般的なブロックと異なり、モデルの記述と同様の“Ｓｙｓｔｅｍ”を有している。これにより、モデルの構造を階層的に記述することが可能である。
【００５５】
図１１は、結線の記述例を示す図である。
【００５６】
図中の“ＳｒｃＢｌｏｃｋ”及び“ＳｒｃＰｏｒｔ”は、各々、接続元ブロックの識別子と接続するポート番号を表している。“ＤｓｔＢｌｏｃｋ”及び“ＤｓｔＰｏｒｔ”は、各々、接続先ブロックの識別子と接続するポート番号を表している。これらによりブロック間の接続関係が定まる。また、結線は、その他の付随する情報を含み得る。
【００５７】
以上のモデルファイル記述例では、独自のテキストファイル形式をとっているが、上述の必要な情報を一意に識別できればよく、例えばＸＭＬ等の汎用的な形式を用いてもよいし、バイナリ形式であってもかまわない。
【００５８】
図２は、モデル変換装置１の機能を示すブロック図の例である。
【００５９】
モデル選択情報２０は、モデル変換装置１へ入力装置１４を介してユーザにより入力されるデータであり、モデル変換装置１により変換される対象となるモデルファイルを指定する情報である。
【００６０】
中央演算処理装置１１が、モデル変換プログラム１００にしたがって動作することによって、ファイル入力部１０１、サブシステム選択部１０２、ブロック分離部１０３、再結線部１０４、ファイル出力部１０５として機能する。モデル情報１１３は、モデルの構造を決定する情報であり、ブロック情報１１４、結線情報１１５、システム情報１１６を有している。モデル情報１１３は、主記憶装置１２に記憶され、モデル変換プログラム１００に基づいて中央演算処理装置１１により書込み制御、または読出し制御が行われる。
【００６１】
図３は、中央演算処理装置１１が、モデル変換プログラム１００にしたがって動作することによって実現するモデル変換装置１の処理を説明するフローチャートの一例である。
【００６２】
ステップＳ０１において、入力装置１４は、ユーザからのモデル選択情報２０を受け付け、該当するモデルファイル１１１を補助記憶装置１３から読込、モデル情報１１３として主記憶装置１２に記憶する。
【００６３】
図１２（ａ）、図１２（ｂ）、図１２（ｃ）は、図７のモデルＭに対応するモデル情報１１３の例を示す図である。
【００６４】
図１２（ａ）は、モデルＭに対応するブロック情報１１４であり、モデルＭ内に含まれるブロック毎に識別子、親システム、ブロックタイプ、サンプル時間により構成されるレコードを記憶している。
【００６５】
図１２（ｂ）は、モデルＭに対応する結線情報１１５であり、モデルＭ内に含まれる結線毎に識別子、接続元ブロック、接続元ポート、接続先ブロック、接続先ポートにより構成されるレコードを記憶している。
【００６６】
図１２（ｃ）は、モデルＭに対応するシステム情報１１６であり、モデルＭ自体と、モデルＭ内に含まれるサブシステム毎に識別子、サンプル時間、ブロックリスト、結線リストにより構成されるレコードを記憶している。
【００６７】
なお、モデル情報１１３の記憶形態は、モデルの構造を一意に決定可能であればよく、本実施例の形態に限定されるものではない。また、上記以外の情報を含んでいてもよい。
【００６８】
ステップＳ０２において、中央演算処理装置１１は、サブシステム選択部１０２として動作する。
【００６９】
中央演算処理装置１１は、主記憶装置１２からモデル情報１１３を読み出し、モデル内のサブシステムのうち、異なるサンプル時間のブロックを持つサブシステムを選択し、サブシステム選択情報１１７として、主記憶装置１２に記憶する。
【００７０】
ステップＳ０３において、中央演算処理装置１１は、ブロック分離部１０３として動作する。
【００７１】
中央演算処理装置１１は、主記憶装置１２からモデル情報１１３とサブシステム選択情報１１７を読み出し、サブシステム選択情報１１７の各サブシステムに含まれるブロックのうち、サンプル時間の異なるブロックを別々のサブシステムに分離するように、モデル情報１１３を変更する。
【００７２】
ステップＳ０４において、中央演算処理装置１１は、再結線部１０４として動作する。
【００７３】
中央演算処理装置１１は、主記憶装置１２からモデル情報１１３を読み出し、モデル内の結線が、ブロック間を正しく接続するように、モデル情報１１３を変更する。
【００７４】
ステップＳ０５において、中央演算処理装置１１は、ファイル出力部１０５として動作する。
【００７５】
中央演算処理装置１１は、主記憶装置１２から変換後のモデル情報１１３を読み込み、変換後のモデルファイル１１２を生成して、補助記憶装置１３に記憶する。
【００７６】
図４は、ステップＳ０２におけるサブシステム選択処理の詳細を説明するフローチャートの一例である。
【００７７】
ステップＳ１１において、中央演算処理装置１１は、システム情報１１６のうち、モデル自体のレコードを参照し、ブロックリストに示されるブロックのレコードを、ブロック情報１１４から順次検索し、読み込む。
【００７８】
ステップＳ１２において、中央演算処理装置１１は、読み込んだブロック情報レコードのブロックタイプを参照し、ブロックタイプがサブシステムでない場合にはステップＳ１１に戻る。ブロックタイプがサブシステムである場合は、ブロックの識別子を現在のサブシステム情報として記憶し、ステップＳ１３に進む。
【００７９】
ステップＳ１３において、中央演算処理装置１１は、システム情報１１６のうち、現在読み込んでいるブロック情報レコードの識別子に一致するシステム情報レコードを参照し、ブロックリストに示されるブロックのブロック情報レコードを、ブロック情報１１４から順次検索し、読み込む。
【００８０】
ステップＳ１４において、中央演算処理装置１１は、現在読み込んでいるブロック情報レコードのブロックタイプを参照し、ブロックタイプがレート遷移である場合にはステップＳ１５に進む。ブロックタイプがレート遷移でない場合は、ステップＳ１６に進む。
【００８１】
ステップＳ１５において、中央演算処理装置１１は、ステップＳ１２で記憶した現在のサブシステム情報をサブシステム選択情報１１７に追加し、ステップＳ１７に進む。
【００８２】
ステップＳ１６において、中央演算処理装置１１は、ステップＳ１３からステップＳ１４までの処理が、現在のサブシステムのブロックリストの全てのブロックに対して完了したかどうか判定し、完了している場合にはステップＳ１７に進み、完了していない場合には、ステップＳ１３に戻り、未処理のブロックについて、ステップＳ１３からステップＳ１４までの処理を繰り返す。
【００８３】
ステップＳ１７において、中央演算処理装置１１は、ステップＳ１１からステップＳ１６までの処理が、モデルのブロックリストの全てのブロックに対して完了したかどうか判定し、完了している場合には終了し、完了していない場合には、ステップＳ１１に戻り、未処理のブロックについて、ステップＳ１１からステップＳ１６までの処理を繰り返す。
【００８４】
以上により、モデル内のブロックタイプがサブシステムであるブロックのうち、異なるサンプル時間のブロックを有するブロックの識別子が、サブシステム選択情報１１７として記憶される。なお、ここでは、サブシステム選択情報としてブロックの識別子を記憶したが、対象となるサブシステムブロックを一意に指定できればよく、例えば、ブロックの識別子の代わりにシステム情報レコードのアドレスを用いてもよい。
【００８５】
図５は、ステップＳ０３におけるブロック分離処理の詳細を説明するフローチャートの一例である。
【００８６】
ステップＳ２１において、中央演算処理装置１１は、システム情報１１６のうち、サブシステム選択情報１１７の識別子に一致するサブシステムのシステム情報レコードを参照し、ブロックリストに示されるブロックのレコードを、ブロック情報１１４から順次検索し、読み込む。
【００８７】
ステップＳ２２において、中央演算処理装置１１は、読み込んだブロック情報レコードのブロックタイプを参照し、ブロックタイプがレート遷移である場合にはステップＳ２３に進む。ブロックタイプがレート遷移でない場合は、ステップＳ２４に進む。
【００８８】
ステップＳ２３において、中央演算処理装置１１は、レート遷移ブロックを親システムに移動する。具体的には、ブロック情報レコードの親に示されるサブシステムのブロック情報レコードを検索し、その親をレート遷移ブロックの新たな親とする。また、元の親であるサブシステムのシステム情報レコードのブロックリストからレート遷移ブロックを削除し、新しい親のシステム情報レコードのブロックリストに追加する。
【００８９】
ステップＳ２４において、中央演算処理装置１１は、ステップＳ２２で読み込んだブロック情報レコードのサンプル時間に一致するサブシステムをシステム情報から検索し、一致するレコードがある場合には、ステップＳ２６に進み、一致するレコードが無い場合には、ステップＳ２５に進む。
【００９０】
ステップＳ２５において、中央演算処理装置１１は、ステップＳ２２で読み込んだブロック情報レコードのサンプル時間に一致する新たなサブシステムのシステム情報レコードとブロック情報レコードを追加する。ここで、ブロック情報レコードの親は、ステップＳ２３における新たな親である。また、新たなサブシステムの識別子は、既存の識別子と重複しないものであればよく、入力装置１４からユーザ指定を受け付けるようにしてもよい。新たなサブシステムの識別子は、サブシステム選択情報１１７にも追加する。
【００９１】
ステップＳ２６において、中央演算処理装置１１は、現在のブロックをサンプル時間の一致するサブシステムに移動する。具体的には、ブロック情報レコードのサンプル時間と一致するシステム情報レコードを検索し、該当するサブシステムを現在のブロックの新たな親とする。また、元の親であるサブシステムのシステム情報レコードのブロックリストから現在のブロックを削除し、新しい親のシステム情報レコードのブロックリストに追加する。
【００９２】
ステップＳ２７において、中央演算処理装置１１は、ステップＳ２１からステップＳ２６までの処理が、サブシステムのブロックリストの全てのブロックに対して完了したかどうか判定し、完了している場合には終了し、完了していない場合には、ステップＳ２１に戻り、未処理のブロックについて、ステップＳ２１からステップＳ２６までの処理を繰り返す。
【００９３】
以上により、サブシステム内のサンプル時間の異なるブロックが、サンプル時間毎に別々のサブシステムに属するものとして、モデル情報１１３が変更される。
【００９４】
図６は、ステップＳ０５における再結線処理の詳細を説明するフローチャートの一例である。
【００９５】
ステップＳ３１において、中央演算処理装置１１は、システム情報１１６のうち、サブシステム選択情報１１７の識別子に一致するサブシステムのシステム情報レコードを参照し、その結線リストに示される結線のレコードを、結線情報１１５から順次検索し、読み込む。
【００９６】
ステップＳ３２において、中央演算処理装置１１は、ステップＳ３１で読み込んだ結線情報レコードの接続元ブロック及び接続先ブロックの識別子に一致するブロック情報レコードを検索し、読み込む。
【００９７】
ステップＳ３３において、中央演算処理装置１１は、ステップＳ３２において読み込んだ接続元及び接続先ブロックのブロックタイプを参照し、双方ともレート遷移でない場合には、ステップＳ３４に進み、どちらか一方がレート遷移である場合には、ステップＳ３５に進む。
【００９８】
ステップＳ３４において、中央演算処理装置１１は、現在の結線を、ステップＳ３２において読み込んだ接続元及び接続先ブロックの親であるサブシステムに移動する。具体的には、現在の結線の新たな親を接続元及び接続先ブロックの親とする。また、元の親であるサブシステムのシステム情報レコードの結線リストから現在の結線を削除し、新しい親のシステム情報レコードの結線リストに追加する。
【００９９】
ステップＳ３５において、中央演算処理装置１１は、接続元ブロックがレート遷移である場合には、接続先ブロックの親に、現在の結線の新たな接続先として、入力ポートブロックを追加する。具体的には、ブロック情報１１４に新たにブロックタイプが入力ポートであるレコードを追加し、その親とサンプル時間に接続先ブロックのブロック情報レコードと同じ値を設定し、既存の識別子と重複しない識別子を設定する。また、現在の結線情報レコードの新たな親を、接続先ブロックの親とし、追加した入力ポートブロックとそのポート番号を、新たな接続元ブロックとポート番号とする。そして、元の親であるサブシステムのシステム情報レコードの結線リストから現在の結線を削除し、新しい親のシステム情報レコードの結線リストに追加する。
【０１００】
接続先ブロックがレート遷移である場合には、接続元ブロックの親に、現在の結線の新たな接続元として、出力ポートブロックを追加する。具体的には、ブロック情報１１４に新たにブロックタイプが出力ポートであるレコードを追加し、その親とサンプル時間に接続元ブロックのブロック情報レコードと同じ値を設定し、既存の識別子と重複しない識別子を設定する。また、現在の結線情報レコードの新たな親を、接続元ブロックの親とし、追加した出力ポートブロックとそのポート番号を、新たな接続先ブロックとポート番号とする。そして、元の親であるサブシステムのシステム情報レコードの結線リストから現在の結線を削除し、新しい親のシステム情報レコードの結線リストに追加する。
【０１０１】
なお、上記において新たに追加するブロック情報レコードの識別子は、入力装置１４からユーザ指定を受け付けるようにしてもよい。
【０１０２】
ステップＳ３６において、中央演算処理装置１１は、現在の結線の元の接続元あるいは接続先であるレート遷移ブロックと、ステップＳ３５で追加した入力ポートまたは出力ポートとを接続する結線を追加する。具体的には、現在の結線の元の接続元ブロックがレート遷移であった場合には、結線情報レコード１１５に新たなレコードを追加し、接続元ブロックをレート遷移ブロックとし、接続先ブロックを、現在の結線の元の接続先ブロックの親とするとともに、接続先ポート番号をステップＳ３５で追加した入力ポートの番号とする。新たな結線情報レコードの親は、接続元のレート遷移ブロックの親とし、既存の識別子と重複しない識別子を設定する。
【０１０３】
現在の結線の元の接続先ブロックがレート遷移であった場合には、結線情報レコード１１５に新たなレコードを追加し、接続先ブロックをレート遷移ブロックとし、接続元ブロックを、現在の結線の元の接続元ブロックの親とするとともに、接続元ポート番号をステップＳ３５で追加した出力ポートの番号とする。新たな結線情報レコードの親は、接続先のレート遷移ブロックの親とし、既存の識別子と重複しない識別子を設定する。
【０１０４】
なお、上記において新たに追加する結線情報レコードの識別子は、入力装置１４からユーザ指定を受け付けるようにしてもよい。
【０１０５】
ステップＳ３７において、中央演算処理装置１１は、ステップＳ３１からステップＳ３６までの処理が、サブシステムの結線リストの全ての結線に対して完了したかどうか判定し、完了している場合には終了し、完了していない場合には、ステップＳ３１に戻り、未処理の結線について、ステップＳ３１からステップＳ３６までの処理を繰り返す。
【０１０６】
以上により、サンプル時間毎に別々のサブシステムに分離されたブロックが、再結線されるように、モデル情報１１３が変更される。
【０１０７】
図１３（ａ）、図１３（ｂ）、図１３（ｃ）は、図１２（ａ）、図１２（ｂ）、図１２（ｃ）に示されるモデル情報１１３に対して、上記のステップＳ０２からステップＳ０４までの処理を適用した結果を示す図である。
【０１０８】
また、図１４は、図７に示されるモデルＭに対して、モデル変換装置１によりモデル変換を実施した後のブロック線図を示す図である。
【０１０９】
以上のように、本実施例のモデル変換装置１によれば、異なるサンプル時間で動作するブロックを別々のサブシステムに分割することにより、シミュレーション、コード実行及び検査の効率を改善することができる。
【符号の説明】
【０１１０】
１…モデル変換装置、２  モデル変換装置、１１…中央演算処理装置、１２…主記憶装置、１３…補助記憶装置、１４…入力装置、１５…出力装置、１６…バス、２０…モデル選択情報、２１…修正確認情報、１００…モデル変換プログラム、１０１…ファイル入力部、１０２…サブシステム選択部、１０３…，３０３…ブロック分離部、１０４…再結線部、１０５…ファイル出力部、１１１…モデルファイル、１１２…変換後のモデルファイル、１１３…モデル情報、１１４…ブロック情報、１１５…結線情報、１１６…システム情報、１１７…サブシステム選択情報、２００…モデル変換プログラム、３００…モデル変換プログラム。
【図１】
2015007931.tif 000003
【図２】
2015007931.tif 000004
【図３】
2015007931.tif 000005
【図４】
2015007931.tif 000006
【図５】
2015007931.tif 000007
【図６】
2015007931.tif 000008
【図７】
2015007931.tif 000009
【図８】
2015007931.tif 000010
【図９】
2015007931.tif 000011
【図１０】
2015007931.tif 000012
【図１１】
2015007931.tif 000013
【図１２】
2015007931.tif 000014
【図１３】
2015007931.tif 000015
【図１４】
2015007931.tif 000016
【図１５】
2015007931.tif 000017
【図１６】
2015007931.tif 000018
【図１７】
2015007931.tif 000019
【図１８】
2015007931.tif 000020
【図１９】
2015007931.tif 000021