(57)【要約】【課題】トンネル区間を考慮してプレＳＯＣ制御の対象傾斜区間の有無を判定する電動車両において、走行予定経路を計画した直後のトンネルの見落としを軽減する。【解決手段】ＨＶ−ＥＣＵは、システム起動あるいはリルートによる走行予定経路の計画時から所定期間が経過するまでは、第１判定位置にトンネルがあるか否かを示すトンネルフラグＦＴに加えて、第１判定位置よりも現在位置に近い第２判定位置にトンネルがあるか否かを示す近距離トンネルフラグＦＴＳを用いてトンネル区間を特定する。この際、ＨＶ-ＥＣＵは、近距離トンネルフラグＦＴＳがオン状態（第２判定位置にトンネルがあることを示す状態）である場合、現在位置から第２判定位置までの範囲もトンネルであると推定し、第２判定位置よりも先の範囲だけでなく、現在位置から第２判定位置までの範囲（第２判定位置よりも手前の範囲）をもトンネル区間と特定する。【選択図】図１４
2018090052.tif 000002
【特許請求の範囲】
【請求項１】
電動車両であって、
駆動輪に接続された走行用の回転電機と、
前記回転電機に電気的に接続された蓄電装置と、
地勢データから作成された勾配情報を含む地図情報が記憶されたデータベースを有するナビゲーション装置と、
前記電動車両の走行予定経路に所定条件を満たす対象傾斜区間があるか否かを前記地図情報を用いて判定し、前記対象傾斜区間がある場合に前記対象傾斜区間への進入前から前記蓄電装置の充電状態を予め変更するプレＳＯＣ制御を実行する制御装置とを備え、
前記制御装置は、前記走行予定経路に前記対象傾斜区間があるか否かを判定する際、現在位置から所定距離だけ先の判定位置にトンネルがあるか否かを示すトンネル情報を用いてトンネル区間を特定し、特定された前記トンネル区間の勾配情報の大きさを前記地図情報から取得された勾配情報の大きさよりも小さい値にし、
前記制御装置は、前記走行予定経路を計画してから所定期間が経過するまでは、前記判定位置にトンネルがあることを前記トンネル情報が示す場合、前記判定位置よりも先の範囲および前記判定位置よりも手前の範囲を前記トンネル区間と特定する、電動車両。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、走行用の回転電機を備える電動車両に関する。
【背景技術】
【０００２】
従来より、ユーザによる電動車両の省エネルギ運転を支援するためのさまざまな制御の開発が進められている。その１つに、以下に説明する「プレＳＯＣ制御」（先読みＳＯＣ制御）がある。プレＳＯＣ制御とは、蓄電装置の電力で駆動される走行用のモータを備える電動車両において、車両の走行予定経路に所定条件を満たす対象傾斜区間があるか否かをナビゲーション装置の地図情報等を用いて判定し、対象傾斜区間がある場合には対象傾斜区間への進入前から蓄電装置の充電状態（ＳＯＣ：State  Of  Charge）を対象傾斜区間に応じて予め変更する制御である。
【０００３】
プレＳＯＣ制御には、「下りＳＯＣ制御」および「上りＳＯＣ制御」が含まれる。下りＳＯＣ制御は、対象傾斜区間を下り抽出条件を満たす対象下り区間とし、対象下り区間での回生電力の回収に備えて、対象下り区間への進入前からＳＯＣを予め低下させる制御である。上りＳＯＣ制御は、対象傾斜区間を上り抽出条件を満たす対象上り区間とし、対象上り区間での電力消費に備えて、対象上り区間への進入前からＳＯＣを予め増加させる制御である。
【０００４】
たとえば、特開２００５−１６０２６９号公報（特許文献１）には、上述の下りＳＯＣ制御を実行可能に構成された電動車両が開示されている。この電動車両においては、車両の走行予定経路に所定高さ以上の標高差を有する下り区間があるか否かをナビゲーション装置の地図情報の勾配情報を用いて判定し、所定高さ以上の標高差を有する区間を対象下り区間としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１６０２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
通常、ナビゲーション装置に記憶されている地図情報は、所定間隔（たとえば１０ｍ間隔）でメッシュ状の区間に分けられている。そして、各区間の勾配情報は、各区間の地勢（地表面）の標高差に基づいて作成される。そのため、トンネル内の道路の場合、道路の実際の標高は、地図情報の標高（地勢の標高、すなわちトンネルの上方の山肌の標高）よりも低くなる。この影響で、トンネル区間においては、道路の実際の標高と地図情報の標高情報とが一致せず勾配精度が低くなる。
【０００７】
そのため、走行予定経路にトンネル区間が含まれる場合に、対象傾斜区間（対象下り区間、対象上り区間）の有無を地図情報の勾配情報を用いて判定すると、対象傾斜区間が正しく判定されず、プレＳＯＣ制御が適切に実行されない可能性がある。たとえば、実際には平坦な道路が続くような場所でも、対象下り区間と誤判定されて、下りＳＯＣ制御が不必要に実行されてしまうことが懸念される。
【０００８】
この対策として、トンネル区間を考慮してプレＳＯＣ制御の対象傾斜区間の有無を判定することが考えられる。具体的には、走行予定経路にトンネル区間が含まれる場合には、トンネル区間の勾配情報の大きさを地図情報から取得された勾配情報の大きさよりも小さい値（たとえば０）にした上で、対象傾斜区間の有無を判定することが考えられる。これにより、トンネル区間が対象傾斜区間と誤判定され難くなるため、対象傾斜区間の判定精度が向上し、プレＳＯＣ制御が適切に実行され得る。
【０００９】
ところが、トンネル区間の有無を判定するためのパラメータとして、現在位置から所定距離（たとえば５ｋｍ）だけ先の判定位置にトンネルがあるか否かだけを示す「トンネルフラグ」が用いられる場合、走行予定経路を計画してからしばらくの間、近場のトンネルを見落としてしまうことが懸念される。具体的には、たとえば車両システムの起動（立上げ）時あるいは走行予定経路の変更時においては、走行予定経路が新たに計画されるため、それまでのトンネルフラグの履歴は破棄され、車両システムの起動後あるいは走行予定経路の変更後に新たに受信されたトンネルフラグを用いてトンネル区間の有無が新たに判定されることになる。したがって、車両システムの起動直後あるいは走行予定経路の変更直後においては、判定位置にトンネルがあることを特定できるが、判定位置よりも手間の近場にトンネルがあるか否かを判定することができない。
【００１０】
本開示は、上述の課題を解決するためになされたものであって、その目的は、トンネル区間を考慮してプレＳＯＣ制御の対象傾斜区間の有無を判定する電動車両において、走行予定経路を計画した直後のトンネルの見落としを軽減することである。
【課題を解決するための手段】
【００１１】
本開示による電動車両は、駆動輪に接続された走行用の回転電機と、回転電機に電気的に接続された蓄電装置と、地勢データから作成された勾配情報を含む地図情報が記憶されたデータベースを有するナビゲーション装置と、電動車両の走行予定経路に所定条件を満たす対象傾斜区間があるか否かを地図情報を用いて判定し、対象傾斜区間がある場合に対象傾斜区間への進入前から蓄電装置の充電状態を予め変更するプレＳＯＣ制御を実行する制御装置とを備える制御装置は、走行予定経路に対象傾斜区間があるか否かを判定する際、現在位置から所定距離だけ先の判定位置にトンネルがあるか否かを示すトンネル情報を用いてトンネル区間を特定し、特定されたトンネル区間の勾配情報の大きさを地図情報から取得された勾配情報の大きさよりも小さい値にする。制御装置は、走行予定経路を計画してから所定期間が経過するまでは、判定位置にトンネルがあることをトンネル情報が示す場合、判定位置よりも先の範囲および判定位置よりも手前の範囲をトンネル区間と特定する。
【００１２】
走行予定経路の計画直後においてトンネル情報が判定位置にトンネルがあることを示す場合、判定位置にトンネルがあることを特定できるが、判定位置よりも手間の近場にトンネルがあるか否かを判定することができない。そこで、上記構成による制御装置は、走行予定経路を計画してから所定期間が経過するまでは、判定位置にトンネルがあることをトンネル情報が示す場合、判定位置よりも手前の範囲にもトンネルがあると推定して、判定位置よりも先の範囲だけでなく、判定位置よりも手前の範囲をもトンネル区間と特定する。これにより、判定位置よりも先の範囲だけをトンネル区間と特定する場合に比べて、判定位置よりも手前の範囲にあるトンネルの見落としを軽減することができる。その結果、トンネル区間を考慮してプレＳＯＣ制御の対象傾斜区間の有無を判定する電動車両において、走行予定経路を計画した直後のトンネルの見落としを軽減することができる。
【図面の簡単な説明】
【００１３】
【図１】車両の全体構成図である。
【図２】ＨＶ−ＥＣＵ、各種センサ及びナビゲーション装置の詳細な構成を示すブロック図である。
【図３】走行制御の処理手順の一例を示すフローチャートである。
【図４】充放電要求パワーＰｂの算出方法の一例を示した図である。
【図５】下りＳＯＣ制御を説明するための図である。
【図６】下りＳＯＣ制御の処理手順の一例を示すフローチャートである。
【図７】対象下り区間の探索処理の手順の一例を示すフローチャートである。
【図８】対象下り区間の探索処理の内容を説明するための図である。
【図９】トンネルフラグＦＴを用いてトンネルがあると判定される状態の一例を模式的に示す図である。
【図１０】トンネルフラグＦＴおよび近距離トンネルフラグＦＴＳを用いてトンネルがあると判定される状態の一例を模式的に示す図である。
【図１１】勾配Ｇｉの設定処理の手順の一例を示すフローチャートである。
【図１２】第１トンネル抽出処理の手順の一例を示すフローチャートである。
【図１３】第２トンネル抽出処理の手順の一例を示すフローチャートである。
【図１４】トンネルフラグＦＴおよび近距離トンネルフラグＦＴＳの状態と、開始距離Ｄｓｔａ、終了距離Ｄｅｎｄ、トンネル抽出状態の設定内容との対応関係を示す図である。
【発明を実施するための形態】
【００１４】
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一又は相当部分には同一符号を付してその説明は繰返さない。
【００１５】
図１は、本実施の形態による車両１の全体構成図である。車両１は、エンジン１０と、第１モータジェネレータ（以下「第１ＭＧ」と称する。）２０と、第２モータジェネレータ（以下「第２ＭＧ」と称する。）３０と、動力分割装置４０と、ＰＣＵ（Power  Control  Unit）５０と、蓄電装置６０と、駆動輪８０とを備える。
【００１６】
この車両１は、エンジン１０の動力及び第２ＭＧ３０の動力の少なくとも一方によって走行するハイブリッド車両である。なお、本開示では、車両１がハイブリッド車両である場合について代表的に説明されるが、本開示を適用可能な車両は、走行用のモータジェネレータを備える電動車両であればよく、ハイブリッド車両には限定されない。
【００１７】
エンジン１０は、空気と燃料との混合気を燃焼させたときに生じる燃焼エネルギをピストンやロータなどの運動子の運動エネルギに変換することによって動力を出力する内燃機関である。動力分割装置４０は、たとえば、サンギヤ、キャリア、リングギヤの３つの回転軸を有する遊星歯車機構を含む。動力分割装置４０は、エンジン１０から出力される動力を、第１ＭＧ２０を駆動する動力と、駆動輪８０を駆動する動力とに分割する。
【００１８】
第１ＭＧ２０及び第２ＭＧ３０は、交流回転電機であり、たとえば、ロータに永久磁石が埋設された三相交流同期電動機である。第１ＭＧ２０は、主として、動力分割装置４０を経由してエンジン１０により駆動される発電機として用いられる。第１ＭＧ２０が発電した電力は、ＰＣＵ５０を介して第２ＭＧ３０又は蓄電装置６０へ供給される。
【００１９】
第２ＭＧ３０は、主として電動機として動作し、駆動輪８０を駆動する。第２ＭＧ３０は、蓄電装置６０からの電力及び第１ＭＧ２０の発電電力の少なくとも一方を受けて駆動され、第２ＭＧ３０の駆動力は駆動輪８０に伝達される。一方、車両１の制動時や下り坂での加速度低減時には、第２ＭＧ３０は、発電機として動作して回生発電を行なう。第２ＭＧ３０が発電した電力は、ＰＣＵ５０を介して蓄電装置６０に回収される。
【００２０】
ＰＣＵ５０は、蓄電装置６０から受ける直流電力を、第１ＭＧ２０及び第２ＭＧ３０を駆動するための交流電力に変換する。また、ＰＣＵ５０は、第１ＭＧ２０及び第２ＭＧ３０により発電された交流電力を、蓄電装置６０を充電するための直流電力に変換する。ＰＣＵ５０は、たとえば、第１ＭＧ２０及び第２ＭＧ３０に対応して設けられる２つのインバータと、各インバータに供給される直流電圧を蓄電装置６０の電圧以上に昇圧するコンバータとを含んで構成される。
【００２１】
蓄電装置６０は、再充電可能な直流電源であり、たとえばリチウムイオン電池やニッケル水素電池等の二次電池を含んで構成される。蓄電装置６０は、第１ＭＧ２０及び第２ＭＧ３０の少なくとも一方が発電した電力を受けて充電される。そして、蓄電装置６０は、その蓄えられた電力をＰＣＵ５０へ供給する。なお、蓄電装置６０として電気二重層キャパシタ等も採用可能である。
【００２２】
蓄電装置６０には、蓄電装置６０の電圧、入出力電流及び温度をそれぞれ検出する電圧センサ、電流センサ及び温度センサ（いずれも図示せず）が設けられる。各センサは、検出値をＢＡＴ−ＥＣＵ１１０に出力する。
【００２３】
車両１は、さらに、ＨＶ−ＥＣＵ（Electronic  Control  Unit）１００と、ＢＡＴ−ＥＣＵ１１０と、各種センサ１２０と、ナビゲーション装置１３０と、ＨＭＩ（Human  Machine  Interface）装置１４０とを備える。
【００２４】
ＨＶ−ＥＣＵ１００、ＢＡＴ−ＥＣＵ１１０、ナビゲーション装置１３０、及びＨＭＩ装置１４０等を含む車両１の制御システム（以下、単に「車両システム」ともいう）は、ユーザが図示しないシステムスイッチを操作することによって起動されたり停止されたりする。なお、車両システムの「起動」とは、車両システムが停止状態（オフ状態）から作動状態（オン状態）に切り替えられることを意味する。
【００２５】
図２は、図１に示したＨＶ−ＥＣＵ１００、各種センサ１２０及びナビゲーション装置１３０の詳細な構成を示すブロック図である。ＨＶ−ＥＣＵ１００、ＢＡＴ−ＥＣＵ１１０、ナビゲーション装置１３０、及びＨＭＩ装置１４０は、ＣＡＮ（Controller  Area  Network）１５０を通じて互いに通信可能に構成されている。
【００２６】
各種センサ１２０は、たとえば、アクセルペダルセンサ１２２、車速センサ１２４、ブレーキペダルセンサ１２６を含む。アクセルペダルセンサ１２２は、ユーザによるアクセルペダル操作量（以下「アクセル開度」ともいう）ＡＣＣを検出する。車速センサ１２４は、車両１の車速ＶＳを検出する。ブレーキペダルセンサ１２６は、ユーザによるブレーキペダル操作量ＢＰを検出する。これらの各センサは、検出結果をＨＶ−ＥＣＵ１００へ出力する。
【００２７】
ＨＶ−ＥＣＵ１００は、ＣＰＵ（Central  Processing  Unit）、処理プログラム等を記憶するＲＯＭ（Read  Only  Memory）、データを一時的に記憶するＲＡＭ（Random  Access  Memory）、各種信号を入出力するための入出力ポート（図示せず）等を含む。ＨＶ−ＥＣＵ１００は、メモリ（ＲＯＭ及びＲＡＭ）に記憶された情報、各種センサ１２０からの情報、ＢＡＴ−ＥＣＵ１１０からの情報に基づいて、所定の演算処理を実行する。そして、ＨＶ−ＥＣＵ１００は、演算処理の結果に基づいて、エンジン１０、ＰＣＵ５０、ＨＭＩ装置１４０等の各機器を制御する。
【００２８】
ＢＡＴ−ＥＣＵ１１０も、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力ポート等を含み（いずれも図示せず）、蓄電装置６０の入出力電流及び／又は電圧の検出値に基づいて蓄電装置６０のＳＯＣを算出する。ＳＯＣは、たとえば、蓄電装置６０の満充電容量に対する現在の蓄電量を百分率で表される。そして、ＢＡＴ−ＥＣＵ１１０は、算出されたＳＯＣをＨＶ−ＥＣＵ１００へ出力する。なお、ＨＶ−ＥＣＵ１００においてＳＯＣを算出してもよい。
【００２９】
ナビゲーション装置１３０は、ナビゲーションＥＣＵ１３２と、地図情報データベース（ＤＢ）１３４と、ＧＰＳ（Global  Positioning  System）受信部１３６と、交通情報受信部１３８とを含む。
【００３０】
地図情報ＤＢ１３４は、ハードディスクドライブ（ＨＤＤ）等によって構成され、地図情報を記憶している。地図情報は、交差点や行き止まり等の「ノード」、ノード同士を接続する「リンク」、及びリンク沿いにある「施設」（建物や駐車場等）に関するデータを含む。なお、各ノードには、ノードの位置情報が付随しており、各リンクには、そのリンクに対応する道路区間の距離情報および勾配情報（平均勾配値やリンク両端の標高等）等が付随している。
【００３１】
ＧＰＳ受信部１３６は、ＧＰＳ衛星（図示せず）からの信号（電波）に基づいて車両１の現在位置を取得し、車両１の現在位置を示す信号をナビゲーションＥＣＵ１３２へ出力する。
【００３２】
交通情報受信部１３８は、ＦＭ多重放送等によって提供されている道路交通情報（たとえばＶＩＣＳ（登録商標）情報）を受信する。この道路交通情報は、少なくとも渋滞情報を含み、その他道路規制情報や駐車場情報等も含み得る。この道路交通情報は、たとえば５分おきに更新される。
【００３３】
ナビゲーションＥＣＵ１３２は、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力ポート（図示せず）等を含み、地図情報ＤＢ１３４、ＧＰＳ受信部１３６及び交通情報受信部１３８から受ける各種情報や信号に基づいて、車両１の現在位置、並びにその周辺の地図情報及び渋滞情報等をＨＭＩ装置１４０及びＨＶ−ＥＣＵ１００へ出力する。
【００３４】
また、ナビゲーションＥＣＵ１３２は、ＨＭＩ装置１４０においてユーザにより車両１の目的地が入力されると、車両１の現在位置から目的地までの経路（走行予定経路）を地図情報ＤＢ１３４に基づいて探索する。この走行予定経路は、車両１の現在位置から目的地までのノード及びリンクの集合によって構成される。そして、ナビゲーションＥＣＵ１３２は、車両１の現在位置から目的地までの探索結果（ノード及びリンクの集合）をＨＭＩ装置１４０およびＨＶ−ＥＣＵ１００へ出力する。
【００３５】
また、ナビゲーションＥＣＵ１３２は、車両１が走行予定経路から離脱した場合、現在位置から目的地までの経路を再探索し、走行予定経路を再探索後の経路に変更するリルート処理を実行する。そして、ナビゲーションＥＣＵ１３２は、リルート処理の結果（変更後の走行予定経路）をＨＭＩ装置１４０およびＨＶ−ＥＣＵ１００へ出力する。
【００３６】
また、ナビゲーションＥＣＵ１３２は、ＨＶ−ＥＣＵ１００からの求めに応じて「先読み区間情報」をＨＶ−ＥＣＵ１００へ出力する。先読み区間情報は、走行予定経路における現在位置から所定距離Ｄ０（たとえば１０ｋｍ程度）だけ先の位置までの区間（以下「先読み区間」ともいう）、および先読み区間に含まれる各リンクの距離情報および勾配情報などを含む情報である。先読み区間情報は、ＨＶ−ＥＣＵ１００における「プレＳＯＣ制御」に用いられる（後述）。
【００３７】
また、ナビゲーションＥＣＵ１３２は、ＨＶ−ＥＣＵ１００からの求めに応じて「トンネルフラグＦＴ」をＨＶ−ＥＣＵ１００へ出力する。トンネルフラグＦＴは、走行予定経路における現在位置から所定距離Ｄ１（Ｄ１＜Ｄ０、たとえばＤ１＝５ｋｍ程度）だけ先の判定位置（以下「第１判定位置」ともいう）にトンネルがあるか否かだけを示す情報である。したがって、トンネルフラグＦＴは、上述の先読み区間情報に含まれる各区間（リンク）とは対応付けられていない情報である。以下では、トンネルフラグＦＴが「オン状態」である場合に第１判定位置にトンネルがあることを示し、トンネルフラグＦＴが「オフ状態」である場合に第１判定位置にトンネルがないことを示すものとする。トンネルフラグＦＴも、先読み区間情報と同様、ＨＶ−ＥＣＵ１００における「プレＳＯＣ制御」に用いられる（後述）。
【００３８】
ＨＭＩ装置１４０は、車両１の運転を支援するための情報をユーザに提供する装置である。ＨＭＩ装置１４０は、代表的には、車両１の室内に設けられたディスプレイ（視覚情報表示装置）であり、スピーカ（聴覚情報出力装置）等も含む。ＨＭＩ装置１４０は、視覚情報（図形情報、文字情報）や聴覚情報（音声情報、音情報）等を出力することによって様々な情報をユーザに提供する。
【００３９】
ＨＭＩ装置１４０は、ナビゲーション装置１３０のディスプレイとして機能する。すなわち、ＨＭＩ装置１４０は、車両１の現在位置、並びにその周辺の地図情報及び渋滞情報等をナビゲーション装置１３０からＣＡＮ１５０を通じて受信し、車両１の現在位置をその周辺の地図情報及び渋滞情報とともに表示する。
【００４０】
また、ＨＭＩ装置１４０は、ユーザが操作可能なタッチパネルとしても作動し、ユーザは、タッチパネルに触れることによって、たとえば、表示されている地図の縮尺を変更したり、車両１の目的地を入力したりすることができる。ＨＭＩ装置１４０において目的地が入力されると、その目的地の情報がＣＡＮ１５０を通じてナビゲーション装置１３０へ送信される。
【００４１】
上述のように、ナビゲーションＥＣＵ１３２は、ＨＶ−ＥＣＵ１００からの求めに応じて、先読み区間情報およびトンネルフラグＦＴをＨＶ−ＥＣＵ１００へ出力する。
【００４２】
ＨＶ−ＥＣＵ１００は、ナビゲーションＥＣＵ１３２から受信した先読み区間情報およびトンネルフラグＦＴを用いて、車両１の省エネルギ運転を支援するための制御として、「プレＳＯＣ制御」（先読みＳＯＣ制御）を実行する。
【００４３】
プレＳＯＣ制御とは、ナビゲーション装置１３０から受信した上述の先読み区間情報およびトンネルフラグＦＴなどを用いて先読み区間にプレＳＯＣ制御の対象となる傾斜区間（以下「対象傾斜区間」ともいう）があるか否かを判定し、対象傾斜区間がある場合には、対象傾斜区間への進入前から蓄電装置６０のＳＯＣを対象傾斜区間に応じて予め変更する制御である。プレＳＯＣ制御の詳細については、後程詳しく説明する。
【００４４】
＜走行制御＞
プレＳＯＣ制御の詳細な説明に先立ち、まず、ＨＶ−ＥＣＵ１００によって実行される車両１の走行制御について説明する。
【００４５】
図３は、ＨＶ−ＥＣＵ１００により実行される走行制御の処理手順の一例を示すフローチャートである。このフローチャートに示される一連の処理は、たとえば車両システムの作動中に所定時間毎に繰り返し実行される。
【００４６】
ＨＶ−ＥＣＵ１００は、アクセルペダルセンサ１２２及び車速センサ１２４からそれぞれアクセル開度ＡＣＣ及び車速ＶＳの検出値を取得するとともに、蓄電装置６０のＳＯＣをＢＡＴ−ＥＣＵ１１０から取得する（ステップＳ１０）。
【００４７】
次いで、ＨＶ−ＥＣＵ１００は、取得されたアクセル開度ＡＣＣ及び車速ＶＳの検出値に基づいて、車両１に対する要求トルクＴｒを算出する（ステップＳ１５）。たとえば、アクセル開度ＡＣＣと、車速ＶＳと、要求トルクＴｒとの関係を示すマップを事前に準備してＨＶ−ＥＣＵ１００のＲＯＭにマップとして記憶しておき、そのマップを用いて、アクセル開度ＡＣＣ及び車速ＶＳの検出値に基づいて要求トルクＴｒを算出することができる。そして、ＨＶ−ＥＣＵ１００は、算出された要求トルクＴｒに車速ＶＳを乗算することによって、車両１に対する走行パワーＰｄ（要求値）を算出する（ステップＳ２０）。
【００４８】
続いて、ＨＶ−ＥＣＵ１００は、蓄電装置６０に対する充放電要求パワーＰｂを算出する（ステップＳ２５）。この充放電要求パワーＰｂは、蓄電装置６０のＳＯＣ（実績値）とその目標との差ΔＳＯＣに基づいて算出され、充放電要求パワーＰｂが正の値であるときは、蓄電装置６０に対して充電が要求されることを示し、充放電要求パワーＰｂが負の値であるときは、蓄電装置６０に対して放電が要求されることを示す。
【００４９】
図４は、蓄電装置６０に対する充放電要求パワーＰｂの算出方法の一例を示した図である。蓄電装置６０のＳＯＣ（実績値）と、ＳＯＣの制御目標を示す目標ＳＯＣとの差ΔＳＯＣが正の値であるとき（ＳＯＣ＞目標ＳＯＣ）、充放電要求パワーＰｂは負の値となり（放電要求）、ΔＳＯＣの絶対値が大きいほど充放電要求パワーＰｂの絶対値も大きくなる。一方、ΔＳＯＣが負の値であるとき（ＳＯＣ＜目標ＳＯＣ）、充放電要求パワーＰｂは正の値となり（充電要求）、ΔＳＯＣの絶対値が大きいほど充放電要求パワーＰｂの絶対値も大きくなる。なお、この例では、ΔＳＯＣの絶対値が小さい場合には、充放電要求パワーＰｂを０とする不感帯が設けられている。
【００５０】
図３に戻って、ＨＶ−ＥＣＵ１００は、次式（１）に示されるように、ステップＳ２０において算出された走行パワーＰｄと、ステップＳ２５において算出された充放電要求パワーＰｂと、システム損失Ｐｌｏｓｓとの合計値を、エンジン１０に対して要求されるエンジン要求パワーＰｅを算出する（ステップＳ３０）。
【００５１】
Ｐｅ＝Ｐｄ＋Ｐｂ＋Ｐｌｏｓｓ  …（１）
次いで、ＨＶ−ＥＣＵ１００は、算出されたエンジン要求パワーＰｅが所定のエンジン始動しきい値Ｐｅｔｈよりも大きいか否かを判定する（ステップＳ３５）。なお、しきい値Ｐｅｔｈは、エンジン１０が所定の運転効率よりも高い運転効率で運転され得る値に設定される。
【００５２】
ステップＳ３５においてエンジン要求パワーＰｅがしきい値Ｐｅｔｈよりも大きいと判定されると（ステップＳ３５においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、エンジン１０を始動するようにエンジン１０を制御する（ステップＳ４０）。なお、エンジン１０が既に運転中であれば、このステップはスキップされる。そして、ＨＶ−ＥＣＵ１００は、エンジン１０及び第２ＭＧ３０の双方からの出力を用いて車両１が走行するようにエンジン１０及びＰＣＵ５０を制御する。すなわち、車両１は、エンジン１０及び第２ＭＧ３０の出力を用いたハイブリッド走行（ＨＶ走行）を行なう（ステップＳ４５）。
【００５３】
一方、ステップＳ３５においてエンジン要求パワーＰｅがしきい値Ｐｅｔｈ以下であると判定されると（ステップＳ３５においてＮＯ）、ＨＶ−ＥＣＵ１００は、エンジン１０を停止するようにエンジン１０を制御する（ステップＳ５０）。なお、エンジン１０が既に停止中であれば、このステップはスキップされる。そして、ＨＶ−ＥＣＵ１００は、第２ＭＧ３０の出力のみを用いて車両１が走行するようにＰＣＵ５０を制御する。すなわち、車両１は、第２ＭＧ３０の出力のみを用いた電動機走行（ＥＶ走行）を行なう（ステップＳ５５）。
【００５４】
なお、上記において、実際のＳＯＣが目標ＳＯＣよりも高いときは（ΔＳＯＣ＞０）、充放電要求パワーＰｂは負の値となるので、ＳＯＣが目標ＳＯＣに制御されている場合に比べて、エンジン要求パワーＰｅが小さくなることによりエンジン１０は始動されにくい状態となることが理解される。その結果、蓄電装置６０の放電が促進され、ＳＯＣは低下傾向を示す。
【００５５】
一方、実際のＳＯＣが目標ＳＯＣよりも低いときは（ΔＳＯＣ＜０）、充放電要求パワーＰｂは正の値となるので、ＳＯＣが目標ＳＯＣに制御されている場合に比べて、エンジン要求パワーＰｅが大きくなることによりエンジン１０は始動され易い状態となることが理解される。その結果、蓄電装置６０の充電が促進され、ＳＯＣは上昇傾向を示す。
【００５６】
＜プレＳＯＣ制御の詳細＞
次に、ＨＶ−ＥＣＵ１００により実行されるプレＳＯＣ制御の詳細について説明する。プレＳＯＣ制御には、「下りＳＯＣ制御」および「上りＳＯＣ制御」が含まれる。
【００５７】
下りＳＯＣ制御とは、ナビゲーション装置１３０から受信した先読み区間情報およびトンネルフラグＦＴなどを用いて先読み区間に下り抽出条件を満たす対象下り区間があるか否かを判定し、対象下り区間がある場合には、対象下り区間への進入前から蓄電装置６０のＳＯＣを予め低下させる制御である。
【００５８】
車両１が対象下り区間を走行する際には、第２ＭＧ３０の回生電力の増加によって蓄電装置６０のＳＯＣが上昇する。しかしながら、下りＳＯＣ制御によって対象下り区間への進入前にＳＯＣが予め低下されているため、対象下り区間の走行中にＳＯＣが上限値ＳＵ（図５参照）に達すること（ＳＯＣのオーバーフロー）が抑制される。そのため、第２ＭＧ３０の回生電力を無駄に消費することなく蓄電装置６０に適切に回収することができる。
【００５９】
上りＳＯＣ制御は、ナビゲーション装置１３０から取得された先読み区間情報およびトンネルフラグＦＴなどを用いて先読み区間に上り抽出条件を満たす対象上り区間があるか否かを判定し、対象上り区間がある場合には、対象上り区間への進入前から蓄電装置のＳＯＣを予め増加させる制御である。
【００６０】
車両１が対象上り区間を走行する際には、第２ＭＧ３０の電力消費の増加によって蓄電装置６０のＳＯＣが低下する。しかしながら、上りプレ放電制御によって対象上り区間への進入前にＳＯＣが予め増加されているため、対象上り区間の走行中にＳＯＣが下限値ＳＬ（図５参照）に低下すること（ＳＯＣのアンダーフロー）が抑制され、エンジン１０の運転効率が低い状態での蓄電装置６０の強制充電が抑制される。なお、強制充電とは、ＳＯＣが下限値ＳＬに低下した場合に、エンジン１０が仮に最適動作点で運転できない状況であってもエンジン１０を強制的に始動して第１ＭＧ２０による蓄電装置６０の充電を行なう制御である。
【００６１】
下りＳＯＣ制御および上りＳＯＣ制御は、対象傾斜区間の道路勾配（下り勾配であるか上り勾配であるか）およびＳＯＣの変更方向（増加方向であるか低下方向であるか）が相違するが、その他の内容については類似する点が多い。そのため、以下では、主に、下りＳＯＣ制御について詳しく説明する。
【００６２】
＜下りＳＯＣ制御＞
図５は、下りＳＯＣ制御を説明するための図である。図５において、横軸は、車両１の走行予定経路の各地点を示す。図５に示される例では、走行予定経路における先読み区間として区間１〜区間８が示されている。縦軸は、車両１の走行予定経路における道路の標高、及び蓄電装置６０のＳＯＣを示す。図中、線Ｌ２１は、蓄電装置６０の目標ＳＯＣを示す。また、線Ｌ２２は、下りＳＯＣ制御が実行される場合のＳＯＣの推移を示し、点線Ｌ２３は、比較例として、下りＳＯＣ制御が実行されない場合のＳＯＣの推移を示す。
【００６３】
ＨＶ−ＥＣＵ１００は、車両１の現在位置、現在位置周辺の地図情報および渋滞情報、先読み区間情報、およびトンネルフラグＦＴ等をナビゲーション装置１３０から取得し、走行予定経路における先読み区間（現在位置から所定距離Ｄ０だけ先の位置までの区間）に、下り抽出条件を満たす対象下り区間（以下、単に「対象下り区間Ｂ」ともいう）が存在するか否かを判定する「制御対象探索処理」を行なう。
【００６４】
なお、本実施の形態において、下り抽出条件は、下り勾配の大きい下り坂の開始地点から次に一定距離以上の平坦が続く直前の地点までの区間であって、かつ一定以上の標高差および距離がある区間である、という条件に設定される。下り抽出条件を満たす区間が対象下り区間Ｂとして抽出される。
【００６５】
図５には、地点Ｐ２０において、対象下り区間Ｂの探索が行なわれ、区間４〜区間６が対象下り区間Ｂであると特定された場合が例示されている。ＨＶ−ＥＣＵ１００は、通常走行時は、蓄電装置６０の目標ＳＯＣを値Ｓｎに設定する（たとえば区間１）。仮に、蓄電装置６０のＳＯＣが値Ｓｎに制御されたままで車両１が対象下り区間Ｂ（区間４〜区間６）に進入すると、対象下り区間Ｂでは第２ＭＧ３０により回生発電が行なわれることにより蓄電装置６０が充電されるので、ＳＯＣは値Ｓｎから上昇する（点線Ｌ２３）。そして、対象下り区間Ｂの走行中にＳＯＣが上限値ＳＵに達すると（地点Ｐ２５ａ）、下り坂を走行しているにも拘わらず第２ＭＧ３０により回生発電された電力を蓄電装置６０に蓄えることができず（オーバーフロー発生）、回収可能なエネルギを捨てることになるとともに、蓄電装置６０の劣化も促進され得る。
【００６６】
そこで、本実施の形態による車両１では、下り抽出条件を満たす対象下り区間Ｂ（区間４〜区間６）が特定され、その対象下り区間Ｂの開始地点Ｐ２３より所定距離手前の地点Ｐ２１ａに車両１が到達すると、ＨＶ−ＥＣＵ１００は、目標ＳＯＣを値Ｓｎよりも低い値Ｓｄに変更する（線Ｌ２１）。そうすると、ＳＯＣが目標ＳＯＣよりも高い状態となり（ΔＳＯＣ＞０）、上述のように、蓄電装置６０の放電が促進され、ＳＯＣは低下する（線Ｌ２２）。
【００６７】
図５では、対象下り区間Ｂの開始地点Ｐ２３に車両１が到達するまでに、ＳＯＣが値Ｓｄまで低下している。これにより、対象下り区間Ｂ（区間４〜区間６）の走行中にＳＯＣが上限値ＳＵに達するのを抑制し、回収可能なエネルギを捨てることによる燃費低下や蓄電装置６０の過充電による劣化が抑制される。
【００６８】
対象下り区間Ｂの終了地点Ｐ２６に車両１が到達すると、ＨＶ−ＥＣＵ１００は、下りＳＯＣ制御を終了し、目標ＳＯＣを値Ｓｎに復帰させる。
【００６９】
なお、以下では、目標ＳＯＣが値Ｓｎから値Ｓｄに変更される地点Ｐ２１ａ（下りＳＯＣ制御の開始地点）から対象下り区間Ｂの開始地点Ｐ２３までの区間を「下り前区間Ａ」とも記載する。また、下り前区間Ａと対象下り区間Ｂとを合わせた区間（目標ＳＯＣが値Ｓｎから値Ｓｄに変更されている区間）を「下りＳＯＣ制御区間」とも記載する。
【００７０】
このように、下りＳＯＣ制御が実行されることによって、対象下り区間Ｂへの進入前から目標ＳＯＣが値Ｓｎよりも低い値Ｓｄに変更される。これにより、蓄電装置６０の放電が促進され、蓄電装置６０の電力が多く消費される。その結果、対象下り区間Ｂの走行中における回生電力の回収量を増やすことができる。
【００７１】
＜下りＳＯＣ制御の制御フロー＞
図６は、ＨＶ−ＥＣＵ１００により実行される下りＳＯＣ制御の処理手順の一例を示すフローチャートである。なお、このフローチャートに示される一連の処理は、車両システムの作動中に所定時間毎に繰り返し実行される。
【００７２】
ＨＶ−ＥＣＵ１００は、上述の先読み区間情報の更新タイミングであるか否かを判定する（ステップＳ１１０）。先読み区間情報の更新タイミングは、たとえば、車両１の走行経路が変更されたとき（走行予定経路から車両１が離脱したとき）、所定時間経過したとき、所定距離走行したとき、対象下り区間Ｂを通過したとき等である。
【００７３】
ステップＳ１１０において先読み区間情報の更新タイミングではないと判定されると（ステップＳ１１０においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ１１５の処理を実行することなくステップＳ１２０へ処理を移行する。
【００７４】
ステップＳ１１０において先読み区間情報の更新タイミングであると判定されると（ステップＳ１１０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、ナビゲーション装置１３０から取得される現在位置、先読み区間情報、およびトンネルフラグＦＴ等に基づいて、制御対象（対象下り区間Ｂ）の探索処理を実行する（ステップＳ１１５）。この探索処理の詳細については、後程詳しく説明する。
【００７５】
制御対象の探索処理が終了すると、ＨＶ−ＥＣＵ１００は、走行予定経路における先読み区間に対象下り区間Ｂが存在するか否かを判定する（ステップＳ１２０）。具体的には、ＨＶ−ＥＣＵ１００は、探索処理によって対象下り坂として「有効」（後述の図７のステップＳ２４０参照）と判定された区間がある場合に、対象下り区間Ｂが存在すると判定する。
【００７６】
ステップＳ１２０において対象下り区間Ｂは無いと判定されると（ステップＳ１２０においてＮＯ）、ＨＶ−ＥＣＵ１００は、以降の一連の処理を実行することなくリターンへと処理を移行する。
【００７７】
ステップＳ１２０において対象下り区間Ｂが有ると判定されると（ステップＳ１２０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、車両１が下り前区間Ａ（対象下り区間Ｂの開始地点より所定距離手前の地点から対象下り区間Ｂの開始地点までの区間）に進入する前であるか否かを判定する（ステップＳ１２５）。
【００７８】
ステップＳ１２５において車両１が下り前区間Ａに進入する前であると判定されると（ステップＳ１２５においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、以降の一連の処理を実行することなくリターンへと処理を移行する。
【００７９】
ステップＳ１２５において車両１が下り前区間Ａに進入した後であると判定されると（ステップＳ１２５においてＮＯ）、ＨＶ−ＥＣＵ１００は、車両１が対象下り区間Ｂの終了地点を通過したか否かを判定する（ステップＳ１３０）。
【００８０】
ステップＳ１３０において車両１が対象下り区間Ｂの終了地点を通過していないと判定されると（ステップＳ１３０においてＮＯ）、車両１が下りＳＯＣ制御区間を走行中であるため、ＨＶ−ＥＣＵ１００は、下りＳＯＣ制御を実行する（ステップＳ１３５）。具体的には、図５で説明したように、ＨＶ−ＥＣＵ１００は、蓄電装置６０の目標ＳＯＣを通常時の値Ｓｎよりも低い値Ｓｄに設定する。これにより、車両１が対象下り区間Ｂに進入する前に蓄電装置６０のＳＯＣが下げられる。
【００８１】
ステップＳ１３０において車両１が対象下り区間Ｂの終了地点を通過したと判定されると（ステップＳ１３０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、下りＳＯＣ制御を終了する（ステップＳ１６０）。具体的には、ＨＶ−ＥＣＵ１００は、蓄電装置６０の目標ＳＯＣを値Ｓｄから通常時の値Ｓｎに復帰させる。
【００８２】
＜対象下り区間の探索処理フロー＞
図７は、ＨＶ−ＥＣＵ１００により実行される対象下り区間Ｂの探索処理（図６のステップＳ１１５の処理）の手順の一例を示すフローチャートである。
【００８３】
ＨＶ−ＥＣＵ１００は、ナビゲーション装置１３０から取得した先読み区間情報をメモリに記憶するとともに、探索対象の区間ｉを「０」に初期化する（ステップＳ２００）。先読み区間情報には、上述したように、先読み区間および先読み区間に含まれる各リンク（区間）の距離情報および勾配情報などが含まれる。以下、先読み区間情報に含まれるリンク（区間）の総数を「先読み区間数」とも称する。
【００８４】
次いで、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの勾配Ｇｉをメモリから読み出す（ステップＳ２１０）。なお、勾配Ｇｉは、後述の図１１の処理フローによって予め設定されてメモリに記憶されている。ＨＶ−ＥＣＵ１００は、その勾配Ｇｉをメモリから読み出す。勾配Ｇｉの設定処理（図１１の処理フロー等）については後程詳しく説明する。
【００８５】
次いで、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの勾配Ｇｉが閾値Ｇｔｈ１よりも小さいか否かを判定する（ステップＳ２２０）。ここで、閾値Ｇｔｈ１は負の値であるため、「勾配Ｇｉが閾値Ｇｔｈ１よりも小さい」とは、閾値Ｇｔｈ１の大きさ（絶対値）よりも大きい勾配を有する下り坂であることを表わす。
【００８６】
ステップＳ２２０において勾配Ｇｉが閾値Ｇｔｈ１よりも小さいと判定されると（ステップＳ２２０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、下り起点が０であるか否かを判定する（ステップＳ２３０）。
【００８７】
ステップＳ２３０において下り起点が０であると判定されると（ステップＳ２３０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、下り起点を現在の探索対象区間ｉに設定するとともに、標高差ΔＨおよび下り距離ＤＧを０にリセットする（ステップＳ２３２）。
【００８８】
ステップＳ２３０において下り起点が０でないと判定されると（ステップＳ２３０においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ２３２の処理を実行することなくステップＳ２３４へと処理を移行する。この場合、下り起点は現在の値に維持される。
【００８９】
次いで、ＨＶ−ＥＣＵ１００は、下り起点から現在の探索対象区間ｉの終点までの標高差ΔＨおよび下り距離ＤＧを算出するとともに、平坦起点ｋおよび平坦距離ＤＦ（後述）を０にリセットする（ステップＳ２３４）。
【００９０】
ＨＶ−ＥＣＵ１００は、次式（２）に示されるように、標高差ΔＨの前回値（下り起点から現在の探索対象区間ｉの直前の区間ｉ−１の終点までの標高差）に、現在の探索対象区間ｉの標高差ΔＨｉを加えた値を、標高差ΔＨの今回値（下り起点から現在の探索対象区間ｉの終点までの標高差）として算出する。なお、標高差ΔＨは、大きさ（絶対値）で算出される。
【００９１】
ΔＨ（今回値）＝ΔＨ（前回値）＋ΔＨｉ  …（２）
なお、現在の探索対象区間ｉの標高差ΔＨｉは、現在の探索対象区間ｉの距離情報および勾配情報から算出される。
【００９２】
ＨＶ−ＥＣＵ１００は、次式（３）に示されるように、下り距離ＤＧの前回値（下り起点から現在の探索対象区間ｉの直前の区間ｉ−１の終点までの下り距離）に、現在の探索対象区間ｉの下り距離ＤＧｉを加えた値を、下り距離ＤＧの今回値（下り起点から現在の探索対象区間ｉの終点までの下り距離）として算出する。
【００９３】
ＤＧ（今回値）＝ＤＧ（前回値）＋ＤＧｉ  …（３）
なお、現在の探索対象区間ｉの下り距離ＤＧｉは、現在の探索対象区間ｉの距離情報および勾配情報から算出される。
【００９４】
次いで、ＨＶ−ＥＣＵ１００は、ステップＳ２３４で算出された標高差ΔＨが閾値ΔＨｔｈ１よりも大きいか否かを判定する（ステップＳ２３６）。また、ＨＶ−ＥＣＵ１００は、ステップＳ２３４で算出された下り距離ＤＧが閾値ＤＧｔｈ１よりも大きいか否かを判定する（ステップＳ２３８）。
【００９５】
ステップＳ２３６において標高差ΔＨが閾値ΔＨｔｈ１よりも大きいと判定された場合（ステップＳ２３６においてＹＥＳ）で、かつステップＳ２３８において下り距離ＤＧが閾値ＤＧｔｈ１よりも大きいと判定された場合（ステップＳ２３８においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、対象下り坂を「有効」と判定する（ステップＳ２４０）。
【００９６】
ステップＳ２３６において標高差ΔＨが閾値ΔＨｔｈ１よりも小さいと判定された場合（ステップＳ２３６においてＮＯ）、あるいはステップＳ２３８において下り距離ＤＧが閾値ＤＧｔｈ１よりも小さいと判定された場合（ステップＳ２３８においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ２４０の処理を実行することなくステップＳ２５０へと処理を移行する。
【００９７】
次いで、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの番号を１つインクリメントする（ステップＳ２５０）。
【００９８】
次いで、ＨＶ−ＥＣＵ１００は、探索対象区間ｉが先読み区間数（先読み区間情報に含まれる区間の総数）よりも大きいか否かを判定する（ステップＳ２５２）。
【００９９】
ステップＳ２５２において探索対象区間ｉが先読み区間数以下であると判定されると（ステップＳ２５２においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ２１０へと処理を戻し、ステップＳ２１０以降の処理を繰り返す。
【０１００】
ステップＳ２５２において探索対象区間ｉが先読み区間数よりも大きいと判定されると（ステップＳ２５２においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、ステップＳ２４０において対象下り坂が「有効」と判定されており、かつ下り終点が０であるか否かを判定する（ステップＳ２５４）。
【０１０１】
ステップＳ２５４において対象下り坂が有効であり、かつ下り終点が０であると判定されると（ステップＳ２５４にてＹＥＳ）、ＨＶ−ＥＣＵ１００は、下り終点を探索対象区間ｉの直前の区間ｉ−１に設定する（ステップＳ２５６）。その後、ＨＶ−ＥＣＵ１００は、処理を終了する。
【０１０２】
ステップＳ２５４において対象下り坂が有効でない、あるいは下り終点が０でないと判定されると（ステップＳ２５４にてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ２５６の処理を実行することなく処理を終了する。
【０１０３】
ステップＳ２２０において勾配Ｇｉが閾値Ｇｔｈ１よりも大きいと判定されると（ステップＳ２２０においてＮＯ）、ＨＶ−ＥＣＵ１００は、平坦起点ｋが０であるか否かを判定する（ステップＳ２６０）。
【０１０４】
ステップＳ２６０において平坦起点ｋが０であると判定されると（ステップＳ２６０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、平坦起点ｋを現在の探索対象区間ｉに設定する（ステップＳ２６２）。
【０１０５】
ステップＳ２６０において平坦起点ｋが０でないと判定されると（ステップＳ２６０においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ２６２の処理を実行することなくステップＳ２７０へと処理を移行する。この場合、平坦起点ｋは現在の値に維持される。
【０１０６】
次いで、ＨＶ−ＥＣＵ１００は、平坦起点ｋから現在の探索対象区間ｉの終点までの平坦距離ＤＦを算出する（ステップＳ２７０）。
【０１０７】
ＨＶ−ＥＣＵ１００は、次式（４）に示されるように、平坦距離ＤＦの前回値（平坦起点ｋから現在の探索対象区間ｉの直前の区間ｉ−１の終点までの平坦距離）に、現在の探索対象区間ｉの平坦距離ＤＦｉを加えた値を、平坦距離ＤＦの今回値（平坦起点から現在の探索対象区間ｉの終点までの平坦距離）として算出する。
【０１０８】
ＤＦ（今回値）＝ＤＦ（前回値）＋ＤＦｉ  …（４）
次いで、ＨＶ−ＥＣＵ１００は、ステップＳ２７０において算出された平坦距離ＤＦが閾値ＤＦｔｈよりも大きいか否かを判定する（ステップＳ２７２）。
【０１０９】
ステップＳ２７２において平坦距離ＤＦが閾値ＤＦｔｈ以下であるとを判定されると（ステップＳ２７２にてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ２５０へと処理を移行する。
【０１１０】
ステップＳ２７２において平坦距離ＤＦが閾値ＤＦｔｈよりも大きいと判定されると（ステップＳ２７２にてＹＥＳ）、ＨＶ−ＥＣＵ１００は、対象下り坂が「有効」であるか否かを判定する（ステップＳ２７４）。
【０１１１】
ステップＳ２７４において対象下り坂が「有効」でないと判定されると（ステップＳ２７４においてＮＯ）、ＨＶ−ＥＣＵ１００は、下り起点が０であるか否かを判定する（ステップＳ２７６）。
【０１１２】
ステップＳ２７６において下り起点が０であると判定されると（ステップＳ２７６においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、ステップＳ２５０へと処理を移行する。
【０１１３】
ステップＳ２７６において下り起点が０でないと判定されると（ステップＳ２７６においてＮＯ）、ＨＶ−ＥＣＵ１００は、下り起点を０にリセットする（ステップＳ２７８）。その後、ＨＶ−ＥＣＵ１００は、ステップＳ２５０へと処理を移行する。
【０１１４】
ステップＳ２７４において対象下り坂が「有効」であると判定されると（ステップＳ２７４においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、平坦起点ｋの直前の区間ｋ−１を、下り終点に設定する（ステップＳ２８０）。その後、ＨＶ−ＥＣＵ１００は、処理を終了する。すなわち、本実施の形態において、ＨＶ−ＥＣＵ１００は、先読み区間に１組の下り起点および下り終点が特定された（すなわち１つの対象下り区間が特定された）時点で、探索対象区間ｉが先読み区間数に達していなくても、対象下り区間の探索処理を終了する。
【０１１５】
＜トンネル区間の勾配無効化＞
上述のように、ＨＶ-ＥＣＵ１００は、対象下り区間の探索処理（図６のステップＳ１１５の処理）を行なう際、各区間ｉの勾配Ｇｉを参照して対象下り区間を特定する。
【０１１６】
ところが、ナビゲーション装置１３０に記憶されている勾配情報から各区間ｉの勾配Ｇｉを取得する場合には、トンネル区間において勾配精度が低くなり、対象下り区間を適切に特定できないことが懸念される。
【０１１７】
通常、ナビゲーション装置に記憶されている地図情報は、所定間隔（たとえば日本の国土地理院の地図情報の場合は１０ｍ間隔）でメッシュ状の区間に分けられている。そして、各区間の勾配情報は、道路の実際の標高ではなく、予め測定された各区間の地勢（地表面）の標高差に基づいて作成される。そのため、トンネル内の道路の場合、道路の実際の標高は、地図情報の標高（地勢の標高、すなわちトンネルの上方の山肌の標高）よりも低くなる。この影響で、トンネル区間においては、実際の標高と地図情報の標高情報とが一致せず勾配精度が低くなる。したがって、先読み区間にトンネル区間が含まれる場合に、対象下り区間の有無を先読み区間情報に含まれる勾配情報を用いて判定すると、トンネル区間の勾配精度が低いことに起因して対象下り区間Ｂが正しく判定されず、下りＳＯＣ制御が適切に実行されない可能性がある。たとえば、実際には平坦な道路が続くような場所でも、対象下り区間Ｂと誤判定されて、下りＳＯＣ制御が不必要に実行されてしまうことが懸念される。
【０１１８】
上記の点に鑑み、本実施の形態によるＨＶ−ＥＣＵ１００は、対象下り区間の探索処理を行なう際、ナビゲーション装置１３０から受信したトンネルフラグＦＴを用いて、先走行予定経路における先読み区間にトンネル区間が含まれるか否かを判定する。
【０１１９】
そして、先読み区間にトンネル区間が含まれる場合、ＨＶ−ＥＣＵ１００は、トンネル区間の勾配情報の大きさを、先読み区間情報に含まれる勾配情報の大きさよりも小さい値（たとえば０）にする。これにより、トンネル区間の影響による対象下り区間Ｂの誤判定が低減されるため、下りＳＯＣ制御が適切に実行され得る。
【０１２０】
図８は、走行予定経路における先読み区間にトンネル区間が含まれる場合の対象下り区間Ｂの探索処理の内容を説明するための図である。図８の上段に示すグラフの横軸は車両１の走行予定経路の各地点を示し、縦軸は各地点の標高を示す。図８に示される例では、先読み区間として区間１〜区間１１が示されている。図８の下段に示す表には、ナビゲーション装置１３０から取得される先読み区間情報の内容（先読み区間、および各区間の距離情報および勾配情報）が例示される。以下では、勾配情報の値が０である場合に平坦であることを示し、正の値である場合に上り勾配であることを示し、負の値である場合に下り勾配であることを示すものとする。勾配の大きさ（絶対値）が大きいほど、勾配が大きいことを示すものとする。
【０１２１】
図８には、先読み区間（区間１〜区間１１）のうち、区間８〜区間１０がトンネル区間であり、他の区間が通常区間（トンネル区間ではない区間）である例が示されている。
【０１２２】
ＨＶ−ＥＣＵ１００は、先読み区間情報に含まれる距離情報および勾配情報から、各区間の標高差ΔＨを算出するとともに、下り起点（下り勾配が大きい下り坂が始まる区間）および下り終点（次に一定距離以上の平坦が続く直前の区間）を特定する。ＨＶ−ＥＣＵ１００は、特定された下り起点と下り終点との標高差ΔＨが閾値ΔＨｔｈ１よりも大きく、かつ下り起点から下り終点までの下り距離ＤＧが閾値ＤＧｔｈ１よりも大きい場合に、下り起点から下り終点までの区間を対象下り区間Ｂとして特定する。図８においては、区間３〜区間５が対象下り区間Ｂとして特定されている例が示されている。
【０１２３】
ところが、区間８〜区間１０（トンネル区間）においては、走行予定経路の実際の標高（トンネル内の道路の標高、一点鎖線参照）と、ナビゲーション装置１３０の地図情報の標高（地勢の標高、すなわちトンネルの上方の山肌の標高、実線参照）よりも低くなる。その結果、区間８〜区間１０（トンネル区間）においては、ナビゲーション装置１３０の地図情報から取得される勾配情報（先読み区間情報に含まれる勾配情報）の精度が低くなってしまう。
【０１２４】
この点に鑑み、ＨＶ−ＥＣＵ１００は、ナビゲーション装置１３０から受信したトンネルフラグＦＴを用いて先読み区間にトンネル区間が含まれるか否かを判定し、トンネル区間が含まれる場合には、トンネル区間の勾配情報の大きさを、地図情報から取得された勾配情報の大きさよりも小さい「０」にする。これにより、勾配情報の精度が低いトンネル区間が対象下り区間Ｂと誤判定され難くなるため、下りＳＯＣ制御が不必要に実行されてしまうことが抑制される。
【０１２５】
＜トンネル区間の特定＞
上述のように、ＨＶ−ＥＣＵ１００は、ナビゲーション装置１３０から受信したトンネルフラグＦＴを用いて、走行予定経路における先読み区間にトンネル区間が含まれるか否かを判定する。
【０１２６】
ところが、「トンネルフラグＦＴ」は、上述のように、現在位置から所定距離Ｄ１（たとえば５ｋｍ程度）だけ先の「第１判定位置」にトンネルがあるか否かだけを示す情報であり、先読み区間情報に含まれる各区間とは対応付けられていない。そのため、トンネル区間を特定するためのパラメータとして「トンネルフラグＦＴ」が用いられる場合、車両システムの起動（以下「システム起動」ともいう）時あるいは走行予定経路の変更（以下「リルート」ともいう）時において、システム起動後あるいはリルート後、しばらくの間は、第１判定位置よりも近場のトンネルを見落としてしまうことが懸念される。
【０１２７】
図９は、システム起動直後あるいはリルート直後にトンネルフラグＦＴを用いてトンネルがあると判定される状態の一例を模式的に示す図である。システム起動時あるいはリルート時においては、走行予定経路が新たに計画されるため、それまでのトンネルフラグＦＴの履歴は破棄され、システム起動後あるいはリルート後に新たに受信されたトンネルフラグＦＴを用いてトンネル区間の有無が新たに判定されることになる。したがって、図９に示すように、システム起動直後あるいはリルート直後において、トンネルフラグＦＴを用いただけでは、第１判定位置にトンネルがあることを特定できるが、第１判定位置よりも手間の近場にトンネルがあるか否かを特定することができない。
【０１２８】
上記の点に鑑み、本実施の形態によるＨＶ−ＥＣＵ１００は、システム起動時あるいはリルート時（走行予定経路の計画時）から所定期間が経過するまでは、トンネルフラグＦＴに加えて、「近距離トンネルフラグＦＴＳ」を用いて、トンネル区間を特定する。
【０１２９】
「近距離トンネルフラグＦＴＳ」は、走行予定経路における現在位置から所定距離Ｄ２だけ先の判定位置（以下「第２判定位置」ともいう）にトンネルがあるか否かを示す情報である。ここで、所定距離Ｄ２は、所定距離Ｄ１よりも短い値（たとえば、Ｄ１＝５ｋｍ程度である場合にはＤ２＝１ｋｍ程度）に設定される。すなわち、近距離トンネルフラグＦＴＳは、トンネルフラグＦＴに比べて、第１判定位置よりも現在位置により近い第２判定位置におけるトンネルの有無を示す情報である。近距離トンネルフラグＦＴＳが「オン状態」である場合に第２判定位置にトンネルがあることを示し、近距離トンネルフラグＦＴＳが「オフ状態」である場合に第２判定位置にトンネルがないことを示すものとする。
【０１３０】
ナビゲーションＥＣＵ１３２は、トンネルフラグＦＴと同様、ＨＶ−ＥＣＵ１００からの求めに応じて「近距離トンネルフラグＦＴＳ」をＨＶ−ＥＣＵ１００へ出力するように構成される。そして、ＨＶ−ＥＣＵ１００は、システム起動時あるいはリルート時（走行予定経路の計画時）から所定期間が経過するまでは、トンネルフラグＦＴおよび近距離トンネルフラグＦＴＳを用いてトンネル区間を特定する。
【０１３１】
図１０は、システム起動直後あるいはリルート直後にトンネルフラグＦＴおよび近距離トンネルフラグＦＴＳを用いてトンネルがあると判定される状態の一例を模式的に示す図である。上述のように、ＨＶ−ＥＣＵ１００は、システム起動時あるいはリルート時から所定期間が経過するまでは、トンネルフラグＦＴおよび近距離トンネルフラグＦＴＳを用いてトンネル区間を特定する。
【０１３２】
図１０に示す例では、トンネルフラグＦＴおよび近距離トンネルフラグＦＴＳの双方がオン状態である。この場合、ＨＶ−ＥＣＵ１００は、トンネルフラグＦＴを用いて第１判定位置にトンネルがあることを認識することができるだけでなく、近距離トンネルフラグＦＴＳを用いて第１判定位置よりも現在位置により近い第２判定位置にトンネルがあることを認識することができる。そのため、トンネルフラグＦＴだけを用いる場合に比べて、現在位置により近い位置のトンネルの有無を特定することができる。その結果、走行予定経路を計画した直後のトンネルの見落としを軽減することができる。
【０１３３】
ところが、近距離トンネルフラグＦＴＳは、第２判定位置にトンネルがあるか否かだけを示す情報であり、トンネルフラグＦＴと同様、先読み区間情報に含まれる各区間とは対応付けられていない。そのため、近距離トンネルフラグＦＴＳを用いたとしても、第２判定位置よりも近場のトンネルを見落としてしまうことが懸念される。
【０１３４】
そこで、本実施の形態によるＨＶ−ＥＣＵ１００は、システム起動時あるいはリルート時（走行予定経路の計画時）から所定期間が経過するまでは、近距離トンネルフラグＦＴＳがオン状態（第２判定位置にトンネルがあることを示す状態）である場合、第２判定位置よりも手前の範囲もトンネルであると推定し、第２判定位置よりも先の範囲だけでなく第２判定位置よりも手前の範囲をトンネル区間と特定する。これにより、第２判定位置よりも現在位置に近い範囲のトンネルの見落としを防止することができる。
【０１３５】
図１０に示す例では、システム起動直後あるいはリルート直後において、トンネルフラグＦＴおよび近距離トンネルフラグＦＴＳの双方がオン状態である。この場合、ＨＶ-ＥＣＵ１００は、現在位置から第２判定位置までの範囲がトンネルであると推定する。これにより、現在位置から第２判定位置までの範囲にあるトンネルの見落とし（トンネルがあるにも関わらずトンネルがないと判定すること）を防止することができる。さらに、第２判定位置から第１判定位置までの範囲もトンネルが継続している可能性があるため、ＨＶ−ＥＣＵ１００は、第２判定位置から第１判定位置までの範囲もトンネルであると推定する。その結果、ＨＶ-ＥＣＵ１００は、現在位置から第１判定位置よりも先の範囲までをトンネル区間と特定することになる。
【０１３６】
＜勾配設定の処理フロー＞
図１１は、勾配Ｇｉの設定処理の手順の一例を示すフローチャートである。なお、このフローチャートに示される一連の処理は、たとえば車両システムの作動中に所定時間毎に繰り返し実行される。
【０１３７】
ＨＶ−ＥＣＵ１００は、車両システムの起動直後であるか否かを判定する（ステップＳ３００）。ＨＶ−ＥＣＵ１００は、前回サイクルでは停止状態であった車両システムが、今回サイクルで作動状態に切り替わった場合に、車両システムの起動直後であると判定する。
【０１３８】
ステップＳ３００において車両システムの起動直後であると判定されない場合（ステップＳ３００においてＮＯ）、ＨＶ−ＥＣＵ１００は、ナビゲーション装置１３０からの情報に基づいてリルート直後であるか否かを判定する（ステップＳ３０１）。
【０１３９】
ステップＳ３００において車両システムの起動直後であると判定された場合（ステップＳ３００においてＹＥＳ）、あるいはステップＳ３０１においてリルート直後であると判定された場合（ステップＳ３０１においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、経過フラグＴｉｇを「０」に設定する（ステップＳ３０２）。「経過フラグＴｉｇ」は、車両システム起動あるいはリルートによる走行予定経路の計画時から所定期間が経過したか否かを示すフラグである。本実施の形態においては、経過フラグＴｉｇが「０」である場合、走行予定経路の計画時から所定期間が経過していないことを示し、経過フラグＴｉｇが「１」である場合、走行予定経路の計画時から所定期間が経過していることを示すものとする。その後、ＨＶ−ＥＣＵ１００は、ステップＳ３１０へと処理を移行する。
【０１４０】
ステップＳ３００において車両システムの起動直後であると判定されず（ステップＳ３００においてＮＯ）、かつステップＳ３０１においてリルート直後であると判定されない場合（ステップＳ３０１においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ３０２の処理を実行することなく、ステップＳ３１０へと処理を移行する。
【０１４１】
次いで、ＨＶ−ＥＣＵ１００は、経過フラグＴｉｇが「０」であるか否かを判定する（ステップＳ３１０）。
【０１４２】
ステップＳ３１０において経過フラグＴｉｇが「０」であると判定されない場合（ステップＳ３１０においてＮＯ）、ナビゲーション装置１３０から取得されるトンネルフラグＦＴの状態が変化したか否かを判定する（ステップＳ３１１）。
【０１４３】
ステップＳ３１１においてトンネルフラグＦＴの状態が変化したと判定された場合（ステップＳ３１１においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、第１トンネル抽出処理を実行する（ステップＳ３１２）。第１トンネル抽出処理は、トンネルフラグＦＴを用いてトンネル区間を特定する処理である。
【０１４４】
図１２は、第１トンネル抽出処理（図１１のステップＳ３１２）の手順の一例を示すフローチャートである。
【０１４５】
ＨＶ−ＥＣＵ１００は、トンネルフラグＦＴがオフ状態からオン状態に変化したか否かを判定する（ステップＳ３１２Ａ）。
【０１４６】
ステップＳ３１２ＡにおいてトンネルフラグＦＴがオフ状態からオン状態に変化したと判定された場合（ステップＳ３１２ＡにおいてＹＥＳ）、ＨＶ−ＥＣＵ１００は、現在位置からトンネル開始位置までの距離（以下「開始距離Ｄｓｔａ」ともいう）を「所定距離Ｄ１」に設定する（ステップＳ３１２Ｂ）とともに、トンネル抽出状態を「開始のみ」に設定する（ステップＳ３１２Ｃ）。なお、この「開始のみ」は、トンネル開始位置のみが特定され、トンネル終了位置は特定されていない状態を示す。その後、ＨＶ−ＥＣＵ１００は、図１１のステップＳ３２０へと処理を移行する。
【０１４７】
一方、ステップＳ３１２ＡにおいてトンネルフラグＦＴがオフ状態からオン状態に変化したと判定されない場合（ステップＳ３１２ＡにおいてＮＯ）、すなわちトンネルフラグＦＴがオン状態からオフ状態に変化した場合、ＨＶ−ＥＣＵ１００は、現在位置からトンネル終了位置までの距離（以下「終了距離Ｄｅｎｄ」ともいう）を「所定距離Ｄ１」に設定する（ステップＳ３１２Ｄ）とともに、トンネル抽出状態を「終了まで」に設定する（ステップＳ３１２Ｅ）。なお、この「終了まで」は、トンネル開始位置およびトンネル終了位置が特定されている状態を示す。その後、ＨＶ−ＥＣＵ１００は、図１１のステップＳ３２０へと処理を移行する。
【０１４８】
図１１に戻って、ステップＳ３１０において経過フラグＴｉｇが「０」であると判定されると（ステップＳ３１０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、第２トンネル抽出処理を実行する（ステップＳ３１４）。第２トンネル抽出処理は、トンネルフラグＦＴに加えて、近距離トンネルフラグＦＴＳを用いて、トンネル区間を特定する処理である。
【０１４９】
図１３は、第２トンネル抽出処理（図１１のステップＳ３１４）の手順の一例を示すフローチャートである。
【０１５０】
ＨＶ−ＥＣＵ１００は、トンネルフラグＦＴがオン状態であるか否かを判定する（ステップＳ３１４Ａ）とともに、近距離トンネルフラグＦＴＳがオン状態であるか否かを判定する（ステップＳ３１４Ｂ，Ｓ３１４Ｅ）。
【０１５１】
トンネルフラグＦＴがオン状態であると判定されず（ステップＳ３１４ＡにてＮＯ）、かつ近距離トンネルフラグＦＴＳがオン状態であると判定されない場合（ステップＳ３１４ＢにてＮＯ）、ＨＶ−ＥＣＵ１００は、トンネルがないと判定する（ステップＳ３１４Ｃ）。
【０１５２】
トンネルフラグＦＴがオン状態であると判定されず（ステップＳ３１４ＡにてＮＯ）、かつ近距離トンネルフラグＦＴＳがオン状態であると判定された場合（ステップＳ３１４ＢにてＹＥＳ）、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａを「０」、終了距離Ｄｅｎｄを「所定距離Ｄ１」に設定するとともに、トンネル抽出状態を「終了まで」に設定する（ステップＳ３１４Ｄ）。
【０１５３】
トンネルフラグＦＴがオン状態であると判定され（ステップＳ３１４ＡにてＹＥＳ）、かつ近距離トンネルフラグＦＴＳがオン状態であると判定されない場合（ステップＳ３１４ＥにてＮＯ）、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａを「所定距離Ｄ２」に設定するとともに、トンネル抽出状態を「開始のみ」に設定する（ステップＳ３１４Ｆ）。
【０１５４】
トンネルフラグＦＴがオン状態であると判定され（ステップＳ３１４ＡにてＹＥＳ）、かつ近距離トンネルフラグＦＴＳがオン状態であると判定された場合（ステップＳ３１４ＥにてＹＥＳ）、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａを「０」に設定するとともに、トンネル抽出状態を「開始のみ」に設定する（ステップＳ３１４Ｇ）。
【０１５５】
図１４は、トンネルフラグＦＴおよび近距離トンネルフラグＦＴＳの状態と、開始距離Ｄｓｔａ、終了距離Ｄｅｎｄ、トンネル抽出状態の設定内容との対応関係を示す図である。第２トンネル抽出処理ではトンネルフラグＦＴに加えて近距離トンネルフラグＦＴＳを用いてトンネル区間を特定するため、図１４に示すように、第１判定位置よりも現在位置に近い第２判定位置におけるトンネルの有無を判定することができる。その結果、車両システムの起動直後あるいはリルート直後においても、近場のトンネルの見落としを軽減することができる。
【０１５６】
さらに、本実施の形態によるＨＶ-ＥＣＵ１００は、近距離トンネルフラグＦＴＳがオン状態である場合、第２判定位置よりも手間の範囲もトンネルであると推定する。そのため、第２判定位置よりも手間の範囲にあるトンネルの見落としを防止することができる。
【０１５７】
具体的には、近距離トンネルフラグＦＴＳがオン状態であり、トンネルフラグＦＴがオフ状態である場合、ＨＶ-ＥＣＵ１００は、第２判定位置にトンネルがあるので現在位置から第２判定位置までの範囲もトンネルがあると推定して開始距離Ｄｓｔａを「０」に設定し、かつ、第１判定位置にトンネルがないので終了距離Ｄｅｎｄを「所定距離Ｄ１」に設定する（ステップＳ３１４Ｄ）。この場合、現在位置から第１判定位置までの区間がトンネル区間と特定されることになる。
【０１５８】
また、近距離トンネルフラグＦＴＳおよびトンネルフラグＦＴの双方がオン状態である場合、ＨＶ−ＥＣＵ１００は、第２判定位置にトンネルがあるので現在位置から第２判定位置までの範囲もトンネルがあると推定して開始距離Ｄｓｔａを「０」に設定し、かつ、第１判定位置にもトンネルがあり第１判定位置以降もトンネルが継続していることが想定されるため終了距離Ｄｅｎｄを設定しない（ステップＳ３１４Ｇ）。この場合、現在位置から第１判定位置よりも先の区間がトンネル区間と特定されることになる。
【０１５９】
さらに、本実施の形態によるＨＶ-ＥＣＵ１００は、トンネルフラグＦＴがオン状態である場合、第１特定位置よりも手前の範囲もトンネルであると推定する。具体的には、近距離トンネルフラグＦＴＳがオフ状態であり、トンネルフラグＦＴがオン状態である場合、ＨＶ-ＥＣＵ１００は、第２判定位置にトンネルがないが第１判定位置にはトンネルがあるので、第２判定位置から第１判定位置までの範囲（第１特定位置よりも手前の範囲）もトンネルであると推定して開始距離Ｄｓｔａを「所定距離Ｄ２」に設定する（ステップＳ３１４Ｆ）。この場合、第２判定位置から第１判定位置よりも先の区間がトンネル区間と特定されることになる。そのため、第１特定位置よりも手前の範囲のトンネルの見落としを防止することができる。
【０１６０】
なお、近距離トンネルフラグＦＴＳおよびトンネルフラグＦＴの双方がオフ状態である場合、ＨＶ−ＥＣＵ１００は、トンネルはないと判定する（ステップＳ３１４Ｃ）。
【０１６１】
図１１に戻って、第２トンネル抽出処理（ステップＳ３１４）を実行した後、ＨＶ−ＥＣＵ１００は、車両システム起動あるいはリルートによる走行予定経路の計画時から所定期間が経過しているか否かを判定する（ステップＳ３１５）。この「所定期間」は、たとえば、車両システム起動あるいはリルートによる走行予定経路の計画時から車両１が所定距離Ｄ１だけ走行するに要する時間に基づいて設定される。
【０１６２】
走行予定経路の計画時から所定期間が経過している場合（ステップＳ３１５にてＹＥＳ）、ＨＶ−ＥＣＵ１００は、経過フラグＴｉｇを「１」に設定する（ステップＳ３１６）。その後、ＨＶ−ＥＣＵ１００は、ステップＳ３２０へと処理を移行する。一方、走行予定経路の計画時から所定期間が経過していない場合（ステップＳ３１５にてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ３１６の処理を実行することなく、ステップＳ３２０へと処理を移行する。
【０１６３】
次いで、ＨＶ−ＥＣＵ１００は、探索対象区間ｉを「０」に初期化する（ステップＳ３２０）。なお、本処理においては、探索対象区間ｉは、勾配Ｇｉの設定対象区間を意味する。
【０１６４】
次いで、ＨＶ−ＥＣＵ１００は、現在位置から探索対象区間ｉの終点までの距離Ｄを算出する（ステップＳ３２５）。具体的には、ＨＶ−ＥＣＵ１００は、距離Ｄの前回値に、現在の探索対象区間ｉの距離Ｄｉ（先読み情報に含まれる区間ｉの距離情報）を加えた値を、距離Ｄの今回値として算出する。
【０１６５】
次いで、ＨＶ−ＥＣＵ１００は、トンネル抽出状態が「開始のみ」であるのか否かを判定する（ステップＳ３３０）。
【０１６６】
ステップＳ３３０においてトンネル抽出状態が「開始のみ」であると判定された場合（ステップＳ３３０においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、現在位置から探索対象区間ｉの終点までの距離Ｄが開始距離Ｄｓｔａよりも大きいか否かを判定する（ステップＳ３３１）。そして、距離Ｄが開始距離Ｄｓｔａよりも大きい場合（ステップＳ３３１においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの勾配Ｇｉを「０」に設定してメモリに記憶する（ステップＳ３３３）。その後、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの番号を１つインクリメントし（ステップＳ３４０）、探索対象区間ｉが先読み区間数よりも大きいか否かを判定する（ステップＳ３４５）。探索対象区間ｉが先読み区間数以下であると（ステップＳ３４５においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ３２５へと処理を戻し、探索対象区間ｉが先読み区間数よりも大きくなるまで、ステップＳ３２５、Ｓ３３０、Ｓ３３１、Ｓ３３３、Ｓ３４０、Ｓ３４５の処理を繰り返す。これらの一連の処理によって、トンネル抽出状態が「開始のみ」である場合には、トンネル開始位置から先読み区間の終点までの区間がトンネル区間と特定され、特定されたトンネル区間の勾配Ｇｉが「０」に設定されることになる。
【０１６７】
一方、ステップＳ３３０においてトンネル抽出状態が「終了まで」と判定された場合（ステップＳ３３０においてＮＯ）、ＨＶ−ＥＣＵ１００は、現在位置から探索対象区間ｉの終了までの距離Ｄが開始距離Ｄｓｔａよりも大きく、かつ終了距離Ｄｅｎｄよりも小さいか否かを判定する（ステップＳ３３２）。そして、距離Ｄが開始距離Ｄｓｔａよりも大きくかつ終了距離Ｄｅｎｄよりも小さい場合（ステップＳ３３２においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの勾配Ｇｉを「０」に設定してメモリに記憶する（ステップＳ３３３）。その後、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの番号を１つインクリメントし（ステップＳ３４０）、探索対象区間ｉが先読み区間数よりも大きいか否かを判定する（ステップＳ３４５）。探索対象区間ｉが先読み区間数以下であると（ステップＳ３４５においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ３２５へと処理を戻し、探索対象区間ｉが先読み区間数よりも大きくなるまで、ステップＳ３２５、Ｓ３３０、Ｓ３３２、Ｓ３３３、Ｓ３４０、Ｓ３４５の処理を繰り返す。これらの一連の処理によって、トンネル抽出状態が「終了まで」である場合には、先読み区間におけるトンネル開始位置からトンネル終了位置までの区間がトンネル区間と特定され、特定されたトンネル区間の勾配Ｇｉが「０」に設定されることになる。
【０１６８】
なお、ステップＳ３３１において距離Ｄが開始距離Ｄｓｔａよりも大きいと判定されない場合（ステップＳ３３１においてＮＯ）、あるいはステップＳ３３２において距離Ｄが開始距離Ｄｓｔａよりも大きくかつ終了距離Ｄｅｎｄよりも小さいと判定されない場合（ステップＳ３３２においてＮＯ）、探索対象区間ｉにトンネル区間が含まれないことになるため、ＨＶ−ＥＣＵ１００は、探索対象区間ｉの勾配Ｇｉを、地図情報から取得された勾配情報の大きさに設定してメモリに記憶する（ステップＳ３３４）。
【０１６９】
ステップＳ３４５において探索対象区間ｉが先読み区間数よりも大きいと判定されると（ステップＳ３４５においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、ステップＳ３５０〜Ｓ３７０にて、開始距離Ｄｓｔａおよび終了距離Ｄｅｎｄの更新処理を行なう。
【０１７０】
具体的には、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａが正の値であるか否かを判定する（ステップＳ３５０）。また、ＨＶ−ＥＣＵ１００は、終了距離Ｄｅｎｄが正の値であるか否かを判定する（ステップＳ３５５）。
【０１７１】
開始距離Ｄｓｔａが正の値である場合（ステップＳ３５０においてＹＥＳ）、車両１がトンネル開始位置を通過する前であるため、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａおよび終了距離Ｄｅｎｄを更新する（ステップＳ３６０）。
【０１７２】
開始距離Ｄｓｔａが正の値ではなく（ステップＳ３５０においてＮＯ）、かつ終了距離Ｄｅｎｄが正の値である場合（ステップＳ３５５においてＹＥＳ）、車両１がトンネル区間を走行中であるため、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａおよび終了距離Ｄｅｎｄを更新する（ステップＳ３６０）。
【０１７３】
ステップＳ３６０において、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａの前回値から単位時間（１演算サイクル）あたりの車両１の移動距離ΔＤを減算した値を開始距離Ｄｓｔａの今回値として算出するとともに、終了距離Ｄｅｎｄの前回値から上記の移動距離ΔＤを減算した値を終了距離Ｄｅｎｄの今回値として算出する。
【０１７４】
次いで、ＨＶ−ＥＣＵ１００は、終了距離Ｄｅｎｄが負の値であるか否かを判定する（ステップＳ３６５）。
【０１７５】
終了距離Ｄｅｎｄが負の値である場合（ステップＳ３６５にてＹＥＳ）、車両１がトンネル終了位置を通過した後であるため、ＨＶ−ＥＣＵ１００は、開始距離Ｄｓｔａおよび終了距離Ｄｅｎｄをそれぞれ０に設定するとともに、トンネル抽出状態を「対象なし」に設定する（ステップＳ３７０）。
【０１７６】
終了距離Ｄｅｎｄが負の値でない場合（ステップＳ３６５にて）、車両１がトンネル終了位置を通過する前であるため、ＨＶ−ＥＣＵ１００は、ステップＳ３７０の処理を実行することなくリターンへと処理を移行する。
【０１７７】
なお、ステップＳ３１１においてトンネルフラグＦＴの状態が変化したと判定されない場合（ステップＳ３１１においてＮＯ）、ＨＶ−ＥＣＵ１００は、先読み区間情報が更新されたか否かを判定する（ステップＳ３１３）。そして、先読み区間情報が更新されたと判定された場合（ステップＳ３１３においてＹＥＳ）、ＨＶ−ＥＣＵ１００は、ステップＳ３２０へと処理を移行し、ステップＳ３２０以降の処理を実行する。そうでない場合（ステップＳ３１３においてＮＯ）、ＨＶ−ＥＣＵ１００は、ステップＳ３５０へと処理を移行し、ステップＳ３５０以降の処理を実行する。
【０１７８】
以上のように、本実施の形態によるＨＶ−ＥＣＵ１００は、システム起動あるいはリルートによる走行予定経路の計画時から所定期間が経過するまでは、トンネルフラグＦＴに加えて、近距離トンネルフラグＦＴＳを用いてトンネル区間を特定する。
【０１７９】
この際、近距離トンネルフラグＦＴＳがオン状態（第２判定位置にトンネルがあることを示す状態）である場合、ＨＶ-ＥＣＵ１００は、現在位置から第２判定位置までの範囲もトンネルであると推定し、第２判定位置よりも先の範囲だけでなく、現在位置から第２判定位置までの範囲（第２判定位置よりも手前の範囲）をもトンネル区間と特定する。これにより、第２判定位置よりも現在位置に近い範囲にあるトンネルの見落としを防止することができる。
【０１８０】
また、近距離トンネルフラグＦＴＳがオフ状態であるが、トンネルフラグＦＴがオン状態（第１特定位置にトンネルがあることを示す状態）である場合、ＨＶ-ＥＣＵ１００は、第２判定位置から第１特定位置までの範囲もトンネルであると推定し、第１特定位置よりも先の範囲だけでなく、第２判定位置から第１特定位置までの範囲（第１特定位置よりも手前の範囲）をもトンネル区間と特定する。これにより、第１特定位置よりも現在位置に近い範囲にあるトンネルの見落としを防止することができる。
【０１８１】
そして、ＨＶ−ＥＣＵ１００は、トンネル区間が特定された場合には、特定されたトンネル区間の勾配情報の大きさを地図情報から取得された勾配情報の大きさよりも小さい「０」に設定する。これにより、対象下り区間Ｂの探索処理を行なう際に、トンネル区間が対象下り区間Ｂと誤判定され難くなるため、下りＳＯＣ制御が不必要に実行されてしまうことが抑制される。
【０１８２】
なお、上述の実施の形態においては、システム起動あるいはリルートによる走行予定経路の計画時から所定期間が経過するまでは、２つのトンネルフラグ（トンネルフラグＦＴ、近距離トンネルフラグＦＴＳ）を用いてトンネル区間を特定する例について説明したが、トンネル区間の特定に用いるトンネルフラグの数は２つに限定されず、３つ以上であってもよいし、１つであってもよい。
【０１８３】
たとえば、３つ以上のトンネルフラグを用いてトンネル区間を特定する場合には、３つ以上のトンネルフラグのうちから、現在位置に最も近い判定位置（以下「最短判定位置」ともいう）のトンネルの有無を示すトンネルフラグを選択し、そのトンネルフラグがオン状態である場合に、現在位置から最短判定位置までの範囲をトンネルと推定するようにすればよい。また、たとえば１つのトンネルフラグＦＴのみを用いてトンネル区間を特定する場合には、トンネルフラグＴＦがオン状態である場合に、現在位置から第１判定位置までの範囲をトンネルと推定するようにすればよい。いずれの場合であっても、各トンネルフラグの判定位置よりも現在位置に近い範囲にあるトンネルの見落としを防止することができる。
【０１８４】
また、上述の実施の形態においては、主に下りＳＯＣ制御について詳しく説明したが、本開示を上りＳＯＣ制御に適用する場合には、下りＳＯＣ制御で説明した内容を上りＳＯＣ制御に適する内容に適宜変更すればよい。具体的には、下りＳＯＣ制御で説明した「下り」を上りＳＯＣ制御においては「上り」に読み替えるとともに、下りＳＯＣ制御の目標ＳＯＣの値Ｓｎを、上りＳＯＣ制御においては「値Ｓｈ」（図５参照）に読み替え、下りＳＯＣ制御で用いる各種の閾値を、上りＳＯＣ制御に適する値に変更すればよい。
【０１８５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１８６】
１  車両、１０  エンジン、２０  第１ＭＧ、３０  第２ＭＧ、４０  動力分割装置、５０  ＰＣＵ、６０  蓄電装置、８０  駆動輪、１００  ＨＶ−ＥＣＵ、１１０  ＢＡＴ−ＥＣＵ、１２０  各種センサ、１２２  アクセルペダルセンサ、１２４  車速センサ、１２６  ブレーキペダルセンサ、１３０  ナビゲーション装置、１３２  ナビゲーションＥＣＵ、１３４  地図情報ＤＢ、１３６  ＧＰＳ受信部、１３８  交通情報受信部、１４０  ＨＭＩ装置、１５０  ＣＡＮ。
【図１】
2018090052.tif 000003
【図２】
2018090052.tif 000004
【図３】
2018090052.tif 000005
【図４】
2018090052.tif 000006
【図５】
2018090052.tif 000007
【図６】
2018090052.tif 000008
【図７】
2018090052.tif 000009
【図８】
2018090052.tif 000010
【図９】
2018090052.tif 000011
【図１０】
2018090052.tif 000012
【図１１】
2018090052.tif 000013
【図１２】
2018090052.tif 000014
【図１３】
2018090052.tif 000015
【図１４】
2018090052.tif 000016