JP5589919B2 - Design support device, design support program - Google Patents
Design support device, design support program Download PDFInfo
- Publication number
- JP5589919B2 JP5589919B2 JP2011063119A JP2011063119A JP5589919B2 JP 5589919 B2 JP5589919 B2 JP 5589919B2 JP 2011063119 A JP2011063119 A JP 2011063119A JP 2011063119 A JP2011063119 A JP 2011063119A JP 5589919 B2 JP5589919 B2 JP 5589919B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- model
- comparison
- reference model
- design support
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明は、モデルに基づき演算処理を実行する設計支援装置等に関する。 The present invention relates to a design support apparatus that executes arithmetic processing based on a model.
従来、例えば車両のエンジンECUのプログラムの開発においては、開発者が直接ソースコードを記述せず、目的とするプログラムの機能を、より作成が簡易で視認性の良い「モデル」という形態で記述する場合がある。開発者は、このモデルに対応したプログラム開発環境がインストールされたワークステーション,パーソナルコンピュータ等を用い、そのモデルにて定義された演算処理等のシミュレーションを行うと共に、該モデルからソースコードを自動生成する。 Conventionally, for example, in development of a program for an engine ECU of a vehicle, a developer does not directly describe a source code, but describes a function of a target program in the form of a “model” that is easier to create and has better visibility. There is a case. A developer uses a workstation, personal computer, or the like in which a program development environment corresponding to this model is installed, performs simulation such as arithmetic processing defined in the model, and automatically generates source code from the model. .
このようにしてモデルに基づきソースコードを自動生成するプログラム開発は、モデルベース開発と呼ばれており、モデルベース開発を行うためのプログラム開発環境としてMatlab(登録商標)が知られている。Matlab(登録商標)においては、開発者は、当該プログラム開発環境の付加機能を提供するSimulink(登録商標)を用いてモデルを記述する。 Program development for automatically generating source code based on a model in this way is called model-based development, and Matlab (registered trademark) is known as a program development environment for performing model-based development. In Matlab (registered trademark), a developer describes a model using Simulink (registered trademark) that provides an additional function of the program development environment.
そして、Simulink(登録商標)においては、モデルは、各種演算やファイルからのデータの読み出し等を行う機能単位であるブロックや、ブロック間のデータの入出力を示す結線等の組合せとして記述される。すなわち、複数のブロックが結線によってつなぎ合わされることにより、エンジン制御におけるデータの入出力や、各種演算処理等を表現する集合体がモデルである。 In Simulink (registered trademark), a model is described as a combination of blocks, which are functional units that perform various operations and data reading from a file, and connections that indicate input / output of data between blocks. That is, a model is an aggregate that expresses input / output of data in engine control, various arithmetic processes, and the like by connecting a plurality of blocks by connection.
特許文献1には、このようなモデルベース開発に用いられるソースコードの生成装置について記載されている。特許文献1に記載のコード生成装置によれば、複数の種別(例えば、装置の仕向け地や機種等)の機能が記述された一つのモデルから特定の種別に対応するソースコードを生成する際、対応しない種別についての機能の記述がモデルから除去される。これにより、不要なソースコードが生成されることを防ぐことができ、ROM容量の小さいソースコードを生成することが可能となる。 Patent Document 1 describes a source code generation apparatus used for such model-based development. According to the code generation device described in Patent Literature 1, when generating a source code corresponding to a specific type from one model in which functions of a plurality of types (for example, destination and model of the device) are described, Function descriptions for unsupported types are removed from the model. Thereby, it is possible to prevent generation of unnecessary source code, and it is possible to generate source code with a small ROM capacity.
ところで、プログラミングにおいて、小数により数値を表現することができる変数の型として、予め設定された精度で一定範囲の数値を表現する固定小数点数型と、固定小数点数型よりも広範囲の数値を表現可能な浮動小数点数型とが知られている。そして、一般的に、固定小数点数型よりも浮動小数点数型の変数を用いたほうが演算の精度を向上させることができるが、その反面、プログラムを動作させる上で必要となるROM,RAM容量や、CPUの処理負荷等が増加してしまうという問題がある。 By the way, in programming, as variable types that can represent numbers with decimal numbers, fixed-point numbers that represent a range of numbers with a preset precision and a wider range of numbers than fixed-point numbers can be represented. The floating-point number type is known. In general, it is possible to improve the accuracy of calculation by using a floating-point number type variable rather than a fixed-point number type variable. However, on the other hand, the ROM and RAM capacities required for operating the program, There is a problem that the processing load of the CPU increases.
これに対し、車載装置等の組み込みシステム用のプログラム開発においては、コストに関する要求が厳しく、ROM容量等に関して厳しい制約が課せられる。このため、従来、組み込みシステム用のモデルベース開発では、最初の段階として、浮動小数点数型の変数を用いて演算処理を表す浮動小数点数モデルが作成され、シミュレーションにより該モデルから得られる演算結果について検証される。そして、次の段階で、浮動小数点数モデルにおける全部または一部の変数の型を浮動小数点数型から固定小数点数型に変更することで、演算精度の低下と引き換えにROM容量等を低減させた固定小数点数モデルが作成され、該固定小数点数モデルからソースコードが自動生成されていた。 On the other hand, in the development of a program for an embedded system such as an in-vehicle device, a cost requirement is severe and severe restrictions are imposed on ROM capacity and the like. For this reason, conventionally, in model-based development for embedded systems, as a first step, a floating-point number model that represents a calculation process using a floating-point number type variable is created, and the calculation result obtained from the model by simulation is obtained. Validated. At the next stage, changing the type of all or some of the variables in the floating-point number model from the floating-point number type to the fixed-point number type reduced the ROM capacity and the like in exchange for a decrease in calculation accuracy. A fixed-point number model was created, and source code was automatically generated from the fixed-point number model.
ここで、固定小数点数型の変数においては、該変数の値が1増減する際の該変数が表す数値の変動幅(例えば、2バイト長の固定小数点数型の変数ならば、0x000Aが表す数値と0x0009が表す数値の差分の絶対値、以後、重み或いは1LSBと記載)が固定される。このため、開発者は、変数の型を浮動小数点数型から固定小数点数型に変更する際には、重みを設定する必要があり、重みが適切でない場合には、演算精度が許容範囲を超えて悪化するおそれがある。 Here, in the case of a fixed-point number type variable, the fluctuation range of a numerical value represented by the variable when the value of the variable increases or decreases by 1 (for example, a numerical value represented by 0x000A if the variable is a fixed-point number type variable having a length of 2 bytes). And the absolute value of the difference between the numerical values represented by 0x0009 (hereinafter referred to as weight or 1LSB) is fixed. For this reason, the developer must set the weight when changing the variable type from the floating-point number type to the fixed-point number type. If the weight is not appropriate, the calculation accuracy will exceed the allowable range. There is a risk of getting worse.
このため、固定小数点数モデルにおいて演算精度がどの程度低下したかを検証する必要があり、各モデルのシミュレーションを行い、演算結果を比較する作業が必要となる。そして、固定小数点数モデルの演算精度の悪化が判明した場合には、その原因となっている箇所を特定するため、演算処理の各段階において各モデルで得られる演算結果を一つ一つ比較するという、非常に手間のかかる作業が必要となっていた。 For this reason, it is necessary to verify how much the calculation accuracy is reduced in the fixed-point number model, and it is necessary to perform a simulation of each model and compare the calculation results. And when the deterioration of the calculation accuracy of the fixed-point number model is found, the calculation results obtained in each model are compared one by one at each stage of the calculation process in order to identify the cause of the deterioration. That was a very time-consuming task.
本願発明は上記課題に鑑みてなされたものであり、異なる記述により同一の演算処理を表す二つのモデルから得られる演算結果が相違する原因となっている箇所を、容易に見つけ出すことができる設計支援装置等を提供することを目的とする。 The present invention has been made in view of the above problems, and design support that can easily find a location that causes a difference in calculation results obtained from two models representing the same calculation processing by different descriptions. An object is to provide a device or the like.
上記課題に鑑みてなされた請求項1に記載の設計支援装置は、複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づき該演算処理を実行してそれぞれの演算ステップにおける演算結果を得る基準モデル実行手段と、基準モデルと同様の演算処理を表すモデルであって、少なくとも一つの演算ステップが基準モデルとは異なる態様で記述されているモデルを比較モデルとし、基準モデル実行手段と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの演算ステップにおける演算結果を得る比較モデル実行手段と、を備える。また、同一の演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果とを比較する比較手段と、比較手段による比較結果に基づき表示を行う表示手段と、を備える。 The design support apparatus according to claim 1, which has been made in view of the above problems, uses a model representing an arithmetic process including a plurality of arithmetic steps as a reference model, and sets a predetermined input value to the reference model. A reference model execution means for executing the calculation processing and obtaining calculation results in each calculation step, and a model representing the same calculation processing as the reference model, wherein at least one calculation step is different from the reference model. The model described is a comparison model, a comparison model execution unit that sets the same input value as the reference model execution unit, executes the calculation process based on the comparison model, and obtains a calculation result in each calculation step; Is provided. Further, for the same calculation step, comparison means for comparing the calculation result obtained by the reference model execution means and the calculation result obtained by the comparison model execution means, and display means for displaying based on the comparison result by the comparison means And comprising.
なお、比較モデルとは、例えば、基準モデルにおける変数の型を変更することで作成されたものであっても良いし、基準モデルにおける全部または一部の演算ステップに対し、手順の追加や、一部の手順の削除がなされたものであっても良い。 Note that the comparison model may be created by changing the type of a variable in the reference model, for example, by adding procedures to all or some of the calculation steps in the reference model, A part of the procedure may be deleted.
既に述べたように、車載装置等の組み込みシステム用のモデルベース開発においては、浮動小数点数型の変数を用いる等して高い演算精度を有するモデルを作成し、その後、浮動小数点数型の変数を固定小数点数型に変更することで、演算精度の低下と引き換えにROM容量等を低減させたモデルを作成するという場合があった。 As already mentioned, in model-based development for embedded systems such as in-vehicle devices, a model with high calculation accuracy is created by using a floating-point type variable, and then a floating-point type variable is By changing to the fixed-point number type, there was a case where a model with a reduced ROM capacity or the like was created in exchange for a decrease in calculation accuracy.
また、これ以外にも、低スペックの製品に対応するプログラムを作成するため、作成済みのモデルを変更して意図的に演算精度を低下させたモデルを新たに作成するという場合も想定される。また、これとは逆に、プログラムの改良を行うため、作成済みのモデルを変更して演算精度が高いモデルを新たに作成するという場合も想定される。 In addition to this, in order to create a program corresponding to a low-spec product, there may be a case in which a model that has been created is intentionally reduced by changing the created model. On the other hand, in order to improve the program, it may be assumed that a model having a high calculation accuracy is newly created by changing a created model.
そして、このような場合には、作成済みのモデルと新たに作成したモデルの演算精度を検証し、これらのモデルにおける演算精度の相違を一定の範囲内に抑えることが必要となる。 In such a case, it is necessary to verify the calculation accuracy of the created model and the newly created model, and to suppress the difference in calculation accuracy between these models within a certain range.
さらに、詳細については後述するが、モデルからソースコードを自動生成する際に、各演算ステップの入出力データの値が制限値を超えた際のガード処理等の記述が新たに加えられる場合があり、このような場合には、モデルから得られる演算結果とソースコードから得られる演算結果とが異なる場合がある。このため、ソースコードと同一の処理を行うモデルを新たに作成し、新たに作成したモデルと、該ソースコードの自動生成に係るモデルの演算精度を検証する必要があった。 Furthermore, although details will be described later, when source code is automatically generated from a model, a description such as guard processing when the input / output data value of each calculation step exceeds the limit value may be newly added. In such a case, the calculation result obtained from the model may be different from the calculation result obtained from the source code. Therefore, it is necessary to newly create a model that performs the same processing as the source code, and to verify the calculation accuracy of the newly created model and the model related to the automatic generation of the source code.
これに対し、請求項1に記載の設計支援装置によれば、各演算ステップについて、基準モデルで得られる演算結果と比較モデルで得られる演算結果とがどの程度乖離しているかを容易に把握することができる。このため、例えば、基準モデルの演算結果と比較モデルの演算結果が許容範囲を超えて相違している場合等に、相違の原因となっている演算ステップを容易に特定することができる。 On the other hand, according to the design support apparatus of the first aspect, for each calculation step, it is easy to grasp how far the calculation result obtained by the reference model and the calculation result obtained by the comparison model differ. be able to. For this reason, for example, when the calculation result of the reference model and the calculation result of the comparison model are different from each other beyond an allowable range, the calculation step causing the difference can be easily identified.
したがって、モデルベース開発において、作成済みのモデルの一部に変更を加える等して該モデルと同一の演算処理を行う新たなモデルを作成した場合等に、これらのモデルから得られる演算結果が相違する原因となっている箇所を容易に見つけ出すことが可能となる。 Therefore, in model-based development, when creating a new model that performs the same calculation processing as a model by changing a part of the model already created, the calculation results obtained from these models differ. It is possible to easily find the location that is causing the failure.
なお、請求項2に記載されているように、設計支援装置は、基準モデル実行手段による演算処理の実行時と、比較モデル実行手段による演算処理の実行時とにおいて、同一の演算ステップの入力値が同一の値となるように調整する調整手段をさらに備えていても良い。 In addition, as described in claim 2, the design support apparatus receives the input value of the same calculation step when the calculation process is executed by the reference model execution unit and when the calculation process is executed by the comparison model execution unit. An adjusting means for adjusting so as to have the same value may be further provided.
こうすることにより、各演算ステップの実行に際して、基準モデルと比較モデルとで入力値が同一となるため、これらのモデルから得られる演算結果の相違をより正確に把握することができる。 By doing so, the input values of the reference model and the comparison model are the same when each calculation step is executed, so that the difference in the calculation results obtained from these models can be grasped more accurately.
また、請求項3に記載されているように、演算処理は、それぞれの演算ステップが予め定められた順番で実行されると共に、演算ステップでの演算結果が、後に実行される演算ステップの入力値となるよう構成されており、基準モデルでは、比較モデルに比べ、より高い精度で演算結果が得られる態様で演算ステップが記述されている場合であれば、調整手段は、比較モデル実行手段による演算処理の実行時の演算ステップの入力値が、基準モデル実行手段による演算処理の実行により得られた同一の演算ステップの入力値となるよう調整しても良い。 In addition, as described in claim 3, the calculation processing is executed in a predetermined order, and the calculation result in the calculation step is an input value of the calculation step to be executed later. If the calculation step is described in a manner in which the calculation result is obtained with higher accuracy in the reference model than in the comparison model, the adjustment unit performs the calculation by the comparison model execution unit. You may adjust so that the input value of the calculation step at the time of execution of a process may become the input value of the same calculation step obtained by execution of the calculation process by the reference model execution means.
こうすることにより、比較モデルにおいて、先に実行された演算ステップにて生じた誤差を無効とすることができ、後に実行される演算ステップにてより正確な演算結果を得ることができる。 By doing so, in the comparative model, errors generated in the previously executed calculation step can be invalidated, and more accurate calculation results can be obtained in the calculation step executed later.
また、基準モデルと比較モデルとの間で、演算精度の相違の原因となっている演算ステップを予測できる場合も想定される。
そこで、請求項4に記載の設計支援装置は、複数の演算ステップから構成される演算処理を表すモデルを基準モデルとし、予め定められた入力値を設定して該基準モデルに基づきいずれかの演算ステップを実行し、演算結果を得る基準モデル実行手段と、基準モデルと同様の演算処理を表すモデルであって、少なくとも一つの演算ステップが基準モデルとは異なる態様で記述されているモデルを比較モデルとし、基準モデル実行手段により実行された演算ステップに関して、基準モデル実行手段と同一の入力値を用いて比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手段と、を備える。また、同一の演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果とを比較する比較手段と、比較手段による比較結果に基づき表示を行う表示手段と、を備える。
In addition, there may be a case where a calculation step causing a difference in calculation accuracy can be predicted between the reference model and the comparison model.
Therefore, the design support apparatus according to claim 4 uses a model representing a calculation process including a plurality of calculation steps as a reference model, sets a predetermined input value, and performs any calculation based on the reference model. A reference model execution means for executing steps and obtaining calculation results, and a model representing calculation processing similar to the reference model, wherein at least one calculation step is described in a manner different from the reference model And a comparison model execution unit that executes the calculation step based on the comparison model using the same input value as that of the reference model execution unit and obtains a calculation result with respect to the calculation step executed by the reference model execution unit. Further, for the same calculation step, comparison means for comparing the calculation result obtained by the reference model execution means and the calculation result obtained by the comparison model execution means, and display means for displaying based on the comparison result by the comparison means And comprising.
こうすることにより、演算精度が相違する原因となっていると予測される演算ステップに絞って演算結果を比較することができ、より短期間で、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。 By doing this, it is possible to compare the calculation results by focusing on the calculation step that is predicted to be the cause of the difference in calculation accuracy, and the cause of the difference in the calculation results of each model in a shorter period of time. It is possible to find out where it is.
また、設計支援装置は、次のような態様で演算ステップについての比較結果を表示しても良い。
すなわち、請求項5に記載されているように、表示手段は、演算ステップに対応する箇所と、該演算ステップについての比較結果とを関連付けた状態で、基準モデル或いは比較モデルを表示しても良い。
Further, the design support apparatus may display the comparison result for the calculation step in the following manner.
That is, as described in claim 5, the display means may display the reference model or the comparison model in a state in which the location corresponding to the calculation step is associated with the comparison result for the calculation step. .
こうすることにより、演算ステップについての比較結果を把握し易くなり、より容易に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。 By doing so, it becomes easier to grasp the comparison result for the calculation step, and it is possible to more easily find a location that causes a difference between the calculation results obtained from the reference model and the comparison model.
また、請求項6に記載されているように、比較手段は、演算ステップについて、基準モデル実行手段により得られた演算結果と、比較モデル実行手段により得られた演算結果との差分を算出し、該差分に関する情報を比較結果としても良い。 Further, as described in claim 6, the comparison means calculates a difference between the calculation result obtained by the reference model execution means and the calculation result obtained by the comparison model execution means for the calculation step, Information regarding the difference may be used as a comparison result.
こうすることにより、基準モデルと比較モデルとの間で、各演算ステップでどの程度の演算結果の相違が生じているかを正確に把握することができる。
また、請求項7に記載されているように、基準モデルでは、比較モデルに比べ、より高い精度で演算結果が得られる態様で演算ステップが記述されており、比較手段は、演算ステップについての差分が予め定められた許容範囲内か否かを判定し、該判定結果を比較結果としても良い。
By doing so, it is possible to accurately grasp how much the calculation result is different in each calculation step between the reference model and the comparison model.
Further, as described in claim 7, in the reference model, the calculation step is described in a mode in which the calculation result can be obtained with higher accuracy than in the comparison model, and the comparison means includes a difference between the calculation steps. May be determined within a predetermined allowable range, and the determination result may be used as a comparison result.
こうすることにより、演算結果が許容範囲を超えて相違している演算ステップを容易に特定することができ、より容易に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。 By doing so, it is possible to easily identify the calculation step whose calculation result is different from the allowable range, and more easily, the calculation result obtained from the reference model and the comparison model is the cause of the difference. It becomes possible to find the location.
なお、演算ステップにおける演算結果の差分の許容範囲とは、次のようにして設定されても良い。
すなわち、請求項8に記載されているように、比較手段による差分の判定に用いられる許容範囲とは、該差分に係る演算ステップの入力値に含まれることが想定される最大誤差に基づき設定されていても良い。
Note that the allowable range of the difference between the calculation results in the calculation step may be set as follows.
That is, as described in claim 8, the allowable range used for the determination of the difference by the comparison means is set based on the maximum error that is assumed to be included in the input value of the calculation step related to the difference. May be.
こうすることにより、演算ステップにおける演算結果の差分の許容範囲を適切に設定することができ、容易かつ確実に、基準モデルと比較モデルから得られる演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。 By doing this, the allowable range of the difference between the calculation results in the calculation step can be set appropriately, and the location causing the difference between the calculation results obtained from the reference model and the comparison model can be found easily and reliably. It becomes possible.
なお、請求項9には、請求項1に記載の設計支援装置としてコンピュータを動作させる設計支援プログラムについて記載されている。このような設計支援プログラムを用いることで、モデルベース開発において、作成済みのモデルの一部に変更を加える等して該モデルと同一の演算処理を行う新たなモデルを作成した場合に、これらのモデルから得られる演算結果が相違する原因となっている箇所を容易に見つけ出すことが可能となる。 In claim 9, a design support program for operating a computer as the design support apparatus described in claim 1 is described. By using such a design support program, in model-based development, when a new model that performs the same arithmetic processing as the model is created by changing a part of the created model, these It is possible to easily find a location that causes a difference in calculation results obtained from the model.
また、請求項10には、請求項4に記載の設計支援装置としてコンピュータを動作させる設計支援プログラムについて記載されている。このような設計支援プログラムを用いることで、演算精度が相違する原因となっていると予測される演算ステップに絞って演算結果を比較することができ、より短期間で、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことが可能となる。 Further, claim 10 describes a design support program for operating a computer as the design support apparatus according to claim 4. By using such a design support program, it is possible to compare the calculation results with the calculation steps predicted to be the cause of the difference in calculation accuracy, and the calculation results of each model can be compared in a shorter period of time. It becomes possible to find the location causing the difference.
以下、本発明の実施形態について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. The embodiment of the present invention is not limited to the following embodiment, and can take various forms as long as they belong to the technical scope of the present invention.
[構成の説明]
(1)モデル検証装置の構成について
図1には、本実施形態におけるモデル検証装置として作動する周知のパーソナルコンピュータ(PC)1の構成を示すブロック図が記載されている。図1に記載されているように、PC1は、ディスプレイ10,HDD(ハードディスクドライブ)20,CPU(演算装置)30,ROM40,RAM50,入力装置60等を備える。
[Description of configuration]
(1) Configuration of Model Verification Device FIG. 1 is a block diagram showing the configuration of a known personal computer (PC) 1 that operates as a model verification device in the present embodiment. As shown in FIG. 1, the PC 1 includes a
ディスプレイ10は、CPU30から受けた映像信号を、ユーザに対して映像として表示する。
入力装置60は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をCPU30に出力する。
The
The
RAM50は読み出し、書き込み可能な揮発性メモリであり、ROM40は読み出し専用の不揮発性メモリであり、HDD20は読み出し、書き込み可能な不揮発性メモリである。ROM40、HDD20には、CPU30が読み出して実行するプログラム等が予め記憶されている。また、HDD20には、後述するモデルが記憶されている。
The
RAM50は、CPU30がROM40,HDD20に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域、及び作業用のデータを一時的に保存するための記憶領域として用いられる。
When the
CPU30は、PC1に電源が投入されることによって起動すると、ROM40から所定のブートプログラムを読み出して実行し、このブートプログラムに規定されるオペレーティングシステム(OS)その他のプログラムをHDD20から読み出して実行することにより、起動処理を行う。起動処理以後、電源が遮断されるまで、CPU30は、入力装置60からの信号や、OSによってあらかじめ定められたスケジュール等に基づいて、HDD20に記録されている各種プログラムをOS上のプロセスとして実行する。また、上記の起動処理及びプロセスにおいて、CPU30は必要に応じて入力装置60から信号の入力を受け付け、また、ディスプレイ10に映像信号を出力し、また、RAM50,HDD20に対してデータの読み出し/書き込みの制御を行う。
When the
(2)モデル検証ツールについて
次に、PC1にインストールされている本実施形態のモデル検証ツールの概要について説明する。モデル検証ツールは、HDD20に保存され、OS上のプロセスとして実行されるアプリケーションの1つであり、PC1は、モデル検証ツールを動作させることで、モデルベース開発を行うためのモデル検証装置として作動する。モデル検証ツールは、OSの仕様に従ったユーザの入力装置60の操作によって起動し、その後ユーザの入力装置60の操作に基づいてモデルのシミュレーション等を行う。
(2) Model Verification Tool Next, an outline of the model verification tool of the present embodiment installed in the PC 1 will be described. The model verification tool is one of applications stored in the
なお、モデル検証装置は、車載装置等といった組み込みシステム向けのプログラム開発に用いられることが考えられるが、これに限定されることは無く、あらゆる用途のプログラム開発に用いることができる。 The model verification device can be used for developing programs for embedded systems such as in-vehicle devices, but is not limited to this, and can be used for developing programs for all purposes.
[モデルベース開発について]
次に、モデルベース開発について説明する。
モデルとは、ソースコードよりも記述が簡易になり、かつ人による可読性が高くなる目的で定められたモデル言語仕様に基づいて作成されるプログラムの一表現形態である。モデルとしては、例えばSimulink(登録商標)によって作成されるSimulinkモデルがある。Simulink(登録商標)モデルが、Matlab(登録商標)上で動作するReal Time Workshop(登録商標:以下RTWと記す)に入力されることにより、このRTWが当該Simulink(登録商標)モデルに対応するソースコードを生成する。
[About model-based development]
Next, model-based development will be described.
A model is an expression form of a program that is created based on a model language specification that is defined for the purpose of making description easier than source code and improving human readability. As a model, for example, there is a Simulink model created by Simulink (registered trademark). When a Simulink (registered trademark) model is input to a Real Time Workshop (registered trademark: hereinafter referred to as RTW) operating on Matlab (registered trademark), the RTW is a source corresponding to the Simulink (registered trademark) model. Generate code.
Simulink(登録商標)モデルは、ブロックと呼ばれる機能単位の組み合わせからなる集合体として作成される。組み合わせとは、機能単位間の入出力の繋がりをいう。ブロックの具体例としては、例えば入力される2つの数値データの加算をして出力する加算ブロック等がある。また、モデルでは、ブロックに対する入出力データが保存される変数の型や、データ長や、固定小数点数型の変数における重み(詳細は後述する)等が定義されている。 The Simulink (registered trademark) model is created as an aggregate composed of combinations of functional units called blocks. A combination refers to an input / output connection between functional units. As a specific example of the block, for example, there is an addition block for adding two input numerical data and outputting the result. In the model, the type of a variable in which input / output data for the block is stored, the data length, the weight of a fixed-point number type variable (details will be described later), and the like are defined.
また、複数のブロックの集合体をサブシステムというブロックの一種として定義することもできる。このサブシステムは、プログラミングにおける関数に相当し、ブロックの中にブロックが含まれるような入れ子構造のブロックの作成も許されており、サブシステムを有するモデルに基づき生成されたソースコードにおいては、サブシステムでの処理はサブルーチンとして記述される。 An aggregate of a plurality of blocks can also be defined as a kind of block called a subsystem. This subsystem is equivalent to a function in programming, and it is allowed to create a block having a nested structure in which the block is included in the block. In the source code generated based on the model having the subsystem, Processing in the system is described as a subroutine.
また、Simulink(登録商標)モデル中の各ブロックは、それぞれ属性情報を有することができる。属性情報としては、例えば当該ブロックの名称、入出力データの値域定義等がある。 Each block in the Simulink (registered trademark) model can have attribute information. The attribute information includes, for example, the name of the block, the range definition of input / output data, and the like.
なお、図2には、一例として、A演算ブロック101〜C演算ブロック103等から構成されるモデル100が記載されている(これらのブロックがサブシステムとして構成されていても良いということは、言うまでもない)。このモデル100では、各ブロックで得られた演算結果(出力データ)が、他のブロックの入力データとなっている。すなわち、各ブロックに接続される結線が数値データの入出力を示しており、ブロックに向かう矢印が付された結線が該ブロックへの入力データであると共に、ブロックを起点とする矢印が付された結線が、該ブロックからの出力データとなっている。また、各結線には、該結線に対応する数値データが保存される変数の型等の定義がなされる(図示省略)。
Note that FIG. 2 shows, as an example, a
また、言うまでも無く、モデル100では、当該モデルへの入力データが入力されるブロックが最初に実行され、以後、入力データが全て得られたブロックから順に実行される(換言すれば、結線の矢印の向きに基づく上流側に位置するブロックから、下流側のブロックの順に実行され、具体例を挙げると、A演算ブロック101からC演算ブロック103の順で実行される)。
Needless to say, in the
また、図2に記載されているように、Simulink(登録商標)では、モデル中のブロックの演算手順をソースコード110により記述することもでき、これにより、ソースコードと全く同じ演算処理を行うSimulink(登録商標)モデルを作成することができる。
In addition, as shown in FIG. 2, in Simulink (registered trademark), the calculation procedure of the block in the model can be described by the
本実施形態におけるモデルも、Simulink(登録商標)モデルと同様にブロックから成り、サブシステムとしてのブロックの記述やブロックの入れ子構造が許され、各ブロックが属性情報を有することや、ソースコードによる演算手順の記述が可能となっている。また、ブロック或いはサブシステムへの入出力データが保存される変数の型等を任意に定義することができる。 The model in the present embodiment is also composed of blocks as in the Simulink (registered trademark) model, and description of blocks as a subsystem and block nesting structure are allowed, each block has attribute information, and calculation by source code The procedure can be described. In addition, it is possible to arbitrarily define the type of variable in which input / output data for the block or subsystem is stored.
次に、本実施形態におけるモデルベース開発の流れについて、図3に記載の作業フロー200を用いて説明する。本実施形態では、Simulink(登録商標)を用いて以下のような段階を経てモデルの作成やソースコードの自動生成が行われる。
Next, the flow of model-based development in this embodiment will be described using the
すなわち、プログラミングにおいて、小数により数値を表現することができる変数の型として、予め設定された精度で一定範囲の数値を表現する固定小数点数型と、固定小数点数型よりも広範囲の数値を表現可能な浮動小数点数型とが知られている。そして、一般的に、固定小数点数型よりも浮動小数点数型の変数を用いたほうが演算の精度を向上させることができるが、その反面、プログラムを動作させる上で必要となるROM,RAM容量や、CPUの処理負荷等が増加してしまうという問題がある。 In other words, in programming, as variable types that can represent numbers with decimal numbers, a fixed-point number type that represents a certain range of numbers with preset precision and a wider range of numbers than fixed-point number types can be represented The floating-point number type is known. In general, it is possible to improve the accuracy of calculation by using a floating-point number type variable rather than a fixed-point number type variable. However, on the other hand, the ROM and RAM capacities required for operating the program, There is a problem that the processing load of the CPU increases.
このため、本実施形態では、最初の段階として、浮動小数点数型の変数を用いて、制御仕様210に基づく演算処理を表す浮動小数点数モデル220が作成される。そして、次の段階で、浮動小数点数モデル220における全部または一部の変数の型を浮動小数点数型から固定小数点数型に変更することで、演算精度の低下と引き換えにROM容量等を低減させた固定小数点数モデル230が作成される。
Therefore, in the present embodiment, as a first stage, a floating-
なお、固定小数点数型の変数においては、該変数の値が1増減する際の該変数が表す数値の変動幅(例えば、2バイト長の固定小数点数型の変数ならば、0x000Aが表す数値と0x0009が表す数値の差分の絶対値、以後、重み或いは1LSBと記載)が固定される。このため、固定小数点数モデル230を作成する際には、要求される演算精度を考慮して固定小数点数型の各変数の重みが設定される。
In the case of a fixed-point number type variable, the fluctuation range of the numerical value represented by the variable when the value of the variable is increased or decreased by 1 (for example, in the case of a fixed-point number type variable of 2 bytes length, the numerical value represented by 0x000A) The absolute value of the difference between the numerical values represented by 0x0009 (hereinafter referred to as weight or 1LSB) is fixed. For this reason, when creating the fixed-
そして、その次の段階では、浮動小数点数モデル220と固定小数点数モデル230の演算精度を比較するモデル検証作業240(詳細は後述)が行われ、モデル検証作業240にて固定小数点数モデル230における演算精度の低下が許容範囲内と判断されると、RTWを用いて、固定小数点数モデル230に基づき固定小数点数コード250が自動生成される。
In the next stage, a model verification operation 240 (details will be described later) for comparing the calculation accuracy of the floating
ここで、RTWは、モデルからソースコードを自動生成する際に、異なる型の変数や、重みの異なる固定小数点数型の変数を用いた演算手順において、これらの変数の型や重みを統一する変換処理の記述を追加する。また、これ以外にも、例えば、各ブロックへの入出力データが属性情報により定義された値域を越えた際のガード処理等の記述を追加する。このため、固定小数点数モデル230と固定小数点数コード250とからは異なる演算結果が得られる場合がある。
Here, when automatically generating source code from a model, RTW performs a conversion that unifies the types and weights of these variables in calculation procedures using different types of variables and fixed-point number variables with different weights. Add a description of the process. In addition to this, for example, a description such as guard processing when input / output data to each block exceeds a value range defined by the attribute information is added. Therefore, different calculation results may be obtained from the fixed-
そこで、次の段階では、固定小数点数コード250における各ブロックに対応する演算手順を、固定小数点数モデル230における対応するブロックに記述することで、固定小数点数コード250と同じ演算処理を行うソースコードモデル260が作成される。そして、固定小数点数モデル230とソースコードモデル260の演算精度を比較するコード検証作業270(詳細は後述)が行われ、ソースコードモデル260での演算処理について検証される。
Therefore, in the next stage, the calculation procedure corresponding to each block in the fixed-
[検証作業について]
次に、浮動小数点数モデル220と固定小数点数モデル230の演算精度を比較するモデル検証作業240や、固定小数点数モデル230とソースコードモデル260の演算精度を比較するコード検証作業270について説明する。これらの作業は、モデル検証装置を用いて、図4に記載の検証作業フローに従い行われる。
[About verification work]
Next, a
なお、以下の説明では、モデル検証作業240においては、浮動小数点数モデル220を基準モデル、固定小数点数モデル230を比較モデルとすると共に、コード検証作業270においては、固定小数点数モデル230を基準モデル、ソースコードモデル260を比較モデルとする。
In the following description, in the
S305では、モデル検証装置を用いて比較モデルのシミュレーションが実行される。
続くS310では、比較モデルから得られた演算結果と理論値とを比較し、該演算結果に含まれる誤差が許容範囲内か否かが判定される。なお、この許容範囲は、制御仕様210等に基づき定められる。そして、肯定判定の場合には(S310:Yes)、S315に処理が移行され、否定判定の場合には(S310:No)、検証作業は終了となる。
In S305, simulation of the comparison model is executed using the model verification apparatus.
In subsequent S310, the calculation result obtained from the comparison model is compared with the theoretical value, and it is determined whether or not the error included in the calculation result is within an allowable range. This allowable range is determined based on the
S315では、モデル検証装置を用いて、基準モデルと比較モデルのそれぞれのブロックにて得られる演算結果を比較し、許容範囲を超える誤差が生成されるブロックを特定する比較処理が行われる。 In S315, using the model verification apparatus, a comparison process is performed in which the calculation results obtained in the respective blocks of the reference model and the comparison model are compared, and a block in which an error exceeding the allowable range is generated is identified.
続くS320では、S315にて、許容範囲を超える誤差が生成されるブロックが特定されたか否かが判定される。そして、肯定判定が得られた場合には(S320:Yes)、S325に処理が移行され、否定判定が得られた場合には(S320:No)、S330に処理が移行される。 In subsequent S320, it is determined whether or not a block in which an error exceeding the allowable range is generated is determined in S315. When an affirmative determination is obtained (S320: Yes), the process proceeds to S325, and when a negative determination is obtained (S320: No), the process proceeds to S330.
S325では、許容範囲を超える誤差が生成されるブロックの記述を見直し、演算精度の改善について検討する作業が行われる。
具体的には、当該検証作業フローに従いモデル検証作業240が行われている場合であれば、例えば、変数の型を固定小数点数型に変更する際の重みの設定のミスについて検証し、ミスがあった場合には、固定小数点数型の変数の重みをより小さくする等といった対処を行うことが考えられる。また、例えば、固定小数点数型の変数を浮動小数点数型に戻すこと等も考えられる。
In S325, the description of the block in which the error exceeding the allowable range is generated is reviewed, and the work of improving the calculation accuracy is performed.
Specifically, if the
また、当該検証作業フローに従いコード検証作業270が行われている場合であれば、例えば、ソースコードの自動生成の際に追加された変換処理やガード処理の妥当性について検討し、必要に応じて属性情報や変数の型等を変更すること等が考えられる。
In addition, if the
一方、S330では、比較モデルの演算結果は、各ブロックにて生成される許容範囲内の誤差が積み上げられたものと判断し、演算処理全体の設計を再度見直す作業が行われる。 On the other hand, in S330, it is determined that the calculation results of the comparison model are accumulated errors within the allowable range generated in each block, and the design of the entire calculation process is reviewed again.
そして、比較モデルから得られる演算結果に含まれる誤差が許容範囲内となるまで、検証作業フローが繰り返し行われる。
次に、モデル検証装置により行われる比較処理について、図5に記載のフローチャートを用いて説明する。
Then, the verification work flow is repeatedly performed until the error included in the calculation result obtained from the comparison model is within the allowable range.
Next, the comparison process performed by the model verification apparatus will be described with reference to the flowchart shown in FIG.
S405では、モデル検証装置は、HDD20或いはRAM50に記憶されている基準モデルの読み込みを行うと共に、続くS410では、HDD20等に記憶されている比較モデルの読み込みを行い、基準モデル(或いは比較モデル)を、ディスプレイ10に表示する。そして、各モデルに対しての入力データとして同一の数値を設定すると共に、各モデルが表すブロックのうち、最初に実行すべき一つのブロック(該入力データが入力されるいずれかのブロック)を選択する。
In S405, the model verification apparatus reads the reference model stored in the
続くS415では、モデル検証装置は、基準モデルに基づき、選択されたブロックに対応する演算手順を実行すると共に、比較モデルに基づき、該ブロックに対応する演算手順を実行し、S420に処理を移行する。 In subsequent S415, the model verification apparatus executes a calculation procedure corresponding to the selected block based on the reference model, and executes a calculation procedure corresponding to the block based on the comparison model, and the process proceeds to S420. .
S420では、モデル検証装置は、基準モデルに基づき算出された演算結果と、比較モデルに基づき算出された演算結果との差分を、比較モデルにおける選択中のブロックで生じる誤差として算出し、該誤差が許容範囲内か否かを判定する。 In S420, the model verification apparatus calculates a difference between the calculation result calculated based on the reference model and the calculation result calculated based on the comparison model as an error generated in the selected block in the comparison model, and the error is calculated. Determine whether it is within the allowable range.
ここで、誤差が許容範囲内か否かの判定を以下のようにして行うことが考えられる。
すなわち、例えば、比較モデルにおいて、選択中のブロックにて固定小数点数型変数が用いられている場合であれば、これらの固定小数点数型変数の重みのうち、最も大きい重みを誤差の絶対値の許容範囲としても良い。また、出力データが固定小数点数型変数に保存される場合であれば、該固定小数点数型変数の重みを誤差の絶対値の許容範囲としても良い。
Here, it is conceivable to determine whether or not the error is within the allowable range as follows.
That is, for example, in the comparative model, if a fixed-point number type variable is used in the selected block, the largest weight among the weights of these fixed-point number type variables is the absolute value of the error. It may be an allowable range. If the output data is stored in a fixed-point number type variable, the weight of the fixed-point number type variable may be set as the allowable range of the absolute value of the error.
また、例えば、比較モデルにおいて、選択中のブロックへの入力データが固定小数点数型の変数に保存されている場合であれば、該入力データが示す入力値から該重みを減じた下限値から、該入力値に該重みを加算した上限値までの範囲を、該入力値の想定変動範囲としても良い。そして、各入力値が想定変動範囲内で変動した場合に当該ブロックの演算結果が変動する変動範囲を、当該ブロックにて得られる誤差を含んだ演算結果の許容範囲とし、これに基づき誤差の許容範囲を特定しても良い。なお、上記入力データが保存されている変数の重みが、特許請求の範囲における最大誤差に相当する。 Also, for example, in the comparison model, if the input data to the selected block is stored in a fixed-point number type variable, from the lower limit value obtained by subtracting the weight from the input value indicated by the input data, A range up to an upper limit value obtained by adding the weight to the input value may be set as an assumed fluctuation range of the input value. The fluctuation range in which the calculation result of the block fluctuates when each input value fluctuates within the assumed fluctuation range is set as the allowable range of the calculation result including the error obtained in the block. A range may be specified. The weight of the variable storing the input data corresponds to the maximum error in the claims.
具体例を挙げると、選択中のブロックの入力データを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となる。 As a specific example, the input data of the selected block is x, y, the calculation procedure of the block is x + y = z, the weight for x is 0.5, the weight for y is 0.1, and no error is included. Assume that the values of x and y are X and Y. At this time, x and y vary in the range of X−0.5 <x <X + 0.5 and Y−0.1 <y <Y + 0.1, and the calculation result including an error obtained in the block is X + Y−0.6 <z <X + Y + 0.6. For this reason, the allowable range of the error ΔZ of the block is −0.6 <ΔZ <0.6.
また、上述の方法に限らず、制御仕様210に基づき、選択中のブロックにおける入力データに含まれる誤差の想定範囲(例えば、最大で±3%の誤差が含まれることが想定される等)を予め設定しておき、該想定範囲を、入力データが示す入力値の想定変動範囲としても良い。そして、各入力値が想定変動範囲内で変動した場合に当該ブロックの演算結果が変動する変動範囲を、当該ブロックにて得られる誤差を含んだ演算結果の許容範囲とし、これに基づき誤差の許容範囲を特定しても良い。なお、上記誤差の想定範囲における最大値並びに最小値が、特許請求の範囲における最大誤差に相当する。
Further, not limited to the above-described method, based on the
そして、モデル検証装置は、誤差が許容範囲内である場合には(S420:Yes)、S425に処理を移行し、許容範囲内でない場合には(S420:No)、S430に処理を移行する。 If the error is within the allowable range (S420: Yes), the model verification apparatus shifts the process to S425. If the error is not within the allowable range (S420: No), the model verification apparatus shifts the process to S430.
S425では、モデル検証装置は、ディスプレイ10に表示中のモデルにおいて、選択中のブロックの強調表示(警告表示)を行い、S430に処理を移行する。なお、ブロックにおける誤差が許容範囲を超えた場合に限らず、誤差が生じていることを表す表示を行っても良い。
In S425, the model verification apparatus performs highlighted display (warning display) of the selected block in the model currently displayed on the
S430では、モデル検証装置は、選択中のブロックが、最後に実行されるブロックであるか否かを判定し、肯定判定が得られた場合には(S430:Yes)、本処理を終了すると共に、否定判定が得られた場合には(S430:No)、S435に処理を移行する。 In S430, the model verification apparatus determines whether or not the selected block is the block to be executed last. If an affirmative determination is obtained (S430: Yes), the process ends. If a negative determination is obtained (S430: No), the process proceeds to S435.
S435では、モデル検証装置は、比較モデルにおける選択中のブロックの演算結果(出力データ)を、基準モデルにおける選択中のブロックの出力データに置き換えることで、次以降に実行されるブロックへの入力データを同一にする(換言すれば、比較モデルにおける選択中のブロックで生成された誤差をキャンセルする)。そして、S440に処理を移行する。 In S435, the model verification apparatus replaces the calculation result (output data) of the block being selected in the comparison model with the output data of the block being selected in the reference model, so that the input data to the block to be executed next and thereafter (In other words, the error generated in the selected block in the comparison model is canceled). Then, the process proceeds to S440.
S440では、モデル検証装置は、次に実行されるべきブロックを選択し、S415に処理を移行する。
次に、モデル検証装置のディスプレイ10に表示される、比較処理での各ブロックの比較結果を示す表示画面500について、図6を用いて説明する。
In S440, the model verification apparatus selects a block to be executed next, and proceeds to S415.
Next, a
表示画面500には、基準モデル(或いは比較モデル)を表示するモデル表示領域510が設けられており、モデル表示領域510には、基準モデルを構成する各ブロック(A演算ブロック511〜C演算ブロック513等)が表示される。これらのブロックは、比較処理における誤差の判定結果に応じて異なる態様で表示される。
The
なお、図6の表示画面500は、一例として、誤差の絶対値の許容範囲として、ブロックにて用いられている固定小数点数型変数(或いは、ブロックからの出力データが保存される固定小数点数型変数)の重み(1LSB)が設定されている場合における、各ブロックの表示態様を示している。
Note that the
表示画面500では、出力データの誤差の絶対値が重みを超えるC演算ブロック513については、最も目立つ態様で強調表示がなされている。また、本実施形態の比較処理では、許容範囲を超えるブロックについてのみ強調表示を行うものとしたが、表示画面500では、許容範囲内の誤差が生じているB演算ブロック512についても、強調表示がなされている。
In the
また、モデル表示領域510の下方には、各ブロックの誤差を表示する誤差表示領域520が設けられており、該領域では、各ブロックにおける誤差と、該誤差が許容範囲内か否かが表示されている。
An
[効果]
本実施形態の検証作業フローでは、比較モデルから得られる演算結果と理論値との比較により、該演算結果に許容範囲を超える誤差が含まれていることが判明した場合には、モデル検証装置により比較処理が行われる。そして、比較処理では、基準モデル並びに比較モデルにおける各ブロックについて、各モデルから得られる演算結果を比較した結果が表示される。
[effect]
In the verification work flow of the present embodiment, if it is found by comparison between the calculation result obtained from the comparison model and the theoretical value that the calculation result includes an error exceeding the allowable range, the model verification apparatus Comparison processing is performed. In the comparison process, the result of comparing the calculation results obtained from each model is displayed for each block in the reference model and the comparison model.
このため、各ブロックについて、基準モデルから得られる演算結果と比較モデルから得られる演算結果とがどの程度乖離しているかを容易に把握することができ、比較モデルにて生じる演算誤差の原因となっているブロックを容易に特定することができる。 For this reason, for each block, it can be easily grasped how much the calculation result obtained from the reference model and the calculation result obtained from the comparison model are different, which causes a calculation error in the comparison model. Can be easily identified.
[他の実施形態]
(1)本実施形態の比較処理のS415では、基準モデル,比較モデルにおける全てのブロックが予め定められた順序で実行され、続くS420にて全てのブロックについて演算結果の比較が行われる。しかしながら、設計支援装置は、開発者からの指示に基づき特定のブロックを選択すると共に、選択したブロックの入力値として、各モデルに対し同一の値を設定しても良い。そして、比較処理のS415において、設定した入力値を用いて選択したブロックのみを実行し、続くS420,S425にて該ブロックについての比較結果のみを表示しても良い。このような場合であっても、各モデルの演算結果が相違する原因となっている箇所を容易に見つけ出すことができる。
[Other Embodiments]
(1) In S415 of the comparison process of the present embodiment, all the blocks in the reference model and the comparison model are executed in a predetermined order, and in S420, the operation results are compared for all the blocks. However, the design support apparatus may select a specific block based on an instruction from the developer and set the same value for each model as an input value of the selected block. Then, only the block selected using the set input value may be executed in S415 of the comparison process, and only the comparison result for the block may be displayed in subsequent S420 and S425. Even in such a case, it is possible to easily find a location that causes a difference in the calculation result of each model.
(2)また、本実施形態の比較処理のS435では、誤差をキャンセルする処理を行っているが、該処理を行わなくても良い。こうすることにより、各ブロックで累積的に生じている誤差に基づき、各モデルの演算結果が相違する原因となっている箇所を見つけ出すことができる。 (2) Further, in S435 of the comparison process of the present embodiment, a process for canceling the error is performed, but the process may not be performed. By doing so, it is possible to find a location that causes a difference in the calculation result of each model based on the error generated cumulatively in each block.
(3)また、本実施形態では、演算精度が高いモデルを基準モデル、演算精度の低いモデルを比較モデルとしているが、これに限定されることは無く、演算精度が低いモデルを基準モデル、演算精度の高いモデルを比較モデルとしても良い。このような場合であっても、同様の効果を得ることができる。 (3) In this embodiment, a model with high calculation accuracy is used as a reference model, and a model with low calculation accuracy is used as a comparison model. However, the present invention is not limited to this. A model with high accuracy may be used as a comparative model. Even in such a case, the same effect can be obtained.
(4)また、本実施形態の比較処理では、一つのブロック単位で演算結果の比較が行われているが、複数のブロック単位で演算結果の比較を行っても良い。このような場合であっても、比較モデルにて生じる演算誤差の原因となっている箇所を容易に特定することができる。 (4) In the comparison processing of this embodiment, the calculation results are compared in units of one block, but the calculation results may be compared in units of a plurality of blocks. Even in such a case, it is possible to easily identify the location that causes the calculation error that occurs in the comparison model.
(5)また、本実施形態では、作業フロー200に従いモデルベース開発が行われた場合を例に挙げて、モデル検証装置により行われる比較処理について説明したが、このような場合に限らず、随時、モデル検証装置を用いて比較処理を行うことができる。すなわち、浮動小数点数モデル220と固定小数点数モデル230や、固定小数点数モデル230とソースコードモデル260のように、同一の演算処理を表しているが、用いられる変数の型や、対応するブロックにおける手順の一部等が異なる二つのモデルが存在する場合には、これらのモデルを対象として比較処理を行うことができる。こうすることにより、これらのモデルにおける演算精度の相違の原因となっている箇所を、容易に見つけ出すことができる。
(5) In the present embodiment, the case where model-based development is performed according to the
[特許請求の範囲との対応]
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
[Correspondence with Claims]
The correspondence between the terms used in the description of the above embodiment and the terms used in the description of the claims is shown.
モデル検証装置が設計支援装置に、モデル検証ツールが設計支援プログラムに相当し、ブロックが演算ステップに相当する。
また、比較処理のS415が基準モデル実行手段,比較モデル実行手段,基準モデル実行手順,比較モデル実行手順に、S420が比較手段,比較手順に、S425が表示手段,表示手順に、S435が調整手段に相当する。
The model verification device corresponds to a design support device, the model verification tool corresponds to a design support program, and the blocks correspond to calculation steps.
Further, S415 of the comparison process is a reference model execution means, a comparison model execution means, a reference model execution procedure, a comparison model execution procedure, S420 is a comparison means, a comparison procedure, S425 is a display means, a display procedure, and S435 is an adjustment means. It corresponds to.
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…誤差表示領域。 DESCRIPTION OF SYMBOLS 1 ... PC, 10 ... Display, 20 ... HDD, 30 ... CPU, 40 ... ROM, 50 ... RAM, 60 ... Input device, 100 ... Model, 110 ... Source code, 200 ... Work flow, 210 ... Control specification, 220 ... Floating point number model, 230 ... Fixed point number model, 240 ... Model verification work, 250 ... Fixed point number code, 260 ... Source code model, 270 ... Code verification work, 500 ... Display screen, 510 ... Model display area, 520 ... Error display area.
Claims (10)
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手段と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る比較モデル実行手段と、
同一の前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果とを比較する比較手段と、
前記比較手段による比較結果に基づき表示を行う表示手段と、
を備えることを特徴とする設計支援装置。 A model representing a calculation process composed of a plurality of calculation steps is set as a reference model, a predetermined input value is set, the calculation process is executed based on the reference model, and calculation results in the calculation steps are obtained. A reference model execution means;
A model representing the arithmetic processing similar to the reference model, in which at least one of the calculation steps is described in a manner different from the reference model, and the same input as the reference model execution means Comparison model execution means for setting the value and executing the calculation processing based on the comparison model to obtain the calculation result in each of the calculation steps;
Comparing means for comparing the calculation result obtained by the reference model execution means with the calculation result obtained by the comparison model execution means for the same calculation step;
Display means for displaying based on a comparison result by the comparison means;
A design support apparatus comprising:
前記基準モデル実行手段による前記演算処理の実行時と、前記比較モデル実行手段による前記演算処理の実行時とにおいて、同一の前記演算ステップの入力値が同一の値となるように調整する調整手段をさらに備えること、
を特徴とする設計支援装置。 The design support apparatus according to claim 1,
An adjusting unit configured to adjust an input value of the same calculation step to be the same value when the calculation process is performed by the reference model execution unit and when the calculation process is performed by the comparison model execution unit; Further preparation,
Design support device characterized by
前記演算処理は、それぞれの前記演算ステップが予め定められた順番で実行されると共に、前記演算ステップでの演算結果が、後に実行される前記演算ステップの入力値となるよう構成されており、
前記基準モデルでは、前記比較モデルに比べ、より高い精度で演算結果が得られる態様で前記演算ステップが記述されており、
前記調整手段は、前記比較モデル実行手段による前記演算処理の実行時の前記演算ステップの入力値が、前記基準モデル実行手段による前記演算処理の実行により得られた同一の前記演算ステップの入力値となるよう調整すること、
を特徴とする設計支援装置。 The design support apparatus according to claim 2,
The calculation process is configured such that each calculation step is executed in a predetermined order, and the calculation result in the calculation step is an input value of the calculation step to be executed later,
In the reference model, the calculation step is described in a manner in which the calculation result is obtained with higher accuracy than the comparison model,
The adjustment means is configured such that the input value of the calculation step at the time of execution of the calculation process by the comparison model execution means is the same as the input value of the calculation step obtained by the execution of the calculation process by the reference model execution means. Adjusting to be
Design support device characterized by
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手段により実行された前記演算ステップに関して、前記基準モデル実行手段と同一の入力値を用いて前記比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手段と、
同一の前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果とを比較する比較手段と、
前記比較手段による比較結果に基づき表示を行う表示手段と、
を備えることを特徴とする設計支援装置。 A model representing a calculation process composed of a plurality of calculation steps is used as a reference model, a predetermined input value is set, one of the calculation steps is executed based on the reference model, and a reference model is executed to obtain a calculation result. Means,
A model representing the same arithmetic processing as the reference model, wherein at least one of the calculation steps is a model described in a different form from the reference model, and is executed by the reference model execution means With respect to the calculation step, a comparison model execution unit that executes the calculation step based on the comparison model using the same input value as the reference model execution unit, and obtains a calculation result;
Comparing means for comparing the calculation result obtained by the reference model execution means with the calculation result obtained by the comparison model execution means for the same calculation step;
Display means for displaying based on a comparison result by the comparison means;
A design support apparatus comprising:
前記表示手段は、前記演算ステップに対応する箇所と、該演算ステップについての前記比較結果とを関連付けた状態で、前記基準モデル或いは前記比較モデルを表示すること、
を特徴とする設計支援装置。 The design support apparatus according to any one of claims 1 to 4,
The display means displays the reference model or the comparison model in a state in which the location corresponding to the calculation step is associated with the comparison result for the calculation step;
Design support device characterized by
前記比較手段は、前記演算ステップについて、前記基準モデル実行手段により得られた演算結果と、前記比較モデル実行手段により得られた演算結果との差分を算出し、該差分に関する情報を前記比較結果とすること、
を特徴とする設計支援装置。 The design support apparatus according to any one of claims 1 to 5,
The comparison means calculates a difference between the calculation result obtained by the reference model execution means and the calculation result obtained by the comparison model execution means for the calculation step, and information about the difference is calculated as the comparison result. To do,
Design support device characterized by
前記基準モデルでは、前記比較モデルに比べ、より高い精度で演算結果が得られる態様で前記演算ステップが記述されており、
前記比較手段は、前記演算ステップについての前記差分が予め定められた許容範囲内か否かを判定し、該判定結果を前記比較結果とすること、
を特徴とする設計支援装置。 The design support apparatus according to claim 6,
In the reference model, the calculation step is described in a manner in which the calculation result is obtained with higher accuracy than the comparison model,
The comparing means determines whether the difference with respect to the calculation step is within a predetermined allowable range, and sets the determination result as the comparison result;
Design support device characterized by
前記比較手段による前記差分の判定に用いられる前記許容範囲とは、該差分に係る前記演算ステップの入力値に含まれることが想定される最大誤差に基づき設定されること、
を特徴とする設計支援装置。 The design support apparatus according to claim 7,
The allowable range used for the determination of the difference by the comparison means is set based on a maximum error assumed to be included in the input value of the calculation step related to the difference;
Design support device characterized by
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手順と同一の入力値を設定して該比較モデルに基づき該演算処理を実行してそれぞれの前記演算ステップにおける演算結果を得る比較モデル実行手順と、
同一の前記演算ステップについて、前記基準モデル実行手順で得られた演算結果と、前記比較モデル実行手順で得られた演算結果とを比較する比較手順と、
前記比較手順にて得られた比較結果に基づき表示を行う表示手順と、
をコンピュータに実行させることを特徴とする設計支援プログラム。 A model representing a calculation process composed of a plurality of calculation steps is set as a reference model, a predetermined input value is set, the calculation process is executed based on the reference model, and calculation results in the calculation steps are obtained. Reference model execution procedure,
A model representing the same arithmetic processing as the reference model, in which at least one of the calculation steps is described in a mode different from the reference model, and the same input as the reference model execution procedure A comparison model execution procedure for setting the value and executing the calculation process based on the comparison model to obtain the calculation result in each of the calculation steps;
For the same calculation step, a comparison procedure for comparing the calculation result obtained in the reference model execution procedure with the calculation result obtained in the comparison model execution procedure;
A display procedure for displaying based on the comparison result obtained in the comparison procedure;
A design support program characterized by causing a computer to execute.
前記基準モデルと同様の前記演算処理を表すモデルであって、少なくとも一つの前記演算ステップが前記基準モデルとは異なる態様で記述されているモデルを比較モデルとし、前記基準モデル実行手順にて実行された前記演算ステップに関して、前記基準モデル実行手順と同一の入力値を用いて前記比較モデルに基づき該演算ステップを実行し、演算結果を得る比較モデル実行手順と、
同一の前記演算ステップについて、前記基準モデル実行手順で得られた演算結果と、前記比較モデル実行手順で得られた演算結果とを比較する比較手順と、
前記比較手順にて得られた比較結果に基づき表示を行う表示手順と、
をコンピュータに実行させることを特徴とする設計支援プログラム。 A model representing a calculation process composed of a plurality of calculation steps is used as a reference model, a predetermined input value is set, one of the calculation steps is executed based on the reference model, and a reference model is executed to obtain a calculation result. Procedure and
A model representing the calculation process similar to the reference model, wherein at least one of the calculation steps is a model described in a different form from the reference model, and is executed in the reference model execution procedure. With respect to the calculation step, a comparison model execution procedure for executing the calculation step based on the comparison model using the same input values as the reference model execution procedure and obtaining a calculation result;
For the same calculation step, a comparison procedure for comparing the calculation result obtained in the reference model execution procedure with the calculation result obtained in the comparison model execution procedure ;
A display procedure for displaying based on the comparison result obtained in the comparison procedure;
A design support program characterized by causing a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011063119A JP5589919B2 (en) | 2011-03-22 | 2011-03-22 | Design support device, design support program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011063119A JP5589919B2 (en) | 2011-03-22 | 2011-03-22 | Design support device, design support program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012198804A JP2012198804A (en) | 2012-10-18 |
JP5589919B2 true JP5589919B2 (en) | 2014-09-17 |
Family
ID=47180943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011063119A Active JP5589919B2 (en) | 2011-03-22 | 2011-03-22 | Design support device, design support program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5589919B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6519530B2 (en) * | 2016-06-02 | 2019-05-29 | 株式会社デンソー | Verification apparatus, verification program, and verification method |
KR102564456B1 (en) | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | Method and apparatus for quantizing parameter of neural network |
JP7318485B2 (en) * | 2019-10-25 | 2023-08-01 | 株式会社デンソー | Automatic code generation method, code program, electronic controller, automatic code generation program, and automatic code generation device |
JP7415593B2 (en) * | 2020-01-24 | 2024-01-17 | 株式会社デンソー | Code inspection tools, code inspection methods |
JP7352107B2 (en) * | 2021-09-24 | 2023-09-28 | 東芝情報システム株式会社 | Arithmetic error warning device and arithmetic error warning program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61134841A (en) * | 1984-12-05 | 1986-06-21 | Nec Corp | Program production system |
JP4403945B2 (en) * | 2003-12-19 | 2010-01-27 | 株式会社デンソー | Inspection method, inspection apparatus and inspection program for control program |
JP2010282551A (en) * | 2009-06-08 | 2010-12-16 | Toyota Motor Corp | Information processing apparatus |
-
2011
- 2011-03-22 JP JP2011063119A patent/JP5589919B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012198804A (en) | 2012-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5589919B2 (en) | Design support device, design support program | |
CN110506256B (en) | Method for generating source code | |
US20190258460A1 (en) | Method and system for generating a software component | |
JP2005078243A (en) | Microcomputer resource consumption estimating program, microcomputer resource consumption estimating device, and program generating method | |
EP3721303B1 (en) | Simulation apparatus, system, method and program | |
JP2014174728A (en) | Cost calculation device, cost calculation method, and program | |
US11126408B2 (en) | Incremental code generation method | |
JP6471615B2 (en) | Performance information generation program, performance information generation method, and information processing apparatus | |
JP2012185542A (en) | Code generation device and code generation program | |
JP5811978B2 (en) | Test case generation apparatus and test case generation method for model-based control apparatus | |
JP2013161219A (en) | Code generation device and code generation program | |
JP6320269B2 (en) | Software test support apparatus and software test support program | |
US10223077B2 (en) | Determination of signals for readback from FPGA | |
JP6519530B2 (en) | Verification apparatus, verification program, and verification method | |
JP2008090699A (en) | Method, apparatus and program of trace logging | |
JP2015056140A (en) | Clone detection method and clone common function method | |
JP4529964B2 (en) | Simulation device, simulation method, and simulation program | |
JP2013045421A (en) | Maintenance degree measurement device | |
US20100077383A1 (en) | Simulation method and storage medium for storing program | |
JP4196773B2 (en) | Electronic control device design and development system, program, recording medium | |
JP2010009435A (en) | Software development environment, and equipment mounted with software developed using the same | |
US20150310134A1 (en) | Interference detection in a three-dimensional data model | |
JP5602273B1 (en) | Power system simulator, power system simulation program, and simulation method | |
JP2007323299A (en) | Apparatus and program for determining review execution order, recording medium with the program stored, and method for determining review execution order | |
JP5867055B2 (en) | Control device and simulation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130730 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140526 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140701 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140714 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5589919 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |