説明

設計支援装置、設計支援プログラム

【課題】異なる記述により同一の演算処理を表す二つのモデルから得られる演算結果が相違する原因となっている箇所を、容易に見つけ出す。
【解決手段】モデル検証装置は、比較処理において、浮動小数点数型の変数を用いて演算処理を表す基準モデルと、基準モデルにおける全部または一部の変数の型が浮動小数点数型から固定小数点数型に変更された比較モデルと読み込み(S405,S410)、基準モデルにおけるブロックと、比較モデルにおけるブロックを順次実行する(S415)。そして、同一のブロックにて得られた演算結果の差分を算出すると共に、基準モデル(或いは比較モデル)を構成する各ブロックを表示し、これらのブロックのうち、差分が許容範囲を超えたブロックの強調表示を行う(S425)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデルに基づき演算処理を実行する設計支援装置等に関する。
【背景技術】
【0002】
従来、例えば車両のエンジンECUのプログラムの開発においては、開発者が直接ソースコードを記述せず、目的とするプログラムの機能を、より作成が簡易で視認性の良い「モデル」という形態で記述する場合がある。開発者は、このモデルに対応したプログラム開発環境がインストールされたワークステーション,パーソナルコンピュータ等を用い、そのモデルにて定義された演算処理等のシミュレーションを行うと共に、該モデルからソースコードを自動生成する。
【0003】
このようにしてモデルに基づきソースコードを自動生成するプログラム開発は、モデルベース開発と呼ばれており、モデルベース開発を行うためのプログラム開発環境としてMatlab(登録商標)が知られている。Matlab(登録商標)においては、開発者は、当該プログラム開発環境の付加機能を提供するSimulink(登録商標)を用いてモデルを記述する。
【0004】
そして、Simulink(登録商標)においては、モデルは、各種演算やファイルからのデータの読み出し等を行う機能単位であるブロックや、ブロック間のデータの入出力を示す結線等の組合せとして記述される。すなわち、複数のブロックが結線によってつなぎ合わされることにより、エンジン制御におけるデータの入出力や、各種演算処理等を表現する集合体がモデルである。
【0005】
特許文献1には、このようなモデルベース開発に用いられるソースコードの生成装置について記載されている。特許文献1に記載のコード生成装置によれば、複数の種別(例えば、装置の仕向け地や機種等)の機能が記述された一つのモデルから特定の種別に対応するソースコードを生成する際、対応しない種別についての機能の記述がモデルから除去される。これにより、不要なソースコードが生成されることを防ぐことができ、ROM容量の小さいソースコードを生成することが可能となる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−227500号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、プログラミングにおいて、小数により数値を表現することができる変数の型として、予め設定された精度で一定範囲の数値を表現する固定小数点数型と、固定小数点数型よりも広範囲の数値を表現可能な浮動小数点数型とが知られている。そして、一般的に、固定小数点数型よりも浮動小数点数型の変数を用いたほうが演算の精度を向上させることができるが、その反面、プログラムを動作させる上で必要となるROM,RAM容量や、CPUの処理負荷等が増加してしまうという問題がある。
【0008】
これに対し、車載装置等の組み込みシステム用のプログラム開発においては、コストに関する要求が厳しく、ROM容量等に関して厳しい制約が課せられる。このため、従来、組み込みシステム用のモデルベース開発では、最初の段階として、浮動小数点数型の変数を用いて演算処理を表す浮動小数点数モデルが作成され、シミュレーションにより該モデルから得られる演算結果について検証される。そして、次の段階で、浮動小数点数モデルにおける全部または一部の変数の型を浮動小数点数型から固定小数点数型に変更することで、演算精度の低下と引き換えにROM容量等を低減させた固定小数点数モデルが作成され、該固定小数点数モデルからソースコードが自動生成されていた。
【0009】
ここで、固定小数点数型の変数においては、該変数の値が1増減する際の該変数が表す数値の変動幅(例えば、2バイト長の固定小数点数型の変数ならば、0x000Aが表す数値と0x0009が表す数値の差分の絶対値、以後、重み或いは1LSBと記載)が固定される。このため、開発者は、変数の型を浮動小数点数型から固定小数点数型に変更する際には、重みを設定する必要があり、重みが適切でない場合には、演算精度が許容範囲を超えて悪化するおそれがある。
【0010】
このため、固定小数点数モデルにおいて演算精度がどの程度低下したかを検証する必要があり、各モデルのシミュレーションを行い、演算結果を比較する作業が必要となる。そして、固定小数点数モデルの演算精度の悪化が判明した場合には、その原因となっている箇所を特定するため、演算処理の各段階において各モデルで得られる演算結果を一つ一つ比較するという、非常に手間のかかる作業が必要となっていた。
【0011】
本願発明は上記課題に鑑みてなされたものであり、異なる記述により同一の演算処理を表す二つのモデルから得られる演算結果が相違する原因となっている箇所を、容易に見つけ出すことができる設計支援装置等を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題に鑑みてなされた請求項1に記載の設計支援装置は、複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づき該演算処理を実行してそれぞれの演算ステップにおける演算結果を得る基準モデル実行手段と、基準モデルと同様の演算処理を表すモデルであって、少なくとも一つの演算ステップが基準モデルとは異なる態様で記述されているモデルを比較モデルとし、基準モデル実行手段と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの演算ステップにおける演算結果を得る比較モデル実行手段と、を備える。また、同一の演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果とを比較する比較手段と、比較手段による比較結果に基づき表示を行う表示手段と、を備える。
【0013】
なお、比較モデルとは、例えば、基準モデルにおける変数の型を変更することで作成されたものであっても良いし、基準モデルにおける全部または一部の演算ステップに対し、手順の追加や、一部の手順の削除がなされたものであっても良い。
【0014】
既に述べたように、車載装置等の組み込みシステム用のモデルベース開発においては、浮動小数点数型の変数を用いる等して高い演算精度を有するモデルを作成し、その後、浮動小数点数型の変数を固定小数点数型に変更することで、演算精度の低下と引き換えにROM容量等を低減させたモデルを作成するという場合があった。
【0015】
また、これ以外にも、低スペックの製品に対応するプログラムを作成するため、作成済みのモデルを変更して意図的に演算精度を低下させたモデルを新たに作成するという場合も想定される。また、これとは逆に、プログラムの改良を行うため、作成済みのモデルを変更して演算精度が高いモデルを新たに作成するという場合も想定される。
【0016】
そして、このような場合には、作成済みのモデルと新たに作成したモデルの演算精度を検証し、これらのモデルにおける演算精度の相違を一定の範囲内に抑えることが必要となる。
【0017】
さらに、詳細については後述するが、モデルからソースコードを自動生成する際に、各演算ステップの入出力データの値が制限値を超えた際のガード処理等の記述が新たに加えられる場合があり、このような場合には、モデルから得られる演算結果とソースコードから得られる演算結果とが異なる場合がある。このため、ソースコードと同一の処理を行うモデルを新たに作成し、新たに作成したモデルと、該ソースコードの自動生成に係るモデルの演算精度を検証する必要があった。
【0018】
これに対し、請求項1に記載の設計支援装置によれば、各演算ステップについて、基準モデルで得られる演算結果と比較モデルで得られる演算結果とがどの程度乖離しているかを容易に把握することができる。このため、例えば、基準モデルの演算結果と比較モデルの演算結果が許容範囲を超えて相違している場合等に、相違の原因となっている演算ステップを容易に特定することができる。
【0019】
したがって、モデルベース開発において、作成済みのモデルの一部に変更を加える等して該モデルと同一の演算処理を行う新たなモデルを作成した場合等に、これらのモデルから得られる演算結果が相違する原因となっている箇所を容易に見つけ出すことが可能となる。
【0020】
なお、請求項2に記載されているように、設計支援装置は、基準モデル実行手段による演算処理の実行時と、比較モデル実行手段による演算処理の実行時とにおいて、同一の演算ステップの入力値が同一の値となるように調整する調整手段をさらに備えていても良い。
【0021】
こうすることにより、各演算ステップの実行に際して、基準モデルと比較モデルとで入力値が同一となるため、これらのモデルから得られる演算結果の相違をより正確に把握することができる。
【0022】
また、請求項3に記載されているように、演算処理は、それぞれの演算ステップが予め定められた順番で実行されると共に、演算ステップでの演算結果が、後に実行される演算ステップの入力値となるよう構成されており、基準モデルでは、比較モデルに比べ、より高い精度で演算結果が得られる態様で演算ステップが記述されている場合であれば、調整手段は、比較モデル実行手段による演算処理の実行時の演算ステップの入力値が、基準モデル実行手段による演算処理の実行により得られた同一の演算ステップの入力値となるよう調整しても良い。
【0023】
こうすることにより、比較モデルにおいて、先に実行された演算ステップにて生じた誤差を無効とすることができ、後に実行される演算ステップにてより正確な演算結果を得ることができる。
【0024】
また、基準モデルと比較モデルとの間で、演算精度の相違の原因となっている演算ステップを予測できる場合も想定される。
そこで、請求項4に記載の設計支援装置は、複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づきいずれかの演算ステップを実行し、演算結果を得る基準モデル実行手段と、基準モデルと同様の演算処理を表すモデルであって、少なくとも一つの演算ステップが基準モデルとは異なる態様で記述されているモデルを比較モデルとし、基準モデル実行手段により実行された演算ステップに関して、基準モデル実行手段と同一の入力値を用いて比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手段と、を備える。また、同一の演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果とを比較する比較手段と、比較手段による比較結果に基づき表示を行う表示手段と、を備える。
【0025】
こうすることにより、演算精度が相違する原因となっていると予測される演算ステップに絞って演算結果を比較することができ、より短期間で、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【0026】
また、設計支援装置は、次のような態様で演算ステップについての比較結果を表示しても良い。
すなわち、請求項5に記載されているように、表示手段は、演算ステップに対応する箇所と、該演算ステップについての比較結果とを関連付けた状態で、基準モデル或いは比較モデルを表示しても良い。
【0027】
こうすることにより、演算ステップについての比較結果を把握し易くなり、より容易に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【0028】
また、請求項6に記載されているように、比較手段は、演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果との差分を算出し、該差分に関する情報を比較結果としても良い。
【0029】
こうすることにより、基準モデルと比較モデルとの間で、各演算ステップでどの程度の演算結果の相違が生じているかを正確に把握することができる。
また、請求項7に記載されているように、基準モデルでは、比較モデルに比べ、より高い精度で演算結果が得られる態様で演算ステップが記述されており、比較手段は、演算ステップについての差分が予め定められた許容範囲内か否かを判定し、該判定結果を比較結果としても良い。
【0030】
こうすることにより、演算結果が許容範囲を超えて相違している演算ステップを容易に特定することができ、より容易に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【0031】
なお、演算ステップにおける演算結果の差分の許容範囲とは、次のようにして設定されても良い。
すなわち、請求項8に記載されているように、比較手段による差分の判定に用いられる許容範囲とは、該差分に係る演算ステップの入力値に含まれることが想定される最大誤差に基づき設定されていても良い。
【0032】
こうすることにより、演算ステップにおける演算結果の差分の許容範囲を適切に設定することができ、容易かつ確実に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【0033】
なお、請求項9には、請求項1に記載の設計支援装置としてコンピュータを動作させる設計支援プログラムについて記載されている。このような設計支援プログラムを用いることで、モデルベース開発において、作成済みのモデルの一部に変更を加える等して該モデルと同一の演算処理を行う新たなモデルを作成した場合に、これらのモデルから得られる演算結果が相違する原因となっている箇所を容易に見つけ出すことが可能となる。
【0034】
また、請求項10には、請求項4に記載の設計支援装置としてコンピュータを動作させる設計支援プログラムについて記載されている。このような設計支援プログラムを用いることで、演算精度が相違する原因となっていると予測される演算ステップに絞って演算結果を比較することができ、より短期間で、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。
【図面の簡単な説明】
【0035】
【図1】モデル検証装置として作動するPCの構成を示すブロック図である。
【図2】モデルの一例を示す説明図である。
【図3】モデルベース開発の流れを示す作業フロー図である。
【図4】検証作業フローを示すフローチャートである。
【図5】比較処理についてのフローチャートである。
【図6】各ブロックで得られた演算結果を比較した結果を示す表示画面についての説明図である。
【発明を実施するための形態】
【0036】
以下、本発明の実施形態について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【0037】
[構成の説明]
(1)モデル検証装置の構成について
図1には、本実施形態におけるモデル検証装置として作動する周知のパーソナルコンピュータ(PC)1の構成を示すブロック図が記載されている。図1に記載されているように、PC1は、ディスプレイ10,HDD(ハードディスクドライブ)20,CPU(演算装置)30,ROM40,RAM50,入力装置60等を備える。
【0038】
ディスプレイ10は、CPU30から受けた映像信号を、ユーザに対して映像として表示する。
入力装置60は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をCPU30に出力する。
【0039】
RAM50は読み出し、書き込み可能な揮発性メモリであり、ROM40は読み出し専用の不揮発性メモリであり、HDD20は読み出し、書き込み可能な不揮発性メモリである。ROM40、HDD20には、CPU30が読み出して実行するプログラム等が予め記憶されている。また、HDD20には、後述するモデルが記憶されている。
【0040】
RAM50は、CPU30がROM40,HDD20に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域、及び作業用のデータを一時的に保存するための記憶領域として用いられる。
【0041】
CPU30は、PC1に電源が投入されることによって起動すると、ROM40から所定のブートプログラムを読み出して実行し、このブートプログラムに規定されるオペレーティングシステム(OS)その他のプログラムをHDD20から読み出して実行することにより、起動処理を行う。起動処理以後、電源が遮断されるまで、CPU30は、入力装置60からの信号や、OSによってあらかじめ定められたスケジュール等に基づいて、HDD20に記録されている各種プログラムをOS上のプロセスとして実行する。また、上記の起動処理及びプロセスにおいて、CPU30は必要に応じて入力装置60から信号の入力を受け付け、また、ディスプレイ10に映像信号を出力し、また、RAM50,HDD20に対してデータの読み出し/書き込みの制御を行う。
【0042】
(2)モデル検証ツールについて
次に、PC1にインストールされている本実施形態のモデル検証ツールの概要について説明する。モデル検証ツールは、HDD20に保存され、OS上のプロセスとして実行されるアプリケーションの1つであり、PC1は、モデル検証ツールを動作させることで、モデルベース開発を行うためのモデル検証装置として作動する。モデル検証ツールは、OSの仕様に従ったユーザの入力装置60の操作によって起動し、その後ユーザの入力装置60の操作に基づいてモデルのシミュレーション等を行う。
【0043】
なお、モデル検証装置は、車載装置等といった組み込みシステム向けのプログラム開発に用いられることが考えられるが、これに限定されることは無く、あらゆる用途のプログラム開発に用いることができる。
【0044】
[モデルベース開発について]
次に、モデルベース開発について説明する。
モデルとは、ソースコードよりも記述が簡易になり、かつ人による可読性が高くなる目的で定められたモデル言語仕様に基づいて作成されるプログラムの一表現形態である。モデルとしては、例えばSimulink(登録商標)によって作成されるSimulinkモデルがある。Simulink(登録商標)モデルが、Matlab(登録商標)上で動作するReal Time Workshop(登録商標:以下RTWと記す)に入力されることにより、このRTWが当該Simulink(登録商標)モデルに対応するソースコードを生成する。
【0045】
Simulink(登録商標)モデルは、ブロックと呼ばれる機能単位の組み合わせからなる集合体として作成される。組み合わせとは、機能単位間の入出力の繋がりをいう。ブロックの具体例としては、例えば入力される2つの数値データの加算をして出力する加算ブロック等がある。また、モデルでは、ブロックに対する入出力データが保存される変数の型や、データ長や、固定小数点数型の変数における重み(詳細は後述する)等が定義されている。
【0046】
また、複数のブロックの集合体をサブシステムというブロックの一種として定義することもできる。このサブシステムは、プログラミングにおける関数に相当し、ブロックの中にブロックが含まれるような入れ子構造のブロックの作成も許されており、サブシステムを有するモデルに基づき生成されたソースコードにおいては、サブシステムでの処理はサブルーチンとして記述される。
【0047】
また、Simulink(登録商標)モデル中の各ブロックは、それぞれ属性情報を有することができる。属性情報としては、例えば当該ブロックの名称、入出力データの値域定義等がある。
【0048】
なお、図2には、一例として、A演算ブロック101〜C演算ブロック103等から構成されるモデル100が記載されている(これらのブロックがサブシステムとして構成されていても良いということは、言うまでもない)。このモデル100では、各ブロックで得られた演算結果(出力データ)が、他のブロックの入力データとなっている。すなわち、各ブロックに接続される結線が数値データの入出力を示しており、ブロックに向かう矢印が付された結線が該ブロックへの入力データであると共に、ブロックを起点とする矢印が付された結線が、該ブロックからの出力データとなっている。また、各結線には、該結線に対応する数値データが保存される変数の型等の定義がなされる(図示省略)。
【0049】
また、言うまでも無く、モデル100では、当該モデルへの入力データが入力されるブロックが最初に実行され、以後、入力データが全て得られたブロックから順に実行される(換言すれば、結線の矢印の向きに基づく上流側に位置するブロックから、下流側のブロックの順に実行され、具体例を挙げると、A演算ブロック101からC演算ブロック103の順で実行される)。
【0050】
また、図2に記載されているように、Simulink(登録商標)では、モデル中のブロックの演算手順をソースコード110により記述することもでき、これにより、ソースコードと全く同じ演算処理を行うSimulink(登録商標)モデルを作成することができる。
【0051】
本実施形態におけるモデルも、Simulink(登録商標)モデルと同様にブロックから成り、サブシステムとしてのブロックの記述やブロックの入れ子構造が許され、各ブロックが属性情報を有することや、ソースコードによる演算手順の記述が可能となっている。また、ブロック或いはサブシステムへの入出力データが保存される変数の型等を任意に定義することができる。
【0052】
次に、本実施形態におけるモデルベース開発の流れについて、図3に記載の作業フロー200を用いて説明する。本実施形態では、Simulink(登録商標)を用いて以下のような段階を経てモデルの作成やソースコードの自動生成が行われる。
【0053】
すなわち、プログラミングにおいて、小数により数値を表現することができる変数の型として、予め設定された精度で一定範囲の数値を表現する固定小数点数型と、固定小数点数型よりも広範囲の数値を表現可能な浮動小数点数型とが知られている。そして、一般的に、固定小数点数型よりも浮動小数点数型の変数を用いたほうが演算の精度を向上させることができるが、その反面、プログラムを動作させる上で必要となるROM,RAM容量や、CPUの処理負荷等が増加してしまうという問題がある。
【0054】
このため、本実施形態では、最初の段階として、浮動小数点数型の変数を用いて、制御仕様210に基づく演算処理を表す浮動小数点数モデル220が作成される。そして、次の段階で、浮動小数点数モデル220における全部または一部の変数の型を浮動小数点数型から固定小数点数型に変更することで、演算精度の低下と引き換えにROM容量等を低減させた固定小数点数モデル230が作成される。
【0055】
なお、固定小数点数型の変数においては、該変数の値が1増減する際の該変数が表す数値の変動幅(例えば、2バイト長の固定小数点数型の変数ならば、0x000Aが表す数値と0x0009が表す数値の差分の絶対値、以後、重み或いは1LSBと記載)が固定される。このため、固定小数点数モデル230を作成する際には、要求される演算精度を考慮して固定小数点数型の各変数の重みが設定される。
【0056】
そして、その次の段階では、浮動小数点数モデル220と固定小数点数モデル230の演算精度を比較するモデル検証作業240(詳細は後述)が行われ、モデル検証作業240にて固定小数点数モデル230における演算精度の低下が許容範囲内と判断されると、RTWを用いて、固定小数点数モデル230に基づき固定小数点数コード250が自動生成される。
【0057】
ここで、RTWは、モデルからソースコードを自動生成する際に、異なる型の変数や、重みの異なる固定小数点数型の変数を用いた演算手順において、これらの変数の型や重みを統一する変換処理の記述を追加する。また、これ以外にも、例えば、各ブロックへの入出力データが属性情報により定義された値域を越えた際のガード処理等の記述を追加する。このため、固定小数点数モデル230と固定小数点数コード250とからは異なる演算結果が得られる場合がある。
【0058】
そこで、次の段階では、固定小数点数コード250における各ブロックに対応する演算手順を、固定小数点数モデル230における対応するブロックに記述することで、固定小数点数コード250と同じ演算処理を行うソースコードモデル260が作成される。そして、固定小数点数モデル230とソースコードモデル260の演算精度を比較するコード検証作業270(詳細は後述)が行われ、ソースコードモデル260での演算処理について検証される。
【0059】
[検証作業について]
次に、浮動小数点数モデル220と固定小数点数モデル230の演算精度を比較するモデル検証作業240や、固定小数点数モデル230とソースコードモデル260の演算精度を比較するコード検証作業270について説明する。これらの作業は、モデル検証装置を用いて、図4に記載の検証作業フローに従い行われる。
【0060】
なお、以下の説明では、モデル検証作業240においては、浮動小数点数モデル220を基準モデル、固定小数点数モデル230を比較モデルとすると共に、コード検証作業270においては、固定小数点数モデル230を基準モデル、ソースコードモデル260を比較モデルとする。
【0061】
S305では、モデル検証装置を用いて比較モデルのシミュレーションが実行される。
続くS310では、比較モデルから得られた演算結果と理論値とを比較し、該演算結果に含まれる誤差が許容範囲内か否かが判定される。なお、この許容範囲は、制御仕様210等に基づき定められる。そして、肯定判定の場合には(S310:Yes)、S315に処理が移行され、否定判定の場合には(S310:No)、検証作業は終了となる。
【0062】
S315では、モデル検証装置を用いて、基準モデルと比較モデルのそれぞれのブロックにて得られる演算結果を比較し、許容範囲を超える誤差が生成されるブロックを特定する比較処理が行われる。
【0063】
続くS320では、S315にて、許容範囲を超える誤差が生成されるブロックが特定されたか否かが判定される。そして、肯定判定が得られた場合には(S320:Yes)、S325に処理が移行され、否定判定が得られた場合には(S320:No)、S330に処理が移行される。
【0064】
S325では、許容範囲を超える誤差が生成されるブロックの記述を見直し、演算精度の改善について検討する作業が行われる。
具体的には、当該検証作業フローに従いモデル検証作業240が行われている場合であれば、例えば、変数の型を固定小数点数型に変更する際の重みの設定のミスについて検証し、ミスがあった場合には、固定小数点数型の変数の重みをより小さくする等といった対処を行うことが考えられる。また、例えば、固定小数点数型の変数を浮動小数点数型に戻すこと等も考えられる。
【0065】
また、当該検証作業フローに従いコード検証作業270が行われている場合であれば、例えば、ソースコードの自動生成の際に追加された変換処理やガード処理の妥当性について検討し、必要に応じて属性情報や変数の型等を変更すること等が考えられる。
【0066】
一方、S330では、比較モデルの演算結果は、各ブロックにて生成される許容範囲内の誤差が積み上げられたものと判断し、演算処理全体の設計を再度見直す作業が行われる。
【0067】
そして、比較モデルから得られる演算結果に含まれる誤差が許容範囲内となるまで、検証作業フローが繰り返し行われる。
次に、モデル検証装置により行われる比較処理について、図5に記載のフローチャートを用いて説明する。
【0068】
S405では、モデル検証装置は、HDD20或いはRAM50に記憶されている基準モデルの読み込みを行うと共に、続くS410では、HDD20等に記憶されている比較モデルの読み込みを行い、基準モデル(或いは比較モデル)を、ディスプレイ10に表示する。そして、各モデルに対しての入力データとして同一の数値を設定すると共に、各モデルが表すブロックのうち、最初に実行すべき一つのブロック(該入力データが入力されるいずれかのブロック)を選択する。
【0069】
続くS415では、モデル検証装置は、基準モデルに基づき、選択されたブロックに対応する演算手順を実行すると共に、比較モデルに基づき、該ブロックに対応する演算手順を実行し、S420に処理を移行する。
【0070】
S420では、モデル検証装置は、基準モデルに基づき算出された演算結果と、比較モデルに基づき算出された演算結果との差分を、比較モデルにおける選択中のブロックで生じる誤差として算出し、該誤差が許容範囲内か否かを判定する。
【0071】
ここで、誤差が許容範囲内か否かの判定を以下のようにして行うことが考えられる。
すなわち、例えば、比較モデルにおいて、選択中のブロックにて固定小数点数型変数が用いられている場合であれば、これらの固定小数点数型変数の重みのうち、最も大きい重みを誤差の絶対値の許容範囲としても良い。また、出力データが固定小数点数型変数に保存される場合であれば、該固定小数点数型変数の重みを誤差の絶対値の許容範囲としても良い。
【0072】
また、例えば、比較モデルにおいて、選択中のブロックへの入力データが固定小数点数型の変数に保存されている場合であれば、該入力データが示す入力値から該重みを減じた下限値から、該入力値に該重みを加算した上限値までの範囲を、該入力値の想定変動範囲としても良い。そして、各入力値が想定変動範囲内で変動した場合に当該ブロックの演算結果が変動する変動範囲を、当該ブロックにて得られる誤差を含んだ演算結果の許容範囲とし、これに基づき誤差の許容範囲を特定しても良い。なお、上記入力データが保存されている変数の重みが、特許請求の範囲における最大誤差に相当する。
【0073】
具体例を挙げると、選択中のブロックの入力データをx,y、当該ブロックの演算手順をx+y=z、xについての重みを0.5,yについての重みを0.1、誤差を含まないx,yの値をX,Yと仮定する。このとき、x,yは、X−0.5<x<X+0.5,Y−0.1<y<Y+0.1の範囲で変動し、当該ブロックにて得られる誤差を含んだ演算結果は、X+Y−0.6<z<X+Y+0.6となる。このため、当該ブロックの誤差ΔZの許容範囲は、−0.6<ΔZ<0.6となる。
【0074】
また、上述の方法に限らず、制御仕様210に基づき、選択中のブロックにおける入力データに含まれる誤差の想定範囲(例えば、最大で±3%の誤差が含まれることが想定される等)を予め設定しておき、該想定範囲を、入力データが示す入力値の想定変動範囲としても良い。そして、各入力値が想定変動範囲内で変動した場合に当該ブロックの演算結果が変動する変動範囲を、当該ブロックにて得られる誤差を含んだ演算結果の許容範囲とし、これに基づき誤差の許容範囲を特定しても良い。なお、上記誤差の想定範囲における最大値並びに最小値が、特許請求の範囲における最大誤差に相当する。
【0075】
そして、モデル検証装置は、誤差が許容範囲内である場合には(S420:Yes)、S425に処理を移行し、許容範囲内でない場合には(S420:No)、S430に処理を移行する。
【0076】
S425では、モデル検証装置は、ディスプレイ10に表示中のモデルにおいて、選択中のブロックの強調表示(警告表示)を行い、S430に処理を移行する。なお、ブロックにおける誤差が許容範囲を超えた場合に限らず、誤差が生じていることを表す表示を行っても良い。
【0077】
S430では、モデル検証装置は、選択中のブロックが、最後に実行されるブロックであるか否かを判定し、肯定判定が得られた場合には(S430:Yes)、本処理を終了すると共に、否定判定が得られた場合には(S430:No)、S435に処理を移行する。
【0078】
S435では、モデル検証装置は、比較モデルにおける選択中のブロックの演算結果(出力データ)を、基準モデルにおける選択中のブロックの出力データに置き換えることで、次以降に実行されるブロックへの入力データを同一にする(換言すれば、比較モデルにおける選択中のブロックで生成された誤差をキャンセルする)。そして、S440に処理を移行する。
【0079】
S440では、モデル検証装置は、次に実行されるべきブロックを選択し、S415に処理を移行する。
次に、モデル検証装置のディスプレイ10に表示される、比較処理での各ブロックの比較結果を示す表示画面500について、図6を用いて説明する。
【0080】
表示画面500には、基準モデル(或いは比較モデル)を表示するモデル表示領域510が設けられており、モデル表示領域510には、基準モデルを構成する各ブロック(A演算ブロック511〜C演算ブロック513等)が表示される。これらのブロックは、比較処理における誤差の判定結果に応じて異なる態様で表示される。
【0081】
なお、図6の表示画面500は、一例として、誤差の絶対値の許容範囲として、ブロックにて用いられている固定小数点数型変数(或いは、ブロックからの出力データが保存される固定小数点数型変数)の重み(1LSB)が設定されている場合における、各ブロックの表示態様を示している。
【0082】
表示画面500では、出力データの誤差の絶対値が重みを超えるC演算ブロック513については、最も目立つ態様で強調表示がなされている。また、本実施形態の比較処理では、許容範囲を超えるブロックについてのみ強調表示を行うものとしたが、表示画面500では、許容範囲内の誤差が生じているB演算ブロック512についても、強調表示がなされている。
【0083】
また、モデル表示領域510の下方には、各ブロックの誤差を表示する誤差表示領域520が設けられており、該領域では、各ブロックにおける誤差と、該誤差が許容範囲内か否かが表示されている。
【0084】
[効果]
本実施形態の検証作業フローでは、比較モデルから得られる演算結果と理論値との比較により、該演算結果に許容範囲を超える誤差が含まれていることが判明した場合には、モデル検証装置により比較処理が行われる。そして、比較処理では、基準モデル並びに比較モデルにおける各ブロックについて、各モデルから得られる演算結果を比較した結果が表示される。
【0085】
このため、各ブロックについて、基準モデルから得られる演算結果と比較モデルから得られる演算結果とがどの程度乖離しているかを容易に把握することができ、比較モデルにて生じる演算誤差の原因となっているブロックを容易に特定することができる。
【0086】
[他の実施形態]
(1)本実施形態の比較処理のS415では、基準モデル,比較モデルにおける全てのブロックが予め定められた順序で実行され、続くS420にて全てのブロックについて演算結果の比較が行われる。しかしながら、設計支援装置は、開発者からの指示に基づき特定のブロックを選択すると共に、選択したブロックの入力値として、各モデルに対し同一の値を設定しても良い。そして、比較処理のS415において、設定した入力値を用いて選択したブロックのみを実行し、続くS420,S425にて該ブロックについての比較結果のみを表示しても良い。このような場合であっても、各モデルの演算結果が相違する原因となっている箇所を容易に見つけ出すことができる。
【0087】
(2)また、本実施形態の比較処理のS435では、誤差をキャンセルする処理を行っているが、該処理を行わなくても良い。こうすることにより、各ブロックで累積的に生じている誤差に基づき、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことができる。
【0088】
(3)また、本実施形態では、演算精度が高いモデルを基準モデル、演算精度の低いモデルを比較モデルとしているが、これに限定されることは無く、演算精度が低いモデルを基準モデル、演算精度の高いモデルを比較モデルとしても良い。このような場合であっても、同様の効果を得ることができる。
【0089】
(4)また、本実施形態の比較処理では、一つのブロック単位で演算結果の比較が行われているが、複数のブロック単位で演算結果の比較を行っても良い。このような場合であっても、比較モデルにて生じる演算誤差の原因となっている箇所を容易に特定することができる。
【0090】
(5)また、本実施形態では、作業フロー200に従いモデルベース開発が行われた場合を例に挙げて、モデル検証装置により行われる比較処理について説明したが、このような場合に限らず、随時、モデル検証装置を用いて比較処理を行うことができる。すなわち、浮動小数点数モデル220と固定小数点数モデル230や、固定小数点数モデル230とソースコードモデル260のように、同一の演算処理を表しているが、用いられる変数の型や、対応するブロックにおける手順の一部等が異なる二つのモデルが存在する場合には、これらのモデルを対象として比較処理を行うことができる。こうすることにより、これらのモデルにおける演算精度の相違の原因となっている箇所を、容易に見つけ出すことができる。
【0091】
[特許請求の範囲との対応]
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
【0092】
モデル検証装置が設計支援装置に、モデル検証ツールが設計支援プログラムに相当し、ブロックが演算ステップに相当する。
また、比較処理のS415が基準モデル実行手段,比較モデル実行手段,基準モデル実行手順,比較モデル実行手順に、S420が比較手段,比較手順に、S425が表示手段,表示手順に、S435が調整手段に相当する。
【符号の説明】
【0093】
1…PC、10…ディスプレイ、20…HDD、30…CPU、40…ROM、50…RAM、60…入力装置、100…モデル、110…ソースコード、200…作業フロー、210…制御仕様、220…浮動小数点数モデル、230…固定小数点数モデル、240…モデル検証作業、250…固定小数点数コード、260…ソースコードモデル、270…コード検証作業、500…表示画面、510…モデル表示領域、520…誤差表示領域。

