以下、図面を参照して、本発明のエンジン(内燃機関)の制御装置に係る好適な実施形態について説明する。図1には、第1実施形態に係るエンジンの制御装置の構成の概略が示されている。なお、本実施形態のエンジンは、車両に搭載されて駆動源として用いられる。
第1実施形態で説明するエンジン1は、多気筒エンジンであるが、ここではそのうちの一気筒のみが断面図として図1に示されている。エンジン1においては、吸気通路2を通して外気が吸入空気として取り込まれ、この吸入空気がシリンダ3の直前でインジェクタ4から噴射された燃料とを混合されて混合気とされる。混合気は、シリンダ3内に吸入され、ピストン5によって圧縮された後に点火プラグ6で着火されて燃焼する。このとき燃焼によってシリンダ内の圧力は上昇し、これをピストン5及びコネクティングロッドを介して出力として取り出している。
シリンダ3の内部と吸気通路2との間は、吸気バルブ7によって開閉される。シリンダ3の内部と排気通路8との間は、排気バルブ9によって開閉される。吸気バルブ7は、吸気行程のピストン5下降時に開かれ、吸気行程から圧縮工程に移行する時に閉じられる。吸気行程が終了する(圧縮工程に移行する)時におけるピストン5の下死点を吸気下死点(吸気BDC:Bottom Dead Center)と言う。圧縮工程時にはピストン5はシリンダ3内を上昇し、上述したようにピストン5が圧縮上死点(圧縮TDC:Top Dead Center)近傍となるときに混合気に点火される。点火による混合気燃焼に伴う膨張行程においてピストン5は下降し、再び上昇するときに排気バルブ9が開かれて排気行程に移行する。燃焼後の排気ガスは排気通路8に排気される。なお、以下の説明では、クランクアングル(°CA)は、圧縮TDCを基準とする。
また、上述した点火プラグ6は、イグニッションコイル18及びイグナイタ19を介してECU15に接続されている。また、エンジン1のクランクシャフト近傍には、クランクアングルを検出し、さらにはエンジン回転数やピストン位置を検出するためのクランクポジショニングセンサ20が取り付けられており、吸気側のカムシャフトの近傍には、吸気バルブ7(及び排気バルブ9)の開閉タイミングを検出するカムポジショニングセンサ21が取り付けられている。電子式コントロールユニット(ECU)15は、CPU,RAMからなる制御手段、ROMからなる記憶手段などを備えており、クランクポジショニングセンサ20やカムポジショニングセンサ21の検出結果などに基づいて点火タイミングを決定する。ECU15からの点火信号に基づいてイグナイタ19がスイッチの働きをし、イグニッションコイル18が点火用の高電圧を生成すると、点火プラグ6はこれによって点火される。
また、エンジンの吸気通路2には、上流側から、吸気流量及び吸気温を検出するためのエアフロメータ11、スロットルバルブ12の開度(エンジン負荷)を検出するためのスロットルポジショニングセンサ17、サージタンク内の圧力を検出するための圧力センサ25などが設けられている。また、エンジンには、アクセルペダル13の操作量を検出するためのアクセルポジショニングセンサ14、エンジン冷却水の温度を検出する水温センサ23、エンジンブロックに固定され、エンジン振動を検出することでノッキング時特有のノック周波数(例えば5kHz〜7kHz)の振動を検出するためのノックセンサ24などが設けられている。これらのセンサ類の検出値はECU15により取り込まれ、エンジンの各種制御に利用されている。
また、ECU15のROMには、ノッキングを検出するために必要な各種データが記憶されている。これらのデータは、(A)燃料燃焼時の筒内圧最大値の各値と、筒内圧最大値が前記各値となった場合にノッキングが発生するクランクアングルとの対応関係のデータ(図2参照)、(B)クランクアングルの各値と、当該クランクアングルの各値でノッキングが発生した場合のノックセンサ24の検出値のピーク値との対応関係のデータ(図3参照)、(C)筒内圧の各値と、当該筒内圧の各値でノッキングが発生するために必要な未燃燃料量との対応関係のデータ(図4参照)などである。これらのデータは、内燃機関の設計・製造時に予め実測されて、ECU15のROMに記憶されている。
(A)燃料燃焼時の筒内圧最大値の各値Pmaxと、筒内圧最大値が前記各値となった場合にノッキングが発生するクランクアングルCAatAIとの対応関係のデータが、図2にグラフ化して示されている。図2のグラフにおいて、横軸はクランクアングルCAatAI、縦軸は筒内圧最大値Pmaxであり、クランクアングルCAatAIは筒内圧最大値Pmaxの1次式となっている。理解を容易にするために、燃料燃焼時の筒内圧最大値Pmax、およびノッキングが発生するクランクアングルCAatAIを図5に示す。なお、必要であれば、筒内圧最大値PmaxとクランクアングルCAatAIとの対応関係のデータを、内燃機関の運転状態(例えば、エンジン回転数、エンジン負荷などの様々な状態)ごとにROMに用意して、上記のセンサ類により検出される内燃機関の運転状態に応じて、筒内圧最大値PmaxとクランクアングルCAatAIとの対応関係のデータを選択すればよい。
(B)クランクアングルの各値CAatAIと、当該クランクアングルの各値でノッキングが発生した場合のノックセンサ24の検出値のピーク値Ppとの対応関係のデータが、図3にグラフ化して示されている。図3のグラフにおいて、横軸はクランクアングルCAatAI、縦軸はノックセンサ24の検出値のピーク値Ppであり、ノックセンサ24の検出値のピーク値Ppは、クランクアングルCAatAIの1次式となっている。理解を容易にするために、ノッキングが発生するクランクアングルCAatAI、およびノックセンサ24の検出値のピーク値Ppを図6に示す。なお、必要であれば、クランクアングルCAatAIとノックセンサ24の検出値のピーク値Ppとの対応関係のデータを、内燃機関の運転状態(例えば、エンジン回転数、エンジン負荷などの様々な状態)ごとにROMに用意して、上記のセンサ類により検出される内燃機関の運転状態に応じて、クランクアングルCAatAIとノックセンサ24の検出値のピーク値Ppとの対応関係のデータを選択すればよい。
(C)筒内圧の各値PatAIと、当該筒内圧の各値でノッキングが発生するために必要な未燃燃料量BRatAIとの対応関係のデータが、図4にグラフ化して示されている。図4のグラフにおいて、横軸は未燃燃料量BRatAI、縦軸は筒内圧PatAIであり、未燃燃料量BRatAIは、筒内圧PatAIの1次式となっている。理解を容易にするために、ノッキングが発生する時の筒内圧PatAIを図5に示す。また、未燃燃料量BRatAIは、Wiebe関数などの気筒内の燃焼割合を算出可能な数式モデルを利用して算出される。なお、必要であれば、筒内圧PatAIと未燃燃料量BRatAIとの対応関係のデータを、内燃機関の運転状態(例えば、エンジン回転数、エンジン負荷などの様々な状態)ごとにROMに用意して、上記のセンサ類により検出される内燃機関の運転状態に応じて、筒内圧PatAIと未燃燃料量BRatAIとの対応関係のデータを選択すればよい。
上述した第1実施形態の構成において、ECU15の一部であるROMは、特許請求の範囲に記載される「記憶手段」に相当する。また、ノックセンサ24は、特許請求の範囲に記載される「ノッキング検出手段」に相当する。また、上記のセンサ類およびECU15の組合せは、特許請求の範囲に記載される「筒内圧検出手段」に相当する。また、クランクポジショニングセンサ20は、特許請求の範囲に記載される「クランクアングル検出手段」に相当する。また、ECU15は、特許請求の範囲に記載される「ノッキング判定手段」に相当する。また、上記のセンサ類およびECU15の組合せは、特許請求の範囲に記載される「未燃燃料量検出手段」に相当する。
次に、ECU15により実行されるノッキングを検出する処理について説明する。図7のフローチャートには、ノッキングを検出する処理の概要が示されている。このノッキング検出処理は、エンジンの運転時にECU15により繰り返し実行されている。
ECU15は、上記のセンサ類により検出されたエンジンの運転状態のデータを取り込む(S701)。ここで、ECU15に取り込まれるデータには、ノックセンサ24の検出値が含まれている。
次に、ECU15は、ノックセンサ24の検出値にノック周波数の振動があるか否かを判定する(S702)。ここで、ノックセンサ24の検出値にノック周波数の振動がないことが判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S707)。一方、ノックセンサ24の検出値にノック周波数の振動があることが判定された場合には、ECU15は、さらに詳しくノッキングの有無を判定するためにステップ703の処理に進む。
次に、ステップ703において、ECU15は、ノック周波数の振動が計測された直前の筒内圧最大値Pmaxを算出する。そして、ECU15は、図2の特性データを参照して、ノック周波数の振動が計測されたクランクアングルCAmatAIが、算出された筒内圧最大値Pmaxの状況下においてノッキングが通常発生するクランクアングルCAatAIと一致しているか否かを判定する(S703)。ここで、上記の2つのクランクアングルが一致していないと判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S707)。一方、上記の2つのクランクアングルが一致していると判定された場合には、ECU15は、さらに詳しくノッキングの有無を判定するためにステップ704の処理に進む。
次に、ステップ704において、ECU15は、図3の特性データを参照して、ノック周波数の振動が計測されたタイミングのノックセンサ24の検出値のピーク値が、ノック周波数の振動が計測されたクランクアングルCAにおいてノッキングが発生した場合に表れる通常のピーク値と一致しているか否かを判定する(S704)。ここで、上記の2つのピーク値が一致していないと判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S707)。一方、上記の2つのピーク値が一致していると判定された場合には、ECU15は、さらに詳しくノッキングの有無を判定するためにステップ705の処理に進む。
次に、ステップ705において、ECU15は、図4の特性データを参照して、ノック周波数の振動が計測されたタイミングの内燃機関の運転状態から算出(検出)される未燃燃料量が、ノック周波数の振動が計測されたタイミングの筒内圧PatAIにおいて可聴レベルのノッキングが発生するために必要な通常の未燃燃料量よりも多いか否かを判定する(S705)。ここで、上記の2つの未燃燃料量が一致していないと判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S707)。一方、上記の2つの未燃燃料量が一致していると判定された場合には、ECU15は、ノッキングが発生していることを判定する(S706)。
次に、上記のステップ703の処理の詳細を説明する。図8のフローチャートには、図7のステップ703の処理が詳細に示されている。図8のフローチャートでは、ECU15は、ノック周波数の振動が計測された直前の筒内圧最大値Pmax、言い換えれば、ノック周波数の振動が検出されたサイクルにおける筒内圧最大値Pmaxを算出する。そして、ECU15は、図2の特性データを参照して、ノック周波数の振動が計測されたクランクアングルCAmatAIが、算出された筒内圧最大値Pmaxの状況下においてノッキングが通常発生するクランクアングルCAatAIと一致しているか否かを判定している。
先ず、ECU15は、上記のセンサ類により検出された内燃機関の運転状態に基づいて、ノックセンサ24の検出値にノック周波数の振動が発生した直前の筒内圧最大値Pmaxを算出(検出)する(S801)。ここで、ECU15は、筒内圧の最大値Pmaxを簡易に算出するために、例えば、エンジン負荷、エンジン回転数などのパラメータの近似式(例えば一次式)として筒内圧最大値Pmaxが表された計算式を利用したり、エンジン負荷、エンジン回転数などのパラメータに筒内圧最大値Pmaxが対応付けられたマップデータを利用すればよい。
次に、ECU15は、図2に示される特性データを参照して、ステップ801で算出された筒内圧最大値Pmaxに対応するクランクアングルCAatAIを求める(S802)。ここで、求められるクランクアングルCAatAIは、ステップ801で算出された筒内圧最大値Pmaxの状況下において、ノッキングが通常発生するクランクアングルCAatAIである。
次に、ECU15は、ノックセンサ24の検出値にノック周波数の振動が発生したタイミングのクランクアングルCAmatAIを求める(S803)。すなわち、ECU15は、図6に示されるように、ノックセンサ24の検出値がノック周波数で振動を開始するタイミングのクランクアングルCAmatAIを求める。
次に、ECU15は、ステップ802で求めたクランクアングルCAatAIと、ステップ803で求めたクランクアングルCAmatAIとの差分の絶対値が、予め設定された閾値Ccより小さいか否かを判定する(S804)。ここで、閾値Ccは、上記の2つのクランクアングルCAatAIおよびCAmatAIがほぼ一致していることを判定するための閾値であり、上記の2つのクランクアングルCAatAIおよびCAmatAIと比較して十分に小さい数値である。
ステップ804において2つのクランクアングルCAatAI,CAmatAIの差分の絶対値が予め設定された閾値Ccより小さいと判定された場合には、ECU15は、ノック周波数の振動が計測されたタイミングのクランクアングルCAmatAIが、ステップ801で算出された筒内圧最大値Pmaxの状況下においてノッキングが通常発生するクランクアングルCAatAIと一致していることを判定する(S805)。
一方、ステップ804において2つのクランクアングルCAatAI,CAmatAIの差分の絶対値が予め設定された閾値Ccより大きいと判定された場合には、ECU15は、ノック周波数の振動が計測されたタイミングのクランクアングルCAmatAIが、ステップ801で算出された筒内圧最大値Pmaxの状況下においてノッキングが通常発生するクランクアングルCAatAIと一致していないことを判定する(S806)。
既述のとおり、2つのクランクアングルCAatAI,CAmatAIが一致していないと判定された場合には、ステップ707においてノッキングが発生していないことが判定される。よって、ノック周波数の振動が異常なクランクアングルで発生している場合に、その異常な振動がノッキングに因るものであると誤検出されることを防止することができる。
なお、上述した処理で、ECU15は、図2の特性データを参照して筒内圧最大値Pmaxに対応するクランクアングルCAatAIを求め、ノック周波数の振動が発生したタイミングで検出されたクランクアングルCAmatAIと比較している。これに代えて、ECU15は、図2の特性データを参照してクランクアングルCAmatAIに対応する筒内圧最大値Pmaxを求め、ノック周波数の振動が発生した直前に検出された筒内圧最大値Pmaxと比較してもよい。すなわち、検出された筒内圧最大値PmaxおよびクランクアングルCAmatAIの組合せが、ROMに記憶された筒内圧最大値PmaxとクランクアングルCAatAIとの対応関係に適合していればよい。
次に、上記のステップ704の処理の詳細を説明する。図9のフローチャートには、図7のステップ704の処理が詳細に示されている。図9のフローチャートでは、ECU15は、図3の特性データを参照して、ノック周波数の振動が計測されたタイミングのノックセンサ24の検出値のピーク値が、ノック周波数の振動が計測されたクランクアングルCAmatAIにおいてノッキングが発生した場合に表れる通常のピーク値と一致しているか否かを判定している。
先ず、ECU15は、図3に示される特性データを参照して、ノックセンサ24の検出値にノック周波数の振動が発生したクランクアングルCAmatAIに対応するノックセンサ24の検出値のピーク値Ppを求める(S901)。ここで、求められるノックセンサ24の検出値のピーク値Ppは、ノック周波数の振動が計測されたクランクアングルCAmatAIにおいてノッキングが発生した状況下において、ノックセンサ24の検出値に通常表れるピーク値Ppである。
次に、ECU15は、ノックセンサ24の検出値にノック周波数の振動が発生したタイミングのノックセンサ24の検出値のピーク値Ppmを求める(S902)。ここで求められるノックセンサ24の検出値のピーク値Ppmは、図6に示されるようにノックセンサ24の検出値の最大値である。ちなみに、ノックセンサ24が非共振型であれば、ノックセンサ24の検出値のピーク値は、ノックセンサ24の検出値からノック周波数成分をフィルタリングした後のピーク値として得られる。また、ノックセンサ24が共振型であれば、ノックセンサ24の検出値のピーク値は、ノックセンサ24の検出値そのもののピーク値として得られる。
次に、ECU15は、ステップ901で求めたピーク値Ppと、ステップ902で求めたピーク値Ppmとの差分の絶対値が、予め設定された閾値Pcより小さいか否かを判定する(S903)。ここで、閾値Pcは、上記の2つのピーク値PpおよびPpmがほぼ一致していることを判定するための閾値であり、上記の2つのピーク値PpおよびPpmと比較して十分に小さい数値である。
ステップ903において2つのピーク値Pp,Ppmの差分の絶対値が予め設定された閾値Pcより小さいと判定された場合には、ECU15は、ノック周波数の振動が計測されたタイミングのノックセンサ24の検出値のピーク値Ppmが、ノック周波数の振動が計測されたクランクアングルCAにおいてノッキングが発生した場合に表れる通常のピーク値Ppと一致していることを判定する(S904)。
一方、ステップ903において2つのピーク値Pp,Ppmの差分の絶対値が予め設定された閾値Pcより大きいと判定された場合には、ECU15は、ノック周波数の振動が計測されたタイミングのノックセンサ24の検出値のピーク値Ppmが、ノック周波数の振動が計測されたクランクアングルCAにおいてノッキングが発生した場合に表れる通常のピーク値Ppと一致していないことを判定する(S905)。
既述のとおり、2つのピーク値Pp,Ppmが一致していないと判定された場合には、ステップ707においてノッキングが発生していないことが判定される。よって、ノック周波数の振動が異常なピーク値をもつ場合に、その異常な振動がノッキングに因るものであると誤検出されることを防止することができる。
なお、上述した処理で、ECU15は、図3の特性データを参照してクランクアングルCAmatAIに対応するノックセンサ24の検出値のピーク値Ppを求め、ノック周波数の振動が発生したタイミングで検出されたノックセンサ24の検出値のピーク値Ppmと比較している。これに代えて、ECU15は、図3の特性データを参照してノックセンサ24の検出値のピーク値Ppmに対応するクランクアングルCAatAIを求め、ノック周波数の振動が発生したタイミングで検出されたクランクアングルCAmatAIと比較してもよい。すなわち、検出されたクランクアングルCAmatAIおよびピーク値Ppmの組合せが、ROMに記憶されたクランクアングルCAatAIとピーク値Ppとの対応関係に適合していればよい。
次に、上記のステップ705の処理の詳細を説明する。図10のフローチャートには、図7のステップ705の処理が詳細に示されている。図10のフローチャートでは、ECU15は、図4の特性データを参照して、ノック周波数の振動が計測されたタイミングの内燃機関の運転状態から算出される未燃燃料量が、ノック周波数の振動が計測されたタイミングの筒内圧PatAIにおいてノッキングが発生するために必要な通常の未燃燃料量よりも多いか否かを判定する。
先ず、ECU15は、上記のセンサ類の検出値に基づいて、ノック周波数の振動が計測されたタイミングの筒内圧PatAIを算出(検出)する(S1001)。ここで、ECU15は、エンジンモデル(すなわち、エンジンの諸特性の関係式)に、上記のセンサ類の検出値を適用することで筒内圧PatAIを算出すればよい。また、ECU15は、統計モデル(すなわち、エンジンの諸特性のマップデータ)に、上記のセンサ類の検出値を適用することで筒内圧PatAIを算出してもよい。
次に、ECU15は、図4に示される特性データを参照して、ノック周波数の振動が計測されたタイミングの筒内圧PatAIに対応する未燃燃料量BRatAIを求める(S1002)。ここで求められる未燃燃料量BRatAIは、ノック周波数の振動が計測されたクランクアングルCAmatAIにおいて、車室内の乗員に聞こえる大きさのノッキングが発生するために必要な通常の未燃燃料量BRatAIである。
次に、ECU15は、ノック周波数の振動が計測されたタイミングのクランクアングルCAmatAIにおいて、実際に気筒内に残っている未燃燃料量BRcatAIを算出(検出)する(S1003)。ここで、ECU15は、未燃燃料量BRcatAIを算出するために、Wiebe関数などの気筒内の燃焼割合を算出可能な数式モデルを利用すればよい。
次に、ECU15は、ステップ1002で求めた未燃燃料量BRatAIよりも、ステップ1003で求めた未燃燃料量BRcatAIの方が大きいか否かを判定する(S1004)。ここで、ステップ1002で求めた未燃燃料量BRatAIよりもステップ1003で求めた未燃燃料量BRcatAIの方が大きいということは、実際に発生したノッキング音が可聴レベルにあり、ノッキング音が車室内の乗員に聴こえることを意味している。
ステップ1004においてステップ1002で求めた未燃燃料量BRatAIよりも、ステップ1003で求めた未燃燃料量BRcatAIの方が大きいと判定された場合には、ECU15は、ノッキング音が車室内の乗員に聴こえることを判定する。一方、ステップ1004においてステップ1002で求めた未燃燃料量BRatAIよりも、ステップ1003で求めた未燃燃料量BRcatAIの方が小さいと判定された場合には、ECU15は、ノッキング音が車室内の乗員に聴こえないことを判定する。
既述のとおり、ステップ1002で求めた未燃燃料量BRatAIよりも、ステップ1003で求めた未燃燃料量BRcatAIの方が大きいと判定された場合には、ステップ706においてノッキングが発生していることが判定される。一方、ステップ1002で求めた未燃燃料量BRatAIよりも、ステップ1003で求めた未燃燃料量BRcatAIの方が小さいと判定された場合には、ステップ707においてノッキングが発生していないことが判定される。よって、ノック周波数の振動が可聴レベルに至らない場合に、その振動がノッキングに因るものであると検出されることを防止することができる。
上述した第1実施形態に係る内燃機関の制御装置によれば、ノックセンサ24の検出値にノイズが混じることによりノッキングが誤検出されたり、車室内の乗員には聴こえないノッキングが検出されることが防止されるため、これらに対応して所定のノック対応制御(例えば、点火時期の遅角化など)が実行されることがない。この結果、内燃機関は、最良の制御状態に保たれて運転されることとなり、最良の性能を得ることができる。
なお、上述した第1実施形態では、ステップ703、ステップ704およびステップ705の全ての判定において肯定された場合に、ノッキングが発生したことを検出しているが、ステップ703、ステップ704またはステップ705のいずれか1つの判定のみで肯定された場合に、ノッキングが発生したことを検出してもよい。
なお、上述した処理で、ECU15は、図4の特性データを参照してクランクアングルCAmatAIに対応する未燃燃料量BRatAIを求め、ノック周波数の振動が発生したタイミングで検出された未燃燃料量BRcatAIと比較している。これに代えて、ECU15は、図4の特性データを参照して未燃燃料量BRcatAIに対応するクランクアングルCAatAIを求め、ノック周波数の振動が発生したタイミングで検出されたクランクアングルCAmatAIと比較してもよい。すなわち、検出されたクランクアングルCAmatAIおよび未燃燃料量BRmatAIの組合せが、ROMに記憶されたクランクアングルCAatAIと未燃燃料量BRatAIとの対応関係に適合していればよい。
次に、第2実施形態に係る内燃機関の制御装置について説明する。第2実施形態に係る内燃機関の制御装置は、第1実施形態と構成がほぼ同じであるが、ノックセンサ24に代えて、気筒内の圧力を検出する筒内圧センサが点火プラグ6と一体化されて設けられている点で異なっている。このため、第2実施形態では、ECU15がセンサ類により検出された内燃機関の運転状態から筒内圧を算出する必要がなく、筒内圧センサ6を用いて筒内圧を直接的に検出できるため、筒内圧の検出精度が高く、ECU15の計算負荷が小さい。
また、筒内圧センサ6が設けられたことに対応して、ECU15のROMに記憶される特性データも第1実施形態と異なっている。すなわち、ECU15のROMに記憶されるデータは、(A)燃料燃焼時の筒内圧最大値の各値と、筒内圧最大値が前記各値となった場合にノッキングが発生するクランクアングルとの対応関係のデータ(図2参照)、(B)クランクアングルの各値と、当該クランクアングルの各値でノッキングが発生した場合の筒内圧ノック周波数成分のピーク値との対応関係のデータ(図3と類似)、(C)筒内圧の各値と、当該筒内圧の各値でノッキングが発生するために必要な未燃燃料量との対応関係のデータ(図4参照)などである。これらのデータは、内燃機関の設計・製造時に予め実測されて、ECU15のROMに記憶されている。
上述した第2実施形態の構成において、ECU15の一部であるROMは、特許請求の範囲に記載される「記憶手段」に相当する。また、筒内圧センサ6およびECU15の組合せは、特許請求の範囲に記載される「ノッキング検出手段」に相当する。また、筒内圧センサ6は、特許請求の範囲に記載される「筒内圧検出手段」に相当する。また、クランクポジショニングセンサ20は、特許請求の範囲に記載される「クランクアングル検出手段」に相当する。また、ECU15は、特許請求の範囲に記載される「ノッキング判定手段」に相当する。また、上記のセンサ類およびECU15の組合せは、特許請求の範囲に記載される「未燃燃料量検出手段」に相当する。
次に、ECU15により実行されるノッキングを検出する処理について説明する。図11のフローチャートには、ノッキングを検出する処理の概要が示されている。このノッキング検出処理は、エンジンの運転時にECU15により繰り返し実行されている。
ECU15は、上記のセンサ類により検出されたエンジンの運転状態のデータを取り込む(S1101)。ここで、ECU15に取り込まれるデータには、筒内圧センサ6の検出値が含まれている。
次に、ECU15は、筒内圧センサ6の検出値にノック周波数の振動があるか否かを判定する(S1102)。ここで、筒内圧センサ6の検出値にノック周波数の振動がないことが判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S1107)。一方、筒内圧センサ6の検出値にノック周波数の振動があることが判定された場合には、ECU15は、さらに詳しくノッキングの有無を判定するためにステップ113の処理に進む。
次に、ステップ1103において、ECU15は、ノック周波数の振動が計測された直前の筒内圧最大値Pmaxを検出する。そして、ECU15は、図2の特性データを参照して、ノック周波数の振動が計測されたクランクアングルCAmatAIが、検出された筒内圧最大値Pmaxの状況下においてノッキングが通常発生するクランクアングルCAatAIと一致しているか否かを判定する(S1103)。ここで、上記の2つのクランクアングルが一致していないと判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S1107)。一方、上記の2つのクランクアングルが一致していると判定された場合には、ECU15は、さらに詳しくノッキングの有無を判定するためにステップ1104の処理に進む。
次に、ステップ1104において、ECU15は、図3に類似する特性データを参照して、ノック周波数の振動が計測されたタイミングの筒内圧センサ6の検出値(ノック周波数成分をフィルタリングした後の検出値)のピーク値Ppmが、ノック周波数の振動が計測されたタイミングのクランクアングルCAにおいてノッキングが発生した場合に表れる通常のピーク値Ppと一致しているか否かを判定する(S1104)。ここで、上記の2つのピーク値Ppm,Ppが一致していないと判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S1107)。一方、上記の2つのピーク値Ppm,Ppが一致していると判定された場合には、ECU15は、さらに詳しくノッキングの有無を判定するためにステップ1105の処理に進む。
次に、ステップ1105において、ECU15は、ノック周波数の振動が計測されたタイミングの筒内圧PatAIを検出する。そして、ECU15は、図4の特性データを参照して、ノック周波数の振動が計測されたタイミングの筒内圧検出値PatAIを元に燃焼圧解析を行って算出される未燃燃料量BRcatAIが、ノック周波数の振動が計測されたタイミングの筒内圧PatAIにおいてノッキングが発生するために必要な通常の未燃燃料量BRatAIよりも多いか否かを判定する(S1105)。ここで、未燃燃料量BRcatAIが未燃燃料量BRatAIより少ないと判定された場合には、ECU15は、ノッキングが発生していないことを判定する(S1107)。一方、未燃燃料量BRcatAIが未燃燃料量BRatAIより多いと判定された場合には、ECU15は、ノッキングが発生していることを判定する(S1106)。
上述した第2実施形態に係る内燃機関の制御装置によれば、第1実施形態と同様に、筒内圧センサ6の検出値にノイズが混じることによりノッキングが誤検出されたり、車室内の乗員には聴こえないノッキングが検出されることが防止されるため、これらに対応して所定のノック対応制御(例えば、点火時期の遅角化など)が実行されることがない。この結果、内燃機関は、最良の制御状態に保たれて運転されることとなり、最良の性能を得ることができる。
なお、上述した第2実施形態では、ステップ1103、ステップ1104およびステップ1105の全ての判定において肯定された場合に、ノッキングが発生したことを検出しているが、ステップ1103、ステップ1104またはステップ1105のいずれか1つの判定のみで肯定された場合に、ノッキングが発生したことを検出してもよい。
なお、上述した第1実施形態および第2実施形態に係る内燃機関の制御装置によれば、特開2004−342683号公報に示される内燃機関の制御装置に対して、次の点で優れている。すなわち、特開2004−342683号公報に示される内燃機関の制御装置では、自着火予測式などの複雑な計算式を利用してノッキングを検出するため、ECUの計算負荷が大きい。これに対して、上述した第1実施形態および第2実施形態に係る内燃機関の制御装置では、ROMに予め記憶された対応関係のデータを利用してノッキングを検出するため、ECUの計算負荷が小さく、ノッキングの判定を高速に行うことができる。
1…内燃機関、2…吸気通路、3…シリンダ、4…インジェクタ、5…ピストン、6…点火プラグまたは筒内圧センサ、7…吸気バルブ、8…排気通路、9…排気バルブ、11…エアフロメータ、12…スロットルバルブ、13…アクセルペダル、14…アクセルポジショニングセンサ、15…ECU、17…スロットルポジショニングセンサ、18…イグニッションコイル、19…イグナイタ、20…クランクポジショニングセンサ、21…カムポジショニングセンサ、23…水温センサ、24…ノックセンサ、25…圧力センサ。