(57)【要約】【課題】本発明は、学習マップの各格子点で重みの積算値を適切な範囲で変化させ、学習の応答性と安定性を両立させることを目的とする。【解決手段】学習マップの重み付け学習制御では、制御パラメータの取得値ｚkの位置から格子点までの距離が大きいほど重みｗkijが減少するように、各格子点の重みｗkijを設定する。また、重み積算値Ｗij(ｋ)は、前回までの重みｗkijの合計値Ｗij(ｋ−１)＊忘却係数αkij＋重みｗkijの式により算出する。パラメータ積算値Ｖij(ｋ)は、前回までの積（ｚk＊ｗkij）の合計値Ｖij(ｋ−１)＊忘却係数αkij＋積（ｚk＊ｗkij）の式により算出する。学習値Ｚij(ｋ)は、Ｖij(ｋ)／Ｗij(ｋ)の式により算出する。忘却係数αkijは、所定の重み積算調整係数βに基いて、αkij＝１−ｗkij＊βの式により設定する。【選択図】図６
2014005803.tif 000002
【特許請求の範囲】
【請求項１】
複数の格子点(ｉ,ｊ)を有し、内燃機関の制御に用いる制御パラメータの学習値Ｚijが前記各格子点にそれぞれ更新可能に記憶された学習マップと、
前記制御パラメータがｋ回目に取得されたときに、前記学習マップ上における前記制御パラメータの取得値ｚkの位置から格子点までの距離が大きいほど当該格子点の重みｗkijが減少するように、前記各格子点の重みｗkijをそれぞれ１≧ｗkij≧０の範囲で設定する重み設定手段と、
個々の格子点の重みｗkijを、当該格子点における前回までの重みｗkijの合計値Ｗij(ｋ−１)に加算することにより、初回からｋ回目までの重みｗkijの合計値に対応する重み積算値Ｗij(ｋ)を格子点毎に算出する重み積算手段と、
前記制御パラメータの取得値ｚkと前記重みｗkijとの積（ｚk＊ｗkij）を、当該格子点における前回までの積（ｚk＊ｗkij）の合計値Ｖij(ｋ−１)に加算することにより、初回からｋ回目までの積（ｚk＊ｗkij）の合計値に対応するパラメータ積算値Ｖij(ｋ)を格子点毎に算出するパラメータ積算手段と、
前記重みの積算履歴を忘却させるために、前記重み積算値Ｗij(ｋ)及び前記パラメータ積算値Ｖij(ｋ)を算出するときに前記合計値Ｗij(ｋ−１)，Ｖij(ｋ−１)にそれぞれ乗算する忘却係数αkijを１＞αkij＞０の範囲で設定する忘却係数設定手段と、
前記制御パラメータが取得される毎に、全ての格子点において、前記パラメータ積算値Ｖij(ｋ)を前記重み積算値Ｗij(ｋ)で除算することにより、各格子点の学習値Ｚijをｋ回目の学習値Ｚij(ｋ)に更新する学習値更新手段と、を備え、
前記忘却係数設定手段は、個々の格子点の重みｗkijと、１＞β＞０を満たす範囲で所定の値に設定される重み積算調整係数βとに基いて、当該格子点における忘却係数αkijを（αkij＝１−ｗkij＊β）の式により設定する構成としたことを特徴とする内燃機関の制御装置。
【請求項２】
前記制御パラメータの取得値ｚkの信頼度が低いほど、重み積算調整係数βを小さく設定する構成としてなる請求項１に記載の内燃機関の制御装置。
【請求項３】
前記学習マップは互いに異なる複数の領域を備え、
前記忘却係数設定手段は、前記重み積算調整係数βの値を前記複数の領域毎に切換える構成としてなる請求項１または２に記載の内燃機関の制御装置。
【請求項４】
前記重み設定手段は、前記制御パラメータの取得値ｚkの位置からの距離に応じて前記重みｗkijが正規分布曲線状に減少するガウス関数である請求項１乃至３のうち何れか１項に記載の内燃機関の制御装置。
【請求項５】
前記学習マップは、内燃機関のトルクが最大となる点火時期であるＭＢＴの学習値が前記各格子点にそれぞれ記憶されたＭＢＴマップであり、
筒内圧に基いて算出された燃焼重心が所定の燃焼重心目標値と一致するように、前記ＭＢＴマップにより算出した点火時期を補正する手段であって、補正後の点火時期が前記制御パラメータの取得値ｚkとなる点火時期補正手段と、
内燃機関の運転環境に基いて前記重み積算調整係数βを変更する係数変更手段と、
を備えてなる請求項１乃至４のうち何れか１項に記載の内燃機関の制御装置。
【請求項６】
複数の格子点(ｉ,ｊ)を有し、内燃機関の制御に用いる制御パラメータの学習値Ｚijが前記各格子点にそれぞれ更新可能に記憶された学習マップと、
前記制御パラメータがｋ回目に取得されたときに、前記学習マップ上における前記制御パラメータの取得値ｚkの位置から格子点までの距離が大きいほど当該格子点の重みｗkijが減少するように、前記各格子点の重みｗkijをそれぞれ１≧ｗkij≧０の範囲で設定する重み設定手段と、
個々の格子点の重みｗkijを、当該格子点における前回までの重みｗkijの合計値Ｗij(ｋ−１)に加算することにより、初回からｋ回目までの重みｗkijの合計値に対応する重み積算値Ｗij(ｋ)を格子点毎に算出する重み積算手段と、
前記各格子点の重み積算値Ｗij(ｋ)の最大値Ｗmaxを設定し、前記重み積算手段により算出される前記重み積算値Ｗij(ｋ)を前記最大値Ｗmax以下に制限する重み積算値制限手段と、
前記制御パラメータの取得値ｚkと前記重みｗkijとの積（ｚk＊ｗkij）を、当該格子点における前回までの積（ｚk＊ｗkij）の合計値Ｖij(ｋ−１)に加算することにより、初回からｋ回目までの積（ｚk＊ｗkij）の合計値に対応するパラメータ積算値Ｖij(ｋ)を格子点毎に算出するパラメータ積算手段と、
前記制御パラメータが取得される毎に、全ての格子点において、前記パラメータ積算値Ｖij(ｋ)を前記重み積算値Ｗij(ｋ)で除算することにより、各格子点の学習値Ｚijをｋ回目の学習値Ｚij(ｋ)に更新する学習値更新手段と、
を備えることを特徴とする内燃機関の制御装置。
【請求項７】
前記制御パラメータの取得値ｚkの信頼度が低いほど、前記最大値Ｗmaxを大きく設定する構成としてなる請求項６に記載の内燃機関の制御装置。
【請求項８】
前記学習マップは互いに異なる複数の領域を備え、
前記重み積算値制限手段は、前記最大値Ｗmaxの値を前記複数の領域毎に切換える構成としてなる請求項６または７に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御パラメータの学習マップを備えた内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来技術として、例えば特許文献１（特開２００９−０４６９８８号公報）に開示されているように、制御パラメータの学習マップを備えた内燃機関の制御装置が知られている。学習マップの各格子点には、制御パラメータを補正するための学習値がそれぞれ記憶されている。従来技術では、学習すべき制御パラメータを取得した場合に、学習マップ上で当該取得値の周囲に位置する４個の格子点を選択し、これら４個の格子点の学習値を更新する構成としている。この学習制御では、制御パラメータの取得値に重み付けをしてから周囲の格子点の学習値に反映させるが、このときの重み付けは、前記取得値の位置と格子点との距離が近いほど大きくなるように設定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０４６９８８号公報
【特許文献２】特開平９−０７９０７２号公報
【特許文献３】特開２００９−２５０２４３号公報
【特許文献４】特開２００５−１４６９４７号公報
【特許文献５】特開２０００−０３８９４４号公報
【特許文献６】特開平４−１７５４３４号公報
【特許文献７】特開２００７−１７６３７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来技術では、制御パラメータの取得値の周囲に位置する４個の学習値に対して、前記取得値に近い格子点ほど重み付けが大きくなるように学習制御を行う構成としている。しかしながら、例えば学習値を更新するのに重みの積算値を利用していると、学習が進行して重みが溜まった場合に、学習値が変化し難くなる。この状態では、経時変化等により制御パラメータの特性が変化しても、学習値が十分に行われないという問題がある。これに対し、過去のデータ（重みの積算履歴）を忘却するように設定することも考えられる。しかし、過去のデータを忘却させると、制御パラメータの取得値から離れた格子点では、学習値が更新されない状態で、重みの積算値が減っていくことになる。このような格子点の近傍で制御パラメータが取得されると、学習値が大きく変化する虞れがある。
【０００５】
本発明は、上述のような課題を解決するためになされたもので、本発明の目的は、学習マップの各格子点で重みの積算値を適切な範囲で変化させ、学習の応答性と安定性を両立させることが可能な内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
第１の発明は、複数の格子点(ｉ,ｊ)を有し、内燃機関の制御に用いる制御パラメータの学習値Ｚijが前記各格子点にそれぞれ更新可能に記憶された学習マップと、
前記制御パラメータがｋ回目に取得されたときに、前記学習マップ上における前記制御パラメータの取得値ｚkの位置から格子点までの距離が大きいほど当該格子点の重みｗkijが減少するように、前記各格子点の重みｗkijをそれぞれ１≧ｗkij≧０の範囲で設定する重み設定手段と、
個々の格子点の重みｗkijを、当該格子点における前回までの重みｗkijの合計値Ｗij(ｋ−１)に加算することにより、初回からｋ回目までの重みｗkijの合計値に対応する重み積算値Ｗij(ｋ)を格子点毎に算出する重み積算手段と、
前記制御パラメータの取得値ｚkと前記重みｗkijとの積（ｚk＊ｗkij）を、当該格子点における前回までの積（ｚk＊ｗkij）の合計値Ｖij(ｋ−１)に加算することにより、初回からｋ回目までの積（ｚk＊ｗkij）の合計値に対応するパラメータ積算値Ｖij(ｋ)を格子点毎に算出するパラメータ積算手段と、
前記重みの積算履歴を忘却させるために、前記重み積算値Ｗij(ｋ)及び前記パラメータ積算値Ｖij(ｋ)を算出するときに前記合計値Ｗij(ｋ−１)，Ｖij(ｋ−１)にそれぞれ乗算する忘却係数αkijを１＞αkij＞０の範囲で設定する忘却係数設定手段と、
前記制御パラメータが取得される毎に、全ての格子点において、前記パラメータ積算値Ｖij(ｋ)を前記重み積算値Ｗij(ｋ)で除算することにより、各格子点の学習値Ｚijをｋ回目の学習値Ｚij(ｋ)に更新する学習値更新手段と、を備え、
前記忘却係数設定手段は、個々の格子点の重みｗkijと、１＞β＞０を満たす範囲で所定の値に設定される重み積算調整係数βとに基いて、当該格子点における忘却係数αkijを（αkij＝１−ｗkij＊β）の式により設定する構成としたことを特徴とする。
【０００７】
第２の発明によると、前記制御パラメータの取得値ｚkの信頼度が低いほど、重み積算調整係数βを小さく設定する構成としている。
【０００８】
第３の発明によると、前記学習マップは互いに異なる複数の領域を備え、
前記忘却係数設定手段は、前記重み積算調整係数βの値を前記複数の領域毎に切換える構成としている。
【０００９】
第４の発明によると、前記重み設定手段は、前記制御パラメータの取得値ｚkの位置からの距離に応じて前記重みｗkijが正規分布曲線状に減少するガウス関数である構成としている。
【００１０】
第５の発明によると、前記学習マップは、内燃機関のトルクが最大となる点火時期であるＭＢＴの学習値が前記各格子点にそれぞれ記憶されたＭＢＴマップであり、
筒内圧に基いて算出された燃焼重心が所定の燃焼重心目標値と一致するように、前記ＭＢＴマップにより算出した点火時期を補正する手段であって、補正後の点火時期が前記制御パラメータの取得値ｚkとなる点火時期補正手段と、
内燃機関の運転環境に基いて前記重み積算調整係数βを変更する係数変更手段と、
を備える。
【００１１】
第６の発明は、複数の格子点(ｉ,ｊ)を有し、内燃機関の制御に用いる制御パラメータの学習値Ｚijが前記各格子点にそれぞれ更新可能に記憶された学習マップと、
前記制御パラメータがｋ回目に取得されたときに、前記学習マップ上における前記制御パラメータの取得値ｚkの位置から格子点までの距離が大きいほど当該格子点の重みｗkijが減少するように、前記各格子点の重みｗkijをそれぞれ１≧ｗkij≧０の範囲で設定する重み設定手段と、
個々の格子点の重みｗkijを、当該格子点における前回までの重みｗkijの合計値Ｗij(ｋ−１)に加算することにより、初回からｋ回目までの重みｗkijの合計値に対応する重み積算値Ｗij(ｋ)を格子点毎に算出する重み積算手段と、
前記各格子点の重み積算値Ｗij(ｋ)の最大値Ｗmaxを設定し、前記重み積算手段により算出される前記重み積算値Ｗij(ｋ)を前記最大値Ｗmax以下に制限する重み積算値制限手段と、
前記制御パラメータの取得値ｚkと前記重みｗkijとの積（ｚk＊ｗkij）を、当該格子点における前回までの積（ｚk＊ｗkij）の合計値Ｖij(ｋ−１)に加算することにより、初回からｋ回目までの積（ｚk＊ｗkij）の合計値に対応するパラメータ積算値Ｖij(ｋ)を格子点毎に算出するパラメータ積算手段と、
前記制御パラメータが取得される毎に、全ての格子点において、前記パラメータ積算値Ｖij(ｋ)を前記重み積算値Ｗij(ｋ)で除算することにより、各格子点の学習値Ｚijをｋ回目の学習値Ｚij(ｋ)に更新する学習値更新手段と、を備える。
【００１２】
第７の発明によると、前記制御パラメータの取得値ｚkの信頼度が低いほど、前記最大値Ｗmaxを大きく設定する構成としている。
【００１３】
第８の発明によると、前記学習マップは互いに異なる複数の領域を備え、
前記重み積算値制限手段は、前記最大値Ｗmaxの値を前記複数の領域毎に切換える構成としている。
【発明の効果】
【００１４】
第１の発明によれば、忘却係数αkijを、重み積算調整係数β等に基いて、αkij＝１−ｗkij＊βの式により設定したので、学習回数が増えた場合でも、重み積算値Ｗij(ｋ)を特定値（１／β）に収束させることができる。これにより、特定値（１／β）を重み積算値Ｗij(ｋ)の下限値として機能させ、学習状況等に応じて変化する重み積算値Ｗij(ｋ)が特定値（１／β）よりも小さくなるのを制限することができる。従って、各格子点で重み積算値Ｗij(ｋ)を適切な範囲で変化させ、学習の応答性と安定性を両立させることができる。また、重み積算調整係数βを小さくするほど、学習値Ｚij(ｋ)に対する制御パラメータの取得値ｚkの反映度を抑制することができる。従って、重み積算調整係数βに基いて、学習速度を適切に調整することができる。
【００１５】
第２の発明によれば、制御パラメータの取得値ｚkの信頼度が低いほど、重み積算調整係数βを小さく設定することができる。従って、取得した制御パラメータの信頼度や必要性等に応じて重み積算調整係数βを変更することにより、学習値の更新量（速度）を適切に調整することができ、学習制御をより高い精度で実行することができる。
【００１６】
第３の発明によれば、忘却係数設定手段は、学習マップ上の各領域の要求に応じて重み積算調整係数βを適切な値に切換えることができる。これにより、学習マップ全体の学習速度を最適化することができる。
【００１７】
第４の発明によれば、重み設定手段としてガウス関数を用いることにより、制御パラメータの取得値ｚkの位置からの距離に応じて、重みｗkijを滑らかに変化させることができる。従って、学習マップを滑らかにすることができ、学習値Ｚij(ｋ)の急変等による制御性の悪化を抑制することができる。しかも、ガウス関数の標準偏差σの設定に応じて重みｗkijの減少特性を変化させることができ、広い学習領域において学習の速度や効率を容易に調整することができる。
【００１８】
第５の発明によれば、ＭＢＴの学習制御を行う場合において、係数変更手段は、内燃機関の運転環境（例えば給油の有無、点火プラグの交換の有無、冷間運転時であるか否か等）に基いて、重み積算調整係数βを変更することができる。これにより、内燃機関の運転環境に応じてＭＢＴの学習速度を適切に調整し、また、誤学習やノイズに対して的確に対処することができる。
【００１９】
第６の発明によれば、重み積算値Ｗij(ｋ)を最大値Ｗmax以下に制限したので、学習回数が増えた場合でも、重み積算値Ｗij(ｋ)が過大となって学習値Ｚij(ｋ)が更新され難くなるのを防止することができる。これにより、各格子点で重み積算値Ｗij(ｋ)を適切な範囲で変化させ、学習の応答性と安定性を両立させることができる。また、最大値Ｗmaxを大きくするほど、学習値Ｚij(ｋ)に対する制御パラメータの取得値ｚkの反映度を抑制することができる。これにより、最大値Ｗmaxに基いて、学習の応答性（学習速度）を適切に調整することができる。
【００２０】
第７の発明によれば、制御パラメータの取得値ｚkの信頼度が低いほど、最大値Ｗmaxを大きく設定することができる。従って、取得した制御パラメータの信頼度や必要性等に応じて最大値Ｗmaxを変更することにより、学習値の更新量（速度）を適切に調整することができ、学習制御をより高い精度で実行することができる。
【００２１】
第８の発明によれば、学習マップ上の各領域の要求に応じて最大値Ｗmaxを適切な値に切換えることができる。これにより、学習マップ全体の学習速度を最適化することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態１のシステム構成を説明するための全体構成図である。
【図２】本発明の実施の形態１において、重み付け学習制御に用いる学習マップの一例を模式的に示す説明図である。
【図３】本発明の実施の形態１において、ガウス関数による重みの減少特性を示す特性線図である。
【図４】重み付け学習制御の学習値、重み及び重み積算値の挙動が忘却係数の有無に応じて変化する様子を示すタイミングチャートである。
【図５】重み付け学習制御の学習値、重み及び重み積算値の挙動が忘却係数の設定等に応じて変化する様子を示すタイミングチャートである。
【図６】本発明の実施の形態１において、ＥＣＵにより実行される制御を示すフローチャートである。
【図７】本発明の実施の形態２において、重み積算調整係数βを変更する制御の一例を示すタイミングチャートである。
【図８】本発明の実施の形態３において、学習マップを複数個の領域に分けて重み積算調整係数βを領域毎に切換える構成の一例を模式的に示す説明図である。
【図９】本発明の実施の形態４において、ＥＣＵにより実行される制御を示すフローチャートである。
【図１０】本発明の実施の形態５による点火時期制御を示す制御ブロック図である。
【発明を実施するための形態】
【００２３】
実施の形態１．
［実施の形態１の構成］
以下、図１乃至図６を参照して、本発明の実施の形態１について説明する。図１は、本発明の実施の形態１のシステム構成を説明するための全体構成図である。本実施の形態のシステムは、内燃機関として多気筒型のエンジン１０を備えている。なお、本発明は、単気筒及び多気筒を含む任意の気筒数の内燃機関に適用されるものであり、図１は、エンジン１０に搭載された複数気筒のうちの１気筒を例示したものである。
【００２４】
エンジン１０の各気筒には、ピストン１２により燃焼室１４が形成されており、ピストン１２はクランク軸１６に連結されている。また、エンジン１０は、各気筒に吸入空気を吸込む吸気通路１８を備えており、吸気通路１８には、吸入空気量を調整する電子制御式のスロットルバルブ２０が設けられている。一方、エンジン１０は、各気筒の排気ガスを排出する排気通路２２を備えており、排気通路２２には、排気ガスを浄化する三元触媒等の触媒２４が設けられている。また、エンジンの各気筒は、吸気ポートに燃料を噴射する燃料噴射弁２６と、混合気に点火する点火プラグ２８と、吸気ポートを開閉する吸気バルブ３０と、排気ポートを開閉する排気バルブ３２とを備えている。
【００２５】
次に、本実施の形態のシステムに搭載された制御系統について説明する。本実施の形態のシステムは、エンジン及び車両の運転に必用な各種のセンサが含まれるセンサ系統と、エンジンの運転状態を制御するＥＣＵ（Engine Control Unit）６０とを備えている。まず、センサ系統について述べると、クランク角センサ４４は、クランク軸１６の回転に同期した信号を出力するもので、エアフローセンサ４６は吸入空気量を検出する。また、水温センサ４８はエンジン冷却水の水温を検出し、筒内圧センサ５０は筒内圧を検出し、吸気温度センサ５２は吸入空気の温度（外気温度）を検出する。空燃比センサ５４は、排気空燃比を連続的な検出値として検出するもので、触媒２４の上流側に配置されている。酸素濃度センサ５６は、排気空燃比が理論空燃比に対してリッチとリーンの何れであるかを検出するもので、触媒２４の下流側に配置されている。
【００２６】
ＥＣＵ６０は、ＲＯＭ、ＲＡＭ、不揮発性メモリ等からなる記憶回路と、入出力ポートとを備えた演算処理装置により構成されている。ＥＣＵ６０の不揮発性メモリには、後述する各種の学習マップが記憶されている。また、ＥＣＵ６０の入力側には、センサ系統の各センサがそれぞれ接続されている。ＥＣＵ６０の出力側には、スロットルバルブ２０、燃料噴射弁２６、点火プラグ２８等のアクチュエータが接続されている。そして、ＥＣＵ６０は、センサ系統により検出したエンジンの運転情報に基いて各アクチュエータを駆動し、運転制御を行う。具体的には、クランク角センサ４４の出力に基いて機関回転数とクランク角とを検出し、エアフローセンサ４６により吸入空気量を検出する。また、機関回転数と吸入空気量とに基いて機関負荷を算出し、吸入空気量、機関負荷、水温等に基いて燃料噴射量を算出すると共に、クランク角に基いて燃料噴射時期及び点火時期を決定する。そして、燃料噴射時期が到来した時点で燃料噴射弁２６を駆動し、点火時期が到来した時点で点火プラグ２８を駆動する。これにより、各気筒で混合気を燃焼させ、エンジンを運転する。
【００２７】
［実施の形態１の特徴］
（重み付け学習制御）
一般に、エンジン制御では、各種の制御パラメータの取得値に基いて制御パラメータを学習する学習制御が行われる。なお、本明細書中において、「取得」とは、検出、計測、測定、算出、推定等の意味を含むものとする。本実施の形態では、学習制御として、以下に述べる重み付け学習制御を実行する。ＥＣＵ６０は、重み付け学習制御を行う学習装置を構成しており、複数の格子点を有する学習マップを備えている。なお、本実施の形態では、重み付け学習制御の具体的な内容について説明するものとし、制御パラメータの具体例については、後述する実施の形態５で説明する。
【００２８】
図２は、本発明の実施の形態１において、重み付け学習制御に用いる学習マップの一例を模式的に示す説明図である。この図は、Ｘ軸及びＹ軸に対応する２つの参照パラメータに基いて、１つの学習値が算出される２次元の学習マップを例示している。図２に示す学習マップは、座標ｉ，ｊが１〜４の範囲で変化する１６個の格子点を有している。学習マップの各格子点(ｉ,ｊ)には、制御パラメータの学習値Ｚijがそれぞれ更新可能に記憶されている。
【００２９】
なお、以下の説明において、添字ｋが付記される変数値ｚk、ｗkij、Ｗij(ｋ)、Ｖij(ｋ)、Ｚij(ｋ)等は、ｋ回目の取得タイミング（演算タイミング）に対応するｋ番目の値であることを明示する表記であり、添字ｋが付記されない変数値ｗij、Ｗij、Ｖij、Ｚij等は、取得タイミングにより区別する必要がない場合の表記である。また、図２は、制御パラメータの１回目及び２回目の取得値ｚ1，ｚ2が全格子点の学習値Ｚijに反映される様子を矢印により例示したもので、図面を判り易くするために、矢印の一部を省略し、学習値の更新範囲を円により示している。
【００３０】
重み付け学習制御は、基本的に、ｋ回目（ｋ番目）の取得タイミングで取得した制御パラメータの取得値（パラメータ取得値ｚk）と、後述の重み設定手段により設定された各格子点(ｉ,ｊ)の重みｗkijとに基いて、全ての格子点(ｉ,ｊ)の学習値Ｚij(ｋ)を更新する。この更新処理は、全ての格子点(ｉ,ｊ)において、下記数１乃至数３の式を演算することにより実現される。
【００３１】
[数１]
Ｗij(ｋ)＝Ｗij(ｋ−１)＊αkij＋ｗkij
[数２]
Ｖij(ｋ)＝Ｖij(ｋ−１)＊αkij＋ｚk＊ｗkij
[数３]
Ｚij(ｋ)＝Ｖij(ｋ)／Ｗij(ｋ)
【００３２】
上記式において、重み積算値Ｗij(ｋ)は、個々の格子点において、初回から前回までの重みｗkijの合計値Ｗij(ｋ−１)に対して、今回（ｋ回目）の重みｗkijを加算したもので、初回からｋ回目までの重みｗkijの合計値に対応している。なお、前回までの合計値、即ち、過去の積算値Ｗij(ｋ−１)には、後述の忘却係数αkijが乗算される。パラメータ積算値Ｖij(ｋ)は、個々の格子点において、パラメータ取得値ｚkと重みｗkijとの積（ｚk＊ｗkij）を、初回から前回までの積（ｚk＊ｗkij）の合計値Ｖij(ｋ−１)に加算したもので、初回からｋ回目までの積（ｚk＊ｗkij）の合計値に対応している。なお、前回までの合計値、即ち、過去の積算値Ｖij(ｋ−１)には、忘却係数αkijが乗算される。一方、ｋ回目の学習値Ｚij(ｋ)は、パラメータ積算値Ｖij(ｋ)を重み積算値Ｗij(ｋ)で除算することにより算出され、前回の学習値Ｚij(ｋ−１)が学習値Ｚij(ｋ)に更新される。重み付け学習制御では、制御パラメータが取得される毎に、全ての格子点で前記数１乃至数３の式が実行される。これにより、各格子点の学習値Ｚij(ｋ)には、重みｗkijが大きいほど、パラメータ取得値ｚkが大きく反映される。
【００３３】
また、上記数１及び数２の式には、前回（ｋ−１回目）の積算値Ｗij(ｋ−１)及びＶij(ｋ−１)が用いられるが、これらの初期値（ｋ＝１のときの値）は、下記数４及び数５の式により定義される。従って、数１乃至数５の式によれば、ｋ番目のパラメータ取得値ｚkと、重みｗkijとに基いて、全ての格子点(ｉ,ｊ)におけるｋ番目の学習値Ｚij(ｋ)を算出し、学習マップを更新することができる。
【００３４】
[数４]
Ｖij(１)＝ｚ1＊ｗ1ij
[数５]
Ｗij(１)＝ｗ1ij
【００３５】
（重みの設定方法）
次に、本実施の形態における重みｗkijの設定方法について説明する。ｋ番目のパラメータ取得値ｚkに対応する各格子点(ｉ,ｊ)の重みｗkijは、下記数６の式に示すガウス関数より、１≧ｗkij≧０を満たすように算出される。ガウス関数は、本実施の形態の重み設定手段を構成するもので、学習マップ上におけるパラメータ取得値ｚkの位置（基準位置）から格子点(ｉ,ｊ)までの距離が大きいほど、当該格子点(ｉ,ｊ)の重みｗkijを減少させるものである。なお、学習マップ上の「位置」とは、パラメータ取得値ｚkの取得時点における各参照パラメータの組合わせにより定められる。
【００３６】
【数６】
2014005803.tif 000003
【００３７】
上記数６の式において、|ｚk−Ｚij|は、前記基準位置から格子点(ｉ,ｊ)までのユークリッド距離を示している。図３は、本発明の実施の形態１において、ガウス関数による重みの減少特性を示す特性線図である。ここで、重みの減少特性とは、基準位置からの距離に応じて減少する重みと前記距離との関係を意味している。図３中に実線で示すように、ガウス関数により得られる重みｗkijは、格子点が基準位置に近い場合に大きくなり、格子点が基準位置から遠いほど、正規分布曲線状に減少していく。従って、パラメータ取得値ｚkが学習値Ｚijに反映される度合い（学習効果）は、格子点が基準位置に近いほど大きくなり、格子点が基準位置から遠くなるにつれて小さくなる。なお、上記重み設定手段とししては、ガウス関数だけでなく、基準位置からの距離に応じて減少する一次関数や三角関数の波形等も利用することができる。
【００３８】
また、上記数６の式に示すσは、任意の値に設定することが可能な標準偏差であり、ガウス関数の減少特性は、標準偏差σに応じて変化する。即ち、重みｗkijは、図３中に点線で示すように、標準偏差σが小さいほど、基準位置の近傍に存在するピーク値が大きくなるものの、基準位置から遠くなるにつれて急激に減少する。この結果、標準偏差σが小さい場合には、基準位置の近傍のみで急峻な学習が行われることになり、学習の応答性は高くなるが、学習マップの曲面には凹凸が生じ易くなる。一方、重みｗkijは、図３中に一点鎖線で示すように、標準偏差σが大きいほど、ピーク値が小さくなり、基準位置から遠くなるにつれて緩やかに減少する。この結果、標準偏差σが大きい場合には、基準位置の近傍から遠方にかけて学習が広範囲に行われることになり、学習の応答性は相対的に低下するものの、学習マップを滑らかな曲面にすることができる。
【００３９】
（重み付け学習制御の問題点）
上述した重み付け学習制御において、忘却係数αkijを使用しない場合には、学習が進行するにつれて、各格子点の重み積算値Ｗij(ｋ)が徐々に増加していく（重みｗkijが溜まった状態となる）。そして、重みｗkijがある程度以上溜まると、前記数１及び数２の式の右辺において、今回の重みｗkijに対する過去の積算値Ｗij(ｋ−１)，Ｖij(ｋ−１)の比率が大きくなり、その結果として学習値Ｚij(ｋ)が変化し難くなる。この状態では、制御パラメータの特性が経時変化等により変わった場合に、学習制御により対応できない虞れが生じる。このため、本実施の形態では、過去の積算値Ｗij(ｋ−１)，Ｖij(ｋ−１)に対して忘却係数αkijを乗算し、忘却係数αkijを用いて過去のデータ（重みの積算履歴）を忘却させる構成としている。
【００４０】
（忘却係数）
忘却係数αkijは、個々の格子点毎に１＞αkij＞０の範囲で設定される係数である。過去の重み積算値Ｗij(ｋ−１)及びパラメータ積算値Ｖij(ｋ−１)は、忘却係数が小さいほど減少するが、これは過去の積算値Ｗij(ｋ−１)，Ｖij(ｋ−１)の履歴が忘却された状態に対応している。従って、制御パラメータの最新の取得値ｚk及び重みｗkijは、忘却係数が小さいほど、学習値Ｚij(ｋ)に反映され易くなり、忘却係数が大きくなるほど、学習値Ｚij(ｋ)に反映され難くなる。
【００４１】
図４は、重み付け学習制御の学習値、重み及び重み積算値の挙動が忘却係数の有無に応じて変化する様子を示すタイミングチャートである。なお、この図では、忘却係数αが一定値の場合を例示している。図４において、上段は学習値Ｚijの挙動を示し、中段は重みｗkijの挙動を示し、下段は重み積算値Σｗ（＝Ｗij）の挙動を示している。図４中に点線で示すように、忘却係数αを用いない場合には、例えば区間（１）において、重みが溜まるため、その後に計測データ（パラメータ取得値ｚk）が変化しても、学習値Ｚij(ｋ)が更新されないか、または更新が遅くなる。
【００４２】
これに対し、忘却係数α（一定値）を採用した場合には、図４中に太線で示すように、過去の重み積算値Ｗij(ｋ−１)及びパラメータ積算値Ｖij(ｋ−１)を適度に減少（忘却）させ、これらの積算値Ｗij(ｋ)，Ｖij(ｋ)が過剰に溜まるのを防止することができる。これにより、忘却係数αを用いない場合と比較して、学習値Ｚij(ｋ)を速やかに更新することができる。従って、学習値Ｚij(ｋ)の更新量を適切に調整し、学習の応答性を向上させることができ、制御パラメータの急変等にも速やかに対処することができる。
【００４３】
但し、忘却係数αを用いた場合に、制御パラメータの取得値から離れた格子点では、学習値が更新されない状態で、重み積算値Ｗij(ｋ)が減っていくことになる。このような格子点の近傍で制御パラメータが取得されると、学習値Ｚij(ｋ)が大きく変化する虞れがある。このため、本実施の形態では、個々の格子点(ｉ,ｊ)の忘却係数αkijを、当該格子点の重みｗkijと、１＞β＞０の範囲で所定の値に設定される重み積算調整係数βとに基いて、下記数７の式により可変に設定する構成としている。
【００４４】
[数７]
αkij＝１−ｗkij＊β
【００４５】
上記数７の式によれば、学習動作を繰返すうちに、重み積算値Ｗij(ｋ)は、特定値（１／β）に収束するようになる。即ち、特定値（１／β）は、重み積算値Ｗij(ｋ)の下限値となる。従って、忘却係数αを用いた場合でも、重み積算値Ｗij(ｋ)の減少を適度に制限し、重み積算値Ｗij(ｋ)が過剰に小さくなるのを防止することができる。なお、重み積算調整係数βの具体的な設定方法については、実施の形態２以降で説明する。
【００４６】
また、前記数７の式に基いて忘却係数αを設定した場合に、重み積算値Ｗij(ｋ)が収束することは、下記数８乃至数１１の式により証明することができる。なお、これらの式は１つの格子点に着目した計算式を示しているので、忘却係数αkijについては、添字ｉ，ｊを省略し、単に「αk」として表記している。下記の式では、まず、数８の式を等比級数の公式を参考にして変形することにより、数９の式を得ることができ、この式を更に変形することにより、数１０の式を得ることができる。そして、数１０の式を変形すれば、最終的に数１１の式を得ることができる。
【００４７】
【数８】
2014005803.tif 000004
【００４８】
【数９】
2014005803.tif 000005
【００４９】
【数１０】
2014005803.tif 000006
【００５０】
【数１１】
2014005803.tif 000007
【００５１】
ここで、上記数１１の式の下段は、重み積算値Ｗij(ｋ)を３つの項により表した最終的な状態を示している。この式において、まず、第２項は、ｋが十分に大きいときに０に収束する。第３項は、最近のｗk及びαkが一定であるか、またはこれらがランダムであれば０に収束する。従って、前記数７の式を用いて忘却係数αを設定することにより、重み積算値Ｗij(ｋ)は、特定値（１／β）に収束することがわかる。
【００５２】
次に、図５を参照して、本実施の形態による作用効果について説明する。図５は、重み付け学習制御の学習値、重み及び重み積算値の挙動が忘却係数の設定等に応じて変化する様子を示すタイミングチャートである。この図中の「上限設定」については、後述する実施の形態４で説明する。図５に示すように、忘却係数が一定値の場合には、忘却係数なしの場合と比較して学習の応答性が向上するものの、例えば区間（２）のように、重み積算値Ｗij(ｋ)が零に近い値まで減少することがある。この場合には、学習値Ｚij(ｋ)がノイズでも大きく変化するようになるので、ノイズの影響を受け易くなる。これに対し、本実施の形態のように、前記数７の式を用いて忘却係数を可変とした場合には、重み積算値Ｗij(ｋ)が最小となっても十分な大きさの特定値（１／β）に保持されるので、学習値Ｚij(ｋ)に対するノイズの影響を抑制することができる。
【００５３】
［重み付け学習制御を実現するための具体的な処理］
次に、図６を参照して、上述した制御を実現するための具体的な処理について説明する。図６は、本発明の実施の形態１において、ＥＣＵにより実行される制御のフローチャートである。この図に示すルーチンは、エンジンの運転中に繰り返し実行されるものとする。図３に示すルーチンでは、まず、ステップ１００において、ｋ番目のデータ（パラメータ取得値）ｚkを取得する。
【００５４】
次に、ステップ１０２では、前記数６の式により、ｋ番目の取得タイミングにおける全ての格子点(ｉ,ｊ)の重みｗkijを算出する。そして、ステップ１０４では、個々の格子点(ｉ,ｊ)において、重みｗkijと、予め設定された重み積算調整係数βとに基いて、前記数７の式により忘却係数αkijを算出する。また、ステップ１０６では、ｋ番目のパラメータ取得値ｚkと、重みｗkijと、忘却係数αkijとに基いて、重み積算値Ｗij(ｋ)及びパラメータ積算値Ｖij(ｋ)を格子点毎に算出する。次に、ステップ１０８では、重み積算値Ｗij(ｋ)とパラメータ積算値Ｖij(ｋ)とに基いて、全ての格子点(ｉ,ｊ)の学習値Ｚij(ｋ)を算出し、学習マップを更新する。
【００５５】
以上詳述した通り、本実施の形態では、重み付け学習制御に忘却係数αkijを採用し、その値を各格子点の重みｗkijと所定の重み積算調整係数βとに基いて設定する構成としたので、次のような効果を得ることができる。まず、忘却係数αkijによれば、重み積算値Ｗij(ｋ)を減少させることができるので、重み積算値Ｗij(ｋ)が過大となることで学習値Ｚij(ｋ)が更新され難くなるのを防止し、学習の応答性を適切に調整することができる。また、忘却係数αkijを、重みｗkijと重み積算調整係数βとに基いて、前記数７の式により設定したので、学習回数が増えた場合でも、重み積算値Ｗij(ｋ)を特定値（１／β）に収束させることができる。
【００５６】
これにより、特定値（１／β）を重み積算値Ｗij(ｋ)の下限値として機能させ、学習状況等に応じて変化する重み積算値Ｗij(ｋ)が特定値（１／β）よりも小さくなるのを制限することができる。この結果、パラメータ取得値ｚkから離れた格子点において、忘却係数αkijの影響により重み積算値Ｗij(ｋ)が減少し過ぎて、学習値Ｚij(ｋ)が過大に変化したり、誤学習やノイズによる誤差が発生するのを抑制することができる。従って、各格子点で重み積算値Ｗij(ｋ)を適切な範囲で変化させ、学習の応答性と安定性を両立させることができる。
【００５７】
また、本実施の形態では、重み積算調整係数βを小さくするほど、重み積算値Ｗij(ｋ)の下限値である特定値（１／β）を増加させることができ、過去の重み積算値Ｗij(ｋ−１)に対する新たな重みｗkijの相対的な大きさ、即ち、学習値Ｚij(ｋ)に対するパラメータ取得値ｚkの反映度を小さくすることができる。従って、重み積算調整係数βに基いて、学習速度を適切に調整することができる。また、例えば重み積算調整係数βを小さく設定した状態において、学習値Ｚij(ｋ)が不自然に大きく変化した場合には、この状態を制御パラメータの異常（センサ等の故障）として検出することができ、学習速度に基いて異常検出を実行することができる。
【００５８】
さらに、重み付け制御によれば、次のような効果を得ることができる。まず、重み付け学習制御では、１回の学習動作を行うことにより、パラメータ取得値ｚkに最も近い格子点(ｉ,ｊ)だけでなく、全ての格子点(ｉ,ｊ)の学習値Ｚij(ｋ)を距離に応じて重み付けしながら適切に更新することができる。これにより、学習機会が少ない場合でも、最小限の学習回数により全ての格子点(ｉ,ｊ)の学習値Ｚij(ｋ)を速やかに最適化することができる。しかも、一部の格子点(ｉ,ｊ)で学習値Ｚij(ｋ)が失われたり、未学習状態が続いた場合でも、これらの学習値Ｚij(ｋ)を他の位置での学習動作により補完することができる。従って、制御パラメータの種類に関係なく、学習効率を高め、学習制御の信頼性を向上させることができる。
【００５９】
また、重み設定手段としてガウス関数を用いることにより、パラメータ取得値ｚkの位置（基準位置）からの距離に応じて、重みｗkijを滑らかに変化させることができる。従って、学習マップを滑らかにすることができ、学習値Ｚij(ｋ)の急変等による制御性の悪化を抑制することができる。しかも、標準偏差σの設定に応じて重みｗkijの減少特性を変化させることができ、広い学習領域において学習特性（学習の速度や効率）を容易に調整することができる。さらに、制御パラメータを取得する毎に、逐次平均処理を行うことになるので、学習値Ｚij(ｋ)に対する外乱（ノイズ等）の影響を除去することができる。また、逐次処理により、学習値Ｚij(ｋ)の演算負荷を時間的に分散させることができるので、ＥＣＵ６０の演算負荷を軽減することができる。
【００６０】
なお、前記実施の形態１では、図２が学習マップの具体例を示している。また、図６中のステップ１０２が重み設定手段の具体例を示し、ステップ１０４が忘却係数設定手段の具体例を示している。また、ステップ１０６が重み積算手段及びパラメータ積算手段の具体例を示し、ステップ１０８が学習値更新手段の具体例を示している。また、実施の形態１では、ガウス関数として数６の式を例示したが、本発明はこれに限らず、下記数１２の式に示すガウス関数により重みｗkijを設定してもよい。
【００６１】
【数１２】
2014005803.tif 000008
【００６２】
上記数１２の式において、ｚk_１は、パラメータ取得値ｚkの第１軸座標（例えば、図２中のＸ軸座標）を示し、ｚk_2はパラメータ取得値ｚkの第２軸座標（Ｙ軸座標）を示している。また、Ｚij_1は、学習値Ｚijに対応する格子点(ｉ,ｊ)の第１軸座標ｉを示し、Ｚij_2は、同格子点(ｉ,ｊ)の第２軸座標ｊを示している。また、同式中のσ１，σ２は、前記標準偏差σの第１軸座標成分，第２軸座標成分に対応するものである。
【００６３】
また、実施の形態１では、２次元の学習マップに適用する場合を例示したが、本発明はこれに限らず、例えば数１３の式に示すように、１次元及び３次元以外の任意の次元をもつ学習マップにも適用することができる。なお、この場合には、学習マップの次元数に合わせて、重みｗij、重み積算値Ｗij、パラメータ積算値Ｖij、学習値Ｚijの次元数を、ｗijlmn...、Ｗijlmn...、Ｖijlmn...、Ｚijlmn...のように変更すればよい。
【００６４】
【数１３】
2014005803.tif 000009
【００６５】
実施の形態２．
次に、図７を参照して、本発明の実施の形態２について説明する。本実施の形態は、前記実施の形態１と同様の構成において、制御パラメータの取得値の信頼度に応じて重み積算調整係数βを変更する構成としたことを特徴としている。なお、本実施の形態では、実施の形態１と同一の構成要素に同一の符号を付し、その説明を省略するものとする。
【００６６】
［実施の形態２の特徴］
前述したように、重み積算値Ｗij(ｋ)に下限値（＝１／β）を設けると、例えば信頼できないデータが連続的に取得されたので学習値Ｚij(ｋ)を忘却したい場合等にも、重み積算値Ｗij(ｋ)を忘却に必要な大きさまで減少させることができない可能性がある。このため、本実施の形態では、制御パラメータの取得値ｚkの信頼度が低いほど、重み積算調整係数βを小さく設定する構成としている。これにより、例えば取得した計測データ（制御パラメータ）の信頼度が低い場合には、重み積算調整係数βを小さくすることにより、重み積算値Ｗij(ｋ)の下限値を増加させ、重み積算値Ｗij(ｋ)を比較的大きな値に保持することができる。
【００６７】
この結果、今回の重みｗkijが過去の重み積算値Ｗij(ｋ−１)と比較して相対的に小さくなるので、信頼性が低い計測データによる学習値Ｚij(ｋ)の更新を抑制し、学習精度を向上させることができる。また、何らかの理由により計測データが過度に大きく変化してしまい、初期状態から新たな計測データを学習したい場合には、例えば重み積算調整係数βを極端に大きくすることにより、この要求を実現することができる。
【００６８】
図７は、本発明の実施の形態２において、重み積算調整係数βを変更する制御の一例を示すタイミングチャートである。この図に示す制御例では、例えば計測データが大きく変化した場合に、区間（３）において重み積算調整係数βを一時的に増加させる。重み積算調整係数βが大きい場合には、重み積算値Ｗij(ｋ)が比較的小さな値まで減少し、新たな重みｗkijが相対的に大きくなるので、学習値Ｚij(ｋ)の更新を早くすることができる。従って、計測データの大きな変化に対しても、高い応答性をもって学習値Ｚij(ｋ)を追従させることができる。また、計測データの信頼度が高い場合にも、重み積算調整係数βを大きくして学習を促進することができる。
【００６９】
このように構成される本実施の形態でも、前記実施の形態１とほぼ同様の効果を得ることができる。そして、特に本実施の形態では、取得した制御パラメータの信頼度や必要性等に応じて重み積算調整係数βを変更することにより、学習値Ｚij(ｋ)の更新量（速度）を適切に調整することができ、重み付け学習制御をより高い精度で実行することができる。なお、制御パラメータ（計測データ）の信頼度については、学習値Ｚij(ｋ)を用いる個々の制御において、制御パラメータの種類、特性、正常値の範囲、センサの異常診断の結果等に基いて、自由に設定すればよいものである。
【００７０】
実施の形態３．
次に、図８を参照して、本発明の実施の形態３について説明する。本実施の形態は、前記実施の形態１と同様の構成において、学習マップ上の領域毎に重み積算調整係数βの値を切換える構成としたことを特徴としている。なお、本実施の形態では、実施の形態１と同一の構成要素に同一の符号を付し、その説明を省略するものとする。
【００７１】
［実施の形態３の特徴］
学習値の更新速度等については、学習マップ上の領域毎に要求が異なる場合があり、学習マップ全体で重み積算調整係数βを一律に設定すると、その設定値が一部の領域で実際の要求と合わない場合がある。このため、本実施の形態では、学習マップ上の領域毎に重み積算調整係数βの値を切換える構成としている。図８は、本発明の実施の形態３において、学習マップを複数個の領域に分けて重み積算調整係数βを領域毎に切換える構成の一例を模式的に示す説明図である。この図は、学習マップ上の領域を２個の領域Ａ，Ｂに分割した場合を例示している。
【００７２】
ここで、領域Ａは、例えば制御パラメータに乗るノイズが大きいものの、制御パラメータの経年変化が生じ難い特性を有するものとする。このような領域Ａでは、経年変化に対する学習値Ｚij(ｋ)の感度が鈍くてもよい（学習の応答性が低くてもよい）ので、重み積算調整係数βを比較的小さな値β１に設定するのが好ましい。これにより、領域Ａでは、重み積算値Ｗij(ｋ)が比較的大きな特定値（１／β１）に収束するので、制御パラメータの取得値ｚkに大きなノイズが乗ったとしても、ノイズの影響が学習値Ｚij(ｋ)に反映されるのを抑制し、学習精度を向上させることができる。
【００７３】
一方、領域Ｂは、制御パラメータに乗るノイズが比較的小さいものの、制御パラメータの経年変化が生じ易い特性を有するものとする。このような領域Ｂでは、ノイズにより学習値Ｚij(ｋ)に誤差が生じ難く、また、制御パラメータの経年変化に対応して学習の応答性を高くしたいので、重み積算調整係数βを大きな値β２に設定するのが好ましい（β２＞β１）。これにより、領域Ｂでは、重み積算値Ｗij(ｋ)が比較的小さな特定値（１／β２）に収束するので、制御パラメータの経年変化を学習値Ｚij(ｋ)に精度よく反映させ、高い学習効果を得ることができる。従って、本実施の形態によれば、前記実施の形態１と同様の効果に加えて、学習マップ上の各領域の要求に応じて重み積算調整係数βを適切な値に切換えることができ、学習マップ全体の学習速度を最適化することができる。
【００７４】
なお、重み積算調整係数βの切換方法としては、次の２つの処理の何れを採用してもよい。まず、第１の切換方法では、個々の格子点(ｉ,ｊ)において、当該格子点が属する領域の重み積算調整係数βに基いて忘却係数αkijを設定する。具体的に述べると、例えば図８中のパラメータ取得値ｚ1に基いて学習動作を行う場合において、領域Ａに属する格子点(１,１)、(１,２)、(２,１)、(２,２)、(３,１)、(３,２)では、小さい重み積算調整係数β１を用いて忘却係数αkijを設定する。一方、領域Ｂに属する格子点(２,３)、(２,４)、(３,３)、(３,４)、(４,３)、(４,４)では、大きい重み積算調整係数β２を用いて忘却係数αkijを設定する。この場合には、１回の学習動作において、個々の領域でそれぞれ学習速度を切換えることができる。
【００７５】
これに対し、第２の切換方法では、パラメータ取得値ｚkが属する領域の重み積算調整係数βに基いて、全格子点の忘却係数αkijを設定する。具体的に述べると、例えば図８中のパラメータ取得値ｚ1に基いて学習値を更新する場合には、パラメータ取得値ｚ1の位置が領域Ａに属するので、領域Ａの重み積算調整係数β１に基いて、領域Ａ，Ｂを含む全格子点の忘却係数αkijを設定する。また、領域Ｂに属する位置のパラメータ取得値ｚ1′に基いて学習値を更新する場合には、領域Ｂの重み積算調整係数β２に基いて、領域Ａ，Ｂを含む全格子点の忘却係数αkijを設定する。この場合には、パラメータ取得値ｚkが属する領域の特性に応じて、全格子点における学習速度を切換えることができる。
【００７６】
なお、前記実施の形態３では、学習マップ上に２個の領域Ａ，Ｂを設ける場合を例示したが、本発明において、学習マップ上に設ける領域の個数は、任意の個数に設定してよいものである。また、本発明では、３個以上の領域を設けた場合において、重み積算調整係数βを必ずしも全ての領域で相互に異ならせる必要はなく、少なくとも２個の領域の重み積算調整係数βが異なればよい。
【００７７】
実施の形態４．
次に、図９を参照して、本発明の実施の形態４について説明する。本実施の形態は、前記実施の形態１と同様の構成において、重み積算値を最大値以下に制限する構成としたことを特徴としている。なお、本実施の形態では、実施の形態１と同一の構成要素に同一の符号を付し、その説明を省略するものとする。
【００７８】
前記実施の形態１では、重み積算調整係数βに基いて忘却係数αを算出し、重み積算値Ｗij(ｋ)を特定値（１／β）に収束させることにより、重みが溜まるのを抑制する構成とした。これに対し、本実施の形態では、上記係数α，βを使用せずに、重み積算値Ｗij(ｋ)を最大値Ｗmax以下に制限する構成としている。ここで、最大値Ｗmaxは、例えば重み積算値Ｗij(ｋ)を増加させてもよい許容範囲の最大値、即ち、制御パラメータの変化に対する学習の応答性を許容範囲内で最も低下させる重み積算値Ｗij(ｋ)の値に応じて設定される。また、最大値Ｗmaxは、後述するように、制御パラメータの取得値ｚkの信頼度等に応じて変更する構成としてもよい。
【００７９】
以下、図９を参照しつつ、例えば（ｋ＋１）番目の積算値Ｗij(ｋ＋１)，Ｖij(ｋ＋１)の算出時において、これらの積算値を制限する具体的な処理について説明する。図９は、本発明の実施の形態４において、ＥＣＵにより実行される制御を示すフローチャートである。図９において、まず、ステップ２００では、今回の重み積算値Ｗij(ｋ＋１)となるべき値が最大値Ｗmax以下であるか否かの判定、即ち、ｋ番目までの（過去の）重み積算値Ｗij(ｋ)と（ｋ＋１）番目の重みｗ(k+1)ijとの加算値が下記数１４の式を満たす否かの判定を実行する。そして、この判定が成立する場合には、ステップ２０２に移行して、今回の積算値Ｗij(ｋ＋１)，Ｖij(ｋ＋１)を制限なしに算出する。具体的に述べると、ステップ２０２では、下記数１５及び数１６の式により積算値Ｗij(ｋ＋１)，Ｖij(ｋ＋１)を算出する。
【００８０】
[数１４]
Ｗij(ｋ)＋ｗ(k+1)ij≦Ｗmax
[数１５]
Ｗij(ｋ＋１)＝Ｗij(ｋ)＋ｗ(k+1)ij
[数１６]
Ｖij(ｋ＋１)＝Ｖij(ｋ)＋ｚ(k+1)＊ｗ(k+1)ij
【００８１】
一方、前記数１４の式が不成立の場合には、ステップ２０４に移行して、下記数１７及び数１８の式により今回の積算値Ｗij(ｋ)，Ｖij(ｋ)を制限しつつ算出する。即ち、ステップ２０４では、重み積算値Ｗij(ｋ＋１)を最大値Ｗmaxに等しく設定し、また、今回のパラメータ積算値Ｖij(ｋ＋１)も、重み積算値Ｗij(ｋ＋１)が制限された割合に応じて制限する。
【００８２】
[数１７]
Ｗij(ｋ＋１)＝Ｗmax
【数１８】
2014005803.tif 000010
【００８３】
なお、図９に示す積算値Ｗij(ｋ)，Ｖij(ｋ)の算出処理は、前述した重み付け学習制御の一部を構成するものであり、例えば実施の形態１（図６）のステップ１０４，１０６に代えて、全ての格子点について実行される。但し、図６は、ｋ番目の算出処理を例示したのに対し、本実施の形態では、（ｋ＋１）番目の算出処理を例示している。また、図９中のステップ２００，２０４は、重み積算値制限手段の具体例を示している。
【００８４】
このように構成される本実施の形態でも、前記実施の形態１とほぼ同様の作用効果を得ることができる。具体的に述べると、実施の形態１で説明した図５には、重み積算値Ｗij(ｋ)を最大値Ｗmax以下に制限した場合の各パラメータの挙動を、「上限設定あり」として付記している。この図に示すように、「上限設定あり」の場合には、学習値Ｚij(ｋ)の挙動が忘却係数可変（実施の形態１）の場合とほぼ等しくなるため、両者のデータ線は重複している。
【００８５】
従って、本実施の形態によれば、重み積算値Ｗij(ｋ)が過大となって学習値Ｚij(ｋ)が更新され難くなるのを防止することができる。これにより、各格子点で重み積算値Ｗij(ｋ)を適切な範囲で変化させ、学習の応答性と安定性を両立させることができる。また、最大値Ｗmaxを大きくするほど、学習値Ｚij(ｋ)に対する制御パラメータの取得値ｚkの反映度を抑制することができる。これにより、最大値Ｗmaxに基いて、学習の応答性（学習速度）を適切に調整することができる。
【００８６】
また、前記図５からも判るように、本実施の形態の構成では、学習動作を繰返すうちに、重み積算値Ｗij(ｋ)が最大値Ｗmaxと等しくなる状態（最大値Ｗmaxに張付く状態）となる。この状態では、前記実施の形態２で述べたように、例えば信頼できないデータが連続的に取得されたので学習値Ｚij(ｋ)を忘却したい場合等にも、重み積算値Ｗij(ｋ)を忘却に必要な大きさまで減少させることができない可能性がある。この場合には、例えば制御パラメータの取得値ｚkの信頼度が低いほど、最大値Ｗmaxを大きく設定する構成とすればよい。これにより、実施の形態２と同様の作用効果を得ることができる。
【００８７】
また、本実施の形態では、前記実施の形態３のように、学習マップを複数個の領域に分けて最大値Ｗmaxを領域毎に切換える構成としてもよい。この場合、学習の応答性を高くしたい領域では、最大値Ｗmaxを小さく設定し、学習の応答性を低くしたい領域では、最大値Ｗmaxを大きく設定すればよい。これにより、実施の形態３と同様の作用効果を得ることができる。
【００８８】
実施の形態５．
次に、図１０を参照して、本発明の実施の形態５について説明する。本実施の形態は、前記実施の形態１乃至４の何れかで述べた重み付け学習制御を、点火時期の学習制御に適用したことを特徴としている。なお、本実施の形態では、実施の形態１と同一の構成要素に同一の符号を付し、その説明を省略するものとする。
【００８９】
［実施の形態５の特徴］
図１０は、本発明の実施の形態５による点火時期制御を示す制御ブロック図である。本実施の形態のシステムは、ＥＣＵ６０の記憶回路または演算機能に含まれるＭＢＴマップ１００、ＴＫマップ１０２、Ｍｉｎ選択部１０４、燃焼重心算出部１０６、燃焼重心目標設定部１０８、ＦＢゲイン算出部１１０及び学習制御部１１２を備えている。ＭＢＴマップ１００は、複数の参照パラメータに基いて、制御パラメータである点火時期を算出する多次元の学習マップにより構成されている。ここで、参照パラメータの例を挙げると、機関回転数Ｎｅ、機関負荷ＫＬ、水温、ＶＶＴ等の可変動弁機構３４，３６によるバルブタイミング制御量、ＥＧＲ弁４２の制御量等がある。また、ＭＢＴマップ１００の各格子点には、エンジントルクが最大となる点火時期であるＭＢＴ（Minimum spark advance for Best Torque）の学習値Ｚij(ｋ)がそれぞれ記憶されている。
【００９０】
本実施の形態では、エンジンの運転中において、点火時期をＭＢＴに一致させるＭＢＴ制御を実行する。ＭＢＴ制御では、まず、前記各参照パラメータに基いてＭＢＴマップ１００を参照することにより、フィードフォワード（ＦＦ）項である点火時期Ａｄｖを算出する。このときには、ＴＫマップ１０２及びＭｉｎ選択部１０４も機能するが、これらの機能については後述する。次に、燃焼重心算出部１０６は、ＭＢＴマップ１００により算出された点火時期Ａｄｖでの燃焼より得られる燃焼重心ＣＡ５０を、筒内圧センサ５０の出力等に基いて下記数１９の式により算出する。この式は、燃焼質量割合ＭＦＢ（Mass Fraction of Burned fuel）を算出する公知の式であり、燃焼重心ＣＡ５０は、ＭＦＢ＝５０％となるクランク角θとして定義される。なお、下記数１９の式において、Ｐは筒内圧、Ｖは筒内容積、κは比熱比、θsは燃焼開始クランク角、θeは燃焼終了クランク角をそれぞれ示している。
【００９１】
【数１９】
2014005803.tif 000011
【００９２】
次に、燃焼重心目標設定部１０８は、所定の燃焼重心目標値（例えば、ＡＴＤＣ８℃Ａ等）を読出し、ＦＢゲイン算出部１１０は、燃焼重心ＣＡ５０が燃焼重心目標値と一致するように、点火時期Ａｄｖを補正（フィードバック制御）する。これにより、点火時期Ａｄｖは、ＭＢＴと一致するように補正された補正後の点火時期Ａｄｖ′となる。
【００９３】
ここで、エンジンの運転領域には、ＭＢＴを実現することができるＭＢＴ領域と、ＭＢＴを実現できないＴＫ領域（トレースノック領域）とが存在する。ＴＫ領域は、点火時期をＭＢＴまで進角する前にトレースノック（本格的なノックの発生前に生じる弱いノック）が発生する領域であり、この領域では、ＭＢＴの学習が困難となる。このため、ＴＫ領域の点火時期（ＴＫ点火時期）は、ＴＫマップ１０２により学習される。ＴＫマップ１０２は、ＭＢＴマップ１２０と同様に構成された多次元の学習マップであり、ＴＫマップ１０２の各格子点には、制御パラメータであるＴＫ点火時期の学習値Ｚij(ｋ)がそれぞれ更新可能に記憶されている。そして、点火時期制御では、ＭＢＴマップ１００により算出したＭＢＴ（点火時期Ａｄｖ）と、ＴＫマップ１０２により算出したＴＫ点火時期のうち、大きい方（より遅角側）の点火時期がＭｉｎ選択部１０４により選択される。そして、選択された点火時期が最終的な補正前の点火時期Ａｄｖとして出力される。
【００９４】
一方、学習制御部１１２は、燃焼重心ＣＡ５０が燃焼重心目標値とほぼ一致した場合（ＭＢＴが実現された場合）にのみ、補正後の点火時期Ａｄｖ′を制御パラメータの取得値ｚkとして、ＭＢＴマップ１００の重み付け学習制御を実行し、点火時期Ａｄｖ′をＭＢＴの学習値Ｚij(ｋ)に反映させる。但し、ＭＢＴが実現される前に、筒内圧センサ５０の出力に基いてトレースノックの発生を検出した場合には、ＭＢＴマップ１００の学習を実行せず、ＴＫマップ１０２の重み付け学習制御を実行する。この場合には、トレースノックを検出した時点の点火時期（ＴＫ点火時期）がパラメータ取得値ｚkとなる。
【００９５】
（重み積算調整係数βの設定）
このように構成される本実施の形態の点火時期制御において、重み積算調整係数βは、下記（１）〜（４）の制御により変更してもよい。
（１）ＭＢＴは、燃料の種類や性状に応じて変化し易いので、給油を検出した直後には、重み積算調整係数βを検出前よりも大きく設定し、過去の履歴を速やかに忘却させる構成としてもよい。なお、給油の有無は、例えば給油口の開閉や燃料の液面レベルの変化に基いて検出することができる。
（２）バッテリ端子の取外し（バッテリクリア）が行われた場合には、点火プラグ２８が交換されている可能性があり、この場合にはＭＢＴが変化し易い。従って、バッテリクリアを検出した場合には、重み積算調整係数βを検出前よりも大きく設定し、過去の履歴を速やかに忘却させる構成としてもよい。
（３）冷間（低温）運転時には、ソーク時間等を考慮していない影響でＭＢＴが大きくずれることがある。従って、この場合には、重み積算調整係数βを暖機運転時よりも小さく設定し、ＭＢＴの学習値に対するノイズの影響を抑制する構成としてもよい。
（４）冷間運転時には、学習機会が少ないので、誤学習が生じている可能性が高い。このため、ＭＢＴマップ１００は、重み積算調整係数βを通常の大きさに設定した第１のＭＢＴマップと、重み積算調整係数βを第１のＭＢＴマップよりも大きく設定した第２のＭＢＴマップとにより構成してもよい。そして、前記２つのＭＢＴマップ間で学習値の偏差が大きい場合には、誤学習が生じているものと判定して、ＭＢＴの算出に用いる学習マップを、第１の学習マップから第２の学習マップに切換える構成とする。
【００９６】
このように構成される本実施の形態によれば、前記（１）〜（４）の制御により、エンジンの運転環境に基いて重み積算調整係数βを変更することができる。これにより、運転環境（給油の有無、点火プラグの交換の有無、冷間運転時であるか否か等）に応じて学習速度を適切に調整し、また、誤学習やノイズに対して的確に対処することができる。
【００９７】
また、本実施の形態によれば、点火時期の学習制御において、前記実施の形態１とほぼ同様の作用効果を得ることができる。即ち、重み付け学習制御は、燃焼重心ＣＡ５０が燃焼重心目標値とほぼ一致した場合にのみ実行されるが、１回の学習動作によりＭＢＴマップ１００の全格子点でＭＢＴを効率よく学習することができるので、学習機会が比較的少なくても、学習を十分に行うことができる。
【００９８】
なお、前記実施の形態５では、ＦＢゲイン算出部１１０が点火時期補正手段の具体例を示し、学習制御部１１２が重み設定手段、重み積算手段、パラメータ積算手段、忘却係数設定手段及び学習値更新手段の具体例を示している。また、前記（１）〜（４）の制御が係数変更手段の具体例を示している。また、実施の形態５では、（１）〜（４）の制御を組合わせるものとしたが、本発明は、必ずしも全ての制御を一緒に用いる必要はなく、（１）〜（４）のうち一部の制御のみを用いる構成としてもよい。
【００９９】
前記実施の形態１乃至５では、１つの車両に搭載されたＥＣＵ６０により重み付け学習制御を実行し、各種の学習値を保有する場合を例示した。しかし、本発明はこれに限らず、複数車両のＥＣＵ間でデータ通信等により学習値を共有する構成としてもよい。これにより、学習機会が少ない運転状態（冷間時等）の取得データ数を他車との共有により増加させ、学習の効率や精度を向上させることができる。また、自車の学習値を、他車の学習値の平均と比較することにより、誤学習を検出することができる。なお、他車の学習値は、例えば車載のネットワークを利用して取得したり、サービス工場に蓄積した他車の学習値を入庫時に取得すればよい。また、前記実施の形態１乃至５では、それぞれの構成を個別に説明したが、本発明はこれに限らず、実施の形態１乃至５のうち組合わせ可能な任意の２つ以上の構成を組合わせて１つのシステムを構成してもよい。
【符号の説明】
【０１００】
１０  エンジン（内燃機関）
１４  燃焼室
１６  クランク軸
１８  吸気通路
２０  スロットルバルブ
２２  排気通路
２４  触媒
２６  燃料噴射弁
２８  点火プラグ
３０  吸気バルブ
３２  排気バルブ
４４  クランク角センサ
４６  エアフローセンサ
４８  水温センサ
５０  筒内圧センサ
５２  吸気温度センサ
５４  空燃比センサ
５６  酸素濃度センサ
６０  ＥＣＵ
１００  ＭＢＴマップ（学習マップ）
１１０  ＦＢゲイン算出部（点火時期補正手段）
１１２  学習制御部（重み設定手段、重み積算手段、パラメータ積算手段、忘却係数設定手段及び学習値更新手段）
【図１】
2014005803.tif 000012
【図２】
2014005803.tif 000013
【図３】
2014005803.tif 000014
【図４】
2014005803.tif 000015
【図５】
2014005803.tif 000016
【図６】
2014005803.tif 000017
【図７】
2014005803.tif 000018
【図８】
2014005803.tif 000019
【図９】
2014005803.tif 000020
【図１０】
2014005803.tif 000021