<内燃機関の全体構成>
図1および図2に内燃機関の全体図を示す。図2を参照すると、1は機関本体、2はシリンダブロック、3はシリンダヘッド、4はシリンダブロック2内で往復動するピストン、5は燃焼室、6は吸気弁、7は吸気ポート、8は排気弁、9は排気ポート、10は各燃焼室5内に燃料、例えば、ガソリンを供給するための燃料噴射弁、11は各燃焼室5内に配置された点火栓を夫々示す。図1および図2を参照すると、吸気ポート7は夫々対応する吸気枝管12を介してサージタンク13に連結され、サージタンク13は吸気ダクト14および吸入空気量検出器15を介してエアクリーナ16に連結される。
一方、排気ポート9は排気マニホルド17に連結され、排気マニホルド17は、排気マニホルド17内の排気ガスをサージタンク13内に再循環させるための排気ガス再循環(以下、EGRと称す)通路27を介してサージタンク13に連結される。このEGR通路27内にはEGR制御弁28が配置される。図1に示される実施例では、機関の運転状態に応じたEGR率(-=再循環排気ガス量/(再循環排気ガス量+吸入空気量))が予め設定されており、EGR制御弁28は、EGR率が予め設定されたEGR率となるように制御される。
図1および図2に示されるように、図1に示される実施例では、シリンダブロック2に、シリンダブロック2の振動、即ち、機関本体1の振動を検出するためのノッキングセンサ18が取り付られている。図1に示される例では、このノッキングセンサ18では、振動の検出素子として圧電素子が用いられており、このノッキングセンサ18は機関本体1の振動に比例した出力電圧を発生する。なお、ノッキングが発生すると、機関本体1には、周波数が5KHzから25KHz程度の範囲内の種々の周波数の振動が発生し、このときノッキングセンサ18の出力電圧は、周波数が5KHzから25KHz程度の範囲内の種々の周波数で変動する。従って、ノッキングセンサ18の出力電圧の変動、即ち、ノッキングセンサ18の出力値の変動から、ノッキングの発生を検出することができることになる。
一方、図1において30は、機関の運転を制御するための電子制御ユニットを示している。図1に示されるように、電子制御ユニット30はデジタルコンピュータからなり、双方向性バス31によって互いに接続された記憶装置32、即ち、メモリ32と、CPU(マイクロプロセッサ)33と、入力ポート34および出力ポート35を具備する。ノッキングセンサ18の出力信号は、対応するAD変換器36を介して、夫々異なる周波数帯域の信号のみを通過させる第1から第5の複数個のバンドパスフィルタ37a、37b、37c、37d、37eに入力され、各バンドパスフィルタ37a、37b、37c、37d、37eの出力信号は入力ポート34に入力される。
本発明による実施例では、バンドパスフィルタ37a、37b、37c、37d、37eが、複数個の狭帯域バンドパスフィルタ、即ち、第2から第5のバンドパスフィルタ37b、37c、37d、37eと、全ての狭帯域バンドパスフィルタ37b、37c、37d、37eの周波数帯域を包含する広帯域バンドパスフィルタ、即ち、第1のバンドパスフィルタ37aからなる。この場合、図1に示される例では、第1のバンドパスフィルタ37aの周波数帯域は5kHz から25kHzである。一方、第2のバンドパスフィルタ37bの周波数帯域は、5kHz から10kHzであり、第3のバンドパスフィルタ37cの周波数帯域は、10kHz から15kHzであり、第4のバンドパスフィルタ37dの周波数帯域は、15kHz から20kHzであり、第5のバンドパスフィルタ37eの周波数帯域は、20kHz から25kHzである。
一方、図1に示されるように、入力ポート34には、吸入空気量検出器15の出力信号が、対応するAD変換器36を介して入力される。また、アクセルペダル40にはアクセルペダル40の踏込み量に比例した出力電圧を発生する負荷センサ41が接続され、負荷センサ41の出力電圧は対応するAD変換器36を介して入力ポート34に入力される。更に入力ポート34にはクランクシャフトが例えば30°回転する毎に出力パルスを発生するクランク角センサ42が接続される。CPU33内ではクランク角センサ42の出力信号に基づいて機関回転数が算出される。一方、出力ポート35は対応する駆動回路38を介して各気筒の燃料噴射弁10、点火栓11およびEGR制御弁28に接続される。
<ニューラルネットワークの概要>
本発明による実施例では、ニューラルネットワークを用いてノッキング強度を代表する値を推定するようにしている。そこで最初にニューラルネットワークについて簡単に説明する。図3は簡単なニューラルネットワークを示している。図3における丸印は人工ニューロンを表しており、ニューラルネットワークにおいては、この人工ニューロンは、通常、ノード又はユニットと称される(本願では、ノードと称す)。図3においてL=1は入力層、L=2および L=3は隠れ層、L=4は出力層を夫々示している。また、図3において、x1およびx2 は入力層 ( L=1) の各ノードからの出力値を示しており、y1 およびy2 は出力層 ( L=4) の各ノードからの出力値を示しており、z(2) 1、z(2) 2 およびz(2) 3 は隠れ層 ( L=2) の各ノードからの出力値を示しており、z(3) 1、z(3) 2 およびz(3) 3は隠れ層 ( L=3) の各ノードからの出力値を示している。なお、隠れ層の層数は、1個又は任意の個数とすることができ、入力層のノードの数および隠れ層のノードの数も任意の個数とすることができる。また、出力層のノードの数は1個とすることもできるし、複数個とすることもできる。
入力層の各ノードでは入力がそのまま出力される。一方、隠れ層 ( L=2) の各ノードには、入力層の各ノードの出力値x
1およびx
2 が入力され、隠れ層 ( L=2) の各ノードでは、夫々対応する重みwおよびバイアスbを用いて総入力値u が算出される。例えば、図3において隠れ層 ( L=2) のz
(2) k(k=1,2,3)で示されるノードにおいて算出される総入力値u
kは、次式のようになる。
次いで、この総入力値u
kは活性化関数fにより変換され、隠れ層 ( L=2) のz
(2) kで示されるノードから、出力値z
(2) k(= f (u
k)) として出力される。一方、隠れ層 ( L=3) の各ノード には、隠れ層 ( L=2) の各ノードの出力値z
(2) 1、z
(2) 2 およびz
(2) 3が入力され、隠れ層 ( L=3 ) の各ノードでは、夫々対応する重みwおよびバイアスbを用いて総入力値u(Σz・w+b)が算出される。この総入力値uは同様に活性化関数により変換され、隠れ層 ( L=3 ) の各ノードから、出力値z
(3) 1、z
(3) 2 およびz
(3) 3として出力される、この活性化関数としては、例えば、シグモイド関数σが用いられる。
一方、出力層 ( L=4) の各ノード には、隠れ層 ( L=3) の各ノードの出力値z(3) 1、z(3) 2 およびz(3) 3が入力され、出力層 の各ノードでは、夫々対応する重みwおよびバイアスbを用いて総入力値u(Σz・w+b)が算出されるか、又は、夫々対応する重みwのみを用いて総入力値u(Σz・w)が算出される。本発明による実施例では、出力層のノードでは、活性化関数として恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値uが、そのまま出力値yとして出力される。
<ニューラルネットワークにおける学習>
さて、ニューラルネットワークの出力値yの正解値を示す教師データをy
tとすると、ニューラルネットワークにおける各重みwおよびバイアスbは、出力値yと教師データをy
tとの差が小さくなるように、誤差逆伝播法を用いて学習される。この誤差逆伝播法は周知であり、従って、誤差逆伝播法についてはその概要を以下に簡単に説明する。なお、バイアスbは重みwの一種なので、以下、バイアスbも含めて重みwと称する。さて、図3に示すようなニューラルネットワークにおいて、L=2,L=3又は L=4の各層のノードへの入力値u
(L)における重みをw
(L)で表すと、誤差関数Eの重みw
(L)による微分、即ち、勾配∂E/∂w
(L)は、書き換えると、次式で示されるようになる。
ここで、z
(L−1)・∂w
(L)= ∂u
(L)であるので、(∂E/∂u
(L))=δ
(L)とすると、上記(1)式は、次式でもって表すことができる。
ここで、u
(L)が変動すると、次の層の総入力値u
(L+1)の変化を通じて誤差関数Eの変動を引き起こすので、δ
(L)は、次式で表すことができる。
ここで、z
(L)=f(u
(L)) と表すと、上記(3)式の右辺に現れる入力値u
k (L+1)は、次式で表すことができる。
ここで、上記(3)式の右辺第1項(∂E/∂u
(L+1))はδ
(L+1)であり、上記(3)式の右辺第2項(∂u
k (L+1) /∂u
(L))は、次式で表すことができる。
従って、δ
(L)は、次式で示される。
即ち、δ
(L+1)が求まると、δ
(L)を求めることができることになる。
さて、出力層 ( L=4) のノードが一個であって、或る入力値に対して教師データy
tが求められており、この入力値に対する出力層からの出力値がyであった場合において、誤差関数として二乗誤差が用いられている場合には、二乗誤差Eは、E=1/2(y−y
t)
2で求められる。この場合、出力層(L=4)のノードでは、出力値y= f(u
(L)) となり、従って、この場合には、出力層(L=4)のノードにおけるδ
(L)の値は、次式で示されるようになる。
この場合、本発明による実施例では、前述したように、f(u
(L)) は恒等関数であり、f’(u
(Ll)) = 1となる。従って、δ
(L)=y−y
t となり、δ
(L)が求まる。
δ
(L)が求まると、上式(6)を用いて前層のδ
(L−1)が求まる。このようにして順次、前層のδが求められ、これらδの値を用いて、上式(2)から、各重みwについて誤差関数Eの微分、即ち、勾配∂E/∂w
(L)か求められる。勾配∂E/∂w
(L)か求められると、この勾配∂E/∂w
(L)を用いて、誤差関数Eの値が減少するように、重みwが更新される。即ち、重みwの学習が行われることになる。なお、図3に示されるように、出力層 ( L=4) が複数個のノードを有する場合には、各ノードからの出力値をy
1、y
1・・・、対応する教師データy
t1、y
t2・・・とすると、誤差関数Eとして、次の二乗和誤差Eが用いられる。
この場合も、出力層 ( L=4) の各ノードにおけるδ
(L)の値は、δ
(L)=y−y
tk (k=1,2・・・n)となり、これらδ
(L)の値から上式(6)を用いて前層のδ
(L−1)が求まる。
<本発明による実施例>
さて、内燃機関では、ノッキング強度が高くなるほど機関本体1の振動が激しくなる。従って、図1および図2に示されるように、機関本体1にノッキングセンサ18を取り付け、ノッキングセンサ18により検出された機関本体の振動の激しさからノッキング強度を検出することができる。しかしながら前述したように、機関本体1は、例えば、吸気弁6および排気弁8の着座作用や、燃料噴射弁10のニードルの着座作用等の機械的動作によっても振動し、従って、機関本体1の振動を検出するようにしたノッキングセンサ18を用いると、このような機械的動作が原因で機関本体の振動強度が激しくなったときに、ノッキング強度が高くないにも拘わらず、ノッキング強度が高いと誤判定してしまうという問題がある。
一方、前述したように、点火により発生する混合気の燃焼圧を検出可能な圧力センサを用いると、この圧力センサの出力値の変動の激しさからノッキング強度を検出できる。この場合、例えば、ノッキング強度が高くなると、5KHzから25KHz程度の範囲内の種々の周波数内における圧力センサの出力値のピーク値が高くなり、従って、この圧力センサの出力値のピーク値は、ノッキング強度を代表する値の一つであると言える。従って、このようなノッキング強度を代表する値から、ノッキング強度を検出することができることになる。この場合、機械的動作に基づく機関本体の振動は、圧力センサの出力値に影響を与えず、従って、ノッキング強度を代表する値にも影響を与えないので、圧力センサを用いると、ノッキング強度を精度よく検出することができることになる。
しかしながら、この圧力センサは高価であり、しかも圧力センサに徐々に付着するデポジットにより燃焼室5内における混合気の燃焼形態が変化してしまうので、市販車において、このような圧力センサを用いることは難しい。そこで、本発明では、圧力センサの出力値から求められるノッキング強度を代表する値を、ニューラルネットワークを用いて、ノッキングセンサの出力値から推定するようにしている。このことを説明するに当たり、最初に、図4、図5、図6Aから図6Cおよび図7Aから図7Cを参照しつつ、ノッキングセンサの出力値と、圧力センサの出力値並びに圧力センサの出力値から求められるノッキング強度を代表する値について説明する。
図4および図5は夫々、ニューラルネットワークの重みの学習に必要なデータを取得するためにだけ用いられるシリンダヘッド3の底面図および機関本体1の一部を示している。図4および図5を参照すると、圧力センサの出力値から求められるノッキング強度を代表する値を、ノッキングセンサ18の出力値から推定するために、各気筒のシリンダヘッド3の内壁面上には、夫々圧力センサ19が配置される。各圧力センサ19からは、夫々対応する燃焼室5内の圧力に比例した出力電圧、即ち、点火により発生する混合気の燃焼圧を示す出力値が出力される。なお、この場合、燃焼室5内の圧力は、点火栓と一体型の圧力センサを用いて計測することもできる。これら圧力センサ19は、ニューラルネットワークの重みの学習に必要なデータを取得するためだけに用いられる。
さて、ノッキングは通常、圧縮上死点から圧縮上死点後90°までの間に発生し、ノッキングが発生すると、機関本体1には、5KHzから25KHz程度の範囲内の種々の周波数の振動が発生する。この場合、ノッキングの発生による機関本体1の振動は、燃焼室5内の圧力変動と同様に、5KHzから25KHz程度の範囲内の全周波数に亘る振動に顕著に現れる場合もあるし、5kHz から10kHz の周波数範囲内、10kHz から15kHzの周波数範囲内、15kHz から20kHzの周波数範囲内、および、20kHz から25kHzの周波数範囲内のいくつかの周波数範囲内に顕著に現れる場合もある。
従って、ノッキングの発生による機関本体1の振動からノッキングの発生を検出するには、これらの各周波数範囲内の機関本体1の振動が発生しているか否かを検出することが望ましい。従って、本発明による実施例では、図1に示されるように、ノッキングセンサ18の出力信号が、種々の周波数帯域のバンドパスフィルタ37a、37b、37c、37d、37eに送り込まれ、これらバンドパスフィルタ37a、37b、37c、37d、37eによりフィルタリングされた後のノッキングセンサ18の出力値に基づいて、ノッキングの強度が判別される。なお、このように各バンドパスフィルタ37a、37b、37c、37d、37eにより夫々、フィルタリングされた後のノッキングセンサ18の出力値を、以下、単にフィルタリング後のノッキングセンサ18の出力値と称する。
一方、本発明による実施例では、後述するように、圧力センサ19の出力値も、AD変換された後、種々の周波数帯域のバンドパスフィルタに送り込まれ、これらデジタルバンドパスフィルタによりフィルタリングされた後の圧力センサ19の出力値に基づいて、ノッキングの強度が判別される。なお、このようにデジタルバンドパスフィルタによりフィルタリングされた後の圧力センサ19の出力値を、以下、単にフィルタリング後の圧力センサ19の出力値と称する。
図6Aおよび図7Aは夫々、同一のノッキングの発生に対するフィルタリング後のノッキングセンサ18の出力値(V)の変化と、フィルタリング後の圧力センサ19の出力値の変化(V)とを示している。なお、図6Aは、一例として、第1のバンドパスフィルタ37aによるフィルタリング後のノッキングセンサ18の出力値の変化を示しており、図7Aは、第1のバンドパスフィルタ37aと同じ周波数帯域のバンドパスフィルタによるフィルタリング後の圧力センサ19の出力値の変化を示している。また、図6Aの横軸および図7Aの横軸は共に、ATDCで表したクランク角(圧縮上死点から圧縮上死点後90°)を示している。
図6Aおよび図7Aを比較するとわかるように、図7Aに示されるフィルタリング後の圧力センサ19の出力値の振動強度は、ノッキングが発生すると急激に増大し、その後、次第に減少していく。即ち、圧力センサ19の出力値は、機械的動作に基づく機関本体の振動の影響を受けないために、ノッキングの発生が圧力センサ19の出力値に明確に表れる。これに対し、図6Aに示されるフィルタリング後のノッキングセンサ18の出力値の振動強度も、ノッキングが発生すると増大はするが、ノッキングセンサ18の出力値は機械的動作に基づく機関本体の振動の影響を大きく受けるため、ノッキングセンサ18の出力値の振動強度は、ノッキングが発生した前後においても大きな値となっている。即ち、ノッキングセンサ18の出力値には、機械的動作に基づく機関本体の振動がノイズとなって現れるため、ノッキングの発生が、ノッキングセンサ18の出力値に明確に表れなくなる。
従って、ノッキングが発生したか否かは、圧力センサ19の出力値から明確に判別できることになる。この場合、圧力センサ19の出力値には、発生したノッキングの強度も明確に現れる。次に、このことについて、図7Bおよび図7Cを参照しつつ説明する。なお、図7Bおよび図7Cは、図7Aに示されるフィルタリング後の圧力センサ19の出力値の波形の一部を横軸方向に引き伸ばして図解的に表した図である。
さて、発生したノッキングの強度が高くなると、フィルタリング後の圧力センサ19の出力値のピーク値が高くなる。従って、図7Bにおいて丸印で示されるフィルタリング後の圧力センサ19の出力値のピーク値は、ノッキング強度を代表する値を示していることになる。一方、発生したノッキングの強度が高くなると、図7Cにおいて出力値の波形と出力値が0(V)の線とで囲まれたハッチングで示される面積の総和、即ち、フィルタリング後の圧力センサ19の出力値の積分値(負側の積分値も正の値とする)が高くなる。従って、フィルタリング後の圧力センサ19の出力値の積分値(負側の積分値も正の値とする)も、ノッキング強度を代表する値を示していることになる。このように圧力センサ19の出力値からノッキング強度を代表する値を取得することができる。
一方、ノッキングセンサ18の出力値からは、このようなノッキング強度を代表する値を抽出することは難しい。そこで本発明では、ニューラルネットワークを用い、ノッキングセンサ18の出力値に基づいて、圧力センサ19の出力値から求められるノッキング強度を代表する値を取得し得るようにニューラルネットワークの重みを学習し、それにより圧力センサ19の出力値から求められるノッキング強度を代表する値を、学習済みのニューラルネットワークを用いてノッキングセンサ18の出力値から推定するようにしている。
この場合、本発明では、図8に示されるように、第1から第5の各バンドパスフィルタ37a、37b、37c、37d、37eに対して夫々ニューラルネットワーク20a、20b、20c、20d、20eが設けられており、第1から第5の各バンドパスフィルタ37a、37b、37c、37d、37eにより夫々フィルタリングされた後のノッキングセンサ18の出力値が夫々、対応するニューラルネットワーク20a、20b、20c、20d、20eに入力され、各ニューラルネットワーク20a、20b、20c、20d、20eの重みの学習は、ニューラルネットワーク毎に行われる。例えば、ニューラルネットワーク20aについて説明すると、第1のバンドパスフィルタ37aによるフィルタリング後のノッキングセンサ18の出力値に基づいて、第1のバンドパスフィルタ37aと同じ周波数帯域のバンドパスフィルタによるフィルタリング後の圧力センサ19の出力値から求められるノッキング強度を代表する値を取得し得るようにニューラルネットワーク20aの重みの学習が行われる。第2から第5の他のニューラルネットワーク20b、20c、20d、20eについても同様である。
そこで次に、フィルタリング後のノッキングセンサ18の出力値に基づいて、圧力センサ19の出力値から求められるノッキング強度を代表する値を取得し得るように各ニューラルネットワーク20a、20b、20c、20d、20eの重みを学習する方法について説明する。図8に示される例では、これらニューラルネットワーク20a、20b、20c、20d、20eは同一の構造を有しており、これらニューラルネットワーク20a、20b、20c、20d、20eの一例が図9に示されている。従って。最初に、図9に示されるニューラルネットワークの構造について説明する。なお、これらニューラルネットワーク20a、20b、20c、20d、20eは、第1のニューラルネットワーク20a、20b、20c、20d、20eと称される場合もある。
図9を参照すると、このニューラルネットワーク20においても、図3に示されるニューラルネットワークと同様に、L=1は入力層、L=2および L=3は隠れ層、L=4は出力層を夫々示している。図9に示されるように、入力層 ( L=1) がn個のノードからなり、n個の入力値x1、x2・・・xn−1、xnが、入力層 ( L=1) の各ノードに入力されている。一方、図9には隠れ層 ( L=2)および隠れ層 ( L=3)が記載されているが、これら隠れ層の層数は、1個又は任意の個数とすることができ、またこれら隠れ層のノードの数も任意の個数とすることができる。なお、出力層 ( L=4) のノードの数は1個とされており、出力層のノードからの出力値がyi(i=1,2,3,4,5)で示されている。
次に、図9における入力値x1、x2・・・xn−1、xnと、出力値yiについて説明する。最初に、入力値x1、x2・・・xn−1、xnについて図6Bおよび図6Cを参照しつつ説明する。なお、図6Bおよび図6Cは、図6Aに示されるノッキングセンサ18の出力値の波形の一部を横軸方向に引き伸ばして図解的に表した図である。本発明による実施例では、入力値x1、x2・・・xn−1、xnとして、図6Bに示される値か、或いは、図6Cに示される値が用いられる。
即ち、図6Bに示される例では、フィルタリング後のノッキングセンサ18の出力値そのものが入力値x1、x2・・・xn−1、xnとされる。この場合、図6Bにおいて黒丸で示されるように、一定時間毎の、或いは、一定クランク角毎のノッキングセンサ18の出力値が入力値x1、x2・・・xn−1、xnとされる。即ち、この場合、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値そのものが、対応するニューラルネットワーク20a、20b、20c、20d、20eの入力値x1、x2・・・xn−1、xnとされる。
一方、図6Cに示される例では、フィルタリング後のノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)であって例えば一定クランク角度内におけるフィルタリング後のノッキングセンサ18の出力値の積分値が入力値x1、x2・・・xn−1、xnとされる。この場合、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)であって例えば一定クランク角度内におけるフィルタリング後のノッキングセンサ18の出力値の積分値が、対応するニューラルネットワーク20a、20b、20c、20d、20eの入力値x1、x2・・・xn−1、xnとされる。
一方、本発明の実施例では、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後の圧力センサ19の出力値から夫々求められるノッキング強度を代表する値が、図9に示される出力値yi(i=1,2,3,4,5)とされる。この場合、図7Bにおいて丸印で示される圧力センサ19の出力値のピーク値はノッキング強度を表しており、また、図7Cに示される圧力センサ19の出力値の積分値(負側の積分値も正の値とする)もノッキング強度を表している。従って、本発明の実施例では、図7Bにおいて丸印で示される圧力センサ19の出力値のピーク値が出力値yi(i=1,2,3,4,5)とされるか、或いは、図7Cに示される圧力センサ19の出力値の積分値(負側の積分値も正の値とする)が出力値yi(i=1,2,3,4,5)とされる。この場合、圧力センサ19の出力値から求められるノッキング強度を代表する値の実測値が教師データytとされる。
図10は、入力値x1、x2・・・xm−1、xmと、入力値がx1、x2・・・xm−1、xmであるときに圧力センサ19の出力値から求められるノッキング強度を代表する値の実測値、即ち、教師データytとを用いて作成された訓練データセットを示している。この訓練データセットは、ニューラルネットワーク20a、20b、20c、20d、20e毎に作成される。図10に示されるように、この訓練データセットでは、入力値x1、x2・・・xn−1、xnと教師データytとの関係を表すm個のデータが取得されている。例えば、2番目のデータ(No. 2)には、取得された入力値x12、x22・・・xm−12、xm2と教師データyt2とが列挙されており、m−1番目のデータ(No. m−1)には、取得された入力パラメータの入力値x1m−1、x2m−1・・・xn−1m−1、xnm−1と教師データytm−1が列挙されている。
入力値x1、x2・・・xn−1、xnとして、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値そのものを用いる場合には、例えば、圧縮上死点から圧縮上死点後90°までの間において一定クランク角毎に取得されたフィルタリング後のノッキングセンサ18の出力値が、入力値x1、x2・・・xn−1、xnとされる。この場合には、入力値の個数nが数百以上とされ、従って、図9に示される入力層 ( L=1) のノードの個数nが数百以上とされる。
一方、本発明の実施例では、入力値x1、x2・・・xn−1、xnとして、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)を用いる場合には、圧縮上死点から圧縮上死点後90°までの間がクランク角度5°毎に18個の区間に分割され、分割された各区間内におけるフィルタリング後のノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)が、入力値x1、x2・・・xn−1、xnとされる。この場合には、入力値の個数nは18個となり、従って、図9に示される入力層 ( L=1) のノードの個数nは18個とされる。
一方、図10に示される訓練データセットにおける教師データytは、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後の圧力センサ19の出力値から夫々求められるノッキング強度を代表する値の実測値であり、この教師データytとしては、図7Bにおいて丸印で示される圧力センサ19の出力値のピーク値が用いられるか、或いは、図7Cに示される圧力センサ19の出力値の積分値(負側の積分値も正の値とする)が用いられる。ところで、本発明による実施例では、図10に示される訓練データセットを用いて、図9に示されるニューラルネットワーク20の重みの学習、即ち、ニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が行われる。そこで次に、図4および図5を参照しつつ、図10に示される訓練データセットの作成方法について説明する。
図4および図5には、図10に示される訓練データセットの作成方法の一例が示されている。図4および図5を参照すると、各気筒の燃焼室5に面するシリンダヘッド3の内壁面上には、ノッキング強度を代表する値を取得するために、夫々圧力センサ19が配置されている。これら圧力センサ19は、前述したように、学習に必要なデータを取得するためだけに設けられている。一方、図5に示される例では、ノッキングセンサ18は、ノッキングセンサ18の出力値の波形を検出可能な検出器21、例えば、オシロスコープに接続され、各圧力センサ19は、各圧力センサ19の出力値の波形を検出可能な検出器22、例えば、オシロスコープに接続されている。
検出器21内では、ノッキングセンサ18の出力値は、AD変換された後、5KHzから25KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、5KHzから10KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、10KHzから15KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、15KHzから20KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、および20KHzから25KHzの周波数の入力信号のみを通過させるバンドパスフィルタに送り込まれ、これらバンドパスフィルタによりフィルタリングされた後のノッキングセンサ18の出力値の波形が検出される。
一方、検出器22では、圧力センサ19の出力値は、AD変換された後、5KHzから25KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、5KHzから10KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、10KHzから15KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、15KHzから20KHzの周波数の入力信号のみを通過させるバンドパスフィルタ、および20KHzから25KHzの周波数の入力信号のみを通過させるデジタルバンドパスフィルタに送り込まれ、これらデジタルバンドパスフィルタによりフィルタリングされた後の圧力センサ19の出力値の波形が検出される。
訓練データセットを作成する際には、機関負荷、機関回転数およびEGR率の種々の組み合わせについてノッキングの発生しない運転状態とノッキングの発生する運転状態の双方の状態が生ずるように機関を運転させ、そのとき各検出器21、22から得られたフィルタリング後のノッキングセンサ18の出力値の波形データおよびフィルタリング後の圧力センサ19の出力値の波形データに基づいて、各ニューラルネットワーク20a、20b、20c、20d、20eに対する図9に示されるような訓練データセットが作成される。この場合、これら訓練データセットは、各検出器21、22から得られた波形データに基づき、手作業でもって作成することもできるし、各検出器21、22から得られた電子データに基づき、電子的に作成することもできる。このようにして作成された訓練データセットの電子データを用いて、図9に示されるニューラルネットワーク20の重みの学習、即ち、ニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が行われる。
図5に示される例では、図9に示されるニューラルネットワークの重みの学習、即ち、ニューラルネットワーク20a、20b、20c、20d、20eの重みの学習を行うための学習装置23が設けられている。図5に示されるように、この学習装置23は、記憶装置24、即ち、メモリ24と、CPU(マイクロプロセッサ)25を具備している。図5に示される例では、図9に示されるニューラルネットワーク20のノード数、および各ニューラルネットワーク20a、20b、20c、20d、20eに対して作成された訓練データセットの電子データが学習装置23のメモリ24に記憶され、CPU25において図9に示されるニューラルネットワーク20の重みの学習、即ち、ニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が行われる。
次に、入力値x1、x2・・・xn−1、xnとして、圧縮上死点から圧縮上死点後90°までの間においてクランク角度5°毎に分割された各区間内におけるフィルタリング後のノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)を用い、教師データytとして、圧力センサ19の出力値のピーク値の実測値を用いて、学習装置23により行われるニューラルネットワークの重みの学習方法について説明する。
図11は、学習装置23において行われる図9に示されるニューラルネットワーク20の重みの学習処理ルーチン、即ち、ニューラルネットワーク20a、20b、20c、20d、20eの重みの学習処理ルーチンを示す。
図11を参照すると、まず初めに、ステップ100において、学習装置23のメモリ24に記憶されている各ニューラルネットワーク20a、20b、20c、20d、20eに対する訓練データセットの各データが読み込まれる。次いで、ステップ101において、ニューラルネットワーク20の入力層 ( L=1) のノード数、隠れ層 ( L=2)および隠れ層 ( L=3)のノード数および出力層 ( L=4) のノード数が読み込まれ、これらノード数に基づいて、各ニューラルネットワーク20a、20b、20c、20d、20eに対し、図9に示されるようなニューラルネットワーク20が作成される。この場合、この例では、入力層 ( L=1) のノード数は18個とされ、出力層 ( L=4) のノード数は1個とされる。
次いで、ステップ102では、図9に示されるニューラルネットワーク20の重みの学習、即ち、ニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が行われる。最初は、例えば、ニューラルネットワーク20aに対する図10の1番目(No. 1)の入力値x1、x2・・・xn−1、xn、即ち、入力値x1、x2・・・x17、x18がニューラルネットワーク20aの入力層 ( L=1) の18個の各ノードに入力される。次いで、このときのニューラルネットワーク20aの出力値y1と1番目(No. 1)の教師データyt1との間の二乗誤差E=1/2(y1−yt1)2が算出され、この二乗誤差Eが小さくなるように、前述した誤差逆伝播法を用いて、ニューラルネットワーク20aの重みの学習が行われる。
図10の1番目(No. 1)のデータに基づくニューラルネットワーク20aの重みの学習が完了すると、次に、図10の2番目(No. 2)のデータに基づくニューラルネットワーク20aの重みの学習が、誤差逆伝播法を用いて行われる。同様にして、図10のm番目(No. m)まで順次、ニューラルネットワーク20aの重みの学習が行われる。図10の1番目(No. 1)からm番目(No. m)までの全てについてニューラルネットワーク20aの重みの学習が完了すると、ステップ103に進む。
ステップ103では、例えば、図10の1番目(No. 1)からm番目(No. m)までの全てのニューラルネットワーク20aの出力値y1と教師データytとの間の二乗和誤差Eが算出され、この二乗和誤差Eが、予め設定された設定誤差以下になったか否かが判別される。二乗和誤差Eが、予め設定された設定誤差以下になっていないと判別されたときには、ステップ102に戻り、再度、ニューラルネットワーク20aに対する図10に示される訓練データセットに基づいて、ニューラルネットワーク20の重み学習が行われる。次いで、二乗和誤差Eが、予め設定された設定誤差以下になるまで、ニューラルネットワーク20aの重みの学習が続行される。ステップ103において、二乗和誤差Eが、予め設定された設定誤差以下になったと判別されたときには、ステップ104に進んで、ニューラルネットワーク20aの学習済み重みが学習装置23のメモリ24に記憶される。このようにして5KHzから25KHzの周波数帯域におけるノッキング強度を代表する値y1の推定モデルが作成される。
次いで、ステップ105では、全てのニューラルネットワーク20a、20b、20c、20d、20eについて学習が完了したか否かが判別される。全てのニューラルネットワーク20a、20b、20c、20d、20eについて学習が完了していないときには、ステップ102に戻って、まだ学習の完了していないニューラルネットワーク、例えば、ニューラルネットワーク20bの重みの学習が開始される。その後、ニューラルネットワーク20bの重みの学習が完了すると、ステップ104において、ニューラルネットワーク20bの学習済み重みが学習装置23のメモリ24に記憶される。それにより5KHzから10KHzの周波数帯域におけるノッキング強度を代表する値y2の推定モデルが作成される。
同様にして、順次、ニューラルネットワーク20c、20d、20eの重みの学習が行われ、それにより、10KHzから15KHzの周波数帯域におけるノッキング強度を代表する値y3の推定モデル、15KHzから20KHzの周波数帯域におけるノッキング強度を代表する値y4の推定モデル、および20KHzから25KHzの周波数帯域におけるノッキング強度を代表する値y5の推定モデルが作成される。
全てのニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が完了すると、これらの学習済みニューラルネットワーク20a、20b、20c、20d、20e、即ち、各周波数帯域におけるノッキング強度を代表する値y1、y2、y3、y4、y5 の推定モデルが、市販車両の電子制御ユニット30内に格納される。図12は、これらの学習済みニューラルネットワーク20a、20b、20c、20d、20e、即ち、各周波数帯域におけるノッキング強度を代表する値y1、y2、y3、y4、y5 の推定モデルを電子制御ユニット30内に格納するために、電子制御ユニット30内において行われる電子制御ユニットへのデータ読み込みルーチンを示している。
即ち、図12に示されるように、ステップ110において、図9に示されるニューラルネットワーク20の入力層 ( L=1) のノード数、隠れ層 ( L=2、L=3) のノード数および出力層 ( L=4) のノード数が、電子制御ユニット30のメモリ32に読み込まれ、これらノード数に基づき、各ニューラルネットワーク20a、20b、20c、20d、20eに対し、図9に示されるようなニューラルネットワーク20が作成される。次いで、ステップ111において、ニューラルネットワーク20a、20b、20c、20d、20eの学習済みの重みが電子制御ユニット30のメモリ32に読み込まれる。それにより、学習済みニューラルネットワーク20a、20b、20c、20d、20e、即ち、各周波数帯域におけるノッキング強度を代表する値y1、y2、y3、y4、y5 の推定モデルが、機関の電子制御ユニット30内に格納される。
さて、市販車両の電子制御ユニット30内に、学習済みニューラルネットワーク20a、20b、20c、20d、20e、即ち、各周波数帯域におけるノッキング強度を代表する値y1、y2、y3、y4、y5 の推定モデルが格納されると、機関運転時には、図8に示されるように、各ニューラルネットワーク20a、20b、20c、20d、20eからは、夫々、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 が出力される。この場合、各ニューラルネットワーク20a、20b、20c、20d、20eから出力されるノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 のうちで、ノッキングの発生による機関本体1の振動が顕著に現れる周波数帯域に対応した推定値が高くなる。
ところで、前述したように、ノッキングの発生による機関本体1の振動は、5KHzから25KHz程度の範囲内の全周波数に亘る振動に顕著に現れる場合もあるし、また、5kHz から10kHz の周波数範囲内、10kHz から15kHzの周波数範囲内、15kHz から20kHzの周波数範囲内、および、20kHz から25kHzの周波数範囲内のいくつかに顕著に現れる場合もある。即ち、ノッキングが発生した場合には、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 のいくつかが高くなる。
図13Aは、ノッキングが発生したときのノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 の一例を示している。図13Aに示される例では、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 のうちで、ノッキング強度を代表する値の推定値y2 が最も高く、ノッキング強度を代表する値の推定値y3 が最も低くなっている。この場合、ノッキング強度を代表する値の推定値としては、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 から特異な推定値を除いた一部の推定値を用いて算出された値が最適であると考えられる。そこで本発明では、ノッキング強度を代表する値の最適推定値yeを、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 から特異な推定値を除いた一部の推定値から求めるようにしている。
この場合、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 から特異な推定値を除いた一部の推定値を用いて、ノッキング強度を代表する値の最適推定値yeを求める方法は、種々の方法があり、その方法の一つが図13Bに示されている。図13Bに示される方法では、図13Bに示されるように、ノッキング強度を代表する値の推定値yv、yw、yx、yy、yz のうちで最大の推定値yy と最小の推定値yz のを除いた残りの推定値yv、yw、yx の平均値が、ノッキング強度を代表する値の最適推定値yeとされる。図13Aに示される場合には、ノッキング強度を代表する値の最適推定値yeが、ノッキング強度を代表する値の推定値y1、y4、y5 の平均値となる。
一方、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 から特異な推定値を除いた一部の推定値を用いて、ノッキング強度を代表する値の最適推定値yeを求める別の方法は、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5の中の一部の推定値の塊であって最も値の近い推定値の塊の平均値を、ノッキング強度を代表する値の最適推定値yeとする方法である。この方法が図13Cに示されている。図13Cに示される方法では、図13Cに示されるように、ノッキング強度を代表する値の推定値yv からみて最も離れたノッキング強度を代表する値の推定値がyy、yz であるときには、ノッキング強度を代表する値の推定値yw、yx がノッキング強度を代表する値の推定値yv に最も値の近い推定値の塊とされ、これら推定値yw、yx と推定値yv との差の和S(=|yv ―yw | +|yv ―yx |)が算出される。
なお、図13Cには、図13Aに示されるノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 の各々について、各ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 がら最も値の近い推定値の塊と、これら各ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 とこれら最も値の近い推定値との差の和Sが示されている。この例では、図13Cに示される差の和S中で最も和Sの小さい三つの推定値の平均値が、ノッキング強度を代表する値の最適推定値yeとされる。例えば、図13Cにおいて、ノッキング強度を代表する値の推定値y1 とこれに最も値の近い推定値がy2、y4 の差の和Sが最も小さかったとすると、ノッキング強度を代表する値の推定値y1、y2、y4 の平均値が、ノッキング強度を代表する値の最適推定値yeとされる。即ち、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 の中の一部の推定値の塊であって最も値の近い推定値の塊の平均値が、ノッキング強度を代表する値の最適推定値yeとされる。
このようにノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 から特異な推定値を除いた一部の推定値を用いて、ノッキング強度を代表する値の最適推定値yeを求めると、求められたノッキング強度を代表する値の最適推定値yeは、実際のノッキング強度により近い値となり、しかも最適推定値yeは推定値の平均値であるために未学習の機関の振動の影響をそれほど受けない値となる。従って、このノッキング強度を代表する値の最適推定値yeに基づいて点火時期の遅角制御を行うと、点火時期を適切に遅角制御することができ、その結果、点火時期が過剰に遅角されるのを阻止することが可能となる。なお、ノッキング強度を代表する値の最適推定値yeは、K means 法を用いて求めることもできる。
次に、電子制御ユニット30のメモリ32内に格納された学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いて、機関運転時に実行されるノッキング処理について説明する。図14は、この機関運転時に実行されるノッキング処理ルーチンを示している。図14に示されるように、このノッキング処理ルーチンが実行されると、まず初めにステップ120において、圧力センサ19の出力値から求められるノッキング強度を代表する値、即ち、ノッキング強度代表値の推定処理が行われる。次いで、ステップ121では、ノッキング強度を代表する値の最適推定値yeの算出処理が行われる。次いで、ステップ122では、ノッキングが生じているか否かのノッキング判定処理が行われ、次いで、ステップ123では、点火制御が行われる。
図15は、図14のステップ120において行われるノッキング強度代表値の推定処理ルーチンの一実施例を示している。このルーチンは、一定クランク角毎、或いは、一定時間毎の割り込みにより実行される。図15を参照すると、まず初めに、ステップ130において、ノッキングセンサ18の出力信号の取り込み期間中であるか否かが判別される。この実施例では、ノッキングセンサ18の出力信号の取り込み期間が圧縮上死点から圧縮上死点後90°までの間とされている。従って、クランク角が圧縮上死点前であるときには、処理サイクルを終了し、クランク角が圧縮上死点を過ぎるとノッキングセンサ18の出力信号の取り込み期間中であると判別され、ステップ131に進む。
ステップ131では、ノッキングセンサ18の出力信号が、対応するAD変換器36および各バンドパスフィルタ37a、37b、37c、37d、37eを介して取り込まれる。即ち、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値が取り込まれる。次いで、ステップ132では、取り込まれたフィルタリング後のノッキングセンサ18の出力値が電子制御ユニット30のメモリ32内に記憶される。次いで、ステップ133では、ノッキングセンサ18の出力信号の取り込み期間が終了したか否かが判別される。即ち、クランク角が圧縮上死点後90°に達したか否かが判別される。ステップ133において、ノッキングセンサ18の出力信号の取り込み期間が終了していないと判別されたとき、即ち、クランク角が圧縮上死点後90°に達していないと判別されたときには処理サイクルを終了する。
これに対し、ステップ133において、ノッキングセンサ18の出力信号の取り込み期間が終了したと判別されたとき、即ち、クランク角が圧縮上死点後90°に達したと判別されたときにはステップ134に進む。このときメモリ32内には図6Bの黒丸で示すような各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値が記憶されている。ステップ134では、このメモリ32内に記憶されているフィルタリング後のノッキングセンサ18の出力値が、順次、対応する学習済みのニューラルネットワーク20a、20b、20c、20d、20eの入力層 ( L=1) の各ノードに入力される。このとき、学習済みの各ニューラルネットワーク20a、20b、20c、20d、20eからはノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)が出力され、従って、ステップ136に示されているように、ノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)が算出されることになる。
図16は、図14のステップ120において行われるノッキング強度代表値の推定処理ルーチンの別の実施例を示している。このルーチンも、一定クランク角毎、或いは、一定時間毎の割り込みにより実行される。なお、図16のステップ140からステップ143の内容は、図15のステップ130からステップ133の内容と同一である。即ち、図16を参照すると、まず初めに、ステップ140において、ノッキングセンサ18の出力信号の取り込み期間中であるか否かが判別される。この実施例でも、ノッキングセンサ18の出力信号の取り込み期間が圧縮上死点から圧縮上死点後90°までの間とされている。従って、クランク角が圧縮上死点前であるときには、処理サイクルを終了し、クランク角が圧縮上死点を過ぎるとノッキングセンサ18の出力信号の取り込み期間中であると判別され、ステップ141に進む。
ステップ141では、ノッキングセンサ18の出力信号が、対応するAD変換器36および各バンドパスフィルタ37a、37b、37c、37d、37eを介して取り込まれる。即ち、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値が取り込まれる。次いで、ステップ142では、取り込まれたフィルタリング後のノッキングセンサ18の出力値が電子制御ユニット30のメモリ32内に記憶される。次いで、ステップ143では、ノッキングセンサ18の出力信号の取り込み期間が終了したか否かが判別される。即ち、クランク角が圧縮上死点後90°に達したか否かが判別される。ステップ143において、ノッキングセンサ18の出力信号の取り込み期間が終了していないと判別されたとき、即ち、クランク角が圧縮上死点後90°に達していないと判別されたときには処理サイクルを終了する。
これに対し、ステップ143において、ノッキングセンサ18の出力信号の取り込み期間が終了したと判別されたとき、即ち、クランク角が圧縮上死点後90°に達したと判別されたときにはステップ144に進む。ステップ144では、メモリ32内に記憶されているフィルタリング後のノッキングセンサ18の出力値に基づいて、図6Cを参照しつつ説明したように、クランク角度5°毎に分割された各区間内における各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)が算出される。次いで、ステップ145では、各バンドパスフィルタ37a、37b、37c、37d、37eによるフィルタリング後のノッキングセンサ18の出力値の算出された各積分値が、対応する学習済みのニューラルネットワーク20a、20b、20c、20d、20eの入力層 ( L=1) の各ノードに入力される。このとき、学習済みの各ニューラルネットワーク20a、20b、20c、20d、20eからはノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)が出力され、従って、ステップ146に示されているように、ノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)が算出されることになる。
図17は、図15のステップ135において算出されたノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)、又は図16のステップ146において算出されたノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)に基づき、図14のステップ121において行われる最適推定値yeの算出ルーチンを示している。このルーチンは、一定クランク角毎の割り込みにより実行される。図17を参照すると、まず初めに、ステップ150において、ノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)が読み込まれる。次いで、ステップ151および152においてノッキング強度を代表する値の最適推定値yeが算出される。
例えば、図13Bに示される場合を例にとって説明すると、ステップ151では、ノッキング強度を代表する値の推定値yiのうちで最大の推定値yy と最小の推定値yz を除いた残りの推定値yv、yw、yx が選定され、次いで、ステップ152では、選定された推定値yv、yw、yxの平均値が、ノッキング強度を代表する値の最適推定値yeとされる。このようにしてノッキング強度を代表する値の最適推定値yeが求められる。
図18は、このようにして求められたノッキング強度を代表する値の最適推定値yeに基づき、図14のステップ122において行われるノッキング判定ルーチンを示している。このルーチンは、一定クランク角毎の割り込みにより実行される。図18を参照すると、まず初めに、ステップ160において、ノッキング強度を代表する値に対する閾値Mij が読み込まれる。この閾値Mij は、図19に示されるように、機関負荷Lと機関回転数Nに応じて複数個に分割された各機関運転領域に対して予め設定されている。
次いで、ステップ161では、算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいか否かが判別される。算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きくないと判別されたときにはステップ162に進んで、ノッキングが発生していないと判別され、次いで処理サイクルを終了する。なお、以下、このようにノッキング強度を代表する値の推定値ye が閾値Mij よりも大きくないときには、たとえ弱いノッキングが発生していたとしても、処理説明の便宜上、ノッキングが発生していないと言う。一方、算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいと判別されたときにはステップ163に進んで、ノッキングが発生していると判別され、次いで処理サイクルを終了する。
図20Aは、図18に示されるノッキング判定ルーチンにおける判定結果に基づき電子制御ユニット30内で実行される点火制御ルーチンを示している。このルーチンは、一定クランク角毎の割り込みにより実行される。図20Aを参照すると、まず初めに、ステップ170において、基準点火時期IG(BTDC)が算出される。この基準点火時期IGは、機関負荷Lと機関回転数Nの関数として、図20Bに示されるようなマップの形で予めメモリ32内に記憶されている。次いで、ステップ171では、図18に示されるノッキング判定ルーチンにおける判定結果に基づき、ノッキングが発生したか否かが判別される。ノッキングが発生したと判別されたときにはステップ172に進む。
ステップ172では、点火時期を遅角させるために点火時期遅角量ΔIGに一定量αが加算される。次いで、ステップ176では、基準点火時期IGから点火時期遅角量ΔIGを減算することによって最終的な点火時期IGOが算出される。この最終的な点火時期IGOに基づいて。点火栓11による点火作用が制御される。このとき点火時期は一定量αだけ遅角される。一方、ステップ171において、ノッキングが発生していないと判別されたときにはステップ173に進み、点火時期を進角させるために点火時期遅角量ΔIGから一定量βが減算される。
次いで、ステップ174では、点火時期遅角量ΔIGか負になったか否かが判別され、点火時期遅角量ΔIGか負になっていないときにはステップ176に進んで、最終的な点火時期IGOが算出される。このときには、点火時期は一定量βだけ進角される。なお、本発明による実施例では、一定量αは一定量βよりも大きな値に設定されている。言い換えると、遅角量αは進角量βよりも大きな値に設定されている。一方、ステップ174において、点火時期遅角量ΔIGか負になったと判別されたときにはステップ175に進んで点火時期遅角量ΔIGが零とされた後、ステップ176に進む。このときには、点火時期が基準点火時期IGとされる。
このように、本発明による実施例では、図21に示されるように、ノッキングセンサ18の出力値の夫々異なる周波数帯域のみを夫々通過させる複数個のバンドパスフィルタ37a、37b、37c、37d、37eと、各周波数帯域のバンドパスフィルタ37a、37b、37c、37d、37eに対して夫々設けられておりかつ対応する周波数帯域のバンドパスフィルタ37a、37b、37c、37d、37eによりフィルタリングされた後のノッキングセンサの出力値が夫々入力される複数個のニューラルネットワーク20a、20b、20c、20d、20eを記憶した記憶装置60とを具備している。各ニューラルネットワーク20a、20b、20c、20d、20eは、対応する周波数帯域のバンドパスフィルタ37a、37b、37c、37d、37eによりフィルタリングされた後のノッキングセンサ18の出力値が入力されたときに、点火により発生する混合気の燃焼圧を検出するための圧力センサ19の出力値から求められるノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)を出力するように事前学習されている。更に、機関運転時に取得されたノッキングセンサ18の出力値を各バンドパスフィルタ37a、37b、37c、37d、37eに入力すると共に各バンドパスフィルタ37a、37b、37c、37d、37eから出力されたフィルタリング後のノッキングセンサ18の出力値を夫々対応する学習済みニューラルネットワーク20a、20b、20c、20d、20eに入力して各学習済みニューラルネットワーク20a、20b、20c、20d、20eから出力されたノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)を取得する推定値取得部61と、この推定値取得部61により取得されたノッキング強度を代表する値の推定値yi(i=1,2,3,4,5)から特異な推定値を除いた一部の推定値を用いてノッキング強度を代表する値の最適推定値yを算出する算出部62と、この算出部62において算出されたノッキング強度を代表する値の最適推定値yeに基づいて点火時期の遅角制御を行う制御部63とを具備する。
また、本発明による実施例では、ノッキング強度を代表する値が、予め設定されている期間内における圧力センサ19の出力値のピーク値であり、或いは、ノッキング強度を代表する値が、予め設定されている期間内における圧力センサ19の出力値の積分値である。また、この場合、予め設定されている期間が、一定のクランク角度範囲、例えば、圧縮上死点から圧縮上死点後90°の範囲である。
一方、本発明による実施例では、ノッキングセンサ18の出力値が、予め設定されている期間内における出力値であり、ノッキングセンサ18の出力値が、予め設定されている期間内において等分割された区間内におけるノッキングセンサ18の出力値の積分値である。この場合、予め設定されている期間が、一定のクランク角度範囲、例えば、圧縮上死点から圧縮上死点後90°の範囲である。また、ノッキングセンサ18の出力値の積分値に関し、一例を挙げると、このノッキングセンサ18の出力値の積分値は、クランク角度5°毎に等分割された各区間内におけるフィルタリング後のノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)である。
さて、前述したように、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 から特異な推定値を除いた一部の推定値を用いて、ノッキング強度を代表する値の最適推定値yeを求めると、求められたノッキング強度を代表する値の最適推定値yeは、推定値の平均値であるために、未学習の機関の振動の影響をそれほど受けない値となる。従って、図21に示される点火時期制御装置を用いると、ノッキングにより機関本体1に振動が発生していると誤判断されるのを抑制することができ、従って、図21に示される点火時期制御装置を用いれば十分な場合もある。しかしながら、この場合、ノッキング強度を代表する値の最適推定値yeが、未学習の機関の振動の影響を全く受けないようにすることは難しく、ノッキングにより機関本体1に振動が発生していると誤判断されるのを抑制することはできるが、更に抑制することが望ましい場合もある。そこで、次に、ノッキングにより機関本体1に振動が発生していると誤判断されるのを更に抑制することのできる第2の実施例について説明する。
この第2の実施例を説明するに当たり、最初に,内燃機関において実施されているノッキング処理について説明する。なお、この第2の実施例では、ニューラルネットワーク20a、20b、20c、20d、20eおよび学習済みニューラルネットワーク20a、20b、20c、20d、20eを夫々、第1のニューラルネットワーク20a、20b、20c、20d、20eおよび第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eと称する。さて、図14から図18および図20Aに示されるノッキング処理は、気筒毎に夫々独立して実行され、図22は、或る一つの気筒におけるノッキング処理の一例を示している。図22には、サイクル番号と、点火の行われるタイミングと、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eへの入力値x1、x2・・・xn−1、xnの取り込み作業が行なわれる期間と、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eから出力されたノッキング強度を代表する値の推定値yi に基づき算出されたノッキング強度を代表する値の最適推定値yeと、ノッキングが発生したか否かの判定が行われるノッキング判定時期と、ノッキングの判定結果と、点火時期とが示されている。
本発明による実施例では、吸気上死点TDCから次の吸気上死点TDCまでの720クランク角度が1サイクルとされており、機関の運転が開始されたときからのサイクル番号がk1、k2、・・・kn、kn+1、kn+2、kn+3・・・とされている。図22には、これらサイクル番号が、kn、kn+1、kn+2、kn+3となったときが示されており、ノッキング処理を容易に理解し得るように、以下、これらサイクル番号kn、kn+1、kn+2、kn+3を用いて説明する。本発明による実施例では、ピストン4の位置が圧縮上死点TDCに達する毎に、図14に示されるノッキング処理が実行される。ノッキング処理が実行されると、図15又は図16に示されるノッキング強度代表値の推定ルーチンが実行され、第1のニューラルネットワーク20a、20b、20c、20d、20eからノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 が出力される。
第1のニューラルネットワーク20a、20b、20c、20d、20eからノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 が出力されると、図17に示される最適推定値yeの算出ルーチンが実行され、ノッキング強度を代表する値の最適推定値yeが算出される。ノッキング強度を代表する値の最適推定値yeが算出されると、図18に示されるノッキング判定ルーチンが実行され、ノッキングが発生したか否かの判定が行われる。このとき、ノッキング強度を代表する値の最適推定値ye が閾値Mij を越えると、ノッキングが発生したと判定される。ノッキングが発生したか否かの判定が行われると、図20Aに示される点火制御ルーチンが実行される。
図22からわかるように、ノッキング強度を代表する値の最適推定値ye が閾値Mij を越えると、次のサイクルでは点火時期が遅角される。点火時期が遅角されると多くの場合、ノッキング強度を代表する値の最適推定値ye は閾値Mij 以下まで低下する。一方、点火時期が遅角されても、ノッキング強度を代表する値の最適推定値ye が閾値Mij以下まで低下しない場合もある。図22は、このように点火時期が遅角されても、ノッキング強度を代表する値の最適推定値ye が閾値Mij以下まで低下しない場合の例を示している。
即ち、図22に示される例では、サイクルが番号knのサイクルとなったときにノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたと判別され、それにより次のサイクルkn+1において点火時期が遅角される。次いで、次のサイクルkn+1でも、ノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたと判別され、それにより更に次のサイクルkn+2においても点火時期が遅角される。サイクルkn+2において点火時期が遅角されると、ノッキング強度を代表する値の最適推定値ye が閾値Mij 以下に低下し、それによりノッキングが発生していないと判別される。ノッキングが発生していないと判別されると、次のサイクルkn+3では点火時期が進角され、ノッキングが発生しない限り、点火時期は進角され続ける。なお、図22からわかるように、本発明による実施例では、遅角量に比べて進角量は小さくされている。
さて、前述したように、図5に示される内燃機関は、第1のニューラルネットワーク20a、20b、20c、20d、20eの重みを学習するために、図1に示される内燃機関に圧力センサ19を取り付けた内燃機関である。これら図1或いは図5に示される内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用い、図22を参照しつつ説明したようなノッキング処理を行った場合には、何ら問題は生じない。一方、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 から特異な推定値を除いた一部の推定値を用いて、ノッキング強度を代表する値の最適推定値yeを求めると、求められたノッキング強度を代表する値の最適推定値yeは、未学習の機関の振動の影響をそれほど受けなくなるが、全く受けないわけではない。従って、他の内燃機関、例えば、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用い、図22を参照しつつ説明したようなノッキング処理を行うと、未学習の機関の振動の影響を受けて問題を生じる場合がある。そこで次に、どのような問題を生ずるかについて図23Aから図26を参照しつつ説明する。
図23Aは燃焼室5内の燃焼圧とクランク角(ATDC)との関係を示している。なお、図23Aにおいて実線はノッキングが発生したときの燃焼室5内の燃焼圧の変化を示しており、破線はノッキングが発生していないときの燃焼室5内の燃焼圧の変化を示している。図23Aからわかるように、ノッキングが発生すると、圧縮上死点TDC後に、燃焼室5内の燃焼圧が急激に上昇する。図23Bには、このときの実際の燃焼室5内の燃焼圧の上昇量とノッキング強度との関係が各点で示されている。図23Bに示されるように燃焼室5内の燃焼圧の上昇量が大きくなるほど、ノッキング強度が大きくなる。即ち、燃焼室5内の燃焼圧の上昇量が大きくなるほど、ノッキング強度を代表する値の最適推定値ye が大きくなる。従って、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの入力値と、第1のニューラルネットワーク20a、20b、20c、20d、20eの出力値に基づき算出されたノッキング強度を代表する値の最適推定値ye は、これら燃焼室5内の燃焼圧の上昇量とノッキング強度との関係を示していることになる。
図24は、図5に示される内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用い、図22に示されるノッキング処理が行われたときの圧力センサ19の出力値と、ノッキングセンサ18の出力値と、燃焼室5内の燃焼圧と、ノッキング強度を代表する値の最適推定値ye の夫々の値の変化を示している。なお、図24において、(a)は図22のサイクルknにおけるこれらの値の変化を示しており、(b)は図22のサイクルkn+1におけるこれらの値の変化を示しており、(c)は図22のサイクルkn+2におけるこれらの値の変化を示している。図22からわかるように、サイクルが、kn+1、kn+2へと進むにつれて、点火時期が次第に遅角され、図24からわかるように、サイクルが、kn+1、kn+2へと進むにつれて、圧力センサ19の出力値、ノッキングセンサ18の出力値、燃焼室5内の燃焼圧の上昇量およびノッキング強度を代表する値の最適推定値ye が次第に低下していく。
このように図22および図24から、点火時期の遅角量を増大させると、燃焼室5内の燃焼圧の上昇量およびノッキング強度を代表する値の最適推定値ye が低下することがわかる。この場合、点火時期の遅角速度を増大させると、燃焼室5内の燃焼圧の上昇量およびノッキング強度を代表する値の最適推定値ye が低下することもわかっている。即ち、図25Aの各点で示されるように、点火時期の遅角量又は遅角速度を増大させると、燃焼室5内の燃焼圧の上昇割合が低下し、図25Bの各点で示されるように、点火時期の遅角量又は遅角速度を増大させると、ノッキング強度を代表する値の最適推定値ye が低下することがわかっている。
一方、図26は、図5に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関に圧力センサ19を取り付け、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いて、図22を参照しつつ説明したようなノッキング処理が行なわれた場合の圧力センサ19の出力値と、ノッキングセンサ18の出力値と、燃焼室5内の燃焼圧と、ノッキング強度を代表する値の最適推定値ye の夫々の値の変化を示している。なお、この図26においても、(a)、(b)、(c)は、図22の各サイクルkn、kn+1,kn+2におけるこれらの値の変化を示している。
さて、前述したように、機関の構成部品には公差があり、従って、機関毎に機関の構成部品の寸法がばらつくために、機関毎に異なる機関の振動が発生する。しかしながら、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eは、このように機関毎に発生する異なる機関の振動については、重みの学習がなされておらず、従って、このように重みの学習がなされていない機関の振動、即ち、未学習の機関の振動が発生すると、たとえ周波数帯域毎に第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eが設けられていたとしても、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eにおいて、ノッキングにより機関本体1に振動が発生していると誤判断される場合がある。図26の(a)は、一例として、サイクルknにおいてノッキングおよび未学習の機関の振動が発生していてノッキング強度を代表する値の最適推定値ye が閾値Mij を越え、その結果、ノッキングが発生していると判別された場合を示している。
この場合、次のサイクルkn+1では、点火時期が遅角され、それにより図26の(b)で示されるように燃焼室5内の燃焼圧の上昇量は低下し、圧力センサ19の出力値も低下する。しかしながら、点火時期の影響を受けない未学習の機関の振動が発生している場合には、点火時期が遅角されたとしても未学習の機関の振動は抑制されず、従って、図26に示される例では、未学習の機関の振動は、点火時期が遅角された後も、図26の(b)で示されるように発生し続ける。その結果、図23に示される例では、図26の(b)で示されるように、周波数帯域毎に第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eが設けられていたとしても、未学習の機関の振動によってノッキング強度を代表する値の最適推定値ye が閾値Mij 以上となり、その結果、依然として、ノッキングが発生していると判別されることになる。
この場合、次のサイクルkn+2では、再度点火時期が遅角され、従って、図26の(c)で示されるように燃焼室5内の燃焼圧の上昇量は低下し、圧力センサ19の出力値も低下する。しかしながらこのように点火時期が遅角されても、未学習の機関の振動が抑制されず、その結果、図26に示される例では、点火時期が遅角された後も、図26の(c)で示されるように未学習の機関の振動が発生し続ける。その結果、図26の(c)で示されるように、周波数帯域毎に第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eが設けられていたとしても、未学習の機関の振動によってノッキング強度を代表する値の最適推定値ye が閾値Mij 以上となり、その結果、依然としてノッキングが発生していると判別されることになる。このように、未学習の機関の振動が発生し続けると、周波数帯域毎に第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eが設けられていたとしても、ノッキング強度を代表する値の最適推定値ye が閾値Mijを越え続け、それにより点火時期の遅角作用が続行され続ける場合がある。このような場合には、点火時期が過剰に遅角し、その結果、機関の出力が大幅に低下してしまうという問題を生ずることになる。
一方、ノッキングが発生していないが、未学習の機関の振動が発生したために、ノッキング強度を代表する値の最適推定値ye が閾値Mij を越え、ノッキングが発生していると判別された場合も同様である。この場合も、未学習の機関の振動が発生し続けると、周波数帯域毎に第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eが設けられていたとしても、ノッキング強度を代表する値の最適推定値ye が閾値Mijを越え続け、点火時期の遅角作用が続行され続ける場合が生ずる。この場合にも、点火時期が過剰に遅角し、それにより機関の出力が大幅に低下してしまうという問題を生ずることになる。
この第2実施例では、図5に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いてノッキング処理を行なった場合に、未学習の機関の振動の発生により点火時期が過剰に遅角することがないように点火時期が制御される。次に、このことについて、図27Aから図28Bを参照しつつ説明する。なお、図27Aから図28Bは、図22と同様に、サイクルknにおいてノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたと判別され、それにより次のサイクルkn+1において点火時期が遅角された場合におけるノッキング強度を代表する値の最適推定値ye および点火時期の変化を示している。
まず初めに、図27Aを参照すると、図27Aは、図1又は図5に示される内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用い、ノッキングセンサ18の出力値に基づいてノッキング処理が行われたときのノッキング強度を代表する値の最適推定値ye および点火時期の変化を示している。図27Aに示される例は、サイクルknにおいてノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたと判別され、それにより次のサイクルkn+1において点火時期がαだけ遅角され、その結果、サイクルkn+1におけるノッキング強度を代表する値の最適推定値ye がΔyeだけ低下して、yeeになった場合を示している。なお、図27Aは、ノッキング強度を代表する値の最適推定値ye がyeeになったときに、ノッキング強度を代表する値の最適推定値ye が閾値Mij 以下になった場合を示しており、この場合には、次のサイクルkn+2 において、点火時期がβ1だけ進角される。
一方、図27Bは、図5に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用い、ノッキングセンサ18の出力値に基づいてノッキング処理を行うようにした場合の新たなノッキング処理方法を説明するための図である。なお、図27Bは、実線で示されるように、サイクルknにおいて、ノッキングおよび未学習の機関の振動の双方の発生によりノッキング強度を代表する値の最適推定値ye が閾値Mij を越え、サイクルkn+1以降は、周波数帯域毎に第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eが設けられていたとしても、未学習の機関の振動によりノッキング強度を代表する値の推定値ye が暫くの間、閾値Mij を越え続けている場合を示している。即ち、実際の内燃機関では、未学習の機関の振動は特定の運転状態で発生し、機関の運転状態が変化すると次第に収まるので、図27Bに示されるように、ノッキング強度を代表する値の推定値ye は、一時的に閾値Mij を越え続けていたとしても、暫くすると次第に低下していく。ところが、図27Bに示されるようにノッキング強度を代表する値の最適推定値ye が閾値Mij を越え続けている場合、図14から図20Aに示されるルーチンによりノッキング処理が行われると、点火時期が遅角され続け、その結果、点火時期が過剰に遅角されることになる。そこでこの第2実施例では、点火時期が過剰に遅角されるのを阻止するために、点火時期が遅角されたときに、ノッキングの発生によりノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 に基づき算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij を越えているのか否かを判別し、ノッキングの発生によりノッキング強度を代表する値の最適推定値ye が閾値Mij を越えているのではないと判別されたときには、次のサイクルにおいて点火時期を遅角しないようにしている。
即ち、図27Bに示されるように、図5に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いてノッキング処理が行われた場合には、ノッキングのみが発生することによりノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたのか、未学習の機関の振動のみが発生することによりノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたのか、ノッキングおよび未学習の機関の振動の双方が発生することによりノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたのかは、わからない。
しかしながら、図27Aに示されるように、ノッキングの発生によりノッキング強度を代表する値の最適推定値ye が閾値Mij を越え、それにより点火時期がαだけ遅角された場合には、次のサイクルにおけるノッキング強度を代表する値の最適推定値ye がΔyeだけ低下して、yeeになることはわかっている。
従って、図27Bに示されるように、例えば、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いてノッキング処理を行った場合においても、ノッキングの発生のみによりノッキング強度を代表する値の最適推定値ye が閾値Mij を越え、それにより点火時期がαだけ遅角された場合には、破線で示されるように、次のサイクルkn+1におけるノッキング強度を代表する値の最適推定値ye はΔyeだけ低下して、yeeになると予測される。従って、点火時期がαだけ遅角されたときに、ノッキング強度を代表する値の最適推定値yeがこの予測値yee近くまで低下すれば、ノッキングが発生したと判断できることになる。また、このとき、ノッキング強度を代表する値の推定値ye は、ノッキング強度を正しく示していることになる。
一方、点火時期がαだけ遅角されたときに、図27Bにおいて、実線で示されるように、ノッキング強度を代表する値の最適推定値yeが予測値yee 近くまで低下しないときには、サイクルknにおいて、ノッキングの発生のみによるのではなく、未学習の機関の振動の発生により、或いは、ノッキングおよび未学習の機関の振動の双方の発生によりノッキング強度を代表する値の最適推定値ye が閾値Mij を越えていることになる。従って、このときには、ノッキング強度を代表する値の最適推定値ye が、ノッキング強度を正しく示していないことになる。即ち、点火時期がαだけ遅角されたときのノッキング強度を代表する値の最適推定値yeeと第1の学習済みニューラルネットワーク20から出力されるノッキング強度を代表する値の最適推定値ye との差が予め定められた設定値よりも小さいときには、ノッキング強度を代表する値の最適推定値ye は、ノッキング強度を正しく示しており、この差が予め定められた設定値よりも大きいときには、ノッキング強度を代表する値の最適推定値ye は、ノッキング強度を正しく示していないことになる。
そこでこの第2実施例では、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いてノッキング処理を行う場合には、図27Bに示されるように、サイクルknにおいて、ノッキング強度を代表する値の最適推定値ye が閾値Mij を越えたと判断された場合、次のサイクルkn+1では、点火時期がαだけ遅角されたときのノッキング強度を代表する値の最適推定値yeeと第1の学習済みニューラルネットワーク20から出力されるノッキング強度を代表する値の最適推定値ye との差が予め定められた設定値よりも小さいか、又は、大きいかに応じて、更に次のサイクルkn+2における点火時期の遅角制御が行われる。
即ち、この差が予め定められた設定値よりも小さいときには、即ち、ノッキング強度を代表する値の最適推定値ye が、ノッキング強度を正しく示しているときには、ノッキング強度を代表する値の最適推定値ye に基づいて、点火時期の遅角制御が行われる。この場合、ノッキング強度を代表する値の最適推定値ye が、閾値Mij よりも大きいときには、点火時期の遅角作用が行われ、ノッキング強度を代表する値の最適推定値ye が、閾値Mij よりも小さいときには、点火時期の遅角作用は行われず、このとき、次のサイクルkn+2 では、点火時期がβ1だけ進角される。一方、この差が予め定められた設定値よりも大きいときには、即ち、ノッキング強度を代表する値の最適推定値ye が、ノッキング強度を正しく示していないときには、点火時期の遅角制御は行われず、様子をみるために、図27Bにおいて実線で示されるように点火時期がそのまま維持される。次いで、ノッキング強度を代表する値の最適推定値ye が値Mij よりも低下した後に、点火時期がβ1ずつ進角され始める。
なお、この第2実施例では、図27Bに示されるように、未学習の機関の振動によりノッキング強度を代表する値の最適推定値ye が閾値Mij を越え続けている場合における点火時期進角量β2は、図27Aに示されるように、ノッキングの発生のみによりノッキング強度を代表する値の最適推定値ye が閾値Mij を越えた場合における点火時期進角量β1に比べて小さくされている。即ち、未学習の機関の振動によりノッキング強度を代表する値の最適推定値ye が閾値Mij を越え続けている場合には、点火時期はゆっくりと進角される。
一方、図28Aは、図27Aと同様に、図1又は図5に示される内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用い、ノッキングセンサ18の出力値に基づいてノッキング処理が行われたときのノッキング強度を代表する値の最適推定値ye および点火時期の変化を示しており、図28Bは、図27Bと同様に、図5に示される内燃機関以外の他の内燃機関、例えば、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用い、ノッキングセンサ18の出力値に基づいてノッキング処理が行われたときのノッキング強度を代表する値の最適推定値ye および点火時期の変化を示している。なお、図28Aおよび図28Bは、ノッキング強度を代表する値の最適推定値ye が閾値Mij 以下となるまで点火時期がαだけ2回にわたり遅角された場合を示しており、点火時期が2回にわたり遅角されることを除けば、図27Aおよび図27Bに示される場合と同様である。
即ち、図28Aに示されるように、ノッキングの発生によりノッキング強度を代表する値の最適推定値ye が閾値Mij を越え、それにより点火時期がαだけ遅角された場合には、次のサイクルkn+1におけるノッキング強度を代表する値の最適推定値ye がΔye1だけ低下して、yee1となる。このとき、まだノッキングの発生が収まっていないために、ノッキング強度を代表する値の最適推定値ye が依然として閾値Mij が越えており、それにより点火時期が再度αだけ遅角される。その結果、次のサイクルkn+2におけるノッキング強度を代表する値の最適推定値ye がΔye2だけ低下して、yee2となる。
この第2実施例では、この場合も、図28Bの実線で示されるように、点火時期がαだけ遅角されたときのノッキング強度を代表する値の最適推定値yee1と第1の学習済みニューラルネットワーク20から出力されるノッキング強度を代表する値の最適推定値ye との差が予め定められた設定値よりも大きいときには、即ち、ノッキング強度を代表する値の最適推定値ye が、ノッキング強度を正しく示していないときには、点火時期の遅角制御は行われず、様子をみるために、図28Bにおいて実線で示されるように点火時期がそのまま維持される。次いで、ノッキング強度を代表する値の最適推定値ye が値Mij よりも低下した後に、点火時期がβ1ずつ進角され始める。
このように第2実施例では、市販用の内燃機関において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いてノッキング処理を行う場合、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値yeの予測値yeeと第1の学習済みニューラルネットワーク20から出力されるノッキング強度を代表する値の最適推定値ye との差が予め定められた設定値よりも小さいか、又は、大きいかに応じて、次のサイクルにおける点火時期の遅角制御が行われる。この場合、この第2実施例では、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値ye の予測低下量Δye、或いはノッキング強度を代表する値の最適推定値yeの予測値yeeが、第2のニューラルネットワークを用いて推定される。
図29から図36は、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値ye の予測低下量Δyeを、第2のニューラルネットワークを用いて推定するようにした第1の例を示しており、図37から図45は、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値yeの予測値yeeを、第2のニューラルネットワークを用いて推定するようにした第2の例を示している。そこで最初に、図29から図36を参照しつつ、第1の例について説明する。
図30は、第1の例において用いられている第2のニューラルネットワーク50を示している。図30を参照すると、この第2のニューラルネットワーク50においても、図3に示されるニューラルネットワークと同様に、L=1は入力層、L=2および L=3は隠れ層、L=4は出力層を夫々示している。この第1の例では、図30に示されるように、入力層 ( L=1) が5個のノードからなり、5個の入力値xx1、xx2、xx3、xx4、xx5が、入力層 ( L=1) の各ノードに入力される。一方、図30には隠れ層 ( L=2)および隠れ層 ( L=3)が記載されているが、これら隠れ層の層数は、1個又は任意の個数とすることができ、またこれら隠れ層のノードの数も任意の個数とすることができる。なお、出力層 ( L=4) のノードの数は1個とされており、出力層のノードからの出力値がΔyeで示されている。
次に、図30における入力値xx1、xx2、xx3、xx4、xx5と、出力値Δyeについて説明する。最初に出力値Δyeについて説明すると、この出力値Δyeは、ノッキングのみの発生により点火時期が遅角されたときのノッキング強度を代表する値の最適推定値ye の予測低下量を示している。一方、入力値xx1、xx2、xx3、xx4、xx5は、ノッキング強度を代表する値の最適推定値ye の低下量に強い影響を与える入力パラメータを示しており、これら入力パラメータの一覧表が図29に示されている。図29に示されるように、入力パラメータは、機関の運転状態を表すパラメータと、点火時期の遅角量α又は進角量β(β1又はβ2)と、一つ前のサイクルにおけるノッキング強度を代表する値の最適推定値yeoからなる。
なお、この第1の例では、機関の運転状態を表すパラメータが、機関回転数NEと、機関負荷Lと、EGR率ERからなる。即ち、第1の例では、機関回転数NE、機関負荷L、EGR率ER、点火時期の遅角量α又は進角量β、および一つ前のサイクルにおけるノッキング強度を代表する値の最適推定値yeoが夫々、入力値xx1、xx2、xx3、xx4、xx5とされ、これら入力値xx1、xx2、xx3、xx4、xx5が、第2のニューラルネットワーク50の入力層の各ノードに入力される。
図31は、図9に示される訓練データセットを作成する際に用いられた図5に示される機関本体1を用いて、第2のニューラルネットワーク50用訓練データセットを作成するために取得されたデータの一覧表を示している。これらのデータは、図5に示される機関本体1において、図14から図20Aに示されるルーチンを用いたノッキング処理を行いつつ、機関回転数NE、機関負荷L、EGR率ERおよび点火時期の遅角量αおよび進角量βの種々の組み合わせについてノッキングの発生しない運転状態とノッキングの発生する運転状態の双方の状態が生ずるように機関を運転させたときの、サイクル毎の機関回転数NE、機関負荷L、EGR率ER、ノッキング強度を代表する値の最適推定値ye および点火時期の遅角量αおよび進角量βを示している。これらのデータは、例えば、電子制御ユニット30のメモリ32内に一時的に記憶される。
なお、これらデータを取得する際、本発明による実施例では、点火時期遅角量αは一定に維持されており、点火時期進角量βは、進角量β1又は進角量β2のいずれかとされる。また、図31に示される一覧表には、点火時期が遅角量αだけ遅角されたときのノッキング強度を代表する値の最適推定値ye の低下量Δyeが含まれている。この低下量Δyeは、点火時期が遅角量αだけ遅角されたときのノッキング強度を代表する値の最適推定値ye と、一つ前のサイクルにおけるノッキング強度を代表する値の最適推定値yeo との差から求められる。例えば、サイクルkn+1でおいて点火時期が遅角量αだけ遅角されたときには、サイクルknのときのノッキング強度を代表する値の最適推定値yenから、サイクルkn+1のときのノッキング強度を代表する値の最適推定値ye n+1 を減算することによって、低下量Δye n+1が求められる。この低下量Δyeの算出は、例えば、CPU33において行われる。
このようにして、点火時期が遅角量αだけ遅角されたときに、図31に示されるようにノッキング強度を代表する値の最適推定値ye の低下量Δyeが算出され、算出された低下量Δyeが、遅角量αと共に、例えば、電子制御ユニット30のメモリ32内に一時的に記憶される。このノッキング強度を代表する値の最適推定値ye の低下量Δyeは、ノッキング強度を代表する値の最適推定値ye の実際の低下量を表しており、従って、このノッキング強度を代表する値の最適推定値ye の低下量Δyeは、第2の学習済みニューラルネットワーク50の重みを学習する際の正解値、即ち、教師データとされる。
図32は、第2のニューラルネットワーク50の重みを学習するための訓練データセットを示している。この訓練データセットは、第1の例では、図31に示される一覧表から、点火時期が遅角量αだけ遅角されたときのサイクルにおける機関回転数NE、機関負荷L、EGR率ER、点火時期の遅角量αに関するデータ、および点火時期が遅角量αだけ遅角されたときのサイクルの一つ前のサイクルにおけるノッキング強度を代表する値の最適推定値yeoに関するデータを抜き出すことによって作成されており、この訓練データセットは、図31に示される一覧表から抜き出された入力値xx1、xx2、xx3、xx4、xx5と、教師データytとの関係を表すm個のデータからなる。なお、この場合、図31に示される機関回転数NE、機関負荷L、EGR率ER、点火時期の遅角量α、および一つ前のサイクルにおけるノッキング強度を代表する値の最適推定値yeoが夫々、入力値xx1、xx2、xx3、xx4、xx5とされ、図31に示されるノッキング強度を代表する値の最適推定値ye の低下量Δyeが、教師データytとされる。
この第1の例では、図30に示される第2のニューラルネットワーク50の入力層 ( L=1) のノード数、隠れ層 ( L=2)および隠れ層 ( L=3) のノード数および出力層 ( L=4) のノード数、および、図32に示される訓練データセットが、学習装置23のメモリ24に記憶され、学習装置23において、図10を参照しつつ既に説明した学習処理方法と同様な学習処理方法により、図10に示される学習処理ルーチンを用いて、第2のニューラルネットワーク50の重みの学習が行われる。それにより、第2の学習済みニューラルネットワーク50、即ち、ノッキング強度を代表する値の最適推定値ye の低下量Δyeの推定モデルが作成される。
この第1の例では、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eにより生成された、ノッキング強度を代表する値の推定モデルと、第2の学習済みニューラルネットワーク50により生成されたノッキング強度を代表する値の推定値ye の低下量Δyeの推定モデルを用いて、市販車両の機関におけるノッキング処理が行われる。そのためにこれらノッキング強度を代表する値の推定モデルおよびノッキング強度を代表する値の推定値ye の低下量Δyeの推定モデル、即ち、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび第2の学習済みニューラルネットワーク50が、市販車両の電子制御ユニット30内に格納される。これらモデルの市販車両の電子制御ユニット30への格納作用は、図13を参照しつつ既に説明した方法と同様な方法でもって、図13に示される電子制御ユニットへのデータ読み込みルーチンを用いて行われる。
このように第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび第2の学習済みニューラルネットワーク50が、市販車両の電子制御ユニット30に格納されると、電子制御ユニット30のメモリ32内には、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび第2の学習済みニューラルネットワーク50が形成される。図33は、市販車両の電子制御ユニット30のメモリ32内に形成された第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび第2の学習済みニューラルネットワーク50を用いて、市販車両の機関運転時に実行されるノッキング処理を示している。このノッキング処理は、気筒毎に、個別に、一サイクル毎に実行される。この第1の例では、このノッキング処理は、例えば、クランク角が圧縮上死点に達したときに開始される。
図33を参照すると、まず初めにステップ220において、圧力センサ19の出力値から求められるノッキング強度を代表する値、即ち、ノッキング強度代表値の推定処理が行われる。次いで、ステップ221では、ノッキング強度を代表する値の最適推定値ye の算出処理が行われる。次いで、ステップ222では、ノッキングが生じているか否かのノッキング判定処理が行われ、次いで、ステップ223では、点火制御が行われる。ステップ220において行われるノッキング強度代表値の推定処理は、図15又は図16のいずれか一方に示されるノッキング強度代表値の推定ルーチンにより行われ、ステップ221において行われるノッキング強度を代表する値の最適推定値ye の算出処理は、図17に示される最適推定値ye の算出ルーチンにより行われる。これらのノッキング強度代表値の推定ルーチンおよび最適推定値ye の算出ルーチンについては既に説明したので、これらノッキング強度代表値の推定ルーチンおよび最適推定値ye の算出ルーチンについては説明を省略する。なお、これらのノッキング強度代表値の推定ルーチンおよび最適推定値ye の算出ルーチンが実行されると、ノッキング強度を代表する値の最適推定値ye が算出される。
図34および図35は、図33のステップ221においてノッキング強度を代表する値の最適推定値ye が算出されたときに、このノッキング強度を代表する値の最適推定値ye に基づき、図33のステップ222で行われるノッキング判定ルーチンを示している。図34を参照すると、まず初めに、ステップ230において、ノッキング強度を代表する値に対する閾値Mij が読み込まれる。この閾値Mij は、前述したように、図18に示される如く、機関負荷Lと機関回転数Nに応じて複数個に分割された各機関運転領域に対して予め設定されている。
次いで、ステップ231では、ノッキングが発生したか否かの判定を中止すべきときにセットされる判定中止フラグがセットされているか否かが判別される。この判定中止フラグは、通常、リセットされており、従って、ステップ232に進む。ステップ232では、ノッキングが発生したと判別されたときにセットされるノッキング発生フラグがセットされているか否かが判別される。このノッキング発生フラグは、通常、リセットされており、従って、ステップ237にジャンプする。ステップ237では、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいか否かが判別される。ノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きくないと判別されたときにはステップ239に進んで、ノッキング発生フラグがリセットされる。次いで、処理サイクルを終了する。
一方、ステップ237において、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいと判別されたときにはステップ238に進んで、ノッキング発生フラグがセットされる。ノッキング発生フラグがセットされると、後述するように、次のサイクルにおける点火時期がαだけ遅角される。また、ノッキング発生フラグがセットされると、次のサイクルでは、ステップ232からステップ233に進む。ステップ233では、機関回転数NE、機関負荷L、EGR率ER、点火時期の遅角量α、および一つ前のサイクルにおいて第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの出力値に基づき算出されたノッキング強度を代表する値の最適推定値yeo が第2の学習済みニューラルネットワーク50の入力層の各ノードに入力され、それにより第2の学習済みニューラルネットワーク50からは、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値ye の予測低下量Δyeが出力される。
次いで、ステップ234では、一つ前のサイクルにおいて第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの出力値に基づき算出されたノッキング強度を代表する値の最適推定値yeoから、ノッキング強度を代表する値の最適推定値ye の予測低下量Δyeを減算することによって、ノッキング強度を代表する値の最適推定値ye の予測値yee が算出される。次いで、ステップ235では、未学習の機関の振動が発生しているか否かを判別するために、ノッキング強度を代表する値の最適推定値ye の予測値yeeとステップ221において算出されたノッキング強度を代表する値の最適推定値ye との差(yee ―ye)の絶対値が設定値Sよりも大きいか否かが判別される。
即ち、ノッキングのみが発生しているときには、ノッキング強度を代表する値の最適推定値ye の予測値yeeとステップ221において算出されたノッキング強度を代表する値の最適推定値ye とは、ほぼ等しくなる筈である。従って、ノッキングのみが発生しているときには、差(yee ―ye)の絶対値が設定値Sよりも小さくなる。従って、このときには、ステップ236に進んで、未学習の機関の振動、即ち、ノイズが発生していることを示すノイズフラグがリセットされる。ノイズフラグがリセットされると、後述するように、点火時期の進角量がβ1とされる。
一方、このときには、第1の学習済みニューラルネットワーク20から出力されたノッキング強度を代表する値の最適推定値ye は、正しいノッキング強度を示している。従って、このときには、ステップ237に進んで、ノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいか否かが判別される。ノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいと判別されたときには、ステップ238に進んで、ノッキング発生フラグがセットされる。このときには、次のサイクルにおける点火時期がαだけ遅角される。
一方、ノッキングおよび未学習の機関の振動が発生しているとき、或いは、未学習の機関の振動のみが発生しているときには、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye は、ノッキング強度を代表する値の最適推定値ye の予測値yeeに比べて大きい筈である。従って、このときには、差(yee ―ye)の絶対値が設定値Sよりも大きくなる。このときには、ステップ235からステップ240に進んで、未学習の機関の振動、即ち、ノイズが発生していることを示すノイズフラグがセットされる。ノイズフラグがセットされると、後述するように、点火時期の進角量がβ2とされる。次いで、ステップ241に進む。
ステップ241では、ノッキング発生フラグがリセットされる。一方、このときには、第1の学習済みニューラルネットワーク20から出力されたノッキング強度を代表する値の最適推定値ye は、ノッキング強度を正しく示していない。従って、このときには、点火時期の進角作用および遅角作用を一次的に中止するために、ステップ242において、判定中止フラグがセットされる。次いで、処理サイクルを終了する。
判定中止フラグがセットされると、次のサイクルでは、ステップ231からステップ243に進む。ステップ243およびステップ244では、ノッキング強度を代表する値の最適推定値ye が閾値Mij を越えた後、未学習の機関の振動の発生により、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きくなる状態が続いている場合に、点火時期の進角作用および遅角作用をに中止し続けると共に、ノッキングが発生したか否かの判定を中止し続ける処理が行われる。
即ち、ステップ243では、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいか否かが判別される。ノッキング強度を代表する値の最適推定値ye が閾値Mijよりも大きいと判別されたときには、処理サイクルを終了する。これに対し、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye が閾値Mij よりも小さくなったと判別されたときには、ステップ244に進んで、判定中止フラグをリセットさせる処理が行われる。次いで、ステップ232に進んで、ノッキング判定処理が再開される。
図36は、図34および図35に示されるノッキング判定ルーチンにおける判定結果に基づき電子制御ユニット30内で実行される点火制御ルーチンを示している。図36を参照すると、まず初めに、ステップ250において、ノッキング判定ルーチンにおいて用いられている判定中止フラグがセットされているか否かが判別される。判定中止フラグがセットされていると判別されたときには処理サイクルを終了する。これに対し、判定中止フラグがセットされていないと判別されたときには、ステップ251に進んで、基準点火時期IG(BTDC)が算出される。この基準点火時期IGは、前述したように、機関負荷Lと機関回転数Nの関数として、図20Bに示されるようなマップの形で予めメモリ32内に記憶されている。次いで、ステップ252では、図34および図35に示されるノッキング判定ルーチンにおいて、ノッキング発生フラグがセットされているか否かが判別される。ノッキング発生フラグがセットされていると判別されたときにはステップ260に進む。
ステップ260では、点火時期を遅角させるために点火時期遅角量ΔIGに一定量αが加算される。次いで、ステップ259では、基準点火時期IGから点火時期遅角量ΔIGを減算することによって、次のサイクルにおける最終的な点火時期IGOが算出される。次のサイクルでは、この最終的な点火時期IGOに、点火栓11による点火作用が行われる。このとき点火時期は一定量αだけ遅角される。一方、ステップ252において、ノッキング発生フラグがリセットされていると判別されたときにはステップ253に進み、図34および図35に示されるノッキング判定ルーチンにおいて、ノイズフラグがセットされているか否かが判別される。
ノイズフラグがセットされていないと判別されたときにはステップ254に進んで、進角量β1がβとされ、次いでステップ256に進む。一方、ノイズフラグがセットされていると判別されたときにはステップ255に進んで、進角量β2がβとされ、次いでステップ256に進む。ステップ256では、点火時期を進角させるために点火時期遅角量ΔIGからβが減算される。次いで、ステップ257では、点火時期遅角量ΔIGか負になったか否かが判別され、点火時期遅角量ΔIGか負になっていないときにはステップ259に進んで、次のサイクルにおける最終的な点火時期IGOが算出される。このときには、点火時期はβだけ進角される。一方、ステップ257において、点火時期遅角量ΔIGか負になったと判別されたときにはステップ258に進んで点火時期遅角量ΔIGが零とされた後、ステップ259に進む。このときには、点火時期が基準点火時期IGとされる。
次に、図37から図45を参照しつつ、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値yeの予測値yeeを、第2のニューラルネットワークを用いて推定するようにした第2の例について説明する。この第2の例では、第2のニューラルネットワークとして、リカレントニューラルネットワークが用いられている。図37は、第2の例で用いられているリカレントニューラルネットワーク(RNN)を展開して表した図を示しており、図38は、リカレントニューラルネットワークを示している。このリカレントニューラルネットワークは周知であり、従って、以下、簡単にリカレントニューラルネットワークについて説明する。
図37において、x1 t−1、x2 t−1、x1 t、x2 t、x1 t+1、x2 t+1、x1 t+2、x2 t+2 は、夫々時刻t−1、t、t+1、t+2におけるリカレントニューラルネットワークの入力層への時系列入力値を示しており、yt、yt+1、yt+2、yt+3 は、夫々時刻t−1、t、t+1、t+2におけるリカレントニューラルネットワークの出力層からの出力値を示している。また、ht−1、ht、ht+1、ht+2 (hはベクトル)は、夫々時刻t−1、t、t+1、t+2におけるリカレントニューラルネットワークの隠れ層からの出力値を表しており、これら、ht−1、ht、ht+1、ht+2 は、隠れ状態ベクトルと称される。
一方、図38を参照すると、このリカレントニューラルネットワークにおいて、L=1は入力層、L=2は隠れ層、L=3は出力層を夫々示している。図38において鎖線枠内のノードは実際には存在せず、説明のために記載したノードであり、従って、図38に示される例では、入力層 ( L=1) が2個のノードからなる。また、図38に示される例では、隠れ層 ( L=2) がm個のノードからなる(図38には3個のみが記載されている)。一方、図38には一つの隠れ層 ( L=2)しか記載されていないが、この隠れ層の層数は、任意の個数とすることができる。なお、出力層 ( L=3) のノードの数は1個とされている。
図38は、図37の時刻tにおける入力値x
1 t、x
2 tと、出力値y
t+1とを示している。また、図38において、h
1 t、h
2 t・・・h
m t は、図37の時刻tにおける隠れ層の各ノードからの出力値、即ち、隠れ状態ベクトルを示している。リカレントニューラルネットワークでは、図38に示されるように、一つ前の時刻t−1における隠れ層の各ノードからの出力値、即ち、隠れ状態ベクトルh
1 t−1、h
2 t−1・・・h
m t−1 が、夫々対応する重みwを掛けて、隠れ層の各ノードに入力される。従って、隠れ層の各ノードには、各入力値x
1 t、x
2 tに夫々対応する重みwを掛けた値と、一つ前の時刻t−1における各隠れ状態ベクトルh
1 t−1、h
2 t−1・・・h
k t−1に夫々対応する重みwを掛けた値が入力され、図38の隠れ層 ( L=2) の各ノード(k=1,2・・・m)において算出される総入力値u
kは、次式のようになる。
隠れ層の各ノードにおいて算出された総入力値u
kは、活性化関数により変換されて、隠れ層の各ノードから隠れ状態ベクトルh
k t (k=1,2・・・m)として出力される。この場合、活性化関数として、例えば、tanh 関数(双曲線正接関数)が用いられた場合には、隠れ層の各ノードから出力される隠れ状態ベクトルh
k t は,h
k t =tanh (u
k) となる。これらの隠れ状態ベクトルh
k t は, 出力層 ( L=3) のノード に入力され、出力層 のノードでは、夫々対応する重みwを用いて、次式で示される総入力値uが算出される。
本発明による実施例では、出力層のノードでは、活性化関数として恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値uが、そのまま出力値yとして出力される。
次に、図37に示される入力値x1 t−1、x2 t−1、x1 t、x2 t、x1 t+1、x2 t+1、x1 t+2、x2 t+2 および出力値yt、yt+1、yt+2、yt+3 について説明する。図37において時刻t−1、t、t+1、t+2は、同一気筒の連続する各サイクルに対応しており、本発明による実施例では、時刻t−1、t、t+1、t+2において、即ち、同一気筒の連続する各サイクルにおいて第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの出力値に基づき順次算出されたノッキング強度を代表する値の最適推定値yeが夫々、入力値x1 t−1、x1 t、x1 t+1、x1 t+2 とされる。また、時刻t−1、t、t+1、t+2における、即ち、同一気筒の連続する各サイクルにおける点火時期の遅角量α又は進角量βが夫々、入力値x2 t−1、x2 t、x2 t+1x2 t+2 とされる。
また、この場合、入力値として、EGR率ERを追加することもできる。一方、出力値yt、yt+1、yt+2、yt+3 は夫々、時刻t、t+1、t+2、t+3における、即ち、次のサイクルにおけるノッキング強度を代表する値の最適推定値ye の予測値yeeである。図39には、代表的な例として、時刻tにおける入力値および出力値の一覧表が示されている。
図40は、図37に示されるリカレントニューラルネットワークの重みを学習するための訓練データセットを示している。この訓練データセットは、第2の例では、図31に示される一覧表から、全サイクルに亘る一部のデータ、即ち、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye と点火時期の遅角量α又は進角量βのみを抜き出すことによって作成される。この場合、この訓練データセットでは、次のサイクルにおけるノッキング強度を代表する値の最適推定値ye が、ノッキング強度を代表する値の最適推定値ye の予測値yeeとされ、このノッキング強度を代表する値の最適推定値ye の予測値yeeが、教師データytとされる。
例えば、図40において、サイクルがサイクルknのときには、サイクルknのときにステップ221において算出されたノッキング強度を代表する値の推定値yen と, サイクルknのときの点火時期の遅角量αが、サイクルknのときの入力値x1 t、x2 tとされ、サイクルkn+1のときにステップ221において算出されたノッキング強度を代表する値の最適推定値yen+1 が、サイクルknのときの教師データytとされる。
この第2の例でも、図38に示されるリカレントニューラルネットワークの入力層 ( L=1) のノード数、隠れ層 ( L=2) のノード数および出力層 ( L=3) のノード数、および、図40に示される訓練データセットが、図5に示される学習装置23のメモリ24に記憶され、学習装置23において、リカレントニューラルネットワークの重みの学習が行われる。このリカレントニューラルネットワークの重みの学習は、通常、展開表示されたリカレントニューラルネットワークの一部を切り取って誤差逆伝播を行なわせるTrancated BBPT(Backpropagation Through Time) 手法を用いて行われる。
例えば、図37が、切り取られたリカレントニューラルネットワークの一部であるとすると、図37において、時刻t−1、t、t+1、t+2における入力値x1 t−1、x2 t−1、x1 t、x2 t、x1 t+1、x2 t+1、x1 t+2、x2 t+2 を、リカレントニューラルネットワークに順次入力させ、時刻t+2においてリカレントニューラルネットワークから出力される出力値yt+3 と、対応する教師データytとの二乗誤差E(=1/2 (yt+3 -yt)2)が小さくなるように、誤差逆伝播法により、リカレントニューラルネットワークの重みの学習が行われる。このときの誤差逆伝播は時間を遡るように行われるが、詳細については説明を省略する。
この第2の例では、図40において、例えば、連続する10サイクルのデータに対し、誤差逆伝播法により、リカレントニューラルネットワークの重みの学習が行われ、連続する10サイクルのデータに対するリカレントニューラルネットワークの重みの学習が完了すると、次の連続する10サイクルのデータに対し、リカレントニューラルネットワークの重みの学習が行われる。このようにして全ての連続する10サイクルのデータに対し、重みの学習が完了するまで、リカレントニューラルネットワークの重みの学習が行われる。
図41は、重みの学習が完了した学習済みリカレントニューラルネットワークを示している。図41において、時刻tを現在の時刻とした場合、この学習済みリカレントニューラルネットワークでは、過去の時刻t−3、t−2、t−1における入力値x1 t−3、x2 t−3、x1 t−2、x2 t−2、x1 t―1、x2 t―1 と、現在の時刻tにおける入力値x1 t、x2 tを、リカレントニューラルネットワークに順次入力すると、リカレントニューラルネットワークからは、現在の時刻tにおける。ノッキング強度を代表する値の最適推定値yeの予測値yeeが出力される。即ち、この第2の例では、学習済みリカレントニューラルネットワークを用いて、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値yeの予測値yeeの推定モデルが生成される。
本発明による第2の例では、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eにより生成されたノッキング強度を代表する値の推定モデルおよび学習済みのリカレントニューラルネットワークにより生成されたノッキング強度を代表する値の最適推定値yeの予測値yeeの推定モデルを用いて、市販車両の機関におけるノッキング処理が行われる。そのためにこれらノッキング強度を代表する値の推定モデルおよびノッキング強度を代表する値の最適推定値ye の予測値yeeの推定モデル、即ち、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび学習済みのリカレントニューラルネットワークが、市販車両の電子制御ユニット30内に格納される。これら推定モデルの市販車両の電子制御ユニット30への格納作用は、図13を参照しつつ既に説明したやり方と同様な方法でもって、図13に示される電子制御ユニットへのデータ読み込みルーチンを用いて行われる。
このように第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび学習済みのリカレントニューラルネットワークが、市販車両の電子制御ユニット30に格納されると、電子制御ユニット30のメモリ32内には、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび学習済みのリカレントニューラルネットワークが形成される。図42は、市販車両の電子制御ユニット30のメモリ32内に形成された第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eおよび学習済みのリカレントニューラルネットワークを用いて、市販車両の機関運転時に実行されるノッキング処理を示している。このノッキング処理は、気筒毎に、個別に、一サイクル毎に実行される。この第2の例でも、このノッキング処理は、例えば、クランク角が圧縮上死点に達したときに開始される。
図42に示されるノッキング処理は、図33に示されるノッキング処理と同様である。即ち、図42を参照すると、まず初めにステップ220において、圧力センサ19の出力値から求められるノッキング強度を代表する値、即ち、ノッキング強度代表値の推定処理が行われる。次いで、ステップ221では、ノッキング強度を代表する値の最適推定値ye の算出処理が行われる。次いで、ステップ222では、ノッキングが生じているか否かのノッキング判定処理が行われ、次いで、ステップ223では、点火制御が行われる。ステップ220において行われるノッキング強度代表値の推定処理は、図15又は図16のいずれか一方に示されるノッキング強度代表値の推定ルーチンにより行われ、ステップ221において行われるノッキング強度を代表する値の最適推定値ye の算出処理は、図17に示される最適推定値ye の算出ルーチンにより行われる。これらのノッキング強度代表値の推定ルーチンおよび最適推定値ye の算出ルーチンについては既に説明したので、これらノッキング強度代表値の推定ルーチンおよび最適推定値ye の算出ルーチンについては説明を省略する。なお、これらのノッキング強度代表値の推定ルーチンおよび最適推定値ye の算出ルーチンが実行されると、ノッキング強度を代表する値の最適推定値ye が算出される。
図43および図44は、図42のステップ221においてノッキング強度を代表する値の最適推定値ye が算出されたときに、このノッキング強度を代表する値の最適推定値ye に基づき、図42のステップ222で行われるノッキング判定ルーチンを示している。図43および図44に示されるノッキング判定ルーチンのステップ230から232およびステップ235から244は、図34および図35に示されるノッキング判定ルーチンのステップ230から232およびステップ235から244と同一であり、図43および図44に示されるノッキング判定ルーチンにおいて図34および図35に示されるノッキング判定ルーチンと異なるところは、図43および図44に示されるノッキング判定ルーチンでは、ステップ230の前にステップ230aが追加されており、図34および図35に示されるノッキング判定ルーチンのステップ233および234に代えて、ステップ233aが設けられたことだけである。従って、図43および図44については、ステップ230aおよびステップ233aのみについて説明し、その他のステップについての説明は省略する。
図43および図44を参照すると、ステップ230aでは、ステップ221において算出されたノッキング強度を代表する値の最適推定値ye が、同一気筒に対し、予め定められた回数の点火が行われるまで、例えば、5回点火が行われるまで記憶される。一方、ステップ233aでは、予め定められた回数前の点火が行われたサイクルから、例えば、5回前に点火が行われたサイクルから現在のサイクルに至るまでの各サイクルにおいてステップ221において算出されたノッキング強度を代表する値の最適推定値ye 、およびこれら各サイクルにおける点火時期の遅角量α或いは進角量βが、順次、リカレントニューラルネットワークの入力層の各ノードに入力され、それによりリカレントニューラルネットワークからは、現在のサイクルにおけるノッキング強度を代表する値の最適推定値yeの予測値yeeが出力される。
この第2の例でも、ステップ235では、未学習の機関の振動が発生しているか否かを判別するために、ノッキング強度を代表する値の最適推定値ye の予測値yeeと第1の学習済みニューラルネットワーク20から出力されたノッキング強度を代表する値の最適推定値ye との差(yee ―ye)の絶対値が設定値Sよりも大きいか否かが判別され、差(yee ―ye)の絶対値が設定値Sよりも小さいと判別されたときには、ステップ236に進んで、ノイズフラグがリセットされる。次いで、ステップ239に進んで、ノッキング強度を代表する値の最適推定値ye が閾値Mij よりも大きいか否かが判別される。一方、差(yee ―ye)の絶対値が設定値Sよりも大きいと判別されたときには、ステップ235からステップ240に進んで、ノイズフラグがセットされる。次いで、ステップ241において、ノッキング発生フラグがリセットされ、次いで、ステップ242において、判定中止フラグがセットされる。
図45は、図43および図44に示されるノッキング判定ルーチンにおける判定結果に基づき電子制御ユニット30内で実行される点火制御ルーチンを示している。図45に示される点火制御ルーチンのステップ250から259は、図36に示される点火制御ルーチンのステップ250から259と同一であり、図45に示される点火制御ルーチンにおいて図36に示される点火制御ルーチンと異なるところは、図45に示されるノッキング判定ルーチンでは、ステップ259の後にステップ259aが追加されていることだけである。従って、図45については、ステップ259aのみについて説明し、その他のステップについての説明は省略する。
図45を参照すると、ステップ259aでは、点火時期の遅角量α或いは進角量βが、同一気筒に対し、予め定められた回数の点火が行われるまで、例えば、5回点火が行われるまで記憶される。この第2実施例でも、ノッキング発生フラグがセットされたときには、点火時期は一定量αだけ遅角され、ノッキング発生フラグがリセットされたときには、点火時期は一定量β1又はβ2αだけ進角される。
このように、この第2実施例によれば、点火時期が遅角されたときのノッキング強度を代表する値の最適推定値の予測値又は予測低下量を推定する第2の学習済みニューラルネットワークが記憶装置32内に記憶されている。機関運転時に、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いて算出されたノッキング強度を代表する値の最適推定値が予め定められた閾値を越えると次のサイクルにおける点火時期が遅角され、点火時期が遅角されたこの次のサイクルでは、第2の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の最適推定値の予測値と第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いて算出されたノッキング強度を代表する値の最適推定値との差に基づいて更に次のサイクルにおける点火時期の遅角制御が行われる。この遅角制御では、この差が予め定められた設定値よりも小さいときには、ノッキング強度を代表する値の最適推定値が予め設定された閾値よりも大きければ、更に次のサイクルにおける点火時期の遅角作用が行われ、この差が予め定められた設定値よりも大きいときには、たとえノッキング強度を代表する値の最適推定値が予め設定された閾値よりも大きかったとしても、更に次のサイクルにおける点火時期の遅角作用が行われない。
また、この第2実施例では、第2の学習済みニューラルネットワークは、機関の運転状態、点火時期の遅角量、および一つ前のサイクルにおけるノッキング強度を代表する値の最適推定値を入力すると、点火時期が遅角されときのノッキング強度を代表する値の最適推定値の予測低下量を出力する。この予測低下量から点火時期が遅角されときのノッキング強度を代表する値の最適推定値の予測値が求められる。この場合、機関の運転状態は、機関回転数、機関負荷およびEGR率からなる。
また、この第2実施例では、第2の学習済みニューラルネットワークは、予め定められた回数前の点火が行われたサイクルから現在のサイクルに至るまでの各サイクルにおけるノッキング強度を代表する値の最適推定値および点火時期の遅角量又は進角量を入力すると、現在のサイクルにおけるノッキング強度を代表する値の最適推定値の予測値を出力するリカレントニューラルネットワークからな次いで、ステップ232に進んで、ノッキング判定処理が再開される。る。なお、この第2実施例では、リカレントニューラルネットワークに代えて、ゲート付きリカレントニューラルネットワーク、例えば、LSTM(Long short-term memory )を用いることもできる。
また、この第2実施例では、点火時期の遅角作用が行われた後、ノッキング強度を代表する値の最適推定値が予め定められた閾値以下となったときには、点火時期の進角作用が開始され、点火作用が行われたときのノッキング強度を代表する最適推定値とノッキング強度を代表する最適推定値の予測値との差が設定値よりも大きかったときには、この差が設定値以下だったときに比べて点火時期の進角量が小さくされる。
次に、図46および図47を参照しつつ、圧縮上死点後、一定時間の間に取り込まれたノッキングセンサ18の出力値および圧力センサ19の出力値に基づいて、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの重みの学習を行うと共に、圧縮上死点後、一定時間の間に取り込まれたノッキングセンサ18の出力値に基づいてノッキングの発生を検出するようにした実施例について説明する。機関の作動の一サイクルのうちで、ノッキングセンサ18および圧力センサ19の双方の出力値、或いは、ノッキングセンサ18の出力値が取り込まれるクランク角範囲はゲート区間と称され、図46には、この実施例におけるゲート区間(縦軸)と、機関回転数(横軸)との関係が実線で示されている。なお、横軸におけるN1,N2,N3は代表的な機関回転数を示している。
一方、図47には、各機関回転数N1,N2,N3に対するゲート区間Gが示されている。また、図47には、等間隔で分割された各分割区間内におけるノッキングセンサ18の出力値の積分値(負側の積分値も正の値とする)を算出するようにした場合における各分割区間Sが示されている。図46および図47から、この実施例では、機関回転数が高くなるほど、ゲート区間Gが長くなることがわかる。なお、図46および図47に示される例では、ノッキングセンサ18の出力値および圧力センサ19の出力値が取り込まれる期間が予め設定されており、この予め設定されている期間が、一定時間とされている。しかしながら、この予め設定されている期間は、必ずしも一定時間とする必要はなく、機関回転数が増大するにつれてゲート区間も増大するようにゲート区間を設定することもできる。
一方、これまで述べた実施例では、機関の全運転領域に対し、一組の第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いて、ノッキング強度を代表する値を推定するようにしている。しかしながら、このように機関の全運転領域に対して一組の第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eしか用いないとノッキング強度を代表する値の推定精度が低下する危険性がある。このような危険性を回避するためには、機関の運転領域を複数個の運転領域に分割し、分割された運転領域毎に夫々別個のニューラルネットワークを用いることが好ましい。図48Aから図48Cは、このように分割された運転領域毎に夫々別個の第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eを用いるようにした実施例を示している。
即ち、この実施例では、図48Aから図48Cに示されるように、機関の運転領域が、機関負荷Lおよび機関回転数Nに応じて、複数個の運転領域に分割されており、図48Aに示されるように、分割された運転領域毎に夫々別個の第1のニューラルネットワーク20a、20b、20c、20d、20e(以下、第1のニューラルネットワークNNij という)が形成されている。この場合には、図48Bに示されるように、図9に示されるような訓練データセットDSij が、分割された運転領域毎に夫々作成される。分割された運転領域毎に夫々形成された第1のニューラルネットワークNNij の重みの学習は、対応する訓練データセットDSij を用い、図10に示される学習処理ルーチンを用いて行われる。一方、この実施例では、図48Cに示されるように、分割された運転領域毎に、ノッキング強度代表値に対する閾値Mij が設定されている。この実施例では、分割された運転領域毎に、対応する第1の学習済みニューラルネットワークNNij を用い、図15又は図16に示されるノッキング強度代表値の推定ルーチンの出力値に基づき、ノッキング強度代表値の最適推定値ye が算出される。
一方、この実施例では、第2のニューラルネットワークも、図48Aに示される分割された運転領域毎に夫々形成することができる。この場合には、第2のニューラルネットワークに対する訓練データセットも、分割された運転領域毎に夫々作成され、分割された運転領域毎に夫々形成された第2のニューラルネットワークの重みの学習は、対応する訓練データセットを用いて行われる。また、この場合には、或る運転領域の第1の学習済みニューラルネットワークNNij により、ノッキング強度代表値の最適推定値ye が算出されると、同じ運転領域に対して作成されている第2の学習済みニューラルネットワークを用い、図48Cに示される対応する閾値Mij を用いて、ノッキングが発生したか否かが判別される。
このようにこの実施例では、機関の運転領域が複数個の運転領域に分割されると共に、分割された各運転領域に対して夫々第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eが記憶装置内に記憶されている。また、第2のニューラルネットワークを用いる場合には、第2のニューラルネットワークも記憶装置内に記憶される。この実施例では、分割された運転領域毎に、第2の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の最適推定値の予測値と第1の学習済みニューラルネットワークを用いて算出されたノッキング強度を代表する値の最適推定値との差に基づいて次のサイクルにおける点火時期の遅角制御が行われる。
図49から図51に、更に別の実施例を示す。この実施例では、図49に示されるように、機関本体1にノッキングセンサ18aおよびノッキングセンサ18bが取付けられており、これらノッキングセンサ18aおよびノッキングセンサ18bは、ノッキングセンサ18aの出力値の波形およびノッキングセンサ18bの出力値の波形を検出可能な検出器21、例えば、オシロスコープに接続されている。図49において、左から順に1番気筒#1、2番気筒#2、3番気筒#3、4番気筒#4と称すると、ノッキングセンサ18aは1番気筒#1および2番気筒#2から等距離の位置に配置されており、ノッキングセンサ18bは3番気筒#3および4番気筒#4から等距離の位置に配置されている。図49に示されるその他の構成は、図5に示される構成と同じであり、従って、この図49に示されるその他の構成については、説明を省略する。なお、この実施例では、各ノッキングセンサ18a、18bの出力値が共通の各バンドパスフィルタ37a、37b、37c、37d、37eを介して対応する第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eに入力される。
この実施例において、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eは、図50に示されている同一構造のニューラルネットワーク55からなる。図50を参照すると、このニューラルネットワーク55においても、図3および図8に示されるニューラルネットワークと同様に、L=1は入力層、L=2および L=3は隠れ層、L=4は出力層を夫々示している。この実施例では、図50からわかるように、入力層 ( L=1) が2n個のノードからなる。一方、図50には隠れ層 ( L=2)および隠れ層 ( L=3)が記載されているが、これら隠れ層の層数は、1個又は任意の個数とすることができ、またこれら隠れ層のノードの数も任意の個数とすることができる。なお、出力層 ( L=4) のノードの数は1個とされており、出力層のノードからの出力値がyで示されている。
図50において、x1、x2・・・xn−1、xnは、各バンドパスフィルタ37a、37b、37c、37d、37eを介してノッキングセンサ18aから対応する第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eに入力される入力値を示しており、xx1、xx2・・・xxn−1、xxnは、各バンドパスフィルタ37a、37b、37c、37d、37eを介してノッキングセンサ18bから対応する第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eに入力される入力値を示している。なお、この実施例でも、入力値x1、x2・・・xxn−1、xxnとして、図6Bに示される値か、或いは、図6Cに示される値が用いられる。即ち、図6Bに示されるように、フィルタリングされた後のノッキングセンサ18aおよびノッキングセンサ18bの出力値そのものが入力値x1、x2・・・xxn−1、xxnとされるか、或いは、図6Cに示されるように、フィルタリングされた後のノッキングセンサ18aおよびノッキングセンサ18bの出力値の積分値(負側の積分値も正の値とする)であって例えば一定クランク角度内におけるノッキングセンサ18aおよびノッキングセンサ18bの出力値の積分値が入力値x1、x2・・・xxn−1、xxnとされる。
一方、図50に示される出力値yi(i=1,2,3,4,5)としては、図8に示される場合と同様に、圧力センサ19の出力値から求められるノッキング強度を代表する値が採用されている。この場合、図8に示される場合と同様に、図7Bにおいて丸印で示されるフィルタリング後の圧力センサ19の出力値のピーク値が出力値yiとして用いられるか、或いは、図7Cに示されるフィルタリング後の圧力センサ19の出力値の積分値(負側の積分値も正の値とする)が出力値yiとして用いられる。なお、この実施例においても、圧力センサ19の出力値から求められるノッキング強度を代表する値の実測値が教師データytとされる。
図51は、入力値x1、x2・・・xxm−1、xxmと、圧力センサ19の出力値から求められるノッキング強度を代表する値の実測値、即ち、教師データytとを用いて作成された訓練データセットを示している。図51に示されるように、この訓練データセットでは、入力値x1、x2・・・xxn−1、xxnと教師データytとの関係を表すm個のデータが取得されている。この訓練データセットの作成方法は、既に説明した図9に示される訓練データセットの作成方法と同じである。即ち、訓練データセットを作成する際には、図49において、機関負荷および機関回転数の種々の組み合わせについてノッキングの発生しない運転状態とノッキングの発生する運転状態の双方の状態が生ずるように機関を運転させ、そのとき各検出器21、22から得られたデータに基づいて、図51に示されるような訓練データセットが作成される。
訓練データセットが作成されると、作成された訓練データセットの電子データを用いて、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が行われる。この第1のニューラルネットワークの重みの学習方法は、図5を参照しつつ前述した第1のニューラルネットワークの重みの学習方法と同じである。即ち、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの重みの学習を行うときには、これら第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eのノード数、および作成された訓練データセットの電子データが、図49に示される学習装置23のメモリ24に記憶され、CPU25において、図10に示される学習処理ルーチンを用いて、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が行われる。
このように、この実施例では、機関本体1の振動を検出する複数個のノッキングセンサ18aおよび18bを具備している。第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eは、複数個のノッキングセンサ18aおよび18bの出力値が各バンドパスフィルタ37a、37b、37c、37d、37eを介して入力されると、ノッキング強度を代表する値の推定値y1、y2、y3、y4、y5を出力し、これらノッキング強度を代表する値の推定値y1、y2、y3、y4、y5 に基づいて、ノッキング強度を代表する値の最適推定値ye が算出される。このように複数個のノッキングセンサ18aおよび18bを用い、両方のノッキングセンサ18aおよび18bの出力値を用いて、第1の学習済みニューラルネットワーク20a、20b、20c、20d、20eの重みの学習が行われると、一つのノッキングセンサを用いたときよりも、取得できる情報量が増大するために、ノッキング強度を代表する値を精度よく推定することができる。
次に、図52から図58Bを参照しつつ、非負値行列因子分解(Non-negative MatrixFactorization)を用いて、ノッキング強度を代表する値の最適推定値ye を求めるようにした変形例について説明する。なお、この非負値行列因子分解を、以降、NMFと称する。まず初めに、この変形例の概要について説明すると、この変形例では、図52に示されるように、ノッキングセンサ18の出力値が短時間フーリエ変換(STFT)処理部70に入力され、STFT処理部70からの出力がNMF処理部71に入力され、NMF処理部71からの出力が算出部72に入力され、算出部72ではNMF処理部71からの出力に基づいてノッキング強度を代表する値の最適推定値ye が算出される。
最初に、STFT処理部70において行われているSTFT処理について図53を参照しつつ簡単に説明する。図53は、ノッキングセンサ18の出力値(V)の変化を示しており、図53の横軸は、ATDCで表したクランク角(圧縮上死点から圧縮上死点後90°)を示している。図53に示されるように、圧縮上死点から圧縮上死点後90°までの間が一定の時間区分(図53に示される例では、t1からt9の9区分)に分割され、これら区分毎にノッキングセンサ18の出力値の短時間フーリエ変換が行われる。短時間フーリエ変換が行われると、時間×周波数×パワー(振幅の2乗)の3次元データであるスペクトログラムが生成される。
図54は、このスペクトログラムを図解的に示している。図54において横軸は時間を示しており、横軸には図53に示されるt1からt9の各時間区分が示されている。一方図54において縦軸は周波数を示しており、a1・・an・・・i1・・・in は、対応する時間区分(t1からt9)と周波数におけるパワーを示している。この実施例では、図54に示されるスペクトログラムを行列とみなしてNMF処理が行われる。そこで次に、このNMF処理について、図55を参照しつつ説明する。
図55においてYは、図54に示されるスペクトログラムにおける各パワーをn行m列の各要素として並べた行列を示している。NMF処理では、この行列Yが、n行k列の行列Hとk行m列の行列Uの積(Y=HU)で表されるように行列Hと行列Uの各要素が求められる。この場合、この変形例では、行列Hは基底行列と称され、行列Yはアクティベーション行列と称される。ところでこの場合、Y=HUを満たす行列Hおよび行列Uの各要素の厳密解を求めるのは困難であり、一般的には近似値が求められる。この近似値の求め方については説明を省略するが、基本的な考え方としては、誤差行列Y−HUの要素の二乗和が最小になる行列Hと行列Uの各要素を求めることにある。いずれにしても、NMF処理では、行列Hと行列Uの積がほぼ行列Yとなるような行列Hと行列Uの各要素が求められる。
次に、図55に示される基底行列Hとアクティベーション行列Uの技術的意味を容易に理解するために、図56に示されるY’=H’U’の関係を満たした簡単な例について説明する。図56を参照すると、行列Y’の1列目と行列H’の1列目は、同じ数値配列[1,2,3,4] とされており、行列Y’の2列目と行列H’の2列目は、同じ数値配列[1,0,1,0] とされている。また、行列Y’の3列目は、行列Y’の1列目の2倍の数値となっており、行列Y’の4列目は、行列Y’の2列目と3列目の数値の和となっている。この場合、行列H’の1列目と行列Y’の各列との関係が、行列U’の1行目に現れ、行列H’の2列目と行列Y’の各列との関係が、行列U’の2行目に現れる。即ち、行列Y’のいずれかの列の数値が、行列H’の1列目と同じとき、或いは、行列H’の1列目の2倍のときには、夫々、行列U’の1行目に1、或いは、2となって現れ、また、行列Y’のいずれかの列の数値が、行列H’の2列目と同じときには、行列U’の2行目に1となって現れる。このように行列Y’のいずれかの列の数値が、行列H’のいずれかの列と同じとき、或いは、倍のときには、行列U’の要素の数値が高くなる。
従って、図55において、行列Hの1列目の数値配列が、基準となる数値配列、例えば、ノッキングが発生したときの時間区分内におけるパワーの周波数分布を示す数値配列とされている場合には、行列Yのいずれかの列に、この基準となる数値配列と、例えば、同じ数値配列が存在する場合には、行列Uの1行目に1が現れ、行列Uの1行目の値が増大する。即ち、ノッキングが発生したときには、行列Uの1行目の値が増大する。従って、逆に、行列Uの1行目の値が増大したときには、ノッキングが発生したと判別できることになる。この変形例では、このような考え方に基づいて、ノッキングの発生を判別している。なお、行列Hにおける数値配列が、基準となる数値配列にされた場合、行列Yのいずれかの列に、この基準となる数値配列と同じような数値配列が存在すると共起して行列Uの要素の値が増大する。従って、上述したように、行列Hは基底行列と称され、行列Uはアクティベーション行列と称される。
次に、図57Aから図57Cを参照しつつ、この変形例における基底行列Hおよびアクティベーション行列Uの作成方法の一例について説明する。図57Aにおいて、データAは、ノッキングのみが発生したときのパワーの周波数分布を示す数値配列の多数の実測データを示している。この変形例では、図57Aに示されるように、これら多数の実測データAの中から、ノッキングのみを表す代表的な数値配列が抽出され、これら抽出された数値配列が、基底行列Hの各列の要素とされる。それにより複数個の基底ベクトルBA1,BA2,BA3からなる基底行列Hが作成される。一方、図57Bには、この基底行列Hに対するアクティベーション行列Uが示されており、図57Bに示されるように、この場合、この基底行列Hに対するアクティベーション行列Uは、基底ベクトルBA1,BA2,BA3と同数の行ベクトルACT1,ACT2,ACT3からなる。
次いで、図57Cに示されるように、データAに代えてデータBが用いられると共に、基底行列Hには、ノイズ用の複数個の基底ベクトルBA4,BA5が追加され、アクティベーション行列Uには、追加された基底ベクトルBA4,BA5と同数の行ベクトルACT4,ACT5が追加される。なお、図57Cに示されるデータBは、ノッキングに加え、ノッキングの発生による機関本体1の振動以外の振動、即ち、ノイズが発生したときのパワーの周波数分布を示す数値配列の多数の実測データを示している。図57Cでは、このデータBを用いて、追加されたノイズ用基底ベクトルBA4,BA5の学習が行われる。
この追加されたノイズ用基底ベクトルBA4,BA5の学習方法について一例を挙げると、例えば、アクティベーション行列Uのノイズ用行ベクトルACT4,ACT5が共起状態とされ、例えば、ノイズ用行ベクトルACT4,ACT5の全ての要素が1とされ、この状態で、基底行列Hとアクティベーション行列Uの積がほぼ行列Y(データB)となるように基底行列Hのノイズ用基底ベクトルBA4,BA5の各要素が求められる。このとき、基底行列Hのノイズ用基底ベクトルBA4,BA5の数値配列は、データB内に含まれるノイズを表していることになる。なお、この場合、このような学習を行うことなく、多数の実測データの中から、ノイズのみを表す代表的な数値配列を抽出し、これら抽出された数値配列を基底行列Hのノイズ用基底ベクトルBA4,BA5とすることもできる。このようにしてノッキングのみが発生したときの数値配列を表している基底ベクトルBA1,BA2,BA3と、ノイズを示す数値配列を表している基底ベクトルBA4,BA5からなる基底行列Hが作成される。
このような基底行列Hが作成されると、この基底行列Hを用いて、ノッキング強度を代表する値の最適推定値ye が求められる。即ち、図57Bにおいて、データAに基底ベクトルBA1,BA2,BA3からなる基底行列Hの逆行列を掛けると、行ベクトルACT1,ACT2,ACT3からなるアクティベーション行列Uが求まる、従って、データAとして、車両運転中に図54のスペクトログラムに示されるような実測データを取得すれば、この実測データに基底ベクトルBA1,BA2,BA3からなる基底行列Hの逆行列を掛けることにより、行ベクトルACT1,ACT2,ACT3からなるアクティベーション行列Uを求めることができる。その結果、アクティベーション行列Uの要素の大きさから、ノッキング強度を代表する値の最適推定値ye を求めることができる。但し、基底ベクトルBA1,BA2,BA3からなる基底行列Hは正方行列ではなく、従って、逆行列を求めることはできない。
従って、この変形例では、図58Aに示されるように、車両運転中に取得された図54のスペクトログラムに示されるような実測データに、基底ベクトルBA1,BA2,BA3からなる基底行列Hの疑似逆行列を掛けることによって、行ベクトルACT1,ACT2,ACT3からなるアクティベーション行列Uを求めるようにしている。なお、基底行列Hの疑似逆行列H+は、図58Bに示されるように、基底行列Hの転置行列HTに基底行列Hを掛けることにより得られた正方行列に転置行列HTを掛けることによって得られる。実測データに基づき得られたアクティベーション行列Uの各要素の総和はノッキング強度を表していると考えられ、従って、この変形例では、アクティベーション行列Uの各要素の総和がノッキング強度を代表する値の最適推定値ye とされる。なお、この場合、このような疑似逆行列H+を用いるのではなく、例えば、補間関数法として知られている繰り返し計算を行うことによりアクティベーション行列Uを求めることもできる。
このようにして、この変形例では、NMF処理を用いて、ノッキング強度を代表する値の最適推定値ye が算出される。この変形例では、必要に応じて、このノッキング強度を代表する値の最適推定値ye に基づき、図25から図45に示される第2実施例が実行される。