(57)【要約】【課題】クランク角センサの異常時においてクランク角度の算出精度を向上させる【解決手段】エンジンＥＣＵ１は、筒内圧信号が示す筒内圧に基づいて圧縮上死点を検出する。また、圧縮上死点を検出したタイミングと、圧縮上死点より前においてカム角信号が直近で入力したタイミングとの間におけるクランク軸の角速度（以下、減速時角速度という）および角加速度（以下、減速時角速度という）とを算出する。さらに、圧縮上死点を検出したタイミングと、圧縮上死点より後においてカム角信号が直近で入力したタイミングとの間におけるクランク軸の角速度（以下、加速時角速度という）および角加速度（以下、加速時角加速度という）とを算出する。そしてエンジンＥＣＵ１は、クランク角センサ６１が故障している場合に、加速時角速度、加速時角加速度、減速時角速度および減速時角速度を用いて、クランク角度を算出する。【選択図】図１
2015214938.tif 000002
【特許請求の範囲】
【請求項１】
エンジン（５０）のクランク軸の回転に応じて予め設定された第１所定クランク角度毎にクランク角センサ（６１）から出力されるクランク角信号と、前記エンジンのカム軸の回転に応じて前記カム軸の角度が前記エンジンの気筒判別が可能となるように予め設定された第２所定クランク角度になる毎にカム角センサ（６２）から出力されるカム角信号と、前記エンジンの気筒の内部の圧力を検出する筒内圧センサ（６３）から出力される筒内圧信号とを入力して、前記エンジンを制御する電子制御装置（１）であって、
前記筒内圧信号が示す筒内圧に基づいて、前記気筒における圧縮上死点を検出する上死点検出手段（Ｓ２１０，Ｓ２２０）と、
前記上死点検出手段が前記圧縮上死点を検出したタイミングと、該圧縮上死点より前において前記カム角信号が直近で入力したタイミングとの間における前記クランク軸の角速度および角加速度とを算出する上死点前算出手段（Ｓ３１０，Ｓ３２０）と、
前記上死点検出手段が前記圧縮上死点を検出したタイミングと、該圧縮上死点より後において前記カム角信号が直近で入力したタイミングとの間における前記クランク軸の角速度および角加速度とを算出する上死点後算出手段（Ｓ１００，Ｓ１１０）と、
前記上死点前算出手段が算出した前記角速度を上死点前角速度とし、前記上死点前算出手段が算出した前記角加速度を上死点前角加速度とし、前記上死点後算出手段が算出した前記角速度を上死点後角速度とし、前記上死点後算出手段が算出した前記角加速度を上死点後角加速度として、前記クランク角信号の異常が発生している場合に、前記上死点前角速度、前記上死点前角加速度、前記上死点後角速度および前記上死点後角加速度を用いて、前記クランク軸のクランク角度を算出する異常時算出手段（Ｓ４１０〜Ｓ４４０）とを備える
ことを特徴とする電子制御装置。
【請求項２】
前記上死点前算出手段は、
前記圧縮上死点における前記クランク軸のクランク角度を上死点クランク角度とし、前記圧縮上死点より前において直近で入力した前記カム角信号を上死点前カム角信号とし、前記上死点前カム角信号に基づいて特定される前記第２所定クランク角度を上死点前クランク角度とし、前記圧縮上死点を検出した時刻と前記上死点前カム角信号が入力した時刻との差分を上死点前時間として、前記上死点クランク角度と前記上死点前クランク角度との差分を前記上死点前時間で除算することにより前記上死点前角速度を算出し、さらに、前記上死点前算出手段が算出した最新の前記上死点前角速度と、前記上死点後算出手段が算出した最新の前記上死点後角速度との差分を前記上死点前時間で除算することにより前記上死点前角加速度を算出し、
前記上死点後算出手段は、
前記圧縮上死点より後において直近で入力した前記カム角信号を上死点後カム角信号とし、前記上死点後カム角信号に基づいて特定される前記第２所定クランク角度を上死点後クランク角度とし、前記上死点後カム角信号が入力した時刻と前記圧縮上死点を検出した時刻との差分を上死点後時間として、前記上死点後クランク角度と前記上死点クランク角度との差分を前記上死点後時間で除算することにより前記上死点後角速度を算出し、さらに、前記上死点後算出手段が算出した最新の前記上死点後角速度と、前記上死点前算出手段が算出した最新の前記上死点前角速度との差分を前記上死点後時間で除算することにより前記上死点後角加速度を算出する
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記上死点検出手段は、
前記圧縮上死点より前において直近で入力した前記カム角信号を上死点前カム角信号とし、前記筒内圧信号が示す筒内圧の時間変化を示す波形において、前記上死点前カム角信号が入力したタイミングから初回の極大値を検出したときに、前記圧縮上死点を検出したと判断する
ことを特徴とする請求項１または請求項２に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンを制御する電子制御装置に関する。
【背景技術】
【０００２】
従来、クランク角センサの異常でクランク角信号が出力されなくなったときに、カム角センサから出力されるカム角信号の発生間隔を分周して生成した擬似クランク角信号を用いてエンジン制御を行う技術が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１９５０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、クランク軸の回転速度はカム角信号の発生間隔内で変化する。このため、カム角信号の発生間隔内において一定時間毎に発生する上記擬似クランク角信号を用いてクランク角度を算出すると、燃料噴射タイミングの精度が十分に得られないという問題があった。
【０００５】
本発明は、こうした問題に鑑みてなされたものであり、クランク角センサの異常時においてクランク角度の算出精度を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明の電子制御装置は、クランク角信号と、カム角信号と、筒内圧信号とを入力して、エンジンを制御する。クランク角信号は、エンジンのクランク軸の回転に応じて予め設定された第１所定クランク角度毎にクランク角センサから出力される。カム角信号は、エンジンのカム軸の回転に応じてカム軸の角度がエンジンの気筒判別が可能となるように予め設定された第２所定クランク角度になる毎にカム角センサから出力される。筒内圧信号は、エンジンの気筒の内部の圧力を検出する筒内圧センサから出力される。
【０００７】
そして本発明の電子制御装置は、上死点検出手段と、上死点前算出手段と、上死点後算出手段と、異常時算出手段とを備える。
上死点検出手段は、筒内圧信号が示す筒内圧に基づいて、気筒における圧縮上死点を検出する。
【０００８】
上死点前算出手段は、上死点検出手段が圧縮上死点を検出したタイミングと、圧縮上死点より前においてカム角信号が直近で入力したタイミングとの間におけるクランク軸の角速度および角加速度とを算出する。
【０００９】
上死点後算出手段は、上死点検出手段が圧縮上死点を検出したタイミングと、圧縮上死点より後においてカム角信号が直近で入力したタイミングとの間におけるクランク軸の角速度および角加速度とを算出する。
【００１０】
異常時算出手段は、上死点前算出手段が算出した角速度を上死点前角速度とし、上死点前算出手段が算出した角加速度を上死点前角加速度とし、上死点後算出手段が算出した角速度を上死点後角速度とし、上死点後算出手段が算出した角加速度を上死点後角加速度として、クランク角信号の異常が発生している場合に、上死点前角速度、上死点前角加速度、上死点後角速度および上死点後角加速度を用いて、クランク軸のクランク角度を算出する。
【００１１】
このように構成された本発明の電子制御装置は、まず、筒内圧信号に基づいて、気筒における圧縮上死点を検出することにより、クランク軸のクランク角度が、圧縮上死点に対応するクランク角度（以下、上死点クランク角度という）に到達したタイミングを特定することができる。なお、燃焼によって発生する圧力（以下、燃焼圧力という）に起因した筒内圧力の極大点は、圧縮上死点以降に存在する。これは、エンジンにおいて十分なパワーを発生させるとともにエミッションを最小化するために、圧縮が終了したタイミング（すなわち、圧縮上死点）以降で燃料が燃焼するようにエンジン制御が適合されているからである。このため、クランク軸のクランク角度が上死点クランク角度に到達することに起因した筒内圧力の極大点と、燃焼圧力に起因した筒内圧力の極大点とを区別して検出することができる。したがって、クランク軸のクランク角度が圧縮上死点に到達することに起因した筒内圧力の極大点を検出することにより、上記上死点クランク角度に到達したタイミングを特定することが可能である。
【００１２】
さらに本発明の電子制御装置は、カム角信号を入力することにより、圧縮上死点より前において直近で入力したカム角信号（以下、上死点前カム角信号という）に対応するクランク角度（以下、上死点前クランク角度という）にクランク軸のクランク角度が到達したタイミングを特定することができる。
【００１３】
また本発明の電子制御装置は、カム角信号を入力することにより、圧縮上死点より後において直近で入力したカム角信号（以下、上死点後カム角信号という）に対応するクランク角度（以下、上死点後クランク角度という）にクランク軸のクランク角度が到達したタイミングを特定することができる。
【００１４】
このため、本発明の電子制御装置は、カム角信号の発生間隔（すなわち、上死点前カム角信号が入力してから上死点後カム角信号が入力するまでの期間）内において、上死点前期間と上死点後期間とに分けて、クランク軸の角速度を算出することができる。上死点前期間は、上死点前カム角信号が入力してから圧縮上死点を検出するまでの期間である。上死点後期間は、圧縮上死点を検出してから上死点後カム角信号が入力するまでの期間である。
【００１５】
これにより、本発明の電子制御装置は、カム角信号の発生間隔内の上記上死点前期間と上記上死点後期間とで互いに異なる角速度を用いてクランク軸のクランク角度を算出することができ、クランク角センサの異常時においてクランク角度の算出精度を向上させることができる。
【００１６】
また本発明の電子制御装置は、上記上死点前期間の角速度（以下、上死点前角速度という）と、上記上死点前期間の角加速度（以下、上死点前角加速度という）と、上記上死点後期間の角速度（以下、上死点後角速度という）と上記上死点後期間の角加速度（以下、上死点後角加速度という）とを算出して、上死点前角速度、上死点前角加速度、上死点後角速度および上死点後角加速度を用いて、クランク軸のクランク角度を算出する。
【００１７】
このように本発明の電子制御装置は、角速度だけではなく角加速度も用いてクランク角度を算出することにより、クランク角センサの異常時においてクランク角度の算出精度を更に向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】エンジンＥＣＵ１とその周辺装置の構成を示すブロック図である。
【図２】カム角信号、筒内圧信号、行程およびクランク角速度を示すタイミングチャートである。
【図３】加速区間算出処理を示すフローチャートである。
【図４】減速区間算出処理を示すフローチャートである。
【図５】角度算出処理を示すフローチャートである。
【図６】エンジンＥＣＵ１の処理を示すタイミングチャートである。
【図７】エンジンＥＣＵ１で算出されるクランク角度の具体例を示す図である。
【図８】カム角信号、筒内圧信号およびピークホールド信号を示すタイミングチャートである。
【発明を実施するための形態】
【００１９】
以下に本発明の実施形態を図面とともに説明する。
本実施形態の電子制御装置（Electronic Control Unit）１（以下、エンジンＥＣＵ１という）は、車両に搭載され、図１に示すように、車両のエンジン５０（本実施形態ではディーゼルエンジン）の制御を行う。
【００２０】
エンジン５０には、エンジン５０の気筒＃１，＃２，＃３，＃４毎に、対応する気筒に燃料を噴射するインジェクタ５１が設けられている。
各インジェクタ５１には、燃料の蓄圧容器であるコモンレール５２から伸びた燃料供給用配管５３が接続されている。またコモンレール５２には、車両の燃料タンク５４に貯留された燃料が、燃料ポンプ５５によって圧送される。これにより、コモンレール５２に蓄えられた高圧の燃料は、燃料供給用配管５３を介して各インジェクタ５１に供給される。そしてエンジンＥＣＵ１は、各インジェクタ５１を駆動して、エンジン５０への燃料噴射を制御する。
【００２１】
エンジンＥＣＵ１は、エンジン５０を制御するための様々な処理を行うマイクロコンピュータ（以下、マイコンという）２と、エンジンＥＣＵ１の外部とマイコン２との間で信号の入出力を行わせるための外部入出力回路３とを備えている。
【００２２】
外部入出力回路３には、クランク角センサ６１、カム角センサ６２および筒内圧センサ（ＣＰＳ：Combustion Pressure Sensor）６３が接続されている。
クランク角センサ６１は、エンジン５０のクランク軸の回転に応じて所定角度毎（例えば６°ＣＡ毎の歯、および０°ＣＡを示す歯の進角側４歯分の欠歯、計６０−４歯）に、ローレベルからハイレベルに変化するパルス状のクランク角信号を出力する。マイコン２は、このクランク角信号に基づいて、エンジン５０の回転速度およびクランク角度を算出する。
【００２３】
カム角センサ６２は、エンジン５０のカム軸の回転に応じて所定角度毎（本実施形態では１８０°ＣＡ毎の正規歯、および、気筒＃１を示す正規歯の３０°ＣＡ進角側に、気筒判別用の余分歯、計４＋１歯）に、ハイレベルからローレベルに変化する立下りエッジが生じて直後にローレベルからハイレベルに変化する立上りエッジが生じるカム角信号を出力する。マイコン２は、このカム角信号に基づいて、燃料噴射を行う気筒の判別を行う。
【００２４】
筒内圧センサ６３は、エンジン５０の各気筒に取り付けられ、対応する気筒内の圧力を検出し、検出した筒内圧を示す筒内圧信号を出力する。
そして、クランク角センサ６１およびカム角センサ６２からの信号など、ハイレベルとローレベルとに変化する信号については、外部入出力回路３により波形整形されてマイコン２に入力される。また、筒内圧センサ６３からの信号など、アナログ信号については、外部入出力回路３に備えられたＡＤ変換器（図示省略）によりデジタル信号に変換されてマイコン２に入力される。
【００２５】
また外部入出力回路３には、各インジェクタ５１が接続されている。そして各インジェクタ５１には、マイコン２からの駆動信号に従い外部入出力回路３を介して駆動電流が供給される。
【００２６】
またマイコン２は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３および入出力ポート１４と、これらを相互に接続するバス１５とを備える。
ＣＰＵ１１は、エンジン５０を制御するための各種信号を入出力ポート１４を介して入力する。そしてＣＰＵ１１は、ＲＯＭ１２に記憶されたプログラムに基づいて各種処理を実行する。またＣＰＵ１１は、入出力ポート１４を介して入力される各種信号に基づいて制御演算を行い、その演算結果に基づき、インジェクタ５１等の電気負荷へ入出力ポート１４を介して駆動信号を出力することにより、エンジン５０の制御に関係する電気負荷を制御する。
【００２７】
ＲＯＭ１２は、不揮発性メモリであり、ＣＰＵ１１が実行するプログラムと、プログラムの実行時に参照されるデータを記憶する。
ＲＡＭ１３は、揮発性メモリであり、ＣＰＵ１１の演算結果等を一時的に記憶する。
【００２８】
図２に示すように、本実施形態では、気筒＃１，＃２，＃３，＃４の圧縮上死点はそれぞれ、９０°ＣＡ、６３０°ＣＡ、２７０°ＣＡ、４５０°ＣＡである。
さらに本実施形態では、カム角信号の立下りエッジは、０°ＣＡ、１８０°ＣＡ、３６０°ＣＡ、５４０°ＣＡ、６９０°ＣＡで発生する。
【００２９】
また、各気筒の筒内圧信号は、対応する気筒の圧縮上死点で１回目のピークが発生し（ピークＰＫ１を参照）、その後、燃焼による筒内圧増加に起因した２回目のピークが発生する（ピークＰＫ２を参照）。
【００３０】
また、各気筒の圧縮行程における後半９０°ＣＡの範囲では、クランク角速度が徐々に小さくなり（減速区間Ｉｄを参照）、各気筒の燃焼行程における前半９０°ＣＡの範囲では、クランク角速度が徐々に大きくなる（加速区間Ｉａを参照）。
【００３１】
このように構成されたエンジンＥＣＵ１において、ＣＰＵ１１は、後述する加速区間算出処理、減速区間算出処理および角度算出処理を実行する。
まず、ＣＰＵ１１が実行する加速区間算出処理の手順を説明する。加速区間算出処理は、余分歯（６９０°ＣＡ）以外の正規歯によるカム角信号の立下りエッジが発生する毎に実行される処理である。
【００３２】
なお、後述のイベント回数Ｅｃ、ＣＰＳイベント回数Ｅｐ、計測時間Ｔａ、加速時間ｔa、減速時間ｔd、加速時角速度ｖa、加速時角加速度ａa、減速時角速度ｖd、減速時角加速度ａd、クランク角度θ、イベント時角度θｅおよび角度上限値θｍａｘは、変数としてＲＡＭ１３に設けられている。これらのうち計測時間Ｔａは、例えば１０μｓ毎に自動的にインクリメントし、ある時点でその値が０に設定されると、その時点で再び０からインクリメントする。
【００３３】
この加速区間算出処理が実行されると、ＣＰＵ１１は、図３に示すように、まずＳ１０にて、当該加速区間算出処理の実行開始の起因となったカム角信号の立下りエッジは、０°ＣＡで発生したものであるか否かを判断する。具体的には、前回のカム角信号の立下りエッジが余分歯によるものである場合に、今回のカム角信号の立下りエッジが０°ＣＡで発生したと判断する。なおＳ１０では、前回立下りエッジ時間間隔に対する今回立下りエッジ時間間隔の比率を算出し、この比率が予め設定された余分歯判定値（例えば０．５）未満である場合に、前回のカム角信号の立下りエッジが余分歯に起因したものであると判断する。
【００３４】
ここで、カム角信号の立下りエッジが０°ＣＡで発生したものである場合には（Ｓ１０：ＹＥＳ）、Ｓ２０にて、イベント回数Ｅｃをクリア（０に設定）、Ｓ４０に移行する。一方、カム角信号の立下りエッジが０°ＣＡで発生したものでない場合には（Ｓ１０：ＮＯ）、Ｓ３０にて、イベント回数Ｅｃをインクリメント（１加算）し、Ｓ４０に移行する。
【００３５】
そしてＳ４０に移行すると、ＣＰＳイベント回数Ｅｐをクリアする。
その後Ｓ５０にて、計測時間Ｔａを加速時間ｔaとして保持する。そしてＳ６０にて、計測時間Ｔａをクリアする。
【００３６】
その後Ｓ７０にて、イベント時角度θｅを算出する。具体的には、イベント回数Ｅｃを用いて下式（１）によりイベント時角度θｅを算出する。
θｅ  ＝  Ｅｃ  ×  ９０［°ＣＡ］    ・・・（１）
そしてＳ８０にて、クランク角度θがイベント時角度θｅに等しいか否かを判断する。ここで、クランク角度θがイベント時角度θｅに等しい場合には（Ｓ８０：ＹＥＳ）、Ｓ１００に移行する。一方、クランク角度θがイベント時角度θｅに等しくない場合には（Ｓ８０：ＮＯ）、Ｓ９０にて、イベント時角度θｅに等しくなるようにクランク角度θの値を変更し、Ｓ１００に移行する。
【００３７】
そしてＳ１００に移行すると、加速時角速度ｖaを算出する。具体的には、加速時間ｔaを用いて下式（２）により加速時角速度ｖaを算出する。
ｖa  ＝  ９０［°ＣＡ］／ｔa    ・・・（２）
さらにＳ１１０にて、加速時角加速度ａaを算出し、加速区間算出処理を一旦終了する。具体的には、加速時間ｔaと加速時角速度ｖaと減速時角速度ｖd（後述）とを用いて下式（３）により加速時角加速度ａaを算出する。
【００３８】
ａa  ＝  （ｖa−ｖd）／ｔa    ・・・（３）
次に、ＣＰＵ１１が実行する減速区間算出処理の手順を説明する。減速区間算出処理は、エンジンＥＣＵ１の動作中において所定時間毎（例えば１０μｓ毎）に繰り返し実行される処理である。
【００３９】
この減速区間算出処理が実行されると、ＣＰＵ１１は、図４に示すように、まずＳ２１０にて、各気筒の筒内圧センサ６３からそれぞれ取得した筒内圧信号が示す筒内圧値について、筒内圧値の微分値を算出し、ＲＡＭ１３に記憶する。
【００４０】
そしてＳ２２０にて、筒内圧信号のピークが発生したか否かを判断する。具体的には、Ｓ２１０で算出した微分値の時間変化を示す微分値波形が正値から負値に変化するときのゼロクロス点を検出し、このゼロクロス点を検出したときに、筒内圧信号のピークが発生したと判断する。
【００４１】
ここで、筒内圧信号のピークが発生した気筒がない場合には（Ｓ２２０：ＮＯ）、減速区間算出処理を一旦終了する。一方、筒内圧のピークが発生した気筒がある場合には（Ｓ２２０：ＹＥＳ）、Ｓ２３０にて、ＣＰＳイベント回数Ｅｐをインクリメントし、さらにＳ２４０にて、ＣＰＳイベント回数Ｅｐが１に等しいか否かを判断する。
【００４２】
ここで、ＣＰＳイベント回数Ｅｐが１に等しくない場合には（Ｓ２４０：ＮＯ）、減速区間算出処理を一旦終了する。一方、ＣＰＳイベント回数Ｅｐが１に等しい場合には（Ｓ２４０：ＹＥＳ）、Ｓ２５０にて、ＣＰＳイベント回数Ｅｐをインクリメントし、さらにＳ２６０にて、計測時間Ｔａを減速時間ｔdとして保持する。そしてＳ２７０にて、計測時間Ｔａをクリアする。
【００４３】
その後Ｓ２８０にて、Ｓ７０と同様にして、イベント時角度θｅを算出する。そしてＳ２９０にて、クランク角度θがイベント時角度θｅに等しいか否かを判断する。ここで、クランク角度θがイベント時角度θｅに等しい場合には（Ｓ２９０：ＹＥＳ）、Ｓ３１０に移行する。一方、クランク角度θがイベント時角度θｅに等しくない場合には（Ｓ２９０：ＮＯ）、Ｓ３００にて、イベント時角度θｅに等しくなるようにクランク角度θの値を変更し、Ｓ３１０に移行する。
【００４４】
そしてＳ３１０に移行すると、減速時角速度ｖdを算出する。具体的には、減速時間ｔdを用いて下式（４）により減速時角速度ｖdを算出する。
ｖd  ＝  ９０［°ＣＡ］／ｔd    ・・・（４）
さらにＳ３２０にて、減速時角加速度ａdを算出し、減速区間算出処理を一旦終了する。具体的には、減速時間ｔdと加速時角速度ｖaと減速時角速度ｖdとを用いて下式（５）により減速時角加速度ａdを算出する。
【００４５】
ａd  ＝  （ｖd−ｖa）／ｔd    ・・・（５）
次に、ＣＰＵ１１が実行する角度算出処理の手順を説明する。角度算出処理は、エンジンＥＣＵ１の動作中において所定時間毎（例えば１０μｓ毎）に繰り返し実行される処理である。
【００４６】
この角度算出処理が実行されると、ＣＰＵ１１は、図５に示すように、まずＳ４１０にて、クランク角センサ６１が故障しているか否かを判断する。具体的には、例えば、クランク角センサ６１が故障しているか否かを示す故障コードを参照することにより、クランク角センサ６１の故障を判断する。なお、上記の故障コードはＲＡＭ１３に記憶されている。
【００４７】
ここで、クランク角センサ６１が故障していない場合には（Ｓ４１０：ＮＯ）、角度算出処理を一旦終了する。一方、クランク角センサ６１が故障している場合には（Ｓ４１０：ＹＥＳ）、Ｓ４２０にて、加速区間であるか否かを判断する。具体的には、イベント回数Ｅｃが０，２，４，６である場合には、減速区間であると判断し、イベント回数Ｅｃが１，３，５，７である場合には、加速区間であると判断する。
【００４８】
ここで、加速区間である場合には（Ｓ４２０：ＹＥＳ）、Ｓ４３０にて、下式（６）によりクランク角度θを算出し、Ｓ４５０に移行する。
θ  ＝  θｅ  ＋  ｖd×Ｔａ  ＋  ａa×Ｔａ2／２    ・・・（６）
一方、減速区間である場合には（Ｓ４２０：ＮＯ）、Ｓ４４０にて、下式（７）によりクランク角度θを算出し、Ｓ４５０に移行する。
【００４９】
θ  ＝  θｅ  ＋  ｖa×Ｔａ  ＋  ａd×Ｔａ2／２    ・・・（７）
そしてＳ４５０に移行すると、角度上限値θｍａｘを算出する。具体的には、イベント回数Ｅｃを用いて下式（８）により角度上限値θｍａｘを算出する。
【００５０】
θｍａｘ  ＝  （Ｅｃ＋１）×９０［°ＣＡ］    ・・・（８）
そしてＳ４６０にて、クランク角度θが角度上限値θｍａｘを超えているか否かを判断する。ここで、クランク角度θが角度上限値θｍａｘ以下である場合には（Ｓ４６０：ＮＯ）、角度算出処理を一旦終了する。一方、クランク角度θが角度上限値θｍａｘを超えている場合には（Ｓ４６０：ＹＥＳ）、Ｓ４７０にて、角度上限値θｍａｘに等しくなるようにクランク角度θの値を変更し、角度算出処理を一旦終了する。
【００５１】
次に、このように構成されたエンジンＥＣＵ１においてクランク角センサ６１が故障している場合の動作の具体例を説明する。
図６に示すように、まず、クランク角度が０°ＣＡのときにカム角信号の立下りエッジが発生すると（時刻ｔ０１のカム角信号を参照）、加速区間算出処理が開始され（加速区間算出処理タイミングＴＭａ１を参照）、イベント回数Ｅｃがクリアされることにより、イベント回数Ｅｃが７から０に変化する（時刻ｔ０１のイベント回数Ｅｃを参照）。そして、この時点における計測時間Ｔａが加速時間ｔaとして保持されるとともに、計測時間Ｔａがクリアされる（時刻ｔ０１の計測時間Ｔａを参照）。さらに、この時点におけるイベント時角度θｅ（０°ＣＡ）に等しくなるようにクランク角度θの値が変更される（時刻ｔ０１のクランク角度θを参照）。そして、加速時角速度ｖaと加速時角加速度ａaが算出される。
【００５２】
その後、上記所定時間（本実施形態では１０μｓ）が経過する毎に（角度算出処理タイミングＴＭθを参照）、角度算出処理において、最新の加速時角速度ｖaと減速時角加速度ａdを用いてクランク角度θが算出される（式（７）を参照）。
【００５３】
また、圧縮上死点に起因して筒内圧のピークが発生すると（時刻ｔ０２の筒内圧信号を参照）、減速区間算出処理において、イベント回数Ｅｃがインクリメントされることにより、イベント回数Ｅｃが０から１に変化する（時刻ｔ０２のイベント回数Ｅｃを参照）。そして、この時点における計測時間Ｔａが減速時間ｔdとして保持されるとともに、計測時間Ｔａがクリアされる（時刻ｔ０２の計測時間Ｔａを参照）。さらに、この時点におけるイベント時角度θｅ（９０°ＣＡ）に等しくなるようにクランク角度θの値が変更される（時刻ｔ０２のクランク角度θを参照）。そして、減速時角速度ｖdと減速時角加速度ａdが算出される。
【００５４】
その後、上記所定時間（本実施形態では１０μｓ）が経過する毎に（角度算出処理タイミングＴＭθを参照）、角度算出処理において、最新の減速時角速度ｖdと加速時角加速度ａaを用いてクランク角度θが算出される（式（６）を参照）。
【００５５】
なお、圧縮上死点に起因した筒内圧のピークの後に、燃焼に起因して筒内圧のピークが発生すると（時刻ｔ０３の筒内圧信号を参照）、このピークは、カム角信号の立下りエッジが発生して初回のピークではないため、角速度と角加速度を算出する処理は行われない。
【００５６】
その後、クランク角度が１８０°ＣＡのときにカム角信号の立下りエッジが発生すると（時刻ｔ０４のカム角信号を参照）、加速区間算出処理が開始され（加速区間算出処理タイミングＴＭａ２を参照）、イベント回数Ｅｃがインクリメントされることにより、イベント回数Ｅｃが１から２に変化する（時刻ｔ０４のイベント回数Ｅｃを参照）。そして、この時点における計測時間Ｔａが加速時間ｔaとして保持されるとともに、計測時間Ｔａがクリアされる（時刻ｔ０４の計測時間Ｔａを参照）。さらに、この時点におけるイベント時角度θｅ（１８０°ＣＡ）に等しくなるようにクランク角度θの値が変更される（時刻ｔ０４のクランク角度θを参照）。そして、加速時角速度ｖaと加速時角加速度ａaが算出される。
【００５７】
このように構成されたエンジンＥＣＵ１は、クランク角信号と、カム角信号と、筒内圧信号とを入力して、エンジン５０を制御する。クランク角信号は、エンジン５０のクランク軸の回転に応じて予め設定された第１所定クランク角度毎（本実施形態では６°ＣＡ毎）にクランク角センサ６１から出力される。カム角信号は、エンジン５０のカム軸の回転に応じてカム軸の角度がエンジン５０の気筒判別が可能となるように設定された第２所定クランク角度（本実施形態では１８０°ＣＡ）になる毎にカム角センサ６２から出力される。筒内圧信号は、エンジン５０の気筒の内部の圧力を検出する筒内圧センサ６３から出力される。
【００５８】
そしてエンジンＥＣＵ１は、筒内圧信号が示す筒内圧に基づいて、気筒＃１，＃２，＃３，＃４における圧縮上死点を検出する（Ｓ２１０，Ｓ２２０）。
またエンジンＥＣＵ１は、圧縮上死点を検出したタイミングと、圧縮上死点より前においてカム角信号が直近で入力したタイミングとの間におけるクランク軸の角速度（減速時角速度ｖd）および角加速度（減速時角速度ｖd）とを算出する（Ｓ３１０，Ｓ３２０）。
【００５９】
さらにエンジンＥＣＵ１は、圧縮上死点を検出したタイミングと、圧縮上死点より後においてカム角信号が直近で入力したタイミングとの間におけるクランク軸の角速度（加速時角速度ｖa）および角加速度（加速時角加速度ａa）とを算出する（Ｓ１００，Ｓ１１０）。
【００６０】
そしてエンジンＥＣＵ１は、クランク角センサ６１が故障している場合に、加速時角速度ｖa、加速時角加速度ａa、減速時角速度ｖdおよび減速時角速度ｖdを用いて、クランク角度θを算出する（Ｓ４１０〜Ｓ４４０）。
【００６１】
具体的には、上式（２）により加速時角速度ｖaを算出し（Ｓ１００）、さらに、上式（３）により加速時角加速度ａaを算出し（Ｓ１１０）、上式（４）により減速時角速度ｖdを算出し（Ｓ３１０）、上式（５）により減速時角加速度ａdを算出する（Ｓ３２０）。
【００６２】
このようにエンジンＥＣＵ１は、まず、筒内圧信号に基づいて、気筒＃１，＃２，＃３，＃４における圧縮上死点を検出することにより、クランク軸のクランク角度が、圧縮上死点に対応するクランク角度（以下、上死点クランク角度という）に到達したタイミングを特定することができる。
【００６３】
さらにエンジンＥＣＵ１は、カム角信号を入力することにより、圧縮上死点より前において直近で入力したカム角信号（以下、上死点前カム角信号という）に対応するクランク角度（以下、上死点前クランク角度という）にクランク軸のクランク角度が到達したタイミングを特定することができる。
【００６４】
またエンジンＥＣＵ１は、カム角信号を入力することにより、圧縮上死点より後において直近で入力したカム角信号（以下、上死点後カム角信号という）に対応するクランク角度（以下、上死点後クランク角度という）にクランク軸のクランク角度が到達したタイミングを特定することができる。
【００６５】
このためエンジンＥＣＵ１は、カム角信号の発生間隔（すなわち、上死点前カム角信号が入力してから上死点後カム角信号が入力するまでの期間）内において、上死点前期間と上死点後期間とに分けて、クランク軸の角速度を算出することができる。上死点前期間は、上死点前カム角信号が入力してから圧縮上死点を検出するまでの期間である。上死点後期間は、圧縮上死点を検出してから上死点後カム角信号が入力するまでの期間である。
【００６６】
これによりエンジンＥＣＵ１は、カム角信号の発生間隔内の上記上死点前期間と上記上死点後期間とで互いに異なる角速度を用いてクランク軸のクランク角度を算出することができ、クランク角センサ６１の異常時においてクランク角度の算出精度を向上させることができる。
【００６７】
またエンジンＥＣＵ１は、加速時角速度ｖa、加速時角加速度ａa、減速時角速度ｖdおよび減速時角速度ｖdを用いて、クランク角度θを算出する。このようにエンジンＥＣＵ１は、角速度だけではなく角加速度も用いてクランク角度を算出することにより、クランク角センサ６１の異常時においてクランク角度の算出精度を更に向上させることができる。
【００６８】
図７は、従来方法で算出されたクランク角度と、エンジンＥＣＵ１で算出されたクランク角度と、実際のクランク角度の具体例を示す図である。
図７に示すように、まず、クランク角度が０°ＣＡのときにカム角信号の立下りエッジが発生すると（時刻ｔ１１を参照）、エンジンＥＣＵ１において加速区間算出処理が開始され、加速時間ｔ０aが設定されるとともに、イベント時角度θ０ｅ（０°ＣＡ）に等しくなるようにクランク角度θが変更される。さらに、下式（９）により加速時角速度ｖ１aが算出されるとともに、下式（１０）により加速時角加速度ａ１aが算出される。なお、式（１０）におけるｖ０dは、直近の減速区間算出処理で算出された減速時角速度である。
【００６９】
ｖ１a  ＝  ９０［°ＣＡ］／ｔ０a    ・・・（９）
ａ１a  ＝  （ｖ１a−ｖ０d）／ｔ０a    ・・・（１０）
その後、クランク角度が９０°ＣＡに到達するまでは、下式（１１）によりクランク角度θ１が算出される（時刻ｔ１１〜ｔ１２における曲線Ｌ０１を参照）。なお、式（１１）における「ｔ」は時刻ｔ１１を起点とした経過時間である。
【００７０】
θ１  ＝  θ０ｅ  ＋  ｖ１a×ｔ  ＋  ａ０d×ｔ2／２    ・・・（１１）
次に、クランク角度が９０°ＣＡのときに筒内圧のピークが発生すると（時刻ｔ１２を参照）、エンジンＥＣＵ１において減速区間算出処理が開始され、減速時間ｔ１dが設定されるとともに、イベント時角度θ１ｅ（９０°ＣＡ）に等しくなるようにクランク角度θが変更される。さらに、下式（１２）により減速時角速度ｖ１dが算出されるとともに、下式（１３）により減速時角加速度ａ１dが算出される。
【００７１】
ｖ１d  ＝  ９０［°ＣＡ］／ｔ１d    ・・・（１２）
ａ１d  ＝  （ｖ１d−ｖ１a）／ｔ１d    ・・・（１３）
その後、クランク角度が１８０°ＣＡに到達するまでは、下式（１４）によりクランク角度θ２が算出される（時刻ｔ１２〜ｔ１３における曲線Ｌ０２を参照）。なお、式（１４）における「ｔ」は時刻ｔ１２を起点とした経過時間である。
【００７２】
θ２  ＝  θ１ｅ  ＋  ｖ１d×ｔ  ＋  ａ１a×ｔ2／２    ・・・（１４）
次に、クランク角度が１８０°ＣＡのときにカム角信号の立下りエッジが発生すると（時刻ｔ１３を参照）、エンジンＥＣＵ１において加速区間算出処理が開始され、加速時間ｔ１aが設定されるとともに、イベント時角度θ２ｅ（１８０°ＣＡ）に等しくなるようにクランク角度θが変更される。さらに、下式（１５）により加速時角速度ｖ２aが算出されるとともに、下式（１６）により加速時角加速度ａ２aが算出される。
【００７３】
ｖ２a  ＝  ９０［°ＣＡ］／ｔ１a    ・・・（１５）
ａ２a  ＝  （ｖ２a−ｖ１d）／ｔ１a    ・・・（１６）
その後、クランク角度が２７０°ＣＡに到達するまでは、下式（１７）によりクランク角度θ３が算出される（時刻ｔ１３〜ｔ１４における曲線Ｌ０３を参照）。なお、式（１７）における「ｔ」は時刻ｔ１３を起点とした経過時間である。
【００７４】
θ３  ＝  θ２ｅ  ＋  ｖ２a×ｔ  ＋  ａ１d×ｔ2／２    ・・・（１７）
次に、クランク角度が２７０°ＣＡのときに筒内圧のピークが発生すると（時刻ｔ１４を参照）、エンジンＥＣＵ１において減速区間算出処理が開始され、減速時間ｔ２dが設定されるとともに、イベント時角度θ３ｅ（２７０°ＣＡ）に等しくなるようにクランク角度θが変更される。さらに、下式（１８）により減速時角速度ｖ２dが算出されるとともに、下式（１９）により減速時角加速度ａ２dが算出される。
【００７５】
ｖ２d  ＝  ９０［°ＣＡ］／ｔ２d    ・・・（１８）
ａ２d  ＝  （ｖ２d−ｖ２a）／ｔ２d    ・・・（１９）
その後、クランク角度が３６０°ＣＡに到達するまでは、下式（２０）によりクランク角度θ４が算出される（時刻ｔ１４〜ｔ１５における曲線Ｌ０４を参照）。なお、式（２０）における「ｔ」は時刻ｔ１４を起点とした経過時間である。
【００７６】
θ４  ＝  θ３ｅ  ＋  ｖ２d×ｔ  ＋  ａ２a×ｔ2／２    ・・・（２０）
一方、従来方法では、まず、クランク角度が０°ＣＡのときにカム角信号の立下りエッジが発生すると、直近の２つのカム角信号の立下りエッジの発生間隔に基づいて角速度を算出する。その後、クランク角度が１８０°ＣＡに到達するまでは、この角速度と、時刻ｔ１１を起点とした経過時間とに基づいて、クランク角度を算出する（時刻ｔ１１〜ｔ１３における直線Ｌ１１を参照）。
【００７７】
次に、クランク角度が１８０°ＣＡのときにカム角信号の立下りエッジが発生すると、１８０°ＣＡに等しくなるようにクランク角度が変更される。さらに、直近の２つのカム角信号の立下りエッジの発生間隔に基づいて角速度を算出する。その後、クランク角度が３６０°ＣＡに到達するまでは、この角速度と、時刻ｔ１３を起点とした経過時間とに基づいて、クランク角度を算出する（時刻ｔ１３〜ｔ１５における直線Ｌ１２を参照）。
【００７８】
そして図７に示すように、時刻ｔ１１〜ｔ１５における実際のクランク角度を示す曲線Ｌ２１と、エンジンＥＣＵ１で算出されたクランク角度を示す曲線Ｌ０１〜Ｌ０４との差は、曲線Ｌ２１と、従来方法で算出されたクランク角度を示す直線Ｌ１１〜Ｌ１２との差より小さくなっている。
【００７９】
また、上述のように、各気筒の筒内圧信号では、対応する気筒の圧縮上死点で１回目のピークが発生し、その後、燃焼による筒内圧増加に起因した２回目のピークが発生する。このためエンジンＥＣＵ１は、筒内圧信号が示す筒内圧の時間変化を示す波形において、カム角信号が入力したタイミングから初回の極大値を検出したときに、圧縮上死点を検出したと判断する（Ｓ２１０〜Ｓ２４０）。
【００８０】
以上説明した実施形態において、エンジンＥＣＵ１は本発明における電子制御装置、Ｓ２１０，Ｓ２２０の処理は本発明における上死点検出手段、Ｓ３１０，Ｓ３２０の処理は本発明における上死点前算出手段、Ｓ１００，Ｓ１１０の処理は本発明における上死点後算出手段、Ｓ４１０〜Ｓ４４０の処理は本発明における異常時算出手段である。
【００８１】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、４気筒のエンジンを制御するものを示したが、これに限定されるものではなく、４気筒以外のエンジンにおいても本発明を適用可能である。
【００８２】
また上記実施形態では、エンジンＥＣＵ１がディーゼルエンジンを制御するものを示したが、ガソリンエンジンにおいても本発明を適用可能である。
また上記実施形態では、微分値波形が正値から負値に変化するときのゼロクロス点を検出することにより筒内圧信号のピークを検出するものを示した。しかし、エンジンＥＣＵ１のマイコン２が、入力信号の最大値を保持するピークホールド回路を搭載している場合には、ピークホールド回路を用いて筒内圧信号のピークを検出するようにしてもよい。図８に示すように、気筒の筒内圧信号ＣＰＳは、対応する気筒の圧縮上死点で１回目のピークが発生し（ピークＰＫ１を参照）、その後、燃焼による筒内圧増加に起因した２回目のピークが発生する（ピークＰＫ２を参照）。このため、筒内圧信号を入力信号としたピークホールド回路が出力するピークホールド信号ＰＨＳは、カム角信号の入力以降、まず、ピークＰＫ１によるピークを保持し、その後に、ピークＰＫ２によるピークを保持する。このため、カム角信号の入力タイミングから初回のピークホールド時に、圧縮上死点を検出したと判断するようにする。このように圧縮上死点の検出をソフトウェアではなくハードウェアで行うことにより、マイコン２のＣＰＵ１１の演算負荷を低減することができる。ただし、ピークホールド時の検出に時間遅れがある場合には、この時間遅れを考慮して、圧縮上死点の検出タイミングを補正する必要がある。
【符号の説明】
【００８３】
１…エンジンＥＣＵ、５０…エンジン、６１…クランク角センサ、６２…カム角センサ、６３…筒内圧センサ
【図１】
2015214938.tif 000003
【図２】
2015214938.tif 000004
【図３】
2015214938.tif 000005
【図４】
2015214938.tif 000006
【図５】
2015214938.tif 000007
【図６】
2015214938.tif 000008
【図７】
2015214938.tif 000009
【図８】
2015214938.tif 000010