(57)【要約】【課題】本発明は、内燃機関の制御装置に関し、２次元空間の各格子点毎に学習値が対応付けられたマップを更新する際、隣接する格子点の学習値に著しいギャップが生ずることを確実に防止し、適切な学習を行うことを目的とする。【解決手段】第１のエンジンパラメータおよび第２のエンジンパラメータを引数とする２次元空間の各格子点毎に所定パラメータの学習値が対応付けられたマップを学習する学習手段を備えた内燃機関の制御装置であって、観測データを取得するデータ取得手段と、観測データ点の近傍の４つの格子点を選定する格子点選定手段と、選定された４つの格子点の各々について、観測データ点との距離が近いほど大きくなるような重みを算出する重み算出手段と、４つの格子点の各々の学習値を重み算出手段により算出された重みを付けてそれぞれ更新する学習値更新手段と、を備える。【選択図】図３
2009046988.tif 000002
【特許請求の範囲】
【請求項１】
第１のエンジンパラメータおよび第２のエンジンパラメータを引数とする２次元空間の各格子点毎に所定パラメータの学習値が対応付けられたマップを学習する学習手段を備えた内燃機関の制御装置であって、
前記所定パラメータに関する観測データを取得するデータ取得手段と、
前記２次元空間の各格子点のうち、前記観測データの第１のエンジンパラメータおよび第２のエンジンパラメータで規定される観測データ点の近傍の４つの格子点を選定する格子点選定手段と、
前記格子点選定手段により選定された４つの格子点の各々について、前記観測データ点との距離が近いほど大きくなるような重みを算出する重み算出手段と、
前記観測データに基づいて、前記４つの格子点の各々の学習値を前記重み算出手段により算出された重みを付けてそれぞれ更新する学習値更新手段と、
を備えることを特徴とする内燃機関の制御装置。
【請求項２】
前記第１のエンジンパラメータおよび第２のエンジンパラメータのうち、一方はエンジン回転数であり、他方はエンジン負荷であることを特徴とする請求項１記載の内燃機関の制御装置。
【請求項３】
前記所定のパラメータは、前記内燃機関の吸気通路に設けられたスロットル弁の開度を補正するためのスロットル開度補正量であることを特徴とする請求項１または２記載の内燃機関の制御装置。
【請求項４】
前記観測データ点の近傍の４つの格子点をＡ，Ｂ，Ｃ，Ｄとし、
前記観測データ、格子点Ａおよび格子点Ｂの前記第１のエンジンパラメータをそれぞれneobs，neAおよびneBとし、
前記観測データ、格子点Ａおよび格子点Ｃの前記第２のエンジンパラメータをそれぞれklobs，klAおよびklCとし、
α＝|neA−neobs｜／|neB−neA｜とし、
β＝|klA−klobs｜／|klC−klA|としたとき、
前記重み算出手段は、格子点Ａ，Ｂ，Ｃ，Ｄの重みをそれぞれ（１−α）（１−β），α（１−β），β（１−α），αβとして算出することを特徴とする請求項１乃至３の何れか１項記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の制御装置に関する。
【背景技術】
【０００２】
特開２００５−１７１９６４号公報には、内燃機関の吸気系に設けられたスロットルバルブの開度を制御する場合に、予め定められた基本スロットル開度をＩＳＣ（アイドルスピードコントロール）フィードバック補正量が０となるように学習する技術が開示されている。
【０００３】
【特許文献１】特開２００５−１７１９６４号公報
【特許文献２】特開平９−７９０７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来の技術のように、内燃機関の制御装置において何らかの学習制御を行う場合、エンジン回転数およびエンジン負荷を引数とする２次元空間の各格子点毎に学習値を対応付けたマップを、観測データに基づいて更新する処理が実行される。この場合、観測データのエンジン回転数およびエンジン負荷に最も近い格子点の学習値を更新することが従来では一般的である。
【０００５】
しかしながら、観測データに最も近い格子点の学習値しか更新されないと、特定の格子点の近傍に観測データが連続して観測された場合、その格子点の学習値だけが更新されていくので、近接する格子点の学習値との間のギャップが大きくなりやすい。隣接する格子点間の学習値のギャップが大きくなると、エンジン回転数やエンジン負荷が徐々に変化したときに学習値が不連続に変化することとなるので、内燃機関の制御に好ましくない影響を及ぼすおそれがある。
【０００６】
本発明は、上述のような課題を解決するためになされたもので、２次元空間の各格子点毎に学習値が対応付けられたマップを更新する際、隣接する格子点の学習値に著しいギャップが生ずることを確実に防止し、適切な学習を行うことのできる内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の発明は、上記の目的を達成するため、内燃機関の制御装置であって、
第１のエンジンパラメータおよび第２のエンジンパラメータを引数とする２次元空間の各格子点毎に所定パラメータの学習値が対応付けられたマップを学習する学習手段を備えた内燃機関の制御装置であって、
前記所定パラメータに関する観測データを取得するデータ取得手段と、
前記２次元空間の各格子点のうち、前記観測データの第１のエンジンパラメータおよび第２のエンジンパラメータで規定される観測データ点の近傍の４つの格子点を選定する格子点選定手段と、
前記格子点選定手段により選定された４つの格子点の各々について、前記観測データ点との距離が近いほど大きくなるような重みを算出する重み算出手段と、
前記観測データに基づいて、前記４つの格子点の各々の学習値を前記重み算出手段により算出された重みを付けてそれぞれ更新する学習値更新手段と、
を備えることを特徴とする。
【０００８】
また、第２の発明は、第１の発明において、
前記第１のエンジンパラメータおよび第２のエンジンパラメータのうち、一方はエンジン回転数であり、他方はエンジン負荷であることを特徴とする。
【０００９】
また、第３の発明は、第１または第２の発明において、
前記所定のパラメータは、前記内燃機関の吸気通路に設けられたスロットル弁の開度を補正するためのスロットル開度補正量であることを特徴とする。
【００１０】
また、第４の発明は、第１乃至第３の発明の何れかにおいて、
前記観測データ点の近傍の４つの格子点をＡ，Ｂ，Ｃ，Ｄとし、
前記観測データ、格子点Ａおよび格子点Ｂの前記第１のエンジンパラメータをそれぞれneobs，neAおよびneBとし、
前記観測データ、格子点Ａおよび格子点Ｃの前記第２のエンジンパラメータをそれぞれklobs，klAおよびklCとし、
α＝|neA−neobs｜／|neB−neA｜とし、
β＝|klA−klobs｜／|klC−klA|としたとき、
前記重み算出手段は、格子点Ａ，Ｂ，Ｃ，Ｄの重みをそれぞれ（１−α）（１−β），α（１−β），β（１−α），αβとして算出することを特徴とする。
【発明の効果】
【００１１】
第１の発明によれば、第１のエンジンパラメータおよび第２のエンジンパラメータを引数とする２次元空間の各格子点毎に所定パラメータの学習値が対応付けられたマップを学習する場合において、観測データ点の近傍の４つの格子点を選定し、それらの各格子点について、観測データ点との距離が近いほど大きくなるような重みを算出し、その重みをつけて各格子点の学習値をそれぞれ更新することができる。すなわち、第１の発明によれば、観測デ―タ点に最も近い格子点の学習値のみを更新するのではなく、観測データ点近傍の他の３点の格子点の学習値も併せて更新することができる。このため、観測データが特定の格子点の近傍に集中して観測されたような場合であっても、隣接する格子点間の学習値に大きなギャップが生ずることを確実に防止することができる。よって、エンジン回転数やエンジン負荷が徐々に変化したときに学習値が不連続に変化するようなことがなく、内燃機関の制御を安定化させることができる。また、観測データ点と各格子点との距離が近いほど大きな重みを付けて学習値を更新するので、その観測データに基づく更新量を４つの格子点の各々に適切に配分することができる。
【００１２】
第２の発明によれば、エンジン回転数およびエンジン負荷を引数とする学習値マップを更新する場合において、上記効果を得ることができる。
【００１３】
第３の発明によれば、内燃機関の吸気通路に設けられたスロットル弁の開度を補正するためのスロットル開度補正量を学習する場合において、上記効果を得ることができる。
【００１４】
第４の発明によれば、観測データ点近傍の４つの各格子点について、重みを適切かつ簡単に算出することができる。特に、観測データが格子上や格子点状に観測された場合であっても、適切な重みを算出することができる。
【発明を実施するための最良の形態】
【００１５】
実施の形態１．
［システム構成の説明］
図１は、本発明の実施の形態１のシステム構成を説明するための図である。図１に示すように、本実施形態のシステムは、例えば自動車等に搭載される内燃機関１０を備えている。内燃機関１０の気筒数や気筒配置は、特に限定されるものではない。
【００１６】
内燃機関１０の筒内には、吸気通路１２および排気通路１４が連通している。吸気通路１２には、吸入空気量Gaを検出するエアフローメータ１６が配置されている。エアフローメータ１６の下流には、スロットル弁１８が配置されている。スロットル弁１８の開度（以下「スロットル開度」という）は、スロットルモータ２０の作動によって調整される。スロットル弁１８の近傍には、スロットル開度を検出するためのスロットルポジションセンサ２２が配置されている。また、アクセルペダルの近傍には、アクセルペダルの踏み込み量を検出するアクセルポジションセンサ２４が設けられている。
【００１７】
内燃機関１０の各気筒には、吸気ポート１１内に燃料を噴射するための燃料インジェクタ２６が配置されている。内燃機関１０の各気筒には、更に、吸気弁２８、点火プラグ３０、および排気弁３２が設けられている。なお、本発明における内燃機関は、図示の構成に限定されるものではなく、例えば、筒内に直接に燃料を噴射する燃料インジェクタを備えた筒内直接噴射式エンジンや、あるいは、圧縮着火式エンジンなどであってもよい。
【００１８】
内燃機関１０のクランク軸３６の近傍には、クランク軸３６の回転角度を検出可能なクランク角センサ３８が設置されている。クランク角センサ３８によれば、内燃機関１０の運転中のクランク角度やエンジン回転数NEを検出することができる。
【００１９】
更に、本実施形態のシステムは、ＥＣＵ(Electronic Control Unit)５０を備えている。ＥＣＵ５０には、上述した各種のセンサおよびアクチュエータが電気的に接続されている。
【００２０】
［実施の形態１の特徴］
図２は、ＥＣＵ５０に記憶されたスロットル開度補正量マップの一部を示す図である。図２に示すように、スロットル開度補正量マップは、横軸がエンジン回転数、縦軸がエンジン負荷とされている。そして、このマップでは、エンジン回転数およびエンジン負荷がそれぞれ所定の幅で格子状に区切られており、各格子点（図２中の丸印）毎にスロットル開度補正量が格納されている。
【００２１】
スロットル開度補正量は、上述した各種センサによって得られた観測データに基づいて学習される学習値であり、内燃機関１０のトルク制御に用いられる値である。すなわち、ＥＣＵ５０は、アクセルポジションセンサ２４の信号等に基づいて目標トルクを算出し、その目標トルクを目標空気量に換算する。そして、ＥＣＵ５０に予め記憶されたスロットル流量式に基づいて、その目標空気量に対応する基本スロットル開度が算出される。その基本スロットル開度と、上述したスロットル開度補正量マップから算出されるスロットル開度補正量とを足し合わせることによって、最終的な目標スロットル開度が算出され、その目標スロットル開度に従ってスロットル弁１８が制御される。
【００２２】
内燃機関１０の運転状態が所定の学習条件を満足した場合には、スロットル開度補正量マップを更新するための観測データが取得される。具体的には、クランク角センサ３８、エアフローメータ１６、スロットルポジションセンサ２２等の信号に基づいて、エンジン回転数、エンジン負荷、吸入空気量、スロットル開度等がそれぞれ検出される。この観測データでは、検出された実際のスロットル開度と、検出された吸入空気量からスロットル流量式によって逆算される基本スロットル開度との差が、スロットル開度補正量に相当する。
【００２３】
図３は、本実施形態のスロットル開度補正量マップの更新方法を説明するための図である。図３中には、スロットル開度補正量マップ上で観測データが位置する点（以下「観測データ点」という）と、この観測データ点を囲む４つの格子点が示されている。以下の説明では、図３に示すように、それら４つの格子点をＡ，Ｂ，Ｃ，Ｄとする。
【００２４】
従来の学習制御では、観測データ点に最も近い格子点（図３に示す例の場合には、格子点Ａ）の学習値のみを更新することが一般的である。
【００２５】
これに対し、本実施形態では、観測データ点を囲む４つの格子点Ａ，Ｂ，Ｃ，Ｄの学習値をそれぞれ更新することとした。また、この更新に際しては、観測データ点と各格子点との距離に応じた重みを付けることとした。具体的には、観測データ点と各格子点との横軸方向および縦軸方向の距離の比率をα，βを用いて図３のように表したとき、各格子点の重みは、下記表のように表される。
【００２６】
【表１】
2009046988.tif 000003
【００２７】
上記の表で表される算出方法によれば、観測データ点に近い格子点ほど、大きな重みをかけることができる。また、４つの格子点Ａ，Ｂ，Ｃ，Ｄの総和は、１になっている。このような重みによれば、観測データ点と各格子点との距離に応じ、観測データを各格子点の学習値に適切な重みで反映させて更新することができる。
【００２８】
次に、観測データがスロットル開度補正量マップの格子上あるいは格子点上に観測された場合について説明する。
【００２９】
図４は、観測データがスロットル開度補正量マップの格子上に観測された場合を説明するための図である。図４に示すように、観測データ点の周囲の格子点をａ〜ｆとする。このとき、４つの格子点の組（Ａ，Ｂ，Ｃ，Ｄ）を選定する場合、下記の２候補が考えられる。
（ｉ）  （Ａ，Ｂ，Ｃ，Ｄ）＝（ａ，ｂ，ｄ，ｅ）
（ii）  （Ａ，Ｂ，Ｃ，Ｄ）＝（ｂ，ｃ，ｅ，ｆ）
【００３０】
上記（ｉ）のように格子点（Ａ，Ｂ，Ｃ，Ｄ）を選んだ場合には、α＝１となるので、上記の重み表から分かるように、格子点Ａ（＝ａ）および格子点Ｃ（＝ｄ）の重みはゼロとなる。よって、格子点Ａ（＝ａ）および格子点Ｃ（＝ｄ）のスロットル開度補正量は実際には更新されず、格子点Ｂ（＝ｂ）および格子点Ｄ（＝ｅ）のスロットル開度補正量のみが更新される。
【００３１】
一方、上記（ii）のように格子点（Ａ，Ｂ，Ｃ，Ｄ）を選んだ場合には、α＝０となるので、上記の表から分かるように、格子点Ｂ（＝ｃ）および格子点Ｄ（＝ｆ）の重みはゼロとなる。よって、格子点Ｂ（＝ｃ）および格子点Ｄ（＝ｆ）のスロットル開度補正量は実際には更新されず（変化せず）、格子点Ａ（＝ｂ）および格子点Ｄ（＝ｅ）のスロットル開度補正量のみが更新される。
【００３２】
このように、上記（ｉ）および（ii）の何れの場合であっても、図４中の格子点ｂおよび格子点ｅの学習値のみが更新されることになる。従って、観測データがスロットル開度補正量マップの格子上に観測された場合、格子点（Ａ，Ｂ，Ｃ，Ｄ）としては、上記（ｉ）および（ii）の何れを選定しても良い。
【００３３】
図５は、観測データがスロットル開度補正量マップの格子点上に観測された場合を説明するための図である。図５に示すように、観測データ点の周囲の格子点および観測データ点が載っている格子点をａ〜ｉとする。このとき、４つの格子点の組（Ａ，Ｂ，Ｃ，Ｄ）を選定する場合、下記の４候補が考えられる。
（ｉ）  （Ａ，Ｂ，Ｃ，Ｄ）＝（ａ，ｂ，ｄ，ｅ）
（ii）  （Ａ，Ｂ，Ｃ，Ｄ）＝（ｂ，ｃ，ｅ，ｆ）
（iii） （Ａ，Ｂ，Ｃ，Ｄ）＝（ｄ，ｅ，ｇ，ｈ）
（iv）  （Ａ，Ｂ，Ｃ，Ｄ）＝（ｅ，ｆ，ｈ，ｉ）
【００３４】
上記（ｉ）のように格子点（Ａ，Ｂ，Ｃ，Ｄ）を選んだ場合には、α＝１，β＝１となるので、上記の重み表から分かるように、格子点Ａ（＝ａ）、格子点Ｂ（＝ｂ）および格子点Ｃ（＝ｄ）の重みはゼロとなる。よって、格子点Ａ（＝ａ）、格子点Ｂ（＝ｂ）および格子点Ｃ（＝ｄ）のスロットル開度補正量は実際には更新されず、格子点Ｄ（＝ｅ）のスロットル開度補正量のみが更新される。
【００３５】
同様にして、上記（ii）〜（iv）のように格子点（Ａ，Ｂ，Ｃ，Ｄ）を選んだ場合であっても、図５中の格子点ｅ、つまり観測データ点が載っている格子点の学習値のみが更新されることになる。従って、観測データがスロットル開度補正量マップの格子点上に観測された場合、格子点（Ａ，Ｂ，Ｃ，Ｄ）としては、上記（ｉ）〜（iv）の何れを選定しても良い。
【００３６】
以上説明したように、本実施形態の重み算出方法によれば、観測データがスロットル開度補正量マップの格子上あるいは格子点上に観測された場合であっても、スロットル開度補正量マップを適切に更新することができる。
【００３７】
［実施の形態１における具体的処理］
図６は、上記の手法によってスロットル開度補正量マップを更新するために本実施形態においてＥＣＵ５０が実行するルーチンのフローチャートである。図６に示すルーチンによれば、まず、観測データ（エンジン回転数、エンジン負荷、スロットル開度等）が取得される（ステップ１００）。次いで、観測データのエンジン回転数およびエンジン負荷で規定される観測データ点の近傍の４つの格子点Ａ，Ｂ，Ｃ，Ｄが選定される（ステップ１０２）。このとき、観測データ点が格子上または格子点上にある場合には、前述したように、候補となる複数組の格子点のうちの何れの組を選んでもよい。
【００３８】
続いて、上記ステップ１０２で選定された格子点Ａ，Ｂ，Ｃ，Ｄと、観測データ点との距離比率を表すαおよびβの値が、次式に基づいて算出される（ステップ１０４）。
【００３９】
【数１】
2009046988.tif 000004
【００４０】
なお、上記式中、neobsは観測データのエンジン回転数、neAは格子点Ａのエンジン回転数、neBは格子点Ｂのエンジン回転数、klobsは観測データのエンジン負荷、klAは格子点Ａのエンジン負荷、klCは格子点Ｃのエンジン負荷である。
【００４１】
続いて、上記ステップ１０４で算出されたαおよびβを、前掲の重み表に示した算出式に代入することにより、各格子点Ａ，Ｂ，Ｃ，Ｄ毎の重みが算出される（ステップ１０６）。そして、その重みを付けて、各格子点Ａ，Ｂ，Ｃ，Ｄの学習値（スロットル開度補正量）が更新される（ステップ１０８）。この計算方法は、特に限定されないが、例えば重み付き逐次最小２乗法を用いて更新することができる。
【００４２】
次いで、学習を終了するか否かが判断され（ステップ１１０）、所定の学習終了条件が成立している場合には本ルーチンの処理が終了され、学習を継続する場合には、ステップ１００以下の処理が再度実行される。
【００４３】
以上説明したように、本実施形態によれば、スロットル開度補正量マップを更新する際、観測デ―タに最も近い格子点の学習値（スロットル開度補正量）のみを更新するのではなく、観測データ近傍の他の３点の格子点の学習値も併せて更新することができる。このため、観測データが特定の格子点の近傍に集中して観測されたような場合であっても、隣接する格子点間の学習値に大きなギャップが生ずることを防止することができる。よって、エンジン回転数やエンジン負荷が徐々に変化したときに学習値が不連続に変化するようなことがなく、内燃機関の制御を安定化させることができる。
【００４４】
また、観測データ近傍の４点の格子点の学習値を更新する際、観測データと各格子点との距離に応じ、その距離が近いほど大きな重みを付けることができる。このため、その観測データに基づく更新量を４つの格子点の各々に適切に配分することができる。
【００４５】
なお、本実施形態では、学習値としてスロットル開度補正量を更新する場合を例に説明したが、本発明における学習値はスロットル開度補正量に限定されるものではなく、内燃機関の制御に用いられる各種の学習値の更新に適用することができる。また、本発明における学習値のマップは、エンジン回転数およびエンジン負荷を引数とするものに限らず、内燃機関に関する他のエンジンパラメータを引数とする学習値マップであってもよい。
【００４６】
また、上述した実施の形態１においては、ＥＣＵ５０が、上記ステップ１００の処理を実行することにより前記第１の発明における「データ取得手段」が、上記ステップ１０２の処理を実行することにより前記第１の発明における「格子点選定手段」が、上記ステップ１０４および１０６の処理を実行することにより前記第１の発明における「重み算出手段」が、上記ステップ１０８の処理を実行することにより前記第１の発明における「学習値更新手段」が、図６に示すルーチンの処理を実行することにより前記第１の発明における「学習手段」が、それぞれ実現されている。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施の形態１のシステム構成を説明するための図である。
【図２】スロットル開度補正量マップの一部を示す図である。
【図３】本発明の実施の形態１におけるスロットル開度補正量マップの更新方法を説明するための図である。
【図４】観測データがスロットル開度補正量マップの格子上に観測された場合を説明するための図である。
【図５】観測データがスロットル開度補正量マップの格子点上に観測された場合を説明するための図である。
【図６】本発明の実施の形態１において実行されるルーチンのフローチャートである。
【符号の説明】
【００４８】
１０  内燃機関
１１  吸気ポート
１２  吸気通路
１４  排気通路
１６  エアフローメータ
１８  スロットル弁
２６  燃料インジェクタ
３０  点火プラグ
４２  水温センサ
５０  ＥＣＵ
【図１】
2009046988.tif 000005
【図２】
2009046988.tif 000006
【図３】
2009046988.tif 000007
【図４】
2009046988.tif 000008
【図５】
2009046988.tif 000009
【図６】
2009046988.tif 000010