(第1実施形態)
以下、内燃機関の状態検出システムの第1実施形態を、図1〜図3を参照して説明する。
図1に示す車両VCに搭載された内燃機関10において、吸気通路12には、スロットルバルブ14が設けられている。吸気通路12から吸入された空気は、吸気バルブ16が開弁することによって各気筒#1〜#4の燃焼室18に流入する。内燃機関10においては燃焼室18に露出するようにして、燃料を噴射する燃料噴射弁20と、火花放電を生じさせる点火装置22とが設けられている。燃焼室18において、空気と燃料との混合気は、燃焼に供され、燃焼によって生じたエネルギは、クランク軸24の回転エネルギとして取り出される。燃焼に供された混合気は、排気バルブ26の開弁に伴って、排気として、排気通路28に排出される。排気通路28には、酸素吸蔵能力を有した触媒30が設けられている。排気通路28は、EGR通路32を介して吸気通路12に連通されている。EGR通路32には、その流路断面積を調整するEGRバルブ34が設けられている。
クランク軸24の回転動力は、吸気側バルブタイミング可変装置40を介して吸気側カム軸42に伝達される一方、排気側バルブタイミング可変装置44を介して排気側カム軸46に伝達される。吸気側バルブタイミング可変装置40は、吸気側カム軸42とクランク軸24との相対的な回転位相差を変更する。排気側バルブタイミング可変装置44は、排気側カム軸46とクランク軸24との相対的な回転位相差を変更する。
内燃機関10のクランク軸24には、トルクコンバータ60を介して変速装置64の入力軸66が連結可能となっている。トルクコンバータ60は、ロックアップクラッチ62を備えており、ロックアップクラッチ62が締結状態となることにより、クランク軸24と入力軸66とが連結される。変速装置64の出力軸68には、駆動輪69が機械的に連結されている。なお、本実施形態では、変速装置64は、1速から6速までの変速比を変更可能な有段変速装置である。
クランク軸24には、クランク軸24の複数個(ここでは、34個)の回転角度のそれぞれを示す歯部52が設けられたクランクロータ50が結合されている。クランクロータ50には、基本的には、10°CA間隔で歯部52が設けられているものの、隣接する歯部52間の間隔が30°CAとなる箇所である欠け歯部54が1箇所設けられている。これは、クランク軸24の基準となる回転角度を示すためのものである。
制御装置70は、内燃機関10を制御対象とし、その制御量であるトルクや排気成分比率等を制御するために、スロットルバルブ14や、燃料噴射弁20、点火装置22、EGRバルブ34、吸気側バルブタイミング可変装置40、排気側バルブタイミング可変装置44を操作する。なお、図1には、スロットルバルブ14、燃料噴射弁20、点火装置22、EGRバルブ34、吸気側バルブタイミング可変装置40、排気側バルブタイミング可変装置44のそれぞれの操作信号MS1〜MS6を記載している。
制御装置70は、制御量の制御に際し、上記歯部52間の角度間隔毎、すなわち欠け歯部54を除き10°CA毎のパルスを出力するクランク角センサ80の出力信号Scrや、エアフローメータ82によって検出される吸入空気量Ga、触媒30の上流側に設けられた空燃比センサ83の検出値である上流側検出値Afuを参照する。また制御装置70は、水温センサ84によって検出される内燃機関10の冷却水の温度である水温THWや、シフト位置センサ86によって検出される変速装置64のシフト位置Sft、加速度センサ88によって検出される車両VCの上下方向の加速度Daccを参照する。
制御装置70は、CPU72と、ROM74と、電気的に書き換え可能な不揮発性メモリである記憶装置76と、周辺回路77と、を備え、それらがローカルネットワーク78によって通信可能とされたものである。なお、周辺回路77は、内部の動作を規定するクロック信号を生成する回路や、電源回路、リセット回路等を含む。
制御装置70は、ROM74に記憶されたプログラムをCPU72が実行することによって、上記制御量の制御を実行する。また、制御装置70は、内燃機関10の失火の有無を判定する処理を実行する。すなわち、本実施形態では、失火が発生している運転状態が既定の運転状態であり、こうした失火の有無の検出を行う制御装置70が状態検出システムに対応する。
図2に失火の有無の検出を行う失火検出処理の手順を示す。図2に示す失火検出処理は、図1に示すROM74に記憶されたプログラム74aである失火検出プログラムをCPU72が例えば所定周期で繰り返し実行することにより実現される。なお、以下では、先頭に「S」が付与された数字によって、各処理のステップ番号を表現する。
図2に示す一連の処理において、CPU72は、まず、微小回転時間T30(1),T30(2),…T30(24)を取得する(S10)。微小回転時間T30は、CPU72により、クランク角センサ80の出力信号Scrに基づき、クランク軸24が30°CA回転するのに要する時間を計時することによって算出される。ここで、微小回転時間T30(1),T30(2)等、カッコの中の数字が異なる場合、1燃焼サイクルである720°CA内の異なる回転角度間隔であることを示す。すなわち、微小回転時間T30(1)〜T30(24)は、720°CAの回転角度領域を30°CAで等分割した各角度間隔における回転時間を示す。
詳しくは、CPU72は、出力信号Scrに基づき30°CAだけ回転した時間を計時し、これをフィルタ処理前時間NF30とする。次にCPU72は、フィルタ処理前時間NF30を入力とするデジタルフィルタ処理を施すことによって、フィルタ処理後時間AF30を算出する。そしてCPU72は、所定期間における、例えば720°CAにおけるフィルタ処理後時間AF30の極大値と極小値との差が「1」となるようフィルタ処理後時間AF30を正規化することによって、微小回転時間T30を算出する。
次にCPU72は、回転速度NE及び充填効率ηを取得する(S12)。
ここで、回転速度NEは、CPU72によりクランク角センサ80の出力信号Scrに基づき算出され、充填効率ηは、CPU72により回転速度NE及び吸入空気量Gaに基づき算出される。なお、回転速度NEは、圧縮上死点の出現間隔、すなわち本実施形態では180°CAよりも大きい角度間隔だけクランク軸24が回転する際の回転速度の平均値である。なお、回転速度NEは、クランク軸24の1回転以上の回転角度だけクランク軸24が回転する際の回転速度の平均値とすることが望ましい。なお、ここでの平均値は、単純平均に限らず、例えば、指数移動平均処理でもよく、1回転以上の回転角度だけクランク軸24が回転する際の例えば微小回転時間T30等の複数のサンプリング値によって算出されるものとする。また、充填効率ηは、燃焼室18内に充填される空気量を定めるパラメータである。
S12において、回転速度NE及び充填効率ηを取得すると、図2に示すように、CPU72は、失火が生じた確率を算出するための写像の入力変数x(1)〜x(26)に、S10,S12の処理によって取得した値を代入する(S14)。詳しくは、CPU72は、「s=1〜24」として、入力変数x(s)に微小回転時間T30(s)を代入する。すなわち、入力変数x(1)〜x(24)は、微小回転時間T30の時系列データとなる。本実施形態では、この微小回転時間T30の時系列データが回転波形変数に相当する。また、CPU72は、入力変数x(25)に回転速度NEを代入し、入力変数x(26)に充填効率ηを代入する。
次にCPU72は、図1に示す記憶装置76に記憶された写像データによって規定される写像に入力変数x(1)〜x(26)を入力することによって、気筒#i(i=1〜4)において失火が生じた確率P(i)を、燃焼状態変数として算出する(S16)。
写像データは、S10の処理によって取得された微小回転時間T30(1)〜T30(24)に対応する期間において気筒#iで失火が生じた確率P(i)を出力可能な写像を規定するデータである。ここで、確率P(i)は、入力変数x(1)〜x(26)に基づき、実際に失火が生じたことのもっともらしさの大小を定量化したものである。ただし、本実施形態においては、気筒#iにおいて失火が生じた確率P(i)の最大値は、「1」よりも小さく、最小値は「0」よりも大きい値となる。すなわち、本実施形態において、確率P(i)は、実際に失火が生じたことのもっともらしさの大小を「0」よりも大きく「1」よりも小さい所定領域内で連続的な値として定量化したものである。
本実施形態において、この写像は、中間層が1層のニューラルネットワークと、ニューラルネットワークの出力を規格化することによって、失火が生じた確率P(1)〜P(4)の和を「1」とするためのソフトマックス関数とによって構成されている。上記ニューラルネットワークは、入力側係数wFjk(j=0〜n,k=0〜26)と、入力側係数wFjkによって規定される線形写像である入力側線形写像の出力のそれぞれを非線形変換する入力側非線形写像としての活性化関数h(x)を含む。本実施形態では、活性化関数h(x)として、ハイパボリックタンジェント「tanh(x)」を例示する。また、上記ニューラルネットワークは、出力側係数wSij(i=1〜4,j=0〜n)と、出力側係数wSijによって規定される線形写像である出力側線形写像の出力のそれぞれを非線形変換する出力側非線形写像としての活性化関数f(x)を含む。本実施形態では、活性化関数f(x)として、ハイパボリックタンジェント「tanh(x)」を例示する。なお、値nは、中間層の次元を示すものである。本実施形態において、値nは、入力変数xの次元(ここでは、26次元)よりも小さい。また、入力側係数wFj0は、バイアスパラメータであり、入力変数x(0)を「1」と定義することによって、入力変数x(0)の係数となっている。また、出力側係数wSi0は、バイアスパラメータであり、これには「1」が乗算されるものとする。これは例えば、「wF00・x(0)+wF01・x(1)+…」を恒等的に無限大と定義することによって実現できる。
詳しくは、CPU72は、入力側係数wFjk、出力側係数wSij及び活性化関数h(x),f(x)によって規定されるニューラルネットワークの出力である確率原型y(i)を算出する。確率原型y(i)は、気筒#iにおいて失火が生じた確率と正の相関を有するパラメータである。そして、CPU72は、確率原型y(1)〜y(4)を入力とするソフトマックス関数の出力によって、気筒#iにおいて失火が生じた確率P(i)を算出する。なお、以下の説明では、こうした写像を検出用写像と記載する。
なお、図1に示すように、この制御装置70では、写像データとして、舗装路用写像データ76aと未舗装路用写像データ76bの2種類の写像データを記憶装置76に記憶している。S16の処理では、舗装路用写像データ76aと未舗装路用写像データ76bのうち、図2の処理に先立って行われる写像データの選択処理を通じて選択された写像データを用いて失火の確率P(i)の算出を行う。
図3に、図2の処理に先立って行われる写像データの選択処理の手順を示す。図3に示す処理は、ROM74に記憶されたプログラム74aをCPU72が例えば所定周期で繰り返し実行することにより実現される。
図3に示す処理において、CPU72は、まず、加速度Daccを取得する(S30)。次にCPU72は、路面状態変数SRが「1」であるか否かを判定する(S32)。なお、路面状態変数SRは、加速度Daccに基づきこの選択処理を通じてCPU72によって算出されるパラメータである。路面状態変数SRが「0」である場合には車両VCが走行している路面が舗装路であることを示し、路面状態変数SRが「1」である場合には車両VCが走行している路面が未舗装路であることを示す。
CPU72は、路面状態変数SRが「0」であると判定する場合(S32:NO)、加速度Daccの変化量ΔDaccの絶対値が所定値ΔDH以上である状態が所定時間継続したか否かを判定する(S34)。ここで、変化量ΔDaccは、加速度Daccの前回値と今回値との差とすればよい。この処理は、車両VCが走行している路面が舗装路であるか否かを判定する処理である。CPU72は、所定時間継続したと判定する場合(S34:YES)、路面状態変数SRに「1」を代入して路面状態変数SRを更新する(S36)。そして、CPU72は、記憶装置76に記憶されている写像データのうち、未舗装路用写像データ76bを選択する(S38)。これにより、CPU72は、S16の処理において未舗装路用写像データ76bを用いて失火の確率P(i)を算出することとなる。
これに対しCPU72は、路面状態変数SRが「1」であると判定する場合(S32:YES)、加速度Daccの変化量ΔDaccの絶対値が規定値ΔDL(<ΔDH)以下となる状態が所定時間継続したか否かを判定する(S40)。そしてCPU72は、所定時間継続したと判定する場合(S40:YES)、路面状態変数SRに「0」を代入して路面状態変数SRを更新する(S42)。そして、CPU72は、S42の処理が完了した場合やS34の処理において否定判定がなされた場合(S34:NO)には、記憶装置76に記憶されている写像データのうち、舗装路用写像データ76aを選択する(S44)。これにより、CPU72は、S16の処理において舗装路用写像データ76aを用いて失火の確率P(i)を算出することとなる。
なお、CPU72は、S38,S44の処理が完了した場合、図3に示す一連の処理を一旦終了する。
次にCPU72は、失火が生じた確率P(1)〜P(4)のうちの最大値P(m)が閾値Pth以上であるか否かを判定する(S18)。ここで、変数mは、1〜4のいずれかの値をとり、また、閾値Pthは、「1/2」以上の値に設定されている。そして、CPU72は、閾値Pth以上であると判定する場合(S18:YES)、確率が最大となった気筒#mの失火の回数N(m)をインクリメントする(S20)。そしてCPU72は、回数N(1)〜N(4)の中に、所定回数Nth以上となるものがあるか否かを判定する(S22)。そしてCPU72は、所定回数Nth以上となるものが存在すると判定する場合(S22:YES)、特定の気筒#q(qは、1〜4のうちの1つ)で許容範囲を超える頻度の失火が生じているとして、フェールフラグFに「1」を代入する(S24)。なお、この際、CPU72は、失火が生じた気筒#qの情報を記憶装置76に記憶する等して少なくとも当該気筒#qで失火が解消するまで保持することとする。
これに対し、CPU72は、最大値P(m)が閾値Pth未満であると判定する場合(S18:NO)、S24の処理または後述するS28の処理がなされてから所定期間が経過したか否かを判定する(S26)。ここで所定期間は、1燃焼サイクルの期間よりも長く、望ましくは、1燃焼サイクルの10倍以上の長さを有することが望ましい。
CPU72は、所定期間が経過したと判定する場合(S26:YES)、回数N(1)〜N(4)を初期化するとともに、フェールフラグFを初期化する(S28)。また、CPU72は、S24,S28の処理が完了する場合や、S22,S26の処理において否定判定する場合には、図2に示す一連の処理を一旦終了する。
なお、制御装置70では、既定の運転状態に対処するための対処処理として、フェールフラグFが「1」になっている場合に、異常に対処することをユーザに促すべく、図1に示す警告灯90を操作する報知処理を実行する。
ちなみに、記憶装置76に記憶されている舗装路用写像データ76a及び未舗装路用写像データ76bは、例えば次のようにして生成されたものである。すなわち、テストベンチにてクランク軸24にダイナモメータを接続した状態で内燃機関10を稼働させ、気筒#1〜#4のそれぞれにおいて要求される燃料を噴射すべきタイミングのうちランダムに選択したタイミングでは燃料噴射を停止させる。そして燃料の噴射を停止させた気筒においては燃焼状態変数である確率P(i)の値を「1」としたデータを教師データとし、燃料の噴射を停止させていない気筒においては、燃焼状態変数である確率P(i)の値を「0」としたデータを教師データに含める。そして、S14の処理によって生成する入力変数x(1)〜x(26)の値の組である訓練データを用いて、S16の処理と同様の処理によって、燃焼状態変数である確率P(i)の値を算出する。こうして算出された確率P(i)の値と教師データとの差を縮めるように、上記入力側係数wFjkや出力側係数wSijの値を学習する。具体的には、例えば公差エントロピーを最小化するように、入力側係数wFjkや出力側係数wSijの値を学習すればよい。また、本実施形態では、訓練データにはS12において取得する全てのパラメータを含め、S14相当の処理を実行し、入力変数xが26次元の写像を用いる。ただし、ここでは、入力変数x(0)を次元数に含めていない。
なお、未舗装路用写像データ76bは、ダイナモメータによって車両に振動が加わった際にクランク軸24に加わる負荷トルクを模擬しつつ取得したパラメータに基づき訓練データを生成し、同訓練データを用いて生成されたデータである。また例えば、内燃機関10やダイナモメータ等を振動を生成可能な装置に載置し、振動を生じさせることで車両に振動が加わった際にクランク軸24に加わる負荷トルクを模擬しつつ取得したパラメータに基づき訓練データを生成し、同訓練データを用いて生成されたデータであってもよい。
一方で、舗装路用写像データ76aは、こうしたダイナモメータによる振動を模擬した負荷トルクの入力を行ったり、装置によって内燃機関10やダイナモメータに意図的な振動を加えたりしない状態で取得したパラメータに基づき訓練データを生成し、同訓練データを用いて生成されたデータである。
ここで、本実施形態の作用及び効果について説明する。
CPU72は、内燃機関10の稼働時、微小回転時間T30を逐次算出し、写像データによって規定される検出用写像に1燃焼サイクル分の微小回転時間T30を回転波形変数として入力することによって、気筒#1〜#4のそれぞれにおいて失火が生じた確率P(1)〜P(4)を算出する。ここで、微小回転時間T30は、圧縮上死点の出現間隔である180°CAよりも小さい角度間隔におけるクランク軸24の回転速度を示すパラメータである。しかも、検出用写像には、1燃焼サイクルにおける30°CA毎の微小回転時間T30が入力される。さらに、微小回転時間T30に施す演算に用いる入力側係数wFjk及び出力側係数wSijの値は、機械学習によって学習済みの値である。このため、クランク軸24の微小なタイムスケールにおける回転挙動に基づき、失火が生じた確率P(i)を算出することができる。このため、圧縮上死点の出現間隔程度の回転に要する時間についての、互いに隣り合う角度間隔同士における差に基づき失火の有無を判定する場合と比較すると、クランク軸24の回転挙動についてのより詳細な情報に基づき失火の有無を判定できることから、失火の判定精度を高めやすい。
以上説明した本実施形態によれば、さらに以下に記載する作用効果が得られる。
(1)車両VCに搭載された内燃機関10では、車両VCが走行している路面に凹凸がある場合には、車両VCに振動が生じ、この振動がクランク軸24に伝達される。そのため、路面の状態はクランク軸24の回転挙動に影響を与える。これに対して制御装置70では、路面の状態に関する路面状態変数SRに応じて検出用写像として用いる写像データを選択し、選択した写像データを用いて失火の確率P(i)を算出する。なお、制御装置70では、機械学習により学習された写像を用いて算出した燃焼状態変数であるの確率P(i)の値に基づき、失火の発生の有無を判定している。あらゆる路面の状態に対応して高精度に失火の発生の有無を判定する写像を構成する場合、写像の構造が複雑化しやすい。そこで制御装置70では、路面の状態に応じた2種類の写像データを記憶装置76に記憶し、図3に示した選択処理を通じて路面状態変数SRに対応する写像データを判定処理に用いる検出用写像として選択している。これにより、路面の状態に応じて適切な写像データを選択することが可能となり、単一の写像で全ての路面の状態に対処する場合と比較して、各写像それぞれの構造を簡素化しやすい。また、各写像は対応する路面の状態に特化させて学習したものであるため、失火の検出精度が高くなりやすい。したがって、制御装置70によれば、車両VCが走行している路面の状態が与える影響を踏まえたかたちで燃焼状態変数の算出を実施でき、車両VCに搭載された内燃機関10における失火の検出精度を向上できる。
(2)内燃機関10の動作点を規定する動作点変数としての回転速度NE及び充填効率ηを検出用写像の入力とした。燃料噴射弁20や点火装置22等の内燃機関10の操作部の操作量は、内燃機関10の動作点に基づき定められる傾向がある。そのため、動作点変数は、各操作部の操作量に関する情報を含む変数である。したがって、動作点変数を検出用写像の入力とすることにより、各操作部の操作量に関する情報に基づき燃焼状態変数の値を算出することができ、ひいては操作量によるクランク軸24の回転挙動の変化を反映して燃焼状態変数の値をより高精度に算出することができる。
また、動作点変数を入力変数とすることにより、回転波形変数と動作点変数との、機械学習によって学習されたパラメータである入力側係数wFjkによる結合演算によって燃焼状態変数の値が算出される。このため、動作点変数毎に適合値を適合する必要が生じない。
(第2実施形態)
次に第2実施形態について、第1実施形態との相違点を中心に図面を参照しつつ説明する。本実施形態では、失火判定処理を車両の外部で行う。
図4に本実施形態にかかる状態検出システムを示す。なお、図4において、図1に示した部材に対応する部材については、便宜上同一の符号を付している。
図4に示す車両VC内の制御装置70は、通信機79を備えている。通信機79は車両VCの外部のネットワーク110を介してセンター120と通信するための機器である。
センター120は、複数の車両VCから送信されるデータを解析する。センター120は、CPU122と、ROM124と、記憶装置126と、周辺回路127と、通信機129と、を備えており、それらがローカルネットワーク128によって通信可能とされるものである。ROM124には、メインプログラム124aが記憶されており、記憶装置126には、写像データとして、舗装路用写像データ126a及び未舗装路用写像データ126bが記憶されている。なお、本実施形態におけるメインプログラム124aは失火検出メインプログラムである。舗装路用写像データ126a及び未舗装路用写像データ126bは、第1実施形態における舗装路用写像データ76a及び未舗装路用写像データ76bと同一である。
図5に、本実施形態にかかる失火検出処理の手順を示す。図5(a)に示す処理は、図4に示すROM74に記憶されたサブプログラム74cをCPU72が実行することにより実現される。なお、本実施形態におけるサブプログラム74cは失火検出サブプログラムである。また、図5(b)に示す処理は、ROM124に記憶されているメインプログラム124aをCPU122が実行することにより実現される。また、図5において図2に示した処理に対応する処理については、便宜上同一のステップ番号を付している。以下では、失火検出処理の時系列に沿って、図5に示す処理を説明する。
車両VCにおいてCPU72は、図5(a)に示すS10の処理を実行する。次にCPU72は、回転速度NE、充填効率η、路面状態変数SRを取得する(S12a)。なお、第1実施形態にかかる失火検出処理のS12では、回転速度NE、充填効率ηを取得していたが、S12aでは回転速度NE、充填効率η、に加えて路面状態変数SRを取得する。
なお、路面状態変数SRは、第1実施形態における路面状態変数SRと同様に、「0」である場合には車両VCが走行している路面が舗装路であることを示し、路面状態変数SRが「1」である場合には車両VCが走行している路面が未舗装路であることを示す。ちなみに、路面状態変数SRの算出処理は、図6に示す処理を通じて行う。図6に示す処理は、ROM74に記憶されたプログラムをCPU72が例えば所定周期で繰り返し実行することにより実現される。なお、図6において図3に示した処理に対応する処理については、便宜上同一のステップ番号を付している。
図6に示す一連の処理において、CPU72は、まず、加速度Daccを取得する(S30)。次にCPU72は、路面状態変数SRが「1」であるか否かを判定する(S32)。CPU72は、路面状態変数SRが「0」であると判定する場合(S32:NO)、加速度Daccの変化量ΔDaccの絶対値が所定値ΔDH以上である状態が所定時間継続したか否かを判定する(S34)。ここで、変化量ΔDaccは、加速度Daccの前回値と今回値との差とすればよい。この処理は、車両VCが走行している路面が舗装路であるか否かを判定する処理である。CPU72は、所定時間継続したと判定する場合(S34:YES)、路面状態変数SRに「1」を代入して路面状態変数SRを更新する(S36)。そして、CPU72は、この一連の処理を一旦終了する。
これに対しCPU72は、路面状態変数SRが「1」であると判定する場合(S32:YES)、加速度Daccの変化量ΔDaccの絶対値が規定値ΔDL(<ΔDH)以下となる状態が所定時間継続したか否かを判定する(S40)。そしてCPU72は、所定時間継続したと判定する場合(S40:YES)、路面状態変数SRに「0」を代入して路面状態変数SRを更新する(S42)。そして、CPU72は、この一連の処理を一旦終了する。
なお、CPU72は、S34,S40の処理において否定判定する場合(S34:NO,S40:NO)、路面状態変数SRを更新せずにそのままこの一連の処理を一旦終了する。第2実施形態では、こうして路面状態変数SRを更新する。
S12aにおいて、回転速度NE、充填効率η、路面状態変数SRを取得すると、CPU72は、通信機79を操作することによって、S10,S12aの処理において取得したデータを、車両VCの識別情報とともにセンター120に送信する(S150)。
これに対し、センター120のCPU122は、図5(b)に示すように、送信されたデータを受信する(S160)。そして、CPU122は、記憶装置126に記憶されている舗装路用写像データ126a及び未舗装路用写像データ126bのうち、検出用写像として用いる写像を選択する(S13)。
図7に写像を選択するための選択処理の手順を示す。図7に示す処理は、図4に示すROM124に記憶されたサブプログラムをCPU122が実行することにより実現される。図7に示す一連の処理において、CPU122は、まず、路面状態変数SRが「1」であるか否かを判定する(S130)。
CPU122は、路面状態変数SRが「1」であると判定する場合(S130:YES)、検出用写像として用いる写像データとして、未舗装路用写像データ126bを選択する(S131)。一方で、CPU122は、路面状態変数SRが「1」であると判定する場合(S130:NO)、検出用写像として用いる写像データとして、舗装路用写像データ126aを選択する(S132)。
CPU122は、S131,S132の処理が完了し、検出用写像として用いる写像データを選択した場合には、この一連の処理を一旦終了する。
検出用写像として用いる写像データを選択すると、CPU122は、S160の処理において受信したデータを用いたS14〜S20の処理を繰り返し実行する。
S14の処理では、CPU122は、失火が生じた確率を算出するための検出用写像の入力変数x(1)〜x(26)に、S10,S12aの処理によって取得した値を代入する。ここでは、CPU122は、「s=1〜24」として、入力変数x(s)に微小回転時間T30(s)を代入する。また、CPU122は、入力変数x(25)に回転速度NEを代入し、入力変数x(26)に充填効率ηを代入する。
S16の処理では、CPU122は、図4に示す記憶装置126に記憶された写像データのうち、S13の処理を通じて選択された写像データ、すなわち図7に示した選択処理を通じて選択された写像データによって規定される検出用写像に入力変数x(1)〜x(26)を入力することによって、気筒#i(i=1〜4)において失火が生じた確率P(i)を、燃焼状態変数として算出する。
そしてCPU122は、S14〜S20の処理を繰り返し実行することにより、識別情報によって特定される同一の車両において所定期間内に特定の気筒の失火回数が所定回数Nth以上となったと判定する場合(S22:YES)、失火が生じている旨判定する(S162)。これに対し、S14〜S20の処理を所定期間にわたって繰り返し実行した際、特定の気筒の失火回数が所定回数Nthに満たない場合(S26:YES)、正常判定をするとともに回数N(1)〜N(4)を初期化する(S164)。なお、ここでの所定期間は、S162の処理またはS164の処理がなされた時点を基準とする。
CPU122は、S162,S164の処理が完了する場合、上記識別情報に基づき、通信機129を操作して、S14〜S20の処理の対象としたデータが送信された車両VCに判定結果に関する信号を送信する(S166)。ここで、失火が生じた旨の判定結果の場合、判定結果に関する情報に失火が生じた気筒に関する情報を含めることとする。CPU122は、S166の処理を完了する場合やS22,S26の処理において否定判定する場合には、図5(b)に示す一連の処理を一旦終了する。
これに対し、車両VC内のCPU72は、図5(a)に示すように、センター120から送信される判定結果に関する信号を受信すると(S152:YES)、判定結果が失火が生じた旨の結果であるか否かを判定する(S154)。そしてCPU72は、失火が生じた旨の判定の場合(S154:YES)、S24の処理に移行する一方、失火が生じていない旨の結果の場合(S154:NO)、フェールフラグFを初期化する(S28b)。
なお、CPU72は、S24,S28bの処理が完了する場合や、S152の処理において否定判定する場合には、図5(a)に示す処理を一旦終了する。
このように、本実施形態では、失火の判定処理をセンター120において実行することにより、制御装置70の演算負荷を軽減できる。
(第3実施形態)
以下、内燃機関の状態検出システムの第3実施形態について、第1実施形態との相違点を中心に図面を参照しつつ説明する。本実施形態の状態検出システムは、ROM74に記憶されたプログラム74a、及び記憶装置76に記憶された舗装路用写像データ76a,未舗装路用写像データ76bの内容以外は、第1実施形態のものと同じ構成とされている。
図8に本実施形態の失火検出処理の手順を示す。図8に示す処理は、ROM74に記憶されたプログラム74aである失火検出プログラムをCPU72が、例えば所定周期で繰り返し実行することにより実現される。
図8に示す一連の処理において、CPU72は、まず、微小回転時間T30を取得する(S210)。微小回転時間T30は、CPU72により、クランク角センサ80の出力信号Scrに基づき、クランク軸24が30°CA回転するのに要する時間を計時することによって算出される。次にCPU72は、S210の処理において取得した最新の微小回転時間T30を、微小回転時間T30(0)とし、より過去の値ほど、微小回転時間T30(m)の変数「m」を大きい値とする(S212)。すなわち、「m=1,2,3,…」として、S212の処理がなされる直前における微小回転時間T30(m−1)を微小回転時間T30(m)とする。これにより、例えば、図8の処理が前回実行されたときにS210の処理により取得された微小回転時間T30は、微小回転時間T30(1)となる。
次に、CPU72は、S210の処理において取得された微小回転時間T30が、気筒#1〜#4のいずれかの圧縮上死点前30°CAから圧縮上死点までの角度間隔の回転に要する時間であるか否かを判定する(S214)。そしてCPU72は、圧縮上死点までの角度間隔の回転に要する時間であると判定する場合(S214:YES)、360°CAだけ前に圧縮上死点となった気筒の失火の有無を判定すべく、まず、失火の有無の判定処理の入力とする回転波形変数の値を算出する。
すなわち、CPU72は、まず、圧縮上死点前30°CAから圧縮上死点までの角度間隔に関する微小回転時間T30の互いに180°だけ離間した値同士の差を気筒間変数ΔTaとして算出する(S216)。詳しくは、CPU72は、「m=1,2,3,…」として、気筒間変数ΔTa(m−1)を、「T30(6m−6)−T30(6m)」とする。
図9に、気筒間変数ΔTaを例示する。なお、本実施形態では、気筒#1、気筒#3、気筒#4、気筒#2の順に圧縮上死点が出現し、その順で燃焼行程となるものを例示している。図9には、S210の処理において気筒#4の圧縮上死点前30°CAから圧縮上死点までの角度間隔の微小回転時間T30(0)を取得することにより、失火の有無の検出対象が気筒#1である例を示している。この場合、気筒間変数ΔTa(0)は、気筒#4の圧縮上死点と、1つ前に圧縮上死点となった気筒#3の圧縮上死点とのそれぞれに対応する微小回転時間T30同士の差となる。図9には、気筒間変数ΔTa(2)が、失火の検出対象となる気筒#1の圧縮上死点に対応する微小回転時間T30(12)と、気筒#2の圧縮上死点に対応する微小回転時間T30(18)との差であることを記載している。
図8に戻り、CPU72は、気筒間変数ΔTa(0),ΔTa(1),ΔTa(2),…のうちの互いに720°CAだけ離間した値同士の差である気筒間変数ΔTbを算出する(S218)。詳しくは、CPU72は、「m=1,2,3,…」として、気筒間変数ΔTb(m−1)を、「ΔTa(m−1)−ΔTa(m+3)」とする。
図9に、気筒間変数ΔTbを例示する。図9には、気筒間変数ΔTb(2)が、「ΔTa(2)−Ta(6)」であることが記載されている。
次に、CPU72は、失火の検出対象となる気筒に対応する気筒間変数ΔTbと、それ以外の気筒に対応する気筒間変数ΔTbとの相対的な大きさの関係を示す変動パターン変数FLを算出する(S220)。本実施形態では、変動パターン変数FL[02],FL[12],FL[32]を算出する。
ここで、変動パターン変数FL[02]は、「ΔTb(0)/ΔTb(2)」によって定義される。すなわち、変動パターン変数FL[02]は、図9の例を用いると、失火の検出対象となる気筒#1に対応する気筒間変数ΔTb(2)で、その次の次に圧縮上死点となる気筒#4に対応する気筒間変数ΔTb(0)を除算した値である。また、変動パターン変数FL[12]は、「ΔTb(1)/ΔTb(2)」によって定義される。すなわち、変動パターン変数FL[12]は、図9の例を用いると、失火の検出対象となる気筒#1に対応する気筒間変数ΔTb(2)で、その次に圧縮上死点となる気筒#3に対応する気筒間変数ΔTb(1)を除算した値である。また、変動パターン変数FL[32]は、「ΔTb(3)/ΔTb(2)」によって定義される。すなわち、変動パターン変数FL[32]は、図9の例を用いると、失火の検出対象となる気筒#1に対応する気筒間変数ΔTb(2)で、その1つ前に圧縮上死点となっていた気筒#2に対応する気筒間変数ΔTb(3)を除算した値である。
次に、CPU72は、回転速度NE及び充填効率ηを取得する(S222)。なお、回転速度NE及び充填効率ηの取得の方法は、第1実施形態と同様である。
そして、CPU72は、検出対象となる気筒において失火が生じた確率に関する変数である失火変数PRを出力する検出用写像の入力変数x(1)〜x(6)に、S218,S220の処理によって取得した回転波形変数の値と、S222の処理によって取得した変数の値とを代入する(S224)。すなわち、CPU72は、入力変数x(1)に気筒間変数ΔTb(2)を代入し、入力変数x(2)に変動パターン変数FL[02]を代入し、入力変数x(3)に変動パターン変数FL[12]を代入し、入力変数x(4)に変動パターン変数FL[32]を代入する。また、CPU72は、入力変数x(5)に、回転速度NEを代入し、入力変数x(6)に充填効率ηを代入する。
次にCPU72は、図1に示す記憶装置76に記憶された舗装路用写像データ76a及び未舗装路用写像データ76bのうち、選択処理を通じて選択された写像データによって規定される検出用写像に入力変数x(1)〜x(6)を入力することによって、検出用写像の出力値である失火変数PRの値を算出する(S226)。すなわち、この実施形態では燃焼状態変数として失火変数PRを算出する。なお、選択処理の内容は第1実施形態と同様であり、図3に示した選択処理が図8の処理に先立って実行されることにより、検出用写像として用いる写像データが選択される。
本実施形態において、この検出用写像は、中間層が1層のニューラルネットワークによって構成されている。上記ニューラルネットワークは、入力側係数wFjk(j=0〜n,k=0〜6)と、入力側係数wFjkによって規定される線形写像である入力側線形写像の出力のそれぞれを非線形変換する入力側非線形写像としての活性化関数h(x)を含む。本実施形態では、活性化関数h(x)として、ReLUを例示する。なお、ReLUは、入力と「0」とのうちの小さくない方を出力する関数である。ちなみに、wFj0等は、バイアスパラメータであり、入力変数x(0)は、「1」と定義されている。
また、上記ニューラルネットワークは、出力側係数wSij(i=1〜2,j=0〜n)と、出力側係数wSijによって規定される線形写像である出力側線形写像の出力である原型変数yR(1),yR(2)のそれぞれを入力として、失火変数PRを出力するソフトマックス関数を含む。これにより、本実施形態において、失火変数PRは、実際に失火が生じたことのもっともらしさの大小を「0」よりも大きく「1」よりも小さい所定領域内で連続的な値として定量化したものとなる。
次に、CPU72は、失火変数PRの値が判定値PRth以上であるか否かを判定する(S228)。そしてCPU72は、判定値PRth以上であると判定する場合(S228:YES)、カウンタCRをインクリメントする(S230)。そして、CPU72は、S228の処理が最初に実行された時点または後述のS236の処理がなされた時点から所定期間が経過したか否かを判定する(S232)。ここで所定期間は、1燃焼サイクルの期間よりも長く、望ましくは、1燃焼サイクルの10倍以上の長さを有することが望ましい。
CPU72は、所定期間が経過したと判定する場合(S232:YES)、カウンタCRが閾値CRth以上であるか否かを判定する(S234)。この処理は、許容範囲を超える頻度で失火が生じたか否かを判定する処理である。CPU72は、閾値CRth未満であると判定する場合(S234:NO)、カウンタCRを初期化する(S236)。これに対し、CPU72は、閾値CRth以上であると判定する場合(S234:YES)、異常に対処することをユーザに促すべく、図1に示す警告灯90を操作する報知処理を実行する(S238)。
なお、CPU72は、S236,S238の処理が完了する場合や、S214,S228,S232の処理において否定判定する場合には、図8に示す一連の処理を一旦終了する。
ちなみに、本実施形態の舗装路用写像データ76a及び未舗装路用写像データ76bも、第1実施形態において例示した舗装路用写像データ76a及び未舗装路用写像データ76bと同様に、テストベンチにてクランク軸24にダイナモメータを接続した状態で内燃機関10を稼働させて学習させたものである。
ここで、本実施形態の作用及び効果について説明する。
CPU72は、路面状態変数SRに応じて検出用写像として用いる写像データを選択する選択処理を通じて写像データを選択し、選択された写像データによる検出用写像を用いて回転波形変数に基づき失火変数PRの値を算出する。そして、算出した失火変数PRの値に基づいて失火の有無を判定する。したがって、第1実施形態と同様の効果が得られる。
また、上記の第3実施形態によれば、さらに以下に記載する作用効果が得られる。
(3)入力変数xとなる回転波形変数を、微小回転時間T30のうちの圧縮上死点付近の値を選択的に用いて生成した。失火の有無で相違が最も生じるのは、微小回転時間T30のうちの圧縮上死点付近の値である。そのため、微小回転時間T30のうちの圧縮上死点付近の値を選択的に用いることにより、入力変数xの次元が大きくなることを抑制しつつも、失火の有無の判定に必要な情報を極力取り込むことができる。
(4)回転波形変数に、気筒間変数ΔTb(2)を含めた。気筒間変数ΔTb(2)は、失火の検出対象となる気筒とこれに隣接する気筒との圧縮上死点付近の微小回転時間T30同士の差を予め1次元で定量化したものである。そのため、小さい次元数の変数で失火の有無の判定に必要な情報を効率的に取り込むことができる。
(5)回転波形変数に、気筒間変数ΔTb(2)のみならず、変動パターン変数FLを含めた。クランク軸24には、路面からの振動等が重畳することから、回転波形変数を気筒間変数ΔTb(2)のみとする場合には、誤判定が生じる懸念がある。これに対し、本実施形態では、気筒間変数ΔTb(2)に加えて、変動パターン変数FLを用いて失火変数PRの値を算出することにより、気筒間変数ΔTb(2)のみから算出する場合と比較して、失火変数PRの値を、失火が生じたもっともらしさの度合い、すなわち確率をより高精度に示す値とすることができる。
しかも、本実施形態では、機械学習によって学習されたパラメータである入力側係数wFjkによる気筒間変数ΔTb(2)と変動パターン変数FLとの結合演算によって失火変数PRの値を算出する。そのため、気筒間変数ΔTb(2)と判定値との比較と、変動パターン変数FLと判定値との比較とに基づき失火の有無を判定する場合と比較して、気筒間変数ΔTb(2)及び変動パターン変数FLと失火とのより詳細な関係に基づき失火の有無を判定することができる。
(第4実施形態)
以下、第4実施形態について、第3実施形態との相違点を中心に図面を参照しつつ説明する。本実施形態では、失火変数PRの算出処理を車両の外部で行う。
本実施形態の状態検出システムは、ROM74に記憶されたサブプログラム74c、ROM124に記憶されたメインプログラム124a、記憶装置126に記憶された舗装路用写像データ126a及び未舗装路用写像データ126bの内容以外は、図4に示した第2実施形態のものと同じ構成とされている。その他の同様の構成については、便宜上同一の符号を付している。
図10に、本実施形態にかかる失火検出処理の手順を示す。図10(a)に示す処理は、図4に示すROM74に記憶されているサブプログラム74cをCPU72が実行することにより実現される。なお、第2実施形態のものと内容は異なるものの、本実施形態におけるサブプログラム74cも、失火を検出するための失火検出サブプログラムである。また、図10(b)に示す処理は、ROM124に記憶されているメインプログラム124aをCPU122が実行することにより実現される。第2実施形態のものと内容は異なるものの、本実施形態におけるメインプログラム124aも、失火を検出するための失火検出メインプログラムである。また、図10において図8に示した処理に対応する処理については、便宜上同一のステップ番号を付している。以下では、失火検出処理の時系列に沿って、図10に示す処理を説明する。
車両VCにおいてCPU72は、図10(a)に示すS214の処理において肯定判定する場合、微小回転時間T30(0),T30(6),T30(12),T30(18),T30(24),T30(30),T30(36),T30(42),T30(48)を取得する(S250)。これら微小回転時間T30は、互いに異なる角度間隔のそれぞれにおける微小回転時間T30同士の相違に関する情報を含む変数である回転波形変数を構成する。特に、上記微小回転時間T30は、圧縮上死点前30°CAから圧縮上死点までの角度間隔の回転に要する時間であり、しかも、圧縮上死点の出現タイミングの9回分の値である。そのため、それら微小回転時間T30の組データは、互いに異なる圧縮上死点のそれぞれに対応した微小回転時間T30同士の相違に関する情報を示す変数となっている。なお、上記の9個の微小回転時間T30は、気筒間変数ΔTb(2)、及び変動パターン変数FL[02],FL[12],FL[32]を算出するときに用いた微小回転時間T30の全てである。
次に、CPU72は、回転速度NE、充填効率η、路面状態変数SRを取得する(S222a)。なお、第3実施形態にかかる失火検出処理のS222では、回転速度NE、充填効率ηを取得していたが、S222aでは回転速度NE、充填効率η、に加えて路面状態変数SRを取得する。
なお、路面状態変数SRは、他の実施形態における路面状態変数SRと同様に、「0」である場合には車両VCが走行している路面が舗装路であることを示し、路面状態変数SRが「1」である場合には車両VCが走行している路面が未舗装路であることを示す。ちなみに、路面状態変数SRの算出処理は、第2実施形態と同様に図6に示す処理を通じて行う。
S222aにおいて、回転速度NE、充填効率η、路面状態変数SRを取得すると、CPU72は、通信機79を操作することによって、S250,S222aの処理において取得したデータを、車両VCの識別情報(車両ID)とともにセンター120に送信する(S252)。
これに対し、センター120のCPU122は、図10(b)に示すように、送信されたデータを受信する(S260)。そして、CPU122は、記憶装置126に記憶されている舗装路用写像データ126a及び未舗装路用写像データ126bのうち、検出用写像として用いる写像を選択する(S13)。S13における選択処理の内容は第2実施形態と同様である。
検出用写像として用いる写像データを選択すると、CPU122は、S260の処理によって取得した変数の値を入力変数x(1)〜x(11)に代入する(S262)。すなわち、CPU122は、入力変数x(1)に微小回転時間T30(0)を代入し、入力変数x(2)に微小回転時間T30(6)を代入し、入力変数x(3)に微小回転時間T30(12)を代入し、入力変数x(4)に微小回転時間T30(18)を代入する。またCPU122は、入力変数x(5)に微小回転時間T30(24)を代入し、入力変数x(6)に微小回転時間T30(30)を代入し、入力変数x(7)に微小回転時間T30(36)を代入する。またCPU122は、入力変数x(8)に微小回転時間T30(42)を代入し、入力変数x(9)に微小回転時間T30(48)を代入する。またCPU122は、入力変数x(10)に回転速度NEを代入し、入力変数x(11)に充填効率ηを代入する。
次にCPU122は、図4に示す記憶装置126に記憶された写像データのうち、S13の処理を通じて選択された写像データによって規定される検出用写像に入力変数x(1)〜x(11)を入力することによって、検出用写像の出力値である失火変数PRの値を算出する(S264)。
本実施形態において、この検出用写像は、中間層が「α」個であって且つ、各中間層の活性化関数h1〜hαが、ReLUであり、出力層の活性化関数がソフトマックス関数であるニューラルネットワークによって構成されている。例えば、第1の中間層の各ノードの値は、係数w(1)ji(j=0〜n1,i=0〜11)によって規定される線形写像に上記入力変数x(1)〜x(11)を入力した際の出力を活性化関数h1に入力することによって生成される。すなわち、m=1,2,…,αとすると、第mの中間層の各ノードの値は、係数w(m)によって規定される線形写像の出力を活性化関数hmに入力することによって生成される。図10において、n1,n2,…,nαは、それぞれ、第1、第2、…、第αの中間層のノード数である。ちなみに、w(1)j0等は、バイアスパラメータであり、入力変数x(0)は、「1」と定義されている。
次に、CPU122は、通信機129を操作することによって、S260の処理によって受信したデータが送信された車両VCに、失火変数PRの値を示す信号を送信し(S266)、図10(b)に示す一連の処理を一旦終了する。これに対し、図10(a)に示すように、CPU72は、失火変数PRの値を受信し(S254)、S228〜S238の処理を実行する。
このように、本実施形態では、センター120においてS264の処理を実行するため、CPU72の演算負荷を軽減できる。
(第5実施形態)
次に、第5実施形態について、上記の各実施形態との相違点を中心に図面を参照しつつ説明する。
上記の各実施形態の状態検出システムは、内燃機関10で失火が生じた状態を、クランク軸24の回転変動に基づき検出するシステムとして構成されていた。空燃比に気筒間のばらつきが生じた、気筒間空燃比インバランスが発生した場合にも、気筒間の燃焼状態のばらつきが生じてクランク軸24の回転変動が大きくなる。本実施形態の状態検出システムは、こうした気筒間空燃比インバランスを検出するシステムとして構成されている。なお、本実施形態の状態検出システムの構成は、図1に示した構成と基本的に同じである。ただし、本実施形態の状態検出システムのROM74には、プログラム74aとして、失火検出プログラムの代わりに、気筒間空燃比インバランスの検出用プログラムが格納されている。
図11に、本実施形態のインバランス検出処理の手順を示す。図11に示す処理は、ROM74に記憶されたプログラム74aであるインバランス検出プログラムをCPU72が既定の制御周期毎に繰り返し実行することにより実現される。
図11に示す一連の処理において、CPU72は、まず、インバランスの検出処理の実行条件が成立するか否かを判定する(S310)。実行条件には、内燃機関10の吸気に対する燃料蒸気のパージや排気の再循環が実施されていないことが含まれる。
次に、S312の処理において、CPU72は、微小回転時間T30(1),T30(2),…,T30(24)、上流側平均値Afuave(1),Afuave(2),…,Afuave(24)、回転速度NE、充填効率η、0.5次振幅Ampf/2、を取得する。微小回転時間T30は、CPU72により、クランク角センサ80の出力信号Scrに基づき、クランク軸24が30°CA回転するのに要する時間を計時することによって算出される。ここで、微小回転時間T30(1),T30(2)等、カッコの中の数字が異なる場合、1燃焼サイクルである720°CA内の異なる回転角度間隔であることを示す。すなわち、微小回転時間T30(1)〜T30(24)は、720°CAの回転角度領域を30°CAで等分割した各角度間隔における回転時間を示す。
詳しくは、CPU72は、出力信号Scrに基づきクランク軸24が30°CAだけ回転した時間を計時し、これをフィルタ処理前時間NF30とする。次にCPU72は、フィルタ処理前時間NF30を入力とするデジタルフィルタ処理を施すことによって、フィルタ処理後時間AF30を算出する。そしてCPU72は、所定期間(例えば720°CA)におけるフィルタ処理後時間AF30の極大値と極小値との差が「1」となるようフィルタ処理後時間AF30を正規化することによって、微小回転時間T30を算出する。
また、m=1〜24とすると、上流側平均値Afuave(m)は、上記各微小回転時間T30(m)と同一の30°CAの角度間隔における上流側検出値Afuの平均値である。また、0.5次振幅Ampf/2はクランク軸24の回転周波数の0.5次成分の強度であり、CPU72により、微小回転時間T30の上記時系列データのフーリエ変換によって算出される。回転速度NE及び充填効率ηの取得の方法は、第1実施形態と同様である。
次にCPU72は、インバランス率Rivを出力する検出用写像の入力変数x(1)〜x(51)に、S312の処理によって取得した値を代入する(S314)。詳しくは、CPU72は、「m=1〜24」として、入力変数x(m)に微小回転時間T30(m)の値を、入力変数x(24+m)に上流側平均値Afuave(m)の値を、入力変数x(49)に回転速度NEの値を、入力変数x(50)に充填効率ηの値を、入力変数x(51)に0.5次振幅Ampf/2の値を、それぞれ代入する。
本実施形態において、インバランス率Rivは、狙いとする噴射量の燃料が噴射されている気筒において「0」とし、狙いとする噴射量よりも実際の噴射量が多い場合に正の値となり、少ない場合に負の値となる。
次にCPU72は、図1に示す記憶装置76に記憶された舗装路用写像データ76a及び未舗装路用写像データ76bのうち、選択処理を通じて選択された写像データによって規定される検出用写像に入力変数x(1)〜x(51)の値を入力することによって、気筒#i(i=1〜4)のそれぞれのインバランス率Riv(1)〜Riv(4)の値を算出する(S316)。なお、選択処理の内容は第1実施形態と同様であり、図3に示した選択処理が図11の処理に先立って実行されることにより、検出用写像として用いる写像データが選択される。
本実施形態において、この検出用写像は、中間層が1層のニューラルネットワークによって構成されている。上記ニューラルネットワークは、入力側係数wFjk(j=0〜n,k=0〜51)と、入力側係数wFjkによって規定される線形写像である入力側線形写像の出力のそれぞれを非線形変換する入力側非線形写像としての活性化関数h(x)を含む。本実施形態では、活性化関数h(x)として、ハイパボリックタンジェント「tanh(x)」を例示する。また、上記ニューラルネットワークは、出力側係数wSij(i=1〜4,j=0〜n)と、出力側係数wSijによって規定される線形写像である出力側線形写像の出力のそれぞれを非線形変換する出力側非線形写像としての活性化関数f(x)を含む。本実施形態では、活性化関数f(x)として、ハイパボリックタンジェント「tanh(x)」を例示する。なお、値nは、中間層の次元を示すものである。
なお、CPU72は、S316の処理が完了する場合や、S310の処理において否定判定する場合には、図11に示す一連の処理を一旦終了する。
図12に、上記インバランス率Riv(i)を利用する処理の手順を示す。図12に示す処理は、図1に示すROM74に記憶されたプログラムをCPU72が、例えばインバランス率Riv(i)が算出される都度、繰り返し実行することにより実現される。
図12に示す一連の処理において、CPU72は、まず、図11の処理によって新たに算出されたインバランス率Riv(i)の値を入力とする指数移動平均処理によって、インバランス学習値Liv(i)を更新する(S320)。具体的には、CPU72は、記憶装置76に記憶されているインバランス学習値Liv(i)に係数αを乗算した値と、インバランス率Riv(i)に「1−α」を乗算した値との和によって、インバランス学習値Livを更新する(S320)。なお、「0<α<1」である。
次にCPU72は、インバランス学習値Liv(i)が、リーン側許容限界値LL以上であって、且つリッチ側許容限界値LH以下であるか否かを判定する(S322)。CPU72は、インバランス学習値Liv(i)が、リーン側許容限界値LL未満であると判定する場合やリッチ側許容限界値よりも大きいと判定する場合には(S322:NO)、ユーザに修理を促すべく、警告灯90を操作して報知処理を実行する(S324)。
一方、CPU72は、リーン側許容限界値LL以上であって、且つリッチ側許容限界値LH以下であると判定する場合(S322:YES)や、S324の処理が完了する場合には、各気筒の要求噴射量Qd(#i)を補正する(S326)。すなわち、CPU72は、各気筒の要求噴射量Qd(#i)に、インバランス学習値Liv(i)に応じた補正量ΔQd(Liv(i))を加算することによって要求噴射量Qd(#i)を補正する。ここで、補正量ΔQd(Liv(i))は、インバランス学習値Liv(i)がゼロよりも大きい場合には、負の値となり、ゼロよりも小さい場合には、正の値となる。なお、インバランス学習値Liv(i)がゼロの場合、補正量ΔQd(Liv(i))もゼロとされる。
なお、CPU72は、S326の処理を完了する場合、図12に示す一連の処理を一旦終了する。ちなみに、本実施形態では、S310の処理において肯定判定されてS312aの処理を実行する場合には、S326の処理を一旦停止することとする。
ちなみに、本実施形態における舗装路用写像データ76a及び未舗装路用写像データ76bは、例えば次のようにして生成されたものである。
まず、予め単体での計測によって、インバランス率がゼロとは異なる様々な値を取る複数の燃料噴射弁20と、インバランス率がゼロである3個の燃料噴射弁20とを用意する。そして、トルクコンバータ60を連結し、かつインバランス率がゼロの燃料噴射弁20を3個、インバランス率がゼロとは異なる燃料噴射弁20を1個搭載した内燃機関10を、テストベンチにてトルクコンバータ60の出力軸にダイナモメータを接続した状態で稼働させる。なお、搭載された燃料噴射弁20のそれぞれのインバランス率Rivtが、教師データとなっている。
そして、都度の回転波形変数やS312の処理によって取得する変数の値を用いて、S314,S316の処理と同様の処理によって、インバランス率Rivtの値を算出する。こうして算出されたインバランス率Rivtの値と教師データとの差を縮めるように、上記入力側係数wFjkや出力側係数wSijの値を学習する。具体的には、例えば公差エントロピーを最小化するように、入力側係数wFjkや出力側係数wSijの値を学習すればよい。
本実施形態では、路面状態変数SRに応じて検出用写像として用いる写像データを選択する選択処理を通じて写像データを選択し、選択された写像データによる検出用写像を用いて回転波形変数に基づきインバランス率の値を算出する。そのため、車両が走行している路面の状態が与える影響を踏まえたかたちでインバランス率を算出できる。したがって、車両VCに搭載された内燃機関10における気筒間空燃比インバランスの検出精度を向上できる。
以上説明した本実施形態によれば、さらに以下に記載する作用効果が得られる。
(1)内燃機関10の動作点を規定する動作点変数としての回転速度NE及び充填効率ηを検出用写像の入力とした。点火装置22やEGRバルブ34、吸気側バルブタイミング可変装置40等の内燃機関10の操作部の操作量は、内燃機関10の動作点に基づき定められる傾向がある。そのため、動作点変数は、各操作部の操作量に関する情報を含む変数である。したがって、動作点変数を検出用写像の入力とすることにより、各操作部の操作量に関する情報に基づきインバランス率Riv(i)を算出することができ、ひいてはインバランス率Riv(i)をより高精度に算出することができる。
(2)検出用写像の入力に上流側平均値Afuaveを含めた。これにより、時系列データの時間間隔毎の上流側検出値Afuを用いる場合と比較すると、時系列データのデータ数を増加させることなく、触媒30に流入する酸素や未燃燃料についてのより正確な情報を得ることができ、ひいてはインバランス率Riv(i)をより高精度に算出することができる。
(第6実施形態)
次に第6実施形態について、第5実施形態との相違点を中心に図面を参照しつつ説明する。本実施形態では、インバランス率Riv(i)の算出処理を車両の外部で行う。
本実施形態の状態検出システムは、ROM74に記憶されたサブプログラム74c、ROM124に記憶されたメインプログラム124a、記憶装置126に記憶された舗装路用写像データ126a及び未舗装路用写像データ126bの内容以外は、図4に示した第2実施形態のものと同じ構成とされている。その他の同様の構成については、便宜上同一の符号を付している。
図13に、本実施形態にかかるインバランス検出処理の手順を示す。図13(a)に示す処理は、図4に示すROM74に記憶されたサブプログラム74cをCPU72が実行することにより実現される。なお、本実施形態におけるサブプログラム74cは、インバランスを検出するためのインバランス検出サブプログラムである。また、図13(b)に示す処理は、ROM124に記憶されているメインプログラム124aをCPU122が実行することにより実現される。なお、本実施形態におけるメインプログラム124aは、インバランスを検出するためのインバランス検出メインプログラムである。図13において図11に示した処理に対応する処理については、便宜上同一のステップ番号を付している。以下では、インバランス検出処理の時系列に沿って、図13に示す処理を説明する。
図13(a)に示すように、S312aの処理において、車両VCにおいてCPU72は、微小回転時間T30(1),T30(2),…,T30(24)、上流側平均値Afuave(1),Afuave(2),…,Afuave(24)、回転速度NE、充填効率η、0.5次振幅Ampf/2、路面状態変数SRを取得する。
なお、第5実施形態にかかるインバランス検出処理のS312では、微小回転時間T30(1),T30(2),…,T30(24)、上流側平均値Afuave(1),Afuave(2),…,Afuave(24)、回転速度NE、充填効率η、0.5次振幅Ampf/2、を取得していた。S312aでは、これらに加えて路面状態変数SRを取得する。
なお、路面状態変数SRは、他の実施形態における路面状態変数SRと同様に、「0」である場合には車両VCが走行している路面が舗装路であることを示し、路面状態変数SRが「1」である場合には車両VCが走行している路面が未舗装路であることを示す。ちなみに、路面状態変数SRの算出処理は、第2実施形態と同様に図6に示す処理を通じて行う。
S312aにおいて、路面状態変数SRを含むデータを取得すると、CPU72は、通信機79を操作することによって、S312aの処理において取得したデータを、車両VCの識別情報である車両IDとともにセンター120に送信する(S332)。
これに対し、センター120のCPU122は、図13(b)に示すように、送信されたデータを受信する(S340)。そして、CPU122は、記憶装置126に記憶されている舗装路用写像データ126a及び未舗装路用写像データ126bのうち、検出用写像として用いる写像を選択する(S13)。S13における選択処理の内容は第2実施形態と同様である。
検出用写像として用いる写像データを選択すると、CPU122は、S314の処理を実行する。そして、CPU122は、図4に示す記憶装置126に記憶された写像データのうち、S13の処理を通じて選択された写像データによって規定される検出用写像に入力変数x(1)〜x(51)を入力することによって、検出用写像の出力値であるインバランス率Riv(i)の値を算出する(S316a)。この写像は、中間層が「α」個であって且つ、各中間層の活性化関数h1〜hα、および出力層の活性化関数fがハイパボリックタンジェントであるニューラルネットワークによって構成されている。たとえば、第1の中間層の各ノードの値は、係数w(1)ji(j=0〜n1,i=0〜51)によって規定される線形写像に上記入力変数x(1)〜x(51)を入力した際の出力を活性化関数h1に入力することによって生成される。すなわち、m=1,2,…,αとすると、第mの中間層の各ノードの値は、係数w(m)によって規定される線形写像の出力を活性化関数hmに入力することによって生成される。ここで、n1,n2,…,nαは、それぞれ、第1、第2、…、第αの中間層のノード数である。ちなみに、w(1)j0等は、バイアスパラメータであり、入力変数x(0)は、「1」と定義している。
CPU122は、S316aの処理を完了すると、通信機129を操作することによって、S340の処理によって受信したデータが送信された車両VCにインバランス率Riv(i)に関する信号を送信し(S342)、図13(b)に示す一連の処理を一旦終了する。これに対し、図13(a)に示すように、CPU72は、インバランス率Riv(i)に関する信号を受信し(S334)、図13(a)に示す一連の処理を一旦終了する。
このように、本実施形態では、センター120においてインバランス率Riv(i)を算出することとしたため、CPU72の演算負荷を軽減できる。
(対応関係)
上記実施形態における事項と、上記「課題を解決するための手段」の欄に記載した事項との対応関係は、次の通りである。記憶装置は、記憶装置76に対応する。第1実施形態、第2実施形態、第5実施形態、及び第6実施形態では微小回転時間T30(1)〜T30(24)が回転波形変数に対応する。また、第3実施形態及び第4実施形態では、気筒間変数ΔTb(2)及び変動パターン変数FL[02]、FL[12]、FL[32]が、回転波形変数に対応する。第1実行装置は、CPU72とROM74に対応する。第2実行装置は、CPU122とROM124に対応する。取得処理はS10,S12a,S12,S218,S222,S222a,S250,S312,S312aの処理に対応する。選択処理は図3,図7の処理に対応する。出力値算出処理はS16,S226,S264,S316,S316aの処理に対応する。外部側送信処理はS166,S266,S342の処理に対応する。車両側受信処理はS152,S254,S334の処理に対応する。判定処理はS18,S20,S22,S24,S162,S228,S230,S232,S234,S322の処理に対応する。データ解析装置は、センター120に対応する。
さらに、第1実施形態及び第2実施形態では失火が生じた確率P(i)が燃焼状態変数に対応し、第3実施形態及び第4実施形態では失火変数PRが燃焼状態変数に対応する。第5実施形態及び第6実施形態ではインバランス率Riv(i)が燃焼状態変数に対応する。
また、第1実施形態、第2実施形態、第3実施形態、及び第4実施形態では失火が生じた状態が既定の運転状態に対応し、第5実施形態及び第6実施形態では気筒間の空燃比のばらつきが生じた状態が既定の運転状態に対応する。
(その他の実施形態)
なお、上記各実施形態は、以下のように変更して実施することができる。上記各実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・「微小回転時間T30のサンプリング間隔について」
写像への入力となる微小回転時間T30のサンプリング間隔は、30°CAに限らない。例えば10°CA等、30°CAよりも小さい角度間隔であってもよい。もっとも30°CA以下の角度間隔に限らず、例えば45°CA等であってもよい。
・「上流側平均値Afuaveのサンプリング間隔について」
写像への入力となる上流側平均値Afuaveのサンプリング間隔は、30°CAに限らない。例えば10°CA等、30°CAよりも小さい角度間隔であってもよい。もっとも30°CA以下の角度間隔に限らず、例えば45°CA等であってもよい。
・「時系列データについて」
写像の入力となる上流側平均値Afuaveの時系列データ及び微小回転時間T30の時系列データとしては、720°の回転角度間隔における時系列データに限らない。例えば、720°CAよりも広い回転角度間隔における時系列データであってもよい。720°CAよりも狭い角度間隔の時系列データであってもよい。
・「検出用写像への入力としての回転波形変数について」
上記第1実施形態及び第2実施形態では、1燃焼サイクルである720°CAの回転角度間隔が分割された複数の間隔のそれぞれにおける微小回転時間T30を検出用写像への入力としたが、これに限らない。例えば、0〜720°CAを第1間隔とし、第1間隔のうちの、0〜20,40〜60,80〜100,120〜140,160〜180,…,700〜720のそれぞれを第2間隔として、それらの回転に要する時間を検出用写像への入力としてもよい。
回転波形変数を構成する変数としては、第2間隔の回転に要する時間である微小回転時間に限らない。例えば、第2間隔を微小回転時間で割った値であってもよい。なお、回転波形変数を構成する変数としては、極大値と極小値との差を固定値とする正規化処理がなされたものであることは必須ではない。また、写像の入力とするための前処理としてのフィルタ処理としては、上述したものに限らず、例えば変速装置64の入力軸66の微小回転時間に基づき、入力軸66によってクランク軸24が回されている影響分を除く処理がなされたものとしてもよい。もっとも、フィルタ処理が施されていることは必須ではない。
第3実施形態におけるS226の処理では、気筒間変数ΔTb(2)及び変動パターン変数FL[02],FL[12],FL[32]によって回転波形変数を構成したが、これに限らない。例えば、回転波形変数を構成する変動パターン変数を、変動パターン変数FL[02],FL[12],FL[32]のいずれか1つまたは2つとしてもよい。また例えば、変動パターン変数FL[02],FL[12],FL[32],FL[42]等、4つ以上の変動パターン変数を含めてもよい。
第4実施形態におけるS264の処理では、互いに圧縮上死点の出現タイミングが異なる9個のタイミングのそれぞれに対応した微小回転時間T30によって回転波形変数を構成したが、これに限らない。例えば失火の検出対象となる気筒の圧縮上死点を中央として、圧縮上死点の出現する角度間隔の2倍以上の区間を30°CAの間隔で分割したそれぞれにおける微小回転時間T30によって回転波形変数を構成してもよい。また上記において、失火の検出対象となる気筒の圧縮上死点を中央とすることは必須ではない。さらに、ここでの微小回転時間としては、30°CAの間隔の回転に要する時間に限らない。また、微小回転時間に代えて、所定の角度間隔の回転に要する時間によって所定の角度間隔を除算した瞬時回転速度を用いてもよい。
・「気筒間変数について」
気筒間変数ΔTbとしては、互いに圧縮上死点の出現タイミングが隣接する一対の気筒のそれぞれの圧縮上死点に対応する微小回転時間T30同士の差の720°CAだけ離間した値同士の差に限らない。例えば、互いに圧縮上死点の出現タイミングが360°CAだけ離間した気筒のそれぞれの圧縮上死点に対応する微小回転時間T30同士の差の720°CAだけ離間した値同士の差であってもよい。この場合、気筒間変数ΔTb(2)は、「T30(12)−T30(24)−{T30(36)−T30(48)}」となる。
また、一対の気筒のそれぞれの圧縮上死点に対応する微小回転時間T30同士の差の720°CAだけ離間した値同士の差に限らず、失火の検出対象となる気筒と、それ以外の気筒とのそれぞれの圧縮上死点に対応する微小回転時間T30同士の差であってもよい。
また例えば、気筒間変数を、一対の気筒のそれぞれの圧縮上死点に対応する微小回転時間T30同士の比としてもよい。
なお、気筒間変数ΔTbを定義する際の微小回転時間としては、30°CAの回転に要する時間に限らず、例えば45°CAの回転に要する時間等であってもよい。この際、微小回転時間は、圧縮上死点の出現間隔以下の角度間隔の回転に要する時間であることが望ましい。
さらに、上記において、微小回転時間に代えて、所定の角度間隔の回転に要する時間によって所定の角度間隔を除算した瞬時回転速度を用いてもよい。
・「変動パターン変数について」
変動パターン変数の定義としては、上記実施形態において例示したものに限らない。例えば気筒間変数ΔTbを、「気筒間変数について」の欄において例示したもの等に変更することによって、変動パターン変数の定義を変更してもよい。
さらに、互いに異なる圧縮上死点の出現タイミングに対応した気筒間変数ΔTb同士の比として変動パターン変数を定義することも必須では無く、比の代わりに差をとってもよい。この場合であっても、内燃機関10の動作点変数を入力に含めることにより、変動パターン変数の大きさが、動作点に応じて変化することを反映して失火変数PRの値を算出できる。
・「検出用写像への入力としての空燃比検出変数について」
上記実施形態では、1燃焼サイクルである720°CAの回転角度間隔が分割された複数の間隔のそれぞれにおける上流側平均値Afuaveを検出用写像への入力としたが、これに限らない。例えば、第2間隔における上流側平均値Afuaveを検出用写像への入力としてもよい。
上記実施形態では、上流側平均値Afuaveを、1度の第2間隔における複数のサンプリング値の平均値としたが、これに限らない。例えば、複数の燃焼サイクルにわたって、第2間隔のそれぞれにおける上流側検出値Afuをサンプリングし、それらを第2間隔毎に平均することによって、上流側平均値Afuaveを算出してもよい。
空燃比検出変数としては、上流側平均値Afuaveに限らず、上流側検出値Afuであってもよい。
・「路面状態変数について」
路面状態変数SRとしては、起伏の大小に応じた2値的な変数に限らず、例えば起伏の大小に応じた3値以上の変数であってもよい。また、加速度Daccに基づき路面状態変数SRを生成する手法としては、図3や図6に例示した手法に限らず、例えば、加速度Daccの絶対値の所定時間当たりの平均値を用いてもよい。これによれば、路面状態変数SRは連続的な量となる。
路面状態変数SRとしては、車両VCの上下方向の加速度の検出値に基づき定量化されたものに限らない。例えば車両の横方向の加速度や前後方向の加速度によって定量化してもよい。さらに、写像の入力として、車両の上下方向の加速度と、横方向の加速度と前後方向の加速度との3つの加速度のうちのいずれか2つ、または全てを用いて定量化されたものであってもよい。
路面状態変数SRは、加速度センサ88によって検出される加速度Daccによって定量化されたが、これに限らない。例えば、カメラによる路面の撮像データやレーダの反射波に関するデータの解析結果データを用いてもよい。
例えば、カメラによる路面の撮像データを解析する場合には、畳み込みニューラルネットワークを用いるとよい。畳み込みニューラルネットワークは、例えば、畳み込み層とプーリング層を交互に何層か重ねた特徴抽出パートと、ソフトマックス法を用いて分類を行う全結合層からなる識別パートとからなる。こうした畳み込みニューラルネットワークを用いることにより、撮像データを入力とし、起伏の大小に応じて分類した出力を得ることができる。
その他、例えば路面の状態の情報を有する地図データとGPSを用いて現在地における路面の状態を取得し、これを用いてもよい。また各車輪の空気圧を用いてもよい。すなわち、各車輪の空気圧の差には、路面の傾斜や凹凸による車輪の撓みに関する情報が含まれている。そのため、各車輪の空気圧の差には路面の状態を示唆する情報が含まれている。また例えば燃料ゲージやオイルゲージ等、車両内の流体の液面の位置を検知するセンサの検出値を用いてもよい。すなわち、液面の変動には路面の凹凸等の情報が含まれている。またサスペンションの油圧を検知するセンサの検出値を用いてもよい。すなわち、サスペンションは路面の凹凸による影響を受けて動作するため、この油圧には、路面の凹凸等の情報が含まれている。
なお、路面状態変数としては、路面の凹凸等を定量化したものに限らない。例えば、凍結の有無等、摩擦の大小を定量化したものであってもよく、また起伏と摩擦の大小との双方を識別する変数であってもよい。なお、摩擦の大小を定量化するための入力としては、各車輪の車輪速の差等を用いることができる。また路面の凍結の有無を判定するための入力としては、外気温の情報や、カメラによる撮像データを用いることができる。
・「検出用写像への入力としての動作点変数について」
動作点変数としては、回転速度NE及び充填効率ηに限らない。例えば吸入空気量Gaと回転速度NEとであってもよい。また、例えば下記「内燃機関について」の欄に記載したように、圧縮着火式内燃機関を用いる場合、噴射量と回転速度NEとであってもよい。なお、動作点変数を検出用写像の入力とすることは必須では無い。例えば下記「車両について」の欄に記載したシリーズハイブリッド車に搭載される内燃機関に適用される場合において、内燃機関が特定の動作点に限って運転される場合等には、動作点変数を入力変数に含めなくても、燃焼状態変数の値を高精度に算出できる。
・「検出用写像への入力について」
瞬時速度パラメータに加えて入力する検出用写像への入力としては、上記実施形態や上記変更例において例示したものに限らない。例えば、内燃機関10の置かれた環境に関するパラメータを用いてもよい。具体的には、例えば吸入空気中の酸素の割合に影響を与えるパラメータである大気圧を用いてもよい。また例えば、燃焼室18内における混合気の燃焼速度に影響を与えるパラメータである吸気温を用いてもよい。また例えば、燃焼室18内における混合気の燃焼速度に影響を与えるパラメータである湿度を用いてもよい。なお、湿度の把握には、湿度センサを用いてもよいが、ワイパーの状態や、雨滴を検知するセンサの検出値を利用してもよい。また、クランク軸24に機械的に連結される補機の状態に関するデータであってもよい。
検出用写像への入力に内燃機関10の動作点を含めることは必須ではない。例えば下記「内燃機関について」の欄に記載したように内燃機関がシリーズハイブリッド車に搭載され、その動作点が狭い範囲に制限された制御が前提とされる場合等にあっては、動作点を含めなくてもよい。
また、ニューラルネットワークへの入力や、下記「機械学習のアルゴリズムについて」の欄に記載した回帰式への入力等としては、各次元が単一の物理量や変動パターン変数FLからなるものに限らない。例えば上記実施形態等において検出用写像への入力とした複数種類の物理量や変動パターン変数FLの一部については、ニューラルネットワークや回帰式への直接の入力とする代わりに、それらの主成分分析によるいくつかの主成分を、ニューラルネットワークや回帰式への直接の入力としてもよい。もっとも、主成分をニューラルネットワークや回帰式の入力とする場合に、ニューラルネットワークや回帰式への入力の一部のみが主成分となることは必須ではなく、全部を主成分としてもよい。なお、主成分を検出用写像への入力とする場合、写像データには、主成分を定める検出用写像を規定するデータが含まれることとなる。
・「対処処理について」
上記実施形態では、警告灯90を操作することによって、視覚情報を通じて失火が生じた旨を報知したが、これに限らない。例えば、スピーカを操作することによって、聴覚情報を通じて失火が生じた旨を報知してもよい。また、例えば図1に示す制御装置70が通信機79を備えることとし、通信機79を操作してユーザの携帯端末に失火が生じた旨の信号を送信する処理としてもよい。これは、ユーザの携帯端末に、報知処理を実行するアプリケーションプログラムをインストールしておくことにより実現できる。
対処処理としては、報知処理に限らない。例えば、内燃機関10の燃焼室18内の混合気の燃焼を制御するための操作部を失火が生じた旨の情報に応じて操作する操作処理であってもよい。具体的には、例えば操作部を点火装置22として失火が生じた気筒の点火時期を進角させてもよい。また例えば、操作部を燃料噴射弁20として、失火が生じた気筒の燃料噴射量を増量させてもよい。
・「実行装置について」
実行装置としては、CPU72とROM74、又はCPU122とROM124を備えて、ソフトウェア処理を実行するものに限らない。例えば、上記実施形態においてソフトウェア処理されたものの少なくとも一部を、ハードウェア処理する専用のハードウェア回路(例えばASIC等)を備えてもよい。すなわち、実行装置は、以下の(a)〜(c)のいずれかの構成であればよい。(a)上記処理の全てを、プログラムに従って実行する処理装置と、プログラムを記憶するROM等のプログラム格納装置とを備える。(b)上記処理の一部をプログラムに従って実行する処理装置及びプログラム格納装置と、残りの処理を実行する専用のハードウェア回路とを備える。(c)上記処理の全てを実行する専用のハードウェア回路を備える。ここで、処理装置及びプログラム格納装置を備えたソフトウェア実行装置や、専用のハードウェア回路は複数であってもよい。
・「記憶装置について」
上記実施形態では、写像データが記憶される記憶装置を、失火検出プログラムや失火検出メインプログラム、インバランス検出メインプログラムが記憶される記憶装置、すなわちROM74やROM124とは別の記憶装置としたが、これに限らない。
・「データ解析装置について」
例えば第2実施形態において、S162,S164の処理に代えて、S24,S28bの処理等をセンター120によって実行してもよい。同様に第4実施形態や第6実施形態において報知処理をセンター120において、報知処理を実行させる指令を送信する処理を実行するようにしてもよい。
第2実施形態において、図5(b)の処理を、例えばユーザが所持する携帯端末によって実行してもよい。これは、携帯端末に図5(b)の処理を実行するアプリケーションプログラムをインストールしておくことにより実現できる。なお、この際、例えばS162の処理におけるデータの送信が有効な距離が車両の長さ程度である設定とする等して、車両IDの送受信処理を削除してもよい。第4実施形態や第6実施形態においても同様である。
・「第1実施形態及び第2実施形態の写像データについて」
中間層の活性化関数h(x)としては、全ての次元で同一の関数とすることは必須ではない。
失火の確率を出力とする写像を構成するニューラルネットワークとしては、中間層が1層のニューラルネットワークに限らない。例えば、中間層が2層以上のニューラルネットワークであってもよい。中間層の層数が多い場合、図4に記載したシステムへの利用が制御装置70の演算負荷を軽減するうえで特に有効である。
活性化関数h(x)としては、ハイパボリックタンジェントを用いるものに限らない。例えばロジスティックジグモイド関数であってもよい。図2及び図5の処理における活性化関数f(x)としては、ハイパボリックタンジェントを用いるものに限らない。例えばロジスティックジグモイド関数であってもよい。この場合、ソフトマックス関数を用いることなく、活性化関数f(x)の出力を確率Pとしてもよい。この場合、気筒#1〜#4のそれぞれで失火が生じた確率P(1)〜P(4)が、互いに独立に「0」〜「1」の値をとることとなる。
失火の確率を出力する写像としては、ニューラルネットワークを用いるものに限らない。例えば、微小回転時間T30等、写像の入力とするために取得したデータの次元を主成分分析によって低減させたパラメータを規定する係数を、上記入力側係数wFijに代えてもよい。
・「第3実施形態の写像データについて」
車両において実行される演算に用いられる写像を規定する写像データを、S264の処理において例示した写像を規定するデータとしてもよい。
例えば図10の記載によれば、ニューラルネットワークの中間層の層数は、2層よりも多い表現となっているが、これに限らない。
この実施形態では、活性化関数h,h1,h2,…hαを、ReLUとし、出力の活性化関数をソフトマックス関数としたが、これに限らない。例えば活性化関数h,h1,h2,…hαを、ハイパボリックタンジェントとしてもよい。また、例えば活性化関数h,h1,h2,…hαをロジスティックジグモイド関数としてもよい。
また、例えば出力の活性化関数を、ロジスティックジグモイド関数としてもよい。この場合、例えば出力層のノード数を1個とし、出力変数を失火変数PRとすればよい。その場合、出力変数の値が所定値以上である場合に異常と判定することによって、異常の有無を判定できる。
・「第5実施形態及び第6実施形態の写像データについて」
例えばS316において、ニューラルネットワークの中間層の層数を2層以上としてもよい。
S316aにおいて、ニューラルネットワークの中間層の層数は、2層よりも多い表現となっているが、これに限らない。特に、制御装置70の演算負荷を軽減する観点からは、ニューラルネットワークの中間層の層数を、1層または2層にまで絞ることが望ましい。
この実施形態では、活性化関数h,f,h1,h2,…hαを、ハイパボリックタンジェントとしたが、これに限らない。例えば活性化関数h,h1,h2,…hαのうちの一部または全てを、ReLUとしてもよく、また例えば、ロジスティックジグモイド関数としてもよい。
インバランス率Rivを出力する検出用写像としては、いずれか1つの気筒に限って燃料噴射量が想定したものからずれる現象を対象として学習されたものに限らない。例えば2つの気筒において燃料噴射量が想定したものからずれる現象を対象として学習されたものであってもよい。この場合、写像への入力にクランク軸24の回転周波数の1次成分の強度を含めてもよい。
・「機械学習のアルゴリズムについて」
機械学習のアルゴリズムとしては、ニューラルネットワークを用いるものに限らない。例えば回帰式を用いてもよい。これは、上記ニューラルネットワークにおいて中間層を備えないものに相当する。また、例えばサポートベクトルマシンを用いてもよい。この場合、出力の値の大きさ自体には意味が無く、例えば、その値が正であるか否かに応じて、失火が生じたか否かを表現する。換言すれば、燃焼状態変数の値が3値以上の値を有してそれらの値の大小が失火の確率の大小を表現するものとは相違する。
・「写像データの生成について」
上記実施形態では、クランク軸24にトルクコンバータ60及び変速装置64を介してダイナモメータが接続された状態で内燃機関10を稼働した時のデータを訓練データとして用いたが、これに限らない。例えば車両VCに搭載された状態で内燃機関10が駆動されたときにおけるデータを訓練データとして用いてもよい。
・「外部側送信処理について」
S266の処理では、失火変数PRの値を送信したが、これに限らない。例えば、出力活性化関数としてのソフトマックス関数の入力となる原型変数yR(1),yR(2)の値を送信してもよい。また例えば、センター120において、S228〜S236の処理を実行することとし、異常があるか否かの判定結果を送信してもよい。
・「既定の運転状態について」
気筒間の燃焼状態のばらつきを伴う内燃機関10の運転状態であれば、失火や気筒間空燃比インバランス以外の運転状態を状態検出システムの検出態様としてもよい。例えば吸気バルブや排気バルブの開弁固着により気筒内での吸気の圧縮が不十分な状態となる、いわゆる圧縮抜けが特定の気筒で発生した場合にも、気筒間の燃焼状態にばらつきが生じてクランク軸24の回転変動が大きくなる。そのため、上述のように、路面状態変数に応じて選択した写像データに基づく検出用写像に、回転波形変数を入力してこうした圧縮抜けの検出を行うようにすれば、路面の状態が与える影響を踏まえたかたちで圧縮抜けを高精度に検出できる。
・「内燃機関について」
上記実施形態では、燃料噴射弁として、燃焼室18内に燃料を噴射する筒内噴射弁を例示したがこれに限らない。例えば吸気通路12に燃料を噴射するポート噴射弁であってもよい。また例えば、ポート噴射弁と筒内噴射弁との双方を備えてもよい。
内燃機関としては、火花点火式内燃機関に限らず、例えば燃料として軽油等を用いる圧縮着火式内燃機関等であってもよい。
内燃機関が駆動系を構成すること自体必須ではない。例えば、車載発電機にクランク軸が機械的に連結され、駆動輪69とは動力伝達が遮断されたいわゆるシリーズハイブリッド車に搭載されるものであってもよい。
・「車両について」
車両としては、車両の推進力を生成する装置が内燃機関のみとなる車両に限らず、例えば「内燃機関について」の欄に記載したシリーズハイブリッド車以外にも、パラレルハイブリッド車や、シリーズ・パラレルハイブリッド車であってもよい。
・「そのほか」
クランク軸と駆動輪との間に介在する駆動系装置としては、有段の変速装置に限らず、例えば無段変速装置であってもよい。