図1は、本発明の一実施例としてのハイブリッド自動車20の構成の概略を示す構成図である。図2は、モータMG1,MG2を含む電気駆動系の構成の概略を示す構成図である。
実施例のハイブリッド自動車20は、図示するように、エンジン22と、プラネタリギヤ30と、モータMG1,MG2と、インバータ41,42と、変速機60と、バッテリ50と、ハイブリッド用電子制御ユニット(以下、「HVECU」という)70と、を備える。
エンジン22は、ガソリンや軽油などを燃料として動力を出力する内燃機関として構成されている。このエンジン22は、エンジン用電子制御ユニット(以下、「エンジンECU」という)24によって運転制御されている。
エンジンECU24は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。エンジンECU24には、エンジン22を運転制御するのに必要な各種センサからの信号、例えば、クランクポジションセンサ23からのクランク角θcrなどが入力ポートを介して入力されている。エンジンECU24からは、エンジン22を運転制御するための各種制御信号が出力ポートを介して出力されている。エンジンECU24は、HVECU70と通信ポートを介して接続されている。エンジンECU24は、クランクポジションセンサ23からのクランク角θcrに基づいてエンジン22の回転数Neを演算している。
プラネタリギヤ30は、シングルピニオン式の遊星歯車機構として構成されている。プラネタリギヤ30のサンギヤには、モータMG1の回転子が接続されている。プラネタリギヤ30のリングギヤには、変速機60の入力軸61が接続されている。プラネタリギヤ30のキャリヤには、ダンパ28を介してエンジン22のクランクシャフト26が接続されている。
モータMG1は、永久磁石が埋め込まれた回転子と、三相コイルが巻回された固定子と、を有する同期発電電動機として構成されている。このモータMG1は、上述したように、回転子がプラネタリギヤ30のサンギヤに接続されている。モータMG2は、モータMG1と同様の同期発電電動機として構成されている。このモータMG2は、回転子が変速機60の入力軸61に接続されている。
インバータ41は、電力ライン54に接続されている。このインバータ41は、図2に示すように、6つのスイッチング素子としてのトランジスタT11〜T16と、6つのダイオードD11〜D16と、を備える。トランジスタT11〜T16は、それぞれ、電力ライン54の正極ラインと負極ラインとに対してソース側とシンク側になるように2個ずつペアで配置されている。6つのダイオードD11〜D16は、それぞれ、トランジスタT11〜T16に逆方向に並列接続されている。トランジスタT11〜T16の対となるトランジスタ同士の接続点の各々には、モータMG1の三相コイル(U相,V相,W相)の各々が接続されている。したがって、インバータ41に電圧が作用しているときに、モータ用電子制御ユニット(以下、「モータECU」という)40によって、対となるトランジスタT11〜T16のオン時間の割合が調節されることにより、三相コイルに回転磁界が形成され、モータMG1が回転駆動される。
インバータ42は、インバータ41と同様に、6つのトランジスタT21〜T26と、6つのダイオードD21〜D26と、を備える。そして、インバータ42に電圧が作用しているときに、モータECU40によって、対となるトランジスタT21〜T26のオン時間の割合が調節されることにより、三相コイルに回転磁界が形成され、モータMG2が回転駆動される。
モータECU40は、CPU40aを中心とするマイクロプロセッサとして構成されており、CPU40aの他に、処理プログラムを記憶するROM40b,データを一時的に記憶するRAM40c,フラッシュメモリ40d,入出力ポート,通信ポートを備える。モータECU40には、モータMG1,MG2を駆動制御するのに必要な各種センサからの信号、例えば、モータMG1,MG2の回転子の回転位置を検出する回転位置センサ43,44からの回転位置θm1,θm2や、モータMG1,MG2の各相(V相,W相)に流れる電流を検出する電流センサ45v,45w,46v,46wからの相電流Iv1,Iw1,Iv2,Iw2などが入力ポートを介して入力されている。モータECU40からは、インバータ41,42のトランジスタT11〜T16,T21〜T26へのスイッチング制御信号などが出力ポートを介して出力されている。モータECU40は、HVECU70と通信ポートを介して接続されている。モータECU40は、回転位置センサ43,44からのモータMG1,MG2の回転子の回転位置θm1,θm2に基づいてモータMG1,MG2の角速度ωm1,ωm2や回転数Nm1,Nm2を演算している。
変速機60は、4段変速機として構成されており、プラネタリギヤ30のリングギヤおよびモータMG2の回転子(回転軸)に接続された入力軸61と、駆動輪38a,38bにデファレンシャルギヤ37を介して連結された駆動軸36に接続された出力軸62と、複数の遊星歯車機構と、油圧駆動の複数の係合要素と、を備える。
バッテリ50は、例えばリチウムイオン二次電池やニッケル水素二次電池として構成されており、電力ライン54を介してインバータ41,42と接続されている。このバッテリ50は、バッテリ用電子制御ユニット(以下、「バッテリECU」という)52によって管理されている。
バッテリECU52は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。バッテリECU52には、バッテリ50を管理するのに必要な各種センサからの信号、例えば、バッテリ50の端子間に取り付けられた電圧センサ51aからの電圧Vbや、バッテリ50の出力端子に取り付けられた電流センサ51bからの電流Ibなどが入力ポートを介して入力されている。バッテリECU52は、HVECU70と通信ポートを介して接続されている。バッテリECU52は、電流センサ51bからのバッテリ50の電流Ibの積算値に基づいて蓄電割合SOCを演算している。蓄電割合SOCは、バッテリ50の全容量に対するバッテリ50から放電可能な電力の容量の割合である。
HVECU70は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。HVECU70には、各種センサからの信号が入力ポートを介して入力されている。HVECU70に入力される信号としては、例えば、駆動軸36(変速機60の出力軸62)に取り付けられた回転数センサ69からの駆動軸36の回転数Np,イグニッションスイッチ80からのイグニッション信号,シフトポジションセンサ82からのシフトポジションSPなどを挙げることができる。また、アクセルペダルポジションセンサ84からのアクセル開度Acc,ブレーキペダルポジションセンサ86からのブレーキペダルポジションBP,車速センサ88からの車速Vなども挙げることができる。HVECU70からは、変速機60への制御信号などが出力ポートを介して出力されている。HVECU70は、上述したように、エンジンECU24,モータECU40,バッテリECU52と通信ポートを介して接続されている。
こうして構成された実施例のハイブリッド自動車20では、ハイブリッド走行(HV走行)モードや電動走行(EV走行)モードで走行するようにエンジン22およびモータMG1,MG2(以下、「ハイブリッド部」という)と変速機60とを制御する。ここで、HV走行モードは、エンジン22の運転を伴って走行するモードであり、EV走行モードは、エンジン22の運転を伴わずに走行するモードである。以下、変速機60の制御,EV走行モードでのハイブリッド部の制御,HV走行モードでのハイブリッド部の制御について説明する。
変速機60の制御について説明する。HVECU70は、まず、アクセル開度Accと車速Vとに基づいて変速機60の目標変速段Gs*を設定し、変速機60の変速段Gsが目標変速段Gs*となるように変速機60を制御する。即ち、変速機60の現在の変速段Gsが目標変速段Gs*と一致するときには、現在の変速段Gsを保持し、現在の変速段Gsが目標変速段Gs*よりも低車速側の変速段(低速段)のときには、アップシフトし、現在の変速段Gsが目標変速段Gs*よりも高車速側の変速段(高速段)のときには、ダウンシフトする。
EV走行モードでのハイブリッド部の制御について説明する。HVECU70は、まず、アクセル開度Accと車速Vとに基づいて駆動軸36の要求トルクTout*を設定する。続いて、モータMG2の回転数Nm2(変速機60の入力軸61の回転数)を駆動軸36の回転数Noutで除して変速機60のギヤ比Grを計算し、駆動軸36の要求トルクTout*を変速機60のギヤ比Grで除して変速機60の入力軸61に要求される要求トルクTin*を計算する。そして、モータMG1のトルク指令Tm1*に値0を設定すると共に変速機60の入力軸61の要求トルクTin*をモータMG2のトルク指令Tm2*に設定し、設定したモータMG1,MG2のトルク指令Tm1*,Tm2*をモータECU40に送信する。モータECU40は、モータMG1,MG2がトルク指令Tm1*,Tm2*で駆動されるようにインバータ41,42のトランジスタT11〜T16,T21〜T26のスイッチング制御を行なう。
HV走行モードでのハイブリッド部の制御について説明する。HVECU70は、まず、上述したのと同様に、駆動軸36(変速機60の出力軸62)の要求トルクTout*,変速機60のギヤ比Gr,変速機60の入力軸61の要求トルクTin*を設定する。続いて、変速機60の入力軸61の要求トルクTin*にモータMG2の回転数Nm2(変速機60の入力軸61の回転数)を乗じて変速機60の入力軸61に入力される要求パワーPin*を計算し、計算した要求パワーPin*からバッテリ50の充放電要求パワーPb*(バッテリ50から放電するときが正の値)を減じてエンジン22に要求される要求パワーPe*を計算する。そして、要求パワーPe*とエンジン22の動作ライン(例えば燃費動作ライン)とを用いてエンジン22の目標回転数Ne*および目標トルクTe*を設定する。続いて、エンジン22の回転数Neが目標回転数Ne*となるようにするための回転数フィードバック制御によってモータMG1のトルク指令Tm1*を設定する。そして、モータMG1をトルク指令Tm1*で駆動したときにモータMG1から出力されてプラネタリギヤ30を介して駆動軸36に作用するトルクを、変速機60の入力軸61の要求トルクTin*から減じて、モータMG2のトルク指令Tm2*を計算する。そして、エンジン22の目標回転数Ne*および目標トルクTe*をエンジンECU24に送信すると共にモータMG1,MG2のトルク指令Tm1*,Tm2*をモータECU40に送信する。エンジンECU24は、エンジン22が目標回転数Ne*および目標トルクTe*に基づいて運転されるようにエンジン22の吸入空気量制御や燃料噴射制御,点火制御などを行なう。モータECU40は、モータMG1,MG2がトルク指令Tm1*,Tm2*で駆動されるようにインバータ41,42のトランジスタT11〜T16,T21〜T26のスイッチング制御を行なう。
次に、モータMG2の駆動制御(インバータ42のトランジスタT21〜T26)について説明する。モータMG2の駆動制御は、モータECU40に含まれる図3の制御ブロックによって行なわれる。図3に示すように、モータMG2の駆動制御は、まず、トルク指令Tm2*に基づいて電流指令生成器91によってdq軸座標系におけるd軸電流指令Id2*およびq軸電流指令Iq2*を生成する。電流指令生成器91は、トルク指令Tm2*とd軸電流指令Id2*およびq軸電流指令Iq2*との関係を予め定めた電流指令テーブルにトルク指令Tm2*を適用してd軸電流指令Id2*およびq軸電流指令Iq2*を生成する。続いて、モータMG2のU相,V相,W相に流れる電流の総和が値0であるとして、モータMG2の制御用回転位置θc2を用いて座標変換器96によって電流センサ46v,46wからのV相電流Iv2およびW相電流Iw2をd軸電流Id2およびq軸電流Iq2に変換(三相二相変換)する。モータMG2の制御用回転位置θc2は、回転位置センサ44によって検出される回転位置θm2と後述するオフセット学習制御部97によって出力されるオフセット量Δθos2との和として加算器98によって演算されたものが用いられる。続いて、d軸電流指令Id2*およびq軸電流指令Iq2*と電流フィードバックのためのd軸電流Id2およびq軸電流Iq2との差分ΔId2,ΔIq2を減算器92d,92qによって演算する。そして、演算した差分ΔId2,ΔIq2に基づいて電圧指令変換器93d,93qによってd軸電圧指令Vd2*およびq軸電圧指令Vq2*を生成する。ここで、d軸電圧指令Vd2*およびq軸電圧指令Vq2*は、差分ΔId2,ΔIq2に基づくフィードバック項と、各軸相互に干渉する項をキャンセルするためのフィードフォワード項(後述する式(1)、(2)の右辺第2項)との和として演算される。d軸電圧指令Vd2*およびq軸電圧指令Vq2*を生成すると、上述のモータMG2の制御用回転位置θc2を用いて座標変換器94によってd軸電圧指令Vd2*およびq軸電圧指令Vq2*を各相電圧指令Vu2*,Vv2*,Vw2*に変換(二相三相変換)する。そして、各相電圧指令Vu2*,Vv2*,Vw2*に基づいてPWM変換器95によってパルス幅変調信号(PWM信号)を生成し、生成したPWM信号に基づいてインバータ42のトランジスタT21〜T26をスイッチングすることによって直流電力を三相交流電力としてモータMG2に印加する。なお、モータMG1についても、図3と同様の制御ブロックを用いて駆動制御することができる。
いま、座標変換(三相二相変換,二相三相変換)で用いるモータMG2の制御用回転位置θc2として、回転位置センサ44によって検出される回転位置θm2をそのまま用いる場合を考える。永久磁石によって発生する磁束の方向をd軸とし、d軸と直交する軸をq軸とすると、モータMG2の電圧方程式を次式(1),(2)によって示すことができる。式(1),(2)中、「Vd2」、「Vq2」はd軸電圧,q軸電圧を示し、「R2」は一相当たりの抵抗値を示し、「Id2」,「Iq2」はd軸電流,q軸電流を示し、「ωm2」は回転子の角速度を示し、「φd2」,「φq2」はd軸磁束,q軸磁束を示す。
Vd2=R2・Id2-ωm2・φq2 (1)
Vq2=R2・Iq2+ωm2・φd2 (2)
回転位置センサ44によって検出されるモータMG2の回転位置θm2と実際の回転位置との間に位相差Δθ(オフセット誤差)がない場合、永久磁石が発生させる磁束φ2の方向とd軸とが一致する(図4(a)参照)。このため、d軸磁束φd2,q軸磁束φq2は、次式(3),(4)によって示すことができる。式(3),(4)中、「Ld2」,「Lq2」はd軸インダクタンス,q軸インダクタンスを示す。
φd2=Ld2・Id2+φ2 (3)
φq2=Lq2・Iq2 (4)
このとき、d軸電流Id2およびq軸電流Iq2を値0とすると、式(3),式(4)から、d軸磁束φd2は値φ2となり、q軸磁束φqは値0となる。そして、これらを式(1),(2)にそれぞれ代入すると、d軸電圧Vd2,q軸電圧Vq2はそれぞれ次式(5),(6)によって示され、d軸電圧Vd2が値0となる。
Vd2=0 (5)
Vq2=ωm2・φ2 (6)
一方、回転位置センサ44によって検出されるモータMG2の回転位置θm2と実際の回転位置との間に位相差Δθ(オフセット誤差)がある場合、永久磁石が発生させる磁束φ2の方向とd軸との間で位相差Δθのズレが生じる(図4(b)参照)。このため、d軸電流Id2およびq軸電流Iq2を値0とすると、d軸電圧Vd2,q軸電圧Vq2は次式(7),式(8)によって示され、モータMG2が回転していると(角速度ωm2が値0でない場合)、d軸電圧Vd2が値0とならない。
Vd2=ωm2・φ2・sinΔθ (7)
Vq2=ωm2・φ2・cosΔθ (8)
このように、回転位置センサ44によって検出される回転位置θm2にオフセット誤差がない場合には、d軸電流Id2およびq軸電流Iq2を値0としたときに、d軸電圧Vd2が値0となる。一方、回転位置センサ44によって検出される回転位置θm2にオフセット誤差がある場合には、d軸電流Id2およびq軸電流Iq2を値0としても、モータMG2が回転していると、d軸電圧Vd2が値0とならない。上述したように、回転位置センサ44によって検出される回転位置θm2は、座標変換器94,96による座標変換(二相三相変換,三相二相変換)に用いられる。このため、回転位置θm2にオフセット誤差がある場合に当該オフセット誤差を打ち消すためのオフセット補正を行なわないと、座標変換を適切に行なうことができず、モータMG2からトルク指令Tm2*に見合うトルクを出力することができなくなる。実施例では、モータMG2の回転中にd軸電流Id2およびq軸電流Iq2を値0とし、この状態でd軸電圧Vd2が値0となるように回転位置センサ44によって検出される回転位置θm2をオフセットし、d軸電圧Vd2が値0となったときの回転位置θmのオフセット量Δθos2を学習値(オフセット誤差)としての後述の学習オフセット量Δθlv2とするオフセット学習を実行する。オフセット学習が実行されると、回転位置センサ44によって検出される回転位置θm2は、加算器98によって、オフセット量Δθos2だけオフセットされて、制御用回転位置θc2として座標変換器94,96にそれぞれ出力される。
次に、こうして構成された実施例のハイブリッド自動車20の動作について説明する。特に、回転位置センサ44のオフセット学習を実行する際の動作と、変速機60の動作と、について説明する。図5は、モータECU40のオフセット学習制御部97によって実行されるオフセット学習制御ルーチンの一例を示すフローチャートである。
図5のオフセット学習制御ルーチンについて説明する。このルーチンは、所定時間毎(例えば、数msec毎)に繰り返し実行される。オフセット学習制御ルーチンが実行されると、モータECU40のオフセット学習制御部97は、まず、フラッシュメモリ40dにオフセット学習履歴が記憶されているか否かを判定する(ステップS100)。そして、オフセット学習履歴が記憶されていると判定されたときには、フラッシュメモリ40dに記憶されている学習オフセット量Δθlv2をオフセット量Δθos2に設定する(ステップS110)。一方、オフセット学習履歴が記憶されていないと判定されたときには、初期オフセット量Δθini2をオフセット量Δθos2に設定する(ステップS120)。
ここで、初期オフセット量Δθini2は、工場出荷時や部品交換時に行なわれるオフセット学習による学習値である。なお、部品交換時には、車両を整備モードとして、作業者が所定の手順に従って作業を進めることにより、オフセット学習が実行されるようになっている。これにより、フラッシュメモリ40dに記憶されているオフセット学習履歴がリセットされると共に、新たな学習値が初期オフセット量Δθini2としてフラッシュメモリ40dに記憶される。ただし、作業者のミス等によってオフセット学習が実行されないと、部品交換後に、初期オフセット量Δθini2に適正値が記憶されていない場合が生じる。このことを考慮して、実施例では、所定の頻度でオフセット学習を実行することにより、より適切な学習オフセット量Δθlv2をフラッシュメモリ40dに記憶するものとした。
次に、HVECU70からオフセット学習指令を受信したか否かを判定する(ステップS130)。HVECU70は、シフトポジションSPが前進走行用ポジション(Dポジション)で現在のトリップでオフセット学習が未完了で且つオフセット学習の実行中でもなく且つモータMG2が回転していて且つアクセルオフされたまたはモータMG2のトルク指令Tm2*が値0付近になった学習条件が成立したときに、オフセット学習指令をモータECU40に送信する。
ステップS130で、HVECU70からオフセット学習指令を受信していないと判定されたときには、ステップS110またはステップS120で設定したオフセット量Δθos2を加算器98に出力して(ステップS140)、オフセット学習制御ルーチンを終了する。
ステップS130で、HVECU70からオフセット学習指令を受信したと判定されたときには、モータMG2の回転数Nm2を入力して回転数Nm2aとして設定し(ステップS150)、d軸電流指令Id2*およびq軸電流指令Iq2*にそれぞれ値0を設定する(ステップS160)。そして、設定したd軸電流指令Id2*およびq軸電流指令Iq2*を電流指令生成器91に出力すると共に、ステップS110またはステップS120で設定したオフセット量Δθos2を加算器98に出力する(ステップS170)。
電流指令生成器91は、値0のd軸電流指令Id2*およびq軸電流指令Iq2*を入力すると、値0のd軸電流指令Id2*,値0のq軸電流指令Iq2*を減算器92d,92qに出力する。また、加算器98は、オフセット量Δθos2を入力すると、回転位置センサ44によって検出された回転位置θm2を入力し、回転位置θm2にオフセット量Δθos2を加算したものを制御用回転位置θc2として座標変換器94,96に出力する。減算器92d,92qは、電流指令生成器91からd軸電流指令Id2*,q軸電流指令Iq2*を入力すると、座標変換器96からd軸電流Id2,q軸電流Iq2を入力し、d軸電流指令Id2*,q軸電流指令Iq2*とd軸電流,q軸電流との差分ΔId2,ΔIq2を演算して電圧指令変換器93d,93qに出力する。電圧指令変換器93d,93qは、差分ΔId2,ΔIq2を入力すると、差分ΔId2,ΔIq2に基づいてd軸電圧指令Vd2*,q軸電圧指令Vq2*を生成する。上述したように、モータMG2の回転中において、d軸電流指令Id2*およびq軸電流指令Iq2*を値0とした場合、制御用回転位置θc2と実際の回転位置との間にズレがなければ、d軸電圧指令Vd2*は値0となり、制御用回転位置θc2と実際の回転位置との間にズレがあれば、d軸電圧指令Vd2*は値0とならない。
次に、電圧指令変換器93dからd軸電圧指令Vd2*を入力し(ステップS180)、入力したd軸電圧指令Vd2*が値0を含む所定電圧範囲内にあるか否かを判定する(ステップS190)。ここで、所定電圧範囲は、現在のオフセット量Δθos2が適正値であると判断してよいとして予め定められた範囲である。
ステップS190でd軸電圧指令Vd2*が所定電圧範囲内にないと判定されたときには、現在のオフセット量Δθos2が適正値でないと判断し、d軸電圧指令Vd2*を用いて次式(9)によってオフセット量Δθos2を計算して(ステップS200)、ステップS160に戻る。ここで、式(9)は、d軸電圧指令Vd2*を値0とするためのフィードバック制御における関係式である。なお、式(9)中、右辺第1項の「前回Δθos2」は前回のオフセット量Δθos2であり、右辺第2項の「s1」は比例項のゲインであり、右辺第3項の「s2」は積分項のゲインである。なお、実施例では、式(9)に示すように、d軸電圧指令Vd2*を値0とするオフセット量Δθos2の計算に比例積分制御を用いるものとしたが、比例制御を用いるものとしてもよいし、比例積分微分制御を用いるものとしてもよい。
Δθos2=前回Δθos2+s1・(0-Vd2*)+s2・∫(0-Vd2*)dt (9)
ステップS190でd軸電圧指令Vd2*が所定電圧範囲内にあると判定されたときには、現在のオフセット量Δθos2は適正値であると判断し、モータMG2の回転数Nm2を入力して回転数Nm2bとして設定し(ステップS210)、回転数Nm2bから回転数Nm2aを減じて、オフセット学習の実行中のモータMG2の回転数Nm2の変化量としての学習中変化量ΔNm2を計算する(ステップS220)。このモータMG2の学習中変化量ΔNm2は、HVECU70からオフセット学習指令を受信してから(d軸電流指令Id2*およびq軸電流指令Iq2*に値0を設定するのを開始してから)d軸電圧指令Vd2*が所定電圧範囲内になるまでのモータMG2の回転数Nm2の変化量を意味する。なお、オフセット学習の実行中には、d軸電流指令Id2*およびq軸電流指令Iq2*にそれぞれ値0を設定するから、変速機60の変速段Gsが変更されなければ、基本的に、車速V(モータMG2の回転数Nm2)は減少する。しかし、降坂路での走行時や変速機60のダウンシフトが行なわれたときには、モータMG2の回転数Nm2が増加する。
続いて、モータMG2の学習中変化量ΔNm2に基づいて補正値αを設定し(ステップS230)、d軸電圧指令Vd2*が所定電圧範囲内になったときのオフセット量Δθos2に補正値αを加えることによってオフセット量Δθos2を補正(再設定)し(ステップS240)、補正後のオフセット量Δθos2を学習オフセット量Δθlv2として更新すると共にこの学習オフセット量Δθlv2をフラッシュメモリ40dに記憶して(ステップS250)、本ルーチンを終了する。
ここで、補正値αは、実施例では、モータMG2の学習中変化量ΔNm2と補正値αとの関係を予め実験や解析などによって定めて補正値設定用マップとしてROM40bに記憶しておき、モータMG2の学習中変化量ΔNm2が与えられると、このマップから対応する補正値αを導出して設定するものとした。補正値設定用マップの一例を図6に示す。図示するように、補正値αは、学習中変化量ΔNm2が小さいときには大きいときに比して小さくなる(回転方向に対して遅れる)ように設定するものとした。具体的には、補正値αは、学習中変化量ΔNm2が小さいほど小さくなる(回転方向に対して遅れる)ように設定するものとした。これは、学習中変化量ΔNm2が小さいほどd軸電圧指令Vd2*が所定電圧範囲内になったときのオフセット量Δθos2が正側にズレやすい(回転方向に対して進みやすい)という理由に基づくものである。
このように、d軸電圧指令Vd2*が所定電圧範囲内になったときのオフセット量Δθos2に補正値αを加えることによってオフセット量Δθos2を補正すると共に補正後のオフセット量Δθos2を学習オフセット量Δθlv2とすることにより、学習オフセット量Δθlv2をより適正値とすることができる。この結果、回転位置センサ44のオフセット学習をより適切に行なうことができる。
なお、オフセット学習では、d軸電流指令Id2*およびq軸電流指令Iq2*にそれぞれ値0を設定するから、アクセルオフまたはモータMG2のトルク指令Tm2*が値0付近のときにオフセット学習を実行することにより、運転者に違和感を与えるのを抑制することができる。また、現在のトリップでオフセット学習が未完了である条件を含む学習条件が成立したときに、オフセット学習を実行するから、システムオンしてからシステムオフするまでの間(いわゆる1トリップ)に1回の頻度でオフセット学習を実行することになる。
以上説明した実施例のハイブリッド自動車20では、モータMG2が回転している状態で、d軸電流指令Id2*およびq軸電流指令Iq2*にそれぞれ値0を設定してオフセット学習(学習オフセット量Δθlv2の更新)を実行する。この際において、d軸電流指令Id2*およびq軸電流指令Iq2*にそれぞれ値0を設定してd軸電圧指令Vd2*が所定電圧範囲内になったときのオフセット量Δθos2を、オフセット学習の実行中の三相モータの学習中変化量ΔNm2が小さいときには大きいときに比して(回転数Nm2の減少量が大きいときには小さいときに比して)小さくなる(回転方向に対して遅れる)ように補正し、補正後のオフセット量Δθos2を学習オフセット量Δθlv2として更新する。これにより、学習オフセット量Δθlv2をより適正値とすることができる。この結果、回転位置センサ44のオフセット学習をより適切に行なうことができる。
実施例のハイブリッド自動車20では、モータMG2の学習中変化量ΔNm2に基づいて補正値αを設定するものとした。しかし、オフセット学習の実行中に変速機60の変速段Gsが変更されたときには、その変速パターン(回転数変化量)に応じて補正値αを設定するものとしてもよい。
実施例のハイブリッド自動車20では、モータECU40のROM40bに記憶されている補正値設定用マップに少なくともモータMG2の学習中変化量ΔNm2を適用して補正値αを設定するものとした。しかし、補正値設定用マップではなく、予め定められた演算式に少なくともモータMG2の学習中変化量ΔNm2を適用して補正値αを演算するものとしてもよい。
実施例のハイブリッド自動車20では、モータECU40とHVECU70とを備えるものとした。しかし、モータECU40とHVECU70とを単一の電子制御ユニットとして構成するものとしてもよい。
実施例のハイブリッド自動車20では、変速機60として、4段変速機を用いるものとした。しかし、変速機として、2段変速機,3段変速機,5段変速機,6段変速機,8段変速機,10段変速機などを用いるものとしてもよい。
実施例では、エンジン22とプラネタリギヤ30とモータMG1,MG2とを備えるハイブリッド自動車20の構成とした。しかし、エンジンと1つのモータとを備えるいわゆる1モータハイブリッド自動車の構成としてもよい。また、エンジンを備えずにモータからの動力だけを用いて走行する電気自動車の構成としてもよい。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、モータMG2が「三相モータ」に相当し、インバータ42が「インバータ」に相当し、モータECU40が「インバータ制御手段」に相当し、回転位置センサ44が「回転位置センサ」に相当し、モータECU40のオフセット学習制御部97が「オフセット学習手段」に相当し、加算器98が「回転位置補正手段」に相当する。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。