(57)【要約】【課題】ノイズに対して耐性を持つよう同定を行う。【解決手段】エンジンを制御するための制御装置は、エンジンからの出力をパラメータを用いて補正した補正値と、該補正値が収束すべき値との差が最小になるよう、該パラメータを所定の周期で同定する同定器と、該同定されたパラメータを用いて、エンジンを制御する制御器を有する。同定器による同定処理に先立ち、該所定の周期内の所定の計測区間において、該同定処理に必要なデータが計測される。エンジンの運転状態に応じて、該計測区間内に、同定処理に影響しうるノイズの発生区間を設定し、同定器は、該計測区間から該ノイズ発生区間を除いた区間において計測されたデータを用いて同定処理を行う。他の形態では、同定器により算出された第１のパラメータおよび第２のパラメータの値の組み合わせが安定領域外にあるならば、該パラメータの更新を禁止する。【選択図】図３
2009019525.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関を制御するための制御装置であって、
前記内燃機関からの出力をパラメータを用いて補正した補正値と、該補正値が収束すべき値との差が最小になるよう、該パラメータを所定の周期で同定する同定器と、
前記同定されたパラメータを用いて、前記内燃機関を制御する制御器と、
前記同定器による同定処理に先立ち、前記所定の周期内の所定の計測区間において、該同定処理に必要なデータを計測する計測手段と、
前記内燃機関の運転状態に応じて、前記計測区間内に、前記同定処理に影響しうるノイズの発生区間を設定する手段と、を備え、
前記同定器は、前記計測区間から前記ノイズ発生区間を除いた区間において計測されたデータを用いて、前記同定処理を行う、
制御装置。
【請求項２】
前記ノイズ発生区間の開始および終了は、該内燃機関の回転数に応じて設定される、
請求項1に記載の装置。
【請求項３】
前記ノイズ発生区間は、前記内燃機関の点火時期に同期して開始するよう設定される、
請求項１または２に記載の装置。
【請求項４】
内燃機関を制御するための制御装置であって、
前記内燃機関からの出力を、第１および第２のパラメータを用いて補正した補正値と、該補正値が収束すべき値との差が最小になるよう、該第１および第２のパラメータの値を算出する同定器と、
前記同定器により算出された該第１および第２のパラメータの値で、該第１および第２のパラメータを更新する更新手段と、
前記更新された第１および第２のパラメータの値を用いて、前記内燃機関を制御する制御器と、を備え、
前記同定器により同定された第１のパラメータの値および第２のパラメータの値の組み合わせが所定の安定領域外にあるかどうかを判断し、該組み合わせが該安定領域外にあるならば、前記更新手段による更新を禁止し、前記制御器が、更新前の第１および第２のパラメータの値を用いて前記内燃機関を制御するようにする、
制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来、同定器によってパラメータを同定し、該同定したパラメータを用いて制御対象（プラント）を制御する手法が様々な形態で行われている。
【０００３】
たとえば、下記の特許文献１には、圧縮行程において計測された内燃機関の燃焼室内の圧力（筒内圧）を、失火時の燃焼室内の圧力（モータリング圧力）について推定された値と比較し、両者の差が最小になるよう、該筒内圧を補正するためのパラメータを同定する。このようなパラメータ同定により、適切に補正された筒内圧と、モータリング圧力とを比較することにより、膨張行程において失火が生じたかどうかを良好な精度で判定することができる。
【特許文献１】特開２００６−１３８２０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
同定処理は、統計的な計算を伴うことが多いが、このような同定処理に用いられるデータを収集する区間に何らかのノイズが発生すると、結果として同定処理によって算出されるパラメータに誤差が生じうる。パラメータに誤差が含まれると、該パラメータを用いた後続の制御処理、たとえば上記のような失火判定処理の精度が低下するおそれがある。
【０００５】
したがって、同定処理によって算出されるパラメータに誤差が含まれることを防止する手法が望まれている。また、該算出されたパラメータに結果として誤差が含まれてしまった場合でも、後続の制御処理への影響を軽減する手法が望まれている。
【課題を解決するための手段】
【０００６】
この発明の一つの側面によると、内燃機関を制御するための制御装置は、内燃機関からの出力をパラメータを用いて補正した補正値と、該補正値が収束すべき値との差が最小になるよう、該パラメータを所定の周期で同定する同定器と、該同定されたパラメータを用いて、内燃機関を制御する制御器と、同定器による同定処理に先立ち、該所定の周期内の所定の計測区間において、該同定処理に必要なデータを計測する計測手段と、内燃機関の運転状態に応じて、該計測区間内に、同定処理に影響しうるノイズの発生区間を設定する手段と、を備え、同定器は、該計測区間から該ノイズ発生区間を除いた区間において計測されたデータを用いて、同定処理を行う。
【０００７】
この発明によれば、同定処理に必要なデータを計測する区間内に、ノイズの発生区間を設定し、該ノイズ発生区間を除いた区間において計測されたデータを用いて同定処理を行うので、算出されるパラメータにノイズが混入されるのを低減することができる。
【０００８】
この発明の一実施例では、上記ノイズ発生区間の開始および終了は、該内燃機関の回転数に応じて設定される。この発明によれば、ノイズ発生区間を、内燃機関の回転数に応じて設定するので、ノイズ発生区間をより適切に設定することができる。たとえば、吸気バルブ等の着座ノイズが発生する区間は、内燃機関の回転数に依存するので、このような設定により、着座ノイズが同定処理に混入されるのを回避することができる。
【０００９】
この発明の一実施例によれば、ノイズ発生区間は、内燃機関の点火時期に同期して開始するよう設定される。この発明によれば、点火ノイズが同定処理に混入されるのを回避することができる。
【００１０】
この発明の他の側面によれば、内燃機関を制御するための制御装置は、内燃機関からの出力を、第１および第２のパラメータを用いて補正した補正値と、該補正値が収束すべき値との差が最小になるよう、該第１および第２のパラメータの値を算出する同定器と、該同定器により算出された該第１および第２のパラメータの値で、該第１および第２のパラメータを更新する更新手段と、該更新された第１および第２のパラメータの値を用いて、内燃機関を制御する制御器と、を備え、同定器により算出された第１のパラメータの値および第２のパラメータの値の組み合わせが所定の安定領域外にあるかどうかを判断し、該組み合わせが該安定領域外にあるならば、上記更新手段による更新を禁止し、制御器が、更新前の第１および第２のパラメータの値を用いて内燃機関を制御するようにする。
【００１１】
この発明によれば、結果として同定器により算出されたパラメータに誤差が含まれている場合には、該パラメータの更新が禁止されるので、誤差を含むパラメータによって後続の制御処理が影響されるのを防ぐことができる。
【発明を実施するための最良の形態】
【００１２】
次に図面を参照して、この発明の実施例を説明する。
【００１３】
図１は、この発明の一実施形態に従う、内燃機関（以下、エンジンと呼ぶ）およびその制御装置の全体的な構成図である。電子制御ユニット（以下、「ＥＣＵ」）という）１は、入出力インターフェース、中央演算処理装置（ＣＰＵ）、およびメモリを備えるコンピュータである。メモリには、車両の様々な制御を実現するためのコンピュータ・プログラムおよび該プログラムの実施に必要なデータを格納することができる。ＥＣＵ１は、車両の各部から送られてくるデータを入出力インターフェースを介して受け取って演算を行い、制御信号を生成し、これを、該入出力インターフェースを介してエンジンの各部を制御するために送る。
【００１４】
エンジン２は、たとえば４気筒（図示せず）を備えたエンジンであり、そのうちの１つの気筒が示されている。各気筒には、吸気バルブ３を介して吸気管４が連結され、排気バルブ５を介して排気管６が接続されている。
【００１５】
吸気管４には、スロットル弁７を介して吸気管４を通過する空気の量を検出するエアフローメータ（ＡＦＭ）８が設けられている。このセンサの検出値は、ＥＣＵ１に送られる。
【００１６】
スロットル弁７の開度は、ＥＣＵ１からの制御信号に従って制御される。スロットル弁７の開度を制御することにより、エンジン２に吸入される空気の量を制御することができる。スロットル弁７には、スロットル弁の開度を検出するスロットル弁開度（θＴＨ）センサ９が連結されており、この検出値は、ＥＣＵ１に送られる。
【００１７】
スロットル弁７の下流には、吸気管内絶対圧（ＰＢ）センサ１０および吸気温（ＴＡ）センサ１１が設けられており、それぞれ、吸気管内の圧力および温度を検出する。これらの検出値は、ＥＣＵ１に送られる。
【００１８】
エンジン２の吸気管４には、気筒ごとに燃料噴射弁（インジェクタ）１２が設けられている。燃料噴射弁１２は、ＥＣＵ１からの制御信号に従って、燃料を噴射する。
【００１９】
点火プラグ１３が、燃焼室１４に臨むように取り付けられている。点火プラグ１３は、ＥＣＵ１からの制御信号に従う点火時期に従って駆動される。
【００２０】
点火プラグ１３により飛ばされた火花により、燃料噴射弁１２から噴射された燃料と空気の混合気が燃焼室１４内で燃焼する。燃焼により混合気の体積は増大し、これによりピストン１５を下方に押し下げる。ピストン１５の往復運動は、クランク軸１６の回転運動に変換される。
【００２１】
また、各気筒の点火プラグ１３には、筒内圧センサ１７が埋め込まれており、該センサ１７は、点火プラグ１３の燃焼室１４内に突出した部分にかかる圧力、すなわち筒内圧を、圧電素子を利用して検出するプラグはめ込み型センサである。センサ１７は、検出された筒内圧をＥＣＵ１に送る。
【００２２】
さらに、エンジン２には、エンジン２の冷却水の温度ＴＷを検出する水温センサ１８、およびクランク角センサ１９が設けられている。クランク角センサ１９は、クランクシャフト（図示せず）の回転に従って、ＣＲＫ信号（クランクパルス）をＥＣＵ１に出力する。ＣＲＫ信号は、所定のクランク角毎（たとえば、１５度）に出力される。ＥＣＵ１は、ＣＲＫ信号に応じ、エンジン２の回転数ＮＥを算出する。
【００２３】
以下の実施例では、制御対象をエンジンとし、該エンジンの燃焼状態を表す筒内圧についてのパラメータを同定する同定器を備える制御装置を例に、本願発明を説明する。しかしながら、後述するように、本願発明はこのような形態に制限されない。本願発明は、任意のパラメータを同定する同定器を備えるエンジン制御に広く適用可能である。さらに、以下の実施例では、同定器により同定されたパラメータを用いた制御処理として、失火判定という処理を行っているが、本願発明では、他の判定処理（たとえば、ノック検知等）だけでなく、エンジンの運転状態を変更したりする処理（空燃比を操作する処理、燃料量を操作する処理、吸気量を操作する処理等）も含めて、制御処理と呼び、これらの任意の制御処理に本願発明は広く適用可能である。
【００２４】
ここで、図２を参照して、この発明の一実施例で行う同定処理および制御処理（失火判定）の原理を説明する。図２は、クランク角度―１８０度から１８０度の領域における気筒の燃焼室の圧力（筒内圧）を示しており、およそクランク角度―１８０度から０度の範囲が圧縮行程であり、０度から１８０度までが膨張（燃焼）行程である。
【００２５】
曲線３１は、エンジンの１つの気筒のモータリング圧力（失火時の圧力）の推移を示し、曲線３３は、同じ気筒において正常な燃焼が行われたときの筒内圧の推移を示す。クランク角０度が上死点（ＴＤＣ）であり、モータリング圧力は上死点でピークとなり、燃焼時の筒内圧は、上死点を過ぎた１０度付近でピークとなる。
【００２６】
図に示されるように、圧縮行程において上死点に達する前の期間、たとえば同定ステージと示す期間において、曲線３１と曲線３３はほぼ重なっており、モータリング圧力と筒内圧とはほぼ同じ値を取ることがわかる。
【００２７】
一方、黒色のドット３５は、筒内圧センサ１７により検出された実測値ＰＳを示す。筒内圧センサ１７は、エンジンの燃焼室という過酷な環境に置かれており、温度の影響、経年変化などによって特性が変化する。したがって、図に示されるように、筒内圧実測値ＰＳは、誤差を含んでおり、誤差を含まない筒内圧を示す曲線３３から乖離することがある。
【００２８】
この実施例では、まず、同定ステージにおいて、筒内圧実測値ＰＳがほぼモータリング圧力の曲線３１上にくるよう、該実測値を補正するための補正パラメータを同定する。より具体的には、該補正は、筒内圧実測値ＰＳに、以下の補正式を適用することによって行われる。
ＰＳ’（θ）＝ＰＳ（θ）ｋ１＋Ｃ１
【００２９】
ここで、ｋ１は補正係数（ゲイン）であり、Ｃ１は補正項（オフセット）であり、これらが補正パラメータである。θは、クランク角度を表す。こうして補正された実測値ＰＳ’が、図では白色のドット３７で示されている。同定ステージの期間においては、前述したように、誤差を含まない筒内圧（曲線３３）は、モータリング圧力（曲線３１）とほぼ同じ挙動を呈するので、筒内圧実測値ＰＳは、該補正によって、対応するモータリング圧力ＰＭに収束すべきである。したがって、同定ステージの期間において、両者の差(ＰＭ−ＰＳ’)が最小になるように、補正パラメータｋ１およびＣ１を同定する。
【００３０】
次に、燃焼（膨張）行程において混合気の燃焼開始後、たとえば図２に判定ステージと示す期間において、筒内圧実測値ＰＳは、同定されたパラメータｋ１およびＣ１を用いて補正され、補正済み筒内圧ＰＳ’が算出される。これにより、判定ステージの期間において、黒色のドット３５は、ほぼ曲線３３上に位置する白色のドット３７となる。図に示されるように、判定ステージの期間においては、失火しない時の筒内圧（曲線３３）と、失火時の筒内圧曲線３１との間に差が生じる。したがって、補正済み筒内圧ＰＳ’（白色のドット３７）と、モータリング圧力ＰＭ（曲線３１）との関係に基づいて、燃焼状態、たとえば、失火が生じたかどうかを判定することができる。一実施例では、ＰＳ’／ＰＭが予め定めた閾値より小さいとき、失火が生じたと判定する。
【００３１】
同定処理は、同定ステージの期間において収集されたデータを用いて行われる。該期間において何らかのノイズが発生すると、収集されたデータにノイズが混入し、結果として、同定処理で同定されたパラメータに、ノイズが誤差となって含まれるおそれがある。パラメータに誤差が含まれると、これを用いた後続の制御処理（この実施例では、失火判定処理）に誤差が生じるおそれがある。
【００３２】
この実施例では、同定処理に、筒内圧センサ１７の検出値が用いられる。同定ステージの期間中の該検出値に含まれるノイズとして、たとえば、点火プラグ１３を介して点火する際に生じる点火ノイズ、吸気バルブ３が着座する際に生じる着座ノイズ等がある。また、インジェクタを燃焼室内に臨むように設けて燃焼室内に直接燃料を噴射する直噴噴射式エンジンの場合には、このインジェクタの着座ノイズも該検出値に含まれるおそれがある。
【００３３】
したがって、この発明の一実施例では、同定ステージの期間内に、ノイズが発生しうる区間を設定し、該ノイズ発生区間を除いた区間で収集されたデータを用いて同定処理を行うようにする。
【００３４】
ノイズをキャンセルする典型的な手法にフィルタリングがあるが、フィルタリングは、位相遅れを生じさせる。本願発明によれば、このような位相遅れを回避しつつ、より確実にノイズ混入を防ぐことができる。
【００３５】
図３は、この発明の第１の実施形態に従う、制御装置の全体的構成を示すブロック図である。各機能ブロックは、ＥＣＵ１において実現される。
【００３６】
筒内圧センサ１７により出力された、気筒内の圧力に応じた電気信号（筒内圧信号）は、チャージアンプ５１により電圧信号に変換され、ローパスフィルタ５３を適用される。同定ステージおよび判定ステージを含む所定期間にわたり、ＡＤ変換器５５は、所定の周波数（たとえば、５０ｋＨｚ）で該筒内圧信号をサンプリングする。サンプリングにより得たサンプル値は、入出力インターフェース６１を介してＥＣＵ１のメモリに保存される。好ましくは、例えばダイレクトメモリアクセス（ＤＭＡ）を用いて、ＣＰＵを介さずに、これらのサンプル値は直接メモリに保存される。
【００３７】
また、図示しないが、同定ステージおよび判定ステージを含む上記所定期間にわたり、同定処理および失火判定処理に用いる他のデータ（吸気量、吸気温、エンジン回転数等）も、所定のクランク角度毎に計測されてメモリに記憶される。
【００３８】
この実施例では、以下に説明する同定処理およびその後の制御処理（この実施例では、失火判定処理）は、筒内圧等の計測値が保存される上記所定期間が経過した後、たとえば排気行程中に、該保存された計測値を用いて実施される。
【００３９】
センサ出力検出部６５は、上記所定期間に計測された筒内圧サンプル値を該メモリから読み出し、パラメータ同定部７５およびセンサ出力補正部６７に渡す。一実施例では、センサ出力検出部６５は、所望の基準クランク角度（たとえば、１度や２度）間隔に相当する時間長を算出し、該時間長を用いて、該メモリから読み出した筒内圧サンプル値を補間計算することにより、該所望の基準クランク角度毎（たとえば、１度や２度）の筒内圧を算出し、該算出した筒内圧を、パラメータ同定部７５およびセンサ出力補正部６７に渡すようにしてもよい。この補間計算の手法については、後述される。こうして、センサ出力検出部６５は、クランク角度θに対応する筒内圧実測値ＰＳを出力する。
【００４０】
センサ出力補正部６７は、上述の補正式に従い、補正パラメータｋ１およびＣ１を用いて、実測値ＰＳ（θ）を補正し、補正済み筒内圧ＰＳ’（θ）を算出する。
【００４１】
一方において、燃焼室容積計算部６９は、クランク角度θに応じた気筒の燃焼室の容積Ｖｃを次の数式により計算する。
【数１】
2009019525.tif 000003
【００４２】
上の式で、ｍは、図４の関係から計算される、ピストン１５の上死点からの変位を示す。ｒをクランクシャフト１６の半径、l（エル）をコンロッド長とすると、λ=l/r である。Ｖｄｅａｄは、ピストン１５が上死点にあるときの燃焼室の容積、Ａｐｓｔｎは、ピストンの断面積である。
【００４３】
一般に燃焼室の状態方程式は、次の（３）式で表されることが知られている。
【数２】
2009019525.tif 000004
【００４４】
式（３）で、Ｇは、気筒内に吸入される空気量を示し、エアフローメータ８（図１）により検出され、またはエンジン回転数ＮＥおよび吸気圧ＰＢ（それぞれ、図１のＣＲＫセンサ１９およびＰＢセンサ１０により検出されることができる）に基づいて得られる吸入空気量を示す。Ｒは気体定数、Ｔは、例えば吸気温センサ１１（図１）により検出され、またはエンジン水温（図１のＴＷセンサ１８により検出されることができる）などの運転状態に基づいて得られる吸気温度である。ｋは補正係数、Ｃは補正項である。
【００４５】
この発明の一実施形態では、燃焼室の気体状態方程式に基づくモータリング圧力推定値として、たとえばセンサ取り付け部の温度変化等の影響を受けない単結晶圧電式の圧力センサを用いて燃焼室の圧力を実測し、この実測値を式（３）と対応させることにより算出されたｋの値ｋ0およびＣの値Ｃ0を求め、これを式（３）に代入して得られる次の式（４）を用いてモータリング圧力ＰＭを推定する。
【数３】
2009019525.tif 000005
【００４６】
モータリング圧力推定部７０は、基本モータリング圧力計算部７１およびモータリング圧力補正部７２から構成される。基本モータリング圧力計算部７１が（４）式の基本項目である基本モータリング圧力ＧＲＴ/Ｖｃを計算する。モータリング圧力補正部７２は、上述のようにして予め求められているパラメータｋ0およびＣ0を用いて、基本モータリング圧力を補正する。このパラメータｋ0およびＣ0は、エアフローメータ８により検出される吸気量およびエンジン回転数などエンジンの負荷状態を表すパラメータに従って参照することができるテーブルとして用意されている。
【００４７】
ノイズ発生区間設定部７４は、同定ステージの期間（予め決められており、たとえば、圧縮上死点前７５〜２０度の約５５度のクランク角度期間）内に、ノイズ発生区間を設定する。該期間に混入される典型的なノイズに、吸気バルブ３の着座に伴う着座ノイズがあるが、吸気バルブ３の開閉動作は、クランク角度に従って制御される。したがって、これらのノイズが発生する区間は、エンジン回転数に依存して予め設定しておくことができる。
【００４８】
したがって、一実施例では、ノイズ発生区間設定部７４は、検出されたエンジン回転数ＮＥに基づいて、図５の（ａ）のようなテーブル（ＥＣＵ１のメモリに予め記憶されることができる）を参照し、ノイズ発生区間の開始θＳＴと終わりθＥＮＤを抽出する。
【００４９】
この図を参照すると、エンジン回転数が高くなるにつれ、ノイズ発生区間が大きくなっている。これは、エンジン回転数が高くなるほど、バルブの開閉動作の挙動が速くなるので、ノイズが大きくなるからである。
【００５０】
この発明の他の実施例では、典型的なノイズとして点火ノイズに着目し、このノイズの発生区間を設定する。点火時期、すなわち点火が開始する時期は、既知の制御により決定されることができる。したがって、ノイズ発生区間設定部７４は、点火時期ＩＧＬＯＧ（クランク角度で表される）を、ノイズ発生区間の開始に設定する。また、ノイズ発生区間設定部７４は、検出されたエンジン回転数ＮＥに基づいて、図５の（ｂ）のようなテーブル（ＥＣＵ１のメモリに予め記憶されることができる）を参照し、ノイズ発生区間の長さΔＣＲＫ＿ＮＯＩＳＥを抽出する。点火は所定の一定時間行われる。エンジン回転数が高くなるにつれ、クランク角度あたりの時間が短くなるので、該テーブルは、エンジン回転数が高くなるにつれて、該区間の長さを示すクランク角度が大きくなるよう設定されている。ノイズ発生区間設定部７４は、点火時期ＩＧＬＯＧに長さΔＣＲＫ＿ＮＯＩＳＥを加算し、ノイズ発生区間の終了を算出する。
【００５１】
代替的に、ノイズ発生区間設定部７４は、図５の（ａ）に示すテーブルを参照して第１のノイズ発生区間を算出すると共に、図５の（ｂ）に示すテーブルを参照して第２のノイズ発生区間を算出し、第１および第２のノイズ発生区間の和（ＯＲ）を、同定ステージの期間内に設定するノイズ発生区間として算出してもよい。
【００５２】
パラメータ同定部７５は、同定ステージの期間のうち、ノイズ発生区間設定部７４によって設定されたノイズ発生区間を除いた区間において計測されたデータ（吸気量Ｇおよび吸気温Ｔ）を用いてモータリング圧力推定部７０が算出するモータリング圧力ＰＭと、該ノイズ発生区間を除いた区間における筒内圧実測値ＰＳに基づいてセンサ出力補正部６７が生成する補正済み筒内圧ＰＳ’との差(ＰＭ-ＰＳ’)が最小になるよう、既知の最小二乗法を利用して、補正パラメータｋ１およびＣ１を同定する。一例では、同定ステージの期間が圧縮上死点前７５〜２０度であり、たとえば、図５の(ア)に示すテーブルによりノイズ発生区間が圧縮上死点前６５〜５５度と判断された場合には（エンジン回転速度が約２０００ｒｐｍの場合）、残りの区間である圧縮上死点前７５〜６５度および圧縮上死点前５５〜２０度の間に計測されたデータを用いて同定処理を行う。
【００５３】
図２を参照して述べたように、同定ステージの期間においては、補正済み筒内圧ＰＳ’はモータリング圧力ＰＭに収束すべきであり、よって、両者の誤差を最小にするよう、補正パラメータが同定される。
【００５４】
前述したように、補正済み筒内圧ＰＳ’およびモータリング圧力ＰＭは、所定のクランク角度毎に算出される。したがって、同定処理は、クランク角度に応じたモータリング圧力推定値ＰＭ(θ)と、同じクランク角度に応じた補正済み筒内圧ＰＳ’（θ）＝ＰＳ（θ）ｋ１＋Ｃ１との差が最小になるよう、より具体的には該差の二乗、すなわち（ＰＭ(θ) − ＰＳ(θ)ｋ１−Ｃ１）2 が最小になるよう、ｋ１およびＣ１を既知の最小二乗法により求める。
【００５５】
ここで、ＰＭの離散値をy(i)で表し、センサ出力検出部６５から得られる筒内圧実測値ＰＳの離散値をx(i)で表すと、YT=[y(0),y(1), …,y(n)] およびX(i)T=[x(0), x(1), …,x(n)]とそれぞれ表される。誤差の離散値の二乗の和は、次の式（５）で表される。ｎの値は、センサ出力検出部６５によって出力されて同定処理に用いられるデータの個数である。
【数４】
2009019525.tif 000006
【００５６】
Ｆの値を最小にするｋ１およびＣ１を求めるには、F(k１,C１)のk１およびＣ１に関する偏微分が０となるｋ１およびＣ１を求めればよい。これを数式で表すと、次のようになる。
【数５】
2009019525.tif 000007
【００５７】
式(6)および(7)の右辺を整理すると、次のようになる。
【数６】
2009019525.tif 000008
【００５８】
これを行列で表現すると、次のようになる。
【数７】
2009019525.tif 000009
【００５９】
この式を逆行列を使って変形すると、次のようになる。
【数８】
2009019525.tif 000010
【００６０】
ここで、右辺の逆行列は、次の式で表される。
【数９】
2009019525.tif 000011
【００６１】
収束判定部７６は、同定部７５により算出されたパラメータｋ１およびＣ１を評価する。より具体的には、該パラメータによる補正によって、補正済み筒内圧ＰＳ’がモータリング圧ＰＭに対して収束するかどうかを、たとえば両者の誤差の標準偏差を調べることにより判定する。該判定の結果、収束度合いが許容範囲内にあるならば、該算出されたパラメータｋ１およびＣ１の値で、現在のパラメータｋ１およびＣ１を更新する。収束度合いが許容範囲内になければ、パラメータの更新は行われず、現在のパラメータｋ１およびＣ１を、以下の失火判定処理に用いる。
【００６２】
センサ出力補正部６７は、パラメータｋ１およびＣ１を用いて、前述したように、判定ステージの期間において計測された筒内圧実測値ＰＳに基づき、上述の補正式に従って補正済み筒内圧ＰＳ’を算出する。
【００６３】
失火判定部７７は、判定ステージの期間における筒内圧実測値ＰＳに基づいてセンサ出力補正部６７によって算出された補正済み筒内圧ＰＳ’と、該判定ステージの期間において計測されたデータを用いてモータリング圧力推定部７０が算出するモータリング圧力ＰＭに基づいて、失火の有無を判定する。なお、失火判定処理も、同定処理と同様に、クランク角度に応じたモータリング圧力ＰＭ（θ）と、同じクランク角度に応じた補正済み筒内圧ＰＳ’（θ）とに基づいて判定される。この実施例では、失火判定部７７は、ＰＳ’/ＰＭが予め定めたしきい値αより小さいとき、失火が生じたと判定する。
【００６４】
図６〜図１３を参照して、この発明の一実施例に従う失火判定処理をより具体的に説明する。
【００６５】
図６は、各燃焼サイクルの、たとえば排気行程中に実施される失火検知のメインフローである。この処理は、各燃焼サイクルの、たとえば排気行程中に、ＥＣＵ１のＣＰＵによって、より具体的には図３に示される装置によって実行される。
【００６６】
ステップＳ１において、同定ステージおよび判定ステージを含む所定期間について収集された筒内圧サンプル値に基づき、所定の基準クランク角度毎の筒内圧を算出するプロセス（図７）を実施する。ステップＳ２に進み、パラメータｋ１およびＣ１の同定処理（図１０）を実行する。ステップＳ３に進み、失火判定処理（図１２）を行う。
【００６７】
図７を参照して、図６のステップＳ１で実施される、所定の基準クランク角度毎（図では、１度）の筒内圧を算出するための補間計算処理を示す。
【００６８】
まず、該補間計算を説明する前に、サンプリングについて説明する。この実施例では、前述したように、同定ステージおよび判定ステージを含む所定期間の間、ＡＤ変換器５５により、所定の周波数で筒内圧センサ１７の出力がサンプリングされてメモリの所定領域ad_data[]に順次保存される。この実施例では、サンプリング周波数が５０ｋＨｚであり、よってサンプリング間隔は２０マイクロ秒である。
【００６９】
さらに、ＡＤ変換を行っている間、クランク角センサ１９からのクランクパルスの立ち下がりエッジの時間が取得され、メモリの所定領域crk_time[]に記憶される。この実施例では、クランクパルスは、クランク角度１５度毎に発せられる。したがって、ＡＤ変換の期間がクランク角度１９５度（圧縮上死点前８７．５度〜圧縮上死点後１０７．５度）であるとき、１３個のクランクパルスについてのエッジ時間が記憶される。
【００７０】
図７に示すプロセスは、該所定の期間にわたってメモリに記憶されたサンプル値に対して実行される。該プロセスにより、クランク角１度毎の筒内圧値が補間計算により算出される。
【００７１】
ステップＳ４１は、上記所定期間のクランクパルスの数crk_time[0]〜crk_time[i]だけループが行われることを示す。この実施例では、上記所定期間は、１９５度のクランク角度に対応するので、１９５／１５＝１３回のループが行われる。ステップＳ４２は、クランクパルス間で算出すべき筒内圧値の数だけループが行われることを示す。この実施例では、クランクパルスは１５度毎に発せられ、クランク角１度毎の筒内圧値を得ることが目的なので、１５／１＝１５回のループが行われる。
【００７２】
ステップＳ４３において、crk_time(i+1)-crk_time(i)は、クランクパルス間の時間長を示す。図８（ａ）に示すように、このステップでは、当該クランクパルス間におけるｎ番目(<15)に算出される筒内圧値に対応する時点の、同定ステージの開始時点からの長さtime_1degを、以下の式（１１）のように算出している。
【数１０】
2009019525.tif 000012
【００７３】
ステップＳ４４において、時間長time_1degを、サンプリング間隔である２０マイクロ秒で除算し、その商をquotientに設定し、余りをremainderに設定する。算出された商quotientにより、どのサンプル値を用いるべきかが特定される。
【００７４】
ステップＳ４５において、式（１２）に示す補間計算により、クランク角１度毎の筒内圧値を算出する。図７（ｂ）に示すように、余りremainderがある場合には、サンプル値ad_data[quotient]と、サンプル値ad_data[quotient＋１]の間で補間が行われる。ここで、samptimeは、サンプリング間隔を示し、この例では２０マイクロ秒である。この補間により、１度毎筒内圧値pcyl_adが算出される。余りが無い場合には、サンプル値ad_data[quotient]を、１度毎筒内圧値としてそのまま用いることができる。
【数１１】
2009019525.tif 000013
【００７５】
図９を参照すると、２０マイクロ秒の間隔でサンプリングされたサンプル値９１が示されている。エンジン回転数に依存して、クランク角度１度あたりの時間長は異なる。エンジン回転数が８３３３ｒｐｍであるときには、１度は２０マイクロ秒に相当するので、サンプリング間隔に一致する。したがって、上記ステップＳ４４において余りremainderはゼロになり、サンプル値９１を、１度毎筒内圧として用いることができる。
【００７６】
しかしながら、低回転２０００ｒｐｍや高回転９０００ｒｐｍの場合には、１度に対応する時間長は、長くなったり（８３．３マイクロ秒）短くなったりする（１８．５マイクロ秒）。この場合には、補間が行われる。たとえば、２０００ｒｐｍの場合、時点ｔ３のサンプル値９１と時点ｔ４におけるサンプル値９１との間で補間が行われ、１度毎サンプル値９３が算出される。９０００ｒｐｍの場合、時点ｔ１におけるサンプル値９１と時点ｔ２におけるサンプル値９１との間で補間が行われ、１度毎サンプル値９２が算出される。
【００７７】
なお、図７のプロセスは、クランク角度１度の補間計算を行うものであるが、この角度に限定されず、任意の角度の補間計算を行うことができる。たとえば、クランク角度３度の補間計算を行う場合には、ステップＳ４２の値１５を、１５／３＝５にすればよい。そして、ステップＳ４３は、次のような式に変更される。
time_3deg＝（crk_time[i+1]―crk_time[i]）×３(deg)×ｎ／１５＋（crk_time[i]―crk_time[0]）
【００７８】
こうして求めたtime_3degを２０マイクロ秒で除算し、商と余りを求めればよい。
【００７９】
こうして、同定ステージおよび判定ステージを含む所定期間中の所定のクランク角度毎の筒内圧pcyl_adがセンサ出力検出部６５により算出されてメモリに記憶され、これが、ＰＳ（θ）として後続の処理に用いられる。
【００８０】
ここで、上記のサンプリングおよび補間計算の利点について、説明させていただく。従来は、クランクパルスに同期して、センサにより計測された筒内圧等の計測データをサンプリングし、該サンプル値をＣＰＵが取得して何らかの演算を行うようにしていた。制御精度を高めるために細かいクランク角度、たとえば１度間隔で計測データを得ようとすると、１度の間隔で該計測データをサンプリングするため、サンプリング周波数を高める必要がある。また、ＣＰＵは、１度の間隔で演算を実行するため、同じ間隔で該サンプリングした計測データを受信する必要がある。ＣＰＵが計測データを受け取るには、実行中の処理を中断する必要があるので、クランクパルス間の間隔が小さいほど、ＣＰＵの負荷が増大する。
【００８１】
それに対し、本願発明の上記実施例では、補間計算により、所定の時間周期で得られた計測データのサンプル値から、所望のクランク角毎（たとえば、１度単位）の筒内圧を計算することができるので、サンプリング周波数を高くする必要はない。また、クランクパルスは、クランクパルス間隔の時間長（crk_time(i+1)-crk_time(i)）を計算するために用いられるにすぎない。したがって、所望のクランク角単位を例えば１度のように細かくしても、該細かいクランク角単位でＣＰＵが計測データを受信して演算するわけではないので、ＣＰＵ負荷の増大を抑制することができる。
【００８２】
さらに、本願発明では、データを取得する上記所定期間（この例では、１９５度の期間）が、演算期間（たとえば、排気行程中）と分離されているので、該所定期間の間、たとえばダイレクトメモリアクセス（ＤＭＡ）を用いて、ＣＰＵを介することなく計測データのサンプル値をメモリに直接保存することができ、よってＣＰＵに負荷はかからない。ＣＰＵは、補間計算を行う際に該メモリにアクセスすればよい。
【００８３】
さらに、クランクパルスの波形のパターンは、車両の機種によって様々である。たとえば、クランクパルスの波形に、気筒を判別するため、パルスの時間的長さが例えば２倍になる、いわゆる“歯抜け”と呼ばれる部分を設けることがある。この歯抜けに相当するクランクパルスが到来することにより、ＥＣＵ１は、どの気筒の上死点が到来したかを判断することができる。クランクパルスに同期して何らかの演算処理が実行される場合に、このような周期の長い“歯抜け”が到来すると、該演算処理が実質的に省略されることになる。本願発明の上記実施例によれば、歯抜けが到来した場合には、ステップＳ４３の”１５(deg)”を、歯抜けの周期に相当する値（たとえば、３０deg）で置き換えることにより、所望のクランク角毎の筒内圧を算出することができる。このように、クランクパルスの波形パターンに依存することなく、同じ間隔で計測データを生成することができる。
【００８４】
さらに、この実施例によれば、上記所定区間中に計測されたデータがすべてメモリに保存されるので、その後の同定処理および制御処理は、該メモリから、任意の区間の任意の量のデータを任意に選択することができる。たとえば、処理の内容に応じてデータを選択したり、運転状態に応じてデータを選択したりすることができる。
【００８５】
サンプリング周波数（この実施例では、５０ｋＨｚ）は、検知すべき対象物に応じて設定されるのが好ましい。この実施例では、失火だけでなくノッキングをも検知することができるよう、ノッキングの周波数（１３．５ｋＨｚ程度）の２倍以上の周波数を選択している。ノッキングは、周知の任意の手法により（たとえば、特開２００６−１８３５３３号公報に記載されている）、図７のプロセスで算出された所定のクランク角度（たとえば、１度）毎の筒内圧を用いて検知することができる。
【００８６】
図１０は、図６のステップＳ２で実行される同定処理を示す。
【００８７】
ステップＳ５１において、ノイズ発生区間の設定処理（図１１の（ａ）および／または（ｂ））を行う。
【００８８】
以下のステップでは、筒内圧については、図７のプロセスによって算出された所定クランク角度毎（図７の例では、１度毎）の筒内圧のうち、同定ステージの期間から、ステップＳ５１で設定されたノイズ発生区間を除いた区間における筒内圧が、メモリから読み出されて用いられる。他の計測データ（吸気量、吸気温、エンジン回転数等）は、前述したように、同定ステージの期間中に所定のクランク角度毎（たとえば、１５度毎）に取得されてメモリに記憶されている。以下の各式の演算は、該算出された筒内圧のそれぞれについて行われるが、各筒内圧に対応する計測データとしては、該筒内圧に対応する時点（図８のtime1_1degにより特定されることができる）で既に取得されている計測データのうち最新の計測データが用いられる。こうして、ノイズ発生区間における筒内圧および計測データは、同定処理に用いられない。
【００８９】
ステップＳ５２において、前述した式（１）にしたがってピストン位置を計算し、式（２）にしたがってシリンダ容量を計算する。さらに、ステップＳ５３において、エアフローメータ８の検出値Ｇおよび吸気温センサ１１の検出値Ｔをメモリから読み込む。ステップＳ５４において、シリンダ容量Ｖｃ、吸気量Ｇおよび吸気温Ｔを用い、式（４）に従ってモータリング圧ＰＭ（θ）を算出する。
【００９０】
ステップＳ５５において、図７において算出された筒内圧ＰＳ（θ）を読み込む。ステップＳ５６において、式（９）に従ってパラメータｋ1およびＣ1を同定する。ステップＳ５７において、収束判定処理（図１２）を実行する。
【００９１】
図１１の（ａ）は、図１０のステップＳ５１において実施されることのできるプロセスのフローであり、図５の（ａ）を参照して説明したノイズ発生区間を設定する。ステップＳ１０１において、該プロセスが実施される時に検出されたエンジン回転数ＮＥに基づいて、図５の（ａ）のようなテーブルを参照し、ノイズ発生区間の開始クランク角θＳＴを取得すると共に、ノイズ発生区間の終了クランク角θＥＮＤを取得する。
【００９２】
図１１の（ｂ）は、図１０のステップＳ５１において実施されることができる他のプロセスのフローであり、図５の（ｂ）を参照して説明したノイズ発生区間を設定する。ステップＳ１０５において、点火時期（既知の制御プロセスで別途算出されることができる）ＩＧＬＯＧを、ノイズ発生区間の開始クランク角θＳＴに設定する。ステップＳ１０６において、該プロセスが実施される時に検出されたエンジン回転数に基づいて図５の（ｂ）のようなテーブルを参照し、ノイズ期間ΔＣＲＫ＿ＮＯＩＳＥを取得し、点火時期に該ノイズ期間を加算して、ノイズ発生区間の終了クランク角θＥＮＤを算出する。
【００９３】
前述したように、図１０のステップＳ５１において、図１１の（ａ）および（ｂ）のいずれか一方を実行してもよいし、両方を実行してもよい。後者の場合には、２つのノイズ発生区間の和（ＯＲ）が、同定ステージの期間から除かれ、該除かれた後の区間について算出された筒内圧および関連する計測データ（吸気量等）が、同定処理に用いられる。
【００９４】
図１２は、図１０のステップＳ５７に示す収束判定処理のプロセスを示す。この収束判定は、パラメータｋ１およびＣ１によって補正される補正済み筒内圧ＰＳ’が、モータリング圧ＰＭに良好に収束するかどうかを判断し、これにより、パラメータｋ１およびＣ１の妥当性を評価するためのプロセスである。
【００９５】
ステップＳ６１において、同定されたパラメータｋ1およびＣ1を用いて前述した補正式により、同定処理で用いた筒内圧ＰＳ（θ）を補正し、補正済み筒内圧ＰＳ’（θ）を算出する。ステップＳ６２において、該補正済み筒内圧と、図１０のステップＳ５４で算出したモータリング圧ＰＭ（θ）との誤差Ｅ（＝ＰＭ（θ）―ＰＳ’（θ））を算出する。ステップＳ６３において、以下の式（１３）に従い、該誤差Ｅの分散σを算出する。ここで、ｎは、式（９）で示されるｎと同じであり、同定処理に用いた筒内圧値の個数を示す。
【数１２】
2009019525.tif 000014
【００９６】
ステップＳ６４において、該分散の平方根として標準偏差ＳＴＤＶを計算する。ステップＳ６５において、標準偏差ＳＴＤＶが所定の閾値より小さければ、モータリング圧力ＰＭと補正済み筒内圧ＰＳとの誤差が収束すると判定し、収束フラグＦ＿収束＿ＮＧをゼロに設定する（Ｓ６６）。
【００９７】
ステップＳ６５において、標準偏差ＳＴＤＶが所定の閾値以上ならば、誤差が収束しないと判断する。この場合、筒内圧センサに異常が生じるなどしてノイズを発生している、演算がオーバーフローしているなどの障害が発生している可能性がある。したがって、収束フラグＦ＿収束＿ＮＧに１を設定する（Ｓ６７）。
【００９８】
ステップＳ６８において、収束フラグが１になる回数をカウントアップする。ステップＳ６９において、カウントが所定値（たとえば、100）以上になると、筒内圧センサの異常を示すフラグＦ＿センサ＿ノイズを１にセットする（Ｓ７０）。
【００９９】
ステップＳ７１およびＳ７２において、フラグＦ＿センサ＿ノイズおよびＦ＿収束＿ＮＧの値が１かどうかを調べる。これらの判断の両方がＮｏであれば、今回同定されたパラメータｋ1、Ｃ1を適正なパラメータとして採用する。したがって、ステップＳ７３において、今回同定されたパラメータの値で、前回同定されたパラメータの値が更新され、当該プロセスを終了する。ステップＳ７１およびＳ７２の判断の両方がＹｅｓであれば、パラメータｋ１およびＣ１を更新することなく、このプロセスを終える。
【０１００】
図１３は、図６のステップＳ３で実行される失火判定処理を示す。ステップＳ８１において、失火ＭＩＬフラグが１になっているかどうか調べる。このフラグが１になっていることは、すでに何度か失火の判定が行われ、失火の警告が出されていることを意味する。この場合、ステップＳ８２において、後述するサイクル数カウントおよび失火カウントをリセットして、当該プロセスを抜ける。このフラグが１になっていなければ、失火判定処理を開始する。
【０１０１】
以下のステップでは、筒内圧については、図７のプロセスによって算出された所定クランク角度毎（図７の例では、１度毎）の筒内圧のうち、判定ステージの期間における筒内圧がメモリから読み出されて用いられる。他の計測データ（吸気量、吸気温、エンジン回転数等）は、前述したように、判定ステージの期間中に所定のクランク角度毎（たとえば、１５度毎）に取得されてメモリに記憶されている。以下の各式の演算は、該算出された筒内圧のそれぞれについて行われるが、各筒内圧に対応する計測データとしては、該筒内圧に対応する時点（図８のtime1_1degにより特定されることができる）で既に取得されている計測データのうち最新の計測データが用いられる。
【０１０２】
ここで、判定ステージは、予め決められることができ、または、エンジンの運転状態に応じて最も適切なタイミングで失火判定を行うために、該運転状態に応じて設定するようにしてもよい。たとえば、エンジンの吸排気バルブにタイミングを変更可能な可変バルブ機構を備えたものであれば、タイミングが高回転用に制御されているか、アイドル状態か、点火時期リタードモード（エンジン始動直後に、排気系の触媒を活性化するために高温の排気を排気系に送るモード）かどうか、などに応じて、判定ステージを選択してよい。たとえば、所定のマップをメモリに記憶し、運転状態に応じてマップを参照することにより、判定ステージの期間（クランク角度で表される）を記憶しておくことができる。
【０１０３】
ステップＳ８３において、前述した式（１）および（２）に従い、ピストンの上死点からの変位ｍおよびシリンダの容量Ｖｃを計算する。ステップＳ８４において、吸気量Ｇおよび吸気温Ｔを読み込む。
【０１０４】
ステップＳ８５おいて、式（４）に従って、モータリング圧力ＰＭ（θ）を算出する。ステップＳ８６において、所定のクランク角度（この例では、１度）毎の筒内圧ＰＳ（θ）を読み込む。ステップＳ８７において、前述した補正式に従い、補正済み筒内圧ＰＳ’（θ）を算出する。
【０１０５】
ステップＳ８８において、エンジンの回転数ＮＥおよび吸気管の絶対圧ＰＢに基づいて、失火判定のためのしきい値のマップ（図示せず）を検索する。モータリング圧力は、エンジンの負荷状態によって異なるため、負荷状態に応じた判定しきい値を予めマップとして用意しておき、このマップを検索するようにしている。該マップは、ＥＣＵ１のメモリに記憶しておくことができる。
【０１０６】
ステップＳ８９において、補正済み筒内圧ＰＳ’（θ）と、対応するモータリング圧ＰＭ（θ）との比ＰＳ’（θ）/ＰＭ（θ）が、ステップＳ８７で検索した判定しきい値より大きいかどうか判定する。該比が該判定しきい値より大きいときは、正常に点火が行われていると判定され、処理を終える。該比が該しきい値以下であるときは、失火を生じたと判定し、失火フラグが１にセットされる（Ｓ９０）。判定ステージの期間にわたり、所定のクランク角度毎（この実施例では、１度毎）に、失火フラグが設定される。失火の判定が行われるたびに、サイクル数のカウントがカウントアップされると共に（Ｓ９２）、失火フラグが１になるたびに、失火カウントがカウントアップされる（Ｓ９１）。所定のサイクル数に対して何回失火が生じたかに基づいて、失火ＭＩＬ（失火警告）を発生させることができる（Ｓ９３）。
【０１０７】
失火警報は、任意の適切な手段で実行されることができ、たとえば、運転席のパネルに警告灯を点灯する等を行うことができる。
【０１０８】
吸気バルブの動作および点火動作は、前述したように、クランク角度に従って制御されるので、ノイズが発生する区間を予測することができるが、他のノイズ（通信による外乱等）は、どのタイミングで発生するかを予測することは困難であり、よって、結果として補正パラメータの値ｋ１およびＣ１に、ノイズに起因した誤差が含まれるおそれがある。
【０１０９】
したがって、この発明の他の実施例によると、図３に示す収束判定部７６は、さらに、算出したパラメータｋ１およびＣ１の評価を行い、その結果、これらのパラメータの値に、ノイズ等に起因して誤差が含まれるおそれがあると判断した場合には、これらのパラメータの更新を禁止する。
【０１１０】
より具体的には、収束判定部７６は、パラメータ同定部７５によって算出されたパラメータｋ１およびＣ１の値に基づいて、図１４に示すようなマップ（ＥＣＵ１のメモリに記憶されることができる）を参照する。該マップは、パラメータｋ１およびＣ１の組み合わせが、安定しているかどうかを判断するためのマップである。たとえば、着座ノイズによって大きなオフセット誤差が筒内圧センサの検出値に混入すると、このオフセット誤差は、補正項であるパラメータＣ１により吸収され、該パラメータＣ１の値が小さくなる。その結果、ゲインｋ１が、補正済み筒内圧のモータリング圧への収束を調整しようとして大きくなり、ドリフトするおそれがある（ゲインドリフトと呼ぶ）。マップの不安定領域は、このようなゲインドリフトが発生するおそれのある領域を示しており、不安定領域に入った値を持つパラメータが算出された場合には、パラメータｋ１およびＣ１更新しないようにし、後続の制御精度が低下するのを防止する。ここで、符号１０１は、安定領域と不安定領域の境界値を示すラインである。
【０１１１】
この実施例の場合、収束判定プロセスは、図１２に代えて、図１５〜図１６が実行される。図１２と異なる点についてのみ説明する。
【０１１２】
ステップＳ１１１〜Ｓ１１７は、図１２のＳ６１〜６７と同じである。ステップＳ１１８において、図１０のステップＳ５６の同定演算で算出されたパラメータｋ１の値に基づいて、図１４のようなマップを検索し、境界値Ｃ１ＮＳＤＲＩＦＴ（符号１０１で示すライン上の値）を取得する。ステップＳ１１９において、図１０のステップＳ５６の同定演算で算出されたパラメータＣ１の値と、該取得した境界値Ｃ１ＮＳＤＲＩＦＴを比較する。Ｃ１がＣ１ＮＳＤＲＩＦＴ以下ならば、算出されたパラメータｋ１およびＣ１の値が不安定領域にあることを示す。ステップＳ１２０で、標準偏差ＳＴＤＶが所定の閾値（ステップＳ１１５のしきい値と同じでよい）以上かどうかを調べ、この判断がＹｅｓならば、パラメータｋ１およびＣ１の値がゲインドリフトを起こすおそれがあると判断し、ドリフトフラグＦ＿ドリフト＿ＮＧに１を設定する。ステップＳ１８９およびＳ１９０のいずれかの判断がＮｏの場合には、ドリフトフラグＦ＿ドリフト＿ＮＧにゼロを設定する。このようにするのは、標準偏差が所定の閾値以下の場合には、たとえパラメータの値が不安定領域にあってドリフトを起こしたとしても、筒内圧が補正によってモータリング圧ＰＭに収束すると判断することができるからである。
【０１１３】
図１６に進み、ステップＳ１２３〜Ｓ１２８は、センサの異常を示すフラグＦ＿センサ＿ノイズを設定するための処理である。フラグＦ＿収束＿ＮＧに値１が設定されるカウントが所定値以上になったとき（Ｓ１２６およびＳ１２７）、図１２のＳ７０と同様に、フラグＦ＿センサ＿ノイズに値１に設定する。なお、このフラグは、一度値１に設定されると、エンジンの運転中はゼロにリセットされないフラグであり、よって、Ｓ１２４の判断ステップが設けられている。また、燃料カットが行われている最中は、燃焼が行われないので、収束判定は行わないのが望ましい。そのため、燃料カット中は、Ｆ＿収束＿ＮＧが１に設定されても、カウントされない（Ｓ１２５）。
【０１１４】
ステップＳ１３０〜Ｓ１３２において、センサ異常フラグ、収束フラグおよびドリフトフラグの値を調べ、いずれも１に設定されていなければ、センサの異常でもなく、筒内圧は補正によりモータリング圧力に収束し、かつ、パラメータは安定領域にあることを示すので、パラメータｋ１およびＣ１を、図１０のＳ５６で算出された値で更新する。
【０１１５】
図１５〜図１６に示す収束判定部７６によるパラメータｋ１およびＣ１の更新プロセスは、図１１（ａ）および／または図１１（ｂ）に示すノイズ発生区間の設定と共に実行されるようにしてもよい。
【０１１６】
図１７は、図３に示すブロック図の代替形態を示す。この形態によると、モータリング圧力補正部７２は設けられておらず、基本モータリング圧力計算部７１で計算される基本モータリング圧力GRT/VCが燃焼室の気体状態方程式に基づくモータリング圧力の推定値ＰＭとして用いられる。
【０１１７】
以上に本願発明を具体的な実施例について説明したが、本願発明はこのような実施例に限定されるものではなく、また、ガソリンエンジン、ディーゼルエンジンのいずれに対しても使用することができる。また、本願発明は、燃料噴射弁を燃焼室に臨むよう設ける筒内噴射式のエンジンにも使用することができる。
【０１１８】
また、本願発明は、同定器を備える制御装置に広く適用可能である。すなわち、制御対象の出力をパラメータで補正した補正値と、該補正値が収束すべき値との差が最小になるよう該パラメータを同定する同定器を備える制御形態に、本願発明は適用可能である。たとえば、制御対象の出力にモデルパラメータを適用したモデル式によって所定の制御量をモデル化し、該モデル式で算出される値（これは、上記補正値に対応する）と、該モデル式で算出される値が収束すべき値との差が最小になるよう、該モデルパラメータを同定する同定器に、本願発明は適用可能である。たとえば、特開２００６−１３２４９５号公報には、吸気量Ｇ、吸気温Ｔおよび燃焼室の容積ＶｃにｋおよびＣというモデルパラメータを適用して、モータリング圧をモデル化し（上の実施例の式（３）を参照）、該モデル式で算出されたモータリング圧ＰＭ（上記の補正値に対応する）と、筒内圧センサの実測値ＰＳ（これが、上記の収束すべき値に対応する）との差が最小になるよう、該モデルパラメータｋおよびＣを求めており、本願発明は、このような同定にも適用可能である。したがって、請求項の補正パラメータには、このようなモデルパラメータも含まれる。
【０１１９】
また、制御対象の出力は、任意のものでよく、たとえば、任意のセンサ（エアフローメータ、排ガスセンサ、空燃比センサ、スロットル開度センサ、バルブのリフト量を検出するセンサ、可変圧縮比を検出するセンサ、カムの位相を検出するセンサ等）の出力またはこれらのセンサ出力に基づく運転パラメータの値（たとえば、空燃比、出力トルク、エンジンの仕事量等）であってよい。これらの出力をパラメータにより補正した補正値が収束すべき値は、所定の基準値、運転状態に応じて決定される目標値、何らかのセンサの検出値等であってよい。
【０１２０】
また、上記実施形態では、同定処理に最小二乗法を用いたが、最尤法、最急降下法、重み付け最小二乗法等の他の任意の適切な手法を用いて同定処理を実施してもよい。
【０１２１】
さらに、同定されたパラメータを用いた後続の制御処理として、様々な制御処理に、本願発明は適用可能である。上記実施例では、制御処理として失火判定を行っているが、本願発明では、他の判定処理（たとえば、ノック検知等）だけでなく、エンジンの運転状態を操作する処理も含めて制御処理と呼び、これらの任意の制御処理に本願発明は広く適用可能である。たとえば、同定器によって算出されたパラメータを用いた、筒内圧センサの異常の検出（たとえば、特開２００６−２８４５３３号公報）、スロットル弁の制御（たとえば、特開２００２−３７１８９２号公報）、空燃比の制御（たとえば、特開２００４−０３６４７３号公報）、吸気量の制御（たとえば、特開２００５−０２３８６５号公報）、燃料量の制御（たとえば、特開２００４−１７６６５１号公報）、点火時期の制御（たとえば、特開２００５−１４６９８８号公報）、バルブのリフト量、可変圧縮比およびカムの位相の制御（たとえば、特開２００６−０６５７３３号公報）、過給圧の制御（たとえば、特開２００６−２００３７７号公報）等に適用可能である。また、同定器によって算出されたパラメータを用いた制御の手法としては、任意のものが可能であり、たとえば、スライディングモード制御（たとえば、特開２００６−０６５７３３号公報）およびデルタシグマ変調、デルタ変調またはシグマ変調アルゴリズムを用いた制御（たとえば、特開２００５−１１５４８８号公報）等に適用可能である。そして、上で述べたように、これらの制御対象の出力にモデルパラメータを適用したモデル式によって算出された値と、該制御対象の実際の出力との差が最小になるように、該モデルパラメータを同定する同定器に、本願発明は適用可能である。一例では、制御対象の出力の過去値にモデルパラメータを適用したモデル式によって算出された値と、該制御対象の出力の現在値との差が最小となるよう、該モデルパラメータを同定することが行われ、本願発明は、このような同定器を備える制御装置に適用可能である。
【０１２２】
なお、図７に示すプロセスは、この実施例では筒内圧について用いられたが、他の計測データ（たとえば、エアフローメータ、排ガスセンサ、空燃比センサ等の検出値）についても適用可能であり、これらの計測データについて、所定クランク角度毎の検出値を補間計算により算出することができる。
【図面の簡単な説明】
【０１２３】
【図１】この発明の一実施形態に従う、エンジンおよびその制御装置の全体的な構成を示す図。
【図２】モータリング圧力曲線および点火を生じたときの圧力曲線を表す図。
【図３】この発明の一実施形態に従う、制御装置の機能ブロック図。
【図４】ピストン位置を計算するための概念図。
【図５】この発明の一実施形態に従う、ノイズ発生区間を設定するためのテーブル。
【図６】この発明の一実施形態に従う、失火検知処理のメインフローを示すフローチャート。
【図７】この発明の一実施形態に従う、所定のクランク角度毎の補間計算処理の流れを示すフローチャート。
【図８】この発明の一実施形態に従う、補間計算を説明するための図。
【図９】この発明の一実施形態に従う、補間計算を説明するための図。
【図１０】この発明の一実施形態に従う、パラメータ同定処理の流れを示すフローチャート。
【図１１】この発明の一実施形態に従う、ノイズ発生区間の設定処理の流れを示すフローチャート。
【図１２】この発明の一実施形態に従う、収束判定の処理の流れを示すフローチャート。
【図１３】この発明の一実施形態に従う、失火判定処理の流れを示すフローチャート。
【図１４】この発明の一実施形態に従う、パラメータの安定領域および不安定領域を示すテーブル。
【図１５】この発明の他の実施形態に従う、収束判定処理の流れを示すフローチャート。
【図１６】この発明の他の実施形態に従う、収束判定処理の流れを示すフローチャート。
【図１７】この発明の他の実施形態に従う、制御装置の機能ブロック図。
【符号の説明】
【０１２４】
１０      電子制御ユニット（ECU）
１５      筒内圧センサ
６５      センサ出力検出部
６７      センサ出力補正部
７０      モータリング圧力推定部
７３      パラメータ同定部
７４      ノイズ発生区間設定部
７７      失火判定部
【図１】
2009019525.tif 000015
【図２】
2009019525.tif 000016
【図３】
2009019525.tif 000017
【図４】
2009019525.tif 000018
【図５】
2009019525.tif 000019
【図６】
2009019525.tif 000020
【図７】
2009019525.tif 000021
【図８】
2009019525.tif 000022
【図９】
2009019525.tif 000023
【図１０】
2009019525.tif 000024
【図１１】
2009019525.tif 000025
【図１２】
2009019525.tif 000026
【図１３】
2009019525.tif 000027
【図１４】
2009019525.tif 000028
【図１５】
2009019525.tif 000029
【図１６】
2009019525.tif 000030
【図１７】
2009019525.tif 000031