(57)【要約】【課題】気筒判別信号を発生するカムセンサが故障しても、誤った気筒判別結果に基づく誤制御を回避しつつ、気筒判別結果に基づく気筒毎の制御を極力行えるようにする。【解決手段】カムセンサが故障すると、気筒判別タイミング毎に前回値に基づいて今回の気筒判別値を推定し、該推定値を機関停止中記憶しておいて、始動時には、停止時の気筒判別値を初期値として気筒判別値を更新させる。ここで、機関停止時に、機関の揺り戻しが発生したか否かを判別すると共に、揺り戻し中に着火したか否かを判別する。そして、揺り戻しが発生すると、前回値に基づく気筒判別値の更新を停止して、気筒判別値を前回値に保持させ、揺り戻し中に着火したときには、停止時の気筒判別値を不明として、停止時の気筒判別値の設定を禁止する。【選択図】　図５
2004052698.tif 000002
【特許請求の範囲】
【請求項１】
カムセンサから出力される気筒判別信号に基づき気筒判別値を設定し、該気筒判別値に基づいて気筒毎の制御タイミングを決定する内燃機関の制御装置において、
前記カムセンサの故障が診断されているときに、前回の気筒判別値に基づいて推定した今回の気筒判別値に基づいて気筒毎の制御タイミングを決定させると共に、機関停止時に揺り戻しの有無及び揺り戻し中における着火の有無を判定し、該判定結果に基づいて機関停止時の気筒判別値を設定し、始動時に、前記機関停止時の気筒判別値を初期値として気筒判別値を推定させることを特徴とする内燃機関の制御装置。
【請求項２】
前記揺り戻し中における着火の有無を、揺り戻し判定後の機関回転速度に基づいて判定することを特徴とする請求項１記載の内燃機関の制御装置。
【請求項３】
前記揺り戻し中における着火の有無を、揺り戻し判定後の機関の回転角に基づいて判定することを特徴とする請求項１記載の内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カムセンサからの気筒判別信号によって気筒判別を行って気筒毎の制御タイミングを決定する内燃機関の制御装置に関し、特に、カムセンサ故障時の制御に関する。
【０００２】
【従来の技術】
従来から、カムセンサから出力される気筒判別信号に基づいて、基準クランク角位置毎に気筒判別値を更新させ、該気筒判別値に基づいて気筒毎の燃料噴射タイミングや点火時期を制御することが行われている（特開平１１−２５７１４８号公報参照）。
【０００３】
【発明が解決しようとする課題】
ところで、気筒判別値は点火順に従って基準クランク角位置毎に順次切換えられることになるので、カムセンサが故障して気筒判別信号に基づく気筒判別が不能になっても、正常時に引き続き前回値から今回値を推定させることで気筒判別が可能であり、再始動時においても、前回運転時の最後に推定された結果を記憶させておくことで、カムセンサが故障していても気筒毎の制御によって機関を始動させることが可能である。
【０００４】
しかし、機関停止の直前に揺り戻し（逆転）が発生し、該揺り戻しによって気筒判別値の更新タイミングになってしまうと、機関が逆転しているのに、気筒判別値は正回転時における次の点火順の気筒に対応する値に更新されてしまうという問題が生じる。
更に、例えば機関が始動する前にクランキングを停止させた場合には、揺り戻し中に着火して、クランクが更に余分に回されることがあり、この場合には、たとえ揺り戻しを検出できても、機関停止時の気筒判別値を正しく判定することができなくなってしまう。
【０００５】
ここで、揺り戻し中における着火の有無とは無関係に、揺り戻し発生時に気筒判別値の推定結果に基づく始動制御を禁止する構成とすれば、たとえ揺り戻し中に着火したとしても、誤った気筒判別値に基づいて気筒別制御が行われてしまうことを回避できるが、係る構成では、カムセンサ故障時の制御性が大きく低下してしまうという問題が発生する。
【０００６】
本発明は上記問題点に鑑みなされたものであり、カムセンサの故障時であっても、気筒判別結果に基づく気筒毎の制御を極力行わせることができ、かつ、誤った気筒判別結果に基づく誤制御を回避できる機関の制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
そのため請求項１記載の発明では、カムセンサの故障が診断されているときに、前回の気筒判別値に基づいて推定した今回の気筒判別値に基づいて気筒毎の制御タイミングを決定させると共に、機関停止時に揺り戻しの有無及び揺り戻し中における着火の有無を判定し、該判定結果に基づいて機関停止時の気筒判別値を設定し、始動時に、前記機関停止時の気筒判別値を初期値として気筒判別値を推定させる構成とした。
【０００８】
上記構成によると、カムセンサが故障すると、それまでの気筒判別信号に基づく気筒判別値の更新時に引き続くパターンで気筒判別値を更新させて、気筒別制御を行わせる。
そして、機関停止時には、揺り戻しの有無を判定し、更に、揺り戻しが発生したときには、揺り戻し中に着火したか否かを判別し、機関停止時の気筒判別値として記憶させるデータの設定を行わせる。
【０００９】
従って、着火を伴わない揺り戻しが発生したときに、機関停止時の気筒判別値が誤って更新設定されることを回避して、正しい気筒判別値に基づいて始動制御を行わせることができ、また、揺り戻し中に着火して、正しい気筒判別値の設定が行えないときには、誤った気筒判別値に基づく誤制御を確実に回避できる。
請求項２記載の発明では、揺り戻し中における着火の有無を、揺り戻し判定後の機関回転速度に基づいて判定する構成とした。
【００１０】
上記構成によると、揺り戻し中に着火すると一時的に回転速度が上昇するから、係る回転上昇の有無から、揺り戻し中に着火したか否かを判定する。
従って、機関回転速度に基づいて揺り戻し中における着火の有無を精度良く判定して、誤った気筒判別値に基づく誤制御を確実に回避できる。
請求項３記載の発明では、揺り戻し中における着火の有無を、揺り戻し判定後の機関の回転角に基づいて判定する構成とした。
【００１１】
上記構成によると、揺り戻し中に着火すると、着火しない場合よりも多くクランクが回されることになるから、揺り戻し判定後にどれだけの角度だけ回転したかによって、着火の有無を判定する。
従って、回転角に基づいて揺り戻し中における着火の有無を精度良く判定して、誤った気筒判別値に基づく誤制御を確実に回避できる。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を図に基づいて説明する。
図１は、車両用の直列４気筒内燃機関のシステム構成図である。
この図１において、内燃機関１０１の吸気管１０２には、スロットルモータ１０３ａでスロットルバルブ１０３ｂを開閉駆動する電子制御スロットルチャンバ１０４が介装され、該電子制御スロットルチャンバ１０４及び吸気バルブ１０５を介して、燃焼室１０６内に空気が吸入される。
【００１３】
燃焼排気は燃焼室１０６から排気バルブ１０７を介して排出され、フロント触媒１０８及びリア触媒１０９で浄化された後、大気中に放出される。
前記吸気バルブ１０５及び排気バルブ１０７は、それぞれ吸気側カムシャフト１１０Ａ，排気側カムシャフト１１０Ｂに設けられたカムによって開閉駆動される。
【００１４】
また、各気筒の吸気バルブ１０５上流側の吸気ポート１１１には、電磁式の燃料噴射弁１１２が設けられ、該燃料噴射弁１１２は、エンジンコントロールユニット（以下、ＥＣＵと略す）１１３から各気筒毎に出力される噴射パルス信号によって開弁駆動されると、所定圧力に調整された燃料を吸気バルブ１０５に向けて噴射する。
【００１５】
シリンダ内に形成された混合気は、点火プラグ１１４による火花点火によって着火燃焼する。
各点火プラグ１１４には、それぞれにパワートランジスタを内蔵したイグニッションコイル１１５が設けられており、前記ＥＣＵ１１３は、前記パワートランジスタをスイッチング制御することによって、各気筒の点火時期（点火進角値）を独立に制御する。
【００１６】
前記ＥＣＵ１１３には、アクセル開度を検出するアクセルペダルセンサＡＰＳ１１６、機関１０１の吸入空気量Ｑを検出するエアフローメータ１１５、クランクシャフト１２１から単位クランク角度毎のポジション信号ＰＯＳを取り出すクランク角センサ１１７、スロットルバルブ１０３ｂの開度ＴＶＯを検出するスロットルセンサ１１８、機関１０１の冷却水温度Ｔｗを検出する水温センサ１１９、前記吸気側カムシャフト１１０Ａから気筒判別信号ＰＨＡＳＥを取り出すカムセンサ１２０などからの検出信号が入力されると共に、スタートスイッチ１２３のＯＮ・ＯＦＦ信号が入力されるようになっている。
【００１７】
前記カムセンサ１２０は、クランクシャフト１２１が１回転する毎に２回転するカムシャフト１１０Ａに軸支されたシグナルプレート（回転体）の周縁に９０°毎に異なる山数の被検出部を設け、該被検出部をホール素子や電磁ピックアップで検出することで、直列４気筒機関１０１における気筒間の行程位相差に相当するクランク角１８０°ＣＡ毎に、数の異なる（１〜４個）のパルス信号を気筒判別信号ＰＨＡＳＥとして発生する（図２参照）。
【００１８】
また、クランク角センサ１１７は、クランクシャフト１２１に軸支されるドライブプレートなどと一体に設けられるシグナルプレート１２２の周縁に、クランク角１０°ＣＡ毎に突起部（被検出部）を形成する一方、前記突起部をホール素子や電磁ピックアップで検出することで、クランク角１０°ＣＡ毎のポジション信号ＰＯＳを発生する（図２参照）。
【００１９】
また、前記突起部を、各気筒のＢＴＤＣ６０°及びＢＴＤＣ７０°に相当する位置で欠落させ、１８０°毎にポジション信号ＰＯＳが連続して２つだけ歯抜けになるようにしてある（図２参照）。
更に、前記クランク角１８０°ＣＡ毎に出力される気筒判別信号ＰＨＡＳＥの先頭パルスの位置と、前記ポジション信号ＰＯＳの欠落位置とを位置合わせしてある（図２参照）。
【００２０】
上記構成において、ＥＣＵ１１３は、前記カムセンサ１２０及びクランク角センサ１１７からの信号に基づいて、基準クランク角信号ＲＥＦの生成及び該基準クランク角信号ＲＥＦを各気筒に対応させる気筒判別を行い、各気筒の点火時期及び燃料噴射時期を、前記基準クランク角信号ＲＥＦを基準に制御するようになっている。
【００２１】
以下、前記基準クランク角信号ＲＥＦの生成及び気筒判別の詳細を、図３〜図９のフローチャートに従って説明する。
図３〜図５のフローチャートに示すプログラムは、ポジション信号ＰＯＳの発生（ポジション信号ＰＯＳの立ち下がり）毎に割り込み実行されるプログラムである。
【００２２】
ステップＳ１では、ポジション信号ＰＯＳの発生周期（ポジション信号ＰＯＳの立ち下がりから立ち下がりまでの時間）ＴＰＯＳを計測する。
ステップＳ２では、最新の計測周期ＴＰＯＳと前回値ＴＰＯＳｚとの比ＴＰＯＳＣＰを演算する。
ＴＰＯＳＣＰ＝ＴＰＯＳ／ＴＰＯＳｚ
ステップＳ３では、前記周期比ＴＰＯＳＣＰが閾値Ａを超えるか否かを判別することで、最新の計測周期ＴＰＯＳがポジション信号ＰＯＳの欠落部分を計測した結果であるか否かを判別する。
【００２３】
前記周期比ＴＰＯＳＣＰが閾値Ａ以上である場合には、最新の計測周期ＴＰＯＳがポジション信号ＰＯＳの欠落部分を計測した結果であると判断して、ステップＳ４へ進み、欠落検出フラグＦｎｕに１をセットする。
一方、ステップＳ３で前記周期比ＴＰＯＳＣＰが閾値Ａ未満であって、最新の計測周期ＴＰＯＳが欠落部分以外（クランク角１０°ＣＡ）の計測結果であると判断されるときには、ステップＳ５へ進み、前記欠落検出フラグＦｎｕが１であるか否かを判別する。
【００２４】
欠落部分を計測した直後のポジション信号ＰＯＳ発生時であれば、ここで、Ｆｎｕ＝１であると判断されることになり、Ｆｎｕ＝１であると判断されると、ステップＳ６へ進んで前記フラグＦｎｕを０にリセットした後、ステップＳ７へ進んで、ポジション信号ＰＯＳのカウント値ＣＲＡＣＮＴを０にリセットする。
一方、最新の計測周期ＴＰＯＳが欠落部分の計測結果であると判断され、ステップＳ４で前記フラグＦｎｕに１をセットしたとき、及び、ステップＳ５で、前記フラグＦｎｕが０であると判断されたときには、ステップＳ８へ進んで、前記カウント値ＣＲＡＣＮＴを１だけカウントアップさせる。
【００２５】
上記制御によって前記カウント値ＣＲＡＣＮＴは、ポジション信号ＰＯＳの発生毎にカウントアップされる一方、欠落部分を計測した直後のポジション信号ＰＯＳ発生時に（換言すれば、ＢＴＤＣ４０°の位置で）０にリセットされることになる（図２参照）。
ステップＳ８で前記カウント値ＣＲＡＣＮＴをカウントアップさせると、ステップＳ９へ進み、カウント値ＣＲＡＣＮＴが７になっているか否かを判別する。
【００２６】
ＣＲＡＣＮＴ＝７は、気筒判別を行わせる基準ピストン位置であることを示すので（図２参照）、カウント値ＣＲＡＣＮＴ＝７のときには、気筒判別を行わせるべく、ステップＳ１０へ進む。
ステップＳ１０では、今回の気筒判別タイミングが始動から２回目以降であるか否かを判別し、最初の気筒判別タイミングであるときには、ステップＳ１１へ進んで、気筒判別信号ＰＨＡＳＥに基づく気筒判別値ＣＹＬＣＡＭに対して、気筒不明であることを示す０をセットする。
【００２７】
前記気筒判別タイミングが２回目以降であれば、ステップＳ１２へ進む。
ステップＳ１２では、気筒判別信号ＰＨＡＳＥの発生毎に図７のフローチャートのステップＳ５１でカウントアップされるカウント値ＣＡＭＣＮＴ（初期値＝０）の値に基づいて、気筒判別値ＣＹＬＣＡＭ（初期値＝０）を設定する。
具体的には、前記カウント値ＣＡＭＣＮＴが０であるときには、気筒判別値ＣＹＬＣＡＭに対して気筒不明であることを示す０をセットし、前記カウント値ＣＡＭＣＮＴが１であるときには、次の基準クランク角信号ＲＥＦが＃３気筒に対応することを示すべく気筒判別値ＣＹＬＣＡＭに対して３をセットし、前記カウント値ＣＡＭＣＮＴが２であるときには、次の基準クランク角信号ＲＥＦが＃１気筒に対応することを示すべく気筒判別値ＣＹＬＣＡＭに対して１をセットし、前記カウント値ＣＡＭＣＮＴが３であるときには、次の基準クランク角信号ＲＥＦが＃４気筒に対応することを示すべく気筒判別値ＣＹＬＣＡＭに対して４をセットし、前記カウント値ＣＡＭＣＮＴが４であるときには、次の基準クランク角信号ＲＥＦが＃２気筒に対応することを示すべく気筒判別値ＣＹＬＣＡＭに対して２をセットする。
【００２８】
ステップＳ１３では、前記カウント値ＣＡＭＣＮＴを０にリセットする。
ステップＳ１４以降では、キースイッチのＯＦＦ中も記憶保持されるＲＡＭのデータであるバックアップ気筒判別値ＣＹＬＢＵＰの更新を行わせる。
まず、ステップＳ１４では、機関停止時の揺り戻し（逆転）が検出されたか否かを判別する。
【００２９】
前記ステップＳ１４で判別される揺り戻し（逆転）の検出処理は、図８のフローチャートに従って行われる。
図８のフローチャートは、ポジション信号ＰＯＳの発生（ポジション信号ＰＯＳの立ち下がり）毎に割り込み実行され、ステップＳ３１では、ポジション信号ＰＯＳの発生周期ＴＰＯＳを計測する。
【００３０】
次のステップＳ３２では、前記カウント値ＣＲＡＣＮＴが１５にカウントアップされたタイミングであるか否かを判別する。
前記カウント値ＣＲＡＣＮＴが１５でないときには、今回の計測周期は、通常のクランク角１０°だけ回転するのに要した時間であるので、ステップＳ３３へ進み、周期ＴＰＯＳに基づいて揺り戻し（逆転）の検出を行うときの閾値として通常値（例えば２０ｍｓ）を設定し、周期ＴＰＯＳが前記通常値以上であるか否かを判別する。
【００３１】
前記周期ＴＰＯＳが前記通常値以上であるときには、停止直前の揺り戻し（逆転）によって通常では発生しない長い周期になったものと判断し、ステップＳ３５へ進んで、揺り戻し（逆転）の発生を判定する。
一方、前記カウント値ＣＲＡＣＮＴが１５にカウントアップされている場合には、今回の計測周期は、ポジション信号ＰＯＳの欠落部分を計測したことになるので、ステップＳ３４へ進み、周期ＴＰＯＳに基づいて揺り戻し（逆転）の検出を行うときの閾値として、前記通常値よりも長い欠落時閾値（例えば６０ｍｓ）を設定し、周期ＴＰＯＳが前記欠落時閾値以上であるか否かを判別する。
【００３２】
前記周期ＴＰＯＳが前記欠落時閾値以上であるときには、停止直前の揺り戻し（逆転）によって、欠落箇所であることを加味しても通常では発生しない長い周期になったものと判断し、ステップＳ３５へ進んで、揺り戻し（逆転）の発生を判定する。
前記閾値は、逆転することなく機関１０１が停止する場合における周期ＴＰＯＳの最大値よりも長い時間であって、揺り戻し（逆転）が発生して初めて超える時間に設定するが、揺り戻し（逆転）の判定に失敗しても、バックアップ気筒判別値ＣＹＬＢＵＰが実際の値よりも遅れるような値にして、バックアップ気筒判別値ＣＹＬＢＵＰが実際よりも進んだ値に設定され、吸気行程で点火が行われてしまうことを回避することが好ましい。
【００３３】
上記図８のフローチャートでは、周期ＴＰＯＳに基づいて揺り戻し（逆転）の検出を行わせるようにしたが、周期ＴＰＯＳの今回値ＴＰＯＳと前回値ＴＰＯＳｚとの比ＴＰＯＳＣＰに基づいて、揺り戻し（逆転）の検出を行わせることができ、前記周期比ＴＰＯＳＣＰに基づいて揺り戻し（逆転）の検出を行う実施形態を、図９のフローチャートに示す。
【００３４】
図９のフローチャートは、ポジション信号ＰＯＳの発生（ポジション信号ＰＯＳの立ち下がり）毎に割り込み実行され、ステップＳ４１では、ポジション信号ＰＯＳの発生周期ＴＰＯＳを計測する。
ステップＳ４２では、今回の計測周期ＴＰＯＳと前回値ＴＰＯＳｚとの比ＴＰＯＳＣＰを演算する。
【００３５】
ＴＰＯＳＣＰ＝ＴＰＯＳ／ＴＰＯＳｚ
次のステップＳ４３では、前記カウント値ＣＲＡＣＮＴが１５にカウントアップされたタイミングであるか否かを判別する。
前記カウント値ＣＲＡＣＮＴが１５でないときには、今回の計測周期は、通常のクランク角１０°だけ回転するのに要した時間であるので、ステップＳ４４へ進み、周期比ＴＰＯＳＣＰに基づいて揺り戻し（逆転）の検出の判定を行うときの閾値として通常値（例えば２．０）を設定し、周期比ＴＰＯＳＣＰが前記通常値以上であるか否かを判別する。
【００３６】
前記周期比ＴＰＯＳＣＰが前記通常値以上であるときには、停止直前の揺り戻し（逆転）によって通常では発生しない大きな周期比になったものと判断し、ステップＳ４６へ進んで、揺り戻し（逆転）の発生を判定する。
一方、前記カウント値ＣＲＡＣＮＴが１５にカウントアップされている場合には、今回の計測周期は、ポジション信号ＰＯＳの欠落部分を計測したことになるので、ステップＳ４５へ進み、周期比ＴＰＯＳＣＰに基づいて揺り戻し（逆転）の検出の判定を行うときの閾値として、前記通常値よりも大きな欠落時閾値（例えば６．０）を設定し、周期比ＴＰＯＳＣＰが前記欠落時閾値以上であるか否かを判別する。
【００３７】
前記周期比ＴＰＯＳＣＰが前記欠落時閾値以上であるときには、停止直前の揺り戻し（逆転）によって、欠落箇所であることを加味しても通常では発生しない大きな周期比になったものと判断し、ステップＳ４６へ進んで、揺り戻し（逆転）の発生を判定する。
前記閾値は、逆転することなく機関１０１が停止する場合における周期比ＴＰＯＳＣＰの最大値よりも大きな値であって、揺り戻し（逆転）が発生して初めて超える値に設定するが、揺り戻し（逆転）の判定に失敗しても、バックアップ気筒判別値ＣＹＬＢＵＰが実際の値よりも遅れるような値にして、バックアップ気筒判別値ＣＹＬＢＵＰが実際よりも進んだ値に設定され、吸気行程で点火が行われてしまうことを回避することが好ましい。
【００３８】
尚、揺り戻しの検出は、回転方向を正転方向と逆転方向とに判別することで行わせることができる。
前記ステップＳ１４で機関停止時の揺り戻しの検出がないと判定された場合には、ステップＳ１５へ進み、前記気筒判別値ＣＹＬＣＡＭが０であるか否かを判別し、０でないときには、ステップＳ１６へ進み、バックアップ気筒判別値ＣＹＬＢＵＰに対して、前記気筒判別値ＣＹＬＣＡＭの値をそのままセットする。
【００３９】
一方、ステップＳ１５で、前記気筒判別値ＣＹＬＣＡＭが０であると判別されたときには、ステップＳ１７へ進み、バックアップ気筒判別値ＣＹＬＢＵＰの前回値に基づいて今回のバックアップ気筒判別値ＣＹＬＢＵＰを推定設定する。
本実施形態の４気筒機関１０１で、点火順を＃１気筒→＃３気筒→＃４気筒→＃２気筒であるとすると、例えば前回の気筒判別結果が＃３気筒であった場合には、前記点火順のパターンに従って今回は＃４気筒となるはずだから、上記点火順に従って、今回のバックアップ気筒判別値ＣＹＬＢＵＰを推定する。
【００４０】
一方、ステップＳ１４で機関停止時の揺り戻しが検出されると、ステップＳ２３へ進む。
ステップＳ２３では、ポジション信号ＰＯＳの発生周期ＴＰＯＳから求めた機関回転速度ＦＮＲＰＭが、そのときの冷却水温度Ｔｗに応じて設定される判定値以上であると否かを判別する。
【００４１】
前記判定値は、冷却水温度Ｔｗが低いほど（フリクションが大きいときほど）小さい値に設定される（図１０参照）。
揺り戻し判定後の機関回転速度ＦＮＲＰＭが判定値以上にならなかった場合には、そのままステップＳ１８に進むことで、バックアップ気筒判別値ＣＹＬＢＵＰを更新せずに前回値に保持させるようにする。
【００４２】
これにより、揺り戻し（逆転）によってカウント値ＣＲＡＣＮＴ＝７になったときに、点火順に従って気筒判別の更新が誤って行われることが回避され、カムセンサ１２０が故障している状態のまま再始動されるときに、バックアップ気筒判別値ＣＹＬＢＵＰに基づいて正しく気筒判別を行わせることができる。
一方、揺り戻し判定後に機関回転速度ＦＮＲＰＭが判定値以上になったときには、揺り戻し中に着火したものと推定し、ステップＳ２４へ進んで、前記バックアップ気筒判別値ＣＹＬＢＵＰに対して気筒不明であることを示す０をセットした後、ステップＳ１８へ進む。
【００４３】
前記バックアップ気筒判別値ＣＹＬＢＵＰは、後述するように、カムセンサ１２０の故障時に気筒判別値ＣＹＬＣＡＭに代えて制御に用いられるものであるから、バックアップ気筒判別値ＣＹＬＢＵＰに対して０がセットされると、カムセンサ１２０が故障しているときには、気筒判別結果に基づく制御が禁止されることになる。
【００４４】
揺り戻し中に着火しなかった場合には、僅かに揺り戻した後に直ぐに機関が停止するから、揺り戻しに伴って気筒判別を行わせる基準ピストン位置になっても、バックアップ気筒判別値ＣＹＬＢＵＰを更新させないことで、機関停止時のバックアップ気筒判別値ＣＹＬＢＵＰを正しい値に設定できる。
しかし、揺り戻し中に着火すると、機関回転速度が上昇し、機関はしばらく回転を続けることになり、機関停止時のバックアップ気筒判別値ＣＹＬＢＵＰを正しい値に設定できない。
【００４５】
そこで、揺り戻し中に着火すると、バックアップ気筒判別値ＣＹＬＢＵＰに０をセットすることで、誤った気筒判別結果に基づいて燃料噴射や点火が制御されることを回避する。
ここで、揺り戻しが発生しても、着火しなかった場合には、バックアップ気筒判別値ＣＹＬＢＵＰを正しい値に設定して、バックアップ気筒判別値ＣＹＬＢＵＰに基づく気筒判別結果から燃料噴射や点火を正しく制御させることができるから、カムセンサ１２０の故障時における制御性能を確保できる。
【００４６】
また、機関回転速度に基づき着火の有無を判定させるときに用いる判定値を、冷却水温度Ｔｗに基づいて設定するから、フリクションの違いによる着火時の回転速度の違いに対応して、着火の有無を精度良く判定できる。
尚、上記では、揺り戻し後の機関回転速度に基づいて、着火の有無を判定させる構成としたが、着火によりクランクが余分に回されることから、揺り戻し判定後の回転角に基づいて着火の有無を判定させることができる。
【００４７】
図６のフローチャートは、揺り戻し判定後の回転角に基づいて着火の有無を判定させる構成とした実施形態を示す。
この図６のフローチャートにおいて、ステップＳ１４で揺り戻しの発生が判定されると、ステップＳ２３Ａへ進む。
ステップＳ２３Ａでは、揺り戻し判定後のポジション信号ＰＯＳの発生数をカウントするカウンタＣＮＴＹＲＩをカウントアップする。
【００４８】
そして、次のステップＳ２３Ｂでは、前記カウンタＣＮＴＹＲＩの値が、そのときの冷却水温度Ｔｗに応じて設定される判定値以上であるか否かを判別する。前記判定値は、冷却水温度Ｔｗが低いほど（フリクションが大きいときほど）小さい値に設定される（図１０参照）。
そして、前記カウンタＣＮＴＹＲＩの値が判定値以上になると、換言すれば、揺り戻し判定後の機関の回転角が所定以上になると、揺り戻し中に着火したものと判断し、ステップＳ２４へ進んで、前記バックアップ気筒判別値ＣＹＬＢＵＰに対して気筒不明であることを示す０をセットした後、ステップＳ１８へ進む。
【００４９】
一方、揺り戻し判定後に前記カウンタＣＮＴＹＲＩの値が判定値以上にならなかった場合には、そのままステップＳ１８に進むことで、バックアップ気筒判別値ＣＹＬＢＵＰを更新せずに前回値に保持させるようにする。
尚、上記では、揺り戻し判定後の回転速度又は回転角から着火の有無を判定させる構成としたが、揺り戻し中の着火は、機関が始動する前にクランキングを止めた場合などに発生するから、このような揺り戻し中に着火が発生する可能性が高い運転条件のときに、機関停止時のバックアップ気筒判別値ＣＹＬＢＵＰに０をセットさせる構成としても良い。
【００５０】
ステップＳ１８では、カムセンサ１２０が故障しているか否かを判別する。
カムセンサ１２０の故障とは、例えば断線によって気筒判別信号ＰＨＡＳＥが発生しなくなっている状態であり、カムセンサ１２０の信号ラインの電位によって断線を判断したり、また、気筒判別タイミング間で気筒判別信号ＰＨＡＳＥが全く発生しない状態が連続していることに基づいて断線を判断させても良い。
【００５１】
ステップＳ１８で、カムセンサ１２０が正常であると判別されたときには、ステップＳ１９へ進み、制御用気筒判別値ＣＹＬＣＳに対して、気筒判別信号ＰＨＡＳＥに基づき設定される気筒判別値ＣＹＬＣＡＭの値をセットする。
また、ステップＳ１８で、カムセンサ１２０が故障していると判別されたときには、ステップＳ２０へ進み、制御用気筒判別値ＣＹＬＣＳに対してバックアップ気筒判別値ＣＹＬＢＵＰの値をセットする。
【００５２】
前記ステップＳ９で、カウント値ＣＲＡＣＮＴ＝７ではないと判別されると、ステップＳ２１へ進み、カウント値ＣＲＡＣＮＴ＝１１（ＢＴＤＣ１１０°）であるか否かを判別する。
ＣＲＡＣＮＴ＝１１は、基準クランク角信号ＲＥＦの発生タイミングとして設定されており、ステップＳ２１でカウント値ＣＲＡＣＮＴ＝１１であると判別されると、ステップＳ２２へ進んで、基準クランク角信号ＲＥＦを発生させる。
【００５３】
前記基準クランク角信号ＲＥＦは、点火時期や燃料噴射時期の計測基準となる基準クランク角位置を示し、該基準クランク角信号ＲＥＦが発生したときの前記制御用気筒判別値ＣＹＬＣＳに基づいて、当該気筒における点火時期，燃料噴射時期の設定を行う。
制御用気筒判別値ＣＹＬＣＳが０であるときには、気筒不明の状態であるから、燃料噴射・点火は停止されることになる。
【００５４】
尚、上記実施形態では、クランク角センサ１１７のポジション信号ＰＯＳの抜け位置に基づいて基準クランク角位置を検出させる構成としたが、ポジション信号ＰＯＳとは別に、クランク軸から基準クランク角信号を取り出すクランク角センサを設けるようにしても良い。
また、本実施形態では、揺り戻し中の着火判定に用いる判定値を冷却水温度に基づいて設定させる構成としたが、機関温度を代表するパラメータであれば良く、潤滑油温度等を用いても良い。
【００５５】
また、気筒判別信号ＰＨＡＳＥは、パルス数で気筒を示す構成の他、相互に異なるパルス幅によって気筒を示す構成であっても良い。
更に、上記実施形態から把握し得る請求項以外の技術思想について、以下にその効果と共に記載する。
（イ）請求項１〜３のいずれか１つに記載の内燃機関の制御装置において、揺り戻しの発生が判定されたときに、気筒判別値の更新を停止させる一方、揺る戻し中における着火の発生が判定されたときに、気筒判別値の推定を禁止することを特徴とする内燃機関の制御装置。
【００５６】
上記構成によると、揺り戻しが発生しても、着火しなかったときには、更新タイミングになっても、前回値に基づく気筒判別値の更新を行わずに前回値に保持させ、この保持させた気筒判別値によって気筒判別を行わせる。
一方、揺り戻し中に着火した場合には、更にクランクが回されて気筒判別値を正しく推定させることができなくなるので、気筒判別値の推定を禁止する。
【００５７】
従って、揺り戻し中に着火しなかった場合には、カムセンサが故障しても通常制御を行わせることができ、また、揺り戻し中に着火した場合には、誤った気筒判別結果に基づく誤制御の発生を回避できる。
（ロ）請求項２に記載の内燃機関の制御装置において、揺り戻し判定後の機関回転速度が、機関温度が低いときほど小さい値に設定される判定値以上になったときに、揺り戻し中における着火の発生を判定することを特徴とする内燃機関の制御装置。
【００５８】
上記構成によると、揺り戻し中の機関回転速度が、機関温度が低いほど（フリクションが大きいほど）小さい値に設定される判定値以上になったときに、着火の発生を判定する。
従って、フリクションの違いによる着火時の回転上昇の違いを精度良く判定でき、揺り戻し中の着火の有無を高精度に判定できる。
（ハ）請求項３に記載の内燃機関の制御装置において、揺り戻し判定後の機関の回転角が、機関温度が低いときほど小さい値に設定される判定値以上になったときに、揺り戻し中における着火の発生を判定することを特徴とする内燃機関の制御装置。
【００５９】
上記構成によると、揺り戻し判定後の回転角が、機関温度が低いほど（フリクションが大きいほど）小さい値に設定される判定値以上になったときに、着火の発生を判定する。
従って、フリクションの違いによる着火時の回転継続状態の違いを精度良く判定でき、揺り戻し中の着火の有無を高精度に判定できる。
【図面の簡単な説明】
【図１】実施の形態における内燃機関のシステム構成図。
【図２】実施の形態におけるクランク角センサ及びカムセンサの出力特性を示すタイムチャート。
【図３】実施の形態における気筒判別制御を示すフローチャート。
【図４】実施の形態における気筒判別制御を示すフローチャート。
【図５】実施の形態における気筒判別制御を示すフローチャート。
【図６】着火判定処理の別の実施形態を示すフローチャート。
【図７】実施の形態における気筒判別信号のカウント処理を示すフローチャート。
【図８】揺り戻し検出を示すフローチャート。
【図９】揺り戻し検出の別の実施形態を示すフローチャート。
【図１０】着火判定用の判定値と水温との相関を示す線図。
【符号の説明】
１０１…内燃機関、１１３…エンジンコントロールユニット、１１７…クランク角センサ、１１９…水温センサ、１２０…カムセンサ、１２１…クランクシャフト
【図１】
2004052698.tif 000003
【図２】
2004052698.tif 000004
【図３】
2004052698.tif 000005
【図４】
2004052698.tif 000006
【図５】
2004052698.tif 000007
【図６】
2004052698.tif 000008
【図７】
2004052698.tif 000009
【図８】
2004052698.tif 000010
【図９】
2004052698.tif 000011
【図１０】
2004052698.tif 000012