(57)【要約】【課題】制御プログラムのモデルベース開発においてＲＰＴコントローラのような高性能コントローラを用いずにラピッドプロトタイピングを実施可能な開発支援装置を提供する。【解決手段】入力装置と、前記入力装置から得られる操作入力信号に応じて車載ＥＣＵに実装すべき制御プログラムのモデルベース開発を支援する開発支援装置であって、浮動小数点演算モデルとして予め作成された制御モデルを固定小数点演算モデルに変換するモデル変換手段を備える。【選択図】図１
2012208843.tif 000002
【特許請求の範囲】
【請求項１】
入力装置と、前記入力装置から得られる操作入力信号に応じて車載ＥＣＵに実装すべき制御プログラムのモデルベース開発を支援する開発支援装置であって、
浮動小数点演算モデルとして予め作成された制御モデルを固定小数点演算モデルに変換するモデル変換手段を備えることを特徴とする開発支援装置。
【請求項２】
前記モデル変換手段は、前記浮動小数点演算モデルとして予め作成された制御モデルの構成要素の内、浮動小数点演算型の構成要素を固定小数点演算型に自動設定することを特徴とする請求項１に記載の開発支援装置。
【請求項３】
前記モデル変換手段は、共通する前記浮動小数点演算型の構成要素を固定小数点演算型に自動設定すると共に、一括的に前記固定小数点演算型の取り得るデータ範囲及び必要精度を自動設定することを特徴とする請求項２に記載の開発支援装置。
【請求項４】
前記モデル変換手段は、共通する前記浮動小数点演算型の構成要素を固定小数点演算型に自動設定すると共に、個別的に前記固定小数点演算型の取り得るデータ範囲及び必要精度を自動設定することを特徴とする請求項２に記載の開発支援装置。
【請求項５】
前記モデル変換手段は、前記自動設定後の各構成要素と、演算型、該演算型の取り得るデータ範囲及び必要精度とを対応付けたテーブルデータを新たに作成することを特徴とする請求項３または４に記載の開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発支援装置に関する。
【背景技術】
【０００２】
従来、ＥＣＵ(Electric Control Unit)の制御プログラムの開発手法として、シミュレータプログラムが実装された開発用コンピュータ上で、制御モデル（制御ロジックをブロック線図等によってグラフィカルに表現したもの）の作成、及び制御仕様に対する制御モデル（つまり制御ロジック）の適合性の検証を行い、検証した制御モデルから制御プログラムのソースコードを自動生成するモデルベース開発が知られている。
【０００３】
新規制御の試作段階では頻繁に設計変更を繰り返すことがある為、この段階で量産向け制御プログラムの実装設計を行うのは非効率である。そこで、近年では、ラピッドプロトタイプコントローラと呼ばれる高性能コントローラ（以下ＲＰＴコントローラと称す）を新規制御の試作段階で用いることがある。ラピッドプロトタイプコントローラでは、ＥＣＵ全ての制御プログラムをＲＰＴコントローラ上で開発する方法（フルパス方式のラピッドプロトタイピング）とラピッドプロトタイプコントローラを開発用コンピュータ及び既存ＥＣＵにバイパス接続し、既存ＥＣＵ上で実行される既存制御ロジックと、ＲＰＴコントローラ上で実行される新規制御ロジックとで実機が制御されるように両装置を協調動作させながら実機試験を行うことで、新規制御ロジックの検証を効率的に行う開発手法（所謂、バイパス方式のラピッドプロトタイピング）があり、一部の制御のみを新規開発する場合、後者が採用されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４５２０４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来では、バイパス方式のラピッドプロトタイピングを行う場合、ＲＰＴコントローラを利用するという都合上、以下のような問題点があった。
（１）ＲＰＴコントローラは、開発用コンピュータから送られる開発対象の制御プログラムに従って動作するが、この制御プログラムは、浮動小数点演算型の制御モデルを基に生成されたソースコードをＰＲＴコントローラ専用のコンパイラによって機械語に変換したものである。つまり、ＲＰＴコントローラは、浮動小数点演算を実行可能な高性能ＣＰＵ(Central Processing Unit)を備えているため、比較的高価である。
（２）既存ＥＣＵ側にＲＰＴコントローラとの通信を可能とする専用の通信インターフェースプログラムを組み込む必要があるため、開発工数が増大する。
【０００６】
本発明は、上述した事情に鑑みてなされたものであり、制御プログラムのモデルベース開発において、ＲＰＴコントローラのような高性能コントローラを用いずにラピッドプロトタイピングを実施可能な開発支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明では、開発支援装置に係る第１の解決手段として、入力装置と、前記入力装置から得られる操作入力信号に応じて車載ＥＣＵに実装すべき制御プログラムのモデルベース開発を支援する開発支援装置であって、浮動小数点演算モデルとして予め作成された制御モデルを固定小数点演算モデルに変換するモデル変換手段を備えることを特徴とする。
【０００８】
また、本発明では、開発支援装置に係る第２の解決手段として、上記第１の解決手段において、前記モデル変換手段は、前記浮動小数点演算モデルとして予め作成された制御モデルの構成要素の内、浮動小数点演算型の構成要素を固定小数点演算型に自動設定することを特徴とする。
【０００９】
また、本発明では、開発支援装置に係る第３の解決手段として、上記第２の解決手段として、前記モデル変換手段は、共通する前記浮動小数点演算型の構成要素を固定小数点演算型に自動設定すると共に、一括的に前記固定小数点演算型の取り得るデータ範囲及び必要精度を自動設定することを特徴とする。
【００１０】
また、本発明では、開発支援装置に係る第４の解決手段として、上記第２の解決手段において、前記モデル変換手段は、共通する前記浮動小数点演算型の構成要素を固定小数点演算型に自動設定すると共に、個別的に前記固定小数点演算型の取り得るデータ範囲及び必要精度を自動設定することを特徴とする。
【００１１】
また、本発明では、開発支援装置に係る第５の解決手段として、上記第３または第４の解決手段として、前記モデル変換手段は、前記自動設定後の各構成要素と、演算型、該演算型の取り得るデータ範囲及び必要精度とを対応付けたテーブルデータを新たに作成することを特徴とする。
【発明の効果】
【００１２】
シミュレータ上で制御モデルは浮動小数点演算モデルとして作成される一方、ＥＣＵには固定小数点演算しか実行できない安価なマイコンが内蔵されている。つまり、ＲＰＴコントローラのような浮動小数点演算が可能な高性能コントローラを用いずにラピッドプロトタイピングを実施するためには、開発支援装置側に浮動小数点演算モデルとして予め作成された制御モデルを固定小数点演算モデルに変換する機能を設ける必要がある。
従って、本発明に係る開発支援装置によれば、制御プログラムのモデルベース開発において、ＲＰＴコントローラのような高性能コントローラを用いずにラピッドプロトタイピングを実施可能であり、開発コスト及び開発工数の増大を防止できる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る開発支援装置１のブロック構成図（ａ）と、モデル変換ツール１４ｂによるモデル変換処理を表すフローチャート（ｂ）である。
【図２】開発対象の新規制御プログラム（制御ロジック）をブロック線図によって表現した制御モデルの一例である。
【図３】図２に示す当初の制御モデル（浮動小数点演算モデル）をテキスト表現したもの（ａ）〜（ｃ）と、当初、記憶装置１３に記憶されているデータディクショナリ１３ｇ（ｄ）である。
【図４】固定小数点演算モデルに変換された後の制御モデルをテキスト表現したもの（ａ）〜（ｃ）と、モデル変換後に記憶装置１３に記憶されるデータディクショナリ１３ｇ（ｄ）である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態について、図面を参照しながら説明する。
図１は、本実施形態に係る開発支援装置１の機能ブロック構成図である。本開発支援装置１は、車載ＥＣＵ２に実装すべき制御プログラムのモデルベース開発を支援する装置（例えばパーソナルコンピュータ）であり、入力装置１１、表示装置１２、記憶装置１３及び処理装置１４を備えている。
【００１５】
入力装置１１は、例えばキーボードやマウス等から構成されており、ユーザによる操作入力に応じた信号（以下、操作入力信号と称す）を処理装置１４に出力するものである。表示装置１２は、例えば液晶ディスプレイ等であり、処理装置１４から入力される画像信号に応じた画像を表示するものである。これら入力装置１１及び表示装置１２は、本開発支援装置１のグラフィカルユーザインターフェース（ＧＵＩ）に相当する。
【００１６】
記憶装置１３は、本開発支援装置１に各種機能を実現させるための各種ソフトウェアを予め記憶している、例えばＨＤＤ(Hard Disk Drive)等の不揮発性記憶装置であり、処理装置１４からの書込み要求に応じてデータの書込み（記憶）を行う一方、処理装置１４からの読出し要求に応じて記憶しているデータを読み出して処理装置１４へ出力する機能を備えている。
【００１７】
処理装置１４は、ＣＰＵやメモリ、通信コントローラ、入出力インターフェース等が一体的に組み込まれたコンピュータモジュール（ＣＰＵボード）であり、入力装置１１から入力される操作入力信号と記憶装置１３に記憶されている各種ソフトウェアに基づいて、本開発支援装置１の全体動作を統括制御するものである。なお、この処理装置１４は、ＣＡＮ(Controller Area Network)或いはＬＩＮ(Local Interconnect Network)等の通信プロトコルに従って車載ＥＣＵ２と通信を行うことができる。
【００１８】
記憶装置１３には、本開発支援装置１に各種機能を実現させるためのソフトウェアとして、ＯＳ(Operating System)１３ａの他、モデルベース開発に用いられるシミュレータ１４ａとしての機能を本開発支援装置１（正確には処理装置１４）に実現させるためのシミュレータプログラム１３ｂ、例えばＭａｔｈｗｏｒｋｓ社が提供しているＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋ（登録商標）が記憶されている。なお、シミュレータプログラム１３ｂには、実行プログラムの他、制御モデルの作成に利用できる汎用的なブロック（制御モデルの構成要素）が多数収容されたブロックライブラリが含まれている。
【００１９】
また、記憶装置１３には、シミュレータ１４ａによって浮動小数点演算モデルとして作成された制御モデルを固定小数点演算モデルに変換するモデル変換ツール１４ｂとしての機能を処理装置１４に実現させるためのモデル変換プログラム１３ｃが記憶されている。また、記憶装置１３には、モデル変換ツール１４ｂによって固定小数点演算モデルに変換された制御モデルからＣコード（Ｃ言語で記述されたソースコード）を自動生成するＣコード自動生成ツール１４ｃとしての機能を処理装置１４に実現させるためのＣコード自動生成プログラム１３ｄが記憶されている。
【００２０】
また、記憶装置１３には、Ｃコード自動生成ツール１４ｃによって生成されたＣコードを、車載ＥＣＵ２に内蔵されたマイコン（図示省略）が実行可能な制御プログラム（機械語で記述されたプログラム）に変換し、レガシーコード１３ｈ（既存の制御プログラム）とのリンクを行うコンパイラ１４ｄとしての機能を処理装置１４に実現させるためのコンパイラプログラム１３ｅが記憶されている。
【００２１】
また、記憶装置１３には、コンパイラ１４ｄによってコンパイル及びリンクが行われた制御プログラムからＲＯＭ(Read Only Memory)データを作成して車載ＥＣＵ２に転送するＥＣＵモニタツール１４ｅとしての機能を処理装置１４に実現させるためのモニタプログラム１３ｆが記憶されている。ここで、ＲＯＭデータとは、車載ＥＣＵ２に内蔵されたＲＯＭ（図示省略）における制御プログラムの書込み先アドレスと、その書込み先アドレスに書込むべき制御プログラムの構成データとの対応関係を表すデータである。
【００２２】
なお、記憶装置１３には、モデル変換ツール１４ｂによって制御モデルを浮動小数点演算モデルから固定小数点演算モデルに変換する際に利用されるデータディクショナリ１３ｇと、前述のレガシーコード１３ｈが記憶されている。詳細は後述するが、データディクショナリ１３ｇとは、制御モデルを構成する各ブロックの名称と、その変数の車載ＥＣＵ２内での格納先を表すクラス（Class）と、演算型(Type)、分解能(LSB)及びオフセット量(OFFSET)等のスケーリング情報との対応関係を表すテーブルデータである。
【００２３】
次に、上記のように構成された本開発支援装置１と既存の車載ＥＣＵ２を利用したラピッドプロトタイピングによって、新規制御プログラムのモデルベース開発を行う手法について説明する。
【００２４】
図２は、開発対象の新規制御プログラム（制御ロジック）をブロック線図によって表現した制御モデルの一例である。ユーザは、シミュレータ１４ａの起動後、ＧＵＩを使用してブロックライブラリから所望のブロックを選択し、モデリングウインドウ上で各ブロックを結線することで図２に示すような制御モデルを容易に作成することができる。
【００２５】
図２に示すように、開発対象の制御モデルは、１０個のブロックＢ１〜Ｂ１０から構成されている。図３（ａ）は、図２に示す制御モデルの全体をテキスト表現したものである。この図３（ａ）において、「Block Type」はブロックの種類を表し、「Name」はブロックの名称を表し、「Type」はブロックの演算型を表し、「Value」はブロックのパラメータ値を表している。また、「System」とは、サブシステム化されたブロック（以下、サブシステムブロックと称す）を表している。
【００２６】
つまり、ブロックＢ１は、種類が入力ポート（Inport）、名称が“Sat_G”、演算型が浮動小数点演算型（Double）である。ブロックＢ２は、種類が入力ポート（Inport）、名称が“Main_G”、演算型が浮動小数点演算型（Double）である。ブロックＢ３は、種類が出力ポート（Outport）、名称が“FireFlag”、演算型が論理演算型（Bool）である。ブロックＢ４は、名称が“Satellite LPF”のサブシステムブロックである。なお、このブロックＢ４の内容については省略する。
【００２７】
ブロックＢ５は、名称が“Main LPF”のサブシステムブロックである。図２に示すように、このブロックＢ５は、３個のブロックＢ５a、Ｂ５b及びＢ５cから構成されている。図３（ｂ）は、ブロックＢ５の内容をテキスト表示したものである。この図に示すように、ブロックＢ５aは、種類が入力ポート（Inport）、名称が“Main_G”、演算型が浮動小数点演算型（Double）である。また、ブロックＢ５bは、種類が出力ポート（Outport）、名称が“MainLPF_G”、演算型が浮動小数点演算型（Double）である。また、ブロックＢ５cは、種類がローパスフィルタ（Discrete Filter）、名称が”Discrete Filter”、 演算型が浮動小数点演算型（Double）である。
【００２８】
図３（ａ）に示すように、ブロックＢ６は、名称が“Low Speed Detection”のサブシステムブロックである。図２に示すように、このブロックＢ６は、５個のブロックＢ６a、Ｂ６b、Ｂ６c、Ｂ６d及びＢ６eから構成されている。図３（ｃ）は、ブロックＢ６の内容をテキスト表示したものである。この図に示すように、ブロックＢ６aは、種類が入力ポート（Inport）、名称が“MainLPF_G”、演算型が浮動小数点演算型（Double）である。ブロックＢ６bは、種類が出力ポート（Outport）、名称が“LowFlag”、演算型が論理演算型（Bool）である。
【００２９】
ブロックＢ６cは、種類が時間積分器（Discrete Time Integrator）、名称が”Discrete-Time Integrator”、 演算型が浮動小数点演算型（Double）である。ブロックＢ６dは、種類が関係演算子（Relational Operator）、名称が”Relational Operator”、 演算型が論理演算型（Bool）である。ブロックＢ６eは、種類が定数（Constant）、名称が”Constant1”、 演算型が浮動小数点演算型（Double）、パラメータ値が“LowSpeedThreshold”である。
【００３０】
なお、図２において、ブロックＢ７は、名称が“Mid Speed Detection”のサブシステムブロックであり、ブロックＢ８は、名称が“Safing Detection”のサブシステムブロックであるが、図３（ａ）では省略している。図３（ａ）に示すように、ブロックＢ９は、種類が論理和演算子（Logic_OR）、名称が"Logical Operator"、演算型が論理演算型（Bool）である。ブロックＢ１０は、種類が論理積演算子（Logic_AND）、名称が"Logical Operator1"、演算型が論理演算型（Bool）である。
【００３１】
以上のように、開発対象の制御モデルは、当初、シミュレータ１４ａによって浮動小数点演算モデルとして作成される。図３（ｄ）は、記憶装置１３に当初記憶されている制御モデルのデータディクショナリ１３ｇを表している。この図に示すように、当初のデータディクショナリ１３ｇには、制御モデルの入出力ポートであるブロックＢ１、Ｂ２、Ｂ３のそれぞれに対応するクラス（Class）、演算型(Type)、分解能(LSB)及びオフセット量(OFFSET)が格納されている。
【００３２】
さて、上記のように、シミュレータ１４ａによって開発対象の制御モデルが浮動小数点演算モデルとして作成された後、モデル変換ツール１４ｂは、図１（ｂ）に示すフローチャートのステップＳ１〜Ｓ６の処理を実行することで、浮動小数点演算モデルとして作成された制御モデルを固定小数点演算モデルに変換する。
【００３３】
この図１（ｂ）に示すように、モデル変換ツール１４ｂは、まず、シミュレータ１４ａによって浮動小数点演算モデルとして作成された制御モデルを読み込み（ステップＳ１）、入出力信号のスケーリングの自動設定を行う（ステップＳ２）。具体的には、モデル変換ツール１４ｂは、当初のデータディクショナリ１３ｇ（図３（ｄ）参照）から制御モデルの入出力ポート名と一致する変数、つまり"Sat_G"、"Main_G"、"FireFlag"の情報を読出し、これら入出力ポートのスケーリング情報（演算型(Type)、分解能(LSB)及びオフセット量(OFFSET)）を自動設定する。
【００３４】
図４（ａ）に示すように、入出力ポートのスケーリング情報の自動設定により、ブロックＢ１（“Sat_G”）及びブロックＢ２（“Main_G”）の演算型が固定小数点演算型（int16）に設定され、分解能(LSB)が「2＾-8」に設定され、オフセット量が「０」に設定される。なお、論理演算型（Bool）のブロックＢ３（“FireFlag”）については変更はない。このように、モデル変換ツール１４ｂは、浮動小数点演算型のブロックを固定小数点演算型に自動設定すると共に、固定小数点演算型の取り得るデータ範囲及び必要精度を自動設定する。
【００３５】
続いて、モデル変換ツール１４ｂは、ＧＵＩに設定された共通スケーリング情報の自動設定を行う（ステップＳ３）。具体的には、共通スケーリング情報として、演算型(Type)が「int32」、分解能(LSB)が「2＾-15」、オフセット量(OFFSET)が「０」に設定されていると仮定すると、図４（ｃ）に示すように、共通スケーリング情報の自動設定によって共通のブロックについて、演算型(Type)が「int32」、分解能(LSB)が「2＾-15」、オフセット量(OFFSET)が「０」に一括して自動設定される。なお、論理演算型（Bool）のブロックＢ６b、Ｂ６dについては変更はない。また、ブロックＢ６c（時間積分器）のように、演算を行うブロックについては、オーバーフロー発生時のリミット処理を「有効（Limits On）」とする。
【００３６】
続いて、モデル変換ツール１４ｂは、ＧＵＩの設定にサブシステム単位でのスケーリング情報の設定が有る場合、そのサブシステム単位でのスケーリング情報の設定に応じてサブシステムブロックのスケーリング情報の自動設定を行う（ステップＳ４）。具体的には、サブシステム単位でのスケーリング情報の設定として、ローパスフィルタのような高精度の演算を必要とするサブシステム（"Satellite LPF"、"Main LPF"）について、演算型(Type)を「int32」、分解能(LSB)を「2＾-24」、オフセット量(OFFSET)を「０」に設定するよう指定されていたと仮定すると、図４（ｂ）に示すように、サブシステムブロックであるブロックＢ５（"Main LPF"）を構成する全てのブロックＢ５a、Ｂ５b、Ｂ５cの演算型(Type)が「int32」、分解能(LSB)が「2＾-24」、オフセット量(OFFSET)が「０」に設定される。
【００３７】
続いて、モデル変換ツール１４ｂは、スケーリングチェックを行う（ステップＳ５）。具体的には、このステップＳ５において、モデル変換ツール１４ｂは、ブロック前後の演算スケーリング範囲を比較し、制御モデルにスケーリング範囲が大きい信号から小さい信号に変換されている箇所があれば計算値が異常となる可能性があるため、警告メッセージを出力する。
【００３８】
続いて、モデル変換ツール１４ｂは、図４（ｄ）に示すように、上記ステップＳ２、Ｓ３及びＳ４にて自動設定したスケーリング情報（演算型(Type)、分解能(LSB)及びオフセット量(OFFSET)）と、クラス（Class）とを、ブロックの名称と対応付けてデータディクショナリ１３ｇに自動追加する（ステップＳ６）。
以上のようなモデル変換ツール１４ｂの機能によって、浮動小数点演算モデルとして作成された開発対象の制御モデルが固定小数点演算モデルに変換されることになる。
【００３９】
続いて、Ｃコード自動生成ツール１４ｃは、モデル変換ツール１４ｂによって固定小数点演算モデルに変換された制御モデルからＣコードを自動生成する（ステップＳ７）。
続いて、コンパイラ１４ｄは、Ｃコード自動生成ツール１４ｃによって生成されたＣコードを、車載ＥＣＵ２に内蔵されたマイコンが実行可能な制御プログラムに変換し（コンパイルし）、レガシーコード１３ｈとのリンクを行う（ステップＳ８）。
そして、ＥＣＵモニタツール１４ｅは、コンパイラ１４ｄによってコンパイル及びリンクが行われた制御プログラムからＲＯＭデータを作成し（ステップＳ９）、当該作成したＲＯＭデータを車載ＥＣＵ２に転送する（ステップＳ１０）。
【００４０】
上記のようにシミュレータ１４ａ上で制御モデルは浮動小数点演算モデルとして作成される一方、車載ＥＣＵ２には固定小数点演算しか実行できない安価なマイコンが内蔵されている。従来では、ラピッドプロトタイピングを実施するためにＲＰＴコントローラのような浮動小数点演算が可能な高性能コントローラを用いる必要があったが、本開発支援装置１には浮動小数点演算モデルとして作成された制御モデルを固定小数点演算モデルに変換する機能（モデル変換ツール１４ｂ）が設けられている。
【００４１】
つまり、本開発支援装置１によれば、新規制御プログラムのモデルベース開発において、ＲＰＴコントローラのような高性能コントローラを用いずにラピッドプロトタイピングを実施可能である。従って、高価なＲＰＴコントローラが不要となるため開発コストの増大を防止できると共に、既存の車載ＥＣＵ２側にＲＰＴコントローラとの通信を可能とする専用の通信インターフェースプログラムを組み込む必要がないため開発工数の増大を防止できる。
【００４２】
以上、本発明の一実施形態について説明したが、この実施形態はあくまで一例であって本発明の趣旨を逸脱しない範囲において実施形態の細部を種々変更可能であることは勿論である。
【符号の説明】
【００４３】
１…開発支援装置、２…車載ＥＣＵ、１１…入力装置、１２…表示装置、１３…記憶装置、１４…処理装置、１４ｂ…モデル変換ツール（モデル変換手段）、
【図１】
2012208843.tif 000003
【図２】
2012208843.tif 000004
【図３】
2012208843.tif 000005
【図４】
2012208843.tif 000006