(57)【要約】【課題】燃料噴射制御に関する異常をより適切に検出することができる内燃機関の燃料噴射制御装置を提供する。【解決手段】ＥＣＵ４０は、燃料噴射弁３０の駆動特性に関するパラメータを取得する取得部と、取得部により取得した駆動特性に関するパラメータに基づいて、駆動特性のずれを補償する補正量を算出する補正量算出部と、補正量算出部により算出した補正量が所定の制御範囲から外れた場合に、駆動特性のずれに起因する異常が生じていると判定する第１異常判定部と、第１異常判定部により駆動特性のずれに起因する異常が生じていると判定されておらず、かつ取得部により取得した駆動特性に関するパラメータが異常を示した場合に、駆動特性のずれに起因する異常とは異なる異常が生じていると判定する第２異常判定部と、を備える。【選択図】図１
2019094858.tif 000002
【特許請求の範囲】
【請求項１】
燃料噴射弁（３０）による燃料噴射を制御する内燃機関（１１）の燃料噴射制御装置であって、
前記燃料噴射弁の駆動特性に関するパラメータを取得する取得部と、
前記取得部により取得した前記駆動特性に関するパラメータに基づいて、前記駆動特性のずれを補償する補正量を算出する補正量算出部と、
前記補正量算出部により算出した前記補正量が所定の制御範囲から外れた場合に、前記駆動特性のずれに起因する異常が生じていると判定する第１異常判定部と、
前記第１異常判定部により前記駆動特性のずれに起因する異常が生じていると判定されておらず、かつ前記取得部により取得した前記駆動特性に関するパラメータが異常を示した場合に、前記駆動特性のずれに起因する異常とは異なる異常が生じていると判定する第２異常判定部と、
を備える内燃機関の燃料噴射制御装置。
【請求項２】
前記燃料噴射弁の弁体（３４）がフルリフト位置に到達しない通電時間で前記燃料噴射弁を開弁駆動するパーシャルリフト噴射を実施する噴射制御部を備え、
前記取得部は、前記パーシャルリフト噴射を実施している期間での前記弁体のリフト挙動を表すパラメータを前記駆動特性に関するパラメータとして取得し、
前記第２異常判定部は、前記パーシャルリフト噴射を実施している期間に、前記駆動特性のずれに起因する異常とは異なる異常の有無を判定する、請求項１に記載の内燃機関の燃料噴射制御装置。
【請求項３】
前記取得部は、前記パーシャルリフト噴射においてリフトされた前記弁体がリフト開始位置に戻るタイミングを特定するパラメータを前記駆動特性に関するパラメータとして取得する、請求項２に記載の内燃機関の燃料噴射制御装置。
【請求項４】
前記燃料噴射弁の弁体が駆動しない通電時間で前記燃料噴射弁に通電するゼロリフト通電制御を実施する通電制御部を備え、
前記取得部は、前記ゼロリフト通電制御を実施している期間での前記弁体のリフト挙動を表すパラメータを前記駆動特性に関するパラメータとして取得し、
前記第２異常判定部は、前記ゼロリフト通電制御を実施している期間に、前記駆動特性のずれに起因する異常とは異なる異常の有無を判定する、請求項１〜３のいずれか一項に記載の内燃機関の燃料噴射制御装置。
【請求項５】
前記弁体がフルリフト位置に到達しない通電時間で前記燃料噴射弁を開弁駆動するパーシャルリフト噴射を実施する噴射制御部を備え、
前記取得部は、前記パーシャルリフト噴射を実施している期間での前記弁体のリフト挙動を表すパラメータと、前記ゼロリフト通電制御を実施している期間での前記弁体のリフト挙動を表すパラメータとを前記駆動特性に関するパラメータとして取得し、
前記第２異常判定部は、前記パーシャルリフト噴射を実施している期間に前記駆動特性に関するパラメータが第１範囲から外れた場合に、前記駆動特性のずれに起因する異常とは異なる異常が生じていると判定するとともに、前記ゼロリフト通電制御を実施している期間に前記駆動特性に関するパラメータが第２範囲から外れた場合に、前記駆動特性のずれに起因する異常とは異なる異常が生じていると判定し、
前記第１範囲と前記第２範囲とが異なる、請求項４に記載の内燃機関の燃料噴射制御装置。
【請求項６】
前記第２異常判定部により前記補正量の異常とは異なる異常が生じていると判定された場合に、異常を示した前記駆動特性に関するパラメータを用いた前記補正量の更新を禁止する、請求項１〜５のいずれか一項に記載の内燃機関の燃料噴射制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の燃料噴射制御装置に関する。
【背景技術】
【０００２】
内燃機関においては、例えば燃料噴射弁により多段噴射を行う場合に微少噴射が実施されることがある。燃料噴射弁の弁体において微少噴射を実施可能なリフト領域では、燃料噴射弁の個体差による駆動特性の相違が比較的大きく現れる。そこで従来、噴射パルスのオフ後における燃料噴射弁の端子電圧をフィルタ処理することにより、燃料噴射弁の閉弁タイミングを特定するパラメータとして電圧変曲点時間を算出し、その算出した電圧変曲点時間を用いて、燃料噴射弁のリフト量ばらつきに起因する噴射量ばらつきを補正することが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−９６７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
燃料噴射弁の経年劣化等が生じると、噴射量ばらつきを補償するための補正量が正常範囲から逸脱することがある。かかる場合には、その補正量に基づき燃料噴射系に異常が生じていると判定することにより、異常に応じた適切な措置を講じることが可能となる。したがって、燃料噴射弁による燃料噴射を適切に制御するには、燃料噴射系に生じた異常を的確に検出することが必要である。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、その主たる目的は、燃料噴射制御に関する異常をより適切に検出することができる内燃機関の燃料噴射制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
以下、上記課題を解決するための手段、及びその作用効果について説明する。
【０００７】
本発明は、燃料噴射弁（３０）による燃料噴射を制御する内燃機関（１１）の燃料噴射制御装置に関する。請求項１に記載の発明は、前記燃料噴射弁の駆動特性に関するパラメータを取得する取得部と、前記取得部により取得した前記駆動特性に関するパラメータに基づいて、前記駆動特性のずれを補償する補正量を算出する補正量算出部と、前記補正量算出部により算出した前記補正量が所定の制御範囲から外れた場合に、前記駆動特性のずれに起因する異常が生じていると判定する第１異常判定部と、前記第１異常判定部により前記駆動特性のずれに起因する異常が生じていると判定されておらず、かつ前記取得部により取得した前記駆動特性に関するパラメータが異常を示した場合に、前記駆動特性のずれに起因する異常とは異なる異常が生じていると判定する第２異常判定部と、を備える。
【０００８】
第１異常判定部は、燃料噴射弁の駆動特性のずれを補償するための補正量が正常範囲を逸脱し、適切な噴射量を維持できなくなる異常を検出する。この第１異常判定部は、燃料噴射弁の経年劣化等を検出するのに適している。一方、燃料噴射弁の駆動特性に関するパラメータを用いて算出した補正量が正常範囲内にあっても、駆動特性に関するパラメータ自体が異常を示していることがある。また、駆動特性に関するパラメータが異常を示した場合に、その異常を示したパラメータを用いて、燃料噴射弁の駆動特性のずれを補償するための補正量を算出すると、燃料噴射弁の噴射量を適切に制御できないことが懸念される。この点、上記構成によれば、駆動特性に関するパラメータの異常を、燃料噴射弁の駆動特性のずれを補償する補正量とは切り分けて検出することにより、燃料噴射系に生じている異常をより適切に検出することができる。
【図面の簡単な説明】
【０００９】
【図１】エンジン制御システムの概略構成図。
【図２】燃料噴射制御についての機能ブロック図。
【図３】燃料噴射弁の駆動状態を示す図であり、（ａ）はフルリフト状態、（ｂ）はパーシャルリフト状態を示す図。
【図４】パーシャルリフト領域とフルリフト領域とを示す図。
【図５】噴射パルスオフ後のマイナス端子電圧の推移及び電圧変曲点時間を表すタイムチャート。
【図６】補正量異常診断の具体的態様を示すタイムチャート。
【図７】信号異常診断の具体的態様を示すタイムチャート。
【図８】信号異常診断処理の処理手順を示すフローチャート。
【図９】補正量異常診断処理の処理手順を示すフローチャート。
【図１０】電圧変曲点時間算出処理の処理手順を示すフローチャート。
【図１１】噴射量学習の実施態様を示す図。（ａ）はリフト学習であり、（ｂ）はゼロリフト学習である。
【発明を実施するための形態】
【００１０】
（第１実施形態）
以下、第１実施形態について図面を参照して説明する。本実施形態は、車両用の筒内噴射式の多気筒ガソリンエンジンを制御する制御システムとして具体化している。まず、図１を用いてエンジン制御システムの概略構成を説明する。なお、以下の各実施形態相互において、互いに同一又は均等である部分には、図中、同一符号を付しており、同一符号の部分についてはその説明を援用する。
【００１１】
エンジン１１において、吸気管１２の最上流部にはエアクリーナ１３が設けられ、エアクリーナ１３の下流側には、吸入空気量を検出するエアフローメータ１４が設けられている。エアフローメータ１４の下流側には、モータ１５によって開度調節されるスロットルバルブ１６と、スロットルバルブ１６の開度（スロットル開度）を検出するスロットル開度センサ１７とが設けられている。
【００１２】
スロットルバルブ１６の下流側にはサージタンク１８が設けられている。サージタンク１８には、吸気管圧力を検出する吸気管圧力センサ１９が設けられている。また、サージタンク１８には、エンジン１１の各気筒２１に空気を導入する吸気マニホールド２０が接続されている。エンジン１１の各気筒２１には、それぞれ筒内に燃料を直接噴射する電磁式の燃料噴射弁３０が取り付けられている。エンジン１１のシリンダヘッドには、気筒２１ごとに点火プラグ２２が取り付けられており、各気筒２１の点火プラグ２２の火花放電によって筒内の混合気に着火される。
【００１３】
エンジン１１の排気管２３には、排気を検出対象にして混合気の空燃比又はリッチ／リーン等を検出する排気センサ２４が設けられている。排気センサ２４は、空燃比センサ、酸素センサ等である。排気センサ２４の下流側には、排気を浄化する三元触媒等の触媒２５が設けられている。
【００１４】
エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２６や、ノッキングを検出するノックセンサ２７が取り付けられている。クランク軸２８の外周側には、クランク軸２８が所定クランク角回転するごとにパルス信号を出力するクランク角センサ２９が取り付けられている。クランク角センサ２９のクランク角信号に基づいて、クランク角やエンジン回転速度が検出される。これら各種センサの出力はＥＣＵ４０に入力される。
【００１５】
ＥＣＵ４０は、マイクロコンピュータを主体として構成された電子制御ユニットであり、内蔵されたＲＯＭ（記憶媒体）に記憶されている制御プログラムを用い、各種センサの検出信号に基づいてエンジン１１の各種制御を実施する。ＥＣＵ４０が燃料噴射制御装置に相当する。ＥＣＵ４０は、エンジン運転状態に応じた要求噴射量を算出し、その要求噴射量に基づいて燃料噴射弁３０の駆動を制御するとともに、点火プラグ２２の点火時期を制御する。
【００１６】
ＥＣＵ４０は、図２に示すように、燃料噴射制御を実施するエンジン制御用のマイコン４１と、燃料噴射弁駆動用の駆動ＩＣ４２とを備えている。マイコン４１は、エンジン運転状態に基づいて要求噴射量を算出するとともに、算出した要求噴射量に基づいて噴射パルスＴｉ（噴射指令値）を設定する。また、設定した噴射パルスＴｉを駆動ＩＣ４２に出力する。駆動ＩＣ４２は、マイコン４１から入力した噴射パルスＴｉにより燃料噴射弁３０を駆動し、要求噴射量分の燃料を燃料噴射弁３０から噴射させる。本実施形態では、噴射パルス演算部４３が要求噴射量及び噴射パルスを算出し、駆動制御部４８が、噴射パルスＴｉにより燃料噴射弁３０を駆動する。駆動ＩＣ４２の演算部４９には、燃料噴射弁３０のマイナス端子電圧Ｖｍが入力される。
【００１７】
本実施形態において、エンジン１１は４気筒ガソリンエンジンであり、各気筒に設けられた燃料噴射弁３０による燃料噴射として、１燃焼サイクル内の吸気行程及び圧縮行程の少なくとも一方において噴射パルスＴｉに基づき燃料を噴射する。４つの気筒（第１気筒♯１〜第４気筒♯４）の燃焼順序は「♯１→♯３→♯４→♯２」である。燃料噴射に際しては、燃焼順序が一つ置きとなる２つの気筒をひとまとめにしてそれぞれ駆動グループ１，２としており、駆動グループごとの駆動系統で各燃料噴射弁３０が駆動される。本実施形態では、第１気筒♯１及び第４気筒♯４が駆動グループ１に属し、第２気筒♯２及び第３気筒♯３が駆動グループ２に属している。
【００１８】
燃料噴射弁３０には、マイナス端子電圧Ｖｍを検出する電圧センサ５１や、電磁部（コイル）に流れる通電電流を検出する電流センサ５２が設けられている（図１参照）。電圧センサ５１及び電流センサ５２の検出結果はＥＣＵ４０に逐次入力される。
【００１９】
燃料噴射制御としては、燃料噴射弁３０の弁体をフルリフト位置まで到達させて、フルリフト状態で所望量の燃料を噴射するフルリフト噴射と、燃料噴射弁３０の弁体がフルリフト位置に到達する前のパーシャルリフト状態で弁体の開弁側への移動を終了させ、その状態で所望の微少量の燃料を噴射するパーシャルリフト噴射とを実施している。パーシャルリフト噴射は、例えば分割噴射の実施時において、メイン噴射（例えば吸気行程噴射）の後に実施される燃料噴射（例えば圧縮行程噴射）で行われる。
【００２０】
フルリフト噴射及びパーシャルリフト噴射について、図３を用いて説明する。なお、図３中、（ａ）はフルリフト噴射時の動作を示し、（ｂ）はパーシャルリフト噴射時の動作を示している。
【００２１】
図３に示すように、燃料噴射弁３０は、通電により電磁力を生じさせる電磁部としてのコイル３１と、磁性体よりなる固定コア３２と、磁性体よりなり電磁力によって固定コア３２の側に吸引される可動コア３３と、可動コア３３と一体的に駆動されるニードル状の弁体３４と、弁体３４を閉弁側に付勢する第１スプリング３５と、可動コア３３を反閉弁側に付勢する第２スプリング３６とを有している。コイル３１への通電に伴い弁体３４が弁座から離れて開弁側に移動することにより燃料噴射弁３０が開弁状態となり、燃料噴射が行われる。なお、第２スプリング３６の付勢力は、第１スプリング３５の付勢力よりも小さく設定されている。
【００２２】
図３（ａ）、（ｂ）では噴射パルス幅が相違している。図３（ａ）に示すように、弁体リフト量がフルリフト量となる場合には、噴射パルス幅が比較的長くなる。この場合、弁体３４が、可動コア３３が固定コア３２側のストッパ３２ａに突き当たる位置であるフルリフト位置に到達する。一方、図３（ｂ）に示すように、弁体リフト量がパーシャルリフト量となる場合には、噴射パルス幅が比較的短くなる。この場合、弁体３４が、可動コア３３がストッパ３２ａに突き当たる手前の状態であり、フルリフト位置に到達しないパーシャルリフト状態となる。噴射パルスの立ち下がりに伴いコイル３１の通電が停止されると、可動コア３３と弁体３４とが閉弁位置に戻ることで燃料噴射弁３０が閉弁状態となり、燃料噴射が停止される。なお、可動コア３３と弁体３４とが別体で構成されているため、弁体３４が閉位置に到達した際には、弁体３４はその閉位置で保持されるのに対し、可動コア３３は単独でより先端側に移動する。
【００２３】
図４は、パーシャルリフト噴射を実施するパーシャルリフト領域と、フルリフト噴射を実施するフルリフト領域とを示す図である。図４に示すように、パーシャルリフト領域及びフルリフト領域のいずれにおいても、噴射パルス幅（すなわち通電時間）が長いほど、燃料噴射量が直線的に多くなる傾向を有する。
【００２４】
燃料噴射弁３０は、噴射パルスのオフ後に、誘電起電力によってマイナス端子電圧Ｖｍが変化する。この特性について図５を用いて説明する。なお、図５中、（ａ）は噴射パルスのオンオフの推移、（ｂ）はマイナス端子電圧Ｖｍの推移、（ｃ）は差分Ｖｄｉｆｆの推移、（ｄ）は電圧変曲点時間Ｔｄｉｆｆの推移をそれぞれ示している。
【００２５】
燃料噴射弁３０のコイル３１に通電して開弁させ、その後、噴射パルス幅に対応する時間の経過後に通電を停止させると、通電オフ直後の所定期間では、バッテリ電圧ＶＢよりも高いフライバック電圧（逆起電圧）が発生する（図５（ｂ）参照）。本実施形態では、このフライバック電圧を利用して、燃料噴射弁３０における実際の閉弁タイミングを特定している。具体的には、マイナス端子電圧Ｖｍの電圧変曲点が生じるまでの時間である電圧変曲点時間Ｔｄｉｆｆを算出し、電圧変曲点時間Ｔｄｉｆｆにより閉弁タイミングを特定する。電圧変曲点時間Ｔｄｉｆｆによれば、燃料噴射弁３０の閉弁タイミングのバラツキによる噴射量ばらつきを把握できる。電圧変曲点時間Ｔｄｉｆｆは駆動ＩＣ４２の演算部４９により次のようにして算出される。
【００２６】
演算部４９はまず、パーシャルリフト噴射による燃料噴射の実施期間中に、噴射パルスをオフした後のマイナス端子電圧Ｖｍを、ノイズ成分の周波数よりも低い第１周波数ｆ１をカットオフ周波数とする第１ローパスフィルタでフィルタ処理（なまし処理）した第１フィルタ電圧Ｖｓｍ１を算出する。第１ローパスフィルタは、カットオフ周波数（第１周波数ｆ１）よりも低い周波数帯域を通過域とするローパスフィルタである。
【００２７】
また、演算部４９は、噴射パルスをオフした後のマイナス端子電圧Ｖｍを、第１周波数ｆ１よりも低い第２周波数ｆ２をカットオフ周波数とする第２ローパスフィルタでフィルタ処理（なまし処理）した第２フィルタ電圧Ｖｓｍ２を算出する。こうした処理により、演算部４９は、マイナス端子電圧Ｖｍからノイズ成分を除去した第１フィルタ電圧Ｖｓｍ１と、閉弁位置検出用の第２フィルタ電圧Ｖｓｍ２とを算出する。第２ローパスフィルタは、カットオフ周波数（第２周波数ｆ２）よりも低い周波数帯域を通過域とするローパスフィルタである。
【００２８】
続いて、第１フィルタ電圧Ｖｓｍ１と第２フィルタ電圧Ｖｓｍ２との差分Ｖｄｉｆｆ（＝Ｖｓｍ１−Ｖｓｍ２）を算出する。また、噴射パルスのオフ後の基準タイミングから、差分Ｖｄｉｆｆが閾値Ｖｔを超えるタイミング（図５のｔ４）までに要した時間を算出し、これを電圧変曲点時間Ｔｄｉｆｆとする。基準タイミングとしては、噴射パルスをオフした後にマイナス端子電圧Ｖｍが判定値Ｖｏｆｆを下回るタイミング（換言すれば、マイナス端子電圧Ｖｍが判定値Ｖｏｆｆに対して大から小となる最初のタイミング）が設定されており、図５のｔ３が基準タイミングに相当する。なお、電圧変曲点時間Ｔｄｉｆｆの算出処理はエンジン１１の気筒毎に行い、気筒毎に閉弁タイミングを算出する。電圧変曲点時間Ｔｄｉｆｆが「燃料噴射弁３０の駆動特性に関するパラメータ」に相当する。
【００２９】
なお、基準タイミングを、噴射パルスのオン時（図５のｔ１）、あるいは噴射パルスのオフ時（図５のｔ２）としてもよい。閾値Ｖｔは、燃圧や燃温等に応じた可変値であってもよく、あるいは予め設定された固定値であってもよい。
【００３０】
次に、電圧変曲点時間算出の実行例について図５を用いて説明する。パーシャルリフト噴射の実施期間中では、燃料噴射弁３０のマイナス端子電圧Ｖｍを第１ローパスフィルタでフィルタ処理した第１フィルタ電圧Ｖｓｍ１が算出されるとともに、燃料噴射弁３０のマイナス端子電圧Ｖｍを第２ローパスフィルタでフィルタ処理した第２フィルタ電圧Ｖｓｍ２が算出される。更に、第１フィルタ電圧Ｖｓｍ１と第２フィルタ電圧Ｖｓｍ２との差分Ｖｄｉｆｆが算出される。
【００３１】
基準タイミングｔ３で電圧変曲点時間Ｔｄｉｆｆが「０」にリセットされ、電圧変曲点時間Ｔｄｉｆｆの算出が開始される。そして、所定の演算周期Ｔｓで電圧変曲点時間Ｔｄｉｆｆをカウントアップする処理が繰り返される。その後、差分Ｖｄｉｆｆが閾値Ｖｔを超えるタイミングｔ４で、電圧変曲点時間Ｔｄｉｆｆのカウントアップが終了される。これにより、基準タイミングｔ３から、差分Ｖｄｉｆｆが閾値Ｖｔを超えるタイミングｔ４までの時間が電圧変曲点時間Ｔｄｉｆｆとして算出され、次の基準タイミングｔ６まで保持される。電圧変曲点時間Ｔｄｉｆｆのカウントアップが終了したタイミングｔ４から次の基準タイミングｔ６までの期間に、エンジン制御用のマイコン４１により電圧変曲点時間Ｔｄｉｆｆが駆動ＩＣ４２から取得される。
【００３２】
燃料噴射弁３０のパーシャルリフト領域では、噴射パルスをオンからオフに切り替えてからリフト開始位置に戻り閉弁するまでに要する時間が、燃料噴射弁３０の個体差や経時変化等の影響を受けて変化しやすく、噴射量ばらつきが大きくなりやすい。本実施形態では、燃料噴射弁３０の閉弁タイミングに応じて電圧変曲点時間Ｔｄｉｆｆが変化する、つまり電圧変曲点時間Ｔｄｉｆｆと噴射量との間には相関関係があることに着目し、電圧変曲点時間Ｔｄｉｆｆにより噴射量ばらつきを学習（以下、「リフト学習」という。）するとともに、リフト学習により算出した学習値を用いてパーシャルリフト噴射の噴射パルスを補正している。
【００３３】
本実施形態の燃料噴射制御について、図２の機能ブロック図を用いてさらに説明する。図２に示すように、ＥＣＵ４０のマイコン４１は、噴射パルス演算部４３、通電補正部４４、異常診断部４５及び異常記録部４６を備えている。また、駆動ＩＣ４２は、駆動制御部４８及び演算部４９を備えている。
【００３４】
噴射パルス演算部４３は、要求噴射量に基づいて噴射パルスＴｉを算出し、その算出した噴射パルスＴｉを駆動ＩＣ４２の駆動制御部４８に出力する。駆動制御部４８は、噴射パルス演算部４３から入力した噴射パルスＴｉに基づいて燃料噴射弁３０を駆動し、要求噴射量に対応する燃料量を燃料噴射弁３０から噴射させる。駆動ＩＣ４２の演算部４９は、燃料噴射弁３０のマイナス端子電圧Ｖｍを入力し、マイナス端子電圧Ｖｍを用いて電圧変曲点時間Ｔｄｉｆｆを算出する。演算部４９は、電圧変曲点時間Ｔｄｉｆｆを表す信号（以下、「リフト特性信号」という。）をマイコン４１の通電補正部４４に出力する。
【００３５】
通電補正部４４は、演算部４９から電圧変曲点時間Ｔｄｉｆｆを取得し、電圧変曲点時間Ｔｄｉｆｆを用いて通電補正量Ｑｋを算出する。通電補正量Ｑｋは、閉弁タイミングのばらつきに起因する噴射量ばらつきを補償するための学習値である。ここでは、リフト学習の実行中に演算部４９から取得した電圧変曲点時間Ｔｄｉｆｆを用いて算出する。通電補正部４４で算出した通電補正量Ｑｋは噴射パルス演算部４３に入力される。噴射パルス演算部４３は、通電補正量Ｑｋを用いて要求噴射量を算出する。通電補正量Ｑｋには上限ガード及び下限ガードが設けられており、上限値Ｑｕと下限値Ｑｄとの間の制御範囲Ａ内の値が設定される（図６参照）。なお、通電補正部４４が「取得部」及び「補正量算出部」に相当する。
【００３６】
燃料噴射弁３０の経時劣化等により適切な燃料噴射が実施できなくなると、通電補正量Ｑｋが制御範囲Ａから外れ、上限値Ｑｕ又は下限値Ｑｄに張り付いた状態になる。そこで本実施形態では、異常診断部４５に補正量診断部４５Ａを設け（図２参照）、補正量診断部４５Ａにより通電補正量Ｑｋが制御範囲Ａから外れているか否かの異常診断（以下、補正量異常診断処理という。）を実施している。
【００３７】
具体的には、図６に示すように、リフト学習により学習した通電補正量Ｑｋの更新が許可され（時刻ｔ２１）、これにより更新実行フラグＦｋがオフからオンに切り替えられると、通電補正部４４は、通電補正量Ｑｋの更新を開始する（時刻ｔ２２）。通電補正量Ｑｋの更新に必要な期間が経過すると、通電補正部４４は、その期間経過後の時刻ｔ２３で補正量異常判定実行フラグＦｊをオフからオンに切り替える。これに伴い、異常診断部４５の補正量診断部４５Ａは補正量異常診断処理を実行する。
【００３８】
補正量異常診断処理では、補正量診断部４５Ａは、通電補正部４４から通電補正量Ｑｋ（学習値）を入力するとともに、その入力した通電補正量Ｑｋが、上限値Ｑｕと下限値Ｑｄとの間の制御範囲Ａ内の値か否かを判定する。そして、通電補正量Ｑｋが制御範囲Ａ内の値であれば、その気筒（図６では第１気筒♯１〜第３気筒♯３）について通電補正量Ｑｋは正常であると判定する。一方、通電補正量Ｑｋが上限値Ｑｕ又は下限値Ｑｄに張り付いた場合には、その気筒（図６では第４気筒♯４）について通電補正量Ｑｋの異常が発生していると判定する。なお、通電補正量Ｑｋの異常が「燃料噴射弁３０の駆動特性のずれに起因する異常」に相当する。図６（ａ）では、正常な気筒の通電補正量Ｑｋを一点鎖線で示し、異常が生じている気筒の通電補正量Ｑｋを実線で示している。
【００３９】
補正量異常診断処理の結果（通電補正量異常の有無）は異常記録部４６に記憶され、異常記録部４６から噴射パルス演算部４３に入力される。噴射パルス演算部４３に通電補正量異常有りの診断結果が入力されると、噴射パルス演算部４３は、異常有りと判定された気筒について、更新された通電補正量Ｑｋによる噴射量補正を禁止する。
【００４０】
なお、同一又は異なる気筒に対して通電補正量異常有りと複数回診断された場合には、マイコン４１は、その異常を警告装置（例えばスピーカや表示装置）により運転者に通知するようにしてもよい。補正量異常診断処理は、リフト学習により通電補正量Ｑｋが更新される都度、各気筒について実行される。リフト学習は、エンジン１１の始動時に、より具体的には、点火遅角等により触媒温度を早期に上昇させる触媒早期暖機制御の実行中に行われる。
【００４１】
ここで、通電補正量Ｑｋが制御範囲Ａ内の値を示している場合でも、駆動ＩＣ４２からマイコン４１へ出力される電圧変曲点時間Ｔｄｉｆｆの信号自体が異常な場合がある。このような異常は、例えば燃料噴射弁３０が想定外の動きをしたり、演算部４９での演算処理自体が一時的又は継続的に正しく行われなかったりした場合に起こることが考えられる。また、電圧変曲点時間Ｔｄｉｆｆを表す信号（リフト特性信号）の出力自体に異常が生じた場合、その電圧変曲点時間Ｔｄｉｆｆを用いて学習した通電補正量Ｑｋは適正な値とは言えず、かかる場合、適切な燃料噴射量制御を実現できなくなることが懸念される。そこで本実施形態では、リフト特性信号の出力異常を通電補正量Ｑｋの異常とは切り分けて検出し、これを記憶することにより、燃料噴射システムの異常診断をより精度良く実施するようにしている。
【００４２】
本実施形態では、マイコン４１の異常診断部４５は信号診断部４５Ｂを有しており（図２参照）、信号診断部４５Ｂによってリフト特性信号の出力異常診断（以下、信号異常診断処理という。）を実施している。以下、信号異常診断処理について図７を用いてさらに説明する。なお、補正量診断部４５Ａが「第１異常判定部」に相当し、信号診断部４５Ｂが「第２異常判定部」に相当する。
【００４３】
図７中、（ａ）はリフト特性信号の出力の推移、（ｂ）はリフト学習の許否の推移、（ｃ）は信号異常判定実行フラグＦｉの推移、（ｄ）は信号異常カウンタＣの推移をそれぞれ示している。信号異常判定実行フラグＦｉは、信号異常診断処理の実行が許可されたか否かを示すフラグであり、リフト学習の実行中である場合にオンされ、これにより信号異常診断処理の実行が許可される。信号異常カウンタＣは、リフト特性信号の出力異常が検出された場合にカウントアップされるカウンタである。図７（ａ）では、正常な気筒の出力を点線で示し、異常が生じている気筒の出力を実線で示している。図７（ａ）の横軸は時間を示し、縦軸は電圧変曲点時間Ｔｄｉｆｆの大きさを表している。例えば第１気筒♯１について、リフト学習が開始されてから第ｎ回目の燃料噴射での電圧変曲点時間ＴｄｉｆｆはＴ（ｎ）である。
【００４４】
図７において、リフト学習が開始されたことに伴い信号異常判定実行フラグＦｉがオフからオンに切り替えられると、信号診断部４５Ｂは信号異常診断処理を開始する（時刻ｔ３１）。各気筒のリフト特性信号が下限値Ｖｄと上限値Ｖｕとの間の出力範囲Ｂ内にあれば、信号診断部４５Ｂは信号異常カウンタＣをカウントアップせずに前回値を保持する。その後、信号異常診断処理を実施中に第４気筒♯４のリフト特性信号が上限値Ｖｕを超えると、信号診断部４５Ｂは、リフト特性信号が出力範囲Ｂから外れている間、第４気筒♯４の信号異常カウンタＣ４をカウントアップする（時刻ｔ３２〜）。信号異常カウンタＣは異常記録部４６に記憶され、異常記録部４６から通電補正部４４に入力される。通電補正部４４にリフト特性信号の異常有りの診断結果が入力されると、通電補正部４４は、異常有りと判定された気筒について通電補正量Ｑｋの更新を禁止する。
【００４５】
リフト学習が終了し信号異常判定実行フラグＦｉがオフされると、信号診断部４５Ｂは、そのオフ時の信号異常カウンタＣの気筒ごとの値を異常記録部４６に記憶させる。また、信号診断部４５Ｂは、信号異常カウンタＣが異常判定値Ｃｔｈよりも大きくなった場合に、その気筒においてリフト特性信号の出力異常が生じていると判定する。また、その異常診断の結果を異常記録部４６に記憶させる。信号異常カウンタＣの値はリセットされずにそのまま保持され、次回の信号異常診断では前回のカウンタ値からカウントアップされる。リフト特性信号の出力異常が「燃料噴射弁３０の駆動特性のずれに起因する異常とは異なる異常」に相当する。
【００４６】
次に、信号異常診断処理の処理手順について図８のフローチャートを用いて説明する。この処理は、ＥＣＵ４０のマイコン４１により所定の演算周期（例えば数ｍｓｅｃ毎）で繰り返し実行される。
【００４７】
図８において、ステップＳ１０１では、信号異常診断の実行条件が成立しているか否か（信号異常判定実行フラグＦｉがオンか否か）を判定する。信号異常診断の実行条件としては、通電補正量Ｑｋの学習実行条件が成立していること、つまりリフト学習の実行中であることを少なくとも含んでいる。リフト学習の実行条件としては、エンジン始動後の所定期間において触媒早期暖機制御の実行中であること、及び今回のトリップでリフト学習が未完了であることが含まれている。なお、リフト学習は１トリップに１回実行される。
【００４８】
信号異常診断の実行条件が成立している場合には、ステップＳ１０２へ進み、リフト特性信号が出力範囲Ｂから外れているか否かを判定する。リフト特性信号が出力範囲Ｂ内の値であれば、ステップＳ１０２で否定判定され、そのまま本ルーチンを終了する。
【００４９】
一方、リフト特性信号が出力範囲Ｂから外れている場合には、ステップＳ１０３へ進み、通電補正量Ｑｋの学習及び更新を禁止する。つまり、今回のトリップでは、リフト学習による通電補正量Ｑｋの更新を禁止する。またステップＳ１０４では、信号異常カウンタＣを予め定めた所定値だけ（例えば１）カウントアップする。
【００５０】
その後、ステップＳ１０５では、信号異常カウンタＣが異常判定値Ｃｔｈ（例えば２〜４）よりも大きいか否かを判定し、Ｃ＞ＣｔｈであればステップＳ１０６へ進み、通電補正量異常が生じていないか否かを判定する。ここでは、前回のトリップでの補正量異常診断の結果を取得し、その取得した情報により通電補正量Ｑｋの異常の有無を判定する。通電補正量異常が生じていなければ、ステップＳ１０７へ進み、リフト特性信号の出力異常が生じていることをバックアップ用メモリ（不揮発性記憶領域）に記憶する。通電補正量異常が生じている場合には、以下の図９の補正量異常診断処理により通電補正量異常有りと判定される。ステップＳ１０６で否定判定された場合、リフト特性信号の出力異常有りの異常内容を通電補正量異常とともに記憶してもよい。
【００５１】
なお、リフト学習の実行条件が不成立になると、別ルーチンにより信号異常判定実行フラグＦｉがオフにされる。この場合、ステップＳ１０１では否定判定され、信号異常診断処理が終了される。また、信号異常診断処理が終了すると更新実行フラグＦｋがオンに切り替えられる。本実施形態では、今回の信号異常診断でリフト特性信号が出力範囲Ｂから外れたことが検出された場合には、今回のトリップでの通電補正量Ｑｋの更新を禁止する一方、信号異常カウンタＣが異常判定値Ｃｔｈを超えていない限り、次回以降の信号異常診断ではリフト特性信号が出力範囲Ｂ内であれば通電補正量Ｑｋの更新を許容する。
【００５２】
次に、補正量異常診断処理の処理手順について図９のフローチャートを用いて説明する。この処理は、ＥＣＵ４０のマイコン４１により所定の演算周期（例えば数ｍｓｅｃ毎）で繰り返し実行される。
【００５３】
図９において、ステップＳ２００では、更新実行フラグＦｋがオンか否かを判定する。更新実行フラグＦｋがオフの場合にはステップＳ２００で否定判定され、そのまま本ルーチンを終了する。一方、更新実行フラグＦｋがオンの場合にはステップＳ２０１へ進む。ステップＳ２０１では、通電補正量Ｑｋの学習更新処理を実行する。この学習更新処理では、例えば今回のトリップで燃料噴射毎に取得した電圧変曲点時間Ｔｄｉｆｆの平均値を気筒ごとに算出し、これを学習値として通電補正量Ｑｋを更新する。ステップＳ２０２では、通電補正量Ｑｋの更新完了に伴い、更新実行フラグＦｋをオフにし、補正量異常判定実行フラグＦｊをオンにする。
【００５４】
続くステップＳ２０３では、通電補正量Ｑｋが上下限に張り付いているか否かを判定する。通電補正量Ｑｋが制御範囲Ａ内の値であれば、ステップＳ２０３で否定判定されてそのまま本ルーチンを終了する。一方、通電補正量Ｑｋが上下限に張り付いている場合には、ステップＳ２０４へ進み、通電補正量異常が生じたことをバックアップ用メモリに記憶する。また、ステップＳ２０５では、通電補正量異常が生じていることを運転者に通知する。ステップＳ２０６では、補正量異常判定実行フラグＦｊをオフにし、本ルーチンを終了する。
【００５５】
次に、電圧変曲点時間Ｔｄｉｆｆの算出処理について図１０のフローチャートを用いて説明する。この処理は、駆動ＩＣ４２により所定の演算周期で繰り返し実行される。
【００５６】
図１０において、ステップＳ３０１では、燃料噴射弁３０のマイナス端子電圧Ｖｍを取得する。続くステップＳ３０２では、マイナス端子電圧Ｖｍを第１ローパスフィルタでフィルタ処理して第１フィルタ電圧Ｖｓｍ１を算出する。第１ローパスフィルタは、第１フィルタ電圧の前回値Ｖｓｍ１（ｋ−１）とマイナス端子電圧の今回値Ｖｍ（ｋ）とを用いて、第１フィルタ電圧の今回値Ｖｓｍ１（ｋ）を求めるデジタルフィルタであり、下記（１）式で実装されている。
Ｖｓｍ１（ｋ）＝
｛（ｎ１−１）／ｎ１｝×Ｖｓｍ１（ｋ−１）＋（１／ｎ１）×Ｖｍ（ｋ）  …（１）
【００５７】
なお、第１ローパスフィルタの時定数ｎ１は、マイナス端子電圧Ｖｍのサンプリング周波数ｆｓ（＝１／Ｔｓ）と、第１ローパスフィルタのカットオフ周波数（第１周波数ｆ１）とを用いた下記（２）式の関係を満たすように設定されている。
１／ｆｓ：１／ｆ１＝１：（ｎ１−１）    …（２）
【００５８】
続くステップＳ３０３では、マイナス端子電圧Ｖｍを第１周波数ｆ１よりも低い第２周波数ｆ２をカットオフ周波数とする第２ローパスフィルタでフィルタ処理した第２フィルタ電圧Ｖｓｍ２を算出する。第２ローパスフィルタは、第２フィルタ電圧の前回値Ｖｓｍ２（ｋ−１）と、マイナス端子電圧の今回値Ｖｍ（ｋ）とを用いて第２フィルタ電圧の今回値Ｖｓｍ２（ｋ）を求めるデジタルフィルタであり、下記（３）式で実装されている。
Ｖｓｍ２（ｋ)＝
｛（ｎ２−１）／ｎ２｝×Ｖｓｍ２（ｋ−１）＋（１／ｎ２）×Ｖｍ（ｋ）  …（３）
なお、第２ローパスフィルタの時定数ｎ２は、マイナス端子電圧Ｖｍのサンプリング周波数ｆｓ（＝１／Ｔｓ）と、第２ローパスフィルタのカットオフ周波数（第２周波数ｆ２）とを用いた下記（４）式の関係を満たすように設定されている。
１／ｆｓ：１／ｆ２＝１：（ｎ２−１）    …（４）
【００５９】
続くステップＳ３０４では、第１フィルタ電圧Ｖｓｍ１と第２フィルタ電圧Ｖｓｍ２との差分Ｖｄｉｆｆ（＝Ｖｓｍ１−Ｖｓｍ２）を算出する。なお、差分Ｖｄｉｆｆが０以上にならないようにガード処理して、マイナス成分だけを抽出するようにしてもよい。
【００６０】
続くステップＳ３０５では、閾値Ｖｔを取得するとともに、電圧変曲点時間の前回値Ｔｄｉｆｆ（ｋ−１）を取得する。ステップＳ３０６では、噴射パルスがオフか否かを判定する。ステップＳ３０６で肯定判定された場合には、ステップＳ３０７へ進み、燃料噴射弁３０のマイナス端子電圧Ｖｍが判定値Ｖｏｆｆを下回るタイミング（判定値Ｖｏｆｆよりも大から小になるタイミング）であるか否かを判定する。ステップＳ３０７で肯定判定された場合にはステップＳ３０９へ進み、電圧変曲点時間の今回値Ｔｄｉｆｆ（ｋ）を「０」にリセットする。
【００６１】
一方、ステップＳ３０７で否定判定された場合には、ステップＳ３０８へ進み、第１フィルタ電圧Ｖｓｍ１と第２フィルタ電圧Ｖｓｍ２との差分Ｖｄｉｆｆが閾値Ｖｔを超えたか否か（閾値Ｖｔよりも小から大になったか否か）を判定する。ステップＳ３０８で否定判定された場合には、ステップＳ３１０へ進み、電圧変曲点時間の前回値Ｔｄｉｆｆ（ｋ−１）に所定値Ｔｓ（本ルーチンの演算周期）を加算して電圧変曲点時間の今回値Ｔｄｉｆｆ（ｋ）を求めることで、電圧変曲点時間Ｔｄｉｆｆをカウントアップする。
【００６２】
一方、ステップＳ３０８で、差分Ｖｄｉｆｆが閾値Ｖｔを超えたと判定されるとステップＳ３１１へ進み、電圧変曲点時間の今回値Ｔｄｉｆｆ（ｋ）を前回値Ｔｄｉｆｆ（ｋ−１）に保持する。これにより、噴射パルスのオフ後に燃料噴射弁３０のマイナス端子電圧Ｖｍが判定値Ｖｏｆｆを下回るタイミング（基準タイミング）から、差分Ｖｄｉｆｆが閾値Ｖｔを超えるタイミングまでの時間を電圧変曲点時間Ｔｄｉｆｆとして算出する。
【００６３】
なお、ステップＳ３０６で噴射パルスがオフではない（つまり、噴射パルスがオンである）と判定された場合には、今回値Ｔｄｉｆｆ（ｋ）を前回値Ｔｄｉｆｆ（ｋ−１）で保持し、電圧変曲点時間Ｔｄｉｆｆの算出値を次の基準タイミングまで保持する。
【００６４】
以上詳述した本実施形態によれば、次の優れた効果が得られる。
【００６５】
電圧変曲点時間Ｔｄｉｆｆを用いて算出した通電補正量Ｑｋが正常範囲内にあっても、電圧変曲点時間Ｔｄｉｆｆの出力自体が異常を示していることがある。この点、上記構成によれば、リフト特性信号の出力異常を、燃料噴射弁の駆動特性のずれを補償する補正量とは切り分けて検出するため、燃料噴射システムに生じている異常を適切に検出することができる。
【００６６】
また、電圧変曲点時間Ｔｄｉｆｆが異常を示し、その異常が継続するとやがて通電補正量Ｑｋが制御範囲Ａから逸脱することが想定される。この点、上記構成によれば、駆動特性に関するパラメータである電圧変曲点時間Ｔｄｉｆｆに異常が現れた段階でその異常を検出するため、リフト特性信号の出力異常が通電補正量Ｑｋの異常として現れるよりも前の段階で異常（出力信号異常）を検出することができる。
【００６７】
パーシャルリフト噴射の実施中に、リフト特性信号が異常を示していることの異常判定を実施することにより、リフト特性信号の出力異常を診断するための機会を別途設けなくても駆動特性の異常判定を実施することができる。
【００６８】
燃料噴射弁３０による燃料噴射量と、弁体３４がリフト開始位置に戻るタイミング（すなわち閉弁タイミング）とは相関性を有している。これに鑑み、燃料噴射弁３０の駆動特性に関するパラメータとして、弁体３４がリフト開始位置に戻るタイミングを特定するパラメータである電圧変曲点時間Ｔｄｉｆｆを算出し、電圧変曲点時間Ｔｄｉｆｆにより燃料噴射弁３０の駆動特性のずれを補償する補正量（通電補正量Ｑｋ）を算出することにより、各燃料噴射弁３０が有する定常的なずれを把握することができる。また、通電補正量Ｑｋを用いた異常診断は、経年劣化に関する異常の検出に適している。
【００６９】
マイコン４１に入力される駆動特性に関するパラメータ（電圧変曲点時間Ｔｄｉｆｆ）の出力値が異常値を示している場合に、その異常を示した電圧変曲点時間Ｔｄｉｆｆを用いて通電補正量Ｑｋを算出し更新すると、実際の通電補正量Ｑｋからずれた値により通電補正量Ｑｋを更新してしまうことが考えられる。この場合、燃料噴射制御を適正に実施できないことが懸念される。そこで、電圧変曲点時間Ｔｄｉｆｆが異常を示した場合には、その異常を示した電圧変曲点時間Ｔｄｉｆｆを用いた通電補正量Ｑｋの更新を禁止する構成とした。この構成によれば、燃料噴射制御の制御性が低下することを抑制することができる。
【００７０】
信号異常診断処理が終了した場合には信号異常カウンタＣの値をそのまま保持し、次回の信号異常診断では前回のカウンタ値からカウントアップする構成とした。この構成によれば、１回の信号異常診断処理の診断時間が短くても、異常が生じている場合にはできるだけ早期に異常を検出することができる。
【００７１】
（第２実施形態）
次に、第２実施形態について第１実施形態との相違点を中心に説明する。第１実施形態では、パーシャルリフト噴射を実施している期間で電圧変曲点時間Ｔｄｉｆｆを取得するとともに、その取得した電圧変曲点時間Ｔｄｉｆｆを用いて噴射量学習（リフト学習）を実施する構成について説明した。これに対し本実施形態では、リフト学習に加え、弁体３４が駆動しない範囲の通電時間で燃料噴射弁３０に通電するゼロリフト通電を実施し、ゼロリフト通電を実施している期間に取得した電圧変曲点時間Ｔｄｉｆｆを用いて噴射量学習（以下、「ゼロリフト学習」という。）及び信号異常診断を実施している。
【００７２】
ゼロリフト学習について詳しくは、噴射パルス演算部４３からの指令信号を入力すると、駆動ＩＣ４２の演算部４９は、燃料噴射弁３０から燃料を噴射しない期間（本実施形態では、減速時の燃料カット中）に、弁体３４が駆動しない範囲の噴射パルスで燃料噴射弁３０に通電する（図１１（ｂ）参照）。そして、通電オフ後のマイナス端子電圧Ｖｍを用いて、図１０に示す処理により電圧変曲点時間Ｔｄｉｆｆを所定の演算周期で（例えば、燃料噴射弁３０からの噴射毎に）繰り返し算出し、通電補正部４４に出力する。
【００７３】
通電補正部４４は、入力した電圧変曲点時間Ｔｄｉｆｆを用いて、パーシャルリフト噴射の噴射量を補正するための通電補正量Ｑｋを算出し、噴射パルス演算部４３に出力する。つまり、通電補正部４４は、リフト学習により通電補正量Ｑｋ１を算出するとともに、ゼロリフト学習により通電補正量Ｑｋ２を算出する。噴射パルス演算部４３は、通電補正部４４から入力した通電補正量Ｑｋ１，Ｑｋ２を用いて噴射パルスＴｉを算出する。ゼロリフト学習は、１トリップに１回実施される。
【００７４】
ゼロリフト学習を実施している期間には、異常診断部４５は、リフト学習の場合と同様に電圧変曲点時間Ｔｄｉｆｆを取得し、電圧変曲点時間Ｔｄｉｆｆが異常を示しているか否か、つまり、リフト特性信号が出力範囲Ｂ内の値であるか否かを判定している。そして、リフト特性信号が出力範囲Ｂから外れていると判定された場合には、その異常を異常記録部４６に記憶するとともに、今回のトリップでは通電補正量Ｑｋの更新を禁止する。また、異常診断部４５は、通電補正量Ｑｋの異常は検出されていないにもかかわらず、信号異常カウンタＣが異常判定値Ｃｔｈよりも大きくなった場合には、リフト特性信号の出力異常が生じていると判定し、その異常内容を記憶する。
【００７５】
ただし、ゼロリフト通電時には弁体３４は動いていないため、パーシャルリフト噴射に比べて電圧変曲点時間Ｔｄｉｆｆの出力ばらつきが小さい。そこで、リフト学習での出力範囲Ｂ１と、ゼロリフト学習での出力範囲Ｂ２とを異ならせている。具体的には、ゼロリフト学習での出力範囲Ｂ２は、リフト学習での出力範囲Ｂ１よりも上限値Ｖｕと下限値Ｖｄとの差（縦軸方向の幅）が小さく設定されている。これにより、ゼロリフト学習時の信号異常診断では、電圧変曲点時間Ｔｄｉｆｆの小さい変化で異常有りと診断されやすくなっている。
【００７６】
ゼロリフト学習中に実行される信号異常診断処理は、基本的にはリフト学習中に実行される信号異常診断処理と同じである。具体的には、信号異常診断の実行条件として、リフト学習の実行中であることの代わりにゼロリフト学習の実行であることを含み、図８のステップＳ１０１では、ゼロリフト学習の実行中である場合に肯定判定される。そして、ステップＳ１０２以降の処理と同じ処理が実行される。ゼロリフト学習の実行条件としては、車両減速中の燃料カット中であること、及び今回のトリップでゼロリフト学習が未完了であることが含まれている。なお、リフト学習の実行条件には、エンジン始動後の所定期間において触媒早期暖機制御の実行中であること、及び今回のトリップでリフト学習が未完了であることに加え、ゼロリフト学習が以前に行われたことが含まれている。
【００７７】
以上詳述した第２実施形態によれば、第１実施形態で説明した効果に加え、次の優れた効果が得られる。
【００７８】
パーシャルリフト噴射を実施する機会（具体的には、触媒早期暖機中）は限られているため、リフト特性信号に基づく異常診断の機会を十分に確保できないことが懸念される。この点、ゼロリフト学習の実施中（具体的には、車両減速時の燃料カット中）にもリフト特性信号に基づく異常診断を実施することにより、出力信号異常の診断機会を十分に確保することができる。
【００７９】
ゼロリフト通電を実施している場合では弁体３４は動いていないため、パーシャルリフト噴射に比べてリフト特性信号のばらつきが小さい。この点に着目し、パーシャルリフト噴射の実施時における出力範囲Ｂ１と、ゼロリフト通電の実施時における出力範囲Ｂ２とを異なる幅に設定して異常診断を実施する構成とした。このような構成とすることにより、リフト特性信号を用いた異常診断において誤検出を抑制することができる。
【００８０】
（他の実施形態）
本発明は上記実施形態の内容に限定されず、例えば次のように実施されてもよい。
【００８１】
・上記第１実施形態ではリフト学習中に信号異常診断を実施し、上記第２実施形態ではリフト学習中及びゼロリフト学習中に信号異常診断を実施したが、ゼロリフト学習中にのみ信号異常診断を実施する構成としてもよい。また、リフト学習中又はゼロリフト学習中に限らず、それ以外のエンジン運転状態において（例えば常時）信号異常診断を実施する構成としてもよい。
【００８２】
・今回の信号異常診断でリフト特性信号が出力範囲Ｂから外れたことが検出された場合には、今回のトリップだけでなく次回以降のトリップでの通電補正量Ｑｋの更新を禁止する構成としてもよい。
【００８３】
・上記実施形態では、信号異常診断後でも信号異常カウンタＣの値をリセットせずにそのまま保持したが、信号異常診断処理を実行する毎に信号異常カウンタＣをリセットするようにしてもよい。
【００８４】
・噴射指令値に所定の係数を加算又は乗算して異常判定値を算出し、その算出した異常判定値とリフト特性信号とを比較することにより電圧変曲点時間Ｔｄｉｆｆが異常を示しているか否かを判定する構成としてもよい。
【００８５】
・上記実施形態では、リフト特性信号が出力範囲Ｂから外れた場合に電圧変曲点時間Ｔｄｉｆｆが異常を示したとして、信号異常カウンタＣをカウントアップする構成とした。ここで、演算が適切に行われなかったために電圧変曲点時間Ｔｄｉｆｆが算出されず、リフト特性信号が一時的に出力されないことがある。この点を考慮し、演算周期毎にリフト特性信号が出力されない場合に、電圧変曲点時間Ｔｄｉｆｆが異常を示したとして信号異常カウンタＣをカウントアップしてもよい。
【００８６】
・上記実施形態では、車両減速時の燃料カット中にゼロリフト学習を実行したが、車両の運転状態が、燃料噴射弁３０を駆動しない運転状態であればよい。例えば、イグニッションオン後、エンジンが始動される前にゼロリフト学習を実施してもよい。また、車両停止中の燃料カット中にゼロリフト学習を実施するようにしてもよい。
【００８７】
・上記の各構成要素は概念的なものであり、上記実施形態に限定されない。例えば、一つの構成要素が有する機能を複数の構成要素に分散して実現したり、複数の構成要素が有する機能を一つの構成要素で実現したりしてもよい。
【符号の説明】
【００８８】
１１…エンジン（内燃機関）、３０…燃料噴射弁、３４…弁体、４０…ＥＣＵ（取得部、補正量算出部、第１異常判定部、第２異常判定部、噴射制御部、通電制御部）、４１…マイコン、４２…駆動ＩＣ。
【図１】
2019094858.tif 000003
【図２】
2019094858.tif 000004
【図３】
2019094858.tif 000005
【図４】
2019094858.tif 000006
【図５】
2019094858.tif 000007
【図６】
2019094858.tif 000008
【図７】
2019094858.tif 000009
【図８】
2019094858.tif 000010
【図９】
2019094858.tif 000011
【図１０】
2019094858.tif 000012
【図１１】
2019094858.tif 000013