(57)【要約】      （修正有）【課題】気筒休止機構を備えたエンジンにおいて、気筒の休止状態を判定する。【解決手段】プログラム制御の電子制御装置からの指令に応じて複数の気筒のうち一つまたは複数の気筒を休止させることができる内燃機関の気筒の休止状態を判定する。この装置は、内燃機関への吸入空気量に応じた信号を出力する検出手段を備える。電子制御装置（ＥＣＵ）は、検出手段からの信号を複数の基本周波数についてフーリエ変換するフーリエ変換手段を備え、複数の基本周波数についてのフーリエ変換のスペクトルと内燃機関の気筒休止状態との間の予め求められた関係に基づいて、フーリエ変換手段から得られるスペクトルから、気筒の休止状態を判定する。電子制御装置は、フーリエ変換手段から得られる位相から、休止している気筒を識別する。【選択図】図６
2010150974.tif 000002
【特許請求の範囲】
【請求項１】
プログラム制御の電子制御装置からの指令に応じて複数の気筒のうち一つまたは複数の気筒を休止させることができる内燃機関の気筒の稼働状態を判定する装置であって、
前記内燃機関への吸入空気量に応じた信号を出力する検出手段を備え、
前記電子制御装置は、
前記検出手段からの信号を複数の基本周波数についてフーリエ変換するフーリエ変換手段と、
前記複数の基本周波数についてのフーリエ変換のスペクトルと前記内燃機関の気筒休止状態との間の予め求められた関係に基づいて、前記フーリエ変換手段から得られるスペクトルから、気筒の休止状態を判定するよう構成されている、
内燃機関の気筒の休止状態を判定する装置。
【請求項２】
前記複数の基本周波数は、前記内燃機関の１サイクル分のクランク角720度に対応する第１の基本周波数と、該基本周波数より大きく、吸入空気量を表す信号の周波数に対応する他の基本周波数を含む、請求項１に記載の装置。
【請求項３】
前記電子制御装置は、前記複数の基本周波数について前記フーリエ変換手段から得られるスペクトルと前記内燃機関の気筒休止状態との間の予め求められた関係に基づいて、気筒休止状態の判定を行うための閾値を提供する閾値提供手段を備え、
該閾値は、前記内燃機関の回転数および負荷の一方または両方に応じて提供される、請求項２に記載の装置。
【請求項４】
前記フーリエ変換で得られる位相情報に基づいて休止している気筒を特定するよう構成した、請求項３に記載の装置。
【請求項５】
判定された前記気筒の休止状態が、電子制御装置の指令と一致しているかどうかを判定し、判定が正常であるときには、気筒休止機構を油圧作動させるための油圧回路内に設置された油圧検出手段の異常判定を行う、請求項１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の気筒の一部の作動を休止させる気筒休止制御を実施する機構を備える内燃機関について、気筒の休止状態を判定する装置に関する。
【背景技術】
【０００２】
複数の気筒の一部の作動を休止する気筒休止機構を備える内燃機関がある。このような内燃機関では、運転状態に従って、該複数の気筒のすべてを作動させる全気筒運転と、一部の気筒の作動を休止する気筒休筒運転とが切り換えられる。
【０００３】
特許文献１には、このような全気筒運転と気筒休止運転の間の切り換えの故障を検出する手法が記載されている。この手法によれば、検出されたエンジン回転数とスロットル弁の開度に基づいて推定した全気筒運転時の吸気管圧と、吸気管に設けられたセンサで検出された実際の吸気管圧とを比較することにより、該切り換えの故障を判定する。
【０００４】
また、特許文献２には、車両の減速運転時に気筒休止制御を開始するための指令が内燃機関に出力された後に、検出された吸入空気量と、内燃機関の回転数に基づいて設定されたい値とを比較し、検出された吸入空気量がしきい値以上の時、気筒休止制御に故障が生じたと判定することが記載されている。減速時において、全気筒運転と気筒休止運転とでは吸入空気量に大きな差ができることを利用している。
【０００５】
さらに、特許文献３には、減速時に一部の気筒を休止させるエンジンにおいて、気筒の吸気弁および排気弁の作動、休止を切り替える油路切り替え装置の下流に設置された油圧検出センサで油圧を監視して装置の故障を判定することが記載されている。
【特許文献１】特開平６−１４６９３７号公報
【特許文献２】特開２００５−１３９９６２公報
【特許文献３】特開２００３−８３１４８公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の気筒休止機構の故障判定手法は、気筒休止機構が全体として故障していることを判定するもので、稼働している気筒および休止している気筒を識別することはできなかった。電子制御装置からの指令により気筒休止機構が適正に動作しているかどうかを監視するためには、それぞれの気筒が稼働しているか休止しているかを識別する必要性がある。
【０００７】
したがって、気筒休止機構を備えたエンジンにおいて、気筒の休止状態を判定する手法が求められている。
【課題を解決するための手段】
【０００８】
この発明は、プログラム制御の電子制御装置からの指令に応じて複数の気筒のうち一つまたは複数の気筒を休止させることができる内燃機関の気筒の休止状態を判定する装置を提供する。
【０００９】
この装置は、内燃機関への吸入空気量に応じた信号を出力する検出手段を備え、電子制御装置（ＥＣＵ）は、前記検出手段からの信号を複数の基本周波数についてフーリエ変換するフーリエ変換手段を備え、前記複数の基本周波数についてのフーリエ変換のスペクトルと前記内燃機関の気筒休止状態との間の予め求められた関係に基づいて、前記フーリエ変換手段から得られるスペクトルから、気筒の休止状態を判定するよう構成されている。
【００１０】
この発明の一実施形態において、電子制御装置は、さらに前記フーリエ変換手段から得られる位相から、休止している気筒を識別するよう構成されている。
【００１１】
さらに一形態では、前記複数の基本周波数は、前記内燃機関の１サイクル分の720度に対応する第１の基本周波数と、この基本周波数より大きく、吸入空気量を表す信号の周波数に対応する他の基本周波数を含む。
【００１２】
この発明のもう一つの形態では、電子制御装置は、前記複数の基本周波数について前記フーリエ変換手段から得られるスペクトルと内燃機関の気筒休止状態との間の予め求められた関係に基づいて、気筒休止状態の判定を行うための閾値を提供する閾値提供手段を備え、この閾値は、前記内燃機関の回転数および負荷の一方または両方に応じて提供される。
【００１３】
さらにこの発明の一形態では、フーリエ変換で得られる位相情報に基づいて休止している気筒を特定する。
【００１４】
一実施形態では、判定された気筒の休止状態が、電子制御装置の指令と一致しているかどうかを判定し、判定が正常であるときには、気筒休止機構を油圧作動させるための油圧回路内に設置された油圧検出手段の異常判定を行う。
【発明を実施するための最良の形態】
【００１５】
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態に従う、内燃機関およびその制御装置の全体構成図である。
【００１６】
電子制御ユニット（以下、「ＥＣＵ」）という）１は、中央演算処理装置（ＣＰＵ）およびメモリを備えるコンピュータである。メモリには、車両の様々な制御を実現するためのコンピュータ・プログラムおよび該プログラムの実施に必要なデータ（マップを含む）を格納することができる。ＥＣＵ１は、車両の各部から信号を受取ると共に、該メモリに記憶されたデータおよびプログラムに従って演算を行い、車両の各部を制御するための制御信号を生成する。
【００１７】
エンジン２は、可変気筒数のエンジンであり、Ｃ１からＣ３の３気筒を有する第１のバンクと、Ｃ４からＣ６の３気筒を有する第２のバンクを備える。各気筒には、吸気管３および排気管４が連結されている。各気筒の吸気管３には、燃料噴射弁５が設けられている。燃料噴射弁５は、燃料ポンプ（図示せず）を介して燃料を噴射する。燃料噴射弁５の燃料噴射時期および燃料噴射量は、ＥＣＵ１からの制御信号に従って変更される。
【００１８】
各気筒の吸気管３の集合部の上流の吸気通路６には、スロットル弁７が設けられている。スロットル弁７の開度は、ＥＣＵ１からの制御信号に従って制御される。スロットル弁７の開度を制御することにより、エンジン２に吸入される空気の量を制御することができる。
【００１９】
スロットル弁７の上流には、吸気通路６を流れる空気の量を検出するエアフローメータ（ＡＦＭ）８と、吸気通路６の温度を検出する吸気温（ＴＡ）センサ１１が設けられている。該エアフローメータ８およびＴＡセンサ１１の検出値は、ＥＣＵ１に送られる。スロットル弁７を通過した空気は、サージタンク９を介して各吸気管３に吸入される。サージタンク９には、吸気通路６の圧力（絶対圧）を検出するためのＭＡＰセンサ１０が設けられており、該ＭＡＰセンサ１０の検出値はＥＣＵ１に送られる。
【００２０】
第１のバンクには、気筒Ｃ１からＣ３の稼動および休止を切換える気筒休止機構２１ａが設けられ、第２のバンクには、気筒Ｃ４の稼動および休止を切換える気筒休止機構２１ｂが設けられる。第１および第２の気筒休止機構２１ａおよび２１ｂには、気筒休止のための油路２２が接続されており、油路２２は、制御弁２３を介してオイルポンプ２４に接続されている。
【００２１】
気筒休止機構２１ａおよび２１ｂは、クランク軸の動力によって駆動されるオイルポンプから吐出される潤滑油を作動油とする油圧作動式の機構であり、特許文献３および特開２００５−１０５８６９号公報に詳細が記載されている。簡単に説明すると、高圧の作動油の作用で連結ピンがスライドしてカムリフト用ロッカーアームと排気弁駆動用のロッカーアームおよび吸気弁駆動用のロッカーアームとの連結が解除され、排気弁および吸気弁が休止する状態になる。これと同時にこの気筒への燃料噴射は停止される。
【００２２】
休止機構に低圧の作動油が供給されるときは、スプリングの作用で連結ピンがスライドしてカムリフト用ロッカーアームと排気弁駆動用のロッカーアームおよび吸気弁駆動用のロッカーアームとを連結させる。こうして、排気弁および吸気弁が駆動されるようになる。これと同時にこの気筒への燃料噴射が再開される。
【００２３】
制御弁２３は、ＥＣＵ１からの制御信号に従って、第１および第２の気筒休止機構２１ａおよび２１ｂに対して作用する油圧を低圧と高圧との間で切り換えることによって、所望の気筒の稼動および休止を切換える。ＥＣＵ１は、上記各種センサからの入力信号に応じて、メモリに記憶されたプログラムおよびデータ（マップを含む）に従い、エンジン２の運転状態を検出すると共に、スロットル弁７、燃料噴射弁５、制御弁２３を制御するための制御信号を生成する。
【００２４】
ここで、図２を参照して、可変に気筒数を変更する機構について、より具体的に説明する。第１のバンクの気筒Ｃ１からＣ３には、気筒休止機構２１ａ―１〜２１ａ―３（図１の気筒休止機構２１ａは、これらをまとめて表したものである）をそれぞれ介して、気筒休止のための油路２２が接続されている。第２のバンクの気筒Ｃ４には、気筒休止機構２１ｂを介して、油路２２が接続されている。第２のバンクの気筒Ｃ５およびＣ６には、休止機構は備えられておらず、よって油路２２は接続されていない。気筒Ｃ５およびＣ６は、休止することなく稼働する。
【００２５】
油路２２は、オイルポンプ２４を介してオイルタンク２７に接続されている。油路２２には、３つの制御弁２３ａ〜２３ｃ（図１の制御弁２３は、これらをまとめて表したものである）が設けられており、第１の制御弁２３ａは、第１のバンクの気筒Ｃ１からＣ３の休止機構２１ａ―１、２１ａ−２および２１ａ−３への作動油の圧力を高圧と低圧との間で切り換えるための弁である。第２の制御弁２３ｂは、第１のバンクの気筒Ｃ３の休止機構２１ａ―３への作動油の圧力を高圧と低圧との間で切り換えるための弁である。第３の制御弁２３ｃは、第２のバンクの気筒Ｃ４の休止機構２１ｂへの作動油の圧力を高圧と低圧との間で切り換えるための弁である。これらの制御弁は、ＥＣＵ１からの制御信号により制御される。
【００２６】
この実施例では、３つの運転モードがある。第１のモードは、気筒Ｃ１からＣ６のすべての吸気弁および排気弁を稼動させる全筒運転である。第２のモードは、第１のバンクの気筒Ｃ３および第２のバンクの気筒Ｃ４の２つの気筒の吸気弁および排気弁の稼動を休止する２筒休止運転である。第３のモードは、第１のバンクの気筒Ｃ１からＣ３の３つの気筒の吸気弁および排気弁の稼動を休止する３筒休止運転である。
【００２７】
第１のモードである全筒運転を行うときには、休止機構２１ａ―１〜２１ａ―３および２１ｂが非作動状態になるように、制御弁２３ａから２３ｃが制御され、いずれの休止機構に対しても低圧の作動油を作用させる。
【００２８】
第２のモードである２筒休止運転を行うときには、休止機構２１ａ―３および２１ｂが作動状態になるよう、制御弁２３ｂおよび２３ｃによって高圧の作動油を作用させると共に、他の休止機構２１ａ―１および２１ａ−２が非作動状態になるように、制御弁２３ａによって低圧の作動油を作用させる。
【００２９】
第３のモードである３筒休止運転を行うときには、第１のバンクのすべての休止機構２１ａ―１〜２１ａ―３のすべてが作動状態になるように、制御弁２３ａおよび２３ｂによって高圧の作動油を作用させる。」同時に休止機構２１ｂが非作動になるように、制御弁２３ｃによって低圧の作動油を作用させる。
【００３０】
第２の制御弁２３ｂと気筒Ｃ３の休止機構２１ａ―３の間には、該制御弁２３ｂを介して休止機構２１ａ―３に作用する油圧を検知する油圧センサ２５ｂが設けられている。第３の制御弁２３ｃと気筒Ｃ４の休止機構２１ｂの間には、休止機構２１ｂに作用する油圧を検知する油圧センサ２５ｃが設けられている。すべての休止機構についてそれぞれ油圧センサを設けることができる。これらの油圧センサによる検出信号は、ＥＣＵ１に送られる。
【００３１】
図３は、エンジンの吸入空気量Gair(g/sec)とクランク軸の回転角度との関係を示す。４ストロークエンジン、すなわち吸入、圧縮、燃焼、排気の４つの行程で１サイクルが形成されるエンジンでは、１サイクルでクランク軸が２回転するので、１サイクルが720度に対応する。図３（A）は、１つの気筒の吸入空気量を表す。720度ごとに吸入行程に入り、ピストンが下降する動きにより空気を吸入する。図３(B)は、６つの気筒のそれぞれが吸入する空気量を個別に表している。気筒の動作順は、図１の番号で示すと、C6、C1、C4、C2、C5、C3である。図３(C)は、６つの気筒による吸入空気量を合成した波形を表している。単純に図３(B)の波形を足し合わせると図３(C)に脈動波形51Aで示すように、凹凸のある脈動となる。しかし、エアフローセンサ８で検出される波形は、吸気管の容量による移送遅れなどの影響により、ほとんど平坦な直流波形51Bとなる。このように波形51Bは直流波形に近く、この発明の観点からは周期120度の波形と見ることができる。
【００３２】
図４は、第１バンクの気筒C1、C2、C3が休止し、第２バンクの気筒C6、C4、C5がこの順に動作する３気筒運転モードにおける吸入空気量を示している。(A)は、気筒C6の吸入空気量とクランク角度との関係を示す。（B）は、３つの気筒の吸入空気量を個別に表す。この図から明らかなように３気筒運転モードの波形は240度周期になる。（C）は、３つの気筒のそれぞれが吸入する空気量の個別の波形53Aと、実際にエアフローセンサ８で検出される吸入空気量の滑らかな波形53Bとを表す。この場合も、吸気管の容量による移送遅れなどの影響によりエアフローセンサで検出される波形は、240度周期の滑らかな波形になる。
【００３３】
図には示していないが、４気筒運転モードでは吸入空気量の波形は360度周期になる。６気筒エンジンにおいては、１−４−２−５−３−６の気筒順に稼働する。４気筒運転モードでは、第４気筒および第３気筒が休止し、いわゆる２爆１休で稼働する。図３(B)の波形図において、０度から立ち上がっているのが第６気筒であり、その次の山が第１気筒で３番目の山が第４気筒に対応する。４気筒運転モードでは第４気筒が休止しているので、その次の山は360から立ち上がる第２気筒である。したがって、波形の周期は360度になる。
【００３４】
図５(A)は、６気筒運転モードにおいて一つの気筒が不具合を生じて休止したときの、吸入空気量の波形を示す。気筒ごとの吸入空気量を合成した波形55Aに１気筒分の欠落が生じている。実際にエアフローメータで検出される吸入空気量の波形55Bは、吸気管の容量による移送遅れなどの影響により滑らかな波形になるが、６気筒運転時の１筒故障に固有の波形になる。
【００３５】
図５(B)は、３気筒運転モードにおいて、一つの気筒が不具合を生じて休止したときの、吸入空気量の波形を示す。(B)の波形55Cに見られるように、クランク軸の720度の回転において２つの気筒だけが空気を吸入している。この場合、エアフローセンサで検出される吸入空気量の波形は波形55Dのようになる。この波形も３気筒運転時の１気筒故障に固有である。
【００３６】
図５(C)は、６気筒運転モードにおいて、連続する２気筒が不具合により休止した時の吸入空気量の波形を示す。波形55Eは、動作している各気筒が吸入する空気量を合成した波形である。エアフローセンサが検出する吸入空気量は、波形55Fのようになる。この波形も６気筒運転時に連続する２気筒が故障した状態に固有の波形である。
【００３７】
図６は、エアフローメータで検出される吸入空気量を表す波形を６気筒運転モードに対応する720度周期、４気筒運転モードに対応する360度周期、および３気筒運転モードに対応する240度周期でそれぞれフーリエ変換して得られるスペクトルと気筒の稼働状態との対応を示す。この図において、同じ周期での複数のスペクトルを直線で結んでいるが、この直線は便宜上のもので、特に意味を持たない。四角形、三角形、菱形の点で示す離散的なスペクトルが意味を持っている。上に見たように、気筒の稼働状態に応じて吸入空気量の波形は固有の波形になるので、これを異なる周期でフーリエ変換して得られるスペクトルの組み合わせは、気筒の稼働状態に固有となる。
【００３８】
図６において、６気筒運転モードで良好に気筒が稼働している状態では、吸入空気量の波形は図３(C)の波形51Bのようにほぼ直流波形になるので、３つの周期でフーリエ変換して得られるスペクトルは、すべてゼロに近い値になる。
【００３９】
図６の気筒配列図に示す故障１は、図５(A)に示した６気筒運転モードにおける１気筒故障に対応する。この例では、気筒C3が休止している。図１において気筒は、C1からC6の番号で示した。図６では、この参照番号からCの文字を省略している。図５(A)の波形55Bについて、720度周期、360度周期、240度周期でそれぞれフーリエ変換すると、「故障１」の上のグラフに示す値のスペクトルが得られる。720度周期および360度周期のスペクトルは同じ大きさになり、240度周期でのスペクトルは小さい値になる。
【００４０】
次に図６の気筒配列図に示す故障２は、図５（C）に示した６気筒運転モードにおいて連続２気筒が不具合を生じて休止した状態に対応する。図５(C)の波形55Fを３つの周期でフーリエ変換して得られるスペクトルは、図６の「故障２」の上のグラフに示される。720度周期でのスペクトルは大きな値をとり、360度周期でのスペクトルは中間の値をとり、240度周期でのスペクトルはほぼゼロになる。
【００４１】
図６の気筒配列図に示す故障３は、３つの気筒１、２、４が休止した故障を示す。この実施例のエンジンの３気筒運転モードは、第１のバンクを休止させるもので、気筒配列図に「正常(2)」で示すものである。同じ３気筒休止であっても、故障３の状態では、エンジンの振動が大きくなる。この状態でエアフローセンサから得られる波形を３つの周期でフーリエ変換して得られるスペクトルが、「故障３」の上のグラフに示される。720度周期でのスペクトルが最大値をとり、360度周期でのスペクトルがほぼゼロになり、240度周期でのスペクトルが小さい値をとる。
【００４２】
図６の気筒配列図における「故障４」は、６気筒運転モードにおいて「故障２」とは異なる２つの気筒が不具合により休止した状態を示す。この実施例において４気筒運転モードは、第１バンクの気筒C3および第２バンクの気筒C4を休止させるモードであり、故障２および故障４に示す運転状態は予定していない。すなわち、故障２および故障４は休止機構になんらかの故障が生じている状態を示している。故障４の状態では、周期720度および360度でのフーリエ変換で得られるスペクトルが同じ中間の値をとり、周期240でのフーリエ変換で得られるスペクトルが小さい値をとる。
【００４３】
図６の気筒配列図に「正常(2)」で示す状態は、正常な３気筒運転モードを示す。このとき、吸入空気量の波形を720度周期および360度周期でフーリエ変換して得られるスペクトルは、ほぼゼロになり、240度周期でのフーリエ変換で得られるスペクトルは、かなり大きな値になる。
【００４４】
図６の気筒配列図の右端に示す「正常(3)」は、この実施例における正常な４気筒運転モードに対応する。このとき、吸入空気量の波形を720度周期および240度周期でそれぞれフーリエ変換して得られるスペクトルは、ほぼゼロになり、360度周期でフーリエ変換して得られるスペクトルは、かなり大きな値になる。なお、気筒休止の指令が発生されていないにもかかわらず「３気筒モード」、「４気筒モード」に対応するスペクトルが検出された場合には、このモードに対応する３つないし２つの気筒が故障していることになる。
【００４５】
次に図７を参照して、電子制御装置（ECU）に組み込まれたコンピュータ・プログラムによる気筒休止を判定するプロセスを説明する。クランク軸の回転角度を検出するセンサ出力に基づいてクランク角度を算出する（101）。この手法は従来から用いられているものである。次いで、720度周期での周波数解析(102)、360度周期での周波数解析(103)、および240度周期での周波数解析（104）を実行して、離散フーリエ変換のスペクトル（強度）を算出する。離散フーリエ変換については後に説明を補足する。
【００４６】
次いで720度しきい値マップ検索（106）、360度しきい値マップ検索（107）、240度しきい値マップ検索（108）を実行してしきい値を得る。図６を参照すると、この実施例では、720度周期のスペクトルに関するしきい値としてTh-720をメモリから読み出し、これに係数K2（K2>1）をかけたTh-720×K2、およびK2より大きい係数K3をかけたTh-720×K3を用いる（図６）。また、360度周期のスペクトルに対するしきい値Th-360、および240度周期のスペクトルに関するしきい値としてTh-240を用いる。これらのしきい値は、吸入空気量およびエンジン回転数の一方または両方から検索することのできるマップとしてＥＣＵのメモリに格納されている。
【００４７】
ステップ110に進み、ＥＣＵが６気筒運転モード、４気筒運転モード、３気筒運転モードのいずれで動作しているかを判定する。これは、簡単には運転モードの設定フラグを参照することにより行われる。６気筒運転モードのときは、図８に示すプロセスに移る。３気筒運転モードのときは、ステップ124に進み、720度周期のフーリエ変換スペクトルがしきい値Th-720を超えるかどうか判定する。
【００４８】
ここで、もう一度図６を参照すると、正規の３気筒運転モードでは正常(2)に示すように第１、第２、第３気筒が休止し、720度周期および360度周期のスペクトルはほぼゼロとなり、240度周期のスペクトルが中間的な大きさの値となる。デフォルトの運転状態である６気筒運転から３気筒運転に切り替えられたとき、１気筒ないし２気筒が稼働状態で固着していると、１気筒とびの２気筒の休止状態（故障４と同じ状態）、または１気筒の休止状態（故障１と同じ状態）となる。これらの状態を判定するため、720度周期のスペクトルを用いる。また、４気筒運転状態から３気筒運転に切り替えられるとき、４気筒運転時にピンロックなどが生じると、第１、第４、第２、第３の気筒が休止状態となり、３気筒連続休止状態が発生する。この状態は図６に示す故障３と同様の状態であり、720度周期のスペクトルで判定することができる。
【００４９】
したがって、ステップ124で720度周期のスペクトルがTh-720より大きいときは、３気筒運転異常と判定する（126）。この場合、故障している気筒を判定するために位相判定ステップ127に移る。この場合の異常は、気筒１、２が休止不良である、気筒２、３が休止不良である、気筒３、１が休止不良である、の３つのケースが考えられる。ここで、休止不良とは、休止指令を受けているにもかかわらず、休止していない状態をいう。後述の位相判定(2)で故障している気筒を判定することができる（127）。
【００５０】
ステップ124の判定がNOのときは、ステップ125に移り、240度周期のフーリエ変換スペクトルがしきい値Th-240を超えるかどうか判定する。判定がYESであれば、図６に示す「正常(2)」の３気筒運転モードであり、正常と判定される。このとき、油圧センサの異常判定プロセス129に移ることができる。判定がNOのときは、バンク休止が適正に実行されていないと判定する（131）。第１、第２、第３気筒の全てが適切に休止していないと判定する（132）。
【００５１】
ステップ110で４気筒運転モードが示されると、ステップ111に進み、720度周期のフーリエ変換スペクトルがしきい値Th-720を超えたかどうか判定する。図６の右端の正常(3)に示すように、正常状態では、720度周期のスペクトルはほぼゼロであり、360度周期のスペクトルは大きな値をとる。ステップ111での判定がYESであると、一つの気筒が休止不良であると判定する（115）。このとき、故障のある気筒を判定するため、位相判定のプロセス116に進む。
【００５２】
ステップ111の判定がNOのとき、ステップ113に進み、360度周期でのフーリエ変換スペクトルがしきい値Th-360を超えたかどうか判定する。判定がYESのときは、図６の右端に示す２筒休止の正規の４気筒運転モードであると判定する（118）。このとき、油圧センサの判定プロセスに進むことができる(119)。ステップ113の判定がNOのときは、異常と判定する（121）。このとき、第４気筒、第３気筒が正常に休止していないと判定する（122）。
【００５３】
次に図８に進み、６気筒運転モードでの気筒の稼働状態を判定するプロセスを説明する。図６を参照すると、正常(1)の６気筒モードでは、720度周期、360度周期、240度周期のどのスペクトルもほぼゼロとなる。ステップ141において720度周期のフーリエ変換スペクトルがしきい値Th-720を超えるかどうかを判定する。判定がNOのときは、ステップ147に進み、360度周期のフーリエ変換スペクトルがしきい値Th-360を超えているかどうか判定する。判定がYESのときは、図６に示す４気筒モードでの運転状態であり、気筒４、３が作動不良であると判定する（158）。
【００５４】
ステップ147での判定がNOのとき、ステップ149に進み、240度周期のフーリエ変換スペクトルがしきい値Th-240を超えているかどうか判定する。判定がYESであれば、図６の３気筒モードの状態であり、気筒１、２、３が作動不良と判定する（160）。ステップ149の判定がNOであれば、図６の左端の６気筒運転モードに対応するので、正常と判定する（161）。このとき、油圧センサの判定プロセスに進むことができる。
【００５５】
ステップ141の判定がYESのとき、ステップ143に進み、720度周期のフーリエ変換スペクトルがしきい値Th-720×K2を超えているかどうか判定する。判定がNOであれば、１気筒作動不良と判定し(155)、１気筒用の位相判定プロセス156に進む。
【００５６】
ステップ143の判定がYESであれば、ステップ145に進み、720度周期のフーリエ変換スペクトルがしきい値Th-720×K3を超えているかどうか判定する。判定がNOであれば、２気筒作動不良と判定し（153）、２気筒用の位相判定プロセス154に移る。ステップ145での判定がYESであれば、図６の「故障(3)」の状態であり、気筒１、４、２が作動不良であると判定する（152）。
【００５７】
次に図９を参照して、図７のサブルーチン102、103、104で実行される離散フーリエ変換を説明する。簡単に複素形フーリエ変換を説明すると、Tを周期とする  f(t)=f(t-T)  なる周期波は、次式で表される。
【数１】
2010150974.tif 000003
ここで、
ω0＝２π/Ｔ
cnは、複素形フーリエ係数であり、次式で表される。
【数２】
2010150974.tif 000004
【００５８】
周期Tの正弦波のスペクトル（大きさ、強度）Knおよび位相は、次式で求められる。この式で、REは実数部を意味し、IMは虚数部を意味する。
【数３】
2010150974.tif 000005
【００５９】
図９は、この発明の実施例において、スペクトルSPECT、すなわちKnおよび位相PHASE、すなわちθnを求めるプロセスを示す。ここでは、周期としてクランク角度の720度、360度および240度をフーリエ変換の対象としている。ステップ201において、360度すなわち2πに対する対象とする周期の比率Nを求める。Nは、周期720度について0.5、周期360度について1、周期240度について1.5になる。
【００６０】
ステップ202において、３つのNについてフーリエ級数cnの実数部REcnを求め、ステップ203において、３つのNについて虚数部IMcnを求める。これらのステップに示す式において、30はサンプリングの周期の30度を意味する。GAIR[ ]は、離散フーリエ変換をする対象の配列データを表す。この例では、離散フーリエ変換は、気筒の１サイクルすなわち720度に含まれる24のサンプル値（離散値）を用いて行われる。
【００６１】
次いで、ステップ204でスペクトルKnを算出し、ステップ205で位相θnを算出する。図８で使用した強度(720)、強度(360)、強度(240)は、それぞれ周期720度、360度および240度でのフーリエ変換で得られるスペクトルKnである。
【００６２】
次に図10(A)を参照して、図8のブロック156の位相判定（１気筒用）の判定プロセスを説明する。故障１は、図６に見られるように６気筒運転モードにおいて一つの気筒が休止している故障であるが、どの気筒が休止しているかは、スペクトル強度からは判定できない。６気筒のうち一つの気筒が休止すると、吸入空気量の波形に図５(A)に示したような歪みが生じ、波形に生じる歪みの位相が休止した気筒に対応する。６気筒のうち休止機構を持つのは第１、第４、第２、第３気筒であるから、この４つの気筒に対応する位相を判別するためのしきい値P1、P2、P3、P4を用意しておく。６気筒運転に対応する周期720度でフーリエ変換して得られる位相PHASE[720]が、どの位置にあるかをステップ211、212、213で判定し、その判定に応じて、第１気筒の休止(215)、第４気筒の休止（217）、第２気筒の休止（218）、第３気筒の休止（219）を判定する。
【００６３】
次に図10（B）を参照して図6のブロック154における６気筒運転モードでの２気筒休止故障の位相判定プロセスを説明する。６気筒運転モードにおいて連続する２気筒が休止すると、吸入空気量の波形は図５（C）に示すようにひずむ。歪みの位相が休止している連続２気筒に対応する。休止機構を持つ気筒は、第１、第４、第２、第３の４気筒であり、気筒の稼働順序は、１−４−２−５−３−６―１であるから、休止機構を持つ４気筒で連続するのは、１−４および４−２である。第１、第４気筒が休止したときの位相および第４気筒および第２気筒が休止したときの位相を予め求めて、その二つを判別するためのしきい値PA1およびPA2を予め設定しておく。６気筒運転モードに対応する周期720度で吸入空気量の波形をフーリエ変換して得られる位相PHASE[720]がこれらのしきい値の間にあるとき（221）、第１、第４の２気筒が休止していると判定する（222）。位相がこれらのしきい値の間にないときは、第４、第２の２気筒が休止していると判定する（223）。
【００６４】
次に図11(A)は、図7の３気筒運転モードにおいて３気筒運転異常（126）と判定されて状態で、休止不良の２つの気筒を判定するプロセスを示す。休止機構を持つのは、第１、第２、第３および第４の４つの気筒であり、正規の３気筒休止は、第１、第２、第３の３つの気筒を休止させるものである。したがって、この場合の２つの休止機構の故障としては、図６に故障１で示す第１および第２気筒の休止不良(227)、図６に故障２で示す第２および第３気筒の休止不良(228)、および第３および第１気筒の休止不良(229)の３つのケースがある。この判定は、720度周期でのフーリエ変換で得られる位相に基づいて行う。実験的に上記の３つのケースについて720度周期でのフーリエ変換で得られる位相を求め、位相を区別するためのしきい値PB1、PB2、PB3を設定しておく。位相がPB1とPB2の間にあるときは（225）、第１および第２気筒が休止不良と判定する（227）。ステップ225の判定がNOのときは、ステップ226に進み、位相がPB2とPB3の間にあれば（228）、第２および第３気筒が休止不良と判定する（228）。ステップ226の判定がNOのとき、第３および第１気筒が休止不良と判定する（229）。
【００６５】
図11(B)は、図７の４気筒運転モードにおいて720度周期のスペクトルがTh-720より大きく、１気筒休止不良(115)と判定されたときの位相判定プロセスを示す。正規の４気筒運転モードでは、第３気筒および第４気筒が休止している。１気筒休止不良は、この内の一つの気筒が休止していない故障である。休止不良の気筒の判定は、720度周期でのフーリエ変換で得られる位相に基づいて行われる。予め、実験により判定用のしきい値PC1およびPC2を設定しておく。位相がPC1とPC2の間にあるときは（231）、第４気筒が休止不良と判定する（232）。ステップ231での判定がNOのときは、第３気筒が休止不良と判定する（233）。
【００６６】
図12は油圧センサの故障判定プロセスを示す。気筒の休止状態が正常と判定されたとき、油圧センサが運転モードに対応した適正な値を示しているかどうかを判定し、適正な値を示していないときは、油圧センサが故障していると判定する。図８のステップ181において、正常な６気筒運転が行われていると判定されると（251）、油圧センサの出力が６気筒運転モードで予定される状態にあるかどうかを判定する（252）。６気筒モードに対応していれば、正常と判定し（261）、そうでなければ、油圧センサが故障していると判定する(262)。
【００６７】
図７のステップ128で正常な３気筒運転モードにあると判定されているならば（255）、油圧センサの出力が３気筒運転モードで予定される状態にあるかどうかを判定する（256）。３気筒モードに対応していれば、正常と判定し（263）、そうでなければ、油圧センサが故障していると判定する(265)。
【００６８】
ステップ251、255のいずれでも判定がNOのとき、ステップ259に進み、油圧センサの出力が４気筒運転モードで予定される状態にあるかどうかを判定する（259）。４気筒モードに対応していれば、正常と判定し（267）、そうでなければ、油圧センサが故障していると判定する(268)。
【００６９】
以上にこの発明を具体的な実施例について説明したが、この発明はこのような実施例に限定されるものではない。
【図面の簡単な説明】
【００７０】
【図１】この発明の一実施例のエンジンの構成を示すブロック図。
【図２】一実施例の気筒休止機構のための油圧回路を示す図。
【図３】６気筒運転モードにおいて気筒が吸入する空気量に対応する波形を示す図。
【図４】３気筒運転モードにおいて気筒が吸入する空気量に対応する波形を示す図。
【図５】気筒に休止故障があるときの吸入空気量の波形を示す図。
【図６】吸入空気量を表す波形を720度周期、360度周期、240度周期でフーリエ変換して得られるスペクトルと気筒の休止状態との対応を示す図。
【図７】気筒休止を判定するプロセスのフローチャート。
【図８】図７に続くフローチャート。
【図９】離散フーリエ変換のプロセスを示す図。
【図１０】フーリエ変換で得られる位相から休止している気筒を判定するプロセスのフローチャート。
【図１１】フーリエ変換で得られる位相から休止している気筒を判定するプロセスのフローチャート。
【図１２】油圧センサの故障を判定するためのプロセスを示すフローチャート。
【符号の説明】
【００７１】
１      電子制御装置（ECU）
８      エアフローセンサ
C1・・・C6        気筒
【図１】
2010150974.tif 000006
【図２】
2010150974.tif 000007
【図３】
2010150974.tif 000008
【図４】
2010150974.tif 000009
【図５】
2010150974.tif 000010
【図６】
2010150974.tif 000011
【図７】
2010150974.tif 000012
【図８】
2010150974.tif 000013
【図９】
2010150974.tif 000014
【図１０】
2010150974.tif 000015
【図１１】
2010150974.tif 000016
【図１２】
2010150974.tif 000017