IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

<>
  • 特許-勾配算出装置 図1
  • 特許-勾配算出装置 図2
  • 特許-勾配算出装置 図3
  • 特許-勾配算出装置 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】勾配算出装置
(51)【国際特許分類】
   G01C 21/32 20060101AFI20240820BHJP
   G09B 29/10 20060101ALI20240820BHJP
   B60W 40/076 20120101ALI20240820BHJP
【FI】
G01C21/32
G09B29/10 A
B60W40/076
【請求項の数】 1
(21)【出願番号】P 2020185768
(22)【出願日】2020-11-06
(65)【公開番号】P2022075164
(43)【公開日】2022-05-18
【審査請求日】2023-07-18
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】樗澤 英明
【審査官】▲高▼木 真顕
(56)【参考文献】
【文献】特開2010-107371(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G08G 1/00-99/00
G01C 21/00-21/36
B60W 10/00-10/30
B60W 30/00-60/00
G09B 29/10
G09B 29/00
(57)【特許請求の範囲】
【請求項1】
記憶装置と、実行装置とを有し、
前記記憶装置は、複数の入力変数が入力されることにより、車両が走行している路面の勾配を示す変数である勾配変数を出力変数として出力する写像を規定する写像データを記憶しており、
複数の前記入力変数は、前記車両が走行している地点の緯度を示す変数である緯度変数、前記車両が走行している地点の経度を示す変数である経度変数、前記車両が走行している道路の種類を示す変数である道路種類変数、前記車両のヘッドライトのオンオフを示す変数であるライト変数、前記車両の走行速度を示す変数である車速変数、及び前記車両が前進走行しているか後進走行しているかを示す変数である前進後進変数を含み、
前記写像は、学習済みのニューラルネットワークであり、
前記実行装置は、
複数の前記入力変数の値を取得する取得処理と、
前記取得処理によって取得した複数の前記入力変数の値を前記写像に入力することによって前記出力変数の値を算出する算出処理とを実行する
勾配算出装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、勾配算出装置に関する。
【背景技術】
【0002】
特許文献1に開示された車両の制御装置は、緯度及び経度の組み合わせ毎に路面の勾配を定めたマップを記憶している。制御装置は、マップに基づいて、車両が走行している地点の緯度及び経度に対応する路面の勾配を算出する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-106017号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば一般道の真上に高速道路が位置している場合のように、同じ緯度及び経度の地点において異なる高さに道路が存在していることがある。そして、それぞれの道路における路面の勾配が互いに異なることがある。このような地点を車両が走行しているときに路面の勾配を算出するにあたって、1つの緯度及び経度の組み合わせに対して1つの路面の勾配が割り当てられた特許文献1のようなマップを利用すると、車両が走行している道路における路面の実際の勾配と、算出した路面の勾配とに乖離が生じるおそれがある。
【課題を解決するための手段】
【0005】
上記課題を解決するための勾配算出装置は、記憶装置と、実行装置とを有し、前記記憶装置は、複数の入力変数が入力されることにより、車両が走行している路面の勾配を示す変数である勾配変数を出力変数として出力する写像を規定する写像データを記憶しており、複数の前記入力変数は、前記車両が走行している地点の緯度を示す緯度変数、前記車両が走行している地点の経度を示す経度変数、及び前記車両が走行している道路の種類を示す変数である道路種類変数を含み、前記実行装置は、前記入力変数の値を取得する取得処理と、前記取得処理によって取得した前記入力変数の値を前記写像に入力することによって前記出力変数の値を算出する算出処理とを実行する。
【0006】
例えば同じ緯度及び経度の地点において異なる高さに道路が存在している場合を考慮し、緯度及び経度のみならず、例えば一般道又は高速道路といった道路の種類と対応させて路面の勾配を定めたマップを作ることが考えられる。しかし、この場合、マップの内容が非常に複雑になり、マップを作るのに手間がかかる。したがって、そのようなマップを作るのは事実上困難である。上記構成のように、写像を利用する場合、適切な訓練データ及び教師データを用意できれば、上記マップを作る場合のような手間をかけずに写像を学習させることができる。その上、上記構成では、入力変数の1つに道路種類変数が含まれている。このから、同じ緯度及び経度の地点において異なる高さに道路が存在している場合でも、道路を区別して路面の勾配を算出できる。したがって、車両が走行している路面の勾配を正しく算出できる。
【図面の簡単な説明】
【0007】
図1】車両の概略構成図。
図2】道路データの一例を示す図。
図3】勾配算出処理の処理手順を表したフローチャート。
図4】勾配算出装置の変更例を表した概略図。
【発明を実施するための形態】
【0008】
以下、勾配算出装置の一実施形態を、図面を参照して説明する。
<車両の概略構成>
図1に示すように、車両100は、内燃機関10、動力分割機構20、自動変速機30、駆動輪69、第1モータジェネレータ61、及び第2モータジェネレータ62を有する。
【0009】
内燃機関10、第1モータジェネレータ61、及び第2モータジェネレータ62は、車両100の駆動源となっている。これら内燃機関10、第1モータジェネレータ61、及び第2モータジェネレータ62は、動力分割機構20に連結している。動力分割機構20は、内燃機関10、第1モータジェネレータ61、及び第2モータジェネレータ62間で動力を伝達する遊星歯車機構である。動力分割機構20は、サンギアS、リングギアR、及びキャリアCを有する。キャリアCには、内燃機関10の出力軸としてのクランクシャフト11が連結している。サンギアSには、第1モータジェネレータ61の回転軸61Aが連結している。リングギアRの出力軸であるリングギア軸RAには、第2モータジェネレータ62の回転軸62Aが連結している。また、リングギア軸RAには、自動変速機30の入力軸31が連結している。自動変速機30は、多段式の変速機である。自動変速機30の出力軸32には、ディファレンシャルギアを介して左右の駆動輪69が連結している。ディファレンシャルギアは、左右の駆動輪69に回転速度の差が生じることを許容する。なお、図1ではディファレンシャルギアの図示を省略している。
【0010】
図示は省略するが、自動変速機30の入力軸31と出力軸32との間には、係合要素としての複数のクラッチ及びブレーキと、複数の遊星歯車機構とが介在している。各係合要素の断接状態が切り替わることにより、自動変速機30は予め設定されている4つのシフトレンジに応じた変速段を形成可能である。4つのシフトレンジは、パーキングレンジ、ニュートラルレンジ、ドライブレンジ、及びリバースレンジである。パーキングレンジ及びニュートラルレンジは、車両100の非走行用の変速段を形成するシフトレンジである。ドライブレンジ及びリバースレンジは、車両100の走行用の変速段を形成するシフトレンジである。詳細には、ドライブレンジは、車両100の前進走行用の変速段を形成するシフトレンジである。リバースレンジは、車両100の後進走行用の変速段を形成するシフトレンジである。なお、ドライブレンジにおいては、例えば「1速」~「5速」といった複数の変速段が成立可能である。各変速段は、別々の変速比と対応して割り当てられている。
【0011】
車両100は、シフトレバー35を有する。シフトレバー35は、車両100の車室内に位置している。シフトレバー35は、自動変速機30における4つのシフトレンジを切り替えるためのレバーである。シフトレバー35は、4つのシフトポジションTに操作位置を切り替えることができる。各シフトポジションTは、別々のシフトレンジと対応している。
【0012】
車両100は、GPS受信機40、シフトポジションセンサ36、アクセルセンサ48、ヘッドライト50、及び切り替えスイッチ51を有する。GPS受信機40は、車両100の現在の位置座標Pに関する信号をGPS衛星から受信する。すなわち、GPS受信機40は、車両100の現在の緯度及び経度の座標値に関する信号を受信する。シフトポジションセンサ36は、シフトレバー35のシフトポジションTを検出する。アクセルセンサ48は、車両100におけるアクセルペダルの操作量であるアクセル操作量ACCを検出する。ヘッドライト50は、車両100の外部を照射する照明装置である。切り替えスイッチ51は、車両100のヘッドライト50のオン・オフを切り替える。
【0013】
車両100は、車速センサ42を有する。車速センサ42は、駆動輪69に取り付けられている。車速センサ42は、駆動輪69の回転速度に基づいて、車両100の走行速度である車速SPを検出する。なお、車速センサ42は、駆動輪69の回転方向を検出することはできないため、車速SPの絶対値を検出する。すなわち、車速センサ42が検出する車速SPは、駆動輪69の正転・反転に拘わらずゼロ以上である。
【0014】
車両100は、加速度センサ44を有する。加速度センサ44は、車両100の前後方向(以下、車両前後方向と記す。)の加速度を検出加速度Wとして検出する。加速度センサ44が検出する検出加速度Wは、車両100の進行に伴う加速度と、重力加速度の車両前後方向の成分とを含んでいる。加速度センサ44は、車両100の進行に伴う加速度については、車両100が前進する方向に車速SPが増大する場合に正、その反対方向に車速SPが増大する場合に負の値として検出する。また、重力加速度の車両前後方向成分については、登坂路において正、降坂路において負の値として検出する。こうした正負の取り扱いの下、加速度センサ44は、車両100の進行に伴う加速度に、重力加速度の車両前後方向成分を加算した値を検出加速度Wとして検出する。
【0015】
<制御装置の概略構成>
車両100は、制御装置90を有する。制御装置90は、コンピュータプログラム(ソフトウェア)に従って各種処理を実行する1つ以上のプロセッサとして構成し得る。なお、制御装置90は、各種処理のうち少なくとも一部の処理を実行する、特定用途向け集積回路(ASIC)等の1つ以上の専用のハードウェア回路、またはそれらの組み合わせを含む回路(circuitry)として構成してもよい。プロセッサは、CPU91及び、RAM並びにROM93等のメモリを含む。メモリは、処理をCPU91に実行させるように構成されたプログラムコードまたは指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。また、制御装置90は、電気的に書き換え可能な不揮発性メモリである記憶装置95を有する。CPU91、ROM93及び記憶装置95は、互いに内部バス98を通じて通信可能である。
【0016】
制御装置90は、車両100に取り付けられている各種センサからの検出信号を受信する。具体的には、制御装置90は、次の各パラメータについての検出信号を受信する。
・シフトポジションセンサ36が検出するシフトポジションT
・アクセルセンサ48が検出するアクセル操作量ACC
・車速センサ42が検出する車速SP
・加速度センサ44が検出する検出加速度W
また、制御装置90は、GPS受信機40が受信した位置座標Pに関する信号を受信する。また、制御装置90は、切り替えスイッチ51によるヘッドライト50のオン・オフの切り替え状態Jに関する信号を受信する。
【0017】
CPU91は、ROM93が記憶しているプログラムを実行することにより、内燃機関10、第1モータジェネレータ61、第2モータジェネレータ62、及び自動変速機30を制御する。具体的には、CPU91は、アクセル操作量ACC及び車速SPに基づいて、車両100が走行するために必要な出力の要求値である車両要求出力を算出する。CPU91は、車両要求出力に基づいて、内燃機関10、第1モータジェネレータ61、及び第2モータジェネレータ62のトルク配分を決定する。CPU91は、算出したトルク分配に基づいて、内燃機関10、第1モータジェネレータ61、及び第2モータジェネレータ62を制御する。また、CPU91は、車速SP及び車両要求出力に基づいて、自動変速機30の変速比が車両100の走行上最適なものになるように自動変速機30の変速段の切り替えを制御する。
【0018】
制御装置90は、車両100の走行経路の案内を行うナビゲーション装置として機能する。CPU91は、ROM93が記憶しているプログラムを実行することにより、車両100の走行経路の案内に係る各種の処理を実現する。記憶装置95は、車両100の走行経路の案内を行う上で必要なデータの1つとして、道路データMを記憶している。図2に示すように、道路データMには、複数のノードN及び複数のリンクLが設定されている。なお、図2では、道路データMの1例として、4つのノードN1~N4及び4つのリンクL1~L4を示している。各ノードNは、緯度及び経度の座標値によって定められている。各ノードNは、例えば交差点毎に付されていたり、所定の距離間隔で付されていたりする。各リンクLは、隣り合うノードN間を結ぶ線分として定められている。各リンクLは、道路を示している。各リンクLは、道路の種類毎に区別されている。道路の種類には、高速道路、一般国道、県道、市町村道、私道がある。各リンクLには、道路の種類を区別するための識別値である道路種類番号LV1が、該当する道路の種類に応じて割り当てられている。また、各リンクLは、道路の構造毎に区別されている。道路の構造には、トンネル、橋、高架、踏切、又はこれらのいずれにも当てはまらない通常がある。各リンクLには、道路の構造を区別するための識別値である道路構造番号LV2が、該当する道路の構造に応じて割り当てられている。なお、例えば一般国道の真上を高速道路が走っている場合のように、同じ緯度及び経度の地点において異なる高さに道路が存在していることもある。この場合、例えば図2に示すリンクL3及びリンクL4に示すように、これら異なる高さに位置する2つの道路に別々のリンクLが設定されている。なお、図2では図示を省略するが、道路データMには、例えば高速道路の出入り口周辺において一般国道と高速道路の本線とを繋ぐ連結路のような、分岐の道路を示すリンクも設定されている。
【0019】
CPU91は、車両100の走行経路の案内を行う処理の一環として、GPS受信機40が受信した位置座標Pに基づいて、道路データMにおける、車両100が走行している地点に対応するリンクLを随時識別する。また、CPU91は、車両100の走行経路の案内を行う処理の一環として、目的地までの走行経路の案内に係る情報を車室内のディスプレイに表示する。なお、図1ではディスプレイの図示を省略している。
【0020】
<勾配算出処理>
制御装置90は、車両100が走行している路面の勾配を算出する勾配算出装置として機能する。図1に示すように、記憶装置95は、複数の入力変数を入力として出力変数を出力する写像を規定する写像データDを記憶している。出力変数は、車両100が走行している路面の勾配を示す変数である勾配変数である。入力変数には、次のものがある。
【0021】
・車両100が走行している地点の緯度を示す変数である緯度変数
・車両100が走行している地点の経度を示す変数である経度変数
・車両100が走行している道路の種類を示す変数である道路種類変数
・車両100が走行している道路の構造を示す変数である道路構造変数
・ヘッドライト50のオン・オフを示す変数であるライト変数
・車速SPを示す変数である車速変数
・車両100が前進走行しているか後進走行しているかを示す変数である前進後進変数
・路面の勾配に関する過去の情報を示す変数である参考勾配変数
・アクセル操作量ACCを示す変数であるアクセル変数
・車両前後方向の加速度を示す変数である前後加速度変数
・車両100が進行している方角を示す変数である進行方角変数
・重力加速度の車両前後方向の成分を示す変数である重力成分変数
なお、各入力変数の具体的な内容については後述する。
【0022】
CPU91は、勾配算出処理を実行可能である。勾配算出処理は、車両100が走行している路面の勾配を算出する処理である。CPU91は、ROM93が記憶してるプログラムを実行することにより、勾配算出処理の各処理を実現する。なお、CPU91及びROM93は、実行装置を構成している。
【0023】
CPU91は、勾配算出処理の一環として取得処理及び算出処理を行う。CPU91は、取得処理では、勾配変数を算出する上で必要になる各入力変数の値を取得する。CPU91は、算出処理では、取得処理で取得した各入力変数の値を、記憶装置95が記憶している写像データDの写像に入力することによって出力変数の値を算出する。
【0024】
CPU91は、車両100のイグニッションスイッチがオンになっている間、勾配算出処理を繰り返し行う。図3に示すように、CPU91は、勾配算出処理を開始すると、処理をステップS10に進める。ステップS10において、CPU91は、出力変数を算出する上で必要となる上記の各入力変数の値を取得する。具体的には、CPU91は、最新緯度A1、最新経度A2、道路種類識別値A3、道路構造識別値A4、ライト識別値A5、及び最新車速A6を取得する。また、CPU91は、シフトレンジ識別値A7、勾配前回値A8、最新アクセル操作量A9、車速微分値A10、進行方位角A11、及び重力成分値A12を取得する。なお、ステップS10の処理は、取得処理である。以下、CPU91がこれらの各変数の値を取得する態様を順に説明する。
【0025】
CPU91は、最新緯度A1については、制御装置90がGPS受信機40から受信する位置座標Pにおける緯度の座標値に関して最新の値を当該最新緯度A1として取得する。そして、CPU91は、最新緯度A1を上記緯度変数として取り扱う。CPU91は、最新経度A2については、制御装置90がGPS受信機40から受信する位置座標Pにおける経度の座標値に関して最新の値を当該最新経度A2として取得する。そして、CPU91は、最新経度A2を上記経度変数として取り扱う。
【0026】
CPU91は、つぎのようにして道路種類識別値A3及び道路構造識別値A4を取得する。道路種類識別値A3は、道路の種類を識別する識別値である。上記のとおり、CPU91は、車両100の走行経路の案内を行う処理の一環として、道路データMにおける、車両100が現在走行している道路に対応するリンクLを識別している。CPU91は、現在識別されているリンクLの道路種類番号LV1の値を道路種類識別値A3として取得する。そして、CPU91は、道路種類識別値A3を上記道路種類変数として取り扱う。道路構造識別値A4は、道路の構造の種別を識別する識別値である。CPU91は、現在識別されているリンクLの道路構造番号LV2の値を道路構造識別値A4として取得する。そして、CPU91は、道路構造識別値A4を上記道路構造変数として取り扱う。
【0027】
CPU91は、つぎのようにしてライト識別値A5を取得する。ライト識別値A5は、ヘッドライト50がオンであるかオフであるかを識別する識別値である。このライト識別値A5の設定用に、ヘッドライト50がオンである場合とオフである場合とのそれぞれについて予め数値が割り当てられている。CPU91は、最新の切り替え状態Jに応じた数値をライト識別値A5として算出する。CPU91がライト識別値A5を算出することは、CPU91がライト識別値A5を取得することに相当する。CPU91は、ライト識別値A5を上記ライト変数として取り扱う。
【0028】
CPU91は、最新車速A6については、制御装置90が車速センサ42から受信する車速SPに関して最新の値を当該最新車速A6として取得する。そして、CPU91は、最新車速A6を、上記車速変数として取り扱う。
【0029】
CPU91は、つぎのようにしてシフトレンジ識別値A7を取得する。シフトレンジ識別値A7は、自動変速機30の現在のシフトレンジを示す識別値である。このシフトレンジ識別値A7の設定用に、シフトレバー35の各シフトポジションに対応する数値がシフトポジションT毎に予め割り当てられている。CPU91は、制御装置90がシフトポジションセンサ36から受信するシフトポジションTに関して最新の値を参照し、そのシフトポジションTに対応する数値をシフトレンジ識別値A7として算出する。CPU91がシフトレンジ識別値A7を算出することは、CPU91がシフトレンジ識別値A7を取得することに相当する。CPU91は、シフトレンジ識別値A7を上記前進後進変数として取り扱う。
【0030】
CPU91は、勾配前回値A8については、勾配算出処理を前回実行したときに算出した路面の勾配を当該勾配前回値A8として取得する。CPU91は、勾配前回値A8を参考勾配変数として取り扱う。なお、CPU91は、イグニッションスイッチがオンになった後の初回の勾配算出処理では、イグニッションスイッチが前回オンになっている間において最後に算出した路面の勾配を勾配前回値A8として算出する。
【0031】
CPU91は、最新アクセル操作量A9については、制御装置90がアクセルセンサ48から受信する最新の値を当該最新アクセル操作量A9として取得する。そして、CPU91は、最新アクセル操作量A9を上記アクセル変数として取り扱う。
【0032】
CPU91は、つぎのようにして車速微分値A10を取得する。先ず、CPU91は、勾配算出処理を今回実行するにあたって取得した上記の最新車速A6から、勾配算出処理を前回実行したときに取得した最新車速A6を減算して、車速変化量を算出する。そして、CPU91は、車速変化量を勾配算出処理の実行周期で除すことによって車速微分値A10を算出する。CPU91が車速微分値A10を算出することは、CPU91が車速微分値A10を取得することに相当する。CPU91は、車速微分値A10を前後加速度変数として取り扱う。なお、CPU91は、イグニッションスイッチがオンになった後の初回の勾配算出処理では、勾配算出処理を前回実行したときの最新車速A6をゼロとして取り扱う。
【0033】
CPU91は、つぎのようにして進行方位角A11を取得する。進行方位角A11は、車両100が進行している方角を方位角で表したものである。CPU91は、勾配算出処理を今回実行するにあたって取得した上記の最新緯度A1から、勾配算出処理を前回実行したときに取得した最新緯度A1を減算して、緯度方向移動量を算出する。また、CPU91は、勾配算出処理を今回実行するにあたって取得した上記の最新経度A2から、勾配算出処理を前回実行したときに取得した最新経度A2を減算して、経度方向移動量を算出する。そして、CPU91は、これら緯度方向移動量及び経度方向移動量を逆三角関数に適用することで進行方位角A11を算出する。進行方位角A11の基準の方位は、例えば北とすればよい。なお、CPU91は、進行方位角A11を算出するにあたって、緯度方向移動量及び経度方向移動量の双方がゼロである場合、勾配算出処理を前回実行したときに算出した進行方位角A11を、最新の進行方位角A11として算出する。また、CPU91は、イグニッションスイッチがオンになった後の初回の勾配算出処理では、イグニッションスイッチが前回オンになっている間において算出した進行方位角A11のうち、自動変速機30がドライブレンジである状態で最後に算出した進行方位角A11を、最新の進行方位角A11として算出する。
【0034】
CPU91は、つぎのようにして重力成分値A12を取得する。すなわち、CPU91は、制御装置90が加速度センサ44から受信する最新の値から、勾配算出処理を今回実行するにあたって取得した上記の車速微分値A10を減算した値を重力成分値A12として算出する。CPU91が重力成分値A12を算出することは、CPU91が重力成分値A12を取得することに相当する。CPU91は、重力成分値A12を重力成分変数として取り扱う。
【0035】
CPU91は、各変数の値を取得すると、処理をステップS20に進める。
ステップS20において、CPU91は、記憶装置95が記憶している写像データDの写像を利用して路面の勾配を算出する前処理として、写像への入力用の入力変数x(1)~x(12)に、ステップS10の処理で取得した各変数の値を代入する。具体的には、CPU91は、入力変数x(1)に最新緯度A1を代入する。CPU91は、入力変数x(2)に最新経度A2を代入する。CPU91は、入力変数x(3)に道路種類識別値A3を代入する。CPU91は、入力変数x(4)に道路構造識別値A4を代入する。CPU91は、入力変数(5)にライト識別値A5を代入する。CPU91は、入力変数x(6)に最新車速A6を代入する。CPU91は、入力変数x(7)にシフトレンジ識別値A7を代入する。CPU91は、入力変数x(8)に勾配前回値A8を代入する。CPU91は、入力変数x(9)に最新アクセル操作量A9を代入する。CPU91は、入力変数x(10)に車速微分値A10を代入する。CPU91は、入力変数x(11)に進行方位角A11を代入する。CPU91は、入力変数x(12)に重力成分値A12を代入する。この後、CPU91は、処理をステップS30に進める。
【0036】
ステップS30において、CPU91は、写像データDの写像に入力変数x(1)~x(12)を入力することによって、出力変数yを算出する。出力変数yは、車両100が走行している路面の勾配、すなわち車両100が走行している路面の傾斜の度合いを百分率で表したものである。出力変数yは、詳細には、車両100の進行方向に関する路面の勾配である。すなわち、出力変数yは、正負の値をとる。出力変数yは、上り勾配であれば正の値、下り勾配であれば負の値となる。
【0037】
写像は、中間層が一層の全結合順伝播型ニューラルネットワークとして構成されている。上記ニューラルネットワークは、入力側係数wFjk(j=0~n,k=0~12)と、入力側係数wFjkによって規定される線形写像である入力側線形写像の出力のそれぞれを非線形変換する入力側非線形写像としての活性化関数h(x)を含む。活性化関数h(x)は、例えばハイパボリックタンジェント「tanh(x)」である。また、上記ニューラルネットワークは、出力側係数wSj(j=0~n)と、出力側係数wSjによって規定される線形写像である出力側線形写像の出力のそれぞれを非線形変換する出力側非線形写像としての活性化関数f(x)を含む。活性化関数f(x)は、例えばハイパボリックタンジェント「tanh(x)」である。なお、値nは、中間層の次元を示すものである。入力側係数wFj0は、バイアスパラメータであり、入力変数x(0)の係数となっている。入力変数x(0)は「1」として定義される。また、出力側係数wS0は、バイアスパラメータである。
【0038】
写像は、車両100に実装される以前に、車両100と同一仕様の車両を用いて学習された学習済みモデルである。写像の学習に際しては、事前に教師データと訓練データとを取得しておく。教師データと訓練データとを取得する上では、路面の勾配を算出する対象となる全ての道路を実際に車両で走行する。その際、道路毎に一般的とみなせる走行速度で各道路を走行する。また、車両の進行方向に応じて坂道が登坂路にも降坂路にもなることを考慮し、各道路を往復できるように経路を設定して車両を走行させる。そして、各道路を走行しながら、車両が走行する路面の実際の勾配を、車両が走行する地点毎に教師データとして取得する。それとともに、写像への入力として利用する各入力変数の値を訓練データとして取得する。各入力変数の値は、ステップS10の処理と同様にして取得する。なお、例えば一般国道の真上を高速道路が走っている場合のように、同じ緯度及び経度の地点において異なる高さに道路が存在している場合、車両が走行している道路をCPUが誤認識することもあり得る。そのため、道路種類識別値A3及び道路構造識別値A4に関しては、訓練データとして取得した値を実際の道路の種類及び構造と対応させて確認することが好ましい。また、教師データとして取得する実際の勾配は、ある一定期間内における車両の水平方向の走行距離と、同期間内において車両が移動した標高差とから算出すればよい。車両の水平方向の走行距離は、GPS受信機で受信した位置座標に基づいて算出すればよい。また、車両が移動した標高差は、標高計測用の機器を車両に搭載して計測すればよい。そのような機器として、例えばGPS衛星の信号を利用するGPS速度計を挙げることができる。上記の一定期間を時間方向にずらしながら路面の勾配を順次算出していけば、時間方向に連続して路面の勾配を算出できる。なお、路面の勾配を算出するにあたっては、車両100の進行方向に関する路面の勾配を算出する。すなわち、路面の勾配は、上り勾配であれば正の値、下り勾配であれば負の値として算出する。したがって、教師データ及び訓練データの取得にあたって各道路を往復する際、往路で算出する路面の勾配と、復路で算出する路面の勾配とでは正負の値が入れ替わる。以上のようにして取得した教師データ及び訓練データを用いて写像の学習を行う。すなわち、車両を走行させて各地点で取得した訓練データ及び教師データの組それぞれについて、訓練データを入力として写像が出力する出力変数と、教師データとの差が所定値以下になるように、入力側変数及び出力側変数を調整する。そして、上記の差が所定値以下になることにより、学習が完了したものとする。
【0039】
CPU91は、ステップS30において出力変数yを算出すると、勾配算出処理の一連の処理を一旦終了する。そして、CPU91は、再度ステップS10の処理を実行する。なお、ステップS30の処理は、算出処理である。
【0040】
<実施形態の作用>
CPU91は、車両100のイグニッションスイッチがオンになっている間、各入力変数の値を写像に入力することで、車両100が走行している路面の勾配を繰り返し算出する。CPU91は、算出した路面の勾配を、内燃機関10から駆動輪69に至る動力伝達系の制御に利用する。例えば、CPU91は、算出した路面の勾配を内燃機関10の出力の制御に利用する。また、例えば、CPU91は、算出した路面の勾配を自動変速機30の変速段の切り替えの制御に利用する。
【0041】
<実施形態の効果>
(1)車両100が走行している路面の勾配は、車両100の動力伝達系を制御する上で重要な情報である。そのため、車両100が走行している路面の勾配を把握することが求められる。しかし、例えば上記したような標高計測用の機器を車両100に搭載して路面の勾配を算出することは、例えば機器のコストの観点において事実上困難である。また、緯度及び経度と対応させて路面の勾配を定めたマップを作成しておき、そうしたマップ利用して路面の勾配を算出することが考えられる。この場合、同じ緯度及び経度の地点において異なる高さに道路が存在している場合を考慮し、緯度及び経度のみならず、道路の種類と対応させて路面の勾配を定めたマップを作ることが考えられる。しかし、この場合、マップの内容が非常に複雑になり、マップを作るのに手間がかかる。
【0042】
この点、本実施形態のように、写像を利用する場合、適切な訓練データ及び教師データを用意できれば、上記マップを作る場合のような手間をかけずに写像を学習させることができる。その上、本実施形態では、入力変数の1つに道路の種類を識別する識別値である道路種類識別値A3が含まれている。このことから、同じ緯度及び経度の地点において異なる高さに道路が存在している場合でも、道路を区別して、車両100が走行している路面の勾配を算出できる。したがって、車両100が走行している路面の勾配を正しく算出できる。
【0043】
(2)同じ緯度及び経度の地点において異なる高さに道路が存在している場合において、それら異なる高さに存在している道路の種類が同じであることもあり得る。本実施形態では、入力変数の1つに、道路の構造の種別を示す識別値である道路構造識別値A4が含まれている。このことから、異なる高さに存在している道路の種類が同じである場合でも、道路の構造によって、道路を区別して路面の勾配を算出できる。
【0044】
(3)例えば道路の分岐箇所においてCPU91が道路データMにおけるリンクLの識別を誤ってしまうこともあり得る。この場合、道路構造識別値A4は、本来の値、すなわち真の道路の構造を示す値とは異なる。ここで、車両100がトンネルを走行する場合、車両100のヘッドライト50はオンになる。本実施形態では、入力変数の1つに、ヘッドライト50のオン・オフを識別する識別値であるライト識別値A5を含めている。上記道路構造識別値A4に加え、ライト識別値A5を入力変数の1つに含めることで、車両100がトンネルを走行していることをより確実に把握できる。このことは、車両100が走行している道路を区別する上で好適である。
【0045】
(4)高速道路を車両100が走行しているときの車速SPは、他の種類の道路を車両100が走行しているときの車速SPよりも高い。本実施形態では、入力変数の1つに、最新車速A6を含めている。上記道路種類識別値A3に加え、最新車速A6を入力変数に含めることで、車両100が高速道路を走行しているか否かをより確実に把握できる。このことは、車両100が走行している道路を区別する上で好適である。
【0046】
(5)高速道路を車両100が走行している場合、サービスエリアを除けば、車両100が後進走行することはまずない。本実施形態では、入力変数の1つに、自動変速機30のシフトレンジを示す識別値であるシフトレンジ識別値A7を含めている。シフトレンジ識別値A7は車両100が前進走行しているか後進走行しているかを示す指標になる。したがって、上記道路種類識別値A3に加え、シフトレンジ識別値A7を入力変数に含めることで、車両100が高速道路を走行しているか否かをより確実に把握できる。このことは、車両100が走行している道路を区別する上で好適である。
【0047】
(6)車両100が坂道を走行する場合、その坂道は、車両100の進行方向によって登坂路にも降坂路にもなる。路面の勾配の情報を車両100の制御に利用する上では、車両100の走行している路面が登坂路であるか降坂路であるか、すなわち路面の勾配が上り勾配であるか下り勾配であるかに応じて、路面の勾配の値を区別しておく必要がある。
【0048】
車両100が走行している路面が登坂路であるか降坂路であるかに応じてアクセル操作量ACC及び車両前後方向の加速度の関係性は変わり得る。そこで、車両100が走行している路面が登坂路であるか降坂路であるかを判別する上で、例えばこれらの変数の関係性を登坂路及び降坂路と対応させて定めたマップを利用することが考えられる。しかし、こうしたマップは内容が複雑になることからマップを作るのには手間がかかる。
【0049】
この点、本実施形態のように、写像を利用する場合、適切な訓練データ及び教師データを用意できれば、上記マップを作る場合のような手間をかけずに写像を学習させることができる。そして、本実施形態では、入力変数の1つに車両100が進行している方角を示す進行方位角A11を含めている。このことにより、車両100が坂道を上り方向に走っているのか、下り方向に走っているかを区別して、車両100が走行している路面の勾配を算出できる。したがって、車両100の走行状況に合った路面の勾配を算出できる。つまり、上り勾配と下り勾配とで値を区別して路面の勾配を算出できる。
【0050】
(7)本実施形態では、入力変数の1つに、重力成分値A12を含めている。重力成分値A12は、加速度センサ44が検出する検出加速度Wから車速微分値A10を減じた値となっている。上記のとおり、検出加速度Wは、車両100の進行に伴う加速度と、重力加速度の車両前後方向の成分とを含んでいる。車速微分値A10は、これら車両100の進行に伴う加速度と、重力加速度の車両前後方向の成分とのうち、前者に相当する物理量である。そのため、重力成分値A12は、重力加速度の車両前後方向の成分を示すとみなすことができる。ここで、加速度センサ44が検出する重力加速度の車両前後方向成分は、登坂路と降坂路とで正負の符号が異なる。そのため、重力加速度の車両前後方向成分を反映した値である重力成分値A12は、車両100が走行している路面が登坂路であるか降坂路であるかを区別する指標になり得る。こうした重力成分値A12を入力変数に含めることで、登坂路及び降坂路の判別がより確実になる。
【0051】
(8)車両100の走行中において車両100が走行している路面の勾配が急激に変化することは考え難い。本実施形態では、入力変数の1つに、一つ前のタイミングで算出した路面の勾配を示す勾配前回値A8を含めている。車両100が走行している路面の勾配と略同値である勾配前回値A8を入力変数に含めることは、車両100が走行している路面の勾配を正確に算出する上で好適である。
【0052】
(9)アクセル操作量ACC及び車両前後方向の加速度は、路面の勾配の大小を示す情報になり得る。例えば、車両100が登坂路を走行しているものとする。この場合、アクセル操作量ACCが同じであっても、路面の勾配が大きい程、車両前後方向の加速度は小さくなり得る。本実施形態では、入力変数に、最新アクセル操作量A9及び車速微分値A10を含めている。路面の勾配の大小と関連するこれらの変数を入力変数に含めることは、車両100が走行している路面の勾配を正確に算出する上で好適である。
【0053】
<変更例>
なお、本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0054】
・勾配算出処理の一部を車両100の外部のコンピュータで行ってもよい。例えば、図4に示すように、車両100の外部にサーバ600を設けてもよい。そして、サーバ600で、勾配算出処理のうちの算出処理を行う構成としてもよい。この場合、サーバ600は、コンピュータプログラム(ソフトウェア)に従って各種処理を実行する1つ以上のプロセッサとして構成し得る。なお、サーバ600は、各種処理のうち少なくとも一部の処理を実行する、特定用途向け集積回路(ASIC)等の1つ以上の専用のハードウェア回路、またはそれらの組み合わせを含む回路(circuitry)として構成してもよい。プロセッサは、CPU602及び、RAM並びにROM604等のメモリを含む。メモリは、処理をCPU602に実行させるように構成されたプログラムコードまたは指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。また、サーバ600は、電気的に書き換え可能な不揮発性メモリである記憶装置606を有する。記憶装置606は、上記実施形態で説明した写像データDを記憶している。また、サーバ600は、外部通信回線網700を通じてサーバ600の外部と接続するための通信機610を有する。CPU602、ROM604、記憶装置606、及び通信機610は、互いに内部バス608を通じて通信可能である。
【0055】
勾配算出処理のうちの算出処理をサーバ600で行う場合、車両100の制御装置90は、外部通信回線網700を通じて制御装置90の外部と通信するための通信機99を有する。なお、制御装置90の構成は、通信機99を有することを除いて上記実施系形態のものと同じである。そのため、制御装置90についての詳細な説明は割愛する。なお、図4において図1と同一に機能する箇所には、図1と同一の符号を付している。制御装置90はサーバ600とともに、勾配算出装置Zを構成する。
【0056】
勾配算出処理のうちの算出処理をサーバ600で行う場合、先ず、車両100の制御装置90は、上記実施形態のステップS10の処理である取得処理を行う。制御装置90は、ステップS10の処理によって各変数の値を取得すると、取得した各変数の値をサーバ600に送信する。サーバ600のCPU602は、各変数の値を受信すると、上記実施形態のステップS20、及びステップS30の処理を行うことによって、車両100が走行している路面の勾配を算出する。サーバ600のCPU602は、ROM604が記憶しているプログラムを実行することによって、ステップS20、及びステップS30の処理を行う。
【0057】
この変更例のように、車両100の制御装置90とサーバ600とで勾配算出処理を行う場合、車両100の制御装置90のCPU91及びROM93と、サーバ600のCPU602及びROM604とが実行装置を構成する。
【0058】
・勾配算出処理の全ての処理を車両100の外部で行ってもよい。例えば、上記変更例のように、車両100の外部にサーバ600を設ける場合において、車両100の制御装置90は、車両100に取り付けられている各センサの検出信号をサーバ600に送信する。また、車両100の制御装置90は、車両100の現在の位置座標P、ヘッドライト50の切り替え状態J、車両100が走行している地点に対応するリンクLの情報といった、勾配算出処理で利用する他の変数についてもサーバ600に送信する。そして、サーバ600のCPU602は、上記実施形態のステップS10に相当する処理を行うことで、各種の変数の値を取得する。この後、上記変更例と同様、サーバ600のCPU602は、ステップS20、及びステップS30に相当する処理を行う。こうした構成では、サーバ600で取得処理、及び算出処理を行うことになる。
【0059】
・車両100を案内する機能とは関係なく、勾配算出処理専用のデータとして、記憶装置95に道路データMを記憶しておいてもよい。そして、車両100を案内する機能とは関係なく、勾配算出処理の前提の処理として、道路データMにおける、車両100が走行している地点に対応するリンクLを随時識別してもよい。
【0060】
・道路種類識別値A3を定める上での道路の種類の分け方は、上記実施形態の例に限定されない。道路種類識別値A3を定める上での道路の種類の分け方が、道路データMにおける道路の種類の分け方とは異なっていてもよい。この場合、道路種類識別値A3を定める上での道路の種類の分け方に応じた数値を道路の種類毎に予め割り当てておけばよい。道路データMには、例えば道路の路線番号及び道路の路線数といった情報も含まれ得る。これら道路の路線番号及び道路の路線数といった要素を考慮して道路の種類を分けてもよい。
【0061】
・道路種類識別値A3についての上記変更例と同様、道路構造識別値A4を定める上での道路の構造の種別の分け方は、上記実施形態の例に限定されない。
・上記実施形態のステップS10では、道路データMの道路種類番号LV1を道路種類識別値A3として取得していた。しかし、道路種類識別値A3を取得する態様は、これに限定されない。例えば、車両100の周囲を撮像するカメラを車両100に搭載する。そして、カメラによって道路脇に設置されている標識、又は案内看板を撮像する。そして、カメラが撮像した情報に基づいて、道路の種類を判別し、判別した道路の種類に対応する道路種類識別値A3を算出してもよい。この場合、道路種類識別値A3の設定用に、道路の種類毎の数値を予め割り当てておけばよい。
【0062】
・上記変更例と同様、ステップS10で道路構造識別値A4を取得する上で、カメラが撮像した情報を利用してもよい。すなわち、カメラで撮像した情報に基づいて道路の構造を判別し、判別した道路の構造の種別に対応する道路構造識別値A4を算出してもよい。この場合も、道路構造識別値A4の設定用に、道路の構造毎の数値を予め割り当てておけばよい。
【0063】
・ステップS10で取得する最新車速A6は、ステップS10の処理を実行する時点での最新の値に限定されない。例えば、一つ前のタイミングでステップS10を実行してから次にステップS10を実行するまでの間の車速SPの最大値を取得してもよい。また、瞬時値を取得するのではなく、一定期間の車速SPの平均値を取得してもよい。ステップS10を行うタイミングを基準としてある程度最新とみなせるものであればよい。例えば最新アクセル操作量A9といった他の変数についても同様である。重力成分値A12の算出に係る検出加速度Wのように、ある変数の算出過程で利用するものについても上記と同様にして取得してよい。
【0064】
・緯度変数として採用する変数は、上記実施形態の例に限定されない。例えば、緯度をある範囲毎に区分けし、各範囲の代表点を示す値を緯度変数として採用してもよい。緯度変数は、車両100が走行している地点の緯度を示すものであればよい。
【0065】
・経度変数として採用する変数は、上記実施形態の例に限定されない。緯度変数と同様、例えば、経度をある範囲毎に区分けし、各範囲の代表点を示す値を経度変数として採用してもよい。経度変数は、車両100が走行している地点の経度を示すものであればよい。
【0066】
・道路種類変数として採用する変数は、上記実施形態の例に限定されない。例えば、道路の路線番号を道路種類変数として採用してもよい。道路種類変数は、道路の種類を示すものであればよい。
【0067】
・道路構造変数として採用する変数は、上記実施形態の例に限定されない。例えばトンネル及び橋には、個別に公的な名前が付されている。このような個別の名前を示す識別値を道路構造変数として設定してもよい。つまり、トンネル毎、及び橋毎に道路構造変数を設定してもよい。道路構造変数は、道路の構造を示すものであればよい。
【0068】
・ライト変数として採用する変数は、上記実施形態の例に限定されない。例えば、ヘッドライト50がオンである状態をさらに細かく分類した識別値をライト変数として採用してもよい。具体的には、ヘッドライト50がロービームである状態、ハイビームである状態、及びオフである状態の3つについて識別値を設定してもよい。道路の種類又は構造によってはヘッドライト50のハイビームとロービームを使い分けることもあり得る。そのため、上記のように設定した識別値も、道路を区別する上で有効な指標になり得る。ライト変数は、ヘッドライト50のオン・オフを示すものであればよい。
【0069】
・車速変数として採用する変数は、上記実施形態の例に限定されない。例えば、車速SPが規定車速以上であるか否かを識別する識別値を車速変数として採用してもよい。規定車速を例えば時速80kmに設定すれば、上記の識別値は、車両100が高速道路を走行しているか否かの判別の指標になり得る。車速変数は、車速SPを示すものであればよい。
【0070】
・前進後進変数として採用する変数は、上記実施形態の例に限定されない。例えば、自動変速機30の変速比を前進後進変数として採用してもよい。車両100が前進走行する場合の変速比と、車両100が後進走行する場合の変速比とは予め定まっている。このことから、変速比も車両100の前進・後進を示す有効な指標になり得る。前進後進変数として変速比を利用する場合、例えば自動変速機30の入力軸31及び出力軸32の回転速度を実測して変速比を算出すればよい。前進後進変数は、車両100が前進走行しているか後進走行しているかを示すものであればよい。
【0071】
・参考勾配変数として採用する変数は、上記実施形態の例に限定されない。例えば、路面の勾配を算出するタイミングから一定時間前までの期間において算出した過去の路面の勾配の平均値を参考勾配変数として採用してもよい。参考勾配変数は、路面の勾配に関する過去の情報であって、車両100が走行している路面の勾配を算出する上で参考になるものであればよい。
【0072】
・前後加速度変数として採用する変数は、上記実施形態の例に限定されない。例えば、検出加速度Wを前後加速度変数として採用してもよい。前後加速度変数は、車両前後方向の加速度を示すものであればよい。
【0073】
・進行方角変数として採用する変数は、上記実施形態の例に限定されない。例えば、方位角をある範囲毎に区分けし、車両100が進行している方角に当てはまる範囲を示す値を進行方角変数として採用してもよい。この場合、区分けした範囲毎に、それぞれを表す数値を予め割り当てておけばよい。進行方角変数は、車両100が進行している方角を示すものであればよい。
【0074】
・重力成分変数として採用する変数は、上記実施形態の例に限定されない。例えば、検出加速度Wそのものを重力成分変数として採用してもよい。車両100の進行に伴う加速度が小さければ、検出加速度Wは概ね重力加速度の車両前後方向成分を示すとみなすことができる。そのため、検出加速度Wそのものも、車両100が走行している路面が登坂路であるか降坂路であるかを判別する情報になり得る。重力成分変数は、重力加速度の車両前後方向の成分を示すものであればよい。
【0075】
・アクセル変数として採用する変数は、上記実施形態の例に限定されない。例えば、アクセル操作量の大きさを複数段階にレベル分けし、そうしたレベルを識別する識別値をアクセル変数として採用してもよい。アクセル変数は、アクセル操作量ACCを示すものであればよい。
【0076】
・上記のアクセル変数の変更例と同様、例えば車速変数といった他の入力変数についても、それぞれの度合いに応じて複数レベルを設定し、そうしたレベルを示す値を採用してもよい。
【0077】
・入力変数の種類は、上記実施形態の例に限定されない。入力変数は、上記実施形態に示したものに代えて、又は加えて、他のものを採用してもよい。また、入力変数の数を上記実施形態の数から減らしてもよい。入力変数の数は3つ以上であればよい。そして、入力変数に、少なくとも緯度変数、経度変数、及び道路種類変数の3つを含んでいればよい。
【0078】
・入力変数として、上記実施形態で示した変数以外の変数を採用してもよい。入力変数として、例えば、道路の標識に記載されている路面の勾配を示す標識勾配変数を採用してもよい。入力変数として標識勾配変数を採用する場合、上記変更例に記載したように、車両100にカメラを搭載すればよい。そして、カメラによって道路の標識に記載されている路面の勾配を読み取り、読み取った路面の勾配を写像への入力として用いればよい。
【0079】
・勾配変数として採用する変数は、上記実施形態の例に限定されない。例えば、上り勾配と下り勾配とを区別せず、路面の勾配の絶対値を示す値を勾配変数として採用してもよい。また、路面の勾配を複数段階にレベル分けし、そうしたレベルを識別する識別値を勾配変数として採用してもよい。また、路面の傾斜角度を勾配変数として採用してもよい。勾配変数は、車両100が走行している路面の勾配を示すものであればよい。
【0080】
・写像の構成は、上記実施形態の例に限定されない。例えば、ニューラルネットワークにおける中間層の層数を2つ以上にしてもよい。
・ニューラルネットワークとして、例えば、回帰結合型のものを採用してもよい。この場合、過去の入力変数の値が今回新たに出力変数の値を算出する際に反映されることから、過去の履歴を反映して路面の勾配を算出するのに好適である。
【0081】
・写像の学習に利用する教師データ及び訓練データの取得方法は、上記実施形態の例に限定されない。例えば、路面の勾配の算出対象とする道路のうち、同じ緯度及び経度の地点において異なる高さに道路が存在しているものについてのみ、実際に車両を走行させて教師データ及び訓練データを取得し、他の道路については例えばシミュレーションによって教師データ及び訓練データを取得してもよい。また、上記実施形態では全ての道路を往復して教師データ及び訓練データを取得していたが、例えば往路についてのみ実際に車両を走行させて教師データ及び訓練データを取得し、復路についてはシミュレーションによって教師データ及び訓練データを取得してもよい。
【0082】
・車両100の全体構成は、上記実施形態の例に限定されない。例えば、車両は、当該車両の駆動源として内燃機関10のみを有する構成でもよい。
【符号の説明】
【0083】
91…CPU
93…ROM
95…記憶装置
100…車両
図1
図2
図3
図4