(57)【要約】【課題】燃料噴射量の大小にかかわらず、燃料噴射弁の開閉タイミングを高精度で検出する。【解決手段】内燃機関１００の振動を検出する振動センサ３８０の出力信号を読み込み可能な電子制御装置３９０は、振動センサ３８０の出力信号から求められる周波数と内燃機関１００の回転角とに基づいて、燃料噴射弁１７０の開閉タイミングを検出する。具体的には、電子制御装置３９０は、異なるタイミングで振動センサ３８０の出力信号を所定期間に亘って複数回サンプリングして周波数に変換し、そのサンプリング結果に燃料噴射弁１７０の開弁又は閉弁によって発生する所定周波数の振動が現れているか否かに応じて、燃料噴射弁１７０の開閉タイミングを検出する。【選択図】図１
2020143651.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の振動を検出する振動センサの出力信号を読み込み可能な燃料噴射弁の作動検出装置であって、
前記振動センサの出力信号から求められる振動パラメータと前記内燃機関の回転角とに基づいて、前記燃料噴射弁の開弁タイミング及び閉弁タイミングの少なくとも一方を検出する、
燃料噴射弁の作動検出装置。
【請求項２】
前記燃料噴射弁の燃料噴射開始タイミング又はこれより進角側の所定タイミングから遅角側へと向かって、前記振動センサの出力信号を所定期間に亘ってサンプリングして周波数変換し、所定周波数における周波数の信号強度と前記サンプリングの開始タイミングとに基づいて、前記燃料噴射弁の開弁タイミング及び閉弁タイミングの少なくとも一方を検出する、
請求項１に記載の燃料噴射弁の作動検出装置。
【請求項３】
前記サンプリングは、前記燃料噴射開始タイミング又は前記所定タイミングから遅角側へと向かって徐々にずらしながら複数回実行される、
請求項２に記載の燃料噴射弁の作動検出装置。
【請求項４】
前記検出された開弁タイミングと前記燃料噴射弁への指示噴射開始タイミングとを比較して、前記燃料噴射弁が正常に作動しているか否かを診断する、
請求項１〜３のいずれか１つに記載の燃料噴射弁の作動検出装置。
【請求項５】
前記検出された開弁タイミング及び閉弁タイミングにより求められる実燃料噴射時間と前記燃料噴射弁への指示燃料噴射時間とを比較して、前記燃料噴射弁が正常に作動しているか否かを診断する、
請求項１〜請求項４のいずれか１つに記載の燃料噴射弁の作動検出装置。
【請求項６】
前記所定周波数における信号強度が所定レベル以下である場合、前記燃料噴射弁に異常があると判定する、
請求項２又は請求項３に記載の燃料噴射弁の作動検出装置。
【請求項７】
前記振動センサに異常、又は前記所定周波数における信号強度が前記所定レベルより小さい許容レベル未満である場合、前記燃料噴射弁が正常に作動しているか否かの診断を中止する、
請求項６に記載の燃料噴射弁の作動検出装置。
【請求項８】
内燃機関の振動を検出する振動センサの出力信号を読み込み可能な電子制御装置が、前記振動センサの出力信号から求められる振動パラメータと前記内燃機関の回転角とに基づいて、燃料噴射弁の開弁タイミング及び閉弁タイミングの少なくとも一方を検出する、
燃料噴射弁の作動検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料噴射弁の開閉タイミングを検出する、燃料噴射弁の作動検出装置及び作動検出方法に関する。
【背景技術】
【０００２】
燃料噴射弁の噴射特性を取得することを目的として、特開２００９−５７９２４号公報（特許文献１）に記載されるように、燃料噴射弁に供給される燃料圧力の変化に応じて、燃料噴射弁の開閉タイミングを検出する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−５７９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、燃料のミキシング及び気化などを促進させるために燃料を複数回分割して噴射する分割噴射では、１回の噴射時間が短いことから燃料圧力の変化が小さく、従来の技術では、燃料噴射弁の開閉タイミングを高精度で検出することが困難であった。また、分割噴射を行わない場合であっても、内燃機関の負荷が小さいときには、１回の噴射時間が短いことから燃料圧力の変化が小さく、分割噴射と同様に、燃料噴射弁の開閉タイミングを高精度で検出することが困難であった。
【０００５】
そこで、本発明は、燃料噴射量の大小にかかわらず、燃料噴射弁の開閉タイミングを高精度で検出することができる、燃料噴射弁の作動検出装置及び作動検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
このため、内燃機関の振動を検出する振動センサの出力信号を読み込み可能な燃料噴射弁の作動検出装置は、振動センサの出力信号から求められる振動パラメータと内燃機関の回転角とに基づいて、燃料噴射弁の開弁タイミング及び閉弁タイミングの少なくとも一方を検出する。
【０００７】
また、内燃機関の振動を検出する振動センサの出力信号を読み込み可能な電子制御装置が、振動センサの出力信号から求められる振動パラメータと内燃機関の回転角とに基づいて、燃料噴射弁の開弁タイミング及び閉弁タイミングの少なくとも一方を検出する。
【発明の効果】
【０００８】
本発明によれば、内燃機関の振動により燃料噴射弁の開弁タイミング及び閉弁タイミングの少なくとも一方が検出されるため、燃料噴射量の大小にかかわらず、燃料噴射弁の開閉タイミングを高精度で検出することができる。
【図面の簡単な説明】
【０００９】
【図１】エンジンシステムの一例を示す概要図である。
【図２】電子制御装置の一例を示すブロック図である。
【図３】燃料噴射弁の開閉タイミングを検出する原理の説明図である。
【図４】電子制御装置に実装された機能の一例を示すブロック図である。
【図５】燃料噴射弁の開閉タイミング検出処理の一例を示すフローチャートである。
【図６】燃料噴射弁の開閉タイミング検出処理の一例を示すフローチャートである。
【図７】燃料噴射弁の開閉タイミングを検出する方法を説明する具体的な一例の説明図である。
【図８】ウィンドウを使用した振動のサンプリング結果の一例を示す説明図である。
【図９】電子制御装置に実装された機能の他の例を示すブロック図である。
【図１０】燃料噴射弁の開閉タイミング検出処理の他の例を示すフローチャートである。
【図１１】燃料噴射弁の開閉タイミングを検出する方法を説明する具体的な他の例の説明図である。
【図１２】ウィンドウを使用した振動のサンプリング結果の他の例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、本実施形態に係る燃料噴射弁の作動検出装置が組み込まれた、エンジンシステムの一例を示している。
【００１１】
内燃機関１００の吸気マニフォールド１１０に接続された吸気管１２０には、吸気流通方向に沿って、吸気中の埃などを濾過して除去するエアクリーナ１３０、吸気流量を調整するスロットルバルブ１４０、吸気流量及び吸気温を検出するホットワイヤー式のエアフローメータ１５０がこの順番で配設されている。また、吸気管１２０には、スロットルバルブ１４０をバイパスする補助吸気通路１２０Ａが併設されている。補助吸気通路１２０Ａには、例えば、暖機状態及びエアコンディショナの作動状態などに応じて吸気流量を増量させる、アイドル制御弁１６０が取り付けられている。
【００１２】
吸気マニフォールド１１０には、各気筒に連通される吸気ポートに燃料を噴射する燃料噴射弁１７０が取り付けられている。燃料噴射弁１７０は、非作動時には、バルブスプリングによりプランジャをバルブシートに向けて付勢して閉弁させ、ソレノイドに通電した作動時には、バルブスプリングの付勢力に抗してプランジャをバルブシートから離れる方向に移動させて開弁させる、電子制御式インジェクターである。また、燃料噴射弁１７０には、開弁時にプランジャの移動を規制するストッパーが設けられている。従って、燃料噴射弁１７０においては、閉弁状態から開弁状態へと変化すると、プランジャがストッパーに当たって第１の所定周波数の振動が発生し、開弁状態から閉弁状態へと変化すると、プランジャがバルブシートに当たって第２の所定周波数の振動が発生するという特性がある。ここで、第１の所定周波数及び第２の所定周波数は、例えば、プランジャ、バルブシート及びストッパーの材質及び形状などに応じて決まる。
【００１３】
燃料タンク１８０に貯蔵された燃料は、燃料ポンプ１９０により吸い上げられ、燃料供給配管２００を介してプレッシャーレギュレータ２１０に供給される。プレッシャーレギュレータ２１０に供給された燃料は、所定の燃料圧力に調整されつつ燃料噴射弁１７０に供給される。従って、燃料噴射弁１７０は、開弁時間に略比例した燃料噴射量を吸気ポートに噴射することができる。また、燃料噴射弁１７０に供給された燃料のうち噴射に供されなかった燃料は、燃料リターン配管２２０を介して燃料タンク１８０に戻される。
【００１４】
内燃機関１００の排気マニフォールド２３０に接続された排気管２４０には、排気流通方向に沿って、排気中の一酸化炭素、炭化水素及び窒素酸化物を同時に低減させる三元触媒コンバータ２５０、排気音を低減させるマフラー２６０がこの順番で配設されている。また、三元触媒コンバータ２５０の排気上流及び下流には、排気中の酸素濃度を検出する酸素濃度センサ２７０及び２８０が夫々取り付けられている。
【００１５】
さらに、内燃機関１００のシリンダヘッド２９０には、シリンダブロック３００に形成された燃焼室３１０を臨むように、イグニッションプラグ３２０が取り付けられている。イグニッションプラグ３２０は、燃料噴射弁１７０から噴射された燃料と吸気（空気）との混合気を着火することで、ピストン３３０をクランクシャフトに向かって押し下げて回転駆動力を発生させる。
【００１６】
内燃機関１００の運転状態を検出する各種センサとして、エアフローメータ１５０並びに酸素濃度センサ２７０及び２８０に加え、スロットルバルブ１４０の開度を検出するスロットル開度センサ３４０、所定位置（例えば、上死点）を基点としたクランク角及び回転数を検出するクランク角センサ３５０、気筒判別を行うカム角センサ３６０、水温を検出する水温センサ３７０、内燃機関１００の振動を検出する振動センサ３８０が設けられている。ここで、振動センサ３８０としては、ノッキングを感知するノックセンサを流用することができる。
【００１７】
エアフローメータ１５０、酸素濃度センサ２７０及び２８０、スロットル開度センサ３４０、クランク角センサ３５０、カム角センサ３６０、水温センサ３７０並びに振動センサ３８０の各出力信号は、マイクロコンピュータを内蔵した電子制御装置３９０に入力されている。また、アイドル制御弁１６０、燃料噴射弁１７０、燃料ポンプ１９０、イグニッションプラグ３２０は、電子制御装置３９０に電気的に接続されており、電子制御装置３９０から出力された作動信号に応じて適宜作動する。
【００１８】
電子制御装置３９０は、図２に示すように、クロック発生回路３９０Ａと、ＣＰＵ（Central Processing Unit）３９０Ｂと、ＲＯＭ（Read Only Memory）３９０Ｃと、ＲＡＭ（Random Access Memory）３９０Ｄと、タイマカウンタ３９０Ｅと、出力回路３９０Ｆと、デジタル入力回路３９０Ｇと、アナログ入力回路３９０Ｈと、内部バス３９０Ｉと、入出力インタフェース（Ｉ／Ｏ）３９０Ｊと、変換回路３９０Ｋと、を内蔵している。
【００１９】
クロック発生回路３９０Ａは、各回路の同期をとるためのクロックパルスを発生し、クロックパルスをＣＰＵ３９０Ｂに供給する。ＣＰＵ３９０Ｂは、クロック発生回路３９０Ａから供給されたクロックパルスに同期して、制御プログラムなどを読み込んで解釈及び実行することで、所要の目的を達成するためのデータを加工する。ＲＯＭ３９０Ｃは、電源供給を遮断してもデータを保持可能な不揮発性メモリであって、制御プログラム、制御データ、学習値及び故障情報などを格納する。ＲＡＭ３９０Ｄは、電源供給を遮断するとデータが消失する揮発性メモリであって、ＣＰＵ３９０Ｂによる演算結果などを一時的に格納する。タイマカウンタ３９０Ｅは、制御に係る計時及び計数を行う。そして、ＣＰＵ３９０Ｂ、ＲＯＭ３９０Ｃ、ＲＡＭ３９０Ｄ及びタイマカウンタ３９０Ｅは、内部バス３９０Ｉに夫々接続されている。
【００２０】
出力回路３９０Ｆは、外部機器などにアナログ信号又はデジタル信号を出力する出力ポートを提供する。デジタル入力回路３９０Ｇは、外部機器などからデジタル信号を受信する入力ポートを提供する。アナログ入力回路３９０Ｈは、外部機器などからアナログ信号を受信するための入力ポートを提供する。そして、出力回路３９０Ｆ及びデジタル入力回路３９０Ｇは、ＣＰＵ３９０Ｂで処理可能な信号に変換又はＣＰＵ３９０Ｂの出力信号を外部機器などに適合した信号に変換する入出力インタフェース３９０Ｊを介して、内部バス３９０Ｉに接続されている。また、アナログ入力回路３９０Ｈは、アナログ信号をデジタル信号に変換するアナログ−デジタル変換機能及びアナログ信号を高速フーリエ変換する高速フーリエ変換（ＦＦＴ；Fast Fourier Transform）機能を有する変換回路３９０Ｋを介して、内部バス３９０Ｉに接続されている。従って、ＣＰＵ３９０Ｂ、ＲＯＭ３９０Ｃ、ＲＡＭ３９０Ｄ、タイマカウンタ３９０Ｅ、出力回路３９０Ｆ、デジタル入力回路３９０Ｇ及びアナログ入力回路３９０Ｈは、内部バス３９０Ｉを介して、任意のデータを送受信できるようになっている。
【００２１】
電子制御装置３９０は、ＲＯＭ３９０Ｃに格納された各種の制御プログラムに従って、アイドル制御弁１６０、燃料噴射弁１７０、燃料ポンプ１９０及びイグニッションプラグ３２０を電子制御する。具体的には、電子制御装置３９０は、水温センサ３７０の出力信号及びエアコンディショナの作動状態などに応じて吸気流量を増量させる必要があるか否かを判定し、吸気流量を増量させる必要があると判定したときにアイドル制御弁１６０に作動信号を出力し、補助吸気通路１２０Ａの開口面積を増加させる。また、電子制御装置３９０は、エアフローメータ１５０から出力された吸気流量信号及びクランク角センサ３５０から出力された回転数信号に応じた基本燃料噴射量を求める。そして、電子制御装置３９０は、水温センサ３７０、酸素濃度センサ２７０及び２８０などの出力信号に応じて基本燃料噴射量を適宜補正した燃料噴射量を求め、所定のタイミングで燃料噴射弁１７０に作動信号を出力し、その先端のノズルから燃料噴射量に応じた燃料を吸気ポートに噴射させる。このとき、電子制御装置３９０は、燃料噴射が完了した所定のタイミングでイグニッションプラグ３２０に作動信号を出力して混合気を着火させる。さらに、電子制御装置３９０は、燃料ポンプ１９０に作動信号を出力し、燃料ポンプ１９０により燃料タンク１８０に貯蔵されている燃料を燃料噴射弁１７０に供給させる。
【００２２】
ここで、図３を参照し、燃料噴射弁１７０の開閉タイミングを検出する原理について説明する。
燃料噴射弁１７０は、上述したように、閉弁状態から開弁状態へと変化すると第１の所定周波数の振動が発生し、開弁状態から閉弁状態へと変化すると第２の所定周波数の振動が発生するという特性を有している。具体的には、図３に示すように、燃料噴射弁１７０の駆動電圧がローレベルからハイレベルに変化すると、燃料噴射弁１７０の駆動電流がフィードバック制御によって目標電流に収束する過程において、プランジャがストッパーに当たって第１の所定周波数の振動が発生する。また、燃料噴射弁１７０の駆動電圧がハイレベルからローレベルに変化すると、燃料噴射弁１７０の駆動電流が０まで低下する過程において、プランジャがバルブシートに当たって第２の所定周波数の振動が発生する。
【００２３】
従って、振動をサンプリングする期間（開始タイミング〜終了タイミング）を規定するウィンドウを導入し、このウィンドウによって規定された期間に振動をサンプリングする。そして、サンプリングされた振動を高速フーリエ変換（ＦＦＴ）して周波数に変換し、その周波数のパワースペクトル（信号強度）を解析して、燃料噴射弁１７０の開閉タイミング、即ち、開弁タイミング及び閉弁タイミングを検出する。ここで、燃料圧力の変化によってパワースペクトルが低下するとパワースペクトルの解析が困難となるため、燃料噴射弁１７０の駆動電流を変化させてパワースペクトルを確保することで、燃料噴射弁１７０の開閉タイミングの検出精度を向上させることができる。
【００２４】
電子制御装置３９０のＣＰＵ３９０Ｂは、燃料噴射弁１７０の開閉タイミングを検出するために、ＲＯＭ３９０Ｃに格納された制御プログラムに従って、図４に示すような各機能を実装する。なお、各機能を実装する前提として、電子制御装置３９０は、内燃機関１００の運転状態に応じて、燃料噴射量及び点火時期の遅角状態をリアルタイムに算出しているものとする（以下同様）。
【００２５】
電子制御装置３９０は、各機能として、回転時間算出部４００、噴射時間算出部４１０、噴射開始タイミング算出部４２０、ウィンドウ数算出部４３０、サンプリング実行部４４０、周波数変換部４５０、開弁タイミング検出部４６０、閉弁タイミング検出部４７０及び実噴射時間算出部４８０を実装している。
【００２６】
回転時間算出部４００は、内燃機関１００の回転数に基づいて、クランクシャフトが所定角度（例えば、１度）回転するのに要する回転時間ＣＡ１［μｓ／ｄｅｇ］を算出する。具体的には、回転時間算出部４００は、回転数をＮｅとすると、「ＣＡ１＝６０００００００／（Ｎｅ／３６０）」という式から回転時間ＣＡ１を算出する。なお、所定角度としては、１度に限らず、必要な検出精度などを考慮して、０．５度、１．５度、２度など任意の角度とすることができる。
【００２７】
噴射時間算出部４１０は、燃料噴射量、負荷及び燃料圧力に基づいて、燃料噴射弁１７０が燃料噴射量に相当する燃料を噴射するのに要する燃料噴射時間ＴＩＯＵＴ［μｓ］を算出する。ここで、燃料圧力としては、プレッシャーレギュレータ２１０によって調整される所定の燃料圧力とすることができる。即ち、噴射時間算出部４１０は、負荷及び燃料圧力に応じて一定量の燃料を噴射するのに要する時間が変化することを考慮し、燃料噴射量に相当する燃料を噴射するのに要する燃料噴射時間ＴＩＯＵＴを算出する。なお、噴射時間算出部４１０は、少なくとも燃料噴射量及び燃料圧力に応じた燃料噴射時間ＴＩＯＵＴを算出すればよい。
【００２８】
噴射開始タイミング算出部４２０は、回転数、負荷及び点火時期の遅角状態に基づいて、燃料噴射弁１７０が燃料噴射を開始する燃料噴射開始タイミングＩＮＪ＿ＳＴ［ｄｅｇ］を算出する。ここで、点火時期が遅角している場合には、燃焼ノイズが低減して周波数の検出精度が向上するため、これをパラメータとして導入することで精度向上を図っている。従って、噴射開始タイミング算出部４２０は、パラメータの１つとして点火時期の遅角状態を用いずに、回転数及び負荷に基づいて燃料噴射開始タイミングＩＮＪ＿ＳＴを算出するようにしてもよい。なお、燃料噴射開始タイミングＩＮＪ＿ＳＴは、クランクシャフトの基準位置からの回転角［ｄｅｇ］として規定することができる（他のタイミングについても同様）。
【００２９】
ウィンドウ数算出部４３０は、回転時間ＣＡ１及び燃料噴射時間ＴＩＯＵＴに基づいて、燃料噴射弁１７０の開閉タイミングを検出するために必要な所定の固定幅を有するウィンドウの個数（ウィンドウ数）ＩＮＪ＿ＣＴを算出する。具体的には、ウィンドウ数算出部４３０は、燃料噴射時間ＴＩＯＵＴを回転時間ＣＡ１で除算することで、ウィンドウ数ＩＮＪ＿ＣＴを算出する。ここで、燃料噴射時間ＴＩＯＵＴを回転時間ＣＡ１で除算した値が小数点を有している場合、これを切り上げた整数値とすることができる。なお、固定幅は、例えば、燃料噴射弁１７０の噴射特性などを考慮して適宜決定することができる。
【００３０】
サンプリング実行部４４０は、クランク角が燃料噴射開始タイミングＩＮＪ＿ＳＴ又はこれより進角側の所定タイミングになったとき、ウィンドウ１による振動のサンプリングを開始し、その後、所定角度ごとにウィンドウ２〜ＩＮＪ＿ＣＴによる振動のサンプリングを順次開始する。そして、サンプリング実行部４４０は、各ウィンドウ１〜ＩＮＪ＿ＣＴにおいて、内燃機関１００の振動ＶＩＢをサンプリングする。
【００３１】
周波数変換部４５０は、変換回路３９０Ｋの機能を利用して、各ウィンドウ１〜ＩＮＪ＿ＣＴを使用してサンプリングされた振動ＶＩＢを周波数ＦＲＥＱ［Ｈｚ］に夫々変換し、その周波数ＦＲＥＱを各ウィンドウ１〜ＩＮＪ＿ＣＴに関連付ける。周波数ＦＲＥＱに変換された振動ＶＩＢは、図３に示すように、周波数とパワースペクトルとの関連を示す情報となる。従って、燃料噴射弁１７０が開弁又は閉弁したときには振動が発生するので、その振動に対応した周波数にパワースペクトルのピークが現れることとなる。
【００３２】
開弁タイミング検出部４６０は、各ウィンドウ１〜ＩＮＪ＿ＣＴに関連付けられた周波数ＦＲＥＱを順次参照して、開弁タイミングＩＮＪ＿ＯＰを検出する。なお、燃料噴射弁１７０の開弁タイミングの検出方法については、後述するフローチャートで詳細に説明する。
【００３３】
閉弁タイミング検出部４７０は、各ウィンドウ１〜ＩＮＪ＿ＣＴに関連付けられた周波数ＦＲＥＱを順次参照して、閉弁タイミングＩＮＪ＿ＣＬを検出する。なお、燃料噴射弁１７０の閉弁タイミングの検出方法については、後述するフローチャートで詳細に説明する。
【００３４】
実噴射時間算出部４８０は、燃料噴射弁１７０の閉弁タイミングＩＮＪ＿ＣＬからその開弁タイミングＩＮＪ＿ＯＰを減算することで、燃料噴射弁１７０が実際に燃料を噴射していた実燃料噴射時間［ｄｅｇ］を算出する。ここで、実燃料噴射時間は、クランクシャフトの角度ではなく、公知の手法によって変換した実噴射パルス幅としてもよい。
【００３５】
このようにすれば、電子制御装置３９０は、振動センサ３８０の出力信号から求められる振動パラメータと内燃機関１００のクランクシャフトの回転角とに基づいて、燃料噴射弁１７０の開弁タイミング及び閉弁タイミングの少なくとも一方を検出することができる。このとき、燃料噴射弁１７０の開閉タイミングは、主に、内燃機関１００に発生する振動によって検出されるため、燃料噴射量の大小による影響が少なく、燃料噴射弁１７０の開閉タイミングを高精度で検出することができる。従って、燃料のミキシング及び気化などを促進させるために燃料を複数回分割して噴射する分割噴射においても、燃料噴射弁１７０の開閉タイミングを高精度で検出することができる。なお、電子制御装置３９０の処理能力に余裕がある場合、ウィンドウ数ＩＮＪ＿ＣＴ及び燃料噴射開始タイミングＩＮＪ＿ＳＴを算出せずに、クランクシャフトの所定回転ごとにウィンドウによる振動のサンプリングを順次実行するようにしてもよい。
【００３６】
図５及び図６は、電子制御装置３９０が起動されたことを契機として、電子制御装置３９０のＣＰＵ３９０Ｂが所定時間ごとに繰り返し実行する、燃料噴射弁１７０の開閉タイミング検出処理の一例を示している。なお、図５及び図６に示す開閉タイミング検出処理においては、燃料噴射弁１７０の開閉タイミングの検出に加え、燃料噴射弁１７０の診断も行っている。
【００３７】
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、ＣＰＵ３９０Ｂが、クランク角センサ３５０から出力された回転数信号を読み込み、クランクシャフトが所定角度回転するのに要する回転時間ＣＡ１を算出する。なお、ステップ１の処理により、回転時間算出部４００が実装される。
【００３８】
ステップ２では、ＣＰＵ３９０Ｂが、負荷の一例として挙げることができる、エアフローメータ１５０から出力された吸気流量信号を読み込み、別処理により算出した燃料噴射量及び燃料圧力を考慮して、燃料噴射量に相当する燃料を燃料噴射弁１７０から噴射するのに要する燃料噴射時間ＴＩＯＵＴを算出する。ここで、負荷としては、吸気流量に限らず、スロットル開度センサ３４０により検出されたスロットルバルブ１４０の開度、アクセル開度、吸気負圧、過給圧力など、トルクと密接に関連する状態量とすることもできる。なお、ステップ２の処理により、噴射時間算出部４１０が実装される。
【００３９】
ステップ３では、ＣＰＵ３９０Ｂが、エアフローメータ１５０から出力された吸気流量信号及びクランク角センサ３５０から出力された回転数信号を読み込み、別処理により算出した点火時期の遅角状態を考慮して、燃料噴射開始タイミングＩＮＪ＿ＳＴを算出する。なお、ステップ３の処理により、噴射開始タイミング算出部４２０が実装される。
【００４０】
ステップ４では、ＣＰＵ３９０Ｂが、回転時間ＣＡ１及び燃料噴射時間ＴＩＯＵＴに基づいて、ウィンドウ数ＩＮＪ＿ＣＴを算出する。ここで、内燃機関１００が所定回転数以上で作動している高回転時には、処理負荷を軽減するために、ウィンドウ数ＩＮＪ＿ＣＴを減らしてもよい（以下同様）。なお、ステップ４の処理により、ウィンドウ数算出部４３０が実装される。
【００４１】
ステップ５では、ＣＰＵ３９０Ｂが、クランク角センサ３５０から出力されたクランク角を読み込み、そのクランク角が燃料噴射開始タイミングＩＮＪ＿ＳＴ又はこれより進角側の所定タイミングになったとき、ウィンドウ１による振動のサンプリングを開始し、その後、所定角度ごとにウィンドウ２〜ＩＮＪ＿ＣＴによる振動のサンプリングを順次開始する。そして、ＣＰＵ３９０Ｂは、各ウィンドウ１〜ＩＮＪ＿ＣＴにおいて、振動センサ３８０から出力された振動を読み込んでサンプリングする。なお、ステップ５の処理により、サンプリング実行部４４０が実装される。
【００４２】
ステップ６では、ＣＰＵ３９０Ｂが、変換回路３９０Ｋの機能を利用して、各ウィンドウ１〜ＩＮＪ＿ＣＴを使用してサンプリングされた振動を周波数に夫々変換する。ここで、ＣＰＵ３９０Ｂは、変換回路３９０Ｋの機能を利用せずに、ソフトウエアによって振動を周波数に変換してもよい。なお、ステップ６の処理により、周波数変換部４５０が実装される。
【００４３】
ステップ７では、ＣＰＵ３９０Ｂが、各ウィンドウ１〜ＩＮＪ＿ＣＴに関連付けられた周波数を順次参照し、燃料噴射弁１７０が開弁することにより発生する第１の所定周波数の振動が現れなくなったとき、その直前のウィンドウを使用したサンプリングの開始タイミングを開弁タイミングＩＮＪ＿ＯＰとして検出する。なお、ステップ７の処理により、開弁タイミング検出部４６０が実装される。
【００４４】
ステップ８では、ＣＰＵ３９０Ｂが、各ウィンドウ１〜ＩＮＪ＿ＣＴに関連付けられた周波数を順次参照し、燃料噴射弁１７０が閉弁することにより発生する第２の所定周波数の振動が現れたとき、そのウィンドウを使用したサンプリングの開始タイミングを閉弁タイミングＩＮＪ＿ＣＬとして検出する。なお、ステップ８の処理により、閉弁タイミング検出部４７０が実装される。
【００４５】
ステップ９では、ＣＰＵ３９０Ｂが、燃料噴射弁１７０の閉弁タイミングＩＮＪ＿ＣＬから開弁タイミングＩＮＪ＿ＯＰを減算することで、燃料噴射弁１７０が実際に燃料を噴射していた実燃料噴射時間を算出する。なお、ステップ９の処理により、実噴射時間算出部４８０が実装される。
【００４６】
ステップ１０では、ＣＰＵ３９０Ｂが、ステップ９で算出した実燃料噴射時間とステップ２で算出した燃料噴射時間ＴＩＯＵＴ（指示燃料噴射時間）とを比較して、実燃料噴射時間が異常であるか否かを判定する。具体的には、ＣＰＵ３９０Ｂは、実燃料噴射時間が燃料噴射時間ＴＩＯＵＴから所定時間以上逸脱しているか否かを介して、実燃料噴射時間が異常であるか否かを判定する。そして、ＣＰＵ３９０Ｂは、実燃料噴射時間が異常であると判定したならば（Ｙｅｓ）、処理をステップ１２へと進める。一方、ＣＰＵ３９０Ｂは、実燃料噴射時間が異常でない、即ち、実燃料噴射時間が正常であると判定したならば（Ｎｏ）、処理をステップ１１へと進める。
【００４７】
ステップ１１では、ＣＰＵ３９０Ｂが、ステップ７で検出した開弁タイミングＩＮＪ＿ＯＰにより特定される燃料噴射開始タイミングとステップ３で算出した燃料噴射開始タイミングＩＮＪ＿ＳＴ（指示噴射開始タイミング）とを比較して、燃料噴射開始タイミングが異常であるか否かを判定する。具体的には、ＣＰＵ３９０Ｂは、開弁タイミングＩＮＪ＿ＯＰにより特定される燃料噴射開始タイミングが燃料噴射開始タイミングＩＮＪ＿ＳＴより所定角度以上逸脱しているか否かを介して、噴射開始タイミングが異常であるか否かを判定する。そして、ＣＰＵ３９０Ｂは、燃料噴射開始タイミングが異常であると判定したならば（Ｙｅｓ）、処理をステップ１２へと進める。一方、ＣＰＵ３９０Ｂは、燃料噴射開始タイミングが異常でない、即ち、燃料噴射開始タイミングが正常であると判定したならば（Ｎｏ）、処理をステップ１３へと進める。
【００４８】
ステップ１２では、ＣＰＵ３９０Ｂが、燃料噴射弁１７０が異常であると判定する。燃料噴射弁１７０が異常であると判定された場合、ＣＰＵ３９０Ｂは、これを運転者などに報知すべくＭＩＬ（Malfunction Indicator Lamp）を点灯したり、故障情報などをＲＯＭ３９０Ｃに格納したりすることができる。
ステップ１３では、ＣＰＵ３９０Ｂが、燃料噴射弁１７０が正常であると判定する。
【００４９】
要するに、電子制御装置３９０のＣＰＵ３９０Ｂは、振動センサ３８０の出力信号をサンプリングする期間を規定するウィンドウを使用し、燃料噴射弁１７０の燃料噴射開始タイミングＩＮＪ＿ＳＴ又はこれより進角側の所定タイミングから遅角側へと向かって徐々にずらしながら、振動センサ３８０の出力信号を複数回サンプリングして周波数変換する。そして、電子制御装置３９０のＣＰＵ３９０Ｂは、所定周波数（第１の所定周波数及び第２の所定周波数）における周波数の信号強度（パワースペクトル）とサンプリングの開始タイミングとに基づいて、燃料噴射弁１７０の開弁タイミング及び閉弁タイミングの少なくとも一方を検出する。
【００５０】
また、電子制御装置３９０のＣＰＵ３９０Ｂは、燃料噴射弁１７０の開弁タイミングＩＮＪ＿ＯＰと燃料噴射開始タイミングＩＮＪ＿ＳＴとを比較して、燃料噴射弁１７０が正常に作動しているか否かを診断する。さらに、電子制御装置３９０のＣＰＵ３９０Ｂは、燃料噴射弁１７０の開弁タイミング及び閉弁タイミングにより求められる実燃料噴射時間と燃料噴射時間ＴＩＯＵＴとを比較して、燃料噴射弁１７０が正常に作動しているか否かを診断する。
【００５１】
図５及び図６に示す開閉タイミング検出処理において、電子制御装置３９０のＣＰＵ３９０Ｂは、所定周波数におけるパワースペクトルが所定レベル以下である場合、燃料噴射弁１７０に異常があると判定することができる。また、電子制御装置３９０のＣＰＵ３９０Ｂは、振動センサ３８０に異常があるか、又は、所定周波数におけるパワースペクトルが所定レベルより小さい許容レベル未満である場合、燃料噴射弁１７０が正常に作動しているか否かの診断を中止することもできる。
【００５２】
ここで、燃料噴射弁１７０の開閉タイミングの検出方法について、その理解を容易ならしめることを目的として、図７に示すような具体的な一例を挙げて説明する。この一例においては、燃料噴射弁１７０は上死点（ＴＤＣ）から６５度で開弁して９０度で閉弁するものとする。また、１５度の固定幅を有するウィンドウが１０個あり（ウィンドウ１〜１０）、各ウィンドウは、上死点から６１度でウィンドウ１を使用したサンプリングを開始し、その後、２度ごとウィンドウ２〜１０を使用したサンプリングを順次開始するものとする。
【００５３】
ウィンドウ１は、上死点から６１度〜７６度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から６５度で開弁するため、ウィンドウ１を使用した振動のサンプリング結果には、図８に示すように、燃料噴射弁１７０の開弁により発生する第１の所定周波数の振動が現れる。ウィンドウ２は、上死点から６３度〜７８度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から６５度で開弁するため、ウィンドウ２を使用した振動のサンプリング結果には、図８に示すように、燃料噴射弁１７０の開弁により発生する第１の所定周波数の振動が現れる。ウィンドウ３は、上死点から６５度〜８０度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から６５度で開弁するため、ウィンドウ３を使用した振動のサンプリング結果には、図８に示すように、燃料噴射弁１７０の開弁により発生する第１の所定周波数の振動が現れる。
【００５４】
ウィンドウ４は、上死点から６７度〜８２度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から６５度で開弁して９０度で閉弁するため、ウィンドウ４を使用した振動のサンプリング結果には、図８に示すように、燃料噴射弁１７０の開弁又は閉弁により発生する第１の所定周波数又は第２の所定周波数の振動が現れない。従って、開弁による振動が現れなくなったウィンドウ４の直前のウィンドウ３を使用したサンプリングの開始タイミングは、燃料噴射弁１７０の開弁タイミングＩＮＪ＿ＯＰであると見做すことができる。
【００５５】
その後、ウィンドウ５〜ウィンドウ８による振動のサンプリング結果においても、ウィンドウ４と同様に、燃料噴射弁１７０の開弁又は閉弁により発生する第１の所定周波数又は第２の所定周波数の振動が現れない。ウィンドウ９は、上死点から７５度〜９０度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から９０度で閉弁するため、ウィンドウ９を使用した振動のサンプリング結果には、図８に示すように、燃料噴射弁１７０の閉弁により発生する第２の所定周波数の振動が現れる。従って、閉弁による振動が現れたウィンドウ９のサンプリング開始タイミングは、燃料噴射弁１７０の閉弁タイミングＩＮＪ＿ＣＬであると見做すことができる。
【００５６】
電子制御装置３９０のＣＰＵ３９０Ｂは、燃料噴射弁１７０の開閉タイミングを検出するために、ＲＯＭ３９０Ｃに格納された制御プログラムに従って、図９に示すような各機能を実装することもできる。
【００５７】
電子制御装置３９０は、各機能として、噴射開始タイミング算出部５００、噴射時間算出部５１０、ウィンドウ幅算出部５２０、サンプリング実行部５３０、周波数変換部５４０、開弁タイミング検出部５５０、閉弁タイミング検出部５６０及び実噴射時間算出部５７０を実装している。なお、図４に示す機能と同様である機能については、重複説明を排除するために、その説明を簡単にすることとする。必要があれば、先の実施形態の説明を参照されたい。
【００５８】
噴射開始タイミング算出部５００は、回転数、負荷及び点火時期の遅角状態に基づいて、燃料噴射弁１７０が燃料噴射を開始する燃料噴射開始タイミングＩＮＪ＿ＳＴ［ｄｅｇ］を算出する。
【００５９】
噴射時間算出部５１０は、燃料噴射量、回転数、負荷、水温、吸気温及び燃料圧力に基づいて、燃料噴射弁１７０が燃料噴射量に相当する燃料を噴射するのに要する燃料噴射時間ＴＩＯＵＴ［μｓ］を算出する。即ち、噴射時間算出部５１０は、回転数、負荷、水温、吸気温及び燃料圧力に応じて一定量の燃料を噴射するのに要する時間が変化することを考慮し、燃料噴射量に相当する燃料を噴射するのに要する燃料噴射時間ＴＩＯＵＴを算出する。なお、噴射時間算出部５１０は、少なくとも燃料噴射量及び燃料圧力に応じた燃料噴射時間ＴＩＯＵＴを算出すればよい。
【００６０】
ウィンドウ幅算出部５２０は、燃料噴射時間ＴＩＯＵＴに基づいて、燃料噴射弁１７０の開閉タイミングを検出するために必要なウィンドウの可変幅（ウィンドウ幅）ＷＩＤＴＨ［ｄｅｇ］を算出する。具体的には、ウィンドウ幅算出部５２０は、燃料噴射時間ＴＩＯＵＴをウィンドウ幅ＷＩＤＴＨとして算出する。このようにすれば、ウィンドウ幅ＷＩＤＴＨを有するウィンドウを使用した振動のサンプリングを適切なタイミングで開始すると、１つのウィンドウによって燃料噴射弁１７０の開弁及び閉弁によって発生する第１の所定周波数及び第２の所定周波数の振動を検出することができる。
【００６１】
サンプリング実行部５３０は、クランク角が燃料噴射開始タイミングＩＮＪ＿ＳＴ又はこれより進角側の所定タイミングになったとき、ウィンドウ１を使用した振動のサンプリングを開始し、その後、検出精度などを考慮して決定された所定角度ごとにウィンドウ２〜Ｎ（Ｎ：３以上の自然数）を使用した振動のサンプリングを順次開始する。ここで、振動をサンプリングするために使用するウィンドウの数Ｎは、先の実施形態とは異なり、任意の固定数とすることができる。そして、サンプリング実行部５３０は、各ウィンドウ１〜Ｎにおいて、内燃機関１００の振動ＶＩＢをサンプリングする。
【００６２】
周波数変換部５４０は、変換回路３９０Ｋの機能を利用して、各ウィンドウ１〜Ｎを使用してサンプリングされた振動ＶＩＢを周波数ＦＲＥＱ［Ｈｚ］に夫々変換し、その周波数ＦＲＥＱを各ウィンドウ１〜Ｎに関連付ける。
【００６３】
開弁タイミング検出部５５０は、各ウィンドウ１〜Ｎに関連付けられた周波数ＦＲＥＱを順次参照して、開弁タイミングＩＮＪ＿ＯＰを検出する。なお、燃料噴射弁１７０の開弁タイミングの検出方法については、後述するフローチャートで詳細に説明する。
【００６４】
閉弁タイミング検出部５６０は、各ウィンドウ１〜Ｎに関連付けられた周波数ＦＲＥＱを順次参照して、閉弁タイミングＩＮＪ＿ＣＬを検出する。なお、燃料噴射弁１７０の閉弁タイミングの検出方法については、後述するフローチャートで詳細に説明する。
【００６５】
実噴射時間算出部５７０は、燃料噴射弁１７０の閉弁タイミングＩＮＪ＿ＣＬから開弁タイミングＩＮＪ＿ＯＰを減算することで、燃料噴射弁１７０が実際に燃料を噴射していた実燃料噴射時間［ｄｅｇ］を算出する。
【００６６】
このようにすれば、電子制御装置３９０は、先の実施形態と同様に、振動センサ３８０の出力信号から求められる振動パラメータと内燃機関１００のクランクシャフトの回転角とに基づいて、燃料噴射弁１７０の開弁タイミング及び閉弁タイミングの少なくとも一方を検出することができる。このとき、振動をサンプリングするために使用するウィンドウのウィンドウ幅ＷＩＤＴＨは、燃料噴射時間ＴＩＯＵＴに応じて動的に変更されるため、振動をサンプリングするためのウィンドウの数を減らすことができ、例えば、電子制御装置３９０の処理負荷を軽減することができる。なお、他の作用及び効果については、先の実施形態と同様であるので、その詳細な説明を省略する。必要があれば、先の実施形態の説明を参照されたい。
【００６７】
図１０は、電子制御装置３９０が起動されたことを契機として、電子制御装置３９０のＣＰＵ３９０Ｂが所定時間ごとに繰り返し実行する、燃料噴射弁１７０の開閉タイミング検出処理の他の例を示している。図１０に示す開閉タイミング検出処理においては、先の実施形態と同様に、燃料噴射弁１７０の開閉タイミングの検出に加え、燃料噴射弁１７０の診断も行っている。なお、先の実施形態と同様な処理については、重複説明を排除するために、その説明を簡単にする。必要があれば、先の実施形態の説明を参照されたい。
【００６８】
ステップ２１では、ＣＰＵ３９０Ｂが、負荷の一例として挙げることができるエアフローメータ１５０から出力された吸気流量、及びクランク角センサ３５０から出力された回転数信号を読み込み、別処理により算出した点火時期の遅角状態を考慮して、燃料噴射開始タイミングＩＮＪ＿ＳＴを算出する。なお、ステップ２１の処理により、噴射開始タイミング算出部５００が実装される。
【００６９】
ステップ２２では、ＣＰＵ３９０Ｂが、エアフローメータ１５０から出力された吸気流量信号及び吸気温信号、クランク角センサ３５０から出力された回転数信号、並びに水温センサ３７０から出力された水温信号を読み込み、別処理により算出した燃料噴射量及び燃料圧力を考慮して、燃料噴射量に相当する燃料を燃料噴射弁１７０から噴射するのに要する燃料噴射時間ＴＩＯＵＴを算出する。なお、ステップ２２の処理により、噴射時間算出部５１０が実装される。
【００７０】
ステップ２３では、ＣＰＵ３９０Ｂが、燃料噴射時間ＴＩＯＵＴに基づいて、燃料噴射弁１７０の開閉タイミングを検出するために必要なウィンドウ幅ＷＩＤＴＨを算出する。なお、ステップ２３の処理により、ウィンドウ幅算出部５２０が実装される。
【００７１】
ステップ２４では、ＣＰＵ３９０Ｂが、クランク角センサ３５０から出力されたクランク角を読み込み、そのクランク角が燃料噴射開始タイミングＩＮＪ＿ＳＴ又はこれより進角側の所定タイミングになったとき、ウィンドウ１を使用した振動のサンプリングを開始し、その後、所定角度ごとにウィンドウ２〜Ｎを使用した振動のサンプリングを順次開始する。そして、ＣＰＵ３９０Ｂは、各ウィンドウ１〜Ｎにおいて、振動センサ３８０から出力された振動ＶＩＢを読み込んでサンプリングする。なお、ステップ２４の処理により、サンプリング実行部５３０が実装される。
【００７２】
ステップ２５では、ＣＰＵ３９０Ｂが、変換回路３９０Ｋの機能を利用して、各ウィンドウ１〜Ｎを使用してサンプリングされた振動ＶＩＢを周波数ＦＲＥＱに夫々変換する。なお、ステップ２５の処理により、周波数変換部５４０が実装される。
【００７３】
ステップ２６では、ＣＰＵ３９０Ｂが、各ウィンドウ１〜Ｎに関連付けられた周波数ＦＲＥＱを順次参照し、特定のウィンドウを使用した振動のサンプリング結果に燃料噴射弁１７０が開弁及び閉弁することにより発生する第１の所定周波数及び第２の所定周波数の振動が共に現れたとき、そのウィンドウを使用したサンプリングの開始タイミングを開弁タイミングＩＮＪ＿ＯＰとして検出する。なお、ステップ２６の処理により、開弁タイミング検出部５５０が実装される。
【００７４】
ステップ２７では、ＣＰＵ３９０Ｂが、各ウィンドウ１〜Ｎに関連付けられた周波数ＦＲＥＱを順次参照し、特定のウィンドウを使用した振動のサンプリング結果に燃料噴射弁１７０が開弁及び閉弁することにより発生する第１の所定周波数及び第２の所定周波数の振動が共に現れたとき、そのウィンドウを使用したサンプリングの終了タイミングを閉弁タイミングＩＮＪ＿ＣＬとして検出する。なお、ステップ２７の処理により、閉弁タイミング検出部５６０が実装される。
【００７５】
ステップ２８では、ＣＰＵ３９０Ｂが、燃料噴射弁１７０の閉弁タイミングＩＮＪ＿ＣＬから開弁タイミングＩＮＪ＿ＯＰを減算することで、燃料噴射弁１７０が実際に燃料を噴射していた実燃料噴射時間を算出する。ここで、ＣＰＵ３９０Ｂは、ステップ２２で算出した燃料噴射時間ＴＩＯＵＴを実燃料噴射時間とすることもできる。なお、ステップ２８の処理により、実噴射時間算出部５７０が実装される。
【００７６】
ステップ２９では、ＣＰＵ３９０Ｂが、ステップ２８で算出した実燃料噴射時間とステップ２２で算出した燃料噴射時間ＴＩＯＵＴ（指示燃料噴射時間）とを比較して、実燃料噴射時間が異常であるか否かを判定する。具体的には、ＣＰＵ３９０Ｂは、実燃料噴射時間が燃料噴射時間ＴＩＯＵＴより所定時間以上逸脱しているか否かを介して、実燃料噴射時間が異常であるか否かを判定する。そして、ＣＰＵ３９０Ｂは、実燃料噴射時間が異常であると判定したならば（Ｙｅｓ）、処理をステップ３１へと進める。一方、ＣＰＵ３９０Ｂは、実燃料噴射時間が異常でない、即ち、実燃料噴射時間が正常であると判定したならば（Ｎｏ）、処理をステップ３０へと進める。
【００７７】
ステップ３０では、ＣＰＵ３９０Ｂが、ステップ２６で検出した開弁タイミングＩＮＪ＿ＯＰにより特定される燃料噴射開始タイミングとステップ２１で算出した燃料噴射開始タイミングＩＮＪ＿ＳＴ（指示噴射開始タイミング）とを比較して、燃料噴射開始タイミングが異常であるか否かを判定する。具体的には、ＣＰＵ３９０Ｂは、開弁タイミングＩＮＪ＿ＯＰにより特定される燃料噴射開始タイミングが燃料噴射開始タイミングＩＮＪ＿ＳＴより所定角度以上逸脱しているか否かを介して、燃料噴射開始タイミングが異常であるか否かを判定する。そして、ＣＰＵ３９０Ｂは、燃料噴射開始タイミングが異常であると判定したならば（Ｙｅｓ）、処理をステップ３１へと進める。一方、ＣＰＵ３９０Ｂは、燃料噴射開始タイミングが異常でない、即ち、燃料噴射開始タイミングが正常であると判定したならば（Ｎｏ）、処理をステップ３２へと進める。
【００７８】
ステップ３１では、ＣＰＵ３９０Ｂが、燃料噴射弁１７０が異常であると判定する。燃料噴射弁１７０が異常であると判定された場合、ＣＰＵ３９０Ｂは、これを運転者などに報知すべくＭＩＬを点灯したり、故障情報などをＲＯＭ３９０Ｃに格納したりすることができる。
ステップ３２では、ＣＰＵ３９０Ｂが、燃料噴射弁１７０が正常であると判定する。
【００７９】
ここで、燃料噴射弁１７０の開閉タイミングの検出方法について、その理解を容易ならしめることを目的として、図１１に示すような具体的な一例を挙げて説明する。この一例においては、燃料噴射弁１７０は上死点から７０度で開弁して９０度で閉弁するものとする。また、２０度の可変幅を有するウィンドウが５個あり（ウィンドウ１〜５）、各ウィンドウは、上死点から６０度でウィンドウ１を使用したサンプリングを開始し、その後、１０度ごとにウィンドウ２〜５を使用したサンプリングを順次開始するものとする。
【００８０】
ウィンドウ１は、上死点から６０度〜８０度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から７０度で開弁して９０度で閉弁するため、ウィンドウ１を使用した振動のサンプリング結果には、図１２に示すように、燃料噴射弁１７０の開弁により発生する第１の所定周波数の振動のみが現れる。ウィンドウ２は、上死点から７０度〜９０度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から７０度で開弁して９０度で閉弁するため、ウィンドウ２を使用した振動のサンプリング結果には、図１２に示すように、燃料噴射弁１７０の開弁及び閉弁により発生する第１の所定周波数の振動及び第２の所定周波数の振動が共に現れる。
【００８１】
従って、開弁及び閉弁による振動が共に現れたウィンドウ２を使用したサンプリングにおいて、そのサンプリング開始タイミング（７０度）が燃料噴射弁１７０の開弁タイミングＩＮＪ＿ＯＰ、そのサンプリング終了タイミング（９０度）が燃料噴射弁１７０の閉弁タイミングＩＮＪ＿ＣＬであると見做すことができる。
【００８２】
ウィンドウ３は、上死点から８０度〜１００度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から７０度で開弁して９０度で閉弁するため、ウィンドウ３を使用した振動のサンプリング結果には、図１２に示すように、燃料噴射弁１７０の閉弁により発生する第２の所定周波数の振動のみが現れる。ウィンドウ４は、上死点から９０度〜１１０度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から７０度で開弁して９０度で閉弁するため、ウィンドウ４を使用した振動のサンプリング結果には、図１２に示すように、ウィンドウ３と同様に、燃料噴射弁１７０の閉弁により発生する第２の所定周波数の振動のみが現れる。ウィンドウ５は、上死点から１００度〜１２０度の範囲で振動をサンプリングする。燃料噴射弁１７０は上死点から７０度で開弁して９０度で閉弁するため、ウィンドウ５を使用した振動のサンプリング結果には、図１２に示すように、燃料噴射弁１７０の開弁及び閉弁により発生する第１の所定周波数の振動及び第２の所定周波数の振動が共に現れない。
【００８３】
要するに、少なくとも燃料噴射量及び燃料圧力に応じたウィンドウ幅ＷＩＤＴＨを有するウィンドウを使用し、そのウィンドウによる振動のサンプリング結果に燃料噴射弁１７０の開弁及び閉弁により発生する２つの振動が現れているか否かに応じて、燃料噴射弁１７０の開閉タイミングを検出することができる。
【００８４】
なお、当業者であれば、様々な上記実施形態の技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。
【符号の説明】
【００８５】
１００  内燃機関
１７０  燃料噴射弁
３５０  クランク角センサ
３８０  振動センサ
３９０  電子制御装置
【図１】
2020143651.tif 000003
【図２】
2020143651.tif 000004
【図３】
2020143651.tif 000005
【図４】
2020143651.tif 000006
【図５】
2020143651.tif 000007
【図６】
2020143651.tif 000008
【図７】
2020143651.tif 000009
【図８】
2020143651.tif 000010
【図９】
2020143651.tif 000011
【図１０】
2020143651.tif 000012
【図１１】
2020143651.tif 000013
【図１２】
2020143651.tif 000014