(57)【特許請求の範囲】
【請求項１】
アクセル操作量に基づいて内燃機関のスロットルバルブのスロットル開度指令値を設定し、前記スロットル開度指令値に基づいてモータにより前記スロットルバルブを制御するスロットル制御手段と、
前記スロットル制御手段の異常を検出する複数の異常検出手段と、
前記複数の異常検出手段により検出された異常の度合いに応じたフェールセーフ処理を行うフェールセーフ手段とを備え、
前記複数の異常検出手段は、スロットルバルブ開度に関連する異常を検出するスロットル系異常検出手段と、アクセル操作量に関連するアクセル系異常検出手段と、前記スロットルバルブのロック状態を検出するバルブロック検出手段とからなり、
前記フェールセーフ手段は、前記スロットル系異常検出手段または前記バルブロック検出手段により異常が検出された時に前記モータを停止させる第１のフェールセーフ手段と、前記アクセル系異常検出手段により異常が検出された時にアクセル操作量に基づいて設定されるスロットル開度指令値を正常時より小さい値となるように設定する第２のフェールセーフ手段とを備えることを特徴とする内燃機関のスロットル制御装置。
【請求項２】
前記第１のフェールセーフ手段は、更に燃料を供給する気筒数を減少させる手段を備えることを特徴とする請求項１に記載の内燃機関のスロットル制御装置。
【請求項３】
前記第１のフェールセーフ手段は、運転状態に基づいたトルク推定値に基づいて燃料を供給しない気筒数を設定することを特徴とする請求項２に記載の内燃機関のスロットル制御装置。
【請求項４】
前記スロットルバルブは、前記スロットルバルブを所定の方向に付勢するバネを備え、
前記複数の異常検出手段は、更に前記バネの切損を検出するバネ切損検出手段を備え、
前記フェールセーフ手段は、前記バネ切損検出手段によりバネの切損が検出された時には通常のスロットル制御を実行することを特徴とする請求項１乃至３に記載の内燃機関のスロットル制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は内燃機関のスロットル制御装置に関するものである。
【０００２】
【従来の技術】
近年、内燃機関のスロットルバルブの開度をモータ等で電気的に制御するスロットル制御装置が多数提案されており、アクセル操作量に対するスロットル開度の特性を任意に設定可能なことから、例えば、加速要求等、車両の運転状態に的確に対応できるという利点を有している。これらのスロットル制御装置では、スロットルバルブがアクセルペダルと機械的に連結された一般的なものと相違し、制御系に異常が発生したときには、アクセル操作量に関係なくスロットルバルブが開方向に駆動される可能性があった。
【０００３】
そこで、このスロットル制御系の異常に対処可能な内燃機関のスロットル制御装置として、例えば、特開昭６２−３５０３９号公報及び特開昭６０−１５９３４６号公報に記載のものを挙げることができる。
【０００４】
前者のスロットル制御装置は、機関回転数が２０００ｒｐｍを越えた状態でスロットル制御系に異常が発生したときには、各気筒に対する燃料カットを断続して行ない、機関回転数を２０００ｒｐｍ以下に制限し、よって、機関トルクの急激な増加を防止している。
【０００５】
また、後者のスロットル制御装置は、例えば、アクセル操作されないにも拘わらずスロットルバルブが開かれているときに、制御系に異常が発生したと見做して、内燃機関の４気筒中の３気筒を燃料カットにより休止させて、機関トルクを抑制し、更に、アクセル操作が行なわれると、燃料カット中の１気筒を回復させて、車両の走行を継続可能な程度の機関トルクを確保している。つまり、以上の２種のスロットル制御装置では、スロットル制御系の異常発生時に燃料カットにより機関トルクの急激な増加を抑制している。
【０００６】
【発明が解決しようとする課題】
スロットル制御装置は、アクセル操作量に基づいて内燃機関のスロットルバルブのスロットル開度指令値を設定し、スロットル開度指令値に基づいてモータによりスロットルバルブを制御している。また、スロットル制御装置の異常個所によっては異常の度合いによってスロットル制御が可能な場合もある。しかしながら上記従来技術においてはスロットル制御系の異常しか検出しておらず、他の異常個所、たとえばアクセル系の異常は検出していない。
【０００７】
さらに、上記従来技術においては異常検出時にスロットル制御を中止し、燃料供給気筒数を減少させて機関トルクを調整している。しかしながら燃料供給気筒数の減少による機関トルクの制御は減少気筒数を切り替えた時のトルクのバラツキが大きいため可能であればスロットル制御によりフェールセーフすることが好ましい。
【０００８】
そこで本発明は、スロットル制御装置の異常に応じた最適なフェールセーフを行うことができる内燃機関のスロットル制御装置の提供を目的とするものである。
【０００９】
【課題を解決するための手段】
請求項１の発明にかかる内燃機関のスロットル制御装置は、複数の異常検出手段によりスロットル制御手段の異常を検出し、フェールセーフ手段は複数の異常検出手段により検出された異常の度合いに応じたフェールセーフ処理を行う。
【００１０】
これにより、スロットル制御装置の異常に応じた最適なフェールセーフを行うことができる。
【００１１】
更に、複数の異常検出手段として、スロットルバルブ開度に関連する異常を検出するスロットル系異常検出手段と、アクセル操作量に関連するアクセル系異常検出手段と、スロットルバルブのロック状態を検出するバルブロック検出手段とを備える構成とし、スロットル系異常検出手段またはバルブロック検出手段により異常が検出された時にはスロットル制御不可能と判断し前記モータを停止させ、アクセル系異常検出手段により異常が検出された時にアクセル操作量に基づいて設定されるスロットル開度指令値を正常時より小さい値となるように設定する。
【００１２】
これによりスロットル制御が不可能な場合にはスロットル制御を中止するが、スロットル制御が可能なアクセル系異常の場合にはスロットル制御によりフェールセーフを行うので、燃料供給気筒を減少させるようなフェールセーフに比べてトルクバラツキを生じさせることなくフェールセーフすることができる。
【００１３】
【実施の形態】
以下、本発明の実施の形態の一実施例における内燃機関のスロットル制御装置について説明する。図１は本発明の一実施例である内燃機関のスロットル制御装置を示す概略構成図、図２は本発明の一実施例である内燃機関のスロットル制御装置が適用されるスロットルバルブ周辺を示す斜視図である。
【００１４】
まず、本実施例のスロットル制御装置が適用される内燃機関の概略構成を説明する。
【００１５】
図１に示すように、内燃機関１はＶ型６気筒の４サイクル内燃機関として構成されている。内燃機関１の吸気通路２の上流側にはエアクリーナ３が設けられ、エアクリーナ３の下流側には吸入空気量を検出するエアフローメータ４が設置されている。
【００１６】
吸気通路２のエアフローメータ４より下流側にはスロットルバルブ５が設けられ、このスロットルバルブ５の開閉に応じて内燃機関１に供給される吸入空気量が調整される。吸気通路２はインテークマニホールド６を介して内燃機関１の各気筒に接続され、吸気通路２からの吸入空気がインテークマニホールド６内を経て各気筒に分配供給される。
【００１７】
インテークマニホールド６には各気筒に対応してインジェクタ７が設置され、各インジェクタ７から噴射された燃料は、吸入空気と混合して各気筒に供給される。この混合気は吸気バルブ８の開閉に伴って各気筒の燃焼室９内に導入され、点火プラグ１０の点火により燃焼し、ピストン１１を押し下げてクランクシャフト１２にトルクを付与する。燃焼後の排気ガスは排気バルブ１３の開閉に伴って排気通路１４を経て外部に排出される。また、クランクシャフト１２の近接位置にはクランク角センサ１５が設置され、クランク角で３０度毎にパルス信号を出力する。
【００１８】
次に、このように構成された内燃機関のスロットルバルブ周辺の構成を説明する。
【００１９】
図２に示すように、本実施例のスロットル制御装置のスロットルバルブ周辺の構成は、スロットルバルブ５をＤＣモータ３１で電気的に開閉するためのモータ駆動機構２１と、スロットルバルブ５をアクセル操作に連動して機械的に開閉するためのアクセル連動機構２２とに大別される。
【００２０】
まず、モータ駆動機構２１を説明すると、前記吸気通路２には、スロットル軸２３が水平に貫通して軸着され、スロットル軸２３には吸気通路２内においてスロットルバルブ５が固着されている。スロットル軸２３の回動に伴ってスロットルバルブ５は吸気通路２内を開放及び閉鎖して、吸入空気量を調整する。ここで、スロットルバルブ５に吸気通路２内を開放するときのスロットル軸２３の回動方向を開方向とし、吸気通路２を開放するときのスロットル軸２３の回動方向を閉方向とする。
【００２１】
スロットル軸２３の両端は吸気通路２より左右（図において左右方向）に突出し、その左端にはストッパレバー２４が固着されている。ストッパレバー２４にはＬ字状の折曲部２４ａが設けられ、この折曲部２４ａには２本の弁バネ２５が連結されて、スロットル軸２３を常に開方向に付勢している。また、折曲部２４ａの近接位置には全閉位置ストッパ２６が配設され、この全閉位置ストッパ２６はスロットルバルブ５が全閉位置まで回動したときにストッパレバー２４の折曲部２４ａに当接して、それ以上の回動を規制する。
【００２２】
スロットル軸２３の右部には、ベアリング２７を介して４分の１円形状の従動ギア２８が回動自在に軸着され、この従動ギア２８は、減速用の大小一対の中間ギア２９を介して駆動ギア３０と噛合している。
【００２３】
駆動ギア３０はＤＣモータ３１の出力軸３１ａに固着され、ＤＣモータ３１は駆動ギア３０及び中間ギア２９を介して従動ギア２８を閉方向に回転駆動する。従動ギア２８の一側には掛止部２８ａが突出形成され、この掛止部２８ａに連結されたリターンバネ３２は従動ギア２８を常に開方向、つまり、ＤＣモータ３１の駆動方向と反対側に付勢している。
【００２４】
従動ギア２８の右側においてスロットル軸２３には掛止レバー３３が固着され、掛止レバー３３にはＬ字状の折曲部３３ａが設けられている。この折曲部３３ａは従動ギア２８の掛止部２８ａの閉側に位置し、前記した弁バネ２５にてスロットル軸２３が開方向に回動付勢されることで掛止部２８ａに当接している。
【００２５】
したがって、ＤＣモータ３１が通電されてトルクを発生すると、リターンバネ３２及び弁バネ２５の付勢力に抗して、従動ギア２８が閉方向に回転され、掛止レバー３３及びスロットル軸２３と共にスロットルバルブ５が閉方向に回転駆動される。また、ＤＣモータ５の通電が中止されると、弁バネ２５によりスロットルバルブ５が開方向に付勢されるとともに、リターンバネ３２により従動ギア２８が開方向に付勢される。
【００２６】
なお、スロットル軸２３の右端にはスロットル開度センサ３４が設置され、この開度センサ３４はスロットルバルブ５の開度に応じた電圧Ｖｔｈを出力する。
【００２７】
一方、アクセル連動機構２２を説明すると、スロットル軸２３の左方には、同軸上に位置するようにガード軸４１が回動可能に支持されており、このガード軸４１に固着されたアクセルレバー４２は、コントロールケーブル４３を介して車両のアクセルペダル４４と連結されている。ガード軸４１の右端にはガードレバー４５が固着され、このガードレバー４５は、一側に連結されたガードバネ４６により常に閉方向に付勢されている。
【００２８】
なお、このガードバネ４６の付勢力は、前記した２本の弁バネ２５の付勢力より十分に強く設定されている。そして、運転者にてアクセルペダル４４が踏込操作されると、コントロールケーブル４３を介してアクセルレバー４２と共にガード軸４１及びガードレバー４５が、ガードバネ４６の付勢力に抗しながら開方向に回転操作される。
【００２９】
アクセルペダル４４にはアクセルポジションセンサ４７が設置され、後述するように、このアクセルポジションセンサ４７にて検出されたアクセル操作量Ａpに基づき、ＤＣモータ３１によりスロットルバルブ５が開閉駆動される。このときのスロットル開度θｔｈの特性は、大略的にはアクセル操作量Ａｐの増加に伴って増加するものであるため、アクセル操作が行なわれると、一方でＤＣモータ３１の駆動により電気的にスロットルバルブ５が開閉され、他方でコントロールケーブル４３の伝達により機械的にガードレバー４５が同一方向に回動する。
【００３０】
ガードレバー４５の一側にはＬ字状の折曲部４５ａが設けられ、この折曲部４５ａは前記ストッパレバー２４の折曲部２４ａの開側に位置している。両折曲部４５ａ，２４ａの間には所定量の遊びが設定されており、スロットル軸２３及びガード軸４１が同一方向に回転したときには、この遊びが常に確保される。
【００３１】
また、後述するように、スロットル制御系の異常やバルブロックの発生時には、ＤＣモータ３１の通電が中止されるため、弁バネ２５の付勢力によりスロットルバルブ５は開方向に回動操作される。このときストッパレバー２４の折曲部２４ａはガードレバー４５の折曲部４５ａに当接して、それ以上のスロットルバルブ５の開放を規制するため、スロットルバルブ５の開度は、ガードレバー４５の回動角度（以下、単に『ガード位置』という）以下に規制される。
【００３２】
そして、前記のようにアクセル操作によりガード軸４１が回動操作されると、ガードレバー４５と共にストッパレバー２４が同一方向に回動してスロットルバルブ５が開閉される。つまり、その後はアクセル連動機構２２によって機械的にスロットルバルブ５が開閉され、車両の走行を継続可能となる。なお、ガード軸４１の左端にはガード位置センサ４８が設置されて、ガード位置θｍｇを検出する。
【００３３】
ガードレバー４５にはガード軸４１を中心とする円弧状の長孔４５ｂが形成され、この長孔４５ｂ内には、ダイヤフラムアクチュエータ４９の操作ロッド４９ａの先端が長孔４５ｂに沿って移動可能に嵌入している。通常走行時においては、図に示すように、ダイヤフラムアクチュエータ４９の操作ロッド４９ａが伸長状態に保持され、ガードレバー４５は長孔４５ｂにより許容されながらアクセル操作に応じて回動する。
【００３４】
また、クルーズコントロール走行時においては、ダイヤフラムアクチュエータ４９の操作ロッド４９ａが収縮して、ガードレバー４５を開方向に回動操作する。したがって、アクセル操作されなくても、ガード位置が開方向に大幅に変更されるため、ＤＣモータ３１にてスロットルバルブ５を開方向に操作して、運転者の設定した走行速度を維持することが可能となる。
【００３５】
また、ガードレバー４５に一体形成された係合爪４５ｃは、サーモワックス５０の操作ロッド５０ａに係合し、このサーモワックス５０の操作ロッド５０ａは内燃機関の冷却水温に応じて伸縮する。例えば、図に示すように、暖機完了後のように冷却水温が高いときには、ガードレバー４５が閉方向に回動するように操作ロッド５０ａが伸長する。
【００３６】
また、コールドスタート時のように冷却水温が低いときには、ガードレバー４５が開方向に回動するように操作ロッド５０ａが収縮する。そして、前記したクルーズコントロール走行時と同様に、ＤＣモータ３１にてスロットルバルブ５を開方向に操作して、アイドルアップを行なうことが可能となる。
【００３７】
次に、以上のスロットルバルブ周辺の機構の動作をまとめて説明する。
【００３８】
図３は本発明の一実施例である内燃機関のスロットル制御装置が適用されるスロットルバルブ周辺の動作原理を模式的に示す説明図である。なお、この図において、上方がスロットルバルブ５の開方向、下方が閉方向である。
【００３９】
図に示すように、ガードレバー４５はガードバネ４６により閉方向に付勢されており、そのガードレバー４５によるガード位置は、アクセルペダル４４の操作量、ダイヤフラムアクチュエータ４９の操作ロッド４９ａの変位量、サーモワックス５０の操作ロッド５０ａの変位量により決定される。そして、例えば、運転者によりアクセルペダル４４が踏み込まれると、ガードバネ４６の付勢力に抗してガードレバー４５が開方向に操作され（図では上方に引き上げられる）、ガード位置が開方向に変化する。
【００４０】
また、スロットルバルブ５は弁バネ２５により開方向に付勢されており、同様に、ＤＣモータ３１はリターンバネ３２により開方向に付勢されている。ＤＣモータ３１がスロットルバルブ５を閉方向に駆動するときには、それを妨げる方向に弁バネ２５及びリターンバネ３２の付勢力が作用する。したがって、両バネ２５，３２の付勢力とＤＣモータ３１のトルクとの均衡により、スロットルバルブ５の開度が決定され、ＤＣモータ３１のトルクが増大するほどスロットルバルブ５は閉じられる。
【００４１】
また、ＤＣモータ３１の通電が中止されると、弁バネ２５によりスロットルバルブ５が開方向に付勢されるとともに、リターンバネ３２により従動ギア２８が開方向に付勢される。
【００４２】
次に、本実施例のスロットル制御装置の電気的構成を説明する。図１に示すように、スロットル制御装置の電子制御装置６１は、ＣＰＵ６２、ＲＯＭ６３、ＲＡＭ６４、インジェクタ駆動回路６５、ランプ駆動回路６８、Ａ／Ｄ変換回路６６及びＤ／Ａ変換回路６７より構成されている。ＲＯＭ６３には内燃機関１の運転を制御するための各種プログラム、例えば、スロットルバルブ５の開度制御やインジェクタ７の燃料噴射制御等のプログラムが記憶され、ＣＰＵ６２はそれらのプログラムに従って処理を実行する。また、ＲＡＭ６４はＣＰＵ６２が実行する処理データを一時的に記憶する。
【００４３】
ＣＰＵ６２には、前記エアフローメータ４にて検出された吸入空気量Ｑａが入力されるとともに、クランク角センサ１５からのパルス信号、スロットル開度センサ３４の出力電圧Ｖｔｈ（＝スロットル開度θｔｈ）、アクセルポジションセンサ４７にて検出されたアクセル操作量Ａｐ、及びガード位置センサ４８にて検出されたガード位置θｍｇがそれぞれＡ／Ｄ変換回路６６によりデジタル値に変換されて入力される。
【００４４】
そして、ＣＰＵ６２は、例えば、クランク角センサ１５のパルス信号から算出した機関回転数Ｎｅと吸入空気量Ｑａとに基づいて、今現在の内燃機関１が要求する燃料噴射量を算出し、その燃料噴射量に対応するパルス幅の制御信号をインジェクタ駆動回路６５に出力する。
【００４５】
また、ＣＰＵ６２は、後述するスロットル制御系の異常やバルブロックが発生したときには、燃料カット気筒数Ｎｆｃ（０〜６）を算出し、その燃料カット気筒数Ｎｆｃに応じて特定の気筒への前記制御信号の出力を中止する。インジェクタ駆動回路６５は、ＣＰＵ６２から入力されたパルス幅に対応する時間だけインジェクタ７を通電して、要求量の燃料を噴射させるとともに、ＣＰＵ６２から制御信号が入力されない特定の気筒については、燃料噴射を中止する。
【００４６】
一方、ＣＰＵ６２は、アクセル操作量Ａｐと機関回転数Ｎｅとに基づいてスロットル開度制御の目標値であるスロットル開度指令値θｃｍｄを決定し、更に、そのスロットル開度指令値θｃｍｄに対応するスロットル指令電圧Ｖｃｍｄを決定する。更に、ＣＰＵ６２は、内燃機関１のスロットル機能に後述する各種異常が発生したときには、ランプ駆動回路６８に制御信号を出力して、車両の運転席に設けられたウォーニングランプ６９を点灯させる。
【００４７】
スロットル制御装置のＤＣモータ駆動回路７１は、ＰＩＤ制御回路７２、ＰＷＭ（パルス幅変調）回路７３及びドライバ７４より構成されている。前記のようにＣＰＵ６２が算出したスロットル指令電圧Ｖｃｍｄは、Ｄ／Ａ変換回路６７によりアナログ値に変換されてＰＩＤ制御回路７２に入力される。ＰＩＤ制御回路７２はスロットル指令電圧Ｖｃｍｄとスロットル開度センサ３４の出力電圧Ｖｔｈとに基づき、その偏差を縮小すべく比例・積分・微分動作を実行して、ＤＣモータ３１の制御量を算出する。ＰＷＭ回路７３は算出された制御量を入力して、その制御量を対応するデューティ比信号に変換し、ドライバ７４はデューティ比信号に応じてＤＣモータ３１を駆動し、実際のスロットル開度θｔｈをスロットル開度指令値θｃｍｄに調整する。なお、前記ＰＷＭ回路７３のデューティ比信号はＣＰＵ６２にも入力される。
【００４８】
《スロットル制御処理》
次に、上記のように構成された内燃機関のスロットル制御装置のＣＰＵが実行するスロットル制御処理を説明する。
【００４９】
図４は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するスロットル制御ルーチンを示すフローチャート、図５は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するフェイル判定ルーチンを示すフローチャート、図６は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する第１のスットル制御系異常判定ルーチンを示すフローチャート、図７は本発明の一実施例である内燃機関のスロットル制御装置のスロットル開度指令値に対する実際のスロットル開度の制御遅れを示す説明図である。
【００５０】
また、図８は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する第２のスロットル制御系異常判定ルーチンを示すフローチャート、図９は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するアクセル連動機構異常判定ルーチンを示すフローチャート、図１０は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するバネ切損判定ルーチンを示すフローチャート、図１１は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するバルブロック判定ルーチンを示すフローチャートである。
【００５１】
図４のスロットル制御ルーチンは８ｍｓｅｃ毎に実行される。まず、ＣＰＵ６２はステップＳ１でフェイル判定処理を実行する。
【００５２】
〈フェイル判定ルーチン〉
フェイル判定ルーチンがコールされると、ＣＰＵ６２は図５のステップＳ１０に移行する。そして、ステップＳ１０で第１のスロットル制御異常判定処理を、ステップＳ２０で第２のスロットル制御異常判定処理を、ステップＳ３０でアクセル連動機構異常判定処理を、ステップＳ４０でバネ切損判定処理を、ステップＳ５０でバルブロック判定処理をそれぞれ実行する。
【００５３】
〈第１のスロットル制御系異常判定ルーチン〉
以下、各異常判定処理の詳細を説明すると、ステップＳ１０で第１のスロットル制御系異常判定ルーチンがコールされると、ＣＰＵ６２は図６のステップＳ１１に移行する。まず、このステップＳ１１で、この第１のスロットル制御系異常判定ルーチン或いは後述する第２のスロットル制御系異常判定ルーチンにより、スロットル制御系の異常発生を示すフェイルフラグＸＦＡＩＬ１が既にセットされているか否かを判定する。
【００５４】
フェイルフラグＸＦＡＩＬ１がセットされていないときには、ステップＳ１２でスロットル開度制御の目標値であるスロットル開度指令値θｃｍｄに基づいて、制御上の現在のスロットル開度（以下、単に『制御推定スロットル開度』という）θｃｍｄｏを次式に従って算出する。
【００５５】
θｃｍｄｏ＝Ｋ１・θｃｍｄｉ＋Ｋ２・θｃｍｄｉ−１＋Ｋ２・θｃｍｄｏｉ−１＋Ｋ３・θｃｍｄｏｉ−２
ここで、Ｋ１〜Ｋ３は予め設定された定数であり、θｃｍｄｉは今回のスロットル開度指令値、θｃｍｄｉ−１は前回のスロットル開度指令値、θｃｍｄｏｉ−１は前回の制御推定スロットル開度、θｃｍｄｏｉ−２は前々回の制御推定スロットル開度である。
【００５６】
図７に示すように、スロットル開度指令値θｃｍｄが変化したとき、実際の制御推定スロットル開度θｃｍｄｏは所定の遅れで追従し、この制御遅れは、ＤＣモータ３１及びその駆動回路７１の特性によって決定される。そして、上記した式は、このＤＣモータ３１及び駆動回路７１を２次遅れフィルタで近似させて作成したものであり、この式に従ってスロットル開度指令値θｃｍｄから算出された制御推定スロットル開度θｃｍｄｏは、スロットル制御系が現在有する誤差を含むことになる。
【００５７】
次いで、ＣＰＵ６２はステップＳ１３で制御推定スロットル開度θｃｍｄｏと、スロットル開度センサ３４の出力電圧Ｖｔｈから換算した実際のスロットル開度θｔｈとの差の絶対値が、予め設定された所定値θａ未満であるか否かを判定する。ステップＳ１３で肯定判断したとき（｜θｃｍｄｏ−θｔｈ｜＜θａ）には、ステップＳ１４で異常状態の継続時間をカウントするカウンタＣａをリセットする。更に、ステップＳ１５でこのときのスロットル開度θｔｈをフェイル時スロットル開度θｓａｖｅとしてＲＡＭ６４に格納して、ステップＳ１６に移行する。
【００５８】
また、ステップＳ１３で否定判断したとき（｜θｃｍｄｏ−θｔｈ｜≧θａ）には、ステップＳ１７でカウンタＣａを「＋１」インクリメントして、ステップＳ１６に移行する。そして、ステップＳ１６でカウンタＣａが予め設定された所定値ＫＣａ未満であるか否かを判定し、肯定判断したとき（Ｃａ＜ＫＣａ）には、このルーチンを終了し、また、否定判断したとき（Ｃａ≧ＫＣａ）には、ステップＳ１８でフェイルフラグＸＦＡＩＬ１をセットして、このルーチンを終了する。
【００５９】
ここで、制御上のスロットル開度である制御推定スロットル開度θｃｍｄｏは、本来は実際のスロットル開度θｔｈと一致するはずである。したがって、前記のように制御推定スロットル開度θｃｍｄｏと実際のスロットル開度θｔｈとの間に、ある程度の差が継続して発生した場合には、何らかの原因でスロットル制御系に異常が発生して、ＤＣモータ３１によるスロットル開度制御が正常に実行されていないと見做すことができる。よって、このときにはＣＰＵ６２によりスロットル制御系のフェイル判定が下されて、フェイルフラグＸＦＡＩＬ１がセットされるのである。
【００６０】
そして、このフェイルフラグＸＦＡＩＬ１のセット後に、第１のスロットル制御系異常判定ルーチンが再度実行されたときには、ステップＳ１１で肯定判断されて直ちにこのルーチンを終了する。したがって、ステップＳ１５の処理は実行されず、ＲＡＭ６４にはフェイル判定が下された時点のスロットル開度θｔｈが、フェイル時スロットル開度θｓａｖｅとして格納され続ける。
【００６１】
〈第２のスロットル制御系異常判定ルーチン〉
また、フェイル判定ルーチンのステップＳ２０で第２のスロットル制御系異常判定ルーチンがコールされると、ＣＰＵ６２は図８のステップＳ２１に移行する。第１のスロットル制御系異常判定ルーチンのステップＳ１１と同様に、まず、このステップＳ２１でフェイルフラグＸＦＡＩＬ１が既にセットされているか否かを判定し、フェイルフラグＸＦＡＩＬ１がセットされていないときには、ステップＳ２２に移行する。
【００６２】
次いで、ステップＳ２２でガード位置センサ４８にて検出されたガード位置θｍｇとスロットル開度センサ３４にて検出されたスロットル開度θｔｈとの差が、予め設定された所定値θｂ以上であるか否かを判定する。ステップＳ２２で肯定判断したとき（｜θｍｇ−θｔｈ｜≧θｂ）には、ステップＳ２３で異常状態の継続時間をカウントするカウンタＣｂをリセットし、ステップＳ２４でこのときのスロットル開度θｔｈをフェイル時スロットル開度θｓａｖｅとしてＲＡＭ６４に格納して、ステップＳ２５に移行する。
【００６３】
また、ステップＳ２２で否定判断したとき（｜θｍｇ−θｔｈ｜＜θｂ）には、ステップＳ２６でカウンタＣｂを「＋１」インクリメントして、ステップＳ２５に移行する。そして、ステップＳ２５でカウンタＣｂが予め設定された所定値ＫＣｂ未満であるか否かを判定し、肯定判断したとき（Ｃｂ＜ＫＣｂ）には、このルーチンを終了し、また、否定判断したとき（Ｃｂ≧ＫＣｂ）には、ステップＳ２７でフェイルフラグＸＦＡＩＬ１をセットして、このルーチンを終了する。
【００６４】
ここで、実際のスロットル開度θｔｈは、ガード位置θｍｇに対し常に所定以上の差をもって閉側に位置しているはずである。したがって、前記のようにガード位置θｍｇとスロットル開度θｔｈとの差が狭まった状態が継続して発生した場合には、前記した第１のスロットル制御系異常判定ルーチンと同様に、ＤＣモータ３１によるスロットル開度制御が正常に実行されていないとして、フェイルフラグＸＦＡＩＬ１がセットされるのである。
【００６５】
そして、このフェイルフラグＸＦＡＩＬ１のセット後は、ステップＳ２１で肯定判断されてステップＳ２４の処理が実行されないことから、ＲＡＭ６４にはフェイル判定が下された時点のスロットル開度θｔｈが、フェイル時スロットル開度θｓａｖｅとして格納され続ける。
【００６６】
〈アクセル連動機構異常判定ルーチン〉
一方、フェイル判定ルーチンのステップＳ３０でアクセル連動機構異常判定ルーチンがコールされると、ＣＰＵ６２は図９のステップＳ３１に移行する。まず、このステップＳ３１で内燃機関１が通常の運転中であるか否かを判定し、クルーズコントロールやコールドスタートを実行していなければ、通常の運転中であるとしてステップＳ３２に移行する。
【００６７】
次いで、ステップＳ３２でガード位置センサ４８にて検出されたガード位置θｍｇと、アクセルポジションセンサ４７にて検出されたアクセル操作量Ａｐとの差の絶対値が、予め設定された所定値θｃ未満であるか否かを判定する。ステップＳ３２で肯定判断したとき（｜θｍｇ−Ａｐ｜＜θｃ）には、ステップＳ３３で異常状態の継続時間をカウントするカウンタＣｃをリセットして、ステップＳ３４に移行する。
【００６８】
また、ステップＳ３２で否定判断したとき（｜θｍg−Ａｐ｜≧θｃ）には、ステップＳ３５でカウンタＣｃ を「＋１」インクリメントして、ステップＳ３４に移行する。そして、ステップＳ３４でカウンタＣｃが予め設定された所定値ＫＣｃ 未満であるか否かを判定し、肯定判断したとき（Ｃｃ＜ＫＣｃ）には、このルーチンを終了し、また、否定判断したとき（Ｃｃ≧ＫＣｃ）には、ステップＳ３６でアクセル連動機構２２の異常発生を示すフェイルフラグＸＦＡＩＬ２をセットして、このルーチンを終了する。
【００６９】
ここで、クルーズコントロールやコールドスタートが実行されていないときのガード位置θｍｇは、ダイヤフラムアクチュエータ４９やサーモワックス５０により開方向に変更されていないため、常にアクセル操作量Ａｐと対応するはずである。したがって、前記のようにガード位置θｍｇとアクセル操作量Ａｐとの間に、ある程度の差が継続して発生した場合には、何らかの原因でアクセル連動機構２２に過大な遊びが発生したと見做すことができる。
【００７０】
そして、このような場合、仮にスロットル制御系に異常が発生して、スロットルバルブ５をアクセル連動機構２２によって開閉するときでも、アクセル操作量Ａｐに応じた正確なスロットル開閉操作が期待できない。よって、このときにはＣＰＵ６２によりアクセル連動機構２２のフェイル判定が下されて、フェイルフラグＸＦＡＩＬ２がセットされるのである。
【００７１】
なお、前記ステップＳ３１で内燃機関１が通常の運転中でないと判定したときには、既にダイヤフラムアクチュエータ４９やサーモワックス５０によりガード位置θｍｇが開側に変更されているため、異常の有無を判定不能であるとして、直ちにこのルーチンを終了する。
【００７２】
〈バネ切損判定ルーチン〉
また、フェイル判定ルーチンのステップＳ４０でバネ切損判定ルーチンがコールされると、ＣＰＵ６２は図１０のステップＳ４１に移行する。まず、このステップＳ４１でアクセルポジションセンサ４７にて検出されたアクセル操作量Ａｐに基づいて、内燃機関１がアイドル運転中であるか否かを判定する。アイドル運転中のときには、ステップＳ４２でＰＷＭ回路７３からデューティ比信号を入力して、そのデューティ比Ｄｕｔｙの所定時間当たりの平均値ＤｕｔｙＡＶが、予め設定された所定値Ｄｕｔｙｄ以上であるか否かを判定する。ステップＳ４２で肯定判断したとき（ＤｕｔｙＡｖ≧Ｄｕｔｙｄ）には、ステップＳ４３で異常状態の継続時間をカウントするカウンタＣｄをリセットして、ステップＳ４４に移行する。
【００７３】
また、ステップＳ４２で否定判断したとき（Ｄｕｔｙａｖ＜Ｄｕｔｙｄ）には、ステップＳ４５でカウンタＣｄを「＋１」インクリメントして、ステップＳ４４に移行する。そして、ステップＳ４４でカウンタＣｄが予め設定された所定値ＫＣｄ 未満であるか否かを判定し、肯定判断したとき（Ｃｄ＜ＫＣｄ）には、このルーチンを終了し、また、否定判断したとき（Ｃｄ≧ＫＣｄ）には、ステップＳ４６でバネ切損の発生を示すフェイルフラグＸＦＡＩＬ３をセットして、このルーチンを終了する。
【００７４】
ここで、内燃機関１のアイドル運転中において、ＩＳＣ制御によりスロットルバルブ５は全閉付近のほぼ一定開度に保持されるため、弁バネ２５及びリターンバネ３２の付勢力の総和もほぼ一定の値となる。したがって、その付勢力に抗するべくＤＣモータ３１に与えられるデューティ比Ｄｕｔｙの平均値ＤｕｔｙＡＶも、ほぼ一定の値に収束しているはずであり、平均値ＤｕｔｙＡＶが通常より下回った状態が継続して発生した場合には、いずれかのバネ２５，３２が切損して、スロットル開度制御が円滑に行なわれない可能性があると見做すことができる。よって、このときにはＣＰＵ６２によりバネ切損のフェイル判定が下されて、フェイルフラグＸＦＡＩＬ３がセットされるのである。
【００７５】
なお、平均値ＤｕｔｙＡＶに基づいてバネ２５，３２の切損を判定しているのは、このときのデューティ比Ｄｕｔｙがアイドル回転数を維持すべく変動しているため、デューティ比Ｄｕｔｙ自体からでは的確な判定が望めないためである。また、前記ステップＳ４１で内燃機関１がアイドル運転中でないと判定したときには、アイドル時に比較してスロットルバルブ５が開放されているため、弁バネ２５及びリターンバネ３２の付勢力が所期の値に達しておらず、切損の有無を判定不能であるとして、直ちにこのルーチンを終了する。
【００７６】
〈バルブロック判定ルーチン〉
更に、フェイル判定ルーチンのステップＳ５０でバルブロック判定ルーチンがコールされると、ＣＰＵ６２は図１１のステップＳ５１に移行する。まず、このステップＳ５１でＰＷＭ回路７３からデューティ比信号を入力して、そのデューティ比Ｄｕｔｙが、予め設定された所定値Ｄｕｔｙｅ未満であるか否かを判定する。ステップＳ５１で肯定判断したとき（Ｄｕｔｙ＜Ｄｕｔｙｅ）には、ステップＳ５２で異常状態の継続時間をカウントするカウンタＣｅをリセットして、ステップＳ５３に移行する。
【００７７】
また、ステップＳ５１で否定判断したとき（Ｄｕｔｙ≧Ｄｕｔｙｅ）には、ステップＳ５４でカウンタＣｅを「＋１」インクリメントして、ステップＳ５３に移行する。そして、ステップＳ５３でカウンタＣｅが予め設定された所定値ＫＣｅ未満であるか否かを判定し、肯定判断したとき（Ｃｅ＜ＫＣｅ）には、このルーチンを終了し、また、否定判断したとき（Ｃｅ≧ＫＣｅ）には、ステップＳ５５でバルブロックの発生を示すフェイルフラグＸＦＡＩＬ４をセットして、このルーチンを終了する。
【００７８】
ここで、吸気通路２中に紛れ込んだ異物等によりバルブロックが発生したときには、ＤＣモータ３１にてスロットルバルブ５を開閉駆動しても、実際のスロットル開度θｔｈはスロットル開度指令値θｃｍｄに到達しない。したがって、このときのデューティ比ＤｕｔｙはＰＩＤ制御回路７２の制御によって急激に増大され、その事態が通常の制御状態では継続し得ない時間だけ継続すると、スロットルバルブ５が開閉不能に陥ったと見做すことができる。よって、このときにはＣＰＵ６２によりバルブロックのフェイル判定が下されて、フェイルフラグＸＦＡＩＬ４がセットされるのである。
【００７９】
図１２は本発明の一実施例である内燃機関のスロットル制御装置における通常制御時のスロットル開度指令値を決定するためのマップを示す説明図、図１３は本発明の一実施例である内燃機関のスロットル制御装置におけるスロットル指令電圧を決定するためのマップを示す説明図、図１４は本発明の一実施例である内燃機関のスロットル制御装置におけるリンプホーム制御時のスロットル開度指令値を決定するためのマップを示す説明図、図１５は本発明の一実施例である内燃機関のスロットル制御装置におけるスロットル制御系の異常発生時のタイムチャートである。
【００８０】
以上のようにして、各フェイル判定処理が完了すると、ＣＰＵ６２は図４のスロットル制御ルーチンに戻り、ステップＳ２で全てのフェイルフラグＸＦＡＩＬ１〜ＸＦＡＩＬ４がクリアされているか否かを判定する。ステップＳ２で全てのフェイルフラグＸＦＡＩＬ１〜ＸＦＡＩＬ４がクリアされているとき（ＸＦＡＩＬ１〜４＝０）には、内燃機関１の全てのスロットル機能、例えば、スロットル制御系やアクセル連動機構２２等が正常であるとして、ステップＳ３以降の処理で通常のスロットル制御を実行する。
【００８１】
即ち、ＣＰＵ６２はステップＳ３で図１２に示す予めＲＯＭ６３に格納されたマップに従って、アクセルポジションセンサ４７にて検出されたアクセル操作量Ａｐとクランク角センサ１５からのパルス信号に基づいて算出した機関回転数Ｎｅとから、通常のスロットル制御時におけるスロットル開度指令値θｃｍｄを決定する。
【００８２】
次いで、ＣＰＵ６２はステップＳ４で図１３に示す予めＲＯＭ６３に格納されたマップに従って、スロットル開度指令値θｃｍｄからスロットル指令電圧Ｖｃｍｄを決定する。更に、そのスロットル指令電圧ＶｃｍｄをステップＳ５でＤ／Ａ変換回路６７を介してＤＣモータ駆動回路７１のＰＩＤ制御回路７２に出力して、このスロットル制御ルーチンを終了する。
【００８３】
そして、ＣＰＵ６２から出力されたスロットル指令電圧Ｖｃｍｄは、ＰＩＤ制御回路７２でスロットル開度センサ３４の出力電圧Ｖｔｈと比較され、その偏差を縮小すべく比例・積分・微分動作が実行されて、スロットルバルブ５の制御量が算出される。更に、その制御量はＰＷＭ回路７３でデューティ比信号に変換され、デューティ比信号に応じてドライバ７４によりＤＣモータ３１が駆動される。そして、以上のＣＰＵ６２によるステップＳ１乃至ステップＳ５の処理と、ＤＣモータ駆動回路７１によるＤＣモータ３１の駆動制御が繰り返して実行されて、実際のスロットル開度θｔｈがスロットル開度指令値θｃｄに調整される。
【００８４】
一方、前記ステップＳ２でいずれかのフェイルフラグＸＦＡＩＬ１〜ＸＦＡＩＬ４がセットされているとき（ＸＦＡＩＬ１〜４≠０）には、ステップＳ６でランプ駆動回路６８に制御信号を出力してウォーニングランプ６９を点灯させる。次いで、ステップＳ７でセットされているフェイルフラグＸＦＡＩＬ１〜ＸＦＡＩＬ４の種別を判別し、フェイルフラグＸＦＡＩＬ３がセットされているときには、弁バネ２５やリターンバネ３２が切損したと見做してステップＳ３に移行し、前記した全てのスロットル機能が正常である場合と同様に、通常のスロットル制御を実行する。
【００８５】
即ち、弁バネ２５及びリターンバネ３２のいずれかが切損しても、直ちに車両の走行に支障は生じないため、ウォーニングランプ６９の点灯により運転者に点検・修理を促すに止めているのである。また、ステップＳ７でフェイルフラグＸＦＡＩＬ２がセットされていると判定したときには、アクセル連動機構２２に過大な遊びが発生していると見做してステップＳ８に移行し、所謂リンプホーム制御を実行する。
【００８６】
即ち、ＣＰＵ６２はステップＳ８で図１４に示す予めＲＯＭ６３に格納されたマップに従って、アクセルポジションセンサ４７にて検出されたアクセル操作量Ａｐからリンプホーム制御時におけるスロットル開度指令値θｃｍｄを決定する。図１２との比較から明らかなように、同一アクセル操作量Ａｐにおいて、このリンプホーム制御ではより小さな値のスロットル開度指令値θｃｍｄが設定される。そして、ステップＳ４でスロットル開度指令値θｃｍｄからスロットル指令電圧Ｖｃｍｄを決定し、ステップＳ５でそのスロットル指令電圧ＶｃｍｄをＰＩＤ制御回路７２に出力する。
【００８７】
つまり、通常のスロットル制御からリンプホーム制御に切り換えられた時点で、スロットル開度指令値θｃｍｄは大きく低下して、スロットルバルブ５が閉方向に制御される。したがって、アクセル操作に関係なく機関トルクが低下し、運転者はウォーニングランプ６９を視認するまでもなく、このトルク低下に基づいて速やかに異常を察知可能となる。また、リンプホーム制御への切換後にも、スロットル開度制御が行なわれるため、車両の走行を継続させることができ、かつ、スロットル開度が抑制されるため、運転者の慎重な運転が促される。
【００８８】
また、ステップＳ７でフェイルフラグＸＦＡＩＬ１またはフェイルフラグＸＦＡＩＬ４がセットされていると判定したときには、スロットル制御系に異常が発生しているか、或いはバルブロックが発生していると見做してステップＳ９に移行する。そして、ステップＳ９でＤＣモータ３１の通電を中止して、このルーチンを終了する。
【００８９】
ここで、バルブロックの発生時には、スロットルバルブ５の開閉が阻止されているため、ＤＣモータ３１が通電中止されても、スロットル開度θｔｈは変化しない。これに対して、スロットル制御系の異常発生時には、スロットルバルブ５が開閉自在であるため、ＤＣモータ３１の通電中止により、弁バネ２５及びリターンバネ３２の付勢力でスロットルバルブ５が開方向に回動操作され、図１５に示すように、スロットル開度θｔｈはガード位置θｍｇまで変化する。そして、その後はアクセル操作に応じてアクセル連動機構２２により機械的にスロットルバルブ５が開閉される。
【００９０】
また、以上のＤＣモータ３１の通電中止に加えて、スロットル制御系の異常及びバルブロックが発生したときには、内燃機関１の特定の気筒に対して燃料噴射を中止する所謂燃料カットが行なわれ、その気筒が休止状態に保持される。そこで、次にＣＰＵ６２が実行する燃料噴射制御処理を説明する。
【００９１】
《燃料噴射制御処理》
図１６は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する燃料噴射制御ルーチンを示すフローチャート、図１７は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する燃料カットフラグ設定ルーチンを示すフローチャートである。
【００９２】
図１６の燃料噴射制御ルーチンは、内燃機関１のクランク角で７２０度毎に実行される。まず、ＣＰＵ６２はステップＳ１０１でエアフローメータ４にて検出された吸入空気量Ｑａとクランク角センサ１５にて検出された機関回転数Ｎｅとから、今現在の内燃機関１が要求する燃料噴射量を算出し、その燃料噴射量に対応するパルス幅を設定する。次いで、ステップＳ１０２で燃料カットフラグ設定処理を実行する。
【００９３】
〈燃料カットフラグ設定ルーチン〉
燃料カットフラグ設定ルーチンがコールされると、ＣＰＵ６２は図１７のステップＳ１１１に移行する。今、仮にスロットル制御系の異常やバルブロックが発生せず、フェイルフラグＸＦＡＩＬ１及びフェイルフラグＸＦＡＩＬ４が共にクリアされているものとして説明する。
【００９４】
ＣＰＵ６２はステップＳ１１１で今現在までクリアされていたフェイルフラグＸＦＡＩＬ１またはフェイルフラグＸＦＡＩＬ４がセットされたか否かを判定する。いずれのフェイルフラグＸＦＡＩＬ１，ＸＦＡＩＬ４もセットされていないため、ステップＳ１１２に移行して、いずれかのフェイルフラグＸＦＡＩＬ１，ＸＦＡＩＬ４が現在セットされているか否かを判定する。ステップＳ１１１の場合と同じく、いずれのフェイルフラグＸＦＡＩＬ１，ＸＦＡＩＬ４もセットされていないため、このルーチンを終了する。つまり、スロットル制御系の異常やバルブロックが発生していない限り、このルーチンにおける対処は何らなされない。
【００９５】
また、スロットル制御系の異常やバルブロックの発生によりフェイル判定が下されて、いずれかのフェイルフラグＸＦＡＩＬ１，ＸＦＡＩＬ４がセットされると、ステップＳ１１１からステップＳ１１３に移行して、燃料カット処理の実行を示す燃料カットフラグＸＦＣをセットする。次いで、ステップＳ１１２を経てステップＳ１１４に移行して、アクセル操作量Ａｐが０か否かを判定し、アクセル操作量Ａｐが０でない（Ａｐ≠０）、つまりアクセル操作が行なわれているときには、このルーチンを終了する。その後は、アクセル操作されている限りステップＳ１１１、ステップＳ１１２、ステップＳ１１４の処理を繰り返して実行し、ステップＳ１１４でアクセル操作量Ａｐが０になる（Ａｐ＝０）と、ステップＳ１１５で燃料カットフラグＸＦＣをクリアする。
【００９６】
したがって、図１５に示すように、燃料カットフラグＸＦＣは、フェイル判定が下されてからアクセル操作が中止されるまでの間、セット状態に保持されることになる。以上のようにして、燃料カットフラグ設定処理が完了すると、ＣＰＵ６２は図１６の燃料噴射制御ルーチンに戻り、ステップＳ１０３で燃料カットフラグＸＦＣがクリアされているか否かを判定する。
【００９７】
燃料カットフラグＸＦＣがクリアされているとき（ＸＦＣ＝０）、つまり、スロットル制御系の異常やバルブロックが発生していないときには、ステップＳ１０４に移行して燃料カット気筒数Ｎｆｃを０に設定（Ｎｆｃ＝０）し、ステップＳ１０５で、全気筒について前記ステップＳ１０１で設定したパルス幅の制御信号をインジェクタ駆動回路６５に出力する。したがって、インジェクタ駆動回路６５より全てのインジェクタ７が通電されて燃料を噴射し、内燃機関１の全気筒が作動する。即ち、この場合には、通常の燃料噴射制御が実行される。
【００９８】
また、前記ステップＳ１０３で燃料カットフラグＸＦＣがセットされているとき（ＸＦＣ＝１）、つまり、スロットル制御系の異常またはバルブロックが発生したときには、ステップＳ１０６に移行してフェイルフラグＸＦＡＩＬ４がセットされているか否かを判定する。フェイルフラグＸＦＡＩＬ４がセットされているときには、異常がバルブロックにありと見做して、ステップＳ１０７で燃料カット気筒数Ｎｆｃを６に設定（Ｎｆｃ＝６）し、ステップＳ１０５で全気筒についてインジェクタ駆動回路６５への制御信号の出力を中止する。
【００９９】
したがって、全てのインジェクタ７の燃料噴射が中止されて、内燃機関１の全気筒が休止する。よって、このバルブロックの発生時には、ロックしたスロットルバルブ５の開度に関係なく、燃料噴射の中止によって機関トルクが確実に０に抑制されて、車両の走行が中止される。また、前記ステップＳ１０６でフェイルフラグＸＦＡＩＬ１がセットされているときには、異常がスロットル制御系にありと見做して、ステップＳ１０８で燃料カット気筒数Ｎｆｃの設定処理を実行する。
【０１００】
図１８は本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する燃料カット気筒数設定ルーチンを示すフローチャート、図１９は本発明の一実施例である内燃機関のスロットル制御装置における推定トルクを決定するためのマップを示す説明図、図２０は本発明の一実施例である内燃機関のスロットル制御装置における燃料カット気筒数を決定するためのマップを示す説明図である。
【０１０１】
燃料カット気筒数Ｎｆｃの設定ルーチンがコールされると、ＣＰＵ６２は図１８のステップＳ１２１に移行する。まず、このステップＳ１２１で図１９に示す予めＲＯＭ６３に格納されたマップに従って、ＲＡＭ６４に格納されているフェイル時スロットル開度θｓａｖｅとクランク角センサ１５にて検出された機関回転数Ｎｅとから、フェイル判定時における内燃機関１の機関トルクであるフェイル時推定トルクＴｆａを決定する。なお、図１９のマップの特性は、実際の内燃機関１のトルク特性から求めたものであり、例えば、機関回転数Ｎｅが低い場合には、アクセル操作量Ａｐに対する実際の機関トルクの上限が低いことから、フェイル時推定トルクＴｆａも小さな値に抑制されている。
【０１０２】
次いで、ステップＳ１２２で前記した図１９のマップに従って、アクセルポジションセンサ４７にて検出されたアクセル操作量Ａｐとクランク角センサ１５にて検出された機関回転数Ｎｅとから、フェイル判定後の現在の機関トルクであるフェイル後推定トルクＴａｐを決定する。更に、ステップＳ１２３でフェイル後推定トルクＴａｐからフェイル時推定トルクＴｆａを減算して、トルク増加分ΔＴ（ΔＴ＝Ｔａｐ−Ｔｆａ）を算出する。このトルク増加分ΔＴは、スロットル開度θｔｈがＤＣモータ３１の通電中止によってガード位置θｍｇまで開方向に変化したときの機関トルクの増加分を示す。
【０１０３】
ここで、図１２のマップに示すように、スロットル開度指令値θｃｍｄは、全閉及び全開付近の領域でアクセル操作量Ａｐに近似し、中間領域ではアクセル操作量Ａｐに比較してより低い値に設定され、かつ、特に中間領域では、機関回転数Ｎｅが低いほど低い値に設定される。したがって、フェイル判定時にスロットル開度θｔｈがガード位置θｍｇまで変化するときの変化量は、その時点のアクセル操作量Ａｐや機関回転数Ｎｅに応じて相違し、それに伴いトルク増加分ΔＴも変化する。そこで、ステップＳ１２１乃至ステップＳ１２３の処理により、フェイル判定の前後の機関トルク（フェイル時推定トルクＴｆａ、フェイル後推定トルクＴａｐ）をそれぞれ推定して、そのトルク増加分ΔＴを求めているのである。
【０１０４】
そして、ＣＰＵ６２はステップＳ１２４で図２０に示す予めＲＯＭ６３に格納されたマップに従って、トルク増加分ΔＴから燃料カット気筒数Ｎｆｃを決定して、このルーチンを終了する。図から明らかなように、このときの燃料カット気筒数Ｎｆｃは、トルク増加分ΔＴの増加に伴って大きな値に設定される。
【０１０５】
その後、ＣＰＵ６２は図１６の燃料噴射制御ルーチンに戻り、ステップＳ１０５で燃料カット気筒数Ｎｆｃに応じた気筒について制御信号をインジェクタ駆動回路６５に出力する。その結果、インジェクタ駆動回路６５により、燃料カット気筒数Ｎｆｃに対応する数のインジェクタ７が通電されて燃料を噴射し、それらの気筒が作動する。
【０１０６】
したがって、スロットル制御系の異常によりフェイル判定が下されて、図１５に示すように、スロットル開度θｔｈがガード位置θｍｇまで開方向に変化したときには、そのトルク増加分ΔＴに基づいて燃料カット気筒数Ｎｆｃが設定される。そして、この燃料カット気筒数Ｎｆｃに対応して特定の気筒が燃料カットされて休止し、前記トルク増加分ΔＴにほぼ等しい量だけ機関トルクが低減される。即ち、フェイル判定の前後での機関トルクの変動が防止され、フェイル後の車両加速度Ｇは、フェイル判定前と同様のごく小さな値に維持される。よって、運転者の意図に反する機関トルクの増加が確実に抑制され、アクセル操作量Ａｐを調整し直すことなく運転を継続可能となる。
【０１０７】
なお、仮に、燃料カットされずに全気筒が作動し続けた場合には、スロットル開度θｔｈと共に機関トルクが増加するため、車両加速度Ｇは運転者の意図に反して２点鎖線で示すように増大する。よって、このときの運転者は、アクセルペダル４４の踏込を抑制する必要が生じる。そして、以上のように、スロットル開度θｔｈがガード位置θｍｇまで変化した後には、アクセル連動機構２２を介しアクセル操作に機械的に連動してスロットルバルブ５が開閉駆動される。したがって、スロットル制御系の異常の影響を全く受けることなく、確実なスロットル操作を継続して行なうことができる。
【０１０８】
また、フェイル判定後に、車両を停止させるべく運転者のアクセル操作量Ａpが次第に低下したときには、図１８のステップＳ１２２で決定されるフェイル後推定トルクＴａｐが低下し、ステップＳ１２３のトルク増加分ΔＴと共に、ステップＳ１２４の燃料カット気筒数Ｎｆｃが次第に減少する。そして、図１５に示すように、アクセル操作量Ａｐがフェイル時スロットル開度θｓａｖｅまで減少した時点で、燃料カット気筒数Ｎｆｃは０に復帰し、アクセル操作量Ａｐが更に低下して０になると、図１７のステップＳ１１５で燃料カットフラグＸＦＣがクリアされる。したがって、アクセル操作により車両の走行が再開されたときには、図１６のステップＳ１０４で燃料カット気筒数Ｎｆｃが０に保持され、全気筒に対して燃料噴射を行なう通常の燃料噴射制御が実行される。
【０１０９】
つまり、本実施例のスロットル制御装置は、フェイル判定によりスロットル開度θｔｈがガード位置θｍｇまで開かれたときの機関トルクの増加を抑制することを目的としており、その後の走行では、アクセル操作量Ａｐに対してスロットルバルブがやや開き気味になるものの、走行には支障ないとして対処していないのである。しかも、後述するように、燃料カット気筒数Ｎｆｃに応じて燃料カットする気筒は、内燃機関１の回転バランスを考慮した上で決定されているものの、全気筒に対して燃料噴射を行なう通常時に比較すれば、内燃機関１の振動が増大するのは避けられない。したがって、前記のようにアクセル操作量Ａｐが０になった時点で燃料カット気筒数Ｎｆｃを０に保持することにより、フェイル判定後において、気筒の休止による振動の増大が防止される。
【０１１０】
なお、参考までに、前記ステップＳ１２４で実行される燃料カット気筒数Ｎｆｃに応じた燃料カット気筒の選択例を説明する。図２１は本発明の一実施例である内燃機関のスロットル制御装置における燃料カット気筒数から燃料噴射を中止する気筒を決定するためのマップを示す説明図である。
【０１１１】
前記のように、本実施例の内燃機関１はＶ型６気筒であり、その点火順序はシリンダ番号順、つまり＃１〜＃６の順に設定されている。但し、図２１における燃料カット気筒は、シリンダ番号ではなく、フェイル判定後に最初に燃料噴射される気筒を「１」として定めている。したがって、例えば、＃４の気筒への燃料噴射が終了した時点でフェイル判定が下され、燃料カット気筒数Ｎｆｃとして３が設定されたときには、燃料カット気筒は「１」、「３」、「５」が設定されるが、次に燃料噴射される気筒が＃５であることから、実際には＃５、＃１、＃３の気筒が燃料カットされる。なお、当然のことであるが、図に示す燃料カット気筒は、内燃機関１の回転バランスを考慮した上で決定されている。
【０１１２】
なお、本実施例ではアクセル操作量Ａｐ、スロットル開度θｔｈ及びエンジン回転数Ｎｅからトルク増加分ΔＴを推定しているが、これらパラメータの代わりに吸入空気量Ｑａ又は吸気管圧力Ｐｍで推定してもよい。つまり、フェイル時推定トルクＴｆａ＝フェイル発生時の吸入空気量Ｑａ又は吸気管圧力Ｐｍ、フェイル後推定トルクＴａｐ＝フェイル判定後の吸入空気量Ｑａ又は吸気管圧力Ｐｍとしてトルク増加分ΔＴを推定してもよい。
【０１１３】
また、上記実施例では、第１のスロットル制御系異常判定ルーチンで、制御推定スロットル開度θｃｍｄｏと実際のスロットル開度θｔｈとの間にある程度の差が継続して発生した場合、及び第２のスロットル制御系異常判定ルーチンで、ガード位置θｍｇとスロットル開度θｔｈとの差が狭まった状態が継続して発生した場合に、スロットル制御系のフェイル判定を行なった。しかしながら、本発明におけるスロットル制御系の異常とは、これに限定されるものでなく、ＤＣモータ３１によるスロットル制御が実行不能となり、アクセル連動機構２２による機械的なスロットル操作を必要とする全ての事態を含む。したがって、例えば、モータ制御機構２２に機械的な異常が発生したときに、スロットル制御系のフェイル判定を行なってもよい。
【０１１４】
更に、上記実施例では、車両の走行を制御するための通常のスロットル制御をＤＣモータ３１にて行なったが、本発明を実施する場合には、これに限定されるものではなく、スロットルバルブ５を電気的に開閉制御するものであれば、そのスロットル制御の内容については限定されない。
【０１１５】
したがって、例えば、実開平２−３７２４５号公報に記載のスロットル制御装置のように、本発明を、トラクションコントロール（以下、単に『ＴＲＣ』という）のためのスロットル制御に適用することもできる。
【０１１６】
公報の例について説明すると、このスロットル制御装置では、一対のスロットルバルブを備えており、一方の主スロットルバルブは、アクセル操作に機械的に連動して開閉駆動されて、車両の走行を制御する役割を果たす。また、他方の補助スロットルバルブは、車両の駆動輪にスリップが発生したときにＴＲＣで閉側に制御され、機関トルクを低減してスリップを抑制する役割を果たす。
【０１１７】
ここで、公報に記載されているように、ＴＲＣ中にスロットル制御系に異常が発生すると、直ちにＴＲＣを中止すべく、閉側に制御された補助スロットルバルブは全開に保持される。よって、主スロットルバルブの開度に相当する値まで内燃機関の吸入空気量は増大し、機関トルクが増加することになる。そこで、上記実施例と同様に、機関トルクの増加分に応じて特定の気筒を休止すれば、このときの急激なトルクの増加を抑制することができる。
【０１１８】
なお、上記図２に示したスロットル制御装置では、クルーズコントロール走行時には、ダイヤフラムアクチュエータ４９によって、ガードレバー４５を開方向に回動操作し、アクセル操作されなくてもＤＣモータ３１にてスロットルバルブ５を回動制御している。また、アイドリングでの、暖機中と暖機後のスロットル弁開度をサーモワックス５０および操作ロッド５０ａによって制御している。
【０１１９】
上記のようなダイヤフラムアクチュエータ４９、サーモワックス５０および操作ロッド５０ａに代えて電磁クラッチ等を備えて通常時、クルーズコントロール、アイドリングの制御を実行する他の実施例を図２２に示す。図２２は、電磁クラッチを備えたスロットル制御装置の構成を、図３のようにスロットルバルブ周辺の動作原理を模式的に示したものである。なお、この図において、上方がスロットルバルブ５の開方向、下方が閉方向である。
【０１２０】
図２２に示す本実施例では、図２に示す実施例のアクセル開度センサ４７は取り付けられておらず、アクセル操作量はガード位置センサ４８によって代用される。また、スロットル開度センサ３４は、従動ギア２８に取り付けられる。以下、上記スロットル制御装置の作動を説明する。通常時、電磁クラッチ８０のクラッチコイル８０ａへの通電が遮断される。そして、運転者がアクセルペダル４４を操作すると、ガード位置センサ４８からこのアクセル操作量に対応する信号θｍｇが出力され、この信号に基づきＤＣモータ３１が駆動される。すると、従動ギア２８は開側へ回動し、これに従ってスロットルバルブ５が開く。
【０１２１】
一方、クルーズコントロール時、電磁クラッチ８０のクラッチコイル８０ａへ通電され、従動ギア２８とスロットル軸２３とが直結される。これにより、ＤＣモータ３１にてスロットルバルブ５が開閉制御される。なお、図２２に示す実施例では、ガードレバー４５のスロットルバルブ５閉方向側にそれ以上の閉側回動を規制するガードストッパ９０が設けられる。このガードストッパ９０に相当するスロットルバルブ開度は、スロットルバルブ５の全閉位置を示す全閉位置ストッパ２６の開度よりも若干大きな開度となるように設定される。これにより、スロットルバルブ５が全閉位置にあり、ガードレバー４５がガードストッパ９０に当接するときにはガードレバー４５とストッパレバー２４との間に所定の隙間が形成される。
【０１２２】
こうすることにより、アイドリング中において、スロットルバルブ５は全閉位置からガードストッパ９０の位置に相当する開度範囲でＤＣモータ３１によって制御可能となる。そして、内燃機関１の負荷に変動があった場合でも、ＤＣモータ１４を制御することによりアイドル回転数を一定に保つことができる。さらに、本実施例では、スロットルバルブ５をバイパスするバイパス通路１００が設けられ、この通路１００を開閉制御するエアバルブ１１０が設けられる。このエアバルブ１１０は、機関冷間時にはバイパス空気量が増大するように開き、暖機終了後には閉じ、バイパス空気量を減少させる。そして暖機後には、ＤＣモータ３１によって、上記所定隙間内でスロットルバルブ５を制御する。
【０１２３】
ここで、上記のようなバイパス通路１００を備えず冷間時にもスロットルバルブ５によってアイドル回転数制御されるスロットル制御装置では、ＤＣモータ３１や制御装置６１等の故障により、暖機後にもスロットルバルブ５が所望のアイドル回転数に対応する開度以上で開いたままとなって機関回転数が異常に上昇してしまうといった不具合が起こる恐れがある。しかしながら、上述のようにバイパス通路１００を備えることで、このような不具合を起こすことはない。
【０１２４】
そして、このスロットル制御装置においても図２の実施例で述べた、種々のフェイル判定を行い、スロットル制御系の異常、バルブロックが生じたと判定されたときには、この異常に対応したフェールセーフ処理を図２の実施例と同様に実行するとともに、気筒数制御および推定トルク演算を行う。ところが、図２２に示した電磁クラッチ８０は、クラッチコイル８０ａが通電状態から、非通電状態となったときに確実にクラッチが解除されず、スロットルバルブ５と従動ギア４２との直結が解除されなくなるクラッチロックが生じる場合がある。
【０１２５】
そこで、上記のようなクラッチロックが生じたとき、この異常を確実に検出する必要がある。以下、このクラッチロック検出処理を説明する。
【０１２６】
上記クラッチロック検出処理は、クルーズコントロール解除時に行われる。クルーズコントロールはブレーキが踏み込まれたとき、すなわち図２３（ａ）に示すように、ブレーキ信号がＯＮとなったときに、電磁クラッチ８０による従動ギア２８とスロットルバルブ５との連結状態を解除するように、クラッチコイル８０ａへのクラッチ信号がＯＦＦ（図２３（ｂ））となる。
【０１２７】
ここで、ブレーキが踏み込まれたとき、アクセル踏み込み量はほぼ零と考えてよいため、ガードレバー４５、ストッパーレバー２４、スロットル軸２３等は、スプリング４６の付勢力により閉方向へ回動しようとする。したがって、図２３（ｃ）の実線に示すようにガード位置センサ４８の出力値θｍｇはガードストッパ９０の位置に対応する値に近づく。そこで、このクルーズコントロール解除時に、従動ギア２８をそのときの位置に所定時間（ＫＣ１）保持するように、図２３（ｃ）の破線の如くＤＣモータ３１へスロットル開度指令値θｃｍｄを出力し、所定時間後従動ギア２８も全閉位置ストッパ２６の位置となるようにする。すると、確実にクラッチが切れていれば、従動ギア２８は上記所定時間後に、全閉位置ストッパ２６の位置となり、従動ギア２８に取り付けられるスロットル開度センサ３４の出力値であるθｔｈは、図２３（ｃ）の一点鎖線のようになる。
【０１２８】
一方、もしもクラッチロックが生じていれば、クルーズコントロール解除後も、ガードレバー４５、ストッパーレバー２４、スロットル軸２３等はそのままの位置で保持される。そして、上記所定時間後に、従動ギア２８が閉方向へ回動されるとき、これに応じて回動するため、θｍｇは図２３（ｄ）の実線に示すようにθｃｍｄと一致する。
【０１２９】
したがって、クルーズコントロール解除後、所定時間ＤＣモータ３１により従動ギア２８を保持し、このときのθｍｇとθｃｍｄとを検出すればクラッチロックが生じているか否かが判別できる。以下、図２４に示すフローチャートによってクルーズコントロール解除時におけるクラッチロック検出処理を説明する。なお、このクラッチロック検出処理は、図２の実施例の、図４のスロットル制御ルーチンのステップＳ１で実行される図５のフェイル判定処理ルーチン内の複数のフェイル判定処理の１つに組み込まれる。
【０１３０】
そして、図５に示したフェイル判定ルーチンで、クラッチロック検出ルーチンがコールされると、図２４のステップＳ２０１へ移行する。ステップＳ２０１において、クラッチロック発生を示すクラッチロック判定フラグＸＦＣＬＴが既にセットされているか否かを判定する。判定フラグＸＦＣＬＴがセットされているときには、そのまま本処理を終了する。
【０１３１】
一方、ステップＳ２０１において、判定フラグＸＦＣＬＴがセットされていないならば、ステップＳ２０２へ進み、以下ステップＳ２０２〜２０６で、クルーズコントロール解除時から所定時間ＫＣ１遅れて、θｃｍｄを閉じるようにする処理を行う。すなわち、ステップＳ２０２でクラッチ信号がＯＮからＯＦＦへと移行し、クルーズコントロールが解除されたか否かを判定する。そして、クラッチ信号がＯＮからＯＦＦへ移行したと判断されたならば、ステップＳ２０３においてカウンタＣＣＬＴをゼロとする。そうでないなら、ステップＳ２０４でカウンタＣＣＬＴをインクリメント（ＣＣＬＴ＝ＣＣＬＴ＋１）する。これによって、クラッチ信号がＯＮからＯＦＦされた時点から、カウンタＣＣＬＴはカウントアップされる。
【０１３２】
そして、ステップＳ２０５において、カウンタＣＣＬＴのカウント値が、所定時間ＫＣ１より小さいか否かを判定する。カウンタ値ＣＣＬＴがＫＣ１より小さいならば、ステップＳ２０６へ進み、そうでないなら本処理を終了する。そして、カウンタ値ＣＣＬＴがＫＣ１より小さい、すなわちクルーズコントロール解除時から所定時間ＫＣ１に達していないとき、ステップＳ２０６で、今回のθｃｍｄｉを前回のθｃｍｄｉ−１と同一とする。そして、ステップＳ２０８へ進み、θｍｇがθｃｍｄよりも小さいか否かを判別する。θｍｇがθｃｍｄよりも小さいならば、ステップＳ２１０へ進み、そうでないなら、ステップＳ２０９へと進む。そして、ステップＳ２０９では、カウンタＣＣＬＴＦをインクリメント（ＣＣＬＴＦ＝ＣＣＬＴＦ＋１）し、ステップＳ２１１へ進む。一方、ステップＳ２１０では、カウンタＣＣＬＴＦをゼロにセットし、ステップＳ２１１へ進む。これによって、クラッチロック異常が生じ、θｍｇとθｃｍｄとの値が同一である状態がどれだけ継続するかを検出することが可能である。
【０１３３】
そして、ステップＳ２１１で、上記カウンタＣＣＬＴＦが、所定時間ＫＣＦより小さいか否かを判別する。カウンタＣＣＬＴＦが、所定時間ＫＣＦより小さいと判断されたときにはそのまま本処理を終了し、そうでないときにはステップＳ２１２においてクラッチロック判定フラグＸＦＣＬＴをセットし、本処理を終了する。そして、この処理を終え、図４のスロットル制御ルーチンへ戻る。このとき、クラッチロック判定フラグＸＦＣＬＴがセットされているならば、図４のスロットル制御ルーチンのステップＳ２、Ｓ６、Ｓ７、Ｓ９と進み、ウォーニングランプを点灯するとともに、ＤＣモータ３１への通電を中止する。一方、クラッチロック判定フラグＸＦＣＬＴがセットされていないならば、図４のスロットル制御ルーチンのステップＳ２、Ｓ３、Ｓ４、Ｓ５と進み、通常のスロットル制御時のスロットル開度指令値θｃｍｄを設定するとともに、θｃｍｄをＶｃｍｄに変換して、このＶｃｍｄを出力する。
【０１３４】
これによって、クルーズコントロール解除時において、電磁クラッチ８０のクラッチロックを判定することができる。また、電磁クラッチ８０のクラッチロック検出を、上記のようなクルーズコントロール解除時ではなく、機関始動時、すなわちイグニッションスイッチ（以下、ＩＧＳＷを記す）がＯＮとなったときに行ってもよい。
【０１３５】
つまり、図２５（ａ）に示すうように、ＩＧＳＷがＯＮとなったときに、図２５（ｂ）、図２５（ｃ）に示すように、ＤＣモータ３１への出力値θｃｍｄを、スロットルバルブ５がガードストッパ９０の位置よりも所定開度（例えば、＋５°）開いた位置となる値（ＫＭＧ）とし、所定時間（ＫＣ２）、この値を保持する。そして、この間に、θｍｇとθｃｍｄとを比較する。ここで、クラッチロックが生じていないならば、スロットルバルブ５は、ガードストッパ９０の位置にあるため、図２５（ｂ）のようにθｍｇ＜θｃｍｄとなり、一方、クラッチロックが生じているならば、図２５（ｃ）のようにθｍｇ＝θｃｍｄとなる。そして、θｍｇ＝θｃｍｄの状態が所定時間（ＫＣＦ）続いたらロックと判断する。
【０１３６】
以下、この処理によるクラッチロック検出処理を図２６に示す。なお、この処理は、上述の図２４に示した処理とほぼ同一であり、同一であるところは図２４と同じ番号をつけ、説明を省略する。ステップＳ２２２では、ＩＧＳＷがＯＦＦからＯＮとなったか否かを判別し、ＯＦＦからＯＮとなったと判断されたらステップＳ２０３へ進み、そうでないならばステップＳ２０４へ進む。これによって、ＩＷＳＷがＯＮとなった時点からカウントアップされる。
【０１３７】
また、ステップＳ２２５において、カウンタＣＣＬＴのカウント値が、所定時間ＫＣ２より小さいか否かを判定する。カウンタ値ＣＣＬＴがＫＣ１より小さいならば、ステップＳ２２６へ進み、そうでないなら本処理を終了する。そして、ステップＳ２２６では、θｃｍｄを上記ＫＭＧとして保持する。次に、ステップＳ２０８で、θｍｇとθｃｍｄ（＝ＫＭＧ）とを比較することにより、クラッチロックが生じているか否かを検出することができる。
【０１３８】
また、上述の図２６に示したクラッチロック検出処理は、通常時、アクセルペダル全閉かつ機関回転数が所定回転数以上のときに実行される減速燃料カットの開始時に実行してもよい。これは、減速燃料カット時には、スロットルバルブ５がどのように駆動されても、機関の挙動には影響しないためである。以下、減速燃料カット時におけるクラッチロック検出処理を図２７で示す。なお、この処理は、上記図２６の処理とほぼ同一であり、異なる点はステップＳ２３２であるため他の処理の説明は省略する。
【０１３９】
ステップＳ２３２では、減速燃料カットフラグＸＤＦＣが０から１へセットされたか否かを判別する。このフラグＸＤＦＣは、通常時、アクセルペダル全閉位置であり、かつ機関回転数が所定回転数（例えば、１５００ｒｐｍ）のとき、セットされるように設定される。そして、ＸＤＦＣがセットされたと判断されたならば、ステップＳ２０３へ進み、そうでないならばカウンタＣＣＬＴをインクリメント（ＣＣＬＴ＝ＣＣＬＴ＋１）する。これによって、減速燃料カットが実行された時点からカウントアップされる。また、ステップＳ２２６で、θｃｍｄ を上記ＫＭＧで保持する。そして、ステップＳ２０８で、θｍｇとθｃｍｄとを比較することにより、クラッチロックが生じているか否かを検出することができる。
【０１４０】
次に、他の実施例として燃料カット気筒数Ｎｆｃを車速、またはエンジン回転数に基づいて設定するようにしてもよい。この実施例の概略構成図を図２８に示す。図２８は図１に示した概略構成図に車速センサ１２１およびシフト位置センサ１２２を追加したものである。他の構成については図１と同様のため説明は省略する。
【０１４１】
このような構成において、ＣＰＵ６２が図１６の代わりに実行するフローチャートを図２９に示し、以下、このフローチャートに従って説明する。なお、このフローチャートはＩＧＳＷのオン時にイニシャライズ処理としてフェイルフラグＸＦＡＩＬ１を“０”とする。さらに、このフローチャートは内燃機関１のクランク角で７２０度毎に実行される。
【０１４２】
この処理が実行されると、ステップＳ３０１において、エアフロメータ４にて検出された吸入空気量Ｑａとクランク角センサ１５にて検出された機関回転数Ｎｅとから、今現在の内燃機関１が要求する燃料噴射量を算出し、その燃料噴射量に対応するパルス幅を設定する。次に、ステップＳ３０２ではフェイルフラグＸＦＡＩＬ１が“１”であるかを判定する。“１”でなければステップＳ３０３に進み燃料カット気筒数Ｎｆｃを“０”に設定し、ステップＳ３０７へと進む。
【０１４３】
ステップＳ３０２において、フェイルフラグＸＦＡＩＬ１が“１”であればステップＳ３０４に進み、現在、エンジンの駆動力が駆動輪に伝わっているかを判定する。これは、シフト位置センサ１２２の検出信号から、オートマチックトランスミッション（ＡＴ）車の場合は、ギアのシフト位置がドライブまたはリバース位置にあるかを判定する。また、マニュアルトランスミッション（ＭＴ）車の場合には、ギアがつながっており、かつ、クラッチが係合しているかを判定する。ここで、駆動力が伝わっているときには、ステップＳ３０６に進む。伝わっていないときにはステップＳ３０５に進む。
【０１４４】
ステップＳ３０６では、図３０に示したマップから、車速センサ１２１によって検出された車速に応じた燃料カット気筒数Ｎｆｃを設定する。つまり、車速が遅いほど燃料カット気筒数Ｎｆｃの数を多くする。また、ステップＳ３０５では、図３１に示したマップから燃料カット気筒数Ｎｆｃを設定する。つまり、エンジン回転数が高いときほど燃料カット気筒数Ｎｆｃを多くする。ステップＳ３０５，ステップＳ３０６にて燃料カット気筒数Ｎｆｃが設定されると、ステップＳ３０７にて、ステップＳ３０１で燃料カット気筒数Ｎｆｃに応じた気筒について制御信号をインジェクタ駆動回路６５に出力する。その結果、インジェクタ駆動回路６５により、燃料カット気筒数Ｎｆｃに対応する数のインジェクタ７が通電されて燃料を噴射し、それらの気筒が作動する。
【０１４５】
以上の処理を実行することにより、駆動力が伝わっているときには車速に応じて燃料カット気筒数Ｎｆｃを設定する。詳しくは、車速が遅いほど燃料カット気筒数Ｎｆｃを多くする。これにより、車両が静止しているときには燃料カット気筒数Ｎｆｃを多くしてトルクを抑え、車両の飛びだしを防ぐようにしている。また、車速が速くなるにしたがい、燃料カット気筒数Ｎｆｃが少なくなるように設定しているので、ドライバビリティの悪化も防止している。
【０１４６】
また、駆動力が伝わっていないときには、エンジン回転数に応じて燃料カット気筒数Ｎｆｃを設定している。詳しくはエンジン回転数が大きくなるほど燃料カット気筒数Ｎｆｃを多くなるように設定している。これにより、ギアのシフト位置がニュートラル状態等のエンジンの駆動力が車輪に伝わっていないときのエンジン回転数の増加を防止することができる。また、ニュートラル時の過大なエンジン回転は運転車の不安を招くものであるが、これを防止することができる。
【０１４７】
以上の処理は、一度フェイルが検出されるとＩＧＳＷがオフするまで続けられる。そして、次にＩＧＳＷをオンしたときにフェイルフラグＸＦＡＩＬ１が“０”にリセットされるため、正常状態に戻っていれば正常時の燃料噴射処理を、まだ異常状態が継続されていれば、再びフェイルフラグＸＦＡＩＬ１が“１”となるため、燃料カットが実行され、それにともなう燃料噴射処理が実行される。
【０１４８】
また上記実施例において、図３０，図３１に示したマップの燃料カット気筒数Ｎｆｃ切り換え条件にヒステリシス特性を持たせるようにしてもよい。
【図面の簡単な説明】
【図１】本発明の実施形態の一実施例である内燃機関のスロットル制御装置を示す概略構成図である。
【図２】本発明の一実施例である内燃機関のスロットル制御装置が適用されるスロットルバルブ周辺を示す斜視図である。
【図３】本発明の一実施例である内燃機関のスロットル制御装置が適用されるスロットルバルブ周辺の動作原理を模式的に示す説明図である。
【図４】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するスロットル制御ルーチンを示すフローチャートである。
【図５】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するフェイル判定ルーチンを示すフローチャートである。
【図６】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する第１のスロットル制御系異常判定ルーチンを示すフローチャートである。
【図７】本発明の一実施例である内燃機関のスロットル制御装置のスロットル開度指令値に対する実際のスロットル開度の制御遅れを示す説明図である。
【図８】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する第２のスロットル制御系異常判定ルーチンを示すフローチャートである。
【図９】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するアクセル連動機構異常判定ルーチンを示すフローチャートである。
【図１０】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するバネ切損判定ルーチンを示すフローチャートである。
【図１１】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行するバルブロック判定ルーチンを示すフローチャートである。
【図１２】本発明の一実施例である内燃機関のスロットル制御装置における通常制御時のスロットル開度指令値を決定するためのマップを示す説明図である。
【図１３】本発明の一実施例である内燃機関のスロットル制御装置におけるスロットル指令電圧を決定するためのマップを示す説明図である。
【図１４】本発明の一実施例である内燃機関のスロットル制御装置におけるリンプホーム制御時のスロットル開度指令値を決定するためのマップを示す説明図である。
【図１５】本発明の一実施例である内燃機関のスロットル制御装置におけるスロットル制御系の異常発生時のタイムチャートである。
【図１６】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する燃料噴射制御ルーチンを示すフローチャートである。
【図１７】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する燃料カットフラグ設定ルーチンを示すフローチャートである。
【図１８】本発明の一実施例である内燃機関のスロットル制御装置のＣＰＵが実行する燃料カット気筒数設定ルーチンを示すフローチャートである。
【図１９】本発明の一実施例である内燃機関のスロットル制御装置における推定トルクを決定するためのマップを示す説明図である。
【図２０】本発明の一実施例である内燃機関のスロットル制御装置における燃料カット気筒数を決定するためのマップを示す説明図である。
【図２１】本発明の一実施例である内燃機関のスロットル制御装置における燃料カット気筒数から燃料噴射を中止する気筒を決定するためのマップを示す説明図である。
【図２２】本発明の他の実施例である内燃機関のスロットル制御装置が適用されるスロットルバルブ周辺の動作原理を模式的に示す説明図である。
【図２３】クルーズコントロール解除時における各信号のタイムチャートである。
【図２４】クラッチロック検出ルーチンを示すフローチャートである。
【図２５】イグニッションスイッチＯＮ時における各信号のタイムチャートである。
【図２６】クラッチロック検出ルーチンを示すフローチャートである。
【図２７】クラッチロック検出ルーチンを示すフローチャートである。
【図２８】他の実施例の内燃機関のスロットル制御装置を示す概略構成図である。
【図２９】他の実施例において、ＣＰＵにて実行される処理を示したフローチャートである。
【図３０】他の実施例において、内燃機関のスロットル制御装置における車速から燃料カット気筒数を決定するためのマップを示す説明図である。
【図３１】他の実施例において、内燃機関のスロットル制御装置におけるエンジン回転数から燃料カット気筒数を決定するためのマップを示す説明図である。
【符号の説明】
１  内燃機関
５  スロットルバルブ
７  インジェクタ
２２  アクセル連動機構
３１  ＤＣモータ
６２  ＣＰＵ
６５  インジェクタ駆動回路
１２１  車速センサ
１２２  シフト位置センサ
【図１】
0003731443.tif 000002
【図２】
0003731443.tif 000003
【図３】
0003731443.tif 000004
【図４】
0003731443.tif 000005
【図５】
0003731443.tif 000006
【図６】
0003731443.tif 000007
【図７】
0003731443.tif 000008
【図８】
0003731443.tif 000009
【図９】
0003731443.tif 000010
【図１０】
0003731443.tif 000011
【図１１】
0003731443.tif 000012
【図１２】
0003731443.tif 000013
【図１３】
0003731443.tif 000014
【図１４】
0003731443.tif 000015
【図１５】
0003731443.tif 000016
【図１６】
0003731443.tif 000017
【図１７】
0003731443.tif 000018
【図１８】
0003731443.tif 000019
【図１９】
0003731443.tif 000020
【図２０】
0003731443.tif 000021
【図２１】
0003731443.tif 000022
【図２２】
0003731443.tif 000023
【図２３】
0003731443.tif 000024
【図２４】
0003731443.tif 000025
【図２５】
0003731443.tif 000026
【図２６】
0003731443.tif 000027
【図２７】
0003731443.tif 000028
【図２８】
0003731443.tif 000029
【図２９】
0003731443.tif 000030
【図３０】
0003731443.tif 000031
【図３１】
0003731443.tif 000032