(57)【特許請求の範囲】
【請求項１】
内燃機関のクランク軸の回転と同期して回転する複数の被検出部を検出するクランク角センサの出力を取り込み、前記クランク軸の回転角度を検出する回転角度検出装置において、
前記クランク軸のトルクを生成する燃料噴射を停止させる燃料カット制御を行う手段と、
前記クランク軸の１回転、２回転、又は、前記クランク軸の回転角度に応じて周期的に変化する力を前記クランク軸に及ぼす部材がある場合における前記力の周期、該力の周期と「３６０°ＣＡ」との公倍数、若しくは該力の周期と「７２０°ＣＡ」との公倍数によって定義される区間である全区間を前記被検出部を用いて複数の区間に分割し、前記燃料カット制御時の前記クランク角センサの出力に基づき、前記複数の区間の全てについてそれぞれの回転に要する時間を算出する算出手段と、
前記複数の区間の全てについて、前記算出手段による算出値の複数個の平均値をそれぞれ算出する平均化手段と、
前記複数の区間の前記平均値を平均した全区間平均値を算出する全区間平均化手段と、
前記複数の区間のうちの任意の区間の前記平均値と前記全区間平均値との比較に基づき、前記任意の区間の角度誤差を検出する誤差検出手段とを備えることを特徴とする回転角度検出装置。
【請求項２】
前記任意の区間の前記平均値と前記全区間平均値との間のずれについての基準を定める規範モデルを記憶する記憶手段を更に備え、
前記誤差検出手段は、前記誤差の検出に際し、前記任意の区間の前記平均値と前記全区間平均値との間のずれから前記規範モデルによって定められたずれを除去することを特徴とする請求項１記載の回転角度検出装置。
【請求項３】
前記内燃機関が４ストロークエンジンであって且つ前記クランク軸と機械的に連結されたカム軸を有するものであり、
前記規範モデルによって定められる前記ずれには、前記４ストロークを１周期とする周期的な力が前記クランク軸に加わることに起因して生じるずれが含まれることを特徴とする請求項２記載の回転角度検出装置。
【請求項４】
前記全区間が前記クランク軸の１回転であることを特徴とする請求項１〜３のいずれかに記載の回転角度検出装置。
【請求項５】
前記内燃機関が４ストロークエンジンであって且つ前記クランク軸と機械的に連結されたカム軸を有するものであり、
前記全区間が前記クランク軸の２回転であることを特徴とする請求項１〜３のいずれかに記載の回転角度検出装置。
【請求項６】
前記誤差検出手段は、前記任意の区間と該任意の区間とは「３６０°ＣＡ」だけ離間した区間とのそれぞれにおける前記平均化手段によって算出される平均値と前記全区間平均値との比に基づき、前記任意の区間の角度誤差を検出することを特徴とする請求項５記載の回転角度検出装置。
【請求項７】
前記内燃機関が前記クランク軸と機械的に連結されたカム軸と同期して回転する複数の被検出部を検出するカム角センサの検出値を取り込む手段と、
前記クランク軸の２回転を前記全区間として前記カム軸に設けられた前記被検出部によって複数のカム側区間に分割し、該複数のカム側区間を用いて前記算出手段、前記平均化手段及び前記誤差検出手段による処理と同一の処理を行なうことで、前記カム側区間の角度誤差を検出するカム側検出手段と、
前記カム側検出手段の検出結果に基づき、前記誤差検出手段の検出結果を補正する補正手段とを更に備えることを特徴とする請求項１〜６のいずれかに記載の回転角度検出装置。
【請求項８】
前記内燃機関は、多気筒内燃機関であり、
前記内燃機関の各気筒の燃料噴射に伴うクランク軸の回転速度の上昇量に基づき、各気筒の燃料噴射弁の燃料噴射特性のばらつきを補正するための学習値を学習する手段を更に備え、
前記誤差検出手段によって検出された誤差を補償するための学習値は、前記燃料噴射特性のばらつきを補正するための学習値の学習処理に利用されることを特徴とする請求項１〜７のいずれか１項に記載の回転角度検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関のクランク軸の回転と同期して回転する複数の被検出部を検出するクランク角センサの出力を取り込み、前記クランク軸の回転角度を検出する回転角度検出装置に関する。
【背景技術】
【０００２】
この種の回転角度検出装置としては、クランク角センサの出力に基づき、クランク軸に設けられたロータ上に等間隔で形成された複数の歯（被検出部）を検出することで、出力軸（クランク軸）の回転角度を検出するものが周知である。ただし、実際の歯と歯の間の間隔には、通常、構造上の誤差がある。そして、構造上の誤差があると、クランク軸の回転角度の検出に誤差が生じる。
【０００３】
そこで従来は、例えば下記特許文献１に見られるように、２つの歯によって区画される区間の回転に要する時間を検出するとともに、この検出される時間と理論時間とを比較して上記２つの歯の間の角度誤差を検出する装置も提案されている。ここで、理論時間は、クランク軸の一回転の領域が上記歯に対応して複数に分割された各区間毎に定義されている。この装置によれば、クランク軸の回転速度が「３６０°ＣＡ」毎に周期的に変化したとしても、上記角度誤差の検出に際し、この周期的な変化の影響を除去することができる。
【０００４】
ただし、実際のクランク軸の回転速度は、必ずしも「３６０°ＣＡ」毎に周期的に変化するわけではない。このため、検出される時間と理論時間との差には、「３６０°ＣＡ」の周期を有しないクランク軸の回転変動の影響が含まれることとなる。したがって、上記装置によって角度誤差として検出されるものには、実際には「３６０°ＣＡ」の周期を有しないクランク軸の回転変動の影響が含まれることとなり、上記角度誤差を精度良く検出することを困難なものとしている。
【０００５】
なお、回転角度検出装置としては、特許文献１の他、例えば特許文献２、特許文献３がある。
【特許文献１】特開平１１−２４７７０７号公報
【特許文献１】特開平１０−１２２０３１号公報
【特許文献１】特開平１０−７３６１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記課題を解決するためになされたものであり、その目的は、クランク軸の回転と同期して回転する被検出部の構造に起因したクランク軸の角度誤差を精度良く検出することのできる回転角度検出装置を提供することにある。
【課題を解決するための手段】
【０００７】
以下、上記課題を解決するための手段、及びその作用効果について記載する。
【０００８】
請求項１記載の発明は、前記クランク軸のトルクを生成する燃料噴射を停止させる燃料カット制御を行う手段と、前記クランク軸の１回転、２回転、又は、前記クランク軸の回転角度に応じて周期的に変化する力を前記クランク軸に及ぼす部材がある場合における前記力の周期、該力の周期と「３６０°ＣＡ」との公倍数、若しくは該力の周期と「７２０°ＣＡ」との公倍数によって定義される区間である全区間を前記被検出部を用いて複数の区間に分割し、前記燃料カット制御時の前記クランク角センサの出力に基づき、前記複数の区間の全てについてそれぞれの回転に要する時間を算出する算出手段と、前記複数の区間の全てについて、前記算出手段による算出値の複数個の平均値をそれぞれ算出する平均化手段と、前記複数の区間の前記平均値を平均した全区間平均値を算出する全区間平均化手段と、前記複数の区間のうちの任意の区間の前記平均値と前記全区間平均値との比較に基づき、前記任意の区間の角度誤差を検出する誤差検出手段とを備えることを特徴とする。
【０００９】
上記構成では、上記全区間の整数倍（上記複数個に対応）のクランク角度だけクランク軸が回転する際に、上記複数の区間のそれぞれの回転に要する時間の算出値が、上記整数回ずつ算出される。そして上記平均化手段によって、複数の区間のそれぞれ毎に、算出値の平均値が算出される。ここで、上記少なくとも１つの区間を基準としたときの上記任意の区間の構造上の角度誤差は、上記少なくとも１つの区間の上記平均値に対する上記任意の区間の上記平均値のずれとなって現れる。このため、これら平均値の比較により、任意の区間の角度誤差を検出することができる。
【００１０】
更に、上記各平均値は、クランク軸の回転変動が平均化されたものとなっている。このため、これら平均値を用いることで、角度誤差の検出に際して、クランク軸に加わる複雑な力によるクランク軸の回転変動や、クランク角センサの出力に混入するノイズ等の影響を好適に抑制することができる。
【００１２】
特に、上記構成では、全区間平均値と任意の区間の平均値とが比較される。これは、各区間の回転に要する時間の基準を、上記全区間平均値とすることを意味する。したがって、上記基準を、クランク軸の１回転以上の回転に際しての回転変動を平均化したものとすることができ、ひいては、区間の回転に要する時間として適切な値とすることができる。
【００１３】
請求項２記載の発明は、請求項１記載の発明において、前記任意の区間の前記平均値と前記全区間平均値との間のずれについての基準を定める規範モデルを記憶する記憶手段を更に備え、前記誤差検出手段は、前記誤差の検出に際し、前記任意の区間の前記平均値と前記全区間平均値との間のずれから前記規範モデルによって定められたずれを除去することを特徴とする。
【００１４】
上記構成において、クランク軸の回転に伴ってクランク軸に加わる力の変動には、例えば４ストロークを１周期とするもの等、ある程度傾向がある。このため、規範モデルを用いることで、検出される上記ずれから、クランク軸に加わる力として想定される力によるクランク軸の回転変動の影響を好適に除去することができる。
【００１５】
また、上記構成において、燃料カット制御時にクランク軸に加わる力は、内燃機関の機種によってそれぞれ異なる傾向にある。このため、燃料カット制御時のクランク軸の回転変動も内燃機関の機種毎にそれぞれ異なる傾向にある。この点、上記構成によれば、クランク軸に加わる力によってクランク軸の回転が変動する際の回転変動の傾向から想定される上記ずれを、規範モデルによって定めることも可能となる。そして、クランク軸の回転変動に起因したずれを定める規範モデルを用いることで、角度誤差の検出に際して、クランク軸の回転変動の影響を排除することができる。
【００１７】
請求項３記載の発明は、請求項２記載の発明において、前記内燃機関が４ストロークエンジンであって且つ前記クランク軸と機械的に連結されたカム軸を有するものであり、前記規範モデルによって定められる前記ずれには、前記４ストロークを１周期とする周期的な力が前記クランク軸に加わることに起因して生じるずれが含まれることを特徴とする。
【００１８】
上記構成では、４ストローク、すなわちクランク軸の２回転によって燃焼サイクルが完了する。このため、カム軸と連結された吸気バルブや排気バルブの開弁及び閉弁のタイミングは、４ストローク周期となる。そして、圧縮工程と排気工程とでは、ピストンの上死点への変位に際してピストンに加わる力が異なるため、クランク軸に加わる力も異なる。このため、クランク軸には、燃焼サイクルに起因して、４ストロークを１周期とする周期的な力が加わることとなる。ここで、上記構成では、この周期的な力が加わることに起因した上記ずれを規範モデルに含めることで、角度誤差の検出に際して、上記周期的な力による回転変動の影響を好適に除去することができる。
【００１９】
請求項４記載の発明は、請求項１〜３のいずれかに記載の発明において、前記全区間が前記クランク軸の１回転であることを特徴とする。
【００２０】
上記構成において、クランク軸の１回転が全区間とされるために、被検出部を用いた角度誤差の算出に際し必要最小限の区間を定義することとなる。このため、角度誤差の算出に際しての演算負荷を低減することや、演算時に用いるメモリの容量を低減することができる。
【００２１】
また、クランク軸の１回転分の回転に要する時間の区間平均値が、任意の区間の角度誤差を検出するための基準として定められることとなる。一方、クランク軸の回転変動は、クランク軸の１回転を周期とする変動によってよく近似することができる。このため、１回転分の回転に要する時間の区間平均値を基準とすることで、回転変動の影響が好適に抑制された基準を定めることができる。
【００２２】
請求項５記載の発明は、請求項１〜３のいずれかに記載の発明において、前記内燃機関が４ストロークエンジンであって且つ前記クランク軸と機械的に連結されたカム軸を有するものであり、前記全区間が前記クランク軸の２回転であることを特徴とする。
【００２３】
上記構成では、４ストローク、すなわちクランク軸の２回転によって燃焼サイクルが完了する。このため、カム軸と連結された吸気バルブや排気バルブの開弁及び閉弁のタイミングは、４ストローク周期となる。そして、圧縮工程と排気工程とでは、ピストンの上死点への変位に際してピストンに加わる力が異なるため、クランク軸に加わる力も異なる。このため、クランク軸には、燃焼サイクルに起因して、４ストロークを１周期とする周期的な力が加わることとなる。このため、上記構成において、任意の区間の回転に要する時間やその平均値には、上記周期的な力のうちの同一の位相成分の影響のみが重畳されることとなる。このため、角度誤差の検出に際して、上記周期的な力の影響を把握することが可能となる。
【００２４】
請求項７記載の発明は、請求項１〜６のいずれかに記載の発明において、前記内燃機関が前記クランク軸と機械的に連結されたカム軸と同期して回転する複数の被検出部を検出するカム角センサの検出値を取り込む手段と、前記クランク軸の２回転を前記全区間として前記カム軸に設けられた前記被検出部によって複数のカム側区間に分割し、該複数のカム側区間を用いて前記算出手段、前記平均化手段及び前記誤差検出手段による処理と同一の処理を行なうことで、前記カム側区間の角度誤差を検出するカム側検出手段と、前記カム側検出手段の検出結果に基づき、前記誤差検出手段の検出結果を補正する補正手段とを更に備えることを特徴とする。
【００２５】
上記構成では、カム軸の角度誤差についても、クランク軸の角度誤差と同様にして検出される。そして、カム軸上の区間と、対応するクランク軸上の区間とについて、角度誤差の補正のなされた区間角度同士を比較することで、補正後の区間角度の互いの信頼性を把握することができる。そしてこれにより、カム側検出手段の検出結果に基づき、誤差検出手段の検出結果を補正することができる。
【００２６】
なお、上記カム側検出手段の行なう処理、すなわち、算出手段、平均化手段、誤差検出手段による処理と同一の処理としては、請求項１〜４及び６のいずれかに記載された処理とすればよい。
【発明を実施するための最良の形態】
【００２７】
（第１の実施形態）
以下、本発明にかかる回転角度検出装置を、マニュアルトランスミッション車に搭載されたディーゼル機関の回転角度検出装置に適用した第１の実施の形態について、図面を参照しつつ説明する。
【００２８】
図１に、エンジンシステムの全体構成を示す。
【００２９】
図示されるディーゼル機関１は、多気筒内燃機関（ここでは、４気筒を想定）として構成されており、各気筒毎に、燃料噴射弁２等のアクチュエータを備えている。また、各気筒のピストン３は、コンロッド４を介してクランク軸５と接続されている。また、クランク軸５は、カム軸６，８と機械的に連結されている。カム軸６，８は、クランク軸５が２回転する間に１回転するものである。すなわち、ディーゼル機関１は、４ストロークエンジンである。また、クランク軸５は、マニュアルトランスミッション（ＭＴ１０）を介して駆動輪と連結可能とされている。一方、シフト操作部１２は、ユーザによってシフト位置の操作がなされる部分であり、シフト操作部１２の操作によって、ＭＴ１０のシフト位置が変更される。なお、シフト操作部１２には、シフト操作位置を検出するシフト位置センサ１４が備えられている。
【００３０】
上記クランク軸５には、図中左側に拡大して示すように、ロータ２０が設けられている。このロータ２０には、複数の被検出部（歯部２２）が形成されている。詳しくは、ロータ２０には、基本的には歯部２２が等間隔（ここでは、「３０°ＣＡ」を例示）に形成されており、ロータ２０の一箇所には欠け歯部２４が設けられている。
【００３１】
一方、カム軸６には、ロータ３０が設けられている。このロータ３０にも、複数の被検出部（歯部３２）が形成されている。ちなみに、ここでは、４つの歯部３２が等間隔に形成された例を示した。
【００３２】
上記歯部２２は、クランク角センサ４０によって検出される。一方、上記歯部３２は、カム角センサ４２によって検出される。
【００３３】
電子制御装置（ＥＣＵ５０）は、中央処理装置（ＣＰＵ５２）や、読み出し専用メモリ（ＲＯＭ５４）、電気的書き換え可能な読み出し専用メモリ（ＥＥＰＲＯＭ５６）等を備え構成されている。そして、ＥＣＵ５０は、クランク角センサ４０や、カム角センサ４２等、ディーゼル機関の各種運転状態を検出するセンサの検出値と、上記シフト位置センサ１４等、ユーザからの要求についての検出値とを取り込む。そして、ＥＣＵ５０は、これら検出結果に基づき、燃料噴射弁２等の各種アクチュエータを操作することで、ディーゼル機関１の出力を制御する。
【００３４】
上記出力制御を適切に行うべく、ＲＯＭ５４内には、様々なプログラムが格納されている。このプログラムとしては、例えば各気筒の燃料噴射弁２の噴射特性のばらつきを補償する学習値を算出するための燃料噴射学習プログラム６０や、上記歯部２２間の間隔の構造上の誤差を補償するクランク角度誤差学習プログラム６２がある。
【００３５】
上記燃料噴射学習プログラム６０による学習値の算出は、次の手順にて行われる。（ア）各気筒の燃料噴射に伴うクランク軸５の回転速度の上昇量の差をゼロとするように、各気筒における燃料噴射弁２の操作量を設定する。（イ）基準となる操作量と、工程（ア）によって得られる操作量との差を、各気筒毎の学習値とする。
【００３６】
上記手順により算出される学習値を用いることで、クランク角センサ４０の出力に基づき算出される回転速度の上記上昇量を略均等することができる。しかし、歯部２２の間隔に構造上の誤差がある場合には、クランク角センサ４０の出力に基づき算出される回転角度や回転速度は、実際の回転角度や回転速度との間にずれを生じたものとなる。そして、ずれを生じているとき、上記工程（イ）によって得られる学習値によっては、各気筒の燃料噴射弁２の噴射特性のばらつきを補償することができない。
【００３７】
そこで、本実施形態では、まずクランク角度誤差学習プログラム６２を用いて、歯部２２間の間隔の構造上の誤差を補償する学習値を算出する。以下、これについて詳述する。ここでは、まず図２を用いて、歯部２２間の間隔の構造上の誤差について説明する。
【００３８】
図２（ａ）には、クランク軸５に設けられたロータ２０について、欠け歯部２４の両側の歯部２２によって区画される区間を区間Ａ０とし、時計回りに順に「６０°ＣＡ」毎に区間Ａ１〜Ａ５が定義されている。図２（ａ）では、歯部２２にずれが生じていないものが示されているため、区間Ａ０〜Ａ５は全て互いに等しいものとなっている。これに対し、区間Ａ２´，Ａ３´は、歯部２２にずれが生じたために、区間Ａ２，Ａ３に対してずれを生じた場合を示している。
【００３９】
図２（ｂ）に、ディーゼル機関１のクランク軸５のトルクの生成に寄与する燃料噴射を停止する燃料カット制御時に、上記区間Ａ０〜Ａ５において検出される回転速度を示す。また、図２（ｃ）に、上記燃料カット制御時に、上記区間Ａ０〜Ａ５の回転に要する時間（経過時間）を示す。図２（ｂ）、図２（ｃ）に実線にて模式的に示されるのは、歯部２２間の間隔に構造上のずれがない場合のものである。図示されるように、燃料カット制御がなされるために、回転速度は徐々に低下しており、経過時間は徐々に増加している。これに対し、歯部２２間の間隔に上述した構造上のずれが生じた場合に検出される回転速度を、図２（ｂ）に一点鎖線にて示す。図示されるように、回転速度は、区間Ａ２´において一旦増加し、区間Ａ３´において実際以上に小さな値となっている。また、歯部２２間の間隔に上述した構造上のずれが生じた場合に検出される経過時間を、図２（ｃ）に一点鎖線にて示す。図示されるように、経過時間は、区間Ａ２´において一旦減少し、区間Ａ３´において実際以上に大きな値となっている。
【００４０】
この歯部２２間の間隔の構造上の角度誤差を補償するためには、これを補償する学習値を学習することが望ましい。ただし、クランク軸５に加わる力によって実際のクランク軸５の回転が変動することや、クランク角センサ４０の出力にノイズが混入することなどが、学習値を精度良く学習する際の妨げとなる。以下これについて詳述する。
【００４１】
図３に、燃料カット制御時のクランク軸５の回転速度の変動を示す。図３においては、１番気筒から４番気筒までをそれぞれ「＃１〜＃４」にて示すとともに、これらの各燃焼サイクルを上記回転速度の変動とともに示している。ちなみに、燃料カット制御が前提となっているため、「燃焼行程」は示されていない。なお、ここでは、燃料カット制御による回転速度の低下を、便宜上無視して示している。
【００４２】
図示されるように、回転速度は、各気筒の圧縮上死点近傍において周期的に極小となっている。しかし、これは、圧縮上死点となるタイミングを周期とする周期的な力がクランク軸５に加わることを意味しない。例えば「１８０°ＣＡ」においては、２番気筒の圧縮上死点であるため、２番気筒のピストン３がコンロッド４を介してクランク軸５の回転を抑止しようとする力が特に強くなる（ピークとなる）。また、「３６０°ＣＡ」においては、１番気筒の圧縮上死点であるため、１番気筒のピストン３がコンロッド４を介してクランク軸５の回転を抑止しようとする力が特に強くなる（ピークとなる）。そして、図中下方に各気筒の圧縮上死点においてクランク軸５に加わる力のピーク位置を示すように、これらピーク位置は、クランク軸５上の互いに異なる位置となる。これは、各気筒のピストン３と連結されるコンロッド４がクランク軸５と接続される箇所が互いに異なるためである。
【００４３】
このため、燃料カット制御後にクランク軸５が慣性によって回転を継続しようとする力と、各気筒のピストン３がコンロッド４を介してクランク軸５を抑止しようとする力とによってクランク軸５のねじり力が生じて且つ、このねじり力は「７２０°ＣＡ」周期となっている。
【００４４】
より厳密には、図４に示されるように、クランク軸５の回転速度の低下に伴い、回転変動も減衰していく。ここでは、ねじり力の減衰も生じている。更に、例えば「１８０°ＣＡ」において、２番気筒のピストン３がコンロッド４を介してクランク軸５に加えた抑止力とクランク軸５の慣性力とによって生じたねじり力は、クランク軸５の弾性等により、その後クランク軸５に加わる逆方向のねじり力の原因ともなる。
【００４５】
このように、燃料カット制御時にクランク軸５に加わる力は複雑に変動しており、これによりクランク軸５の回転速度も複雑に変動することとなる。本実施形態では、上記歯部２２間の間隔の構造上の誤差を検出する際に、こうした変動の影響を極力抑制すべく、また、クランク角センサ４０の出力に混入するノイズの影響を極力抑制すべく、上記区間Ａ０〜Ａ５の回転に要する時間の平均値を用いるようにする。
【００４６】
すなわち、まず区間Ａｉ（ｉ＝０〜５）の回転に要する時間の算出値Ｔｉ＿ｊ（ｊ＝１〜ｎ）を算出する。ここで、「ｊ」は、サンプリング番号であり、隣接する値は、互いに隣接するタイミングでサンプリングされたことを示している。そして、図５（ａ）に示すように、これら各区間Ａｉにおける上記算出値Ｔｉ＿ｊの平均値Ｔｉｂを算出する。
【００４７】
次に、図５（ｂ）に示すように、上記平均値Ｔｉｂを平均した全区間平均値Ｔｂａを算出し、全区間平均値Ｔｂａに対する各平均値Ｔｉｂの比ｋＴｉを算出する。
【００４８】
この時点において、各比ｋＴｉは、各区間Ａｉの構造上の誤差を良く近似したものとなっている。すなわち、各平均値Ｔｉｂは、各区間Ａｉの回転に要する時間の複数の算出値の平均となっているため、クランク角センサ４０の出力に混入したノイズの影響を始め、クランク軸５の回転の減衰の影響や、回転変動の影響が抑制された値となっている。また、全区間平均値ｋＴａは、「３６０°ＣＡ×ｎ」の回転の平均値となっているため、クランク角センサ４０の出力に混入したノイズの影響を始め、クランク軸５の回転の減衰の影響や、回転変動の影響が抑制された値となっている。このため、全区間平均値Ｔｂａは、各区間Ａｉの回転に要する時間の基準値として適切な値となっており、上記比ｋＴｉは、基準に対するずれを定量化したものとなっている。このため、このずれ量は、各区間Ａｉの構造上の誤差を定量化した値として精度のよいものとなっている。
【００４９】
ただし、上記比ｋＴｉにはクランク軸５に加わる力の変動等の影響が抑制されているとはいえ、上記比ｋＴｉにはこれらの影響が含まれている。そこで、本実施形態では、図５（ｂ）に示す規範モデルを用いて、上記比ｋＴｉを補正する。ここで、規範モデルは、基本的には、上記構造上の誤差がないときの全区間によって平均化された上記各区間当たりの回転時間に対する各区間Ａｉの回転に要する時間の比を定めるものである。
【００５０】
この規範モデルは、図５（ｃ）に示すように、各区間Ａｉにそれぞれ対応した基準比ｋＴｎｉよりなる。これら基準比ｋＴｎｉは、上記構造上の誤差がないときに、全区間平均値Ｔｂａに対する各平均値Ｔｉｂの比ｋＴｉとして想定される値に設定されている。上記比ｋＴｉを基準比ｋＴｎｉで除算することで、最終的な学習値ｋＴｉｆを算出する。
【００５１】
この学習値ｋＴｉｆを用いることで、区間Ａｉの構造上の誤差を補償することができる。すなわち、例えば区間Ａｉに要する時間Ｔｉが検出されたとき、上記誤差の補償された真の時間を、「Ｔｉ／ｋＴｉｆ」と学習補正することができる。
【００５２】
以下、上記学習制御の処理手順を図６を用いて説明する。この処理の手順は、クランク角度誤差学習プログラム６２に定められている。この処理は、実際には、ＥＣＵ５０（のＣＰＵ５２）によって、フラグ処理等を有して所定のクランク角周期で繰り返し実行されるものである。
【００５３】
この一連の処理では、まずステップＳ１０において、クランク角センサ４０によって検出される区間Ａｉが区間Ａ０か否かを判断する。そして、区間Ａｉが区間Ａ０でないときには、この一連の処理を一旦終了する。一方、区間Ａｉが区間Ａ０であると判断されると、ステップＳ１２に移行する。ステップＳ１２では、学習条件が成立したか否かを判断する。この学習条件は、（イ）シフト操作部１２がニュートラルレンジに操作されていること、（ロ）回転速度が所定の範囲内（ＮＥ０以上、ＮＥ１以下）にあること、（ハ）燃料カット制御がなされていることの全ての条件が成り立つことである。
【００５４】
ここで、条件（イ）は、駆動輪側からクランク軸５に付与されるトルクを略ゼロとする条件で学習制御を行うためのものである。この条件の成立により、駆動輪側から加えられるトルク変動によってクランク軸５に加えられるトルクが変動することを回避することができる。条件（ロ）は、クランク軸５に加わるねじり力の変動が過度に大きくならない条件下等で学習制御を行うためのものである。ここで、上限値ＮＥ１は、ねじり力の変動が過度に大きくなりクランク軸５の回転変動が学習制御精度に顕著な影響を与え得る回転速度の下限値に基づき設定されている。条件（ハ）は、燃焼工程によるクランク軸５の回転変動を回避するためのものである。ちなみに、燃料カット制御は、車両減速時等において行なわれる。
【００５５】
上記学習条件が成立すると、ステップＳ１４に移行する。このステップＳ１４では、区間Ａｉの回転に要する時間Ｔｉを算出する。この処理は、クランク軸５が１回転するまで（ステップＳ１６：ＹＥＳ）行なわれる。そして、クランク軸５が１回転することで区間Ａ０〜Ａ５のそれぞれの回転に要する時間が算出されると、ステップＳ１８に移行する。ステップＳ１８〜Ｓ２４の処理は、各区間Ａ０〜Ａ５の回転に要する時間の「ｎ」個の平均値を算出すべく、各区間Ａ０〜Ａ５の回転に要する時間の「ｎ」個の積算値を算出する処理である。
【００５６】
そして、各区間Ａ０〜Ａ５の回転に要する時間の「ｎ」個の積算値を算出すると、ステップＳ２６に移行する。ステップＳ２６〜Ｓ３２の処理は、各区間Ａ０〜Ａ５の回転に要する時間の「ｎ」個の平均値Ｔｉｂと、これら平均値Ｔｉｂの平均値である全区間平均値Ｔｂａとを算出するものである。そして、上記各平均値Ｔｉｂ及び全区間平均値Ｔｂａが算出されると、ステップＳ３４に移行する。ステップＳ３４〜Ｓ３８の処理は、最終的な学習値ｋＴｉｆを算出する処理である。ここで、各基準比ｋＴｎｉは、ＥＥＰＲＯＭ５６から取り出すようにすることが望ましい。すなわち、ＥＣＵ５０のＲＯＭ５４には、この図６に示す処理手順を規定するプログラムのみを格納しておき、ディーゼル機関１の機種に応じて基準比ｋＴｎｉをＥＥＰＲＯＭ５６に格納するようにすることが望ましい。これにより、ディーゼル機関１の機種毎に各別の基準比ｋＴｎｉを用いることが容易となる。
【００５７】
なお、上記各基準比ｋＴｎｉは、歯部２２間に構造上の誤差がないときであって、各区間Ａ０〜Ａ５の回転に要する時間の計測を区間Ａ０から開始した場合に想定される値に設定する。
【００５８】
上記ステップＳ３４〜Ｓ３８までの処理が完了すると、ステップＳ４０において、学習値ｋＴｉｆをＥＥＲＰＯＭ５６に格納してこの一連の処理を一旦終了する。
【００５９】
なお、ステップＳ１２で学習条件が成立しないと判断されるときには、ステップＳ４２において、この一連の処理で用いる変数を初期化してこの一連の処理を一旦終了する。
【００６０】
以上詳述した本実施形態によれば、以下の効果が得られるようになる。
【００６１】
（１）各区間Ａ０〜Ａ５の回転に要する時間の「ｎ」個の平均値Ｔｉｂを用いて、これら区間Ａ０〜Ａ５の角度誤差を検出した。これら各平均値Ｔｉｂは、クランク角センサ４０の出力が平均化されたものとなっている。このため、特にクランク軸５の回転変動が平均化されたものとなっている。したがって、これら平均値Ｔｉｂを用いることで、角度誤差の検出に際して、クランク軸５に加わる複雑な力によるクランク軸５の回転変動や、クランク角センサ４０の出力に混入するノイズの影響を好適に抑制することができる。
【００６２】
（２）各平均値Ｔｉｂを平均した全区間平均値Ｔｂａに対する各平均値Ｔｉｂの比に基づき、各区間Ａｉの構造上の誤差を算出した。このため、各区間Ａｉの回転に要する時間の基準を、クランク軸５の１回転の回転に際しての回転変動を平均化したものとすることができ、ひいては、区間の回転に要する時間の基準として精度の良い値を用いることができる。
【００６３】
（３）全区間によって平均化された区間当たりの回転時間に対する各区間Ａｉの回転に要する時間のずれについての基準を定める規範モデルを用いて、全区間平均値Ｔｂａに対する各区間Ａｉの平均値Ｔｉｂの比ｋＴｉから、上記ずれ分を除去した。これにより、クランク軸５の回転変動の影響をより好適に排除することができる。特に、これにより、学習値の算出に際して、４ストローク周期の周期的な力による回転変動の影響についても、これを好適に除去することができる。
【００６４】
（４）各区間Ａｉの回転に要する時間の算出の開始を、予め定められた区間（ここでは、区間Ａ０）に固定した。これにより、規範モデル（基準比ｋＴｎｉ）を、予め定められた区間から計測を始めたときに想定される値として設定することができ、規範モデルをより精度良く設定することができる。
【００６５】
（第２の実施形態）
以下、第２の実施形態について、上記第１の実施形態との相違点を中心に図面を参照しつつ説明する。
【００６６】
本実施形態では、クランク軸５の２回転を全区間として、これを区間Ａ０〜Ａ５と区間Ａ６〜Ａ１１とに分割する。ここで、「Ａｐ＝Ａｉ＋３６０°ＣＡ（ｉ＝０〜５、ｐ＝６〜１１）」とする。この区間Ａｑ（ｑ＝０〜１１）の設定には、クランク角センサ４０の出力に基づくクランク角に加えて、カム角センサ４２の出力に基づくカム角を用いる。そして、図７（ａ）に示すように、これら各区間Ａ０〜Ａ１１のそれぞれの回転に要する時間Ｔｑ＿ｊ（ｑ＝０〜１１、ｊ＝１〜ｎ）を「ｎ」個サンプリングして、これら各「ｎ」個の平均値Ｔｑｂを算出する。
【００６７】
ここで、各平均値Ｔｑｂは、時間の算出値の「ｎ」個の平均であるために、クランク角センサ４０の出力に混入したノイズの影響が十分に抑制されたものとなっている。また、クランク軸５の回転変動の影響も含まれてはいるが、これは十分に抑制されている。この回転変動としては、例えば、上述した４ストローク周期でクランク軸５に加わる周期的な力によるものもある。ただし、この周期的な力によるものついては、この力の異なる位相における力が各平均値Ｔｑｂに平均化されて反映されることはない。すなわち、各平均値Ｔｑｂには、上記周期的な力の特定の位相部分の影響のみが反映されている。ちなみに、ここでは、「７２０°ＣＡ」の整数倍だけずれた位相を同一位相と定義する。
【００６８】
続いて、図７（ｂ）に示すように、各平均値Ｔｑｂの平均値である全区間平均値Ｔｂａを算出するとともに、全区間平均値Ｔｂａに対する各区間Ｔｑｂの比ｋＴｑを算出する。更に、図７（ｃ）に示すように、上記各比ｋＴｑと、規範モデル（基準比ｋＴｎｑ）との比を、最終的な学習値ｋＴｑｆとして算出する。
【００６９】
本実施形態にかかる規範モデルは、歯部２２間の間隔に構造上の誤差がないときに、全区間平均値に対する各区間Ａ０〜Ａ１１の回転に要する時間の平均値の比として想定される基準値である。このため、この規範モデルでは、互いに「３６０°ＣＡ」だけ離間した区間の基準比ｋＴｎｉが各別に定義されることとなる。このため、各区間の基準比ｋＴｎｉに、上記周期的な力のうち位相の異なる成分が平均化されて反映されることが回避され、互いに異なる位相を有する力の影響は、互いに異なる基準比ｋＴｎｉに反映される。したがって、上記周期的な力を、規範モデルにいっそう適切に反映させることができる。
【００７０】
そして、各区間Ａ０〜Ａ１１毎に、それぞれ学習値ｋＴｉｆを算出することで、各学習値ｋＴｉｆの算出に際して、上記４ストローク周期でクランク軸５に加わる周期的な力の影響をより精度良く除去することができる。
【００７１】
こうして算出される学習値ｋＴｉｆは、その学習が高精度でなされれば、互いに「３６０°ＣＡ」だけ離間した区間Ａｉ，Ａｐ（ｐ＝ｉ＋６）のもの同士の差が略ゼロとなる。なお、これら学習値ｋＴｉｆを、対応するクランク角度区間毎に各別に用いてもよいが、互いに「３６０°ＣＡ」だけ離間したもの同士から、最終的に用いる学習値ｋＴｉｆｆ（ｉ＝０〜５）を算出してもよい。この最終的な学習値ｋＴｉｆｆは、互いに「３６０°ＣＡ」だけ離間した区間の学習値ｋＴｉｆ，ｋＴｐｆの平均とすればよい。ただし、いずれか一方に、より多くの学習誤差が含まやすいとの傾向があるなら、これら学習値ｋＴｉｆ，ｋＴｐｆの加重平均処理によって最終的な学習値ｋＴｉｆｆを算出してもよい。
【００７２】
以上説明した本実施形態によれば、先の第１の実施形態の上記（１）〜（４）に準じた効果に加えて、更に以下の効果が得られるようになる。
【００７３】
（５）クランク軸５の２回転を全区間とし、その各区間Ａ０〜Ａ１１毎に学習値ｋＴｑｆを算出した。これにより、４ストローク周期でクランク軸５に加わる周期的な力の影響を、学習値の算出に際していっそう好適に除去することができる。
【００７４】
（第３の実施形態）
以下、第３の実施形態について、上記第２の実施形態との相違点を中心に図面を参照しつつ説明する。
【００７５】
図８に、本実施形態における学習値の算出の概要を示す。図８(ａ)及び図８（ｂ）に示すように、本実施形態においても、各区間Ａ０〜Ａ１１毎に、平均値Ｔｑｂや比ｋＴｑを算出する。ただし、本実施形態では、規範モデルを用いない。これに代えて、本実施形態では、図８（ｃ）に示すように、互いに「３６０°ＣＡ」だけ離間した区間Ａｉ，Ａｐ（ｐ＝ｉ＋６，ｉ＝０〜５）の比ｋＴｉ，ｋＴｐから、区間Ａｉの学習値ｋＴｉｆを算出する。
【００７６】
すなわち、互いに「３６０°ＣＡ」だけ離間した区間Ａｉ，Ａｐでは、４ストローク周期でクランク軸５に加わる周期的な力の位相が互いに異なるため、上記比ｋＴｉ，ｋＴｐの間に生じるずれには、上記周期的な力の位相の相違に起因してクランク軸５に加わる力の相違が反映されている。このため、このずれから、周期的な力の影響そのものを検出することができる。この点に鑑み、上記比ｋＴｉ，ｋＴｐから、学習値ｋＴｉｆをマップ演算する（ｋＴｉｆ＝Ｆｉ（ｋＴｉ，ｋＴｐ））。
【００７７】
ちなみに、このマップＦｉは、予め実験等によって作成してもよいが、例えば上記比ｋＴｉ，ｋＴｐのうち小さい方を最終的な学習値とするというように、上記比ｋＴｉ，ｋＴｐとの比較に基づき学習値を算出する簡易な設定としてもよい。
【００７８】
なお、上記周期的な力の影響を検出するためには、クランク軸５の回転速度の減衰の影響を十分に抑制することが望ましいため、平均値を算出するためのサンプリング数「ｎ」を十分に大きくすることが望ましい。
【００７９】
以上詳述した本実施形態によっても、先の第２の実施形態に準じた効果を得ることができる。
【００８０】
（第４の実施形態）
以下、第４の実施形態について、上記第１の実施形態との相違点を中心に図面を参照しつつ説明する。
【００８１】
図９に、本実施形態にかかるクランク角度誤差を補償する学習値の算出にかかる処理の手順を示す。この処理は、ＥＣＵ５０により、例えば所定周期で繰り返し実行される。
【００８２】
この一連の処理では、まずステップＳ５０において、先の図６に示した処理と同様の処理を行なうことでクランク角度誤差の学習値を算出する。続くステップＳ５２では、カム角度誤差の学習値を算出する。ここでは、図１０（ａ）に示されるように、カム軸６に設けられたロータ３０の歯部３２によって区画される４つの区間Ｂ０〜Ｂ３の構造上の誤差を補償するための学習値を算出する。ちなみに、カム角の区間Ｂ０、Ｂ２は、クランク角の区間Ａ０〜Ａ２に対応し、カム角の区間Ｂ１、Ｂ３は、クランク角の区間Ａ３〜Ａ５に対応する。
【００８３】
上記カム角度誤差についての学習値の算出も、先の図６に示した処理と同様である。すなわち、図１０（ａ）に示すように、各区間Ｂｒ（ｒ＝０〜３）の回転に要する時間の複数個（「ｍ」個）の平均値ＴｒＢを算出する。そして、図１０（ｂ）に示すように、これら平均値ＴｒＢの平均値である全区間平均値ＴＢａを算出し、全区間平均値ＴＢａに対する各区間Ｂｒの比を算出する。更に、これを規範モデル（基準比ＢＴｎｒ）で除算することで、各区間Ｂｒの学習値ＢＴｒｆを算出する。
【００８４】
そして、図９に示すステップＳ５４では、学習補正されたカム角度に基づき、クランク角の学習値を補正する。
【００８５】
上記ステップＳ５０、Ｓ５２によって学習値が正確に学習されているなら、区間Ｂ０、Ｂ３の回転に要する時間は、区間Ａ０〜Ａ２の回転に要する時間と一致するはずである。また、区間Ｂ１，Ｂ３の回転に要する時間は、区間Ａ３〜区間Ａ５の回転に要する時間と一致するはずである。
【００８６】
例えばクランク軸５の２回転の間に区間Ａ０〜区間Ａ２の回転に要する時間の学習補正前の算出値が、時間Ｔ０＿１〜Ｔ２＿１と時間Ｔ０＿２〜Ｔ２＿２として算出されたとする。また、この２回転の間の区間Ｂ０、Ｂ２の回転に要する時間の学習前の算出値が時間ＴＢ０、ＴＢ２として算出されたとする。ただし、時間ＴＢ０は、時間ＴＢ２よりも前に検出されるクランク角センサ４０の出力に基づき算出されるものとする。このとき、これら学習値が完全に真の値となっているなら、以下の関係が成立する。
ＴＢ０／ＢＴ０ｆ＝Ｔ０＿１／ｋＴ０ｆ＋Ｔ１＿１／ｋＴ１ｆ＋Ｔ２＿１／ｋＴ２ｆ
ＴＢ２／ＢＴ２ｆ＝Ｔ０＿２／ｋＴ０ｆ＋Ｔ１＿２／ｋＴ１ｆ＋Ｔ２＿２／ｋＴ２ｆ
上２式の右辺と左辺とのずれ量によって、カム角度誤差の学習値とクランク角度誤差の学習値との信頼性を定量化することができる。このため、本実施形態では、これら右辺と左辺とが一致しないときには、クランク角度誤差の学習値やカム角度誤差の学習値を補正する。この補正は、例えば右辺と左辺との平均値を区間Ｂ０や区間Ｂ２の回転に要する時間の真の値であるとして、右辺及び左辺がこの真の値となるように学習値を補正することで行なうことができる。
【００８７】
以上説明した本実施形態によれば、先の第１の実施形態の上記（１）〜（４）の効果に加えて、更に以下の効果が得られるようになる。
【００８８】
（６）カム角度誤差の学習値を算出し、これを用いてクランク角度誤差の学習値を補正した。これにより、クランク角度誤差の学習値をより適切な値とすることができる。
【００８９】
（その他の実施形態）
なお、上記各実施形態は、以下のように変更して実施してもよい。
【００９０】
・上記第４の実施形態において、クランク角度誤差を補償する学習値の算出手法は、先の図６に示したものに限らない。例えば先の第２、第３の実施形態で例示したものであってもよい。
【００９１】
・多気筒内燃機関の気筒数は任意でよい。この場合であっても、上記各実施形態の有する効果を奏することができる。更に、単気筒の内燃機関としてもよい。この場合であっても、燃焼サイクルが「７２０°ＣＡ」周期であるため、上記各実施形態の手法は有効である。
【００９２】
・内燃機関としては、吸気バルブ及び排気バルブが機関駆動式のカムの回転に連動して開閉するものに限らない。例えば吸気バルブや排気バルブを電磁駆動弁にて構成してもよい。この場合、燃料カット制御時に、全気筒の吸気バルブや排気バルブを全開状態とするなら、各気筒のピストン３がコンロッド４を介してクランク軸５に加える力やその変動量を極力低減することができる。
【００９３】
・各区間Ａ０〜Ａ５等の学習値を算出するに際しては、全区間平均値Ｔｂａに対する各区間の平均値の比に基づき設定されるものに限らず、差に基づき設定されるものであってもよい。この際、規範モデルは、全区間平均値Ｔｂａに対する各区間の平均値の差について、構造上の誤差がないときに想定される値とすることが望ましい。
【００９４】
・規範モデルを用いなくても、先の第１の実施形態の上記（１）、（２）の効果を得ることはできる。
【００９５】
・全区間としては、クランク軸５の１回転又は２回転に限らない。例えばクランク軸５の回転角度に応じて周期的に変化する力をクランク軸５に及ぼす部材がある場合には、この周期とすることや、この周期と「３６０°ＣＡ」又は「７２０°ＣＡ」との公倍数とすることが有効である。
【００９６】
・また、区間Ａｉや区間Ａｐの構造上の誤差を検出する際の基準としては、上記全区間平均値に限らない。例えば区間Ａ０〜区間Ａ５のいずれか一つを基準としてもよい。この場合であっても、区間間の相対的な角度誤差を検出することはできる。このため、こうして算出された学習値を用いて、例えば各気筒の燃料噴射弁の噴射特性のばらつきを補償することはできる。
【００９７】
・学習値の使用方法としては、燃料噴射特性のばらつきを補正する学習値の学習に限らない。例えば、所定クランク角度で燃料噴射を開始するに際しては、歯部３２のいずれかが検出されてから所定クランク角度となるまでの時間を算出し、該時間の経過時に燃料噴射を開始する制御がある。こうした場合には、各区間の回転速度を精度良く算出することが噴射開始タイミングの制御精度を向上させる上で重要となる。このため、上記学習値を用いた噴射開始タイミングの設定は、有効である。
【００９８】
・規範モデルや学習値を記憶する記憶装置としては、ＥＥＰＲＯＭ５６に限らない。ただし、例えばＥＣＵ３０に対する給電の有無にかかわらず電力が供給されるバックアップＲＡＭや、給電の有無にかかわらずデータを保持するタイプのメモリ（ＥＥＰＲＯＭ等）等の書き換え可能な不揮発性メモリであることが望ましい。ただし、規範モデルについては、ＲＯＭ５４に記憶するようにしてもよい。
【００９９】
・マニュアルトランスミッション車に限らず、オートマティックトランスミッション車であってもよい。この場合、例えば車両減速時の燃料カット制御時に上記学習制御を行ってもよい。
【０１００】
・内燃機関としては、ディーゼル機関に限らず、ガソリン機関であってもよい。
【０１０１】
・その他、クランク軸５の回転と同期して回転する被検出部（歯部２２）や、カム軸６の回転と同期して回転する被検出部（歯部３２）の構造や数については適宜変更してよい。
【図面の簡単な説明】
【０１０２】
【図１】第１の実施形態におけるエンジンシステムの全体構成を示す図。
【図２】クランク軸に設けられるロータの歯部間の構造上の誤差に伴う問題点を説明する図。
【図３】燃料カット制御時のクランク軸の回転変動を示す図。
【図４】燃料カット制御時のクランク軸の回転変動を示す図。
【図５】上記実施形態にかかるクランク角度誤差の学習制御の概要を示す図。
【図６】上記クランク角度誤差の学習制御の処理手順を示すフローチャート。
【図７】第２の実施形態にかかるクランク角度誤差の学習制御の概要を示す図。
【図８】第３の実施形態にかかるクランク角度誤差の学習制御の概要を示す図。
【図９】第４の実施形態におけるクランク角度誤差の学習制御の処理手順を示すフローチャート。
【図１０】同実施形態にかかるカム角度誤差の学習制御の概要を示す図。
【符号の説明】
【０１０３】
５…クランク軸、６，８…カム軸、２０…ロータ、２２…歯部、３０…ロータ、３２…歯部、４０…クランク角センサ、４２…カム角センサ、５０…ＥＣＵ（回転角度検出装置の一実施形態）。
【図１】
0004508036.tif 000002
【図２】
0004508036.tif 000003
【図３】
0004508036.tif 000004
【図４】
0004508036.tif 000005
【図５】
0004508036.tif 000006
【図６】
0004508036.tif 000007
【図７】
0004508036.tif 000008
【図８】
0004508036.tif 000009
【図９】
0004508036.tif 000010
【図１０】
0004508036.tif 000011