【特許請求の範囲】
【請求項1】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る基準モデル実行手段と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手段と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る比較モデル実行手段と、
同一の前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果とを比較する比較手段と、
前記比較手段による比較結果に基づき表示を行う表示手段と、
を備えることを特徴とする設計支援装置。
【請求項2】
請求項1に記載の設計支援装置において、
前記基準モデル実行手段による前記演算処理の実行時と、前記比較モデル実行手段による前記演算処理の実行時とにおいて、同一の前記演算ステップの入力値が同一の値となるように調整する調整手段をさらに備えること、
を特徴とする設計支援装置。
【請求項3】
請求項2に記載の設計支援装置において、
前記演算処理は、それぞれの前記演算ステップが予め定められた順番で実行されると共に、前記演算ステップでの演算結果が、後に実行される前記演算ステップの入力値となるよう構成されており、
前記基準モデルでは、前記比較モデルに比べ、より高い精度で演算結果が得られる態様で前記演算ステップが記述されており、
前記調整手段は、前記比較モデル実行手段による前記演算処理の実行時の前記演算ステップの入力値が、前記基準モデル実行手段による前記演算処理の実行により得られた同一の前記演算ステップの入力値となるよう調整すること、
を特徴とする設計支援装置。
【請求項4】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づきいずれかの前記演算ステップを実行し、演算結果を得る基準モデル実行手段と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手段により実行された前記演算ステップに関して、前記基準モデル実行手段と同一の入力値を用いて前記比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手段と、
同一の前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果とを比較する比較手段と、
前記比較手段による比較結果に基づき表示を行う表示手段と、
を備えることを特徴とする設計支援装置。
【請求項5】
請求項1から請求項4のうちのいずれか1項に記載の設計支援装置であって、
前記表示手段は、前記演算ステップに対応する箇所と、該演算ステップについての前記比較結果とを関連付けた状態で、前記基準モデル或いは前記比較モデルを表示すること、
を特徴とする設計支援装置。
【請求項6】
請求項1から請求項5のうちのいずれか1項に記載の設計支援装置において、
前記比較手段は、前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果との差分を算出し、該差分に関する情報を前記比較結果とすること、
を特徴とする設計支援装置。
【請求項7】
請求項6に記載の設計支援装置において、
前記基準モデルでは、前記比較モデルに比べ、より高い精度で演算結果が得られる態様で前記演算ステップが記述されており、
前記比較手段は、前記演算ステップについての前記差分が予め定められた許容範囲内か否かを判定し、該判定結果を前記比較結果とすること、
を特徴とする設計支援装置。
【請求項8】
請求項7に記載の設計支援装置において、
前記比較手段による前記差分の判定に用いられる前記許容範囲とは、該差分に係る前記演算ステップの入力値に含まれることが想定される最大誤差に基づき設定されること、
を特徴とする設計支援装置。
【請求項9】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る基準モデル実行手順と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手順と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る比較モデル実行手順と、
同一の前記演算ステップについて、前記基準モデル実行手順で得られた演算結果と、前記比較モデル実行手順で得られた演算結果とを比較する比較手順と、
前記比較手順にて得られた比較結果に基づき表示を行う表示手順と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【請求項10】
複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づきいずれかの前記演算ステップを実行し、演算結果を得る基準モデル実行手順と、
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手順にて実行された前記演算ステップに関して、前記基準モデル実行手順と同一の入力値を用いて前記比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手順と、
同一の前記演算ステップについて、前記基準モデル実行手順で得られた演算結果と、前記比較モデル実行手段で得られた演算結果とを比較する比較手順と、
前記比較手順にて得られた比較結果に基づき表示を行う表示手順と、
をコンピュータに実行させることを特徴とする設計支援プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate