(57)【要約】【課題】回転位置センサのオフセット学習の精度が低下するのを抑制する。【解決手段】モータが回転している状態で、ｄ軸電流指令およびｑ軸電流指令にそれぞれ値０を設定してオフセット学習を実行する。そして、オフセット学習を実行する際には（Ｓ３６０）、変速機の変速段が低車速側の所定変速段範囲内となるように変速機を制御する（Ｓ３７０）。これにより、モータの回転数をより確実にある程度大きくしてオフセット学習を実行することができる。この結果、オフセット学習の精度が低下するのを抑制することができる。【選択図】図９
2017175711.tif 000002
【特許請求の範囲】
【請求項１】
三相モータと、
前記三相モータを駆動するインバータと、
前記三相モータの回転軸と車軸に連結された駆動軸との間で変速段の変更を伴って動力を伝達する変速機と、
前記三相モータのトルク指令に基づいてｄ軸電流指令およびｑ軸電流指令を設定し、前記三相モータの回転位置に基づいて前記三相モータの各相電流をｄ軸電流およびｑ軸電流に変換し、前記ｄ軸電流指令と前記ｄ軸電流と前記ｑ軸電流指令と前記ｑ軸電流とに基づいてｄ軸電圧指令およびｑ軸電圧指令を設定し、前記三相モータの回転位置に基づいて前記ｄ軸電圧指令および前記ｑ軸電圧指令を前記三相モータの各相電圧指令に変換し、前記各相電圧指令に基づいて前記インバータを制御するインバータ制御手段と、
前記変速機を制御する変速機制御手段と、
前記三相モータの回転位置を検出する回転位置センサと、
前記回転位置センサのオフセット量を学習するオフセット学習手段と、
前記回転位置センサによって検出された回転位置を前記オフセット学習手段によって学習されたオフセット量に基づいて補正する回転位置補正手段と、
を備える自動車であって、
前記オフセット学習手段は、前記三相モータが回転している状態で、前記ｄ軸電流指令および前記ｑ軸電流指令を値０とし、値０とした前記ｄ軸電流指令および前記ｑ軸電流指令に基づく前記ｄ軸電圧指令が値０となるように前記回転位置のオフセット量を学習するオフセット学習を実行する手段であり、
前記変速機制御手段は、前記オフセット学習手段によって前記オフセット学習が実行される際には、前記変速機の変速段が低車速側の所定変速段範囲内となるように前記変速機を制御する学習用変速制御を実行する手段である、
自動車。
【請求項２】
請求項１記載の自動車であって、
前記変速機制御手段は、前記学習用変速制御を実行する際には、前記変速機の変速段が前記所定変速段範囲内の所定変速段で保持されるように前記変速機を制御する手段である、
自動車。
【請求項３】
請求項２記載の自動車であって、
前記所定変速段は、前記所定変速段範囲内の最高速段である、
自動車。
【請求項４】
請求項１ないし３のいずれか１つの請求項に記載の自動車であって、
前記変速機制御手段は、前記学習用変速制御の実行中に、前記変速機に異常が生じたときまたは前記変速機の温度が所定温度以上になったときには、前記学習用変速制御を中止して所定のフェールセーフ変速制御を実行する手段である、
自動車。
【請求項５】
請求項１ないし４のいずれか１つの請求項に記載の自動車であって、
前記オフセット学習手段は、前記オフセット学習の実行中に、前記変速機に異常が生じたときまたは前記変速機の温度が前記所定温度以上になったときには、前記オフセット学習を中止する手段である、
自動車。
【請求項６】
請求項１ないし５のいずれか１つの請求項に記載の自動車であって、
前記オフセット学習手段は、前記オフセット学習の実行中に、前記三相モータの回転数が所定回転数範囲外になったときには、前記オフセット学習を中止する手段である、
自動車。
【請求項７】
請求項１ないし６のいずれか１つの請求項に記載の自動車であって、
前記変速機制御手段は、前記学習用変速制御を実行しながら前記オフセット学習手段による前記オフセット学習が完了したときには、その後に現在の変速段がアクセル操作量と車速とに基づく通常用変速段と一致したときに、前記学習用変速制御を終了して、前記変速機の変速段が前記通常用変速段となるように前記変速機を制御する通常変速制御を実行する手段である、
自動車。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車に関し、詳しくは、三相モータとインバータとを備える自動車に関する。
【背景技術】
【０００２】
従来、ｄ軸電流およびｑ軸電流に基づいて三相モータを駆動制御するものにおいて、三相モータの回転子に取り付けられた回転位置センサのオフセット量を学習するものが提案されている（例えば、特許文献１参照）。三相モータの駆動制御は、以下のように行なわれる。まず、三相モータのトルク指令に基づいてｄ軸電流指令およびｑ軸電流指令を設定する。続いて、三相モータの各相に流れる各相電流を電流センサによって検出し、回転位置センサからの三相モータの回転位置に基づいて各相電流をｄ軸電流およびｑ軸電流に変換（三相二相変換）する。そして、ｄ軸電流指令とｄ軸電流とｑ軸電流指令とｑ軸電流とに基づいてｄ軸電圧指令およびｑ軸電圧指令を設定し、回転位置センサからの三相モータの回転位置に基づいてｄ軸電圧指令およびｑ軸電圧指令を各相電圧指令に変換（二相三相変換）する。そして、各相電圧指令に基づいてＰＷＭ信号を生成してインバータをスイッチング制御することによって三相モータを駆動制御する。ここで、回転位置センサによって検出される回転位置にオフセット誤差が含まれていると、三相二相変換や二相三相変換が適正に行なわれず、三相モータからトルク指令に応じたトルクを出力できなくなる。このため、回転位置センサによって検出された回転位置にオフセット補正を施すためのオフセット量を学習するオフセット学習を実行している。三相モータの回転中にｄ軸電流指令およびｑ軸電流指令を値０とすると、回転位置センサにオフセット誤差が含まれていない場合、ｄ軸電圧指令も値０となる。しかし、回転位置センサにオフセット誤差が含まれている場合、三相モータの回転中にｄ軸電流指令およびｑ軸電流指令を値０としても、ｄ軸電圧指令が値０とならない。このため、ｄ軸電流指令およびｑ軸電流指令を値０としたときにｄ軸電圧指令が値０となるように回転位置のオフセット量を調整することにより、オフセット学習を実行している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３３９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、回転位置センサのオフセット学習を実行する際において、オフセット誤差が含まれている場合（オフセット量が適正値でない場合）、ｄ軸電流指令およびｑ軸電流指令を値０としたときに、モータの角速度（回転数）が大きいときには小さいときに比してｄ軸電圧指令が大きくなる。したがって、モータの回転数が小さいときには、ｄ軸電圧指令が小さくなり（誤差の影響が大きくなり）、オフセット学習の精度が低くなる（精度の低い学習結果が反映される）可能性がある。
【０００５】
本発明の自動車は、回転位置センサのオフセット学習の精度が低下するのを抑制することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の自動車は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の自動車は、
三相モータと、
前記三相モータを駆動するインバータと、
前記三相モータの回転軸と車軸に連結された駆動軸との間で変速段の変更を伴って動力を伝達する変速機と、
前記三相モータのトルク指令に基づいてｄ軸電流指令およびｑ軸電流指令を設定し、前記三相モータの回転位置に基づいて前記三相モータの各相電流をｄ軸電流およびｑ軸電流に変換し、前記ｄ軸電流指令と前記ｄ軸電流と前記ｑ軸電流指令と前記ｑ軸電流とに基づいてｄ軸電圧指令およびｑ軸電圧指令を設定し、前記三相モータの回転位置に基づいて前記ｄ軸電圧指令および前記ｑ軸電圧指令を前記三相モータの各相電圧指令に変換し、前記各相電圧指令に基づいて前記インバータを制御するインバータ制御手段と、
前記変速機を制御する変速機制御手段と、
前記三相モータの回転位置を検出する回転位置センサと、
前記回転位置センサのオフセット量を学習するオフセット学習手段と、
前記回転位置センサによって検出された回転位置を前記オフセット学習手段によって学習されたオフセット量に基づいて補正する回転位置補正手段と、
を備える自動車であって、
前記オフセット学習手段は、前記三相モータが回転している状態で、前記ｄ軸電流指令および前記ｑ軸電流指令を値０とし、値０とした前記ｄ軸電流指令および前記ｑ軸電流指令に基づく前記ｄ軸電圧指令が値０となるように前記回転位置のオフセット量を学習するオフセット学習を実行する手段であり、
前記変速機制御手段は、前記オフセット学習手段によって前記オフセット学習が実行される際には、前記変速機の変速段が低車速側の所定変速段範囲内となるように前記変速機を制御する学習用変速制御を実行する手段である、
ことを要旨とする。
【０００８】
この本発明の自動車では、三相モータが回転している状態で、ｄ軸電流指令およびｑ軸電流指令を値０とし、値０としたｄ軸電流指令およびｑ軸電流指令に基づくｄ軸電圧指令が値０となるように回転位置のオフセット量を学習するオフセット学習を実行する。そして、オフセット学習を実行する際には、変速機の変速段が低車速側の所定変速段範囲内となるように変速機を制御する学習用変速制御を実行する。このように、オフセット学習を実行する際に学習用変速制御を実行することにより、三相モータの角速度（回転数）をより確実にある程度大きくしてオフセット学習を実行することができる。この結果、オフセット学習の精度が低下する（精度の低い学習結果が反映される）のを抑制することができる。ここで、「低車速側の所定変速段範囲」とは、最低速段から最高速段よりもある程度低い変速段までを意味し、例えば、４段変速機における第１速段および第２速段，６段変速機における第１速段から第２速段，第３速段，第４速段までのいずれか，８段変速機における第１速段から第２速段，第３速段，第４速段，第５速段までのいずれかなどを意味する。また、「学習用変速制御」は、オフセット学習を実行する際にだけ実行するものとしてもよいし、オフセット学習が未完了のときに（オフセット学習が完了するまで）実行するものとしてもよい。
【０００９】
こうした本発明の自動車において、前記変速機制御手段は、前記学習用変速制御を実行する際には、前記変速機の変速段が前記所定変速段範囲内の所定変速段で保持されるように前記変速機を制御する手段である、ものとしてもよい。こうすれば、オフセット学習の実行中に、変速機の変速段の変更によるモータの回転数の急変が生じるのを回避することができる。この結果、オフセット学習の精度が低下するのを回避することができる。
【００１０】
この態様の本発明の自動車において、前記所定変速段は、前記所定変速段範囲内の最高速段である、ものとしてもよい。こうすれば、走行中（モータの回転中）のアクセルオフ時に変速機の変速段が大きい（高速段側の変速段）ときには小さいときに比して減速要求を小さくする（負の範囲内で値０に近くする）と共に走行中のアクセルオフ時にオフセット学習を実行するものにおいて、減速要求に基づくモータのトルク指令と、オフセット学習を実行するときのモータの出力トルク（ｄ軸電流指令およびｑ軸電流指令を値０としたときのトルク）と、の差を小さくすることができる。この結果、オフセット学習の実行中に運転者に違和感を与えるのを抑制することができる。
【００１１】
本発明の自動車において、前記変速機制御手段は、前記学習用変速制御の実行中に、前記変速機に異常が生じたときまたは前記変速機の温度が所定温度以上になったときには、前記学習用変速制御を中止して所定のフェールセーフ変速制御を実行する手段である、ものとしてもよい。こうすれば、「所定温度」が、変速機が正常に作動する温度範囲の上限である場合において、変速機の異常や過熱の程度の進行を抑制することができる。
【００１２】
本発明の自動車において、前記オフセット学習手段は、前記オフセット学習の実行中に、前記変速機に異常が生じたときまたは前記変速機の温度が前記所定温度以上になったときには、前記オフセット学習を中止する手段である、ものとしてもよい。こうすれば、オフセット学習の精度が低下するのを回避することができる。
【００１３】
本発明の自動車において、前記オフセット学習手段は、前記オフセット学習の実行中に、前記三相モータの回転数が所定回転数範囲外になったときには、前記オフセット学習を中止する手段である、ものとしてもよい。こうすれば、「所定回転数範囲」が、学習用変速制御を実行しながらオフセット学習を十分に精度よく実行できる三相モータの回転数範囲である場合において、オフセット学習の精度が低下するのを回避することができる。また、「所定回転数範囲」の上限が、パルス幅変調制御によってインバータを制御するモータの回転数範囲の上限である場合（モータの回転数が所定回転数範囲よりも大きいときには矩形波制御によってインバータを制御する場合）において、矩形波制御の領域でオフセット学習を実行するのを回避することができ、モータの制御性が低下するのを回避することができる。さらに、「所定回転数範囲」の上限が、オフセット学習の完了時に学習用変速制御を終了して直ちに変速段の変更が行なわれたときでも変速ショックを運転者に感じさせない回転数の上限よりも若干低い回転数である場合において、オフセット学習の完了後に変速ショックを運転者に感じさせるのを抑制することができる。
【００１４】
本発明の自動車において、前記変速機制御手段は、前記学習用変速制御を実行しながら前記オフセット学習手段による前記オフセット学習が完了したときには、その後に現在の変速段がアクセル操作量と車速とに基づく通常用変速段と一致したときに、前記学習用変速制御を終了して、前記変速機の変速段が前記通常用変速段となるように前記変速機を制御する通常変速制御を実行する手段である、ものとしてもよい。こうすれば、オフセット学習が完了して直ちに変速機の変速段が変更されることによって運転者に違和感を与えるのを回避することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施例としてのハイブリッド自動車２０の構成の概略を示す構成図である。
【図２】モータＭＧ１，ＭＧ２を含む電気駆動系の構成の概略を示す構成図である。
【図３】変速機６０の構成の概略を示す構成図である。
【図４】プラネタリギヤ３０および変速機６０の各回転要素の回転数の関係を示す共線図の一例を示す説明図である。
【図５】変速機６０の各変速段とクラッチＣ１，Ｃ２およびブレーキＢ１，Ｂ２の作動状態との関係を示す作動表である。
【図６】モータＭＧ２を駆動制御するための制御ブロック図である。
【図７】回転位置センサ４４にオフセット誤差が含まれていない場合と含まれている場合とのｄ軸電圧Ｖｄおよびｑ軸電圧Ｖｑを示す説明図である。
【図８】モータＥＣＵ４０によって実行されるオフセット学習制御ルーチンの一例を示すフローチャートである。
【図９】ＨＶＥＣＵ７０によって実行される変速制御ルーチンの一例を示すフローチャートである。
【図１０】変速マップの一例を示す説明図である。
【図１１】オフセット学習を実行する際の様子の一例を示す説明図である。
【図１２】変形例の変速制御ルーチンの一例を示すフローチャートである。
【図１３】変形例の変速制御ルーチンの一例を示すフローチャートである。
【図１４】変形例の変速制御ルーチンの一例を示すフローチャートである。
【図１５】変形例の変速制御ルーチンの一例を示すフローチャートである。
【図１６】変形例のハイブリッド自動車１２０の構成の概略を示す構成図である。
【図１７】変形例のハイブリッド自動車２２０の構成の概略を示す構成図である。
【図１８】変形例の電気自動車３２０の構成の概略を示す構成図である。
【発明を実施するための形態】
【００１６】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００１７】
図１は、本発明の一実施例としてのハイブリッド自動車２０の構成の概略を示す構成図である。図２は、モータＭＧ１，ＭＧ２を含む電気駆動系の構成の概略を示す構成図である。図３は、変速機６０の構成の概略を示す構成図である。
【００１８】
実施例のハイブリッド自動車２０は、図示するように、エンジン２２と、プラネタリギヤ３０と、モータＭＧ１，ＭＧ２と、インバータ４１，４２と、変速機６０と、バッテリ５０と、ハイブリッド用電子制御ユニット（以下、「ＨＶＥＣＵ」という）７０と、を備える。
【００１９】
エンジン２２は、ガソリンや軽油などを燃料として動力を出力する内燃機関として構成されている。このエンジン２２は、エンジン用電子制御ユニット（以下、「エンジンＥＣＵ」という）２４によって運転制御されている。
【００２０】
エンジンＥＣＵ２４は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭ，データを一時的に記憶するＲＡＭ，入出力ポート，通信ポートを備える。エンジンＥＣＵ２４には、エンジン２２を運転制御するのに必要な各種センサからの信号、例えば、クランクポジションセンサ２３からのクランク角θｃｒなどが入力ポートを介して入力されている。エンジンＥＣＵ２４からは、エンジン２２を運転制御するための各種制御信号が出力ポートを介して出力されている。エンジンＥＣＵ２４は、ＨＶＥＣＵ７０と通信ポートを介して接続されている。エンジンＥＣＵ２４は、クランクポジションセンサからのクランク角θｃｒに基づいてエンジン２２の回転数Ｎｅを演算している。
【００２１】
プラネタリギヤ３０は、シングルピニオン式のプラネタリギヤとして構成されている。プラネタリギヤ３０のサンギヤには、モータＭＧ１の回転子が接続されている。プラネタリギヤ３０のリングギヤには、変速機６０の入力軸６１が接続されている。プラネタリギヤ３０のキャリヤには、ダンパ２８を介してエンジン２２のクランクシャフト２６が接続されている。
【００２２】
モータＭＧ１は、永久磁石が埋め込まれた回転子と、三相コイルが巻回された固定子と、を有する同期発電電動機として構成されている。このモータＭＧ１は、上述したように、回転子がプラネタリギヤ３０のサンギヤに接続されている。モータＭＧ２は、モータＭＧ１と同様の同期発電電動機として構成されている。このモータＭＧ２は、回転子が変速機６０の入力軸６１に接続されている。
【００２３】
インバータ４１は、電力ライン５４に接続されている。このインバータ４１は、図２に示すように、６つのスイッチング素子としてのトランジスタＴ１１〜Ｔ１６と、６つのダイオードＤ１１〜Ｄ１６と、を備える。トランジスタＴ１１〜Ｔ１６は、それぞれ、電力ライン５４の正極ラインと負極ラインとに対してソース側とシンク側になるように２個ずつペアで配置されている。６つのダイオードＤ１１〜Ｄ１６は、それぞれ、トランジスタＴ１１〜Ｔ１６に逆方向に並列接続されている。トランジスタＴ１１〜Ｔ１６の対となるトランジスタ同士の接続点の各々には、モータＭＧ１の三相コイル（Ｕ相，Ｖ相，Ｗ相）の各々が接続されている。したがって、インバータ４１に電圧が作用しているときに、モータ用電子制御ユニット（以下、「モータＥＣＵ」という）４０によって、対となるトランジスタＴ１１〜Ｔ１６のオン時間の割合が調節されることにより、三相コイルに回転磁界が形成され、モータＭＧ１が回転駆動される。
【００２４】
インバータ４２は、インバータ４１と同様に、６つのトランジスタＴ２１〜Ｔ２６と、６つのダイオードＤ２１〜Ｄ２６と、を備える。そして、インバータ４２に電圧が作用しているときに、モータＥＣＵ４０によって、対となるトランジスタＴ２１〜Ｔ２６のオン時間の割合が調節されることにより、三相コイルに回転磁界が形成され、モータＭＧ２が回転駆動される。
【００２５】
モータＥＣＵ４０は、ＣＰＵ４０ａを中心とするマイクロプロセッサとして構成されており、ＣＰＵ４０ａの他に、処理プログラムを記憶するＲＯＭ４０ｂ，データを一時的に記憶するＲＡＭ４０ｃ，フラッシュメモリ４０ｄ，入出力ポート，通信ポートを備える。モータＥＣＵ４０には、モータＭＧ１，ＭＧ２を駆動制御するのに必要な各種センサからの信号、例えば、モータＭＧ１，ＭＧ２の回転子の回転位置を検出する回転位置センサ４３，４４からの回転位置θｍ１，θｍ２や、モータＭＧ１，ＭＧ２の各相（Ｖ相，Ｗ相）に流れる電流を検出する電流センサ４５ｖ，４５ｗ，４６ｖ，４６ｗからの相電流Ｉｖ１，Ｉｗ１，Ｉｖ２，Ｉｗ２などが入力ポートを介して入力されている。モータＥＣＵ４０からは、インバータ４１，４２のトランジスタＴ１１〜Ｔ１６，Ｔ２１〜Ｔ２６へのスイッチング制御信号などが出力ポートを介して出力されている。モータＥＣＵ４０は、ＨＶＥＣＵ７０と通信ポートを介して接続されている。モータＥＣＵ４０は、回転位置センサ４３，４４からのモータＭＧ１，ＭＧ２の回転子の回転位置θｍ１，θｍ２に基づいてモータＭＧ１，ＭＧ２の角速度ωｍ１，ωｍ２や回転数Ｎｍ１，Ｎｍ２を演算している。
【００２６】
変速機６０は、４段変速機として構成されており、図１や図３に示すように、プラネタリギヤ３０のリングギヤおよびモータＭＧ２の回転子（回転軸）に接続された入力軸６１と、駆動輪３８ａ，３８ｂにデファレンシャルギヤ３７を介して連結された駆動軸３６に接続された出力軸６２と、シングルピニオン式の２つのプラネタリギヤ６３，６４と、油圧駆動の複数の係合要素としての２つのクラッチＣ１，Ｃ２および２つのブレーキＢ１，Ｂ２と、を備える。
【００２７】
プラネタリギヤ６３は、外歯歯車であるサンギヤ６３ｓと、サンギヤ６３ｓと同心円上に配置される内歯歯車であるリングギヤ６３ｒと、それぞれサンギヤ６３ｓおよびリングギヤ６３ｒに噛合する複数のピニオンギヤ６３ｐと、複数のピニオンギヤ６３ｐを自転（回転）かつ公転自在に保持するキャリヤ６３ｃと、を有する。
【００２８】
プラネタリギヤ６４は、外歯歯車であるサンギヤ６４ｓと、サンギヤ６４ｓと同心円上に配置される内歯歯車であるリングギヤ６４ｒと、それぞれサンギヤ６４ｓおよびリングギヤ６４ｒに噛合する複数のピニオンギヤ６４ｐと、複数のピニオンギヤ６４ｐを自転（回転）かつ公転自在に保持するキャリヤ６４ｃと、を有する。
【００２９】
プラネタリギヤ６３のキャリヤ６３ｃとプラネタリギヤ６４のリングギヤ６４ｒとが連結（固定）されると共に、プラネタリギヤ６３のリングギヤ６３ｒとプラネタリギヤ６４のキャリヤ６４ｃとが連結されている。したがって、プラネタリギヤ６３およびプラネタリギヤ６４は、プラネタリギヤ６３のサンギヤ６３ｓ，プラネタリギヤ６３のキャリヤ６３ｃおよびプラネタリギヤ６４のリングギヤ６４ｒ，プラネタリギヤ６３のリングギヤ６３ｒおよびプラネタリギヤ６４のキャリヤ６４ｃ，プラネタリギヤ６４のサンギヤ６４ｓを４つの回転要素とするいわゆる４要素タイプの機構として機能する。また、プラネタリギヤ６３のリングギヤ６３ｒとプラネタリギヤ６４のキャリヤ６４ｃとは、駆動軸３６（変速機６０の出力軸）に連結されている。
【００３０】
クラッチＣ１は、入力軸６１と、プラネタリギヤ６４のサンギヤ６４ｓと、を互いに接続すると共に両者の接続を解除する。クラッチＣ２は、入力軸６１と、プラネタリギヤ６３のキャリヤ６３ｃおよびプラネタリギヤ６４のリングギヤ６４ｒと、を互いに接続すると共に両者の接続を解除する。ブレーキＢ１は、プラネタリギヤ６３のサンギヤ６３ｓを静止部材としてのトランスミッションケース２９に対して回転不能に固定（接続）すると共にこのサンギヤ６３ｓをトランスミッションケース２９に対して回転自在に解放する。ブレーキＢ２は、プラネタリギヤ６３のキャリヤ６３ｃおよびプラネタリギヤ６４のリングギヤ６４ｒをトランスミッションケース２９に対して回転不能に固定（接続）すると共にこのキャリヤ６３ｃおよびリングギヤ６４ｒをトランスミッションケース２９に対して回転自在に解放する。クラッチＣ１，２およびブレーキＢ１，Ｂ２は、図示しない油圧制御装置による作動油の給排を受けて動作する。
【００３１】
図４は、プラネタリギヤ３０および変速機６０の各回転要素の回転数の関係を示す共線図の一例を示す説明図であり、図５は、変速機６０の各変速段とクラッチＣ１，Ｃ２およびブレーキＢ１，Ｂ２の作動状態との関係を示す作動表である。変速機６０は、シフトポジションＳＰが走行用ポジション（ドライブポジションやリバースポジション）のときには、以下のように第１速段から第４速段までの前進段や後進段を形成する。クラッチＣ１とブレーキＢ２とを係合すると共にクラッチＣ２とブレーキＢ１とを解放することによって、第１速段および後進段を形成する。クラッチＣ１とブレーキＢ１とを係合すると共にクラッチＣ２とブレーキＢ２とを解放することによって、第２速段を形成する。クラッチＣ１とクラッチＣ２とを係合すると共にブレーキＢ１，Ｂ２を解放することによって、第３速段を形成する。クラッチＣ２とブレーキＢ１とを係合すると共にクラッチＣ１とブレーキＢ２とを解放することによって、第４速段を形成する。また、変速機６０は、シフトポジションＳＰが非走行用ポジション（ニュートラルポジションや駐車ポジション）のときには、クラッチＣ１，Ｃ２およびブレーキＢ１，Ｂ２の全てを解放することによって、入力軸６１と出力軸６２（駆動軸３６）との接続を解除する（入力軸６１と出力軸６２との間の動力の伝達を解除する）。
【００３２】
バッテリ５０は、例えばリチウムイオン二次電池やニッケル水素二次電池として構成されており、電力ライン５４を介してインバータ４１，４２と接続されている。このバッテリ５０は、バッテリ用電子制御ユニット（以下、「バッテリＥＣＵ」という）５２によって管理されている。
【００３３】
バッテリＥＣＵ５２は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭ，データを一時的に記憶するＲＡＭ，入出力ポート，通信ポートを備える。バッテリＥＣＵ５２には、バッテリ５０を管理するのに必要な各種センサからの信号、例えば、バッテリ５０の端子間に取り付けられた電圧センサ５１ａからの電圧Ｖｂや、バッテリ５０の出力端子に取り付けられた電流センサ５１ｂからの電流Ｉｂなどが入力ポートを介して入力されている。バッテリＥＣＵ５２は、ＨＶＥＣＵ７０と通信ポートを介して接続されている。バッテリＥＣＵ５２は、電流センサ５１ｂからのバッテリ５０の電流Ｉｂの積算値に基づいて蓄電割合ＳＯＣを演算している。蓄電割合ＳＯＣは、バッテリ５０の全容量に対するバッテリ５０から放電可能な電力の容量の割合である。
【００３４】
ＨＶＥＣＵ７０は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭ，データを一時的に記憶するＲＡＭ，入出力ポート，通信ポートを備える。ＨＶＥＣＵ７０には、各種センサからの信号が入力ポートを介して入力されている。ＨＶＥＣＵ７０に入力される信号としては、例えば、変速機６０を冷却する冷却油（ＡＴＦ：Automatic Transmission Fluid）の温度を検出する温度センサ６８からの温度Ｔｏｉｌ，駆動軸３６（変速機６０の出力軸６２）に取り付けられた回転数センサ６９からの駆動軸３６の回転数Ｎｐ，イグニッションスイッチ８０からのイグニッション信号，シフトポジションセンサ８２からのシフトポジションＳＰなどを挙げることができる。また、アクセルペダルポジションセンサ８４からのアクセル開度Ａｃｃ，ブレーキペダルポジションセンサ８６からのブレーキペダルポジションＢＰ，車速センサ８８からの車速Ｖなども挙げることができる。ＨＶＥＣＵ７０からは、変速機６０への制御信号などが出力ポートを介して出力されている。ＨＶＥＣＵ７０は、上述したように、エンジンＥＣＵ２４，モータＥＣＵ４０，バッテリＥＣＵ５２と通信ポートを介して接続されている。
【００３５】
なお、実施例のハイブリッド自動車２０では、シフトポジションＳＰとしては、駐車時に用いる駐車ポジション（Ｐポジション），後進走行用のリバースポジション（Ｒポジション），中立のニュートラルポジション（Ｎポジション），前進走行用のドライブポジション（Ｄポジション）などが用意されている。
【００３６】
こうして構成された実施例のハイブリッド自動車２０では、ハイブリッド走行（ＨＶ走行）モードや電動走行（ＥＶ走行）モードで走行するようにエンジン２２およびモータＭＧ１，ＭＧ２（以下、「ハイブリッド部」という）と変速機６０とを制御する。ここで、ＨＶ走行モードは、エンジン２２の運転を伴って走行するモードであり、ＥＶ走行モードは、エンジン２２の運転を伴わずに走行するモードである。以下、ＥＶ走行モードでのハイブリッド部の制御およびＨＶ走行モードでのハイブリッド部の制御について説明する。なお、変速機６０の制御については後述する。
【００３７】
ＥＶ走行モードでのハイブリッド部の制御について説明する。ＨＶＥＣＵ７０は、まず、アクセル開度Ａｃｃと車速Ｖとに基づいて駆動軸３６の要求トルクＴｏｕｔ＊を設定する。実施例では、アクセルオンのときには、変速機６０の変速段Ｇｓを考慮せずに要求トルクＴｏｕｔ＊を設定し、アクセルオフのときには、変速機６０の変速段Ｇｓが大きい（高車速側の変速段）ときには小さいときに比して減速要求が小さくなる（負の範囲内で値０に近くなる）ように要求トルクＴｏｕｔ＊を設定するものとした。続いて、モータＭＧ２の回転数Ｎｍ２（変速機６０の入力軸６１の回転数）を駆動軸３６の回転数Ｎｏｕｔで除して変速機６０のギヤ比Ｇｒを計算し、駆動軸３６の要求トルクＴｏｕｔ＊を変速機６０のギヤ比Ｇｒで除して変速機６０の入力軸６１に要求される要求トルクＴｉｎ＊を計算する。そして、モータＭＧ１のトルク指令Ｔｍ１＊に値０を設定すると共に変速機６０の入力軸６１の要求トルクＴｉｎ＊をモータＭＧ２のトルク指令Ｔｍ２＊に設定し、設定したモータＭＧ１，ＭＧ２のトルク指令Ｔｍ１＊，Ｔｍ２＊をモータＥＣＵ４０に送信する。モータＥＣＵ４０は、モータＭＧ１，ＭＧ２がトルク指令Ｔｍ１＊，Ｔｍ２＊で駆動されるようにインバータ４１，４２のトランジスタＴ１１〜Ｔ１６，Ｔ２１〜Ｔ２６のスイッチング制御を行なう。
【００３８】
ＨＶ走行モードでのハイブリッド部の制御について説明する。ＨＶＥＣＵ７０は、まず、上述したのと同様に、駆動軸３６（変速機６０の出力軸６２）の要求トルクＴｏｕｔ＊，変速機６０のギヤ比Ｇｒ，変速機６０の入力軸６１の要求トルクＴｉｎ＊を設定する。続いて、変速機６０入力軸６１の要求トルクＴｉｎ＊にモータＭＧ２の回転数Ｎｍ２（変速機６０の入力軸６１の回転数）を乗じて変速機６０の入力軸６１に入力される要求パワーＰｉｎ＊を計算し、計算した要求パワーＰｉｎ＊からバッテリ５０の充放電要求パワーＰｂ＊（バッテリ５０から放電するときが正の値）を減じてエンジン２２に要求される要求パワーＰｅ＊を計算する。そして、要求パワーＰｅ＊とエンジン２２の動作ライン（例えば燃費動作ライン）とを用いてエンジン２２の目標回転数Ｎｅ＊および目標トルクＴｅ＊を設定する。続いて、エンジン２２の回転数Ｎｅが目標回転数Ｎｅ＊となるようにするための回転数フィードバック制御によってモータＭＧ１のトルク指令Ｔｍ１＊を設定する。そして、モータＭＧ１をトルク指令Ｔｍ１＊で駆動したときにモータＭＧ１から出力されてプラネタリギヤ３０を介して駆動軸３６に作用するトルクを、変速機６０の入力軸６１の要求トルクＴｉｎ＊から減じて、モータＭＧ２のトルク指令Ｔｍ２＊を計算する。そして、エンジン２２の目標回転数Ｎｅ＊および目標トルクＴｅ＊をエンジンＥＣＵ２４に送信すると共にモータＭＧ１，ＭＧ２のトルク指令Ｔｍ１＊，Ｔｍ２＊をモータＥＣＵ４０に送信する。エンジンＥＣＵ２４は、エンジン２２が目標回転数Ｎｅ＊および目標トルクＴｅ＊に基づいて運転されるようにエンジン２２の吸入空気量制御や燃料噴射制御，点火制御などを行なう。
【００３９】
次に、モータＭＧ２の駆動制御（インバータ４２のトランジスタＴ２１〜Ｔ２６）の制御について説明する。モータＭＧ２の駆動制御は、モータＥＣＵ４０に含まれる図６の制御ブロックによって行なわれる。図６に示すように、モータＭＧ２の駆動制御は、まず、トルク指令Ｔｍ２＊に基づいて電流指令生成器９１によってｄｑ軸座標系におけるｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊を生成する。電流指令生成器９１は、トルク指令Ｔｍ２＊とｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊との関係を予め定めた電流指令テーブルにトルク指令Ｔｍ２＊を適用してｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊を生成する。続いて、モータＭＧ２のＵ相，Ｖ相，Ｗ相に流れる電流の総和が値０であるとして、モータＭＧ２の制御用回転位置θｃ２を用いて座標変換器９６によって電流センサ４６ｖ，４６ｗからのＶ相電流Ｉｖ２およびＷ相電流Ｉｗ２をｄ軸電流Ｉｄ２およびｑ軸電流Ｉｑ２に変換（三相二相変換）する。モータＭＧ２の制御用回転位置θｃ２は、回転位置センサ４４によって検出される回転位置θｍ２と後述するオフセット学習制御部９７によって出力されるオフセット量Δθｏｓ２との和として加算器９８によって演算されたものが用いられる。続いて、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊と電流フィードバックのためのｄ軸電流Ｉｄ２およびｑ軸電流Ｉｑ２との差分ΔＩｄ２，ΔＩｑ２を減算器９２ｄ，９２ｑによって演算する。そして、演算した差分ΔＩｄ２，ΔＩｑ２に基づいて電圧指令変換器９３ｄ，９３ｑによってｄ軸電圧指令Ｖｄ２＊およびｑ軸電圧指令Ｖｑ２＊を生成する。ここで、ｄ軸電圧指令Ｖｄ２＊およびｑ軸電圧指令Ｖｑ２＊は、差分ΔＩｄ２，ΔＩｑ２に基づくフィードバック項と、各軸相互に干渉する項をキャンセルするためのフィードフォワード項（後述する式（１）、（２）の右辺第２項）との和として演算される。ｄ軸電圧指令Ｖｄ２＊およびｑ軸電圧指令Ｖｑ２＊を生成すると、上述のモータＭＧ２の制御用回転位置θｃ２を用いて座標変換器９４によってｄ軸電圧指令Ｖｄ２＊およびｑ軸電圧指令Ｖｑ２＊を各相電圧指令Ｖｕ２＊，Ｖｖ２＊，Ｖｗ２＊に変換（二相三相変換）する。そして、各相電圧指令Ｖｕ２＊，Ｖｖ２＊，Ｖｗ２＊に基づいてＰＷＭ変換器９５によってパルス幅変調信号（ＰＷＭ信号）を生成し、生成したＰＷＭ信号に基づいてインバータ４２のトランジスタＴ２１〜Ｔ２６をスイッチングすることによって直流電力を三相交流電力としてモータＭＧ２に印加する。なお、モータＭＧ１についても、図６と同様の制御ブロックを用いて駆動制御することができる。
【００４０】
いま、座標変換（三相二相変換，二相三相変換）で用いるモータＭＧ２の制御用回転位置θｃ２として、回転位置センサ４４によって検出される回転位置θｍ２をそのまま用いる場合を考える。永久磁石によって発生する磁束の方向をｄ軸とし、ｄ軸と直交する軸をｑ軸とすると、モータＭＧ２の電圧方程式を次式（１），（２）によって示すことができる。式（１），（２）中、「Ｖｄ２」、「Ｖｑ２」はｄ軸電圧，ｑ軸電圧を示し、「Ｒ２」は一相当たりの抵抗値を示し、「Ｉｄ２」，「Ｉｑ２」はｄ軸電流，ｑ軸電流を示し、「ωｍ２」は回転子の角速度を示し、「φｄ２」，「φｑ２」はｄ軸磁束，ｑ軸磁束を示す。
【００４１】
Vd2=R2・Id2-ωm2・φq2            (1)
Vq2=R2・Iq2+ωm2・φd2            (2)
【００４２】
回転位置センサ４４によって検出されるモータＭＧ２の回転位置θｍ２と実際の回転位置との間に位相差Δθ（オフセット誤差）がない場合、永久磁石が発生させる磁束φ２の方向とｄ軸とが一致する（図７（ａ）参照）。このため、ｄ軸磁束φｄ２，ｑ軸磁束φｑ２は、次式（３），（４）によって示すことができる。式（３），（４）中、「Ｌｄ２」，「Ｌｑ２」はｄ軸インダクタンス，ｑ軸インダクタンスを示す。
【００４３】
φd2=Ld2・Id2+φ2    (3)
φq2=Lq2・Iq2         (4)
【００４４】
このとき、ｄ軸電流Ｉｄ２およびｑ軸電流Ｉｑ２を値０とすると、式（３），式（４）から、ｄ軸磁束φｄ２は値φ２となり、ｑ軸磁束φｑは値０となる。そして、これらを式（１），（２）にそれぞれ代入すると、ｄ軸電圧Ｖｄ２，ｑ軸電圧Ｖｑ２はそれぞれ次式（５），（６）によって示され、ｄ軸電圧Ｖｄ２が値０となる。
【００４５】
Vd2=0               (5)
Vq2=ωm2・φ2         (6)
【００４６】
一方、回転位置センサ４４によって検出されるモータＭＧ２の回転位置θｍ２と実際の回転位置との間に位相差Δθ（オフセット誤差）がある場合、永久磁石が発生させる磁束φ２の方向とｄ軸との間で位相差Δθのズレが生じる（図７（ｂ）参照）。このため、ｄ軸電流Ｉｄ２およびｑ軸電流Ｉｑ２を値０とすると、ｄ軸電圧Ｖｄ２，ｑ軸電圧Ｖｑ２は次式（７），式（８）によって示され、モータＭＧ２が回転していると（角速度ωｍ２が値０でない場合）、ｄ軸電圧Ｖｄ２が値０とならない。
【００４７】
Vd2=ωm2・φ2・sinΔθ    (7)
Vq2=ωm2・φ2・cosΔθ    (8)
【００４８】
このように、回転位置センサ４４によって検出される回転位置θｍ２にオフセット誤差がない場合には、ｄ軸電流Ｉｄ２およびｑ軸電流Ｉｑ２を値０としたときに、ｄ軸電圧Ｖｄ２が値０となる。一方、回転位置センサ４４によって検出される回転位置θｍ２にオフセット誤差がある場合には、ｄ軸電流Ｉｄ２およびｑ軸電流Ｉｑ２を値０としても、モータＭＧ２が回転していると、ｄ軸電圧Ｖｄ２が値０とならない。上述したように、回転位置センサ４４によって検出される回転位置θｍ２は、座標変換器９４，９６による座標変換（二相三相変換，三相二相変換）に用いられる。このため、回転位置θｍ２にオフセット誤差がある場合に当該オフセット誤差を打ち消すためのオフセット補正を行なわないと、座標変換を適切に行なうことができず、モータＭＧ２からトルク指令Ｔｍ２＊に見合うトルクを出力することができなくなる。実施例では、モータＭＧ２の回転中にｄ軸電流Ｉｄ２およびｑ軸電流Ｉｑ２を値０とし、この状態でｄ軸電圧Ｖｄ２が値０となるように回転位置センサ４４によって検出される回転位置θｍ２をオフセットし、ｄ軸電圧Ｖｄ２が値０となったときの回転位置θｍのオフセット量Δθｏｓ２を学習値（オフセット誤差）としての後述の学習オフセット量Δθｌｖ２とするオフセット学習を実行する。オフセット学習が実行されると、回転位置センサ４４によって検出される回転位置θｍ２は、加算器９８によって、オフセット量Δθｏｓ２だけオフセットされて、制御用回転位置θｃ２として座標変換器９４，９６にそれぞれ出力される。
【００４９】
次に、こうして構成された実施例のハイブリッド自動車２０の動作について説明する。特に、回転位置センサ４４のオフセット学習を実行する際の動作と、変速機６０の動作と、について説明する。図８は、モータＥＣＵ４０のオフセット学習制御部９７によって実行されるオフセット学習制御ルーチンの一例を示すフローチャートであり、図９は、ＨＶＥＣＵ７０によって実行される変速制御ルーチンの一例を示すフローチャートである。以下、順に説明する。
【００５０】
図８のオフセット学習制御ルーチンについて説明する。このルーチンは、所定時間毎（例えば、数ｍｓｅｃ毎）に繰り返し実行される。オフセット学習制御ルーチンが実行されると、モータＥＣＵ４０のオフセット学習制御部９７は、まず、フラッシュメモリ４０ｄにオフセット学習履歴が記憶されているか否かを判定する（ステップＳ１００）。そして、オフセット学習履歴が記憶されていると判定されたときには、フラッシュメモリ４０ｄに記憶されている学習オフセット量Δθｌｖ２をオフセット量Δθｏｓ２に設定する（ステップＳ１１０）。一方、オフセット学習履歴が記憶されていないと判定されたときには、初期オフセット量Δθｉｎｉ２をオフセット量Δθｏｓ２に設定する（ステップＳ１２０）。
【００５１】
ここで、初期オフセット量Δθｉｎｉ２は、工場出荷時や部品交換時に行なわれるオフセット学習による学習値である。なお、部品交換時には、車両を整備モードとして、作業者が所定の手順に従って作業を進めることにより、オフセット学習が実行されるようになっている。これにより、フラッシュメモリ４０ｄに記憶されているオフセット学習履歴がリセットされると共に、新たな学習値が初期オフセット量Δθｉｎｉ２としてフラッシュメモリ４０ｄに記憶される。ただし、作業者のミス等によってオフセット学習が実行されないと、部品交換後に、初期オフセット量Δθｉｎｉ２に適切な値が記憶されていない場合が生じる。このことを考慮して、実施例では、所定の頻度でオフセット学習を実行することにより、より適切な学習オフセット量Δθｌｖ２をフラッシュメモリ４０ｄに記憶するものとした。
【００５２】
次に、ＨＶＥＣＵ７０からオフセット学習指令を受信したか否かを判定する（ステップＳ１３０）。そして、オフセット学習指令を受信していないと判定されたときには、ステップＳ１１０またはステップＳ１２０で設定したオフセット量Δθｏｓ２を加算器９８に出力して（ステップＳ１４０）、オフセット学習制御ルーチンを終了する。
【００５３】
ステップＳ１３０でＨＶＥＣＵ７０からオフセット学習指令を受信したと判定されたときには、学習中フラグＦ１を値０から値１に切り替える（ステップＳ１６０）。この学習フラグＦ１は、オフセット学習の実行中であるか否かを示すフラグであり、オフセット学習が完了したときに値０にリセット（初期化）される。
【００５４】
続いて、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊にそれぞれ値０を設定する（ステップＳ１７０）。そして、設定したｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊を電流指令生成器９１に出力すると共に、ステップＳ１１０またはステップＳ１２０で設定したオフセット量Δθｏｓ２を加算器９８に出力する（ステップＳ１８０）。
【００５５】
電流指令生成器９１は、値０のｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊を入力すると、値０のｄ軸電流指令Ｉｄ２＊，値０のｑ軸電流指令Ｉｑ２＊を減算器９２ｄ，９２ｑに出力する。また、加算器９８は、オフセット量Δθｏｓ２を入力すると、回転位置センサ４４によって検出された回転位置θｍ２を入力し、回転位置θｍ２にオフセット量Δθｏｓ２を加算したものを制御用回転位置θｃ２として座標変換器９４，９６に出力する。減算器９２ｄ，９２ｑは、電流指令生成器９１からｄ軸電流指令Ｉｄ２＊，ｑ軸電流指令Ｉｑ２＊を入力すると、座標変換器９６からｄ軸電流Ｉｄ２，ｑ軸電流Ｉｑ２を入力し、ｄ軸電流指令Ｉｄ２＊，ｑ軸電流指令Ｉｑ２＊とｄ軸電流，ｑ軸電流との差分ΔＩｄ２，ΔＩｑ２を演算して電圧指令変換器９３ｄ，９３ｑに出力する。電圧指令変換器９３ｄ，９３ｑは、差分ΔＩｄ２，ΔＩｑ２を入力すると、差分ΔＩｄ２，ΔＩｑ２に基づいてｄ軸電圧指令Ｖｄ２＊，ｑ軸電圧指令Ｖｑ２＊を生成する。上述したように、モータＭＧ２の回転中において、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊を値０とした場合、制御用回転位置θｃ２と実際の回転位置との間にズレがなければ、ｄ軸電圧指令Ｖｄ２＊は値０となり、制御用回転位置θｃ２と実際の回転位置との間にズレがあれば、ｄ軸電圧指令Ｖｄ２＊は値０とならない。
【００５６】
次に、電圧指令変換器９３ｄからｄ軸電圧指令Ｖｄ２＊を入力し（ステップＳ１９０）、入力したｄ軸電圧指令Ｖｄ２＊が値０を含む所定電圧範囲内にあるか否かを判定する（ステップＳ２００）。ここで、所定電圧範囲は、現在のオフセット量Δθｏｓ２が適正値であると判断してよいとして予め定められた範囲である。
【００５７】
ステップＳ２００でｄ軸電圧指令Ｖｄ２＊が所定電圧範囲内にあると判定されたときには、現在のオフセット量Δθｏｓ２は適正値であると判断し、現在のオフセット量Δθｏｓ２を学習オフセット量Δθｌｖ２として更新すると共にこの学習オフセット量Δθｌｖ２をフラッシュメモリ４０ｄに記憶し（ステップＳ２３０）、学習中フラグＦ１を値１から値０に切り替え（ステップＳ２４０）、学習完了フラグＦ２を値０から値１に切り替えて（ステップＳ２５０）、本ルーチンを終了する。ここで、学習完了フラグＦ２は、回転位置センサ４４のオフセット学習が完了しているか否かを示すフラグであり、システムオン（システム起動）したときやシステムオフ（システム停止）したときに値０にリセット（初期化）される。このため、オフセット学習は、システムオンしてからシステムオフするまでの間（いわゆる１トリップ）に１回の頻度で実行されることになる。
【００５８】
ステップＳ２００でｄ軸電圧指令Ｖｄ２＊が所定電圧範囲内にないと判定されたときには、現在のオフセット量Δθｏｓ２が適正値でないと判断し、ＨＶＥＣＵ７０からオフセット学習中断指令を受信したか否かを判定する（ステップＳ２１０）。
【００５９】
ステップＳ２１０でＨＶＥＣＵ７０からオフセット学習中断指令を受信していないと判定されたときには、ｄ軸電圧指令Ｖｄ２＊を用いて次式（９）によってオフセット量Δθｏｓ２を計算して（ステップＳ２２０）、ステップＳ１７０に戻る。ここで、式（９）は、ｄ軸電圧指令Ｖｄ２＊を値０とするためのフィードバック制御における関係式である。なお、式（９）中、右辺第１項の「前回Δθｏｓ２」は前回のオフセット量Δθｏｓ２であり、右辺第２項の「ｓ１」は比例項のゲインであり、右辺第３項の「ｓ２」は積分項のゲインである。なお、実施例では、式（９）に示すように、ｄ軸電圧指令Ｖｄ２＊を値０とするオフセット量Δθｏｓ２の計算に比例積分制御を用いるものとしたが、比例制御を用いるものとしてもよいし、比例積分微分制御を用いるものとしてもよい。
【００６０】
Δθos2=前回Δθos2+s1・(0-Vd2*)+s2・∫(0-Vd2*)dt    (9)
【００６１】
こうしてステップＳ１７０〜Ｓ２２０の処理を繰り返し実行して、ステップＳ２００でｄ軸電圧指令Ｖｄ２＊が所定電圧範囲内になると、そのときのオフセット量Δθｏｓ２を学習オフセット量Δθｌｖ２に設定する（学習オフセット量Δθｌｖ２を更新する）と共にこの学習オフセット量Δθｌｖ２をフラッシュメモリ４０ｄに記憶することによってオフセット学習を完了し（ステップＳ２３０）、学習中フラグＦ１に値０を設定し（ステップＳ２４０）、学習完了フラグＦ２に値１を設定して（ステップＳ２５０）、本ルーチンを終了する。
【００６２】
ステップＳ２１０でＨＶＥＣＵ７０からオフセット学習中断指令を受信したと判定されたときには、オフセット学習を中止し、学習完了フラグＦ２を値１とすることなく、本ルーチンを終了する。
【００６３】
次に、図９の変速制御ルーチンについて説明する。このルーチンは、シフトポジションＳＰがドライブポジション（Ｄポジション）のときに所定時間毎（例えば、数ｍｓｅｃ毎）に繰り返し実行される。変速制御ルーチンが実行されると、ＨＶＥＣＵ７０は、まず、アクセル開度Ａｃｃ，モータＭＧ２の回転数Ｎｍ２，学習中フラグＦ１，学習完了フラグＦ２などのデータを入力する（ステップＳ３００）。ここで、アクセル開度Ａｃｃは、アクセルペダルポジションセンサ８４によって検出された値を入力するものとした。モータＭＧ２の回転数Ｎｍ２は、回転位置センサ４４からのモータＭＧ２の回転子の回転位置θｍ２に基づいて演算された値をモータＥＣＵ４０から通信によって入力するものとした。学習中フラグＦ１および学習完了フラグＦ２は、図８のオフセット学習制御ルーチンによって設定された値をモータＥＣＵ４０から通信によって入力するものとした。
【００６４】
こうしてデータを入力すると、学習完了フラグＦ２を調べる（ステップＳ３１０）。そして、学習完了フラグＦ２が値１のときには、オフセット学習が完了していると判断し、通常変速制御を実行して（ステップＳ３２０）、本ルーチンを終了する。通常変速制御を実行する際には、ＨＶＥＣＵ７０は、アクセル開度Ａｃｃと車速Ｖと図１０の変速マップとに基づいて変速機６０の通常用変速段Ｇｓｎｏを設定し、変速機６０の変速段Ｇｓが通常用変速段Ｇｓｎｏとなるように変速機６０を制御する。図１０中、実線の「１−２」，「２−３」，「３−４」ラインは変速機６０のアップシフトラインを示し、破線の「２−１」，「３−２」，［４−３」ラインは変速機６０のダウンシフトラインを示す。
【００６５】
ステップＳ３１０で学習完了フラグＦ２が値０のときには、オフセット学習が完了していないと判断し、学習中フラグＦ１の値を調べる（ステップＳ３３０）。そして、学習中フラグＦ１が値０のときには、オフセット学習の実行中でない（実行開始前である）と判断し、モータＭＧ２の回転数Ｎｍ２に基づいてモータＭＧ２が回転しているか否かを判定する（ステップＳ３４０）。この処理は、オフセット学習を実行してもよいか否かを判定する処理である。これは、上述の式（７）から分かるように、モータＭＧ２の回転数Ｎｍ２（角速度ωｍ２）が値０のときには、現在のオフセット量Δθｏｓ２が適正値であるか否かに拘わらずにｄ軸電圧Ｖｄ２（ｄ軸電圧指令Ｖｄ２＊）が値０になるためである。
【００６６】
ステップＳ３４０でモータＭＧ２が回転していないと判定されたときには、オフセット学習を実行しないと判断し、オフセット学習指令をモータＥＣＵ４０に送信することなく、学習用変速制御を実行して（ステップＳ３７０）、本ルーチンを終了する。
【００６７】
ステップＳ３４０でモータＭＧ２が回転していると判定されたときには、オフセット学習を実行してもよいと判断し、アクセル開度Ａｃｃに基づいてアクセルオフかアクセルオンかを判定する（ステップＳ３５０）。この処理は、オフセット学習の実行としてｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定すると（トルク指令Ｔｍ２＊と出力トルクとの差によって）運転者に違和感を与える可能性があるか否かを判定する処理である。
【００６８】
ステップＳ３５０でアクセルオンであると判定されたときには、オフセット学習の実行としてｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定すると運転者に違和感を与える可能性があると判断し、オフセット学習指令をモータＥＣＵ４０に送信することなく、学習用変速制御を実行して（ステップＳ３７０）、本ルーチンを終了する。この場合、オフセット学習を実行しないことにより、運転者に違和感を与えるのを回避することができる。
【００６９】
ステップＳ３５０でアクセルオフであると判定されたときには、オフセット学習の実行としてｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定しても運転者に違和感を与えないと判断し、オフセット学習指令をモータＥＣＵ４０に送信し（ステップＳ３６０）、学習用変速制御を実行して（ステップＳ３７０）、本ルーチンを終了する。モータＥＣＵ４０は、オフセット学習指令を受信すると、図８のオフセット学習ルーチンによって、モータＭＧ２が回転している状態で、オフセット学習を実行する。また、ＨＶＥＣＵ７０は、学習用変速制御を実行する際には、低車速側の所定変速段範囲内の最高速段を学習用変速段Ｇｓｌｖとして用いて、変速機６０の変速段Ｇｓが学習用変速段Ｇｓｌｖとなるように変速機６０を制御する。実施例では、４段変速機において、第１速段および第２速段を所定変速段範囲とすると共に第２速段を学習用変速段Ｇｓｌｖとするものとした。このようにして、学習用変速制御を実行しながらオフセット学習を実行することになる。
【００７０】
上述したように、オフセット学習では、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊をそれぞれ値０としてｄ軸電圧指令Ｖｄ２＊が所定電圧範囲内にあるときのオフセット量Δθｏｓ２を学習オフセット量Δθｌｖ２として設定（更新）する。また、オフセット学習の実行中において、現在のオフセット量Δθｏｓ２（制御用回転位置θｃ２）が適正値でない場合、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流Ｉｑ２＊をそれぞれ値０としたときに、上述の式（７）から分かるように、モータＭＧ２の角速度ωｍ２が大きいときには小さいときに比してｄ軸電圧Ｖｄ２が大きくなる。したがって、モータＭＧ２の回転数Ｎｍ２（角速度ωｍ２）が小さいときには、ｄ軸電圧Ｖｄ２（ｄ軸電圧指令Ｖｄ２＊）が小さくなり（誤差の影響が大きくなり）、学習オフセット量Δθｌｖ２の精度が低くなる（精度の低い学習結果が反映される）可能性がある。実施例では、オフセット学習を実行する際には、変速機６０の変速段Ｇｓが低車速側の所定変速段範囲内となるように変速機６０を制御する学習用変速制御を実行する。これにより、オフセット学習を実行する際に、変速機６０の変速段Ｇｓがアクセル開度Ａｃｃと車速Ｖとに基づく通常用変速段Ｇｓｎｏとなるように変速機６０を制御する通常変速制御を実行するものに比して、変速機６０の入力軸６１の回転数Ｎｉｎ即ちモータＭＧ２の回転数Ｎｍ２をより確実にある程度大きくしてオフセット学習を実行することができる。この結果、オフセット学習の精度が低下する（精度の低い学習結果が反映される）のを抑制することができる。
【００７１】
しかも、学習用変速制御を実行する際には、所定変速段範囲内の最高速段を学習用変速段Ｇｓｌｖとして用いるものとした。アクセルオフのときには、変速機６０の変速段Ｇｓが大きい（高車速側の変速段）ときには小さいときに比して、要求トルクＴｏｕｔ＊が負の範囲内で値０に近くなるから、モータＭＧ２のトルク指令Ｔｍ２＊も負の範囲内で値０に近くなる。また、オフセット学習を実行するときには、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定するから、現在のオフセット量Δθｏｓ２が適正値の場合にモータＭＧ２の出力トルクの絶対値が値０付近になる。そして、モータＭＧ２のトルク指令Ｔｍ２＊と出力トルクとの差が小さいほど運転者に違和感を与えにくいと考えられる。これらの結果、学習用変速制御を実行する際に所定変速段範囲内の最高速段を学習用変速段Ｇｓｌｖとして用いることにより、オフセット学習の実行中に運転者に違和感を与えるのをより抑制することができる。
【００７２】
ステップＳ３３０で学習中フラグＦ１が値１のときには、オフセット学習の実行中であると判断し、ステップＳ３４０，Ｓ３５０の処理と同様に、モータＭＧ２が回転しているか否かを判定し（ステップＳ３８０）、アクセルオフかアクセルオンかを判定する（ステップＳ３９０）。
【００７３】
ステップＳ３８０，Ｓ３９０で、モータＭＧ２が回転していると判定されると共にアクセルオフであると判定されたときには、学習用変速制御の実行を継続して（ステップＳ３７０）、本ルーチンを終了する。したがって、変速機６０の変速段Ｇｓを学習用変速段Ｇｓｌｖ（実施例では第２速段）で保持することになる。これにより、オフセット学習の実行中に、変速機６０の変速段Ｇｓの変更によるモータＭＧ２の回転数Ｎｍ２（角速度ωｍ２）の急変が生じるのを回避することができる。この結果、オフセット学習の実行中に、オフセット学習の精度が低下するのを回避することができる。
【００７４】
こうしてステップＳ３００，Ｓ３１０，Ｓ３３０，Ｓ３８０，Ｓ３９０，Ｓ３７０の処理を繰り返し実行しているときに、モータＥＣＵ４０によってオフセット学習が完了して学習完了フラグＦ２に値１が設定されると、ステップＳ３１０で学習完了フラグＦ２が値１であると判定され、学習用変速制御を終了して通常変速制御を実行して（ステップＳ３２０）、本ルーチンを終了する。
【００７５】
ステップＳ３８０でモータＭＧ２が回転していないと判定されたときには、オフセット学習を適切に実行できなくなった（現在のオフセット量Δθｏｓ２が適正値であるか否かを判断できなくなった）と判断し、オフセット学習中止指令をモータＥＣＵ４０に送信し（ステップＳ４００）、学習用変速制御を中止して通常変速制御を実行して（ステップＳ３２０）、本ルーチンを終了する。モータＥＣＵ４０は、オフセット学習中止指令を受信すると、オフセット学習を中止する。オフセット学習を中止することにより、オフセット学習の精度が低下するのを抑制することができる。
【００７６】
ステップＳ３９０でアクセルオンであると判定されたときには、オフセット学習の実行として電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定する（値０の設定を継続する）と運転者に違和感を与える可能性が生じたと判断し、オフセット学習中止指令をモータＥＣＵ４０に送信し（ステップＳ４００）、学習用変速制御を中止し、通常変速制御を実行して（ステップＳ３２０）、本ルーチンを終了する。このときに、オフセット学習を中止することにより、運転者に違和感を与えるのを抑制することができる。
【００７７】
図１１は、オフセット学習を実行する際の様子の一例を示す説明図である。図中、変速機６０の変速段Ｇｓ，モータＭＧ２の回転数Ｎｍ２，オフセット量Δθｏｓ２については、実線は実施例の様子を示し、一点鎖線は比較例を示す。変速機６０の変速段Ｇｓ，モータＭＧ２の回転数Ｎｍ２，オフセット量Δθｏｓ２については、実施例および比較例で同一とした。比較例では、図中一点鎖線に示すように、時刻ｔ１にシフトポジションＳＰがＰポジションからＤポジションに変更されて走行を開始すると、通常変速制御として、アクセルオンによる車速Ｖの増加に伴って変速機６０の変速段Ｇｓを第１速段から第２速段，第３速段に移行する。そして、時刻ｔ２にアクセルオフされると、オフセット学習を実行し、時刻ｔ３にオフセット学習を完了する。この場合、モータＭＧ２の回転数Ｎｍ２が小さいことによってオフセット学習の精度が低下する可能性がある。一方、実施例では、図中実線に示すように、時刻ｔ１から学習用変速制御として変速機６０の変速段Ｇｓを第２速段で保持する。そして、時刻ｔ２にアクセルオフされると、変速機６０の変速段Ｇｓを第２速段で保持しながらオフセット学習を実行し、時刻ｔ３にオフセット学習を完了する。そして、オフセット学習を完了すると、学習用変速制御を終了して通常変速制御に移行する。このように、学習用変速制御を実行しながらオフセット学習を実行することにより、通常変速制御を実行しながらオフセット学習を実行するものに比して、モータＭＧ２の回転数Ｎｍ２をより確実にある程度大きくしてオフセット学習を実行することができる。この結果、オフセット学習（学習オフセット量Δθｌｖ２の更新）の精度が低下するのを抑制することができる。
【００７８】
以上説明した実施例のハイブリッド自動車２０では、モータＭＧ２が回転している状態で、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ２＊にそれぞれ値０を設定してオフセット学習を実行する。そして、オフセット学習を実行する際には、変速機６０の変速段Ｇｓが低車速側の所定変速段範囲内となるように変速機６０を制御する学習用変速制御を実行する。これにより、オフセット学習を実行する際に通常変速制御を実行するものに比して、モータＭＧ２の回転数Ｎｍ２をより確実にある程度大きくしてオフセット学習を実行することができる。この結果、オフセット学習の精度が低下する（精度の低い学習結果が反映される）のを抑制することができる。
【００７９】
しかも、オフセット学習を実行する際には、変速機６０が変速機６０の変速段Ｇｓが所定変速段範囲内の学習用変速段Ｇｓｌｖで保持されるように変速機６０を制御する。これにより、オフセット学習の実行中に、変速機６０の変速段Ｇｓの変更によるモータＭＧ２の回転数Ｎｍ２（角速度ωｍ２）の急変が生じるのを回避することができる。この結果、オフセット学習の実行中に、オフセット学習の精度が低下するのを回避することができる。
【００８０】
さらに、学習用変速制御を実行する際には、所定変速段範囲内の最高速段を学習用変速段Ｇｓｌｖとして用いる。これにより、アクセルオフのときに、変速機６０の変速段Ｇｓが大きい（高車速側の変速段）ときには小さいときに比して要求トルクＴｏｕｔ＊ひいてはモータＭＧ２のトルク指令Ｔｍ２＊が負の範囲内で値０に近くなるものにおいて、オフセット学習の実行中に運転者に違和感を与えるのをより抑制することができる。
【００８１】
実施例のハイブリッド自動車２０では、学習用変速制御を実行する際には、低車速側の所定変速段範囲内の最高速段（４段変速機における第２速段）を学習用変速段Ｇｓｌｖとして用いて、変速機６０の変速段Ｇｓが学習用変速段Ｇｓｌｖで保持されるように変速機６０を制御するものとした。しかし、所定変速段範囲内のうち最高速段以外の変速段（４段変速機における第１速段）を学習用変速段Ｇｓｌｖとして用いるものとしてもよい。また、車速Ｖや運転者による図示しない指示スイッチの操作などに応じて所定変速段範囲内で学習用変速段Ｇｓｌｖを設定するものとしてもよい。
【００８２】
実施例のハイブリッド自動車２０では、オフセット学習の実行開始前において、モータＭＧ２が回転しているか否かおよびアクセルオフかアクセルオンかに拘わらずに、学習用変速制御を実行するものとした。しかし、図１２の変形例の変速制御ルーチンに示すように、ステップＳ３１０，Ｓ３３０で学習完了フラグＦ２および学習中フラグＦ１が共に値０のとき即ちオフセット学習の実行開始前において、ステップＳ３４０でモータＭＧ２が回転していないときやステップＳ３５０でアクセルオンであるときには、通常変速制御を実行する（ステップＳ３２０）、ものとしてもよい。
【００８３】
実施例のハイブリッド自動車２０では、オフセット学習の実行中において、モータＭＧ２が回転しなくなったときやアクセルオンされたときには、オフセット学習を中止すると共に、学習用変速制御を中止して通常変速制御に移行するものとした。しかし、これらのときには、オフセット学習を中止するが、学習用変速制御の実行を継続するものとしてもよい。この場合、現在のトリップでオフセット学習が完了するまで学習用変速制御の実行を継続するものとしてもよい。
【００８４】
実施例のハイブリッド自動車２０では、、モータＭＧ２が回転しているか否かおよびアクセルオフかアクセルオンかを用いて、オフセット学習や学習用変速制御の実行開始や実行中止を判定するものとした。しかし、アクセルオフかアクセルオンかに代えて、モータＭＧ２のトルク指令Ｔｍ２＊の絶対値が閾値Ｔｒｅｆ以下か否かを用いて、オフセット学習や学習用変速制御の実行開始や実行中止を判定するものとしてもよい。ここで、閾値Ｔｒｅｆは、オフセット学習の実行としてｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定すると（トルク指令Ｔｍ２＊と出力トルクとの差によって）運転者に違和感を与えるか否かを判定するのに用いられる閾値であり、例えば、数Ｎｍなどを用いることができる。この場合、モータＭＧ２のトルク指令Ｔｍ２＊の絶対値が閾値Ｔｒｅｆよりも大きいときには、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定すると運転者に違和感を与える可能性があると判断し、モータＭＧ２のトルク指令Ｔｍ２＊の絶対値が閾値Ｔｒｅｆ以下のときには、ｄ軸電流指令Ｉｄ２＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定しても運転者に違和感を与えないと判断すればよい。
【００８５】
実施例のハイブリッド自動車２０では、モータＭＧ２が回転しているか否かおよびアクセルオフかアクセルオンかを用いて、オフセット学習や学習用変速制御の実行開始や実行中止を判定するものとした。しかし、これらに加えて、変速機６０に異常が生じているか否か，変速機６０の冷却油の温度Ｔｏｉｌ，車速Ｖ，モータＭＧ２の回転数Ｎｍ２などの少なくとも１つを用いて、オフセット学習や学習用変速制御の実行開始や実行中止を判定するものとしてもよい。変速機６０に異常が生じているか否かおよび変速機６０の冷却油の温度Ｔｏｉｌを用いる場合の変速制御ルーチンの一例を図１３に示し、車速ＶおよびモータＭＧ２の回転数Ｎｍ２を用いる場合の変速制御ルーチンの一例を図１４に示す。以下、順に説明する。なお、図１３や図１４の変速制御ルーチンにおいて、上述したのと同様に、アクセルオフかアクセルオンかに代えてモータＭＧ２のトルク指令Ｔｍ２＊の絶対値が閾値Ｔｒｅｆ以下か否かを用いるものとしてもよい。
【００８６】
図１３の変速制御ルーチンは、ステップＳ１００の処理に代えてステップＳ５００の処理を実行する点およびステップＳ５１０〜Ｓ５６０の処理を追加した点を除いて、図９の変速制御ルーチンと同一である。したがって、同一のステップ番号を付し、その詳細な説明は省略する。
【００８７】
図１３の変速制御ルーチンでは、ＨＶＥＣＵ７０は、図９の変速制御ルーチンのステップＳ１００の処理と同様にアクセル開度Ａｃｃ，モータＭＧ２の回転数Ｎｍ２，学習中フラグＦ１，学習完了フラグＦ２などのデータを入力するのに加えて、変速機異常フラグＦａｔ，変速機の冷却油の温度Ｔｏｉｌなどのデータも入力する（ステップＳ５００）。ここで、変速機異常フラグＦａｔは、変速機６０に異常が生じていないときには値０が設定され、変速機６０に異常が生じているときには値１が設定されたものを入力するものとした。なお、変速機６０の異常としては、複数の摩擦係合要素の異常や油圧アクチュエータの異常などを挙げることができる。変速機６０の冷却油の温度Ｔｏｉｌは、温度センサ６８によって検出された値を入力するものとした。
【００８８】
続いて、ステップＳ３１０，Ｓ３３０で学習完了フラグＦ２および学習中フラグＦ１が共に値０のときには、オフセット学習の実行開始前であると判断し、変速機異常フラグＦａｔの値を調べると共に（ステップＳ５１０）、変速機６０の冷却油の温度Ｔｏｉｌを閾値Ｔｏｉｌｒｅｆと比較する（ステップＳ５２０）。ここで、閾値Ｔｏｉｌｒｅｆは、変速機６０が過熱しているか否かを判定するのに用いられる閾値であり、例えば、１１０℃，１２０℃，１３０℃などを用いることができる。そして、変速機異常フラグＦａｔが値０で且つ変速機６０の冷却油の温度ｔｏｉｌが閾値Ｔｏｉｌｒｅｆ未満のときには、変速機６０に異常は生じておらず且つ変速機６０は過熱していないと判断し、ステップＳ３４０以降の処理を実行する。
【００８９】
ステップＳ５１０，Ｓ５２０で、変速機異常フラグＦａｔが値１のときや変速機６０の冷却油の温度ｔｏｉｌが閾値Ｔｏｉｌｒｅｆ以上のときには、変速機６０に異常が生じていたり変速機６０が過熱していたりすると判断し、オフセット学習指令をモータＥＣＵ４０に送信することなく、フェールセーフ変速制御を実行して（ステップＳ５６０）、本ルーチンを終了する。フェールセーフ変速制御を実行する際には、例えば、形成可能な固定段や、予め定められた範囲に限定して変速を行う。このようにフェールセーフ変速制御を実行することにより、変速機６０の異常や過熱の程度の進行を抑制することができる。また、オフセット学習を実行しないことにより、オフセット学習の精度が低下するのを回避することができる。
【００９０】
ステップＳ３３０で学習中フラグＦ１が値１のときには、オフセット学習の実行中であると判断し、ステップＳ５１０，Ｓ５２０の処理と同様に、変速機異常フラグＦａｔの値を調べると共に（ステップＳ５３０）、変速機６０の冷却油の温度Ｔｏｉｌを閾値Ｔｏｉｌｒｅｆと比較する（ステップＳ５４０）。そして、変速機異常フラグＦａｔが値０で且つ変速機６０の冷却油の温度ｔｏｉｌが閾値Ｔｏｉｌｒｅｆ未満のときには、変速機６０に異常は生じておらず且つ変速機６０は過熱していないと判断し、ステップＳ３８０以降の処理を実行する。
【００９１】
ステップＳ５３０，Ｓ５４０で、変速機異常フラグＦａｔが値１のときや変速機６０の冷却油の温度ｔｏｉｌが閾値Ｔｏｉｌｒｅｆ以上のときには、オフセット学習の実行中に変速機６０に異常が生じたり変速機６０が過熱したりしたと判断し、オフセット学習中止指令をモータＥＣＵ４０に送信し（ステップＳ５５０）、フェールセーフ変速制御を実行して（ステップＳ５６０）、本ルーチンを終了する。このようにフェールセーフ変速制御を実行することにより、変速機６０の異常や過熱の程度の進行を抑制することができる。また、オフセット学習を中止することにより、オフセット学習の精度が低下するのを回避することができる。
【００９２】
図１４の変速制御ルーチンは、ステップＳ１００の処理に代えてステップＳ６００の処理を実行する点およびステップＳ６１０〜Ｓ６２０の処理を追加した点を除いて、図９の変速制御ルーチンと同一である。したがって、同一のステップ番号を付し、その詳細な説明は省略する。
【００９３】
図１４の変速制御ルーチンでは、ＨＶＥＣＵ７０は、図９の変速制御ルーチンのステップＳ１００の処理と同様にアクセル開度Ａｃｃ，モータＭＧ２の回転数Ｎｍ２，学習中フラグＦ１，学習完了フラグＦ２などのデータを入力するのに加えて、車速Ｖなどのデータも入力する（ステップＳ６００）。ここで、車速Ｖは、車速センサ８８によって検出された値を入力するものとした。
【００９４】
続いて、ステップＳ３１０，Ｓ３３０で学習完了フラグＦ２および学習中フラグＦ１が共に値０のときには、オフセット学習の実行開始前であると判断する。そして、ステップＳ３４０，Ｓ３５０でモータＭＧ２が回転していて且つアクセルオフのときには、車速Ｖを閾値Ｖｒｅｆ１および閾値Ｖｒｅｆ２と比較する（ステップＳ６１０）。
【００９５】
ここで、閾値Ｖｒｅｆ１および閾値Ｖｒｅｆ２は、学習用変速制御を実行したとき（変速機６０の変速段Ｇｓを第２速段で保持したとき）の閾値Ｎｒｅｆ１および閾値Ｎｒｅｆ２に対応する車速として定められる。ここで、閾値Ｎｒｅｆ１および閾値Ｎｒｅｆ２は、学習用変速制御を実行しながらオフセット学習を十分に精度よく実行できるモータＭＧ２の回転数範囲の下限および上限として定められる。閾値Ｎｒｅｆ１は、例えば、２５００ｒｐｍ，３０００ｒｐｍ，３５００ｒｐｍなどを用いることができ、閾値Ｎｒｅｆ２は、例えば、５５００ｒｐｍ，６０００ｒｐｍ，６５００ｒｐｍなどを用いることができる。閾値Ｖｒｅｆ１は、例えば、２５ｋｍ／ｈ，３０ｋｍ／ｈ，３５ｋｍ／ｈなどを用いることができ、閾値Ｖｒｅｆ２は、例えば、５５ｋｍ／ｈ，６０ｋｍ／ｈ，６５ｋｍ／ｈなどを用いることができる。なお、車速Ｖが閾値Ｖｒｅｆ１未満のとき（学習用変速制御を実行するとモータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ１未満になるとき）には、学習用変速制御を実行しながらオフセット学習を実行する際に、オフセット量Δθｏｓ２が適正値でない場合にｄ軸電流指令Ｉｄ２＊およびｑ軸電流Ｉｑ２＊をそれぞれ値０としたときにｄ軸電圧Ｖｄ２（ｄ軸電圧指令Ｖｄ２＊）が大きくなりにくい（誤差の影響が大きくなりやすい）という理由によって、オフセット学習を十分に精度よく実行できない可能性がある。また、車速Ｖが閾値Ｖｒｅｆ２よりも大きいとき（学習用変速制御を実行するとモータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ２よりも大きくなるとき）には、回転位置センサ４４や電流センサ４６ｖ，４６ｗの検出遅れなどによってオフセット学習を十分に精度よく実行できない可能性がある。なお、アクセルオフ時に車速Ｖが閾値Ｖｒｅｆ２よりも大きくなるときとしては、例えば降坂路での走行時を考えることができる。
【００９６】
ステップＳ６１０で車速Ｖが閾値Ｖｒｅｆ１未満のときや閾値Ｖｒｅｆ２よりも大きいときには、学習用変速制御を実行しながらオフセット学習を十分に精度よく実行できない可能性があると判断し、オフセット学習指令をモータＥＣＵ４０に送信することなく、学習用変速制御を実行して（ステップＳ３７０）、本ルーチンを終了する。
【００９７】
ステップＳ６１０で車速Ｖが閾値Ｖｒｅｆ１以上で且つ閾値Ｖｒｅｆ２以下のときには、オフセット学習指令をモータＥＣＵ４０に送信し（ステップＳ３６０）、学習用変速制御を実行して（ステップＳ３７０）、本ルーチンを終了する。これにより、オフセット学習を十分に精度よく実行することができる。
【００９８】
ステップＳ３３０で学習中フラグＦ１が値１のときには、オフセット学習の実行中であると判断する。そして、ステップＳ３８０，Ｓ３９０でモータＭＧ２が回転していて且つアクセルオフのときには、モータＭＧ２の回転数Ｎｍ２を閾値Ｎｒｅｆ１および閾値Ｎｒｅｆ２と比較する（ステップＳ６２０）。なお、ステップＳ６２０の処理に代えて、ステップＳ６１０の処理と同様に、車速Ｖを閾値Ｖｒｅｆ１および閾値Ｖｒｅｆ２と比較するものとしてもよい。
【００９９】
ステップＳ６２０でモータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ１以上で閾値Ｎｒｅｆ２以下のとき（車速Ｖが閾値Ｖｒｅｆ１以上で閾値Ｖｒｅｆ２以下のとき）には、学習用変速制御を実行して（ステップＳ３７０）、本ルーチンを終了する。
【０１００】
ステップＳ６２０でモータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ１未満になるか閾値Ｎｒｅｆ２よりも大きくなったとき（車速Ｖが閾値Ｖｒｅｆ１未満になるか閾値Ｖｒｅｆ２よりも大きくなったとき）には、学習用変速制御を実行しながらオフセット学習を十分に精度よく実行できない可能性が生じたと判断し、オフセット学習中止指令をモータＥＣＵ４０に送信し（ステップＳ４００）、学習用変速制御を中止して通常変速制御を実行して（ステップＳ３２０）、本ルーチンを終了する。このようにしてオフセット学習を中止することにより、オフセット学習の精度が低下するのをより抑制することができる。
【０１０１】
この変形例では、オフセット学習の実行開始前において、車速Ｖが閾値Ｖｒｅｆ１以上で閾値Ｖｒｅｆ２以下であるか否かに拘わらずに、学習用変速制御を実行するものとした。しかし、車速Ｖが閾値Ｖｒｅｆ１未満のときや閾値Ｖｒｅｆ２よりも大きいときには、通常変速制御を実行するものとしてもよい。
【０１０２】
また、この変形例では、オフセット学習の実行中において、モータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ１未満になったときや閾値Ｎｒｅｆ２よりも大きくなったときには、オフセット学習を中止すると共に、学習用変速制御を中止して通常変速制御に移行するものとした。しかし、これらのときには、オフセット学習を中止するが、学習用変速制御の実行を継続するものとしてもよい。この場合、現在のトリップでオフセット学習が完了するまで学習用変速制御の実行を継続するものとしてもよい。
【０１０３】
さらに、この変形例では、閾値Ｎｒｅｆ２および閾値Ｖｒｅｆ２は、学習用変速制御を実行しながらオフセット学習を十分に精度よく実行できるモータＭＧ２の回転数範囲の上限およびこれに対応する車速Ｖとした。しかし、モータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ３以下の領域ではインバータ４２をパルス幅変調（ＰＷＭ）制御によって制御し、モータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ３よりも大きい領域ではインバータ４２を矩形波制御方式によって制御する場合、閾値Ｎｒｅｆ２および閾値Ｖｒｅｆ２は、この閾値Ｎｒｅｆ３およびこれに対応する車速Ｖとしてもよい。この場合、オフセット学習の実行中にモータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ２（＝Ｎｒｅｆ３）よりも大きくなったときに、オフセット学習および学習用変速制御を中止することにより、矩形波制御の領域でオフセット学習を実行するのを回避することができる。これにより、モータＭＧ２の制御性が低下するのを抑制することができる。
【０１０４】
加えて、この変形例では、閾値Ｎｒｅｆ２および閾値Ｖｒｅｆ２は、学習用変速制御を実行しながらオフセット学習を十分に精度よく実行できるモータＭＧ２の回転数範囲の上限およびこれに対応する車速Ｖとした。しかし、閾値Ｎｒｅｆ２および閾値Ｖｒｅｆ２は、オフセット学習の完了時に学習用変速制御を終了して直ちに変速段の変更が行なわれたときでも変速ショックを運転者に感じさせない回転数の上限よりも若干低い回転数およびこれに対応する車速Ｖとしてもよい。この場合、オフセット学習の実行中にモータＭＧ２の回転数Ｎｍ２が閾値Ｎｒｅｆ２よりも大きくなったときに、オフセット学習および学習用変速制御を中止することにより、オフセット学習の完了後に変速ショックを運転者に感じさせるのを抑制することができる。
【０１０５】
実施例のハイブリッド自動車２０では、オフセット学習が完了すると、直ちに学習用変速制御から通常変速制御に移行するものとした。しかし、オフセット学習が完了した後に所定条件が成立したときに、学習用変速制御から通常変速制御に移行するものとしてもよい。この場合の変速制御ルーチンの一例を図１５に示す。図１５の変速制御ルーチンは、ステップＳ７００〜Ｓ７２０の処理を追加した点を除いて、図９の変速制御ルーチンと同一である。したがって、同一のステップ番号を付し、その詳細な説明は省略する。
【０１０６】
図１５の変速制御ルーチンでは、ＨＶＥＣＵ７０は、ステップＳ３１０で学習完了フラグＦ２が値１であると判定されると、学習用変速制御の実行中か否かを判定する（ステップＳ７００）。そして、学習用変速制御の実行中であると判定されたときには、通常変速制御で用いる通常用変速段Ｇｓｎｏを設定する（ステップＳ７１０）。通常用変速段Ｇｓｎｏの設定方法については上述した。
【０１０７】
続いて、変速機６０の現在の変速段Ｇｓ（学習制御用変速段Ｇｓｌｖ）が通常用変速段Ｇｓｎｏと等しいか否かを判定し（ステップＳ７２０）、変速機６０の現在の変速段Ｇｓと通常用変速段Ｇｓｎｏと等しくないと判定されたときには、学習用変速制御を実行（継続）して（ステップＳ３７０）、本ルーチンを終了する。
【０１０８】
ステップＳ７２０で変速機６０の現在の変速段Ｇｓが通常用変速段Ｇｓｎｏと等しいと判定されたときには、通常変速制御を実行して即ち学習用変速制御から通常変速制御に移行して（ステップＳ３２０）、本ルーチンを終了する。これにより、オフセット学習が完了して直ちに変速機の変速段が変更されることによって運転者に違和感を与えるのを回避することができる。
【０１０９】
実施例のハイブリッド自動車２０では、１トリップに１回の頻度でオフセット学習を実行するものとした。しかし、１トリップに複数回の頻度でオフセット学習を実行するものとしてもよい。また、複数トリップ（例えば、２トリップや３トリップ）に１回の頻度でオフセット学習を実行するものとしてもよい。
【０１１０】
実施例のハイブリッド自動車２０では、変速機６０の温度として、変速機６０の冷却油の温度Ｔｏｉｌを用いるものとした。しかし、変速機６０自体の温度を用いるものとしてもよい。
【０１１１】
実施例のハイブリッド自動車２０では、工場出荷後や部品交換後のトリップ（運転者が運転して走行するトリップ）でオフセット学習を実行するときの制御について説明した。しかし、工場出荷時や部品交換時に、車両を整備モードとして、実施例と同様に、図８のモータＥＣＵ４０のオフセット学習制御部９７によって実行されるオフセット学習制御ルーチンや、図９のＨＶＥＣＵ７０によって実行される変速制御ルーチンを実行するものとしてもよい。
【０１１２】
実施例のハイブリッド自動車２０では、モータＥＣＵ４０とＨＶＥＣＵ７０とを備えるものとした。しかし、モータＥＣＵ４０とＨＶＥＣＵ７０とを単一の電子制御ユニットとして構成するものとしてもよい。
【０１１３】
実施例のハイブリッド自動車２０では、変速機６０として、４段変速機を用いるものとした。しかし、変速機として、２段変速機，３段変速機，５段変速機，６段変速機，８段変速機，１０段変速機などを用いるものとしてもよい。これらの場合において、低車速側の所定変速段範囲は、例えば、６段変速機における第１速段から第２速段、第３速段，第４速段のいずれかまでとしてもよいし、８段変速機における第１速段から第２速段，第３速段，第４速段，第５速段のいずれかまでとしてもよい。
【０１１４】
実施例のハイブリッド自動車２０では、駆動輪３８ａ，３８ｂに連結された駆動軸３６にプラネタリギヤ３０を介してエンジン２２およびモータＭＧ１を接続すると共に駆動軸３６にモータＭＧ２を接続する構成とした。しかし、図１６の変形例のハイブリッド自動車１２０に示すように、駆動輪３８ａ，３８ｂに連結された駆動軸３６に変速機６０を介してモータＭＧを接続すると共にモータＭＧの回転軸にクラッチ１２９を介してエンジン２２を接続する構成としてもよい。また、図１７の変形例のハイブリッド自動車２２０に示すように、エンジン２２の出力軸に発電用のモータＭＧ１を接続すると共に駆動輪３８ａ，３８ｂに連結された駆動軸３６に変速機６０を介して走行用のモータＭＧ２を接続するいわゆるシリーズハイブリッド自動車の構成としてもよい。さらに、図１８の変形例の電気自動車３２０に示すように、駆動輪３８ａ，３８ｂに連結された駆動軸３６に変速機６０を介して走行用のモータＭＧを接続する電気自動車の構成としてもよい。即ち、駆動輪に連結された駆動軸に変速機を介してモータを接続する自動車であれば如何なる構成としてもよいのである。
【０１１５】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、モータＭＧ２が「三相モータ」に相当し、インバータ４２が「インバータ」に相当し、変速機６０が「変速機」に相当し、モータＥＣＵ４０が「インバータ制御手段」に相当し、回転位置センサ４４が「回転位置センサ」に相当し、モータＥＣＵ４０のオフセット学習制御部９７が「オフセット学習手段」に相当し、加算器９８が「回転位置補正手段」に相当し、ＨＶＥＣＵ７０が「変速機制御手段」に相当する。
【０１１６】
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
【０１１７】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【０１１８】
本発明は、自動車の製造産業などに利用可能である。
【符号の説明】
【０１１９】
２０，１２０，２２０  ハイブリッド自動車、２２  エンジン、２３  クランクポジションセンサ、２４  エンジン用電子制御ユニット（エンジンＥＣＵ）、２６  クランクシャフト、３０，６３，６４  プラネタリギヤ、２８  ダンパ、２９  トランスミッションケース、３６  駆動軸、３７  デファレンシャルギヤ、３８ａ，３８ｂ  駆動輪、４０  モータ用電子制御ユニット（モータＥＣＵ）、４１，４２  インバータ、４３，４４  回転位置センサ、４０ａ  ＣＰＵ、４０ｂ  ＲＯＭ、４０ｃ  ＲＡＭ、４０ｄ  フラッシュメモリ、４５ｖ，４５ｗ，４６ｖ，４６ｗ  電流センサ、５０  バッテリ、５１ａ  電圧センサ、５１ｂ  電流センサ、５２  バッテリ用電子制御ユニット（バッテリＥＣＵ）、５４  電力ライン、６０  変速機、６１  入力軸、６２  出力軸、６３ｃ，６４ｃ  キャリヤ、６３ｐ，６４ｐ  ピニオンギヤ、６３ｒ，６４ｒ  リングギヤ、６３ｓ，６４ｓ  サンギヤ、６８  温度センサ、６９  回転数センサ、７０  ハイブリッド用電子制御ユニット（ＨＶＥＣＵ）、８０  イグニッションスイッチ、８２  シフトポジションセンサ、８４  アクセルペダルポジションセンサ、８６  ブレーキペダルポジションセンサ、８８  車速センサ、９１  電流指令生成器、９２ｄ，９２ｑ  減算器、９３ｄ，９３ｑ  電圧指令変換器、９４  座標変換器、９５  ＰＷＭ変換器、９６  座標変換器、９７  オフセット学習制御部、９８  加算器、Ｃ１，Ｃ２  １２９  クラッチ、Ｂ１，Ｂ２  ブレーキ、Ｄ１１〜Ｄ１６，Ｄ２１〜Ｄ２６  ダイオード、ＭＧ，ＭＧ１，ＭＧ２  モータ、Ｔ１１〜Ｔ１６，Ｔ２１〜Ｔ２６  トランジスタ、３２０  電気自動車。
【図１】
2017175711.tif 000003
【図２】
2017175711.tif 000004
【図３】
2017175711.tif 000005
【図４】
2017175711.tif 000006
【図５】
2017175711.tif 000007
【図６】
2017175711.tif 000008
【図７】
2017175711.tif 000009
【図８】
2017175711.tif 000010
【図９】
2017175711.tif 000011
【図１０】
2017175711.tif 000012
【図１１】
2017175711.tif 000013
【図１２】
2017175711.tif 000014
【図１３】
2017175711.tif 000015
【図１４】
2017175711.tif 000016
【図１５】
2017175711.tif 000017
【図１６】
2017175711.tif 000018
【図１７】
2017175711.tif 000019
【図１８】
2017175711.tif 000020