(57)【要約】【課題】探索値に対応する補間値を特定するまでの処理時間を適切に短縮する。【解決手段】電子制御装置１は、代表値とマップ値との対応を示すマップを記憶するマップ記憶部６と、マップを用いた補間処理として、探索値に対応する代表値間を探索して算出エリアを特定する探索処理と、探索処理により特定した算出エリアのマップ値を線形補間演算して補間値を特定する線形補間演算処理とを実施することが可能な演算部５と、を備える。演算部５は、マップの補間対象の領域のうち少なくとも一部の行又は列でマップ値が全て同値であり、少なくともマップ値が全て同値である行又は列を算出エリアとする場合に、少なくとも線形補間演算処理の一部又は全体を実施せずに補間値を特定する。【選択図】図９
2018181144.tif 000002
【特許請求の範囲】
【請求項１】
代表値とマップ値との対応を示すマップを記憶するマップ記憶部（６ａ）と、
マップを用いた補間処理として、探索値に対応する代表値間を探索して算出エリアを特定する探索処理と、探索処理により特定した算出エリアのマップ値を線形補間演算して補間値を特定する線形補間演算処理とを実施することが可能な演算部（５）と、を備え、
前記演算部は、マップの補間対象の領域のうち少なくとも一部の行又は列でマップ値が全て同値であり、少なくともマップ値が全て同値である行又は列を算出エリアとする場合に、少なくとも線形補間演算処理の一部又は全体を実施せずに補間値を特定する電子制御装置（１）。
【請求項２】
前記演算部は、マップの補間対象の全領域でマップ値が全て同値の場合に、探索処理と線形補間演算処理とを実施せずに補間値を特定する請求項１記載の電子制御装置。
【請求項３】
前記演算部は、予め指定している指定ポイントのマップ値を補間値として特定する請求項２に記載の電子制御装置。
【請求項４】
マップの補間対象の全領域でマップ値が全て同値であるか否かを特定可能なフラグを記憶するフラグ記憶部（７）を備え、
前記演算部は、マップの補間対象の全領域でマップ値が全て同値であるか否かを判定し、その判定結果を前記フラグ記憶部に記憶させた後に、前記フラグ記憶部に記憶されている判定結果によりマップの補間対象の全領域でマップ値が全て同値であると判定すると、探索処理と線形補間演算処理とを実施せずに補間値を特定する請求項２又は３に記載の電子制御装置。
【請求項５】
ユーザが設定可能なパラメータを記憶するパラメータ記憶部（６ｂ）を備え、
前記演算部は、前記パラメータ記憶部に記憶されているパラメータによりマップの補間対象の全領域でマップ値が全て同値であると判定すると、探索処理と線形補間演算処理とを実施せずに補間値を特定する請求項２又は３に記載の電子制御装置。
【請求項６】
前記演算部は、マップの補間対象の領域のうち算出エリアとして特定した一部の行又は列でマップ値が全て同値の場合に、線形補間演算処理の一部又は全体を実施せずに補間値を特定する請求項１記載の電子制御装置。
【請求項７】
前記演算部は、予め指定している指定ポイントのマップ値を補間値として特定する請求項６に記載の電子制御装置。
【請求項８】
マップの補間対象の領域のうち一部の行又は列でマップ値が全て同値であるか否かを特定可能なフラグを記憶するフラグ記憶部を備え、
前記演算部は、マップの補間対象の領域のうち一部の行又は列でマップ値が全て同値であるか否かを判定し、その判定結果を前記フラグ記憶部に記憶させた後に、前記フラグ記憶部に記憶されている判定結果によりマップの補間対象の領域のうち算出エリアとして特定した一部の行又は列でマップ値が全て同値であると判定すると、線形補間演算処理の一部又は全体を実施せずに補間値を特定する請求項６又は７に記載の電子制御装置。
【請求項９】
ユーザが設定可能なパラメータを記憶するパラメータ記憶部を備え、
前記演算部は、前記パラメータ記憶部に記憶されているパラメータによりマップの補間対象の領域のうち算出エリアとして特定した一部の行又は列でマップ値が全て同値であると判定すると、線形補間演算処理の一部又は全体を実施せずに補間値を特定する請求項６又は７に記載の電子制御装置。
【請求項１０】
前記演算部は、マップの全領域を補間対象の領域として補間値を特定する請求項１から９の何れか一項に記載の電子制御装置。
【請求項１１】
前記演算部は、マップの一部の領域を補間対象の領域として補間値を特定する請求項１から９の何れか一項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置に関する。
【背景技術】
【０００２】
従来より、代表値とマップ値との対応を示すマップを用い、例えばセンサから出力されたセンサ値を入力すると、その入力したセンサ値を探索値として補間処理を実施し、その探索値に対応する補間値を特定する技術が開示されている。補間処理では、最初に探索処理を実施し、探索値と代表値との大小を順次判定し、探索値に対応する代表値間を探索して算出エリアを特定する。補間処理では、続いて線形補間演算処理を実施し、探索処理により特定した算出エリアのマップ値を線形補間演算して補間値を特定する。このように補間処理では探索処理と線形補間演算処理とを順次実施し、探索値に対応する補間値を特定する（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１９０２０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、マップの補間対象の全領域でマップ値が全て同値の場合がある。マップの補間対象の全領域でマップ値が全て同値であれば、どの算出エリアのマップ値を線形補間演算しても補間値はマップ値と同値となる。しかしながら、マップの補間対象の全領域でマップ値が全て同値の場合であっても補間処理を一律的に実施してしまうと、探索処理と線形補間演算処理とを実施する分、補間値を特定するまでの処理時間が長くなる。
【０００５】
又、マップの補間対象の領域のうち一部の行又は列でマップ値が全て同値であり、その一部の行又は列でマップ値が全て同値のエリアを算出エリアとして特定する場合もある。算出エリアとして特定した一部の行又は列でマップ値が全て同値であれば、その算出エリアのマップ値を線形補間演算しても補間値はマップ値と同値となる。しかしながら、マップの補間対象の領域のうち算出エリアとして特定した一部の行又は列でマップ値が全て同値の場合であっても線形補間演算処理の全体を一律的に実施してしまうと、線形補間演算処理の全体を実施する分、補間値を特定するまでの処理時間が長くなる。
【０００６】
このような補間値を特定するまでの処理時間が長くなるという問題に対し、補間処理を実施する演算部のクロック周波数を高めて処理能力を向上させたり、演算部に複数のコアを実装して各コアの負荷を減少させるマルチコアシステムを導入したりする構成が想定される。ところが、演算部のクロック周波数を高める構成では、消費電力や発熱量やノイズが増加する等の新たな問題が発生する。又、マルチコアシステムを導入する構成では、マルチコアシステムに対応した全ての機能を一から開発するのにコスト高になる等の新たな問題が発生する。このような事情から、演算部のクロック周波数を高めたりマルチコアシステムを導入したりせずに、補間値を特定するまでの処理時間を短縮する技術が望まれている。
【０００７】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、探索値に対応する補間値を特定するまでの処理時間を適切に短縮することができる電子制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１に記載した発明によれば、マップ記憶部（６ａ）は、代表値とマップ値との対応を示すマップを記憶する。演算部（５）は、マップを用いた補間処理として、探索値に対応する代表値間を探索して算出エリアを特定する探索処理と、探索処理により特定した算出エリアのマップ値を線形補間演算して補間値を特定する線形補間演算処理とを実施することが可能である。演算部は、マップの補間対象の領域のうち少なくとも一部の行又は列でマップ値が全て同値であり、少なくともマップ値が全て同値である行又は列を算出エリアとする場合に、少なくとも線形補間演算処理の一部又は全体を実施せずに補間値を特定する。
【０００９】
マップの補間対象の領域のうち少なくとも一部の行又は列でマップ値が全て同値であり、少なくともマップ値が全て同値である行又は列を算出エリアとする場合に、補間処理として探索処理と線形補間演算処理とを一律的に実施して補間値を特定するのではなく、補間処理のうち少なくとも線形補間演算処理の一部又は全体を実施せずに補間値を特定するようにした。少なくとも線形補間演算処理の一部又は全体を実施しないことで、少なくとも線形補間演算処理の一部又は全体に費やす時間を省くことができ、補間値を特定するまでの処理時間を適切に短縮することができる。この場合、プログラムを改良してソフトウェアを変更することで実現可能であるので、演算部のクロック周波数を高めたりマルチコアシステムを導入したりする必要もない。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態を示す機能ブロック図
【図２】マップを示す図
【図３】線形補間演算の流れを示す図（その１）
【図４】同値判定処理を示すフローチャート
【図５】各行同値判定処理を示すフローチャート
【図６】各列同値判定処理を示すフローチャート
【図７】全領域同値判定処理を示すフローチャート
【図８】全マップ同値判定処理を示すフローチャート
【図９】補間値特定処理を示すフローチャート
【図１０】補間値を特定する態様を示す図（その１）
【図１１】補間値を特定する態様を示す図（その２）
【図１２】補間値を特定する態様を示す図（その３）
【図１３】補間値を特定する態様を示す図（その４）
【図１４】補間値を特定する態様を示す図（その５）
【図１５】線形補間演算の流れを示す図（その２）
【発明を実施するための形態】
【００１１】
以下、本発明を例えば車両に搭載されているエンジンの駆動を制御する電子制御装置に適用した一実施形態について図面を参照して説明する。図１に示すように、電子制御装置１は、マイクロコンピュータ（以下、マイコンと称する）２と、データ転送部３とを有する。データ転送部３は、車両に搭載されているバス４との間のデータ転送を制御する。バス４は、例えばＣＡＮ（登録商標）、ＣＸＰＩ（登録商標）、ＦｌｅｘＲａｙ（登録商標）、ＭＯＳＴ（登録商標）、ＬＩＮ等である。
【００１２】
マイコン２は、ＣＰＵ５（演算部に相当する）と、ＲＯＭ６と、ＲＡＭ７（フラグ記憶部に相当する）とを有し、それらがバス８を介して相互接続されている。ＲＯＭ６は、ＣＰＵ５が実行するプログラムを記憶すると共に、マップ１〜ｐ（ｐは自然数）を記憶するマップ記憶部６ａと、マップ１〜ｐのパラメータを記憶するパラメータ記憶部６ｂとを有する。マップ１〜ｐ及びマップ１〜ｐのパラメータは、ＣＰＵ５が補間処理を実施する際に使用される。マップ１〜ｐのパラメータは、ユーザが任意に設定可能なパラメータである。ＲＡＭ７は、マップ１〜ｐのフラグ群及び全マップ同値判定完了フラグを記憶する。マップ１〜ｐのフラグ群及び全マップ同値判定完了フラグも、ＣＰＵ５が補間処理を実施する際に使用される。
【００１３】
マップ１〜ｐのフラグ群は、それぞれ同値判定完了フラグと、各行同値フラグと、各列同値フラグと、全領域同値フラグとを含む。同値判定完了フラグは、マップの補間対象の領域についてマップ値の同値判定を完了しているか否かを示すフラグである。各行同値フラグは、マップの補間対象の領域のうち一部の行でマップ値が全て同値であるか否かを示すフラグである。各列同値フラグは、マップの補間対象の領域のうち一部の列でマップ値が全て同値であるか否かを示すフラグである。全領域同値フラグは、マップの補間対象の全領域でマップ値が全て同値であるか否かを示すフラグである。全マップ同値判定完了フラグは、同値判定の対象とする全てのマップについてマップ値の同値判定を完了しているか否かを示すフラグである。
【００１４】
ＣＰＵ５は、バス８を介してＲＯＭ６及びＲＡＭ７に対してアクセス可能である。ＣＰＵ５は、ＲＯＭ６に対してアクセスすることで、ＲＯＭ６からプログラム、マップ１〜ｐ及びマップ１〜ｐのパラメータを読み出す。ＣＰＵ５は、ＲＡＭ７に対してアクセスすることで、マップ１〜ｐのフラグ群のオンオフを設定し、全マップ同値判定完了フラグのオンオフを設定する。
【００１５】
データ転送部３は、バス４を介してセンサ９を接続しており、センサ９が検知したセンサ値を含むセンサ信号をバス４を介して入力する。又、データ転送部３は、センサ１０を直接接続しており、センサ１０が検知したセンサ値を含むセンサ信号を直接入力する。センサ９，１０は、エンジンの駆動を制御するのに必要なセンサ値を検知するセンサであり、例えばエンジンの冷却水の温度を検知する水温センサ、エンジンの回転数及び回転角位置を検知する回転角センサ、吸入空気の温度を検知する吸気温センサ、吸入空気の圧力を検知する吸気圧センサ、スロットルバルブの開度を検知するスロットル開度センサ等である。ＣＰＵ５は、センサ９，１０から出力されたセンサ信号がデータ転送部３に入力されることで、エンジンの冷却水の温度、エンジンの回転数及び回転角位置、吸入空気の温度、吸入空気の圧力、スロットルバルブの開度等を特定し、その特定結果を用いてエンジンの駆動を制御する。
【００１６】
ここで、マップを用いた補間処理について説明する。ＣＰＵ５は、センサ９，１０から出力されたセンサ信号がデータ転送部３に入力されると、そのセンサ信号に含まれるセンサ値を探索値とし、マップを用いた補間処理を実施し、探索値に対応する補間値を特定する。尚、ここでは、センサ９，１０から入力したセンサ信号に含まれるセンサ値を探索値とする場合を説明するが、ＣＰＵ５が各種制御処理を実施する際に算出した制御値を探索値とする場合も同様である。ＣＰＵ５は、最初に探索処理を実施し、探索値と代表値との大小を順次判定し、探索値に対応する代表値間を探索して算出エリアを特定する。ＣＰＵ５は、続いて線形補間演算処理を実施し、探索処理により特定した算出エリアのマップ値を線形補間演算して補間値を特定する。ＣＰＵ５は、補間処理として探索処理と線形補間演算処理とを実施し、探索値に対応する補間値を特定する。
【００１７】
図２に示すように、２次元マップを補間処理の対象とするマップとし、Ｘ軸の代表値Ｘ１〜Ｘ５、Ｙ軸の代表値Ｙ１〜Ｙ５に対応し、マップ値Ｚ１１〜Ｚ５５が記憶されている場合を説明する。ＣＰＵ５は、最初に探索処理を実施し、探索値（Ｘ，Ｙ）に対して「Ｘ１≦Ｘ≦Ｘ２，Ｙ１≦Ｙ≦Ｙ２」を特定すると、算出エリアとしてＸ１列、Ｘ２列、Ｙ１行、Ｙ２行を特定する。ＣＰＵ５は、続いて線形補間演算処理を実施し、算出エリアとして特定したＸ１，Ｘ２，Ｙ１，Ｙ２のマップ値を図３に示す手順にしたがって線形補間演算して補間値Ｚを特定する。
【００１８】
即ち、ＣＰＵ５は、（Ｘ１，Ｙ１，Ｚ１１）、（Ｘ２，Ｙ１，Ｚ１２）を用い、以下の演算式により補間値Ｚａを算出する。
Ｚａ＝（（Ｚ１２−Ｚ１１）／（Ｘ２−Ｘ１）×（Ｘ−Ｘ１）＋Ｚ１１）
次に、ＣＰＵ５は、（Ｘ１，Ｙ２，Ｚ２１）、（Ｘ２，Ｙ２，Ｚ２２）を用い、以下の演算式により補間値Ｚｂを算出する。
Ｚｂ＝（（Ｚ２２−Ｚ２１）／（Ｘ２−Ｘ１）×（Ｘ−Ｘ１）＋Ｚ２１）
そして、ＣＰＵ５は、（Ｘ，Ｙ１，Ｚａ）、（Ｘ，Ｙ２，Ｚｂ）を用い、以下の演算式により補間値Ｚを算出する。
Ｚ＝（（Ｚｂ−Ｚａ）／（Ｙ２−Ｙ１）×（Ｙ−Ｙ１）＋Ｚａ）
【００１９】
ＣＰＵ５は、このようにして探索値（Ｘ，Ｙ）に対応する補間値Ｚを特定する。即ち、ＣＰＵ５は、例えばＸ軸をエンジンの冷却水の温度の代表値とし、Ｙ軸をエンジンの回転数の代表値として補間処理を実施すると、エンジンの冷却水の温度とエンジンの回転数との対応関係に依存する制御データを補間値として特定する。
【００２０】
前述したようにマップの補間対象の全領域でマップ値が全て同値の場合や、マップの補間対象の領域のうち算出エリアとして特定した一部の行又は列でマップ値が全て同値の場合がある。そのような場合でも上記した補間処理を一律的に実施してしまうと、補間値を特定するまでの処理時間が長くなる。この点を考慮し、本実施形態ではＣＰＵ５は以下の処理を実施する。
【００２１】
次に、上記した構成の作用について図４から図１５を参照して説明する。ここでは、同値判定処理の対象とするマップを同値判定対象マップと称し、補間値特定処理の対象とするマップを補間値特定対象マップと称する。ＣＰＵ５は、ＲＯＭ６から読み出したプログラムにしたがって同値判定処理を実施し、同値判定対象マップにおいてマップ値の同値判定を実施し、その判定結果をマップのフラグ群としてＲＡＭ７に記憶する。又、ＣＰＵ５は、ＲＯＭ６から読み出したプログラムにしたがって全マップ同値判定処理を実施し、全ての同値判定対象マップにおいてマップ値の同値判定を実施し、その判定結果を全マップ同値判定完了フラグとしてＲＡＭ７に記憶する。又、ＣＰＵ５は、ＲＯＭ６から読み出したプログラムにしたがって補間値特定処理を実施し、補間値特定対象マップにおいて補間値を特定する。以下、ＣＰＵ５が実施する同値判定処理、全マップ同値判定処理、補間値特定処理について順次説明する。
【００２２】
（１）同値判定処理
同値判定対象マップとしてＮ行×Ｍ列（Ｎ，Ｍは２以上の自然数）の２次元マップであるマップ１を代表し、マップの行を示す変数を「ｉ」とし、マップの列を示す変数を「ｋ」とする。
【００２３】
図４に示すように、ＣＰＵ５は、マップ１の同値判定処理を開始すると、マップ１の同値判定完了フラグがオンであるか否かを判定し、マップ１の同値判定を完了しているか否かを判定する（Ｓ１）。ＣＰＵ５は、マップ１の同値判定完了フラグがオンであると判定し、マップ１の同値判定を完了していると判定すると（Ｓ１：ＹＥＳ）、マップ１の同値判定処理を完了する。一方、ＣＰＵ５は、マップ１の同値判定完了フラグがオンでないと判定し、マップ１の同値判定を完了していないと判定すると（Ｓ１：ＮＯ）、マップ１の行数を示すＮを「ＲＯＷ」に格納し、マップ１の列数を示すＭを「ＣＯＬＵＭＮ」に格納し（Ｓ２）、各行同値判定処理に移行する（Ｓ３）。
【００２４】
図５に示すように、ＣＰＵ５は、各行同値判定処理を開始すると、ｉに「１」を設定し、ｋに「２」を設定し（Ｓ１１）、ｉ行×１列のマップ値とｉ行×ｋ列のマップ値とを比較し、両者が同値であるか否かを判定する（Ｓ１２）。ＣＰＵ５は、ｉ行×１列のマップ値とｉ行×ｋ列のマップ値とが同値であると判定すると（Ｓ１２：ＹＥＳ）、ｋと「ＣＯＬＵＭＮ」とを比較する（Ｓ１３）。ＣＰＵ５は、ｋが「ＣＯＬＵＭＮ」未満であると判定すると（Ｓ１３：ＹＥＳ）、次の列とマップ値の同値判定を行うようにｋをインクリメントし（Ｓ１４）、上記したステップＳ１２に戻る。一方、ＣＰＵ５は、ｋが「ＣＯＬＵＭＮ」未満でなく、ｋが「ＣＯＬＵＭＮ」に達したと判定すると（Ｓ１３：ＮＯ）、ｉ行のマップ値が全て同値であると特定し（Ｓ１５）、マップ１のｉ行同値フラグをオンに設定し、ｉ行の同値判定を完了し、ｉと「ＲＯＷ」とを比較する（Ｓ１６）。
【００２５】
一方、ＣＰＵ５は、ｉ行×１列のマップ値とｉ行×ｋ列のマップ値とが同値でないと判定すると（Ｓ１２：ＮＯ）、ｉ行のマップ値が同値でないと特定し（Ｓ１７）、マップ１のｉ行同値フラグをオフに設定し、ｉ行の同値判定を完了し、ｉと「ＲＯＷ」とを比較する（Ｓ１６）。ＣＰＵ５は、ｉが「ＲＯＷ」未満であると判定すると（Ｓ１６：ＹＥＳ）、次の行の同値判定を行うようにｉをインクリメントし（Ｓ１８）、ｋに「２」を設定し（Ｓ１９）、上記したステップＳ１２に戻る。一方、ＣＰＵ５は、ｉが「ＲＯＷ」未満でなく、ｉが「ＲＯＷ」に達したと判定すると（Ｓ１６：ＮＯ）、全ての行の同値判定を完了し、各行同値判定処理を完了し、同値判定処理に戻る。
【００２６】
即ち、ＣＰＵ５は、１行目の基準となる１列目の補間値（Ｚ１１）と、それ以外の２列目以降の補間値（Ｚ１２〜Ｚ１５）が全て同値であるか否かを判定し、全て同値であれば、１行目のマップ値が全て同値であると特定する。一方、ＣＰＵ５は、途中の何れかの列で同値でなければ、１行目のマップ値が同値でないと特定する。ＣＰＵ５は、１行目のマップ値の同値判定を完了すると、２行目以降のマップ値の同値判定も同様の手順にしたがって実施する。
【００２７】
ＣＰＵ５は、同値判定処理に戻ると、各列同値判定処理に移行する（Ｓ４）。図６に示すように、ＣＰＵ５は、各列同値判定処理を開始すると、ｉに「２」を設定し、ｋに「１」を設定し（Ｓ２１）、１行×ｋ列のマップ値とｉ行×ｋ列のマップ値とを比較し、両者が同値であるか否かを判定する（Ｓ２２）。ＣＰＵ５は、１行×ｋ列のマップ値とｉ行×ｋ列のマップ値とが同値であると判定すると（Ｓ２２：ＹＥＳ）、ｉと「ＲＯＷ」とを比較する（Ｓ２３）。ＣＰＵ５は、ｉが「ＲＯＷ」未満であると判定すると（Ｓ２３：ＹＥＳ）、次の行と同値判定を行うようにｉをインクリメントし（Ｓ２４）、上記したステップＳ２２に戻る。一方、ＣＰＵ５は、ｉが「ＲＯＷ」未満でなく、ｉが「ＲＯＷ」に達したと判定すると（Ｓ２３：ＮＯ）、ｋ列のマップ値が全て同値であると特定し（Ｓ２５）、マップ１のｋ列同値フラグをオンに設定し、ｋ列の同値判定を完了し、ｋと「ＣＯＬＵＭＮ」とを比較する（Ｓ２６）。
【００２８】
一方、ＣＰＵ５は、ｉ行×ｋ列のマップ値とｉ行×ｋ列のマップ値とが同値でないと判定すると（Ｓ２２：ＮＯ）、ｋ列のマップ値が同値でないと特定し（Ｓ２７）、マップ１のｋ列同値フラグをオフに設定し、ｋ列の同値判定を完了し、ｋと「ＣＯＬＵＭＮ」とを比較する（Ｓ２６）。ＣＰＵ５は、ｋが「ＣＯＬＵＭＮ」未満であると判定すると（Ｓ２６：ＹＥＳ）、次の列の同値判定を行うようにｋをインクリメントし（Ｓ２８）、ｉに「２」を設定し（Ｓ２９）、上記したステップＳ２２に戻る。一方、ＣＰＵ５は、ｋが「ＣＯＬＵＭＮ」未満でなく、ｋが「ＣＯＬＵＭＮ」に達したと判定すると（Ｓ２６：ＮＯ）、全ての列の同値判定を完了し、各列同値判定処理を完了し、同値判定処理に戻る。
【００２９】
即ち、ＣＰＵ５は、１列目の基準となる１行目の補間値（Ｚ１１）と、それ以外の２行目以降の補間値（Ｚ２１〜Ｚ５１）が全て同値であるか否かを判定し、全て同値であれば、１列目のマップ値が全て同値であると特定する。一方、ＣＰＵ５は、途中の何れかの行で同値でなければ、１列目のマップ値が同値でないと特定する。ＣＰＵ５は、１列目のマップ値の同値判定を完了すると、２列目以降のマップ値の同値判定も同様の手順にしたがって実施する。
【００３０】
ＣＰＵ５は、同値判定処理に戻ると、全領域同値判定処理に移行する（Ｓ５）。ＣＰＵ５は、図７に示すように、全領域同値判定処理を開始すると、各行の同値判定結果と各列の同値判定結果とが全て同値であるか否かを判定する（Ｓ３１）。ＣＰＵ５は、各行の同値判定結果と各列の同値判定結果とが全て同値であると判定すると（Ｓ３１：ＹＥＳ）、全領域のマップ値が全て同値であると特定し（Ｓ３２）、全領域同値フラグをオンに設定し、全領域同値判定処理を完了し、同値判定処理に戻る。一方、ＣＰＵ５は、各行の同値判定結果と各列の同値判定結果とが同値でないと判定すると（Ｓ３１：ＮＯ）、全領域のマップ値が同値でないと特定し（Ｓ３３）、全領域同値フラグをオフに設定し、全領域同値判定処理を完了し、同値判定処理に戻る。
【００３１】
ＣＰＵ５は、同値判定処理に戻ると、マップ１の同値判定を完了し、同値判定完了フラグをオンに設定し（Ｓ６）、同値判定処理を完了する。
（２）全マップ同値判定処理
図８に示すように、ＣＰＵ５は、全マップ同値判定処理を実施し、マップ１〜ｐの全てについて同値判定処理を実施する。ＣＰＵ５は、全マップ同値判定処理を開始すると、全マップ同値判定完了フラグがオンであるか否かを判定し、全マップの同値判定を完了しているか否かを判定する（Ｓ４１）。ＣＰＵ５は、全マップ同値判定完了フラグがオンであると判定し、全マップの同値判定を完了していると判定すると（Ｓ４１：ＹＥＳ）、全マップの同値判定処理を完了する。一方、ＣＰＵ５は、全マップ同値判定完了フラグがオンでないと判定し、全マップの同値判定を完了していないと判定すると（Ｓ４１：ＮＯ）、予め設定している設定順序にしたがって同値判定対象マップを順次設定し、マップ１〜ｐについて同値判定処理を実施する。
【００３２】
ＣＰＵ５は、例えば昇順で同値判定対象マップを順次設定する場合であれば、マップ１の同値判定処理、マップ２の同値判定処理、マップ３の同値判定処理、…、マップ（ｐ−１）の同値判定処理、マップｐの同値判定処理を順次実施する（Ｓ４２〜Ｓ４６）。ＣＰＵ５は、同値判定すべき全マップの同値判定を完了すると、全マップ同値判定完了フラグをオンに設定し（Ｓ４７）、全マップ同値判定処理を完了する。
【００３３】
（３）補間値特定処理
図９に示すように、ＣＰＵ５は、補間値特定処理を開始すると、全領域同値フラグを判定し、補間値特定対象マップの補間対象の全領域でマップ値が全て同値であるか否かを判定する（Ｓ５１）。ＣＰＵ５は、全領域同値フラグがオンであると判定し、補間値特定対象マップの補間対象の全領域でマップ値が全て同値であると判定すると（Ｓ５１：ＹＥＳ）、予め指定している指定ポイントのマップ値を補間値Ｚとして特定し（Ｓ５２）、補間値特定処理を完了する。
【００３４】
一方、ＣＰＵ５は、全領域同値フラグがオフであると判定し、補間値特定対象マップの補間対象の全領域でマップ値が同値でないと判定すると（Ｓ５１：ＮＯ）、探索処理を実施する。即ち、ＣＰＵ５は、探索値と代表値との大小を順次判定し、探索値に対応する代表値間を探索して算出エリアを特定する。ＣＰＵ５は、探索値（Ｘ，Ｙ）に対して「Ｘａ≦Ｘ＜Ｘｂ，Ｙａ≦Ｙ＜Ｙｂ」を特定し、算出エリアとしてＸａ列、Ｘｂ列、Ｙａ行、Ｙｂを特定すると、（Ｘａ，Ｙａ）のマップ値Ｚ１、（Ｘｂ，Ｙａ）のマップ値Ｚ２、（Ｘａ，Ｙｂ）のマップ値Ｚ３、（Ｘｂ，Ｙｂ）のマップ値Ｚ４を取得する（Ｓ５３）。ＣＰＵ５は、その特定したＸａ列、Ｘｂ列、Ｙａ行、Ｙｂ行のマップ値について所定条件が成立しているか否かを判定する（Ｓ５４）。この場合、ＣＰＵ５は、Ｙａ行、Ｙｂ行、Ｘａ列、Ｘｂ列のマップ値が全て同値であること、Ｙａ行、Ｙｂ行、Ｘａ列のマップ値が全て同値であること、Ｙａ行、Ｙｂ行、Ｘｂ列のマップ値が全て同値であること、のうち何れかを所定条件とする。
【００３５】
ＣＰＵ５は、所定条件が成立していると判定すると（Ｓ５４：ＹＥＳ）、予め指定している指定ポイントのマップ値を補間値Ｚとして特定し（Ｓ５５）、補間値特定処理を完了する。一方、ＣＰＵ５は、所定条件が成立していないと判定すると（Ｓ５４：ＮＯ）、Ｙａ行のマップ値が全て同値であるか否かを判定する（Ｓ５６）。ＣＰＵ５は、Ｙａ行同値フラグがオンであると判定し、Ｙａ行のマップ値が全て同値であると判定すると（Ｓ５６：ＹＥＳ）、予め指定している指定ポイントのマップ値を補間値Ｚａとして特定する（Ｓ５７）。一方、ＣＰＵ５は、Ｙａ行同値フラグがオフであると判定し、Ｙａ行のマップ値が同値でないと判定すると（Ｓ５６：ＮＯ）、（Ｘａ，Ｙａ，Ｚ１）及び（Ｘｂ，Ｙａ，Ｚ２）を用いて線形補間演算処理を実施し、以下の演算式により補間値Ｚａを特定する（Ｓ５８）。
Ｚａ＝（（Ｚ２−Ｚ１）／（Ｘｂ−Ｘａ）×（Ｘ−Ｘａ）＋Ｚ１）
【００３６】
ＣＰＵ５は、Ｙｂ行のマップ値が全て同値であるか否かを判定する（Ｓ５９）。ＣＰＵ５は、Ｙｂ行同値フラグがオンであると判定し、Ｙｂ行のマップ値が全て同値であると判定すると（Ｓ５９：ＹＥＳ）、予め指定している指定ポイントのマップ値を補間値Ｚｂとして特定する（Ｓ６０）。一方、ＣＰＵ５は、Ｙｂ行同値フラグがオフであると判定し、Ｙｂ行のマップ値が同値でないと判定すると（Ｓ５９：ＮＯ）、（Ｘａ，Ｙｂ，Ｚ３）及び（Ｘｂ，Ｙｂ，Ｚ４）を用いて線形補間演算処理を実施し、以下の演算式により補間値Ｚｂを特定する（Ｓ６１）。
Ｚｂ＝（（Ｚ４−Ｚ３）／（Ｘｂ−Ｘａ）×（Ｘ−Ｘａ）＋Ｚ３）
【００３７】
ＣＰＵ５は、補間値Ｚａ及び補間値Ｚｂを特定すると、（Ｘ，Ｙａ，Ｚａ）及び（Ｘ，Ｙｂ，Ｚｂ）を用いて線形補間演算処理を実施し、以下の演算式により補間値Ｚを特定する（Ｓ６２）。
Ｚ＝（（Ｚｂ−Ｚａ）／（Ｙｂ−Ｙａ）×（Ｙ−Ｙａ）＋Ｚａ）
【００３８】
ＣＰＵ５は、補間値Ｚを特定すると、補間値特定処理を完了する。
具体的を以下に説明する。図１０に示すように、ＣＰＵ５は、補間値特定対象マップの補間対象の全領域でマップ値Ｚ１１〜Ｚ５５が全て「１．００」の同値であれば、探索処理と線形補間演算処理とを実施せずに指定ポイントのマップ値を補間値として特定する。ＣＰＵ５は、予め指定ポイントとして（Ｘ１，Ｙ１）を指定していれば、マップ値Ｚ１１を補間値Ｚとして特定する。この場合、ＣＰＵ５は、探索処理と線形補間演算処理とを実施しないことで、探索処理と線形補間演算処理とに費やす時間を省くことができ、補間値Ｚを特定するまでの処理時間を短縮することができる。尚、ＣＰＵ５は、指定ポイントとして（Ｘ１，Ｙ１）以外を指定していても良い。
【００３９】
又、図１１に示すように、ＣＰＵ５は、補間値特定対象マップのＹ１行でマップ値Ｚ１１〜Ｚ１５が全て「１．００」の同値であるが、他の行や列でマップ値が同値でない場合に、探索処理を実施して探索値Ｙに対して「Ｙ１≦Ｙ≦Ｙ２」を特定し、算出エリアとしてＹ１行、Ｙ２行を特定すると、以下のようにして補間値を特定する。ＣＰＵ５は、補間値Ｚａを算出するための線形補間演算処理で使用するマップ値Ｚ１１，Ｚ１２が同値であるので、指定ポイントのマップ値を補間値として特定する。ＣＰＵ５は、予め指定ポイントとして（Ｘ１，Ｙ１）を指定していれば、マップ値Ｚ１１を補間値Ｚａとして特定する。この場合、ＣＰＵ５は、補間値Ｚａを算出するための線形補間演算処理を実施しないことで、その線形補間演算処理に費やす時間を省くことができる。尚、ＣＰＵ５は、Ｙ１行のポイントであれば、指定ポイントとして（Ｘ１，Ｙ１）以外を指定していても良く、例えば指定ポイントとして（Ｘ５，Ｙ１）を指定し、マップ値Ｚ１５を補間値Ｚａとして特定しても良い。
【００４０】
又、以上は、補間値特定対象マップのＹ１行のマップ値Ｚ１１〜Ｚ１５が全て同値の場合を説明したが、補間値特定対象マップのＹ２行のマップ値Ｚ２１〜Ｚ２５が全て同値であるが、他の行や列のマップ値が同値でない場合に、探索処理を実施して探索値Ｙに対して「Ｙ１≦Ｙ≦Ｙ２」を特定した場合も同様である。ＣＰＵ５は、予め指定ポイントとして（Ｘ１，Ｙ２）を指定していれば、マップ値Ｚ２１を補間値Ｚｂとして特定する。この場合、ＣＰＵ５は、補間値Ｚｂを算出するための線形補間演算処理を実施しないことで、その線形補間演算処理に費やす時間を省くことができる。
【００４１】
又、図１２に示すように、補間値特定対象マップのＹ１行のマップ値Ｚ１１〜Ｚ１５が全て「１．００」の同値であり、Ｙ２行のマップ値Ｚ２１〜Ｚ２５が全て「０．９８」の同値であり、他の行や列のマップ値が同値でない場合に、探索処理を実施して探索値Ｙに対して「Ｙ１≦Ｙ≦Ｙ２」を特定した場合も同様である。ＣＰＵ５は、予め指定ポイントとして（Ｘ１，Ｙ２）を指定していれば、マップ値Ｚ２１を補間値Ｚｂとして特定する。この場合、ＣＰＵ５は、補間値Ｚａ及び補間値Ｚｂを算出するための線形補間演算処理を実施しないことで、その線形補間演算処理に費やす時間を省くことができる。
【００４２】
又、図１３に示すように、ＣＰＵ５は、補間値特定対象マップのＹ１行、Ｙ２行、Ｘ１列のマップ値Ｚ１１〜Ｚ１５、Ｚ２１〜Ｚ２５、Ｚ１１〜Ｚ５１が全て「１．００」の同値であるが、他の行や列のマップ値が同値でない場合に、探索処理を実施して探索値（Ｘ，Ｙ）に対して「Ｘ１≦Ｘ≦Ｘ２，Ｙ１≦Ｙ≦Ｙ２」を特定し、算出エリアとしてＸ１列、Ｘ２列、Ｙ１行、Ｙ２行を特定すると、以下のようにして補間値を特定する。ＣＰＵ５は、補間値Ｚを算出するための線形補間演算処理で使用するマップ値Ｚ１１、Ｚ１２、Ｚ２１、Ｚ２２が全て同値であるので、指定ポイントのマップ値を補間値として特定する。ＣＰＵ５は、予め指定ポイントとして（Ｘ１，Ｙ１）を指定していれば、マップ値Ｚ１１を補間値Ｚとして特定する。この場合、ＣＰＵ５は、補間値Ｚを算出するための線形補間演算処理を実施しないことで、その線形補間演算処理に費やす時間を省くことができる。尚、ＣＰＵ５は、Ｙ１行、Ｙ２行、Ｘ１列のポイントであれば、指定ポイントとして（Ｘ１，Ｙ１）以外を指定していても良く、例えば指定ポイントとして（Ｘ１，Ｙ５）を指定し、マップ値Ｚ５１を補間値Ｚとして特定しても良い。
【００４３】
又、以上は、補間値特定対象マップのＹ１行、Ｙ２行、Ｘ１列のマップ値Ｚ１１〜Ｚ１５、Ｚ２１〜Ｚ２５、Ｚ１１〜Ｚ５１が全て「１．００」の同値の場合を説明したが、補間値特定対象マップのＹ１行、Ｙ２行、Ｘ２列のマップ値Ｚ１１〜Ｚ１５、Ｚ２１〜Ｚ２５、Ｚ１２〜Ｚ５２が全て「１．００」の同値であるが、他の行や列のマップ値が同値でない場合に、探索処理を実施して探索値（Ｘ，Ｙ）に対して「Ｘ１≦Ｘ≦Ｘ２，Ｙ１≦Ｙ≦Ｙ２」を特定した場合も同様である。
【００４４】
又、図１４に示すように、ＣＰＵ５は、補間値特定対象マップのＹ１行、Ｙ２行、Ｘ１列、Ｘ２列のマップ値Ｚ１１〜Ｚ１５、Ｚ２１〜Ｚ２５、Ｚ１１〜Ｚ５１、Ｚ１２〜Ｚ５２が全て「１．００」の同値であるが、他の行や列のマップ値が同値でない場合に、探索値（Ｘ，Ｙ）に対して「Ｘ１≦Ｘ≦Ｘ２，Ｙ１≦Ｙ≦Ｙ２」を特定し、算出エリアとしてＸ１列、Ｘ２列、Ｙ１行、Ｙ２行を特定すると、以下のようにして補間値を特定する。この場合も、ＣＰＵ５は、補間値Ｚを算出するための線形補間演算処理で使用するマップ値Ｚ１１、Ｚ１２、Ｚ２１、Ｚ２２が全て同値であるので、指定ポイントのマップ値を補間値として特定する。ＣＰＵ５は、予め指定ポイントとして（Ｘ１，Ｙ１）を指定していれば、マップ値Ｚ１１を補間値Ｚとして特定する。この場合も、ＣＰＵ５は、補間値Ｚを算出するための線形補間演算処理を実施しないことで、その線形補間演算処理に費やす時間を省くことができる。
【００４５】
ＣＰＵ５は、以上のように、補間値特定処理を実施する前に同値判定処理を実施し、同値判定処理の判定結果にしたがって補間値特定処理を実施することで、探索処理と線形補間演算処理とを実施せずに補間値を特定したり、探索処理を実施するが線形補間演算処理の一部又は全体を実施せずに補間値を特定したりする。即ち、探索処理と線形補間演算処理とを実施しなければ、探索処理と線形補間演算処理に費やす時間を省くことができ、補間値を特定するまでの処理時間を短縮することができる。又、探索処理を実施するが線形補間演算処理の一部又は全体を実施しなければ、線形補間演算処理の一部又は全体に費やす時間を省くことができ、補間値を特定するまでの処理時間を短縮することができる。
【００４６】
尚、ＣＰＵ５は、補間値特定処理を実施する前に同値判定処理を実施することに代えて、ユーザが設定可能なパラメータにしたがって補間値特定処理を実施しても良い。即ち、マップの補間対象の全領域でマップ値が全て同値であるか否か、マップの補間対象の領域のうち一部の行又は列でマップ値が全て同値であるか否かの情報をユーザが把握していれば、その情報をパラメータとしてＲＯＭ６に記憶させておき、補間値特定処理においてパラメータを判定することで、同値判定処理を実施しなくとも補間値特定処理を同様の手順にしたがって実施することが可能である。
【００４７】
又、以上は、線形補間演算処理において、先に同一行の列間での線形補間演算を実施し、後から行間での線形補間演算を実施する場合を説明したが、列間での線形補間演算と行間での線形補間演算との順序を反対としても良い。即ち、線形補間演算処理において、先に同一列の行間での線形補間演算を実施し、後から列間での線形補間演算を実施しても良く、算出エリアとして特定したＸ１〜Ｘ２，Ｙ１〜Ｙ２のマップ値を図１５に示す手順にしたがって線形補間演算して補間値Ｚを特定しても良い。
【００４８】
即ち、ＣＰＵ５は、（Ｘ１，Ｙ１，Ｚ１１）、（Ｘ１，Ｙ２，Ｚ２１）を用い、以下の演算式により補間値Ｚｃを算出する。
Ｚｃ＝（（Ｚ２１−Ｚ１１）／（Ｙ２−Ｙ１）×（Ｙ−Ｙ１）＋Ｚ１１）
次に、ＣＰＵ５は、（Ｘ２，Ｙ１，Ｚ１２）、（Ｘ２，Ｙ２，Ｚ２２）を用い、以下の演算式により補間値Ｚｄを算出する。
Ｚｄ＝（（Ｚ２２−Ｚ１２）／（Ｙ２−Ｙ１）×（Ｙ−Ｙ１）＋Ｚ１２）
そして、ＣＰＵ５は、（Ｘ１，Ｙ，Ｚｃ）、（Ｘ２，Ｙ，Ｚｄ）を用い、以下の演算式により補間値Ｚを算出する。
Ｚ＝（（Ｚｄ−Ｚｃ）／（Ｘ２−Ｘ１）×（Ｘ−Ｘ１）＋Ｚｃ）
【００４９】
又、この場合、ＣＰＵ５は、算出エリアとしてＸａ列、Ｘｂ列、Ｙａ行、Ｙｂ行を特定すると、その特定したＸａ列、Ｘｂ列、Ｙａ行、Ｙｂ行のマップ値について所定条件が成立しているか否かを判定する際に、Ｙａ行、Ｙｂ行、Ｘａ列、Ｘｂ列のマップ値が全て同値であること、Ｙａ行、Ｘａ列、Ｘｂ列のマップ値が全て同値であること、Ｙｂ行、Ｘａ列、Ｘｂ列のマップ値が全て同値であること、のうち何れかを所定条件としても良い。
【００５０】
以上に説明したように本実施形態によれば、次に示す効果を得ることができる。
電子制御装置１のマイコン２において、マップの補間対象の全領域でマップ値が全て同値であると判定すると、探索処理と線形補間演算処理とを実施せずに補間値を特定するようにした。探索処理と線形補間演算処理とに費やす時間を省くことができ、補間値を特定するまでの処理時間を適切に短縮することができる。又、マップの補間対象の領域のうち探索処理により算出エリアとして特定した一部の行又は列でマップ値が全て同値であると判定すると、線形補間演算処理の一部又は全体を実施せずに補間値を特定するようにした。線形補間演算処理の一部又は全体に費やす時間を省くことができ、補間値を特定するまでの処理時間を適切に短縮することができる。この場合、プログラムを改良してソフトウェアを変更することで実現可能であるので、ＣＰＵ５のクロック周波数を高めたりマルチコアシステムを導入したりする必要もない。
【００５１】
又、マップの予め指定している指定ポイントのマップ値を補間値として特定するようにした。所望の指定ポイントのマップ値を補間値として特定することができる。又、補間値特定処理を実施する前に同値判定処理を実施し、その判定結果によりマップの補間対象の全領域でマップ値が全て同値であるか否かやマップの補間対象の領域のうち算出エリアとして特定した一部の行又は列でマップ値が全て同値であるか否かを判定するようにした。ユーザがパラメータを設定する等の作業を必要とせずに、補間値を特定するまでの処理時間を適切に短縮することができる。
【００５２】
又、ユーザが設定可能なパラメータによりマップの補間対象の全領域でマップ値が全て同値であるか否かやマップの補間対象の領域のうち算出エリアとして特定した一部の行又は列でマップ値が全て同値であるか否かを判定するようにした。ユーザが予めパラメータを設定しておくことで同値判定処理を省くことができ、マイコン２の負荷を軽減することができる。
【００５３】
本開示は、実施例に準拠して記述されたが、当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、更には、それらに一要素のみ、それ以上、或いはそれ以下を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【００５４】
エンジンの駆動を制御する電子制御装置に限らず、他の車両制御を行う電子制御装置に適用しても良い。
補間値特定対象マップの全領域を補間対象の領域として補間値を特定することに限らず、補間値特定対象マップの一部の領域を補間対象の領域として補間値を特定しても良い。
【符号の説明】
【００５５】
図面中、１は電子制御装置、５はＣＰＵ（演算部）、６ａはマップ記憶部、６ｂはパラメータ記憶部、７はＲＡＭ（フラグ記憶部）である。
【図１】
2018181144.tif 000003
【図２】
2018181144.tif 000004
【図３】
2018181144.tif 000005
【図４】
2018181144.tif 000006
【図５】
2018181144.tif 000007
【図６】
2018181144.tif 000008
【図７】
2018181144.tif 000009
【図８】
2018181144.tif 000010
【図９】
2018181144.tif 000011
【図１０】
2018181144.tif 000012
【図１１】
2018181144.tif 000013
【図１２】
2018181144.tif 000014
【図１３】
2018181144.tif 000015
【図１４】
2018181144.tif 000016
【図１５】
2018181144.tif 000017