(57)【特許請求の範囲】
【請求項１】
エンジン（３）の気筒（５）内へ燃料を直接的に噴射する燃料噴射装置（７）を制御する燃料噴射制御装置（１）において、
前記燃料噴射装置から噴射される燃料が、開弁された吸気バルブ（１３）に付着してしまうクランク角の範囲である干渉期間を検出する手段として、
前記燃料噴射装置から燃料を噴射させる期間である噴射期間を、前記干渉期間とは重複しない期間から、前記干渉期間と重複する側へ徐々にずらしていき、前記エンジンの排気経路に設けられた空燃比センサにより検出される空燃比の変動から、前記干渉期間を検出する干渉期間検出手段（３１，Ｓ３１０〜Ｓ４４０，Ｓ５１０〜Ｓ６４０）、を備えること、
を特徴とする燃料噴射制御装置。
【請求項２】
請求項１に記載の燃料噴射制御装置において、
前記干渉期間の初期値を記憶する初期値記憶手段（４２）を備え、
前記干渉期間検出手段は、
前記噴射期間を、前記初期値とは重複せず且つ前記初期値から所定の値以上離れた期間から、前記初期値と重複する側へと徐々にずらしていき、前記空燃比の変動から、実際の前記干渉期間を検出すること、
を特徴とする燃料噴射制御装置。
【請求項３】
請求項２に記載の燃料噴射制御装置において、
前記干渉期間検出手段は、
前記噴射期間を、前記初期値とは重複せず且つ当該噴射期間の終了時期が前記初期値の開始時期よりも所定の前方余裕分だけ前となる期間から、所定値ずつ後にずらしていき、前記噴射期間をずらしたことに伴う前記空燃比の変動が所定の閾値以上になったことを検知すると、その閾値以上の空燃比の変動を招いた前記噴射期間の終了時期を、前記干渉期間の開始時期として検出する開始時期検出手段（３１，Ｓ３１０〜Ｓ４４０）と、
前記噴射期間を、前記初期値とは重複せず且つ当該噴射期間の開始時期が前記初期値の終了時期よりも所定の後方余裕分だけ後となる期間から、所定値ずつ前にずらしていき、前記噴射期間をずらしたことに伴う前記空燃比の変動が所定の閾値以上になったことを検知すると、その閾値以上の空燃比の変動を招いた前記噴射期間の開始時期を、前記干渉期間の終了時期として検出する終了時期検出手段（３１，Ｓ５１０〜Ｓ６４０）と、を備えること、
を特徴とする燃料噴射制御装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の燃料噴射制御装置において、
前記エンジンは前記気筒を複数備えたエンジンであり、
前記干渉期間検出手段は、前記干渉期間を検出するための動作を、前記複数の気筒の１つずつについて順次実施すること、
を特徴とする燃料噴射制御装置。
【請求項５】
請求項４に記載の燃料噴射制御装置において、
前記干渉期間検出手段は、前記気筒毎の前記干渉期間の検出結果を、不揮発性の記憶手段（４４）に記憶すること、
を特徴とする燃料噴射制御装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の燃料噴射制御装置において、
前記干渉期間検出手段は、前記エンジンの通常運転時において、予め定められた所定の条件が成立した場合に動作すること、
を特徴とする燃料噴射制御装置。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の燃料噴射制御装置において、
前記干渉期間検出手段は、当該燃料噴射制御装置に対して外部装置（３７）から所定の検出指令が与えられた場合に、動作すること、
を特徴とする燃料噴射制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、筒内直噴式エンジン用の燃料噴射制御装置に関する。
【背景技術】
【０００２】
インジェクタから気筒内へ直接的に燃料を噴射する筒内直噴式エンジンが公知である。
この種のエンジンでは、インジェクタから噴射される燃料の一部が、開弁された吸気バルブに付着してしまうクランク角の範囲である干渉期間が存在する。そして、インジェクタから燃料を噴射する期間である噴射期間が、干渉期間と重なると、インジェクタからの噴射燃料が吸気バルブに付着することとなり、その結果、気筒内へ必要量の燃料を供給することができず、エミッションの悪化やエンジン出力の低下を招く。このため、例えば特許文献１には、噴射期間を、干渉期間を避けるように変更補正することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２９１８８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
エンジンにおいて、バルブの開閉期間やリフト量は、それらを決定するバルブ機構の構成部品の経時変化（例えば磨耗や劣化）により、初期状態からずれが生じると考えられる。また、インジェクタからの燃料の噴射方向についても、インジェクタの経時変化（例えば、インジェクタの噴射口の状態変化や、インジェクタの取り付け角度の変化等）によって、初期状態からずれが生じると考えられる。
【０００５】
このため、干渉期間は、時間の経過に伴ってずれていく（つまり経時変化が生じる）と考えられる。
しかし、上記特許文献１の技術では、干渉期間が不変であることを前提としているため、バルブ機構やインジェクタの経時変化によって干渉期間がずれていくと、噴射期間の変更補正を行っても、噴射燃料が吸気バルブに付着して、エミッションの悪化等を招くこととなる。
【０００６】
そこで、本発明は、燃料噴射制御装置において、実際の干渉期間を検出できるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
第１発明の燃料噴射制御装置は、エンジンの気筒内へ燃料を直接的に噴射する燃料噴射装置を制御する。そして、この燃料噴射制御装置は、前記燃料噴射装置から噴射される燃料が、開弁された吸気バルブに付着してしまうクランク角の範囲である干渉期間を検出する手段として、干渉期間検出手段を備える。
【０００８】
その干渉期間検出手段は、前記燃料噴射装置から燃料を噴射させる期間である噴射期間を、前記干渉期間とは重複しない期間から、前記干渉期間と重複する側へずらしていき、前記エンジンの排気経路に設けられた空燃比センサにより検出される空燃比の変動から、前記干渉期間を検出する。
【０００９】
第１発明の燃料噴射制御装置によれば、このような干渉期間検出手段を備えるため、実際の干渉期間を検出できるようになる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の燃料噴射制御装置をエンジンと共に表す構成図である。
【図２】処理の実施タイミングを説明するタイムチャートである。
【図３】Ａ／Ｆ値取得処理を表すフローチャートである。
【図４】干渉期間検出処理を含む全体処理を表すフローチャートである。
【図５】干渉期間の開始時期検出処理を表すフローチャートである。
【図６】干渉期間の終了時期検出処理を表すフローチャートである。
【図７】第１実施形態の作用を説明する説明図である。
【図８】第３実施形態を説明する説明図である。
【発明を実施するための形態】
【００１１】
本発明が適用された実施形態の燃料噴射制御装置（以下、ＥＣＵという）について説明する。
［第１実施形態］
図１に示すように、第１実施形態のＥＣＵ１が燃料噴射の制御対象とするエンジン３は、車両に搭載される筒内直噴式エンジンであり、当該エンジン３の気筒５内へ燃料を直接的に噴射する燃料噴射装置としてのインジェクタ７を備える。尚、図示を省略しているが、エンジン３の気筒５は複数あり、気筒５の数は、例えば４である。
【００１２】
更に、エンジン３は、気筒５毎に、吸気ポート９と、排気ポート１１と、吸気ポート９の開口部９ａを開閉する傘部１３ａを有する吸気バルブ１３と、排気ポート１１の開口部１１ａを開閉する傘部１５ａを有する排気バルブ１５と、点火プラグ１７と、気筒５内を動くピストン１９とを備える。また、エンジン３には、該エンジン３の負荷等に応じて、少なくとも吸気バルブ１３の開閉タイミングを変化させる可変バルブ機構２０が設けられている。
【００１３】
ＥＣＵ１には、エンジン３の回転数（エンジン回転数）及びクランク角を検出するためのクランク角センサ２１や、エンジン３の冷却水温を検出する水温センサ２３や、エンジン３への吸入空気量を検出する吸気量センサ２５や、エンジン３の排気経路に設けられて空燃比（以下、Ａ／Ｆともいう）を検出するＡ／Ｆセンサ２７等からの各種センサ信号が入力される。また、ＥＣＵ１には、可変バルブ機構２０から出力される進遅角度信号も入力される。
【００１４】
クランク角センサ２１から出力される信号（いわゆるクランク角信号）は、エンジン３のクランク軸（図示省略）が所定角度（例えば３０°）回転する毎に、パルス状にレベル変化する。可変バルブ機構２０から出力される進遅角度信号は、例えば、当該可変バルブ機構２０が吸気バルブ１３の開閉タイミング（具体的には開弁開始クランク角）を標準値から進角又は遅角させる角度量（以下、進遅角制御量という）を示す。
【００１５】
そして、ＥＣＵ１は、インジェクタ７を制御するための処理を少なくとも行うマイコン３１と、上記各種センサ信号及び進遅角度信号等をマイコン３１に入力させる入力回路３３と、マイコン３１からの噴射指令信号に応じてインジェクタ７を開弁させる駆動回路３５とを備える。
【００１６】
更に、ＥＣＵ１は、車両内に配設された通信線３６に着脱可能に接続される外部装置としての故障診断ツール３７と通信するための通信回路３９を備える。故障診断ツール３７が通信線３６に接続された場合、マイコン３１は、その故障診断ツール３７と通信回路３９を介して通信する。
【００１７】
マイコン３１は、ＣＰＵ４１と、プログラムや制御用情報を算出するためのマップ等が記憶されたＲＯＭ４２と、ＣＰＵ４１による演算結果等が記憶されるＲＡＭ４３と、記憶内容の書き換えが可能な不揮発性メモリ（不揮発性の記憶手段であり、この例ではＥＥＰＲＯＭ）４４とを備える。以下に説明するマイコン３１の動作は、ＣＰＵ４１がＲＯＭ４２内のプログラムを実行することで実現される。
【００１８】
次に、マイコン３１が行う処理について説明する。尚、以下では、１つの気筒５について説明するが、他の気筒５についても同様である。
《通常の噴射制御処理の説明》
インジェクタ７から気筒５内へエンジン３の運転に必要な燃料を噴射させるための、通常の噴射制御処理は、例えば、下記の噴射量算出処理と、噴射期間算出処理と、噴射期間補正処理と、噴射指令設定処理とを含む。
【００１９】
〈噴射量算出処理〉
マイコン３１は、エンジン回転数や吸入空気量や冷却水温等の運転状態情報に基づいて、インジェクタ７から噴射させる燃料量である噴射量を算出する。尚、噴射量は、例えば、ＲＯＭ４２に記憶されているマップや演算式を用いて算出される。
【００２０】
〈噴射期間算出処理〉
マイコン３１は、エンジン回転数や吸入空気量や冷却水温等の運転状態情報に基づいて、燃料の噴射開始時期を算出し、その噴射開始時期から、噴射量算出処理で算出した噴射量に相当する噴射時間（即ち、噴射量の燃料を噴射するのに要する時間）が経過するまでの期間を、噴射期間として算出する。
【００２１】
尚、噴射開始時期も、例えば、ＲＯＭ４２に記憶されているマップや演算式を用いて算出される。また、噴射開始時期としては、例えば、燃料噴射を開始するクランク角が算出されるが、クランク角が任意の値になる時刻や、任意の時刻でのクランク角は、エンジン回転数から予測して算出することができるため、噴射開始時期や噴射終了時期などの各時期は、クランク角と時刻との両方で表すことができる。そして、噴射期間や後述する干渉期間などの各期間も、クランク角と時刻との両方の範囲で表すことができる。以下の説明において、時刻であることを明示しない場合、期間と時期の単位はクランク角である。
【００２２】
〈噴射期間補正処理〉
マイコン３１は、噴射期間算出処理で算出した噴射期間が、現在把握している干渉期間と重複するか否か判定する。干渉期間とは、インジェクタ７から噴射される燃料の一部が、開弁された吸気バルブ１３に付着してしまうクランク角の範囲である。例えば、ＥＥＰＲＯＭ４４には、干渉期間の基準値が記憶されており、マイコン３１は、その干渉期間の基準値を、可変バルブ機構２０からの進遅角度信号が示す進遅角制御量だけ全体的に進角又は遅角させた期間を、干渉期間として算出する。その算出した干渉期間が、現在把握している干渉期間となる。
【００２３】
マイコン３１は、算出した噴射期間が干渉期間と重複しないと判定した場合には、その噴射期間を最終的な噴射期間とする。また、マイコン３１は、算出した噴射期間が干渉期間と重複すると判定した場合には、その噴射期間を、干渉期間を避けるように（つまり、干渉期間と重複しないように）変更し、変更後の噴射期間を最終的な噴射期間とする。例えば、マイコン３１は、噴射期間を変更する処理として、噴射期間の全体を干渉期間の前または後に移動させたり、噴射期間を干渉期間の前と後とに分割したりする。
【００２４】
〈噴射指令設定処理〉
マイコン３１は、噴射期間補正処理で決定した最終的な噴射期間の間、駆動回路３５に噴射指令信号を出力する（詳しくは噴射指令信号をアクティブレベルにする）ための噴射指令設定処理を行う。
【００２５】
例えば、マイコン３１は、噴射指令信号を出力するための手段として、噴射指令用タイマを備える。その噴射指令用タイマは、セットされた出力開始時刻から、セットされた出力終了時刻までの間、噴射指令信号をアクティブレベルにする。駆動回路３５は、マイコン３１からの噴射指令信号がアクティブレベルになっている間、インジェクタ７を開弁させる。このため、マイコン３１は、噴射指令設定処理では、噴射期間の開始時刻を上記出力開始時刻とし、噴射期間の終了時刻を上記出力終了時刻として、噴射指令用タイマにセットする。
【００２６】
尚、本実施形態において、マイコン３１は、噴射制御処理を、気筒５の１サイクル毎の所定タイミングであって、例えば、図２における下向き矢印で示すように、排気行程直前のタイミングで行う。そして、インジェクタ７からの燃料噴射は、排気行程後の吸気行程〜圧縮行程の期間内に実施される。また、噴射期間補正処理によって噴射期間が２回に分割された場合、後の方の噴射期間については、例えば、１回目の噴射期間の燃料噴射が終了した後で、上記噴射指令設定処理が行われる。一方、噴射制御処理のうち、噴射指令設定処理以外の全部又は一部は、気筒５の１サイクル毎よりも長い周期で実施されるようになっていても良い。また、図２における「ＴＤＣ」は、圧縮行程の上死点である。
【００２７】
《干渉期間を検出するための干渉期間検出処理（以下単に、検出処理という）の説明》
ところで、吸気バルブ１３の開閉期間は、例えば可変バルブ機構２０の構成部品の経時変化（例えば磨耗や劣化等）によって、初期状態からずれると考えられる。また、インジェクタ７からの燃料の噴射方向についても、インジェクタ７の経時変化（例えば、インジェクタ７の噴射口の状態変化やインジェクタ７の取り付け角度の変化等）によって、初期状態からずれると考えられる。よって、干渉期間には経時変化が生じると考えられる。
【００２８】
このため、マイコン３１は、所定の検出実施条件が成立した場合に、実際の干渉期間を検出するための検出処理を実施し、その検出処理で検出した干渉期間を、例えば、噴射期間補正処理において、前述した干渉期間の基準値として用いるようになっている。
【００２９】
検出処理は、気筒５毎に、且つ、噴射制御処理のうちの噴射量算出処理以外の処理（噴射期間算出処理、噴射期間補正処理、噴射指令設定処理）に代えて、排気行程直前のタイミング（図２における下向き矢印のタイミング）で実施される。本実施形態では、検出処理は、気筒５の１つずつについて順次実施される。
【００３０】
また、検出処理としては、干渉期間の開始時期を検出するための処理（以下、干渉期間の開始時期検出処理、あるいは単に、開始時期検出処理という）と、干渉期間の終了時期を検出するための処理（以下、干渉期間の終了時期検出処理、あるいは単に、終了時期検出処理という）とがある。つまり、検出処理とは、開始時期検出処理と終了時期検出処理との総称である。
【００３１】
マイコン３１は、検出処理では、噴射期間を、干渉期間とは確実に重複しない期間から、干渉期間と重複する側へと徐々にずらしていく。そして、Ａ／Ｆセンサ２７により検出されるＡ／Ｆ値のリーン側への変動であって、ずらした噴射期間と干渉期間とが重複したことによるＡ／Ｆ値の変動から、実際の干渉期間（詳しくは干渉期間の開始時期と終了時期）を検出する。このため、検出処理に関して、マイコン３１は、Ａ／Ｆセンサ２７からＡ／Ｆ値を取得する処理（詳しくはＡ／Ｆセンサ２７からの信号をＡ／Ｆ値に変換して記憶する処理）を、図２における上向き矢印で示すように、排気行程の直後に実施する。
【００３２】
但し、排気行程直前のタイミングで噴射期間をずらす処理を行っても、その影響がＡ／Ｆ値に現れるのは、次回の排気行程直後になる。このため、マイコン３１は、検出処理では、排気行程直前のタイミングが２回到来する毎に（つまり２サイクル毎に）、噴射期間を変更する（ずらす）ための処理を行い、他の排気行程直前のタイミングでは、噴射期間を前回値と同一にする。そして、マイコン３１は、変更した噴射期間での燃料噴射が実施された後の排気行程直後のタイミング（即ち、噴射期間を変更しなかった回の排気行程直後のタイミング）毎に、Ａ／Ｆセンサ２７からＡ／Ｆ値を取得する処理を行う。
【００３３】
図２においては、下向き矢印のうち、ハッチングを付けた下向き矢印で示すタイミングが、噴射期間を変更するための処理を行うタイミングであり、ハッチングを付けていない下向き矢印で示すタイミングが、噴射期間を前回値と同一にするための処理を行うタイミングである。そして、ハッチングを付けた上向き矢印で示すタイミングが、Ａ／Ｆ値を取得するタイミングである。また、マイコン３１は、Ａ／Ｆ値を取得するタイミングでは図３のＡ／Ｆ値取得処理を行う。マイコン３１は、Ａ／Ｆ値取得処理では、Ｓ１００にて、Ａ／Ｆセンサ２７からＡ／Ｆ値を取得し、Ｓ１０２にて、その取得したＡ／Ｆ値を、例えばＲＡＭ４２の記憶領域のうち、公開用のＡ／Ｆ値が記憶される記憶領域に上書きする。このため、公開用のＡ／Ｆ値は、今回取得したＡ／Ｆ値に更新されることとなる。公開用のＡ／Ｆ値とは、マイコン３１において、他の処理（この例では検出処理）の実行時に参照されるＡ／Ｆ値である。
【００３４】
尚、以下では、マイコン３１が、全気筒５のそれぞれについて検出処理を行って干渉期間を検出することを、干渉期間検出という。
〈検出処理を含む全体処理〉
検出処理を含む全体処理は、図４に示すように実施される。
【００３５】
マイコン３１は、ＥＣＵ１に動作用の電源が投入されると動作を開始し、図４の全体処理を、例えば一定時間毎に行う。尚、車両の使用者が、車両をイグニッションオン状態にする操作（例えば、イグニッションスイッチをオンしたり、プッシュ式スタートスイッチを押したりする操作）を行うと、ＥＣＵ１にバッテリの電圧が動作用電源として供給され、マイコン３１が起動する。また、図４の処理は、エンジン３の通常運転時において実施される。
【００３６】
そして、マイコン３１は、全体処理を開始すると、まずＳ１１０にて、検出処理を実施する条件である検出実施条件が成立しているか否かを判定する。
検出実施条件は、例えば、下記（１）〜（６）の各条件の全て成立している、という条件である。尚、下記の条件における「一定」とは、概念的には安定しているということであり、数量的に表現すれば、該当する物理量の変化が所定値以下（もちろん０でも良い）ということである。
【００３７】
（１）噴射量算出処理で算出される噴射量が一定になる運転状態であること。
現実的には、噴射量の変化が所定値以下になる運転状態であれば良く、その所定値とは、噴射量の変化によるＡ／Ｆ値の変動が検出処理に関して無視できる程度に小さくなる値であれば良い。また、この（１）の具体的な条件としては、例えば、エンジン回転数が一定であることや、エンジン３の負荷が一定であること等が挙げられる。
【００３８】
（２）可変バルブ機構２０による吸気バルブ１３の開閉タイミングの進遅角制御量が一定であること。本実施形態では、例えば、進遅角制御量が０で安定していることを条件とするが、他の例として、進遅角制御量が０以外の所定の値で安定していることが、条件であっても良い。
【００３９】
（３）Ａ／Ｆ値が一定であること。
（４）Ａ／Ｆセンサ２７が正常であること。
（５）可変バルブ機構２０が正常であること。
【００４０】
（６）エンジン回転数が所定値以下の低回転時であること。
尚、（１）〜（５）は、外的要因によるＡ／Ｆ値の変動を排除するための条件であり、（６）は、干渉期間以外の期間の時間長に余裕を持たせるための条件である。また、検出実施条件のうちの他の条件として、例えば、「車両がイグニッションオン状態になってから、全気筒５についての干渉期間の検出が未だ完了していない」という条件を加えても良い。この条件を加えた場合、マイコン３１は、車両がイグニッションオン状態になっている期間中（いわゆる１トリップ中）において、干渉期間検出を最大で１回実施する（換言すれば、２回以上は実行しない）こととなる。
【００４１】
マイコン３１は、Ｓ１１０で検出実施条件が成立していると判定した場合には、Ｓ１２０にて、全気筒５について干渉期間の開始時期（以下、干渉期間開始時期ともいう）の検出を完了したか否かを判定する。そして、マイコン３１は、全気筒５について干渉期間開始時期の検出を完了していなければ（Ｓ１２０：ＮＯ）、Ｓ１３０にて、未だ干渉期間開始時期の検出が完了していない気筒５について、干渉期間開始時期を検出するための開始時期検出処理を行い、Ｓ１１０に戻る。開始時期検出処理の内容については後で説明する。
【００４２】
また、マイコン３１は、全気筒５について干渉期間開始時期の検出を完了したならば（Ｓ１２０：ＹＥＳ）、Ｓ１４０にて、全気筒５について干渉期間の終了時期（以下、干渉期間終了時期ともいう）の検出を完了したか否かを判定する。そして、マイコン３１は、全気筒５について干渉期間終了時期の検出を完了していなければ（Ｓ１４０：ＮＯ）、Ｓ１５０にて、未だ干渉期間終了時期の検出が完了していない気筒５について、干渉期間終了時期を検出するための終了時期検出処理を行い、Ｓ１１０に戻る。終了時期検出処理の内容についても後で説明する。
【００４３】
マイコン３１は、全気筒５について干渉期間の開始時期及び終了時期の検出を完了したならば（Ｓ１４０：ＹＥＳ）、全気筒５について干渉期間を検出したこととなり、その後、各気筒５について、Ｓ１６０〜Ｓ２１０の処理を行う。
【００４４】
マイコン３１は、Ｓ１６０では、検出した干渉期間と初期の干渉期間との、差分を算出する。具体的には、開始時期と終了時期とのそれぞれについて、検出した干渉期間と初期の干渉期間との差分（差の絶対値であり、単位はクランク角）を算出する。尚、初期の干渉期間とは、検出処理が実施される条件下での（つまり検出実施条件が成立する場合での）、干渉期間の初期値（車両が製造された時点の干渉期間）であり、その値は、初期値記憶手段としての例えばＲＯＭ４２に記憶されている。また、ＲＯＭ４２に記憶される初期の干渉期間は、実測値であっても良いし、設計上の値であっても良い。
【００４５】
そして、マイコン３１は、次のＳ１７０にて、Ｓ１６０で算出した各差分（開始時期と終了時期とのそれぞれについての差分）が所定値以下であるか否かを判定し、各差分が所定値以下であれば、Ｓ１８０にて、正常と判定する。そして、その場合、マイコン３１は、Ｓ１９０にて、今回検出した干渉期間を、前述した干渉期間の基準値として、ＥＥＰＲＯＭ４４に更新記憶する。つまり、ＥＥＰＲＯＭ４４内の干渉期間の基準値を、今回検出した干渉期間に書き換える。その後、マイコン３１は、図４の全体処理を終了する。
【００４６】
また、マイコン３１は、Ｓ１７０にて、Ｓ１６０で算出した各差分の少なくとも一方が所定値以下ではないと判定した場合には、Ｓ２００にて、異常と判定する。そして、その場合、マイコン３１は、Ｓ２１０にて、所定のフェールセーフ処理を行い、その後、図４の全体処理を終了する。尚、マイコン３１は、フェールセーフ処理として、例えば、異常の発生を示す警告灯を点灯させたり、故障情報（いわゆるダイアグコード）をＥＥＰＲＯＭ４４に記憶したりする処理を行う。
【００４７】
一方、マイコン３１は、Ｓ１１０にて、検出実施条件が成立していないと判定した場合には、Ｓ２２０にて、干渉期間検出の実施中であるか否かを判定する。干渉期間検出の実施中とは、Ｓ１１０で検出実施条件が成立していると判定してから、全気筒５について干渉期間の検出が完了するまでの期間である。そして、マイコン３１は、干渉期間検出の実施中でなければ（Ｓ２２０：ＮＯ）、そのまま図４の全体処理を終了する。また、マイコン３１は、干渉期間検出の実施中であれば（Ｓ２２０：ＹＥＳ）、Ｓ２３０に進み、干渉期間検出を中止する。具体的には、実施途中の検出処理及び残りの検出処理（即ち、干渉期間が未検出の気筒５についての検出処理）を中止する。そして、その後、図４の全体処理を終了する。
【００４８】
尚、図４の全体処理において、Ｓ１１０，Ｓ２２０及びＳ２３０の処理と、Ｓ１２０〜Ｓ１５０の処理とは、実際には、マルチタスクのかたちで並列的に実行される。このため、何れかの気筒５について検出処理（開始時期検出処理あるいは終了時期検出処理）が実施されている期間中に、検出実施条件が非成立になれば、その実施途中の検出処理及び残りの検出処理は中止されることとなる。
【００４９】
〈干渉期間の開始時期検出処理〉
マイコン３１は、図４のＳ１３０では、気筒５の１つずつについて、図５の開始時期検出処理を干渉期間開始時期の検出が完了するまで繰り返し行う。尚、開始時期検出処理は、干渉期間を検出する対象の気筒５（以下単に、対象気筒という）の排気行程直前のタイミング（図２における下向き矢印のタイミング）毎に実行される。そして、開始時期検出処理が開始される前に、対象気筒について、前述の噴射量算出処理により噴射量が算出されている。
【００５０】
図５に示すように、マイコン３１は、開始時期検出処理を開始すると、まずＳ３１０にて、対象気筒について、今回の当該開始時期検出処理の実行が、初回であるか否かを判定する。そして、初回であれば、マイコン３１は、Ｓ３２０にて、初期の干渉期間の開始時期よりも所定の前方余裕分だけ前の時期を、診断時期として設定する。尚、前方余裕分は、実際の干渉期間の開始時期が初期の干渉期間の開始時期から前方へずれてしまう計算上の最大ずれ量よりも、大きい値（単位はクランク角）である。また、当該開始時期検出処理で扱う診断時期は、噴射終了時期（噴射期間の終了時期）を定めるための補助情報である。
【００５１】
マイコン３１は、Ｓ３２０の処理を行うか、あるいは、Ｓ３１０にて初回ではないと判定した場合には、Ｓ３３０に進み、対象気筒について、今回の当該開始時期検出処理の実行が、初回または偶数回目であるか否かを判定する。
【００５２】
そして、初回または偶数回目であれば（Ｓ３３０：ＹＥＳ）、マイコン３１は、Ｓ３４０に進み、その時点での診断時期を、噴射終了時期として設定し、Ｓ３５０に進む。
マイコン３１は、Ｓ３５０では、当該開始時期検出処理で設定した噴射終了時期から、噴射量に相当する噴射時間だけ前の時期を、噴射開始時期（噴射期間の開始時期）として設定する。そして、マイコン３１は、次のＳ３６０にて、当該開始時期検出処理で設定した噴射開始時期と噴射終了時期をインジェクタ７に指令するための処理を行う。具体的には、マイコン３１は、噴射指令設定処理と同様に、噴射指令用タイマに対して、噴射開始時期の時刻を、噴射指令信号の出力開始時刻として設定すると共に、噴射終了時期の時刻を、噴射指令信号の出力終了時刻として設定する。そして、その後、マイコン３１は、当該開始時期検出処理を終了する。このため、対象気筒のインジェクタ７は、当該開始時期検出処理で設定した噴射開始時期から噴射終了時期までの間、駆動回路３５により開弁されることとなる。
【００５３】
また、マイコン３１は、Ｓ３３０にて、今回の当該開始時期検出処理の実行が、初回でも偶数回目でもない（即ち、初回以外の奇数回目である）と判定した場合には（Ｓ３３０：ＮＯ）、Ｓ３７０に進む。
【００５４】
マイコン３１は、Ｓ３７０では、Ａ／Ｆ値の取得値と、Ａ／Ｆ値の保存値との、差分（差の絶対値）を算出する。Ａ／Ｆ値の取得値は、対象気筒について、前述のＡ／Ｆ値取得処理（図３）によりＡ／Ｆセンサ２７から取得された最新のＡ／Ｆ値（公開用のＡ／Ｆ値）である。また、Ａ／Ｆ値の保存値は、前々回の当該開始時期検出処理における後述のＳ４００にてＲＡＭ４３に保存されているＡ／Ｆ値である。尚、今回の当該開始時期検出処理の実行が３回目である場合には、Ａ／Ｆ値の保存値が未だ無いため、Ｓ３７０では、算出する差分を、次のＳ３８０での判定に用いる閾値よりも小さい固定値とする。
【００５５】
次にマイコン３１は、Ｓ３８０にて、Ｓ３７０で算出した差分が閾値以上であるか否かを判定し、閾値以上でなければ、Ｓ３９０に進む。
マイコン３１は、Ｓ３９０では、診断時期を、前述の前方余裕分よりも小さい所定値（単位はクランク角）だけ遅らせた（後にした）値に変更し、次のＳ４００にて、今回のＳ３７０で読み込んだＡ／Ｆ値の取得値を、Ａ／Ｆ値の保存値としてＲＡＭ４３に保存する。そして、マイコン３１は、次のＳ４１０にて、Ｓ３４０と同様に、その時点での診断時期を、噴射終了時期として設定し、その後、Ｓ３５０，Ｓ３６０の処理を行い、当該開始時期検出処理を終了する。
【００５６】
また、マイコン３１は、Ｓ３８０にて、Ｓ３７０で算出した差分が閾値以上であると判定した場合には、Ｓ４２０に進み、その時点での診断時期を、干渉期間の開始時期の検出結果として、例えばＥＥＰＲＯＭ４４に記憶する。
【００５７】
次にマイコン３１は、Ｓ４３０にて、診断時期よりも所定値だけ前の時期を、噴射終了時期として設定する。今から実施する燃料噴射の噴射期間が実際の干渉期間と重複しないようにするためである。尚、このＳ４３０で用いる所定値は、例えば、Ｓ３９０で診断時期を遅らせる所定値と同じであるが、それより大きい値でも良い。
【００５８】
マイコン３１は、次のＳ４４０にて、対象気筒についての開始時期検出完了フラグをセットする。その後、マイコン３１は、Ｓ３５０，Ｓ３６０の処理を行い、当該開始時期検出処理を終了する。
【００５９】
尚、Ｓ４４０にて、対象気筒についての開始時期検出完了フラグがセットされると、図４の全体処理におけるＳ１２０にて、その対象気筒について、干渉期間開始時期の検出が完了したと判定される。そして、図４のＳ１３０では、干渉期間開始時期が未検出の他の気筒５を、対象気筒として、当該開始時期検出処理が行われることとなる。また、開始時期検出完了フラグは、例えばＥＥＰＲＯＭ４４に記憶されるフラグである。
【００６０】
〔開始時期検出処理の作用の説明〕
マイコン３１は、開始時期検出処理の初回の実行時には、初期の干渉期間の開始時期よりも前方余裕分だけ前の時期を、噴射終了時期として設定する（Ｓ３２０，Ｓ３４０）。そして、マイコン３１は、開始時期検出処理の実行回数が何回目であっても、設定した噴射終了時期から噴射時間だけ前の時期を、噴射開始時期として設定すると共に、設定した噴射開始時期から噴射終了時期までの間、インジェクタ７に燃料を噴射させる（Ｓ３５０，Ｓ３６０）。開始時期検出処理が実施される場合の噴射量は一定である。
【００６１】
また、マイコン３１は、開始時期検出処理の偶数回目の実行時には、噴射終了時期を、前回設定値と同じ値に設定する（Ｓ３４０）。更に、マイコン３１は、偶数回目の開始時期検出処理を実行した後の、排気行程直後のタイミング毎に、Ａ／Ｆセンサ２７からＡ／Ｆ値を取得する。尚、前述の図２においては、ハッチングを付けていない下向き矢印で示すタイミングが、開始時期検出処理の偶数回目の実行タイミングとなり、ハッチングを付けた下向き矢印で示すタイミングが、開始時期検出処理の奇数回目の実行タイミングとなる。
【００６２】
そして、マイコン３１は、開始時期検出処理の初回以外の奇数回目の実行時には、Ａ／Ｆ値の最新の取得値と、Ａ／Ｆ値の前回の取得値である保存値との差分（即ち、Ａ／Ｆ値の変動量）を算出する（Ｓ３７０）。更に、マイコン３１は、算出した差分が閾値以上か否かを判定し（Ｓ３８０）、差分が閾値以上でなければ（Ｓ３８０：ＮＯ）、当該開始時期検出処理で調節している噴射期間が干渉期間と未だ重複していないと判断して、噴射終了時期を、前回設定値よりも所定値だけ遅らせた値に変更する（Ｓ３９０，Ｓ４１０）。この場合、噴射期間は、干渉期間の方へ所定値だけ遅らされることとなる。一方、マイコン３１は、算出した差分が閾値以上であれば（Ｓ３８０：ＹＥＳ）、現在の噴射終了時期の設定値（診断時期）が、実際の干渉期間の開始時期であると判断して、その噴射終了時期の設定値を、干渉期間の開始時期としてＥＥＰＲＯＭ４４に記憶する（Ｓ４２０）。噴射期間と干渉期間とが重複して、インジェクタ７からの噴射燃料が開弁中の吸気バルブ１３に付着したことにより、Ａ／Ｆ値がリーン側に変動したと考えられるからである。そして、その場合、マイコン３１は、噴射終了時期を所定値だけ前に戻すことにより、次の噴射期間が干渉期間と重複しないようにした上で（Ｓ４３０）、開始時期検出完了フラグをセットすることにより（Ｓ４４０）、対象気筒についての干渉期間開始時期の検出を終了する。
【００６３】
つまり、開始時期検出処理では、図７における（ａ）〜（ｄ）に示すように、噴射期間を、初期の干渉期間（干渉期間の初期値）とは重複せず且つ当該噴射期間の終了時期が初期の干渉期間の開始時期よりも前方余裕分だけ前となる期間から、所定値ずつ後にずらしていく。そして、噴射期間をずらしたことに伴うＡ／Ｆ値の変動が閾値以上になったことを検知すると、その閾値以上のＡ／Ｆ値の変動を招いた噴射期間の終了時期を、実際の干渉期間の開始時期として検出し、ＥＥＰＲＯＭ４４に記憶している。
【００６４】
〈干渉期間の終了時期検出処理〉
マイコン３１は、図４のＳ１５０では、気筒５の１つずつについて、図６の終了時期検出処理を干渉期間終了時期の検出が完了するまで繰り返し行う。尚、終了時期検出処理も、開始時期検出処理と同様に、対象気筒の排気行程直前のタイミング（図２における下向き矢印のタイミング）毎に実行される。そして、終了時期検出処理が開始される前に、対象気筒について、前述の噴射量算出処理により噴射量が算出されている。
【００６５】
図６に示すように、マイコン３１は、終了時期検出処理を開始すると、まずＳ５１０にて、対象気筒について、今回の当該終了時期検出処理の実行が、初回であるか否かを判定する。そして、初回であれば、マイコン３１は、Ｓ５２０にて、初期の干渉期間の終了時期よりも所定の後方余裕分だけ後の時期を、診断時期として設定する。尚、後方余裕分は、実際の干渉期間の終了時期が初期の干渉期間の終了時期から後方へずれてしまう計算上の最大ずれ量よりも、大きい値（単位はクランク角）である。また、当該終了時期検出処理で扱う診断時期は、噴射開始時期を定めるための補助情報である。
【００６６】
マイコン３１は、Ｓ５２０の処理を行うか、あるいは、Ｓ５１０にて初回ではないと判定した場合には、Ｓ５３０に進み、対象気筒について、今回の当該終了時期検出処理の実行が、初回または偶数回目であるか否かを判定する。
【００６７】
そして、初回または偶数回目であれば（Ｓ５３０：ＹＥＳ）、マイコン３１は、Ｓ５４０に進み、その時点での診断時期を、噴射開始時期として設定し、Ｓ５５０に進む。
マイコン３１は、Ｓ５５０では、当該終了時期検出処理で設定した噴射開始時期から、噴射量に相当する噴射時間だけ後の時期を、噴射終了時期として設定する。そして、マイコン３１は、次のＳ５６０にて、当該終了時期検出処理で設定した噴射開始時期と噴射終了時期をインジェクタ７に指令するための処理を行う。その処理の内容は、図５のＳ３６０と同じである。そして、その後、マイコン３１は、当該終了時期検出処理を終了する。このため、対象気筒のインジェクタ７は、当該終了時期検出処理で設定した噴射開始時期から噴射終了時期までの間、駆動回路３５により開弁されることとなる。
【００６８】
また、マイコン３１は、Ｓ５３０にて、今回の当該終了時期検出処理の実行が、初回でも偶数回目でもない（即ち、初回以外の奇数回目である）と判定した場合には（Ｓ５３０：ＮＯ）、Ｓ５７０に進む。
【００６９】
マイコン３１は、Ｓ５７０では、Ａ／Ｆ値の取得値と、Ａ／Ｆ値の保存値との、差分（差の絶対値）を算出する。Ａ／Ｆ値の取得値は、対象気筒について、前述のＡ／Ｆ値取得処理（図３）によりＡ／Ｆセンサ２７から取得された最新のＡ／Ｆ値（公開用のＡ／Ｆ値）である。また、Ａ／Ｆ値の保存値は、前々回の当該終了時期検出処理における後述のＳ６００にてＲＡＭ４３に保存されているＡ／Ｆ値である。尚、今回の当該終了時期検出処理の実行が３回目である場合には、Ａ／Ｆ値の保存値が未だ無いため、Ｓ５７０では、算出する差分を、次のＳ５８０での判定に用いる閾値よりも小さい固定値とする。
【００７０】
次にマイコン３１は、Ｓ５８０にて、Ｓ５７０で算出した差分が閾値以上であるか否かを判定し、閾値以上でなければ、Ｓ５９０に進む。
マイコン３１は、Ｓ５９０では、診断時期を、前述の後方余裕分よりも小さい所定値（単位はクランク角）だけ早くした（前にした）値に変更し、次のＳ６００にて、今回のＳ５７０で読み込んだＡ／Ｆ値の取得値を、Ａ／Ｆ値の保存値としてＲＡＭ４３に保存する。そして、マイコン３１は、次のＳ６１０にて、Ｓ５４０と同様に、その時点での診断時期を、噴射開始時期として設定し、その後、Ｓ５５０，Ｓ５６０の処理を行い、当該終了時期検出処理を終了する。
【００７１】
また、マイコン３１は、Ｓ５８０にて、Ｓ５７０で算出した差分が閾値以上であると判定した場合には、Ｓ６２０に進み、その時点での診断時期を、干渉期間の終了時期の検出結果として、例えばＥＥＰＲＯＭ４４に記憶する。
【００７２】
次にマイコン３１は、Ｓ６３０にて、診断時期よりも所定値だけ後の時期を、噴射開始時期として設定する。今から実施する燃料噴射の噴射期間が実際の干渉期間と重複しないようにするためである。尚、このＳ６３０で用いる所定値は、例えば、Ｓ５９０で診断時期を早くする所定値と同じであるが、それより大きい値でも良い。
【００７３】
マイコン３１は、次のＳ６４０にて、対象気筒についての終了時期検出完了フラグをセットする。その後、マイコン３１は、Ｓ５５０，Ｓ５６０の処理を行い、当該終了時期検出処理を終了する。
【００７４】
尚、Ｓ６４０にて、対象気筒についての終了時期検出完了フラグがセットされると、図４の全体処理におけるＳ１４０にて、その対象気筒について、干渉期間終了時期の検出が完了したと判定される。そして、図４のＳ１５０では、干渉期間終了時期が未検出の他の気筒５を、対象気筒として、当該終了時期検出処理が行われることとなる。また、終了時期検出完了フラグは、例えばＥＥＰＲＯＭ４４に記憶されるフラグである。
【００７５】
一方、図５，図６の処理（検出処理）が行われない気筒５については、通常の噴射制御処理が行われる。
〔終了時期検出処理の作用の説明〕
マイコン３１は、終了時期検出処理の初回の実行時には、初期の干渉期間の終了時期よりも後方余裕分だけ後の時期を、噴射開始時期として設定する（Ｓ５２０，Ｓ５４０）。そして、マイコン３１は、終了時期検出処理の実行回数が何回目であっても、設定した噴射開始時期から噴射時間だけ後の時期を、噴射終了時期として設定すると共に、設定した噴射開始時期から噴射終了時期までの間、インジェクタ７に燃料を噴射させる（Ｓ５５０，Ｓ５６０）。終了時期検出処理が実施される場合の噴射量も一定である。
【００７６】
また、マイコン３１は、終了時期検出処理の偶数回目の実行時には、噴射開始時期を、前回設定値と同じ値に設定する（Ｓ５４０）。更に、マイコン３１は、偶数回目の終了時期検出処理を実行した後の、排気行程直後のタイミング毎に、Ａ／Ｆセンサ２７からＡ／Ｆ値を取得する。尚、前述の図２においては、ハッチングを付けていない下向き矢印で示すタイミングが、終了時期検出処理の偶数回目の実行タイミングとなり、ハッチングを付けた下向き矢印で示すタイミングが、終了時期検出処理の奇数回目の実行タイミングとなる。
【００７７】
そして、マイコン３１は、終了時期検出処理の初回以外の奇数回目の実行時には、Ａ／Ｆ値の最新の取得値と、Ａ／Ｆ値の前回の取得値である保存値との差分（即ち、Ａ／Ｆ値の変動量）を算出する（Ｓ５７０）。更に、マイコン３１は、算出した差分が閾値以上か否かを判定し（Ｓ５８０）、差分が閾値以上でなければ（Ｓ５８０：ＮＯ）、当該終了時期検出処理で調節している噴射期間が干渉期間と未だ重複していないと判断して、噴射開始時期を、前回設定値よりも所定値だけ早めた値に変更する（Ｓ５９０，Ｓ６１０）。この場合、噴射期間は、干渉期間の方へ所定値だけ早められることとなる。一方、マイコン３１は、算出した差分が閾値以上であれば（Ｓ５８０：ＹＥＳ）、現在の噴射開始時期の設定値（診断時期）が、実際の干渉期間の終了時期であると判断して、その噴射開始時期の設定値を、干渉期間の終了時期としてＥＥＰＲＯＭ４４に記憶する（Ｓ６２０）。噴射期間と干渉期間とが重複して、インジェクタ７からの噴射燃料が開弁中の吸気バルブ１３に付着したことにより、Ａ／Ｆ値がリーン側に変動したと考えられるからである。そして、その場合、マイコン３１は、噴射開始時期を所定値だけ後に戻すことにより、次の噴射期間が干渉期間と重複しないようにした上で（Ｓ４３０）、終了時期検出完了フラグをセットすることにより（Ｓ６４０）、対象気筒についての干渉期間終了時期の検出を終了する。
【００７８】
つまり、終了時期検出処理では、図７における（ａ），（ｅ）〜（ｇ）に示すように、噴射期間を、初期の干渉期間（干渉期間の初期値）とは重複せず且つ当該噴射期間の開始時期が初期の干渉期間の終了時期よりも後方余裕分だけ後となる期間から、所定値ずつ前にずらしていく。そして、噴射期間をずらしたことに伴うＡ／Ｆ値の変動が閾値以上になったことを検知すると、その閾値以上のＡ／Ｆ値の変動を招いた噴射期間の開始時期を、実際の干渉期間の終了時期として検出し、ＥＥＰＲＯＭ４４に記憶している。
【００７９】
以上のようなＥＣＵ１によれば、マイコン３１が、各気筒５について、干渉期間を検出するための検出処理（開始時期検出処理及び終了時期検出処理）を行うため、干渉期間に経時変化が生じても、実際の干渉期間を検出することができる。そして、マイコン３１は、通常の噴射制御処理では、検出した実施の干渉期間に基づいて、噴射期間と干渉期間とが重複しないように、噴射期間を設定するため、干渉期間が経時変化で定常的にずれても、気筒５内へ必要量の燃料を供給することができる。よって、エンジン３の出力低下やエミッションの悪化を防止することができる。
【００８０】
また、マイコン３１は、検出処理では、噴射期間を、ＲＯＭ４２に記憶される初期の干渉期間とは重複せず且つその初期の干渉期間から所定の値以上離れた期間（上記例では、前方余裕分または後方余裕分だけ離れた期間）から、初期の干渉期間と重複する側へと徐々にずらしていき、Ａ／Ｆ値の閾値以上の変動から、実際の干渉期間を検出する。このため、実際の干渉期間を精度良く検出することができる。しかも、マイコン３１は、検出処理として、開始時期検出処理と終了時期検出処理とを別々に行うため、干渉期間の開始時期と終了時期とを、別々に精度良く検出することができる。
【００８１】
また、マイコン３１は、干渉期間を検出するための検出処理を、複数の気筒５の１つずつについて順次実施することにより、気筒５毎の干渉期間を順次検出する。具体的には、マイコン３１は、１つの気筒５について、開始時期検出処理を行い、干渉期間の開始時期を検出したら、次の気筒５について、開始時期検出処理を行う、という手順を繰り返すことにより、全ての気筒５について干渉期間の開始時期を検出する。同様に、マイコン３１は、１つの気筒５について、終了時期検出処理を行い、干渉期間の終了時期を検出したら、次の気筒５について、終了時期検出処理を行う、という手順を繰り返すことにより、全ての気筒５について干渉期間の終了時期を検出する。このため、各気筒５について、噴射期間と干渉期間とが重複したことによるＡ／Ｆ値の変動を確認し易くなる。よって、各気筒５について、干渉期間を、他の気筒５の排気による影響を避けて、精度良く検出することができる。
【００８２】
尚、上記の例では、マイコン３１は、各気筒５の干渉期間の開始時期を検出してから、各気筒５の干渉期間の終了時期を検出したが、変形例として、干渉期間の終了時期を先に検出しても良い。つまり、図４の全体処理において、Ｓ１２０及びＳ１３０と、Ｓ１４０及びＳ１５０との、順番を逆にしても良い。また、他の変形例として、例えば、マイコン３１は、１つの気筒５について、開始時期検出処理を行い、干渉期間の開始時期を検出したら、同じ気筒５について、終了時期検出処理を行い、干渉期間の終了時期を検出したら、次の気筒５について、同様に、干渉期間の開始時期と終了時期とをそれぞれ検出する、という手順を繰り返すようにしても良い。
【００８３】
また、上記実施形態において、マイコン３１は、気筒５毎の干渉期間の検出結果を、不揮発性の記憶手段としてのＥＥＰＲＯＭ４４に記憶する（Ｓ４２０，Ｓ６２０）。
このため、干渉期間検出の実施中に、例えばＥＣＵ１への電源供給が遮断されて、干渉期間検出が中断されたとしても、その後のＥＣＵ１の動作中に検出実施条件が成立した場合には、マイコン３１は、各気筒５の干渉期間の開始時期及び終了時期のうち、未検出であった内容についてだけ、検出処理を行えば良くなる。例えば、全気筒５のうち、干渉期間が未検出の気筒５についてだけ、検出処理を行えば良くなる。また、その場合、ある気筒５について、干渉期間の開始時期と終了時期とのうちの一方が検出済みであれば、未検出の方だけについて検出処理を行えば良くなる。尚、このようなことは、干渉期間検出の実施中に検出実施条件が非成立となり、その後、検出実施条件が再び成立した場合についても同様である。
【００８４】
また、マイコン３１は、エンジン３の通常運転時において、検出実施条件（予め定められた所定の条件に相当）が成立した場合に（Ｓ１１０：ＹＥＳ）、干渉期間検出を実施する。このため、車両の使用者が何もしなくても、ＥＣＵ１にて最新の干渉期間が検出されて噴射制御処理に反映されるため、利便性が良い。例えば、検出実施条件として、前回の干渉期間検出の実施時から、所定時間が経過したという条件や、車両が所定距離を走行したという条件を設ければ、干渉期間検出が自動的に且つ定期的に実施されることとなり、好ましい。
【００８５】
また、本実施形態では、気筒５の行程の２サイクルに１回の割合で、噴射期間を初期の干渉期間の方へずらすようにしているため、ずらした噴射期間と干渉期間とが重複したことによるＡ／Ｆ値の変動を、正しく検出することができる。
【００８６】
尚、Ａ／Ｆセンサ２７として、高精度のセンサを用いるほど、干渉期間の検出精度も向上する。
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明するが、ＥＣＵの符号としては、第１実施形態と同じ“１”を用いる。また、第１実施形態と同様の構成要素や処理についても、第１実施形態と同じ符号を用いる。そして、このことは、後述する他の実施形態についても同様である。
【００８７】
第１実施形態との相違点について説明する。第２実施形態のＥＣＵ１において、マイコン３１は、外部装置としての故障診断ツール３７から当該ＥＣＵ１に所定の検出指令が与えられたこと（送信されたこと）を検出した場合にも、図４のＳ１１０にて検出実施条件が成立したと判定する。このため、マイコン３１は、故障診断ツール３７からの検出指令を受信した場合にも、前述の干渉期間検出を実施する。より具体的には、図４におけるＳ１２０〜２１０の処理を行うこととなる。
【００８８】
尚、その場合、例えば、エンジン３の運転状態は、第１実施形態での検出実施条件が成立する状態に固定される。また、故障診断ツール３７からＥＣＵ１に検出指令を送信すると、第１実施形態での検出実施条件が成立するようにエンジン３の運転状態が固定され、その結果として、検出実施条件が成立し、マイコン３１が干渉期間検出を実施するようになっていても良い。
【００８９】
第２実施形態のＥＣＵ１によれば、カーディーラでの車両点検時等、任意のタイミングで、干渉期間の検出を実施することができる。よって、干渉期間の検出を意図的に定期的に実施することができるという利点がある。また、車両点検時には時間的余裕があるため、全気筒５についての干渉期間の検出を確実に完了させ易い。
【００９０】
尚、マイコン３１は、故障診断ツール３７からの検出指令を受信した場合にだけ、干渉期間検出を実施するようになっていても良い。
［第３実施形態］
第１，第２実施形態との相違点について説明する。第３実施形態のＥＣＵ１において、マイコン３１は、各気筒５についての検出処理を、１気筒ずつ順番にではなく、図８に示すように、並列的に実施する。
【００９１】
このようにすれば、全気筒５の干渉期間が検出できるまでの時間を短縮することができる。このため、マイコン３１がエンジン３の通常運転時において干渉期間検出を実施する場合に有利である。
【００９２】
尚、Ａ／Ｆセンサ２７からＡ／Ｆ値を取得するタイミングは、各気筒５の排気によるＡ／Ｆ値が区別できるタイミングとなるように、Ａ／Ｆセンサ２７の取り付け位置に応じて決定すれば良い。
【００９３】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の態様を採り得る。例えば、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合したりしても良い。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えても良い。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略しても良い。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換しても良い。また、前述した数値も一例である。
【００９４】
また例えば、第１実施形態において、検出処理のＳ３５０，Ｓ５５０で用いる噴射時間の元となる噴射量は、噴射量算出処理で算出される噴射量（但し（１）の条件により一定）であったが、その噴射時間の元となる噴射量（即ち、干渉期間を検出する際の噴射量）は、予め定めた固定値であっても良い。また、このような変形例は、他の実施形態についても同様に適用できる。
【００９５】
また例えば、第１実施形態において、マイコン３１は、可変バルブ機構２０による進遅角制御量が複数通りの各値になっている場合毎に、干渉期間検出を実施しても良い。その場合、進遅角制御量の複数通りの値毎に、実際の干渉期間が検出されてＥＥＰＲＯＭ４４に記憶される。このため、通常の燃料噴射制御処理のうちの噴射期間補正処理では、進遅角制御量に対応する干渉期間の検出値をＥＥＰＲＯＭ４４から選択し、その選択した干渉期間を避けるように噴射期間を設定することができる。また、このような変形例は、他の実施形態についても同様に適用できる。
【符号の説明】
【００９６】
１…ＥＣＵ（燃料噴射制御装置）、３…エンジン、５…気筒、７…インジェクタ（燃料噴射装置）、１３…吸気バルブ、３１…マイコン
【図１】
0005846171.tif 000002
【図２】
0005846171.tif 000003
【図３】
0005846171.tif 000004
【図４】
0005846171.tif 000005
【図５】
0005846171.tif 000006
【図６】
0005846171.tif 000007
【図７】
0005846171.tif 000008
【図８】
0005846171.tif 000009