(57)【要約】【課題】自己の演算機能の異常の有無を好適に診断することのできるエンジン制御装置を提供する。【解決手段】ステップＳ３３０における、異なる時期のクランク角センサーの検出結果からそれぞれ演算された制御用回転速度ＮＥ１および監視用回転速度ＮＥ２を用いて個別に算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果に基づき、ステップＳ３５０において異常の有無の判定が行われる。ただし、演算に使用するクランク角センサーの検出時期の違いにより、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の一方の値の更新タイミングに対して他方の値の更新タイミングに遅れが生じる期間中にあるときには（Ｓ３０５：ＹＥＳ）、それら両回転速度の値が一致しない限り（Ｓ３１０：ＮＯ）、それらの値から算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果を用いずに、ステップＳ３５０での判定が行われる。【選択図】図５
2016017504.tif 000002
【特許請求の範囲】
【請求項１】
実際の燃料噴射量制御に使用する要求噴射量である制御用要求噴射量と、監視のために使用する監視用要求噴射量とを、センサーの検出結果から演算されたエンジン回転速度に基づいてそれぞれ個別に算出するとともに、それら制御用要求噴射量および監視用要求噴射量の比較結果に基づいて異常の有無を判定するエンジン制御装置において、
前記制御用要求噴射量の算出に使用するエンジン回転速度である制御用回転速度と、前記監視用要求噴射量の算出に使用するエンジン回転速度である監視用回転速度とを、異なる時期の前記センサーの検出結果からそれぞれ個別に演算するとともに、
前記演算に用いる前記センサーの検出時期の違いにより、前記制御用回転速度および前記監視用回転速度の一方の値の更新に対して、他方の値の更新に遅れが生じる期間中に算出された前記制御用要求噴射量および前記監視用要求噴射量の比較結果を用いずに前記異常の有無を判定する、
ことを特徴とするエンジン制御装置。
【請求項２】
前記制御用回転速度および前記監視用回転速度は、エンジンの点火周期毎にその点火周期内の異なる時期のクランク角センサーの検出結果からそれぞれ演算される、
請求項１に記載のエンジン制御装置。
【請求項３】
前記遅れが生じる期間中においても、前記制御用回転速度および前記監視用回転速度が一致しているときには、それらから演算された前記制御用要求噴射量および前記監視用要求噴射量の比較結果を前記異常の有無の判定に用いる、
ことを特徴とする請求項１または２に記載のエンジン制御装置。
【請求項４】
前記制御用要求噴射量の算出は、エンジンのクランク角が規定の角度となったときに実施される定角割り込み処理として行われ、前記監視用要求噴射量の算出は、規定の時間が経過する毎に実施される定時割り込み処理として行われる、
請求項１〜３のいずれか１項に記載のエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御装置に係り、詳しくはその演算機能の監視のための制御構造の改良に関する。
【背景技術】
【０００２】
従来、上記監視を行うエンジン制御装置として、特許文献１に記載の装置が知られている。同文献に記載のエンジン制御装置は、インジェクター駆動回路が実際に行ったインジェクターの通電時間と、インジェクター駆動回路に指令した通電時間とを比較することで、インジェクター駆動回路の異常の有無を監視している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１９０２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
インジェクターからの燃料噴射量が不適切となる異常としては、インジェクター駆動回路の故障以外にも、エンジン制御装置自身の演算機能の異常がある。
本発明は、こうした実情に鑑みてなされたものであり、その解決しようとする課題は、自己の演算機能の異常の有無を好適に監視することのできるエンジン制御装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するエンジン制御装置は、実際の燃料噴射量制御に使用する要求噴射量である制御用要求噴射量と、監視のために使用する監視用要求噴射量とを、センサーの検出結果から演算されたエンジン回転速度に基づいてそれぞれ個別に算出するとともに、それら制御用要求噴射量および監視用要求噴射量の比較結果に基づいて異常の有無を判定する。
【０００６】
さらにエンジン制御装置は、制御用要求噴射量の算出に使用するエンジン回転速度である制御用回転速度と、監視用要求噴射量の算出に使用するエンジン回転速度である監視用回転速度とを、異なる時期のセンサーの検出結果からそれぞれ個別に演算する。そして、そうした演算に用いるセンサーの検出時期の違いにより、制御用回転速度および監視用回転速度の一方の値の更新に対して他方の値の更新に遅れが生じる期間中に算出された制御用要求噴射量および監視用要求噴射量の比較結果を用いずに前記異常の有無を判定する。
【０００７】
エンジン制御装置の演算機能に異常が発生し、要求噴射量として異常な値が算出されることがある。このときにも、異なる時期のセンサーの検出結果からそれぞれ演算されたエンジン回転速度を用いて個別に行われる制御用、監視用の各要求噴射量の算出に、そうした異常の影響がまったく同じように表れる可能性は低い。そのため、上記異常の発生時には、制御用要求噴射量および監視用要求噴射量の値に差が生じるようになる。よって、それらの比較結果に基づくことで、そうした異常の有無を判定することができる。
【０００８】
ただし、演算に用いるセンサーの検出時期を異ならせれば、制御用回転速度および監視用回転速度の値の更新タイミングに時間差が生じる。そのため、制御用回転速度および監視用回転速度のうちの一方は、最新の値に更新されているが、他方の値は未だ最新の値に更新されていない状態となる期間が存在するようになる。エンジン回転速度が変化していれば、そうした期間における制御用回転速度および監視用回転速度の値は自ずと異なるものとなり、それらの値を用いてそれぞれ算出した制御用要求噴射量および監視用要求噴射量の値にも自ずと差が生じてしまう。そのため、こうした場合には、何ら異常がなくても、異常有りと誤判定される虞がある。
【０００９】
その点、上記エンジン制御装置では、制御用回転速度および監視用回転速度の値の更新タイミングのラグが生じる期間中に算出された制御用要求噴射量および監視用要求噴射量の比較結果は、異常の有無の判定に用いられないため、上記のような誤判定は抑制されるようになる。したがって、上記エンジン制御装置によれば、自己の演算機能の異常を好適に監視することができる。
【００１０】
なお、制御用回転速度や監視用回転速度の演算にそれぞれ使用するセンサーの検出結果の取得時期をクランク角で設定した場合、上記期間はクランク角に基づき確認することができる。
【００１１】
ちなみに、制御用要求噴射量の値は一般に、エンジンの点火周期毎に更新することが多い。そのため、制御用回転速度および監視用回転速度も、そうした制御用要求噴射量の値の更新周期に合わせ、エンジンの点火周期毎にその点火周期内の異なる時期のクランク角センサーの検出結果からそれぞれ演算するようにするとよい。
【００１２】
ところで、上記のような更新の遅れが生じる期間中にも、実際のエンジン回転速度が変化していなければ、そうした更新の遅れが生じる期間中に演算された制御用要求噴射量および監視用要求噴射量の比較結果を用いても、上記のような誤判定を招くことはない。そこで、上記のような更新タイミングのラグが生じる期間中においても、制御用回転速度および監視用回転速度が一致している場合には、それらから演算された制御用要求噴射量および監視用要求噴射量の比較結果を異常の有無の判定に用いるようにしてもよい。
【００１３】
なお、制御用要求噴射量の算出を、エンジンのクランク角が規定の角度となったときに実施される定角割り込み処理として行い、監視用要求噴射量の算出を、規定の時間が経過する毎に実施される定時割り込み処理として行うようにすることが考えられる。そうした場合、それらの算出のタイミングを同期できなくなるため、センサー検出結果の取得時期のずれによる誤検出が生じ易くなる。そうした場合にも、上記エンジン制御装置では、そうした取得時期のずれによる誤検出を好適に抑制できるため、好適な異常の有無の監視が可能である。
【図面の簡単な説明】
【００１４】
【図１】エンジン制御装置の一実施形態の構成を、その燃料噴射量制御および同制御の監視のための制御構造と共に示す略図。
【図２】同実施形態のエンジン制御装置における、制御用回転速度および監視用回転速度の演算のための時間計測区間の設定態様を示す図。
【図３】同実施形態のエンジン制御装置で実行される、制御用要求噴射量算出ルーチンの処理手順を示すフローチャート。
【図４】同実施形態のエンジン制御装置で実行される、監視用回転速度演算ルーチンの処理手順を示すフローチャート。
【図５】同実施形態のエンジン制御装置で実行される、演算機能異常判定ルーチンの処理手順を示すフローチャート。
【図６】同実施形態のエンジン制御装置における、制御用、監視用の各回転速度および各要求噴射量の推移を示すタイムチャート。
【発明を実施するための形態】
【００１５】
以下、エンジン制御装置の一実施形態を、図１〜図６を参照して詳細に説明する。
図１に示すように、本実施形態のエンジン制御装置は、コントロールユニット１０とインジェクター駆動回路１１とを備える。
【００１６】
コントロールユニット１０は、エンジン制御のための各種演算処理を行う演算処理装置であるＣＰＵ、エンジン制御用のプログラムやデータが記憶された読込専用の記憶媒体であるＲＯＭ、ＣＰＵの演算結果やセンサーの検出結果等を一時的に記憶する、書き換え可能な記憶媒体であるＲＡＭを備える。また、コントロールユニット１０には、タイマーが内蔵され、現在の時刻の取得が可能とされている。
【００１７】
コントロールユニット１０には、エンジン出力軸であるクランクシャフトの回転位相（クランク角）を検出するためのクランク角センサー１２や、アクセルペダルの踏み込み量（アクセル操作量ＡＣＣＰ）を検出するためのアクセルペダルセンサー１３などのセンサーの検出信号を受信するための信号線が接続されている。また、インジェクター駆動回路１１には、エンジンの各インジェクター１４に駆動電流を通電するための電線が接続されている。
【００１８】
以上のように構成された本実施形態のエンジン制御装置は、インジェクター１４からの燃料噴射量の制御を行う。燃料噴射量制御は、コントロールユニット１０およびインジェクター駆動回路１１により実施される、下記の各処理を通じて行われる。
【００１９】
コントロールユニット１０は、クランク角センサー１２の検出信号から現状のエンジン回転速度を演算するための制御用回転速度演算処理Ｐ１を行う。なお、以下では、この制御用回転速度演算処理Ｐ１において演算されるエンジン回転速度を、制御用回転速度ＮＥ１と記載する。
【００２０】
また、コントロールユニット１０は、制御用回転速度演算処理Ｐ１により演算された制御用回転速度ＮＥ１や、アクセルペダルセンサー１３により検出されたアクセル操作量ＡＣＣＰなどに基づいて、要求噴射量を算出するための制御用要求噴射量算出処理Ｐ２を行う。この制御用要求噴射量算出処理Ｐ２において算出される要求噴射量は、実際の燃料噴射量制御に使用される燃料噴射量の要求値であり、以下の説明では、制御用要求噴射量Ｑ１と記載する。
【００２１】
さらに、コントロールユニット１０は、制御用要求噴射量算出処理Ｐ２において算出された制御用要求噴射量Ｑ１分の燃料噴射に必要なインジェクター１４の駆動電流の通電時間を算出するための通電時間算出処理Ｐ３を行う。また、コントロールユニット１０は、この通電時間算出処理Ｐ３において算出された通電時間に応じたインジェクター駆動パルスを生成するための制御用駆動パルス生成処理Ｐ４を行う。インジェクター駆動パルスは、燃料噴射の開始時に立ち上がり、終了時に立ち下がるパルス信号となっている。この制御用駆動パルス生成処理Ｐ４において生成されたインジェクター駆動パルスは、インジェクター駆動回路１１に出力される。
【００２２】
一方、インジェクター駆動回路１１は、コントロールユニット１０から入力されたインジェクター駆動パルスに応じてインジェクター１４に駆動電流を通電するための駆動電流通電処理Ｐ５を行う。これにより、コントロールユニット１０が算出した制御用要求噴射量Ｑ１分の燃料を噴射するために必要な駆動電流がインジェクター１４に通電される。
【００２３】
ちなみに、コントロールユニット１０は、上記制御用回転速度演算処理Ｐ１、制御用要求噴射量算出処理Ｐ２、通電時間算出処理Ｐ３および制御用駆動パルス生成処理Ｐ４を、エンジンのクランク角が規定の角度となったときに行われる定角割り込み処理としてそれぞれ実行する。
【００２４】
ところで、本実施形態のエンジン制御装置は、上記各処理を通じた燃料噴射制御が正常に行われているか否かを監視してもいる。本実施形態では、そうした監視として、主にコントロールユニット１０の演算機能の異常の有無を監視する演算機能監視と、主にコントロールユニット１０のインジェクター駆動パルスの生成機能やインジェクター駆動回路１１のインジェクター駆動電流の通電機能の異常の有無を監視する駆動機能監視とが行われる。
【００２５】
コントロールユニット１０は、演算機能監視に係る処理として、監視用回転速度演算処理Ｐ６、監視用要求噴射量算出処理Ｐ７および演算機能異常判定処理Ｐ８を行う。
監視用回転速度演算処理Ｐ６において、コントロールユニット１０は、クランク角センサー１２の検出信号から現状のエンジン回転速度を演算する。以下の説明では、この監視用回転速度演算処理Ｐ６において演算されるエンジン回転速度を、監視用回転速度ＮＥ２と記載する。
【００２６】
また、こうした監視用回転速度演算処理Ｐ６では、上記制御用回転速度演算処理Ｐ１とは異なる態様でエンジン回転速度が演算される。それら相違については、後に詳しく説明する。なお、コントロールユニット１０は、この監視用回転速度演算処理Ｐ６を、定角割り込み処理として実行する。
【００２７】
また、監視用要求噴射量算出処理Ｐ７において、コントロールユニット１０は、監視用回転速度演算処理Ｐ６により演算された監視用回転速度ＮＥ２、およびアクセルペダルセンサー１３により検出されたアクセル操作量ＡＣＣＰに基づいて、監視に使用するための要求噴射量を算出する。以下の説明では、この監視用要求噴射量算出処理Ｐ７において算出される要求噴射量を、監視用要求噴射量Ｑ２と記載する。なお、コントロールユニット１０は、この監視用要求噴射量算出処理Ｐ７を、規定の時間が経過する毎に実施される定時割り込み処理として実行する。
【００２８】
ちなみに、コントロールユニット１０は、監視用要求噴射量算出処理Ｐ７が行われる毎に、算出した監視用要求噴射量Ｑ２の値を示す信号を、外部の監視装置に出力している。監視装置は、この信号が途絶えることなく定期的に入力されているか否かにより、コントロールユニット１０が正常に動作しているか否かを監視する。
【００２９】
さらに、コントロールユニット１０は、演算機能監視に係る処理として、監視用要求噴射量算出処理Ｐ７により算出された監視用要求噴射量Ｑ２と、上述の制御用要求噴射量算出処理Ｐ２により算出された制御用要求噴射量Ｑ１との比較の結果から、自己の演算機能の異常の有無を判定するための演算機能異常判定処理Ｐ８を行う。コントロールユニット１０は、この演算機能異常判定処理Ｐ８を、定時割り込み処理として実行する。
【００３０】
一方、インジェクター駆動回路１１は、駆動機能監視にかかる処理として、駆動電流の通電期間に応じた監視用駆動パルスを生成するための監視用駆動パルス生成処理Ｐ９を行う。監視用駆動パルスは、インジェクター１４の駆動電流の通電開始時に立ち上がり、その通電終了時に立ち下がるパルス信号として生成される。この監視用駆動パルス生成処理Ｐ９において生成された監視用駆動パルスは、コントロールユニット１０に出力される。
【００３１】
また、コントロールユニット１０は、駆動機能監視にかかる処理として、インジェクター駆動回路１１から入力された監視用駆動パルスからインジェクター１４が実際に噴射した燃料の量の推定値である実噴射量Ｑ３を算出する噴射量換算処理Ｐ１０を行う。実噴射量Ｑ３は、監視用駆動パルスから把握されるインジェクター１４の燃料噴射時間、インジェクター１４に供給される燃料の圧力を考慮して算出される。コントロールユニット１０は、この噴射量換算処理Ｐ１０を、定角割り込み処理として実行する。
【００３２】
さらに、コントロールユニット１０は、駆動機能監視にかかる処理として、噴射量換算処理Ｐ１０により算出された実噴射量Ｑ３と、上述の制御用要求噴射量算出処理Ｐ２により算出された制御用要求噴射量Ｑ１との比較の結果から、駆動機能の異常の有無を判定するための駆動機能異常判定処理Ｐ１１を行う。コントロールユニット１０は、この駆動機能異常判定処理Ｐ１１を定角割り込み処理として実行する。
【００３３】
次に、上記制御用回転速度演算処理Ｐ１および監視用回転速度演算処理Ｐ６におけるエンジン回転速度の演算ロジックの相違について説明する。
図２には、クランク角センサー１２の検出信号を波形整形して得られたクランク角信号が示される。同図に示されるように、クランク角信号は、一定のクランク角毎に立ち上がりと立ち下がりとを繰り返すパルス信号とされている。
【００３４】
本実施形態のエンジン制御装置では、エンジンの点火周期を一周期として、各気筒の圧縮上死点から順に、クランク角信号のパルスの立ち上がり位置に番号（クランク番号）を付している。なお、同図に例示するクランク角信号では、エンジンの点火周期毎にＮ箇のパルスが存在している。そして、各気筒の圧縮上死点に対応するパルスの立ち上がり位置のクランク番号を「０」とし、以降の各パルスの立ち上がり位置にそれぞれ、「１」「２」「３」……「Ｎ−２」「Ｎ−１」といったようにクランク番号が付されている。
【００３５】
一方、エンジンの回転速度は、点火後の燃焼に応じた加速と、その収束に応じた減速とにより、点火周期毎に変動を繰り返しながら推移している。制御用回転速度ＮＥ１および監視用回転速度ＮＥ２は、この変動のピークを迎える時期を概ね中央に置いた一定のクランク角度幅の区間として設定された計測区間の開始から終了までの時間の計測結果から演算して求められている。
【００３６】
ただし、制御用回転速度ＮＥ１と監視用回転速度ＮＥ２とでは、それらの演算のための計測区間のクランク角度幅が異ならされている。同図の例では、制御用回転速度ＮＥ１の演算のための時間の計測区間（以下、ＮＥ１演算用計測区間ＳＥＣ１と記載する）は、クランク角信号における、クランク番号「Ｎ−４」のパルスの立ち上がり位置をその開始位置Ｓ１とし、クランク番号「１」のパルスの立ち上がり位置をその終了位置Ｅ１とするように設定されている。また、監視用回転速度ＮＥ２の演算のための計測区間（以下、ＮＥ２演算用計測区間ＳＥＣ２と記載する）は、クランク角信号における、クランク番号「Ｎ−５」のパルスの立ち上がり位置をその開始位置Ｓ２とし、クランク番号「２」のパルスの立ち上がり位置をその終了位置Ｅ２とするように設定されている。このように、本実施形態のエンジン制御装置では、監視用回転速度ＮＥ２は、制御用回転速度ＮＥ１の演算に用いる時期とは異なる時期のクランク角センサー１２の検出結果を用いて、同制御用回転速度ＮＥ１とは別途に演算されている。
【００３７】
続いて、本実施形態のエンジン制御装置における制御用要求噴射量Ｑ１の算出に係る処理の詳細を説明する。制御用要求噴射量Ｑ１の算出は、定角割り込み処理としてコントロールユニット１０により実行される制御用要求噴射量算出ルーチンの処理を通じて行われる。
【００３８】
図３に、制御用要求噴射量算出ルーチンのフローチャートを示す。コントロールユニット１０は、同ルーチンの処理を、クランク角信号におけるパルスの立ち上がり位置毎に実行する。
【００３９】
本ルーチンのステップＳ１００では、クランク角番号に基づいて、現在のクランク角信号のパルスの立ち上がり位置が、ＮＥ１演算用計測区間ＳＥＣ１の開始位置Ｓ１であるか否かが判定される。そして、現在のパルスの立ち上がり位置がＮＥ１演算用計測区間ＳＥＣ１の開始位置Ｓ１であれば（Ｓ１００：ＹＥＳ）、ステップＳ１１０において、上記ＲＡＭに記憶された同計測区間ＳＥＣ１の開始時刻ＴＳ１の値が、上記タイマーから取得した現在の時刻に更新される。なお、以下では、ＲＡＭに記憶された値のことを、ＲＡＭ値と記載する。
【００４０】
一方、本ルーチンのステップＳ１２０では、現在のパルスの立ち上がり位置が、ＮＥ１演算用計測区間ＳＥＣ１の終了位置Ｅ１であるか否かが判定される。そして、同計測区間ＳＥＣ１の終了位置Ｅ１であれば（Ｓ１２０：ＹＥＳ）、ステップＳ１３０およびステップＳ１４０の処理を行った後、ステップＳ１５０に処理が進められ、そうでなければ（Ｓ１２０：ＮＯ）、そのままステップＳ１５０に処理が進められる。
【００４１】
すなわち、ステップＳ１３０では、ＮＥ１演算用計測区間ＳＥＣ１の終了時刻ＴＥ１のＲＡＭ値が、上記タイマーから取得した現在の時刻に更新される。また、続くステップＳ１４０では、開始時刻ＴＳ１および終了時刻ＴＥ１のＲＡＭ値から、ＮＥ１演算用計測区間ＳＥＣ１の開始から終了までに要した時間（ＮＥ１演算用時間計測値Ｔ１）が求められて、ＲＡＭに記憶される。
【００４２】
一方、ステップＳ１５０に処理が進められると、そのステップＳ１５０において、ＮＥ１演算用時間計測値Ｔ１のＲＡＭ値から制御用回転速度ＮＥ１が算出されて、ＲＡＭに記憶される。制御用回転速度ＮＥ１の算出は、規定の定数αをＮＥ１演算用時間計測値Ｔ１で除算することで行われる。こうしたステップＳ１５０の処理は、上記制御用回転速度演算処理Ｐ１に対応している。
【００４３】
さらに、次のステップＳ１６０では、制御用回転速度ＮＥ１のＲＡＭ値、およびアクセルペダルセンサー１３により検出されたアクセル操作量ＡＣＣＰの現在値から制御用要求噴射量Ｑ１が算出されて、ＲＡＭに記憶される。こうしたステップＳ１６０の処理は、上記制御用要求噴射量算出処理Ｐ２に対応している。制御用要求噴射量Ｑ１の算出は、上記ＲＯＭに記憶された、エンジン回転速度およびアクセル操作量と要求噴射量との対応関係を表した演算マップを、制御用回転速度ＮＥ１のＲＡＭ値およびアクセル操作量ＡＣＣＰの現在値を引数として参照することで行われる。
【００４４】
次に、こうした制御用要求噴射量Ｑ１の算出に係るコントロールユニット１０の演算機能の異常の有無を監視するための演算機能監視に係る処理の詳細を説明する。演算機能監視は、定角割り込み処理としてコントロールユニット１０により実行される監視用回転速度演算ルーチン、および定時割り込み処理としてコントロールユニット１０により実行される演算機能監視ルーチンを通じて行われる。
【００４５】
図４に、監視用回転速度演算ルーチンのフローチャートを示す。コントロールユニット１０は、同ルーチンの処理を、上述の制御用要求噴射量算出ルーチンと同様に、クランク角信号の立ち上がり毎に実行する。
【００４６】
本ルーチンのステップＳ２００では、クランク角番号に基づいて、クランク角信号における現在のパルスの立ち上がり位置が、ＮＥ２演算用計測区間ＳＥＣ２の開始位置Ｓ２であるか否かが判定される。そして、ＮＥ２演算用計測区間ＳＥＣ２の開始位置Ｓ２であれば（Ｓ２００：ＹＥＳ）、ステップＳ２１０において、同計測区間ＳＥＣ２の開始時刻ＴＳ２のＲＡＭ値が、上記タイマーから取得した現在の時刻に更新される。
【００４７】
一方、本ルーチンのステップＳ２２０では、現在のクランク角信号の立ち上がり位置が、ＮＥ２演算用計測区間ＳＥＣ２の終了位置Ｅ２であるか否かが判定される。そして、現在のクランク角信号の立ち上がり位置が同計測区間ＳＥＣ２の終了位置Ｅ２であれば（Ｓ２２０：ＹＥＳ）、ステップＳ２３０およびステップＳ２４０の処理が行われた後、ステップＳ２５０に処理が進められ、そうでなければ（Ｓ２２０：ＮＯ）、そのままステップＳ２５０に処理が進められる。
【００４８】
まず、ステップＳ２３０では、同計測区間ＳＥＣ２の終了時刻ＴＥ２のＲＡＭ値が、上記タイマーから取得した現在の時刻に更新される。また、続くステップＳ２４０では、開始時刻ＴＳ２および終了時刻ＴＥ２のＲＡＭ値から、ＮＥ２演算用計測区間ＳＥＣ２の開始から終了までに要した時間（ＮＥ２演算用時間計測値Ｔ２）が求められて、ＲＡＭに記憶される。
【００４９】
一方、ステップＳ２５０に処理が進められると、そのステップＳ２５０において、ＲＡＭに記憶されたＮＥ２演算用時間計測値Ｔ２から監視用回転速度ＮＥ２が演算されて、ＲＡＭに記憶される。監視用回転速度ＮＥ２は、規定の定数βをＮＥ２演算用時間計測値Ｔ２で除算することで演算される。こうしたステップＳ２５０の処理は、上記監視用回転速度演算処理Ｐ６に対応している。
【００５０】
図５に、演算機能異常判定ルーチンのフローチャートを示す。コントロールユニット１０は、規定の時間毎に同ルーチンの処理を実行する。
本ルーチンが開始されると、まずステップＳ３００において、監視用回転速度ＮＥ２のＲＡＭ値、およびアクセル操作量ＡＣＣＰの現在値から監視用要求噴射量Ｑ２が算出されて、ＲＡＭに記憶される。監視用要求噴射量Ｑ２の算出は、制御用要求噴射量Ｑ１の算出に使用したものと同じ演算マップを用い、監視用回転速度ＮＥ２のＲＡＭ値およびアクセル操作量ＡＣＣＰの現在値を引数として同演算マップを参照することで行われる。こうしたステップＳ３００の処理は、上記監視用要求噴射量算出処理Ｐ７に対応している。
【００５１】
ステップＳ３０５では、クランク番号に基づき、クランク角信号における現在のパルスの立ち上がり位置が、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２のＲＡＭ値の更新時期のラグの区間に、すなわち終了位置Ｅ１から終了位置Ｅ２までの区間にあるか否かが判定される。すなわち、ここでは、演算に用いるクランク角センサー１２の検出時期の違いにより、制御用回転速度ＮＥ１の値の更新に対して、監視用回転速度ＮＥ２の値の更新に遅れが生じる期間中であるか否かが判定される。
【００５２】
ここで、現在のパルスの立ち上がり位置が上記ラグの区間になければ（Ｓ３０５：ＮＯ）、ステップＳ３２０に処理が進められ、そのステップＳ３２０において、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の差を噴射量誤差ΔＱとして求められる。そして、続くステップＳ３３０において、噴射量誤差ΔＱのＲＡＭ値が規定の判定値γを超えているか否かが判定される。噴射量誤差ΔＱの値が大きければ、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の差が大きいことになる。すなわち、ここでは、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較が行われている。
【００５３】
ここで、噴射量誤差ΔＱの値が規定の判定値γ以下であれば（Ｓ３３０：ＮＯ）、すなわち制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値の差が小さければ、ステップＳ３４０において、それらの差が大きい状態の継続時間を示すカウンターＣの値が「０」にクリアされる。一方、噴射量誤差ΔＱの値が規定の判定値γを超えていれば（Ｓ３４０：ＮＯ）、すなわち制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値の差が大きければ、ステップＳ３５０において、上記カウンターＣの値がインクリメントされる。
【００５４】
続いて、ステップＳ３６０において、カウンターＣの値が規定の判定値ζ以上であるか否かが判定される。ここで、カウンターＣの値が判定値ζ未満であれば（Ｓ３６０：ＮＯ）、そのまま今回の本ルーチンの処理が終了される。一方、カウンターＣの値が判定値ζ以上であれば（Ｓ３６０：ＹＥＳ）、すなわち制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値の差が大きい状態が一定時間以上継続していれば、ステップＳ３７０において、コントロールユニット１０の演算機能に異常有りと判定された後、今回の本ルーチンの処理が終了される。
【００５５】
これに対して、上記ステップＳ３０５での判定において、現在のパルスの立ち上がり位置が上記ラグの区間にあれば（Ｓ３０５：ＹＥＳ）、ステップＳ３１０に処理が進められ、そのステップＳ３１０で、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値が一致しているか否かが判定される。ここで、両者が一致していれば（Ｓ３１０：ＹＥＳ）、ステップＳ３２０に処理が進められる。この場合には、ステップＳ３０５において肯定判定（ＹＥＳ）された場合と同様に、そのときの制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果（両者の差）が異常の有無の判定に用いられる。
【００５６】
一方、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値が一致していなければ（Ｓ３１０：ＮＯ）、ステップＳ３２０の処理をスキップして処理がステップＳ３３０に進められる。すなわち、この場合には、噴射量誤差ΔＱのＲＡＭ値は更新されず、同ＲＡＭ値にはそれまでの値が保持される。そのため、このときには、ステップＳ３５０における判定、すなわち制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較は、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値が不一致となる前のそれらの値に基づいて行われる。よって、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の算出に使用したエンジン回転速度の値が一致しない場合、それらの比較結果は、異常の有無の判定に用いられないことになる。
【００５７】
ちなみに、本ルーチンでは、制御用要求噴射量Ｑ１から監視用要求噴射量Ｑ２を減算して求められた噴射量誤差ΔＱの値が判定値γを超えた状態が一定時間以上継続した場合を異常としている。すなわち、ここでは、エンジンの燃料噴射量が過大となるような異常を検出しており、エンジンの燃料噴射量が過小となるような異常については、緊急性が低いと考えられるため、敢えてその検出は行わないようにしている。
【００５８】
次に、本実施形態のエンジン制御装置の作用を説明する。
コントロールユニット１０の演算機能に異常が生じると、燃料噴射量制御に使用する制御用要求噴射量Ｑ１が異常な値となり、エンジンに噴射される燃料の量が不適切となってしまう。そうした場合、制御用要求噴射量Ｑ１とは別に監視用要求噴射量Ｑ２を算出し、その値を制御用要求噴射量Ｑ１と比較することで、そうした異常をある程度に検出することができる。
【００５９】
一方、クランク角センサー１２やその検出信号の波形整形回路などの故障により、エンジン回転速度の演算値が異常な値となることがある。このとき、異なる時期のクランク角センサー１２の検出結果からそれぞれ演算された制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の演算結果には、その故障の影響が全く同じように表れる可能性は低い。そのため、こうした故障の発生時にも、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値に、ひいては制御用要求噴射量Ｑ１と監視用要求噴射量Ｑ２の値に差が生じる。よって本来は、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値の比較結果からは、そうした故障についても検出可能である。
【００６０】
ただし、そうした異常の発生時にも、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の算出に使用するエンジン回転速度の値がまったく同じであれば、異常の影響が両者の演算結果に同じように現れて、両者の値に差が現れず、異常を検出できないことがある。
【００６１】
その点、本実施形態では、エンジンの点火周期内の異なる時期のクランク角センサー１２の検出結果に基づき、制御用要求噴射量Ｑ１の算出に使用する制御用回転速度ＮＥ１と監視用要求噴射量Ｑ２の算出に使用する監視用回転速度ＮＥ２とをそれぞれは個別に演算している。そのため、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の独立性が高まって、異常の検出精度が向上するようになる。
【００６２】
なお、本実施形態では、制御用要求噴射量Ｑ１が規定のクランク角毎に算出されるのに対して、監視用要求噴射量Ｑ２は規定の時間毎に算出されており、両者の算出タイミングは同期されていない。そのため、それらの比較を行うタイミングによっては、異なる点火周期のクランク角センサー１２の検出結果を用いて算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果に基づいて異常の有無が判定されることがある。そして、それらの点火周期の間にエンジン回転速度が変化した場合、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の算出に使用するエンジン回転速度の値に差が生じることがある。そのため、何ら異常がなくても、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値に差が生じて異常有りと誤診断される虞がある。
【００６３】
図６は、制御用回転速度ＮＥ１、監視用回転速度ＮＥ２、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の推移の一例を示している。また、同図には、監視用要求噴射量Ｑ２の算出や、異常の有無の判定のための制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較が実行される時期が三角印により示されている。
【００６４】
同図に示すように、制御用回転速度ＮＥ１のＲＡＭ値に対するＮＥ１演算用計測区間ＳＥＣ１の時間計測結果の反映（ＲＡＭ値の更新）は、同計測区間ＳＥＣ１の終了位置Ｅ１で行われ、監視用回転速度ＮＥ２のＲＡＭ値に対するＮＥ２演算用計測区間ＳＥＣ２の時間計測結果の反映（ＲＡＭ値の更新）は、同計測区間ＳＥＣ２の終了位置Ｅ２で行われる。上述したように、終了位置Ｅ１および終了位置Ｅ２は、異なるクランク番号に設定されており、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２のＲＡＭ値の更新時期にはラグが存在する。
【００６５】
一方、異常判定のための制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較は、時間割り込み処理として行われている。そのため、タイミングによっては、上記制御用回転速度ＮＥ１および監視用回転速度ＮＥ２のＲＡＭ値の更新時期のラグの期間に、上記比較が実行されることがある。
【００６６】
こうした場合、直近の点火周期におけるクランク角センサー１２の検出結果に基づき算出された制御用要求噴射量Ｑ１の値と、それよりも一周期前の点火周期におけるクランク角センサー１２の検出結果に基づき算出された監視用要求噴射量Ｑ２の値とが比較されることになる。そのため、それら点火周期の間にエンジン回転速度が変化していれば、何らの異常がなくても、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値に、ひいてはそれらを用いてそれぞれ算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値に差が生じてしまい、異常有りと誤検出される虞がある。
【００６７】
そこで、本実施形態では、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果に基づく異常の有無の判定の前に、上記のような制御用回転速度ＮＥ１および監視用回転速度ＮＥ２のＲＡＭ値の更新時期にラグが生じる期間中にあるか否かを確認している。そして、そうしたラグが生じる期間中にあり、さらに制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値が一致していなければ、それらの値からそれぞれ算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果を用いずに異常の有無を判定するようにしている。そのため、本実施形態のエンジン制御装置では、演算に用いたクランク角センサー１２の検出結果の取得時期のずれに起因した、上述の誤検出が抑えられるようになる。
【００６８】
以上説明した本実施形態のエンジン制御装置によれば、以下の効果を奏することができる。
（１）本実施形態では、エンジン回転速度およびアクセル操作量から、実際の制御に使用する制御用要求噴射量Ｑ１と診断のための比較に用いる監視用要求噴射量Ｑ２とを個別に算出し、それらの比較結果に基づいて異常の有無を判定している。そのため、エンジン制御装置自身の演算機能の異常を監視することができる。
【００６９】
（２）上記診断とは別に、制御用要求噴射量Ｑ１とインジェクター駆動回路１１によるインジェクター駆動電流の通電時間との比較結果に基づく異常診断を行っている。そのため、通電時間の算出に係るコントロールユニット１０の演算機能や、コントロールユニット１０のインジェクター駆動パルスの生成機能、インジェクター駆動回路１１のインジェクター駆動電流の通電機能の異常の有無も診断することができる。また、両者の異常診断を個別に行っているため、異常箇所をある程度に特定することが可能となる。
【００７０】
（３）本実施形態では、エンジンの点火周期内の異なる時期のクランク角センサー１２の検出結果に基づき、制御用要求噴射量Ｑ１の算出に使用する制御用回転速度ＮＥ１と監視用要求噴射量Ｑ２の算出に使用する監視用回転速度ＮＥ２とがそれぞれ個別に演算されている。そのため、制御用要求噴射量Ｑ１と監視用要求噴射量Ｑ２の独立性を高めて、異常検出精度を向上することができる。
【００７１】
（４）本実施形態では、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２をそれぞれ、異なる時期のクランク角センサー１２の検出結果から演算している。そして、演算に用いるクランク角センサー１２の検出時期の違いにより、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の一方の値の更新に対して他方の値の更新に遅れが生じる期間中に算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果は用いずに異常の有無を判定している。そのため、エンジン回転速度の検出結果の取得時期のずれによる誤検出を抑えつつも、エンジン回転速度の演算値が異常な値となるような異常も検出できるようになる。
【００７２】
（５）本実施形態では、上記遅れが生じる期間中にも、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値が一致すれば、それらの値から算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果を、異常の有無の判定に用いるようにしている。制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の更新タイミングにラグがあっても、実際のエンジン回転速度に変化が無ければ、エンジン回転速度の検出結果の取得時期のずれによる誤検出は生じない。そのため、そうした場合には、上記時間差の期間中であっても、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果を異常の有無の判定に用いることで、実質的な判定が行われる頻度を高めて異常のより早期、かつより高精度な検出を可能とすることができる。
【００７３】
なお、上記実施形態は以下のように変更して実施することもできる。
・制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値の一致、不一致に関わらず、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の更新タイミングにラグが生じる期間中に算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果を異常の有無の判定に用いないようにしてもよい。すなわち、図５に示した演算機能異常判定ルーチンにおけるステップＳ３１０の判定処理を割愛するようにしてもよい。こうした場合にも、上記（１）〜（４）の効果は奏することができる。
【００７４】
・上記実施形態では、エンジンの燃料噴射量が過大となるような異常についてのみ検出していたが、燃料噴射量が過小となるような異常についても検出を行うようにしてもよい。例えば、演算機能異常判定ルーチンのステップＳ３３０において、噴射量誤差ΔＱの絶対値が判定値γを超えるか否かを判定するようにすれば、そうした燃料噴射量が過小となる異常も検出できるようになる。
【００７５】
・上記実施形態では、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値の差が大きい状態が一定時間以上継続した場合、異常有りと判定していたが、それら制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２に基づく異常の有無の判定条件を適宜変更してもよい。例えば、連続、不連続に関わらず、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の値の差が大きいと、一定の回数以上判定された場合に異常有りと判定したり、一回でもそれらの差が大きいと判定された場合に異常有りと判定したりするようにしてもよい。また、そうした判定の頻度やその差の度合いに応じて異常の有無の判定を行うようにすることも可能である。
【００７６】
・上記実施形態における計測区間ＳＥＣ１，ＳＥＣ２の設定態様は、適宜変更してもよい。例えば、開始位置Ｓ１，Ｓ２のみを異ならせたり、終了位置Ｅ１，Ｅ２のみを異ならせたりするように計測区間ＳＥＣ１，ＳＥＣ２を設定してもよい。また、クランク角度幅を同じとし、両者の開始位置Ｓ１，Ｓ２および終了位置Ｅ１，Ｅ２をそれぞれ同じクランク角度幅だけずらすように計測区間ＳＥＣ１，ＳＥＣ２を設定することもできる。
【００７７】
・上記実施形態では、制御用回転速度ＮＥ１および監視用回転速度ＮＥ２の値が一致しないときには、異常判定のための比較を、それらが不一致となる以前の制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２を用いて行うようにしていた。こうした値の不一致が発生したときに、比較自体およびその比較結果に基づく異常判定を、両値が一致するようになるまで一時的に中止するようにしてもよい。こうした場合にも、値が一致しない制御用回転速度ＮＥ１および監視用回転速度ＮＥ２から算出された制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果が、異常の有無に判定に用いられないようにすることができ、誤判定を抑制することが可能である。
【００７８】
・上記実施形態では、制御用要求噴射量Ｑ１および監視用要求噴射量Ｑ２の比較結果に基づくコントロールユニット１０の演算機能の監視に加え、インジェクター駆動回路１１の出力する監視用駆動パルスに基づくインジェクター１４の駆動機能の監視を併せおこなっていたが、駆動機能の監視は割愛してもよい。
【符号の説明】
【００７９】
１０…コントロールユニット、１１…インジェクター駆動回路、１２…クランク角センサー、１３…アクセルペダルセンサー、１４…インジェクター。
【図１】
2016017504.tif 000003
【図２】
2016017504.tif 000004
【図３】
2016017504.tif 000005
【図４】
2016017504.tif 000006
【図５】
2016017504.tif 000007
【図６】
2016017504.tif 000008