(57)【要約】【課題】各気筒の圧縮圧力の異常を、特別な計測部品を付設することなく簡単に検出することができて故障診断作業の効率化を実現する。【解決手段】クランキング時に、診断対象気筒を基準として１行程前の気筒の瞬時回転数Ｎ４と診断対象気筒の瞬時回転数Ｎ１との差分値ＳＡＢ０ｎを算出して（ＳＡＢ０ｎ＝Ｎ４−Ｎ１）、クランキング時の過渡成分を吸収する。又診断対象気筒を基準として３行程前の気筒の瞬時回転数Ｎ３と２行程前の気筒の瞬時回転数Ｎ２との差分値ＳＡＢ１ｎを算出して（ＳＡＢ１ｎ＝Ｎ３−Ｎ２）、クランクパルス検出用クランクスプロケットに形成されているクランク角上で対向する気筒１８０°ＣＡ間の歯の機械的誤差の補正項を算出する。そして両差分値ＳＡＢ０ｎ，ＳＡＢ１ｎの差分を算出し、この差分を当該気筒Ｎ１の診断値ＳＡＢ２とする。そして診断値ＳＡＢ２と判定値ＫＳＡＢＪＤＧＭとを比較し、図１６に示すように、ＳＡＢ２＜ＫＳＡＢＪＤＧの異常を示す気筒が２回連続して検出された場合、２番目に異常を検出した気筒を異常気筒として特定する。【選択図】図１４
2004019465.tif 000002
【特許請求の範囲】
【請求項１】
通常のエンジン制御モードを実行する通常制御モード実行手段と、
圧縮圧力の異常を検出する圧縮圧力診断モードを実行する圧縮圧力診断モード実行手段と、
上記通常制御モードと上記圧縮圧力診断モードとを選択するモード選択手段と、
エンジンの回転変動を検出する回転変動検出手段と、
を備え、
上記モード選択手段で上記圧縮圧力診断モードが選択された場合、上記エンジンの回転変動に基づいて圧縮圧力の異常を検出することを特徴とするエンジンの圧縮圧力診断装置。
【請求項２】
上記モード選択手段で上記圧縮圧力診断モードが選択された場合、燃料系及び点火系の駆動を停止すると共にクランキング時の回転変動に基づいて圧縮圧力の異常を検出することを特徴とする請求項１記載のエンジンの圧縮圧力診断装置。
【請求項３】
上記モード選択手段で上記圧縮圧力診断モードが選択された場合、各気筒の圧縮行程時の設定クランク角間の瞬時回転数に基づいてエンジンの回転変動を検出することを特徴とする請求項１或いは２記載のエンジンの圧縮圧力診断装置。
【請求項４】
上記モード選択手段で上記圧縮圧力診断モードが選択された場合、１行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と現在の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値に基づいてエンジンの回転変動を検出することを特徴とする請求項１或いは２記載のエンジンの圧縮圧力診断装置。
【請求項５】
上記モード選択手段で上記圧縮圧力診断モードが選択された場合、３行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と２行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値に基づいてエンジンの回転変動を検出することを特徴とする請求項１或いは２記載のエンジンの圧縮圧力診断装置。
【請求項６】
上記モード選択手段で上記圧縮圧力診断モードが選択された場合、１行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と現在の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値を算出し、又３行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と２行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値を算出し、該両差分値の差分を診断値として設定し、該診断値と予め設定した判定値とを比較して圧縮圧力の異常を検出することを特徴とする請求項１或いは２記載のエンジンの圧縮圧力診断装置。
【請求項７】
異常と判定された気筒の診断値が２回連続して検出された場合、２番目に異常を検出した気筒を圧縮圧力の異常気筒として特定することを特徴とする請求項６記載のエンジンの圧縮圧力診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、圧縮圧力の異常をエンジンの回転変動に基づいて検出するエンジンの圧縮圧力診断装置に関する。
【０００２】
【従来の技術】
エンジン不調等のトラブルシューティングを行なう過程の１つに、エンジンの圧縮圧力に異常がないか否かを調べる作業がある。
【０００３】
エンジンの圧縮圧力の異常を検出する作業は、先ず、コンプレッションゲージを各気筒の点火プラグ用取付け孔に装着し、次いで、スタータモータによるクランキングを行い、各気筒の圧縮圧力を直接計測する。
【０００４】
そして、この計測結果に基づき、例えば特定気筒のみが、他の気筒の平均圧縮圧力に比べ低い場合や、特定気筒圧縮圧力が予め設定されている基準値よりも低い場合は、当該気筒の吸気弁、排気弁、ピストン、ピストンリング、ヘッドガスケット、シリンダヘッド等の、圧縮圧力に影響を与える部品に何らかの不具合があると考え、エンジン不調の原因の１つとして特定する。
【０００５】
コンプレッションゲージにより各気筒の圧縮圧力を直接計測することで、点火系、燃料系、各センサやアクチュエータ類等のエンジン不調に起因する他の要素を排除することができるため、故障原因を的確に突き止めて修理することが可能となる。
【０００６】
【発明が解決しようとする課題】
ところで、コンプレッションゲージを用いて各気筒の圧縮圧力を計測する場合、作業者は、各気筒の点火プラグを全て取り外し、１つの気筒の点火プラグ用取付け孔に対してコンプレッションゲージを装着し、当該気筒の圧縮圧を計測する。そして、当該気筒の圧縮圧力の計測が終了した後、コンプレッションゲージを点火プラグ用取付け孔から取り外し、他の気筒の点火プラグ用取付け孔に取付けて、当該気筒の圧縮圧力を計測する。
【０００７】
このように、コンプレッションゲージを用いて全気筒の圧縮圧力を計測しようとする場合、全ての気筒に対してコンプレッションゲージの取付け取り外しを行なわなければならないため、作業効率が悪い問題がある。
【０００８】
又、１つの気筒の圧縮圧力を計測している間、他の気筒の点火プラグ用取付け孔は開放状態にあるため、開放状態にある点火プラグ用取付け孔から燃料が噴出してしまう可能性がある。これを防止するためには、燃料ポンプ或いはインジェクタのコネクタ等を予め取り外しておかなければならず、更に、イグナイタやエンジ制御ユニット（ＥＣＵ）のコネクタ等を外し、点火信号を遮断して、ハイテンションコード等の点火系からの発火を防ぐ必要があり、複雑な作業が要求される不都合がある。
【０００９】
これに対処するに、例えば特開平５−３３２８８６号公報には、シリンダ固有の動作特性量を連続的に測定し、この測定結果を気筒毎に配分して、個々の気筒のトルク或いは出力を測定して、このトルク或いは出力に基づき各気筒の圧縮圧等が正常か否かを調べる技術が開示されている。
【００１０】
この公報に開示されている技術では、エンジン運転中に診断を行なうようにしているため、圧縮圧力が異常な気筒を特定することは可能であるが、その原因が、吸気弁、排気弁、ピストン、ピストンリング、ヘッドガスケット、シリンダヘッド等を含むエンジン主機にあるのか、或いは点火系、燃料系、各センサ或いはアクチュエータ等の周辺機器にあるのかを特定することが困難であり、異常気筒を検出した後も、故障原因を更に探求する必要があり、診断作業に手間がかかる不具合がある。
【００１１】
又、実開平７−２９４３６号公報には、歪みゲージをシリンダライナに取付け、この歪みゲージで検出した筒内最大圧力を常時検出して、圧縮圧力の異常の有無を判定する技術が開示されている。
【００１２】
しかし、この公報に開示されている技術では、各気筒に歪みゲージを取付けておかなければならないため、コスト高となり、実現性に乏しい。
【００１３】
本発明は、上記事情に鑑み、各気筒の圧縮圧力の異常を、特別な計測部品を付設することなく、既存の構成で検出することができるばかりでなく、点火プラグの着脱が不要で、しかも電気系統を接続する各コネクタ類を取り外すことなく簡単に検出することができ、使い勝手が良く、故障診断作業の効率化を実現できるエンジンの圧縮圧力診断装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するため、本発明によるエンジンの圧縮圧力診断装置は、通常のエンジン制御モードを実行する通常制御モード実行手段と、圧縮圧力の異常を検出する圧縮圧力診断モードを実行する圧縮圧力診断モード実行手段と、上記通常制御モードと上記圧縮圧力診断モードとを選択するモード選択手段と、エンジンの回転変動を検出する回転変動検出手段とを備え、上記モード選択手段で上記圧縮圧力診断モードが選択された場合、上記エンジンの回転変動に基づいて圧縮圧力の異常を検出することを特徴とする。
【００１５】
このような構成では、エンジンの回転変動から圧縮圧力の異常を検出するようにしたので、計測部品の追加や改良を必要とせず、従来のエンジン制御システムに対しソフトウェアのみの追加改良で実施することが可能となる。
【００１６】
この場合、好ましくは、１）上記モード選択手段で上記圧縮圧力診断モードが選択された場合、燃料系及び点火系の駆動を停止すると共にクランキング時の回転変動に基づいて圧縮圧力の異常を検出することを特徴とする。
【００１７】
２）上記モード選択手段で上記圧縮圧力診断モードが選択された場合、各気筒の圧縮行程時の設定クランク角間の瞬時回転数に基づいてエンジンの回転変動を検出することを特徴とする。
【００１８】
３）上記モード選択手段で上記圧縮圧力診断モードが選択された場合、１行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と現在の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値に基づいてエンジンの回転変動を検出することを特徴とする。
【００１９】
４）上記モード選択手段で上記圧縮圧力診断モードが選択された場合、３行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と２行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値に基づいてエンジンの回転変動を検出することを特徴とする。
【００２０】
５）上記モード選択手段で上記圧縮圧力診断モードが選択された場合、１行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と現在の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値を算出し、又３行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数と２行程前の気筒の圧縮行程時の設定クランク角間の瞬時回転数との差分値を算出し、該両差分値の差分を診断値として設定し、該診断値と予め設定した判定値とを比較して圧縮圧力の異常を検出することを特徴とする。
【００２１】
６）異常と判定された気筒の診断値が２回連続して検出された場合、２番目に異常を検出した気筒を圧縮圧力の異常気筒として特定することを特徴とする。
【００２２】
【発明の実施の形態】
以下、図面に基づいて本発明の一実施の形態を説明する。図１にはエンジン制御系の概略構成図が示されている。
【００２３】
同図の符号１はエンジンで、本実施の形態においては水平対向型４気筒エンジンを示す。このエンジン１に吸気マニホルド２と排気マニホルド３とが各々連通されている。
【００２４】
吸気マニホルド２の上流側がエアチャンバ４に集合され、このエアチャンバ４の上流に吸気管５が連通され、この吸気管５の上流がエアクリーナ（図示せず）に連通されている。又、吸気管５のエアチャンバ４の直上流にスロットル弁６が介装されている。尚、図示しないが、吸気管５のエアクリーナの直下流に、吸入空気量を検出する吸入空気量センサが介装されている。又、排気マニホルド３の集合部に排気管７が連通され、この排気管７に三元触媒等からなる触媒８が介装され、更に、その下流にマフラ９が連通されている。
【００２５】
又、エンジン１のクランク軸１ａに軸着するクランクパルス検出用クランクスプロケット１０の外周に、このクランクスプロケット１０の回転からエンジン回転数を検出するクランク角センサ１１が対設されている。更に、カム軸１２に軸着するカムパルス検出用カムスプロケット１３の外周に、このカムスプロケット１３の回転から気筒判別のためのカムパルスを検出するカム角センサ１４が対設されている。尚、本実施の形態によるエンジン１の点火順序は＃１→＃３→＃２→＃４に設定されている。
【００２６】
クランクスプロケット１０の外周には、設定クランク角毎に歯が形成されており、図２に示すように、クランク角センサ１１が圧縮上死点ＴＤＣを示す位置に形成された歯と、この圧縮上死点ＴＤＣに対して圧縮上死点前ＢＤＣＡ［ｄｅｇ｝の位置に形成された歯を検出することで、後述するエンジン制御ユニット２１では圧縮上死点前ＢＤＣＡ［ｄｅｇ｝間の通過時間を計時する。又、図示しないが、カムスプロケット１３の外周には気筒判別のための歯が、各気筒に対応して形成されている。
【００２７】
一方、符号２１はエンジン制御ユニット（ＥＣＵ）で、ＣＰＵ２２，ＲＯＭ（図示せず），ＲＡＭ（図示せず）、及びデータの書き換えが可能な不揮発性メモリ（例えば、ＥＥＰ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ）ＲＯＭ、フラッシュメモリ）やバックアップＲＡＭ等を備えたマイクロコンピュータ等を主体に構成されている。
【００２８】
ＣＰＵ２２では、ＲＯＭに記憶されている制御プログラムに従い、各センサ類からの検出信号等を処理し、ＲＡＭに格納されている各種データ、及び不揮発性メモリやバックアップＲＡＭに格納されている各種学習値データ等に基づき、燃料噴射量、点火時期等を演算し、燃料噴射制御、点火時期制御等のエンジン制御機能を有すると共に、各種の故障診断を行なう機能を有する。
【００２９】
ＥＣＵ２１で処理された、点火時期、燃料噴射量等の演算結果、及び各種の故障診断結果は、このＥＣＵ２１から延出するデータリンクコネクタ２３ａに、故障診断ツール（セレクトモニタ）２４から延出するデータリンクコネクタ２３ｂを接続することで、この故障診断ツール２４にて読出すことができる。尚、この故障診断ツール２４については、本出願人によって先に提出された特許第３２４５３４８号公報等に詳述されているため、ここでの説明は省略する。
【００３０】
故障診断ツール２４を用いて診断することのできる項目の１つとして、筒内圧縮圧力診断がある。すなわち、ある特定気筒において吸気弁、排気弁、ピストン、ピストンリング、ヘッドガスケット、シリンダヘッド等、気筒内圧を保持する部位から圧縮漏れが生じると、当該気筒の圧縮圧力が正常時の圧縮圧力に対して低い値を示したり、或いは、他の気筒の圧縮圧力の平均値及び圧力変動と比較した場合、その平均値が低く、且つ圧力変動が大きくなることが知られている。
【００３１】
これは気筒内圧を保持する部位の異常により気筒内に吸入した空気が漏れるためである。この状態においてスタータモータによりクランキングを行ない、圧縮行程のある特定の回転角範囲の経過時間ついて、正常な気筒と、圧縮漏れのある気筒とを比較すると、正常な気筒の経過時間（瞬時回転数）は空気の圧縮抵抗により相対的に長くなり、圧縮漏れのある気筒の経過時間は圧縮抵抗が小さいため、相対的に短くなる。
【００３２】
本実施の形態では、正常な気筒と圧縮漏れの発生している気筒との瞬時回転数の違いに着目し、瞬時回転数をパラメータとして計算処理することで、圧縮圧力の異常を検出するものである。
【００３３】
ＥＣＵ２１で処理される筒内圧縮圧力診断は、具体的には、図３〜図１２に示すフローチャートに従って実行される。
【００３４】
イグニッションスイッチがＯＮされると、図３に示す圧縮圧力判定モードフラグ処理ルーチンが所定演算周期（例えば、１２８ｍｓｅｃ）毎に実行される。
【００３５】
そして、先ず、ステップＳ１で、ＥＣＵ２１に対してデータリンクコネクタ２３ａ，２３ｂを介して接続されている故障診断ツール２４からの信号を読込み、この故障診断ツール２４から圧縮圧力診断モード選択信号が送信されているか否かを調べる。
【００３６】
ＥＣＵ２１にデータリンクコネクタ２３ａ，２３ｂを介して故障診断ツール２４を接続した後、この故障診断ツール２４のスイッチをＯＮすると、モニタに故障診断メニューが表示され、操作者がこの故障診断面ニューから「圧縮圧力診断」モードを選択すると、故障診断ツール２４からＥＣＵ２１に対して圧縮圧力診断モード選択信号が送信される。又、「圧縮圧力診断」モードをキャンセルする場合は、キャンセルキー（Ｃキー）をＯＮすることで、圧縮圧力診断モードキャンセル信号がＥＣＵ２１へ送信される。尚、故障診断ツール２４で処理されるデータ信号の送受については、後述する。
【００３７】
そして、ＥＣＵ２４が故障診断ツール２４からの圧縮圧力診断モード選択信号を受信したときは、ステップＳ２へ進み、圧縮圧力診断モードフラグＦＰＴＳＴＭＤをセットして（ＦＰＴＳＴＭＤ＝１）、ルーチンを抜ける。その結果、エンジンの制御モードが通常制御モードから圧縮圧力診断モードに切換えられる。
【００３８】
又、ステップＳ１で圧縮圧力診断モード選択信号を受信しなかったときは、ステップＳ３へ分岐し、圧縮圧力診断モードキャンセル信号を受信したか否かを調べ、圧縮圧力診断モードキャンセル信号を受信したときは、ステップＳ４へ進み、圧縮圧力診断モードフラグＦＰＴＳＴＭＤをクリアして（ＦＰＴＳＴＭＤ＝０）、ルーチンを抜ける。その結果、エンジンの制御モードが圧縮圧力診断モードから通常制御モードへ戻される。
【００３９】
又、ステップＳ３で圧縮圧力診断モードキャンセル信号を受信しなかったとき、すなわち、故障診断ツール２４で、圧縮圧力診断モードが選択されていない場合は、そのままルーチンを抜け、通常制御モード或いは選択した他の圧縮圧力診断モードを実行する。
【００４０】
この圧縮圧力診断モードフラグＦＰＴＳＴＭＤは、図４に示す診断実行条件成立フラグ処理ルーチンにおいて読込まれる。
【００４１】
このルーチンは、所定演算周期（例えば、１２８ｍｓｅｃ）毎に実行され、先ず、ステップＳ１１で診断実行条件が全て成立したか否かを調べる。
【００４２】
本実施の形態による診断実行条件は、表１の通りである。
【表１】
2004019465.tif 000003
【００４３】
そして、診断実行条件が全て成立したとき、ステップＳ１２へ進み、診断実行条件成立フラグＦＣＮＤＴＮをセットし（ＦＣＮＤＴＮ＝１）、ステップＳ１３へ進み、診断実行条件成立信号をデータリンクコネクタ２３ａ，２３ｂを介して故障診断ツール２４へ送信し、ルーチンを抜ける。
【００４４】
一方、ステップＳ１１で、診断実行条件不成立と判断したときは、ステップＳ１４へ分岐し、診断実行条件成立フラグＦＣＮＤＴＮをクリアし（ＦＣＮＤＴＮ＝０）、ステップＳ１５へ進み、診断実行条件不成立信号をデータリンクコネクタ２３ａ，２３ｂを介して故障診断ツール２４へ送信して、ルーチンを抜ける。
【００４５】
上述した圧縮圧力診断モードフラグＦＰＴＳＴＭＤ、及び診断実行条件成立フラグＦＣＮＤＴＮは、図５に示す圧縮圧力診断モード実行判定ルーチンで読込まれる。
【００４６】
このルーチンは所定演算周期（例えば、１２８ｍｓｅｃ）毎に実行され、先ず、ステップＳ２１で、圧縮圧力診断モードフラグＦＰＴＳＴＭＤの状態を調べ、ＦＰＴＳＴＭＤ＝１のときは、圧縮圧力診断モードが選択され、或いは実行中であるため、ステップＳ２２へ進み、燃料噴射制御、点火時期制御を圧縮圧力診断モードに切換え、燃料ポンプ、インジェクタ等の燃料系、及び点火系の駆動を停止させる処理を実行する。
【００４７】
次いで、ステップＳ２３へ進み、診断実行条件成立フラグＦＣＮＤＴＮの状態を調べ、ＦＣＮＤＴＮ＝０のときは診断実行条件不成立であるため、ステップＳ２１へ戻り、診断実行条件が成立するまで待機する。又、ＦＣＮＤＴＮ＝１のときは、診断実行条件成立であるため、ステップＳ２４へ進み、圧縮圧力診断処理実行フラグＦＰＡＣＴＮをセットして（ＦＰＡＣＴＮ＝１）、ルーチンを抜ける。
【００４８】
又、ステップＳ２１で、ＦＰＴＳＴＭＤ＝０のときは、圧縮圧力診断モードがキャンセルされているため、ステップＳ２５へ分岐し、燃料噴射制御、及び点火時期制御を通常モードに戻し、燃料ポンプ、インジェクタ等の燃料系、及び点火系の停止処理を解除する。
【００４９】
その後、ステップＳ２６へ進み、圧縮圧力診断処理実行フラグＦＰＡＣＴＮをクリアして（ＦＰＡＣＴＮ＝０）、ルーチンを抜ける。
【００５０】
この圧縮圧力診断処理実行フラグＦＰＡＣＴＮは、図６、図７に示す圧縮圧力診断処理ルーチンで読込まれる。
【００５１】
このルーチンは、予め設定した各気筒の圧縮上死点後（ＡＴＤＣ）から次の気筒の圧縮上死点ＴＤＣの１行程前下死点までの予め設定した任意のクランク角毎に実施される。
【００５２】
先ず、ステップＳ３１で、圧縮圧力診断処理実行フラグＦＰＡＣＴＮの状態を調べ、ＦＰＡＣＴＮ＝１のときは、圧縮圧力診断処理が許可されているため、ステップＳ３２へ進み、ＰＡＣＴＮ＝０のときは、圧縮圧力診断処理が不許可であるため、ステップＳ４２へ分岐する。
【００５３】
ステップＳ３１からステップＳ３２へ進むと、診断値算出カウンタＣＮＴＳＡＢと、予め設定した診断値算出判定回数ＫＣＮＳＡＢとを比較し、ＣＮＴＳＡＢ＜ＫＣＮＳＡＢのときは、圧縮圧力診断処理中であるため、ステップＳ３３へ進む。又、ＣＮＴＳＡＢ＝ＫＣＮＳＡＢのときは、診断値ＳＡＢ２の算出回数が診断に必要な所定の回数（ＫＣＮＳＡＢ回）に達したと判定し、ステップＳ４１へ分岐し、圧縮圧力診断完了１フラグＦＰＥＮＤ１をセットし（ＦＰＥＮＤ１＝１）、ステップＳ４２へ進む。尚、ステップＳ４２以下のルーチンについては後述する。
【００５４】
ステップＳ３２からステップＳ３３へ進むと、圧縮圧力診断完了１フラグＦＰＥＮＤ１をクリアし（ＦＰＥＮＤ１＝０）、ステップＳ３４で、診断値ＳＡＢ２［ｒｐｍ］を算出した後、ステップＳ３５へ進む。
【００５５】
ここで、診断値ＳＡＢ２の求め方について説明する。
クランク軸１ａのある特定の回転位置、例えば、図２に示すように、クランク角センサ１１が、＃１気筒圧縮上死点前ＢＤＣＡ１［ｄｅｇ］から＃１気筒圧縮上死点ＴＤＣ１を検出するまでの回転角経過時間Ｔ１を、ＥＣＵ２１にて計測し、＃１気筒の瞬時回転数Ｎ１［ｒｐｍ］を算出する。これを＃２気筒、＃３気筒、＃４気筒についても同様に行い、各気筒の瞬時回転数Ｎ２、Ｎ３、Ｎ４を各々求める。尚、本実施の形態では、４気筒エンジンの点火順序を、＃１→＃３→＃２→＃４に設定しているため、瞬時回転数もＮ１→Ｎ３→Ｎ２→Ｎ４の順で算出される。その際、入力されるクランクパルスが何れの気筒のものかを示す気筒判別は、カム角センサ１４により検出したカムパルスの割り込みにより行なう。
【００５６】
このようにして、図１３のタイムチャートに示すように、各気筒の瞬時回転数Ｎ２ｎ−１，Ｎ４ｎ−１……Ｎ２，Ｎ１を順次算出する。
【００５７】
この場合、診断実行条件を構成する要件の一部として、上述の表１に示したように、
・車速ＶＳＰ＝０Ｋｍ／ｈであること
・スタータスイッチがＯＮであること
・エンジン回転数ＮＥが１００〜４００ｒｐｍであること
が設定されているため、圧縮圧力診断は、クランク軸１ａをスタータモータでクランキングしている領域に限定される。
【００５８】
スタータモータでクランク軸１ａをクランキングすると、クランク軸１ａの回転が次第に上昇し、ある回転範囲内で定常的な回転となるが、定常的な回転といえども実際には様々なフリクション要因等による回転変動があるので、クランキング時は常に過渡状態にあるといえる。
【００５９】
そこで、過渡成分を吸収するため、診断対象気筒を基準として、当該気筒から１行程前の気筒の瞬時回転数と当該診断対象気筒の瞬時回転数との回転変動を示す差分値ＳＡＢ０ｎ［ｒｐｍ］を求める。更に、クランクパルス検出用クランクスプロケット１０に形成されているクランク角上で対向する気筒１８０°ＣＡ間の歯の機械的誤差の補正項として、診断対象気筒を基準に３行程前の気筒の瞬時回転数と２行程前の気筒の瞬時回転数との回転変動を示す差分値ＳＡＢ１ｎ［ｒｐｍ］を求める。
【００６０】
すなわち、図１４のタイムチャートに示すように、診断対象気筒をＮ１とした場合、差分値ＳＡＢ０ｎは、
ＳＡＢＯｎ＝Ｎ４−Ｎ１
であり、又、差分値ＳＡＢ１ｎは、
ＳＡＢ１ｎ＝Ｎ３−Ｎ２
となる。又、１行程前の差分値ＳＡＢ０ｎ−１，ＳＡＢ１ｎ−１は、
ＳＡＢＯｎ−１＝Ｎ２−Ｎ４
ＳＡＢ１ｎ−１＝Ｎ１ｎ−１−Ｎ３
となる。
【００６１】
そして、差分値ＳＡＢ０ｎとＳＡＢ１ｎの差分を算出し、この差分を診断対象気筒の診断値ＳＡＢ２［ｒｐｍ］として、記憶エリアの予め設定されているアドレスＳＡＢ２ｎ＝１，ＳＡＢ２ｎ＝２〜ＳＡＢ２ｎ＝ＫＣＮＴＳＡＢ−１，ＳＡＢ２ｎ＝ＫＣＮＴＳＡＢに対し、表２に示すように順にストアする。
【００６２】
【表２】
2004019465.tif 000004
【００６３】
ここで、図１５に圧縮圧力が正常な場合に算出される各気筒の瞬時回転数と診断値ＳＡＢ２との算出タイムチャートを例示し、図１６に、ある特定気筒の圧縮圧力に異常が生じている場合に算出される各気筒の瞬時回転数と診断値ＳＡＢ２との算出タイムチャートを例示する。
【００６４】
図１５に示すように、瞬時回転数が１８０°ＣＡ毎に交互に４０ｒｐｍ前後で変動しているのはクランクスプロケット１０に形成されている歯の機械的な誤差に起因するものと考えられる。一方、診断値ＳＡＢ２は、この機械的な誤差が修正されているため変動幅が小さくなり、０ｒｐｍ付近に収束していることが解る。
【００６５】
ところで、図１６に示すように、例えば＃１気筒に圧縮漏れがある場合、その分、起動時の負荷が小さいため、毎回算出される瞬時回転数が正常よりも１割程度高い状態となる。その結果、診断値ＳＡＢ２は、＃１気筒の異常により上昇した瞬時回転数と同じ割合で、０ｒｐｍを中心として大きく振幅する特性を示すことが解る。
【００６６】
この場合、仮に、図１５に示す正常時の診断値ＳＡＢ２を基準として、その正負、或いは正負何れか側の値を超えるところに、判定ラインを設定することで、この判定ラインを超える診断値ＳＡＢ２を示した場合、何れかの気筒が圧縮漏れを生じている判定することが可能となる。
【００６７】
実験によれば、図１６に示すように、何れかの気筒に圧縮漏れが生じている場合、診断値ＳＡＢ２が、隣接する２気筒ずつ連続して負の値と正の値とを交互に繰り返す特性を示し、この中で、圧縮漏れの生じている気筒は、連続して負の値を示す気筒の２つ目であることが判明している。
【００６８】
本実施の形態では、以下のステップで、判定ラインとして負の値を示す判定値ＫＳＡＢＪＤＧＭを設定し、この判定値ＫＳＡＢＪＤＧＭ以下の診断値ＳＡＢ２が検出された場合、２気筒連続して検出されたかどうかを調べ、２気筒連続して検出された場合は、２番目に異常を検出した気筒に圧縮漏れ（異常）が発生していると判定する。
【００６９】
上述したステップＳ３４からステップＳ３５へ進むと、診断値算出カウンタＣＮＴＳＡＢをインクリメントし（ＣＮＴＳＡＢ＝ＣＮＴＳＡＢ＋１）、算出回数をカウントする。その後、ステップＳ３６へ進み、カムパルスの割り込み信号から今回の診断対象気筒を判別処理し、気筒判別ＣＹＬを算出する。尚、この気筒判別ＣＹＬは、その都度、上述した診断値ＳＡＢ２のデータ記憶と同様、記憶エリアに予め設定されているアドレスＣＹＬｎ＝１，ＣＹＬｎ＝２，〜ＣＹＬｎ＝ＫＣＮＴＳＡＢ−１，ＣＹＬｎ＝ＫＣＮＴＳＡＢに対して算出順にストアする。
【００７０】
その後、ステップＳ３７で、診断値ＳＡＢ２と判定値ＫＳＡＢＪＤＧＭとを比較する。この判定値ＫＳＡＢＪＤＧＭは、診断対象気筒の圧縮圧力が正常値を示す下限値であり、予め実験等から求めて設定されているもので、本実施の形態では、ＫＳＡＢＪＤＧＭ＝−２０［ｒｐｍ］前後に設定されている。
【００７１】
そして、ＳＡＢ２＜ＫＳＡＢＪＤＧＭのときは、診断対象気筒の圧縮圧力が異常と判定し、ステップＳ３８へ進む。又、ＳＡＢ２≧ＫＳＡＢＪＤＧＭのときは、診断対象気筒の圧縮圧力は正常と判定し、ステップＳ４４へ分岐し、ＮＧ気筒判定フラグＦＮＧＣＹＬをクリアし（ＦＮＧＣＹＬ＝０）、ルーチンを抜ける。
【００７２】
一方、ステップＳ３７からステップＳ３８へ進むと、ＮＧ気筒判定フラグＦＮＧＣＹＬの値を調べ、ＦＮＧＣＹＬ＝０、すなわち、１回前の診断対象気筒の診断値ＳＡＢ２ｎ−１が判定値ＫＳＡＢＪＤＧＭよりも大きく、正常であると判定されているときは、今回の診断値ＳＡＢ２は判定値ＫＳＡＢＪＤＧＭ以下であり異常であるが、前回の診断値ＳＡＢ２は正常レベルにあり、異常な状態が連続していないので、ステップＳ３９へ分岐し、ＮＧ気筒判定フラグＦＮＧＣＹＬをセットして（ＦＮＧＣＹＬ＝１）、ルーチンを抜ける。
【００７３】
一方、ＦＮＧＣＹＬ＝１、すなわち、１回前の診断対象気筒の診断値ＳＡＢ２ｎ−１が判定値ＫＳＡＢＪＤＧＭ以下のときは、この状態が２回連続して検出されたため、診断対象気筒に圧縮漏れ（異常）が発生していると判定することができる。従って、ステップＳ４０へ進み、ステップＳ３６で算出した、今回の診断対象気筒である気筒判別ＣＹＬのデータを、ＮＧ気筒ＮＧＣＹＬにストアし、ルーチンを抜ける。
【００７４】
又、上述したステップＳ３１或いはステップＳ４１からステップＳ４２へ進むと、ステップＳ４２以下で、診断完了時の各処理を実施する。すなわち、ステップＳ４２で、圧縮圧力診断モードフラグＦＰＴＳＴＭＤをクリアし（ＦＰＴＳＴＭＤ＝０）、ステップＳ４３で、診断値算出カウンタＣＮＴＳＡＢをクリアし（ＣＮＴＳＡＢ＝０）、ステップＳ４４で、ＮＧ気筒判定フラグＦＮＧＣＹＬをクリアして（ＦＮＧＣＹＬ＝０）、ルーチンを抜ける。
【００７５】
又、図８に診断結果送信処理ルーチンを示す。このルーチンは、予め設定された演算周期（例えば、１２８ｍｓｅｃ）毎に実行され、先ず、ステップＳ５１で、圧縮圧力診断完了１フラグＦＰＥＮＤ１の値を参照し、ＦＰＥＮＤ１＝０のときは、診断の算出が未完了であるため、そのままルーチンを抜ける。
【００７６】
一方、ＦＰＥＮＤ１＝１の診断完了のときは、ステップＳ５２へ進み、圧縮圧力診断完了信号をデータリンクコネクタ２３ａ，２３ｂを介して故障診断ツール２４へ送信する。
【００７７】
次いで、ステップＳ５３へ進み、ＮＧ気筒ＮＧＣＹＬのデータと、記憶エリアに格納されている診断値ＳＡＢ２ｎ＝１〜ＳＡＢ２ｎ＝ＫＣＮＴＳＡＢの各データ、及びこれに対応して格納されている気筒判別ＣＹＬｎ＝１〜ＣＹＬｎ＝ＫＣＮＴＳＡＢの各データを故障診断ツール２４へ送信して、ルーチンを抜ける。
【００７８】
次に、図９〜図１２に示すフローチャートに従い、故障診断ツール２４で実行される処理を示す。
【００７９】
故障診断ツール２４をデータリンクコネクタ２３ａ，２３ｂを介してＥＣＵ２１に接続した後、スイッチをＯＮすると、故障診断ツール２４のモニタ（図示せず）に診断メニューが表示され、操作者が、メニュー中から所望の診断モードを選択するまで待機状態にある。
【００８０】
そして、操作者が、メニュー中から「圧縮圧力診断」モードを選択すると、図９、図１０に示す圧縮圧力診断モード処理ルーチンが起動される。このルーチンは、予め設定した演算周期（例えば、５１２ｓｅｃ）毎に実施され、先ず、ステップＳ６１で、操作者が「圧縮圧力診断」モードを選択したため、待機状態からステップＳ６２へ進み、圧縮圧力診断完了２フラグＦＰＥＮＤ２の値を調べる。
【００８１】
この圧縮圧力診断完了２フラグＦＰＥＮＤ２は、圧縮圧力の診断が完了しているか否かを示すもので、初期値は０であり、ＥＣＵ２１からの圧縮圧力診断完了信号が受信されたときセットされる（図１２参照）。
【００８２】
故障診断ツール２４をＯＮした直後は、ＦＰＥＮＤ２＝０であるため、ステップＳ６８へ分岐し、圧縮圧力診断を開始する。
【００８３】
以下においては、説明を簡単にするため、先ず、ステップＳ６８以下のルーチンについて説明し、次いで、ステップＳ６２以下のルーチンについて説明する。
【００８４】
ステップＳ６８へ進むと、圧縮圧力診断モード選択信号をデータリンクコネクタ２３ａ，２３ｂを介してＥＣＵ２１へ送信し、続く、ステップＳ６９で、圧縮圧力診断実行指示表示処理を実行する。
【００８５】
すると、故障診断ツール２４のモニタには、「ギアをニュートラルにしてスタータを回し、クランキングして下さい。」のメッセージが表示され、運転者が、ギアをニュートラルにセットした後、スタータスイッチをＯＮすると、次のステップＳ７０へ進み、診断実行条件成立２フラグＦＣＮＤＴＮ２の値を調べる。
【００８６】
この診断実行条件成立２フラグＦＣＮＤＴＮ２の値は、後述する図１１に示す診断実行条件成立フラグ状態受信処理ルーチンにてセット或いはクリアされる。
【００８７】
そして、診断実行条件成立２フラグＦＣＮＤＴＮ２がセットされるまで、ステップＳ６９，Ｓ７０のルーチンを繰り返し実行する待機状態となる。
【００８８】
尚、その間、操作者がキャンセルキー（Ｃキー）をＯＮして、圧縮圧力診断モードをキャンセルすると、ステップＳ７１からステップＳ６６へ進み、圧縮圧力診断モードキャンセル信号をＥＣＵ２１へ送信して、ルーチンを抜ける。その結果、故障診断ツール２４のモニタには初期メニューが表示される。一方ＥＣＵ２１が、圧縮圧力診断モードキャンセル信号を受信すると、圧縮圧力診断モードフラグＦＰＴＳＴＭＤをクリアして（ＦＰＴＳＴＭＤ＝０）、圧縮圧力診断モードを終了する（図３のステップＳ３，Ｓ４参照）。
【００８９】
又、診断実行条件成立２フラグＦＣＮＤＴＮ２がセットされるまで、ステップＳ６９，Ｓ７０のルーチンを繰り返し実行する待機状態にあるとき、図１１に示す診断実行条件成立フラグ状態受信処理ルーチンが、設定演算周期（例えば、１２８ｍｓｅｃ）毎に実行される。以下においては、圧縮圧力診断モード処理ルーチンの説明を中断し、診断実行条件成立フラグ状態受信処理ルーチンについて説明する。
【００９０】
このルーチンでは、先ずステップＳ８１で、ＥＣＵ２１から診断実行条件成立信号が受診されたか否かを調べ、診断実行条件成立信号が受診された場合は、ステップＳ８２へ進み、診断実行条件成立２フラグＦＣＮＤＴＮ２をセットして（ＦＣＮＤＴＮ２＝１）、ルーチンを抜ける。
【００９１】
又、診断実行条件成立信号が受診されなかった場合は、ステップＳ８３へ分岐し、診断実行条件不成立信号が受診されたか否かを調べ、診断実行条件不成立信号が受診されたときは、ステップＳ８４へ進み、診断実行条件成立２フラグＦＣＮＤＴＮ２をクリアして（ＦＣＮＤＴＮ２＝０）、ルーチンを抜ける。又、診断実行条件不成立信号も受信されていない場合は、そのままルーチンを抜ける。
【００９２】
一方、上述した、図１０のステップＳ７０では、診断実行条件成立フラグ状態受信処理ルーチンで処理した診断実行条件成立２フラグＦＣＮＤＴＮ２がセットされたとき、ステップＳ７２へ進み、圧縮圧力診断実行中表示処理を行い、故障診断ツール２４のモニタに「診断実行中です。クランキングを継続して下さい。」のメッセージを表示する。
【００９３】
次いで、ステップＳ７３で、圧縮圧力診断完了２フラグＦＰＥＮＤ２の値を参照する。この圧縮圧力診断完了２フラグＦＰＥＮＤ２は、圧縮圧力の診断が完了したことをＥＣＵ２１からの通信により通知があったか否かを示す値であり、ＦＰＥＮＤ２＝０の圧縮圧力診断が未完のときは、ステップＳ７２へ戻り、圧縮圧力診断実行中表示処理が完了するまで、ルーチンを繰り返し実行する。
【００９４】
そして、ＦＰＥＮＤ２＝１の圧縮圧力診断完了のときは、ステップＳ７４へ進み、圧縮圧力診断完了表示処理が実行される。すると、故障診断ツール２４のモニタには、「診断が完了しました。クランキングを止めてＹＥＳキーを押して下さい。」のメッセージが表示される。
【００９５】
その後、ステップＳ７５へ進み、ＹＥＳキーの入力があるまで、ステップＳ７４の圧縮圧力診断完了表示処理に戻り、ＹＥＳキーの入力待ちループに入る。
【００９６】
そして、ＹＥＳキーの入力があったときは、圧縮圧力の診断が完了したので、ステップＳ６４へ進み、ステップＳ６４〜Ｓ６６の処理を実行してルーチンを抜ける。尚、このステップＳ６４〜Ｓ６６の処理については後述する。
【００９７】
一方、ステップＳ６２で、ＦＰＥＮＤ２＝１の圧縮圧力診断完了のときは、ステップＳ６３へ進み、故障診断ツール２４のモニタに、「診断データの表示」を選択するか否かのメッセージ画面が表示され、「診断データの表示」を選択（ＹＥＳキーをＯＮ）した場合は、ステップＳ６４へ進み、選択しなかった（キャンセル（Ｃ）キーをＯＮした）場合は、ステップＳ６７へ分岐する。ステップＳ６７へ分岐すると、新規の診断を実行するために、圧縮圧力診断完了２フラグＦＰＥＮＤ２をクリアし（ＦＰＥＮＤ２＝０）、上述したステップＳ６８へ進む。
【００９８】
又、ステップＳ６３或いはステップＳ７５からステップＳ６４へ進むと、診断結果の表示処理を実行する。この診断結果の表示処理は、後述する図１２に示す診断完了データ受信処理ルーチンによって受信されたＥＣＵ２１からのデータを、故障診断ツール２４のモニタに表示するもので、表示内容は、以下に示す表３の通りである。
【００９９】
【表３】
2004019465.tif 000005
【０１００】
そして、モニタへ出力する画像データの表示処理を実行した後は、ステップＳ６５へ進み、操作者がキャンセルキーをＯＮ（Ｃキー入力）するまで、表示状態を継続し、Ｃキーの入力があったとき、診断結果の表示終了と判定し、ステップＳ６６へ進み、圧縮圧力診断モードキャンセル信号をＥＣＵ２１へ送信し、ルーチンを抜ける。
【０１０１】
その結果、故障診断ツール２４のモニタには初期メニューが表示され、一方、ＥＣＵ２１では、圧縮圧力診断モードキャンセル信号の受信により、圧縮圧力診断モードフラグＦＰＴＳＴＭＤをクリアして（ＦＰＴＳＴＭＤ＝０）、圧縮圧力診断モードを終了する（図３のステップＳ３，Ｓ４参照）。
【０１０２】
又、図１２にＥＣＵ２１からのデータを受信した後の診断完了データ受信処理ルーチンを示す。このルーチンは、予め設定された演算周期（例えば、１２８ｍｓｅｃ）毎に実施される。
【０１０３】
先ず、ステップＳ９１で、ＥＣＵ２１からの圧縮圧力診断完了信号を受信したか否かを調べ、受信していないときは、そのままルーチンを抜ける。
【０１０４】
一方、圧縮圧力診断完了信号を受信したときは、ステップＳ９２へ進み、圧縮圧力診断完了２フラグＦＰＥＮＤ２をセットし（ＦＰＥＮＤ２＝１）、ステップＳ９３へ進み、診断結果データの受診処理を行う。
【０１０５】
すなわち、ＮＧ気筒ＮＧＣＹＬの受信データは予め確保された記憶エリアＮＧＣＹＬにストアし、又、診断値ＳＡＢ２ｎ＝１〜ＳＡＢ２ｎ＝ＫＣＮＴＳＡＢの受信データは予め確保された記憶エリアＴＳＡＢｎ＝１〜ＴＳＡＢｎ＝ＫＣＮＴＳＡＢにそれぞれ対応する順にストアし、更に、気筒判別ＣＹＬｎ＝１〜ＣＹＬｎ＝ＫＣＮＴＳＡＢの受信データは予め確保された記憶エリアＴＣＹＬｎ＝１〜ＴＣＹＬｎ＝ＫＣＮＴＳＡＢにそれぞれ対応する順にストアして、ルーチンを抜ける。
【０１０６】
このように、本実施の形態では、気筒内圧を保持する部位の異常により、圧縮漏れの発生を、圧縮圧力を計測する装置を用いることなく、始動時のエンジン回転変動から検出するようにしたので、計測部品の追加や改良を必要とせず、従来のエンジン制御ユニット（ＥＣＵ）に対してソフトウェアのみの追加改良で対応することができるため、低コストでの実現が可能であり、しかも、既存のエンジンに簡単に適用することができるため、汎用性に優れている。
【０１０７】
又、ＥＣＵ２１に予め組み込まれている通常制御モードと圧縮圧力診断モードとを、圧縮圧力診断機能が予め組み込まれている故障診断ツール２４からの指令により、作業者が自由に切換えることができるため使い勝手がよい。
【０１０８】
更に、作業者が圧縮圧力診断モードを選択したときは、故障診断ツール２４に表示される指示に従って、スタータを駆動させてクランキングを実施するだけで、圧縮圧力の診断が自動的に実行されるため、診断に要する時間が短く、且つ高精度な診断結果を得ることができる。
【０１０９】
又、圧縮圧力診断モード実行時は、燃料ポンプ、インジェクタ、点火を各々停止されるようにしているので、少なくとも燃料系と点火系との不具合要素が除かれて、機械的不具合要素に特定した診断を行なうことができ、故障の原因を早期に確定することができる。
【０１１０】
更に、診断結果を故障診断ツール２４のモニタ上に表示させるようにしたので、不具合気筒の特定のみならず、診断値データをグラフ化して表示することも可能となり、モニタに表示された情報から、故障の程度を瞬時に把握することができる。
【０１１１】
又、診断対象気筒を基準として１行程前の気筒の瞬時回転数と、当該診断対象気筒の瞬時回転数との差分値ＳＡＢ０ｎ［ｒｐｍ］を求め、更に、クランクパルス検出用クランクスプロケット１０に形成されているクランク角上で対向する気筒１８０°ＣＡ間の歯の機械的誤差の補正項として、診断対象気筒を基準に３行程前の気筒の瞬時回転数と、２行程前の気筒の瞬時回転数との差分値ＳＡＢ１ｎ［ｒｐｍ］を求め、この差分値ＳＡＢ０ｎとＳＡＢ１ｎとの差分から診断値ＳＡＢ２を算出し、この診断値ＳＡＢ２と予め設定されている判定値ＫＳＡＢＪＤＧＭとを比較することで、圧縮圧力の異常の有無を検出するようにしたので、クランキング中の様々なフリクション要因等による回転変動の過渡成分が吸収されて、検出精度がより一層向上する。
【０１１２】
【発明の効果】
以上、説明したように本発明によれば、各気筒の圧縮圧力の異常を、新たな計測部品を付設することなく、既存の構成で検出することができ、しかも、点火プラグの着脱が不要で、その上、電気系統を接続する各コネクタ類を取り外す必要が無く、簡単に検出することができるため、使い勝手が良く、故障診断時の作業効率を大幅に向上させることができる。
【図面の簡単な説明】
【図１】エンジン制御系の概略構成図
【図２】クランクスプロケットと瞬時回転数の検出領域との関係を示す説明図
【図３】圧縮圧力判定モードフラグ処理ルーチンを示すフローチャート
【図４】診断実行条件成立フラグ処理ルーチンを示すフローチャート
【図５】圧縮圧力診断モード実行判定ルーチンを示すフローチャート
【図６】圧縮圧力診断処理ルーチンを示すフローチャート（その１）
【図７】圧縮圧力診断処理ルーチンを示すフローチャート（その２）
【図８】診断結果送信処理ルーチンを示すフローチャート
【図９】圧縮圧力診断モード処理ルーチンを示すフローチャート（その１）
【図１０】圧縮圧力診断モード処理ルーチンを示すフローチャート（その２）
【図１１】診断実行条件成立フラグ状態受信処理ルーチンを示すフローチャート
【図１２】診断完了データ受信処理ルーチンを示すフローチャート
【図１３】各気筒の瞬時回転数の算出タイムチャート
【図１４】各気筒の診断値の算出タイムチャート
【図１５】圧縮圧力が正常な場合に算出される各気筒の瞬時回転数と診断値との算出タイムチャート
【図１６】特定気筒の圧縮圧力に異常が生じている場合に算出される各気筒の瞬時回転数と診断値との算出タイムチャート
【符号の説明】
１　エンジン
ＫＳＡＢＪＤＧＭ　判定値
Ｎ　瞬時回転数
ＮＥ　エンジン回転数
ＳＡＢ０ｎ，ＳＡＢ１ｎ　差分値
ＳＡＢ２　診断値
【図１】
2004019465.tif 000006
【図２】
2004019465.tif 000007
【図３】
2004019465.tif 000008
【図４】
2004019465.tif 000009
【図５】
2004019465.tif 000010
【図６】
2004019465.tif 000011
【図７】
2004019465.tif 000012
【図８】
2004019465.tif 000013
【図９】
2004019465.tif 000014
【図１０】
2004019465.tif 000015
【図１１】
2004019465.tif 000016
【図１２】
2004019465.tif 000017
【図１３】
2004019465.tif 000018
【図１４】
2004019465.tif 000019
【図１５】
2004019465.tif 000020
【図１６】
2004019465.tif 000021