(第1実施形態)
以下、実施形態について図面に基づき説明を行う。なお、以下の実施形態相互において、互いに同一もしくは均等である部分には、図中、同一符号を付しており、同一符号の部分についてはその説明を援用する。本実施形態に係る回転電機は、車両に搭載されるものである。図1に本実施形態に係る回転電機を示し、図2に当該回転電機を制御する制御システムについて示す。
図1及び図2に示す回転電機は、電動部であるモータ10と、モータ10を制御する制御部である制御装置20と、を有するモータ機能付き発電機であり、機電一体型のISG(Integrated Starter Generator)として構成されている。以下、単にISG100と示す。モータ10は、巻線界磁型のものであり、具体的には3相巻線を有する巻線界磁型同期機である。ISG100は、内燃機関としてのエンジン200のクランク軸200aや車軸の回転により発電(回生発電)を行う発電機能と、クランク軸200aに駆動力(回転力)を付与する力行機能とを備えている。
モータ10は、ハウジング11と、ハウジング11に固定される固定子12と、固定子12に対して回転する回転子13と、回転子13が固定される回転軸14と、を備える。以下、本実施形態において、軸方向とは、回転軸14の軸方向のことを示し(図において矢印Y1で示す)、径方向とは、回転軸14の径方向のことを示す(図において矢印Y2で示す)。
ハウジング11は、円筒形状に形成されており、その軸心が回転軸14と同軸となっている。ハウジング11の軸方向外側(図1では、右側)に、制御装置20が固定されている。その一方で、ハウジング11内には、固定子12及び回転子13等が収容されている。
固定子12は、ハウジング11の軸方向略中央において、ハウジング11の内周に沿って円筒状に設けられており、ハウジング11に固定されている。固定子12は、磁気回路の一部を構成するものであり、固定子コア12aと、電機子巻線12bとを備える。
固定子コア12aは、磁性体によって円環状に形成されており、その軸心が回転軸14と同軸となっている。固定子コア12aは、電機子巻線12bを保持する。なお、固定子コア12aは、電機子巻線12bを収容する複数のスロットを備えており、電機子巻線12bは、当該スロットに収容され保持されている。
電機子巻線12bは、2組のY結線された3相巻線により構成されている。そして、電機子巻線12bは、電力(交流電力)が供給されることで磁束を発生する。また、電機子巻線12bは、回転子13が発生する磁束と鎖交することで電力(交流電力)を発生する。
回転子13は、磁気回路の一部を構成するものであり、磁性体からなる回転子コア13aと、回転子コア13aに保持される界磁巻線13bと、を備える。
回転子コア13aは、いわゆるランデル型ポールコアであり、円環状の中空部を備え、当該中空部に界磁巻線13bが収容されている。回転子コア13aは、その外周面を、固定子コア12aの内周面と離間させた状態で対向するように配置されている。また、回転子コア13aには、回転軸14が挿通され、回転軸14と一体回転するように回転軸14に固定されている。
界磁巻線13bは、直流電力が供給されることで磁束を発生し、回転子コア13aの外周面に磁極を形成する。これにより、固定子12に交流電力が供給されている場合には、固定子12が発生する磁束と鎖交し、回転子13が回転することとなる。また、回転子13が回転することにより、固定子12の電機子巻線12bに交流電力を発生させることとなる。
回転軸14は、ハウジング11に設けられた軸受11a,11bを介して、ハウジング11に回転可能に支持されている。回転軸14には、その軸方向中央部分において回転子13が固定されている。また、軸方向において、回転軸14の両端部は、ハウジング11から突出しており、制御装置20とは反対側(図1において左側)の端部は、変速機構15、例えば、ベルト及びプーリを用いた動力伝達機構等を介してエンジン200のクランク軸200aに連結される。
また、軸方向において、回転軸14の端部(制御装置20側の端部)は、制御装置20内に挿入されている。当該回転軸14の端部には、ブラシ80と接触し、ブラシ80を介してバッテリから供給される直流電力を界磁巻線13bに供給するスリップリング14aが設けられている。そして、図示しない配線を介してスリップリング14aは、界磁巻線13bに接続されている。
また、回転軸14の先端部(制御装置20側の先端部)には、信号出力部としての磁石91が配置されている。また、制御装置20側には、先端部に配置された磁石91と対向する角度検出センサとしての磁気センサ92が固定されている。
磁石91は、円板状に形成されており、磁束(信号)を発生する。磁石91の円形状の表面のうち、一方の半円部分にN極が、他方の半円部分にS極が形成されている。磁石91は、円の中心を回転軸14の軸心と一致させた状態で回転軸14に固定されている。
磁気センサ92は、所定方向の磁束密度を検出する素子である。磁気センサ92は、制御装置20に固定され、磁石91から所定距離を隔てて配置されている。厚さ方向が回転軸14の軸方向となるとともに、中心が回転軸14の軸心と一致するように設けられている。磁気センサ92の出力端子は、制御装置20に接続されている。
次に、制御装置20について説明する。前述したように、制御装置20は、モータ10のハウジング11の軸方向外側に固定されている。制御装置20は、CPU、ROM、RAM及びI/O等を備えたマイクロコンピュータを主体として構成されており、CPUがROMに記憶されているプログラムを実行することにより、各種機能を実現する。なお、各種機能は、ハードウェアである電子回路によって実現されてもよく、あるいは、少なくとも一部をソフトウェア、すなわちコンピュータ上で実行される処理によって実現されてもよい。
制御装置20が備える機能としては、例えば、外部(例えばバッテリ)からの電力を変換し、モータ10に供給して駆動力を発生させる機能と、モータ10からの電力を変換して外部に電力を供給する機能を有する。また、例えば、制御装置20は、磁気センサ92から入力された回転角度に関する情報を利用して、モータ10の制御などを行う機能を備える。本実施形態の回転角度検出装置1は、制御装置20と、磁気センサ92と、磁石91と、を備えている。
ところで、磁気センサ92が検出する検出結果に基づき算出された回転角度は、通常、角度誤差が含まれている。角度誤差の要因としては、例えば、電機子巻線12bや界磁巻線13bに流れる電流に基づき発生する漏れ磁束により、磁気センサ92に影響を与え、角度誤差が生じる場合がある。また、磁石91の温度変化などにより、磁石91が発生する磁束密度が変化し、角度誤差が生じる場合もある。このため、制御装置20は、角度誤差を補正する機能を備える。詳しく説明すると、制御装置20は、算出部21と、補正値学習部22と、補正部23と、運転状態判定部24と、マップ設定部25と、基準状態判定部26としての機能を備える。
算出部21として機能する制御装置20は、磁気センサ92から検出された検出結果に基づき、回転軸14の回転角度を補正前回転角度として算出する。すなわち、回転軸14の回転に伴い磁石91が、磁気センサ92に対して回転すると、磁気センサ92により検出される磁束密度が変化する。そこで、算出部21は、磁気センサ92により検出された磁束密度の変化に基づき、回転軸14の補正前回転角度を算出する。なお、当該補正前回転角度には、前述したような角度誤差が含まれている場合がある。
補正値学習部22として機能する制御装置20は、回転軸14が基準位置から所定角度まで回転する検出期間において検出された補正前回転角度に基づき、補正前回転角度の誤差補正に利用される誤差補正値を算出し、学習するものである。基準位置とは、基準位置信号(ノースマーカ信号(NM信号))が入力された位置である。基準位置信号とは、回転子13(及び回転軸14)が基準とする角度に位置したときに出力される信号である。また、所定角度は、360°(1回転)としている。すなわち、基準位置信号が入力されたときから、次の基準位置信号が入力されるまでの期間が、検出期間に相当する。
以下、学習方法について詳しく図3に基づき説明する。補正値学習部22は、検出期間において、補正前回転角度が、予め決められた割込み角A(n)と一致するごとに、基準位置からの経過時間t(n)を取得する。基準位置からの経過時間t(n)とは、基準位置信号を入力してからの経過時間である。当該経過時間は、制御装置20が計測している。そして、割込み角A(n)と対応付けて経過時間t(n)を制御装置20の記憶装置に記憶する。また、割込み角A(n)は、数式(1)に示すように、1回転(360°)を定数Nで分割して求められる。なお、定数Nは、2以上の自然数であり、変数nは、定数N以下の自然数である。
割込み角A(n)=360°/定数N×変数n・・・(1)
本実施形態では、N=16とし、割込み角A(n)を、図3に示すように、22.5°(n=1),45°(n=2),67.5°(n=3),・・・・,337.5°(n=15),360°(n=16)とする。また、検出期間の開始から終了までに経過する時間、すなわち、基準位置信号を入力してから次の基準位置信号を入力するまでの時間を、回転時間Tとして取得し、記憶する。図3において、割込み角A(n)と経過時間t(n)との関係を示す。また、図3では、実線が、磁気センサ92の検出結果に基づく補正前回転角度を示し、破線が、回転軸14が一定の回転速度RSで回転していることを前提として、回転時間Tが経過する時に当該回転軸14が1回転する場合における理想角度(理想値)を示す。
次に、補正値学習部22は、数式(2)に基づき、回転時間T及び経過時間t(n)を利用して、回転軸14が一定の回転速度RSで回転していると仮定した場合に、基準位置から当該経過時間t(n)を経過した時における理想角度である割り込み実角I(n)を算出する。つまり、回転角度(理想値)と、経過時間t(n)と、が比例関係にあるとして、回転角度を比例配分することにより、割り込み実角I(n)を算出する。
割り込み実角I(n)=360°×経過時間t(n)/回転時間T・・・(2)
そして、補正値学習部22は、検出値である割込み角A(n)と、理想値である割り込み実角I(n)とを比較して、角度誤差を取得する。具体的には、補正値学習部22は、数式(3)に基づき、割込み角A(n)から割り込み実角I(n)を減算することにより、変動誤差E(n)を算出する。なお、経過時間t(N)は、回転時間Tとし、変動誤差E(N)は、「0」とする。
変動誤差E(n)=割込み角A(n)-割り込み実角I(n)・・・(3)
回転軸14の回転速度RSが一定でない場合、基準位置から補正前回転角度が360°となった時と、基準位置から再び基準位置に達した時とで、ずれが生じる場合がある。この場合、上記数式(3)で算出した変動誤差E(n)には、このずれに基づく誤差が含まれている。
そこで、補正値学習部22は、数式(4)~(6)を利用して、このずれに基づく誤差を変動誤差E(n)から取り除き、誤差補正値C(n)を算出する。すなわち、補正値学習部22は、数式(4)に示すように、変動誤差E(n)の積算値を算出する。
積算値X=変動誤差E(1)+変動誤差E(2)+・・・+変動誤差E(N)・・・(4)
ここで、回転軸14が1回転する間に、元の基準位置に戻ること(誤差がゼロとなること)、及び回転速度RSは一定であることを前提としている。すなわち、1回転時におけるずれは、各割込み角において均等に生じているとして、補正値学習部22は、数式(5)に示すように、積算値Xを定数Nで除算することにより、各変動誤差E(n)に含まれる基準位置ずれGを算出する。
基準位置ずれG=積算値X/定数N・・・(5)
そして、補正値学習部22は、数式(6)に示すように、各変動誤差E(n)から当該基準位置ずれGを減算することにより、各割込み角A(n)における誤差補正値C(n)を算出する。
誤差補正値C(n)=変動誤差E(n)-基準位置ずれG・・・(6)
そして、補正値学習部22は、算出した誤差補正値C(n)を、割込み角A(n)ごとに学習する。すなわち、補正値学習部22は、誤差補正値C(n)を、割込み角A(n)ごとに対応付けて制御装置20の記憶装置に記憶する。
補正部23として機能する制御装置20は、回転軸14の回転速度RSが閾値以上である場合、学習された誤差補正値C(n)に基づき、補正前回転角度を補正する。なお、学習された誤差補正値C(n)に基づき、どのように補正前回転角度を補正するかは任意の方法でよい。例えば、誤差補正値C(n)から誤差補正値の近似曲線を演算し、誤差補正値の近似曲線を利用して、補正前回転角度ごとの誤差補正値を特定し、補正前回転角度を補正してもよい。また、例えば、補正前回転角度が割込み角A(n)と一致するごとに、当該割込み角A(n)に対応する誤差補正値C(n)を加減算することにより、補正後の回転角度RAを算出してもよい。
ところで、回転軸14の回転速度RSが遅い場合、早い場合と比較して、検出期間中に、回転速度RSに変動が生じやすい。すなわち、回転軸14の回転速度RSが遅い場合、早い場合と比較して、基準位置から1回転するまでの間における回転速度RSが一定でなく、ムラが生じやすい。例えば、0~180度まで回転する際における回転速度RSと、180~360度まで回転する際における回転速度RSが異なるという状態が生じやすい。
特に、本実施形態では、ISG100の回転軸14は、エンジン200のクランク軸200aと連結されるものであり、クランク軸200aと連動するため、その回転の影響を受けやすい。すなわち、エンジン200の駆動中、燃焼行程では、回転軸14は、加速しやすく、圧縮行程では、減速しやすい。つまり、回転軸14の回転速度RSにばらつきが生じやすい。このことは、回転軸14の回転速度RSが遅い場合、早い場合と比較して、特に顕著となる。つまり、回転軸14の回転速度RSの変動幅が大きくなりやすい。
そして、このように検出期間における回転軸14の回転速度RSの変動幅が大きいにもかかわらず、前述したように、検出期間における回転軸14の回転速度RSが一定であることを前提として誤差補正値C(n)を算出している。このため、この誤差補正値C(n)を誤差補正に利用すると、回転角度RAの検出精度が低下する。そこで、本実施形態では、エンジン200の駆動中、回転軸14の回転速度RSが遅い場合等、前述した方法で学習した値では、高精度な誤差補正値C(n)を算出することが期待できない場合には、以下に説明するマップにより、誤差補正値を推定することとした。なお、以下では、補正値学習部22による学習に基づく誤差補正値を、誤差補正値C(n)と示す場合がある一方、マップに基づいて推定される誤差補正値を、誤差補正値Dと示す場合がある。
まず、マップ設定処理について図4に基づいて説明する。マップ設定処理は、イグニッションオン後、所定周期ごとに制御装置20により実行される。
制御装置20は、エンジン200が所定の運転状態であるか否かを判定する(ステップS301)。所定の運転状態とは、例えば、エンジン200がアイドリング状態である状態のことである。アイドリング状態とするのは、クランク軸200aが車軸(図示略)に対して駆動力を伝えない状態となっているため、駆動力を伝える状態と比較して、燃焼行程等に基づく回転軸14の回転速度RSの変化が大きいからである。つまり、回転角度RAの変化が大きく、把握しやすいからである。また、加減速しない状態であるため、回転速度RSの平均がそろいやすいという利点や、平均回転速度が車両走行中である場合に比較して低速であるため、回転角度RAの角度変化に要する時間が長くなるという利点もあるからである。すなわち、アイドリング状態としたのは、検出精度を向上させることができるという利点があるからである。
具体的に所定の運転状態(アイドリング状態)の成立条件について説明すると、例えば、エンジン200のエンジン回転数(エンジン200の回転速度NE)が予め決められた範囲内であることが成立条件に含まれる。エンジン200の回転速度NEは、エンジン200(より詳しくは、エンジン200を制御するエンジンECU)から、取得してもよいし、補正前回転角度の検出結果に基づいて算出してもよい。つまり、補正前回転角度を時間微分して極値(又は変曲点)を特定し、当該極値(又は変曲点)の間隔に基づいてエンジン200の回転速度NEを特定してもよい。また、回転軸14が基準位置に到達する間隔(つまり、回転軸14の回転周期)及び変速比(ギヤ比、プーリー比又は減速比)に基づいてエンジン200の回転速度NEを算出してもよい。
なお、エンジン200の回転速度NE(エンジン回転数)の代わりに、回転軸14の回転速度RSが予め決められた範囲内であることが成立条件に含めてもよい。回転軸14の回転速度RSは、例えば、回転軸14が基準位置に到達する間隔に基づき、算出可能である。
また、本実施形態において、所定の運転状態の成立条件には、例えば、ISG100の温度が予め決められた範囲内であることが含まれる。温度は、ISG100に設けられた温度センサの検出結果に基づき判定すればよい。なお、ISG100の温度の代わりに、エンジン200の温度(水温)が予め決められた範囲内であるか否かを判定してもよい。また、本実施形態において、所定の運転状態の成立条件には、例えば、ISG100とバッテリ(図示略)との間において通電が行われていないこと、すなわち、ISG100の電機子巻線12b及び界磁巻線13bに、通電が行われていないことが含まれる。
このステップS301の処理を実行することにより、制御装置20は、運転状態判定部24としての機能を備えていることとなる。
制御装置20は、所定の運転状態であると判定しなかった場合(ステップS301:NO)、設定処理を終了する。一方、制御装置20は、所定の運転状態であると判定した場合(ステップS301:YES)、回転軸14の回転角度の変動周期を特定する(ステップS302)。
ステップS302について詳しく説明する。エンジン200の回転速度NEは、一般的に、燃焼サイクル内の各行程に応じて上昇と降下とを繰り返し、図5に示すような波形(放物線が連続するような波形)となる。つまり、180°CAごとに極小値となり、その後、各気筒での燃焼により回転速度NEが上昇する。したがって、エンジン200の回転速度NEの極小値が上死点(又は下死点)に相当する。そして、エンジン200の気筒が1往復することにより、エンジン200のクランク軸200aは1回転(360°CA)する。なお、本実施形態におけるエンジン200は、4気筒であるため、クランク軸200aは2回転(720°CA)することにより、エンジン200の動作周期(1燃焼サイクル:吸気行程-圧縮行程-膨張行程(燃焼行程)-排気行程)が終了する。つまり、エンジン200は、4ストローク/1サイクルエンジンである。なお、図5では、各気筒#1~#4の行程に関連付けて、エンジン200の回転速度NEを示す。
一方、クランク軸200aと回転軸14とは、変速機構15を介して連結されている。つまり、回転軸14は、クランク軸200aに対して所定の変速比で連結されている。このため、クランク軸200aの状態(クランク角CA)と、回転軸14の状態(回転角度RA)とが、それぞれ同じ状態(同じ位相)となる変動周期を特定するためには、変速比を考慮する必要がある。本実施形態では、回転軸14の回転回数を単位として変動周期を特定する。例えば、変速比が1:3(クランク軸200a:回転軸14)の関係にある場合、変動周期は、回転軸14が3回転したときに、1周期経過したこととなる。同様に、変速比が1.0:2.3(クランク軸200a:回転軸14)の関係にある場合、変動周期は、回転軸14が23回転(クランク軸200aが10回転)したときに、1周期経過したこととなる。
つまり、クランク軸200aの回転回数をM(ただしMは整数)とし、回転軸14の回転回数をL(ただし、Lは整数)とした場合において、M:Lが変速比に一致する場合、Lの最小値が変動周期に相当する。
変動周期を特定した後、制御装置20は、ISG100及びエンジン200が基準状態となったか否かを判定する(ステップS303)。例えば、回転軸14の回転角度RAが第1角度となった場合であって、クランク角CAが第2角度となった場合に、基準状態となったと判定する。ステップS303を実施することにより、制御装置20は、基準状態判定部26としての機能を備えることとなる。
第1角度は、任意であるが、最も精度よく検出できる基準位置を示す角度(基準位置信号を入力する角度)であることが望ましい。第1角度を、基準位置を示す角度とした場合、基準位置信号を入力した時点が、回転軸14の回転角度RAが第1角度となった時点に相当する。同様に、第2角度は、任意であるが、最も精度よく検出できる上死点(又は下死点)を示す角度であることが望ましい。上死点(又は下死点)を示す角度であるか否かの判定方法は、前述したように、エンジンECUから取得してもよいし、補正前回転角度を時間微分して判定してもよい。
なお、回転軸14の回転角度RAが第1角度となった時点と、クランク角CAが第2角度となった時点とは、必ずしも同時である必要はなく、所定の範囲内であれば、ステップS303を肯定判定してもよい。
ステップS303の判定結果が否定の場合、制御装置20は、マップ設定処理を終了する。一方、ステップS303の判定結果が肯定の場合、制御装置20は、磁気センサ92の検出結果に基づき、補正前回転角度を算出し、基準状態に達した時からの経過時間に関係づけて共に記憶する(ステップS304)。
次に、制御装置20は、ステップS302で特定した変動周期を経過したか否かを判定する(ステップS305)。変動周期が経過したか否かは、回転軸14の回転角度RAが変動周期に相当する角度分回転したか否かに基づいて、判定してもよい。また、基準位置となった回数(つまり、回転軸14の回転回数)が変動周期に相当する回数に達したか否かに基づいて、判定してもよい。また、エンジンECUから取得したクランク軸200aの回転回数に基づいて、判定してもよい。
ステップS305の判定結果が否定の場合(ステップS305:NO)、制御装置20は、ステップS304の処理に移行し、変動周期を経過するまで、繰り返し実行する。
一方、変動周期が終了した場合(ステップS305:YES)、制御装置20は、記憶した補正前回転角度と経過時間との関係に基づいて、マップを設定する(ステップS306)。具体的には、記憶した補正前回転角度と経過時間との関係に基づいて、図6に示すような回転軸14の回転角度RAの時間変化を示す近似曲線を算出し、当該近似曲線をマップとして設定する。このマップは、所定の運転状態である場合における磁気センサ92の検出結果を利用して設定されている。つまり、エンジン200の回転速度NEがほぼ一定である状況下で、ISG100の温度が所定の範囲内であり、かつ、漏れ磁束が少ない状況下における磁気センサ92の検出結果を利用して設定されている。このため、速度変化に基づく誤差や、温度に基づく誤差、及び漏れ磁束に基づく誤差が少ない基準として利用しうるマップであるといえる。なお、図6における破線は、エンジン200の回転速度NEを模式的に示し、図6では、変速比が1:3であることを前提として図示している。
制御装置20は、マップの設定後、マップを記憶し(ステップS307)、マップ設定処理を終了する。これらのステップS304~S307の処理により、制御装置20は、マップ設定部25としての機能を備えることとなる。
そして、補正部23は、エンジン200の駆動中、回転軸14の回転速度RSが予め決められた閾値未満である場合、このマップを参照して補正前回転角度の誤差補正値Dを推定し、推定された誤差補正値Dによって補正前回転角度を補正する。
具体的には、回転軸14の回転速度RSに応じて、マップの変動周期を比例変化させて比較する。例えば、補正時における回転軸14の回転速度RSが、マップ設定時における回転速度RSの2倍である場合、マップの変動周期が1/2となるように縮小する。
そして、基準状態となったタイミングからの経過時間に基づき、補正前回転角度と、当該マップにより特定される回転角度RAとを比較し、誤差補正値Dを推定(算出)する。そして、算出した誤差補正値Dを用いて補正前回転角度を補正する。
一方、補正部23は、回転速度RSが予め決められた閾値以上である場合、前回の検出期間において誤差補正値C(n)が学習されていれば、前述したように、学習された誤差補正値C(n)に基づき、補正前回転角度を補正する。
なお、本実施形態では、エンジン200が駆動していない場合であって、回転速度RSが予め決められた閾値未満である場合、誤差補正を行わない。また、回転速度RSが予め決められた閾値以上である場合に、前回の検出期間において誤差補正値C(n)が学習されていない場合においても、誤差補正を行わない。また、回転速度RSが予め決められた閾値未満である場合に、マップが設定されていない場合においても、誤差補正を行わない。
また、閾値は、エンジン200が駆動中である場合には、停止中である場合と比較して、大きな値が設定される。すなわち、回転速度RSが低速時である場合、高速時である場合と比較して、エンジン200の駆動に基づく影響を受けやすい。つまり、検出期間中における回転速度RSの変動幅が大きくなりやすい。一方、エンジン200が停止している場合、検出期間中における回転速度RSの変動幅が小さくなりやすい。そこで、閾値は、エンジン200が駆動中である場合には、停止中である場合と比較して大きくしている。
また、補正値学習部22は、前回の検出期間における回転速度RSに比較して、今回の検出期間における回転速度RSの変動幅が所定の速度幅よりも大きい場合、学習を禁止する。例えば、前回の回転時間に対する今回の回転時間の割合が所定の許容範囲外である場合、学習を禁止する。
また、補正値学習部22は、ISG100に流れる電流の変動幅が所定の電流幅よりも大きい場合、学習を禁止する。ISG100に流れる電流とは、例えば、界磁巻線13bの界磁電流であり、また、電機子巻線12bに流れる電機子電流である。前回の検出期間において検出した電流と、今回の検出期間において検出した電流との差が、所定範囲外である場合、学習を禁止する。電流は、例えば、電流センサなどにより計測すればよい。
すなわち、補正値学習部22は、前回の検出期間における回転速度RSに比較して、今回の検出期間における回転速度RSの変動幅が所定の速度幅以内であって、ISG100に流れる電流の変動幅が所定の電流幅以内であることを条件として、誤差補正値を算出し、学習することとなる。
次に、補正値学習処理の流れについて図7に基づき説明する。補正値学習処理は、制御装置20により所定周期ごとに実行される。
制御装置20は、回転軸14の回転速度RSが閾値以上であるか否かを判定する(ステップS101)。この判定結果が否定の場合、補正値学習処理を終了する。一方、ステップS101の判定結果が肯定の場合、制御装置20は、回転軸14が基準位置であるか否か、すなわち、基準位置信号を入力したか否かを判定する(ステップS102)。この判定結果が否定の場合には、補正値学習処理を終了する。一方、ステップS101の判定結果が肯定の場合、制御装置20は、磁気センサ92の検出結果に基づき、補正前回転角度を算出する(ステップS103)。そして、制御装置20は、算出された補正前回転角度が割込み角A(n)と一致したか否かを判定する(ステップS104)。
この判定結果が肯定の場合、制御装置20は、基準位置信号の入力時からの経過時間t(n)を取得し、割込み角A(n)に対応付けて記憶する(ステップS105)。ステップS104の判定結果が否定の場合、又はステップS104の処理後、制御装置20は、検出期間を経過したか否かを判定する(ステップS106)。すなわち、制御装置20は、基準位置信号を再び入力したか否かを判定する。この判定結果が否定の場合、制御装置20は、所定時間経過後、ステップS103以降の処理を再び実行する。
一方、ステップS106の判定結果が肯定の場合、制御装置20は、回転時間Tを取得する(ステップS107)。つまり、ステップS102の基準位置信号を入力してからステップS106における基準位置信号を入力するまでの時間を、回転時間Tとして取得する。
次に、制御装置20は、誤差補正値C(n)を算出可能であるか否かを判定する(ステップS108)。ステップS108において、制御装置20は、前回の検出期間における回転速度RSに比較して、今回の検出期間における回転速度RSの変動幅が所定の速度幅以内であって、モータ10に流れる電流の変動幅が所定の電流幅以内であるか否かを判定する。つまり、所定の精度以上の誤差補正値C(n)を算出可能であるか否かを判定する。
ステップS108の判定結果が肯定の場合、制御装置20は、前述したように、数式(2)~(6)を利用して、誤差補正値C(n)を、割込み角A(n)ごとに算出する(ステップS109)。そして、制御装置20は、誤差補正値C(n)を、割込み角A(n)ごとに対応付けて制御装置20の記憶装置に記憶(学習)する(ステップS110)。そして、補正値学習処理を終了する。一方、ステップS108の判定結果が否定の場合、制御装置20は、補正値学習処理を終了する。
次に、補正処理について図8に基づいて説明する。補正処理は、所定周期ごとに制御装置20により実行される。なお、補正値学習処理の実行中であっても、補正処理の実行周期となったことを契機に、補正値学習処理を中断して、補正処理を実行し、補正処理の終了後、中断した補正値学習処理を再開する。
制御装置20は、回転軸14の回転速度RSが閾値以上であるか否かを判定する(ステップS201)。閾値は、エンジン200が駆動中であるか否かにより変更される。ステップS201の判定結果が肯定の場合、制御装置20は、補正値学習処理において誤差補正値C(n)がすでに学習(記憶)されているか否かを判定する(ステップS202)。
ステップS202の判定結果が肯定の場合、制御装置20は、学習された誤差補正値C(n)に基づき、磁気センサ92の検出結果に基づいて算出された補正前回転角度を、補正する(ステップS203)。そして、補正処理を終了する。一方、ステップS202の判定結果が否定の場合、制御装置20は、補正処理を終了する。
一方、ステップS201の判定結果が否定の場合、制御装置20は、エンジン200が駆動中であるか否かを判定する(ステップS204)。この判定結果が否定の場合、補正処理を終了する。
ステップS204の判定結果が肯定の場合、制御装置20は、マップ設定処理により設定されたマップが記憶されているか否かを判定する(ステップS205)。この判定結果が否定の場合、制御装置20は、補正処理を終了する。
一方、ステップS205の判定結果が肯定の場合、マップを読み出し、読み出したマップを参照し、誤差補正値Dを推定する(ステップS206)。制御装置20は、ステップS205で推定された誤差補正値Dに基づき、磁気センサ92の検出結果に基づいて算出された補正前回転角度を、補正する(ステップS207)。そして、補正処理を終了する。
制御装置20は、補正処理終了後、補正された回転角度RAに基づき、モータ10の制御などを実行する。
以上詳述した上記実施形態によれば、次の優れた効果が得られる。
エンジン200の回転速度NEに変動が生じた場合、クランク軸200aに連結されている回転軸14の回転角度RAにも影響を与える。このため、例えば、回転軸14が等速であることを前提として学習した誤差補正値C(n)に基づいて誤差補正すると、正確に誤差を補正することができず、回転角度RAの検出精度が悪くなる。
そこで、エンジン200及びISG100が所定の運転状態である場合に補正前回転角度を検出し、当該補正前回転角度に基づいて、補正前回転角度の誤差の補正に利用されるマップを設定した。このマップには、クランク軸200aの回転速度変動の影響が反映されているため、このマップを基準として、検出された補正前回転角度を比較判定すれば、クランク軸200aの回転速度変動による影響を取り除いて誤差を推定することができ、誤差の推定精度を向上することができる。よって、回転角度RAの検出精度を向上させることができる。
ところで、マップと補正前回転角度との比較判定を行う都合上、マップを設定する場合、補正前回転角度の変動周期を特定して、マップを設定する必要がある。すなわち、図6に示すように、回転軸14の回転角度RAの変動周期は、回転軸14が1回転(360°)する周期と一致するわけではなく、クランク軸200aの回転周期を考慮する必要がある。また、クランク軸200aと回転軸14とは変速機構15により連結しているため、クランク軸200aの回転周期を考慮する際には、その変速比も考慮する必要がある。すなわち、補正前回転角度のみでは、回転軸14が何回転した場合に、エンジン200のクランク角CAが同じ位相となるか不明である。そこで、変速比を用いることにより、変動周期を特定し、その変動周期において検出した補正前回転角度に基づいてマップを設定した。これにより、補正前回転角度の変動周期ごとにマップを設定することができ、マップと補正前回転角度との比較判定を適切に行うことができる。
基準状態判定部26が、回転軸14の回転角度RAが予め定められた第1角度であり、かつ、クランク角CAが予め定められた第2角度である場合に、基準状態であると判定する。そして、補正部23は、基準状態であると判定されたことを契機に、マップを参照して、補正前回転角度を補正する。これにより、マップと補正前回転角度との比較判定を行う際の始点を揃えることができ、マップと補正前回転角度との比較判定を適切に行うことができる。つまり、検出精度を向上させることができる。
マップ設定部25は、変速機構15の変速比に基づいて、基準状態となってから、次の基準状態となるまでの変動周期を特定している。これにより、マップと補正前回転角度との比較判定を行う際の始点及び終点を揃えることができ、マップと補正前回転角度との比較判定を適切に行うことができる。つまり、検出精度を向上させることができる。
回転軸14の基準位置は、他の角度と異なり、特定しやすい。また、気筒の上死点又は下死点を示す角度は、極値(又は変曲点)となるため、他の角度と異なり、特定しやすい。そこで、第1角度を、回転軸14の基準位置を示す角度にし、第2角度を、気筒の上死点(又は下死点)を示す角度にした。このため、基準状態を正確に判定しやすくなる。
制御装置20は、エンジン200がアイドリング状態であることを条件にして、所定の運転状態であると判定した。より詳しくは、制御装置20は、エンジン200の回転速度NEが予め決められた範囲内であることを条件にして、所定の運転状態であると判定した。これにより、速度変化が小さく、かつ、回転速度RSが低速の状態で取得した検出結果に基づいてマップを設定するため、基準として適切なものとすることができ、検出精度を向上することができる。
また、制御装置20は、ISG100の温度が予め決められた範囲内であることを条件にして、所定の運転状態と判定する。これにより、温度に基づく誤差が少ない状態でマップを設定するため、基準として適切なものとすることができ、検出精度を向上することができる。
また、制御装置20は、ISG100への通電が行われてないことを条件にして、所定の運転状態と判定する。これにより、漏れ磁束の影響が少ない場合に、マップを設定するため、基準として適切なものとすることができ、検出精度を向上することができる。
制御装置20は、回転軸14の回転速度RSが閾値未満である場合には、マップを参照して誤差補正値Dを推定し、推定された誤差補正値Dによって補正前回転角度を補正する。一方、制御装置20は、回転速度RSが閾値以上である場合、補正値学習部22により学習された誤差補正値C(n)によって補正前回転角度を補正する。これにより、回転軸14の回転速度が遅く、検出期間中における回転速度の変動が大きくなりやすい場合、すなわち、補正値学習部22が誤差補正値C(n)を算出する際に誤差が生じやすい場合には、誤差マップの誤差補正値を利用することにより、回転角度RAの検出精度を向上させることができる。
一方、回転軸14の回転速度が速く、検出期間中における回転速度の変動が小さくなりやすい場合、すなわち、補正値学習部22が誤差補正値C(n)を算出する際に誤差が生じにくい場合には、学習した誤差補正値C(n)を利用することにより、回転角度RAの検出精度を向上させることができる。
(第2実施形態)
次に、第2実施形態の制御装置について説明する。なお、以下では、各実施形態で互いに同一又は均等である部分には同一符号を付しており、同一符号の部分についてはその説明を援用する。
エンジン200の気筒数が複数存在する場合(例えば4気筒の場合)において、気筒特性により、図9に示すように、1燃焼サイクル中において、エンジン200の回転速度NEに変動が生じる場合がある。つまり、各気筒#1~#4の燃焼行程ごとに、回転速度NEの変動波形が異なる場合がある。具体的には、エンジン200の回転変動において、気筒ごとに、最低回転速度NL、最高回転速度NH、回転変動量ΔNKを算出した場合、最低回転速度NLはほぼ同じである一方、最高回転速度NH(つまり、回転変動量ΔNK)が異なる。この違いは、気筒におけるシール性の違いや、インジェクタの劣化度合い、気筒内のクリアランス(死容積等)の違いなどによるものである。また、気筒の燃料噴射の状態が相違しても、回転変動量ΔNKの気筒間ばらつきが生じる。
このため、マップ設定処理においてマップを設定する場合には、気筒の違いも考慮して、変動周期を設定することが望ましい。ここで、第2実施形態におけるマップ設定処理について図10に基づいて説明する。
制御装置20は、第1実施形態のステップS301と同様に、エンジン200が所定の運転状態であるか否かを判定する(ステップS401)。制御装置20は、所定の運転状態であると判定しなかった場合(ステップS401:NO)、設定処理を終了する。一方、制御装置20は、所定の運転状態であると判定した場合(ステップS401:YES)、回転軸14の回転角度RAの変動周期を特定する(ステップS402)。
ステップS402について詳しく説明する。エンジン200が4気筒である場合、エンジン200の回転速度NEは、1燃焼サイクルごとに、同じような変動を繰り返す。つまり、クランク軸200aは2回転(720°CA)するごとに、同じような変動を繰り返す。一方、回転軸14は、クランク軸200aに対して所定の変速比(ギヤ比)で連結されている。
このため、予め決められた気筒(例えば、気筒#3)が燃焼行程である場合におけるクランク角CAと、回転軸14の回転角度RAとが、それぞれ同じ状態(同じ位相)となる変動周期を特定するためには、気筒数及び変速比を考慮する必要がある。そして、本実施形態では、回転軸14の回転回数を単位として変動周期を特定する。
例えば、気筒数が4で、変速比が1:3(クランク軸200a:回転軸14)の関係にある場合、変動周期は、回転軸14が6回転(クランク軸200aが2回転)したときに、1周期経過したこととなる。同様に、変速比が1.0:2.3(クランク軸200a:回転軸14)の関係にある場合、変動周期は、回転軸14が23回転(クランク軸200aが10回転)したときに、1周期経過したこととなる。
つまり、クランク軸200aの回転回数を2M(ただし2Mは偶数)とし、回転軸14の回転回数をL(ただし、Lは整数)とした場合において、2M:Lが変速比に一致する場合、Lの最小値が変動周期に相当する。
変動周期を特定した後、制御装置20は、ISG100及びエンジン200が基準状態となったか否かを判定する(ステップS403)。例えば、回転軸14の回転角度RAが第1角度となった場合であって、予め決められた気筒(例えば、気筒#3)が燃焼サイクルにおいて所定の行程(例えば、燃焼行程)となり、かつ、クランク角が予め定められた第2角度である場合に、基準状態となったと判定する。なお、気筒#3が燃焼行程であるか否かは、例えば、補正前回転角度から、エンジン200の回転速度NEや死点の間隔を算出して、推定すればよい。また、エンジンECUから情報を取得してもよい。
第1角度は、任意であるが、最も精度よく検出できる基準位置を示す角度(基準位置信号を入力する角度)であることが望ましい。同様に、第2角度は、任意であるが、最も精度よく検出できる上死点(又は下死点)を示す角度であることが望ましい。
ステップS403の判定結果が否定の場合、制御装置20は、マップ設定処理を終了する。一方、ステップS403の判定結果が肯定の場合、制御装置20は、磁気センサ92の検出結果に基づき、補正前回転角度を算出し、基準状態に達した時からの経過時間に関係づけて共に記憶する(ステップS404)。ステップS404以降の処理は、第1実施形態のステップS304以降の処理と同じであるため、説明を省略する。
この結果、図11に示すような回転軸14の回転角度RAの時間変化を示すマップが設定される。このマップに示すように、気筒の違いが反映されるように、変動周期が設定されている。このため、補正部23が、第1実施形態と同様にして、このマップを参照して補正前回転角度を補正する場合、変動周期及び気筒の違いも考慮して誤差補正が行われることとなる。つまり、気筒の違いによる誤差が抑制される。
なお、図11における破線は、エンジン200の回転速度NEの速度変動を示し、図11では、変速比が1:3であることを前提として回転軸14の回転角度RAを図示している。
そして、補正部23は、第1実施形態と同様に、エンジン200の駆動中、回転軸14の回転速度RSが予め決められた閾値未満である場合、このマップを参照して補正前回転角度の誤差補正値Dを推定し、推定された誤差補正値Dによって補正前回転角度を補正する。
以上詳述した上記実施形態によれば、次の優れた効果が得られる。
エンジン200の気筒が複数存在する場合、所定の運転状態であっても、気筒#1~#4の違いにより、回転速度RSが異なる場合がある(ムラが生じる場合がある)。このため、マップを設定する場合には、気筒の違いも考慮して、変動周期を設定することが望ましい。そこで、変速比及び気筒数に基づいて、基準状態となってから、次の基準状態となるまでの変動周期を特定することとした。これにより、気筒の違いによる回転速度RSの速度変化も考慮してマップを作成することができ、検出精度を向上させることができる。
また、制御装置20は、回転角度RAが第1角度となった場合であって、気筒#3が燃焼行程となり、かつ、クランク角が第2角度である場合に、基準状態となったと判定する。これにより、気筒が複数存在する場合であっても、マップと補正前回転角度との比較判定を行う際の始点を揃えることができ、マップと補正前回転角度との比較判定を適切に行うことができる。つまり、検出精度を向上させることができる。
(他の実施形態)
本発明は、上記実施形態に限定されず、例えば以下のように実施してもよい。なお、以下では、各実施形態で互いに同一又は均等である部分には同一符号を付しており、同一符号の部分についてはその説明を援用する。
・上記実施形態では、ISG100の制御装置20に、算出部21、補正値学習部22、補正部23、運転状態判定部24、マップ設定部25、及び基準状態判定部26を備えた。この別例として、ISG100の制御装置20とは別の制御装置に、算出部21、補正値学習部22、補正部23、運転状態判定部24、マップ設定部25、及び基準状態判定部26の機能のうち1部又は全部を備えてもよい。
・上記実施形態において、基準位置は複数設けられていてもよい。すなわち、所定角度(例えば、180°)間隔で基準位置信号を出力するように構成されていてもよい。この場合、第1基準位置(0°)から第2基準位置(180°)までの間を検出期間として設定してもよい。
・上記実施形態において、閾値は、エンジン200が駆動中であるか否かによって、変更しなくてもよい。
・上記実施形態において、補正値学習部22は、回転速度の変動幅が所定の速度幅以内でなくても、誤差補正値を算出し、学習してもよい。同様に、ISG100に流れる電流の変動幅が所定の電流幅以内でなくても、誤差補正値を算出し、学習してもよい。
・上記実施形態において、磁石91及び磁気センサ92の代わりにレゾルバを採用してもよい。この場合、例えば、回転子に設けられるレゾルバの励磁コイルが信号出力部に相当し、検出コイルがセンサに相当する。
・上記実施形態において、マップの設定方法を任意に変更してもよい。例えば、補正前回転角度を時間微分して、始点を特定し、始点の間隔(平均値)からエンジン200の回転速度NE(理想値)の変動波形を算出する。そして、エンジン200の回転速度NEと変速比を用いて、理想的な回転速度RSの変動波形を推定し、理想的な回転速度RSの変動波形を積分することにより、理想的な回転角度RAの変動波形を算出し、マップとして設定してもよい。
・上記実施形態において、回転速度RSが閾値未満であっても、誤差補正値C(n)を算出し、学習してもよい。
・上記実施形態では、回転軸14の回転速度RSが予め決められた閾値未満である場合であって、エンジン200が駆動していない場合、誤差補正を行わないが、行ってもよい。この場合、例えば、マップ設定処理において設定されるマップとは異なる専用マップを予め記憶しておき、補正部23は、それを参照して誤差を補正すればよい。専用マップは、例えば、工場出荷時に、エンジン200が駆動していない場合であって、ISG100への通電が停止している場合に、手動などにより回転軸14を回転させることにより、取得すればよい。
また、エンジン200の駆動していない場合、クランク軸200aからの影響が少なくなり、回転軸14の角度誤差が小さくなる傾向がある。このため、回転軸14の回転速度RSが予め決められた閾値未満である場合であっても、エンジン200が駆動していない場合、学習した誤差補正値C(n)に基づいて、補正前回転角度を補正してもよい。
・上記実施形態では、誤差補正値C(n)を学習していない場合、誤差補正を実施しなかったが、実施してもよい。この場合、例えば、マップ設定処理において設定されるマップ、又は異なる専用マップを予め記憶しておき、補正部23は、それを参照して誤差を補正すればよい。
・上記実施形態において、マップ設定処理は、気筒間の噴射ばらつきを抑制する気筒間噴射量補正制御(FCCB補正制御)の実行後、実行されるようにしてもよい。これにより、各気筒間の回転速度変動の差が平滑化されるため、マップ設定処理においてより好適なマップを設定することができ、回転角度RAの検出精度を向上させることができる。