(57)【特許請求の範囲】
【請求項１】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る基準モデル実行手段と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手段と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る比較モデル実行手段と、
同一の前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果とを比較する比較手段と、
前記比較手段による比較結果に基づき表示を行う表示手段と、
を備えることを特徴とする設計支援装置。
【請求項２】
請求項１に記載の設計支援装置において、
前記基準モデル実行手段による前記演算処理の実行時と、前記比較モデル実行手段による前記演算処理の実行時とにおいて、同一の前記演算ステップの入力値が同一の値となるように調整する調整手段をさらに備えること、
を特徴とする設計支援装置。
【請求項３】
請求項２に記載の設計支援装置において、
前記演算処理は、それぞれの前記演算ステップが予め定められた順番で実行されると共に、前記演算ステップでの演算結果が、後に実行される前記演算ステップの入力値となるよう構成されており、
前記基準モデルでは、前記比較モデルに比べ、より高い精度で演算結果が得られる態様で前記演算ステップが記述されており、
前記調整手段は、前記比較モデル実行手段による前記演算処理の実行時の前記演算ステップの入力値が、前記基準モデル実行手段による前記演算処理の実行により得られた同一の前記演算ステップの入力値となるよう調整すること、
を特徴とする設計支援装置。
【請求項４】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づきいずれかの前記演算ステップを実行し、演算結果を得る基準モデル実行手段と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手段により実行された前記演算ステップに関して、前記基準モデル実行手段と同一の入力値を用いて前記比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手段と、
同一の前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果とを比較する比較手段と、
前記比較手段による比較結果に基づき表示を行う表示手段と、
を備えることを特徴とする設計支援装置。
【請求項５】
請求項１から請求項４のうちのいずれか１項に記載の設計支援装置であって、
前記表示手段は、前記演算ステップに対応する箇所と、該演算ステップについての前記比較結果とを関連付けた状態で、前記基準モデル或いは前記比較モデルを表示すること、
を特徴とする設計支援装置。
【請求項６】
請求項１から請求項５のうちのいずれか１項に記載の設計支援装置において、
前記比較手段は、前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果との差分を算出し、該差分に関する情報を前記比較結果とすること、
を特徴とする設計支援装置。
【請求項７】
請求項６に記載の設計支援装置において、
前記基準モデルでは、前記比較モデルに比べ、より高い精度で演算結果が得られる態様で前記演算ステップが記述されており、
前記比較手段は、前記演算ステップについての前記差分が予め定められた許容範囲内か否かを判定し、該判定結果を前記比較結果とすること、
を特徴とする設計支援装置。
【請求項８】
請求項７に記載の設計支援装置において、
前記比較手段による前記差分の判定に用いられる前記許容範囲とは、該差分に係る前記演算ステップの入力値に含まれることが想定される最大誤差に基づき設定されること、
を特徴とする設計支援装置。
【請求項９】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る基準モデル実行手順と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手順と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る比較モデル実行手順と、
同一の前記演算ステップについて、前記基準モデル実行手順で得られた演算結果と、前記比較モデル実行手順で得られた演算結果とを比較する比較手順と、
前記比較手順にて得られた比較結果に基づき表示を行う表示手順と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【請求項１０】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づきいずれかの前記演算ステップを実行し、演算結果を得る基準モデル実行手順と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手順にて実行された前記演算ステップに関して、前記基準モデル実行手順と同一の入力値を用いて前記比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手順と、
同一の前記演算ステップについて、前記基準モデル実行手順で得られた演算結果と、前記比較モデル実行手順で得られた演算結果とを比較する比較手順と、
前記比較手順にて得られた比較結果に基づき表示を行う表示手順と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデルに基づき演算処理を実行する設計支援装置等に関する。
【背景技術】
【０００２】
従来、例えば車両のエンジンＥＣＵのプログラムの開発においては、開発者が直接ソースコードを記述せず、目的とするプログラムの機能を、より作成が簡易で視認性の良い「モデル」という形態で記述する場合がある。開発者は、このモデルに対応したプログラム開発環境がインストールされたワークステーション，パーソナルコンピュータ等を用い、そのモデルにて定義された演算処理等のシミュレーションを行うと共に、該モデルからソースコードを自動生成する。
【０００３】
このようにしてモデルに基づきソースコードを自動生成するプログラム開発は、モデルベース開発と呼ばれており、モデルベース開発を行うためのプログラム開発環境としてＭａｔｌａｂ（登録商標）が知られている。Ｍａｔｌａｂ（登録商標）においては、開発者は、当該プログラム開発環境の付加機能を提供するＳｉｍｕｌｉｎｋ（登録商標）を用いてモデルを記述する。
【０００４】
そして、Ｓｉｍｕｌｉｎｋ（登録商標）においては、モデルは、各種演算やファイルからのデータの読み出し等を行う機能単位であるブロックや、ブロック間のデータの入出力を示す結線等の組合せとして記述される。すなわち、複数のブロックが結線によってつなぎ合わされることにより、エンジン制御におけるデータの入出力や、各種演算処理等を表現する集合体がモデルである。
【０００５】
特許文献１には、このようなモデルベース開発に用いられるソースコードの生成装置について記載されている。特許文献１に記載のコード生成装置によれば、複数の種別（例えば、装置の仕向け地や機種等）の機能が記述された一つのモデルから特定の種別に対応するソースコードを生成する際、対応しない種別についての機能の記述がモデルから除去される。これにより、不要なソースコードが生成されることを防ぐことができ、ＲＯＭ容量の小さいソースコードを生成することが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２２７５００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、プログラミングにおいて、小数により数値を表現することができる変数の型として、予め設定された精度で一定範囲の数値を表現する固定小数点数型と、固定小数点数型よりも広範囲の数値を表現可能な浮動小数点数型とが知られている。そして、一般的に、固定小数点数型よりも浮動小数点数型の変数を用いたほうが演算の精度を向上させることができるが、その反面、プログラムを動作させる上で必要となるＲＯＭ，ＲＡＭ容量や、ＣＰＵの処理負荷等が増加してしまうという問題がある。
【０００８】
これに対し、車載装置等の組み込みシステム用のプログラム開発においては、コストに関する要求が厳しく、ＲＯＭ容量等に関して厳しい制約が課せられる。このため、従来、組み込みシステム用のモデルベース開発では、最初の段階として、浮動小数点数型の変数を用いて演算処理を表す浮動小数点数モデルが作成され、シミュレーションにより該モデルから得られる演算結果について検証される。そして、次の段階で、浮動小数点数モデルにおける全部または一部の変数の型を浮動小数点数型から固定小数点数型に変更することで、演算精度の低下と引き換えにＲＯＭ容量等を低減させた固定小数点数モデルが作成され、該固定小数点数モデルからソースコードが自動生成されていた。
【０００９】
ここで、固定小数点数型の変数においては、該変数の値が１増減する際の該変数が表す数値の変動幅（例えば、２バイト長の固定小数点数型の変数ならば、０ｘ０００Ａが表す数値と０ｘ０００９が表す数値の差分の絶対値、以後、重み或いは１ＬＳＢと記載）が固定される。このため、開発者は、変数の型を浮動小数点数型から固定小数点数型に変更する際には、重みを設定する必要があり、重みが適切でない場合には、演算精度が許容範囲を超えて悪化するおそれがある。
【００１０】
このため、固定小数点数モデルにおいて演算精度がどの程度低下したかを検証する必要があり、各モデルのシミュレーションを行い、演算結果を比較する作業が必要となる。そして、固定小数点数モデルの演算精度の悪化が判明した場合には、その原因となっている箇所を特定するため、演算処理の各段階において各モデルで得られる演算結果を一つ一つ比較するという、非常に手間のかかる作業が必要となっていた。
【００１１】
本願発明は上記課題に鑑みてなされたものであり、異なる記述により同一の演算処理を表す二つのモデルから得られる演算結果が相違する原因となっている箇所を、容易に見つけ出すことができる設計支援装置等を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題に鑑みてなされた請求項１に記載の設計支援装置は、複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づき該演算処理を実行してそれぞれの演算ステップにおける演算結果を得る基準モデル実行手段と、基準モデルと同様の演算処理を表すモデルであって、少なくとも一つの演算ステップが基準モデルとは異なる態様で記述されているモデルを比較モデルとし、基準モデル実行手段と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの演算ステップにおける演算結果を得る比較モデル実行手段と、を備える。また、同一の演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果とを比較する比較手段と、比較手段による比較結果に基づき表示を行う表示手段と、を備える。
【００１３】
なお、比較モデルとは、例えば、基準モデルにおける変数の型を変更することで作成されたものであっても良いし、基準モデルにおける全部または一部の演算ステップに対し、手順の追加や、一部の手順の削除がなされたものであっても良い。
【００１４】
既に述べたように、車載装置等の組み込みシステム用のモデルベース開発においては、浮動小数点数型の変数を用いる等して高い演算精度を有するモデルを作成し、その後、浮動小数点数型の変数を固定小数点数型に変更することで、演算精度の低下と引き換えにＲＯＭ容量等を低減させたモデルを作成するという場合があった。
【００１５】
また、これ以外にも、低スペックの製品に対応するプログラムを作成するため、作成済みのモデルを変更して意図的に演算精度を低下させたモデルを新たに作成するという場合も想定される。また、これとは逆に、プログラムの改良を行うため、作成済みのモデルを変更して演算精度が高いモデルを新たに作成するという場合も想定される。
【００１６】
そして、このような場合には、作成済みのモデルと新たに作成したモデルの演算精度を検証し、これらのモデルにおける演算精度の相違を一定の範囲内に抑えることが必要となる。
【００１７】
さらに、詳細については後述するが、モデルからソースコードを自動生成する際に、各演算ステップの入出力データの値が制限値を超えた際のガード処理等の記述が新たに加えられる場合があり、このような場合には、モデルから得られる演算結果とソースコードから得られる演算結果とが異なる場合がある。このため、ソースコードと同一の処理を行うモデルを新たに作成し、新たに作成したモデルと、該ソースコードの自動生成に係るモデルの演算精度を検証する必要があった。
【００１８】
これに対し、請求項１に記載の設計支援装置によれば、各演算ステップについて、基準モデルで得られる演算結果と比較モデルで得られる演算結果とがどの程度乖離しているかを容易に把握することができる。このため、例えば、基準モデルの演算結果と比較モデルの演算結果が許容範囲を超えて相違している場合等に、相違の原因となっている演算ステップを容易に特定することができる。
【００１９】
したがって、モデルベース開発において、作成済みのモデルの一部に変更を加える等して該モデルと同一の演算処理を行う新たなモデルを作成した場合等に、これらのモデルから得られる演算結果が相違する原因となっている箇所を容易に見つけ出すことが可能となる。
【００２０】
なお、請求項２に記載されているように、設計支援装置は、基準モデル実行手段による演算処理の実行時と、比較モデル実行手段による演算処理の実行時とにおいて、同一の演算ステップの入力値が同一の値となるように調整する調整手段をさらに備えていても良い。
【００２１】
こうすることにより、各演算ステップの実行に際して、基準モデルと比較モデルとで入力値が同一となるため、これらのモデルから得られる演算結果の相違をより正確に把握することができる。
【００２２】
また、請求項３に記載されているように、演算処理は、それぞれの演算ステップが予め定められた順番で実行されると共に、演算ステップでの演算結果が、後に実行される演算ステップの入力値となるよう構成されており、基準モデルでは、比較モデルに比べ、より高い精度で演算結果が得られる態様で演算ステップが記述されている場合であれば、調整手段は、比較モデル実行手段による演算処理の実行時の演算ステップの入力値が、基準モデル実行手段による演算処理の実行により得られた同一の演算ステップの入力値となるよう調整しても良い。
【００２３】
こうすることにより、比較モデルにおいて、先に実行された演算ステップにて生じた誤差を無効とすることができ、後に実行される演算ステップにてより正確な演算結果を得ることができる。
【００２４】
また、基準モデルと比較モデルとの間で、演算精度の相違の原因となっている演算ステップを予測できる場合も想定される。
そこで、請求項４に記載の設計支援装置は、複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づきいずれかの演算ステップを実行し、演算結果を得る基準モデル実行手段と、基準モデルと同様の演算処理を表すモデルであって、少なくとも一つの演算ステップが基準モデルとは異なる態様で記述されているモデルを比較モデルとし、基準モデル実行手段により実行された演算ステップに関して、基準モデル実行手段と同一の入力値を用いて比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手段と、を備える。また、同一の演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果とを比較する比較手段と、比較手段による比較結果に基づき表示を行う表示手段と、を備える。
【００２５】
こうすることにより、演算精度が相違する原因となっていると予測される演算ステップに絞って演算結果を比較することができ、より短期間で、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【００２６】
また、設計支援装置は、次のような態様で演算ステップについての比較結果を表示しても良い。
すなわち、請求項５に記載されているように、表示手段は、演算ステップに対応する箇所と、該演算ステップについての比較結果とを関連付けた状態で、基準モデル或いは比較モデルを表示しても良い。
【００２７】
こうすることにより、演算ステップについての比較結果を把握し易くなり、より容易に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【００２８】
また、請求項６に記載されているように、比較手段は、演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果との差分を算出し、該差分に関する情報を比較結果としても良い。
【００２９】
こうすることにより、基準モデルと比較モデルとの間で、各演算ステップでどの程度の演算結果の相違が生じているかを正確に把握することができる。
また、請求項７に記載されているように、基準モデルでは、比較モデルに比べ、より高い精度で演算結果が得られる態様で演算ステップが記述されており、比較手段は、演算ステップについての差分が予め定められた許容範囲内か否かを判定し、該判定結果を比較結果としても良い。
【００３０】
こうすることにより、演算結果が許容範囲を超えて相違している演算ステップを容易に特定することができ、より容易に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【００３１】
なお、演算ステップにおける演算結果の差分の許容範囲とは、次のようにして設定されても良い。
すなわち、請求項８に記載されているように、比較手段による差分の判定に用いられる許容範囲とは、該差分に係る演算ステップの入力値に含まれることが想定される最大誤差に基づき設定されていても良い。
【００３２】
こうすることにより、演算ステップにおける演算結果の差分の許容範囲を適切に設定することができ、容易かつ確実に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【００３３】
なお、請求項９には、請求項１に記載の設計支援装置としてコンピュータを動作させる設計支援プログラムについて記載されている。このような設計支援プログラムを用いることで、モデルベース開発において、作成済みのモデルの一部に変更を加える等して該モデルと同一の演算処理を行う新たなモデルを作成した場合に、これらのモデルから得られる演算結果が相違する原因となっている箇所を容易に見つけ出すことが可能となる。
【００３４】
また、請求項１０には、請求項４に記載の設計支援装置としてコンピュータを動作させる設計支援プログラムについて記載されている。このような設計支援プログラムを用いることで、演算精度が相違する原因となっていると予測される演算ステップに絞って演算結果を比較することができ、より短期間で、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【図面の簡単な説明】
【００３５】
【図１】モデル検証装置として作動するＰＣの構成を示すブロック図である。
【図２】モデルの一例を示す説明図である。
【図３】モデルベース開発の流れを示す作業フロー図である。
【図４】検証作業フローを示すフローチャートである。
【図５】比較処理についてのフローチャートである。
【図６】各ブロックで得られた演算結果を比較した結果を示す表示画面についての説明図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【００３７】
［構成の説明］
（１）モデル検証装置の構成について
図１には、本実施形態におけるモデル検証装置として作動する周知のパーソナルコンピュータ（ＰＣ）１の構成を示すブロック図が記載されている。図１に記載されているように、ＰＣ１は、ディスプレイ１０，ＨＤＤ（ハードディスクドライブ）２０，ＣＰＵ（演算装置）３０，ＲＯＭ４０，ＲＡＭ５０，入力装置６０等を備える。
【００３８】
ディスプレイ１０は、ＣＰＵ３０から受けた映像信号を、ユーザに対して映像として表示する。
入力装置６０は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をＣＰＵ３０に出力する。
【００３９】
ＲＡＭ５０は読み出し、書き込み可能な揮発性メモリであり、ＲＯＭ４０は読み出し専用の不揮発性メモリであり、ＨＤＤ２０は読み出し、書き込み可能な不揮発性メモリである。ＲＯＭ４０、ＨＤＤ２０には、ＣＰＵ３０が読み出して実行するプログラム等が予め記憶されている。また、ＨＤＤ２０には、後述するモデルが記憶されている。
【００４０】
ＲＡＭ５０は、ＣＰＵ３０がＲＯＭ４０，ＨＤＤ２０に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域、及び作業用のデータを一時的に保存するための記憶領域として用いられる。
【００４１】
ＣＰＵ３０は、ＰＣ１に電源が投入されることによって起動すると、ＲＯＭ４０から所定のブートプログラムを読み出して実行し、このブートプログラムに規定されるオペレーティングシステム（ＯＳ）その他のプログラムをＨＤＤ２０から読み出して実行することにより、起動処理を行う。起動処理以後、電源が遮断されるまで、ＣＰＵ３０は、入力装置６０からの信号や、ＯＳによってあらかじめ定められたスケジュール等に基づいて、ＨＤＤ２０に記録されている各種プログラムをＯＳ上のプロセスとして実行する。また、上記の起動処理及びプロセスにおいて、ＣＰＵ３０は必要に応じて入力装置６０から信号の入力を受け付け、また、ディスプレイ１０に映像信号を出力し、また、ＲＡＭ５０，ＨＤＤ２０に対してデータの読み出し／書き込みの制御を行う。
【００４２】
（２）モデル検証ツールについて
次に、ＰＣ１にインストールされている本実施形態のモデル検証ツールの概要について説明する。モデル検証ツールは、ＨＤＤ２０に保存され、ＯＳ上のプロセスとして実行されるアプリケーションの１つであり、ＰＣ１は、モデル検証ツールを動作させることで、モデルベース開発を行うためのモデル検証装置として作動する。モデル検証ツールは、ＯＳの仕様に従ったユーザの入力装置６０の操作によって起動し、その後ユーザの入力装置６０の操作に基づいてモデルのシミュレーション等を行う。
【００４３】
なお、モデル検証装置は、車載装置等といった組み込みシステム向けのプログラム開発に用いられることが考えられるが、これに限定されることは無く、あらゆる用途のプログラム開発に用いることができる。
【００４４】
［モデルベース開発について］
次に、モデルベース開発について説明する。
モデルとは、ソースコードよりも記述が簡易になり、かつ人による可読性が高くなる目的で定められたモデル言語仕様に基づいて作成されるプログラムの一表現形態である。モデルとしては、例えばＳｉｍｕｌｉｎｋ（登録商標）によって作成されるＳｉｍｕｌｉｎｋモデルがある。Ｓｉｍｕｌｉｎｋ（登録商標）モデルが、Ｍａｔｌａｂ（登録商標）上で動作するＲｅａｌ  Ｔｉｍｅ  Ｗｏｒｋｓｈｏｐ（登録商標：以下ＲＴＷと記す）に入力されることにより、このＲＴＷが当該Ｓｉｍｕｌｉｎｋ（登録商標）モデルに対応するソースコードを生成する。
【００４５】
Ｓｉｍｕｌｉｎｋ（登録商標）モデルは、ブロックと呼ばれる機能単位の組み合わせからなる集合体として作成される。組み合わせとは、機能単位間の入出力の繋がりをいう。ブロックの具体例としては、例えば入力される２つの数値データの加算をして出力する加算ブロック等がある。また、モデルでは、ブロックに対する入出力データが保存される変数の型や、データ長や、固定小数点数型の変数における重み（詳細は後述する）等が定義されている。
【００４６】
また、複数のブロックの集合体をサブシステムというブロックの一種として定義することもできる。このサブシステムは、プログラミングにおける関数に相当し、ブロックの中にブロックが含まれるような入れ子構造のブロックの作成も許されており、サブシステムを有するモデルに基づき生成されたソースコードにおいては、サブシステムでの処理はサブルーチンとして記述される。
【００４７】
また、Ｓｉｍｕｌｉｎｋ（登録商標）モデル中の各ブロックは、それぞれ属性情報を有することができる。属性情報としては、例えば当該ブロックの名称、入出力データの値域定義等がある。
【００４８】
なお、図２には、一例として、Ａ演算ブロック１０１〜Ｃ演算ブロック１０３等から構成されるモデル１００が記載されている（これらのブロックがサブシステムとして構成されていても良いということは、言うまでもない）。このモデル１００では、各ブロックで得られた演算結果（出力データ）が、他のブロックの入力データとなっている。すなわち、各ブロックに接続される結線が数値データの入出力を示しており、ブロックに向かう矢印が付された結線が該ブロックへの入力データであると共に、ブロックを起点とする矢印が付された結線が、該ブロックからの出力データとなっている。また、各結線には、該結線に対応する数値データが保存される変数の型等の定義がなされる（図示省略）。
【００４９】
また、言うまでも無く、モデル１００では、当該モデルへの入力データが入力されるブロックが最初に実行され、以後、入力データが全て得られたブロックから順に実行される（換言すれば、結線の矢印の向きに基づく上流側に位置するブロックから、下流側のブロックの順に実行され、具体例を挙げると、Ａ演算ブロック１０１からＣ演算ブロック１０３の順で実行される）。
【００５０】
また、図２に記載されているように、Ｓｉｍｕｌｉｎｋ（登録商標）では、モデル中のブロックの演算手順をソースコード１１０により記述することもでき、これにより、ソースコードと全く同じ演算処理を行うＳｉｍｕｌｉｎｋ（登録商標）モデルを作成することができる。
【００５１】
本実施形態におけるモデルも、Ｓｉｍｕｌｉｎｋ（登録商標）モデルと同様にブロックから成り、サブシステムとしてのブロックの記述やブロックの入れ子構造が許され、各ブロックが属性情報を有することや、ソースコードによる演算手順の記述が可能となっている。また、ブロック或いはサブシステムへの入出力データが保存される変数の型等を任意に定義することができる。
【００５２】
次に、本実施形態におけるモデルベース開発の流れについて、図３に記載の作業フロー２００を用いて説明する。本実施形態では、Ｓｉｍｕｌｉｎｋ（登録商標）を用いて以下のような段階を経てモデルの作成やソースコードの自動生成が行われる。
【００５３】
すなわち、プログラミングにおいて、小数により数値を表現することができる変数の型として、予め設定された精度で一定範囲の数値を表現する固定小数点数型と、固定小数点数型よりも広範囲の数値を表現可能な浮動小数点数型とが知られている。そして、一般的に、固定小数点数型よりも浮動小数点数型の変数を用いたほうが演算の精度を向上させることができるが、その反面、プログラムを動作させる上で必要となるＲＯＭ，ＲＡＭ容量や、ＣＰＵの処理負荷等が増加してしまうという問題がある。
【００５４】
このため、本実施形態では、最初の段階として、浮動小数点数型の変数を用いて、制御仕様２１０に基づく演算処理を表す浮動小数点数モデル２２０が作成される。そして、次の段階で、浮動小数点数モデル２２０における全部または一部の変数の型を浮動小数点数型から固定小数点数型に変更することで、演算精度の低下と引き換えにＲＯＭ容量等を低減させた固定小数点数モデル２３０が作成される。
【００５５】
なお、固定小数点数型の変数においては、該変数の値が１増減する際の該変数が表す数値の変動幅（例えば、２バイト長の固定小数点数型の変数ならば、０ｘ０００Ａが表す数値と０ｘ０００９が表す数値の差分の絶対値、以後、重み或いは１ＬＳＢと記載）が固定される。このため、固定小数点数モデル２３０を作成する際には、要求される演算精度を考慮して固定小数点数型の各変数の重みが設定される。
【００５６】
そして、その次の段階では、浮動小数点数モデル２２０と固定小数点数モデル２３０の演算精度を比較するモデル検証作業２４０（詳細は後述）が行われ、モデル検証作業２４０にて固定小数点数モデル２３０における演算精度の低下が許容範囲内と判断されると、ＲＴＷを用いて、固定小数点数モデル２３０に基づき固定小数点数コード２５０が自動生成される。
【００５７】
ここで、ＲＴＷは、モデルからソースコードを自動生成する際に、異なる型の変数や、重みの異なる固定小数点数型の変数を用いた演算手順において、これらの変数の型や重みを統一する変換処理の記述を追加する。また、これ以外にも、例えば、各ブロックへの入出力データが属性情報により定義された値域を越えた際のガード処理等の記述を追加する。このため、固定小数点数モデル２３０と固定小数点数コード２５０とからは異なる演算結果が得られる場合がある。
【００５８】
そこで、次の段階では、固定小数点数コード２５０における各ブロックに対応する演算手順を、固定小数点数モデル２３０における対応するブロックに記述することで、固定小数点数コード２５０と同じ演算処理を行うソースコードモデル２６０が作成される。そして、固定小数点数モデル２３０とソースコードモデル２６０の演算精度を比較するコード検証作業２７０（詳細は後述）が行われ、ソースコードモデル２６０での演算処理について検証される。
【００５９】
［検証作業について］
次に、浮動小数点数モデル２２０と固定小数点数モデル２３０の演算精度を比較するモデル検証作業２４０や、固定小数点数モデル２３０とソースコードモデル２６０の演算精度を比較するコード検証作業２７０について説明する。これらの作業は、モデル検証装置を用いて、図４に記載の検証作業フローに従い行われる。
【００６０】
なお、以下の説明では、モデル検証作業２４０においては、浮動小数点数モデル２２０を基準モデル、固定小数点数モデル２３０を比較モデルとすると共に、コード検証作業２７０においては、固定小数点数モデル２３０を基準モデル、ソースコードモデル２６０を比較モデルとする。
【００６１】
Ｓ３０５では、モデル検証装置を用いて比較モデルのシミュレーションが実行される。
続くＳ３１０では、比較モデルから得られた演算結果と理論値とを比較し、該演算結果に含まれる誤差が許容範囲内か否かが判定される。なお、この許容範囲は、制御仕様２１０等に基づき定められる。そして、肯定判定の場合には（Ｓ３１０：Ｙｅｓ）、Ｓ３１５に処理が移行され、否定判定の場合には（Ｓ３１０：Ｎｏ）、検証作業は終了となる。
【００６２】
Ｓ３１５では、モデル検証装置を用いて、基準モデルと比較モデルのそれぞれのブロックにて得られる演算結果を比較し、許容範囲を超える誤差が生成されるブロックを特定する比較処理が行われる。
【００６３】
続くＳ３２０では、Ｓ３１５にて、許容範囲を超える誤差が生成されるブロックが特定されたか否かが判定される。そして、肯定判定が得られた場合には（Ｓ３２０：Ｙｅｓ）、Ｓ３２５に処理が移行され、否定判定が得られた場合には（Ｓ３２０：Ｎｏ）、Ｓ３３０に処理が移行される。
【００６４】
Ｓ３２５では、許容範囲を超える誤差が生成されるブロックの記述を見直し、演算精度の改善について検討する作業が行われる。
具体的には、当該検証作業フローに従いモデル検証作業２４０が行われている場合であれば、例えば、変数の型を固定小数点数型に変更する際の重みの設定のミスについて検証し、ミスがあった場合には、固定小数点数型の変数の重みをより小さくする等といった対処を行うことが考えられる。また、例えば、固定小数点数型の変数を浮動小数点数型に戻すこと等も考えられる。
【００６５】
また、当該検証作業フローに従いコード検証作業２７０が行われている場合であれば、例えば、ソースコードの自動生成の際に追加された変換処理やガード処理の妥当性について検討し、必要に応じて属性情報や変数の型等を変更すること等が考えられる。
【００６６】
一方、Ｓ３３０では、比較モデルの演算結果は、各ブロックにて生成される許容範囲内の誤差が積み上げられたものと判断し、演算処理全体の設計を再度見直す作業が行われる。
【００６７】
そして、比較モデルから得られる演算結果に含まれる誤差が許容範囲内となるまで、検証作業フローが繰り返し行われる。
次に、モデル検証装置により行われる比較処理について、図５に記載のフローチャートを用いて説明する。
【００６８】
Ｓ４０５では、モデル検証装置は、ＨＤＤ２０或いはＲＡＭ５０に記憶されている基準モデルの読み込みを行うと共に、続くＳ４１０では、ＨＤＤ２０等に記憶されている比較モデルの読み込みを行い、基準モデル（或いは比較モデル）を、ディスプレイ１０に表示する。そして、各モデルに対しての入力データとして同一の数値を設定すると共に、各モデルが表すブロックのうち、最初に実行すべき一つのブロック（該入力データが入力されるいずれかのブロック）を選択する。
【００６９】
続くＳ４１５では、モデル検証装置は、基準モデルに基づき、選択されたブロックに対応する演算手順を実行すると共に、比較モデルに基づき、該ブロックに対応する演算手順を実行し、Ｓ４２０に処理を移行する。
【００７０】
Ｓ４２０では、モデル検証装置は、基準モデルに基づき算出された演算結果と、比較モデルに基づき算出された演算結果との差分を、比較モデルにおける選択中のブロックで生じる誤差として算出し、該誤差が許容範囲内か否かを判定する。
【００７１】
ここで、誤差が許容範囲内か否かの判定を以下のようにして行うことが考えられる。
すなわち、例えば、比較モデルにおいて、選択中のブロックにて固定小数点数型変数が用いられている場合であれば、これらの固定小数点数型変数の重みのうち、最も大きい重みを誤差の絶対値の許容範囲としても良い。また、出力データが固定小数点数型変数に保存される場合であれば、該固定小数点数型変数の重みを誤差の絶対値の許容範囲としても良い。
【００７２】
また、例えば、比較モデルにおいて、選択中のブロックへの入力データが固定小数点数型の変数に保存されている場合であれば、該入力データが示す入力値から該重みを減じた下限値から、該入力値に該重みを加算した上限値までの範囲を、該入力値の想定変動範囲としても良い。そして、各入力値が想定変動範囲内で変動した場合に当該ブロックの演算結果が変動する変動範囲を、当該ブロックにて得られる誤差を含んだ演算結果の許容範囲とし、これに基づき誤差の許容範囲を特定しても良い。なお、上記入力データが保存されている変数の重みが、特許請求の範囲における最大誤差に相当する。
【００７３】
具体例を挙げると、選択中のブロックの入力データをｘ，ｙ、当該ブロックの演算手順をｘ＋ｙ＝ｚ、ｘについての重みを０．５，ｙについての重みを０．１、誤差を含まないｘ，ｙの値をＸ，Ｙと仮定する。このとき、ｘ，ｙは、Ｘ−０．５＜ｘ＜Ｘ＋０．５，Ｙ−０．１＜ｙ＜Ｙ＋０．１の範囲で変動し、当該ブロックにて得られる誤差を含んだ演算結果は、Ｘ＋Ｙ−０．６＜ｚ＜Ｘ＋Ｙ＋０．６となる。このため、当該ブロックの誤差ΔＺの許容範囲は、−０．６＜ΔＺ＜０．６となる。
【００７４】
また、上述の方法に限らず、制御仕様２１０に基づき、選択中のブロックにおける入力データに含まれる誤差の想定範囲（例えば、最大で±３％の誤差が含まれることが想定される等）を予め設定しておき、該想定範囲を、入力データが示す入力値の想定変動範囲としても良い。そして、各入力値が想定変動範囲内で変動した場合に当該ブロックの演算結果が変動する変動範囲を、当該ブロックにて得られる誤差を含んだ演算結果の許容範囲とし、これに基づき誤差の許容範囲を特定しても良い。なお、上記誤差の想定範囲における最大値並びに最小値が、特許請求の範囲における最大誤差に相当する。
【００７５】
そして、モデル検証装置は、誤差が許容範囲内である場合には（Ｓ４２０：Ｙｅｓ）、Ｓ４２５に処理を移行し、許容範囲内でない場合には（Ｓ４２０：Ｎｏ）、Ｓ４３０に処理を移行する。
【００７６】
Ｓ４２５では、モデル検証装置は、ディスプレイ１０に表示中のモデルにおいて、選択中のブロックの強調表示（警告表示）を行い、Ｓ４３０に処理を移行する。なお、ブロックにおける誤差が許容範囲を超えた場合に限らず、誤差が生じていることを表す表示を行っても良い。
【００７７】
Ｓ４３０では、モデル検証装置は、選択中のブロックが、最後に実行されるブロックであるか否かを判定し、肯定判定が得られた場合には（Ｓ４３０：Ｙｅｓ）、本処理を終了すると共に、否定判定が得られた場合には（Ｓ４３０：Ｎｏ）、Ｓ４３５に処理を移行する。
【００７８】
Ｓ４３５では、モデル検証装置は、比較モデルにおける選択中のブロックの演算結果（出力データ）を、基準モデルにおける選択中のブロックの出力データに置き換えることで、次以降に実行されるブロックへの入力データを同一にする（換言すれば、比較モデルにおける選択中のブロックで生成された誤差をキャンセルする）。そして、Ｓ４４０に処理を移行する。
【００７９】
Ｓ４４０では、モデル検証装置は、次に実行されるべきブロックを選択し、Ｓ４１５に処理を移行する。
次に、モデル検証装置のディスプレイ１０に表示される、比較処理での各ブロックの比較結果を示す表示画面５００について、図６を用いて説明する。
【００８０】
表示画面５００には、基準モデル（或いは比較モデル）を表示するモデル表示領域５１０が設けられており、モデル表示領域５１０には、基準モデルを構成する各ブロック（Ａ演算ブロック５１１〜Ｃ演算ブロック５１３等）が表示される。これらのブロックは、比較処理における誤差の判定結果に応じて異なる態様で表示される。
【００８１】
なお、図６の表示画面５００は、一例として、誤差の絶対値の許容範囲として、ブロックにて用いられている固定小数点数型変数（或いは、ブロックからの出力データが保存される固定小数点数型変数）の重み（１ＬＳＢ）が設定されている場合における、各ブロックの表示態様を示している。
【００８２】
表示画面５００では、出力データの誤差の絶対値が重みを超えるＣ演算ブロック５１３については、最も目立つ態様で強調表示がなされている。また、本実施形態の比較処理では、許容範囲を超えるブロックについてのみ強調表示を行うものとしたが、表示画面５００では、許容範囲内の誤差が生じているＢ演算ブロック５１２についても、強調表示がなされている。
【００８３】
また、モデル表示領域５１０の下方には、各ブロックの誤差を表示する誤差表示領域５２０が設けられており、該領域では、各ブロックにおける誤差と、該誤差が許容範囲内か否かが表示されている。
【００８４】
［効果］
本実施形態の検証作業フローでは、比較モデルから得られる演算結果と理論値との比較により、該演算結果に許容範囲を超える誤差が含まれていることが判明した場合には、モデル検証装置により比較処理が行われる。そして、比較処理では、基準モデル並びに比較モデルにおける各ブロックについて、各モデルから得られる演算結果を比較した結果が表示される。
【００８５】
このため、各ブロックについて、基準モデルから得られる演算結果と比較モデルから得られる演算結果とがどの程度乖離しているかを容易に把握することができ、比較モデルにて生じる演算誤差の原因となっているブロックを容易に特定することができる。
【００８６】
［他の実施形態］
（１）本実施形態の比較処理のＳ４１５では、基準モデル，比較モデルにおける全てのブロックが予め定められた順序で実行され、続くＳ４２０にて全てのブロックについて演算結果の比較が行われる。しかしながら、設計支援装置は、開発者からの指示に基づき特定のブロックを選択すると共に、選択したブロックの入力値として、各モデルに対し同一の値を設定しても良い。そして、比較処理のＳ４１５において、設定した入力値を用いて選択したブロックのみを実行し、続くＳ４２０，Ｓ４２５にて該ブロックについての比較結果のみを表示しても良い。このような場合であっても、各モデルの演算結果が相違する原因となっている箇所を容易に見つけ出すことができる。
【００８７】
（２）また、本実施形態の比較処理のＳ４３５では、誤差をキャンセルする処理を行っているが、該処理を行わなくても良い。こうすることにより、各ブロックで累積的に生じている誤差に基づき、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことができる。
【００８８】
（３）また、本実施形態では、演算精度が高いモデルを基準モデル、演算精度の低いモデルを比較モデルとしているが、これに限定されることは無く、演算精度が低いモデルを基準モデル、演算精度の高いモデルを比較モデルとしても良い。このような場合であっても、同様の効果を得ることができる。
【００８９】
（４）また、本実施形態の比較処理では、一つのブロック単位で演算結果の比較が行われているが、複数のブロック単位で演算結果の比較を行っても良い。このような場合であっても、比較モデルにて生じる演算誤差の原因となっている箇所を容易に特定することができる。
【００９０】
（５）また、本実施形態では、作業フロー２００に従いモデルベース開発が行われた場合を例に挙げて、モデル検証装置により行われる比較処理について説明したが、このような場合に限らず、随時、モデル検証装置を用いて比較処理を行うことができる。すなわち、浮動小数点数モデル２２０と固定小数点数モデル２３０や、固定小数点数モデル２３０とソースコードモデル２６０のように、同一の演算処理を表しているが、用いられる変数の型や、対応するブロックにおける手順の一部等が異なる二つのモデルが存在する場合には、これらのモデルを対象として比較処理を行うことができる。こうすることにより、これらのモデルにおける演算精度の相違の原因となっている箇所を、容易に見つけ出すことができる。
【００９１】
［特許請求の範囲との対応］
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
【００９２】
モデル検証装置が設計支援装置に、モデル検証ツールが設計支援プログラムに相当し、ブロックが演算ステップに相当する。
また、比較処理のＳ４１５が基準モデル実行手段，比較モデル実行手段，基準モデル実行手順，比較モデル実行手順に、Ｓ４２０が比較手段，比較手順に、Ｓ４２５が表示手段，表示手順に、Ｓ４３５が調整手段に相当する。
【符号の説明】
【００９３】
１…ＰＣ、１０…ディスプレイ、２０…ＨＤＤ、３０…ＣＰＵ、４０…ＲＯＭ、５０…ＲＡＭ、６０…入力装置、１００…モデル、１１０…ソースコード、２００…作業フロー、２１０…制御仕様、２２０…浮動小数点数モデル、２３０…固定小数点数モデル、２４０…モデル検証作業、２５０…固定小数点数コード、２６０…ソースコードモデル、２７０…コード検証作業、５００…表示画面、５１０…モデル表示領域、５２０…誤差表示領域。
【図１】
0005589919.tif 000002
【図２】
0005589919.tif 000003
【図３】
0005589919.tif 000004
【図４】
0005589919.tif 000005
【図５】
0005589919.tif 000006
【図６】
0005589919.tif 000007