(57)【要約】【課題】各気筒群毎にアイドリング回転数の補正動作を行う内燃機関に対し、アイドリング運転に支障を来すことのない範囲で可能な限り異常判定を遅延させて異常判定タイミングの適正化を図ることが可能な内燃機関の異常判定装置を提供する。【解決手段】各バンク毎にＩＳＣ学習制御を行うＶ型エンジンに対し、一方のバンクのＩＳＣ学習値のみが限界値に達した場合には異常判定を行わず、両バンクのＩＳＣ学習値が共に限界値に達した場合に異常判定を行ってＭＩＬを点灯させる。これにより、一方のバンクのＩＳＣ異常時に、他方のバンクでのＩＳＣ制御によって実アイドリング回転数が適正に制御される可能性を残す。【選択図】図５
2011127488.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒群を有し、アイドリング運転時、気筒群毎に所定範囲内で求められる補正量によってアイドリング回転数の補正動作を行う補正手段を備えた内燃機関の異常判定装置において、
上記補正手段によって補正されている気筒群毎の補正量のうち、一部の気筒群の補正量のみが上記所定範囲内での限界値に達している場合には異常と判定せず、全ての気筒群の補正量が上記所定範囲内での限界値に達したことを条件の一つとして、異常と判定する異常判定手段を備えていることを特徴とする内燃機関の異常判定装置。
【請求項２】
請求項１記載の内燃機関の異常判定装置において、
各気筒群それぞれには吸気量調整手段が設けられており、上記補正手段は、実アイドリング回転数が目標アイドリング回転数に近付くように吸気量調整手段を制御して吸入空気量を調整するようになっており、
上記異常判定手段は、一部の気筒群における吸入空気量の補正量のみが上記所定範囲内での限界値に達している場合には異常と判定せず、全ての気筒群における吸入空気量の補正量が上記所定範囲内での限界値に達したことを条件の一つとして、異常と判定するよう構成されていることを特徴とする内燃機関の異常判定装置。
【請求項３】
請求項１または２記載の内燃機関の異常判定装置において、
上記補正手段は、気筒群毎に個別に設けられており、各補正手段が対応する気筒群に対してアイドリング回転数の補正動作を行う構成とされていることを特徴とする内燃機関の異常判定装置。
【請求項４】
請求項１、２または３記載の内燃機関の異常判定装置において、
上記補正手段は、実アイドリング回転数と目標アイドリング回転数との偏差に基づいてＩＳＣフィードバック値を気筒群毎に求め、このＩＳＣフィードバック値が所定値を越えた場合にＩＳＣ学習値を気筒群毎に更新するようになっており、
上記異常判定手段は、全ての気筒群におけるＩＳＣ学習値が予め設定された所定範囲内の上限値または下限値に達した時点またはその時点から所定時間経過後に異常と判定するよう構成されていることを特徴とする内燃機関の異常判定装置。
【請求項５】
請求項４記載の内燃機関の異常判定装置において、
上記異常判定手段は、アイドリング運転が実行される度にＩＳＣ学習値が上記上限値または下限値に達しているか否かを判定し、全ての気筒群において、アイドリング運転時にＩＳＣ学習値が上記上限値または下限値に達している状態が所定回数カウントされた場合に異常と判定するよう構成されていることを特徴とする内燃機関の異常判定装置。
【請求項６】
請求項１〜５のうち何れか一つに記載の内燃機関の異常判定装置において、
上記異常判定手段によって異常と判定された後、少なくとも一部の気筒群の補正量が上記所定範囲内での限界値から外れた場合に正常と判定する正常判定手段を備えていることを特徴とする内燃機関の異常判定装置。
【請求項７】
請求項６記載の内燃機関の異常判定装置において、
上記正常判定手段は、内燃機関の始動の度に、少なくとも一部の気筒群の補正量が上記所定範囲内での限界値から外れているか否かを判定し、少なくとも一部の気筒群の補正量が上記所定範囲内での限界値から外れている状態が所定回数カウントされた場合に正常と判定するよう構成されていることを特徴とする内燃機関の異常判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用エンジン等に代表される内燃機関の異常判定装置に係る。特に、本発明は、Ｖ型内燃機関等のように複数の気筒群を備えると共に各気筒群毎にアイドリング回転数の補正動作を行う内燃機関の異常判定に関する。
【背景技術】
【０００２】
従来より、自動車等に搭載される内燃機関（以下、エンジンと呼ぶ場合もある）では、アイドリング運転時のエンジン回転数（以下、実アイドリング回転数と呼ぶ）を目標アイドリング回転数に一致または近接させるための吸気量制御が行われている。この制御は、一般にＩＳＣ（Ｉｄｌｅ  Ｓｐｅｅｄ  Ｃｏｎｔｒｏｌ）制御と呼ばれている。
【０００３】
尚、エンジンの吸気系には、スロットルバルブをバイパスするバイパス管にＩＳＣバルブを備えさせ、このＩＳＣバルブの開度調整によってアイドリング回転数を制御するものや、上記バイパス管を備えさせることなくスロットルバルブの開度調整によってアイドリング回転数を制御するものがある。以下の説明では、後者の場合を代表して説明する。
【０００４】
上記ＩＳＣ制御では、実アイドリング回転数が目標アイドリング回転数よりも低い場合には、スロットルバルブの開度を所定の補正量だけ大きくして吸入空気量を増量補正し、逆に、実アイドリング回転数が目標アイドリング回転数よりも高い場合には、スロットルバルブの開度を所定の補正量だけ小さくして吸入空気量を減量補正する。このＩＳＣ制御に使用される補正量（吸入空気量の補正量）としては、周知のＩＳＣフィードバック制御による「ＩＳＣフィードバック値」やＩＳＣ学習制御による「ＩＳＣ学習値」が挙げられる。
【０００５】
ところで、下記の特許文献１や特許文献２に開示されているようなＶ型エンジンでは、各バンク毎に吸気系が設けられ、各バンク毎に上記ＩＳＣ制御が行われている。特に、これら特許文献では、各バンク毎にＥＣＵ（右バンク用ＥＣＵ及び左バンク用ＥＣＵ）が設けられ、右バンク用ＥＣＵは右バンクの吸気系に対してＩＳＣ制御を実行し、左バンク用ＥＣＵは左バンクの吸気系に対してＩＳＣ制御を実行する。
【０００６】
このようにして、各バンク毎にＩＳＣ制御を実行するものにおいて、従来では、アイドリング運転時、一方の吸気系に異常が生じた場合に吸気系異常判定（吸気系に異常が発生しているとする判定：以下、単に「異常判定」と呼ぶ場合もある）を行って、メータパネル上のＭＩＬ（Ｍａｌｆｕｎｃｔｉｏｎ  Ｉｎｄｉｃａｔｏｒ  Ｌａｍｐ）を点灯させ、ドライバに異常発生の警告を行うようにしていた。
【０００７】
尚、ここでいう吸気系の異常はＩＳＣ異常であって、例えば、スロットルバルブの開度が適正に制御できない状況をいう。例えば、スロットルボディ内部におけるデポジット等の異物の噛み込みによってスロットルバルブの開度を目標開度に調整できない状況などである。
【０００８】
図９は、従来のＩＳＣ異常発生時におけるアイドリング回転数、ＩＳＣフィードバック値、ＩＳＣ学習値の変化を示している。また、ＩＳＣ学習値の変化における実線Ａは一方のバンク（例えば右バンク）におけるＩＳＣ学習値の変化を示し、実線Ｂは他方のバンク（例えば左バンク）におけるＩＳＣ学習値の変化を示している。
【０００９】
この図９に示すように、アイドリング回転数として、目標アイドリング回転数に対して高回転側及び低回転側にそれぞれ異常判定閾値を設定しておき、実アイドリング回転数が異常判定閾値を超えた場合（実アイドリング回転数が高回転側の異常判定閾値よりも高くなった場合や、実アイドリング回転数が低回転側の異常判定閾値よりも低くなった場合）にＩＳＣフィードバック値が更新されてスロットルバルブの開度が調整されるようになっている。図９では、実アイドリング回転数が高回転側の異常判定閾値よりも高くなった場合を示している。
【００１０】
また、ＩＳＣフィードバック値による吸入空気の補正量が所定値（図９における補正量ｆ）を超えた場合には、ＩＳＣ学習値が更新され、このＩＳＣ学習値によってもスロットルバルブの開度が調整されるようになっている。そして、一方のバンクにおけるＩＳＣ学習値が限界値（ガード値）に達した時点、または、その時点から所定時間経過後に、ＩＳＣに異常が発生していると判定してＭＩＬを点灯するようにしている。図９に示すものでは、タイミングｔ１において一方のバンク（例えば右バンク）におけるＩＳＣ学習値が下限ガード値に達しており、その所定時間経過後であるタイミングｔ２においてＩＳＣに異常が発生していると判定してＭＩＬを点灯している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１０−１９６４３９号公報
【特許文献２】特開２００８−２２３４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
このように従来では、一方のバンクでＩＳＣに異常が発生していると判定された場合に、ＭＩＬを点灯させ、ドライバに異常発生の警告を行っていた。
【００１３】
ところが、この場合、他方のバンクではＩＳＣの異常が発生しておらず、この他方のバンクでのＩＳＣ制御によって実アイドリング回転数を目標アイドリング回転数に一致または近付けることが可能であるにも拘わらず、ドライバに異常発生の警告を行うことになる。つまり、一時的に、実アイドリング回転数が上記異常判定閾値を超え、その後には、他方のバンクでのＩＳＣ制御によってアイドリング回転数が異常判定閾値を超えないようにすることできる可能性があるにも拘わらず、異常とする判定を行って、吸気系の点検やスロットルボディの交換等をドライバに促すことになっていた。
【００１４】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、各気筒群毎にアイドリング回転数の補正動作を行う内燃機関に対し、アイドリング運転に支障を来すことのない範囲で可能な限り異常判定を遅延させて異常判定タイミングの適正化を図ることが可能な内燃機関の異常判定装置を提供することにある。
【課題を解決するための手段】
【００１５】
−課題の解決原理−
上記の目的を達成するために講じられた本発明の解決原理は、気筒群毎にアイドリング回転数の補正動作（補正量の変更）を行う内燃機関に対し、全ての気筒群に対する補正量が、異常と判定される限界値に達している場合に限り異常と判定するようにしている。これにより、一部の気筒群のみにおいて補正量が限界値に達していても異常とは判定せず、異常判定（異常が発生していると判定する）のタイミングの適正化が図れ、アイドリング回転数の適正化の可能性を残すことができる。
【００１６】
−解決手段−
具体的に、本発明は、複数の気筒群を有し、アイドリング運転時、気筒群毎に所定範囲内で求められる補正量によってアイドリング回転数の補正動作を行う補正手段を備えた内燃機関の異常判定装置を前提とする。この内燃機関の異常判定装置に対し、上記補正手段によって補正されている気筒群毎の補正量のうち、一部の気筒群の補正量のみが上記所定範囲内での限界値に達している場合には異常と判定せず、全ての気筒群の補正量が上記所定範囲内での限界値に達したことを条件の一つとして、異常と判定する異常判定手段を備えさせている。
【００１７】
一部の気筒群の補正量のみが上記所定範囲内での限界値に達している場合には、他の気筒群での補正動作によってアイドリング回転数を適正に制御できる可能性がある。このため、このような状況では異常とは判定せず、アイドリング回転数の適正化が図れる可能性を残すようにしている。そして、上記他の気筒群での補正動作を行っても、その気筒群の補正量が上記所定範囲内での限界値に達してしまった場合には、アイドリング回転数の適正化を図ることは不可能であるとして異常とする判定を行う。従来では、一部の気筒群の補正量のみが上記所定範囲内での限界値に達した時点で異常と判定していたたため、上記アイドリング回転数の適正化が図れる状況であっても点検や部品交換等を促すことになっていた。本解決手段によれば、異常判定タイミングの適正化が図れ、不必要な点検や部品交換を防止することができる。
【００１８】
上記異常判定手段による異常判定動作として具体的には以下のものが挙げられる。各気筒群それぞれに吸気量調整手段が設けられており、上記補正手段が、実アイドリング回転数が目標アイドリング回転数に近付くように吸気量調整手段を制御して吸入空気量を調整する。そして、一部の気筒群における吸入空気量の補正量のみが上記所定範囲内での限界値に達している場合には異常と判定せず、全ての気筒群における吸入空気量の補正量が上記所定範囲内での限界値に達したことを条件の一つとして、上記異常判定手段が異常と判定する構成としている。
【００１９】
吸入空気量を調整することによってアイドリング回転数の補正動作を行う場合、一部の気筒群での吸入空気量の補正量が限界値に達している場合であっても、他の気筒群での吸入空気量の補正によってアイドリング回転数を適正に制御できる可能性がある。このため、本解決手段では、この他の気筒群での吸入空気量の補正量が限界値に達するまでは異常とは判定しないようにしている。これにより、不必要な吸気量調整手段の点検や吸気量調整手段の交換を防止することができる。
【００２０】
上記補正手段による補正動作として具体的には以下のものが挙げられる。先ず、補正手段を気筒群毎に個別に設け、各補正手段が対応する気筒群に対してアイドリング回転数の補正動作を行う構成としている。
【００２１】
このように、気筒群毎に対応して補正手段が設けられたものにおいて、従来では、一部の補正手段での補正量が限界値に達した場合には異常と判定していた。本解決手段では、全ての補正手段での補正量が限界値に達するまでは異常とは判定しないようにしていることで異常判定タイミングの適正化を図ることができる。
【００２２】
より具体的な制御手法として、上記補正手段は、実アイドリング回転数と目標アイドリング回転数との偏差に基づいてＩＳＣフィードバック値を気筒群毎に求め、このＩＳＣフィードバック値が所定値を越えた場合にＩＳＣ学習値を気筒群毎に更新するようになっている。そして、全ての気筒群におけるＩＳＣ学習値が予め設定された所定範囲内の上限値または下限値に達した時点またはその時点から所定時間経過後に異常判定手段が異常と判定する構成となっている。
【００２３】
この場合に、上記異常判定手段は、アイドリング運転が実行される度にＩＳＣ学習値が上記上限値または下限値に達しているか否かを判定し、全ての気筒群において、アイドリング運転時にＩＳＣ学習値が上記上限値または下限値に達している状態が所定回数カウントされた場合に異常と判定する構成としている。
【００２４】
つまり、アイドリング運転時にＩＳＣ学習値が上限値または下限値に達した状態が継続された場合に異常と判定するものとしている。これにより異常判定の信頼性を高めることができる。
【００２５】
また、上述の如く異常と判定された後に正常復帰した場合に対応する構成としては以下のものが挙げられる。先ず、上記異常判定手段によって異常と判定された後、少なくとも一部の気筒群の補正量が上記所定範囲内での限界値から外れた場合に正常と判定する正常判定手段を備えさせている。
【００２６】
この場合に、上記正常判定手段は、内燃機関の始動の度に、少なくとも一部の気筒群の補正量が上記所定範囲内での限界値から外れているか否かを判定し、少なくとも一部の気筒群の補正量が上記所定範囲内での限界値から外れている状態が所定回数カウントされた場合に正常と判定する構成としている。
【００２７】
つまり、少なくとも一部の気筒群の補正量が上記限界値から外れた状態が継続された場合に正常と判定するものとしている。これにより正常判定の信頼性を高めることができる。
【発明の効果】
【００２８】
本発明では、気筒群毎にアイドリング回転数の補正動作を行う内燃機関に対し、全ての気筒群に対する補正量が、異常と判定される限界値に達している場合に限り異常と判定するようにしている。これにより、一部の気筒群のみにおいて補正量が限界値に達していても異常とは判定せず、異常と判定するタイミングの適正化が図れ、アイドリング回転数の適正化の可能性を残すことができる。
【図面の簡単な説明】
【００２９】
【図１】実施形態に係るＶ型エンジン、その吸排気系及び制御系の概略を示すシステム構成図である。
【図２】エンジンの制御系を示すブロック図である。
【図３】ＩＳＣフィードバック制御の手順を示すフローチャート図である。
【図４】ＩＳＣ学習制御の手順を示すフローチャート図である。
【図５】ＩＳＣ異常判定動作の手順を示すフローチャート図である。
【図６】ＩＳＣ学習値上下限張り付きカウンタのカウント動作の手順を示すフローチャート図である。
【図７】ＩＳＣ正常復帰時の動作手順を示すフローチャート図である。
【図８】実施形態のＩＳＣ異常発生時におけるアイドリング回転数、ＩＳＣフィードバック値、ＩＳＣ学習値、ＩＳＣ異常判定フラグの変化を示すタイミングチャート図である。
【図９】従来のＩＳＣ異常発生時におけるアイドリング回転数、ＩＳＣフィードバック値、ＩＳＣ学習値の変化を示すタイミングチャート図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施の形態を図面に基づいて説明する。本実施形態は、内燃機関としてＶ型１０気筒ガソリンエンジンを搭載した車両に本発明を適用した場合について説明する。
【００３１】
本実施形態の特徴とする動作であるＩＳＣ異常判定動作について説明する前に、エンジン全体構成及び制御ブロックについて説明する。
【００３２】
−エンジン全体構成の説明−
図１は、本実施形態に係るＶ型エンジンＥ、吸排気系、制御系の概略を示すシステム構成図である。
【００３３】
この図１に示すように、Ｖ型エンジンＥは、シリンダブロック１の上部にＶ型に突出した一対のバンク２Ｌ，２Ｒを有している。各バンク２Ｌ，２Ｒそれぞれが本発明でいう気筒群を構成している。各バンク２Ｌ，２Ｒは、シリンダブロック１の上端部に設置されたシリンダヘッド３Ｌ，３Ｒと、その上端に取り付けられたヘッドカバー（図示省略）とをそれぞれ備えている。上記シリンダブロック１には複数のシリンダ５Ｌ，５Ｒ，…（例えば各バンク２Ｌ，２Ｒに５個ずつ）が所定の挟み角（例えば９０°（この値に限定されるものではない））をもって配設されており、これらシリンダ５Ｌ，５Ｒ，…の内部にピストン５１Ｌ，５１Ｒ，…が往復移動可能に収容されている。また、各ピストン５１Ｌ，５１Ｒ，…はコネクティングロッド５２Ｌ，５２Ｒ，…を介してクランクシャフトＣに動力伝達可能に連結されている。更に、シリンダブロック１の下側にはクランクケース６が取り付けられており、上記シリンダブロック１内の下部からクランクケース６の内部に亘る空間がクランク室６１となっている。また、このクランクケース６の更に下側にはオイル溜まり部となるオイルパン（図示省略）が配設されている。
【００３４】
また、上記シリンダヘッド３Ｌ，３Ｒには吸気ポート３１Ｌ，３１Ｒを開閉するための吸気バルブ３２Ｌ，３２Ｒ及び排気ポート３３Ｌ，３３Ｒを開閉するための排気バルブ３４Ｌ，３４Ｒがそれぞれ組み付けられており、シリンダヘッド３Ｌ，３Ｒとヘッドカバーとの間に形成されているカム室に配置されたカムシャフト（図示省略）の回転によって各バルブ３２Ｌ，３２Ｒ，３４Ｌ，３４Ｒの開閉動作が行われるようになっている。
【００３５】
また、上記各バンク２Ｌ，２Ｒそれぞれの吸気系は互いに独立して配設されている。つまり、各バンク２Ｌ，２Ｒそれぞれに対応し、上記吸気ポート３１Ｌ，３１Ｒから上流側に向かって、吸気マニホールド７Ｌ，７Ｒ、サージタンク７１Ｌ，７１Ｒ、吸気管７３Ｌ，７３Ｒ、エアクリーナ７４Ｌ，７４Ｒが設けられている。そして、各吸気マニホールド７Ｌ，７Ｒの下流側が、各気筒に繋がる各吸気ポート３１Ｌ，３１Ｒ，…に応じて分岐されてブランチ管７８Ｌ，７８Ｒ，…とされ、これらブランチ管７８Ｌ，７８Ｒ，…が吸気ポート３１Ｌ，３１Ｒ，…にそれぞれ連通している。また、各吸気マニホールド７Ｌ，７Ｒの各ブランチ管７８Ｌ，７８Ｒそれぞれにはスロットルバルブ（吸気量調整手段）７２Ｌ，７２Ｒが配設され、このスロットルバルブ７２Ｌ，７２Ｒの開度が調整されることにより各気筒への吸入空気量が調整されるようになっている。また、各スロットルバルブ７２Ｌ，７２Ｒとしては、左バンク２Ｌの吸気マニホールド７Ｌに対応する５個のスロットルバルブ７２Ｌ，７２Ｌ，…、及び、右バンク２Ｒの吸気マニホールド７Ｒに対応する５個のスロットルバルブ７２Ｒ，７２Ｒ，…がそれぞれ配設されている。左バンク２Ｌのスロットルバルブ７２Ｌ，７２Ｌ，…は互いにリンク機構等によって連結されて連動するようになっている。同様に、右バンク２Ｒのスロットルバルブ７２Ｒ，７２Ｒ，…も互いにリンク機構等によって連結されて連動するようになっている。
【００３６】
これにより、各バンク２Ｌ，２Ｒそれぞれの吸気系にあっては、上記エアクリーナ７４Ｌ，７４Ｒから吸気管７３Ｌ，７３Ｒ内に導入された空気が、サージタンク７１Ｌ，７１Ｒを通じてそれぞれ独立して各吸気マニホールド７Ｌ，７Ｒに導入されるようになっている。
【００３７】
上記シリンダヘッド３Ｌ，３Ｒの吸気ポート３１Ｌ，３１Ｒにはインジェクタ７５Ｌ，７５Ｒがそれぞれ設けられており、このインジェクタ７５Ｌ，７５Ｒからの燃料噴射時にあっては、吸気マニホールド７Ｌ，７Ｒ内に導入された空気と、このインジェクタ７５Ｌ，７５Ｒから噴射された燃料とが混合されて混合気となり、吸気バルブ３２Ｌ，３２Ｒの開弁に伴って気筒内へ導入されることになる。
【００３８】
上記シリンダ５Ｌ，５Ｒ内の頂部には点火プラグ７７Ｌ，７７Ｒが配設されている。気筒内において、点火プラグ７７Ｌ，７７Ｒの点火に伴う混合気の燃焼圧力は、ピストン５１Ｌ，５１Ｒに伝えられ、ピストン５１Ｌ，５１Ｒを往復運動させる。このピストン５１Ｌ，５１Ｒの往復運動はコネクティングロッド５２Ｌ，５２Ｒを介してクランクシャフトＣに伝えられ、回転運動に変換されてエンジンＥの出力として取り出されることになる。また、上記各カムシャフトは、クランクシャフトＣから取り出される動力がタイミングチェーンによって伝達されて回転駆動され、この回転によって上記各バルブ３２Ｌ，３２Ｒ，３４Ｌ，３４Ｒの開閉動作を行わせる。
【００３９】
上記燃焼後の混合気は排気ガスとなり、排気バルブ３４Ｌ，３４Ｒの開弁に伴い排気マニホールド８Ｌ，８Ｒに排出される。排気マニホールド８Ｌ，８Ｒには排気管８１Ｌ，８１Ｒがそれぞれ接続され、更に、排気管８１Ｌ，８１Ｒには三元触媒等を内蔵した触媒コンバータ８２Ｌ，８２Ｒが取り付けられている。この触媒コンバータ８２Ｌ，８２Ｒを排気ガスが通過することにより、排気ガス中に含まれる炭化水素（ＨＣ）、一酸化炭素（ＣＯ）、及び酸化窒素成分（ＮＯｘ）が浄化されるようになっている。また、上記排気管８１Ｌ，８１Ｒの下流端側は合流されてマフラ８３に接続されている。
【００４０】
−制御ブロックの説明−
以上のエンジンＥの運転状態は、左バンク用エンジンＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）９Ｌ，右バンク用エンジンＥＣＵ９Ｒによって制御される。各ＥＣＵ（補正手段）９Ｌ，９Ｒの構成は互いに略同一であるので、ここでは左バンク用エンジンＥＣＵ９Ｌを代表して説明する。
【００４１】
この左バンク用エンジンＥＣＵ９Ｌは、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９３及びバックアップＲＡＭ９４などを備えている。
【００４２】
ＲＯＭ９２は、各種制御プログラムや、それら各種制御プログラムを実行する際に参照されるマップ等が記憶されている。ＣＰＵ９１は、ＲＯＭ９２に記憶された各種制御プログラムやマップに基づいて演算処理を実行する。
【００４３】
ＲＡＭ９３は、ＣＰＵ９１での演算結果や各センサから入力されたデータ等を一時的に記憶するメモリであり、バックアップＲＡＭ９４は、エンジンＥの停止時にその保存すべきデータ等を記憶する不揮発性のメモリである。これらＲＯＭ９２、ＣＰＵ９１、ＲＡＭ９３及びバックアップＲＡＭ９４は、バス９７を介して互いに接続されるとともに、外部入力回路９５及び外部出力回路９６と接続されている。
【００４４】
外部入力回路９５には、水温センサ１０１、エアフローメータ１０２Ｌ、吸気温センサ１０３Ｌ、Ａ／Ｆセンサ１０４ａＬ、Ｏ2センサ１０４ｂＬ、スロットルポジションセンサ１０５Ｌ、クランク角センサ１０６、カム角センサ１０７Ｌ、ノックセンサ１０８Ｌ、吸気圧センサ１０９Ｌ、アクセル開度センサ１１０、車速センサ１２０等が接続されている。各センサの構成及び機能は周知であるため、ここでの説明は省略する。
【００４５】
一方、外部出力回路９６には、上記インジェクタ７５Ｌ、イグナイタ１１１Ｌ及び、スロットルバルブ７２Ｌを駆動するスロットルモータ７２ａＬ等が接続されている。
【００４６】
上記左バンク用エンジンＥＣＵ９Ｌは、上記各種センサの検出信号に基づいて、エンジンＥの左バンク２Ｌの各種制御を実行する。例えば、周知の点火プラグ７７Ｌの点火タイミング制御、インジェクタ７５Ｌの燃料噴射制御（Ａ／Ｆセンサ１０４ａＬ及びＯ2センサ１０４ｂＬの各出力に基づいた空燃比フィードバック制御）、スロットルモータ７２ａＬの駆動制御等が実行される。
【００４７】
また、右バンク用ＥＣＵ９Ｒ及びこの右バンク用ＥＣＵ９Ｒに接続される各種センサ１０１〜１２０の構成、この右バンク用ＥＣＵ９Ｒによるイグナイタ１１１Ｒ、インジェクタ７５Ｒ、スロットルモータ７２ａＲ等の各部の制御も左バンク２Ｌと同様にして行われる。
【００４８】
また、上記左バンク用ＥＣＵ９Ｌと右バンク用ＥＣＵ９Ｒとは、エンジン制御に必要な情報を互いに送受信（例えばＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信による送受信）が可能に接続されている。これら左バンク用ＥＣＵ９Ｌと右バンク用ＥＣＵ９Ｒとの間での情報の送受信に伴う異常判定動作の詳細については後述する。
【００４９】
−ＩＳＣフィードバック制御及びＩＳＣ学習制御−
次に、上記エンジンＥのアイドリング運転時に行われるスロットルバルブ７２Ｌ，７２Ｒの開度制御としてのＩＳＣフィードバック制御及びＩＳＣ学習制御について説明する。
【００５０】
これら制御は、目標アイドリング回転数に対する実アイドリング回転数の偏差に基づいてスロットルバルブ７２Ｌ，７２Ｒの開度を制御し、吸入空気量を調整することで、実アイドリング回転数を目標アイドリング回転数に近付けるためのものである。つまり、ＩＳＣフィードバック制御のＩＳＣフィードバック値及びＩＳＣ学習制御のＩＳＣ学習値（本発明でいう補正量）に基づいてスロットルバルブ７２Ｌ，７２Ｒの開度を制御し、実アイドリング回転数を目標アイドリング回転数に近付けるようにしている。
【００５１】
尚、上記目標アイドリング回転数は、エンジンＥの暖機状態（上記水温センサ１０１によって検出される冷却水温度に基づく暖機状態）、空調装置のＯＮ／ＯＦＦ状態、その他の補機類（オルタネータやヘッドランプ等）の作動状態に基づいて、所定の演算式による算出またはマップからの読み出しにより設定される。
【００５２】
（ＩＳＣフィードバック制御）
先ず、図３のフローチャートに沿ってＩＳＣフィードバック制御について説明する。このＩＳＣフィードバック制御は、ＩＳＣフィードバック値（アイドリング運転時における吸入空気の補正量：Ｌ／ｓｅｃ）を求め、このＩＳＣフィードバック値だけ補正された吸入空気量が得られるようにスロットルバルブ７２Ｌ，７２Ｒの開度を制御するものであって、左バンク用ＥＣＵ９Ｌ及び右バンク用ＥＣＵ９Ｒのそれぞれにおいて互いに独立して行われる。つまり、上記スロットルバルブ７２Ｌ，７２Ｒの開度を制御するためのＩＳＣフィードバック値を左バンク２Ｌ及び右バンク２Ｒのそれぞれについて求め、このＩＳＣフィードバック値に従って、各バンク２Ｌ，２Ｒそれぞれのスロットルバルブ７２Ｌ，７２Ｒを独立制御するものである。また、この図３に示すルーチンは、エンジンＥの駆動時において所定のサイクルタイム（例えば８ｍｓｅｃ）で繰り返し実行される。
【００５３】
先ず、ステップＳＴ１において、ＩＳＣフィードバック制御実行条件が成立しているか否かを判定する。このＩＳＣフィードバック制御実行条件は、例えば、エンジンＥの暖機が完了（上記水温センサ１０１によって検出される冷却水温度が所定温度（例えば６０℃）以上）、アクセルペダルの開度が「０」（上記アクセル開度センサ１１０によって検出されるアクセル開度が「０」）、車速が所定値以下（上記車速センサ１２０によって検出される車速が「０」または略「０」）となっている場合に成立する。
【００５４】
上記ＩＳＣフィードバック制御実行条件が成立しておらず、ステップＳＴ１でＮＯ判定された場合には、ステップＳＴ２に移り、ＩＳＣフィードバック値（ＩＳＣＦＢ）、後述するＩＳＣフィードバック値下限ガードフラグ（ＦＩＳＣＦＢ＿Ｌ）及びＩＳＣフィードバック値上限ガードフラグ（ＦＩＳＣＦＢ＿Ｈ）を共に「０」にリセットし、本ルーチンを終了する。
【００５５】
一方、上記ＩＳＣフィードバック制御実行条件が成立しており、ステップＳＴ１でＹＥＳ判定された場合には、ステップＳＴ３以降のＩＳＣフィードバック値（ＩＳＣＦＢ）の算出動作を実行する。
【００５６】
先ず、ステップＳＴ３では、上記クランク角センサ１０６からの出力信号に基づいて算出される実アイドリング回転数（Ｎｅ）から目標アイドリング回転数（Ｎｔ）を減算した値（Ｎｅ−Ｎｔ）が所定の判定閾値（ＨＮｅ）よりも大きいか否かを判定する。この判定閾値（ＨＮｅ）としては例えば１５０ｒｐｍが挙げられるが、この値に限定されるものではない。
【００５７】
そして、この値（Ｎｅ−Ｎｔ）が判定閾値（ＨＮｅ）よりも大きい場合、つまり、目標アイドリング回転数（Ｎｔ）に対して実アイドリング回転数（Ｎｅ）が高くなりすぎている場合、ステップＳＴ３でＹＥＳ判定されてステップＳＴ４に移る。
【００５８】
ステップＳＴ４では、前回求められたＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ−１）：初期値は「０」）を所定の補正量（ＦＢ１）だけ減算し、今回のＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ））として更新する。
【００５９】
その後、ステップＳＴ５に移り、上記ステップＳＴ４で算出されたＩＳＣフィードバック値（ＩＳＣＦＢ）が、予め設定されたＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ）以下となっているか否かを判定する。このＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ）は、上記ＩＳＣフィードバック値（ＩＳＣＦＢ）の適正範囲の下限値（マイナス値）として設定されている。
【００６０】
上記ＩＳＣフィードバック値（ＩＳＣＦＢ）がＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ）以下となっており、ステップＳＴ５でＹＥＳ判定された場合には、ステップＳＴ６に移り、ＩＳＣフィードバック値（ＩＳＣＦＢ）をＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ）でガード処理する。つまり、ＩＳＣフィードバック値（ＩＳＣＦＢ）をＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ）に制限する。また、この際、上記ＩＳＣフィードバック値下限ガードフラグ（ＦＩＳＣＦＢ＿Ｌ）を「１」にセットし、その後、本ルーチンを終了する。この状態では、ＩＳＣフィードバック値（ＩＳＣＦＢ）は下限値（上記ＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ））に張り付いている。
【００６１】
一方、ＩＳＣフィードバック値（ＩＳＣＦＢ）がＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ）よりも大きい場合にはステップＳＴ５でＮＯ判定され、ステップＳＴ７に移る。このステップＳＴ７では、上記ステップＳＴ４で算出したＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ））をそのまま採用する。つまり、このＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ））を今回のＩＳＣフィードバック値（ＩＳＣＦＢ）として設定する。また。このステップＳＴ７では、上記ＩＳＣフィードバック値下限ガードフラグ（ＦＩＳＣＦＢ＿Ｌ）を「０」にリセットし、その後、本ルーチンを終了する。
【００６２】
一方、上記ステップＳＴ３において、実アイドリング回転数（Ｎｅ）から目標アイドリング回転数（Ｎｔ）を減算した値（Ｎｅ−Ｎｔ）が所定の判定閾値（ＨＮｅ）以下である場合には、ステップＳＴ３でＮＯ判定されてステップＳＴ８に移る。
【００６３】
ステップＳＴ８では、上記ＩＳＣフィードバック値下限ガードフラグ（ＦＩＳＣＦＢ＿Ｌ）を「０」にリセットする。
【００６４】
このステップＳＴ８の動作の後、ステップＳＴ９に移り、目標アイドリング回転数（Ｎｔ）から実アイドリング回転数（Ｎｅ）を減算した値（Ｎｔ−Ｎｅ）が所定の判定閾値（ＬＮｅ）よりも大きいか否かを判定する。この判定閾値（ＬＮｅ）としては例えば１００ｒｐｍが挙げられるが、この値に限定されるものではない。
【００６５】
そして、この値（Ｎｔ−Ｎｅ）が判定閾値（ＬＮｅ）よりも大きい場合、つまり、目標アイドリング回転数（Ｎｔ）に対して実アイドリング回転数（Ｎｅ）が低くなりすぎている場合、ステップＳＴ９でＹＥＳ判定されてステップＳＴ１０に移る。
【００６６】
ステップＳＴ１０では、前回求められたＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ−１）：初期値は「０」）を所定の補正量（ＦＢ２）だけ加算し、今回のＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ））として更新する。
【００６７】
その後、ステップＳＴ１１に移り、上記ステップＳＴ１０で算出されたＩＳＣフィードバック値（ＩＳＣＦＢ）が、予め設定されたＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ）以上となっているか否かを判定する。このＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ）は、上記ＩＳＣフィードバック値（ＩＳＣＦＢ）の適正範囲の上限値として設定されている。
【００６８】
上記ＩＳＣフィードバック値（ＩＳＣＦＢ）がＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ）以上となっており、ステップＳＴ１１でＹＥＳ判定された場合には、ステップＳＴ１２に移り、ＩＳＣフィードバック値（ＩＳＣＦＢ）をＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ）でガード処理する。つまり、ＩＳＣフィードバック値（ＩＳＣＦＢ）をＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ）に制限する。また、この際、上記ＩＳＣフィードバック値上限ガードフラグ（ＦＩＳＣＦＢ＿Ｈ）を「１」にセットし、その後、本ルーチンを終了する。この状態では、ＩＳＣフィードバック値（ＩＳＣＦＢ）は上限値（上記ＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ））に張り付いている。
【００６９】
一方、ＩＳＣフィードバック値（ＩＳＣＦＢ）がＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ）よりも小さい場合にはステップＳＴ１１でＮＯ判定され、ステップＳＴ１３に移る。このステップＳＴ１３では、上記ステップＳＴ１０で算出したＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ））をそのまま採用する。つまり、このＩＳＣフィードバック値（ＩＳＣＦＢ（ｎ））を今回のＩＳＣフィードバック値（ＩＳＣＦＢ）として設定する。また。このステップＳＴ１３では、上記ＩＳＣフィードバック値上限ガードフラグ（ＦＩＳＣＦＢ＿Ｈ）を「０」にリセットし、その後、本ルーチンを終了する。
【００７０】
一方、上記ステップＳＴ９において、目標アイドリング回転数（Ｎｔ）から実アイドリング回転数（Ｎｅ）を減算した値（Ｎｔ−Ｎｅ）が所定の判定閾値（ＬＮｅ）以下である場合、つまり、目標アイドリング回転数（Ｎｔ）に対して実アイドリング回転数（Ｎｅ）が所定範囲内にある場合には、ステップＳＴ９でＮＯ判定されてステップＳＴ１４に移る。
【００７１】
ステップＳＴ１４では、現在設定されているＩＳＣフィードバック値（ＩＳＣＦＢ）を維持しながら、上記ＩＳＣフィードバック値上限ガードフラグ（ＦＩＳＣＦＢ＿Ｈ）を「０」にリセットし、その後、本ルーチンを終了する。
【００７２】
以上のようなＩＳＣフィードバック制御が各ＥＣＵ９Ｌ，９Ｒそれぞれにおいて互いに独立して行われ、目標アイドリング回転数（Ｎｔ）に対する実アイドリング回転数（Ｎｅ）の偏差に基づいてＩＳＣフィードバック値（ＩＳＣＦＢ）を各バンク２Ｌ，２Ｒそれぞれ独立して更新し、スロットルバルブ７２Ｌ，７２Ｒの開度を制御して、吸入空気量を調整することで、実アイドリング回転数（Ｎｅ）を目標アイドリング回転数（Ｎｔ）に近付けるようにしている。
【００７３】
（ＩＳＣ学習制御）
次に、図４のフローチャートに沿ってＩＳＣ学習制御について説明する。エンジンＥのアイドリング運転時におけるスロットルバルブ７２Ｌ，７２Ｒの開度は、エンジンＥＣＵ９Ｌ，９Ｒから同一の開度信号を送信したとしても経時的に変化していく。
【００７４】
例えば上記吸気マニホールド７Ｌ，７Ｒの内壁面やスロットルバルブ７２Ｌ，７２Ｒの回転軸周辺にデポジット等の異物が付着するなどの原因で変化していく。つまり、エンジンＥＣＵ９Ｌ，９Ｒによって求められたスロットルバルブ７２Ｌ，７２Ｒの開度と実際のスロットルバルブ７２Ｌ，７２Ｒの開度との間には経時的にズレが生じる。
【００７５】
これでは吸入空気量を適切に調整することができないので、上記ＩＳＣ学習制御によって、この経時的な変化を考慮した開度信号がエンジンＥＣＵ９Ｌ，９Ｒから送信されるように、ＩＳＣ学習値を更新し、この更新されたＩＳＣ学習値に基づき、また上述したＩＳＣフィードバック値と共にスロットルバルブ７２Ｌ，７２Ｒの開度を適正に調整できるようにしている。即ち、このＩＳＣ学習制御は、ＩＳＣ学習値を求めてスロットルバルブ７２Ｌ，７２Ｒの開度を制御するものであって、左バンク用ＥＣＵ９Ｌ及び右バンク用ＥＣＵ９Ｒのそれぞれにおいて互いに独立して行われる。つまり、上記スロットルバルブ７２Ｌ，７２Ｒの開度を制御するためのＩＳＣ学習値を左バンク２Ｌ及び右バンク２Ｒのそれぞれについて求め、このＩＳＣ学習値に従って、各バンク２Ｌ，２Ｒそれぞれのスロットルバルブ７２Ｌ，７２Ｒを制御するものである。また、この図４に示すルーチンは、エンジンＥの駆動時において所定のサイクルタイム（例えば８ｍｓｅｃ）で繰り返し実行される。
【００７６】
先ず、ステップＳＴ２１において、ＩＳＣ学習制御実行条件が成立しているか否かを判定する。このＩＳＣ学習制御実行条件は、例えば、上記ＩＳＣフィードバック値の絶対値が所定値以上（例えば吸入空気量で±２Ｌ／ｓｅｃを超える補正（増量補正及び減量補正の両方を含む））、エンジンＥの暖機が完了、アクセルペダルの開度が「０」、車速が所定値以下となっている場合に成立する。
【００７７】
上記ＩＳＣ学習制御実行条件が成立しておらず、ステップＳＴ２１でＮＯ判定された場合には、ステップＳＴ２２に移り、ＩＳＣ学習値（ＩＳＣＬＲ）、後述するＩＳＣ学習値下限ガードフラグ（ＦＩＳＣＬＲ＿Ｌ）及びＩＳＣ学習値上限ガードフラグ（ＦＩＳＣＬＲ＿Ｈ）を共に「０」にリセットし、本ルーチンを終了する。
【００７８】
一方、上記ＩＳＣ学習制御実行条件が成立しており、ステップＳＴ２１でＹＥＳ判定された場合には、ステップＳＴ２３以降のＩＳＣ学習値（ＩＳＣＬＲ）の算出動作を実行する。
【００７９】
先ず、ステップＳＴ２３では、上記ＩＳＣフィードバック制御によって求められたＩＳＣフィードバック値（ＩＳＣＦＢ）が所定の判定閾値（ＨＦＢ）よりも大きいか否かを判定する。この判定閾値（ＨＦＢ）としては例えば２Ｌ／ｓｅｃが挙げられるが、この値に限定されるものではない。
【００８０】
そして、このＩＳＣフィードバック値（ＩＳＣＦＢ）が判定閾値（ＨＦＢ）よりも大きい場合、ＩＳＣフィードバック値（ＩＳＣＦＢ）を小さくする（「０」に近付ける）ためにＩＳＣ学習値（ＩＳＣＬＲ）を大きくする必要があると判断して、ステップＳＴ２４において、前回求められたＩＳＣ学習値（ＩＳＣＬＲ（ｎ−１）：初期値は「０」）を所定の補正量（ＬＲ１）だけ大きくし、今回のＩＳＣ学習値（ＩＳＣＬＲ（ｎ））として更新する。
【００８１】
その後、ステップＳＴ２５に移り、上記ステップＳＴ２４で算出されたＩＳＣ学習値（ＩＳＣＬＲ）が、予め設定されたＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ）以上となっているか否かを判定する。このＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ）は、上記ＩＳＣ学習値（ＩＳＣＬＲ）の適正範囲の上限値として設定されている。
【００８２】
上記ＩＳＣ学習値（ＩＳＣＬＲ）がＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ）以上となっており、ステップＳＴ２５でＹＥＳ判定された場合には、ステップＳＴ２６に移り、ＩＳＣ学習値（ＩＳＣＬＲ）をＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ）でガード処理する。つまり、ＩＳＣ学習値（ＩＳＣＬＲ）をＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ）に制限する。また、この際、上記ＩＳＣ学習値上限ガードフラグ（ＦＩＳＣＬＲ＿Ｈ）を「１」にセットし、その後、本ルーチンを終了する。この状態では、ＩＳＣ学習値（ＩＳＣＬＲ）は上限値（上記ＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ））に張り付いている。
【００８３】
一方、ＩＳＣ学習値（ＩＳＣＬＲ）がＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ）よりも小さい場合にはステップＳＴ２５でＮＯ判定され、ステップＳＴ２７に移る。このステップＳＴ２７では、上記ステップＳＴ２４で算出したＩＳＣ学習値（ＩＳＣＬＲ（ｎ））をそのまま採用する。つまり、このＩＳＣ学習値（ＩＳＣＬＲ（ｎ））を今回のＩＳＣ学習値（ＩＳＣＬＲ）として設定する。また。このステップＳＴ２７では、上記ＩＳＣ学習値上限ガードフラグ（ＦＩＳＣＬＲ＿Ｈ）を「０」にリセットし、その後、本ルーチンを終了する。
【００８４】
一方、上記ステップＳＴ２３において、ＩＳＣフィードバック値（ＩＳＣＦＢ）が判定閾値（ＨＦＢ）以下である場合には、ステップＳＴ２３でＮＯ判定されてステップＳＴ２８に移る。
【００８５】
ステップＳＴ２８では、上記ＩＳＣ学習値上限ガードフラグ（ＦＩＳＣＬＲ＿Ｈ）を「０」にリセットする。
【００８６】
このステップＳＴ２８の動作の後、ステップＳＴ２９に移り、上記ＩＳＣフィードバック制御によって求められたＩＳＣフィードバック値（ＩＳＣＦＢ）が所定の判定閾値（ＬＦＢ）よりも小さいか否かを判定する。この判定閾値（ＬＦＢ）としては例えば−２Ｌ／ｓｅｃが挙げられるが、この値に限定されるものではない。
【００８７】
そして、このＩＳＣフィードバック値（ＩＳＣＦＢ）が判定閾値（ＬＦＢ）よりも小さい場合、ＩＳＣフィードバック値（ＩＳＣＦＢ）を大きくする（「０」に近付ける）ためにＩＳＣ学習値（ＩＳＣＬＲ）を小さくする必要があると判断して、ステップＳＴ３０において、前回求められたＩＳＣ学習値（ＩＳＣＬＲ（ｎ−１）：初期値は「０」）を所定の補正量（ＬＲ２）だけ小さくし、今回のＩＳＣ学習値（ＩＳＣＬＲ（ｎ））として更新する。
【００８８】
その後、ステップＳＴ３１に移り、上記ステップＳＴ３０で算出されたＩＳＣ学習値（ＩＳＣＬＲ）が、予め設定されたＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ）以下となっているか否かを判定する。このＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ）は、上記ＩＳＣ学習値（ＩＳＣＬＲ）の適正範囲の下限値（マイナス値）として設定されている。
【００８９】
上記ＩＳＣ学習値（ＩＳＣＬＲ）がＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ）以下となっており、ステップＳＴ３１でＹＥＳ判定された場合には、ステップＳＴ３２に移り、ＩＳＣ学習値（ＩＳＣＬＲ）をＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ）でガード処理する。つまり、ＩＳＣ学習値（ＩＳＣＬＲ）をＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ）に制限する。また、この際、上記ＩＳＣ学習値下限ガードフラグ（ＦＩＳＣＬＲ＿Ｌ）を「１」にセットし、その後、本ルーチンを終了する。この状態では、ＩＳＣ学習値（ＩＳＣＬＲ）は下限値（上記ＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ））に張り付いている。
【００９０】
一方、ＩＳＣ学習値（ＩＳＣＬＲ）がＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ）よりも大きい場合にはステップＳＴ３１でＮＯ判定され、ステップＳＴ３３に移る。このステップＳＴ３３では、上記ステップＳＴ３０で算出したＩＳＣ学習値（ＩＳＣＬＲ（ｎ））をそのまま採用する。つまり、このＩＳＣ学習値（ＩＳＣＬＲ（ｎ））を今回のＩＳＣ学習値（ＩＳＣＬＲ）として設定する。また。このステップＳＴ３３では、上記ＩＳＣ学習値下限ガードフラグ（ＦＩＳＣＬＲ＿Ｌ）を「０」にリセットし、その後、本ルーチンを終了する。
【００９１】
一方、上記ステップＳＴ２９において、ＩＳＣフィードバック値（ＩＳＣＦＢ）が判定閾値（ＬＦＢ）以上である場合には、ステップＳＴ２９でＮＯ判定されてステップＳＴ３４に移る。
【００９２】
ステップＳＴ３４では、現在設定されているＩＳＣ学習値（ＩＳＣＬＲ）を維持しながら、上記ＩＳＣ学習値下限ガードフラグ（ＦＩＳＣＬＲ＿Ｌ）を「０」にリセットし、その後、本ルーチンを終了する。
【００９３】
−ＩＳＣ異常判定動作−
次に、本実施形態において特徴とする動作であるＩＳＣ異常判定動作について説明する。このＩＳＣ異常判定動作は、上述したＩＳＣフィードバック制御及びＩＳＣ学習制御と並行される。つまり、これらＩＳＣフィードバック制御及びＩＳＣ学習制御において求められたＩＳＣフィードバック値及びＩＳＣ学習値を利用してＩＳＣ異常判定を行うものとなっている。
【００９４】
このＩＳＣ異常判定動作の概略について説明すると、上述した如くＩＳＣフィードバック制御及びＩＳＣ学習制御が左バンク用ＥＣＵ９Ｌ及び右バンク用ＥＣＵ９Ｒのそれぞれにおいて互いに独立して行われている状態で、各ＥＣＵ９Ｌ，９Ｒそれぞれにおいて共に異常（ＩＳＣ異常）の判定が行われた場合に限り、本エンジンＥのＩＳＣ異常が判定（ＩＳＣに異常が発生していると判定）されるようにしている（異常判定手段による異常判定動作）。このＩＳＣ異常判定としては、上記ＩＳＣ学習値が上限値（上記ＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ））または下限値（上記ＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ））に張り付いた状態が継続した場合に「異常有り」と判定するようにしている。
【００９５】
このため、一方のバンク（例えば左バンク２Ｌ）のみでＩＳＣ異常の判定が行われたとしても、エンジンＥのＩＳＣ異常判定とはせず（ＩＳＣに異常は発生していないと判定し）、他方のバンク（例えば右バンク２Ｒ）でのＩＳＣ制御を継続させて、エンジンＥのアイドリング運転時を継続させるようにしている。これは、この他方のバンクでのＩＳＣ制御を継続させることで、実アイドリング回転数（Ｎｅ）を目標アイドリング回転数（Ｎｔ）に近付けることができる可能性があるからであり、この他方のバンクでのＩＳＣ制御によってアイドリング回転数を適正に制御できれば、必要以上にＭＩＬを点灯させる必要が無くなるからである。
【００９６】
以下、図５及び図６のフローチャートに沿ってＩＳＣ異常判定動作について説明する。図５はＩＳＣ異常判定動作の手順を示すフローチャートであり、図６はＩＳＣ学習値上下限張り付きカウンタのカウント動作の手順を示すフローチャートである。
【００９７】
図５に示すＩＳＣ異常判定動作のルーチンはエンジンＥの駆動時において所定のサイクルタイム（例えば８ｍｓｅｃ）で繰り返し実行される。また、図６に示すＩＳＣ学習値上下限張り付きカウンタのカウント動作のルーチンはエンジンＥがアイドリング運転状態となる毎に繰り返し実行される。つまり、アクセルペダルの開度が「０」で車速が所定値以下（例えば車速が「０」）になる度に実行される。
【００９８】
先ず、ステップＳＴ４１において、ＩＳＣ異常判定動作を開始するに当たっての事前処理を実行する。例えば、上記水温センサ１０１からの冷却水温度情報の取得、上記アクセル開度センサ１１０からのアクセル開度情報の取得、上記車速センサ１２０からの車速情報の取得、上記クランク角センサ１０６からの出力信号に基づいて算出される実アイドリング回転数の取得、現在のＩＳＣフィードバック値の読み出し、現在のＩＳＣ学習値の読み出し等が行われる。
【００９９】
これら事前処理が行われた後、ステップＳＴ４２に移り、ＩＳＣ異常判定動作の実行条件が成立しているか否かを判定する。このＩＳＣ異常判定動作の実行条件は、例えば、エンジンＥの暖機が完了、アクセルペダルの開度が「０」、車速が所定値以下（例えば車速が「０」）であり、その状態が所定時間（例えば３ｓｅｃ）継続した場合に成立する。
【０１００】
ＩＳＣ異常判定動作の実行条件が成立していない場合には、ステップＳＴ４２でＮＯ判定され、そのまま本ルーチンを終了する。
【０１０１】
一方、ＩＳＣ異常判定動作の実行条件が成立しており、ステップＳＴ４２でＹＥＳ判定された場合には、ステップＳＴ４３に移り、実アイドリング回転数の判定動作、ＩＳＣフィードバック値の判定動作を実行する。
【０１０２】
具体的に、実アイドリング回転数の判定動作では、上記目標アイドリング回転数（Ｎｔ）に対する実アイドリング回転数（Ｎｅ）の偏差が所定値を越えているか否かを判定する。つまり、目標アイドリング回転数（Ｎｔ）から実アイドリング回転数（Ｎｅ）を減算した値の絶対値が所定値を越えているか否かを判定する。具体的には、実アイドリング回転数（Ｎｅ）から目標アイドリング回転数（Ｎｔ）を減算した値（Ｎｅ−Ｎｔ）が所定の判定閾値（ＨＮｅ）よりも大きい状況、または、目標アイドリング回転数（Ｎｔ）から実アイドリング回転数（Ｎｅ）を減算した値（Ｎｔ−Ｎｅ）が所定の判定閾値（ＬＮｅ）よりも大きい状況の何れかであるか否かを判定する。
【０１０３】
一方、ＩＳＣフィードバック値の判定動作では、上記ＩＳＣフィードバック制御によって設定されているＩＳＣフィードバック値（ＩＳＣＦＢ）が限界値に達しているか否かを判定する。具体的には、上記ＩＳＣフィードバック値（ＩＳＣＦＢ）が、上限値（上記ＩＳＣフィードバック上限ガード値（ＧＩＳＣＦＢ＿Ｈ））または下限値（上記ＩＳＣフィードバック下限ガード値（ＧＩＳＣＦＢ＿Ｌ））に張り付いた状態であるか否かを判定する。言い換えると、ＩＳＣフィードバック値（ＩＳＣＦＢ）が所定量以上の吸気量補正を行う値として設定されているか否かを判定する。
【０１０４】
そして、上記目標アイドリング回転数（Ｎｔ）に対する実アイドリング回転数（Ｎｅ）の偏差が所定値を越えており、且つＩＳＣフィードバック値（ＩＳＣＦＢ）が限界値に達している（上限値または下限値に張り付いた状態である）場合にはステップＳＴ４３でＹＥＳ判定されることになる。尚、これら条件のうちの少なくとも一方が成立しておらず、ステップＳＴ４３でＮＯ判定された場合には、ＩＳＣ正常であるとして、そのまま本ルーチンを終了する。
【０１０５】
上記ステップＳＴ４３でＹＥＳ判定されると、ステップＳＴ４４に移り、各バンク２Ｌ，２Ｒそれぞれにおいてカウントされている（左バンク用ＥＣＵ９Ｌ及び右バンク用ＥＣＵ９Ｒのそれぞれにおいてカウントされている）ＩＳＣ学習値上下限張り付きカウンタのカウント取得動作が行われる。
【０１０６】
ここで、図６に沿って、ＩＳＣ学習値上下限張り付きカウンタのカウント動作について説明する。このカウント動作も、左バンク用ＥＣＵ９Ｌ及び右バンク用ＥＣＵ９Ｒのそれぞれにおいて互いに独立して行われる。このＩＳＣ学習値上下限張り付きカウンタのカウント動作は、上述した如く、エンジンＥがアイドリング運転状態となる毎に繰り返し実行される。
【０１０７】
このカウント動作では、先ず、ステップＳＴ５１において、ＩＳＣ学習値上下限張り付きカウンタのカウントアップ条件が成立したか否かを判定する。このカウントアップ条件は、上記ＩＳＣ学習制御によって求められたＩＳＣ学習値が、上限値（上記ＩＳＣ学習上限ガード値（ＧＩＳＣＬＲ＿Ｈ））または下限値（上記ＩＳＣ学習下限ガード値（ＧＩＳＣＬＲ＿Ｌ））に張り付いた状態である場合に成立する。言い換えると、ＩＳＣ学習値（ＩＳＣＬＲ）が所定量以上の吸気量補正を行う値として設定されている場合に成立する。
【０１０８】
そして、このＩＳＣ学習値上下限張り付きカウンタのカウントアップ条件が成立している場合には、ステップＳＴ５１でＹＥＳ判定されてステップＳＴ５２に移り、現在のＩＳＣ学習値上下限張り付きカウンタに「１」だけカウントアップし、その値をＩＳＣ学習値上下限張り付きカウンタのカウント値として更新する。
【０１０９】
一方、ＩＳＣ学習値上下限張り付きカウンタのカウントアップ条件が成立していない場合には、このＩＳＣ学習値上下限張り付きカウンタをカウントアップすることなしに本ルーチンを終了する。
【０１１０】
以上の動作が、エンジンＥがアイドリング運転となる毎に繰り返し実行される。このため、上記カウントアップ条件が成立している状態（ＩＳＣ学習値が、上限値または下限値に張り付いている状態）では、エンジンＥがアイドリング運転となる毎にカウントアップされていくことになる。
【０１１１】
尚、このＩＳＣ学習値上下限張り付きカウンタのカウント値は、イグニッションＯＦＦ（エンジンＥの停止）に伴ってリセットされる。つまり、車両の１トリップ（イグニッションがＯＮされてからＯＦＦされるまでの期間）毎にカウント値の積算とリセットとが繰り返される。
【０１１２】
このようにして得られたカウント値が、上記ＩＳＣ異常判定動作（図５）のステップＳＴ４４で取得される。
【０１１３】
ステップＳＴ４５では、上記ＩＳＣ学習値上下限張り付きカウンタのカウント動作による両バンクのカウント値が共に所定値（α：例えば「５」）以上となっているか否かを判定する。つまり、上記１トリップ中に両バンクのカウント値が共に所定値に達したか否かを判定する。
【０１１４】
この判定動作としては、左バンク用ＥＣＵ９Ｌと右バンク用ＥＣＵ９Ｒとの間での相互通信により、相手側ＥＣＵでカウントされているＩＳＣ学習値上下限張り付きカウンタのカウント値を認識しておき、一方のＥＣＵ（例えば左バンク用ＥＣＵ９Ｌ）が代表して判定を行ってもよいし、両ＥＣＵ９Ｌ，９Ｒが共に判定を行ってもよい。
【０１１５】
この両バンクのカウント値が共に所定値以上となっており、ステップＳＴ４５でＹＥＳ判定された場合には、ステップＳＴ４６に移って、ＩＳＣ異常判定（ＩＳＣに異常が発生しているとの判定）を行い、ＩＳＣ異常判定フラグを「１」にセットした後、ステップＳＴ４７に移って、ＩＳＣ異常判定の後処理を実行する。このＩＳＣ異常判定の後処理としては、車室内の運転席前方に備えられたメータパネル上のＭＩＬを点灯させ、ドライバに異常発生の警告を行う。また、ダイアグノーシスへのＩＳＣ異常情報の書き込みを行う。具体的には、左バンク用ＥＣＵ９Ｌ及び右バンク用ＥＣＵ９Ｒのうち一方のＥＣＵ（例えば左バンク用ＥＣＵ９Ｌ）が各ＥＣＵ９Ｌ，９Ｒを統括し、上記ＩＳＣ異常判定時（ステップＳＴ４５でＹＥＳ判定された際）には、図示しないメータパネルＥＣＵに異常判定信号を送信することで、メータパネル上のＭＩＬを点灯させる。また、左バンク用ＥＣＵ９Ｌ及び右バンク用ＥＣＵ９Ｒがそれぞれ独立して異常判定信号を送信可能な構成としておき、これら双方からの異常判定信号をメータパネルＥＣＵが受けた場合にメータパネル上のＭＩＬを点灯させるようにしてもよい。
【０１１６】
一方、両バンクのカウント値が共に所定値未満であったり、片側のバンクのみにおいてカウント値が所定値以上となっている場合には、ステップＳＴ４５でＮＯ判定され、ＩＳＣ異常判定を行うことなく（ＩＳＣに異常が発生していないと判定し）ステップＳＴ４７に移る。この場合の後処理としては、上記取得したＩＳＣ学習値上下限張り付きカウンタのカウント値のＲＡＭ９３への記憶等が挙げられる。
【０１１７】
上述の如くＩＳＣが異常であるとの判定が行われた後であっても、正常に復帰する場合がある。例えば、上記吸気マニホールド７Ｌ，７Ｒの内壁面やスロットルバルブ７２Ｌ，７２Ｒの回転軸周辺にデポジット等の異物が付着していたことが原因でＩＳＣに異常が発生しているとの判定が行われた後に、吸気の流れなどによってこの異物が除去された場合などである。この場合には、異常とする判定を解除してＭＩＬを消灯させる必要がある。
【０１１８】
図７は、このＩＳＣ正常復帰時の動作の手順を示すフローチャートである。このＩＳＣ正常復帰のためのルーチンは１トリップ毎に繰り返し実行される。
【０１１９】
先ず、ステップＳＴ６１において、イグニッションキーの操作またはスタートスイッチの操作等のイグニッションＯＮ操作がなされたか否かを判定する。イグニッションＯＮ操作がなされておらず、ステップＳＴ６１でＮＯ判定された場合には、そのまま本ルーチンを終了する。
【０１２０】
イグニッションＯＮ操作がなされてステップＳＴ６１でＹＥＳ判定された場合には、現在、ＩＳＣ異常判定フラグは「１」にセットされているか否かを判定する。つまり、上述したＩＳＣ異常判定動作（図５）においてＩＳＣに異常が発生しているとの判定がなされてＩＳＣ異常判定フラグが「１」にセット（ステップＳＴ４６）されているか否かを判定する。
【０１２１】
ＩＳＣ異常判定フラグが「１」にセットされていない場合、つまり、ＩＳＣに異常が発生していないとの判定がなされている場合には、そのまま本ルーチンを終了する。
【０１２２】
一方、ＩＳＣ異常判定フラグが「１」にセットされており、ステップＳＴ６２でＹＥＳ判定された場合には、ステップＳＴ６３に移り、ＩＳＣは正常に戻ったか否かを判定する。具体的には、一旦ＩＳＣ異常判定フラグが「１」にセットされた後に、上記ＩＳＣ異常判定動作（図５）におけるステップＳＴ４３やステップＳＴ４５でＮＯ判定されたか否かを判定する。ＩＳＣが正常でない場合、つまりＩＳＣ異常が継続している場合には、ステップＳＴ６３でＮＯ判定され、そのまま本ルーチンを終了する。この場合、ＩＳＣ異常判定フラグは「１」に維持される。
【０１２３】
一方、ＩＳＣが正常に戻ったと判定された場合には、ステップＳＴ６３でＹＥＳ判定され、ステップＳＴ６４に移って、上記ＲＡＭ９３内に予め設定されているＩＳＣ正常復帰カウンタのカウント値に「１」を加算し、その値を新たなＩＳＣ正常復帰カウンタのカウント値として更新する。
【０１２４】
その後、ステップＳＴ６５に移り、上記ＩＳＣ正常復帰カウンタのカウント値が所定値（β：例えば「３」）以上となっているか否かを判定する。つまり、ＩＳＣが正常であるとの判定が３トリップに亘って行われたか否かを判定する。
【０１２５】
ＩＳＣ正常復帰カウンタのカウント値が所定値未満であり、ステップＳＴ６５でＮＯ判定された場合には、そのまま本ルーチンを終了する。
【０１２６】
一方、ＩＳＣ正常復帰カウンタのカウント値が所定値βに達しており、ステップＳＴ６５でＹＥＳ判定された場合にはステップＳＴ６６に移り、ＩＳＣ異常判定フラグを「０」にリセットする。これにより、上記メータパネル上のＭＩＬは消灯されることになる。また、ダイアグノーシスへの情報の書き込みとしては、ＩＳＣ正常とし、過去にＩＳＣ異常が生じていたこと（異常履歴）については継続して記憶させておく（正常判定手段による正常判定動作）。
【０１２７】
図８は、本実施形態のＩＳＣ異常発生時におけるアイドリング回転数、ＩＳＣフィードバック値、ＩＳＣ学習値、ＩＳＣ異常判定フラグの変化を示すタイミングチャートである。ＩＳＣ学習値の変化における実線Ａは一方のバンク（例えば右バンク）におけるＩＳＣ学習値の変化を示し、実線Ｂは他方のバンク（例えば左バンク）におけるＩＳＣ学習値の変化を示している。
【０１２８】
この図８に示すように、目標アイドリング回転数に対して高回転側及び低回転側にそれぞれ異常判定閾値を設定しておき、実アイドリング回転数が異常判定閾値を超えた場合（実アイドリング回転数が高回転側の異常判定閾値よりも高くなった場合や、実アイドリング回転数が低回転側の異常判定閾値よりも低くなった場合）にＩＳＣフィードバック値が更新されてスロットルバルブの開度が調整されるようになっている。図８では、実アイドリング回転数が高回転側の異常判定閾値よりも高くなった場合を示している。
【０１２９】
また、ＩＳＣフィードバック値による吸入空気の補正量に応じてＩＳＣ学習値が更新され、このＩＳＣ学習値によってもスロットルバルブの開度が調整される。
【０１３０】
そして、本実施形態では、両バンク共に異常判定フラグが「１」にセットされた時点から所定時間経過後にＩＳＣに異常が発生していると判定してＭＩＬを点灯するようにしている。
【０１３１】
図８に示すものでは、タイミングＴ１において右バンク２ＲにおけるＩＳＣ学習値が下限ガード値に達し（右バンク２ＲのＩＳＣ学習値が下限値に張り付き）、これに伴って右バンク異常判定フラグが「１」にセットされ、タイミングＴ２において左バンク２ＬにおけるＩＳＣ学習値が下限ガード値に達し（左バンク２ＬのＩＳＣ学習値が下限値に張り付き）、これに伴って左バンク異常判定フラグが「１」にセットされ、その所定時間経過後であるタイミングＴ３においてＩＳＣに異常が発生しているとの判定を行ってＭＩＬを点灯している。
【０１３２】
以上説明してきたように本実施形態では、各ＥＣＵ９Ｌ，９Ｒそれぞれにおいて共に異常（ＩＳＣ異常）の判定が行われた場合に限り、エンジンＥのＩＳＣ異常と判定するようにしている。一方のバンクのみでＩＳＣ異常が発生した場合、他方のバンクでのＩＳＣ制御によってアイドリング回転数を適正に制御できる可能性がある。図８における二点鎖線は、右バンク２ＲでＩＳＣ異常が発生した場合に、左バンク２ＬにおけるＩＳＣ制御によってアイドリング回転数を適正に制御できている状況を示している。このように本実施形態では、両バンク共にＩＳＣ異常が発生しない限り異常とする判定を行わないようにし、アイドリング回転数の適正化を図ることを可能にしている。そして、上記他方のバンクにおいてもＩＳＣ異常と判定された場合には、アイドリング回転数の適正化を図ることは不可能であるとして異常と判定するようにしている。従来では、一方のバンクのみでＩＳＣ異常が発生した場合にエンジンＥのＩＳＣ異常と判定するようにしていたため、上記アイドリング回転数の適正化が図れる状況であっても点検や部品交換等を促すことになっていた。従って、本実施形態によれば、異常判定タイミングの適正化が図れ、上記点検や部品交換を不要にすることができる。
【０１３３】
−他の実施形態−
以上説明した実施形態では、自動車用Ｖ型エンジンＥに本発明を適用した場合について説明した。本発明はこれに限らず、自動車用水平対向型エンジン、自動車用直列型エンジン等に対しても適用可能である。また、ガソリンエンジンに限らずディーゼルエンジンにも適用可能である。また、本発明は、エンジンの気筒数、燃料噴射方式、その他、エンジンＥの仕様は特に限定されるものではない。
【０１３４】
また、本発明は、ＦＦ（フロントエンジン・フロントドライブ）型車両、ＦＲ（フロントエンジン・リアドライブ）型車両、４輪駆動車の何れにも適用できる。
【０１３５】
また、上記実施形態では、スロットルバルブ７２Ｌ，７２Ｒの開度調整によってアイドリング回転数を制御するものとしていた。本発明はこれに限らず、スロットルバルブをバイパスするバイパス管にＩＳＣバルブを備えさせ、このＩＳＣバルブの開度調整によってアイドリング回転数を制御するものに対しても適用可能である。
【０１３６】
更に、上記実施形態では、両バンク２Ｌ，２Ｒの異常判定フラグが「１」にセットされた時点から所定時間経過後に異常とする判定を行うようにしていたが、両バンク２Ｌ，２Ｒの異常判定フラグが「１」にセットされた時点で異常とする判定を行うようにしてもよい。
【０１３７】
また、上記実施形態では２つの気筒群（２つのバンク２Ｌ，２Ｒ）毎にアイドリング回転数の補正動作を行う場合について説明した。本発明はこれに限らず、３つ以上の気筒群を備え、各気筒群毎にアイドリング回転数の補正動作を行うものに対しても適用可能である。この場合、必ずしもＥＣＵとしては気筒群毎に備えさせる必要はない。
【産業上の利用可能性】
【０１３８】
本発明は、各バンク毎にＩＳＣ制御を行うＶ型エンジンに対し、ＩＳＣ異常発生時の異常判定動作に適用可能である。
【符号の説明】
【０１３９】
２Ｌ，２Ｒ      バンク（気筒群）
７２Ｌ，７２Ｒ  スロットルバルブ（吸気量調整手段）
９Ｌ，９Ｒ      エンジンＥＣＵ
１０６          クランク角センサ
Ｅ              エンジン（内燃機関）
【図１】
2011127488.tif 000003
【図２】
2011127488.tif 000004
【図３】
2011127488.tif 000005
【図４】
2011127488.tif 000006
【図５】
2011127488.tif 000007
【図６】
2011127488.tif 000008
【図７】
2011127488.tif 000009
【図８】
2011127488.tif 000010
【図９】
2011127488.tif 000011