(57)【要約】【課題】  燃料噴射弁の噴射特性における動流特性変化と静流特性変化を分離して検出し、適切に補正する。【解決手段】  特定気筒が備える燃料噴射弁の燃料噴射パルス幅が所定値より小さいとき、前記特定気筒の空燃比を検出する手段と前記検出した特定気筒の空燃比に基づいて、ある気筒の燃料噴射弁の動流特性を補正する手段とを備えたことを特徴とするエンジンの制御装置。【選択図】  図４
2015117641.tif 000002
【特許請求の範囲】
【請求項１】
燃料噴射パルス幅を指示して、エンジンの複数の気筒各々に備えられた噴射弁の駆動電流をそれぞれ制御する燃料噴射制御手段と、
前記複数の気筒各々の空燃比を検出する空燃比検出手段と、
前記複数の気筒中の特定気筒が備える燃料噴射弁に対する燃料噴射パルス幅が所定値より小さいときに前記空燃比検出手段が検出した前記特定気筒の空燃比に基づいて、
前記複数の気筒中の少なくとも一つの気筒の燃料噴射弁の動流特性を補正する動流特性補正手段と、を備えたことを特徴とするエンジンの制御装置。
【請求項２】
請求項１において、
前記空燃比検出手段は、前記特定気筒に対する燃料噴射パルス幅が第１の所定値より大きいときの前記特定気筒の第１の空燃比と
前記特定気筒に対する燃料噴射パルス幅が第２の所定値より小さいときの（ただし、第１の所定値＞第２の所定値）前記特定気筒の第２の空燃比とを検出し、
前記動流特性補正手段は、前記第１の空燃比と第２の空燃比に基づいて前記複数の気筒中の少なくとも一つの気筒の燃料噴射弁の動流特性を補正することを特徴とするエンジンの制御装置。
【請求項３】
請求項１において、
前記動流特性補正手段は、前記検出した特定気筒の空燃比が所定範囲外のとき、
前記複数の気筒中の少なくとも一つの気筒の燃料噴射弁の動流特性を補正することを特徴とするエンジンの制御装置。
【請求項４】
請求項２において、
前記動流特性補正手段は、前記第１の空燃比と前記第２の空燃比の差が所定範囲に入るように、前記複数の気筒中の少なくとも一つの気筒の燃料噴射弁の動流特性を補正することを特徴とするエンジンの制御装置。
【請求項５】
請求項２において、
前記第１の空燃比と第２の空燃比に基づいて、
前記特定気筒の燃料噴射弁の動流特性を検出する動流特性変化検出手段を備え、
前記動流特性補正手段は、前記動流特性変化検出手段の検出結果に基づいて、前記複数の気筒中の少なくとも一つの気筒の燃料噴射弁の動流特性を補正することを特徴とするエンジンの制御装置。
【請求項６】
請求項２において、
前記第１の空燃比と前記第２の空燃比に基づいて、前記特定気筒の燃料噴射弁の動流特性と静流特性とを分離して検出する特性変化分離検出手段と、
前記特性変化分離検出手段による静流特性検出結果に基づいて、前記複数の気筒中の少なくとも一つの気筒の燃料噴射弁の静流特性を補正する静流特性補正手段と、を備え、
前記動流特性補正手段は、前記特性変化分離検出手段による動流特性検出結果に基づいて、前記複数の気筒中の少なくとも一つの気筒の燃料噴射弁の動流特性を補正することを特徴とするエンジンの制御装置。
【請求項７】
請求項１において、
前記動流特性補正手段は、前記燃料噴射弁の全閉から全開もしくは、全開から全閉までのリフトプロフィールを補正することを特徴とするエンジンの制御装置。
【請求項８】
請求項１において、
前記動流特性を補正手段は、前記ある気筒の燃料噴射弁の駆動電流を補正することを特徴とするエンジンの制御装置。
【請求項９】
請求項７において、
前記動流特性補正手段は、前記燃料噴射弁の突入電流の値を補正することを特徴とするエンジンの制御装置。
【請求項１０】
請求項７において、
前記動流特性補正手段は、前記燃料噴射弁の駆動電流を保持電流から所定時間掛けて０にする手段であることを特徴とするエンジンの制御装置。
【請求項１１】
請求項６において、
前記静流特性補正手段は、
前記燃料噴射弁の噴射パルスの長さを補正することを特徴とするエンジンの制御装置。
【請求項１２】
請求項１において、
エンジンの負荷、トルク、吸入空気量の少なくとも一つが所定値以下のとき、前記特定気筒が備える燃料噴射弁に対する燃料噴射パルス幅が所定値より小さいと判定することを特徴とするエンジンの制御装置。
【請求項１３】
請求項１において、
一気筒あたりの一サイクル間に噴射する回数が所定値以上のとき、前記特定気筒が備える燃料噴射弁の燃料噴射パルス幅が所定値より小さいと判定することを特徴とするエンジンの制御装置。
【請求項１４】
請求項１において、
空燃比検出手段は、各気筒の排気管に取り付けられた空燃比センサ信号もしくはＯ２センサ信号であることを特徴とするエンジンの制御装置。
【請求項１５】
請求項１において、
前記空燃比検出手段は、少なくとも排気管集合部の空燃比センサもしくはＯ２センサの出力信号のエンジン２回転周期の成分もしくは各気筒の回転変動に基づいて検出することを特徴とするエンジンの制御装置。
【請求項１６】
請求項１において、
前記動流特性補正手段の補正値が所定範囲を外れたとき、異常を報知する異常報知手段を備えたことを特徴とするエンジンの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンの制御装置に関するものであり、特に、燃料噴射弁の個体差への対策に関する。
【背景技術】
【０００２】
従来、例えば特許文献１記載の技術が、エンジンの燃料噴射弁個体差への対策として知られている。特許文献１には、エンジン運転状態が低負荷領域のときと高負荷領域のときとでそれぞれ検出した各気筒の燃料噴射弁の噴射量誤差に基づいて各気筒の燃料噴射弁の噴射特性を学習し、その学習結果に基づいて各気筒の燃料噴射弁の燃料噴射量を制御することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１２８１６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、燃料噴射弁は、製造時の個体ばらつきに加え、機構系の劣化、摩耗、及びデポジットによる詰まりなどに起因する経時変化により、単位開弁時間あたりの燃料噴射量の変化（静流特性）と、開閉駆動時におけるリフトプロフィール変化（動流特性）と、が発生する。複数気筒各々に設けられた燃料噴射弁の間で、静流特性、動流特性の変化度合いが異なると、気筒間の空燃比にばらつきが発生する。
【０００５】
特許文献１記載の技術では、静流特性に起因する個体差しか考慮されておらず、動流特性に起因する個体差については何ら考慮されていない。すなわち、特定気筒の燃料噴射弁の動流特性の変化が生じたときに、任意の燃料噴射パルス幅に対して当該気筒についてのみ一定量の燃料噴射量誤差が生じるといった課題が生じ、特許文献１記載の技術ではその対策がなされていない。
【０００６】
本発明はそのような課題に鑑みてなされたものであって、本発明の目的は燃料噴射弁の噴射特性における動流特性変化と静流特性変化を分離して検出し、適切に補正することにある
【課題を解決するための手段】
【０００７】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【発明の効果】
【０００８】
本発明によれば、燃料噴射弁の噴射特性における動流特性変化を検出し、適切に補正するので、より簡便な制御方法により気筒間の空燃比ばらつきを補正できる。
【図面の簡単な説明】
【０００９】
【図１】静流特性変化時の燃料噴射パルス幅に対する燃料噴射量の特性変化を表した図。
【図２】動流特性変化時の燃料噴射パルス幅に対する燃料噴射量の特性変化を表した図。
【図３】静流特性変化時の燃料噴射パルス幅に対する空燃比の特性変化を表した図。
【図４】動流特性変化時の燃料噴射パルス幅に対する空燃比の特性変化を表した図。
【図５】４気筒エンジンにおける各気筒の燃料噴射弁が正常な時（静流特性および動流特性変化なし）の燃料噴射パルス幅に対する空燃比の特性変化を表した図。
【図６】４気筒エンジンにおける各気筒の燃料噴射弁が経時変化が発生した時（静流特性変化発生時）の燃料噴射パルス幅に対する空燃比の特性変化を表した図。
【図７】４気筒エンジンにおける各気筒の燃料噴射弁が経時変化が発生した時（動流特性変化発生時）の燃料噴射パルス幅に対する空燃比の特性変化を表した図。
【図８】４気筒エンジンにおける各気筒の燃料噴射弁が経時変化が発生した時（静流特性および動流特性変化発生時）の燃料噴射パルス幅に対する空燃比の特性変化を表した図。
【図９】実施例１〜３、５〜９におけるエンジン制御システム図
【図１０】実施例１〜３、５〜９におけるエンジン制御システム図
【図１１】実施例１〜３、５〜９におけるコントロールユニットの内部を表した図
【図１２】実施例１〜３における制御全体を表したブロック図
【図１３】実施例１、５、９における空燃比検出部のブロック図
【図１４】実施例１〜４、９における動流特性補正値演算部のブロック図
【図１５】実施例２における空燃比検出部のブロック図
【図１６】実施例３における空燃比検出部のブロック図
【図１７】実施例４におけるエンジン制御システム図
【図１８】実施例４におけるコントロールユニットの内部を表した図
【図１９】実施例４における制御全体を表したブロック図
【図２０】実施例４における空燃比検出部を表したブロック図
【図２１】実施例４における２回転成分演算部を表したブロック図
【図２２】実施例４における２回転成分位相演算部を表したブロック図
【図２３】実施例４における空燃比ずれ気筒検出部１を表したブロック図
【図２４】実施例４における２回転成分パワー演算部を表したブロック図
【図２５】実施例４における気筒別回転変動演算部を表したブロック図
【図２６】実施例４における空燃比ずれ気筒検出部２を表したブロック図
【図２７】実施例４における空燃比ずれ気筒検出部３を表したブロック図
【図２８】実施例４における空燃比ずれ気筒の空燃比推定部を表したブロック図
【図２９】実施例４における空燃比検出部（コア）を表したブロック図
【図３０】実施例５における制御全体を表したブロック図
【図３１】実施例５における動流特性補正値演算部のブロック図
【図３２】実施例６における制御全体を表したブロック図
【図３３】実施例６における空燃比差検出部を表したブロック図
【図３４】実施例６における動流特性補正値演算部を表したブロック図
【図３５】実施例７における制御全体を表したブロック図
【図３６】実施例７における動流特性変化分検出部を表したブロック図
【図３７】実施例７におけるｎ番気筒基準燃料噴射量演算部を表したブロック図
【図３８】実施例７におけるｎ番気筒実燃料噴射量演算部を表したブロック図
【図３９】実施例７におけるｎ番気筒噴射特性変化分演算部を表したブロック図
【図４０】実施例７における動流特性補正値演算部を表したブロック図
【図４１】実施例８における制御全体を表したブロック図
【図４２】実施例８における動流特性および静流特性変化分検出部を表したブロック図
【図４３】実施例８におけるｎ番気筒基準燃料噴射量演算部を表したブロック図
【図４４】実施例８におけるｎ番気筒噴射特性変化分演算部を表したブロック図
【図４５】実施例８における動流特性および静流特性補正値演算部を表したブロック図
【図４６】実施例９における制御全体を表したブロック図
【図４７】実施例９における異常判定部を表したブロック図
【発明を実施するための形態】
【００１０】
まず、本発明の思想について簡単にまとめる。本発明は上述の課題を解決するための手段を複数含んでいるが、本発明は例えば、特定気筒が備える燃料噴射弁の燃料噴射パルス幅が所定値より小さいとき、前記特定気筒の空燃比を検出する手段と前記検出した特定気筒の空燃比に基づいて、ある気筒の燃料噴射弁の動流特性を補正する手段とを備えたことを特徴とする。
【００１１】
すなわち、燃料噴射弁は、機構系の劣化、摩耗およびデポ詰まりなどに起因する経時変化により、単位時間あたりの燃料噴射量の変化（静流特性）と燃料噴射弁駆動時（閉→開、開→閉）の実際のリフトプロフィール変化（動流特性）が発生する。これにより、燃料噴射パルス幅（燃料噴射弁駆動信号幅）に対する実際に噴射される燃料量の関係が変化する。単位時間あたりの燃料噴射量の変化である静流特性の変化は、図１に示すように、任意の燃料噴射パルス幅に対して、一定の割合で、燃料噴射量を変化させる。割合の変化は、増える方向と減る方向の双方があり得る。燃料噴射弁駆動時（閉→開、開→閉）の実際のリフトプロフィール変化である動流特性の変化は、図２に示すように、任意の燃料噴射パルス幅に対して、一定量、燃料噴射量を変化させる。一定量の変化は、増減共にあり得るが、一般に、増える方向に変化することが多い。これは、リフトプロフィール変化は、燃料噴射弁が開→閉の時間の長期化が主に発生するためである。静流特性の変化は、任意の燃料噴射パルス幅に対して、一定の割合で、燃料噴射量を変化させるので、空燃比に対しては、図３に示すように、任意の燃料噴射パルス幅に対して、リーン側もしくはリッチ側に一定のずれを起こす。一方、動流特性の変化は、任意の燃料噴射パルス幅に対して、一定量、燃料噴射量を変化させるので、空燃比に対しては、図４に示すように、燃料噴射パルス幅が小さくなるほど、リッチ側もしくはリーン側へのずれを大きくする。この現象は、各気筒の燃料噴射弁毎に発生するので、静流特性および動流特性の変化度合いが各気筒で異なると、気筒間の空燃比にばらつきを発生させる。
【００１２】
図５は、４気筒エンジンにおいて、全気筒の燃料噴射弁の噴射特性(静流特性、動流特性)が同じ場合（正常時）の燃料噴射パルス幅に対する空燃比を示している。空燃比フィードバック制御なしのとき、空燃比フィードバック制御ありのとき、いずれの場合も、任意の燃料噴射パルス幅に対して、全気筒の空燃比は、目標空燃比に一致している。
【００１３】
図６は、４気筒エンジンにおいて、各気筒の燃料噴射弁の噴射特性の内、静流特性のみが、各気筒ばらばらに経時変化した場合の燃料噴射パルス幅に対する空燃比を示している。空燃比フィードバック制御なしにおいて、任意の燃料噴射パルス幅に対して、各気筒の空燃比は、一定の誤差が発生する。空燃比フィードバック制御ありのときは、排気管集合部の空燃比（各気筒の空燃比の平均値）が、目標空燃比となるように、全気筒の燃料噴射量を一律に補正する機能が働く。したがって、任意の燃料噴射パルス幅において、各気筒の空燃比の平均値が目標空燃比となるが、任意の燃料噴射パルス幅に対して、各気筒の空燃比は一定の誤差が発生している点は同じである。
【００１４】
図７は、４気筒エンジンにおいて、各気筒の燃料噴射弁の噴射特性の内、動流特性のみが、各気筒ばらばらに経時変化した場合（ただし、全気筒、燃料増量側に変化）の燃料噴射パルス幅に対する空燃比を示している。空燃比フィードバック制御なしにおいて、目標空燃比に対する各気筒の空燃比誤差は、燃料噴射パルス幅が大きくなるほど小さくなり、燃料噴射パルス幅が小さくなるほど急激に大きくなる。空燃比フィードバック制御ありにおいて、任意の燃料噴射パルス幅において、各気筒の空燃比の平均値が目標空燃比となるが、目標空燃比に対する各気筒の空燃比誤差は、燃料噴射パルス幅が大きくなるほど小さくなり（目標空燃比に収束）、燃料噴射パルス幅が小さくなるほど急激に大きくなる点は同じである。
【００１５】
図８は、４気筒エンジンにおいて、各気筒の燃料噴射弁の静流特性と動流特性の双方が、ばらばらに経時変化した場合の燃料噴射パルス幅に対する空燃比を示している（ただし、動流特性は、全気筒、燃料増量側に変化）。空燃比フィードバック制御なしにおいて、燃料噴射パルス幅が比較的大きいとき、静流特性の変化分が支配的に影響し、各気筒それぞれの空燃比が、一定値、目標空燃比に対してずれている。燃料噴射パルス幅が小さくなるにつれ、徐々に、動流特性の変化分の影響が大きくなり、燃料噴射パルス幅が十分に小さくなると、各気筒の空燃比は、急激にリッチ側にずれると共に、気筒間の空燃比差も大きくなる。空燃比フィードバック制御ありのとき、任意の燃料噴射パルス幅において、各気筒の空燃比の平均値が目標空燃比となるが、燃料噴射パルス幅が比較的大きいときは、動流特性変化分の影響より静流特性変化分の影響が大きいので、各気筒の空燃比は、目標空燃比をはさんで、一定値、目標空燃比に対してずれている。燃料噴射パルス幅が小さくなるにつれ、徐々に、動流特性の変化分の影響が大きくなり、気筒間の空燃比差が大きくなるため、各気筒の空燃比のばらつきは大きくなる。
【００１６】
以上の燃料噴射弁の経時変化メカニズムによれば、静流特性変化分による空燃比誤差は、任意の燃料噴射パルス幅で一定であり、動流特性変化分による空燃比誤差は、燃料噴射パルス幅が小さくなるほど大きくなる。したがって、燃料噴射パルス幅が所定値より小さいときは、空燃比誤差は、動流特性変化分の影響が大きいので、検出した空燃比に基づいてある気筒の燃料噴射弁の噴射特性の内、動流特性を補正するものである。ここに、ある気筒とは、必ずしも動流特性の変化を検出した特定気筒と一致しなくてもよい。例えば、特定気筒の動流特性が燃料増量側に変化していた場合、特定気筒の動流特性を燃料噴射量が減量する側に補正しても良いし、また、特定気筒以外の気筒の動流特性を燃料噴射量が増量する側に補正しても良い。いずれの補正によっても、特定気筒の動流特性変化分によって発生した空燃比ばらつきは、小さくなる。
【００１７】
また上述の課題を解決するための手段として、本発明は例えば、前記検出した特定気筒の空燃比が所定範囲外のとき、前記ある気筒の燃料噴射弁の動流特性を補正する手段とを備えたことを特徴とする。
【００１８】
すなわち、前述したように、静流特性変化分による空燃比誤差は、任意の燃料噴射パルス幅で一定なので、燃料噴射パルス幅が所定値より小さい領域でも、静流特性変化分の誤差が発生している可能性がある。したがって、空燃比が所定範囲外のとき、動流特性変化分の影響と考え、動流特性を補正するものである。
【００１９】
また、本発明は例えば、前記特定気筒の燃料噴射パルス幅が、第１の所定値より大きいときの前記特定気筒の第１の空燃比を検出する第１の空燃比検出手段と、前記特定気筒の燃料噴射パルス幅が第２の所定値より小さいときの（ただし、第１の所定値＞第２の所定値）前記特定気筒の第２の空燃比を検出する第２の空燃比検出手段と、前記第１の空燃比と第２の空燃比に基づいて、前記ある気筒の燃料噴射弁の動流特性を補正する手段とを備えたことを特徴とする。
【００２０】
すなわち、前述の燃料噴射弁の経時変化メカニズムによれば、静流特性変化分による空燃比誤差は、任意の燃料噴射パルス幅で一定であり、動流特性変化分による空燃比誤差は、燃料噴射パルス幅が小さくなるほど大きくなる。したがって、異なる燃料噴射パルス幅における空燃比から、動流特性変化分を正確に検出可能である。また、異なる燃料噴射パルス幅の差が大きいほど、検出精度は良くなるので、第１の所定値より大きいときの燃料噴射パルス幅と第２の所定値より小さいときの燃料噴射パルス幅でそれぞれ空燃比を検出する。また、本発明は例えば、前記第１の空燃比と第２の空燃比の差が所定範囲に入るように、前記ある気筒の燃料噴射弁の動流特性を補正する手段とを備えたことを特徴とする。
【００２１】
すなわち、前述したように、異なる噴射パルス幅における２つの空燃比の差は、動流特性変化分によるものなので、当該差が所定範囲に入るように動流特性を補正するものである。
【００２２】
また、本発明は例えば、前記第１の空燃比と第２の空燃比に基づいて、前記特定気筒の燃料噴射弁の動流特性を検出する手段と、前記動流特性検出手段の検出結果に基づいて、
前記ある気筒の燃料噴射弁の動流特性を補正する手段とを備えたことを特徴とする。
【００２３】
すなわち、前述したように、図６〜図８より、空燃比フィードバック制御あり・なしのいずれにおいても、特定気筒に２つの異なる燃料噴射パルス幅を指示した際に検出した２つの空燃比の差は、動流特性変化分によるものである。また、動流変化分による空燃比誤差を除いた空燃比誤差は、静流特性変化分によるものである。このことから、動流特性変化分と静流特性変化分を以下のようにして、定量的に求めることができる。
【００２４】
すなわち、異なる燃料噴射パルス幅それぞれにおける各気筒の空燃比から、各気筒の空燃比のずれを検出する。
【００２５】
ある燃料噴射パルス幅における動流特性および静流特性変化後の燃料噴射量は、（１）式で表せる。
【００２６】
QF_n=S_n×(QF0_n＋QFD_n)・・・・（１）
ここに、
QF_n：ｎ番気筒の燃料噴射弁の特性変化後の燃料噴射量
QF0_n：ｎ番気筒の燃料噴射弁の特性変化前の燃料噴射量（誤差なく目標空燃比を実現可能な燃料噴射量で新品時の理想的な特性に相当）
S_n：ｎ番気筒の燃料噴射弁の静流特性変化分
QFD_n：ｎ番気筒の燃料噴射弁の動流特性変化分
空燃比からS_nとQFD_nは、次のようにして求まる。空燃比フィードバック制御を実施中のｎ番気筒の空燃比をAFC_nとすると、空燃比フィードバック制御を実施しないときの当該気筒の空燃比AFO_nは、（２）式で表される。
【００２７】
AFO_n=Alpha×AFC_n・・・・（２）
ここにAlphaは、空燃比フィードバック制御で用いる燃料噴射量補正係数であり、Alphaの値が大きくなると、燃料噴射量は増え（空燃比リッチになり）、Alphaが小さくなると、燃料噴射量は減る（空燃比はリーンになる）。QFn,QF0n,AFOnの関係は、（３）式で表される。
【００２８】
QF_n=AFst/AFO_n×QF0_n・・・・（３）
ここにAFstは、燃料噴射量がQF0_nのときの空燃比である。誤差がない理想的な燃料噴射弁とすれば、QF0_nによって実現される空燃比AFstは、目標空燃比（一般に理論空燃比）である。（１）式と（３）式から、S_nとQFD_nは、異なる燃料噴射パルス幅における各気筒の空燃比およびAlphaを検出すれば、求めることができる。すなわち、
S_n=(QF_n_c-QF_n_b)/(QF0_n_c-QF0_n_b)・・・・（４）QFD_n=(QF_n_c/((QF_n_c-QF_n_b)/(QF0_n_c-QF0_n_b))) -QF0_n_c・（５）      
=(QF_n_c/S_n)-QF0_n_c  ・・・・（６） 
ここに、
QF_n_b：燃料噴射パルス幅がTI_bのときのｎ番気筒の燃料噴射弁の特性変化後の燃料噴射量
QF0_n_b：燃料噴射パルス幅がTI_bのときのｎ番気筒の燃料噴射弁の特性変化前の燃料噴射量（誤差なく目標空燃比を実現可能な燃料噴射量）
QF_n_c：燃料噴射パルス幅がTI_cのときのｎ番気筒の燃料噴射弁の特性変化後の燃料噴射量
QF0_n_c：燃料噴射パルス幅がTI_cのときのｎ番気筒の燃料噴射弁の特性変化前の燃料噴射量（誤差なく目標空燃比を実現可能な燃料噴射量）
なお、TI_b＜TI_cである。
【００２９】
TI_nとQF0_nの関係は、あらかじめ決めておくことができる。以上から、ｎ番気筒に２つの異なる燃料噴射パルス幅を指示した際に検出する２つの空燃比に基づいて、ｎ番気筒が備える燃料噴射弁の動流特性変化分QFD_nを検出することが可能である。ｎ番気筒の動流特性変化分QFD_nが０に近くなるように、ｎ番気筒の燃料噴射弁の動流特性を補正する。あるいは、ｎ番気筒以外の動流特性変化分がQFD_nとなるように、ｎ番気筒以外の燃料噴射弁の動流特性を補正する。
【００３０】
また、本発明は例えば、前記第１の空燃比と第２の空燃比に基づいて、前記特定気筒の燃料噴射弁の動流特性と静流特性を分離して検出する手段と、前記動流特性検出手段の検出結果に基づいて、ある気筒の燃料噴射弁の動流特性を補正する手段と、前記静流特性検出手段の検出結果に基づいて、ある気筒の燃料噴射弁の静流特性を補正する手段とを備えたことを特徴とする。
【００３１】
すなわち、前述の（４）式、（５）式から、特定気筒に２つの異なる燃料噴射パルス幅を指示した際に検出した２つの空燃比に基づいて、特定の気筒が備える燃料噴射弁の動流特性変化分と静流特性変化分を分離して検出することが可能である。検出した動流特性変化分に基づいて、ある気筒の動流特性を補正するものである。また、静流特性は、単位時間あたりの燃料噴射量の変化であるので、検出した静流特性変化分に基づいて、ある気筒の静流特性を補正するものである。
【００３２】
また、本発明は例えば、前記動流特性を補正する手段は、前記燃料噴射弁の全閉から全開もしくは、全開から全閉までのリフトプロフィールを補正することを特徴とする。
【００３３】
すなわち、前述したように、動流特性の変化は、燃料噴射弁駆動時（閉→開、開→閉）の実際のリフトプロフィール変化によるものであるので、当該プロフィールを補正することで、動流特性を補正するものである。
【００３４】
また、本発明は例えば、前記動流特性を補正する手段は、前記ある気筒の燃料噴射弁の駆動電流を補正する手段であることを特徴とする。
【００３５】
すなわち、燃料噴射弁の駆動電流を補正することで、燃料噴射弁のリフトプロフィールを補正するものである。
【００３６】
また、本発明は例えば、前記ある気筒の燃料噴射弁の全閉から全開までのリフトプロフィール補正手段は、前記燃料噴射弁の突入電流の値を補正する手段であることを特徴とする。
【００３７】
すなわち、突入電流の値を補正することで、リフト速度、リフト量を調整し、動流特性変化分の燃料噴射量を調節するものである。燃料噴射量は増量側、減量側の双方に補正可能である。
【００３８】
また、本発明は例えば、前記ある気筒の燃料噴射弁の全開から全閉までのリフトプロフィール補正手段は、
前記燃料噴射弁の駆動電流を保持電流から所定時間掛けて０にする手段
であることを特徴とする。
【００３９】
すなわち、一般に、燃料噴射弁を全開から全閉にする場合、電流を保持電流から０に落とす際、所定時間掛けることで、全開から全閉の所要時間を長期化するものである。この場合、燃料噴射量は増量側に変化するので、動流特性変化により、燃料噴射量が減量側に変わった場合に適用できる。あるいは、動流特性変化により、燃料噴射量が増量側に変化した気筒以外の気筒に、当該制御を実施することで、気筒間の動流特性ばらつきを補正することができる。
【００４０】
また、本発明は例えば、前記静流特性を補正する手段は、前記燃料噴射弁の噴射パルスの長さを補正する手段とを備えたことを特徴とする。
【００４１】
すなわち、静流特性の変化は、燃料噴射弁の機構系の劣化、摩耗およびデポ詰まりなどに起因する単位時間あたりの燃料噴射量の変化によるものである。したがって、単位時間あたりの燃料噴射量を補正するために、噴射パルスの長さを補正するものである。
【００４２】
また、本発明は例えば、エンジンの負荷（トルク、空気量）が所定値以下のとき、前記特定気筒が備える燃料噴射弁の燃料噴射パルス幅が所定値より小さいと判定することを特徴とする。
【００４３】
すなわち、一般に、燃料噴射パルス幅とトルクには、高い相関がある。燃料噴射パルス幅の代わりにエンジンの負荷（トルク、空気量）を用いることができる。
【００４４】
また、本発明は例えば、一気筒あたりの一サイクル間に噴射する回数が所定値以上のとき、前記特定気筒が備える燃料噴射弁の燃料噴射パルス幅が所定値より小さいと判定する
ことを特徴とする。
【００４５】
すなわち、同じエンジン負荷（トルク、空気量）であっても、噴射回数が大きいときは、燃料噴射パルス幅は小さく、噴射回数が小さいときは、燃料噴射パルス幅は大きくなる。したがって、燃料噴射パルス幅の代わりに、一気筒あたりの一サイクル間に噴射する回数を用いることができる。
【００４６】
また、本発明は例えば、前記特定気筒の空燃比を検出する手段は、各気筒の排気管に取り付けられた空燃比センサ信号もしくはＯ２センサ信号であることを特徴とする。
【００４７】
すなわち、各気筒の排気管に取り付けられた空燃比センサ信号もしくはＯ２センサ信号から各気筒の空燃比を検出するものである。
【００４８】
また、本発明は例えば、前記特定気筒の空燃比を検出する手段は、少なくとも「排気管集合部の空燃比センサもしくはＯ２センサの出力信号のエンジン２回転周期の成分」もしくは「各気筒の回転変動」に基づいて検出することを特徴とする。
【００４９】
すなわち、気筒間の空燃比のばらつきが発生すると、排気管集合部の空燃比がエンジン２回転周期で振動するようになる。２回転周期成分の位相から空燃比がもっともばらついている気筒とばらつき方向をばらつきが検出でき、２回転周期成分の振幅から空燃比がもっともばらついている気筒のばらつき度が検出できる。また、気筒間の空燃比のばらつきが発生すると、気筒間の回転変動（もしくは角加速度）にばらつきが発生する。例えば、リッチ側に空燃比誤差が発生すると当該気筒の角加速度は、他の気筒の角加速度より大きくなる。リーン側に空燃比誤差が発生すると当該気筒の角加速度は、他の気筒の角加速度より小さくなる。空燃比信号の２回転成分、各気筒の回転変動に基づいて、各気筒の空燃比を検出する。
【００５０】
また、本発明は例えば、前記動流特性補正手段の補正値が所定範囲を外れたとき、異常を報知する手段とを備えたことを特徴とする。
【００５１】
すなわち、前述した方式で、動流特性変化分を補正するが、補正量が一定値を越えたとき、補正困難あるいは不可として、異常を報知するものである。
【００５２】
以下、具体的なシステム構成、制御内容に関する実施例を図面を用いて説明する。
【実施例１】
【００５３】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、燃料噴射パルス幅が所定値以下のときの各気筒の空燃比を検出し、検出した各気筒の空燃比が所定範囲に入るように、燃料噴射弁開弁時の突入電流値を補正する。
【００５４】
図９は、本実施例を示すシステム図である。多気筒（ここでは４気筒）で構成されるエンジン９において、外部からの空気はエアクリーナ１を通過し、吸気マニホールド４、コレクタ５を経てシリンダー内に流入する。流入空気量は電子スロットル３により調節される。エアフローセンサ２では流入空気量が検出される。また、吸気温センサ２９で、吸気温が検出される。クランク角センサ１５では、クランク軸の回転角１０゜毎の信号と燃焼周期毎の信号が出力される。水温センサ１４はエンジン９の冷却水温度を検出する。またアクセル開度センサ１３は、アクセル６の踏み込み量を検出し、それによって運転者の要求トルクを検出する。
【００５５】
アクセル開度センサ１３、エアフローセンサ２、吸気温センサ２９、電子スロットル３に取り付けられたスロットル開度センサ１７、クランク角センサ１５、水温センサ１４のそれぞれの信号は、後述のコントロールユニット１６に送られ、これらセンサ出力からエンジン９の運転状態を得て、空気量、燃料噴射量、点火時期のエンジン９等の主要な操作量が最適に演算される。
【００５６】
コントロールユニット１６内で演算された目標空気量は、目標スロットル開度→電子スロットル駆動信号に変換され、電子スロットル３に送られる。燃料噴射量は開弁パルス信号に変換され、燃料噴射弁(インジェクタ)７に送られる。またコントロールユニット１６で演算された点火時期で点火されるよう駆動信号が点火プラグ８に送られる。
【００５７】
噴射された燃料は吸気マニホールドからの空気と混合されエンジン９のシリンダー内に流入し混合気を形成する。混合気は所定の点火時期で点火プラグ８から発生される火花により爆発し、その燃焼圧によりピストンを押し下げてエンジン９の動力となる。爆発後の排気は排気マニホールド１０を経て三元触媒１１に送り込まれる。排気還流管１８を通って排気の一部は吸気側に還流される。還流量はＥＧＲ弁１９によって制御される。
【００５８】
１番気筒〜４番気筒の排気管１０にそれぞれ、空燃比センサ３０〜３３が取り付けられている。触媒下流Ｏ２センサ２０は三元触媒１１の下流に取り付けられている（図１０参照）。
【００５９】
図１１は、コントロールユニット１６の内部を示したものである。ＥＣＵ１６内にはエアフローセンサ２、空燃比センサ３０〜３３、アクセル開度センサ１３、水温センサ１４、クランク角センサ１５、スロットル弁開度センサ１７、触媒下流Ｏ２センサ２０、吸気温センサ２９、車速センサ３０の各センサ出力値が入力され、入力回路２４にてノイズ除去等の信号処理を行った後、入出力ポート２５に送られる。入力ポートの値はＲＡＭ２３に保管され、ＣＰＵ２１内で演算処理される。演算処理の内容を記述した制御プログラムはＲＯＭ２２に予め書き込まれている。制御プログラムに従って演算された各アクチュエータ作動量を表す値はＲＡＭ２３に保管された後、入出力ポート２５に送られる。点火プラグ８の作動信号は点火出力回路２６内の一次側コイルの通流時はＯＮとなり、非通流時はＯＦＦとなるＯＮ・ＯＦＦ信号がセットされる。点火時期はＯＮからＯＦＦになる時である。出力ポートにセットされた点火プラグ８用の信号は点火出力回路２６で燃焼に必要な十分なエネルギーに増幅され点火プラグ８に供給される。また燃料噴射弁７の駆動信号は開弁時ＯＮ、閉弁時ＯＦＦとなるＯＮ・ＯＦＦ信号がセットされ、燃料噴射弁駆動回路２７で燃料噴射弁７を開くに十分なエネルギーに増幅され燃料噴射弁７に送られる。電子スロットル３の目標開度を実現する駆動信号は、電子スロットル駆動回路２８を経て、電子スロットル３に送られる。ＥＧＲ弁１９の目標開度を実現する駆動信号は、ＥＧＲ弁駆動回路３４を経て、ＥＧＲ弁１９に送られる。
【００６０】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図１２は制御全体を表したブロック図であり、以下の演算部から構成される。
【００６１】
・空燃比検出部（図１３）
・動流特性補正値演算部（図１４）
「空燃比検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf_n, n:気筒番号)から、各気筒の噴射パルス幅が所定値以下のときの空燃比(Rabf_n_b , n:気筒番号)を演算する。「動流特性補正値演算部」では、空燃比(Rabf_n_b , n:気筒番号)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【００６２】
＜空燃比検出部（図１３）＞
本演算部では、Rabf_n_b(ｎ番気筒空燃比b)を演算する。具体的には、図１３に示される。
・TI_1≦Kb_TIのとき、Rabf_1_b=Rabf_1
TI_1＞Kb_TIのとき、Rabf_1_b=K_Rabf
・TI_2≦Kb_TIのとき、Rabf_2_b=Rabf_2
TI_2＞Kb_TIのとき、Rabf_2_b=K_Rabf
・TI_3≦Kb_TIのとき、Rabf_3_b=Rabf_3
TI_3＞Kb_TIのとき、Rabf_3_b=K_Rabf
・TI_4≦Kb_TIのとき、Rabf_4_b=Rabf_4
TI_4＞Kb_TIのとき、Rabf_4_b=K_Rabf
ただし、K1_Rabf_b≦K_Rabf≦K2_Rabf_b
K1_Rabf_b,K2_Rabf_bは、動流特性補正値演算部で用いるパラメータである。
【００６３】
また、ここに、
TI_n：ｎ番気筒噴射パルス幅
である。噴射パルス幅の演算方法は、従来、様々な制御方式が示されているので、ここでは詳述しない。例えば、気筒毎の空気量、エンジン回転速度などから求める。Kb_TIは小さいほど、動流特性の影響の大きい領域になるので、動流特性分検出精度が良くなるが、エンジン性能、実用条件、目標性能などに応じて決めるのが良い。K_Rabfは、K1_Rabf_b≦K_Rabf≦K2_Rabf_bを満たしていれば任意に決めて良い値である。Rabf_n_bの演算は、確度を上げるため、平均値（移動平均値）としてもよい。
【００６４】
＜動流特性補正値演算部（図１４）＞
本演算部では、I_i_n(ｎ番気筒燃料噴射弁駆動用突入電流値)を演算する。具体的には、図１４に示される。
・Rabf_n_b＜K1_Rabf_bのとき、
I_i_n=I_i_n(前回値)＋K1_I_i
・K2_Rabf_b＜Rabf_n_bのとき、
I_i_n=I_i_n(前回値)−K2_I_i
・それ以外のとき
I_i_n=I_i_n(前回値)
ただし、K1_Rabf_b≦K_Rabf≦K2_Rabf_b
Rabf_n_b＜K1_Rabf_bのとき、当該気筒の空燃比は、噴射パルス幅が小さくなるほど、リッチになっており、動流特性は、増量側に変化している。燃料噴射弁突入電流値を大きくすることで、開弁所要時間を短くし、動流特性を減量補正する。K2_Rabf_b＜Rabf_n_bのとき、当該気筒の空燃比は、当該気筒の空燃比は、噴射パルス幅が小さくなるほど、リーンになっており、動流特性は、減量側に変化している。燃料噴射弁突入電流値を小さくすることで、開弁所要時間を長くし、動流特性を増量補正する。なお、I_i_nは、燃料噴射弁７を全開にすることを前提としているが、中間リフトも用いる場合、中間リフト相当電流値では、突入電流を小さくするほど、中間リフト量が少なくなるので、動流特性分は、減量側に変化し、突入電流を大きくするほど、中間リフト量が多くなるので、動流特性分は、増量側に変化する。
【００６５】
K1_Rabf_b、K2_Rabf_bは、エンジン性能、目標性能に応じて決めるのが良い。
【実施例２】
【００６６】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、エンジン負荷相当パラメータが所定値以下のときの各気筒の空燃比を検出し、検出した各気筒の空燃比が所定範囲に入るように、燃料噴射弁７開弁時の突入電流値を補正する。
【００６７】
図９および図１０は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【００６８】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図１２は制御全体を表したブロック図であり、以下の演算部から構成される。
【００６９】
・空燃比検出部（図１５）
・動流特性補正値演算部（図１４）
「空燃比検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf_n, n:気筒番号)から、トルク相当値が所定値以下のときの空燃比(Rabf_n_b , n:気筒番号)を演算する。「動流特性補正値演算部」では、空燃比(Rabf_n_b , n:気筒番号)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【００７０】
＜空燃比検出部（図１５）＞
本演算部では、Rabf_n_b(ｎ番気筒空燃比b)を演算する。具体的には、図１５に示される。
・TP≧Kb_TPのとき、
Rabf_1_b=Rabf_1
Rabf_2_b=Rabf_2
Rabf_3_b=Rabf_3
Rabf_4_b=Rabf_4
・TP＞Kb_TPのとき、
Rabf_1_b=K_Rabf
Rabf_2_b=K_Rabf
Rabf_3_b=K_Rabf
Rabf_4_b=K_Rabf
ただし、K1_Rabf_b≦K_Rabf≦K2_Rabf_b
K1_Rabf_b,K2_Rabf_bは、動流特性補正値演算部で用いるパラメータである。
また、ここに、
TP：エンジン負荷相当値
である。エンジン負荷相当値は、従来、様々な制御方式が示されているので、ここでは詳述しない。例えば、気筒毎の空気量、エンジン回転速度などから求める。Kb_TPは小さいほど、動流特性の影響の大きい領域になるので、動流特性分検出精度が良くなるが、エンジン性能、実用条件、目標性能などに応じて決めるのが良い。K_Rabfは、K1_Rabf_b≦K_Rabf≦K2_Rabf_bを満たしていれば任意に決めて良い値である。Rabf_n_bの演算は、確度を上げるため、平均値（移動平均値）としてもよい。
【００７１】
＜動流特性補正値演算部（図１４）＞
本演算部では、I_i_n(ｎ番気筒燃料噴射弁駆動用突入電流値)を演算する。具体的には、図１４に示されるが、実施例１と同じであるので、詳述しない。
【実施例３】
【００７２】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、燃料噴射回数が所定値以上のときの各気筒の空燃比を検出し、検出した各気筒の空燃比が所定範囲に入るように、燃料噴射弁７開弁時の突入電流値を補正する。
【００７３】
図９および図１０は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【００７４】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図１２は制御全体を表したブロック図であり、以下の演算部から構成される。
【００７５】
・空燃比検出部（図１６）
・動流特性補正値演算部（図１４）
「空燃比検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf_n, n:気筒番号)から、噴射回数が所定値以上のときの空燃比(Rabf_n_b , n:気筒番号)を演算する。「動流特性補正値演算部」では、空燃比(Rabf_n_b , n:気筒番号)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【００７６】
＜空燃比検出部（図１６）＞
本演算部では、Rabf_n_b(ｎ番気筒空燃比b)を演算する。具体的には、図１６に示される。
・Kai_TI≧Kb_Kai_TIのとき、     
Rabf_1_b=Rabf_1
Rabf_2_b=Rabf_2
Rabf_3_b=Rabf_3
Rabf_4_b=Rabf_4
・Kai_TI＞Kb_Kai_TIのとき、
Rabf_1_b=K_Rabf
Rabf_2_b=K_Rabf
Rabf_3_b=K_Rabf
Rabf_4_b=K_Rabf
ただし、K1_Rabf_b≦K_Rabf≦K2_Rabf_b
K1_Rabf_b,K2_Rabf_bは、動流特性補正値演算部で用いるパラメータである。
また、ここに、
Kai_TI：1気筒１サイクルあたりの噴射回数
である。1気筒１サイクルあたりの噴射回数(分割噴射回数)は、従来、様々な制御方式が示されているので、ここでは詳述しない。例えば、エンジン９の運転条件（負荷、回転速度）などから求める。Kb_Kai_TIは、大きいほど、検出精度が良くなるが、エンジン性能、実用条件、目標性能などに応じて決めるのが良い。K_Rabfは、K1_Rabf_b≦K_Rabf≦K2_Rabf_bを満たしていれば任意に決めて良い値である。Rabf_n_bの演算は、確度を上げるため、平均値（移動平均値）としてもよい。
【００７７】
＜動流特性補正値演算部（図１４）＞
本演算部では、I_i_n(ｎ番気筒燃料噴射弁駆動用突入電流値)を演算する。具体的には、図１４に示されるが、実施例１と同じであるので、詳述しない。
【実施例４】
【００７８】
本実施例では、触媒上流空燃比センサ１２の信号(Rabf) のエンジン２回転成分とクランク角センサ１５(Ne)の信号から、燃料噴射パルス幅が所定値以下のときの各気筒の空燃比を検出し、検出した各気筒の空燃比が所定範囲に入るように、燃料噴射弁７開弁時の突入電流を補正する。
【００７９】
図１７は、本実施例を示すシステム図である。実施例１では、１番気筒〜４番気筒の排気管１０にそれぞれ、空燃比センサ３０〜３３が取り付けられていたが、本実施例では、空燃比センサ１２が、排気管集合部に一つ取り付けられている。それ以外は、実施例１と同じであるので詳述しない。図１８はコントロールユニット１６の内部を示したものである。実施例１では、空燃比センサ３０〜３３の出力信号が、入力回路２４へ入力されていたが、本実施例では、空燃比センサ１２の出力信号が、入力されている。それ以外は、実施例１と同じであるので詳述しない。
【００８０】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図１９は制御全体を表したブロック図であり、以下の演算部から構成される。
【００８１】
・空燃比検出部（図２０〜図２９）
・補正値演算部（図１４）
「空燃比検出部」で、気筒毎の空燃比センサ１２の信号(Rabf)とクランク角センサ信号(Ne)から、各気筒の噴射パルス幅が所定値以下のときの空燃比(Rabf_n_b , n:気筒番号)を演算する。「動流特性補正値演算部」では、空燃比(Rabf_n_b , n:気筒番号)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【００８２】
＜空燃比検出部（図２０）＞
「２回転成分演算部」で、触媒上流空燃比センサ１２の信号(Rabf)の２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。「２回転成分位相演算部」で、R_2revとI_2revから、２回転成分位相(Phase)を演算する。「空燃比ずれ気筒検出部１」では、Phaseから、もっとも空燃比がずれている気筒とずれ方向(リッチもしくはリーン)(f_a_2rev,f_b_2rev,f_c_2rev,f_d_2rev)を検出する。「２回転成分パワー演算部」でR_2revとI_2revから、２回転成分パワー(Power)を演算する。
「気筒別回転変動演算部」では、クランク角センサ１５の信号から気筒別回転変動(dNe_1, dNe_2, dNe_3, dNe_4)を演算する。「空燃比ずれ気筒検出部２」では、d_Ne_1, dNe_2, dNe_3, dNe_4から、もっとも空燃比がずれている気筒とずれ方向(リッチもしくはリーン) (f_1R_dNe, f_2R_dNe, f_3R_dNe, f_4R_dNe, f_1L_dNe, f_2L_dNe, f_3L_dNe, f_4L_dNe)を検出する。「空燃比ずれ気筒検出部３」では、「空燃比ずれ気筒検出部１」の検出結果と「空燃比ずれ気筒検出部２」の検出結果の双方を用いて、最終的にもっとも空燃比がずれている気筒とずれ方向(リッチもしくはリーン)(f_1R,f_2R,f_3R,f_4R,f_1L,f_2L,f_3L,f_4L)を検出する。「空燃比ずれ気筒の空燃比推定部」では、「空燃比ずれ気筒検出部３」の検出結果と触媒上流空燃比センサ１２の信号(Rabf)と２回転成分パワー(Power)から、もっとも空燃比がずれている気筒の空燃比(estRabf_k_cyl)と当該気筒の気筒番号(k_cyl)を演算する。「空燃比検出部(コア)」で、estRabf_k_cylとK_cylから、各気筒の噴射パルス幅が所定値以下のときの空燃比(Rabf_n_b , n:気筒番号)を演算する。
【００８３】
以下、各演算部の詳細を説明する。
【００８４】
＜２回転成分演算部（図２１）＞
本演算部では、触媒上流空燃比センサ１２の信号(Rabf)の２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。具体的には、図２１に示される。Rabfの今回値と前回値の差を演算し、dRabf(触媒上流空燃比センサ信号差分値)とする。dRabfに対して図中の波線で囲まれた処理(離散フーリエ変換)を実施する。
C_R×dRabfの今回値と前回値と前々回値と前々々回値の和をR_2revとする。また、C_I×dRabfの今回値と前回値と前々回値と前々々回値の和をI_2revとする。ここに、C_RおよびC_Iは、CYLCNT(シリンダ番号)に応じて、次の様に演算する。CYLCNTは、Ｎ番気筒のピストン位置が所定値にあるときに更新される。ここでは、当該気筒の圧縮ＴＤＣ前１１０degで更新されるものとする。
【００８５】
CYLCNT=1のとき、C_R=1
CYLCNT=3もしくは2のとき、C_R=0
CYLCNT=4のとき、C_R=-1
また、
CYLCNT=1もしくは4のとき、C_I=0
CYLCNT=3のとき、C_I=1
CYLCNT=2のとき、C_I=-1
【００８６】
＜２回転成分位相演算部（図２２）＞
本演算部では、２回転成分位相(Phase)を演算する。具体的には、図２２に示される。R_2revとI_2revから、下式により、Phase0(２回転成分位相基本値)を求める
arctan2(I_2rev/R_2rev)×(180/π)
ここに、arctan2は、４象限(-180〜180deg)に対応した逆正接値(＝位相)演算する。
【００８７】
さらに、位相の範囲を0〜360degとするPhase(２回転成分位相)を求める。具体的には、
Phase0<0の時は、Phase=Phase0+360とし、
それ以外の時は、Phase=Phase0とする。
【００８８】
＜空燃比ずれ気筒検出部１（図２３）＞
本演算部では、Phaseを用いて、空燃比がずれている気筒を検出する。具体的には、図２３に示される。
・f_a_2rev=0, f_b_2rev=0, f_c_2rev=0, f_d_2rev=0
に初期化する。
・K1_Phase≦Phase＜K2_Phaseのとき、１番気筒の空燃比がもっともリッチもしくは４番気筒の空燃比がもっともリーンであるとして、１番気筒リッチもしくは４番気筒リーンフラグ(f_a_2rev)を1とする。気筒数が４気筒のエンジンでは（点火順序（燃焼順序）が１番気筒→３番気筒→４番気筒→２番気筒）、例えば、１番気筒の空燃比がリッチ側にずれた時と、４番気筒の空燃比がリーン側にずれた時では、位相がほぼ重なるため、どちらかに特定することができない。ただし、１番気筒リッチもしくは４番気筒リーンのいずれかまでは、特定する。
以下、同様に、
・K2_Phase≦Phase＜K3_Phaseのとき、２番気筒リッチもしくは３番気筒リーンフラグ(f_b_2rev)を1とする。
・K3_Phase≦Phase＜K4_Phaseのとき、３番気筒リッチもしくは２番気筒リーンフラグ(f_c_2rev)を1とする。
・K4_Phase≦Phase＜K5_Phaseのとき、４番気筒リッチもしくは１番気筒リーンフラグ(f_d_2rev)を1とする。
K1_Phase、K2_Phase、K3_Phase、K4_Phase、K5_Phaseの値は、エンジンに応じて変わるので、経験的に決めるのが良い。
【００８９】
＜２回転成分パワー演算部（図２４）＞
本演算部では、２回転成分パワー(Power)を演算する。具体的には、図２４に示される。R_2revとI_2revから、下式により、Power(２回転成分パワー)を求める。
√((R_2rev×R_2rev)＋(I_2rev×I_2rev))
【００９０】
＜気筒別回転変動演算部（図２５）＞
本演算部では、気筒別の回転変動(dNe_1, dNe_2, dNe_3, dNe_4)を演算する。具体的には、図２５に示される。
・Ne(回転速度)の今回値と前回値の差を演算し、dNe(回転変動)とする。
・CYLCNT=1のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe_2(前回値)
dNe_3=dNe_3(前回値), dNe_4=dNe
CYLCNT=2のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe_2(前回値)
dNe_3=dNe, dNe_4=dNe_4(前回値) 
CYLCNT=3のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe
dNe_3=dNe_3(前回値), dNe_4=dNe_4(前回値)
CYLCNT=4のとき、
dNe_1=dNe, dNe_2=dNe_2(前回値)
dNe_3=dNe_3(前回値), dNe_4=dNe_4(前回値)
ここに、
dNe_1：１番気筒回転変動
dNe_2：２番気筒回転変動
dNe_3：３番気筒回転変動
dNe_4：４番気筒回転変動
【００９１】
＜空燃比ずれ気筒検出部２（図２６）＞
本演算部では、dNe_1, dNe_2, dNe_3, dNe_4を用いて、空燃比がずれている気筒を検出する。具体的には、図２６に示される。
・f_1R_dNe=0, f_2R_dNe=0, f_3R_dNe=0, f_4R_dNe=0,
f_1L_dNe=0, f_2L_dNe=0, f_3L_dNe=0, f_4L_dNe=0,
に初期化する。
・dNe_1, dNe_2, dNe_3, dNe_4の最大値が、dNe_1のとき、１番気筒の空燃比がもっともリッチであるとして、１番気筒リッチフラグ(f_1R_dNe)を1とする。
【００９２】
dNe_1, dNe_2, dNe_3, dNe_4の最大値が、dNe_2のとき、２番気筒リッチフラグ(f_2R_dNe)を1とする。
【００９３】
dNe_1, dNe_2, dNe_3, dNe_4の最大値が、dNe_3のとき、３番気筒リッチフラグ(f_3R_dNe)を1とする。
【００９４】
dNe_1, dNe_2, dNe_3, dNe_4の最大値が、dNe_4のとき、４番気筒リッチフラグ(f_4R_dNe)を1とする。
・dNe_1, dNe_2, dNe_3, dNe_4の最小値が、dNe_1のとき、１番気筒の空燃比がもっともリーンであるとして、１番気筒リッチフラグ(f_1R_dNe)を1とする。
【００９５】
dNe_1, dNe_2, dNe_3, dNe_4の最小値が、dNe_2のとき、２番気筒リーンフラグ(f_2L_dNe)を1とする。
【００９６】
dNe_1, dNe_2, dNe_3, dNe_4の最小値が、dNe_3のとき、３番気筒リーンフラグ(f_3L_dNe)を1とする。
【００９７】
dNe_1, dNe_2, dNe_3, dNe_4の最小値が、dNe_4のとき、４番気筒リーンフラグ(f_4L_dNe)を1とする。
リッチフラグとリーンフラグの双方が1となったときは、リーンフラグを優先して１とし、リッチフラグは、０とする。
【００９８】
＜空燃比ずれ気筒検出部３（図２７）＞
本演算部では、空燃比ずれ気筒検出部１と空燃比ずれ気筒検出部２の検出結果を用いて、空燃比がずれている気筒を最終的に特定する。具体的には、図２７に示される。
・f_1R=0, f_2R=0, f_3R=0, f_4R=0, f_1L=0, f_2L=0, f_3L=0, f_4L=0に初期化する。
・f_a_2rev=1かつf_1R_dNe=1のとき、空燃比センサ信号２回転成分の位相情報およびクランク角センサ信号による回転変動情報の双方から、１番気筒の空燃比がもっともリッチであると判断し、１番気筒リッチフラグ(f_1R)を1とする。
以下、同様にして、
f_b_2rev=1かつf_2R_dNe=1のとき、f_2R=1とする。
【００９９】
f_c_2rev=1かつf_3R_dNe=1のとき、f_3R=1とする。
【０１００】
f_d_2rev=1かつf_4R_dNe=1のとき、f_4R=1とする。
【０１０１】
f_d_2rev=1かつf_1L_dNe=1のとき、f_1L=1とする。
【０１０２】
f_c_2rev=1かつf_2L_dNe=1のとき、f_2L=1とする。
【０１０３】
f_b_2rev=1かつf_3L_dNe=1のとき、f_3L=1とする。
【０１０４】
f_a_2rev=1かつf_4L_dNe=1のとき、f_4L=1とする。
【０１０５】
＜空燃比ずれ気筒の空燃比推定部（図２８）＞
本演算部では、空燃比ずれ気筒番号(k_cyl)と空燃比ずれ気筒の空燃比(estRabf_k_cyl)を演算する。具体的には、図２８に示される。
・f_1R=1もしくはf_1L=1のとき、k_cyl=1
f_2R=1もしくはf_2L=1のとき、k_cyl=2
f_3R=1もしくはf_3L=1のとき、k_cyl=3
f_4R=1もしくはf_4L=1のとき、k_cyl=4
・f_1R=1もしくはf_2R=1もしくはf_3R=1もしくはf_4R=1のとき、リッチフラグ(f_R)を1とする。
【０１０６】
f_1L=1もしくはf_2L=1もしくはf_3L=1もしくはf_4L=1のとき、リーンフラグ(f_L)を１とする。
・f_R=1のとき、estRabf_k_cyl=Rabf−dRabf
f_L=1のとき、estRabf_k_cyl=Rabf＋dRabf
ここに、dRabf(空燃比ずれ量)は、Power(２回転成分パワー)をテーブルTbl_estRabfを参照した値である。Tbl_estRabfの設定値は、Powerと空燃比のずれ量との関係をエンジンの特性に応じて決めるのが良い。
【０１０７】
＜空燃比検出部(コア)（図２９）＞
本演算部では、Rabf_n_b(ｎ番気筒空燃比b)を演算する。具体的には、図２９に示される。
i)k_cyl=1のとき
TI_1≦Kb_TIのとき、Rabf_1_b=Rabf_1
TI_1＞Kb_TIのとき、Rabf_1_b=K_Rabf
Rabf_2_b=K_Rabf
Rabf_3_b=K_Rabf
Rabf_4_b=K_Rabf
ii)k_cyl=2のとき
TI_2≦Kb_TIのとき、Rabf_2_b=Rabf_2
TI_2＞Kb_TIのとき、Rabf_2_b=K_Rabf
Rabf_1_b=K_Rabf
Rabf_3_b=K_Rabf
Rabf_4_b=K_Rabf
iii)k_cyl=3のとき
TI_3≦Kb_TIのとき、Rabf_3_b=Rabf_3
TI_3＞Kb_TIのとき、Rabf_3_b=K_Rabf
Rabf_1_b=K_Rabf
Rabf_2_b=K_Rabf
Rabf_4_b=K_Rabf
iv)k_cyl=4のとき
TI_4≦Kb_TIのとき、Rabf_4_b=Rabf_4
TI_4＞Kb_TIのとき、Rabf_4_b=K_Rabf
Rabf_1_b=K_Rabf
Rabf_2_b=K_Rabf
Rabf_3_b=K_Rabf
ただし、K1_Rabf_b≦K_Rabf≦K2_Rabf_b
K1_Rabf_b,K2_Rabf_bは、動流特性補正値演算部で用いるパラメータである。
【０１０８】
また、ここに、
TI_n：ｎ番気筒噴射パルス幅
である。Kb_TIは小さいほど、動流特性の影響の大きい領域になるので、動流特性分検出精度が良くなるが、エンジン性能、実用条件、目標性能などに応じて決めるのが良い。K_Rabfは、K1_Rabf_b≦K_Rabf≦K2_Rabf_bを満たしていれば任意に決めて良い値である。
【０１０９】
＜動流特性補正値演算部（図１４）＞
本演算部では、I_i_n(ｎ番気筒燃料噴射弁駆動用突入電流値)を演算する。具体的には、図１４に示されるが、実施例１と同じであるので、詳述しない。
【実施例５】
【０１１０】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、燃料噴射パルス幅が所定値以下のときの各気筒の空燃比を検出し、検出した各気筒の空燃比が所定範囲に入るように、燃料噴射弁７閉弁時の電流値を補正する。
【０１１１】
図９および図１０は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【０１１２】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３０は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１１３】
・空燃比検出部（図１３）
・動流特性補正値演算部（図３１）
「空燃比検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf_n, n:気筒番号)から、各気筒の噴射パルス幅が所定値以下のときの空燃比(Rabf_n_b , n:気筒番号)を演算する。「動流特性補正値演算部」では、空燃比(Rabf_n_b , n:気筒番号)に基づいて、ｎ番気筒燃料噴射弁閉弁時電流値(I_k_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【０１１４】
＜空燃比検出部（図１３）＞
本演算部では、Rabf_n_b(ｎ番気筒空燃比b)を演算する。具体的には、図１３に示されるが、実施例１と同じであるので、詳述しない。
【０１１５】
＜動流特性補正値演算部（図３１）＞
本演算部では、I_k_n(ｎ番気筒燃料噴射弁閉弁時電流値)を演算する。具体的には、図３１に示される。
【０１１６】
I_k_nを、保持電流から０まで落とす時間をT_k_nとする。
【０１１７】
i)Rabf_1_b＞(Rabf_2_b, Rabf_3_b, Rabf_4_bの最大値)
かつK2_Rabf_b＜Rabf_1_bのとき、    
T_k_1=T_k_1(前回値)−K1_T_k
ii)Rabf_2_b＞(Rabf_1_b, Rabf_3_b, Rabf_4_bの最大値)
かつK2_Rabf_b＜Rabf_2_bのとき、  
T_k_2=T_k_2(前回値)−K1_T_k
iii)Rabf_3_b＞(Rabf_1_b, Rabf_2_b, Rabf_4_bの最大値)
かつK2_Rabf_b＜Rabf_3_bのとき、  
T_k_3=T_k_3(前回値)−K1_T_k
iv)Rabf_4_b＞(Rabf_1_b, Rabf_2_b, Rabf_3_bの最大値)
かつK2_Rabf_b＜Rabf_4_bのとき、  
T_k_4=T_k_4(前回値)−K1_T_k
v)上記以外のとき
T_k_1=T_k_1(前回値）
T_k_2=T_k_2(前回値）
T_k_3=T_k_3(前回値）
T_k_4=T_k_4(前回値）
ただし、K1_Rabf_b≦K_Rabf≦K2_Rabf_b
K2_Rabf_b＜Rabf_n_b(n：気筒番号)のとき、当該気筒の空燃比は、噴射パルス幅が小さくなるほど、リーンになっており、動流特性は、減量側に変化している。当該気筒の燃料噴射弁７閉弁時、駆動電流値を保持電流から０まで小さくする時間を長くすることで、完全に閉弁するまでの時間を長くし、動流特性を増量補正する。
【０１１８】
あるいは、Rabf_n_b＜K1_Rabf_b(n：気筒番号)のとき、当該気筒の空燃比は、噴射パルス幅が小さくなるほど、リッチになっており、動流特性は、増量側に変化している。当該気筒以外の燃料噴射弁７閉弁時、駆動電流値を保持電流から０まで小さくする時間を長くすることで、完全に閉弁するまでの時間を長くし、動流特性を増量補正する。この場合は、下記処理となる。
【０１１９】
i)Rabf_1_b＜(Rabf_2_b, Rabf_3_b, Rabf_4_bの最小値)
かつRabf_1_b＜K1_Rabf_bのとき、    
T_k_2=T_k_2(前回値)＋K2_T_k
T_k_3=T_k_3(前回値)＋K2_T_k
T_k_4=T_k_4(前回値)＋K2_T_k
ii)Rabf_2_b＜(Rabf_1_b, Rabf_3_b, Rabf_4_bの最小値)
かつRabf_2_b＜K1_Rabf_bのとき、    
T_k_1=T_k_1(前回値)＋K2_T_k
T_k_3=T_k_3(前回値)＋K2_T_k
T_k_4=T_k_4(前回値)＋K2_T_k
iii)Rabf_3_b＜(Rabf_1_b, Rabf_2_b, Rabf_4_bの最小値)
かつRabf_3_b＜K1_Rabf_bのとき、    
T_k_1=T_k_1(前回値)＋K2_T_k
T_k_2=T_k_2(前回値)＋K2_T_k
T_k_4=T_k_4(前回値)＋K2_T_k
iv)Rabf_4_b＜(Rabf_1_b, Rabf_2_b, Rabf_3_bの最小値)
かつRabf_4_b＜K1_Rabf_bのとき、    
T_k_1=T_k_1(前回値)＋K2_T_k
T_k_2=T_k_2(前回値)＋K2_T_k
T_k_3=T_k_3(前回値)＋K2_T_k
v)上記以外のとき
T_k_1=T_k_1(前回値）
T_k_2=T_k_2(前回値）
T_k_3=T_k_3(前回値）
T_k_4=T_k_4(前回値）
K1_Rabf_b、K2_Rabf_b、K1_T_k、K2_T_kは、エンジン性能、目標性能に応じて決めるのが良い。
【実施例６】
【０１２０】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、２つの異なる燃料噴射パルス幅における各気筒の空燃比を検出し、検出した各気筒の２つの空燃比の差が所定範囲に入るように、燃料噴射弁７開弁時の突入電流値を補正する。
【０１２１】
図９および図１０は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【０１２２】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３２は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１２３】
・空燃比差検出部（図３３）
・動流特性補正値演算部（図３４）
「空燃比差検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf1〜Rabf4)から、各気筒の噴射パルス幅が所定値以上のときと所定値以下のときの空燃比を検出し、各気筒の空燃比差(d_af_1〜d_af_2)を演算する。「プロフィール補正値演算部」では、各気筒の空燃比差(d_af_1〜d_af_2)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【０１２４】
＜空燃比差検出部（図３３）＞
本演算部では、d_af_n(ｎ番気筒空燃比差)を演算する。具体的には、図３３に示される。
・TI_1≧Kc_TIのとき、Rabf_1_c=Rabf_1
・TI_2≧Kc_TIのとき、Rabf_2_c=Rabf_2
・TI_3≧Kc_TIのとき、Rabf_3_c=Rabf_3
・TI_4≧Kc_TIのとき、Rabf_4_c=Rabf_4
・TI_1≦Kb_TIのとき、Rabf_1_b=Rabf_1
・TI_2≦Kb_TIのとき、Rabf_2_b=Rabf_2
・TI_3≦Kb_TIのとき、Rabf_3_b=Rabf_3
・TI_4≦Kb_TIのとき、Rabf_4_b=Rabf_4
ただし、Kc_TI＞Kb_TI
ここに、
TI_n：ｎ番気筒噴射パルス幅
である。噴射パルス幅の演算方法は、従来、様々な制御方式が示されているので、ここでは詳述しない。例えば、気筒毎の空気量、エンジン回転速度などから求める。Kc_TIとKb_TIは、差が大きいほど、検出精度が良くなるが、エンジン性能、実用条件、目標性能などに応じて決めるのが良い。次に、下記の処理を行う。
【０１２５】
d_af_n=Rabf_n_c-Rabf_n_b   (n：気筒番号(１〜４))
Rabf_n_cおよびRabf_n_bの演算は、確度を上げるため、平均値（移動平均値）としてもよい。
【０１２６】
＜動流補正値演算部（図３４）＞
本演算部では、I_i_n(ｎ番気筒燃料噴射弁駆動用突入電流値)を演算する。具体的には、図３４に示される。
・d_af_n＞K1_d_afのとき、
I_i_n=I_i_n(前回値)＋K1_I_i_n
・d_af_n＜K2_d_afのとき
I_i_n=I_i_n(前回値)−K2_I_i_n
・K2_d_af≦d_af_n≦K1_d_afのとき
I_i_n=I_i_n(前回値)
K1_d_af＞0, K2_d_af＜0である。
【０１２７】
d_af_n＞K1_d_afのとき、当該気筒の空燃比は、噴射パルス幅が小さくなるほど、リッチになっており、動流特性は、増量側に変化している。燃料噴射弁突入電流値を大きくすることで、開弁所要時間を短くし、動流特性を減量補正する。d_af_n＜K2_d_afのとき、当該気筒の空燃比は、当該気筒の空燃比は、噴射パルス幅が小さくなるほど、リッチになっており、動流特性は、減量側に変化している。燃料噴射弁突入電流値を小さくすることで、開弁所要時間を長くし、動流特性を増量補正する。
【０１２８】
なお、I_i_nは、燃料噴射弁７を全開にすることを前提としているが、中間リフトも用いる場合、中間リフト相当電流値では、突入電流を小さくするほど、中間リフト量が少なくなるので、動流特性分は、減量側に変化し、突入電流を大きくするほど、中間リフト量が多くなるので、動流特性分は、増量側に変化する。
【０１２９】
K1_d_af、K2_d_af、K1_I_i、K2_I_iは、エンジン性能、目標性能に応じて決めるのが良い。
【実施例７】
【０１３０】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、２つの異なる燃料噴射パルス幅における各気筒の空燃比を検出し、検出した各気筒の２つの空燃比に基づいて動流特性変化分を演算し、演算した動流特性変化分に基づいて、燃料噴射弁７開弁時の突入電流値を補正する。
【０１３１】
図９および図１０は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【０１３２】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３５は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１３３】
・動流特性変化分検出部（図３６〜図３９）
・動流特性補正値演算部（図４０）
「空燃比差検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf1〜Rabf4)から、各気筒の噴射パルス幅が所定値以上のときと所定値以下のときの空燃比を検出し、各気筒の燃料噴射弁７の動流特性変化分(QFD_1〜QFD_4)を演算する。「プロフィール補正値演算部」では、動流特性変化分(QFD_1〜QFD_4)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【０１３４】
＜動流特性変化分検出部（図３６）＞
本演算部では、ｎ番気筒動流特性変化分(QFD_n)を演算する。ここに、ｎは気筒番号（１〜４）である。本処理は、気筒毎に実施する。具体的には、図３６に示される。「ｎ番気筒基準燃料噴射量演算部」で、TI_n,S_n(前回値),QFD_n(前回値)から、n番気筒基準燃料噴射量(QF0_n)を演算する。噴射パルス幅の演算方法は、従来、様々な制御方式が示されているので、ここでは詳述しない。「ｎ番気筒実燃料噴射量演算部」で、QF0_n,TI_n,Rabf_nからｎ番気筒実燃料噴射量ｃ(QF_n_c)、ｎ番気筒基準燃料噴射量ｃ(QF0_n_c)、ｎ番気筒実燃料噴射量ｂ(QF_n_b)、ｎ番気筒基準燃料噴射量ｂ(QF0_n_b)を演算する。「ｎ番気筒動流特性変化分演算部」で、QF_n_c,QF0_n_c,QF_n_b,QF0_n_bからｎ番気筒静流特性変化分(S_n)とｎ番気筒動流特性変化分(QFD_n)を演算する。以下、「ｎ番気筒基準燃料噴射量演算部」、「ｎ番気筒実燃料噴射量演算部」、「ｎ番気筒動流特性変化分演算部」の詳細を述べる。
【０１３５】
＜ｎ番気筒基準燃料噴射量演算部（図３７）＞
本演算部では、ｎ番気筒基準燃料噴射量(QF0_n）を演算する。具体的には、図３７に示される。TI_n(n番気筒燃料噴射パルス幅)から、テーブルTbl_QF0を参照した値に、QFD_n(ｎ番気筒動流特性変化分)を加えた値をQF0_n(ｎ番気筒基準燃料噴射量)とする。
【０１３６】
テーブルTbl_QF0の設定値は、燃料噴射弁７の特性変化前の燃料噴射量（誤差なく目標空燃比を実現可能な燃料噴射量で新品時の理想的な特性に相当）とする。
【０１３７】
なお、QFD_nは、前回値と比較して、所定値以上、変化しているときは、更新し、変化していないときは、更新しない、としてもよい。
【０１３８】
＜ｎ番気筒実燃料噴射量演算部（図３８）＞
本演算部では、ｎ番気筒実燃料噴射量ｃ(QF_n_c)、ｎ番気筒基準燃料噴射量ｃ(QF0_n_c)、ｎ番気筒実燃料噴射量ｂ(QF_n_b)、ｎ番気筒基準燃料噴射量ｂ(QF0_n_b)を演算する。具体的には、図３８に示され、下式で求める。
・TI_n≧Kc_TIのとき、
AFO_n_c=Alpha×Rabf_n
QF0_n_c=QF0_n
QF_n_c=AFst/AFO_n_c×QF0_n
・TI_n≦Kb_TIのとき、
AFO_n_b=Alpha×Rabf_n
QF0_n_b=QF0_n
QF_n_b=AFst/AFO_n_b×QF0_n
ここに、
TI_n：ｎ番気筒燃料噴射パルス幅
QF0_n：ｎ番気筒基準燃料噴射量
Rabf_n：ｎ番気筒空燃比
また、Kc_TI＞Kb_TIであり、Kc_TIとKb_TIは、差が大きいほど、検出精度が良くなるが、エンジン性能、実用条件、目標性能などに応じて決めるのが良い。
【０１３９】
＜ｎ番気筒噴射特性変化分演算部（図３９）＞
本演算部では、ｎ番気筒動流特性変化分(QFD_n）を演算する。具体的には、図３６に示され、下式で求める。
QFD_n=QF_n_c/S_n - QF0_n_c
ここに、
S_n=(QF_n_c - QF_n_b)/ (QF0_n_c - QF0_n_b)
である。
【０１４０】
なお、実施例７で述べるが、S_nは、ｎ番気筒静流特性変化分に当たる。
【０１４１】
＜動流特性補正値演算部（図４０）＞
本演算部では、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n）演算する。具体的には、図４０に示される。QFD_n(ｎ番気筒動流特性変化分)をテーブルTbl_I_iを参照した値をI_i_nとする。Tbl_I_iの設定値は、実機性能に応じて決める。
【実施例８】
【０１４２】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、２つの異なる燃料噴射パルス幅における各気筒の空燃比を検出し、検出した各気筒の２つの空燃比に基づいて動流特性変化分および静流特性変化分を演算し、演算した動流特性変化分に基づいて燃料噴射弁７開弁時の突入電流値を補正し、静流特性変化分に基づいて燃料噴射パルス幅補正する。
【０１４３】
図９および図１０は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【０１４４】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図４１は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１４５】
・動流特性および静流特性変化分検出部（図４２〜図４４、図３８）
・動流特性および静流特性補正値演算部（図４３）
「空燃比差検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf1〜Rabf4)から、各気筒の噴射パルス幅が所定値以上のときと所定値以下のときの空燃比を検出し、各気筒の燃料噴射弁７の静流特性変化分(S_1〜S_4)および動流特性変化分(QFD_1〜QFD_4)を演算する。「プロフィール補正値演算部」では、静流特性変化分(S_1〜S_4)および動流特性変化分(QFD_1〜QFD_4)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。以下、各演算部の詳細を説明する。
【０１４６】
＜動流特性および静流特性変化分検出部（図４２）＞
本演算部では、ｎ番気筒動流特性変化分(QFD_n)とｎ番気筒静流特性変化分(S_n)を演算する。ここに、ｎは気筒番号（１〜４）である。本処理は、気筒毎に実施する。具体的には、図４２に示される。「ｎ番気筒基準燃料噴射量演算部」で、TI_n,S_n(前回値),QFD_n(前回値)から、n番気筒基準燃料噴射量(QF0_n)を演算する。噴射パルス幅の演算方法は、従来、様々な制御方式が示されているので、ここでは詳述しない。「ｎ番気筒実燃料噴射量演算部」で、QF0_n,TI_n,Rabf_nからｎ番気筒実燃料噴射量ｃ(QF_n_c)、ｎ番気筒基準燃料噴射量ｃ(QF0_n_c)、ｎ番気筒実燃料噴射量ｂ(QF_n_b)、ｎ番気筒基準燃料噴射量ｂ(QF0_n_b)を演算する。「ｎ番気筒静流特性および動流特性変化分演算部」で、QF_n_c,QF0_n_c,QF_n_b,QF0_n_bからｎ番気筒静流特性変化分(S_n)とｎ番気筒動流特性変化分(QFD_n)を演算する。以下、「ｎ番気筒基準燃料噴射量演算部」、「ｎ番気筒実燃料噴射量演算部」、「ｎ番気筒静流特性および動流特性変化分演算部」の詳細を述べる。
【０１４７】
＜ｎ番気筒基準燃料噴射量演算部（図４３）＞
本演算部では、ｎ番気筒基準燃料噴射量(QF0_n）を演算する。具体的には、図４３に示される。TI_n(n番気筒燃料噴射パルス幅)から、テーブルTbl_QF0を参照した値に、QFD_n(ｎ番気筒動流特性変化分)を加え、S_n(ｎ番気筒静流特性変化分)を乗じた値をQF0_n(ｎ番気筒基準燃料噴射量)とする。
【０１４８】
テーブルTbl_QF0の設定値は、燃料噴射弁７の特性変化前の燃料噴射量（誤差なく目標空燃比を実現可能な燃料噴射量で新品時の理想的な特性に相当）とする。
【０１４９】
なお、S_n、QFD_nは、前回値と比較して、所定値以上、変化しているときは、更新し、変化していないときは、更新しない、としてもよい。
【０１５０】
＜ｎ番気筒実燃料噴射量演算部（図３８）＞
本演算部では、ｎ番気筒実燃料噴射量ｃ(QF_n_c)、ｎ番気筒基準燃料噴射量ｃ(QF0_n_c)、ｎ番気筒実燃料噴射量ｂ(QF_n_b)、ｎ番気筒基準燃料噴射量ｂ(QF0_n_b)を演算する。具体的には、図３８に示されるが、実施例７と同じであるので詳述しない。
【０１５１】
＜ｎ番気筒噴射特性変化分演算部（図４４）＞
本演算部では、ｎ番気筒静流特性変化分(S_n）とｎ番気筒動流特性変化分(QFD_n）を演算する。具体的には、図４４に示され、下式で求める。
S_n=(QF_n_c - QF_n_b)/ (QF0_n_c - QF0_n_b)
QFD_n=QF_n_c/S_n - QF0_n_c
【０１５２】
＜動流特性および静流特性補正値演算部（図４５）＞
本演算部では、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n）とｎ番気筒燃料噴射パルス幅補正値(KTI_G)演算する。具体的には、図４５に示される。
【０１５３】
QFD_n(ｎ番気筒動流特性変化分)をテーブルTbl_I_iを参照した値をI_i_nとする。Tbl_I_iの設定値は、実機性能に応じて決める。
【０１５４】
S_n(ｎ番気筒静流特性変化分)に、係数G_Sを乗じた値をI_i_nとする。G_Sの設定値は、一般に１で良いが、実機性能などに応じて調整するのも良い。
【実施例９】
【０１５５】
本実施例では、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、２つの異なる燃料噴射パルス幅における各気筒の空燃比を検出し、検出した各気筒の２つの空燃比の差が小さくなるように、燃料噴射弁７開弁時の突入電流値を補正する。突入電流補正値が所定範囲を外れたとき、異常を報知する。
【０１５６】
図９および図１０は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【０１５７】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図４６は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１５８】
・空燃比差検出部（図１３）
・プロフィール補正値演算部（図１４）
・異常判定部（図４７）
「空燃比差検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf1〜Rabf4)から、各気筒の噴射パルス幅が所定値以上のときと所定値以下のときの空燃比を検出し、各気筒の空燃比差(d_af_1〜d_af_2)を演算する。「プロフィール補正値演算部」では、各気筒の空燃比差(d_af_1〜d_af_2)に基づいて、ｎ番気筒燃料噴射弁駆動用突入電流値(I_i_n, n:気筒番号)を演算する。「異常判定部」では、I_i_nから、異常フラグ(f_MIL)を演算する。以下、各演算部の詳細を説明する。
【０１５９】
＜空燃比差検出部（図１３）＞
本演算部では、d_af_n(ｎ番気筒空燃比差)を演算する。具体的には、図１３に示されるが、実施例１と同じであるので、詳述しない。
【０１６０】
＜動流特性補正値演算部（図１４）＞
本演算部では、I_i_n(ｎ番気筒燃料噴射弁駆動用突入電流値)を演算する。具体的には、図１４に示されるが、実施例１と同じであるので、詳述しない。
【０１６１】
＜異常判定部（図４７）＞
本演算部では、異常フラグ(f_MIL)を演算する。具体的には、図４７に示される。
【０１６２】
i) I_i_n≧K1_I_iもしくはI_i_n≦K2_I_iが
連続してK_MIL回続いたとき、f_MIL=1
ii)上記以外のとき、
f_MIL=0
K1_I_i,K2_I_I補正限界値であり、実機性能、目標性能等に応じて決めるのが良い。K_MILは、異常判定するまでの期間を指すパラメータであり、同じく、実機性能、目標性能等に応じて決めるのが良い。
【符号の説明】
【０１６３】
１  エアクリーナ
２  エアフローセンサ
３  電子スロットル
４  吸気管
５  コレクタ
６  アクセル
７  燃料噴射弁
８  点火プラグ
９  エンジン
１０  排気管
１１  三元触媒
１２  空燃比センサ
１３  アクセル開度センサ
１４  水温センサ
１５  エンジン回転数センサ
１６  コントロールユニット
１７  スロットル開度センサ
１８  排気還流管
１９  ＥＧＲ弁
２０  触媒下流O2センサ
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  入力回路
２５  入出力ポート
２６  点火出力回路
２７  燃料噴射弁駆動回路
２８  電子スロットル駆動回路
２９  吸気温センサ
３０  １番気筒用空燃比センサ
３１  ２番気筒用空燃比センサ
３２  ３番気筒用空燃比センサ
３３  ４番気筒用空燃比センサ
【図１】
2015117641.tif 000003
【図２】
2015117641.tif 000004
【図３】
2015117641.tif 000005
【図４】
2015117641.tif 000006
【図５】
2015117641.tif 000007
【図６】
2015117641.tif 000008
【図７】
2015117641.tif 000009
【図８】
2015117641.tif 000010
【図９】
2015117641.tif 000011
【図１０】
2015117641.tif 000012
【図１１】
2015117641.tif 000013
【図１２】
2015117641.tif 000014
【図１３】
2015117641.tif 000015
【図１４】
2015117641.tif 000016
【図１５】
2015117641.tif 000017
【図１６】
2015117641.tif 000018
【図１７】
2015117641.tif 000019
【図１８】
2015117641.tif 000020
【図１９】
2015117641.tif 000021
【図２０】
2015117641.tif 000022
【図２１】
2015117641.tif 000023
【図２２】
2015117641.tif 000024
【図２３】
2015117641.tif 000025
【図２４】
2015117641.tif 000026
【図２５】
2015117641.tif 000027
【図２６】
2015117641.tif 000028
【図２７】
2015117641.tif 000029
【図２８】
2015117641.tif 000030
【図２９】
2015117641.tif 000031
【図３０】
2015117641.tif 000032
【図３１】
2015117641.tif 000033
【図３２】
2015117641.tif 000034
【図３３】
2015117641.tif 000035
【図３４】
2015117641.tif 000036
【図３５】
2015117641.tif 000037
【図３６】
2015117641.tif 000038
【図３７】
2015117641.tif 000039
【図３８】
2015117641.tif 000040
【図３９】
2015117641.tif 000041
【図４０】
2015117641.tif 000042
【図４１】
2015117641.tif 000043
【図４２】
2015117641.tif 000044
【図４３】
2015117641.tif 000045
【図４４】
2015117641.tif 000046
【図４５】
2015117641.tif 000047
【図４６】
2015117641.tif 000048
【図４７】
2015117641.tif 000049