(57)【要約】【課題】車両内における制御性能を極力落とすことなく演算処理速度を向上したソフトウェアを生産性良く作成支援できるようにした車両用ソフトウェア作成支援装置、車両用ソフトウェア変換装置、車両用ソフトウェア作成支援装置のプログラム、及び、組込みソフトウェアを提供する。【解決手段】コンピュータは、クランク軸の回転に同期して頻繁に処理が行われる制御モデルＭ１をサブモデルＡｚとし（Ｔ１）、入力値モデルの今回と前回の入力値が許容量以内となる場合には当該サブモデルＡｚをバイパスし、当該条件を満たさない場合に限り当該サブモデルＡｚをサブルーチンにより読出すメインモデルＡｍを追加する（Ｔ２〜Ｔ１４）。そして、コンピュータは組込み用のソフトウェア（ソースコード）に変換する。【選択図】図８
2014067144.tif 000002
【特許請求の範囲】
【請求項１】
入力値モデル（ＩＮ）及び出力値モデル（ＯＵＴ）を含む処理モデルが複数結合されることで作成された第１制御モデル（Ｍ１）の中に特定の入力値モデルが存在するか否か判定し、当該特定の入力値モデルが存在すると判定されたことを条件として、前記第１制御モデル（Ｍ１）をサブモデル（Ａｚ）とし前記特定の入力値モデルの前回値と今回値との時間的変化量が許容量以内であれば当該第１制御モデル（Ｍ１）をバイパスし前回の出力値を出力値モデル（ＯＵＴ）に出力するメインモデル（Ａｍ）を追加する追加手段（２１）、を備え、
車両用ＥＣＵ（１）の組込みソフトウェアを自動生成するときに作成支援するための車両用ソフトウェア作成支援装置。
【請求項２】
前記第１制御モデル（Ｍ１）は、所定優先度よりも高優先度のタスクの制御モデルを含むことを特徴とする請求項１記載の車両用ソフトウェア作成支援装置。
【請求項３】
前記高優先度のタスクの制御モデルは、エンジンの回転同期処理の制御モデルを含むことを特徴とする請求項２記載の車両用ソフトウェア作成支援装置。
【請求項４】
前記第１制御モデル（Ｍ１）の中の前記入力値モデル（ＩＮ）の入力変数の個数が所定個数以下であるか否か判定する第１判定手段（２１）を備え、
前記追加手段（２１）は、前記第１判定手段（２１）により所定個数以下であると判定されたことを条件としてメインモデル（Ａｍ）を追加することを特徴とする請求項１〜３の何れかに記載の車両用ソフトウェア作成支援装置。
【請求項５】
前記特定の入力値モデルの値の許容量は外部からパラメータにより予め設定され、
前記追加手段（２１）が前記第１制御モデル（Ｍ１）をバイパスするメインモデルを追加するときに、当該パラメータを用いて前記特定の入力値モデルの値の許容量を設定してメインモデル（Ａｍ）を追加することを特徴とする請求項１〜４の何れかに記載の車両用ソフトウェア作成支援装置。
【請求項６】
前記第１制御モデル（Ｍ１）の中に、除算、累乗関数、対数関数等の加減算よりも高処理負荷となる処理モデルが所定個数以上含まれているか否か判定する第２判定手段（２１）を備え、
前記追加手段（２１）は、前記第２判定手段（２１）により高処理負荷となる処理モデルが所定個数以上含まれていると判定されたことを条件としてメインモデル（Ａｍ）を追加することを特徴とする請求項１〜５の何れかに記載の車両用ソフトウェア作成支援装置。
【請求項７】
前記追加手段（２１）は、前記第１制御モデル（２１）をバイパスするメインモデル（Ａｍ）を追加するときに、前記前回の出力値を出力値モデル（ＯＵＴ）に出力する代わりに予め定められた所定値を出力値モデル（ＯＵＴ）に出力する処理を追加することを特徴とする請求項１〜６の何れかに記載の車両用ソフトウェア作成支援装置。
【請求項８】
請求項１〜７の何れかに記載のソフトウェア作成支援装置の追加手段により追加されたメインモデル（Ａｍ）とサブモデル（Ａｚ）とを組み合わせた第２制御モデル（Ｍ２）を組込みソフトウェアに変換する変換手段（２１）を備えることを特徴とする車両用ソフトウェア変換装置。
【請求項９】
車両用ソフトウェア作成支援装置（２０）に、
入力値モデル（ＩＮ）を含む処理モデルが複数結合されることで作成された第１制御モデル（Ｍ１）の中に特定の入力値モデルが存在するか否か判定する手順と、
前記特定の入力値モデルが存在すると判定されたことを条件として、前記第１制御モデル（Ｍ１）をサブモデル（Ａｚ）とし前記特定の入力値モデルの値の時間的変化量が許容量以内であれば当該第１制御モデル（Ｍ１）をバイパスするメインモデル（Ａｍ）を追加する手順と、を実行させることを特徴とする車両用ソフトウェア作成支援装置のプログラム。
【請求項１０】
請求項８記載の車両用ソフトウェア変換装置（２０）の変換手段（２１）により変換された組込みソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用ＥＣＵの組込みソフトウェアを作成支援するための車両用ソフトウェア作成支援装置、制御モデルを組込みソフトウェアに変換するための車両用ソフトウェア変換装置、車両用ソフトウェア作成支援装置を動作させるためのプログラム、車両用ソフトウェア変換装置によって変換された組込みソフトウェアに関する。
【背景技術】
【０００２】
例えば車両用ＥＣＵの組込みソフトウェアを開発するための各種ツールが提供されている。代表的には、ＭＡＴＬＡＢ（登録商標）、Ｓｉｍｕｌｉｎｋ（登録商標）等が挙げられる（例えば、特許文献１参照）。このようなツールを用いることで、ユーザはマウスなどのポインティングデバイスを操作し、ＧＵＩ環境下で処理モデルを選択して複数結合することで、動的システムのブロック線図を素早く作成でき、各種条件を設定することでシミュレーションすることができ、組込みソフトウェアを生成できる。
【０００３】
この特許文献１記載の技術によれば、制御ロジックをＥＣＵに実装するときに、ＥＣＵ処理速度の向上およびオブジェクトコードサイズを改善するため、変換対象プログラムに記述された演算式毎に、入力値に対応する出力値を記した演算式と等価な入出力関係を表すマップを作成し、変換対象のプログラムを特定言語プログラムに変換している。
【０００４】
このような作成支援ツールを用いて車両制御の動的システムを構築する場合について説明する。例えばエンジンＥＣＵはクランク軸の回転数、回転角度（例えば３０°毎）に応じて回転同期割込みを発生させて割込制御するロジックを数多く組み合わせている。エンジン回転数が高いと、エンジン回転時間に対する回転同期割込制御処理の時間割合が大きくなる。
【０００５】
このため、ＥＣＵ全体の処理速度に限界を生じたときには、優先度の低いタスク演算を割愛することで処理負荷を軽減しなければならない。このようなとき一部制御性に劣ってしまう。これに対し処理速度の速い演算処理装置を用いることもできるが、エンジン回転数の上限に合わせて、使用する演算処理装置の性能を抑制しなければならない事情もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−３９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来、エンジン回転数が高回転のときに処理負荷が高くなったとしても、演算処理速度の高い演算処理装置を採用することなく、しかも制御性能を落とすことなくタスク演算処理を高速に行うことが望まれている。
【０００８】
例えば、特許文献１に記載されるように、ロジック算出方法を変更して処理負荷を軽減する手法を用いたとしても、同一ロジックが定間隔で呼び出されることになるため、演算回数自体が増加する場合には効果が小さくＥＣＵ処理負荷の増加は避けられない。
【０００９】
本発明の目的は、車両内における制御性能を極力落とすことなく演算処理速度を向上させたソフトウェアを効率良く作成、支援できるようにした車両用ソフトウェア作成支援装置、車両用ソフトウェア変換装置、車両用ソフトウェア作成支援装置のプログラム、及び、組込みソフトウェアを提供することにある。
【課題を解決するための手段】
【００１０】
請求項１に係る発明によれば、入力値モデルを含む処理モデルが複数結合されることで作成された第１制御モデルの中に特定の入力値モデルが存在するか否か判定している。すると、追加手段が追加対象とする制御モデルを絞りこむことができる。そして、特定の入力値モデルが存在すると判定されたことを条件として、第１制御モデルをサブモデルとし、特定の入力値モデルの値の時間的変化量が許容量以内であれば当該第１制御モデルをバイパスする機能を備えたメインモデルを追加する。
【００１１】
このとき、特定の入力値モデルの値の時間的変化量が許容量以内であれば第１制御モデルをバイパスし前回の出力値を出力値モデルに設定しているため、入力値の時間的変化が許容量以内であるときには第１制御モデルの処理時間を削減できる。
【００１２】
また、特定の入力値モデルの値の時間的変化量が許容量以内であれば出力値は前回と今回とでほとんど変化しないため、車両用ＥＣＵによる車両の制御性能を落とす懸念もほとんどなくなる。これにより、車両内の制御性能を極力落とすことなく処理時間を削減でき演算処理速度を向上できる。このようなメインモデルの追加処理を自動的に行うことができるため、ユーザはソフトウェアを効率良く作成できる。なお、組込みソフトウェアは、車両用ＥＣＵに組込むために必要なソースコードまたはオブジェクトコードを意味するものである。
【００１３】
請求項２、３記載の発明のように、高優先度のタスク（例えばエンジンの回転同期処理）の制御モデルに適用すれば、特に頻繁に処理が行われる制御モデルについて処理時間を削減できるようになる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態について車両制御に係る電気的構成を示すブロック図
【図２】コンピュータの電気的構成図
【図３】コンピュータの内部処理の内容を概略的に示す流れ図
【図４】制御モデルの一例
【図５】制御モデルから自動生成したソースコード
【図６】追加判別処理を概略的に表すフローチャート
【図７】タスク処理の優先度の一例
【図８】メインモデルの追加処理を概略的に表すフローチャート
【図９】メインモデル追加後の制御モデルの一例
【図１０】特定の入力値モデルにそれぞれ設定される許容量
【図１１】メインモデル追加後の制御モデルから自動生成されたソースコード
【図１２】エンジン回転数とＣＰＵの負荷率の関係
【図１３】対策前の演算タイミングとタービン流量算出値
【図１４】対策後の演算タイミングとタービン流量算出値
【発明を実施するための形態】
【００１５】
以下、本発明の一実施形態について図面を参照しながら説明する。図１は、電子制御装置（以下、ＥＣＵと称す）の電気的構成をブロック図によって概略的に表している。
図１に示すように、ＥＣＵ１は、マイコン（マイクロコンピュータ）２と、外部入出力回路３とを主として備えている。マイコン２は、ＣＰＵ４、ＲＯＭ５、ＲＡＭ６、タイマ７、入出力ポート８を備え、エンジン１０を制御するための様々な処理を行う。外部入出力回路３は、ＥＣＵ１の外部機器との間で信号の入出力処理を行う。
【００１６】
ＲＯＭ５にはエンジン１０を制御するための各種プログラムが格納されており、ＲＡＭ６には当該プログラムが処理に用いる演算データを一時的に格納する領域が確保されている。ＣＰＵ４はＲＯＭ５に格納された各種プログラムを実行することでエンジン１０を制御する。なお、タイマ７は、各種アクチュエータに噴射パルス信号と点火パルス信号を出力するための回路である。
【００１７】
ＥＣＵ１には、その外部に、インジェクタ（電磁式燃料噴射弁）１１、イグナイタ（点火装置）１２、電子スロットル１３、クランクセンサ１４、水温センサ１５、スロットルセンサ１６など各種アクチュエータやセンサが接続されている。インジェクタ１１はエンジン１０に燃料を噴射する。電子スロットル１３は、エンジン１０の吸入空気量を調節する。イグナイタ１２はエンジン１０の点火プラグ（図示せず）に着火させる。
【００１８】
クランクセンサ１４は、エンジン１０のクランク軸の回転に応じて所定角度毎（例えば３０℃Ａ毎）にエッジをクランク信号として出力する。水温センサ１５は、エンジン１０の冷却水の温度を検出する。スロットルセンサ１６は電子スロットル１３の開度を検出する。これらの各種アクチュエータ、センサはエンジン１０を運転するために設けられる。
【００１９】
外部入出力回路３は、クランクセンサ１４によるクランク信号などをデジタル信号に波形整形しマイコン２に出力する。また、外部入出力回路３はＡ／Ｄ変換器（図示せず）を内蔵しており、水温センサ１５やスロットルセンサ１６によるアナログセンサ信号を入力し、当該Ａ／Ｄ変換器（図示せず）を用いてデジタル信号に変換しマイコン２に出力する。
【００２０】
図２は、このようなＥＣＵ１にエンジン制御プログラムを組込むためのプログラム作成支援を行うコンピュータの電気的構成の概要を示す。本実施形態のコンピュータ２０は、周知のＰＣと同様に、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、表示器２４、記憶装置２５、入出力装置２６、操作部２７などを備える。ＲＯＭ１５にはブートプログラムなどの各種プログラムが格納されており、コンピュータ２０はＲＯＭ１５に格納されたプログラムを実行する。
【００２１】
記憶装置２５は例えばハードディスク装置、ＳＳＤなどの大容量記憶装置などを備えており、各種データファイルなどを記憶する。表示器２４は例えば液晶ディスプレイ等で構成されている。入出力装置２６はＣＰＵ２１の指令に従い記録媒体に記録されたデータファイルを読み出したり、記録媒体にデータファイルを書込んだりする。ここで記録媒体としては、半導体製のメモリカード等を挙げることができる。操作部２７は、キーボード２８やマウス２９などの各種の入力デバイスを備える。
【００２２】
このコンピュータ２０は、記憶装置２５にインストールされたオペレーティングシステムにより動作し、操作部２７の操作に応じたユーザ指令に従い、記憶装置２５に記憶されたアプリケーションプログラムを読み出し、このプログラムに従ってユーザ指令の処理を実行する。
【００２３】
このコンピュータ２０は、例えば業務用の科学技術計算処理に特化して構成されたもので、モデルの構築／改良、シミュレーション、各種パラメータ（演算速度、プログラム容量等）の設定に応じたソースコードの自動生成処理、等を行うことが可能となっており、この処理を実現するための科学技術計算ソフトウェアが記憶装置２５にインストールされている。
【００２４】
この科学技術計算ソフトウェアは、ブロック線図を用いて計算モデルを構築でき、インタプリタとしての機能を有し、計算モデルをプログラムに解釈し、ＥＣＵ１の組込みソフトウェアに変換できる。また、コンピュータ２０はこの科学技術計算ソフトウェアを用いたシミュレーションを実現できる。ユーザが、科学技術計算ソフトウェアをＣＰＵ２１に実行させて操作部２７を操作し、ＧＵＩ(Graphical User Interface)により制御モデルを構築できる。この制御モデルの構築例は後述する。
【００２５】
図３は本実施形態の特徴的なコンピュータ内部のブロックを概略的に示している。
コンピュータ２０は、キーボード２８及びマウス２９などの入力装置により制御仕様３０、ブロック評価値情報３１などがコンピュータ２０に入力されると、ソフトウェア生成装置２０ａにより組込みソフトウェアを生成出力する。コンピュータ２０はソフトウェア作成支援装置、ソフトウェア変換装置として動作する。
【００２６】
コンピュータ２０は、ＲＯＭ２３などに記憶されるプログラムをＣＰＵ２１が実行することで図４に一例を示す制御モデルＭ１を構築し、当該制御モデルＭ１を組込み用のソフトウェア（ここではＣ言語のソースコードＳＣ１：図５に一例を示す）に変換する。また、ユーザ指令に応じてこのソースコードＳＣ１をコンパイルしオブジェクトコード（図示せず）に変換する。図３に示すように、コンピュータ２０の内部処理は、制御モデル生成ルーチン３２、サブモデル生成ルーチン３３、処理モデル記憶ファイル３４、ソフトウェア出力ルーチン３５などの各機能に分けられる。
【００２７】
コンピュータ２０は、ユーザのＧＵＩ操作により処理モデルが入力されると、処理モデルを表示器２４の表示画面上に表示させる。処理モデルは、図４に示すように、制御モデルＭ１の入力変数が設定される入力値モデルＩＮ、制御モデルＭ１の出力値を設定する出力値モデルＯＵＴ、定数値が設定される定数モデルＣＯＮ、各種の演算モデルＯＰ、論理出力モデルＬＯ、条件切換モデルＳＷ、等を含む。
【００２８】
演算モデルＯＰは、加算、減算、乗算、除算による四則演算の他、絶対値演算、累乗演算（平方根等も含む）、対数演算、指数演算、など各種の演算を行うモデルを示す。また、論理出力モデルＬＯは、各種モデルの設定値などを入力し当該入力値に基いて論理出力したり、各種モデルの設定値の比較結果を論理出力するモデルを示し、否定モデル、論理和モデル、論理積モデル（図９に括弧書きで付した符号ＬＯ参照）などがある。
【００２９】
また、条件切換モデルＳＷは、入力値モデルＩＮに設定される入力変数、演算モデルＯＰ及び定数モデルＣＯＮなどに設定される変数、定数の演算結果、論理出力モデルＬＯの出力論理に応じて、複数の入力値のうち何れかを切換出力するモデルを示す。
【００３０】
これらの処理モデルは、例えば図３に示すように処理モデル記憶ファイル３４に記憶されており、ユーザは、このファイル中の処理モデルをＧＵＩ操作によって読出し当該処理モデルを結合することで制御モデルＭ１を構築する。ユーザは、表示器２４に表示されるＧＵＩ構成の編集画面を操作することによって、ブロック線図にて制御モデルＭ１を構築できる。
【００３１】
このソフトウェアにより生成される制御モデルＭ１は、特殊なコンピュータ言語により表現されており、このソフトウェアを通じてインタプリタ方式で実行される。ユーザは、この科学技術計算ソフトウェアにより生成した制御モデルＭ１を直接実行プログラムとしてＥＣＵ１に組込むことはできず、この制御モデルＭ１を例えばＣ言語などの汎用コンピュータ言語のソースコードに変換し、ユーザが適宜そのソースコードを修正、改良した後、コンパイル後のオブジェクトコードをＥＣＵ１に組込む。
【００３２】
例えば、ユーザが最初からＣ言語などの高級言語でプログラムを作成する手法を採用するとプログラムの変更容易性が劣ってしまう。このようなＧＵＩ環境の作成支援ソフトウェアを用いることで、プログラムロジックを視覚的直観的に把握し易くなり、ユーザによる改良も容易になる。
【００３３】
また、このような自動生成ソフトウェアを用いることで、ユーザ指示に応じて、プログラム容量低減を優先するように設定できると共に、プログラム容量が多少大きくなったとしてもプログラム実行速度を優先するように設定でき、ユーザの要望に応じて適宜最終的な組込みソフトウェアの形態を変更することもできる。したがって、プログラムをチューニング後、最終的にＥＣＵ１の組込みプログラム（オブジェクトコード）を自動生成するときに、ユーザ所望のプログラムに容易に加工できる。
【００３４】
さて、以下では具体例を示しながら詳細説明する。図４は各種処理モデルを組み合わせた制御モデルの構築例を示す。この制御モデルＭ１は、下記のターボチャージャーのタービン流量の算出式（１）に基いて、ユーザにより作成される制御モデルを示し、この（１）式に基いてタービン流量算出値Ｑoutを求めている。
【００３５】
【数１】
2014067144.tif 000003
この（１）式において、Ｓはタービンノズル面積、Ｐinはタービン入口圧力、Ｐoutはタービン出口圧力、Ｔinはタービン入口温度、Ｒはガス定数、ｋは比熱比を示す。
【００３６】
この制御モデルＭ１は、１又は複数の入力値モデルＩＮ、今回の出力値を表す出力値モデルＯＵＴを含んで構成されている。制御モデルＭ１を構成する処理モデルと、ソースコードとはほぼ１対１対応するものであり、処理モデルをソースコードに置換することで高級言語プログラムを生成できる。図５は図４の制御モデルから自動生成したＣ言語のソースコードＳＣ１の一例を示す。
【００３７】
しかし、単に車両制御用プログラムに対しこの手法を用いると、例えばエンジン回転同期制御に伴い、例えばクランク角度３０度毎に図５に示す関数演算処理を繰り返し行う必要を生じ、処理時間を必要以上に要することがある。
【００３８】
特に、累乗関数モデル、指数関数モデル、などを制御モデルＭ１に多数含むときには、特にこの処理に時間を多く必要とすることが確認されている。そこで、制御モデルＭ１をソースコードＳＣ１に変換する前に、コンピュータ２０は図６及び図８に概要を示す処理内容を自動的に実行する。これらの図６及び図８に示す処理は、コンピュータ２０の記憶装置２５（例えばハードディスク装置）に予めインストールされたプログラムにより実行される。
【００３９】
車両制御用の制御モデルは、図４に示した制御モデルＭ１に留まらず、多数の制御モデルを組み合わせて相互に関連する。そこで、コンピュータ２０は、ユーザ入力された様々な制御モデルＭ１の全てを対象とし（Ｓ２）、個々に制御モデルＭ１を読込み（Ｓ１）、全ての制御モデルＭ１について下記のステップＳ３、Ｓ５、Ｓ６の判定条件を全て満たすか確認し、入力値モデルの設定値の条件に応じて対象制御モデルの処理をバイパスするようにする。なお、ステップＳ５の処理条件が含まれていれば、ステップＳ３の処理は含まれていてもいなくても良い。
【００４０】
まず、ステップＳ３では読み込まれた制御モデルＭ１が高い優先度に設定されるロジックであるか判定し、ここでは特に回転同期の制御ロジックであるか判定する。これは、回転同期の制御ロジックが、特に高い優先度に設定されるロジックであるため判定条件に加入している。
【００４１】
図７にステップＳ３で判定可能な優先順位の一例を示す。この図７に示すように、車両制御用の回転同期制御ロジックでも様々なタスクに応じて優先順位が異なり、点火処理、噴射処理、点火時期算出処理、噴射量算出処理、ノック検出処理、などは例えばこの順でタスク優先順位が高く設定されている。また、通信処理、ＡＤ値取得処理などはタイマ割込みによって処理が行われる。この図７に示すタスクの優先順位が所定順位以上であることを図６のステップＳ３に代わる条件、又は、ステップＳ３、Ｓ５、Ｓ６の判定条件に加入するようにしても良い。
【００４２】
その後、グローバル変数の出力箇所（すなわち出力値モデル）を制御モデルから抽出する（Ｓ４）。本形態では出力値モデル（Ｑout）を抽出する。そして、ステップＳ５において制御モデルの中に特定の入力値モデルを含むか否か判定する。例えば、図４に示す制御モデルＭ１では、タービン入口温度（Ｔｉｎ）、タービン入口圧力（Ｐｉｎ）、タービン出口圧力（Ｐｏｕｔ）による入力値モデルＩＮが「特定の入力値モデル」として定義されているため、この入力値モデルＩＮが抽出される。
【００４３】
なお、入力値モデルＩＮのうち「特定の入力値モデル」となる条件は、エンジン回転同期処理時間のタイムスケールに比較して変化が緩やかになるパラメータとすると良い。タービン入口温度は入力値の変化量が穏やかであり、タービン入口圧力も過渡期を除けば入力値の変化が緩やかになっている。
【００４４】
また、これらのパラメータ以外にも、例えば、速度、油圧、吸気圧、外気温、などを入力値としたモデルの場合、これらのパラメータは回転同期処理時間に比較してその変化が緩やかであるため「特定の入力値モデル」としての条件を満たす。時間的に非連続となる入力値パラメータは「特定の入力値モデル」としての条件を満たさない。
【００４５】
ステップＳ３、Ｓ５の判定条件を共に満たす場合には、さらに、ステップＳ６において、グローバル変数を算出するために必要な特定の入力値モデルＩＮの入力変数の個数が所定個数以下であるか否かを判定している。タービン入口温度（Ｔｉｎ）、タービン入口圧力（Ｐｉｎ）、タービン出口圧力（Ｐｏｕｔ）による入力値モデルＩＮが対象となる。これらの入力変数が所定個数（例えば５個）以下であるか判定され、この所定個数以下であるときに当該条件を満たす制御モデルＭ１と判定される。
【００４６】
この判定条件は、入力値モデルＩＮの入力変数の個数が多いと、キャッシュ入力バッファも当該個数に比較して大きくなり、しかもソースコードＳＣ１に変換したときに条件分岐コード（if文など）の処理時間が逆に長くなる。このため、この観点では入力値モデルＩＮの入力変数の個数を極力少数とすると良い。これにより条件切換モデルＳＷの付加に伴う処理時間の長期化を抑制できる。
【００４７】
これらのステップＳ３、Ｓ５、Ｓ６の判定条件を全て満たす場合には、コンピュータ２０はこの制御モデルＭ１を対象として、入力値モデルＩＮの設定値の条件に応じて制御モデルＭ１の処理をバイパスするようにメインモデルＡｍの追加処理を行う（Ｓ７）。
【００４８】
なお、ロジックの内容自体を判定条件として用いることもできる。すなわち、除算処理、累乗関数処理、対数関数処理、など加減算に比較して負荷の大きい演算処理を所定個数より多く用いていることを判定条件として用いたり、前述の判定条件（ステップＳ３、Ｓ５、Ｓ６）に加入したりしても良い。
【００４９】
図８にメインモデルＡｍの追加処理を示している。ＣＰＵ２１はこの対象となった制御モデルＭ１をサブモデルＡｚとする（図７のＴ１）。図９にはメインモデルＡｍ追加後の制御モデルＭ２を示すが、この図９に示す「cal_Qout」がサブモデルＡｚとなっている。図９のサブモデルＡｚに示す内容では、前述の制御モデルＭ１の内容に、特定の入力値モデルＩＮ（Ｐin、Ｐout、Ｔin）を前回の出力値モデルＯＵＴ（Ｐin_pre、Ｐout_pre、Ｔin_pre）に出力する処理モデルを追加してサブモデルＡｚとしている。またさらに、今回の出力値を表す出力値モデルＯＵＴ（Qout）と並列に前回の出力値を表す出力値モデルＯＵＴ（Qout_pre）を乗算モデルＯＰの出力に接続している。
【００５０】
次に、特定の入力値モデルＩＮの今回の入力値モデルＡ０（例えば「Ｐin」）と、前回の入力値モデルＡ０（例えば「Ｐin_pre」）との差を算出する演算モデルＡ１を生成する（図７のＴ２）。図９に示す演算モデルＡ１は減算モデルである。次に、演算モデルＡ１の絶対値を算出する演算モデルＡ２を生成する（図７のＴ３）。図９に示す演算モデルＡ２は絶対値モデルを示す。
【００５１】
次に、特定の入力値モデルＩＮの許容量（閾値）を読出す（Ｔ４）。図１０は特定の入力値モデルＩＮの入力値とその前後の入力値の変化許容量の関係を示すもので、これらの許容量は、予めユーザのアプリケーション操作により事前に記憶装置２５などに記憶される。このステップＴ４において、ＣＰＵ２１は入力値モデルＩＮに対応した許容量（閾値）を読み出すと、この読出された閾値を設定した定数モデルＡ３を生成する（Ｔ５）。図９に示す定数モデルＡ３には図１０に示す許容量のパラメータが定数として設定されている。
【００５２】
次に、演算モデルＡ２と定数モデルＡ３の比較結果を論理出力する論理出力モデルＡ４を生成する（Ｔ６）。図９に示す論理出力モデルＡ４は、演算モデルＡ２の出力が定数モデルＡ３の出力以下であることを満たす場合に「真：true」、満たさない場合に「偽：false」を出力する。
【００５３】
なお、これらのモデルＡ１〜Ａ４は許容量（閾値）内に特定の入力値モデルＩＮの前回および今回の入力値が入っていることを条件としているものの、これらのモデルに代えて、予め設定された入力範囲内であれば、予め記憶装置２５などに定められた出力値（例えば、各値の標準値）を設定するようにしても良い。
【００５４】
そして、これらのステップＴ２〜Ｔ６の処理を全ての特定の入力値モデルＩＮについて繰り返す（Ｔ７）。図９においては、入力値モデルＩＮ（Ｐin、Ｐout、Ｔin）についてそれぞれ各モデルＡ１〜Ａ４が生成され、それぞれの演算モデルＡ１に今回の入力値モデルＩＮ（Ｐin、Ｐout、Ｔin）の出力が入力されると共に、さらに、それぞれの演算モデルＡ１に前回の入力値モデルＩＮ（Ｐin_pre、Ｐout_pre、Ｔin_pre）の出力が入力される。
【００５５】
次に、論理積を出力する論理積モデルＡ５を生成する（Ｔ８）。この論理積モデルＡ５は、全ての特性の入力値モデルが許容量の条件を満たしているか否かを確認するために生成されるモデルを示す。次に、全ての論理出力モデルＡ４の出力を論理積モデルＡ５の入力に接続する（Ｔ９）。
【００５６】
次に、条件切換モデルＡ６を生成し、論理積モデルＡ５の出力を条件切換モデルＡ６の条件入力に接続する（Ｔ１０）。この条件切換モデルＡ６は条件入力に入力される論理に応じて第１入力と第２入力とを出力切換えするモデルを示す。
【００５７】
次に、条件切換モデルＡ６の第１入力に、サブモデルＡｚの前回の出力値（Ｑout_pre）を設定した入力値モデルＡ７を接続する（Ｔ１１）。また、条件切換モデルＡ６の第２入力に、サブモデルＡｚの今回の出力値（Ｑout）を設定した入力値モデルＡ８を接続する（Ｔ１２）。
【００５８】
次に、メインモデルＡｍの今回の出力値（Ｑout）の出力値モデルＡ９を生成し、条件切換モデルＡ６の出力に接続する（Ｔ１３）。また、否定モデルＡ１０を生成し、論理積モデルＡ５の出力に接続する（Ｔ１４）。また、否定モデルＡ１０の出力にサブモデルＡｚを接続する（Ｔ１５）。これらの処理はコンピュータ２０が当該自動生成ソフトウェア内で行う。
【００５９】
これらの処理が自動的に行われると、コンピュータ２０は、ユーザに確認を促すダイアログ等を表示器２４に表示することで、自動生成モデルの内容の確認を促し、その後、ユーザ確認がなされ、必要に応じてモデルが加工される。そして、ユーザによってソースコードＳＣ２の作成指示がなされると、図１１に示すソースコードＳＣ２を自動的に生成する。
【００６０】
図１１のソースコードＳＣ２に示すように、対象となった制御モデルＭ１はサブルーチン化（cal_Qout）され、特定の入力値モデルＩＮ（Ｐin、Ｐout、Ｔin）のパラメータが全て許容量を満たすときには当該サブルーチンをバイパスし、許容量を満たさないときのみ当該サブルーチンを呼び出して処理を行う。すると、このソースコードＳＣ２をコンパイルした後、組込みソフトウェア（オブジェクトプログラム）として動作させるときであっても、自動生成されたサブルーチンについては、上記の条件を満たすときに、処理を割愛でき処理時間を短縮できる。
【００６１】
図１２はエンジン回転数とＣＰＵ負荷率の関係を示す。この図１２に示すように、エンジン回転数は車両の状態（例えば、ニュートラル、１速ギア、２速ギア、３速ギア、トップギア）や、アクセル及びブレーキ操作状況に応じて大きく変化するが、エンジン回転数の大小にＣＰＵ負荷率は追随する。
【００６２】
エンジニアが設計するときには、エンジン回転数の上限等の各種条件に合わせてＣＰＵ４のグレード（例えば動作周波数など）を選定することになるが、一般にグレードが上がれば費用も上昇するため、出来る限りグレードを抑えて構成することが望まれる。
【００６３】
図１３は、対策前のタービン流量の演算タイミングとこのタービン流量算出値（Ｑout）を示し、図１４は、本実施形態のサブルーチン自動生成対策後のタービン流量算出値（Ｑout）を示す。
【００６４】
例えばエンジン回転数が高回転の状況下においては、回転同期の制御ロジックがＥＣＵ１の処理能力全体に与える影響が極めて大きくなるため、図１３に示すように前述のタービン流量算出値（Ｑout）の演算回数が増加し、ＥＣＵ１による合計処理時間が増えてしまいＣＰＵ負荷率が上昇する。
【００６５】
しかし、本実施形態の対策を行うことにより、図１４に示すように、同一処理期間内においても演算回数を劇的に減少させることができる。タービン流量算出値（Ｑout）の算出結果もほぼ同様の値に得られている。したがって、本実施形態の自動生成手法を用いることで演算処理回数を劇的に抑制できＣＰＵ負荷率を減少できる。
【００６６】
これまでは、モデルで記述されたブロックロジックに従いソースコードＳＣ１を生成するとき、特定のロジック単位でマップ化したり、入力値による条件判定により算出不要ロジックを手動動作によりバイパスしたりすることで処理速度を削減していた。
【００６７】
本実施形態では、コンピュータ２０のＣＰＵ２１は、クランク軸の回転に同期して頻繁に処理が行われる制御モデルＭ１を自動的にサブモデルＡｚとし、入力値モデルＩＮの今回と前回の入力値が許容範囲内となる場合には当該サブモデルＡｚを実行することなく、当該条件を満たさない場合に限り当該サブモデルＡｚを読出す制御モデルＭ２を構築している。そして、コンピュータ２０のＣＰＵ２１は、制御モデルＭ２を組込み用のソフトウェア（ソースコードＳＣ２）に変換したり、さらに、ユーザ指令に応じてソースコードＳＣ２をオブジェクトコードに変換する。
【００６８】
これにより、ＥＣＵ１による例えば回転同期ロジックの処理回数（演算処理時間）を抑制できる。特にエンジン回転数が高回転数の場合に顕著な効果を奏し、ＥＣＵ１内に処理能力の高いＣＰＵ４を採用することなく構成できる。
【００６９】
本実施形態の制御動作（タービン流量の算出処理）に限らず、その他の繰り返し演算を行う算出処理を適用しても良いし、優先順位の高い算出処理を適用しても良い。すると、処理速度を大幅に削減できる。
【符号の説明】
【００７０】
図面中、１はＥＣＵ（車両用ＥＣＵ）、２０はコンピュータ（車両用ソフトウェア作成支援装置、車両用ソフトウェア変換装置）、２１はＣＰＵ（追加手段、第１判定手段、第２判定手段、変換手段）、Ａｍはメインモデル、Ａｚはサブモデル、Ｍ１、Ｍ２は制御モデルを示す。
【図１】
2014067144.tif 000004
【図２】
2014067144.tif 000005
【図３】
2014067144.tif 000006
【図４】
2014067144.tif 000007
【図５】
2014067144.tif 000008
【図６】
2014067144.tif 000009
【図７】
2014067144.tif 000010
【図８】
2014067144.tif 000011
【図９】
2014067144.tif 000012
【図１０】
2014067144.tif 000013
【図１１】
2014067144.tif 000014
【図１２】
2014067144.tif 000015
【図１３】
2014067144.tif 000016
【図１４】
2014067144.tif 000017