(57)【要約】【課題】エンジンのクランク角センサの異常時にカム角センサの出力信号に基づいてエンジン回転速度を算出する際にエンジン回転速度算出値の変動を抑制できるようにする。【解決手段】クランク角センサ２４の異常時に、カム角センサ２７から出力されるカム角信号の出力タイミングで疑似起動タイミングを生成すると共に、カム角信号が出力されてから次のカム角信号が出力される直前までの期間は既に出力されたカム角信号の出力タイミングの時間間隔を等分した時間間隔で疑似起動タイミングを生成する。この疑似起動タイミングの時間間隔の積算値に基づいてエンジン回転速度を算出するが、その際、カム角信号出力時の疑似起動タイミングの時間間隔（カム角信号出力時の疑似起動タイミングとその直前の疑似起動タイミングとの時間間隔）を除外することで、カム角信号出力時の疑似起動タイミングの時間間隔の変動の影響を受けずに、エンジン回転速度を算出する。【選択図】図１
2011208509.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のクランク軸の回転に同期してクランク角信号を出力するクランク角センサと、内燃機関のカム軸の回転に同期してカム角信号を出力するカム角センサとを備えた内燃機関のフェールセーフ制御装置において、
前記クランク角センサの異常時に、前記カム角信号の出力タイミングで疑似起動タイミングを生成すると共に、前記カム角信号が出力されてから次のカム角信号が出力される直前までの期間は既に出力されたカム角信号の出力タイミングの時間間隔を複数に等分した時間間隔で疑似起動タイミングを生成する疑似起動タイミング生成手段と、
前記クランク角センサの異常時に、前記疑似起動タイミングの時間間隔に基づいて内燃機関の回転速度を算出する異常時回転速度算出手段とを備え、
前記異常時回転速度算出手段は、前記疑似起動タイミングの時間間隔に基づいて内燃機関の回転速度を算出する際に、前記疑似起動タイミングの時間間隔のうちの前記カム角信号出力時の疑似起動タイミングとその直前の疑似起動タイミングとの時間間隔を除外することを特徴とする内燃機関のフェールセーフ制御装置。
【請求項２】
前記異常時回転速度算出手段は、前記疑似起動タイミングの時間間隔の積算値に基づいて内燃機関の回転速度を算出することを特徴とする請求項１に記載の内燃機関のフェールセーフ制御装置。
【請求項３】
前記異常時回転速度算出手段は、前記カム角信号の出力タイミングの時間間隔を複数に等分した時間間隔を積算して前記疑似起動タイミングの時間間隔の積算値を求めることを特徴とする請求項２に記載の内燃機関のフェールセーフ制御装置。
【請求項４】
前記クランク角センサの正常時に、前記クランク角信号の出力タイミングの時間間隔に基づいて内燃機関が正常時回転速度算出用の所定クランク角を回転するのに要する時間を算出し、該正常時回転速度算出用の所定クランク角を回転するのに要する時間に基づいて内燃機関の回転速度を算出する正常時回転速度算出手段を備え、
前記異常時回転速度算出手段は、前記疑似起動タイミングの時間間隔に基づいて内燃機関が異常時回転速度算出用の所定クランク角を回転するのに要する時間を算出し、該異常時回転速度算出用の所定クランク角を回転するのに要する時間に基づいて内燃機関の回転速度を算出すると共に、前記異常時回転速度算出用の所定クランク角を前記正常時回転速度算出用の所定クランク角よりも大きくすることを特徴とする請求項１乃至３のいずれかに記載の内燃機関のフェールセーフ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関のクランク角センサの異常時にカム角センサの出力信号に基づいて内燃機関の回転速度を算出する機能を備えた内燃機関のフェールセーフ制御装置に関する発明である。
【背景技術】
【０００２】
一般に、エンジン（内燃機関）の制御システムでは、エンジンのクランク軸の回転に同期してクランク角信号を出力するクランク角センサを設け、このクランク角センサから出力されるクランク角信号の出力タイミングの時間間隔に基づいてエンジン回転速度を算出するようにしている。
【０００３】
また、特許文献１（特許第３７７５２２０号公報）に記載されているように、クランク角センサから出力されるクランク角信号に基づいて起動タイミングを生成し、この起動タイミングに基づいて各種の制御処理（燃料噴射制御処理、点火時期制御処理等）を実行するシステムにおいて、クランク角センサの異常が検出されたときには、カム角センサから出力されるカム角信号の発生間隔を分周して疑似起動タイミングを生成し、この疑似起動タイミングに基づいて各種の制御処理を実行すると共に、この各種の制御処理中にカム角信号の新たな発生があり、この際に疑似起動タイミングの未発行分があるときには、これに対応する疑似起動タイミングを直ちに生成するようにしたものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３７７５２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者は、クランク角センサの異常時に、カム角センサから出力されるカム角信号に基づいて疑似起動タイミングを生成し、この疑似起動タイミングの時間間隔に基づいてエンジン回転速度を算出するシステムを研究しているが、その研究過程で次のような新たな課題が判明した。
【０００６】
図２に示すように、例えば、クランク角センサの異常時に、カム角信号の出力タイミングで疑似起動タイミングを生成すると共に、今回のカム角信号が出力されてから次回のカム角信号が出力される直前までの期間は前回と今回のカム角信号の出力タイミングの時間間隔Ｔ１８０を６つに等分した時間間隔Ｔ３０で疑似起動タイミングを生成し、このようにして生成した疑似起動タイミング毎にクランクカウンタをカウントアップする。
【０００７】
この場合、今回のカム角信号の出力時の疑似起動タイミングから次回のカム角信号が出力される直前の疑似起動タイミングまでは、疑似起動タイミングの時間間隔Ｔ３０が全て等間隔になるが、次回のカム角信号の出力時の疑似起動タイミングとその直前の疑似起動タイミングとの時間間隔（以下「カム角信号出力時の疑似起動タイミングの時間間隔」という）Ｔ３０(x) は、次回のカム角信号の出力タイミングによって変化するため、他の疑似起動タイミングの時間間隔Ｔ３０に比べて大きく変動する傾向がある。例えば、加速時には、次回のカム角信号の出力タイミングが早くなるため、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) が短くなる。一方、減速時には、次回のカム角信号の出力タイミングが遅くなるため、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) が長くなる。
【０００８】
このため、カム角センサの出力信号（カム角信号）に基づいて生成した疑似起動タイミングの時間間隔Ｔ３０に基づいてエンジン回転速度を算出する際に、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) を用いると、図６に二点鎖線で示すように、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) の変動の影響を受けて、エンジン回転速度の算出値が著しく変動するという問題がある。
【０００９】
そこで、本発明が解決しようとする課題は、クランク角センサの異常時に、カム角センサの出力信号に基づいて生成した疑似起動タイミングに基づいて内燃機関の回転速度を算出する場合に、内燃機関の回転速度の算出値の変動を抑制することができる内燃機関のフェールセーフ制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１に係る発明は、内燃機関のクランク軸の回転に同期してクランク角信号を出力するクランク角センサと、内燃機関のカム軸の回転に同期してカム角信号を出力するカム角センサとを備えた内燃機関のフェールセーフ制御装置において、クランク角センサの異常時に、カム角信号の出力タイミングで疑似起動タイミングを生成すると共に、カム角信号が出力されてから次のカム角信号が出力される直前までの期間は既に出力されたカム角信号の出力タイミングの時間間隔を複数に等分した時間間隔で疑似起動タイミングを生成する疑似起動タイミング生成手段と、クランク角センサの異常時に、疑似起動タイミングの時間間隔に基づいて内燃機関の回転速度を算出する異常時回転速度算出手段とを備え、この異常時回転速度算出手段によって、疑似起動タイミングの時間間隔に基づいて内燃機関の回転速度を算出する際に、疑似起動タイミングの時間間隔のうちのカム角信号出力時の疑似起動タイミングとその直前の疑似起動タイミングとの時間間隔（以下「カム角信号出力時の疑似起動タイミングの時間間隔」という）を除外する構成としたものである。
【００１１】
この構成では、クランク角センサの異常時に、疑似起動タイミングの時間間隔に基づいて内燃機関の回転速度を算出する際に、カム角信号出力時の疑似起動タイミングとその直前の疑似起動タイミングとの時間間隔（以下「カム角信号出力時の疑似起動タイミングの時間間隔」という）を除外することができるため、カム角信号出力時の疑似起動タイミングの時間間隔の変動の影響を受けずに、内燃機関の回転速度を算出することができ、内燃機関の回転速度の算出値の変動を抑制することができる。
【００１２】
この場合、請求項２のように、疑似起動タイミングの時間間隔の積算値に基づいて内燃機関の回転速度を算出するようにすると良い。このようにすれば、内燃機関の回転速度の算出精度を向上させることができる。
【００１３】
疑似起動タイミングの時間間隔の積算値を求める場合には、疑似起動タイミングの時間間隔をそれぞれ実際に計測し、その疑似起動タイミングの時間間隔の計測値を積算して疑似起動タイミングの時間間隔の積算値を求めるようにしても良いが、請求項３のように、カム角信号の出力タイミングの時間間隔を複数に等分した時間間隔（＝疑似起動タイミングの時間間隔）を積算して疑似起動タイミングの時間間隔の積算値を求めるようにしても良い。このようにすれば、疑似起動タイミングの時間間隔をそれぞれ実際に計測する必要が無く、疑似起動タイミングの時間間隔の積算値を求める際の演算処理を簡略化することができる。
【００１４】
また、請求項４のように、クランク角センサの正常時に、クランク角信号の出力タイミングの時間間隔に基づいて内燃機関が正常時回転速度算出用の所定クランク角を回転するのに要する時間を算出し、該正常時回転速度算出用の所定クランク角を回転するのに要する時間に基づいて内燃機関の回転速度を算出する正常時回転速度算出手段を備え、異常時回転速度算出手段は、疑似起動タイミングの時間間隔に基づいて内燃機関が異常時回転速度算出用の所定クランク角を回転するのに要する時間を算出し、該異常時回転速度算出用の所定クランク角を回転するのに要する時間に基づいて内燃機関の回転速度を算出すると共に、異常時回転速度算出用の所定クランク角を正常時回転速度算出用の所定クランク角よりも大きくするようにしても良い。
【００１５】
クランク角センサの異常時に、疑似起動タイミングの時間間隔に基づいて内燃機関の回転速度を算出するフェールセーフ中は、内燃機関の回転速度の変動を過敏に検知して精密に制御する必要はないため、正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）よりも大きい異常時回転速度算出用の所定クランク角（例えば３６０ＣＡ）を内燃機関が回転するのに要する時間に基づいて内燃機関の回転速度を算出することで、内燃機関の回転速度の算出値の変動を効果的に抑制することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は本発明の実施例１におけるエンジン制御システムの概略構成を示す図である。
【図２】図２は疑似起動タイミングの生成方法を説明するタイムチャートである。
【図３】図３はエンジン回転速度算出メインルーチンの処理の流れを説明するフローチャートである。
【図４】図４は正常時エンジン回転速度算出ルーチンの処理の流れを説明するフローチャートである。
【図５】図５は実施例１の異常時エンジン回転速度算出ルーチンの処理の流れを説明するフローチャートである。
【図６】図６は実施例１の効果を説明するタイムチャートである。
【図７】図７は実施例２の異常時エンジン回転速度算出ルーチンの処理の流れを説明するフローチャートである。
【図８】図８は実施例２の効果を説明するタイムチャートである。
【図９】図９は実施例３のクランク角センサ異常時のエンジン回転速度の算出方法を説明する図である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態を具体化した幾つかの実施例を説明する。
【実施例１】
【００１８】
本発明の実施例１を図１乃至図６に基づいて説明する。
まず、図１に基づいてエンジン制御システム全体の構成を概略的に説明する。
エンジン１１の吸気ポート１２に接続された吸気管１３の途中には、スロットルバルブ１４が設けられ、このスロットルバルブ１４の開度（スロットル開度）がスロットル開度センサ１５によって検出される。また、スロットルバルブ１４の下流側には、吸気管圧力を検出する吸気管圧力センサ１５が設けられ、各気筒の吸気ポート１２の近傍には、それぞれ吸気ポート１２に向けて燃料を噴射する燃料噴射弁１６が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ１７が取り付けられ、各気筒の点火プラグ１７の火花放電によって筒内の混合気に着火される。
【００１９】
一方、エンジン１１の排気ポート１８に接続された排気管１９の途中には、排気ガス浄化用の触媒２０が設置されている。エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２１が設けられている。
【００２０】
また、エンジン１１のクランク軸２２に取り付けられたシグナルロータ２３の外周に対向してクランク角センサ２４が設置され、このクランク角センサ２４からシグナルロータ２３（クランク軸２２）の回転に同期して所定クランク角毎（例えば３０ＣＡ毎）にクランク角信号（パルス信号）が出力される。クランク角センサ２４の正常時には、クランク角信号の出力タイミング毎（例えばクランク角信号の立ち上がりタイミング又は立ち下がりタイミング毎）にクランクカウンタがカウントアップされる。
【００２１】
更に、エンジン１１のカム軸２５に取り付けられたシグナルロータ２６の外周に対向してカム角センサ２７が設置され、このカム角センサ２７からシグナルロータ２６（カム軸２５）の回転に同期して所定のカム角でカム角信号（パルス信号）が出力される。このカム角信号に基づいて気筒判別用のＧ２信号のオン／オフが切り替わり、例えば１８０ＣＡ毎にＧ２エッジのタイミング（Ｇ２信号の有効カムエッジのタイミング）となる。クランク角センサ２４の異常時には、Ｇ２エッジのタイミングに相当するカム角信号の出力タイミングに基づいて疑似起動タイミングを生成し、この疑似起動タイミング毎にクランクカウンタがカウントアップされる。
【００２２】
上述した各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２８に入力される。このＥＣＵ２８は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁１６の燃料噴射量や点火プラグ１７の点火時期を制御する。
【００２３】
その際、ＥＣＵ２８は、後述する図３乃至図５のエンジン回転速度算出用の各ルーチンを実行することで、エンジン回転速度Ｎe を次のようにして算出する。
ＥＣＵ２８は、クランク角センサ２４の正常時には、クランク角センサ２４から例えば３０ＣＡ毎に出力されるクランク角信号の出力タイミングの時間間隔の積算値に基づいてエンジン回転速度Ｎe を算出する。
【００２４】
具体的には、クランク角信号の出力タイミング毎に３０ＣＡ割込処理によって、前回と今回の３０ＣＡ割込タイミングの時間間隔（つまり前回と今回のクランク角信号の出力タイミングの時間間隔）を今回の３０ＣＡ時間Ｔ３０（クランク軸２２が３０ＣＡ回転するのに要する時間）として算出する。
【００２５】
この後、２回前の３０ＣＡ時間Ｔ３０(n-2) と１回前の３０ＣＡ時間Ｔ３０(n-1) と今回の３０ＣＡ時間Ｔ３０(n) とを積算して、クランク軸２２が正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）を回転するのに要する時間である９０ＣＡ時間Ｔ９０を求める。
Ｔ９０＝Ｔ３０(n-2) ＋Ｔ３０(n-1) ＋Ｔ３０(n)
【００２６】
この後、９０ＣＡ時間Ｔ９０を用いてエンジン回転速度Ｎe ［ｒｐｍ］を次式により算出する。
Ｎe ＝６０／（Ｔ９０×４）
【００２７】
また、ＥＣＵ２８は、図２に示すように、クランク角センサ２４の異常時には、カム角センサ２７から例えば１８０ＣＡ毎に出力されるカム角信号の出力タイミング（Ｇ２エッジのタイミング）で疑似起動タイミングを生成すると共に、今回のカム角信号が出力されてから次回のカム角信号が出力される直前までの期間は既に出力されたカム角信号（前回と今回のカム角信号）の出力タイミングの時間間隔Ｔ１８０を６つに等分した時間間隔Ｔ３０で疑似起動タイミングを生成する疑似起動タイミング生成手段として機能し、このようにして生成した疑似起動タイミング毎にクランクカウンタをカウントアップする。
【００２８】
この場合、今回のカム角信号の出力時の疑似起動タイミングから次回のカム角信号が出力される直前の疑似起動タイミングまでは、疑似起動タイミングの時間間隔Ｔ３０が全て等間隔になるが、次回のカム角信号の出力時の疑似起動タイミングとその直前の疑似起動タイミングとの時間間隔（以下「カム角信号出力時の疑似起動タイミングの時間間隔」という）Ｔ３０(x) は、次回のカム角信号の出力タイミングによって変化するため、他の疑似起動タイミングの時間間隔Ｔ３０に比べて大きく変動する傾向がある。例えば、加速時には、次回のカム角信号の出力タイミングが早くなるため、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) が短くなる。一方、減速時には、次回のカム角信号の出力タイミングが遅くなるため、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) が長くなる。
【００２９】
このため、カム角センサ２７の出力信号（カム角信号）に基づいて生成した疑似起動タイミングの時間間隔Ｔ３０に基づいてエンジン回転速度Ｎe を算出する際に、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) を用いると、図６に二点鎖線で示すように、エンジン回転速度Ｎe の算出値が著しく変動するという問題がある。
【００３０】
この対策として、ＥＣＵ２８は、クランク角センサ２４の異常時には、疑似起動タイミングの時間間隔Ｔ３０の積算値に基づいてエンジン回転速度Ｎe を算出するが、その際、疑似起動タイミングの時間間隔Ｔ３０のうちのカム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) を除外して、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) 以外の疑似起動タイミングの時間間隔Ｔ３０を用いてエンジン回転速度Ｎe を算出する。
【００３１】
具体的には、カム角信号の出力タイミングに基づいて生成した疑似起動タイミング毎に３０ＣＡ割込処理によって、前回と今回の３０ＣＡ割込タイミングの時間間隔（つまり前回と今回の疑似起動タイミングの時間間隔）を今回の３０ＣＡ時間Ｔ３０として算出するが、カム角信号出力時の３０ＣＡ割込処理（カム角信号出力時の疑似起動タイミングを割込タイミングとする３０ＣＡ割込処理）の場合には、前回の３０ＣＡ時間Ｔ３０と同一の値を今回の３０ＣＡ時間Ｔ３０とすることで、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) を除外する。
【００３２】
この後、２回前の３０ＣＡ時間Ｔ３０(n-2) と１回前の３０ＣＡ時間Ｔ３０(n-1) と今回の３０ＣＡ時間Ｔ３０(n) とを積算して、クランク軸２２が異常時回転速度算出用の所定クランク角（例えば９０ＣＡ）を回転するのに要する時間である９０ＣＡ時間Ｔ９０を求める。
Ｔ９０＝Ｔ３０(n-2) ＋Ｔ３０(n-1) ＋Ｔ３０(n)
【００３３】
この後、９０ＣＡ時間Ｔ９０を用いてエンジン回転速度Ｎe ［ｒｐｍ］を次式により算出する。
Ｎe ＝６０／（Ｔ９０×４）
以下、ＥＣＵ２８が実行する図３乃至図５に示すエンジン回転速度算出用の各ルーチンの処理内容を説明する。
【００３４】
［エンジン回転速度算出メインルーチン］
図３に示すエンジン回転速度算出メインルーチンは、ＥＣＵ２８の電源オン中に所定周期で繰り返し実行される。本ルーチンが起動されると、まず、ステップ１０１で、クランク角センサ２４が異常であるか否かを、例えば、図示しないクランク角センサ異常診断ルーチンによるクランク角センサ２４の異常診断結果に基づいて判定する。
【００３５】
このステップ１０１で、クランク角センサ２４が異常ではない（正常である）と判定された場合には、ステップ１０２に進み、３０ＣＡ割込処理によって後述する図４の正常時エンジン回転速度算出ルーチンを実行することで、クランク角センサ２４から出力されるクランク角信号の出力タイミングの時間間隔Ｔ３０の積算値に基づいてエンジン回転速度Ｎe を算出する。
【００３６】
一方、上記ステップ１０１で、クランク角センサ２４が正常であると判定された場合には、ステップ１０３に進み、３０ＣＡ割込処理によって後述する図５の異常時エンジン回転速度算出ルーチンを実行することで、カム角センサ２７の出力信号（カム角信号）に基づいて生成した疑似起動タイミングの時間間隔Ｔ３０の積算値に基づいてエンジン回転速度Ｎe を算出する。
【００３７】
［正常時エンジン回転速度算出ルーチン］
図４に示す正常時エンジン回転速度算出ルーチン（図３のステップ１０２）は、クランク角信号の出力タイミング毎に３０ＣＡ割込処理によって繰り返し実行され、特許請求の範囲でいう正常時回転速度算出手段としての役割を果たす。
【００３８】
本ルーチンが起動されると、まず、ステップ２０１で、前回と今回の３０ＣＡ割込タイミングの時間間隔（つまり前回と今回のクランク角信号の出力タイミングの時間間隔）を計測（算出）し、その計測値を今回の３０ＣＡ時間Ｔ３０とする。
【００３９】
この後、ステップ２０２に進み、ＥＣＵ２８のメモリに記憶されている３０ＣＡ時間Ｔ３０(n-2) 〜Ｔ３０(n) のデータをそれぞれ更新する。
Ｔ３０(n-2) ＝Ｔ３０(n-1)
Ｔ３０(n-1) ＝Ｔ３０(n)
Ｔ３０(n) ＝Ｔ３０
【００４０】
この後、ステップ２０３に進み、２回前の３０ＣＡ時間Ｔ３０(n-2) と１回前の３０ＣＡ時間Ｔ３０(n-1) と今回の３０ＣＡ時間Ｔ３０(n) とを積算して、クランク軸２２が正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）を回転するのに要する時間である９０ＣＡ時間Ｔ９０を求める。
Ｔ９０＝Ｔ３０(n-2) ＋Ｔ３０(n-1) ＋Ｔ３０(n)
【００４１】
この後、ステップ２０４に進み、９０ＣＡ時間Ｔ９０を用いてエンジン回転速度Ｎe を次式により算出する。
Ｎe ＝６０／（Ｔ９０×４）
【００４２】
［異常時エンジン回転速度算出ルーチン］
図５に示す異常時エンジン回転速度算出ルーチン（図３のステップ１０３）は、カム角信号の出力タイミングに基づいて生成した疑似起動タイミング毎に３０ＣＡ割込処理によって繰り返し実行され、特許請求の範囲でいう異常時回転速度算出手段としての役割を果たす。
【００４３】
本ルーチンが起動されると、まず、ステップ３０１で、カム角信号出力時の３０ＣＡ割込処理（カム角信号出力時の疑似起動タイミングを割込タイミングとする３０ＣＡ割込処理）であるか否かを判定する。
【００４４】
このステップ３０１で、カム角信号出力時の３０ＣＡ割込処理ではないと判定された場合には、ステップ３０２に進み、前回と今回の３０ＣＡ割込タイミングの時間間隔（つまり前回と今回の疑似起動タイミングの時間間隔）を計測（算出）し、その計測値を今回の３０ＣＡ時間Ｔ３０とする。
【００４５】
一方、上記ステップ３０１で、カム角信号出力時の３０ＣＡ割込処理であると判定された場合には、ステップ３０３に進み、前回の３０ＣＡ時間Ｔ３０と同一の値を今回の３０ＣＡ時間Ｔ３０とすることで、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) を除外する。
【００４６】
この後、ステップ３０４に進み、ＥＣＵ２８のメモリに記憶されている３０ＣＡ時間Ｔ３０(n-2) 〜Ｔ３０(n) のデータをそれぞれ更新する。
Ｔ３０(n-2) ＝Ｔ３０(n-1)
Ｔ３０(n-1) ＝Ｔ３０(n)
Ｔ３０(n) ＝Ｔ３０
【００４７】
この後、ステップ３０５に進み、２回前の３０ＣＡ時間Ｔ３０(n-2) と１回前の３０ＣＡ時間Ｔ３０(n-1) と今回の３０ＣＡ時間Ｔ３０(n) とを積算して、クランク軸２２が異常時回転速度算出用の所定クランク角（例えば９０ＣＡ）を回転するのに要する時間である９０ＣＡ時間Ｔ９０を求める。
Ｔ９０＝Ｔ３０(n-2) ＋Ｔ３０(n-1) ＋Ｔ３０(n)
【００４８】
この後、ステップ３０６に進み、９０ＣＡ時間Ｔ９０を用いてエンジン回転速度Ｎe を次式により算出する。
Ｎe ＝６０／（Ｔ９０×４）
【００４９】
以上説明した本実施例１では、クランク角センサ２４の異常時には、カム角センサ２７から出力されるカム角信号の出力タイミングで疑似起動タイミングを生成すると共に、今回のカム角信号が出力されてから次回のカム角信号が出力される直前までの期間は既に出力されたカム角信号（前回と今回のカム角信号）の出力タイミングの時間間隔Ｔ１８０を６つに等分した時間間隔Ｔ３０で疑似起動タイミングを生成する。
【００５０】
そして、クランク角センサ２４の異常時には、疑似起動タイミングの時間間隔Ｔ３０の積算値に基づいてエンジン回転速度Ｎe を算出するが、その際、疑似起動タイミングの時間間隔Ｔ３０のうちのカム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) を除外して、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) 以外の疑似起動タイミングの時間間隔Ｔ３０を用いてエンジン回転速度Ｎe を算出するようにしたので、図６に実線で示すように、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) の変動の影響を受けずに、エンジン回転速度Ｎe を算出することができ、エンジン回転速度Ｎe の算出値の変動を抑制することができる。
【００５１】
尚、上記実施例１では、正常時回転速度算出用の所定クランク角と異常時回転速度算出用の所定クランク角を９０ＣＡに設定して、９０ＣＡ時間Ｔ９０を用いてエンジン回転速度Ｎe を算出するようにしたが、これに限定されず、正常時回転速度算出用の所定クランク角と異常時回転速度算出用の所定クランク角を適宜変更しても良く、例えば、正常時回転速度算出用の所定クランク角と異常時回転速度算出用の所定クランク角を、１８０ＣＡ、３６０ＣＡ、７２０ＣＡ等のいずれかに設定して、１８０ＣＡ時間Ｔ１８０、３６０ＣＡ時間Ｔ３６０、７２０ＣＡ時間Ｔ７２０等のいずれかを用いてエンジン回転速度Ｎe を算出するようにしても良い。
【実施例２】
【００５２】
次に、図７及び図８を用いて本発明の実施例２を説明する。但し、前記実施例１と実質的に同一部分については説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【００５３】
本実施例２では、クランク角センサ２４の正常時には、前記実施例１と同じように、クランク角信号の出力タイミングの時間間隔Ｔ３０を積算して、クランク軸２２が正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）を回転するのに要する時間である９０ＣＡ時間Ｔ９０を求め、この９０ＣＡ時間Ｔ９０を用いてエンジン回転速度Ｎe を算出する。
【００５４】
一方、クランク角センサ２４の異常時には、ＥＣＵ２８により後述する図７の異常時エンジン回転速度算出ルーチンを実行することで、疑似起動タイミングの時間間隔Ｔ３０を積算して、クランク軸２２が異常時回転速度算出用の所定クランク角（例えば３６０ＣＡ）を回転するのに要する時間である３６０ＣＡ時間Ｔ３６０を求め、この３６０ＣＡ時間Ｔ３６０を用いてエンジン回転速度Ｎe を算出する。つまり、異常時回転速度算出用の所定クランク角（例えば３６０ＣＡ）を正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）よりも大きくする。
【００５５】
図７の異常時エンジン回転速度算出ルーチンは、前記実施例１で説明した図５のルーチンのステップ３０４〜３０６の処理を、ステップ３０４ａ〜３０６ａの処理に変更したものであり、それ以外の各ステップの処理は図５と同じである。
【００５６】
図７の異常時エンジン回転速度算出ルーチンでは、カム角信号出力時の３０ＣＡ割込処理ではないと判定されれば、前回と今回の３０ＣＡ割込タイミング時間間隔（つまり前回と今回の疑似起動タイミングの時間間隔）を計測（算出）し、その計測値を今回の３０ＣＡ時間Ｔ３０とするが、カム角信号出力時の３０ＣＡ割込処理であると判定されれば、前回の３０ＣＡ時間Ｔ３０と同一の値を今回の３０ＣＡ時間Ｔ３０とすることで、カム角信号出力時の疑似起動タイミングの時間間隔Ｔ３０(x) を除外する（ステップ３０１〜３０３）。
【００５７】
この後、ステップ３０４ａに進み、ＥＣＵ２８のメモリに記憶されている３０ＣＡ時間Ｔ３０(n-11)〜Ｔ３０(n) のデータをそれぞれ更新する。
Ｔ３０(n-11)＝Ｔ３０(n-10)
Ｔ３０(n-10)＝Ｔ３０(n-9)
Ｔ３０(n-9) ＝Ｔ３０(n-8)
Ｔ３０(n-8) ＝Ｔ３０(n-7)
Ｔ３０(n-7) ＝Ｔ３０(n-6)
Ｔ３０(n-6) ＝Ｔ３０(n-5)
Ｔ３０(n-5) ＝Ｔ３０(n-4)
Ｔ３０(n-4) ＝Ｔ３０(n-3)
Ｔ３０(n-3) ＝Ｔ３０(n-2)
Ｔ３０(n-2) ＝Ｔ３０(n-1)
Ｔ３０(n-1) ＝Ｔ３０(n)
Ｔ３０(n) ＝Ｔ３０
【００５８】
この後、ステップ３０５ａに進み、１１回前の３０ＣＡ時間Ｔ３０(n-11)から今回の３０ＣＡ時間Ｔ３０(n) までを積算して、正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）よりも大きい異常時回転速度算出用の所定クランク角（例えば３６０ＣＡ）をクランク軸２２が回転するのに要する時間である３６０ＣＡ時間Ｔ３６０を求める。
【００５９】
Ｔ３６０＝Ｔ３０(n-11)＋Ｔ３０(n-10)＋・・・・・＋Ｔ３０(n-1) ＋Ｔ３０(n)
この後、ステップ３０６ａに進み、３６０ＣＡ時間Ｔ３６０を用いてエンジン回転速度Ｎe を次式により算出する。
Ｎe ＝６０／Ｔ３６０
【００６０】
以上説明した本実施例２では、クランク角センサ２４の異常時には、疑似起動タイミングの時間間隔Ｔ３０を積算して、正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）よりも大きい異常時回転速度算出用の所定クランク角（例えば３６０ＣＡ）をクランク軸２２が回転するのに要する時間である３６０ＣＡ時間Ｔ３６０を求め、この３６０ＣＡ時間Ｔ３６０を用いてエンジン回転速度Ｎe を算出する。
【００６１】
クランク角センサ２４の異常時に、疑似起動タイミングの時間間隔Ｔ３０に基づいてエンジン回転速度Ｎe を算出するフェールセーフ中は、エンジン回転速度Ｎe の変動を過敏に検知して精密に制御する必要はないため、正常時回転速度算出用の所定クランク角（例えば９０ＣＡ）よりも大きい異常時回転速度算出用の所定クランク角（例えば３６０ＣＡ）をクランク軸２２が回転するのに要する時間である３６０ＣＡ時間Ｔ３６０を求め、この３６０ＣＡ時間Ｔ３６０を用いてエンジン回転速度Ｎe を算出することで、図８に実線で示すように、エンジン回転速度Ｎe の算出値の変動を効果的に抑制することができる。
【００６２】
尚、上記実施例２では、異常時回転速度算出用の所定クランク角を３６０ＣＡに設定するようにしたが、これに限定されず、異常時回転速度算出用の所定クランク角を適宜変更しても良く、例えば、異常時回転速度算出用の所定クランク角を、１８０ＣＡ、７２０ＣＡ等のいずれかに設定しても良く、要は異常時回転速度算出用の所定クランク角を正常時回転速度算出用の所定クランク角よりも大きくすれば良い。
【実施例３】
【００６３】
次に、図９を用いて本発明の実施例３を説明する。但し、前記実施例２と実質的に同一部分については説明を省略又は簡略化し、主として前記実施例２と異なる部分について説明する。
【００６４】
前記実施例２では、クランク角センサ２４の異常時に、疑似起動タイミングの時間間隔Ｔ３０をそれぞれ実際に計測し、その疑似起動タイミングの時間間隔Ｔ３０の計測値を積算して３６０ＣＡ時間Ｔ３６０（疑似起動タイミングの時間間隔Ｔ３０の積算値）を求めるようにしたが、本実施例３では、クランク角センサ２４の異常時に、カム角信号の出力タイミングの時間間隔Ｔ１８０を６つに等分した時間間隔Ｔ３０（＝疑似起動タイミングの時間間隔Ｔ３０）を積算して３６０ＣＡ時間Ｔ３６０（疑似起動タイミングの時間間隔Ｔ３０の積算値）を求めるようにしている。
【００６５】
具体的には、図９に示すように、(1) クランク角カウンタｃｃｒｎｋ＝１４の場合には、２回前のカム角信号の出力タイミング（Ｇ２信号の有効カムエッジのタイミング）の時間間隔Ｔ１８０ａを６等分した時間間隔Ｔ３０ａを６つ積算した値（Ｔ３０ａ×６＝Ｔ１８０ａ×６／６）と、１回前のカム角信号の出力タイミングの時間間隔Ｔ１８０ｂを６等分した時間間隔Ｔ３０ｂを６つ積算した値（Ｔ３０ｂ×６＝Ｔ１８０ｂ×６／６）とを積算して、３６０ＣＡ時間Ｔ３６０を求める。
【００６６】
Ｔ３６０＝（Ｔ１８０ａ×６／６）＋（Ｔ１８０ｂ×６／６）
この３６０ＣＡ時間Ｔ３６０を用いてエンジン回転速度Ｎe を次式により算出する。
Ｎe ＝６０／Ｔ３６０
【００６７】
(2) クランク角カウンタｃｃｒｎｋ＝１５の場合には、２回前のカム角信号の出力タイミングの時間間隔Ｔ１８０ａを６等分した時間間隔Ｔ３０ａを５つ積算した値（Ｔ３０ａ×５＝Ｔ１８０ａ×５／６）と、１回前のカム角信号の出力タイミングの時間間隔Ｔ１８０ｂを６等分した時間間隔Ｔ３０ｂを６つ積算した値（Ｔ３０ｂ×６＝Ｔ１８０ｂ×６／６）と、今回のカム角信号の出力タイミングの時間間隔Ｔ１８０ｃを６等分した時間間隔Ｔ３０ｃの値（Ｔ３０ｃ＝Ｔ１８０ｃ×１／６）とを積算して、３６０ＣＡ時間Ｔ３６０を求める。
【００６８】
Ｔ３６０＝（Ｔ１８０ａ×５／６）＋（Ｔ１８０ｂ×６／６）＋（Ｔ１８０ｃ×１／６）
この３６０ＣＡ時間Ｔ３６０を用いてエンジン回転速度Ｎe を次式により算出する。
Ｎe ＝６０／Ｔ３６０
【００６９】
(3) クランク角カウンタｃｃｒｎｋ＝１６の場合には、２回前のカム角信号の出力タイミングの時間間隔Ｔ１８０ａを６等分した時間間隔Ｔ３０ａを４つ積算した値（Ｔ３０ａ×４＝Ｔ１８０ａ×４／６）と、１回前のカム角信号の出力タイミングの時間間隔Ｔ１８０ｂを６等分した時間間隔Ｔ３０ｂを６つ積算した値（Ｔ３０ｂ×６＝Ｔ１８０ｂ×６／６）と、今回のカム角信号の出力タイミングの時間間隔Ｔ１８０ｃを６等分した時間間隔Ｔ３０ｃを２つ積算した値（Ｔ３０ｃ×２＝Ｔ１８０ｃ×２／６）とを積算して、３６０ＣＡ時間Ｔ３６０を求める。
【００７０】
Ｔ３６０＝（Ｔ１８０ａ×４／６）＋（Ｔ１８０ｂ×６／６）＋（Ｔ１８０ｃ×２／６）
この３６０ＣＡ時間Ｔ３６０を用いてエンジン回転速度Ｎe を次式により算出する。
Ｎe ＝６０／Ｔ３６０
【００７１】
以上説明した本実施例３では、クランク角センサ２４の異常時に、カム角信号の出力タイミングの時間間隔Ｔ１８０を６つに等分した時間間隔Ｔ３０（＝疑似起動タイミングの時間間隔Ｔ３０）を積算して３６０ＣＡ時間Ｔ３６０（疑似起動タイミングの時間間隔Ｔ３０の積算値）を求めるようにしたので、疑似起動タイミングの時間間隔Ｔ３０をそれぞれ実際に計測する必要が無く、３６０ＣＡ時間Ｔ３６０（疑似起動タイミングの時間間隔Ｔ３０の積算値）を求める際の演算処理を簡略化することができる。
【００７２】
尚、上記各実施例１〜３では、前回（１回前）と今回のカム角信号の出力タイミングの時間間隔を複数に等分した時間間隔で疑似起動タイミングを生成するようにしたが、これに限定されず、例えば、前々回（２回前）と前回（１回前）のカム角信号の出力タイミングの時間間隔を複数に等分した時間間隔で疑似起動タイミングを生成するようにしたり、或は、前々回（２回前）と今回のカム角信号の出力タイミングの時間間隔を複数に等分した時間間隔で疑似起動タイミングを生成するようにしても良い。
【００７３】
また、本発明は、図１に示すような吸気ポート噴射式エンジンに限定されず、筒内噴射式エンジンや、吸気ポート噴射用の燃料噴射弁と筒内噴射用の燃料噴射弁の両方を備えたデュアル噴射式のエンジンにも適用して実施できる。
【００７４】
更に、本発明は、エンジンのみを動力源とする車両に限定されず、エンジンとモータの両方を動力源とするハイブリッド車に適用しても良い。
【符号の説明】
【００７５】
１１…エンジン（内燃機関）、１３…吸気管、１４…スロットルバルブ、１６…燃料噴射弁、１７…点火プラグ、１９…排気管、２２…クランク軸、２４…クランク角センサ、２５…カム軸、２７…カム角センサ、２８…ＥＣＵ（正常時回転速度算出手段，疑似起動タイミング生成手段，異常時回転速度算出手段）
【図１】
2011208509.tif 000003
【図２】
2011208509.tif 000004
【図３】
2011208509.tif 000005
【図４】
2011208509.tif 000006
【図５】
2011208509.tif 000007
【図６】
2011208509.tif 000008
【図７】
2011208509.tif 000009
【図８】
2011208509.tif 000010
【図９】
2011208509.tif 000011