(57)【要約】【課題】マップ探索を高速化すること。【解決手段】実施形態に係る算出装置は、変換部と、抽出部とを備える。変換部は、入力値を所定の分解能に応じたビット列で表すように変換する。抽出部は、探索点の点数が２ｎ＋１（ｎは１以上の自然数）であり、上記探索点が等間隔となるように予め生成されたマップについて、上記ビット列の上位からｎビットが示す値に基づいて上記入力値に対応する上記探索点を決定し、かかる探索点に該当するマップのデータを抽出する。【選択図】図２
2020021213.tif 000002
【特許請求の範囲】
【請求項１】
入力値を所定の分解能に応じたビット列で表すように変換する変換部と、
探索点の点数が２ｎ＋１（ｎは１以上の自然数）であり、前記探索点が等間隔となるように予め生成されたマップについて、前記ビット列の上位からｎビットが示す値に基づいて前記入力値に対応する前記探索点を決定し、該探索点に該当する前記マップのデータを抽出する抽出部と
を備えることを特徴とする算出装置。
【請求項２】
前記マップは、階層構造を有しており、
前記抽出部は、
所定の前記探索点について下位階層となる前記マップが予め対応付けられている場合に、前記ｎビットから次の前記ｎビットを抽出して当該ｎビットが示す値に基づき、前記下位階層の前記マップにおいて前記入力値に対応する前記探索点を決定する
ことを特徴とする請求項１に記載の算出装置。
【請求項３】
入力値を所定の分解能に応じたビット列で表すように変換する変換工程と、
探索点の点数が２ｎ＋１（ｎは１以上の自然数）であり、前記探索点が等間隔となるように予め生成されたマップについて、前記ビット列の上位からｎビットが示す値に基づき、前記入力値に対応する前記探索点を決定し、該探索点に該当する前記マップのデータを抽出する抽出工程と
を含むことを特徴とするマップ探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、算出装置およびマップ探索方法に関する。
【背景技術】
【０００２】
従来、車両に搭載され、エンジンやトランスミッション、カーナビゲーションといった車両の各種システムをそれぞれ電子制御するＥＣＵ（Electronic  Control  Unit）が知られている。
【０００３】
かかるＥＣＵが出力する車両制御用パラメータの算出には、たとえば、車載センサの検出値等に基づいてＥＣＵへ入力される入力値と車両制御用パラメータとの対応関係を予め定めたマップを、実際の入力値（以下、「実入力値」と言う）に基づいて探索するマップ探索を用いた手法が知られている（たとえば、特許文献１参照）。
【０００４】
かかる手法では、マップは、入力値と車両制御用パラメータとを対応付ける複数の探索点により構成される。そして、マップ探索では、実入力値が入力されると、探索点を入力値のたとえば小さい方からの並びである探索軸に沿って順次探索し、実入力値の前後２点に対応する２つの探索点を抽出する。そして、かかる２つの探索点のデータを用いた線形補間等による近似計算を行い、出力値となる車両制御用パラメータを算出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２７８８４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術には、マップ探索を高速化するうえで、さらなる改善の余地がある。
【０００７】
具体的には、上述した従来技術を用いた場合、探索軸に沿って探索点を順次探索するため、探索点が多くなると、探索完了までに時間がかかるという問題点があった。この点、探索点を減らすことで探索完了までにかかる時間を短縮することはできるが、探索点が減ることにより、近似計算の精度を落としてしまうことになる。
【０００８】
なお、かかる課題は、ＥＣＵに限らず、マップ探索を用いた算出装置全般に共通する課題である。
【０００９】
実施形態の一態様は、上記に鑑みてなされたものであって、マップ探索を高速化することができる算出装置およびマップ探索方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施形態の一態様に係る算出装置は、変換部と、抽出部とを備える。前記変換部は、入力値を所定の分解能に応じたビット列で表すように変換する。前記抽出部は、探索点の点数が２ｎ＋１（ｎは１以上の自然数）であり、前記探索点が等間隔となるように予め生成されたマップについて、前記ビット列の上位から前記ｎビットが示す値に基づいて前記入力値に対応する前記探索点を決定し、該探索点に該当する前記マップのデータを抽出する。
【発明の効果】
【００１１】
実施形態の一態様によれば、マップ探索を高速化することができる。
【図面の簡単な説明】
【００１２】
【図１Ａ】図１Ａは、比較例に係るマップ探索方法の概要説明図（その１）である。
【図１Ｂ】図１Ｂは、比較例に係るマップ探索方法の概要説明図（その２）である。
【図１Ｃ】図１Ｃは、実施形態に係るマップ探索方法の概要説明図（その１）である。
【図１Ｄ】図１Ｄは、実施形態に係るマップ探索方法の概要説明図（その２）である。
【図１Ｅ】図１Ｅは、実施形態に係るマップ探索方法の概要説明図（その３）である。
【図２】図２は、実施形態に係る車載システムのブロック図である。
【図３Ａ】図３Ａは、マップ情報の一例を示す図である。
【図３Ｂ】図３Ｂは、階層情報の一例を示す図である。
【図４】図４は、実施形態に係る算出部が実行する算出処理の概要説明図である。
【図５Ａ】図５Ａは、実施形態に係る算出部が実行する算出処理の処理説明図（その１）である。
【図５Ｂ】図５Ｂは、実施形態に係る算出部が実行する算出処理の処理説明図（その２）である。
【図５Ｃ】図５Ｃは、実施形態に係る算出部が実行する算出処理の処理説明図（その３）である。
【図６】図６は、実施形態に係るエンジン制御用ＥＣＵが実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して、本願の開示する算出装置およびマップ探索方法の実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【００１４】
また、以下では、算出装置が、車両に搭載されるエンジン制御用ＥＣＵである場合を例に挙げて説明を行う。
【００１５】
また、以下では、実施形態に係るマップ探索方法の概要について図１Ａ〜図１Ｅを用いて説明した後に、実施形態に係るマップ探索方法を適用したエンジン制御用ＥＣＵ１０について、図２〜図６を用いて説明する。
【００１６】
まず、実施形態に係るマップ探索方法の概要について図１Ａ〜図１Ｅを用いて説明する。図１Ａおよび図１Ｂは、比較例に係るマップ探索方法の概要説明図（その１）および（その２）である。また、図１Ｃ〜図１Ｅは、実施形態に係るマップ探索方法の概要説明図（その１）〜（その３）である。
【００１７】
実施形態の比較例から説明する。図１Ａに示すように、比較例に係るマップ探索方法では、実入力値が入力されると、マップ上の入力値の昇順（降順でも可）の並びである「探索軸」に沿って、順次実入力値の近傍点となる探索点を探索する。なお、図１Ａには、説明の便宜のため、各探索点の位置を「インデックス番号」で示している。
【００１８】
たとえばここで、実入力値として入力値＃１「３」が入力された場合、比較例に係るマップ探索方法では、探索軸に沿ってインデックス番号「０」から順次探索点を探索し、入力値＃１「３」の前後２点に対応するインデックス番号「０」および「１」の探索点のデータ「２」および「４」を抽出する。
【００１９】
また、たとえばここで、実入力値として入力値＃２「２４」が入力された場合、比較例に係るマップ探索方法では、探索軸に沿ってインデックス番号「０」から順次探索点を探索し、入力値＃２「２４」の前後２点に対応するインデックス番号「６」および「７」の探索点のデータ「２０」および「２６」を抽出する。
【００２０】
そして、比較例に係るマップ探索方法では、入力値＃１「３」に対してはデータ「２」および「４」を用いて、入力値＃２「２４」に対してはデータ「２０」および「２６」を用いて、それぞれ線形補間等により近似計算を行い、出力値を算出することとなる。
【００２１】
しかしながら、図１Ａを見ても分かるように、かかる方法によれば、入力される実入力値の大きさにより、探索回数に差が出てしまう。たとえば図１Ａに示す探索軸が昇順の例によれば、実入力値が大きくなればなるほど探索回数は多くなり、マップ探索に時間がかかることになる。
【００２２】
また、図１Ｂは、比較例に係るマップ探索方法で使用されるマップの一例となっている。かかるマップは、エンジン制御用ＥＣＵで使用されるものであり、横軸は要求噴射量［ｍｇ／ｓｔ］を示し、縦軸は噴射時間「μｓ」を示す。「◆」は、各探索点に対応する。
【００２３】
ここで、図１Ｂに示すように、マップにおいては、各探索点の間隔が一様ではない場合がある。図１Ｂで言えば、たとえば図中のＭ１部に示すように、要求噴射量の小さい区間では微小な誤差による影響が多いため、探索点の数を増やして出力値算出の精度向上が図られることがある。
【００２４】
ただし、探索点の数が増えれば、図１Ａで説明したようにマップ探索に時間がかかるため、システム要件に適う応答時間を満たせなくおそれがある。すなわち、比較例に係るマップ探索方法では、システム要件に適う応答時間を満たそうとすれば、探索点の数を減らして出力値算出の精度を落とさざるを得ない場合がある。
【００２５】
このように、比較例に係るマップ探索方法では、探索軸に沿って探索点を順次探索するため、探索時間が探索点の点数に大きく影響を受けてしまう。そして、そのために、システム要件に適う応答時間の確保と、出力値算出の精度向上とを両立させることが難しい。
【００２６】
そこで、実施形態に係るマップ探索方法では、探索点の間隔を等間隔にするといった所定の条件を満たすとともに、所定の探索点について階層化するようにマップを構成することとした。そして、そのうえで、実入力値をシステムの分解能に応じたビット列で表した場合に、かかるビット列の所定のビットごとのハッシュ値が、かかるマップにおいて実入力値に対応する探索点のインデックス番号を示すようにした。
【００２７】
具体的には、実施形態に係るマップ探索方法では、図１Ｃに示す各条件を満たすようにマップを構成する。第１の条件は、「マップの探索点の点数が２ｎ＋１」である。ｎは１以上の自然数である。また、第２の条件は、「マップの探索点が等間隔」である。また、第３の条件は、「マップの探索点のデータの並びが」、「０以上かつ単調増加」または「０未満かつ単調減少」である。
【００２８】
また、図１Ｄに示すように、実施形態に係るマップ探索方法では、所定の探索点についてマップを階層化させる。たとえば、実施形態に係るマップ探索方法では、図１Ｄに示すように、ルート階層となる「１階層目」のマップのＭ１部（図１Ｂも参照）に含まれる等間隔の各探索点について、「２階層目」のマップを対応付ける。「２階層目」のマップは、「１階層目」よりも探索点の間隔が細分化される。
【００２９】
これにより、探索点が等間隔になることによる出力値算出の精度低下を防ぐことができる。なお、ここでは、「２階層目」までを示しているが、「２階層目」の探索点の間隔をさらに細分化する必要があれば、３階層目以降を設けることもできる。
【００３０】
そのうえで、実施形態に係るマップ探索方法では、図１Ｅに示すように、実入力値としてたとえば入力値「１５」が入力された場合に、かかる「１５」をシステムの所定の分解能に応じたビット列「００００  １００１  １００１  １００１」で表すこととした。これにより、かかるビット列の上位から「ｎビットずつ（ｎ＝４）」のハッシュ値が、順に「１階層目の探索点のインデックス番号」、「２階層目の探索点のインデックス番号」を示すようにすることができる。
【００３１】
なお、図１Ｅの例では、「ＬＳＢ（Least  Significant  Bit）＝４００／２５６／２５６」は、最大値４００をとりうる探索点のデータの並び（探索軸）を１６ビットのメモリ領域空間に等間隔で割り当てる分解能を示し、ビット列「００００  １００１  １００１  １００１」は、かかる分解能に応じて、入力値「１５」を式「１５×２５６×２５６／４００」により演算して２進表記したものに対応する。
【００３２】
これにより、探索軸に沿って探索点を順次探索することなく、実入力値に基づいて直接探索点のインデックス番号を取得することができるので、高速なマップ探索を行うことが可能となる。なお、最終的には、取得したインデックス番号およびかかるインデックス番号に＋１したインデックス番号がそれぞれ示す探索点が決定され、かかる探索点それぞれに該当するマップデータが抽出されて、これらマップデータを前後２点とする補間演算による近似計算が行われることとなる。これにより、近似計算の精度、すなわち出力値算出の精度を向上させることができる。
【００３３】
マップの具体例や、かかるマップを用いた処理の詳細については、図３Ａ以降を用いた説明で後述する。
【００３４】
以下、上述した実施形態に係るマップ探索方法を適用したエンジン制御用ＥＣＵ１０を含む車載システム１の構成例について、さらに具体的に説明する。
【００３５】
図２は、実施形態に係る車載システム１のブロック図である。なお、図２では、実施形態の特徴を説明するために必要な構成要素のみを機能ブロックで表しており、一般的な構成要素についての記載を省略している。
【００３６】
換言すれば、図２に図示される各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。たとえば、各機能ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
【００３７】
図２に示すように、車載システム１は、エンジン制御用ＥＣＵ１０と、車載センサ２０と、インジェクタ３０とを含む。エンジン制御用ＥＣＵ１０は、インジェクタ３０の制御装置である。
【００３８】
車載センサ２０は、車両に搭載される各種センサであり、たとえばスロットルポジションセンサや、プレッシャセンサ、水温センサ、吸気温センサ、Ｏ２センサ等を含む。エンジン制御用ＥＣＵ１０は、かかる車載センサ２０の各種検出値に基づいて要求噴射量を算出し、後述する算出部１２３に噴射時間を算出させて、かかる噴射時間に基づきインジェクタ３０を制御する。
【００３９】
インジェクタ３０は、電子制御式の燃料噴射装置であり、エンジン制御用ＥＣＵ１０からの指示に基づく噴射時間および燃圧により、エンジンへの吸入空気に燃料を霧状に噴射する。
【００４０】
エンジン制御用ＥＣＵ１０は、記憶部１１と、制御部１２とを備える。記憶部１１は、データフラッシュや不揮発性メモリ、レジスタといった記憶デバイスであって、マップ情報１１１と、階層情報１１２とを記憶する。
【００４１】
マップ情報１１１は、エンジン制御用ＥＣＵ１０で使用される各マップが格納された情報である。階層情報１１２は、各マップの階層関係に関する情報である。
【００４２】
ここで、マップ情報１１１および階層情報１１２の具体例について説明する。図３Ａは、マップ情報１１１の一例を示す図である。図３Ｂは、階層情報１１２の一例を示す図である。
【００４３】
図３Ａに示すように、マップ情報１１１は、「１階層目」のマップおよび所定の探索点に対応付けられた「下位階層マップ群」を含む。なお、図３Ａには、「噴射量」と「噴射時間」とが対応付けられたマップを示しており、「噴射量」の各データの並びが探索軸となる。「Ｎｏ．」は上述のインデックス番号に対応する。
【００４４】
実施形態に係る各マップは、図３Ａに示すように、各マップの探索点の点数は、２ｎ＋１となるように設けられる。「ｎ」は、既に示した図１Ｅの「ｎビットずつ」に対応しており、ここでは図１Ｅと同様に、ｎ＝４であるものとする。したがって、探索点の点数は、２４＋１＝１７であり、インデックス番号は「０」〜「１６」となる。
【００４５】
また、実施形態に係る各マップは、探索点が等間隔となるように設けられる。また、探索点のデータの並びが、０以上かつ単調増加、または、０未満かつ単調減少となるように設けられる。したがって、図３Ａに示す例で「１階層目」につき、「噴射量」のとりうる値が「０」〜「４００」であった場合、「噴射量」にはインデックス番号「０」から順に、「０」、「２５」、「５０」…のように間隔を２５空けつつデータが格納される。
【００４６】
そして、この探索点である「噴射量」の各データにはそれぞれ、「噴射時間」のマップデータが対応付けられ、格納される。
【００４７】
また、図３Ｂに示すように、階層情報１１２は、「１階層目分」および「下位階層マップ分」を含む。「Ｎｏ．」は、図３Ａと同様にインデックス番号である。「下位階層マップＩＤ」は、各探索点について対応する下位階層マップがある場合の、その識別情報が格納される。
【００４８】
たとえば、図３Ｂの例では、「１階層目分」において、インデックス番号「０」および「１」の探索点には、ＩＤ「２０１」の下位階層マップがあることを示している。また、たとえばインデックス番号「１２」や「１６」の探索点には、下位階層マップがないことを示している。
【００４９】
なお、記憶部１１のマップ情報１１１および階層情報１１２は、エンジン制御用ＥＣＵ１０の出荷前にたとえば図示略の入力装置からの入力に基づいて生成され、記憶されてもよいし、他装置で生成されたものを可搬可能な記憶媒体やネットワークを介して取得し、記憶されてもよい。また、エンジン制御用ＥＣＵ１０の出荷後にマップの追加や変更、削除があれば、同じく可搬可能な記憶媒体やネットワーク経由で適宜アップデートされてもよい。
【００５０】
図２の説明に戻り、つづいて制御部１２について説明する。制御部１２は、取得部１２１と、算出要求部１２２と、算出部１２３と、指示部１２４とを備える。
【００５１】
制御部１２は、たとえばＣＰＵ（Central  Processing  Unit）であって、ＲＯＭに記憶されているプログラムを読み出し、ＲＡＭを作業領域としてプログラムを実行する。これにより、制御部１２は、取得部１２１、算出要求部１２２、算出部１２３および指示部１２４として機能する。なお、制御部１２は、各部の少なくともいずれか一部または全部を、たとえば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現することができる。
【００５２】
取得部１２１は、車載センサ２０の各種検出値を取得して、算出要求部１２２へ出力する。算出要求部１２２は、取得部１２１から受け取った各種検出値に基づいて要求噴射量を算出し、かかる要求噴射量を含む噴射時間算出要求を算出部１２３へ出力する。
【００５３】
算出部１２３は、算出要求部１２２から噴射時間算出要求を受け取った場合に、図４に示す算出処理を実行する。図４は、算出部１２３が実行する算出処理の概要説明図である。図４に示すように、算出部１２３は、入力値として、噴射時間算出要求に含まれる要求噴射量ｆおよび燃圧ｐを受け取る。そして、かかる要求噴射量ｆおよび燃圧ｐそれぞれのハッシュ値ｈ１（ｆ），ｈ２（ｐ）を演算し、出力値として、かかるハッシュ値ｈ１（ｆ），ｈ２（ｐ）に基づく噴射時間ｔ（ｈ１（ｆ），ｈ２（ｐ））を出力する。なお、以下では、入力値として要求噴射量ｆが入力された場合を例に挙げて説明を進めるが、燃圧ｐについても同様の考え方でよい。
【００５４】
図２の説明に戻り、算出部１２３は、変換部１２３ａと、抽出部１２３ｂと、近似計算部１２３ｃとを含む。変換部１２３ａは、入力された要求噴射量ｆを所定の分解能に応じたビット列へ変換する。以下、かかる変換を「分解能変換」と言う場合がある。
【００５５】
抽出部１２３ｂは、変換部１２３ａによって分解能変換されたビット列の上位ｎビットからハッシュ値を算出し、かかるハッシュ値に基づいて探索点のインデックス番号を取得する。
【００５６】
また、抽出部１２３ｂは、取得した探索点につき、下位階層マップがないか否かを判定し、下位階層マップがなければ、取得したインデックス番号およびかかるインデックス番号に＋１したインデックス番号が示す噴射量を探索点として決定する。また、抽出部１２３ｂは、下位階層マップがあれば、下位階層マップがなくなるまで、次のｎビットからハッシュ値を算出して、かかるハッシュ値に基づく探索点のインデックス番号を取得することを繰り返す。
【００５７】
また、抽出部１２３ｂは、決定した２つの探索点にそれぞれ該当する噴射時間のマップデータを抽出し、近似計算部１２３ｃへ出力する。近似計算部１２３ｃは、抽出部１２３ｂから受け取った噴射時間のマップデータに基づく近似計算を行い、その計算結果を出力値として指示部１２４へ出力する。
【００５８】
指示部１２４は、算出部１２３から受け取った出力値に基づいてインジェクタ３０に対する指示信号を生成し、インジェクタ３０へ出力する。
【００５９】
次に、実施形態に係る算出部１２３が実行する算出処理の内容について、図５Ａ〜図５Ｃを用いてより具体的に説明する。図５Ａ〜図５Ｃは、実施形態に係る算出部１２３が実行する算出処理の処理説明図（その１）〜（その３）である。
【００６０】
なお、図５Ａ〜図５Ｃを用いた説明では、図１Ｅに既に示したのと同様にｎ＝４であり、ＬＳＢ＝４００／２５６／２５６であるものとする。また、図５Ａおよび図５Ｂを用いた説明では、算出部１２３への入力値が「３１０」である場合について説明する。また、図５Ｃを用いた説明では、算出部１２３への入力値が、図１Ｅに既に示したのと同様に「１５」である場合について説明する。
【００６１】
まず、図５Ａに示す１階層目のマップがある場合に、算出部１２３へ入力値として「３１０」が入力された場合を考える。なお、図５Ａに示すマップは、図３Ａに既に示した１階層目のマップに対応している。また、以下では、既に示した図３Ｂも適宜参照する。
【００６２】
かかる場合、図５Ｂに示すように、まず変換部１２３ａが入力値「３１０」に対する分解能変換を実行する。すると、式「３１０×２５６×２５６／４００」による演算結果の２進表記として、図５Ｂに示すように、「１１００  ０１１０  ０１１０  ０１１０」のビット列が得られる。
【００６３】
すると、抽出部１２３ｂが、かかるビット列の上位４ビットのハッシュ値を算出する。ここで、上位４ビットは「１１００」であるので、抽出部１２３ｂは、かかる１１００ｂ、すなわち１０進表記で言えば「１２」をハッシュ値として算出する。
【００６４】
ここで、既に示した図３Ｂを参照すると、かかる「１２」をインデックス番号とする探索点については、対応付けられた下位階層マップがないことが分かる。すると、抽出部１２３ｂは、インデックス番号「１２」の探索点については次の階層はないと判定して、最初の上位４ビット「１１００」を階層の終端とする。
【００６５】
したがって、入力値「３１０」が入力された場合、算出部１２３は、図５Ａに示すように、インデックス番号「１２」が示す噴射量「３００」と、インデックス番号「１２」に＋１したインデックス番号「１３」が示す噴射量「３２５」を探索点として決定することとなる。そして、算出部１２３は、かかる噴射量「３００」および「３２５」に該当する噴射時間「１５０００」および「１６２５０」を抽出し、補間演算による近似計算を実行する。
【００６６】
次に、図５Ｃに示す１階層目のマップがある場合に、算出部１２３へ入力値として「１５」が入力された場合を考える。
【００６７】
かかる場合、まず変換部１２３ａが入力値「１５」に対する分解能変換を実行する。すると、「００００  １００１  １００１  １００１」のビット列が得られる（図１Ｅ参照）。
【００６８】
すると、抽出部１２３ｂが、かかるビット列の上位４ビットのハッシュ値を算出する。ここで、上位４ビットは「００００」であるので、抽出部１２３ｂは、かかる００００ｂ、すなわち１０進表記で言えば「０」をハッシュ値として算出する。
【００６９】
ここで、図３Ｂを参照すると、かかる「０」をインデックス番号とする探索点については、対応付けられたＩＤ「２０１」の下位階層マップがあることが分かる。すると、抽出部１２３ｂは、インデックス番号「０」の探索点については次の階層があると判定して、次の４ビット「１００１」のハッシュ値を算出する。
【００７０】
すなわち、抽出部１２３ｂは、１００１ｂ、１０進表記で言えば「９」をハッシュ値として算出する。なお、図示は略しているが、２階層目のマップのインデックス番号「９」の探索点には、対応付けられた下位階層マップはないものとする。
【００７１】
すると、抽出部１２３ｂは、２階層目のマップのインデックス番号「９」の探索点については次の階層はないと判定して、かかる４ビット（すなわち、上位から５〜８番目のビット）「１００１」を階層の終端とする。
【００７２】
したがって、入力値「１５」が入力された場合、算出部１２３は、図５Ｃに示すように、２階層目のマップのインデックス番号「９」が示す噴射量「１４．０６２５」と、インデックス番号「９」に＋１したインデックス番号「１０」が示す噴射量「１５．６２５」を探索点として決定することとなる。そして、算出部１２３は、かかる噴射量「１４．０６２５」および「１５．６２５」に該当する噴射時間「７０３．１２５」および「７８１．２５」を抽出し、補間演算による近似計算を実行する。
【００７３】
次に、実施形態に係るエンジン制御用ＥＣＵ１０が実行する処理手順について、図６を用いて説明する。図６は、実施形態に係るエンジン制御用ＥＣＵ１０が実行する処理手順を示すフローチャートである。なお、図６には、算出要求部１２２から噴射時間算出要求を受け付けるたびに、算出部１２３が実行する算出処理の処理手順を示している。
【００７４】
算出部１２３は、算出要求部１２２から噴射時間算出要求を受け付けると、変換部１２３ａが、入力値を分解能変換する（ステップＳ１０１）。そして、抽出部１２３ｂが、上位ｎビットからハッシュ値を算出する（ステップＳ１０２）。
【００７５】
そして、抽出部１２３ｂは、算出したハッシュ値が示すインデックス番号に基づき、次の階層がなしか否かを判定する（ステップＳ１０３）。ここで、次の階層がなしである場合（ステップＳ１０３，Ｙｅｓ）、抽出部１２３ｂは、上記算出したハッシュ値が示すインデックス番号とそれに＋１したインデックス番号に該当するマップデータを抽出する（ステップＳ１０４）。そして、近似計算部１２３ｃが、抽出されたマップデータに基づいて補間演算による近似計算を行い（ステップＳ１０５）、処理を終了する。
【００７６】
また、ステップＳ１０３において次の階層があると判定された場合（ステップＳ１０３，Ｎｏ）、抽出部１２３ｂは、次のｎビットからハッシュ値を算出し（ステップＳ１０６）、ステップＳ１０３からの処理を繰り返す。
【００７７】
上述してきたように、実施形態に係るエンジン制御用ＥＣＵ１０（「算出装置」の一例に相当）は、変換部１２３ａと、抽出部１２３ｂとを備える。変換部１２３ａは、入力値を所定の分解能に応じたビット列で表すように変換する。抽出部１２３ｂは、探索点の点数が２ｎ＋１（ｎは１以上の自然数）であり、探索点が等間隔となるように予め生成されたマップについて、上記ビット列の上位からｎビットが示す値に基づいて入力値に対応する探索点を決定し、かかる探索点に該当するマップのデータを抽出する。
【００７８】
したがって、実施形態に係るエンジン制御用ＥＣＵ１０によれば、探索軸に沿って順次探索点を探索することなく、直接探索点のインデックス番号を指定することができるので、マップ探索を高速化することができる。
【００７９】
また、マップは、階層構造を有しており、抽出部１２３ｂは、所定の探索点について下位階層マップが予め対応付けられている場合に、上記ｎビットから次のｎビットを抽出して当該ｎビットが示す値に基づき、下位階層マップにおいて上記入力値に対応する探索点を決定する。
【００８０】
したがって、実施形態に係るエンジン制御用ＥＣＵ１０によれば、マップの数やマップに含まれるデータの点数を減らすことができ、システム要件に適う応答時間を確保しつつ、出力値算出の精度の向上を図るのに資することができる。
【００８１】
なお、上述した実施形態では、探索軸の各探索点のデータが０以上かつ単調増加する場合を例に挙げたが、かかるデータが負の数から正の数に単調増加するマップの場合には、探索点のデータが０以上または０未満になるようにオフセットすることで、上述した実施形態を適用することが可能である。正の数から負の数に単調減少するマップの場合にも、同様にオフセットすればよい。
【００８２】
また、同じようなデータのマップが複数ある場合には、共通する部分は１つのマップにまとめ、異なる部分は下位階層のマップとして用意しておくことで、マップのデータ数、ひいてはマップ数を削減でき、処理負荷を軽減するのに資することができる。
【００８３】
また、上述した実施形態は、算出装置がエンジン制御用ＥＣＵ１０である場合を例に挙げたが、車両に搭載されるか否かを問わず、マップ探索を用いた算出装置全般に適用することができる。
【００８４】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【００８５】
１    車載システム
１０    エンジン制御用ＥＣＵ
１１    記憶部
１２    制御部
２０    車載センサ
３０    インジェクタ
１１１    マップ情報
１１２    階層情報
１２１    取得部
１２２    算出要求部
１２３    算出部
１２３ａ  変換部
１２３ｂ  抽出部
１２３ｃ  近似計算部
１２４    指示部
【図１Ａ】
2020021213.tif 000003
【図１Ｂ】
2020021213.tif 000004
【図１Ｃ】
2020021213.tif 000005
【図１Ｄ】
2020021213.tif 000006
【図１Ｅ】
2020021213.tif 000007
【図２】
2020021213.tif 000008
【図３Ａ】
2020021213.tif 000009
【図３Ｂ】
2020021213.tif 000010
【図４】
2020021213.tif 000011
【図５Ａ】
2020021213.tif 000012
【図５Ｂ】
2020021213.tif 000013
【図５Ｃ】
2020021213.tif 000014
【図６】
2020021213.tif 000015