(57)【特許請求の範囲】
【請求項１】
車両に搭載された発電装置であって、
エンジンと、
前記エンジンからの動力により発電が可能な三相発電機と、
前記三相発電機を駆動するインバータと、
前記三相発電機で発電した電力により充電が可能なバッテリと、
前記三相発電機のトルク指令に基づいてｄ軸電流指令とｑ軸電流指令とを設定し、前記三相発電機の回転位置に基づいて前記三相発電機の各相電流をｄ軸電流とｑ軸電流とに変換し、前記ｄ軸電流指令と前記ｄ軸電流と前記ｑ軸電流指令と前記ｑ軸電流とに基づいてｄ軸電圧指令とｑ軸電圧指令とを設定し、前記三相発電機の回転位置に基づいて前記ｄ軸電圧指令と前記ｑ軸電圧指令とを前記三相発電機の各相電圧指令に変換し、前記変換した各相電圧指令に基づいて前記インバータを駆動制御するインバータ制御手段と、
前記三相発電機の回転位置を検出する回転位置センサと、
前記回転位置センサのオフセット量を学習するオフセット学習手段と、
前記回転位置センサにより検出された回転位置を前記オフセット学習手段により学習されたオフセット量に基づいて補正する回転位置補正手段と、
を備え、
前記オフセット学習手段は、
前記三相発電機が回転している状態で、前記ｄ軸電流指令および前記ｑ軸電流指令を値０とし、値０とした前記ｄ軸電流指令および前記ｑ軸電流指令に基づく前記ｄ軸電圧指令が値０となるよう前記回転位置のオフセット量を学習するオフセット学習を行なう手段であって、
車両が停車している状態で前記バッテリの充放電が行われた場合、該バッテリの充放電が終了した後、前記三相発電機が回転している状態で前記ｄ軸電流指令および前記ｑ軸電流指令を値０として前記オフセット学習を行なう
ことを特徴とする発電装置。
【請求項２】
請求項１記載の発電装置であって、
前記オフセット学習手段は、車両が停車している状態で前記エンジンの動力により前記三相発電機を回転させることにより該三相発電機で発電した電力を前記バッテリに充電している場合、該バッテリの充電が完了した後、前記三相発電機の回転を維持した状態で前記オフセット学習を行なう
ことを特徴とする発電装置。
【請求項３】
請求項１または２記載の発電装置であって、
前記バッテリに充電されている電力及び前記三相発電機により発電した電力を外部に給電可能な外部給電装置を備え、
前記オフセット学習手段は、前記外部給電装置による外部給電が完了した後に、前記三相発電機の回転を維持した状態で前記オフセット学習を行なう
ことを特徴とする発電装置。
【請求項４】
請求項１ないし３いずれか１項に記載の発電装置であって、
前記オフセット学習手段は、車両のシステム起動からシステム停止までの間に、前記オフセット学習の完了履歴がないときに、前記オフセット学習を行なう
ことを特徴とする発電装置。
【請求項５】
請求項１ないし４いずれか１項に記載の発電装置であって、
前記バッテリは、車両が停車しているときに外部電源からの電力により充電が可能であり、
前記オフセット学習手段は、前記外部電源からの電力により前記バッテリが充電された場合、該バッテリの充電が終了した後、前記エンジンからの動力により前記三相発電機を回転させた上で、前記オフセット学習を行なう
ことを特徴とする発電装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発電装置に関し、より詳しくは、車両に搭載された発電装置に関する。
【背景技術】
【０００２】
従来より、ｄｑ軸電流によって三相モータ（モータ）を制御するものにおいて、モータの回転子に取り付けられた回転位置センサのオフセット量を学習するものが提案されている（例えば、特許文献１参照）。モータの制御は、以下のように行なわれる。即ち、モータのトルク指令からｄ軸電流指令およびｑ軸電流指令を設定する。続いて、モータの各相を流れる各相電流を電流センサによって検出し、回転位置センサからのモータの回転角に基づいて各相電流をｄ軸電流およびｑ軸電流に変換する（三相二相変換）。そして、ｄ軸電流指令とｄ軸電流との偏差およびｑ軸電流指令とｑ軸電流との偏差に基づいてフィードバック制御によりｄ軸電圧指令およびｑ軸電圧指令を設定する。そして、回転位置センサからのモータの回転角に基づいてｄ軸電圧指令およびｑ軸電圧指令を各相電圧指令に変換し（二相三相相変換）、変換した各相電圧指令に基づいてＰＷＭ信号を生成してインバータをスイッチング制御することによりモータを駆動する。ここで、回転位置センサにより検出される回転角にオフセット誤差が含まれていると、三相二相変換や二相三相変換が正しく行なわれないため、モータからトルク指令に応じたトルクを出力できなくなる。このため、回転位置センサにより検出された回転角にオフセット補正を施すためのオフセット量を学習するオフセット学習を行なっている。ここで、モータの回転中にｄ軸電流指令およびｑ軸電流指令を値０とすると、回転位置センサにオフセット誤差が含まれていなければ、ｄ軸電圧指令も値０となる。しかし、回転位置センサにオフセット誤差が含まれていると、モータの回転中にｄ軸電流指令およびｑ軸電流指令を値０としても、ｄ軸電圧指令が値０とはならない。このため、ｄ軸電流指令およびｑ軸電流指令を値０としたときに、ｄ軸電圧指令が値０となるように回転角のオフセット量を調整することによりオフセット学習を行なっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３３９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した手法では、回転位置センサのオフセット量を学習するために、モータの回転中にトルク指令を値０としてモータを制御する必要がある。このため、オフセット学習を行なっている間、本来のトルク指令とは異なったトルク指令によりモータが駆動され、運転者に違和感を感じさせる場合がある。こうした問題は、エンジンからの動力を用いて発電してバッテリを充電可能な三相発電機を駆動制御する際にも同様に生じ得る。
【０００５】
本発明の発電装置は、運転者に違和感を与えないようにしながら、回転位置センサのオフセット量の学習機会を確保することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の発電装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の発電装置は、
車両に搭載された発電装置であって、
エンジンと、
前記エンジンからの動力により発電が可能な三相発電機と、
前記三相発電機を駆動するインバータと、
前記三相発電機で発電した電力により充電が可能なバッテリと、
前記三相発電機のトルク指令に基づいてｄ軸電流指令とｑ軸電流指令とを設定し、前記三相発電機の回転位置に基づいて前記三相発電機の各相電流をｄ軸電流とｑ軸電流とに変換し、前記ｄ軸電流指令と前記ｄ軸電流と前記ｑ軸電流指令と前記ｑ軸電流とに基づいてｄ軸電圧指令とｑ軸電圧指令とを設定し、前記三相発電機の回転位置に基づいて前記ｄ軸電圧指令と前記ｑ軸電圧指令とを前記三相発電機の各相電圧指令に変換し、前記変換した各相電圧指令に基づいて前記インバータを駆動制御するインバータ制御手段と、
前記三相発電機の回転位置を検出する回転位置センサと、
前記回転位置センサのオフセット量を学習するオフセット学習手段と、
前記回転位置センサにより検出された回転位置を前記オフセット学習手段により学習されたオフセット量に基づいて補正する回転位置補正手段と、
を備え、
前記オフセット学習手段は、
前記三相発電機が回転している状態で、前記ｄ軸電流指令および前記ｑ軸電流指令を値０とし、値０とした前記ｄ軸電流指令および前記ｑ軸電流指令に基づく前記ｄ軸電圧指令が値０となるよう前記回転位置のオフセット量を学習するオフセット学習を行なう手段であって、
車両が停車している状態で前記バッテリの充放電が行われた場合、該バッテリの充放電が終了した後、前記三相発電機が回転している状態で前記ｄ軸電流指令および前記ｑ軸電流指令を値０として前記オフセット学習を行なう
ことを要旨とする。
【０００８】
この本発明の発電装置では、三相発電機が回転している状態で、ｄ軸電流指令およびｑ軸電流指令を値０とし、値０としたｄ軸電流指令およびｑ軸電流指令に基づくｄ軸電圧指令が値０となるよう回転位置のオフセット量を学習するオフセット学習を行なう。オフセット学習は、車両が停車している状態でバッテリの充放電が行われた場合に、バッテリの充放電が終了した後、三相発電機が回転している状態で行なう。これにより、三相発電機の発電が必要とされない期間に、三相発電機のｄ軸電流指令およびｑ軸電流指令（トルク指令）を値０としてオフセット学習を行なうことができる。この結果、運転者に違和感を与えないようにしながら、回転位置センサのオフセット量の学習機会を確保することができる。
【０００９】
こうした本発明の発電装置において、前記オフセット学習手段は、車両が停車している状態で前記エンジンの動力により前記三相発電機を回転させることにより該三相発電機で発電した電力を前記バッテリに充電している場合、該バッテリの充電が完了した後、前記三相発電機の回転を維持した状態で前記オフセット学習を行なうものとすることもできる。こうすれば、エンジンの動力により三相発電機の回転が維持されているときにオフセット学習を行なうことができる。したがって、オフセット学習を行なうためにエンジンを始動させる必要がない。
【００１０】
また、本発明の発電装置において、前記バッテリに充電されている電力及び前記三相発電機により発電した電力を外部に給電可能な外部給電装置を備え、前記オフセット学習手段は、前記外部給電装置による外部給電が完了した後に、前記三相発電機の回転を維持した状態で前記オフセット学習を行なうものとすることもできる。外部給電装置による外部給電は、通常、車両が停車している状態で行なわれるため、この間、車両を走行させるための駆動力が要求されないと考えられる。したがって、外部給電装置による外部給電が完了した後に、オフセット学習を行なうことで、オフセット学習によってドライバビリティが悪化するのを抑制することができる。
【００１１】
また、本発明の発電装置において、前記オフセット学習手段は、車両のシステム起動からシステム停止までの間に、前記オフセット学習の完了履歴がないときに、前記オフセット学習を行なうものとすることもできる。こうすれば、オフセット学習を適切な頻度で行なうことができる。
【００１２】
さらに、本発明の発電装置において、前記バッテリは、車両が停車しているときに外部電源からの電力により充電が可能であり、前記オフセット学習手段は、前記外部電源からの電力により前記バッテリが充電された場合、該バッテリの充電が終了した後、前記エンジンからの動力により前記三相発電機を回転させた上で、前記オフセット学習を行なうものとすることもできる。外部電源から電力によりバッテリが充電されている場合は、車両を走行させるための駆動力が要求されないと考えられる。したがって、外部電源からの電力によりバッテリの充電が完了した後にオフセット学習を行なうことで、オフセット学習によってドライバビリティが悪化するのを抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例としてのハイブリッド自動車２０の構成の概略を示す構成図である。
【図２】モータＭＧ１，ＭＧ２を含む電気駆動系の構成の概略を示す構成図である。
【図３】トルク指令Ｔｍ１＊に基づいてモータＭＧ１を駆動制御するための制御ブロック図である。
【図４】回転位置センサ４３にオフセット誤差が含まれている場合と含まれていない場合の各ｄ軸電圧Ｖｄおよびｑ軸電圧Ｖｑを示す説明図である。
【図５】モータＥＣＵ４０により実行されるＭＧ１オフセット学習制御ルーチンの一例を示すフローチャートである。
【図６】ＨＶＥＣＵ７０により実行される停車時制御ルーチンの一例を示すフローチャートである。
【図７】電源ＥＣＵ９０により実行されるシステム起動処理ルーチンの一例を示すフローチャートである。
【図８】ＨＶＥＣＵ７０により実行される外部給電時制御ルーチンの一例を示すフローチャートである。
【図９】ＨＶＥＣＵ７０により実行される外部充電時制御ルーチンの一例を示すフローチャートである。
【図１０】変形例のハイブリッド自動車１２０の構成の概略を示す構成図である。
【図１１】変形例のハイブリッド自動車２２０の構成の概略を示す構成図である。
【図１２】変形例のハイブリッド自動車３２０の構成の概略を示す構成図である。
【発明を実施するための形態】
【００１４】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００１５】
図１は、本発明の一実施例としてのハイブリッド自動車２０の構成の概略を示す構成図であり、図２は、モータＭＧ１，ＭＧ２を含む電気駆動系の構成の概略を示す構成図である。実施例のハイブリッド自動車２０は、図示するように、エンジン２２と、プラネタリギヤ３０と、モータＭＧ１と、モータＭＧ２と、インバータ４１，４２と、バッテリ５０と、昇圧回路５５と、システムメインリレー５６と、外部給電装置９５と、充電器９８と、ハイブリッド用電子制御ユニット（以下、ＨＶＥＣＵという）７０と、電源用電子制御ユニット（以下、電源ＥＣＵという）９０とを備える。
【００１６】
エンジン２２は、ガソリンや軽油などを燃料として動力を出力する内燃機関として構成されており、エンジン用電子制御ユニット（以下、「エンジンＥＣＵ」という）２４により運転制御される。
【００１７】
エンジンＥＣＵ２４は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭやデータを一時的に記憶するＲＡＭ，入出力ポート，通信ポートを備える。
【００１８】
エンジンＥＣＵ２４には、エンジン２２を運転制御するのに必要な各種センサからの信号が入力ポートを介して入力されている。各種センサからの信号としては以下のものを挙げることができる。
・クランクシャフト２６の回転位置を検出するクランクポジションセンサからのクランク角θｃｒ
【００１９】
エンジンＥＣＵ２４からは、エンジン２２を運転制御するための種々の制御信号が出力ポートを介して出力されている。種々の制御信号としては以下のものを挙げることができる。
・空気が吸入される吸気管に燃料を噴射する燃料噴射弁への駆動信号
・スロットルバルブのポジションを調節するスロットルモータへの駆動信号
・イグナイタと一体化されたイグニッションコイルなどへの駆動信号
【００２０】
エンジンＥＣＵ２４は、ＨＶＥＣＵ７０と通信ポートを介して接続されている。このエンジンＥＣＵ２４は、ＨＶＥＣＵ７０からの制御信号によりエンジン２２を運転制御する。また、エンジンＥＣＵ２４は、必要に応じてエンジン２２の運転状態に関するデータをＨＶＥＣＵ７０に出力する。なお、エンジンＥＣＵ２４は、クランク角θｃｒに基づいて、クランクシャフト２６の回転数、即ち、エンジン２２の回転数Ｎｅを演算している。
【００２１】
プラネタリギヤ３０は、サンギヤ３１とリングギヤ３２とピニオンギヤ３３とキャリア３４とを有するシングルピニオン式の遊星歯車機構として構成されている。プラネタリギヤ３０のサンギヤ３１には、モータＭＧ１の回転子が接続されている。プラネタリギヤ３０のリングギヤ３２には、駆動輪３９ａ，３９ｂにデファレンシャルギヤ３８およびギヤ機構３７を介して連結された駆動軸３６が接続されている。プラネタリギヤ３０のキャリア３４には、ダンパ２８を介してエンジン２２のクランクシャフト２６が接続されている。
【００２２】
モータＭＧ１は、永久磁石が埋め込まれた回転子と、三相コイルが巻回された固定子と、を有する同期発電電動機として構成されている。このモータＭＧ１は、上述したように、回転子がプラネタリギヤ３０のサンギヤ３１に接続されている。モータＭＧ２は、モータＭＧ１と同様の同期発電電動機として構成されている。このモータＭＧ２は、回転子が減速ギヤ３５を介して駆動軸３６に接続されている。
【００２３】
インバータ４１は、高電圧系電力ライン５４に接続されている。このインバータ４１は、６つのトランジスタＴ１１〜Ｔ１６と、６つのダイオードＤ１１〜Ｄ１６と、を備える。トランジスタＴ１１〜Ｔ１６は、それぞれ、高電圧系電力ライン５４の正極母線と負極母線とに対して、ソース側とシンク側になるように、２個ずつペアで配置されている。６つのダイオードＤ１１〜Ｄ１６は、それぞれ、トランジスタＴ１１〜Ｔ１６に逆方向に並列接続されている。トランジスタＴ１１〜Ｔ１６の対となるトランジスタ同士の接続点の各々には、モータＭＧ１の三相コイル（Ｕ相，Ｖ相，Ｗ相）の各々が接続されている。したがって、インバータ４１に電圧が作用しているときに、モータ用電子制御ユニット（以下、モータＥＣＵという）４０によって、対となるトランジスタＴ１１〜Ｔ１６のオン時間の割合が調節されることにより、三相コイルに回転磁界が形成され、モータＭＧ１が回転駆動される。なお、高電圧系電力ライン５４の正極母線と負極母線とには、平滑用のコンデンサ５７が接続されている。
【００２４】
インバータ４２は、インバータ４１と同様に、６つのトランジスタＴ２１〜Ｔ２６と、６つのダイオードＤ２１〜Ｄ２６と、を備える。そして、インバータ４２に電圧が作用しているときに、モータＥＣＵ４０によって、対となるトランジスタＴ２１〜Ｔ２６のオン時間の割合が調節されることにより、三相コイルに回転磁界が形成され、モータＭＧ２が回転駆動される。
【００２５】
昇圧回路５５は、インバータ４１，４２が接続された高電圧系電力ライン５４と、システムメインリレー５６を介してバッテリ５０が接続された低電圧系電力ライン５９と、に接続されている。この昇圧回路５５は、２つのトランジスタＴ３１，Ｔ３２と、２つのダイオードＤ３１，Ｄ３２と、リアクトルＬ１と、を備える。トランジスタＴ３１は、高電圧系電力ライン５４の正極母線に接続されている。トランジスタＴ３２は、トランジスタＴ３１と、高電圧系電力ライン５４および低電圧系電力ライン５９の負極母線と、に接続されている。２つのダイオードＤ３１，Ｄ３２は、それぞれ、トランジスタＴ３１，Ｔ３２に逆方向に並列接続されている。リアクトルＬ１は、トランジスタＴ３１，Ｔ３２同士の接続点Ｃｎ１と、低電圧系電力ライン５９の正極母線と、に接続されている。昇圧回路５５は、モータＥＣＵ４０によって、トランジスタＴ３１，Ｔ３２のオン時間の割合が調節されることにより、低電圧系電力ライン５９の電力を昇圧して高電圧系電力ライン５４に供給したり、高電圧系電力ライン５４の電力を降圧して低電圧系電力ライン５９に供給したりする。なお、低電圧系電力ライン５９の正極母線と負極母線とには、平滑用のコンデンサ５８が接続されている。
【００２６】
モータＥＣＵ４０は、ＣＰＵ４０ａを中心とするマイクロプロセッサとして構成されており、ＣＰＵ４０ａの他に、処理プログラムを記憶するＲＯＭ４０ｂやデータを一時的に記憶するＲＡＭ４０ｃ，入出力ポート，通信ポートを備える。
【００２７】
モータＥＣＵ４０には、モータＭＧ１，ＭＧ２（インバータ４１，４２）や昇圧回路５５を駆動制御するのに必要な各種センサからの信号が入力ポートを介して入力されている。各種センサからの信号としては、以下のものを挙げることができる。
・モータＭＧ１，ＭＧ２の回転子の回転位置を検出する回転位置検出センサ４３，４４からの回転角θｍ１，θｍ２
・モータＭＧ１，ＭＧ２の各相（Ｖ相，Ｗ相）に流れる電流を検出する電流センサ４５Ｖ，４５Ｗ，４６Ｖ，４６Ｗからの相電流
・コンデンサ５７の端子間に取り付けられた電圧センサ５７ａからの高電圧系電力ライン５４の電圧ＶＨ
・コンデンサ５８の端子間に取り付けられた電圧センサ５８ａからの低電圧系電力ライン５９の電圧ＶＬ
【００２８】
モータＥＣＵ４０からは、モータＭＧ１，ＭＧ２（インバータ４１，４２）や昇圧回路５５を駆動制御するための種々の制御信号が出力ポートを介して出力されている。種々の制御信号としては、以下のものを挙げることができる。
・インバータ４１，４２のトランジスタＴ１１〜Ｔ１６，Ｔ２１〜Ｔ２６へのスイッチング制御信号
・昇圧回路５５のトランジスタＴ３１，Ｔ３２へのスイッチング制御信号
【００２９】
モータＥＣＵ４０は、ＨＶＥＣＵ７０と通信ポートを介して接続されている。このモータＥＣＵ４０は、ＨＶＥＣＵ７０からの制御信号によってモータＭＧ１，ＭＧ２（インバータ４１，４２）や昇圧回路５５を駆動制御する。また、モータＥＣＵ４０は、必要に応じてモータＭＧ１，ＭＧ２や昇圧回路５５の駆動状態に関するデータをＨＶＥＣＵ７０に出力する。なお、モータＥＣＵ４０は、モータＭＧ１，ＭＧ２の回転子の回転角θｍ１，θｍ２に基づいて、モータＭＧ１，ＭＧ２の回転数Ｎｍ１，Ｎｍ２を演算している。
【００３０】
バッテリ５０は、例えばリチウムイオン二次電池として構成されており、上述したように、システムメインリレー５６を介して低電圧系電力ライン５９に接続されている。バッテリ５０は、バッテリ用電子制御ユニット（以下、バッテリＥＣＵという）５２によって管理される。
【００３１】
バッテリＥＣＵ５２は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭやデータを一時的に記憶するＲＡＭ，入出力ポート，通信ポートを備える。
【００３２】
バッテリＥＣＵ５２には、バッテリ５０を管理するのに必要な各種センサからの信号が入力ポートを介して入力されている。各種センサからの信号としては、以下のものを挙げることができる。
・バッテリ５０の端子間に設置された電圧センサ５１ａからの電池電圧Ｖｂ
・バッテリ５０の出力端子に取り付けられた電流センサ５１ｂからの電池電流Ｉｂ
・バッテリ５０に取り付けられた温度センサ５１ｃからの電池温度Ｔｂ
【００３３】
バッテリＥＣＵ５２は、ＨＶＥＣＵ７０と通信ポートを介して接続されている。このバッテリＥＣＵ５２は、必要に応じてバッテリ５０の状態に関するデータをＨＶＥＣＵ７０に出力する。バッテリＥＣＵ５２は、バッテリ５０を管理するために、電池電流Ｉｂの積算値に基づいて、蓄電割合ＳＯＣを演算している。蓄電割合ＳＯＣは、そのときのバッテリ５０から放電可能な電力の容量の、全容量に対する割合である。また、バッテリＥＣＵ５２は、蓄電割合ＳＯＣや電池温度Ｔｂに基づいてバッテリ５０から放電可能な電力の許容最大値としての出力制限Ｗｏｕｔや、バッテリ５０を充電可能な許容最大値（絶対値）としての入力制限Ｗｉｎを設定している。バッテリ５０の出力制限Ｗｏｕｔや入力制限Ｗｉｎは、電池温度Ｔｂが低いとき（例えば０℃以下や−５℃以下，−１０℃以下など）には、その絶対値が通常温度の場合に比して大幅に小さくなるように設定される。
【００３４】
外部給電装置９５は、低電圧系電力ライン５９と、車両の構成要素でない外部機器の接続用のコンセント９７と、に接続されている。この外部給電装置９５は、図示しないが、低電圧系電力ライン５９の直流電力を所定電圧の交流電力（例えば、ＡＣ１００Ｖの電力）に変換して、コンセント９７に接続された外部機器に供給するためのインバータを有する。以下、低電圧系電力ライン５９の電力を外部機器に供給することを「外部給電」という。なお、外部給電装置９５は、ＨＶＥＣＵ７０により、インバータの図示しない複数のスイッチング素子がスイッチング制御されることによって駆動される。
【００３５】
充電器９８は、車両側コネクタ９９を外部電源１００の外部電源側コネクタ１０２に接続することにより、外部電源１００からの電力を用いてバッテリ５０を充電する。充電器９８は、図示しないが低電圧系電力ライン５９と車両側コネクタ９９との接続や接続の解除を行なう充電用リレーや、外部電源１００からの交流電力を直流電力に変換するＡＣ／ＤＣコンバータ，ＡＣ／ＤＣコンバータにより変換した直流電力の電圧を変換して低電圧系電力ライン５９側に供給するＤＣ／ＤＣコンバータなどを備える。
【００３６】
電源ＥＣＵ９０は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭやデータを一時的に記憶するＲＡＭ，入出力ポート，通信ポートを備える。
【００３７】
電源ＥＣＵ９０には、運転席前面のパネルに取り付けられたパワースイッチ９２からのプッシュ信号やブレーキスイッチ９４からのスイッチ信号などが入力ポートを介して入力されている。電源ＥＣＵ９０からは、パワースイッチ９２に内蔵されたインジケータ９３への点灯信号などが出力ポートを介して出力されている。
【００３８】
電源ＥＣＵ９０は、システムが停止状態にあるときに、ブレーキオンの状態でパワースイッチ９２からプッシュ信号を入力したときには、システムメインリレー５６をオンとすると共に初期化処理を実行することにより、システムを起動状態、即ち、レディオン（ＲＥＡＤＹＯＮ）とする。また、電源ＥＣＵ９０は、システムが起動状態にあるときに、車両が停車している状態でパワースイッチ９２からプッシュ信号を入力したときには、システムメインリレー５６をオフとすることにより、システムを停止状態、即ち、レディオフ（ＲＥＡＤＹＯＦＦ）とする。また、電源ＥＣＵ９０は、ＨＶＥＣＵ７０と通信ポートを介して通信しており、必要に応じてデータや制御信号のやり取りを行なう。
【００３９】
ＨＶＥＣＵ７０は、図示しないが、ＣＰＵ７２を中心とするマイクロプロセッサとして構成されており、ＣＰＵ７２の他に、処理プログラムを記憶するＲＯＭ７４やデータを一時的に記憶するＲＡＭ７６，入出力ポート，通信ポートを備える。
【００４０】
ＨＶＥＣＵ７０には、各種センサからの信号が入力ポートを介して入力されている。各種センサからの信号としては、以下のものを挙げることができる。
・シフトレバー８１の操作位置を検出するシフトポジションセンサ８２からのシフトポジションＳＰ
・アクセルペダル８３の踏み込み量を検出するアクセルペダルポジションセンサ８４からのアクセル開度Ａｃｃ
・ブレーキペダル８５の踏み込み量を検出するブレーキペダルポジションセンサ８６からのブレーキペダルポジションＢＰ
・車速センサ８８からの車速Ｖ
・外部給電装置９５による外部給電の給電電力を検出する電力センサ９６からの給電電力Ｐｈ
【００４１】
ＨＶＥＣＵ７０からは、種々の制御信号が出力ポートを介して出力されている。種々の制御信号としては、以下のものを挙げることができる。
・システムメインリレー５６への駆動信号
・外部給電装置９５のインバータへの制御信号
・充電器９８の充電用リレーやＡＣ／ＤＣコンバータ，ＤＣ／ＤＣコンバータへの制御信号
【００４２】
ＨＶＥＣＵ７０は、上述したように、エンジンＥＣＵ２４やモータＥＣＵ４０，バッテリＥＣＵ５２，電源ＥＣＵ９０と通信ポートを介して接続されている。このＨＶＥＣＵ７０は、エンジンＥＣＵ２４やモータＥＣＵ４０，バッテリＥＣＵ５２，電源ＥＣＵ９０と各種制御信号やデータのやりとりを行なっている。
【００４３】
こうして構成された実施例のハイブリッド自動車２０は、運転者によるアクセルペダル８３の踏み込み量に対応するアクセル開度Ａｃｃと車速Ｖとに基づいて駆動軸３６に出力すべき要求トルクＴｒ＊を計算し、この要求トルクＴｒ＊に対応する要求動力が駆動軸３６に出力されるように、エンジン２２とモータＭＧ１とモータＭＧ２とが運転制御される。エンジン２２とモータＭＧ１とモータＭＧ２の運転制御としては以下の（１）〜（３）のものがある。（１）のトルク変換運転モードと（２）の充放電運転モードは、いずれもエンジン２２の運転を伴って走行するモードであり、実質的な制御における差異はないため、以下、両者を合わせてエンジン運転モード（ハイブリッドモード）という。
（１）トルク変換運転モード：要求動力に見合う動力がエンジン２２から出力されるようにエンジン２２を運転制御すると共にエンジン２２から出力される動力のすべてがプラネタリギヤ３０とモータＭＧ１とモータＭＧ２とによってトルク変換されて駆動軸３６に出力されるようモータＭＧ１およびモータＭＧ２を駆動制御する運転モード
（２）充放電運転モード：要求動力とバッテリ５０の充放電に必要な電力との和に見合う動力がエンジン２２から出力されるようにエンジン２２を運転制御すると共にバッテリ５０の充放電を伴ってエンジン２２から出力される動力の全部またはその一部がプラネタリギヤ３０とモータＭＧ１とモータＭＧ２とによりトルク変換されて要求動力が駆動軸３６に出力されるようモータＭＧ１およびモータＭＧ２を駆動制御する運転モード
（３）モータ運転モード：エンジン２２の運転を停止してモータＭＧ２からのトルクにより要求動力に見合う動力を駆動軸３６に出力するよう駆動制御する運転モード
【００４４】
また、実施例のハイブリッド自動車２０では、停車時には、基本的には、エンジン２２の運転を停止する。そして、図示しない補機（空気調和装置など）による電力消費や外部給電装置９５による外部給電などによって、バッテリ５０の蓄電割合ＳＯＣが予め定められた閾値Ｓ１未満となると、モータＭＧ１によりエンジン２２をクランキングして始動する。そして、エンジン２２からの動力を用いたモータＭＧ１の発電によって、バッテリ５０が充電されるようエンジン２２とモータＭＧ１とを制御する。
【００４５】
モータＭＧ１の駆動制御は、モータＥＣＵ４０に含まれる図３の制御ブロックによって行なわれる。図３に示すように、モータＭＧ１の駆動制御は、まず、トルク指令Ｔｍ１＊に基づいて電流指令生成器６１によりｄｑ軸座標系におけるｄ軸，ｑ軸の電流指令Ｉｄ＊，Ｉｑ＊を生成する。電流指令生成器６１は、トルク指令に対応する電流指令の関係を予め定めた電流指令テーブルを用いてｄ軸，ｑ軸の電流指令Ｉｄ＊，Ｉｑ＊を生成する。次に、モータＭＧ１のＵ相，Ｖ相，Ｗ相にそれぞれ流れる電流の総和が値０であるとして、モータＭＧ１の制御用回転角θを用いて座標変換器６６により電流センサ４５Ｖ，４５ＷからのＶ相電流Ｉｖ，Ｗ相電流Ｉｗをｄ軸電流Ｉｄ，ｑ軸電流Ｉｑに変換する（三相二相変換）。モータＭＧ１の制御用回転角θは、回転位置センサ４３により検出される回転角θｍ１と後述するオフセット学習制御部６７により出力されるオフセット量Δθとの和として加算器６８により演算されたものが用いられる。続いて、設定したｄ軸電流指令Ｉｄ＊，ｑ軸電流指令Ｉｑ＊と電流フィードバックのためのｄ軸電流Ｉｄ，ｑ軸電流Ｉｑとの差分ΔＩｄ，ΔＩｑを減算器６２ｄ，６２ｑにより演算する。そして、演算した差分ΔＩｄ，ΔＩｑに基づいて電圧指令変換器６３ｄ，６３ｑによりｄ軸電圧指令Ｖｄ＊，ｑ軸電圧指令Ｖｑ＊を生成する。ここで、ｄ軸電圧指令Ｖｄ＊，ｑ軸電圧指令Ｖｑ＊は、差分ΔＩｄ，ΔＩｑに基づくフィードバック項と、各軸相互に干渉する項をキャンセルするためのフィードフォワード項（後述する式（１）、（２）の右辺第２項）との和として演算される。ｄ軸電圧指令Ｖｄ＊，ｑ軸電圧指令Ｖｑ＊を生成すると、上述したモータＭＧ１の制御用回転角θを用いて座標変換器６４によりｄ軸電圧指令Ｖｄ＊，ｑ軸電圧指令Ｖｑ＊を相電圧指令Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に変換する（二相三相変換）。そして、相電圧指令Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に基づいてＰＷＭ変換器６５によりパルス幅変調信号を生成し、生成したパルス幅変調制御信号に基づいてインバータ４１のトランジスタをスイッチングすることによって直流電力を三相交流電力としてモータＭＧ１に印加する。なお、モータＭＧ２についても図３と同様の制御ブロックを用いて駆動制御することができる。
【００４６】
いま、座標変換（三相二相変換，二相三相変換）で用いるモータＭＧ１の制御用回転角θとして、回転位置センサ４３により検出される回転角θｍ１をそのまま用いる場合を考える。永久磁石によって発生する磁束の方向をｄ軸とし、ｄ軸と直交する軸をｑ軸とすると、モータＭＧ１の電圧方程式を、次式（１），（２）により示すことができる。
【００４７】
Vd=R・Id-ω・φq            …（１）
Vq=R・Iq+ω・φd            …（２）
ただし、
Vd,Vq：ｄ軸電圧，ｑ軸電圧
R：一相あたりの抵抗
Id,Iq：ｄ軸電流，ｑ軸電流
ω：回転子の角速度
φd,φq：ｄ軸磁束，ｑ軸磁束
【００４８】
回転位置センサ４３により検出されるモータＭＧ１の回転角θｍ１と実際の回転角との間に位相差Δθ（オフセット誤差）がない場合、永久磁石が発生させる磁束φの方向とｄ軸とが一致する（図４（ａ）参照）。このため、ｄ軸磁束φｄおよびｑ軸磁束φｑは、次式（３），（４）で示すことができる。
【００４９】
φd=Ld・Id+φ    …（３）
φq=Lq・Iq         …（４）
ただし、
Ld,Lq：ｄ軸インダクタンス，ｑ軸インダクタンス
φ：永久磁石の磁束
【００５０】
このとき、ｄ軸電流Ｉｄおよびｑ軸電流Ｉｑを値０とすると、式（３）および式（４）から、ｄ軸磁束φｄは値φとなり、ｑ軸磁束φｑは値０となる。そして、これらを式（１），（２）にそれぞれ代入すると、ｄ軸電圧Ｖｄ，ｑ軸電圧Ｖｑはそれぞれ次式（５），（６）で示され、ｄ軸電圧Ｖｄが値０となる。
【００５１】
Vd=0           …（５）
Vq=ω・φ        …（６）
【００５２】
一方、回転位置センサ４３により検出されるモータＭＧ１の回転角θｍ１と実際の回転角との間に位相差Δθ（オフセット誤差）がある場合、永久磁石が発生させる磁束φの方向とｄ軸との間で位相差Δθのズレが生じる（図４（ｂ）参照）。このため、ｄ軸電流Ｉｄおよびｑ軸電流を値０とすると、ｄ軸電圧Ｖｄ，ｑ軸電圧Ｖｑはそれぞれ次式（７），（８）で示され、モータＭＧ１が回転していると（角速度ωが値０でなければ）、ｄ軸電圧Ｖｄが値０とはならない。
【００５３】
Vd=ω・φ・cosα        …（７）
Vq=ω・φ・cosα        …（８）
【００５４】
このように、回転位置センサ４３により検出される回転角θｍ１にオフセット誤差がない場合には、ｄ軸電流Ｉｄおよびｑ軸電流Ｉｑを値０としたときに、ｄ軸電圧Ｖｄが値０となる。一方、回転位置センサ４３により検出される回転角θｍ１にオフセット誤差がある場合には、ｄ軸電流Ｉｄおよびｑ軸電流Ｉｑを値０としても、モータＭＧ２が回転していると、ｄ軸電圧Ｖｄが値０とならない。上述したように、回転位置センサ４３により検出される回転角θｍ１は、座標変換器６４，６６による座標変換（二相三相変換，三相二相変換）に用いられる。このため、回転角θｍ１にオフセット誤差がある場合に当該オフセット誤差を打ち消すためのオフセット補正を行なわないと、座標変換を正しく行なうことができず、モータＭＧ１からトルク指令に見合うトルクを出力することができなくなる。本実施例では、モータＭＧ１の回転中にそのトルク指令を値０（ｄ軸電流Ｉｄおよびｑ軸電流を値０と）とし、この状態でｄ軸電圧Ｖｄが値０となるように回転位置センサ４３により検出される回転角θｍ１をオフセットし、ｄ軸電圧Ｖｄが値０となったときの回転角θｍのオフセット量Δθを学習値（オフセット誤差）とするオフセット学習を行なう。オフセット学習が行なわれると、回転位置センサ４３により検出される回転角θｍ１は、加算器６８によって、オフセット量Δθだけオフセットされて、制御用回転角θとして座標変換器６４，６６にそれぞれ出力される。
【００５５】
次に、こうして構成された実施例のハイブリッド自動車２０の動作について説明する。本実施例では、オフセット学習はモータＥＣＵ４０により実行され、オフセット学習の実行条件が成立したか否かの判定はＨＶＥＣＵ７０によって実行される。図５は、モータＥＣＵ４０のオフセット学習制御部６７により実行されるＭＧ１オフセット学習制御ルーチンの一例を示すフローチャートである。このルーチンは、所定時間毎（例えば、数ｍｓｅｃ毎）に繰り返し実行される。
【００５６】
ＭＧ１オフセット学習制御ルーチンが実行されると、オフセット学習制御部６７は、まず、ＲＡＭ４０ｃにオフセット学習履歴が記憶されているか否かを判定する（ステップＳ１００）。オフセット学習履歴が記憶されていると判定すると、ＲＡＭ４０ｃに記憶されている学習オフセット量Δθｏｆｆｓをオフセット量Δθに設定する（ステップＳ１１０）。一方、オフセット学習履歴が記憶されていないと判定すると、初期オフセット量Δθｉｎｉｔをオフセット量Δθに設定する（ステップＳ１２０）。ここで、初期オフセット量Δθｉｎｉｔは、工場出荷時や部品交換時に行なわれるオフセット学習による学習値である。なお、部品交換時には、車両を整備モードとして、作業者が所定の手順に従って作業を進めることにより、オフセット学習が行なわれるようになっている。これにより、ＲＡＭ４０ｃに記憶されているオフセット学習履歴がリセットされると共に、新たな学習値が初期オフセット量ΔθｉｎｉｔとしてＲＡＭ４０ｃに記憶される。ただし、作業者のミス等によってオフセット学習が行なわれないと、部品交換後に、初期オフセット量Δθｉｎｉｔに正しい値が記憶されていない場合が生じる。そこで、本実施例では、システム起動中に所定の頻度でオフセット学習を行なうことにより、ＲＡＭ４０ｃに適切な学習オフセット量Δθｏｆｆｓを記憶するものとしている。
【００５７】
次に、ＭＧ１オフセット学習指令を受信したか否かを判定する（ステップＳ１３０）。ここで、ＭＧ１オフセット学習指令は、後述するオフセット学習の実行条件が成立したときに、ＨＶＥＣＵ７０からモータＥＣＵ４０に対して送信される。ＭＧ１オフセット学習指令を受信していないと判定すると、ステップＳ１１０またはステップＳ１２０で設定したオフセット量Δθを加算器６８に出力して（ステップＳ１４０）、ＭＧ１オフセット学習制御ルーチンを終了する。
【００５８】
一方、ステップＳ１３０でＭＧ１オフセット学習指令を受信したと判定すると、ｄ軸電流指令Ｉｄ＊およびｑ軸電流指令Ｉｑ＊にそれぞれ値０を設定する（ステップＳ１５０）。そして、設定したｄ軸電流指令Ｉｄ＊およびｑ軸電流指令Ｉｑ＊を電流指令生成器６１に出力すると共に、ステップＳ１１０またはステップＳ１２０で設定したオフセット量Δθを加算器６８に出力する（ステップＳ１６０）。電流指令生成器６１は、値０のｄ軸電流指令Ｉｄ＊およびｑ軸電流指令Ｉｑ＊を入力すると、値０のｄ軸電流指令Ｉｄ＊，値０のｑ軸電流指令Ｉｑ＊を減算器６２ｄ，６２ｑに出力する。また、加算器６８は、オフセット量Δθを入力すると、回転位置センサ４３により検出された回転角θｍ１を入力し、回転角θｍ１にオフセット量Δθを加算したものを制御用回転角θとして座標変換器６４，６６に出力する。減算器６２ｄ，６２ｑは、電流指令生成器６１からｄ軸電流指令Ｉｄ＊，ｑ軸電流指令Ｉｑ＊を入力すると、座標変換器６６からｄ軸電流，ｑ軸電流を入力し、ｄ軸電流指令Ｉｄ＊，ｑ軸電流指令Ｉｑ＊とｄ軸電流，ｑ軸電流との差分ΔＩｄ，ΔＩｑを演算して電圧指令変換器６３ｄ，６３ｑに出力する。電圧指令変換器６３ｄ，６３ｑは、差分ΔＩｄ，ΔＩｑを入力すると、差分ΔＩｄ，ΔＩｑに基づいてｄ軸電圧指令Ｖｄ＊，ｑ軸電圧指令Ｖｑ＊を生成する。上述したように、ｄ軸電流指令Ｉｄ＊およびｑ軸電流指令Ｉｑ＊を値０とした場合、制御用回転角θと実際の回転角との間にズレがなければ、ｄ軸電圧指令Ｖｄ＊は値０となり、制御用回転角θと実際の回転角との間にズレがあれば、モータＭＧ１が回転していると、ｄ軸電圧指令Ｖｄ＊は値０とならない。
【００５９】
次に、電圧指令変換器６３ｄからｄ軸電圧指令Ｖｄ＊を入力し（ステップＳ１７０）、入力したｄ軸電圧指令Ｖｄ＊が値０を含む所定範囲内にあるか否かを判定する（ステップＳ１８０）。この判定は、ｄ軸電圧指令Ｖｄ＊が値０近傍に設定された範囲内にあるか否かを判定するものである。ｄ軸電圧指令Ｖｄ＊が値０を含む所定範囲内にあると判定すると、現在のオフセット量Δθは適正値であるため、現在のオフセット量Δθにより学習オフセット量Δθｏｆｆｓを更新し（ステップＳ２００）、学習済みフラグＦに値１を設定して（ステップＳ２１０）、ＭＧ１オフセット学習制御ルーチンを終了する。現在のオフセット量Δθが初期オフセット量Δθｉｎｉｔである場合には、オフセット学習が行なわれていないため、学習オフセット量Δθｏｆｆｓを更新しないものとしてもよい。
【００６０】
一方、ｄ軸電圧指令Ｖｄ＊が値０を含む所定範囲内にないと判定すると、ｄ軸電圧指令Ｖｄ＊を用いて次式（９）によりオフセット量Δθを計算して（ステップＳ１９０）、ステップＳ１５０に戻る。ここで、式（９）は、ｄ軸電圧指令Ｖｄ＊を値０とするためのフィードバック制御における関係式である。なお、式（９）中、右辺第１項の「前回Δθ」は前回のオフセット量Δθであり、右辺第２項の「ｓ１」は比例項のゲインであり、右辺第３項の「ｓ２」は積分項のゲインである。なお、本実施例では、式（９）に示すように、ｄ軸電圧指令Ｖｄ＊を値０とするオフセット量Δθの計算に比例積分制御を用いるものとしたが、比例制御を用いるものとしてもよいし、比例積分微分制御を用いるものとしてもよい。
【００６１】
Δθ=前回Δθ+s1(0-Vd*)+s2∫(0-Vd*)dt    …（９）
【００６２】
こうしてステップＳ１５０〜Ｓ１９０の処理を繰り返し、ステップＳ１８０でｄ軸電圧指令Ｖｄ＊が値０を含む所定範囲内になると、そのときのオフセット量Δθにより学習オフセット量Δθｏｆｆｓを更新し（ステップＳ２００）、学習済みフラグＦに値１を設定して（ステップＳ２１０）、ＭＧ１オフセット学習制御ルーチンを終了する。
【００６３】
次に、オフセット学習の実行条件が成立したか否かを判定するＨＶＥＣＵ７０の動作について説明する。図６は、ＨＶＥＣＵ７０のＣＰＵ７２により実行される停車時制御ルーチンの一例を示すフローチャートである。このルーチンは、車両が停車しているとき（車速Ｖが値０であるとき）に、所定時間毎（例えば、数ｍｓｅｃ毎）に繰り返し実行される。
【００６４】
停車時制御ルーチンが実行されると、ＨＶＥＣＵ７０のＣＰＵ７２は、まず、モータＭＧ１，ＭＧ２の回転数Ｎｍ１，Ｎｍ２やバッテリ５０の蓄電割合ＳＯＣ，学習済みフラグＦなどのデータを入力する処理を行なう（ステップＳ３００）。ここで、モータＭＧ１，ＭＧ２の回転数Ｎｍ１，Ｎｍ２は、回転位置検出センサ４３，４４からのモータＭＧ１，ＭＧ２の回転子の回転角θｍ１，θｍ２に基づいて演算された値をモータＥＣＵ４０から通信により入力するものとした。バッテリ５０の蓄電割合ＳＯＣは、電池電流Ｉｂの積算値に基づいて演算された値をバッテリＥＣＵ５２により通信により入力するものとした。学習済みフラグＦは、モータＥＣＵ４０や電源ＥＣＵ９０により設定された値を通信により入力するものとした。
【００６５】
続いて、バッテリ５０が充電中であるか否か（ステップＳ３１０）、蓄電割合ＳＯＣが閾値Ｓ１未満であるか否か（ステップＳ３２０）、をそれぞれ判定する。バッテリ５０が充電中でなく、蓄電割合ＳＯＣが閾値Ｓ１未満でないと判定すると、エンジン２２にアイドル運転が要求されているか否かを判定する（ステップＳ３３０）。アイドル運転が要求されていないと判定すると、エンジン２２の運転を停止するよう目標回転数Ｎｅ＊および目標トルクＴｅ＊に値０を設定する（ステップＳ３４０）。一方、アイドル運転が要求されていると判定すると、エンジン２２がアイドル回転数Ｎｉｄｌｅで自立運転（無負荷運転）するよう目標回転数Ｎｅ＊にアイドル回転数Ｎｉｄｌｅを設定すると共に目標トルクＴｅ＊に値０を設定する（ステップＳ３５０）。そして、モータＭＧ１，ＭＧ２のトルク指令Ｔｍ１＊，Ｔｍ２＊に値０を設定し（ステップＳ３６０）、目標回転数Ｎｅ＊および目標トルクＴｅ＊をエンジンＥＣＵ２４に送信し、トルク指令Ｔｍ１＊，Ｔｍ２＊をモータＥＣＵ４０に送信して（ステップＳ３７０）、停車時制御ルーチンを終了する。目標回転数Ｎｅ＊と目標トルクＴｅ＊とを受信したエンジンＥＣＵ２４は、目標回転数Ｎｅ＊と目標トルクＴｅ＊とによってエンジン２２が運転されるようエンジン２２の吸入空気量制御や燃料噴射制御，点火制御などを行なう。また、トルク指令Ｔｍ１＊，Ｔｍ２＊を受信したモータＥＣＵ４０は、モータＭＧ１，ＭＧ２がトルク指令Ｔｍ１＊，Ｔｍ２＊で駆動されるようインバータ４１，４２のスイッチング素子のスイッチング制御を行なう。
【００６６】
ステップＳ３１０でバッテリ５０が充電中でないと判定し、且つ、ステップＳ３２０で蓄電割合ＳＯＣが閾値Ｓ１未満であると判定すると、エンジン２２が運転中であるか否かを判定する（ステップＳ３８０）。エンジン２２が運転中でなければ、モータＭＧ１によりエンジン２２をクランキングして始動する（ステップＳ３９０）。そして、蓄電割合ＳＯＣに基づいてエンジン要求パワーＰｅ＊を設定し（ステップＳ４００）、エンジン要求パワーＰｅ＊に基づいてエンジン２２を運転すべき運転ポイントとしての目標回転数Ｎｅ＊および目標トルクＴｅ＊を設定する（ステップＳ４１０）。なお、目標回転数Ｎｅ＊および目標トルクＴｅ＊は、エンジン２２を効率よく運転するための動作ラインと、要求パワーＰｅ＊（Ｎｅ＊×Ｔｅ＊）が一定の曲線との交点により求めることができる。続いて、エンジン２２の目標回転数Ｎｅ＊とモータＭＧ２の回転数Ｎｍ２とプラネタリギヤ３０のギヤ比（サンギヤの歯数／リングギヤの歯数）ρとを用いて次式（１０）によりモータＭＧ１の目標回転数Ｎｍ１＊を計算する。また、計算した目標回転数Ｎｍ１＊と入力したモータＭＧ１の回転数Ｎｍ１とに基づいて式（１１）によりモータＭＧ１から出力すべきトルク指令Ｔｍ１＊を計算する（ステップＳ４２０）。ここで、式（１１）は、モータＭＧ１を目標回転数Ｎｍ１＊で回転させるためのフィードバック制御における関係式であり、式（１１）中、右辺第２項の「ｋ１」は比例項のゲインであり、右辺第３項の「ｋ２」は積分項のゲインである。
【００６７】
Nm1*=Ne*・(1+ρ)/ρ-Nm2/ρ    …（１０)
Tm1*=ρ・Te*/(1+ρ)+k1(Nm1*-Nm1)+k2∫(Nm1*-Nm1)dt  …(１１）
【００６８】
続いて、モータＭＧ１から出力されるトルクにより駆動軸３６に作用するトルクをモータＭＧ２からのトルクによりキャンセルするためのモータＭＧ２のトルク指令Ｔｍ２＊を次式（１２）により計算する（ステップＳ４３０）。なお、式（１２）中、「Ｇｒ」は減速ギヤ３５のギヤ比である。そして、目標回転数Ｎｅ＊および目標トルクＴｅ＊をエンジンＥＣＵ２４に送信し、トルク指令Ｔｍ１＊，Ｔｍ２＊をモータＥＣＵ４０に送信して（ステップＳ３７０）、停車時制御ルーチンを終了する。これにより、エンジン２２からの動力を用いたモータＭＧ１の発電によって、バッテリ５０が充電されることになる。
【００６９】
Tm2*=Tm1*/ρ/Gr            …（１２）
【００７０】
ステップＳ３１０でバッテリ５０が充電中であると判定すると、蓄電割合ＳＯＣが予め定められた閾値Ｓ２以上であるか否かを判定する（ステップＳ４４０）。なお、閾値Ｓ２は、バッテリ５０の充電の終了を判定するための閾値であり、閾値Ｓ１よりも大きな値に定められている。蓄電割合ＳＯＣが閾値Ｓ２以上でないと判定すると、エンジン２２からの動力を用いたモータＭＧ１の発電によってバッテリ５０を充電するステップＳ４００〜Ｓ４３０，Ｓ３７０の処理を継続する。一方、蓄電割合ＳＯＣが閾値Ｓ２以上であると判定すると、学習済みフラグＦが値０であるか否かを判定する（ステップＳ４５０）。学習済みフラグＦが値０であると判定すると、ＭＧ１オフセット学習指令をモータＥＣＵ４０に送信する（ステップＳ４６０）。そして、エンジン２２が自立運転するよう目標回転数Ｎｅ＊にアイドル回転数Ｎｉｄｌｅを設定すると共に目標トルクＴｅ＊に値０を設定し（ステップＳ３５０）、モータＭＧ１，ＭＧ２のトルク指令Ｔｍ１＊，Ｔｍ２＊に値０を設定する（ステップＳ３６０）。これにより、モータＭＧ１の回転が維持された状態で、ＭＧ１オフセット学習制御ルーチンにてオフセット学習が行なわれることになる。一方、学習済みフラグＦが値０でなく値１であると判定すると、ＭＧ１オフセット学習指令を送信することなく、アイドル要求がなされていなければ、エンジン２２の運転を停止させる（ステップＳ３３０，Ｓ３４０）。
【００７１】
ここで、学習済みフラグＦは、電源ＥＣＵ９０により実行されるシステム起動処理ルーチンにおいて値０にリセットされる。図７は、システム起動処理ルーチンの一例を示すフローチャートである。このルーチンは、ブレーキオンの状態でパワースイッチ９２からプッシュ信号を入力したときに、ＨＶＥＣＵ７０へ駆動指令を送信することによりシステムメインリレー５６をオンさせた後（ステップＳ５００）、初期化処理を実行すること（ステップＳ５１０）により行なわれる。学習済みフラグＦは、ステップＳ５１０の初期化処理において、値０にリセットされる。一方、学習済みフラグＦは、上述したように、ＭＧ１オフセット学習制御ルーチンにおいてオフセット学習が完了すると、値１が設定される。オフセット学習は、学習済みフラグＦが値０である場合に実行条件が成立したときに実行されるから、システムが起動してから終了するまでの間（いわゆる１トリップ）に１回実行されることになる。
【００７２】
このように、本実施例では、車両が停車している状態でエンジン２２からの動力を用いたモータＭＧ１の発電によりバッテリ５０が充電されると、その充電が終了するタイミングでモータＭＧ１の回転を維持しつつオフセット学習を行なうのである。車両が停車してしている状態は、運転者が走行のための駆動力を要求していないと考えられる。このため、オフセット学習を行なうためにモータＭＧ１のトルク指令Ｔｍ１＊を値０としても、ドライバビリティに悪影響を与えないようにすることができる。また、エンジン２２の動力を用いたモータＭＧ１の発電によりバッテリ５０を充電しているときには、モータＭＧ１が回転しているから、バッテリ５０の充電が終了した直後にオフセット学習を行なえば、エンジン２２を始動させる必要がない。
【００７３】
以上説明した本実施例のハイブリッド自動車２０によれば、車両が停車している状態でエンジン２２からの動力を用いたモータＭＧ１の発電によりバッテリ５０が充電されている場合に、その充電が終了するときにモータＭＧ１が回転している状態でモータＭＧ１のトルク指令Ｔｍ１＊を値０としてオフセット学習を行なう。これにより、オフセット学習によって、ドライバビリティが悪化するのを抑制することができる。しかも、バッテリ５０の充電が終了し、モータＭＧ１が回転している状態でオフセット学習を行なうから、オフセット学習を行なうためにエンジン２２を始動させる必要がない。
【００７４】
実施例のハイブリッド自動車２０では、バッテリ５０の充電が終了した後、エンジン２２を自立運転することによりモータＭＧ１の回転を維持してオフセット学習を行なうものとした。これに対して、バッテリ５０の充電が完了した後、エンジン２２への燃料供給を停止し、エンジン２２が惰性で回転している間に、オフセット学習を行なうものとしてもよい。
【００７５】
実施例のハイブリッド自動車２０では、車両が停車している状態でエンジン２２からの動力を用いたモータＭＧ１の発電によってバッテリ５０を充電している場合に、バッテリ５０の充電が終了した後、オフセット学習を実行するものとした。これに対して、オフセット学習を実行するための実行条件として、要求トルクＴｒ＊が所定トルク未満であることを含めるものとしてもよい。即ち、車両の発進が要求されていないことをオフセット学習の実行条件に含めるものとしてもよい。
【００７６】
実施例のハイブリッド自動車２０では、車両が停車している状態でエンジン２２からの動力を用いたモータＭＧ１の発電によりバッテリ５０が充電されている場合に、その充電が終了するときにオフセット学習を行なうものとした。これに対して、バッテリ５０の充電を伴って外部給電装置９５により外部給電を行なう場合に、外部給電が終了するときにオフセット学習を行なうものとしてもよい。図８は、ＨＶＥＣＵ７０のＣＰＵ７２により実行される外部給電時制御ルーチンの一例を示すフローチャートである。このルーチンは、所定時間毎（例えば、数ｍｓｅｃ毎）に繰り返し実行される。外部給電時制御ルーチンが実行されると、ＨＶＥＣＵ７０のＣＰＵ７２は、まず、外部給電中であるか否かを判定する（ステップＳ６００）。外部給電中でないと判定すると、外部給電時制御ルーチンを終了する。一方、外部給電中であると判定すると、バッテリ５０の蓄電割合ＳＯＣを入力し（ステップＳ６１０）、入力した蓄電割合ＳＯＣが、バッテリ５０の充電の開始を判定するための閾値Ｓ１未満であるか否か（ステップＳ６２０）、バッテリ５０の充電の終了を判定するための閾値Ｓ２以上であるか否か（ステップＳ６３０）、をそれぞれ判定する。蓄電割合ＳＯＣが閾値Ｓ１未満であると判定すると、エンジン２２が停止中であれば、エンジン２２を始動してモータＭＧ１による発電を開始させる（ステップＳ６４０，Ｓ６５０）。また、蓄電割合ＳＯＣが閾値Ｓ２以上であると判定すると、エンジン２２が運転中であれば、エンジン２２を停止してモータＭＧ１による発電を終了させる（ステップＳ６６０，Ｓ６７０）。そして、外部給電が終了したか否かを判定する（ステップＳ６８０）。外部給電が終了していないと判定すると、ステップＳ６１０に戻る。一方、外部給電が終了したと判定すると、エンジン２２が停止中であれば、エンジン２２を始動させる（ステップＳ７００）。そして、ＭＧ１オフセット学習指令をモータＥＣＵ４０に送信する（ステップＳ７１０）。そして、エンジン２２がアイドル回転数Ｎｉｄｌｅで自立運転するよう目標回転数Ｎｅ＊にアイドル回転数Ｎｉｄｌｅを設定すると共に目標トルクＴｅ＊に値０を設定する（ステップＳ７２０）。また、モータＭＧ１，ＭＧ２のトルク指令Ｔｍ１＊，Ｔｍ２＊に値０を設定し（ステップＳ７３０）、各目標値や指令値をエンジンＥＣＵ２４やモータＥＣＵ４０に送信する（ステップＳ７４０）。これにより、モータＭＧ１の回転が維持された状態で、ＭＧ１オフセット学習制御ルーチンによってオフセット学習が行なわれることになる。そして、オフセット学習の実行に必要な時間として予め定められた所定時間(例えば、１〜３ｓｅｃ）が経過するのを待って（ステップＳ６９０）、エンジン２２の運転を停止して（ステップＳ７５０）、外部給電時制御ルーチンを終了する。
【００７７】
このように、外部給電中にバッテリ５０の蓄電割合ＳＯＣが閾値Ｓ１未満となると、エンジン２２の動力を用いたモータＭＧ１の発電によってバッテリ５０を充電し、蓄電割合ＳＯＣが閾値Ｓ２以上となると、エンジン２２を停止させてバッテリ５０の充電を停止する。そして、外部給電が終了するときにエンジン２２の運転によりモータＭＧ１を回転させた状態でオフセット学習を行なう。外部給電は車両が停車している状態で行なわれるから、外部給電が終了するときにモータＭＧ１のトルク指令Ｔｍ１＊を値０としたオフセット学習を実行することで、ドライバビリティが悪化するのを抑制することができる。なお、この変形例では、ＭＧ１オフセット学習指令を送信した後、所定時間が経過するのを待って、エンジン２２の運転を停止したが、これに限られず、学習済みフラグＦが値１となったときに、エンジン２２の運転を停止するものとしてもよい。
【００７８】
実施例のハイブリッド自動車２０では、車両が停車している状態でエンジン２２からの動力を用いたモータＭＧ１の発電によりバッテリ５０が充電されている場合に、その充電が終了するときにオフセット学習を行なうものとした。これに対して、外部電源１００からの電力を用いてバッテリ５０を充電する場合に、バッテリ５０の充電が終了するときにオフセット学習を行なうものとしてもよい。図９は、外部充電時制御ルーチンの一例を示すフローチャートである。このルーチンは、車両側コネクタ９９が外部電源１００の外部電源側コネクタ１０２に接続されたときに実行される。外部充電時制御ルーチンが実行されると、ＨＶＥＣＵ７０のＣＰＵ７２は、まず、充電器９８を制御してバッテリ５０の充電を開始する（ステップＳ８００）。そして、バッテリ５０の蓄電割合ＳＯＣを入力し（ステップＳ８１０）、蓄電割合ＳＯＣが目標割合Ｓｔｇ以上となるまで待つ（ステップＳ８２０）。蓄電割合ＳＯＣが目標割合Ｓｔｇ以上となると、充電器９８を制御してバッテリ５０の充電を終了する（ステップＳ８３０）。続いて、モータＭＧ１によりエンジン２２をクランキングして始動し（ステップＳ８４０）、ＭＧ１オフセット学習指令をモータＥＣＵ４０に送信する（ステップＳ８５０）。そして、エンジン２２がアイドル回転数Ｎｉｄｌｅで自立運転するよう目標回転数Ｎｅ＊にアイドル回転数Ｎｉｄｌｅを設定すると共に目標トルクＴｅ＊に値０を設定する（ステップＳ８６０）。また、モータＭＧ１，ＭＧ２のトルク指令Ｔｍ１＊，Ｔｍ２＊に値０を設定し（ステップＳ８７０）、各目標値や指令値をエンジンＥＣＵ２４やモータＥＣＵ４０に送信する（ステップＳ８８０）。これにより、モータＭＧ１の回転が維持された状態で、ＭＧ１オフセット学習制御ルーチンにてオフセット学習が行なわれることになる。そして、所定時間(例えば、１〜３ｓｅｃ）が経過するのを待って（ステップＳ８９０）、エンジン２２の運転を停止して（ステップＳ９００）、外部充電時制御ルーチンを終了する。
【００７９】
外部電源１００によるバッテリ５０の充電は、車両が停車している状態で行なわれ、充電が終了するまでに比較的長い時間を要するのが通常である。このため、外部電源１００によるバッテリ５０の充電が終了するときに、エンジン２２を始動してモータＭＧ１を回転させた上で、オフセット学習を行なうことにより、モータＭＧ１のトルク指令Ｔｍ１＊を値０としたオフセット学習によって、ドライバビリティが悪化するのを抑制することができる。
【００８０】
実施例のハイブリッド自動車２０では、オフセット学習が１トリップ中に１回実行されるよう学習済みフラグＦをシステム起動の際にリセットするものとした。これに対して、学習済みフラグＦのリセットは、システム終了の際に行なうものとしてもよい。
【００８１】
実施例のハイブリッド自動車２０では、オフセット学習が１トリップ中に１回実行されるようにした。これに対して、オフセット学習が１トリップ中に複数回実行されるようにしてもよく、数トリップ（２トリップや３トリップ）で１回実行するようにしてもよい。
【００８２】
実施例のハイブリッド自動車２０では、モータＭＧ１，ＭＧ２として、永久磁石式のモータを用いるものとしたが、これに限定されるものではなく、巻線界磁式のモータを用いるものとしてもよい。
【００８３】
実施例のハイブリッド自動車２０では、エンジン２２からの動力をプラネタリギヤ３０を介して駆動輪３９ａ，３９ｂに接続された駆動軸３６に出力するものとした。これに対して、図１０の変形例のハイブリッド自動車１２０に例示するように、エンジン１２２のクランクシャフトに接続されたインナーロータ１３２と駆動輪３９ａ，３９ｂに接続された駆動軸３６に接続されたアウターロータ１３４とを有しエンジン１２２からの動力の一部を駆動軸３６に伝達すると共に残余の動力を電力に変換する発電可能な対ロータ電動機１３０を備えるものとしてもよい。また、図１１の変形例のハイブリッド自動車２２０に例示するように、エンジン２２２と、エンジン２２２の動力により発電して駆動軸３６に接続されたモータＭＧ２またはバッテリ５０に供給する発電機Ｇと、を備えるいわゆるシリーズ式のハイブリッド自動車としてもよい。さらに、図１２の変形例のハイブリッド自動車３２０に例示するように、駆動輪３９ａ，３９ｂに接続された駆動軸３６に変速機３３０を介してモータＭＧを取り付けると共にモータＭＧの回転軸にクラッチＣＬを介してエンジン３２２を接続するものとしてもよい。このように、エンジンからの動力によって発電が可能な発電機を備えるものであれば、如何なるタイプの自動車に適用するものとしてもよい。
【００８４】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、エンジン２２が「エンジン」に相当し、モータＭＧ１が「三相発電機」に相当し、インバータ４１が「インバータ」に相当し、バッテリ５０が「バッテリ」に相当し、モータＥＣＵ４０が「インバータ制御手段」に相当し、回転位置センサ４３が「回転位置センサ」に相当し、オフセット学習制御部６７が「オフセット学習手段」に相当し、加算器６８が「回転位置補正手段」に相当する。また、外部給電装置９５が「外部給電装置」に相当する。
【００８５】
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
【００８６】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００８７】
本発明は、発電装置の製造産業に利用可能である。
【符号の説明】
【００８８】
２０，１２０，２２０，３２０  ハイブリッド自動車、２２，１２２，２２２，３２２  エンジン、２４  エンジン用電子制御ユニット（エンジンＥＣＵ）、２６  クランクシャフト、２８  ダンパ、３０  プラネタリギヤ、３１  サンギヤ、３２  リングギヤ、３３  ピニオンギヤ、３４  キャリア、３５  減速ギヤ、３６  駆動軸、３７  ギヤ機構、３８  デファレンシャルギヤ、３９ａ，３９ｂ  駆動輪、４０  モータ用電子制御ユニット（モータＥＣＵ）、４０ａ  ＣＰＵ、４０ｂ  ＲＯＭ、４０ｃ  ＲＡＭ、４１，４２  インバータ、４３，４４  回転位置センサ、４５Ｖ，４５Ｗ，４６Ｖ，４６Ｗ  電流センサ、５０  バッテリ、５１ａ  電圧センサ、５１ｂ  電流センサ、５１ｃ  温度センサ、５２  バッテリ用電子制御ユニット（バッテリＥＣＵ）、５４  高電圧系電力ライン、５５  昇圧回路、５６  システムメインリレー、５７，５８  コンデンサ、５７ａ，５８ａ  電圧センサ、５９  低電圧系電力ライン、６１  電流指令生成器、６２ｄ，６２ｑ  減算器、６３ｄ，６３ｑ  電圧指令変換器、６４  座標変換器、６５  ＰＷＭ変換器、６６  座標変換器、６７  オフセット学習制御器、６８  加算器、７０  ハイブリッド用電子制御ユニット（ＨＶＥＣＵ）、７２  ＣＰＵ、７４  ＲＯＭ、７６  ＲＡＭ、８１  シフトレバー、８２  シフトポジションセンサ、８３  アクセルペダル、８４  アクセルペダルポジションセンサ、８５  ブレーキペダル、８６  ブレーキペダルポジションセンサ、８８  車速センサ、９０  電源用電子制御ユニット（電源ＥＣＵ）、９２  パワースイッチ、９３  インジケータ、９４  ブレーキスイッチ、９５  外部給電装置、９６  電力センサ、９７  コンセント、９８  充電器、９９  車両側コネクタ、１００  外部電源、１０２  コネクタ、１３０  対ロータ電動機、１３２  インナロータ、１３４  アウタロータ、３３０  変速機、ＭＧ１，ＭＧ２，ＭＧ  モータ、Ｇ  発電機、Ｔ１１〜Ｔ１６，Ｔ２１〜Ｔ２６，Ｔ３１，Ｔ３２  トランジスタ、Ｄ１１〜Ｄ１６，Ｄ２１〜Ｄ２６，Ｄ３１，Ｄ３２  ダイオード、Ｌ１  リアクトル、ＣＬ  クラッチ、Ｃｎ１  接続点。
【図１】
0006458743.tif 000002
【図２】
0006458743.tif 000003
【図３】
0006458743.tif 000004
【図４】
0006458743.tif 000005
【図５】
0006458743.tif 000006
【図６】
0006458743.tif 000007
【図７】
0006458743.tif 000008
【図８】
0006458743.tif 000009
【図９】
0006458743.tif 000010
【図１０】
0006458743.tif 000011
【図１１】
0006458743.tif 000012
【図１２】
0006458743.tif 000013