(57)【特許請求の範囲】
【請求項１】
機関本体の振動を検出するノッキングセンサを具備しており、ノッキングセンサにより検出された機関本体の振動を表す値が、予め設定されている期間内において等分割された各区間内におけるノッキングセンサの出力値の積分値であり、
各区間内におけるノッキングセンサの出力値の各積分値が入力されたときに、該出力値に含まれる未学習ノイズ成分値を除去したノイズ除去済み出力値を出力するように事前学習された正常信号生成モデルと、該各区間内におけるノッキングセンサの出力値の各積分値および正常信号生成モデルのノイズ除去済み出力値のいずれか一方が入力されたときに、点火により発生する混合気の燃焼圧を検出するための圧力センサの出力値から求められるノッキング強度を代表する値の推定値を出力するように事前学習された学習済みニューラルネットワークとを記憶した記憶装置と、
機関運転時に取得された該各区間内におけるノッキングセンサの出力値の各積分値を該正常信号生成モデルに入力すると共に該正常信号生成モデルから出力された該ノイズ除去済み出力値を該学習済みニューラルネットワークに入力して該学習済みニューラルネットワークから出力されたノッキング強度を代表する値の推定値を取得する推定値取得部と、
該推定値取得部において取得されたノッキング強度を代表する値の推定値に基づいて点火時期の遅角制御を行う制御部とを有する内燃機関の点火時期制御装置。
【請求項２】
該正常信号生成モデルが、オートエンコーダからなる請求項１に記載の内燃機関の点火時期制御装置。
【請求項３】
上記学習済みニューラルネットワークが、第１の学習済みニューラルネットワークを形成しており、点火時期が遅角されたときの該ノッキング強度を代表する値の推定値の予測値又は予測低下量を推定する第２の学習済みニューラルネットワークが記憶装置内に記憶されており、機関運転時に、該第１の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の推定値が予め定められた閾値を越えると次のサイクルにおける点火時期が遅角され、点火時期が遅角された該次のサイクルでは、第２の学習済みニューラルネットワークを用いて算出された該ノッキング強度を代表する値の推定値の予測値と第１の学習済みニューラルネットワークを用いて算出された該ノッキング強度を代表する値の推定値との差に基づいて更に次のサイクルにおける点火時期の遅角制御が行われ、この遅角制御では、該差が予め定められた設定値よりも小さいときには、該ノッキング強度を代表する値の推定値が予め設定された閾値よりも大きければ、該更に次のサイクルにおける点火時期の遅角作用が行われ、該差が予め定められた設定値よりも大きいときには、たとえ該ノッキング強度を代表する値の推定値が予め設定された閾値よりも大きかったとしても、該更に次のサイクルにおける点火時期の遅角作用が行われない請求項１に記載の内燃機関の点火時期制御装置。
【請求項４】
該第２の学習済みニューラルネットワークは、機関の運転状態、点火時期の遅角量、および一つ前のサイクルにおけるノッキング強度を代表する値の推定値を入力すると、点火時期が遅角されときのノッキング強度を代表する値の推定値の予測低下量を出力し、該予測低下量から点火時期が遅角されときのノッキング強度を代表する値の推定値の予測値が求められる請求項３に記載の内燃機関の点火時期制御装置。
【請求項５】
該機関の運転状態が、機関回転数、機関負荷およびＥＧＲ率からなる請求項４に記載の内燃機関の点火時期制御装置。
【請求項６】
該第２の学習済みニューラルネットワークは、予め定められた回数前の点火が行われたサイクルから現在のサイクルに至るまでの各サイクルにおけるノッキング強度を代表する値の推定値および点火時期の遅角量又は進角量を入力すると、現在のサイクルにおけるノッキング強度を代表する値の推定値の予測値を出力するリカレントニューラルネットワークからなる請求項３に記載の内燃機関の点火時期制御装置。
【請求項７】
点火時期の遅角作用が行われた後、該ノッキング強度を代表する値の推定値が予め定められた閾値以下となったときに、点火時期の進角作用が開始され、点火時期の遅角作用が行われたときの上記差が設定値よりも大きかったときには該差が設定値以下だったときに比べて点火時期の進角量が小さくされる請求項３に記載の内燃機関の点火時期制御装置。
【請求項８】
上記ノッキング強度を代表する値が、圧力センサの出力値のピーク値である請求項１に記載の内燃機関の点火時期制御装置。
【請求項９】
上記ノッキング強度を代表する値が、圧力センサの出力値の積分値である請求項１に記載の内燃機関の点火時期制御装置。
【請求項１０】
該予め設定されている期間が、一定のクランク角度範囲である請求項１に記載の内燃機関の点火時期制御装置。
【請求項１１】
該予め設定されている期間が、一定時間である請求項１に記載の内燃機関の点火時期制御装置。
【請求項１２】
機関の運転領域が複数個の運転領域に分割されると共に、分割された各運転領域に対して夫々正常信号生成モデルおよび第１の学習済みニューラルネットワークが記憶装置内に記憶されている請求項１に記載の内燃機関の点火時期制御装置。
【請求項１３】
機関本体の振動を検出する複数個のノッキングセンサを具備しており、第１の学習済みニューラルネットワークは、該各区間内における複数個のノッキングセンサの出力値の各積分値が正常信号生成モデルを介して入力されると、ノッキング強度を代表する値の推定値を出力する請求項１に記載の内燃機関の点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の点火時期制御装置に関する。
【背景技術】
【０００２】
内燃機関では、燃焼室内において、混合気が点火された後、末端ガスが自着火すると圧力波が発生し、ノッキングが生ずる。ノッキングが生ずると機関本体が振動し、この場合、ノッキング強度が高くなるほど機関本体の振動が激しくなる。そこで、機関本体に機関本体の振動を検出するノッキングセンサを取り付け、ノッキングセンサにより検出された機関本体の振動の激しさからノッキング強度を検出し、ノッキング強度が閾値を越えたときにはノッキングが発生していると判断して点火時期を遅角するようにした内燃機関が公知である（例えば特許文献１を参照）。しかしながら機関本体は、例えば、吸気弁および排気弁の着座作用や、燃料噴射弁のニードルの着座作用等の機械的動作によっても振動し、従って、機関本体の振動を検出するようにしたノッキングセンサを用いると、このような機械的動作が原因で機関本体の振動強度が激しくなったときに、ノッキング強度が高くないにも拘わらず、ノッキング強度が高いと誤判定してしまうという問題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２２６９６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、ノッキングが生じたときには、ノッキング強度が高くなるほど燃焼室内の圧力の変動が激しくなる。従って、点火により発生する混合気の燃焼圧を検出可能な圧力センサを用いると、この圧力センサの出力値の変動の激しさからノッキング強度を検出できることになる。この場合、例えば、ノッキング強度が高くなると、圧力センサの出力値のピーク値が高くなり、従って、この圧力センサの出力値のピーク値は、ノッキング強度を代表する値の一つであると言える。従って、このようなノッキング強度を代表する値から、ノッキング強度を検出することができることになる。この場合、機械的動作に基づく機関本体の振動は、圧力センサの出力値に影響を与えず、従って、ノッキング強度を代表する値にも影響を与えないので、圧力センサを用いると、ノッキング強度を精度よく検出することができることになる。
【０００５】
しかしながら、この圧力センサは極めて高価である。しかも圧力センサは長期間使用されると、圧力センサにデポジットが徐々に付着し、この付着したデポジットによって燃焼室内における混合気の燃焼形態が変化してしまう。従って、市販車に対して、このような圧力センサを用いることは難しい。そこで、本発明では、圧力センサの出力値から求められるノッキング強度を代表する値を、ニューラルネットワークを用いて、ノッキングセンサの出力値から推定するようにしている。即ち、ノッキングセンサの出力値が入力されると、ノッキング強度を代表する推定値が出力されるように、ニューラルネットワークの重みを学習し、重みの学習が完了した学習済みニューラルネットワークを用いて、ノッキングセンサの出力値から、ノッキング強度を代表する値を推定するようにしている。
【０００６】
ところが、市販車の制御装置にこのような学習済みニューラルネットワークを格納し、格納された学習済みニューラルネットワークを用いて、ノッキングセンサの出力値から、ノッキング強度を代表する値を推定すると問題を生ずる。即ち、機関の構成部品には公差があり、従って、市販車ごとに機関の構成部品の寸法がばらつくために、市販車毎に異なる機関の振動が発生する。しかしながら、学習済みニューラルネットワークは、このように市販車毎に発生する異なる機関の振動については、重みの学習がなされておらず、従って、このように重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生すると、学習済みニューラルネットワークにおいて、ノッキングにより機関本体に振動が発生していると誤判断される場合がある。
【０００７】
このような誤判断が行われると、点火時期が過剰に遅角される危険性がある。即ち、ノッキングが発生していることが原因でノッキング強度を代表する値が閾値を越え、それにより点火時期が遅角されたときには、点火時期の遅角作用により燃焼圧が低下するためにノッキング強度を代表する値が低下する。その結果、ノッキング強度を代表する値が閾値以下となり、点火時期の遅角作用が停止される。一方、未学習の機関の振動が発生し、それによりノッキング強度を代表する値が閾値を越えた場合でも、点火時期が遅角される。しかしながら、このとき、点火時期の影響を受けない未学習の機関の振動が発生していた場合には、点火時期が遅角されても、未学習の機関の振動は抑制されない。従って、このとき、点火時期が遅角された後も点火時期の影響を受けない未学習の機関の振動が発生し続けた場合には、ノッキング強度を代表する値が閾値を越え続けることになり、点火時期の遅角作用が続行し続けることになる。その結果、点火時期が過剰に遅角し、それにより機関の出力が大幅に低下してしまうという問題を生ずることになる。
【０００８】
このような問題を解決するために、本発明によれば、機関本体の振動を検出するノッキングセンサを具備しており、ノッキングセンサにより検出された機関本体の振動を表す値が、予め設定されている期間内において等分割された各区間内におけるノッキングセンサの出力値の積分値であり、
各区間内におけるノッキングセンサの出力値の各積分値が入力されたときに、この出力値に含まれる未学習ノイズ成分値を除去したノイズ除去済み出力値を出力するように事前学習された正常信号生成モデルと、各区間内におけるノッキングセンサの出力値の各積分値および正常信号生成モデルのノイズ除去済み出力値のいずれか一方が入力されたときに、点火により発生する混合気の燃焼圧を検出するための圧力センサの出力値から求められるノッキング強度を代表する値の推定値を出力するように事前学習された学習済みニューラルネットワークとを記憶した記憶装置と、
機関運転時に取得された各区間内におけるノッキングセンサの出力値の各積分値を正常信号生成モデルに入力すると共に正常信号生成モデルから出力されたノイズ除去済み出力値を学習済みニューラルネットワークに入力して学習済みニューラルネットワークから出力されたノッキング強度を代表する値の推定値を取得する推定値取得部と、
推定値取得部において取得されたノッキング強度を代表する値の推定値に基づいて点火時期の遅角制御を行う制御部とを有する内燃機関の点火時期制御装置が提供される。
【発明の効果】
【０００９】
重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生し、それにより、未学習の機関の振動成分、即ち、未学習ノイズ成分を含んだノッキングセンサの出力値が正常信号生成モデルに入力されると、正常信号生成モデルからは、ノッキングセンサの出力値から未学習ノイズ成分値の除去されたノイズ除去済み出力値が出力され、このノイズ除去済み出力値が学習済みニューラルネットワークに入力される。従って、ノッキングセンサの出力値に、未学習の機関の振動が含まれていたとしても、学習済みニューラルネットワークからは、未学習の機関の振動の影響を受けていないノッキング強度を代表する値の推定値が出力される。従って、ノッキング強度を代表する値を、圧力センサを用いることなく、高い精度で取得でき、その結果、点火時期が過剰に遅角されるのを阻止することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、内燃機関の全体図である。
【図２】図２は、図１に示す内燃機関の側面断面図である。
【図３】図３は、ニューラルネットワークの説明図である。
【図４】図４は、シリンダヘッドの底面図である。
【図５】図５は、内燃機関の全体図である。
【図６】図６Ａ、図６Ｂおよび図６Ｃは、ノッキングセンサの出力値を示す図である。
【図７】図７Ａ、図７Ｂおよび図７Ｃは、圧力センサの出力値を示す図である。
【図８】図８は、本発明による実施例において用いられているニューラルネットワークを示す図である。
【図９】図９は、訓練データセットを示す図である。
【図１０】図１０は、学習処理ルーチンを示すフローチャートである。
【図１１】図１１は、ノッキングセンサと、正常信号生成モデルと、ニューラルネットワークとの関係を示す図である。
【図１２】図１２は、オートエンコーダを示す図である。
【図１３】図１３は、電子制御ユニットにデータを読み込むためのルーチンを示すフローチャートである。
【図１４】図１４は、ノッキング処理ルーチンを示すフローチャートである。
【図１５】図１５は、ノッキング強度代表値の推定ルーチンを示すフローチャートである。
【図１６】図１６は、ノッキング強度代表値の推定ルーチンの別の実施例を示すフローチャートである
【図１７】図１７は、ノッキング判定ルーチンを示すフローチャートである。
【図１８】図１８は、閾値Ｍij を示す図である。
【図１９】図１９は、点火制御ルーチンを示すフローチャートである。
【図２０】図２０は、基準点火時期のマップを示す図である。
【図２１】図２１は、本発明の機能構成図である。
【図２２】図２２は、ノッキング処理の概要を示す図である。
【図２３】図２３Ａおよび図２３Ｂは、ノッキング発生時の燃焼圧を説明するための図である。
【図２４】図２４は、ノッキング判定を説明するための図である。
【図２５】図２５Ａおよび図２５Ｂは、点火遅角量又は点火遅角速度と燃焼圧の上昇割合等との関係を示す図である。
【図２６】図２６は、ノッキング判定を説明するための図である。
【図２７】図２７Ａおよび図２７Ｂは、推定値ｙｅの予測値又は予測低下量を説明するための図である。
【図２８】図２８Ａおよび図２８Ｂは、推定値ｙｅ予測値又は予測低下量を説明するための図である。
【図２９】図２９は、入力パラメータの一覧表を示す図である。
【図３０】図３０は、本発明による第２実施例において用いられている第２のニューラルネットワークを示す図である。
【図３１】図３１は、データの一覧表を示す図である。
【図３２】図３２は、訓練データセットを示す図である。
【図３３】図３３は、ノッキング処理ルーチンを示すフローチャートである。
【図３４】図３４は、ノッキング判定ルーチンを示すフローチャートである。
【図３５】図３５は、ノッキング判定ルーチンを示すフローチャートである。
【図３６】図３６は、点火制御ルーチンを示すフローチャートである。
【図３７】図３７は、リカレントニューラルネットワークの説明図である。
【図３８】図３８は、リカレントニューラルネットワークの説明図である。
【図３９】図３９は、入力値および出力値の一覧表を示す図である。
【図４０】図４０は、訓練データセットを示す図である。
【図４１】図４１は、リカレントニューラルネットワークの説明図である。
【図４２】図４２は、ノッキング処理ルーチンを示すフローチャートである。
【図４３】図４３は、ノッキング判定ルーチンを示すフローチャートである。
【図４４】図４４は、ノッキング判定ルーチンを示すフローチャートである。
【図４５】図４５は、点火制御ルーチンを示すフローチャートである。
【図４６】図４６は、ゲート区間と機関回転数との関係を示す図である。
【図４７】図４７は、ゲート区間と分割区間を示す図である。
【図４８】図４８Ａ，図４８Ｂおよび図４８Ｃは、運転領域を示す図である。
【図４９】図４９は、内燃機関の全体図である。
【図５０】図５０は、本発明による更に別の実施例において用いられている第１のニューラルネットワークを示す図である。
【図５１】図５１は、訓練データセットを示す図である。
【発明を実施するための形態】
【００１１】
＜内燃機関の全体構成＞
図１および図２に内燃機関の全体図を示す。図２を参照すると、１は機関本体、２はシリンダブロック、３はシリンダヘッド、４はシリンダブロック２内で往復動するピストン、５は燃焼室、６は吸気弁、７は吸気ポート、８は排気弁、９は排気ポート、１０は各燃焼室５内に燃料、例えば、ガソリンを供給するための燃料噴射弁、１１は各燃焼室５内に配置された点火栓を夫々示す。図１および図２を参照すると、吸気ポート７は夫々対応する吸気枝管１２を介してサージタンク１３に連結され、サージタンク１３は吸気ダクト１４および吸入空気量検出器１５を介してエアクリーナ１６に連結される。
【００１２】
一方、排気ポート９は排気マニホルド１７に連結され、排気マニホルド１７は、排気マニホルド１７内の排気ガスをサージタンク１３内に再循環させるための排気ガス再循環（以下、ＥＧＲと称す）通路２７を介してサージタンク１３に連結される。このＥＧＲ通路２７内にはＥＧＲ制御弁２８が配置される。図１に示される実施例では、機関の運転状態に応じたＥＧＲ率（＝再循環排気ガス量/（再循環排気ガス量＋吸入空気量））が予め設定されており、ＥＧＲ制御弁２８は、ＥＧＲ率が予め設定されたＥＧＲ率となるように制御される。
【００１３】
図１および図２に示されるように、図１に示される実施例では、シリンダブロック２に、シリンダブロック２の振動、即ち、機関本体１の振動を検出するためのノッキングセンサ１８が取り付られている。図１に示される例では、このノッキングセンサ１８では、振動の検出素子として圧電素子が用いられており、このノッキングセンサ１８は機関本体１の振動に比例した出力電圧を発生する。なお、ノッキングが発生すると、機関本体１には、周波数が５KHzから２５KHz程度の振動が発生し、このときノッキングセンサ１８の出力電圧は、周波数が５KHzから２５KHz程度で変動する。従って、ノッキングセンサ１８の出力電圧の変動、即ち、ノッキングセンサ１８の出力値の変動から、ノッキングの発生を検出することができることになる。
【００１４】
一方、図１において３０は、機関の運転を制御するための電子制御ユニットを示している。図１に示されるように、電子制御ユニット３０はデジタルコンピュータからなり、双方向性バス３１によって互いに接続された記憶装置３２、即ち、メモリ３２と、ＣＰＵ（マイクロプロセッサ）３３と、入力ポート３４および出力ポート３５を具備する。入力ポート３４には、ノッキングセンサ１８の出力信号が、対応するＡＤ変換器３６および５KHzから２５KHz程度の周波数の入力信号のみを通過させるデジタルバンドパスフィルタ３７を介して入力される。また、入力ポート３４には、吸入空気量検出器１５の出力信号が、対応するＡＤ変換器３６を介して入力される。また、アクセルペダル４０にはアクセルペダル４０の踏込み量に比例した出力電圧を発生する負荷センサ４１が接続され、負荷センサ４１の出力電圧は対応するＡＤ変換器３６を介して入力ポート３４に入力される。更に入力ポート３４にはクランクシャフトが例えば３０°回転する毎に出力パルスを発生するクランク角センサ４２が接続される。ＣＰＵ３３内ではクランク角センサ４２の出力信号に基づいて機関回転数が算出される。一方、出力ポート３５は対応する駆動回路３８を介して各気筒の燃料噴射弁１０、点火栓１１およびＥＧＲ制御弁２８に接続される。
＜ニューラルネットワークの概要＞
【００１５】
本発明による実施例では、ニューラルネットワークを用いてノッキング強度を代表する値を推定するようにしている。そこで最初にニューラルネットワークについて簡単に説明する。図３は簡単なニューラルネットワークを示している。図３における丸印は人工ニューロンを表しており、ニューラルネットワークにおいては、この人工ニューロンは、通常、ノード又はユニットと称される（本願では、ノードと称す）。図３においてL＝１は入力層、L＝２および L＝３は隠れ層、L＝４は出力層を夫々示している。また、図３において、ｘ１およびｘ２ は入力層 ( L＝１) の各ノードからの出力値を示しており、ｙ１ およびｙ２ は出力層 ( L＝４) の各ノードからの出力値を示しており、ｚ（２）１、ｚ（２）２ およびｚ（２）３ は隠れ層 ( L＝２) の各ノードからの出力値を示しており、ｚ（３）１、ｚ（３）２ およびｚ（３）３は隠れ層 ( L＝３) の各ノードからの出力値を示している。なお、隠れ層の層数は、１個又は任意の個数とすることができ、入力層のノードの数および隠れ層のノードの数も任意の個数とすることができる。また、出力層のノードの数は１個とすることもできるし、複数個とすることもできる。
【００１６】
入力層の各ノードでは入力がそのまま出力される。一方、隠れ層 ( L＝２) の各ノードには、入力層の各ノードの出力値ｘ１およびｘ２ が入力され、隠れ層 ( L＝２) の各ノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値u が算出される。例えば、図３において隠れ層 ( L＝２) のｚ（２）ｋ（ｋ＝１，２，３）で示されるノードにおいて算出される総入力値uｋは、次式のようになる。
【数１】
0006733795.tif 000002
次いで、この総入力値uｋは活性化関数ｆにより変換され、隠れ層 ( L＝２) のｚ（２）ｋで示されるノードから、出力値ｚ（２）ｋ(= f (ｕｋ)) として出力される。一方、隠れ層 ( L＝３) の各ノード には、隠れ層 ( L＝２) の各ノードの出力値ｚ（２）１、ｚ（２）２ およびｚ（２）３が入力され、隠れ層 ( L＝3 ) の各ノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出される。この総入力値ｕは同様に活性化関数により変換され、隠れ層 ( L＝3 ) の各ノードから、出力値ｚ（３）１、ｚ（３）２ およびｚ（３）３として出力される、この活性化関数としては、例えば、シグモイド関数σが用いられる。
【００１７】
一方、出力層 ( L＝４) の各ノード には、隠れ層 ( L＝３) の各ノードの出力値ｚ（３）１、ｚ（３）２ およびｚ（３）３が入力され、出力層 の各ノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出されるか、又は、夫々対応する重みｗのみを用いて総入力値ｕ（Σｚ・ｗ）が算出される。本発明による実施例では、出力層のノードでは、活性化関数として恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力される。
＜ニューラルネットワークにおける学習＞
【００１８】
さて、ニューラルネットワークの出力値ｙの正解値を示す教師データをｙｔとすると、ニューラルネットワークにおける各重みｗおよびバイアスｂは、出力値ｙと教師データをｙｔとの差が小さくなるように、誤差逆伝播法を用いて学習される。この誤差逆伝播法は周知であり、従って、誤差逆伝播法についてはその概要を以下に簡単に説明する。なお、バイアスｂは重みｗの一種なので、以下、バイアスｂも含めて重みｗと称する。さて、図３に示すようなニューラルネットワークにおいて、Ｌ＝２，Ｌ＝３又は Ｌ＝４の各層のノードへの入力値ｕ（Ｌ）における重みをｗ（Ｌ）で表すと、誤差関数Ｅの重みｗ（Ｌ）による微分、即ち、勾配∂Ｅ/∂ｗ（Ｌ）は、書き換えると、次式で示されるようになる。
【数２】
0006733795.tif 000003
ここで、ｚ（Ｌ−１）・∂ｗ（Ｌ）＝ ∂ｕ（Ｌ）であるので、（∂Ｅ/∂ｕ（Ｌ））＝δ（Ｌ）とすると、上記（１）式は、次式でもって表すことができる。
【数３】
0006733795.tif 000004
【００１９】
ここで、ｕ（Ｌ）が変動すると、次の層の総入力値ｕ（Ｌ＋１）の変化を通じて誤差関数Ｅの変動を引き起こすので、δ（Ｌ）は、次式で表すことができる。
【数４】
0006733795.tif 000005
ここで、z（Ｌ）＝ｆ(u（Ｌ）) と表すと、上記（３）式の右辺に現れる入力値ｕk（Ｌ＋１）は、次式で表すことができる。
【数５】
0006733795.tif 000006
ここで、上記（３）式の右辺第１項（∂Ｅ/∂ｕ（Ｌ＋１））はδ（Ｌ＋１）であり、上記（３）式の右辺第２項（∂uｋ（Ｌ＋１） /∂u（Ｌ））は、次式で表すことができる。
【数６】
0006733795.tif 000007
従って、δ（Ｌ）は、次式で示される。
【数７】
0006733795.tif 000008
即ち、δ（Ｌ＋１）が求まると、δ（Ｌ）を求めることができることになる。
【００２０】
さて、出力層 ( L＝４) のノードが一個であって、或る入力値に対して教師データｙｔが求められており、この入力値に対する出力層からの出力値がｙであった場合において、誤差関数として二乗誤差が用いられている場合には、二乗誤差Ｅは、Ｅ＝１/２(ｙ−ｙｔ)２で求められる。この場合、出力層（Ｌ＝４）のノードでは、出力値ｙ＝ ｆ(u（Ｌ）) となり、従って、この場合には、出力層（Ｌ＝４）のノードにおけるδ（Ｌ）の値は、次式で示されるようになる。
【数８】
0006733795.tif 000009
この場合、本発明による実施例では、前述したように、ｆ(u（Ｌ）) は恒等関数であり、ｆ’(u（Ｌｌ）) ＝ １となる。従って、δ（Ｌ）＝ｙ−ｙｔ となり、δ（Ｌ）が求まる。
【００２１】
δ（Ｌ）が求まると、上式（６）を用いて前層のδ（Ｌ−１）が求まる。このようにして順次、前層のδが求められ、これらδの値を用いて、上式（２）から、各重みｗについて誤差関数Ｅの微分、即ち、勾配∂Ｅ/∂ｗ（Ｌ）か求められる。勾配∂Ｅ/∂ｗ（Ｌ）か求められると、この勾配∂Ｅ/∂ｗ（Ｌ）を用いて、誤差関数Ｅの値が減少するように、重みｗが更新される。即ち、重みｗの学習が行われることになる。なお、図３に示されるように、出力層 ( L＝４) が複数個のノードを有する場合には、各ノードからの出力値をｙ１、ｙ１・・・、対応する教師データｙｔ１、ｙｔ２・・・とすると、誤差関数Ｅとして、次の二乗和誤差Ｅが用いられる。
【数９】
0006733795.tif 000010
この場合も、出力層 ( L＝４) の各ノードにおけるδ（Ｌ）の値は、δ（Ｌ）＝ｙ−ｙtk （ｋ＝１，２・・・ｎ）となり、これらδ（Ｌ）の値から上式（６）を用いて前層のδ（Ｌ−１）が求まる。
＜本発明による実施例＞
【００２２】
さて、内燃機関では、ノッキング強度が高くなるほど機関本体１の振動が激しくなる。従って、図１および図２に示されるように、機関本体１にノッキングセンサ１８を取り付け、ノッキングセンサ１８により検出された機関本体の振動の激しさからノッキング強度を検出することができる。しかしながら前述したように、機関本体１は、例えば、吸気弁６および排気弁８の着座作用や、燃料噴射弁１０のニードルの着座作用等の機械的動作によっても振動し、従って、機関本体１の振動を検出するようにしたノッキングセンサ１８を用いると、このような機械的動作が原因で機関本体の振動強度が激しくなったときに、ノッキング強度が高くないにも拘わらず、ノッキング強度が高いと誤判定してしまうという問題がある。
【００２３】
一方、前述したように、点火により発生する混合気の燃焼圧を検出可能な圧力センサを用いると、この圧力センサの出力値の変動の激しさからノッキング強度を検出できる。この場合、例えば、ノッキング強度が高くなると、圧力センサの出力値のピーク値が高くなり、従って、この圧力センサの出力値のピーク値は、ノッキング強度を代表する値の一つであると言える。従って、このようなノッキング強度を代表する値から、ノッキング強度を検出することができることになる。この場合、機械的動作に基づく機関本体の振動は、圧力センサの出力値に影響を与えず、従って、ノッキング強度を代表する値にも影響を与えないので、圧力センサを用いると、ノッキング強度を精度よく検出することができることになる。
【００２４】
しかしながら、この圧力センサは高価であり、しかも圧力センサに徐々に付着するデポジットにより燃焼室５内における混合気の燃焼形態が変化してしまうので、市販車において、このような圧力センサを用いることは難しい。そこで、本発明では、圧力センサの出力値から求められるノッキング強度を代表する値を、ニューラルネットワークを用いて、ノッキングセンサの出力値から推定するようにしている。このことを説明するに当たり、最初に、図４、図５、図６Ａから図６Ｃおよび図７Ａから図７Ｃを参照しつつ、ノッキングセンサの出力値と、圧力センサの出力値並びに圧力センサの出力値から求められるノッキング強度を代表する値について説明する。
【００２５】
図４および図５は夫々、ニューラルネットワークの重みの学習に必要なデータを取得するためにだけ用いられるシリンダヘッド３の底面図および機関本体１の一部を示している。図４および図５を参照すると、圧力センサの出力値から求められるノッキング強度を代表する値を、ノッキングセンサ１８の出力値から推定するために、各気筒のシリンダヘッド３の内壁面上には、夫々圧力センサ１９が配置される。各圧力センサ１９からは、夫々対応する燃焼室５内の圧力に比例した出力電圧、即ち、点火により発生する混合気の燃焼圧を示す出力値が出力される。なお、この場合、燃焼室５内の圧力は、点火栓と一体型の圧力センサを用いて計測することもできる。これら圧力センサ１９は、ニューラルネットワークの重みの学習に必要なデータを取得するためだけに用いられる。
【００２６】
さて、ノッキングは通常、圧縮上死点から圧縮上死点後９０°までの間に発生し、ノッキングが発生したときには、周波数が５KHzから２５KHz程度の燃焼室５内の圧力変動および周波数が５KHzから２５KHz程度の機関本体１の振動が発生する。従って、ノッキングによる機関本体１の振動のみを抽出するために、通常、ノッキングセンサ１８の出力値は、ＡＤ変換された後、例えば５KHzから２５KHz程度の周波数の入力信号のみを通過させるデジタルバンドパスフィルタに送り込まれ、このデジタルバンドパスフィルタによりフィルタリングされた後のノッキングセンサ１８の出力値に基づいて、ノッキングの強度が判別される。
【００２７】
同様に、ノッキングによる燃焼室５内の圧力変動のみを抽出するために、通常、圧力センサ１９の出力値も、ＡＤ変換された後、例えば５KHzから２５KHz程度の周波数の入力信号のみを通過させるデジタルバンドパスフィルタに送り込まれ、このデジタルバンドパスフィルタによりフィルタリングされた後の圧力センサ１９の出力値に基づいて、ノッキングの強度が判別される。なお、このようにデジタルバンドパスフィルタによりフィルタリングされた後のノッキングセンサ１８の出力値を、以下、単にフィルタリング後のノッキングセンサ１８の出力値と称し、デジタルバンドパスフィルタによりフィルタリングされた後の圧力センサ１９の出力値を、以下、単にフィルタリング後の圧力センサ１９の出力値と称する。
【００２８】
図６Ａおよび図７Ａは夫々、同一のノッキングの発生に対するフィルタリング後のノッキングセンサ１８の出力値（Ｖ）の変化と、フィルタリング後の圧力センサ１９の出力値の変化（Ｖ）とを示している。なお、図６Ａの横軸および図７Ａの横軸は共に、ＡＴＤＣで表したクランク角（圧縮上死点から圧縮上死点後９０°）を示している。
【００２９】
図６Ａおよび図７Ａを比較するとわかるように、図７Ａに示されるフィルタリング後の圧力センサ１９の出力値の振動強度は、ノッキングが発生すると急激に増大し、その後、次第に減少していく。即ち、圧力センサ１９の出力値は、機械的動作に基づく機関本体の振動の影響を受けないために、ノッキングの発生が圧力センサ１９の出力値に明確に表れる。これに対し、図６Ａに示されるフィルタリング後のノッキングセンサ１８の出力値の振動強度も、ノッキングが発生すると増大はするが、ノッキングセンサ１８の出力値は機械的動作に基づく機関本体の振動の影響を大きく受けるため、ノッキングセンサ１８の出力値の振動強度は、ノッキングが発生した前後においても大きな値となっている。即ち、ノッキングセンサ１８の出力値には、機械的動作に基づく機関本体の振動がノイズとなって現れるため、ノッキングの発生が、ノッキングセンサ１８の出力値に明確に表れなくなる。
【００３０】
従って、ノッキングが発生したか否かは、圧力センサ１９の出力値から明確に判別できることになる。この場合、圧力センサ１９の出力値には、発生したノッキングの強度も明確に現れる。次に、このことについて、図７Ｂおよび図７Ｃを参照しつつ説明する。なお、図７Ｂおよび図７Ｃは、図７Ａに示されるフィルタリング後の圧力センサ１９の出力値の波形の一部を横軸方向に引き伸ばして図解的に表した図である。
【００３１】
さて、発生したノッキングの強度が高くなると、フィルタリング後の圧力センサ１９の出力値のピーク値が高くなる。従って、図７Ｂにおいて丸印で示されるフィルタリング後の圧力センサ１９の出力値のピーク値は、ノッキング強度を代表する値を示していることになる。一方、発生したノッキングの強度が高くなると、図７Ｃにおいて出力値の波形と出力値が０（Ｖ）の線とで囲まれたハッチングで示される面積の総和、即ち、フィルタリング後の圧力センサ１９の出力値の積分値（負側の積分値も正の値とする）が高くなる。従って、フィルタリング後の圧力センサ１９の出力値の積分値（負側の積分値も正の値とする）も、ノッキング強度を代表する値を示していることになる。このように圧力センサ１９の出力値からノッキング強度を代表する値を取得することができる。
【００３２】
一方、ノッキングセンサ１８の出力値からは、このようなノッキング強度を代表する値を抽出することは難しい。そこで本発明では、ニューラルネットワークを用い、ノッキングセンサ１８の出力値に基づいて、圧力センサ１９の出力値から求められるノッキング強度を代表する値を取得し得るようにニューラルネットワークの重みを学習し、それにより圧力センサ１９の出力値から求められるノッキング強度を代表する値を、学習済みのニューラルネットワークを用いてノッキングセンサ１８の出力値から推定するようにしている。そこで次に、ノッキングセンサ１８の出力値に基づいて、圧力センサ１９の出力値から求められるノッキング強度を代表する値を取得し得るようにニューラルネットワークの重みを学習する方法について説明する。
【００３３】
最初に、このとき用いられるニューラルネットワークについて図８を参照しつつ説明する。なお、図８に示されるニューラルネットワークは、第１のニューラルネットワークと称される場合もある。図８を参照すると、このニューラルネットワーク２０においても、図３に示されるニューラルネットワークと同様に、L＝１は入力層、L＝２および L＝３は隠れ層、L＝４は出力層を夫々示している。図８に示されるように、入力層 ( L＝１) がｎ個のノードからなり、ｎ個の入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎが、入力層 ( L＝１) の各ノードに入力されている。一方、図８には隠れ層 ( L＝２)および隠れ層 ( L＝３)が記載されているが、これら隠れ層の層数は、１個又は任意の個数とすることができ、またこれら隠れ層のノードの数も任意の個数とすることができる。なお、出力層 ( L＝４) のノードの数は１個とされており、出力層のノードからの出力値がｙで示されている。
【００３４】
次に、図８における入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎと、出力値ｙについて説明する。最初に、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎについて図６Ｂおよび図６Ｃを参照しつつ説明する。なお、図６Ｂおよび図６Ｃは、図６Ａに示されるノッキングセンサ１８の出力値の波形の一部を横軸方向に引き伸ばして図解的に表した図である。本発明による実施例では、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとして、図６Ｂに示される値か、或いは、図６Ｃに示される値が用いられる。
【００３５】
即ち、図６Ｂに示される例では、フィルタリング後のノッキングセンサ１８の出力値そのものが入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとされる。この場合、図６Ｂにおいて黒丸で示されるように、一定時間毎の、或いは、一定クランク角毎のノッキングセンサ１８の出力値が入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとされる。一方、図６Ｃに示される例では、フィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）であって例えば一定クランク角度内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値が入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとされる。
【００３６】
一方、本発明の実施例では、圧力センサ１９の出力値から求められるノッキング強度を代表する値が、図８に示される出力値ｙとされる。この場合、図７Ｂにおいて丸印で示される圧力センサ１９の出力値のピーク値はノッキング強度を表しており、また、図７Ｃに示される圧力センサ１９の出力値の積分値（負側の積分値も正の値とする）もノッキング強度を表している。従って、本発明の実施例では、図７Ｂにおいて丸印で示される圧力センサ１９の出力値のピーク値が出力値ｙとされるか、或いは、図７Ｃに示される圧力センサ１９の出力値の積分値（負側の積分値も正の値とする）が出力値ｙとされる。この場合圧力センサ１９の出力値から求められるノッキング強度を代表する値の実測値が教師データｙｔとされる。
【００３７】
図９は、入力値ｘ１、ｘ２・・・ｘｍ−１、ｘｍと、入力値がｘ１、ｘ２・・・ｘｍ−１、ｘｍであるときに圧力センサ１９の出力値から求められるノッキング強度を代表する値の実測値、即ち、教師データｙｔとを用いて作成された訓練データセットを示している。図９に示されるように、この訓練データセットでは、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎと教師データｙｔとの関係を表すｍ個のデータが取得されている。例えば、２番目のデータ（No. 2）には、取得された入力値ｘ１２、ｘ２２・・・ｘｍ−１２、ｘｍ２と教師データｙｔ２とが列挙されており、ｍ−１番目のデータ（No. ｍ−１）には、取得された入力パラメータの入力値ｘ１ｍ−１、ｘ２ｍ−１・・・ｘｎ−１ｍ−１、ｘｎｍ−１と教師データｙｔｍ−１が列挙されている。
【００３８】
入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとして、フィルタリング後のノッキングセンサ１８の出力値そのものを用いる場合には、例えば、圧縮上死点から圧縮上死点後９０°までの間において一定クランク角毎に取得されたフィルタリング後のノッキングセンサ１８の出力値が、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとされる。この場合には、入力値の個数ｎが数百以上とされ、従って、図８に示される入力層 ( L＝１) のノードの個数ｎが数百以上とされる。
【００３９】
一方、本発明の実施例では、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとして、フィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）を用いる場合には、圧縮上死点から圧縮上死点後９０°までの間がクランク角度５°毎に１８個の区間に分割され、分割された各区間内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）が、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとされる。この場合には、入力値の個数ｎは１８個となり、従って、図８に示される入力層 ( L＝１) のノードの個数ｎは１８個とされる。
【００４０】
一方、図９に示される訓練データセットにおける教師データｙｔは、圧力センサ１９の出力値から求められるノッキング強度を代表する値の実測値であり、この教師データｙｔとしては、図７Ｂにおいて丸印で示される圧力センサ１９の出力値のピーク値が用いられるか、或いは、図７Ｃに示される圧力センサ１９の出力値の積分値（負側の積分値も正の値とする）が用いられる。ところで、本発明による実施例では、図９に示される訓練データセットを用いて、図８に示されるニューラルネットワーク２０の重みの学習が行われる。そこで次に、図４および図５を参照しつつ、図９に示される訓練データセットの作成方法について説明する。
【００４１】
図４および図５には、図９に示される訓練データセットの作成方法の一例が示されている。図４および図５を参照すると、各気筒の燃焼室５に面するシリンダヘッド３の内壁面上には、ノッキング強度を代表する値を取得するために、夫々圧力センサ１９が配置されている。これら圧力センサ１９は、前述したように、学習に必要なデータを取得するためだけに設けられている。一方、図５に示される例では、ノッキングセンサ１８は、ノッキングセンサ１８の出力値の波形を検出可能な検出器２１、例えば、オシロスコープに接続され、各圧力センサ１９は、各圧力センサ１９の出力値の波形を検出可能な検出器２２、例えば、オシロスコープに接続されている。
【００４２】
検出器２１内では、ノッキングによる機関本体１の振動のみを抽出するために、ノッキングセンサ１８の出力値は、ＡＤ変換された後、例えば５KHzから２５KHz程度の周波数の入力信号のみを通過させるデジタルバンドパスフィルタに送り込まれ、このデジタルバンドパスフィルタによりフィルタリングされた後のノッキングセンサ１８の出力値の波形が検出される。一方、検出器２２では、ノッキングによる燃焼室５内の圧力変動のみを抽出するために、圧力センサ１９の出力値は、ＡＤ変換された後、例えば５KHzから２５KHz程度の周波数の入力信号のみを通過させるデジタルバンドパスフィルタに送り込まれ、このデジタルバンドパスフィルタによりフィルタリングされた後の圧力センサ１９の出力値の波形が検出される。
【００４３】
訓練データセットを作成する際には、機関負荷、機関回転数およびＥＧＲ率の種々の組み合わせについてノッキングの発生しない運転状態とノッキングの発生する運転状態の双方の状態が生ずるように機関を運転させ、そのとき各検出器２１、２２から得られたフィルタリング後の圧力センサ１９の出力値の波形データおよびフィルタリング後の圧力センサ１９の出力値の波形データに基づいて、図９に示されるような訓練データセットが作成される。この場合、この訓練データセットは、各検出器２１、２２から得られた波形データに基づき、手作業でもって作成することもできるし、各検出器２１、２２から得られた電子データに基づき、電子的に作成することもできる。このようにして作成された訓練データセットの電子データを用いて、図８に示されるニューラルネットワーク２０の重みの学習が行われる。
【００４４】
図５に示される例では、ニューラルネットワークの重みの学習を行うための学習装置２３が設けられている。図５に示されるように、この学習装置２３は、記憶装置２４、即ち、メモリ２４と、ＣＰＵ（マイクロプロセッサ）２５を具備している。図５に示される例では、図８に示されるニューラルネットワーク２０のノード数、および作成された訓練データセットの電子データが学習装置２３のメモリ２４に記憶され、ＣＰＵ２５においてニューラルネットワーク２０の重みの学習が行われる。
【００４５】
次に、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとして、上死点から上死点後９０°までの間においてクランク角度５°毎に分割された各区間内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）を用い、教師データｙｔとして、圧力センサ１９の出力値のピーク値の実測値を用いて、学習装置２３により行われるニューラルネットワーク２０の重みの学習方法について説明する。
【００４６】
図１０は、学習装置２３において行われるニューラルネットワークの重みの学習処理ルーチンを示す。
図１０を参照すると、まず初めに、ステップ１００において、学習装置２３のメモリ２４に記憶されている訓練データセットの各データが読み込まれる。次いで、ステップ１０１において、ニューラルネットワーク２０の入力層 ( L＝１) のノード数、隠れ層 ( L＝２)および隠れ層 ( L＝３)のノード数および出力層 ( L＝４) のノード数が読み込まれ、これらノード数に基づいて、図８に示されるようなニューラルネットワーク２０が作成される。この場合、この例では、入力層 ( L＝１) のノード数は１８個とされ、出力層 ( L＝４) のノード数は１個とされる。
【００４７】
次いで、ステップ１０２では、ニューラルネットワーク２０の重みの学習が行われる。最初は、図９の１番目（No. 1）の入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎ、即ち、入力値ｘ１、ｘ２・・・ｘ17、ｘ18がニューラルネットワーク２０の入力層 ( L＝１) の１８個の各ノードに入力される。次いで、このときのニューラルネットワーク２０の出力値ｙと１番目（No. 1）の教師データｙｔ１との間の二乗誤差Ｅ＝１/２(ｙ−ｙｔ１)２が算出され、この二乗誤差Ｅが小さくなるように、前述した誤差逆伝播法を用いて、ニューラルネットワーク２０の重みの学習が行われる。
【００４８】
図９の１番目（No. 1）のデータに基づくニューラルネットワーク２０の重みの学習が完了すると、次に、図９の２番目（No. ２）のデータに基づくニューラルネットワーク２０の重みの学習が、誤差逆伝播法を用いて行われる。同様にして、図９のｍ番目（No. ｍ）まで順次、ニューラルネットワーク２０の重みの学習が行われる。図９の１番目（No. 1）からｍ番目（No. ｍ）までの全てについてニューラルネットワーク２０の重みの学習が完了すると、ステップ１０３に進む。
【００４９】
ステップ１０３では、例えば、図９の１番目（No. 1）からｍ番目（No. ｍ）までの全てのニューラルネットワークの出力値ｙと教師データｙｔとの間の二乗和誤差Ｅが算出され、この二乗和誤差Ｅが、予め設定された設定誤差以下になったか否かが判別される。二乗和誤差Ｅが、予め設定された設定誤差以下になっていないと判別されたときには、ステップ１０２に戻り、再度、図９に示される訓練データセットに基づいて、ニューラルネットワーク２０の重み学習が行われる。次いで、二乗和誤差Ｅが、予め設定された設定誤差以下になるまで、ニューラルネットワーク２０の重みの学習が続行される。ステップ１０３において、二乗和誤差Ｅが、予め設定された設定誤差以下になったと判別されたときには、ステップ１０４に進んで、ニューラルネットワーク２０の学習済み重みが学習装置２３のメモリ２４に記憶される。このようにしてノッキング強度を代表する値の推定モデルが作成される。
【００５０】
さて、前述したように、図５に示される内燃機関は、ニューラルネットワーク２０の重みを学習するために、図１に示される内燃機関に圧力センサ１９を取り付けた内燃機関である。これら図１或いは図５に示される内燃機関において、このノッキング強度を代表する値の推定モデル、即ち、学習済みニューラルネットワーク２０を用いて、ノッキング強度を代表する値の推定した場合には、ノッキング強度を代表する値を精度よく推定することができ、何ら問題は生じない。ところが他の内燃機関、例えば、市販用の内燃機関において、このノッキング強度を代表する値の推定モデル、即ち、学習済みニューラルネットワーク２０を用いて、ノッキング強度を代表する値を推定した場合には、問題を生ずる。
【００５１】
即ち、前述したように、機関の構成部品には公差があり、従って、市販車ごとに機関の構成部品の寸法がばらつくために、市販車毎に異なる機関の振動が発生する。しかしながら、学習済みニューラルネットワークは、このように市販車毎に発生する異なる機関の振動については、重みの学習がなされておらず、従って、このように重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生すると、学習済みニューラルネットワークにおいて、ノッキングにより機関本体に振動が発生していると誤判断される場合がある。ところが、このような誤判断が行われると、前述したように、点火時期の遅角作用が続行し続ける場合があり、その場合には、点火時期が過剰に遅角される危険性がある。
【００５２】
そこで本発明による実施例では、重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生したとしても、ノッキングにより機関本体１に振動が発生していると誤判断されるのを抑制するために、図１１に示されるように、ノッキングセンサ１８とニューラルネットワーク２０との間に、ノッキングセンサ１８の出力値が入力されたときに、この出力値に含まれる未学習の機関の振動を表す値を除去した、即ち、未学習のノイズ成分値を除去したノイズ除去済み出力値を出力する正常信号生成モデル６０を挿入し、ノッキングセンサ１８の出力値を、この正常信号生成モデル６０を介して、ニューラルネットワーク２０に入力させるようにしている。
【００５３】
図１２には、この正常信号生成モデル６０の一例が示されている。図１２に示される例では、この正常信号生成モデル６０は、ニューラルネットワークを用いたオートエンコーダからなる。図１２を参照すると、このオートエンコーダにおいて、L＝１は入力層、L＝２、L＝３および L＝４は隠れ層、L＝５は出力層を夫々示している。このオートエンコーダでは、入力層 ( L＝１) のノード数と、出力層 ( L＝５) のノード数とが同じであり、更に、オートエンコーダの入力層 ( L＝１) および出力層 ( L＝５) のノード数は、図８に示されるニューラルネットワーク２０の入力層 ( L＝１) のノード数と同じである。また、隠れ層 ( L＝２、L＝３およびL＝４) のノード数は、入力層 ( L＝１) および出力層 ( L＝５) のノード数よりも少なくされている。なお、隠れ層 ( L＝２、L＝３およびL＝４) の層数は、任意の個数とすることができる。
【００５４】
図１２に示されるように、このオートエンコーダでは、オートエンコーダの入力層 ( L＝１) の各ノードに夫々、入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎが入力され、オートエンコーダの出力層 ( L＝５) の各ノードからは夫々、出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎが出力される。オートエンコーダの出力層 ( L＝５) の各ノードから出力された出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎは、夫々、図８に示されるニューラルネットワーク２０の入力層 ( L＝１) の各ノードに、入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎとして入力される。
【００５５】
一方、オートエンコーダの入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎとしては、図６Ｂに示される値か、或いは、図６Ｃに示される値が用いられる。即ち、図６Ｂに示される例では、フィルタリング後のノッキングセンサ１８の出力値そのものが入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎとされる。この場合、図６Ｂにおいて黒丸で示されるように、一定時間毎の、或いは、一定クランク角毎のノッキングセンサ１８の出力値が入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎとされる。この場合には、オートエンコーダの入力層 ( L＝１) のノード数、オートエンコーダの出力層 ( L＝５) のノード数および図８に示されるニューラルネットワーク２０の入力層 ( L＝１) のノード数は、数百以上とされる。
【００５６】
一方、図６Ｃに示される例では、フィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）であって例えば一定クランク角度内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値が入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎとされる。この場合、本発明による実施例では、圧縮上死点から圧縮上死点後９０°までの間がクランク角度５°毎に１８個の区間に分割され、分割された各区間内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）が、入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎとされる。この場合には、オートエンコーダの入力層 ( L＝１) のノード数、オートエンコーダの出力層 ( L＝５) のノード数および図８に示されるニューラルネットワーク２０の入力層 ( L＝１) のノード数は、１８個とされる。
【００５７】
図１２に示されるオートエンコーダでは、入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎが、そのまま対応する出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎに現れるように、重みの学習が行われ、このオートエンコーダの重みを学習は、図５に示される学習装置２３を用いて行われる。なお、このオートエンコーダの重みを学習するための訓練データセットとして、図９に示される訓練データセットの入力値ｘ１、ｘ２・・・ｘｍ−１、ｘｍの部分をそのまま利用して作成された訓練データセットを用いることもできるし、新たに求められたノッキングセンサ１８の出力値を用いて、或いは、新たに求められたノッキングセンサ１８の出力値の積分値を用いて作成された訓練データセットを用いることができる。オートエンコーダの重みを学習する際には、図１２に示されるオートエンコーダの入力層 ( L＝１) のノード数、各隠れ層 ( L＝２、L＝３、L＝４) のノード数および出力層 ( L＝５) のノード数、および、例えば、図９に示される訓練データセットの入力値ｘ１、ｘ２・・・ｘｍ−１、ｘｍが、学習装置２３のメモリ２４に記憶され、学習装置２３において、図１０に示されるような学習処理ルーチンを用いて、オートエンコーダの重みの学習が行われる。
【００５８】
このとき、オートエンコーダの入力層 ( L＝１) の各ノードには、入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎとして図９に示される訓練データセットの入力値ｘ１、ｘ２・・・ｘｍ−１、ｘｍが入力され、このときの出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎと、対応する入力値ｘin１、ｘin２・・・ｘinｎ−１、ｘinｎとの二乗和誤差Ｅが予め設定された設定誤差以下になるまで、オートエンコーダの重みの学習が続行される。この二乗和誤差Ｅが、予め設定された設定誤差以下になったときに、オートエンコーダの学習済み重みが学習装置２３のメモリ２４に記憶される。それにより、学習済みオートエンコーダからなる正常信号生成モデル６０が生成される。
【００５９】
このように入力値と出力値とが一致するように事前学習されたオートエンコーダでは、入力データの次元削減が行われることにより隠れ層において入力データの特徴が抽出され、この抽出された特徴を表す出力データがオートエンコーダから出力される。従って、入力データにノイズが重畳したとしても、ノイズは入力データの特徴とはみなされず、従って、オートエンコーダからは、ノイズを含まない出力データ、即ち、ノイズが除去された出力データが出力されることになる。本発明の実施例について説明すると、本発明の実施例において用いられている学習済みオートエンコーダでは、ノッキングセンサ１８の出力値に重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が重畳したとしても、学習済みオートエンコーダからは、ノッキングセンサ１８の出力値に含まれる未学習の機関の振動値、即ち、未学習ノイズ成分値を除去したノイズ除去済み出力値が出力される。従って、学習済みオートエンコーダの出力値を用いると、重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生したとしても、ノッキングにより機関本体１に振動が発生していると誤判断されるのが抑制されることになる。
【００６０】
このように、本発明のよる実施例では、機関本体１の振動を検出するノッキングセンサ１８の出力値が入力されたときに、この出力値に含まれる未学習ノイズ成分値を除去したノイズ除去済み出力値を出力するように事前学習された正常信号生成モデル６０が用いられており、この正常信号生成モデル６０として、図１２に示されるようなオートエンコーダが用いられている。この場合、この正常信号生成モデル６０として、図１２に示されるようなオートエンコーダに代えて、変分オートエンコーダ（Variational Autoencoder）或いは、敵対的生成ネットワーク（Generative Adversarial Network）を用いることもできる。
【００６１】
一方、前述したように、本発明のよる実施例では、ノッキングセンサ１８の出力値、或いは、ノッキングセンサ１８の出力値の積分値を用いて図９に示される訓練データセットが作成され、この訓練データセットに基づいて、ニューラルネットワーク２０の重み学習が行われる。この場合、学習済みオートエンコーダの出力値、即ち、正常信号生成モデル６０の出力値を用いてニューラルネットワーク２０の重み学習を行うこともできる。この場合には、正常信号生成モデル６０の出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎを、図９に示される訓練データセットの入力値ｘ１、ｘ２・・・ｘｍ−１、ｘｍとした図９に示されるような訓練データセットが生成され、この訓練データセットに基づいて、ニューラルネットワーク２０の重み学習が行われる。
【００６２】
ニューラルネットワーク２０の重み学習が行われると、学習済みニューラルネットワーク２０、即ち、ノッキング強度を代表する値の推定モデルが生成される。本発明による実施例では、この学習済みニューラルネットワーク２０、即ち、ノッキング強度を代表する値の推定モデルを用いて、機関においてノッキング処理が行われ、そのために正常信号生成モデル６０およびノッキング強度を代表する値の推定モデルが図１に示される電子制御ユニット３０に格納される。図１３は、正常信号生成モデル６０およびノッキング強度を代表する値の推定モデルを電子制御ユニット３０に格納するために、電子制御ユニット３０において行われる電子制御ユニットへのデータ読み込みルーチンを示している。
【００６３】
即ち、図１３に示されるように、ステップ１１０において、図８に示されるニューラルネットワーク２０の入力層 ( L＝１) のノード数、隠れ層 ( L＝２、L＝３) のノード数および出力層 ( L＝４) のノード数が、電子制御ユニット３０のメモリ３２に読み込まれ、これらノード数に基づき、図８に示されるようなニューラルネットワーク２０が作成される。また、図１２に示されるオートエンコーダの入力層 ( L＝１) のノード数、隠れ層 ( L＝２、L＝３、L＝４) のノード数および出力層 ( L＝５) のノード数が、電子制御ユニット３０のメモリ３２に読み込まれ、これらノード数に基づき、図１２に示されるようなオートエンコーダが作成される。次いで、ステップ１１１において、ニューラルネットワーク２０の学習済みの重みが電子制御ユニット３０のメモリ３２に読み込まれる。それにより、学習済みニューラルネットワーク２０、即ち、ノッキング強度を代表する値の推定モデルが、機関の電子制御ユニット３０内に格納される。また、オートエンコーダの学習済みの重みが電子制御ユニット３０のメモリ３２に読み込まれる。それにより、正常信号生成モデル６０が、機関の電子制御ユニット３０内に格納される。
【００６４】
さて、電子制御ユニット３０内に正常信号生成モデル６０および学習済みニューラルネットワーク２０が格納されると、フィルタリング後のノッキングセンサ１８の出力値、或いは、クランク角度５°毎に分割された各区間内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）を正常信号生成モデル６０に入力し、正常信号生成モデル６０の出力値を学習済みニューラルネットワーク２０に入力したときに、学習済みニューラルネットワーク２０からは、圧力センサ１９の出力値から求められるノッキング強度を代表する値の推定値が出力される。このノッキング強度を代表する値の推定値は、ノッキング強度を代表する値の実測値に極めて近く、従って、ノッキングセンサ１８の出力値から、ノッキング強度を正確に推定できることになる。
【００６５】
次に、電子制御ユニット３０のメモリ３２内に格納された正常信号生成モデル６０および学習済みニューラルネットワーク２０を用いて、機関運転時に実行されるノッキング処理について説明する。図１４は、この機関運転時に実行されるノッキング処理ルーチンを示している。図１４に示されるように、このノッキング処理ルーチンが実行されると、まず初めにステップ１２０において、圧力センサ１９の出力値から求められるノッキング強度を代表する値、即ち、ノッキング強度代表値の推定処理が行われる。次いで、ステップ１２１では、ノッキングが生じているか否かのノッキング判定処理が行われ、次いで、ステップ１２２では、点火制御が行われる。
【００６６】
図１５は、図１４のステップ１２０において行われるノッキング強度代表値の推定処理ルーチンの一実施例を示している。このルーチンは、一定クランク角毎、或いは、一定時間毎の割り込みにより実行される。図１５を参照すると、まず初めに、ステップ１３０において、ノッキングセンサ１８の出力信号の取り込み期間中であるか否かが判別される。この実施例では、ノッキングセンサ１８の出力信号の取り込み期間が圧縮上死点から圧縮上死点後９０°までの間とされている。従って、クランク角が圧縮上死点前であるときには、処理サイクルを終了し、クランク角が圧縮上死点を過ぎるとノッキングセンサ１８の出力信号の取り込み期間中であると判別され、ステップ１３１に進む。
【００６７】
ステップ１３１では、ノッキングセンサ１８の出力信号が、対応するＡＤ変換器３６および例えば５KHzから２５KHz程度の周波数の入力信号のみを通過させるデジタルバンドパスフィルタ３７を介して取り込まれる。即ち、フィルタリング後のノッキングセンサ１８の出力値が取り込まれる。次いで、ステップ１３２では、取り込まれたフィルタリング後のノッキングセンサ１８の出力値が電子制御ユニット３０のメモリ３２内に記憶される。次いで、ステップ１３３では、ノッキングセンサ１８の出力信号の取り込み期間が終了したか否かが判別される。即ち、クランク角が圧縮上死点後９０°に達したか否かが判別される。ステップ１３３において、ノッキングセンサ１８の出力信号の取り込み期間が終了していないと判別されたとき、即ち、クランク角が圧縮上死点後９０°に達していないと判別されたときには処理サイクルを終了する。
【００６８】
これに対し、ステップ１３３において、ノッキングセンサ１８の出力信号の取り込み期間が終了したと判別されたとき、即ち、クランク角が圧縮上死点後９０°に達したと判別されたときにはステップ１３４に進む。このときメモリ３２内には図６Ｂの黒丸で示すようなフィルタリング後のノッキングセンサ１８の出力値が記憶されている。ステップ１３４では、このメモリ３２内に記憶されているフィルタリング後のノッキングセンサ１８の出力値が、オートエンコーダ、即ち、正常信号生成モデル６０に入力される。次いで、ステップ１３５では、正常信号生成モデル６０の出力値、即ち、オートエンコーダの出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎが、学習済みのニューラルネットワーク２０の入力層 ( L＝１) の各ノードに入力される。このとき、学習済みのニューラルネットワーク２０からはノッキング強度を代表する値の推定値ｙe が出力され、従って、ステップ１３６に示されているように、ノッキング強度を代表する値の推定値ｙe が算出されることになる。
【００６９】
図１６は、図１４のステップ１２０において行われるノッキング強度代表値の推定処理ルーチンの別の実施例を示している。このルーチンも、一定クランク角毎、或いは、一定時間毎の割り込みにより実行される。なお、図１６のステップ１４０からステップ１４３の内容は、図１５のステップ１３０からステップ１３３の内容と同一である。即ち、図１６を参照すると、まず初めに、ステップ１４０において、ノッキングセンサ１８の出力信号の取り込み期間中であるか否かが判別される。この実施例でも、ノッキングセンサ１８の出力信号の取り込み期間が圧縮上死点から圧縮上死点後９０°までの間とされている。従って、クランク角が圧縮上死点前であるときには、処理サイクルを終了し、クランク角が圧縮上死点を過ぎるとノッキングセンサ１８の出力信号の取り込み期間中であると判別され、ステップ１４１に進む。
【００７０】
ステップ１４１では、ノッキングセンサ１８の出力信号が、対応するＡＤ変換器３６および例えば５KHzから２５KHz程度の周波数の入力信号のみを通過させるデジタルバンドパスフィルタ３７を介して取り込まれる。即ち、フィルタリング後のノッキングセンサ１８の出力値が取り込まれる。次いで、ステップ１４２では、取り込まれたフィルタリング後のノッキングセンサ１８の出力値が電子制御ユニット３０のメモリ３２内に記憶される。次いで、ステップ１４３では、ノッキングセンサ１８の出力信号の取り込み期間が終了したか否かが判別される。即ち、クランク角が圧縮上死点後９０°に達したか否かが判別される。ステップ１４３において、ノッキングセンサ１８の出力信号の取り込み期間が終了していないと判別されたとき、即ち、クランク角が圧縮上死点後９０°に達していないと判別されたときには処理サイクルを終了する。
【００７１】
これに対し、ステップ１４３において、ノッキングセンサ１８の出力信号の取り込み期間が終了したと判別されたとき、即ち、クランク角が圧縮上死点後９０°に達したと判別されたときにはステップ１４４に進む。ステップ１４４では、メモリ３２内に記憶されているフィルタリング後のノッキングセンサ１８の出力値に基づいて、図６Ｃを参照しつつ説明したように、クランク角度５°毎に分割された各区間内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）が算出される。次いで、ステップ１４５では、フィルタリング後のノッキングセンサ１８の出力値の算出された各積分値が、オートエンコーダ、即ち、正常信号生成モデル６０に入力される。次いで、ステップ１４６では、正常信号生成モデル６０の出力値、即ち、オートエンコーダの出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎが、学習済みのニューラルネットワーク２０の入力層 ( L＝１) の各ノードに入力される。このとき、学習済みのニューラルネットワーク２０からはノッキング強度を代表する値の推定値ｙe が出力され、従って、ステップ１４７に示されているように、ノッキング強度を代表する値の推定値ｙe が算出されることになる。
【００７２】
図１７は、図１５のステップ１３６において算出されたノッキング強度を代表する値の推定値ｙe、又は図１６のステップ１４７において算出されたノッキング強度を代表する値の推定値ｙe に基づき電子制御ユニット３０内で実行されるノッキング判定ルーチンを示している。このルーチンは、一定クランク角毎の割り込みにより実行される。図１７を参照すると、まず初めに、ステップ１５０において、ノッキング強度を代表する値に対する閾値Ｍij が読み込まれる。この閾値Ｍij は、図１８に示されるように、機関負荷Ｌと機関回転数Ｎに応じて複数個に分割された各機関運転領域に対して予め設定されている。
【００７３】
次いで、ステップ１５１では、算出されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいか否かが判別される。算出されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きくないと判別されたときにはステップ１５２に進んで、ノッキングが発生していないと判別され、次いで処理サイクルを終了する。なお、以下、このようにノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きくないときには、たとえ弱いノッキングが発生していたとしても、処理説明の便宜上、ノッキングが発生していないと言う。一方、算出されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいと判別されたときにはステップ１５３に進んで、ノッキングが発生している判別され、次いで処理サイクルを終了する。
【００７４】
図１９は、図１７に示されるノッキング判定ルーチンにおける判定結果に基づき電子制御ユニット３０内で実行される点火制御ルーチンを示している。このルーチンは、一定クランク角毎の割り込みにより実行される。図１９を参照すると、まず初めに、ステップ１６０において、基準点火時期ＩＧ（ＢＴＤＣ）が算出される。この基準点火時期ＩＧは、機関負荷Ｌと機関回転数Ｎの関数として、図２０に示されるようなマップの形で予めメモリ３２内に記憶されている。次いで、ステップ１６１では、図１７に示されるノッキング判定ルーチンにおける判定結果に基づき、ノッキングが発生したか否かが判別される。ノッキングが発生したと判別されたときにはステップ１６２に進む。
【００７５】
ステップ１６２では、点火時期を遅角させるために点火時期遅角量ΔＩＧに一定量αが加算される。次いで、ステップ１６６では、基準点火時期ＩＧから点火時期遅角量ΔＩＧを減算することによって最終的な点火時期ＩＧＯが算出される。この最終的な点火時期ＩＧＯに基づいて。点火栓１１による点火作用が制御される。このとき点火時期は一定量αだけ遅角される。一方、ステップ１６１において、ノッキングが発生していないと判別されたときにはステップ１６３に進み、点火時期を進角させるために点火時期遅角量ΔＩＧから一定量βが減算される。
【００７６】
次いで、ステップ１６４では、点火時期遅角量ΔＩＧか負になったか否かが判別され、点火時期遅角量ΔＩＧか負になっていないときにはステップ１６６に進んで、最終的な点火時期ＩＧＯが算出される。このときには、点火時期は一定量βだけ進角される。なお、本発明による実施例では、一定量αは一定量βよりも大きな値に設定されている。言い換えると、遅角量αは進角量βよりも大きな値に設定されている。一方、ステップ１６４において、点火時期遅角量ΔＩＧか負になったと判別されたときにはステップ１６５に進んで点火時期遅角量ΔＩＧが零とされた後、ステップ１６６に進む。このときには、点火時期が基準点火時期ＩＧとされる。
【００７７】
このように、本発明による実施例では、図２１に示されるように、機関本体１の振動を検出するノッキングセンサ１８の出力値が入力されたときに、この出力値に含まれる未学習ノイズ成分値を除去したノイズ除去済み出力値を出力するように事前学習された正常信号生成モデル６０と、ノッキングセンサの出力値および正常信号生成モデルのノイズ除去済み出力値のいずれか一方が入力されたときに、点火により発生する混合気の燃焼圧を検出するための圧力センサ１９の出力値から求められるノッキング強度を代表する値の推定値を出力するように事前学習された学習済みニューラルネットワーク２０とを記憶した記憶装置６１が設けられている。更に、機関運転時に取得されたノッキングセンサ１８の出力値を正常信号生成モデル６０に入力すると共に正常信号生成モデル６０から出力されたノイズ除去済み出力値を学習済みニューラルネットワーク２０入力して学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値を取得する推定値取得部６２と、推定値取得部６２において取得されたノッキング強度を代表する値の推定値に基づいて点火時期の遅角制御を行う制御部６３とが設けられている。この場合、本発明による実施例では、正常信号生成モデル６０が、オートエンコーダからなる。
【００７８】
また、本発明による実施例では、ノッキング強度を代表する値が、予め設定されている期間内における圧力センサ１９の出力値のピーク値であり、或いは、ノッキング強度を代表する値が、予め設定されている期間内における圧力センサ１９の出力値の積分値である。また、この場合、予め設定されている期間が、一定のクランク角度範囲、例えば、圧縮上死点から圧縮上死点後９０°の範囲である。
【００７９】
一方、本発明による実施例では、ノッキングセンサ１８の出力値が、予め設定されている期間内における出力値であり、ノッキングセンサ１８の出力値が、予め設定されている期間内において等分割された区間内におけるノッキングセンサ１８の出力値の積分値である。この場合、予め設定されている期間が、一定のクランク角度範囲、例えば、圧縮上死点から圧縮上死点後９０°の範囲である。また、ノッキングセンサ１８の出力値の積分値に関し、一例を挙げると、このノッキングセンサ１８の出力値の積分値は、クランク角度５°毎に等分割された各区間内におけるフィルタリング後のノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）である。
【００８０】
さて、前述したように、本発明の実施例において用いられている正常信号生成モデル６０では、ノッキングセンサ１８の出力値に、重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が重畳したとしても、正常信号生成モデル６０からは、ノッキングセンサ１８の出力値に含まれる未学習の機関の振動値、即ち、未学習ノイズ成分値を除去したノイズ除去済み出力値が出力される。即ち、図２１に示される正常信号生成モデル６０、学習済みニューラルネットワーク２０、推定値取得部６２、制御部６３を有する点火時期制御装置を、市販用の内燃機関において使用した場合でも、正常信号生成モデル６０からは、ノッキングセンサ１８の出力値に含まれる未学習の機関の振動値、即ち、未学習ノイズ成分値を除去したノイズ除去済み出力値が出力される。
【００８１】
従って、図２１に示される点火時期制御装置を、市販用の内燃機関において使用し、そのとき、重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生したとしても、ノッキングにより機関本体１に振動が発生していると誤判断されるのが抑制されることになる。このように、図２１に示される点火時期制御装置は、ノッキングにより機関本体１に振動が発生していると誤判断されるのを抑制することができるという大きな利点を有している。なお、図２１に示される点火時期制御装置を、市販用の内燃機関において使用する場合には、図１３に示される電子制御ユニットへのデータ読み込みルーチンを用いて、正常信号生成モデル６０および学習済みニューラルネットワーク２０が、市販用の内燃機関の電子制御ユニット３０内に格納される。
【００８２】
さて、図２１に示される点火時期制御装置は、ノッキングにより機関本体１に振動が発生していると誤判断されるのを抑制することができるという大きな利点を有しており、従って、図２１に示される点火時期制御装置を用いれば十分な場合もある。しかしながら、実際には、正常信号生成モデル６０によりノッキングセンサ１８の出力値に含まれる未学習ノイズ成分値を完全に除去することは難しく、ノッキングにより機関本体１に振動が発生していると誤判断されるのを抑制することはできるが、更に抑制することが望ましい場合もある。そこで、次に、ノッキングにより機関本体１に振動が発生していると誤判断されるのを更に抑制することのできる第２の実施例について説明する。
【００８３】
この第２の実施例を説明するに当たり、最初に，図１および図５に示される内燃機関において実施されているノッキング処理について説明する。なお、この第２の実施例では、ニューラルネットワーク２０および学習済みニューラルネットワーク２０を夫々、第１のニューラルネットワーク２０および第１の学習済みニューラルネットワーク２０と称する。さて、図１４から図１７および図１９に示されるノッキング処理は、気筒毎に夫々独立して実行され、図２２は、或る一つの気筒におけるノッキング処理の一例を示している。図２２には、サイクル番号と、点火の行われるタイミングと、第１の学習済みニューラルネットワーク２０への入力値ｘ１、ｘ２・・・ｘｎ−１、ｘｎの取り込み作業が行なわれる期間と、第１の学習済みニューラルネットワーク２０から出力されるノッキング強度を代表する値の推定値ｙe と、ノッキングが発生したか否かの判定が行われるノッキング判定時期と、ノッキングの判定結果と、点火時期とが示されている。
【００８４】
本発明による実施例では、吸気上死点ＴＤＣから次の吸気上死点ＴＤＣまでの７２０クランク角度が１サイクルとされており、機関の運転が開始されたときからのサイクル番号がｋ１、ｋ２、・・・ｋｎ、ｋｎ＋１、ｋｎ＋２、ｋｎ＋３・・・とされている。図２２には、これらサイクル番号が、ｋｎ、ｋｎ＋１、ｋｎ＋２、ｋｎ＋３となったときが示されており、ノッキング処理を容易に理解し得るように、以下、これらサイクル番号ｋｎ、ｋｎ＋１、ｋｎ＋２、ｋｎ＋３を用いて説明する。本発明による実施例では、ピストン４の位置が圧縮上死点ＴＤＣに達する毎に、図１４に示されるノッキング処理が実行される。ノッキング処理が実行されると、図１５又は図１６に示されるノッキング強度代表値の推定ルーチンが実行され、正常信号生成モデル６０の出力値、即ち、オートエンコーダの出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎが第１の学習済みニューラルネットワーク２０に入力される。
【００８５】
オートエンコーダの出力値ｘout１、ｘout２・・・ｘoutｎ−１、ｘoutｎが第１の学習済みニューラルネットワーク２０に入力されると、第１の学習済みニューラルネットワーク２０からは、ノッキング強度を代表する値の推定値ｙe が出力される。第１の学習済みニューラルネットワーク２０からノッキング強度を代表する値の推定値ｙe が出力されると、図１７に示されるノッキング判定ルーチンが実行され、ノッキングが発生したか否かの判定が行われる。このとき、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えると、ノッキングが発生したと判定される。ノッキングが発生したか否かの判定が行われると、図１９に示される点火制御ルーチンが実行される。
【００８６】
図２２からわかるように、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えると、次のサイクルでは点火時期が遅角される。点火時期が遅角されると多くの場合、ノッキング強度を代表する値の推定値ｙe は閾値Ｍij 以下まで低下する。一方、点火時期が遅角されても、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij以下まで低下しない場合もある。図２２は、このように点火時期が遅角されても、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij以下まで低下しない場合の例を示している。
【００８７】
即ち、図２２に示される例では、サイクルが番号ｋｎのサイクルとなったときにノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたと判別され、それにより次のサイクルｋｎ＋１において点火時期が遅角される。次いで、次のサイクルｋｎ＋１でも、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたと判別され、それにより更に次のサイクルｋｎ＋２においても点火時期が遅角される。サイクルｋｎ＋２において点火時期が遅角されると、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij 以下に低下し、それによりノッキングが発生していないと判別される。ノッキングが発生していないと判別されると、次のサイクルｋｎ＋３では点火時期が進角され、ノッキングが発生しない限り、点火時期は進角され続ける。なお、図２２からわかるように、本発明による実施例では、遅角量に比べて進角量は小さくされている。
【００８８】
さて、前述したように、図５に示される内燃機関は、第１のニューラルネットワーク２０の重みを学習するために、図１に示される内燃機関に圧力センサ１９を取り付けた内燃機関である。これら図１或いは図５に示される内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用い、図２２を参照しつつ説明したようなノッキング処理を行った場合には、何ら問題は生じない。ところが他の内燃機関、例えば、市販用の内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用い、図２２を参照しつつ説明したようなノッキング処理を行うと、たとえ正常信号生成モデル６０が用いられたとしても、問題を生じる。そこで次に、どのような問題を生ずるかについて図２３Ａから図２６を参照しつつ説明する。
【００８９】
図２３Ａは燃焼室５内の燃焼圧とクランク角（ＡＴＤＣ）との関係を示している。なお、図２３Ａにおいて実線はノッキングが発生したときの燃焼室５内の燃焼圧の変化を示しており、破線はノッキングが発生していないときの燃焼室５内の燃焼圧の変化を示している。図２３Ａからわかるように、ノッキングが発生すると、圧縮上死点ＴＤＣ後に、燃焼室５内の燃焼圧が急激に上昇する。図２３Ｂには、このときの実際の燃焼室５内の燃焼圧の上昇量とノッキング強度との関係が各点で示されている。図２３Ｂに示されるように燃焼室５内の燃焼圧の上昇量が大きくなるほど、ノッキング強度が大きくなる。即ち、燃焼室５内の燃焼圧の上昇量が大きくなるほど、ノッキング強度を代表する値の推定値ｙe が大きくなる。従って、第１の学習済みニューラルネットワーク２０の入力値と出力値は、これら燃焼室５内の燃焼圧の上昇量とノッキング強度との関係を示していることになる。
【００９０】
図２４は、図５に示される内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用い、図２２に示されるノッキング処理が行われたときの圧力センサ１９の出力値と、ノッキングセンサ１８の出力値と、燃焼室５内の燃焼圧と、ノッキング強度を代表する値の推定値ｙe の夫々の値の変化を示している。なお、図２４において、（ａ）は図２２のサイクルｋｎにおけるこれらの値の変化を示しており、（ｂ）は図２２のサイクルｋｎ＋１におけるこれらの値の変化を示しており、（ｃ）は図２２のサイクルｋｎ＋２におけるこれらの値の変化を示している。図２２からわかるように、サイクルが、ｋｎ＋１、ｋｎ＋２へと進むにつれて、点火時期が次第に遅角され、図２４からわかるように、サイクルが、ｋｎ＋１、ｋｎ＋２へと進むにつれて、圧力センサ１９の出力値、ノッキングセンサ１８の出力値、燃焼室５内の燃焼圧の上昇量およびノッキング強度を代表する値の推定値ｙe が次第に低下していく。
【００９１】
このように図２２および図２４から、点火時期の遅角量を増大させると、燃焼室５内の燃焼圧の上昇量およびノッキング強度を代表する値の推定値ｙe が低下することがわかる。この場合、点火時期の遅角速度を増大させると、燃焼室５内の燃焼圧の上昇量およびノッキング強度を代表する値の推定値ｙe が低下することもわかっている。即ち、図２５Ａの各点で示されるように、点火時期の遅角量又は遅角速度を増大させると、燃焼室５内の燃焼圧の上昇割合が低下し、図２５Ｂの各点で示されるように、点火時期の遅角量又は遅角速度を増大させると、ノッキング強度を代表する値の推定値ｙe が低下することがわかっている。
【００９２】
一方、図２６は、図５に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関に圧力センサ１９を取り付け、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用いて、図２２を参照しつつ説明したようなノッキング処理が行なわれた場合の圧力センサ１９の出力値と、ノッキングセンサ１８の出力値と、燃焼室５内の燃焼圧と、ノッキング強度を代表する値の推定値ｙe の夫々の値の変化を示している。なお、この図２６においても、（ａ）、（ｂ）、（ｃ）は、図２２の各サイクルｋｎ、ｋｎ＋１，ｋｎ＋２におけるこれらの値の変化を示している。
【００９３】
さて、前述したように、機関の構成部品には公差があり、従って、機関毎に機関の構成部品の寸法がばらつくために、機関毎に異なる機関の振動が発生する。しかしながら、第１の学習済みニューラルネットワーク２０は、このように機関毎に発生する異なる機関の振動については、重みの学習がなされておらず、従って、このように重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生すると、たとえ正常信号生成モデル６０が用いられていたとしても、第１の学習済みニューラルネットワーク２０において、ノッキングにより機関本体１に振動が発生していると誤判断される場合がある。図２６の（a）は、一例として、サイクルｋｎにおいてノッキングおよび未学習の機関の振動が発生していてノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え、その結果、ノッキングが発生していると判別された場合を示している。
【００９４】
この場合、次のサイクルｋｎ＋１では、点火時期が遅角され、それにより図２６の（ｂ）で示されるように燃焼室５内の燃焼圧の上昇量は低下し、圧力センサ１９の出力値も低下する。しかしながら、点火時期の影響を受けない未学習の機関の振動が発生している場合には、点火時期が遅角されたとしても未学習の機関の振動は抑制されず、従って、図２６に示される例では、未学習の機関の振動は、点火時期が遅角された後も、図２６の（ｂ）で示されるように発生し続ける。その結果、図２３に示される例では、図２６の（ｂ）で示されるように、正常信号生成モデル６０が用いられていたとしても、未学習の機関の振動によってノッキング強度を代表する値の推定値ｙe が閾値Ｍij 以上となり、その結果、依然として、ノッキングが発生していると判別されることになる。
【００９５】
この場合、次のサイクルｋｎ＋２では、再度点火時期が遅角され、従って、図２６の（ｃ）で示されるように燃焼室５内の燃焼圧の上昇量は低下し、圧力センサ１９の出力値も低下する。しかしながらこのように点火時期が遅角されても、未学習の機関の振動が抑制されず、その結果、図２６に示される例では、点火時期が遅角された後も、図２６の（ｃ）で示されるように未学習の機関の振動が発生し続ける。その結果、図２６の（ｃ）で示されるように、正常信号生成モデル６０が用いられていたとしても、未学習の機関の振動によってノッキング強度を代表する値の推定値ｙe が閾値Ｍij 以上となり、その結果、依然としてノッキングが発生していると判別されることになる。このように、未学習の機関の振動が発生し続けると、正常信号生成モデル６０が用いられていたとしても、ノッキング強度を代表する値の推定値ｙe が閾値Ｍijを越え続け、それにより点火時期の遅角作用が続行され続ける場合がある。このような場合には、点火時期が過剰に遅角し、その結果、機関の出力が大幅に低下してしまうという問題を生ずることになる。
【００９６】
一方、ノッキングが発生していないが、未学習の機関の振動が発生したために、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え、ノッキングが発生していると判別された場合も同様である。この場合も、未学習の機関の振動が発生し続けると、正常信号生成モデル６０が用いられていたとしても、ノッキング強度を代表する値の推定値ｙe が閾値Ｍijを越え続け、点火時期の遅角作用が続行され続ける場合が生ずる。この場合にも、点火時期が過剰に遅角し、それにより機関の出力が大幅に低下してしまうという問題を生ずることになる。
【００９７】
この第２実施例では、図５に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用いてノッキング処理を行なった場合に、未学習の機関の振動の発生により点火時期が過剰に遅角することがないように点火時期が制御される。次に、このことについて、図２７Ａから図２８Ｂを参照しつつ説明する。なお、図２７Ａから図２８Ｂは、図２２と同様に、サイクルｋｎにおいてノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたと判別され、それにより次のサイクルｋｎ＋１において点火時期が遅角された場合におけるノッキング強度を代表する値の推定値ｙe および点火時期の変化を示している。
【００９８】
まず初めに、図２７Ａを参照すると、図２７Ａは、図１又は図５に示される内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用い、ノッキングセンサ１８の出力値に基づいてノッキング処理が行われたときのノッキング強度を代表する値の推定値ｙe および点火時期の変化を示している。図２７Ａに示される例は、サイクルｋｎにおいてノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたと判別され、それにより次のサイクルｋｎ＋１において点火時期がαだけ遅角され、その結果、サイクルｋｎ＋１におけるノッキング強度を代表する値の推定値ｙe がΔｙｅだけ低下して、ｙｅｅになった場合を示している。なお、図２７Ａは、ノッキング強度を代表する値の推定値ｙe がｙｅｅになったときに、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij 以下になった場合を示しており、この場合には、次のサイクルｋｎ＋２ において、点火時期がβ１だけ進角される。
【００９９】
一方、図２７Ｂは、図５に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用い、ノッキングセンサ１８の出力値に基づいてノッキング処理を行うようにした場合の新たなノッキング処理方法を説明するための図である。なお、図２７Ｂは、実線で示されるように、サイクルｋｎにおいて、ノッキングおよび未学習の機関の振動の双方の発生によりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え、サイクルｋｎ＋１以降は、正常信号生成モデル６０が用いられていたとしても、未学習の機関の振動によりノッキング強度を代表する値の推定値ｙe が暫くの間、閾値Ｍij を越え続けている場合を示している。即ち、実際の内燃機関では、未学習の機関の振動は特定の運転状態で発生し、機関の運転状態が変化すると次第に収まるので、図２７Ｂに示されるように、ノッキング強度を代表する値の推定値ｙe は、一時的に閾値Ｍij を越え続けていたとしても、暫くすると次第に低下していく。ところが、図２７Ｂに示されるようにノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え続けている場合、図１４から図２０に示されるルーチンによりノッキング処理が行われると、点火時期が遅角され続け、その結果、点火時期が過剰に遅角されることになる。そこでこの第２実施例では、点火時期が過剰に遅角されるのを阻止するために、点火時期が遅角されたときに、ノッキングの発生によりノッキング強度を代表する値の推定値ｙe  が閾値Ｍij を越えているのか否かを判別し、ノッキングの発生によりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えているのではないと判別されたときには、次のサイクルにおいて点火時期を遅角しないようにしている。
【０１００】
即ち、図２７Ｂに示されるように、図５に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用いてノッキング処理が行われた場合には、ノッキングのみが発生することによりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたのか、未学習の機関の振動のみが発生することによりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたのか、ノッキングおよび未学習の機関の振動の双方が発生することによりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたのかは、わからない。
【０１０１】
しかしながら、図２７Ａに示されるように、ノッキングの発生によりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え、それにより点火時期がαだけ遅角された場合には、次のサイクルにおけるノッキング強度を代表する値の推定値ｙe がΔｙｅだけ低下して、ｙｅｅになることはわかっている。
【０１０２】
従って、図２７Ｂに示されるように、例えば、市販用の内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用いてノッキング処理を行った場合においても、ノッキングの発生のみによりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え、それにより点火時期がαだけ遅角された場合には、破線で示されるように、次のサイクルｋｎ＋１におけるノッキング強度を代表する値の推定値ｙe はΔｙｅだけ低下して、ｙｅｅになると予測される。従って、点火時期がαだけ遅角されたときに、ノッキング強度を代表する値の推定値ｙeがこの予測値ｙeｅ が閾値Ｍij 近くまで低下すれば、ノッキングが発生したと判断できることになる。また、このとき、ノッキング強度を代表する値の推定値ｙe は、ノッキング強度を正しく示していることになる。
【０１０３】
一方、点火時期がαだけ遅角されたときに、図２７Ｂにおいて、実線で示されるように、ノッキング強度を代表する値の推定値ｙeが予測値ｙeｅ 近くまで低下しないときには、サイクルｋｎにおいて、ノッキングの発生のみによるのではなく、未学習の機関の振動の発生により、或いは、ノッキングおよび未学習の機関の振動の双方の発生によりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えていることになる。従って、このときには、ノッキング強度を代表する値の推定値ｙe が、ノッキング強度を正しく示していないことになる。即ち、点火時期がαだけ遅角されたときのノッキング強度を代表する値の推定値ｙｅｅと第１の学習済みニューラルネットワーク２０から出力されるノッキング強度を代表する値の推定値ｙe との差が予め定められた設定値よりも小さいときには、ノッキング強度を代表する値の推定値ｙe は、ノッキング強度を正しく示しており、この差が予め定められた設定値よりも大きいときには、ノッキング強度を代表する値の推定値ｙe は、ノッキング強度を正しく示していないことになる。
【０１０４】
そこでこの第２実施例では、市販用の内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用いてノッキング処理を行う場合には、図２７Ｂに示されるように、サイクルｋｎにおいて、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えたと判断された場合、次のサイクルｋｎ＋１では、点火時期がαだけ遅角されたときのノッキング強度を代表する値の推定値ｙｅｅと第１の学習済みニューラルネットワーク２０から出力されるノッキング強度を代表する値の推定値ｙe との差が予め定められた設定値よりも小さいか、又は、大きいかに応じて、更に次のサイクルｋｎ＋２における点火時期の遅角制御が行われる。
【０１０５】
即ち、この差が予め定められた設定値よりも小さいときには、即ち、ノッキング強度を代表する値の推定値ｙe が、ノッキング強度を正しく示しているときには、ノッキング強度を代表する値の推定値ｙe に基づいて、点火時期の遅角制御が行われる。この場合、ノッキング強度を代表する値の推定値ｙe が、閾値Ｍij よりも大きいときには、点火時期の遅角作用が行われ、ノッキング強度を代表する値の推定値ｙe が、閾値Ｍij よりも小さいときには、点火時期の遅角作用は行われず、このとき、次のサイクルｋｎ＋２ では、点火時期がβ１だけ進角される。一方、この差が予め定められた設定値よりも大きいときには、即ち、ノッキング強度を代表する値の推定値ｙe が、ノッキング強度を正しく示していないときには、点火時期の遅角制御は行われず、様子をみるために、図２７Ｂにおいて実線で示されるように点火時期がそのまま維持される。次いで、ノッキング強度を代表する値の推定値ｙe が値Ｍij よりも低下した後に、点火時期がβ１ずつ進角され始める。
【０１０６】
なお、この第２実施例では、図２７Ｂに示されるように、未学習の機関の振動によりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え続けている場合における点火時期進角量β２は、図２７Ａに示されるように、ノッキングの発生のみによりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えた場合における点火時期進角量β１に比べて小さくされている。即ち、未学習の機関の振動によりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え続けている場合には、点火時期はゆっくりと進角される。
【０１０７】
一方、図２８Ａは、図２７Ａと同様に、図１又は図５に示される内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用い、ノッキングセンサ１８の出力値に基づいてノッキング処理が行われたときのノッキング強度を代表する値の推定値ｙe および点火時期の変化を示しており、図２８Ｂは、図２７Ｂと同様に、図５に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、正常信号生成モデル６０および正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用い、ノッキングセンサ１８の出力値に基づいてノッキング処理が行われたときのノッキング強度を代表する値の推定値ｙe および点火時期の変化を示している。なお、図２８Ａおよび図２８Ｂは、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij 以下となるまで点火時期がαだけ２回にわたり遅角された場合を示しており、点火時期が２回にわたり遅角されることを除けば、図２７Ａおよび図２７Ｂに示される場合と同様である。
【０１０８】
即ち、図２８Ａに示されるように、ノッキングの発生によりノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越え、それにより点火時期がαだけ遅角された場合には、次のサイクルｋｎ＋１におけるノッキング強度を代表する値の推定値ｙe がΔｙｅ１だけ低下して、ｙｅｅ１となる。このとき、まだノッキングの発生が収まっていないために、ノッキング強度を代表する値の推定値ｙe が依然として閾値Ｍij が越えており、それにより点火時期が再度αだけ遅角される。その結果、次のサイクルｋｎ＋２におけるノッキング強度を代表する値の推定値ｙe がΔｙｅ２だけ低下して、ｙｅｅ２となる。
【０１０９】
この第２実施例では、この場合も、図２８Ｂの実線で示されるように、点火時期がαだけ遅角されたときのノッキング強度を代表する値の推定値ｙｅｅ１と第１の学習済みニューラルネットワーク２０から出力されるノッキング強度を代表する値の推定値ｙe との差が予め定められた設定値よりも大きいときには、即ち、ノッキング強度を代表する値の推定値ｙe が、ノッキング強度を正しく示していないときには、点火時期の遅角制御は行われず、様子をみるために、図２８Ｂにおいて実線で示されるように点火時期がそのまま維持される。次いで、ノッキング強度を代表する値の推定値ｙe が値Ｍij よりも低下した後に、点火時期がβ１ずつ進角され始める。
【０１１０】
このように第２実施例では、市販用の内燃機関において、正常信号生成モデル６０および第１の学習済みニューラルネットワーク２０を用いてノッキング処理を行う場合、点火時期が遅角されたときのノッキング強度を代表する値の推定値ｙeの予測値ｙeｅと第１の学習済みニューラルネットワーク２０から出力されるノッキング強度を代表する値の推定値ｙe との差が予め定められた設定値よりも小さいか、又は、大きいかに応じて、次のサイクルにおける点火時期の遅角制御が行われる。
【０１１１】
図２９から図３６は、点火時期が遅角されたときのノッキング強度を代表する値の推定値ｙe の予測低下量Δｙｅを、第２のニューラルネットワークを用いて推定するようにした第１の例を示しており、図３７から図４５は、点火時期が遅角されたときのノッキング強度を代表する値の推定値ｙｅの予測値ｙｅｅを、第２のニューラルネットワークを用いて推定するようにした第２の例を示している。そこで最初に、図２９から図３６を参照しつつ、第１の例について説明する。
【０１１２】
図３０は、第１の例において用いられている第２のニューラルネットワーク５０を示している。図３０を参照すると、この第２のニューラルネットワーク５０においても、図３に示されるニューラルネットワークと同様に、L＝１は入力層、L＝２および L＝３は隠れ層、L＝４は出力層を夫々示している。この第１の例では、図３０に示されるように、入力層 ( L＝１) が５個のノードからなり、５個の入力値ｘｘ１、ｘｘ２、ｘｘ３、ｘｘ４、ｘｘ５が、入力層 ( L＝１) の各ノードに入力される。一方、図３０には隠れ層 ( L＝２)および隠れ層 ( L＝３)が記載されているが、これら隠れ層の層数は、１個又は任意の個数とすることができ、またこれら隠れ層のノードの数も任意の個数とすることができる。なお、出力層 ( L＝４) のノードの数は１個とされており、出力層のノードからの出力値がΔｙｅで示されている。
【０１１３】
次に、図３０における入力値ｘｘ１、ｘｘ２、ｘｘ３、ｘｘ４、ｘｘ５と、出力値Δｙｅについて説明する。最初に出力値Δｙｅについて説明すると、この出力値Δｙｅは、ノッキングのみの発生により点火時期が遅角されたときのノッキング強度を代表する値の推定値ｙe の予測低下量を示している。一方、入力値ｘｘ１、ｘｘ２、ｘｘ３、ｘｘ４、ｘｘ５は、ノッキング強度を代表する値の推定値ｙe の低下量に強い影響を与える入力パラメータを示しており、これら入力パラメータの一覧表が図２９に示されている。図２９に示されるように、入力パラメータは、機関の運転状態を表すパラメータと、点火時期の遅角量α又は進角量β（β１又はβ２）と、一つ前のサイクルにおけるノッキング強度を代表する値の推定値ｙeｏからなる。
【０１１４】
なお、この第１の例では、機関の運転状態を表すパラメータが、機関回転数ＮＥと、機関負荷Ｌと、ＥＧＲ率ＥＲからなる。即ち、第１の例では、機関回転数ＮＥ、機関負荷Ｌ、ＥＧＲ率ＥＲ、点火時期の遅角量α又は進角量β、および一つ前のサイクルにおけるノッキング強度を代表する値の推定値ｙeｏが夫々、入力値ｘｘ１、ｘｘ２、ｘｘ３、ｘｘ４、ｘｘ５とされ、これら入力値ｘｘ１、ｘｘ２、ｘｘ３、ｘｘ４、ｘｘ５が、第２のニューラルネットワーク５０の入力層の各ノードに入力される。
【０１１５】
図３１は、図９に示される訓練データセットを作成する際に用いられた図５に示される機関本体１を用いて、第２のニューラルネットワーク５０用訓練データセットを作成するために取得されたデータの一覧表を示している。これらのデータは、図５に示される機関本体１において、図１４から図２０に示されるルーチンを用いたノッキング処理を行いつつ、機関回転数ＮＥ、機関負荷Ｌ、ＥＧＲ率ＥＲおよび点火時期の遅角量αおよび進角量βの種々の組み合わせについてノッキングの発生しない運転状態とノッキングの発生する運転状態の双方の状態が生ずるように機関を運転させたときの、サイクル毎の機関回転数ＮＥ、機関負荷Ｌ、ＥＧＲ率ＥＲ、ノッキング強度を代表する値の推定値ｙe および点火時期の遅角量αおよび進角量βを示している。これらのデータは、例えば、電子制御ユニット３０のメモリ３２内に一時的に記憶される。
【０１１６】
なお、これらデータを取得する際、本発明による実施例では、点火時期遅角量αは一定に維持されており、点火時期進角量βは、進角量β１又は進角量β２のいずれかとされる。また、図３１に示される一覧表には、点火時期が遅角量αだけ遅角されたときのノッキング強度を代表する値の推定値ｙe の低下量Δｙｅが含まれている。この低下量Δｙｅは、点火時期が遅角量αだけ遅角されたときのノッキング強度を代表する値の推定値ｙe と、一つ前のサイクルにおけるノッキング強度を代表する値の推定値ｙeｏ との差から求められる。例えば、サイクルｋｎ＋１でおいて点火時期が遅角量αだけ遅角されたときには、サイクルｋｎのときのノッキング強度を代表する値の推定値ｙeｎから、サイクルｋｎ＋１のときのノッキング強度を代表する値の推定値ｙe n+1 を減算することによって、低下量Δｙe n+1が求められる。この低下量Δｙｅの算出は、例えば、ＣＰＵ３３において行われる。
【０１１７】
このようにして、点火時期が遅角量αだけ遅角されたときに、図３１に示されるようにノッキング強度を代表する値の推定値ｙe の低下量Δｙｅが算出され、算出された低下量Δｙｅが、遅角量αと共に、例えば、電子制御ユニット３０のメモリ３２内に一時的に記憶される。このノッキング強度を代表する値の推定値ｙe の低下量Δｙｅは、ノッキング強度を代表する値の推定値ｙe の実際の低下量を表しており、従って、このノッキング強度を代表する値の推定値ｙe の低下量Δｙｅは、第２の学習済みニューラルネットワーク５０の重みを学習する際の正解値、即ち、教師データとされる。
【０１１８】
図３２は、第２のニューラルネットワーク５０の重みを学習するための訓練データセットを示している。この訓練データセットは、第１の例では、図３１に示される一覧表から、点火時期が遅角量αだけ遅角されたときのサイクルにおける機関回転数ＮＥ、機関負荷Ｌ、ＥＧＲ率ＥＲ、点火時期の遅角量αに関するデータ、および点火時期が遅角量αだけ遅角されたときのサイクルの一つ前のサイクルにおけるノッキング強度を代表する値の推定値ｙeｏに関するデータを抜き出すことによって作成されており、この訓練データセットは、図３１に示される一覧表から抜き出された入力値ｘｘ１、ｘｘ２、ｘｘ３、ｘｘ４、ｘｘ５と、教師データｙｔとの関係を表すｍ個のデータからなる。なお、この場合、図３１に示される機関回転数ＮＥ、機関負荷Ｌ、ＥＧＲ率ＥＲ、点火時期の遅角量α、および一つ前のサイクルにおけるノッキング強度を代表する値の推定値ｙeｏが夫々、入力値ｘｘ１、ｘｘ２、ｘｘ３、ｘｘ４、ｘｘ５とされ、図３１に示されるノッキング強度を代表する値の推定値ｙe の低下量Δｙｅが、教師データｙｔとされる。
【０１１９】
この第１の例では、図３０に示される第２のニューラルネットワーク５０の入力層 ( L＝１) のノード数、隠れ層 ( L＝２)および隠れ層 ( L＝３)のノード数および出力層 ( L＝４) のノード数、および、図３２に示される訓練データセットが、学習装置２３のメモリ２４に記憶され、学習装置２３において、図１０を参照しつつ既に説明した学習処理方法と同様な学習処理方法により、図１０に示される学習処理ルーチンを用いて、第２のニューラルネットワーク５０の重みの学習が行われる。それにより、第２の学習済みニューラルネットワーク５０、即ち、ノッキング強度を代表する値の推定値ｙe の低下量Δｙｅの推定モデルが作成される。
【０１２０】
この第１の例では、第１の学習済みニューラルネットワーク２０により生成された、ノッキング強度を代表する値の推定モデルと、第２の学習済みニューラルネットワーク５０により生成された、ノッキング強度を代表する値の推定値ｙe の低下量Δｙｅの推定モデルを用いて、市販車両の機関におけるノッキング処理が行われる。そのためにこれらノッキング強度を代表する値の推定モデルおよびノッキング強度を代表する値の推定値ｙe の低下量Δｙｅの推定モデル、即ち、第１の学習済みニューラルネットワーク２０および第２の学習済みニューラルネットワーク５０が、市販車両の電子制御ユニット３０内に格納され、更に、正常信号生成モデル６０が市販車両の電子制御ユニット３０内に格納される。これらモデルの市販車両の電子制御ユニット３０への格納作用は、図１３を参照しつつ既に説明した方法と同様な方法でもって、図１３に示される電子制御ユニットへのデータ読み込みルーチンを用いて行われる。
【０１２１】
このように第１の学習済みニューラルネットワーク２０、第２の学習済みニューラルネットワーク５０および正常信号生成モデル６０が、市販車両の電子制御ユニット３０に格納されると、電子制御ユニット３０のメモリ３２内には、第１の学習済みニューラルネットワーク２０、第２の学習済みニューラルネットワーク５０および正常信号生成モデル６０が形成される。図３３は、市販車両の電子制御ユニット３０のメモリ３２内に形成された第１の学習済みニューラルネットワーク２０、第２の学習済みニューラルネットワーク５０および正常信号生成モデル６０を用いて、市販車両の機関運転時に実行されるノッキング処理を示している。このノッキング処理は、気筒毎に、個別に、一サイクル毎に実行される。この第１の例では、このノッキング処理は、例えば、クランク角が圧縮上死点に達したときに開始される。
【０１２２】
図３３を参照すると、まず初めにステップ２２０において、圧力センサ１９の出力値から求められるノッキング強度を代表する値、即ち、ノッキング強度代表値の推定処理が行われる。次いで、ステップ２２１では、ノッキングが生じているか否かのノッキング判定処理が行われ、次いで、ステップ２２２では、点火制御が行われる。ステップ２２０において行われるノッキング強度代表値の推定処理は、図１５又は図１６のいずれか一方に示されるノッキング強度代表値の推定ルーチンにより行われる。これらのノッキング強度代表値の推定ルーチンについては既に説明したので、これらノッキング強度代表値の推定ルーチンについては説明を省略する。なお、これらのノッキング強度代表値の推定ルーチンが実行されると、第１の学習済みニューラルネットワーク２０からはノッキング強度を代表する値の推定値ｙe が出力される。
【０１２３】
図３４および図３５は、図３３のステップ２２０において第１の学習済みニューラルネットワーク２０からノッキング強度を代表する値の推定値ｙe が出力されたときに、この第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe に基づき、図３３のステップ２２１で行われるノッキング判定ルーチンを示している。図３４を参照すると、まず初めに、ステップ２３０において、ノッキング強度を代表する値に対する閾値Ｍij が読み込まれる。この閾値Ｍij は、前述したように、図１８に示される如く、機関負荷Ｌと機関回転数Ｎに応じて複数個に分割された各機関運転領域に対して予め設定されている。
【０１２４】
次いで、ステップ２３１では、ノッキングが発生したか否かの判定を中止すべきときにセットされる判定中止フラグがセットされているか否かが判別される。この判定中止フラグは、通常、リセットされており、従って、ステップ２３２に進む。ステップ２３２では、ノッキングが発生したと判別されたときにセットされるノッキング発生フラグがセットされているか否かが判別される。このノッキング発生フラグは、通常、リセットされており、従って、ステップ２３７にジャンプする。ステップ２３７では、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいか否かが判別される。ノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きくないと判別されたときにはステップ２３９に進んで、ノッキング発生フラグがリセットされる。次いで、処理サイクルを終了する。
【０１２５】
一方、ステップ２３７において、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいと判別されたときにはステップ２３８に進んで、ノッキング発生フラグがセットされる。ノッキング発生フラグがセットされると、後述するように、次のサイクルにおける点火時期がαだけ遅角される。また、ノッキング発生フラグがセットされると、次のサイクルでは、ステップ２３２からステップ２３３に進む。ステップ２３３では、機関回転数ＮＥ、機関負荷Ｌ、ＥＧＲ率ＥＲ、点火時期の遅角量α、および一つ前のサイクルにおいて第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙeｏ が第２の学習済みニューラルネットワーク５０の入力層の各ノードに入力され、それにより第２の学習済みニューラルネットワーク５０からは、点火時期が遅角されたときのノッキング強度を代表する値の推定値ｙe の予測低下量Δｙｅが出力される。
【０１２６】
次いで、ステップ２３４では、一つ前のサイクルにおいて第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙeｏから、ノッキング強度を代表する値の推定値ｙe の予測低下量Δｙｅを減算することによって、ノッキング強度を代表する値の推定値ｙe の予測値ｙｅe が算出される。次いで、ステップ２３５では、未学習の機関の振動が発生しているか否かを判別するために、ノッキング強度を代表する値の推定値ｙe の予測値ｙｅeと第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe との差（ｙｅe ―ｙｅ）の絶対値が設定値Ｓよりも大きいか否かが判別される。
【０１２７】
即ち、ノッキングのみが発生しているときには、ノッキング強度を代表する値の推定値ｙe の予測値ｙｅeと第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe とは、ほぼ等しくなる筈である。従って、ノッキングのみが発生しているときには、差（ｙｅe ―ｙｅ）の絶対値が設定値Ｓよりも小さくなる。従って、このときには、ステップ２３６に進んで、未学習の機関の振動、即ち、ノイズが発生していることを示すノイズフラグがリセットされる。ノイズフラグがリセットされると、後述するように、点火時期の進角量がβ１とされる。次いで、ステップ２３８に進む。
【０１２８】
一方、このときには、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe は、ノッキング強度を正しく示している。従って、このときには、ステップ２３７に進んで、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいか否かが判別される。ノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいと判別されたときには、ステップ２３８に進んで、ノッキング発生フラグがセットされる。このときには、次のサイクルにおける点火時期がαだけ遅角される。
【０１２９】
一方、ノッキングおよび未学習の機関の振動が発生しているとき、或いは、未学習の機関の振動のみが発生しているときには、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe は、ノッキング強度を代表する値の推定値ｙe の予測値ｙｅeに比べて大きい筈である。従って、このときには、差（ｙｅe ―ｙｅ）の絶対値が設定値Ｓよりも大きくなる。このときには、ステップ２３５からステップ２４０に進んで、未学習の機関の振動、即ち、ノイズが発生していることを示すノイズフラグがセットされる。ノイズフラグがセットされると、後述するように、点火時期の進角量がβ２とされる。次いで、ステップ２４１に進む。
【０１３０】
ステップ２４１では、ノッキング発生フラグがリセットされる。一方、このときには、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe は、ノッキング強度を正しく示していない。従って、このときには、点火時期の進角作用および遅角作用を一次的に中止するために、ステップ２４２において、判定中止フラグがセットされる。次いで、処理サイクルを終了する。
【０１３１】
判定中止フラグがセットされると、次のサイクルでは、ステップ２３１からステップ２４３に進む。ステップ２４３およびステップ２４４では、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij を越えた後、未学習の機関の振動の発生により、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きい状態が続いている場合に、点火時期の進角作用および遅角作用をに中止し続けると共に、ノッキングが発生したか否かの判定を中止し続ける処理が行われる。
【０１３２】
即ち、ステップ２４３では、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいか否かが判別される。ノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいと判別されたときには、処理サイクルを終了する。これに対し、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも小さくなったと判別されたときには、ステップ２４４に進んで、よりも大きいと判別されたときには、処理サイクルを終了する。判定中止フラグをリセットさせる処理が行われる。次いで、ステップ２３２に進んで、ノッキング判定処理が再開される。
【０１３３】
図３６は、図３４および図３５に示されるノッキング判定ルーチンにおける判定結果に基づき電子制御ユニット３０内で実行される点火制御ルーチンを示している。図３６を参照すると、まず初めに、ステップ２５０において、ノッキング判定ルーチンにおいて用いられている判定中止フラグがセットされているか否かが判別される。判定中止フラグがセットされていると判別されたときには処理サイクルを終了する。これに対し、判定中止フラグがセットされていないと判別されたときには、ステップ２５１に進んで、基準点火時期ＩＧ（ＢＴＤＣ）が算出される。この基準点火時期ＩＧは、前述したように、機関負荷Ｌと機関回転数Ｎの関数として、図２０に示されるようなマップの形で予めメモリ３２内に記憶されている。次いで、ステップ２５２では、図３４および図３５に示されるノッキング判定ルーチンにおいて、ノッキング発生フラグがセットされているか否かが判別される。ノッキング発生フラグがセットされていると判別されたときにはステップ２６０に進む。
【０１３４】
ステップ２６０では、点火時期を遅角させるために点火時期遅角量ΔＩＧに一定量αが加算される。次いで、ステップ２５９では、基準点火時期ＩＧから点火時期遅角量ΔＩＧを減算することによって、次のサイクルにおける最終的な点火時期ＩＧＯが算出される。次のサイクルでは、この最終的な点火時期ＩＧＯに、点火栓１１による点火作用が行われる。このとき点火時期は一定量αだけ遅角される。一方、ステップ２５２において、ノッキング発生フラグがリセットされていると判別されたときにはステップ２５３に進み、図３４および図３５に示されるノッキング判定ルーチンにおいて、ノイズフラグがセットされているか否かが判別される。
【０１３５】
ノイズフラグがセットされていないと判別されたときにはステップ２５４に進んで、進角量β１がβとされ、次いでステップ２５６に進む。一方、ノイズフラグがセットされていると判別されたときにはステップ２５５に進んで、進角量β２がβとされ、次いでステップ２５６に進む。ステップ２５６では、点火時期を進角させるために点火時期遅角量ΔＩＧからβが減算される。次いで、ステップ２５７では、点火時期遅角量ΔＩＧか負になったか否かが判別され、点火時期遅角量ΔＩＧか負になっていないときにはステップ２５９に進んで、次のサイクルにおける最終的な点火時期ＩＧＯが算出される。このときには、点火時期はβだけ進角される。一方、ステップ２５７において、点火時期遅角量ΔＩＧか負になったと判別されたときにはステップ２５８に進んで点火時期遅角量ΔＩＧが零とされた後、ステップ２５９に進む。このときには、点火時期が基準点火時期ＩＧとされる。
【０１３６】
次に、図３７から図４５を参照しつつ、点火時期が遅角されたときのノッキング強度を代表する値の推定値ｙｅの予測値ｙｅｅを、第２のニューラルネットワークを用いて推定するようにした第２の例について説明する。この第２の例では、第２のニューラルネットワークとして、リカレントニューラルネットワークが用いられている。図３７は、第２の実施例で用いられているリカレントニューラルネットワーク（ＲＮＮ）を展開して表した図を示しており、図３８は、リカレントニューラルネットワークを示している。このリカレントニューラルネットワークは周知であり、従って、以下、簡単にリカレントニューラルネットワークについて説明する。
【０１３７】
図３７において、ｘ１ｔ−１、ｘ２ｔ−１、ｘ１ｔ、ｘ２ｔ、ｘ１ｔ＋１、ｘ２ｔ＋１、ｘ１ｔ＋２、ｘ２ｔ＋２ は、夫々時刻ｔ−１、ｔ、ｔ＋１、ｔ＋２におけるリカレントニューラルネットワークの入力層への時系列入力値を示しており、ｙｔ、ｙｔ＋１、ｙｔ＋２、ｙｔ＋３ は、夫々時刻ｔ−１、ｔ、ｔ＋１、ｔ＋２におけるリカレントニューラルネットワークの出力層からの出力値を示している。また、ｈｔ−１、ｈｔ、ｈｔ＋１、ｈｔ＋２ （ｈはベクトル）は、夫々時刻ｔ−１、ｔ、ｔ＋１、ｔ＋２におけるリカレントニューラルネットワークの隠れ層からの出力値を表しており、これら、ｈｔ−１、ｈｔ、ｈｔ＋１、ｈｔ＋２ は、隠れ状態ベクトルと称される。
【０１３８】
一方、図３８を参照すると、このリカレントニューラルネットワークにおいて、L＝１は入力層、L＝２は隠れ層、L＝３は出力層を夫々示している。図３８において鎖線枠内のノードは実際には存在せず、説明のために記載したノードであり、従って、図３８に示される例では、入力層 ( L＝１) が２個のノードからなる。また、図３８に示される例では、隠れ層 ( L＝２) がｍ個のノードからなる（図３８には３個のみが記載されている）。一方、図３８には一つの隠れ層 ( L＝２)しか記載されていないが、この隠れ層の層数は、任意の個数とすることができる。なお、出力層 ( L＝３) のノードの数は１個とされている。
【０１３９】
図３８は、図３７の時刻ｔにおける入力値ｘ１ｔ、ｘ２ｔと、出力値ｙｔ＋１とを示している。また、図３８において、ｈ１ｔ、ｈ２ｔ・・・ｈｍｔ は、図３７の時刻ｔにおける隠れ層の各ノードからの出力値、即ち、隠れ状態ベクトルを示している。リカレントニューラルネットワークでは、図３８に示されるように、一つ前の時刻ｔ−１における隠れ層の各ノードからの出力値、即ち、隠れ状態ベクトルｈ１ｔ−１、ｈ２ｔ−１・・・ｈｍｔ−１ が、夫々対応する重みｗを掛けて、隠れ層の各ノードに入力される。従って、隠れ層の各ノードには、各入力値ｘ１ｔ、ｘ２ｔに夫々対応する重みｗを掛けた値と、一つ前の時刻ｔ−１における各隠れ状態ベクトルｈ１ｔ−１、ｈ２ｔ−１・・・ｈｋｔ−１に夫々対応する重みｗを掛けた値が入力され、図３８の隠れ層 ( L＝２) の各ノード（ｋ＝１，２・・・m）において算出される総入力値ｕｋは、次式のようになる。
【数１０】
0006733795.tif 000011
【０１４０】
隠れ層の各ノードにおいて算出された総入力値ｕｋは、活性化関数により変換されて、隠れ層の各ノードから隠れ状態ベクトルｈｋｔ （ｋ＝１，２・・・m）として出力される。この場合、活性化関数として、例えば、tanh 関数(双曲線正接関数)が用いられた場合には、隠れ層の各ノードから出力される隠れ状態ベクトルｈｋｔ は,ｈｋｔ ＝tanh (ｕk) となる。これらの隠れ状態ベクトルｈｋｔ は, 出力層 ( L＝３) のノード に入力され、出力層 のノードでは、夫々対応する重みｗを用いて、次式で示される総入力値ｕが算出される。
【数１１】
0006733795.tif 000012
本発明による実施例では、出力層のノードでは、活性化関数として恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力される。
【０１４１】
次に、図３７に示される入力値ｘ１ｔ−１、ｘ２ｔ−１、ｘ１ｔ、ｘ２ｔ、ｘ１ｔ＋１、ｘ２ｔ＋１、ｘ１ｔ＋２、ｘ２ｔ＋２ および出力値ｙｔ、ｙｔ＋１、ｙｔ＋２、ｙｔ＋３ について説明する。図３７において時刻ｔ−１、ｔ、ｔ＋１、ｔ＋２は、同一気筒の連続する各サイクルに対応しており、本発明による実施例では、時刻ｔ−１、ｔ、ｔ＋１、ｔ＋２において、即ち、同一気筒の連続する各サイクルにおいて第１の学習済みニューラルネットワーク２０から順次出力されたノッキング強度を代表する値の推定値ｙeが夫々、入力値ｘ１ｔ−１、ｘ１ｔ、ｘ１ｔ＋１、ｘ１ｔ＋２ とされる。また、時刻ｔ−１、ｔ、ｔ＋１、ｔ＋２における、即ち、同一気筒の連続する各サイクルにおける点火時期の遅角量α又は進角量βが夫々、入力値ｘ２ｔ−１、ｘ２ｔ、ｘ２ｔ＋１ｘ２ｔ＋２ とされる。
【０１４２】
また、この場合、入力値として、ＥＧＲ率ＥＲを追加することもできる。一方、出力値ｙｔ、ｙｔ＋１、ｙｔ＋２、ｙｔ＋３ は夫々、時刻ｔ、ｔ＋１、ｔ＋２、ｔ＋３における、即ち、次のサイクルにおけるノッキング強度を代表する値の推定値ｙe の予測値ｙｅｅである。図３９には、代表的な例として、時刻ｔにおける入力値および出力値の一覧表が示されている。
【０１４３】
図４０は、図３７に示されるリカレントニューラルネットワークの重みを学習するための訓練データセットを示している。この訓練データセットは、第２の例では、図３１に示される一覧表から、全サイクルに亘る一部のデータ、即ち、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe と点火時期の遅角量α又は進角量βのみを抜き出すことによって作成される。この場合、この訓練データセットでは、次のサイクルにおける第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe が、ノッキング強度を代表する値の推定値ｙe の予測値ｙｅｅとされ、このノッキング強度を代表する値の推定値ｙe の予測値ｙｅｅが、教師データｙｔとされる。
【０１４４】
例えば、図４０において、サイクルがサイクルｋｎのときには、サイクルｋｎのときに第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙeｎ と, サイクルｋｎのときの点火時期の遅角量αが、サイクルｋｎのときの入力値ｘ１ｔ、ｘ２ｔとされ、サイクルｋｎ＋１のときに第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙeｎ＋１ が、サイクルｋｎのときの教師データｙｔとされる。
【０１４５】
この第２の例でも、図３８に示されるリカレントニューラルネットワークの入力層 ( L＝１) のノード数、隠れ層 ( L＝２) のノード数および出力層 ( L＝3) のノード数、および、図４０に示される訓練データセットが、図５に示される学習装置２３のメモリ２４に記憶され、学習装置２３において、リカレントニューラルネットワークの重みの学習が行われる。このリカレントニューラルネットワークの重みの学習は、通常、展開表示されたリカレントニューラルネットワークの一部を切り取って誤差逆伝播を行なわせるTrancated BBPT(Backpropagation Through Time) 手法を用いて行われる。
【０１４６】
例えば、図３７が、切り取られたリカレントニューラルネットワークの一部であるとしると、図３７において、時刻ｔ−１、ｔ、ｔ＋１、ｔ＋２における入力値ｘ１ｔ−１、ｘ２ｔ−１、ｘ１ｔ、ｘ２ｔ、ｘ１ｔ＋１、ｘ２ｔ＋１、ｘ１ｔ＋２、ｘ２ｔ＋２ を、リカレントニューラルネットワークに順次入力させ、時刻ｔ＋２においてリカレントニューラルネットワークから出力される出力値ｙｔ＋３ と、対応する教師データｙｔとの二乗誤差Ｅ（＝1/2 (ｙｔ＋３ -ｙｔ)2）が小さくなるように、誤差逆伝播法により、リカレントニューラルネットワークの重みの学習が行われる。このときの誤差逆伝播は時間を遡るように行われるが、詳細については説明を省略する。
【０１４７】
この第２の例では、図４０において、例えば、連続する１０サイクルのデータに対し、誤差逆伝播法により、リカレントニューラルネットワークの重みの学習が行われ、連続する１０サイクルのデータに対するリカレントニューラルネットワークの重みの学習が完了すると、次の連続する１０サイクルのデータに対し、リカレントニューラルネットワークの重みの学習が行われる。このようにして全ての連続する１０サイクルのデータに対し、重みの学習が完了するまで、リカレントニューラルネットワークの重みの学習が行われる。
【０１４８】
図４１は、重みの学習が完了した学習済みリカレントニューラルネットワークを示している。図４１において、時刻ｔを現在の時刻とした場合、この学習済みリカレントニューラルネットワークでは、過去の時刻ｔ−３、ｔ−２、ｔ−１における入力値ｘ１ｔ−３、ｘ２ｔ−３、ｘ１ｔ−２、ｘ２ｔ−２、ｘ１ｔ―１、ｘ２ｔ―１ と、現在の時刻ｔにおける入力値ｘ１ｔ、ｘ２ｔを、リカレントニューラルネットワークに順次入力すると、リカレントニューラルネットワークからは、現在の時刻ｔにおける。ノッキング強度を代表する値の推定値ｙｅの予測値ｙｅｅが出力される。即ち、この第２の例では、学習済みリカレントニューラルネットワークを用いて、点火時期が遅角されたときのノッキング強度を代表する値の推定値ｙｅの予測値ｙｅｅの推定モデルが生成される。
【０１４９】
本発明による第２の例では、第１の学習済みニューラルネットワーク２０により生成されたノッキング強度を代表する値の推定モデルと、学習済みのリカレントニューラルネットワークにより生成されたノッキング強度を代表する値の推定値ｙｅの予測値ｙｅｅの推定モデルおよび正常信号生成モデル６０を用いて、市販車両の機関におけるノッキング処理が行われる。そのためにこれらノッキング強度を代表する値の推定モデルおよびノッキング強度を代表する値の推定値ｙe の予測値ｙｅｅの推定モデル、即ち、第１の学習済みニューラルネットワーク２０、学習済みのリカレントニューラルネットワークおよび正常信号生成モデル６０が、市販車両の電子制御ユニット３０内に格納される。これら推定モデルの市販車両の電子制御ユニット３０への格納作用は、図１３を参照しつつ既に説明したやり方と同様な方法でもって、図１３に示される電子制御ユニットへのデータ読み込みルーチンを用いて行われる。
【０１５０】
このように第１の学習済みニューラルネットワーク２０、学習済みのリカレントニューラルネットワークおよび正常信号生成モデル６０が、市販車両の電子制御ユニット３０に格納されると、電子制御ユニット３０のメモリ３２内には、第１の学習済みニューラルネットワーク２０、学習済みのリカレントニューラルネットワークおよび正常信号生成モデル６０が形成される。図４２は、市販車両の電子制御ユニット３０のメモリ３２内に形成された第１の学習済みニューラルネットワーク２０、学習済みのリカレントニューラルネットワークおよび正常信号生成モデル６０を用いて、市販車両の機関運転時に実行されるノッキング処理を示している。このノッキング処理は、気筒毎に、個別に、一サイクル毎に実行される。この第２の例でも、このノッキング処理は、例えば、クランク角が圧縮上死点に達したときに開始される。
【０１５１】
図４２に示されるノッキング処理は、図３３に示されるノッキング処理と同様である。即ち、図４２を参照すると、まず初めにステップ２２０において、圧力センサ１９の出力値から求められるノッキング強度を代表する値、即ち、ノッキング強度代表値の推定処理が行われる。次いで、ステップ２２１では、ノッキングが生じているか否かのノッキング判定処理が行われ、次いで、ステップ２２２では、点火制御が行われる。ステップ２２０において行われるノッキング強度代表値の推定処理は、図１５又は図１６のいずれか一方に示されるノッキング強度代表値の推定ルーチンにより行われる。これらのノッキング強度代表値の推定ルーチンについては既に説明したので、これらノッキング強度代表値の推定ルーチンについては説明を省略する。なお、これらのノッキング強度代表値の推定ルーチンが実行されると、第１の学習済みニューラルネットワーク２０からはノッキング強度を代表する値の推定値ｙe が出力される。
【０１５２】
図４３および図４４は、図４２のステップ２２０において第１の学習済みニューラルネットワーク２０からノッキング強度を代表する値の推定値ｙe が出力されたときに、この第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe に基づき、図４２のステップ２２１で行われるノッキング判定ルーチンを示している。図４３および図４４に示されるノッキング判定ルーチンのステップ２３０から２３２およびステップ２３５から２４４は、図３４および図３５に示されるノッキング判定ルーチンのステップ２３０から２３２およびステップ２３５から２４４と同一であり、図４３および図４４に示されるノッキング判定ルーチンにおいて図３４および図３５に示されるノッキング判定ルーチンと異なるところは、図４３および図４４に示されるノッキング判定ルーチンでは、ステップ２３０の前にステップ２３０ａが追加されており、図３４および図３５に示されるノッキング判定ルーチンのステップ２３３および２３４に代えて、ステップ２３３ａが設けられたことだけである。従って、図４３および図４４については、ステップ２３０ａおよびステップ２３３ａのみについて説明し、その他のステップについての説明は省略する。
【０１５３】
図４３および図４４を参照すると、ステップ２３０ａでは、第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe が、同一気筒に対し、予め定められた回数の点火が行われるまで、例えば、５回点火が行われるまで記憶される。一方、ステップ２３３ａでは、予め定められた回数前の点火が行われたサイクルから、例えば、５回前に点火が行われたサイクルから現在のサイクルに至るまでの各サイクルにおいて第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe 、およびこれら各サイクルにおける点火時期の遅角量α或いは進角量βが、順次、リカレントニューラルネットワークの入力層の各ノードに入力され、それによりリカレントニューラルネットワークからは、現在のサイクルにおけるノッキング強度を代表する値の推定値ｙeの予測値ｙｅｅが出力される。
【０１５４】
この第２の例でも、ステップ２３５では、未学習の機関の振動が発生しているか否かを判別するために、ノッキング強度を代表する値の推定値ｙe の予測値ｙｅeと第１の学習済みニューラルネットワーク２０から出力されたノッキング強度を代表する値の推定値ｙe との差（ｙｅe ―ｙｅ）の絶対値が設定値Ｓよりも大きいか否かが判別され、差（ｙｅe ―ｙｅ）の絶対値が設定値Ｓよりも小さいと判別されたときには、ステップ２３６に進んで、ノイズフラグがリセットされる。次いで、ステップ２３９に進んで、ノッキング強度を代表する値の推定値ｙe が閾値Ｍij よりも大きいか否かが判別される。一方、差（ｙｅe ―ｙｅ）の絶対値が設定値Ｓよりも大きいと判別されたときには、ステップ２３５からステップ２４０に進んで、ノイズフラグがセットされる。次いで、ステップ２４１において、ノッキング発生フラグがリセットされ、次いで、ステップ２４２において、判定中止フラグがセットされる。
【０１５５】
図４５は、図４３および図４４に示されるノッキング判定ルーチンにおける判定結果に基づき電子制御ユニット３０内で実行される点火制御ルーチンを示している。図４５に示される点火制御ルーチンのステップ２５０から２５９は、図３６に示される点火制御ルーチンのステップ２５０から２５９と同一であり、図４５に示される点火制御ルーチンにおいて図３６に示される点火制御ルーチンと異なるところは、図４５に示されるノッキング判定ルーチンでは、ステップ２５９の後にステップ２５９ａが追加されていることだけである。従って、図４５については、ステップ２５９ａのみについて説明し、その他のステップについての説明は省略する。
【０１５６】
図４５を参照すると、ステップ２５９ａでは、点火時期の遅角量α或いは進角量βが、同一気筒に対し、予め定められた回数の点火が行われるまで、例えば、５回点火が行われるまで記憶される。この第２実施例でも、ノッキング発生フラグがセットされたときには、点火時期は一定量αだけ遅角され、ノッキング発生フラグがリセットされたときには、点火時期は一定量β１又はβ２αだけ進角される。
【０１５７】
このように、この第２実施例によれば、点火時期が遅角されたときのノッキング強度を代表する値の推定値の予測値又は予測低下量を推定する第２の学習済みニューラルネットワークが記憶装置３２内に記憶されている。第１の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の推定値が予め定められた閾値を越えると次のサイクルにおける点火時期が遅角され、点火時期が遅角されたこの次のサイクルでは、第２の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の推定値の予測値と第１の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の推定値との差に基づいて更に次のサイクルにおける点火時期の遅角制御が行われる。この遅角制御では、この差が予め定められた設定値よりも小さいときには、ノッキング強度を代表する値の推定値が予め設定された閾値よりも大きければ、更に次のサイクルにおける点火時期の遅角作用が行われ、この差が予め定められた設定値よりも大きいときには、たとえノッキング強度を代表する値の推定値が予め設定された閾値よりも大きかったとしても、更に次のサイクルにおける点火時期の遅角作用が行われない。
【０１５８】
また、この第２実施例では、第２の学習済みニューラルネットワークは、機関の運転状態、点火時期の遅角量、および一つ前のサイクルにおけるノッキング強度を代表する値の推定値を入力すると、点火時期が遅角されときのノッキング強度を代表する値の推定値の予測低下量を出力する。この予測低下量から点火時期が遅角されときのノッキング強度を代表する値の推定値の予測値が求められる。この場合、機関の運転状態は、機関回転数、機関負荷およびＥＧＲ率からなる。
【０１５９】
また、この第２実施例では、第２の学習済みニューラルネットワークは、予め定められた回数前の点火が行われたサイクルから現在のサイクルに至るまでの各サイクルにおけるノッキング強度を代表する値の推定値および点火時期の遅角量又は進角量を入力すると、現在のサイクルにおけるノッキング強度を代表する値の推定値の予測値を出力するリカレントニューラルネットワークからなる。なお、この第２実施例では、リカレントニューラルネットワークに代えて、ゲート付きリカレントニューラルネットワーク、例えば、ＬＳＴＭ（Long short-term memory ）を用いることもできる。
【０１６０】
また、この第２実施例では、点火時期の遅角作用が行われた後、ノッキング強度を代表する値の推定値が予め定められた閾値以下となったときには、点火時期の進角作用が開始され、点火時期の遅角作用が行われたときのノッキング強度を代表する推定値とノッキング強度を代表する推定値の予測値との差が設定値よりも大きかったときにはこの差が設定値以下だったときに比べて点火時期の進角量が小さくされる。
【０１６１】
次に、図４６および図４７を参照しつつ、圧縮上死点後、一定時間の間に取り込まれたノッキングセンサ１８の出力値および圧力センサ１９の出力値に基づいて、第１のニューラルネットワーク２０の重みの学習を行うと共に、圧縮上死点後、一定時間の間に取り込まれたノッキングセンサ１８の出力値に基づいてノッキングの発生を検出するようにした実施例について説明する。機関の作動の一サイクルのうちで、ノッキングセンサ１８および圧力センサ１９の双方の出力値、或いは、ノッキングセンサ１８の出力値が取り込まれるクランク角範囲はゲート区間と称され、図４６には、この実施例におけるゲート区間（縦軸）と、機関回転数（横軸）との関係が実線で示されている。なお、横軸におけるＮ１，Ｎ２，Ｎ３は代表的な機関回転数を示している。
【０１６２】
一方、図４７には、各機関回転数Ｎ１，Ｎ２，Ｎ３に対するゲート区間Ｇが示されている。また、図４７には、等間隔で分割された各分割区間内におけるノッキングセンサ１８の出力値の積分値（負側の積分値も正の値とする）を算出するようにした場合における各分割区間Ｓが示されている。図４６および図４７から、この実施例では、機関回転数が高くなるほど、ゲート区間Ｇが長くなることがわかる。なお、図４６および図４７に示される例では、ノッキングセンサ１８の出力値および圧力センサ１９の出力値が取り込まれる期間が予め設定されており、この予め設定されている期間が、一定時間とされている。しかしながら、この予め設定されている期間は、必ずしも一定時間とする必要はなく、機関回転数が増大するにつれてゲート区間も増大するようにゲート区間を設定することもできる。
【０１６３】
一方、これまで述べた実施例では、機関の全運転領域に対し、一つの第１の学習済みニューラルネットワークを用いて、ノッキング強度を代表する値を推定するようにしている。しかしながら、このように機関の全運転領域に対して一つの第１の学習済みニューラルネットワークしか用いないとノッキング強度を代表する値の推定精度が低下する危険性がある。このような危険性を回避するためには、機関の運転領域を複数個の運転領域に分割し、分割された運転領域毎に夫々別個のニューラルネットワークを用いることが好ましい。図４８Ａから図４８Ｃは、このように分割された運転領域毎に夫々別個の第１のニューラルネットワークを用いるようにした実施例を示している。
【０１６４】
即ち、この実施例では、図４８Ａから図４８Ｃに示されるように、機関の運転領域が、機関負荷Ｌおよび機関回転数Ｎに応じて、複数個の運転領域に分割されており、図４８Ａに示されるように、分割された運転領域毎に夫々別個の第１のニューラルネットワークＮＮij が形成されると共に、分割された運転領域毎に夫々別個の正常信号生成モデル６０が形成されている。この場合には、図４８Ｂに示されるように、分割された運転領域毎に夫々、図９に示されるような訓練データセットＤＳij が作成される。分割された運転領域毎に夫々形成された第１のニューラルネットワークＮＮij の重みの学習は、対応する訓練データセットＤＳij を用い、図１０に示される学習処理ルーチンを用いて行われる。同様に、分割された運転領域毎に夫々形成された正常信号生成モデル６０の重みの学習も、対応する訓練データセットを用い、図１０に示される学習処理ルーチンを用いて行われる。一方、この実施例では、図４８Ｃに示されるように、分割された運転領域毎に、ノッキング強度代表値に対する閾値Ｍij が設定されている。この実施例では、分割された運転領域毎に、対応する正常信号生成モデル６０および第１の学習済みニューラルネットワークＮＮij を用い、図１５又は図１６に示されるノッキング強度代表値の推定ルーチンを用いて、ノッキング強度代表値の推定値ｙe が算出される。
【０１６５】
一方、この実施例では、第２のニューラルネットワークも、図４８Ａに示される分割された運転領域毎に夫々形成することができる。この場合には、第２のニューラルネットワークに対する訓練データセットも、分割された運転領域毎に夫々作成され、分割された運転領域毎に夫々形成された第２のニューラルネットワークの重みの学習は、対応する訓練データセットを用いて行われる。また、この場合には、或る運転領域の第１の学習済みニューラルネットワークＮＮij により、ノッキング強度代表値の推定値ｙe が算出されると、同じ運転領域に対して作成されている第２の学習済みニューラルネットワークを用い、図４８Ｃに示される対応する閾値Ｍij を用いて、ノッキングが発生したか否かが判別される。
【０１６６】
このようにこの実施例では、機関の運転領域が複数個の運転領域に分割されると共に、分割された各運転領域に対して夫々正常信号生成モデル６０および第１の学習済みニューラルネットワークが記憶装置内に記憶されている。また、第２のニューラルネットワークを用いる場合には、第２のニューラルネットワークも記憶装置内に記憶される。この実施例では、分割された運転領域毎に、第２の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の推定値の予測値と第１の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の推定値との差に基づいて次のサイクルにおける点火時期の遅角制御が行われる。
【０１６７】
図４９から図５１に、更に別の実施例を示す。この実施例では、図４９に示されるように、機関本体１にノッキングセンサ１８ａおよびノッキングセンサ１８ｂが取付けられており、これらノッキングセンサ１８ａおよびノッキングセンサ１８ｂは、ノッキングセンサ１８ａの出力値の波形およびノッキングセンサ１８ｂの出力値の波形を検出可能な検出器２１、例えば、オシロスコープに接続されている。図４９において、左から順に１番気筒＃１、２番気筒＃２、３番気筒＃３、４番気筒＃４と称すると、ノッキングセンサ１８ａは１番気筒＃１および２番気筒＃２から等距離の位置に配置されており、ノッキングセンサ１８ｂは３番気筒＃３および４番気筒＃４から等距離の位置に配置されている。図４９に示されるその他の構成は、図５に示される構成と同じであり、従って、この図４９に示されるその他の構成については、説明を省略する。なお、この実施例では、各ノッキングセンサ１８ａ、１８ｂの出力値が共通の正常信号生成モデル６０に入力される。
【０１６８】
図５０は、この実施例において用いられる第１のニューラルネットワーク５５を示している。図５０を参照すると、この第１のニューラルネットワーク５５においても、図３および図８に示されるニューラルネットワークと同様に、L＝１は入力層、L＝２および L＝３は隠れ層、L＝４は出力層を夫々示している。この実施例では、図５０からわかるように、入力層 ( L＝１) が２ｎ個のノードからなる。一方、図５０には隠れ層 ( L＝２)および隠れ層 ( L＝３)が記載されているが、これら隠れ層の層数は、１個又は任意の個数とすることができ、またこれら隠れ層のノードの数も任意の個数とすることができる。なお、出力層 ( L＝４) のノードの数は１個とされており、出力層のノードからの出力値がｙで示されている。
【０１６９】
図５０において、ｘ１、ｘ２・・・ｘｎ−１、ｘｎは、フィルタリング後のノッキングセンサ１８ａから正常信号生成モデル６０を介して第１のニューラルネットワーク５５に入力される入力値を示しており、ｘｘ１、ｘｘ２・・・ｘｘｎ−１、ｘｘｎはフィルタリング後のノッキングセンサ１８ｂから正常信号生成モデル６０を介して第１のニューラルネットワーク５５に入力される入力値を示している。なお、この実施例でも、入力値ｘ１、ｘ２・・・ｘｘｎ−１、ｘｘｎとして、図６Ｂに示される値か、或いは、図６Ｃに示される値が用いられる。即ち、図６Ｂに示されるように、フィルタリングされた後のノッキングセンサ１８ａおよびノッキングセンサ１８ｂの出力値そのものが入力値ｘ１、ｘ２・・・ｘｘｎ−１、ｘｘｎとされるか、或いは、図６Ｃに示されるように、フィルタリングされた後のノッキングセンサ１８ａおよびノッキングセンサ１８ｂの出力値の積分値（負側の積分値も正の値とする）であって例えば一定クランク角度内におけるノッキングセンサ１８ａおよびノッキングセンサ１８ｂの出力値の積分値が入力値ｘ１、ｘ２・・・ｘｘｎ−１、ｘｘｎとされる。
【０１７０】
一方、図５０に示される出力値ｙとしては、図８に示される場合と同様に、圧力センサ１９の出力値から求められるノッキング強度を代表する値が採用されている。この場合、図８に示される場合と同様に、図７Ｂにおいて丸印で示されるフィルタリング後の圧力センサ１９の出力値のピーク値が出力値ｙとして用いられるか、或いは、図７Ｃに示されるフィルタリング後の圧力センサ１９の出力値の積分値（負側の積分値も正の値とする）が出力値ｙとして用いられる。なお、この実施例においても、圧力センサ１９の出力値から求められるノッキング強度を代表する値の実測値が教師データｙｔとされる。
【０１７１】
図５１は、入力値ｘ１、ｘ２・・・ｘｘｍ−１、ｘｘｍと、圧力センサ１９の出力値から求められるノッキング強度を代表する値の実測値、即ち、教師データｙｔとを用いて作成された訓練データセットを示している。図５１に示されるように、この訓練データセットでは、入力値ｘ１、ｘ２・・・ｘｘｎ−１、ｘｘｎと教師データｙｔとの関係を表すｍ個のデータが取得されている。この訓練データセットの作成方法は、既に説明した図９に示される訓練データセットの作成方法と同じである。即ち、訓練データセットを作成する際には、図４９において、機関負荷および機関回転数の種々の組み合わせについてノッキングの発生しない運転状態とノッキングの発生する運転状態の双方の状態が生ずるように機関を運転させ、そのとき各検出器２１、２２から得られたデータに基づいて、図５１に示されるような訓練データセットが作成される。
【０１７２】
訓練データセットが作成されると、作成された訓練データセットの電子データを用いて、図５０に示される第１のニューラルネットワーク５５の重みの学習が行われる。この第１のニューラルネットワークの重みの学習方法は、図５を参照しつつ前述した第１のニューラルネットワークの重みの学習方法と同じである。即ち、図５０に示される第１のニューラルネットワーク５５の重みの学習を行うときには、この第１のニューラルネットワーク５５のノード数、および作成された訓練データセットの電子データが、図４９に示される学習装置２３のメモリ２４に記憶され、ＣＰＵ２５において、図１０に示される学習処理ルーチンを用いて、第１のニューラルネットワーク５５の重みの学習が行われる。
【０１７３】
このように、この実施例では、機関本体１の振動を検出する複数個のノッキングセンサ１８ａおよび１８ｂを具備している。第１の学習済みニューラルネットワーク５５は、複数個のノッキングセンサ１８ａおよび１８ｂの出力値が正常信号生成モデル６０を介して入力されると、ノッキング強度を代表する値を出力する。このように複数個のノッキングセンサ１８ａおよび１８ｂを用い、両方のノッキングセンサ１８ａおよび１８ｂの出力値を用いて、第１のニューラルネットワーク５５の重みの学習が行われると、一つのノッキングセンサを用いたときよりも、取得できる情報量が増大するために、ノッキング強度を代表する値を精度よく推定することができる。
【符号の説明】
【０１７４】
１    機関本体
５    燃焼室
１１    点火栓
１８、１８ａ、１８ｂ    ノッキングセンサ
１９    圧力センサ
２０，５５    第１のニューラルネットワーク
２３    学習装置
３０    電子制御ユニット
５０    第２のニューラルネットワーク
６０    正常信号生成モデル
【要約】
【課題】点火時期の過剰遅角を防止する。
【解決手段】機関本体（１）の振動を検出するノッキングセンサ（１８）の出力値が入力されたときに、この出力値からノイズ成分値を除去したノッキング成分値を出力するように事前学習された正常信号生成モデルと、ノッキング成分値を含む入力値が入力されたときに、燃焼圧を検出するための圧力センサ（１８）の出力値から求められるノッキング強度を代表する値の推定値を出力するように事前学習された学習済みニューラルネットワークとが記憶されている。機関運転時に取得されたノッキングセンサ（１８）の出力値を正常信号生成モデルに入力すると共に正常信号生成モデルから出力されたノッキング成分値を学習済みニューラルネットワークに入力して学習済みニューラルネットワークから出力されたノッキング強度を代表する値の推定値を取得し、取得されたノッキング強度を代表する値の推定値に基づいて点火時期の遅角制御が行われる。
【選択図】図２１【図１】
0006733795.tif 000013
【図２】
0006733795.tif 000014
【図３】
0006733795.tif 000015
【図４】
0006733795.tif 000016
【図５】
0006733795.tif 000017
【図６】
0006733795.tif 000018
【図７】
0006733795.tif 000019
【図８】
0006733795.tif 000020
【図９】
0006733795.tif 000021
【図１０】
0006733795.tif 000022
【図１１】
0006733795.tif 000023
【図１２】
0006733795.tif 000024
【図１３】
0006733795.tif 000025
【図１４】
0006733795.tif 000026
【図１５】
0006733795.tif 000027
【図１６】
0006733795.tif 000028
【図１７】
0006733795.tif 000029
【図１８】
0006733795.tif 000030
【図１９】
0006733795.tif 000031
【図２０】
0006733795.tif 000032
【図２１】
0006733795.tif 000033
【図２２】
0006733795.tif 000034
【図２３】
0006733795.tif 000035
【図２４】
0006733795.tif 000036
【図２５】
0006733795.tif 000037
【図２６】
0006733795.tif 000038
【図２７】
0006733795.tif 000039
【図２８】
0006733795.tif 000040
【図２９】
0006733795.tif 000041
【図３０】
0006733795.tif 000042
【図３１】
0006733795.tif 000043
【図３２】
0006733795.tif 000044
【図３３】
0006733795.tif 000045
【図３４】
0006733795.tif 000046
【図３５】
0006733795.tif 000047
【図３６】
0006733795.tif 000048
【図３７】
0006733795.tif 000049
【図３８】
0006733795.tif 000050
【図３９】
0006733795.tif 000051
【図４０】
0006733795.tif 000052
【図４１】
0006733795.tif 000053
【図４２】
0006733795.tif 000054
【図４３】
0006733795.tif 000055
【図４４】
0006733795.tif 000056
【図４５】
0006733795.tif 000057
【図４６】
0006733795.tif 000058
【図４７】
0006733795.tif 000059
【図４８】
0006733795.tif 000060
【図４９】
0006733795.tif 000061
【図５０】
0006733795.tif 000062
【図５１】
0006733795.tif 000063