図1は、本発明の実施例としてのハイブリッド自動車20の構成の概略を示す構成図である。実施例のハイブリッド自動車20は、図1に示すように、エンジン22と、プラネタリギヤ30と、モータMG1,MG2と、インバータ41,42と、バッテリ50と、油圧ブレーキ装置90と、ナビゲーション装置60と、HVECU70と、を備える。
エンジン22は、ガソリンや軽油などを燃料として動力を出力する内燃機関として構成されている。このエンジン22は、エンジンECU24によって運転制御されている。
エンジンECU24は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。エンジンECU24には、エンジン22を運転制御するのに必要な各種センサからの信号、例えば、エンジン22のクランクシャフト26の回転位置を検出するクランクポジションセンサ23からのクランク角θcrなどが入力ポートから入力されている。エンジンECU24からは、エンジン22を運転制御するための各種制御信号が出力ポートを介して出力されている。エンジンECU24は、HVECU70と通信ポートを介して接続されている。エンジンECU24は、クランクポジションセンサ23からのクランク角θcrに基づいてエンジン22の回転数Neを演算している。
プラネタリギヤ30は、シングルピニオン式の遊星歯車機構として構成されている。プラネタリギヤ30のサンギヤには、モータMG1の回転子が接続されている。プラネタリギヤ30のリングギヤには、駆動輪39a,39bの回転軸にデファレンシャルギヤ38を介して連結された駆動軸36が接続されている。プラネタリギヤ30のキャリヤには、ダンパ28を介してエンジン22のクランクシャフト26が接続されている。
モータMG1は、永久磁石が埋め込まれた回転子と三相コイルが巻回された固定子とを有する同期発電電動機として構成されており、上述したように、回転子がプラネタリギヤ30のサンギヤに接続されている。モータMG2は、モータMG1と同様に、永久磁石が埋め込まれた回転子と三相コイルが巻回された固定子とを有する同期発電電動機として構成されており、回転子が駆動軸36に接続されている。モータMG1,MG2は、モータECU40によってインバータ41,42を制御することにより駆動する。
モータECU40は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。図1に示すように、モータECU40には、モータMG1,MG2を駆動制御するのに必要な各種センサからの信号が入力ポートを介して入力されている。モータECU40に入力される信号としては、例えば、モータMG1,MG2の回転子の回転位置を検出する回転位置検出センサ(例えばレゾルバ)43,44からの回転位置θm1,θm2や、モータMG1,MG2の各相に流れる電流を検出する図示しない電流センサからの相電流を挙げることができる。モータECU40からは、インバータ41,42のトランジスタへのスイッチング制御信号などが出力ポートを介して出力されている。モータECU40は、HVECU70と通信ポートを介して接続されている。モータECU40は、回転位置検出センサ43,44からのモータMG1,MG2の回転子の回転位置θm1,θm2に基づいてモータMG1,MG2の回転数Nm1,Nm2を演算している。
バッテリ50は、例えばニッケル水素二次電池やリチウムイオン二次電池などとして構成されており、電力ライン54を介してインバータ41,42に接続されている。このバッテリ50は、バッテリECU52によって管理されている。
バッテリECU52は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。バッテリECU52には、バッテリ50を管理するのに必要な各種センサからの信号が入力ポートを介して入力されている。バッテリECU52に入力される信号としては、例えば、バッテリ50の端子間に設置された電圧センサ51aからの電圧(バッテリ電圧)VBやバッテリ50の出力端子に取り付けられた電流センサ51bからの電流(バッテリ電流)IB,バッテリ50に取り付けられた温度センサ51cからの温度(バッテリ温度)Tbを挙げることができる。バッテリECU52は、HVECU70と通信ポートを介して接続されている。バッテリECU52は、バッテリ50を管理するために蓄電割合SOCや入出力制限Win,Woutを演算している。蓄電割合SOCは、バッテリ50から放電可能な電力の容量の全容量に対する割合であり、電流センサにより検出された充放電電流Ibの積算値に基づいて演算される。入出力制限Win,Woutは、バッテリ50を充放電してもよい最大許容電力であり、演算した蓄電割合SOCと電池温度Tbとに基づいて設定される。詳しくは、入出力制限Win,Woutは、電池温度Tbに基づいて入出力制限Win,Woutの基本値Wintmp,Wouttmpを設定し、バッテリ50の蓄電割合SOCに基づいて出力制限用補正係数と入力制限用補正係数とを設定し、設定した入出力制限Win,Woutの基本値Wintmp,Wouttmpにそれぞれ対応する補正係数を乗じることにより設定することができる。図2に電池温度Tbと入出力制限Win,Woutの基本値Wintmp,Wouttmpとの関係の一例を示し、図3にバッテリ50の蓄電割合SOCと出力制限用補正係数および入力制限用補正係数との関係の一例を示す。
油圧ブレーキ装置90は、駆動輪39a,39bや従動輪39c,39dに取り付けられたブレーキホイールシリンダ96a,96b,96c,96dと、ブレーキアクチュエータ94と、を備える。ブレーキアクチュエータ94は、ブレーキホイールシリンダ96a,96b,96c,96dの油圧を調節して駆動輪39a,39bや従動輪39c,39dに制動力を付与するためのアクチュエータとして構成されている。このブレーキアクチュエータ94は、ブレーキECU98によって駆動制御されている。
ブレーキECU98は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。ブレーキECU98には、ブレーキアクチュエータ94を駆動制御するのに必要な各種センサからの信号が入力ポートを介して入力されている。ブレーキECU98からは、ブレーキアクチュエータ94への駆動制御信号などが出力ポートを介して出力されている。ブレーキECU98は、HVECU70と通信ポートを介して接続されている。
ナビゲーション装置60は、ナビゲーションECU62と、GPSアンテナ64と、VICS(登録商標)アンテナ(図示せず)と、タッチパネルディスプレイ66と、を備える。ナビゲーションECU62は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に,処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。また、ナビゲーションECU62は、地図情報データベース62aや勾配/標高学習データベース62bを記憶する。地図情報データベース62aには、道路上の交差点に対応付けられたノード情報や、交差点(ノード)間の道路に対応付けられたリンク情報、道路周辺に存在する施設情報などが記憶されている。リンク情報には、道路の属性(一般道、高速道)を示す属性情報や、道路形状を示す形状情報、道路勾配(リンク両端の標高差)を示す勾配情報、リンク両端の各点(ノード)の位置(経度緯度)を示す位置情報、リンク両端の各点(ノード)の標高を示す標高情報などが含まれる。また、勾配/標高学習データベース62bには、各リンクごとに学習された勾配情報や標高情報が対応するリンク(リンク識別情報)やノード(ノード識別情報)に関連付けられて記憶されている。ナビゲーションECU62には、GPSアンテナ64からの車両の現在位置に関する信号やVICS(登録商標)アンテナからの交通情報、タッチパネルディスプレイ66からの操作信号などが入力ポートを介して入力されている。ナビゲーションECU62には、タッチパネルディスプレイ66への表示信号などが出力ポートを介して出力されている。また、ナビゲーションECU62は、HVECU70と通信ポートを介して接続されている。ナビゲーションECU62は、タッチパネルディスプレイ66の操作により目的地が指定されると、車両の現在地と目的地と道路情報とに基づいて現在地から目的地までの走行ルートを検索し、検索して走行ルートをタッチパネルディスプレイ66に表示してルート案内を行なう。
HVECU70は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。HVECU70には、各種センサからの信号が入力ポートを介して入力されている。HVECU70に入力される信号としては、例えば、イグニッションスイッチ80からのイグニッション信号や、シフトレバー81の操作位置を検出するシフトポジションセンサ82からのシフトポジションSPを挙げることができる。また、アクセルペダル83の踏み込み量を検出するアクセルペダルポジションセンサ84からのアクセル開度Accや、ブレーキペダル85の踏み込み量を検出するブレーキペダルポジションセンサ86からのブレーキペダルポジションBP,車速センサ88からの車速Vも挙げることができる。なお、シフトポジションSPとしては、駐車ポジション(Pポジション)、後進ポジション(Rポジション)、ニュートラルポジション(Nポジション)、前進ポジション(Dポジション)などがある。HVECU70は、上述したように、エンジンECU24,モータECU40,バッテリECU52,ナビゲーションECU62,ブレーキECU98と通信ポートを介して接続されている。
こうして構成された実施例のハイブリッド自動車20は、エンジン22の運転を伴って走行するハイブリッド走行(HV走行)モードや、エンジン22の運転を伴わずに走行する電動走行(EV走行)モードで走行する。
HV走行モードでは、HVECU70は、アクセル開度Accと車速Vとに基づいて走行に要求される(駆動軸36に要求される)要求トルクTd*を設定し、設定した要求トルクTd*に駆動軸36の回転数Nd(モータMG2の回転数Nm2)を乗じて走行に要求される(駆動軸36に要求される)走行要求パワーPd*を計算する。続いて、走行要求パワーPd*からバッテリ50の蓄電割合SOCに基づく充放電要求パワーPb*(バッテリ50から放電するときが正の値)を減じて車両に要求される(エンジン22に要求される)要求パワーPe*を設定する。次に、要求パワーPe*がエンジン22から効率良く(最適な燃費で)出力されるようにエンジン22の目標回転数Ne*および目標トルクTe*を設定する。続いて、エンジン22が目標回転数Ne*で回転するようにモータMG1のトルク指令Tm1*を設定する。続いて、バッテリ50の入出力制限Win,Woutの範囲内で要求トルクTd*が駆動軸36に出力されるようにモータMG2のトルク指令Tm2*を設定する。そして、エンジン22の目標回転数Ne*や目標トルクTe*をエンジンECU24に送信すると共に、モータMG1,MG2のトルク指令Tm1*,Tm2*をモータECU40に送信する。エンジンECU24は、目標回転数Ne*と目標トルクTe*とに基づいてエンジン22が運転されるように、エンジン22の吸入空気量制御や燃料噴射制御,点火制御などを行なう。モータECU40は、モータMG1,MG2がトルク指令Tm1*,Tm2*で駆動されるようにインバータ41,42のトランジスタのスイッチング制御を行なう。
EV走行モードでは、HVECU70は、アクセル開度Accと車速Vとに基づいて要求トルクTd*を設定し、モータMG1のトルク指令Tm1*に値0を設定すると共に入出力制限Win,Woutの範囲内で要求トルクTd*が駆動軸36に出力されるようにモータMG2のトルク指令Tm2*を設定する。そして、モータMG1,MG2のトルク指令Tm1*,Tm2*をモータECU40に送信する。モータECU40によるインバータ41,42の制御については上述した。
実施例のハイブリッド自動車20では、運転者がブレーキペダル84を踏み込むと、基本的には、以下のように車両に制動力を作用させる。まず、ブレーキペダルポジションセンサ86からのブレーキペダルポジションBPに応じて車両に作用させる目標制動力Pb*を設定する。次に、バッテリ50の入力制限Winの範囲内で、且つ、目標制動力Pb*を駆動軸36のトルクに換算した目標制動トルクTd*との範囲内で、モータMG2から駆動軸36に作用させるべき制動用のトルク指令Tm2*を設定する。続いて、目標制動トルクTd*からトルク指令Tm2*を減じて得られる不足分の制動トルクを油圧ブレーキ装置90から作用させるべき目標ブレーキ指令Br*として設定する。そして、トルク指令Tm2*を用いてモータECU40によりモータMG2を駆動制御すると共に目標ブレーキ指令Br*を用いてブレーキECU98によりブレーキアクチュエータ94を駆動制御する。
また、実施例のハイブリッド自動車20では、図4に示すように、この先に長い下り坂がありバッテリ50の充電が継続する(蓄電割合SOCが比較的大きくなる)ことが予測されるときには(図4中、一点鎖線参照)、下り坂に突入する前にバッテリ50が放電するよう充放電要求パワーPb*に比較的大きな正の値を設定することが行なわれる(図4中、実線参照)。また、蓄電割合SOCが比較的大きくなったときには、燃料噴射を停止した状態のエンジン22をモータMG1によりモータリングし、このエンジンブレーキによる制動トルクをモータMG2から出力すべきトルク指令Tm2*から減じた値をトルク指令Tm2*として設定することも行なわれる。
実施例では、こうした車両制御において長い下り坂の判定に用いる勾配情報や標高情報を学習する。図5は、ナビゲーションECU62により実行される標高有効フラグ設定処理の一例を示すフローチャートであり、図6は、ナビゲーションECU62により実行される学習処理の一例を示すフローチャートである。これらの処理は、イグニッションONされたときに所定時間毎(例えば数十msec毎)に繰り返し実行される。まず、標高有効フラグ設定処理について説明する。
標高有効フラグ設定処理では、ナビゲーションECU62のCPUは、まず、バッテリECU52により演算されたバッテリ50の入力制限Winを、HVECU70を介して通信により入力し(S100)、入力した入力制限Winの絶対値が閾値αよりも大きいか否かを判定する(S110)。ここで、閾値αは、入力制限WinによるモータMG2のトルク指令Tm2*の制限によって下り坂などを走行する際に油圧ブレーキ装置90が高頻度,長時間作動し得る状況下にあるか否かを判定するためのものである。なお、S110の判定は、入力制限Winの絶対値が閾値αよりも大きい状態が所定時間以上継続したか否かを判定することにより行なってもよい。入力制限Winの絶対値が閾値αよりも大きいと判定すると、モータMG2から十分な制動トルクを出力可能であり、油圧ブレーキ装置90が高頻度,長時間作動し得る状況下にないと判断して、標高有効フラグFhに値1(有効)を設定して(S130)、標高有効フラグ設定処理を終了する。一方、入力制限Winの絶対値が閾値αよりも大きくないと判定すると、モータMG2からの制動トルクの出力が大きく制限され、油圧ブレーキ装置90が高頻度,長時間作動し得る状況下にあると判断し、油圧ブレーキ装置90が作動(油圧ブレーキが発生)したか否かを判定する(S120)。S120の判定は、HVECU70により設定された目標ブレーキ指令Br*を通信により入力し、目標ブレーキ指令Br*が所定制動力以上であるかを判定することにより行なうことができる。油圧ブレーキが発生していないと判定すると、標高有効フラグFhに値1(有効)を設定し(S130)、油圧ブレーキが発生していると判定すると、標高有効フラグFhに値0(無効)を設定して(S140)、標高有効フラグ設定処理を終了する。標高有効フラグFhは、後述する学習処理において推定される標高が有効であるか無効であるかを示すものである。
次に、学習処理について説明する。学習処理では、ナビゲーションECU62のCPUは、まず、車両がリンクに進入したか否かを判定する(S200)。リンクへの進入は、GPSアンテナ64からの車両の現在地とリンク両端の各点(ノード)の位置情報とに基づいて判定することができる。リンクに進入していないと判定すると、学習処理を終了し、リンクに進入したと判定すると、リンク進入時の標高(進入したリンク端点(ノード)の標高)Hsを読み出す(S210)。S210の処理は、進入したリンク端点(ノード)の標高が勾配/標高学習データベース62bに記憶されているときには、勾配/標高学習データベース62bから対応する標高を読み出し、勾配/標高学習データベース62bに記憶されていないときには、地図情報データベース62aから対応する標高を読み出す。続いて、現在地の標高Hの初期値としてリンク進入時の標高Hsを設定し、リンク距離Dlinの初期値として値0を設定し、勾配非学習フラグFsの初期値として値0を設定する(S220)。ここで、勾配非学習フラグFsは、進入したリンクの勾配を学習する(学習処理で推定した勾配を無効とする)か否かを示すフラグである。次に、車速センサ88により検出された車速Vや車両から出力された出力トルク(駆動トルク,制動トルク)Toなどの現在地の勾配ΔHの推定に必要なデータをHVECU70から通信により入力する(S230)。なお、出力トルクToは、油圧ブレーキ装置90が作動していないときには、モータMG1,MG2からそれぞれ出力したトルク(トルク指令Tm1*,Tm2*)が駆動軸36に伝達されるトルク(Tm1*/ρ+Tm2*;ρはプラネタリギヤ30のギヤ比)を駆動輪39a,39bのトルクに換算したものである。また、油圧ブレーキ装置90が作動しているときには、上記モータMG1,MG2から駆動軸36に出力されたトルクを駆動輪39a,39bのトルクに換算した制動トルクに、油圧ブレーキ装置90から駆動輪39a,39bや従動輪39c,39dに出力した制動トルク(目標ブレーキ指令Br*)を加えたものである。続いて、入力した車速Vを微分して車両加速度αを計算すると共に、入力した車速Vに車速センサ88のサンプリング時間を乗じて移動距離dを計算する(S240)。続いて、車速Vと車両加速度Aと出力トルクToとに基づいて次式(1),(2)により現在地の勾配ΔHを推定する(S250)。ここで、式(1)および(2)中、「Re」は勾配抵抗を示し、「M」は車両重量を示し、「g」は重力加速度を示し、「r」はタイヤ径を示す。また、式(2)の右辺第3項(a・V2+b・V+c)は、勾配抵抗Reを除いた走行抵抗を示し、車速Vの2乗に比例する項と、車速Vに比例する項と、車速Vに依存しない項とを含む。なお、「a」,「b」,「c」は係数である。現在地の勾配ΔHを推定すると、推定した勾配ΔHを標高Hに加えて現在地の標高Hを更新すると共に(S260)、S240で演算した移動距離dをリンク距離Dlinに加えてリンク距離Dlinを更新する(S270)。なお、リンク距離Dlinは、リンク進入時には値0に初期化されるため、リンク端点から現在地までの走行距離を表わす。
ΔH=Re/(M・g)・d …(1)
Re=To/r-M・A-(a・V2+b・V+c) …(2)
次に、標高有効フラグFhが値0であるか否かを判定し(S280)、標高有効フラグFhが値0であると判定すると、勾配非学習フラグFsに値1を設定し(S290)、標高有効フラグFhが値1であると判定すると、S290の処理をスキップする。そして、車両がリンクを退出したか否かを判定する(S300)。リンクの退出は、GPSアンテナ64からの車両の現在地とリンク両端の各点(ノード)の位置情報とに基づいて判定することができる。車両がリンクを退出していないと判定すると、S230に戻って、現在地の勾配ΔHや標高Hの推定、標高有効フラグFhに基づく勾配非学習フラグFsの設定等の処理を繰り返し行なう。一方、車両がリンクを退出したと判定すると、S260で推定した現在地の標高Hをリンク退出時の標高Heとして設定し(S310)、式(3)により走行したリンクの勾配(リンク勾配)ΔHlinを推定する(S320)。リンク勾配ΔHlinは、式(3)からわかるように、リンク両端の標高差をリンク距離Dlinで除したものとして表わされる。
ΔHlin=(He-Hs)/Dlin …(3)
そして、勾配非学習フラグFsが値0であるか否かを判定する(S330)。勾配非学習フラグFsが値0であると判定すると、推定したリンク勾配ΔHlinおよびリンク退出時の標高Heに基づいて地図情報データベース62aの対応するリンクの勾配および対応するノードの標高を学習し、学習結果を勾配/標高学習データベース62bの対応するリンクおよび対応するノードに関連付けて記憶して(S340)、学習処理を終了する。一方、勾配非学習フラグFsが値1であると判定すると、S340の処理をスキップし、対応するリンクの勾配および対応するノードの標高を学習することなく、学習処理を終了する。勾配非学習フラグFsは、リンクに進入してから当該リンクを退出するまでの間、一度でも標高有効フラグFhが値0となると、値1に設定されるから、リンク走行中に推定した勾配ΔHや標高Hは、無効とされ、勾配/標高学習データベース62bに反映されない。勾配ΔHや標高Hは、車両制動時には、車両加速度αと車両から出力した制動トルクToとに基づいて推定され、油圧ブレーキ装置90から出力される制動トルクは誤差が大きいため、油圧ブレーキ操作90の作動中に推定した勾配ΔHや標高Hに基づいて学習が行なわれると、誤学習の虞がある。一方、油圧ブレーキ装置90の作動が短時間であれば、誤差はそれほど累積されず、学習に悪影響を及ぼさないと考えられるため、実施例では、標高有効フラグFhは、入力制限Winの絶対値が閾値α以下で且つ油圧ブレーキが発生したときに値0(無効)を設定し、入力制限Winの絶対値が閾値αよりも大きいときには油圧ブレーキの発生の有無に拘わらず値1(有効)を設定するものとした。
以上説明した実施例のハイブリッド自動車20では、車両加速度Aと車両から出力した出力トルクToとに基づいて勾配ΔH(標高H)を学習し、学習結果を勾配/標高学習データベース62bに記憶させるものにおいて、油圧ブレーキ装置90が高頻度,長時間作動し得る所定状況下において油圧ブレーキ装置90が作動したときには、勾配ΔH(標高H)の学習を無効とする。また、上記所定状況下にないときには、油圧ブレーキ装置90の作動の有無に拘わらず、勾配ΔH(標高H)の学習を有効とする。有効な勾配ΔH(標高H)の学習結果は、車両制御に反映される。これにより、油圧ブレーキ装置90が作動する度に勾配ΔH(標高H)の学習を無効とするものに比して学習機会を十分に確保すると共に、誤学習による車両制御の精度低下を抑制することができる。
実施例のハイブリッド自動車20では、標高有効フラグ設定処理において、入力制限Winの絶対値が閾値α以下で且つ油圧ブレーキが発生したときに、標高有効フラグFhに値0(無効)を設定した。しかし、蓄電割合SOCが閾値(例えば、60%や65%)β以上で且つ油圧ブレーキが発生したときに標高有効フラグFhに値0を設定してもよい。この場合、図5の実施例の標高有効フラグ設定処理に代えて、図7の変形例の標高有効フラグ設定処理が実行される。図7の標高有効フラグ設定処理では、まず、バッテリ50の蓄電割合SOCを入力し(S100B)、入力した蓄電割合SOCが閾値β未満であるか否か(S110B)、油圧ブレーキが発生したか否か(S120)、をそれぞれ判定する。蓄電割合SOCが閾値β以上で且つ油圧ブレーキが発生したときには、標高有効フラグFhに値0を設定し(S140)、蓄電割合SOCが閾値β未満のときや、油圧ブレーキが発生していないときには、標高有効フラグFhに値1を設定する(S130)。
また、長い下り坂を下っている間に油圧ブレーキが発生したときに、標高有効フラグFhに値0を設定してもよい。この場合、図5の実施例の標高有効フラグ設定処理に代えて、図8の変形例の標高有効フラグ設定処理が実行される。図8の標高有効フラグ設定処理では、まず、この先の経路情報(リンク識別情報)を取得すると共に(S100C)、取得した経路(リンク識別情報)に関連付けられた勾配情報を地図情報データベース62aあるいは勾配/標高学習データベース62bから取得する(S105C)。次に、取得した勾配情報に基づいてこの先に長い下り坂があるか否かを判定し(S110C)、この先に長い下り坂がないと判定すると、標高有効フラグFhに値1を設定する(S130)。一方、この先に長い下り坂があると判定すると、下り坂に突入するのを待って(S115C)、油圧ブレーキが発生したか否かを判定する(S120)。油圧ブレーキが発生したと判定すると、標高有効フラグFhに値0を設定し(S140)、油圧ブレーキが発生していないと判定すると、標高有効フラグFhに値1を設定する(S130)。
さらに、所定距離(閾値ε)を走行する間に油圧ブレーキ装置90の作動時間(油圧ブレーキ累積作動時間t)が所定時間(閾値γ)を超えたときに、標高有効フラグFhに値0を設定してもよい。この場合、図5の実施例の標高有効フラグ設定処理に代えて、図9の変形例の標高有効フラグ設定処理が実行される。図9の標高有効フラグ設定処理では、まず、累積移動距離distの初期値として値0を設定すると共に油圧ブレーキ累積作動時間tの初期値として値0を設定する(S100D)。続いて、車速Vを積分して移動距離を算出すると共に累積移動距離distに算出した移動距離を加えて累積移動距離distを更新する(S110D)。続いて、油圧ブレーキが発生したか否かを判定し(S120D)、油圧ブレーキが発生したと判定すると、油圧ブレーキが終了するまで、油圧ブレーキ累積作動時間tに油圧ブレーキ装置90の処理時間(ループ時間)を加えて油圧ブレーキ累積作動時間tを更新する(S122D,S124D)。S120Dで油圧ブレーキが発生していないと判定するか、S124Dで油圧ブレーキが終了したと判定すると、油圧ブレーキ累積作動時間tが閾値γ未満であるか否かを判定する(S126D)。油圧ブレーキ累積作動時間tが閾値γ未満であると判定すると、標高有効フラグFhに値1を設定し(S130)、累積移動距離distが閾値εよりも大きいか否かを判定する(S128D)。累積移動距離distが閾値ε以下と判定すると、S110Dに戻って、移動距離distを更新して(S110D)、S120D〜S128DとS130またはS140の処理を繰り返し、累積移動距離distが閾値εよりも大きいと判定すると、標高有効フラグ設定処理を終了する。S126Dで油圧ブレーキ累積作動時間tが閾値γ以上と判定すると、標高有効フラグFhに値0を設定する(S140)。なお、上述した変形例に代えて、所定距離を走行する間に油圧ブレーキ装置90の作動回数が所定回数を超えたときに、標高有効フラグFhに値0を設定してもよい。
この他、バッテリ50の電池温度Tbが所定温度(バッテリ50の充電が制限される温度)未満で且つ油圧ブレーキが発生したときに標高有効フラグFhに値0を設定し、電池温度Tbが上記所定温度以上のときや油圧ブレーキが発生していないときには標高有効フラグFhに値1を設定してもよい。また、シフトポジションSPがNポジションにあり(モータMG1,MG2からトルクの出力が禁止され)且つ油圧ブレーキが発生したときに標高有効フラグFhに値0を設定し、シフトポジションSPがNポジションにないときや油圧ブレーキが発生していないときには標高有効フラグFhに値1を設定してもよい。
また、上述した入力制限Win,蓄電割合SOC,長い下り坂、油圧ブレーキ装置90の累積作動時間t、油圧ブレーキ装置90の作動回数(作動頻度)、電池温度Tb,シフトポジションSPなどの条件のうち複数の条件が同時に成立し且つ油圧ブレーキが発生したときに、標高有効フラグFhに値0を設定し、上記複数の条件のいずれかが成立していないときや油圧ブレーキが発生していないときに、標高有効フラグFhに値0を設定してもよい。
実施例のハイブリッド自動車20では、標高有効フラグFhに値0(無効)が設定されると、車両加速度Aと車両から出力した力(出力トルクTo)とに基づく勾配ΔHや標高Hの学習を無効(推定した勾配ΔHや標高Hを勾配/標高学習データベース62bに記憶しないもの)とした。しかし、推定した勾配ΔHや標高Hに対して信頼度を設定し、設定した信頼度に応じてゲイン調整したものを勾配/標高学習データベース62bに記憶してもよい。例えば、学習処理において推定したリンクの勾配をΔHlin1とし、地図情報データベース62aに記憶された対応するリンクの勾配をΔHlin0とし、ゲインをk(0<k<1)とすると、勾配/標高学習データベース62bに記憶する対応するリンクの勾配ΔHlin2を次式(4)により算出してもよい。標高についても同様である。なお、信頼度(ゲインk)は、標高有効フラグFhが値0の場合に値1の場合に比して低ければよく、例えば、入力制限Winの絶対値が小さいほど小さくしたり、油圧ブレーキ装置90の作動時間が長いほど小さくしたりしてもよい。
ΔHlin2=ΔHlin0(1-k)+ΔHlin1・k …(4)
実施例のハイブリッド自動車20では、各リンク(ノード)に関連付けて勾配ΔH(標高H)を勾配/標高学習データベース62bに記憶した。しかし、経度緯度に関連付けて勾配ΔH(標高H)を勾配/標高学習データベース62bに記憶してもよい。
実施例のハイブリッド自動車20では、駆動輪39a,39bに連結された駆動軸36にプラネタリギヤ30を介してエンジン22およびモータMG1を接続すると共に駆動軸36にモータMG2を接続する構成とした。しかし、図10の変形例のハイブリッド自動車120に示すように、駆動輪39a,39bに連結された駆動軸36に変速機130を介してモータMGを接続すると共にモータMGの回転軸にクラッチ129を介してエンジン22を接続する構成としてもよい。また、図11の変形例のハイブリッド自動車220に示すように、駆動輪39a,39bに連結された駆動軸36に走行用のモータMG2を接続すると共にエンジン22の出力軸に発電用モータMG1を接続するいわゆるシリーズハイブリッド自動車の構成としてもよい。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、油圧ブレーキ装置90が「油圧ブレーキ」に相当し、HVECU70とエンジンECU24とモータECU40とバッテリECU52とブレーキECU98とナビゲーションECU62とが「制御装置」に相当する。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。