(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024126095
(43)【公開日】2024-09-20
(54)【発明の名称】最適演算装置
(51)【国際特許分類】
G06N 99/00 20190101AFI20240912BHJP
B60W 40/00 20060101ALI20240912BHJP
G08G 1/16 20060101ALN20240912BHJP
【FI】
G06N99/00 180
B60W40/00
G08G1/16 C
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023034261
(22)【出願日】2023-03-07
(71)【出願人】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002941
【氏名又は名称】弁理士法人ぱるも特許事務所
(72)【発明者】
【氏名】竹内 佑
(72)【発明者】
【氏名】和田 沙織
【テーマコード(参考)】
3D241
5H181
【Fターム(参考)】
3D241BA01
3D241BA02
3D241BA12
3D241BA33
3D241BB16
3D241CD05
3D241CD07
3D241CD10
3D241CD11
3D241CD15
3D241CD20
3D241CE02
3D241CE04
3D241CE05
3D241CE09
3D241DA01Z
3D241DA04Z
3D241DA38Z
3D241DA39Z
3D241DA51Z
3D241DA52Z
3D241DB01Z
3D241DB02Z
3D241DB05Z
3D241DB12Z
3D241DB15Z
3D241DB16Z
3D241DB20Z
3D241DC01Z
3D241DC02Z
3D241DC04Z
3D241DC05Z
3D241DC18Z
3D241DC21Z
3D241DC22Z
3D241DC23Z
3D241DC24Z
3D241DC25Z
3D241DC31Z
3D241DC33Z
3D241DC34Z
3D241DC35Z
3D241DC39Z
5H181AA01
5H181BB04
5H181BB05
5H181CC03
5H181CC04
5H181CC11
5H181CC12
5H181CC14
5H181LL01
5H181LL02
5H181LL04
5H181LL09
(57)【要約】
【課題】制約条件の設定数を必要な数に設定しつつ、想定される演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる最適演算装置を提供する。
【解決手段】最適値候補演算の繰り返しごとに、設定数の制約条件の内で最適値候補演算に用いる制約条件である有効制約条件を追加又は削除しながら、入力変数及び状態変数の最適値の候補を演算する最適値候補演算を繰り返し行い、最適値の候補に基づいて、入力変数及び状態変数の最適値を演算し、最適値候補演算の繰り返し中に、各最適値候補演算に用いられる有効制約条件の数に基づいて、最適値候補演算の繰り返しを中断するか否かを判定する最適演算装置。
【選択図】
図1
【特許請求の範囲】
【請求項1】
予測期間の各時点の入力変数を入力として前記予測期間の各時点の状態変数を演算する状態方程式を用い、前記入力変数及び前記状態変数を評価する評価関数、及び前記入力変数又は前記状態変数を制約する1以上の設定数の制約条件を有する最適化問題を解くように、最適値候補演算の繰り返しごとに、前記設定数の前記制約条件の内で前記最適値候補演算に用いる前記制約条件である有効制約条件を追加又は削除しながら、前記入力変数及び前記状態変数の最適値の候補を演算する前記最適値候補演算を繰り返し行い、前記最適値の候補に基づいて、前記予測期間の各時点の前記入力変数及び前記状態変数の最適値を演算する最適値演算部と、
前記最適値候補演算の繰り返し中に、各前記最適値候補演算に用いられる前記有効制約条件の数に基づいて、前記最適値候補演算の繰り返しを中断するか否かを判定する演算中断部と、を備え、
前記最適値演算部は、前記最適値候補演算の繰り返しを中断すると判定された場合は、前記最適値候補演算の繰り返しを中断し、前記最適値候補演算の繰り返しを中断する前に演算された前記入力変数及び前記状態変数の前記最適値の候補に基づいて、前記入力変数及び前記状態変数の前記最適値を演算する最適演算装置。
【請求項2】
前記演算中断部は、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数が、制約数上限閾値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記制約数上限閾値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定する請求項1に記載の最適演算装置。
【請求項3】
前記演算中断部は、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数に基づいて演算処理負荷のコストを演算し、前記演算処理負荷のコストの累積値が、累積上限値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記累積上限値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定する請求項1に記載の最適演算装置。
【請求項4】
前記最適値演算部は、前記最適値候補演算の繰り返しを中断した場合は、前記最適値が、前記最適値候補演算の中断により演算されたことを表す状態信号を出力する請求項1から3のいずれか一項に記載の最適演算装置。
【請求項5】
前記最適値演算部は、前記最適値候補演算の繰り返しを中断し、中断する前の前記最適値候補演算で演算された前記入力変数及び前記状態変数の前記最適値の候補が前記設定数の制約条件を満たす場合は、中断する前の前記最適値候補演算で演算された前記入力変数及び前記状態変数の前記最適値の候補を、前記入力変数及び前記状態変数の前記最適値として設定する請求項1から3のいずれか一項に記載の最適演算装置。
【請求項6】
前記最適値演算部は、前回の前記最適値候補演算において用いたが、実際に前記入力変数又は前記状態変数の前記最適値の候補を制約していない前記有効制約条件を前記有効制約条件から削除し、前回の前記最適値候補演算において用いられていないが前記入力変数又は前記状態変数の前記最適値の候補を制約する必要がある前記制約条件を前記有効制約条件に追加することにより、次回の前記最適値候補演算において用いる前記有効制約条件を追加又は削除し、
前回の前記最適値候補演算で用いた前記有効制約条件と、次回の前記最適値候補演算において用いる前記有効制約条件とが同じ場合は、前記最適値候補演算の繰り返しを終了し、前回の前記最適値候補演算において演算された前記入力変数及び前記状態変数の前記最適値の候補を、前記入力変数及び前記状態変数の前記最適値として設定する請求項1から3のいずれか一項に記載の最適演算装置。
【請求項7】
前記最適化問題は、前記評価関数の勾配、及び前記有効制約条件の勾配をラグランジュ乗数で線形結合した、前記最適値が満たすべき最適条件であるカルーシュ・クーン・タッカー条件を有する請求項1から3のいずれか一項に記載の最適演算装置。
【請求項8】
前記最適値演算部は、前記最適値を用いる制御内容に基づいて、前記入力変数、前記状態変数、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記最適値候補演算の繰り返し中に、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数が、前記制約数上限閾値を超えていない場合において、繰り返し回数が、回数上限閾値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記回数上限閾値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定し、
前記演算中断部は、前記制御内容に基づいて、前記制約数上限閾値及び前記回数上限閾値を設定する請求項2に記載の最適演算装置。
【請求項9】
前記最適値演算部は、車両制御に係る前記入力変数を用い、車両の挙動を表す前記状態変数を用い、前記予測期間の各時点の前記入力変数及び前記状態変数の前記最適値に基づいて、前記予測期間の各時点の車両制御量の目標値を設定し、前記車両制御の制御内容に基づいて、前記入力変数、前記状態変数、前記状態方程式、前記車両制御量の目標値、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数が、前記制約数上限閾値を超えていない場合において、繰り返し回数が、回数上限閾値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記回数上限閾値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定し、
前記車両制御の制御内容に基づいて、前記制約数上限閾値及び前記回数上限閾値を設定する請求項2に記載の最適演算装置。
【請求項10】
前記最適値演算部は、前記車両制御の制御内容として、車両の前後方向の挙動を制御する前後方向制御と車両の横方向の挙動を制御する横方向制御との一方又は双方を選択的に実行し、
前記演算中断部は、前記前後方向制御と前記横方向制御との双方を実行する場合の前記制約数上限閾値を、前記前後方向制御と前記横方向制御との一方を実行する場合の前記制約数上限閾値よりも大きくし、前記前後方向制御と前記横方向制御との双方を実行する場合の前記回数上限閾値を、前記前後方向制御と前記横方向制御との一方を実行する場合の前記回数上限閾値よりも小さくする請求項9に記載の最適演算装置。
【請求項11】
前記最適値演算部は、前記状態変数の数及び前記入力変数の数が増加するに従って、前記制約数上限閾値を増加させると共に前記回数上限閾値を減少させる請求項8に記載の最適演算装置。
【請求項12】
前記最適値演算部は、前記最適値を用いる制御内容に基づいて、前記入力変数、前記状態変数、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記制御内容に基づいて、前記有効制約条件の数に対する前記演算処理負荷のコストの設定を変化させる請求項3に記載の最適演算装置。
【請求項13】
前記最適値演算部は、車両制御に係る前記入力変数を用い、車両の挙動を表す前記状態変数を用い、前記予測期間の各時点の前記入力変数及び前記状態変数の前記最適値に基づいて、前記予測期間の各時点の車両制御量の目標値を設定し、前記車両制御の制御内容に基づいて、前記入力変数、前記状態変数、前記状態方程式、前記車両制御量の目標値、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記車両制御の制御内容に基づいて、前記有効制約条件の数に対する前記演算処理負荷のコストの設定を変化させる請求項3に記載の最適演算装置。
【請求項14】
前記最適値演算部は、前記車両制御の制御内容として、車両の前後方向の挙動を制御する前後方向制御と車両の横方向の挙動を制御する横方向制御との一方又は双方を選択的に実行し、
前記演算中断部は、前記前後方向制御と前記横方向制御との双方を実行する場合における前記有効制約条件の数に対する前記演算処理負荷のコストを、前記前後方向制御と前記横方向制御との一方を実行する場合における前記有効制約条件の数に対する前記演算処理負荷のコストよりも大きくする請求項13に記載の最適演算装置。
【請求項15】
前記最適値演算部は、前記状態変数の数及び前記入力変数の数が増加するに従って、前記有効制約条件の数に対する前記演算処理負荷のコストを増加させる請求項12に記載の最適演算装置。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、最適演算装置に関するものである。
【背景技術】
【0002】
特許文献1の技術では、自車両の状態の変化、及び周辺の状態の変化に応じて、最適制御問題を解く際の初期値、及び予測期間を設定している。特許文献1の技術では、初期値及び予測期間を変化させることで、状況に応じた演算を行っている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、本願が想定している最適演算では、最適値候補演算の繰り返しごとに、設定数の制約条件の内で最適値候補演算に用いる制約条件である有効制約条件を追加又は削除しながら、入力変数及び状態変数の最適値の候補を演算する最適値候補演算を繰り返し行う。このような最適演算では、各最適値候補演算は、有効制約条件の数に応じた次数の行列演算になるため、有効制約条件の数が増加するほど、各最適値候補演算の演算処理負荷が2次関数的に高くなる。更に、最適値候補演算の繰り返し回数が増加するほど、演算処理負荷が高くなる。そのため、全ての設定数の制約条件が有効制約条件として設定された最適値候補演算の演算処理負荷が最も高くなる。そのため、設定数の制約条件が用いられる最も高い演算処理負荷を想定し、演算処理能力が高い高価な演算処理装置を採用する必要があった。一方、演算処理負荷の最大値を低減するために、制約条件の設定数を小さくすることも考えられるが、システムの性能劣化を招く。なお、特許文献1の技術では、このような有効制約条件を追加又は削除しながら最適値候補演算を繰り返し行う最適演算が行われていない。
【0005】
そこで、本願は、制約条件の設定数を必要な数に設定しつつ、想定される演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる最適演算装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本願に係る最適演算装置は、
予測期間の各時点の入力変数を入力として前記予測期間の各時点の状態変数を演算する状態方程式を用い、前記入力変数及び前記状態変数を評価する評価関数、及び前記入力変数又は前記状態変数を制約する1以上の設定数の制約条件を有する最適化問題を解くように、最適値候補演算の繰り返しごとに、前記設定数の前記制約条件の内で前記最適値候補演算に用いる前記制約条件である有効制約条件を追加又は削除しながら、前記入力変数及び前記状態変数の最適値の候補を演算する前記最適値候補演算を繰り返し行い、前記最適値の候補に基づいて、前記予測期間の各時点の前記入力変数及び前記状態変数の最適値を演算する最適値演算部と、
前記最適値候補演算の繰り返し中に、各前記最適値候補演算に用いられる前記有効制約条件の数に基づいて、前記最適値候補演算の繰り返しを中断するか否かを判定する演算中断部と、を備え、
前記最適値演算部は、前記最適値候補演算の繰り返しを中断すると判定された場合は、前記最適値候補演算の繰り返しを中断し、前記最適値候補演算の繰り返しを中断する前に演算された前記入力変数及び前記状態変数の前記最適値の候補に基づいて、前記入力変数及び前記状態変数の前記最適値を演算するものである。
【発明の効果】
【0007】
本願に係る最適演算装置によれば、各最適値候補演算に用いられる有効制約条件の数により、各最適値候補演算の演算処理負荷を把握し、最適値候補演算の繰り返しを中断することにより、演算処理負荷の累積値が大きくなることを未然に抑制できる。よって、想定される演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1に係る最適演算装置が組み込まれた車両制御装置及び車両システムの概略ブロック図である。
【
図2】実施の形態1に係る車両制御装置のハードウェア構成図である。
【
図3】実施の形態1に係る車両制御装置の別例のハードウェア構成図である。
【
図4】実施の形態1に係る有効制約条件の数と演算処理負荷との関係を説明するための図である。
【
図5】実施の形態1に係る最適値演算部及び演算中断部の処理を説明するためのフローチャートである。
【
図6】実施の形態1に係る状態変数及び入力変数の数に応じた、制約数上限閾値及び回数上限閾値の設定を説明するための図である。
【
図7】実施の形態1に係る車両制御の制御内容に応じた制約数上限閾値及び回数上限閾値の設定を説明するためのフローチャートである。
【
図8】実施の形態1に係る自車両の座標系を説明する図である。
【
図9】実施の形態2に係る演算処理負荷のコストの累積値により繰り返しの中断を説明するための図である。
【
図10】実施の形態2に係る有効制約条件の数に対する演算処理負荷のコストの設定を説明する図である。
【
図11】実施の形態2に係る最適値演算部及び演算中断部の処理を説明するためのフローチャートである。
【
図12】実施の形態2に係る状態変数及び入力変数の数に応じた演算処理負荷のコストの設定を説明するための図である。
【
図13】実施の形態2に係る車両制御の制御内容に応じた制約数上限閾値及び回数上限閾値の設定を説明するためのフローチャートである。
【
図14】実施の形態2に係る車両制御の制御内容に応じた演算処理負荷のコストの設定を説明するための図である。
【発明を実施するための形態】
【0009】
1.実施の形態1
実施の形態1に係る最適演算装置について図面を参照して説明する。本実施の形態では、最適演算装置は、自車両に搭載されており、自車両の制御の最適演算を行う。最適演算装置は、車両制御装置50に組み込まれている。車両システム1及び車両制御装置50は、自車両に搭載されている。
【0010】
図1に示すように、車両システム1は、車両状態検出装置31、周辺監視装置32、位置検出装置33、地図情報データベース34、無線通信装置35、車両制御装置50、駆動制御装置36、動力機8、電動操舵装置7、及び電動ブレーキ装置9等を備えている。
【0011】
車両状態検出装置31は、自車両の走行状態を検出する検出装置である。自車両の走行状態として、自車両の車両速度V、加速度α、自車両のロール角速度、ピッチ角速度、及びヨー角速度γが検出される。例えば、車両状態検出装置31として、自車両に働くロール角速度、ピッチ角速度、及びヨー角速度を検出する3軸の角速度センサ、加速度センサ、及び車輪の回転速度を検出する速度センサが設けられる。なお、自車両の速度は、加速度を積分するなど、他の方法により検出されてもよい。
【0012】
周辺監視装置32は、車両の周辺を監視するカメラ、レーダ等の装置である。レーダには、ミリ波レーダ、レーザレーダ、超音波レーダ等が用いられる。無線通信装置35は、4G、5G等のセルラー方式の無線通信の規格を用いて、基地局と無線通信を行う。
【0013】
位置検出装置33は、自車両の現在位置(緯度、経度、高度)を検出する装置であり、GNSS(Global Navigation Satellite System)等の人工衛星から出力される信号を受信するGPSアンテナ等が用いられる。なお、自車両の現在位置の検出には、自車両の走行車線番号を用いた方法、マップマッチング法、デッドレコニング法、自車両の周辺の検出情報を用いた方法等の各種の方法が用いられてもよい。
【0014】
地図情報データベース34には、道路形状(例えば、道路位置、車線数、各車線の形状、道路種別、制限速度等)、標識、信号等の道路情報が記憶されている。地図情報データベース34は、記憶装置を主体として構成されている。なお、地図情報データベース34は、ネットワーク網に接続された車外のサーバに設けられてもよく、車両制御装置50は、必要な道路情報を、無線通信装置35を介して車外のサーバから取得してもよい。
【0015】
駆動制御装置36として、動力制御装置、ブレーキ制御装置、自動操舵制御装置、及びライト制御装置等が備えられている。動力制御装置は、内燃機関、モータ等の動力機8の出力を制御する。ブレーキ制御装置は、電動ブレーキ装置9のブレーキ動作を制御する。自動操舵制御装置は、電動操舵装置7を制御する。ライト制御装置は、方向指示器、ハザードランプ等を制御する。
【0016】
1-1.車両制御装置50
車両制御装置50は、周辺状況取得部51、走行状態取得部52、目標走行状態設定部53、最適値演算部54、演算中断部55、及び車両制御部56等の機能部を備えている。車両制御装置50の各機能は、車両制御装置50が備えた処理回路により実現される。具体的には、
図2に示すように、車両制御装置50は、CPU(Central Processing Unit)等の演算処理装置90、記憶装置91、演算処理装置90に外部の信号を入出力する入出力装置92等を備えている。
【0017】
演算処理装置90として、ASIC(Application Specific Integrated Circuit)、IC(Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、GPU(Graphics Processing Unit)、AI(Artificial Intelligence)チップ、各種の論理回路、及び各種の信号処理回路等が備えられてもよい。また、演算処理装置90として、同じ種類のもの又は異なる種類のものが複数備えられ、各処理が分担して実行されてもよい。記憶装置91として、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ハードディスク等の各種の記憶装置が用いられる。
【0018】
入出力装置92には、通信装置、A/D変換器、入出力ポート、駆動回路等が備えられる。入出力装置92は、車両状態検出装置31、周辺監視装置32、位置検出装置33、地図情報データベース34、無線通信装置35、及び駆動制御装置36等に接続され、これらの装置と通信を行う。
【0019】
そして、車両制御装置50が備える各機能部51から56等の各機能は、演算処理装置90が、記憶装置91に記憶されたソフトウェア(プログラム)を実行し、記憶装置91及び入出力装置92等の車両制御装置50の他のハードウェアと協働することにより実現される。なお、各機能部51から56等が用いる制約数上限閾値THdact、及び回数上限閾値THnit等の設定データは、ソフトウェア(プログラム)の一部として、EEPROM等の記憶装置91に記憶されている。
【0020】
或いは、車両制御装置50は、処理回路として、
図3に示すように、専用のハードウェア93、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC、FPGA、GPU、AIチップ、又はこれらを組み合わせた回路等が備えられてもよい。以下、車両制御装置50の各機能について詳細に説明する。
【0021】
1-1-1.周辺状況取得部51
周辺状況取得部51は、自車両の周辺状況を取得する。例えば、周辺状況取得部51は、自車両の周囲に存在する他車両等を検知する。周辺状況取得部51は、周辺監視装置32から取得した検知情報、及び位置検出装置33から取得した自車両の位置情報に基づいて、他車両の位置、移動方向、移動速度などを検知する。また、周辺状況取得部51は、他車両以外にも、道路区画線等の車線形状、障害物、歩行者、標識なども検知する。
【0022】
1-1-2.走行状態取得部52
走行状態取得部52は、自車両の走行状態を取得する。走行状態取得部52は、車両状態検出装置31から、自車両の走行状態として、自車両の車両速度V、加速度α、自車両のロール角速度、ピッチ角速度、及びヨー角速度γを取得する。また、走行状態取得部52は、位置検出装置33から取得した自車両の位置情報に基づいて、自車両の位置、移動方向などを取得する。また、走行状態取得部52は、周辺状況取得部51から取得した車線の形状に基づいて、車線に対する自車両の走行位置の情報を取得する。また、走行状態取得部52は、車両制御部56から操舵角δ、内燃機関等の動力機の出力、及びブレーキの動作状態などの運転操作状態を取得する。
【0023】
1-1-3.目標走行状態設定部53
目標走行状態設定部53は、自車両の目標走行状態を設定する。目標走行状態設定部53は、周辺状況取得部51により検知された自車両の周辺の他車両、道路形状、障害物、及び歩行者等の状態に合わせた、目標走行状態を演算する。
【0024】
例えば、後述する横方向制御が実行される場合は、目標走行状態として横方向の目標走行位置が演算される。横方向の目標走行位置は、各前後方向の位置Yにおける横方向の目標走行範囲に設定される。横方向制御として、車線維持制御、障害物回避制御、車線変更制御等がある。
【0025】
例えば、後述する前後方向制御が実行される場合は、目標走行状態として前後方向の速度、車間距離等が演算される。前後方向制御として、クルーズコントロール、車間距離制御、先行車両追従制御等がある。
【0026】
例えば、前後方向制御及び横方向制御の双方が実行される場合は、目標走行状態として目標走行軌道が演算される。目標走行軌道は、将来の各時点における自車両の位置、自車両の進行方向、及び自車両の速度等の時系列の走行計画である。目標走行軌道の演算には、公知の各種の方法が用いられる。なお、前後方向制御及び横方向制御として、単に、前後方向制御及び横方向制御が同時に実行されてもよい。
【0027】
1-1-4.車両制御部56
車両制御部56は、後述する最適値演算部54により設定された車両制御量の目標値に基づいて、自車両を制御する。本実施の形態では、前後方向制御及び横方向制御の双方が実行される場合は、車両制御量の目標値は、各時点の操舵角δの目標値、各時点の加速度αの目標値に設定される。横方向制御が実行される場合は、車両制御量の目標値は、各時点の操舵角δの目標値に設定される。前後方向制御が実行される場合は、車両制御量の目標値は、各時点の加速度αの目標値に設定される。車両制御量の目標値として他のパラメータが設定されてもよい。
【0028】
車両制御部56は、各時点の加速度αに基づいて、動力制御装置への指令値、及びブレーキ制御装置への指令値を演算する。車両制御部56は、各時点の操舵角δの目標値に基づいて、自動操舵制御装置への指令値を演算する。
【0029】
動力制御装置は、指令値に従って、内燃機関、モータ等の動力機8の出力を制御する。ブレーキ制御装置は、指令値に従って、電動ブレーキ装置9のブレーキ動作を制御する。自動操舵制御装置は、指令値に従って、電動操舵装置7を制御する。
【0030】
1-1-5.最適値演算部54
最適値演算部54は、予測期間の各時点kの入力変数u(k)を入力として予測期間の各時点kの状態変数x(k)を演算する状態方程式を用い、入力変数u及び状態変数xを評価する評価関数、及び入力変数u又は状態変数xを制約する1以上の設定数Dallの制約条件gを有する最適化問題を解くように、最適値候補演算の繰り返しごとに、設定数Dallの制約条件gの内で最適値候補演算に用いる制約条件である有効制約条件gactを追加又は削除しながら、各時点kの入力変数の最適値の候補utmp(k)及び状態変数の最適値の候補xtmp(k)を演算する最適値候補演算を繰り返し行い、各時点kの入力変数の最適値の候補utmp(k)及び状態変数の最適値の候補xtmp(k)に基づいて、予測期間の各時点kの入力変数の最適値u*(k)及び状態変数の最適値x*(k)を演算する。最適値演算部54は、演算周期毎に、最適値の演算処理を実行して、最適値を演算する。
【0031】
最適値演算部54は、予測期間の各時点kの入力変数u(k)の初期値u0(k)を設定する。最適値演算部54は、最適化問題を解くように、最適値候補演算の繰り返しごとに、各時点kの入力変数の最適値の候補utmp(k)を初期値u0(k)から更新していく。
【0032】
<状態変数の状態方程式>
次式に示すように、状態変数xの状態方程式は、各時点kの状態変数の時間微分dx/dt(k)が、各時点kの入力変数u(k)及び状態変数x(k)を入力とする関数fで表される。状態変数が複数の場合は、xはベクトルになり、入力変数が複数の場合は、uはベクトルになる。ここで、kは、予測期間の各時点を表し、k=0が、現在であり、k=Nが予測期間の終点であり、ホライズンと呼ばれる。
【数1】
【0033】
次式に示すように、次の時点の状態変数x(k+1)は、現時点の状態変数x(k)に、現時点の状態変数の時間微分dx(k)/dtに予測期間の時点間の時間間隔ΔTを乗算した値を加算して演算される。なお、式(2)のようなオイラー法でなく、ルンゲクッタ法など各種の演算手法が用いられてもよい。
【数2】
【0034】
k=0の状態変数x(0)は、検出された現在の状態変数に設定される。予測期間の各時点k(k=0、・・・、N)の入力変数u(k)は、初期値又は前回の最適値候補演算の更新値になる。時点kを0からNまで1つずつ増加させながら、今回の時点kの入力変数u(k)及び状態変数x(k)に基づいて、式(1)及び式(2)を用い、次の時点k+1の状態変数x(k+1)が順番に演算される。
【0035】
<最適化問題>
次式のような、一般的な最適化問題を考える。
【数3】
【0036】
ここで、Jは、入力変数u(k)及び状態変数x(k)を評価する評価関数である。本実施の形態では、評価関数Jは2次式とされている。gは、入力変数u(k)及び状態変数x(k)を制約する制約条件であり、設定数Dallの制約条件が存在する。すなわち、設定数Dallの制約条件を満たしつつ、評価関数Jを最小化する入力変数uを演算する。なお、評価関数の正負を反転させ、評価関数を最大化する最大化問題とされてよい。
【0037】
式(3)の一般的な最適化問題をそのまま解いてもよいが、本実施の形態では、次式に示すように、最適化問題は、評価関数Jの勾配∇J、及び有効制約条件gactの勾配∇gactをラグランジュ乗数λで線形結合した、最適値が満たすべき最適条件であるカルーシュ・クーン・タッカー条件(KKT条件:Karush-Kuhn-Tucker condition)を有する。
【数4】
【0038】
ここで、∇は、動作点で偏微分を行い、勾配を計算する演算子である。x*は、状態変数の最適値であり、u*は、入力変数の最適値である。λiは、各有効制約条件gactiの勾配を、評価関数Jの勾配に線形結合するラグランジュ乗数である。Dactは、有効制約条件gactの数である。状態変数x及び入力変数uが最適値であれば、式(4)から式(7)の全ての式を満たす、各ラグランジュ乗数λiの値が存在する。KKT条件を満たす最適値を演算する有効制約法などの公知の手法が用いられる。なお、最適値候補演算では、式(4)から式(7)の入力変数の最適値u*及び状態変数の最適値x*は、入力変数の最適値の候補utmp及び状態変数の最適値の候補xtmpとして演算される。
【0039】
最適値演算部54は、前回の最適値候補演算において用いたが、実際に入力変数u又は状態変数xを制約していない有効制約条件gactを有効制約条件gactから削除し、前回の最適値候補演算において用いられていないが入力変数又は状態変数を制約する必要がある制約条件gを有効制約条件gactに追加することにより、次回の最適値候補演算において用いる有効制約条件gactを追加又は削除する。最適値演算部54は、前回の最適値候補演算で用いた有効制約条件gactと、次回の最適値候補演算において用いる有効制約条件gactとが同じ場合は、最適値候補演算を終了し、前回の最適値候補演算において演算された入力変数及び状態変数の最適値の候補を、入力変数及び状態変数の最適値として設定する。
【0040】
<演算処理負荷の課題>
各最適値候補演算は、有効制約条件の数Dactに応じた次数の行列演算(Dact×Dact)になるため、
図4に示すように、有効制約条件の数Dactが増加するほど、1回の最適値候補演算の演算処理負荷が2次関数的に増加する。更に、最適値候補演算の繰り返し回数Nitが増加するほど、演算処理負荷の累積値が増加する。
【0041】
最適値の演算処理を演算周期毎に演算処理装置により実行するためには、演算処理負荷の最大累積値を推定する必要がある。
図4に示すように、有効制約条件の数Dactが増加するほど、1回の最適値候補演算の演算処理負荷が増加し、全ての設定数Dallの制約条件が有効制約条件として設定された最適値候補演算の演算処理負荷が最も高くなる。そのため、設定数Dallの制約条件が用いられる最も高い演算処理負荷を想定し、演算処理能力が高い高価な演算処理装置を採用する必要があった。なお、演算処理負荷の最大累積値を低減するために、制約条件の設定数Dallを小さくすることも考えられるが、システムの性能劣化を招く。そのため、制約条件の設定数Dallを必要な数に設定しつつ、想定される演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる最適演算装置を提供することが求められる。
【0042】
<演算中断部55>
演算中断部55は、最適値候補演算の繰り返し中に、各最適値候補演算に用いられる有効制約条件の数Dactに基づいて、最適値候補演算の繰り返しを中断するか否かを判定する。そして、最適値演算部54は、最適値候補演算の繰り返しを中断すると判定された場合は、最適値候補演算の繰り返しを中断し、最適値候補演算の繰り返しを中断する前に演算された入力変数及び状態変数の最適値の候補に基づいて、入力変数及び状態変数の最適値を演算する。
【0043】
この構成によれば、各最適値候補演算に用いられる有効制約条件の数Dactにより、各最適値候補演算の演算処理負荷を把握し、最適値候補演算の繰り返しを中断することにより、演算処理負荷の累積値が大きくなることを未然に抑制できる。よって、想定される演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる。
【0044】
本実施の形態では、演算中断部55は、最適値候補演算の繰り返し中に、次回の最適値候補演算に用いられる有効制約条件の数Dactが、制約数上限閾値THdactを超えた場合は、最適値候補演算の繰り返しを中断すると判定し、制約数上限閾値THdactを超えていない場合は、最適値候補演算の繰り返しを中断しないと判定する。
【0045】
この構成によれば、最適値候補演算の繰り返し中の、1回の最適値候補演算のあたりの演算処理負荷の最大値を低減することができ、演算処理能力が低い廉価な演算処理装置を採用することができる。
【0046】
また、演算中断部55は、最適値候補演算の繰り返し中に、次回の最適値候補演算に用いられる有効制約条件の数Dactが、制約数上限閾値THdactを超えていない場合において、最適値候補演算の繰り返し回数Nitが回数上限閾値THnitを超えた場合は、最適値候補演算の繰り返しを中断すると判定し、回数上限閾値THnitを超えていない場合は、最適値候補演算の繰り返しを中断しないと判定する。
【0047】
この構成によれば、制約数上限閾値THdactと回数上限閾値THnitの双方により、演算処理負荷の最大累積値を管理できる。なお、最大累積値は、THdact×THnitに応じた値になる。よって、従来のように回数上限閾値THnitだけで中断する場合よりも、演算処理負荷の最大累積値の管理精度を高めることができ、演算処理能力が低い廉価な演算処理装置を採用することができる。
【0048】
最適値演算部54は、最適値候補演算の繰り返しを中断し、中断する前の最適値候補演算で演算された入力変数及び状態変数の最適値の候補が設定数の制約条件を満たす場合は、当該中断する前の最適値候補演算で演算された入力変数及び状態変数の最適値の候補を、入力変数及び状態変数の最適値として設定する。
【0049】
最適値演算部54は、最適値候補演算の繰り返しを中断し、中断する前の最適値候補演算で演算された入力変数及び状態変数の最適値の候補が設定数の制約条件のいずれかを満たさない場合は、最適値を演算しない。
【0050】
最適値演算部54は、中断する直前の最適値候補演算で演算された入力変数及び状態変数の最適値の候補が設定数の制約条件のいずれかを満たさない場合であっても、過去のいずれかの最適値候補演算で演算された入力変数及び状態変数の最適値の候補が、設定数の制約条件を満たす場合は、設定数の制約条件を満たした最新の過去の最適値候補演算で演算された入力変数及び状態変数の最適値の候補を、入力変数及び状態変数の最適値として設定してもよい。一方、最適値演算部54は、設定数の制約条件を満した過去の最適値候補演算の最適値の候補が存在しない場合は、最適値を演算しない。最適値候補演算の繰り返しが中断された場合でも、最適値候補演算を繰り返し、有効制約条件の追加及び削除が行われる中で、設定数の制約条件が満たされる最適値候補演算の最適値の候補が存在する場合に、最適値を設定することができる。
【0051】
最適値演算部54は、最適値候補演算の繰り返しを中断した場合は、最適値が、最適値候補演算の中断により演算されたことを表す状態信号(以下、中断解の状態信号と称す)を出力する。この構成によれば、最適値を使用する制御において、中断解の状態信号が出力された場合は、制御量の出力範囲を制限する等の保護動作を行うことができる。
【0052】
例えば、車両制御部56は、中断解の状態信号が出力された場合は、動力制御装置への指令値の操作範囲、及びブレーキ制御装置への指令値の操作範囲を制限したり、自動操舵制御装置への指令値の操作範囲を制限したりする。
【0053】
<最適値演算部54及び演算中断部55の処理例>
以上で説明した最適値演算部54及び演算中断部55の処理を、
図5のフローチャートに示すように構成できる。
図5のフローチャートの処理は、演算周期ごとに実行される。ステップS11で、最適値演算部54は、各時点kの入力変数の初期値u0(k)を設定する。例えば、最適値演算部54は、前回の演算周期で演算された各時点kの入力変数の最適値u*(k)に基づいて、今回の演算周期の各時点kの入力変数の初期値u0(k)を設定する。なお、各種の方法により、入力変数の初期値u0が設定されてもよい。
【0054】
ステップS12で、最適値演算部54は、有効制約条件gactの初期設定を行う。例えば、最適値演算部54は、各時点kの入力変数の初期値u0(k)に基づいて、各時点kの状態変数の初期値x0(k)を演算し、各時点kの入力変数の初期値u0(k)及び状態変数の初期値x0(k)の状態で、設定数Dallの制約条件gのそれぞれが満たされているか否かを判定する。そして、最適値演算部54は、満たされていない制約条件gを、有効制約条件gactに設定し、満たされている制約条件gを、有効制約条件gactに設定せずに、無効にする。
【0055】
そして、ステップS13で、最適値演算部54は、1回の最適値候補演算を実行し、設定された有効制約条件gactの制約のもとで評価関数Jを最小化するように、各時点kの入力変数u(k)を更新し、各時点の入力変数及び状態変数の最適値の候補を演算する。最適値演算部54は、更新された各時点kの入力変数u(k)を、各時点の入力変数の最適値の候補utmp(k)として設定し、更新した各時点kの入力変数u(k)に対応する各時点kの状態変数x(k)を、各時点kの状態変数の最適値の候補xtmp(k)として設定する。
【0056】
ステップS14で、最適値演算部54は、前回の最適値候補演算において用いたが、実際に入力変数又は状態変数の最適値の候補を制約していない有効制約条件gactが存在するか否かを判定する。具体的には、ラグランジュ乗数λが負になっている有効制約条件gactは、最適値の候補を制約しておらず、無効な制約条件であると判定される。最適値演算部54は、制約していない有効制約条件gactが存在する場合は、ステップS15に進み、制約していない有効制約条件gactを有効制約条件gactから削除し(無効化し)、制約していない有効制約条件gactが存在しない場合は、ステップS16に進む。
【0057】
ステップS16で、最適値演算部54は、前回の最適値候補演算において有効制約条件gactとして用いられていないが、入力変数又は状態変数の最適値の候補を制約する必要がある制約条件gが存在するか否かを判定する。具体的には、最適値演算部54は、有効制約条件gactに設定されていない無効な制約条件gのそれぞれについて、最適値の候補が無効な制約条件gを満たしているか否かを判定する。最適値演算部54は、制約する必要がある無効な制約条件gが存在する場合は、ステップS17に進み、制約する必要がある無効な制約条件gを有効制約条件gactに追加する(有効化する)。有効制約条件gactは、最適値候補演算の繰り返しごとに、1つだけ追加又は削除される。そして、ステップS18で、最適値演算部54は、繰り返し回数Nitを1つ増加させる(Nit←Nit+1)。なお、繰り返し回数Nitの初期値は、1に設定される。
【0058】
一方、最適値演算部54は、制約する必要がある無効な制約条件gが存在しない場合(ステップS16:No)は、前回の最適値候補演算で用いた有効制約条件gactと、次回の最適値候補演算において用いる有効制約条件gactとが同じになるので、最適値候補演算の繰り返しを終了し、ステップS22に進む。ステップS22で、最適値演算部54は、最適値が、最適値候補演算の通常の終了により演算されたことを表す状態信号(通常解の状態信号)を出力する。
【0059】
一方、演算中断部55は、ステップS19で、ステップS15又はステップS17の追加又は削除後の次回の最適値候補演算に用いられる有効制約条件gactの数Dactに基づいて、最適値候補演算の繰り返しを中断するか否かを判定する。本実施の形態では、演算中断部55は、最適値候補演算の繰り返し中に、次回の最適値候補演算に用いられる有効制約条件gactの数Dactが、制約数上限閾値THdactを超えたか否かを判定し、制約数上限閾値THdactを超えた場合は、最適値候補演算の繰り返しを中断すると判定してステップS21に進み、制約数上限閾値THdactを超えていない場合は、ステップS20に進む。ステップS20で、演算中断部55は、繰り返し回数Nitが、回数上限閾値THnitを超えたか否かを判定し、回数上限閾値THnitを超えた場合は、最適値候補演算の繰り返しを中断すると判定してステップS21に進み、回数上限閾値THnitを超えていない場合は、最適値候補演算の繰り返しを中断しないと判定し、ステップS13に戻り、最適値候補演算の繰り返しを継続する。
【0060】
ステップS21で、最適値演算部54は、最適値が、最適値候補演算の中断により演算されたことを表す中断解の状態信号を出力する。
【0061】
ステップS21又はステップS22の後、ステップS23で、最適値演算部54は、最適値候補演算で演算された各時点kの入力変数の最適値の候補utmp(k)及び状態変数の最適値の候補xtmp(k)が、設定数の制約条件を満たすか否かを判定し、設定数の制約条件を満たす場合は、ステップ24に進み、設定数の制約条件を満さない場合は、ステップS25に進む。ここで、最適値演算部54は、最適値候補演算の繰り返しが中断されずに終了した場合は、最後の最適値候補演算で演算された各時点kの入力変数の最適値の候補utmp(k)及び状態変数の最適値の候補xtmp(k)が、設定数の制約条件を満たすか否かを判定する。最適値演算部54は、最適値候補演算の繰り返しが中断された場合は、上述したように、中断する前の最適値候補演算で演算された各時点kの入力変数の最適値の候補utmp(k)及び状態変数の最適値の候補xtmp(k)が、設定数の制約条件を満たすか否かを判定する。
【0062】
ステップS24で、最適値演算部54は、ステップS23で、設定数の制約条件を満たすと判定された各時点kの入力変数の最適値の候補utmp(k)及び状態変数の最適値の候補xtmp(k)を、各時点kの入力変数の最適値u*(k)及び状態変数の最適値x*(k)として設定する。
【0063】
一方、ステップS25で、最適値演算部54は、最適値が演算されていないことを表す状態信号(解無しの状態信号)を出力する。
【0064】
<車両制御>
本実施の形態では、最適値演算部54は、車両制御に係る入力変数uを用い、車両の挙動を表す状態変数xを用い、予測期間の各時点kの入力変数の最適値u*(k)及び状態変数の最適値x*(k)に基づいて、予測期間の各時点kの車両制御量の目標値を設定する。また、最適値演算部54は、車両制御の制御内容に基づいて、入力変数u、状態変数x、状態方程式、車両制御量の目標値、及び設定数の制約条件を設定する。最適値演算部54は、車両制御の制御内容に基づいて、状態方程式の出力変数y及び出力変数の目標値yrefも設定する。状態方程式として、車両モデルの状態方程式を用いる。
【0065】
本実施の形態では、車両制御の制御内容として、車両の前後方向の挙動を制御する前後方向制御と車両の横方向の挙動を制御する横方向制御との一方又は双方が選択的に実行されるように構成されている。例えば、前後方向制御及び横方向制御が行われる場合は、式(8)の車両モデルの状態方程式が用いられ、横方向制御が行われる場合は、式(11)の車両モデルの状態方程式が用いられ、前後方向制御が行われる場合は、式(14)の車両モデルの状態方程式が用いられる。式(8)及び式(11)では、車両モデルに、二輪モデルが用いられる。車両モデルの状態方程式は、車両の挙動を表す各状態変数の微分方程式で表せられる。なお、車両モデルの状態方程式として、公知の各種の状態方程式が用いられてもよい。
【0066】
横方向制御が実行される場合でも、横方向制御の制御内容が変更されてもよい。例えば、横方向制御の制御内容として、車線維持制御、障害物回避制御、車線変更制御等がある。横方向制御の制御内容に基づいて、設定数の制約条件が設定される。横方向制御の制御内容に基づいて、入力変数u、状態変数x、状態方程式、車両制御量の目標値、状態方程式の出力変数y、及び出力変数の目標値yrefも設定されてもよい。
【0067】
前後方向制御が実行される場合でも、前後方向制御の制御内容が変更されてもよい。例えば、前後方向制御の制御内容として、クルーズコントロール、車間距離制御、先行車両追従制御等がある。前後方向制御の制御内容に基づいて、設定数の制約条件が設定される。前後方向制御の制御内容に基づいて、入力変数u、状態変数x、状態方程式、車両制御量の目標値、状態方程式の出力変数y、及び出力変数の目標値yrefも設定されてもよい。
【0068】
前後方向制御及び横方向制御が実行される場合でも、前後方向制御及び横方向制御の制御内容が変更されてもよい。例えば、前後方向制御及び横方向制御の制御内容として、目標走行軌道に追従する制御、障害物回避制御、又は上記の前後方向制御と横方向制御の同時実行等がある。前後方向制御及び横方向制御の制御内容に基づいて、設定数の制約条件が設定される。前後方向制御及び横方向制御の制御内容に基づいて、入力変数u、状態変数x、状態方程式、車両制御量の目標値、状態方程式の出力変数y、及び出力変数の目標値yrefも設定されてもよい。
【0069】
<制約数上限閾値THdact及び回数上限閾値THnitの設定>
上記のように、車両制御の制御内容に応じて、入力変数u、状態変数x、車両制御量の目標値、及び設定数の制約条件が変化するので、車両制御の制御内容に応じて、各最適値候補演算の演算処理負荷が変化する。状態変数xの数、入力変数uの数、及び制約条件の設定数Dallが増加するに従って、各最適値候補演算の演算処理負荷が高くなる。一方、状態変数xの数及び入力変数uの数が大きくなるに従って、制約条件の設定数Dallが大きくなり、最適値を演算するために必要な有効制約条件の数Dactが大きくなる場合がある。そして、有効制約条件の数Dactが大きくなると、演算処理負荷の累積値の増加速度が大きくなり、繰り返し回数Nitが小さい段階で最適値候補演算の繰り返しを中断する必要がある。逆に、状態変数xの数及び入力変数uの数が小さくなるに従って、制約条件の設定数が小さくなり、最適値を演算するために必要な有効制約条件の数Dactが小さくなる場合がある。そして、有効制約条件の数Dactが小さくなると、演算処理負荷の累積値の増加速度が小さくなり、繰り返し回数Nitが大きくなるまで、最適値候補演算の繰り返しを中断する必要がない。
【0070】
そこで、本実施の形態では、演算中断部55は、車両制御の制御内容に基づいて、制約数上限閾値THdact及び回数上限閾値THnitを設定する。
【0071】
この構成によれば、最適値を得るために必要な有効制約条件の数Dactが大きい車両制御の制御内容であっても、最適値を得るために必要な有効制約条件の数Dactが小さい車両制御の制御内容であっても、制約数上限閾値THdact及び回数上限閾値THnitを適切に設定することで、最適値を演算することができると共に、演算処理負荷の累積値が大きくなり過ぎることを未然に抑制できる。
【0072】
例えば、
図6に示すように、演算中断部55は、状態変数xの数及び入力変数uの数が増加するに従って、制約数上限閾値THdactを増加させると共に回数上限閾値THnitを減少させる。
【0073】
この構成によれば、状態変数xの数及び入力変数uの数が大きく、最適値を得るために必要な有効制約条件の数Dactが大きくなる可能性が高い場合に、制約数上限閾値THdactを増加させて、最適値を演算することができると共に、回数上限閾値THnitを減少させて、演算処理負荷の累積値が大きくなり過ぎることを未然に抑制できる。一方、状態変数xの数及び入力変数uの数が小さく、最適値を得るために必要な有効制約条件の数Dactが大きくなる可能性が低い場合に、制約数上限閾値THdactを減少させ、回数上限閾値THnitを増加させて、最適値を演算可能にしつつ、演算処理負荷の累積値が小さい段階で最適値候補演算の繰り返しが中断されることを抑制できる。よって、車両制御の制御内容にかかわらず、最適値を演算可能にしつつ、演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる。
【0074】
本実施の形態では、演算中断部55は、前後方向制御と横方向制御との双方を実行する場合の制約数上限閾値THdactを、前後方向制御と横方向制御との一方を実行する場合の制約数上限閾値THdactよりも大きくし、前後方向制御と横方向制御との双方を実行する場合の回数上限閾値THnitを、前後方向制御と横方向制御との一方を実行する場合の回数上限閾値THnitよりも小さくする。
【0075】
この構成によれば、前後方向制御及び横方向制御の双方を実行する場合の状態変数xの数及び入力変数uの数は、前後方向制御及び横方向制御の一方を実行する場合の状態変数xの数及び入力変数uの数よりも大きく、最適値を得るために必要な有効制約条件の数Dactが大きくなる可能性が高い。上記の構成によれば、前後方向制御及び横方向制御の一方又は双方が実行されるかにかかわらず、最適値を演算可能にしつつ、演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる。
【0076】
この制約数上限閾値THdactの設定処理は、例えば、
図7のフローチャートに示すように構成される。ステップS51で、演算中断部55は、現在実行中の車両制御の制御内容を取得する。ステップS52で、演算中断部55は、現在の制御内容が、前後方向制御及び横方向制御の双方であるか否かを判定し、双方である場合は、ステップS53に進み、一方である場合は、ステップS54に進む。ステップS54で、演算中断部55は、現在の制御内容が、横方向制御のみであるか否かを判定し、横方向制御のみである場合は、ステップS55に進み、横方向制御のみでなく、前後方向制御のみである場合は、ステップS56に進む。
【0077】
ステップS53で、演算中断部55は、制約数上限閾値THdact及び回数上限閾値THnitを、前後方向制御及び横方向制御用の設定値THdact1、THnit1に設定する。ステップS55で、演算中断部55は、制約数上限閾値THdact及び回数上限閾値THnitを、横方向制御用の設定値THdact2、THnit2に設定する。ステップS56で、演算中断部55は、制約数上限閾値THdact及び回数上限閾値THnitを、前後方向制御用の設定値THdact3、THnit3に設定する。前後方向制御及び横方向制御用の制約数上限閾値の設定値THdact1は、横方向制御用の設定値THdact2及び前後方向制御用の設定値THdact3よりも大きい(THdact1>THdact2、THdact3)。前後方向制御及び横方向制御用の回数上限閾値の設定値THnit1は、横方向制御用の設定値THnit2及び前後方向制御用の設定値THnit3よりも小さい(THnit1<THnit2、THnit3)。なお、横方向制御用の制約数上限閾値の設定値THdact2は、前後方向制御用の設定値THdact3よりも大きくてもよく(THdact2>THdact3)、横方向制御用の回数上限閾値の設定値THnit2は、前後方向制御用の設定値THnit3よりも小さくてもよい(THnit2<THnit3)。
【0078】
なお、上述したように、前後方向制御及び横方向制御の制御内容、前後方向制御の制御内容、及び横方向制御の制御内容に基づいて、より細かく制約数上限閾値THdact及び回数上限閾値THnitが設定されてもよい。
【0079】
<前後方向制御及び横方向制御のための車両モデル>
次式に、前後方向制御及び横方向制御を行う場合の車両モデルの状態方程式を示す。前後方向制御と横方向制御の制御内容に応じて、状態方程式等が変更されてもよい。
【数5】
【0080】
ここで、左辺の各変数の上部のドット符号は、各状態変数の時間微分値であることを示す。状態変数xとして、Yは、自車両の前後方向の位置を示し、Xは、自車両の横方向の位置を示し、θは、自車両の前後方向の傾きであり、βは、自車両の重心の横滑り角であり、γは、自車両のヨー角速度であり、δは、自車両の車輪の操舵角であり、Vは、自車両の速度であり、αは、自車両の加速度である。
【0081】
入力変数uとして、jは、自車両の加加速度であり、ωは、自車両の操舵角速度である。
【0082】
Iは、車両のヨー慣性モーメントであり、Mは、車両の質量であり、Lfは、車両重心と前輪の車軸との間の距離であり、Lrは、車両重心と後輪の車軸との間の距離である。Yfは、前輪のコーナーリングフォースであり、Yrは、後輪のコーナーリングフォースであり、Cfは、前輪タイヤのコーナーリングスティフネスであり、Crは、後輪タイヤのコーナーリングスティフネスである。
【0083】
状態方程式は、現在の自車両の位置を基準にした自車両の座標系X、Yにおいて表せられている。
図8に示すように、Xは、自車両の横方向であり、Yは、自車両の前後方向である。なお、自車両の座標系に代えて、目標走行軌道又は車線を基準にした座標系が用いられもよい。
【0084】
<前後方向制御及び横方向制御のための評価関数>
前後方向制御及び横方向制御を行う場合に、車両挙動の望ましさを評価する評価関数Jとして2次式の次式が用いられる。評価関数Jは、目標走行状態(目標走行軌道)と予測走行状態との差が小さくなるほど評価が高くなる(本例では、値が小さくなる)。なお、前後方向制御と横方向制御の制御内容に応じて、評価関数Jが変更されてもよい。
【数6】
【0085】
ここで、k(k=0、1、・・・、N-1、N)は、予測期間の各時点を表す時点番号であり、k=0が現在であり、k=Nが、最終の予測時点を表す。時点番号kは、時間間隔ΔT毎に0からNまで1つずつ増加される。よって、k×ΔTが、各時点kの現在からの経過時間である。y(k)は、各時点kにおける状態方程式の出力変数のベクトルであある。yref(k)は、各時点kにおける出力変数の目標値のベクトルであり、各時点kの目標走行軌道の値が設定されている。Pは、最終の予測時点(k=N)における出力変数の目標値からの偏差に対する重みであり、Qは、最終の予測時点を除く将来の各時点(k=1、・・・、N-1)における出力変数の目標値からの偏差に対する重みである。この重みP、Qの項により、各時点における目標走行軌道からの車両の走行状態のズレが評価される。Rは、最終の予測時点を除く将来の各時点(k=1、・・・、N-1)における入力変数の目標値からの偏差に対する重みである。この重みRの項により、自車両の加加速度j及び操舵角速度ωが大きくなり過ぎないように評価される。よって、各重みP、Q、Rの設定により、操舵角度の変動及び車両加速度の変動と、目標走行軌道への追従性とがバランスされ、運転者にとって違和感の少ない車両制御が行われる。
【0086】
各時点kの車両制御量の目標値は、最適化問題が解かれた後の各時点kの状態変数の最適値x*(k)に含まれる操舵角δ*(k)及び加速度α*(k)に設定される。
【0087】
<前後方向制御及び横方向制御のための設定数の制約条件>
次式に、前後方向制御及び横方向制御を行う場合の設定数の制約条件を示す。本例では、設定数Dall=6に設定されている。第1の制約条件g1は、加速度αを、正の上限値αHにより上限制限し、第2の制約条件g2は、加速度αを、負の下限値αLにより下限制限する。乗り心地をよくするためである。第3の制約条件g3は、操舵角速度ωを、正の上限値ωHにより上限制限し、第4の制約条件g4は、操舵角速度ωを、負の下限値ωLにより下限制限する。乗り心地をよくするためである。また、第5の制約条件g5は、横方向の位置Xを、正の上限値XHにより上限制限し、第6の制約条件g6は、横方向の位置Xを、負の下限値XLにより下限制限する。予定している走行範囲からの逸脱を防止するためである。目標走行軌道がカーブしている場合は、各時点の上限値XH及び下限値XLが、各時点の目標走行軌道に応じて変化されてもよい。なお、制約条件は、前後方向制御及び横方向制御の制御内容に応じて変化されてもよい。例えば、侵入禁止領域への侵入、又は障害物への接触を回避するために、任意の数の横方向の位置X及び前後方向の位置Yの制約条件が設定されてもよい。また、加速度αの制約条件が削除されてもよく、操舵角速度ωの制約条件が削除されてもよい。また、速度Vの制約条件が追加されてもよく、加加速度jの制約条件が追加されてもよく、操舵角δの制約条件が追加されてもよい。
【数7】
【0088】
<横方向制御のための車両モデル>
次式に、横方向制御を行う場合の車両モデルの状態方程式を示す。式(11)では、式(8)の状態方程式の7行目及8行目の自車両の速度V及び自車両の加速度αの時間微分値の行が削除されている。各時点kの自車両の速度V(k)に、現在の時点k=0の自車両の速度V(0)が設定されればよい。各時点kの入力変数u(k)として、各時点kの自車両の操舵角速度ω(k)が設定されている。なお、横方向制御の制御内容に応じて、状態方程式等が変更されてもよい。
【数8】
【0089】
<横方向制御のための評価関数>
横方向制御を行う場合に、車両挙動の望ましさを評価する評価関数Jとして2次式の次式が用いられる。評価関数Jは、目標走行状態(横方向の目標位置)と予測走行状態との差が小さくなるほど評価が高くなる(本例では、値が小さくなる)。なお、横方向制御の制御内容に応じて、評価関数Jが変更されてもよい。
【数9】
【0090】
各時点kの車両制御量の目標値は、最適化問題が解かれた後の各時点kの状態変数の最適値x*(k)に含まれる操舵角δ*(k)に設定される。
【0091】
<横方向制御のための設定数の制約条件>
次式に、前後方向制御及び横方向制御を行う場合の設定数の制約条件を示す。本例では、設定数Dall=4に設定されている。第1の制約条件g1は、操舵角速度ωを、正の上限値ωHにより上限制限し、第2の制約条件g2は、操舵角速度ωを、負の下限値ωLにより下限制限する。乗り心地をよくするためである。また、第3の制約条件g3は、横方向の位置Xを、正の上限値XHにより上限制限し、第4の制約条件g4は、横方向の位置Xを、負の下限値XLにより下限制限する。なお、制約条件は、横方向制御の制御内容に応じて変化されてもよい。例えば、車線維持制御を行う場合は、車線の形状に合わせて、各時点の横方向の上限値XH及び下限値XLが設定されてもよい。或いは、侵入禁止領域への侵入、又は障害物への接触を回避するために、任意の数の横方向の位置X及び前後方向の位置Yの制約条件が設定されてもよい。また、操舵角速度ωの制約条件が削除されてもよい。また、操舵角δの制約条件が追加されてもよい。
【数10】
【0092】
<前後方向制御のための車両モデル>
次式に、前後方向制御を行う場合の車両モデルの状態方程式を示す。式(14)では、式(8)から前後方向の挙動に関する行以外が削除されている。各時点kの自車両の速度V(k)に、現在の時点k=0の自車両の速度V(0)が設定されればよい。各時点kの入力変数u(k)として、各時点kの自車両の加加速度j(k)が設定されている。なお、前後方向制御の制御内容に応じて、状態方程式等が変更されてもよい。
【数11】
【0093】
<前後方向制御のための評価関数>
前後方向制御を行う場合に、車両挙動の望ましさを評価する評価関数Jとして2次式の次式が用いられる。評価関数Jは、目標走行状態(前後方向の目標位置)と予測走行状態との差が小さくなるほど評価が高くなる(本例では、値が小さくなる)。なお、前後方向制御の制御内容に応じて、評価関数Jが変更されてもよい。
【数12】
【0094】
各時点kの車両制御量の目標値は、最適化問題が解かれた後の各時点kの状態変数の最適値x*(k)に含まれる加速度α*(k)に設定される。
【0095】
<前後方向制御のための設定数の制約条件>
次式に、前後方向制御を行う場合の設定数の制約条件を示す。本例では、設定数Dall=4に設定されている。第1の制約条件g1は、加速度αを、正の上限値αHにより上限制限し、第2の制約条件g2は、加速度αを、負の下限値αLにより下限制限する。乗り心地をよくするためである。第3の制約条件g3は、前後方向の位置Yを、正の上限値YHにより上限制限し、第4の制約条件g4は、前後方向の位置Yを、負の下限値YLにより下限制限する。例えば、前後の他車両との車間距離を保つために用いられる。各時点の前後方向の上限値YH及び下限値YLが、各時点で変化されてもよい。なお、制約条件は、前後方向制御の制御内容に応じて変化されてもよい。例えば、前後方向の上限値YHを制限する制約条件、及び前後方向の下限値YLを制限する制約条件の一方又は双方が削除されてもよい。また、加速度αの制約条件が削除されてもよい。また、速度Vの制約条件が追加されてもよく、加加速度jの制約条件が追加されてもよい。
【数13】
【0096】
2.実施の形態2
実施の形態2に係る最適演算装置及び車両制御装置50について図面を参照して説明する。上記の実施の形態1と同様の構成部分は説明を省略する。本実施の形態に係る最適演算装置及び車両制御装置50の基本の構成は実施の形態1と同様であるが、演算中断部55の処理の一部が実施の形態1と異なる。
【0097】
演算中断部55は、最適値候補演算の繰り返し中に、各最適値候補演算に用いられる有効制約条件の数Dactに基づいて、最適値候補演算の繰り返しを中断するか否かを判定する。そして、最適値演算部54は、最適値候補演算の繰り返しを中断すると判定された場合は、最適値候補演算の繰り返しを中断し、最適値候補演算の繰り返しを中断する前に演算された入力変数及び状態変数に基づいて、入力変数及び状態変数の最適値を演算する。
【0098】
実施の形態1と異なり、演算中断部55は、最適値候補演算の繰り返し中に、次回の最適値候補演算に用いられる有効制約条件の数Dactに基づいて演算処理負荷のコストCstを演算し、演算処理負荷のコストCstの累積値Intcが、累積上限値THintを超えた場合は、最適値候補演算の繰り返しを中断すると判定し、それ以外の場合は、最適値候補演算の繰り返しを中断しないと判定する。
【0099】
図4を用いて説明したように、各最適値候補演算に用いられる有効制約条件の数Dactが増加するに従って、1回の最適値候補演算の演算処理負荷が増加する。上記の構成によれば、各最適値候補演算の有効制約条件の数Dactの大小にかかわらず、最適値候補演算の繰り返しによる演算処理負荷の累積値を評価し、演算処理負荷の累積値が大きくなることを未然に抑制できる。よって、演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる。
【0100】
例えば、
図9に示すように、最初の最適値候補演算の有効制約条件の数Dactが同じであっても、最適値候補演算の繰り返し中に有効制約条件の数Dactが次第に増加する場合は、演算処理負荷のコストの累積値Intcの増加速度が大きくなり、繰り返し回数Nitが小さい段階で、累積値Intcが累積上限値THintに到達し、最適値候補演算の繰り返しが中断される。一方、最適値候補演算の繰り返し中に、有効制約条件の数Dactが増加と減少とを繰り返し、次第に増加しない場合は、演算処理負荷のコストの累積値Intcの増加速度が大きくならず、繰り返し回数Nitが大きくなっても、累積値Intcが累積上限値THintに到達せず、最適値候補演算の繰り返しが継続される。なお、最適値候補演算の繰り返しは、繰り返し回数Nitが上限値を超えた場合に終了されてもよい。
【0101】
図10に示すように、演算中断部55は、次回の最適値候補演算を開始する前に、有効制約条件の数Dactと演算処理負荷のコストCstとの関係が予め設定されたテーブルデータを参照し、次回の最適値候補演算に用いられる有効制約条件の数Dactに対応する演算処理負荷のコストCstを演算する。そして、演算中断部55は、次式に示すように、次回の最適値候補演算の演算処理負荷のコストCstを、前回演算された累積値Intcに加算して、累積値Intcを更新する。
Intc←Intc+Cst ・・・(17)
【0102】
<処理の例>
本実施の形態に係る演算中断部55の処理を、
図11のフローチャートに示すように構成できる。
図11のフローチャートの処理は、演算周期ごとに実行される。ステップS31からステップS37、及びステップS40からステップS44の処理は、それぞれ、実施の形態1の
図5のステップS11からステップS17、及びステップS21からステップS25の処理と同様であるので、説明を省略する。
【0103】
ステップS38で、演算中断部55は、ステップS35又はステップS37で追加又は削除を行った後の次回の最適値候補演算において用いる有効制約条件の数Dactに基づいて、次回の最適値候補演算の演算処理負荷のコストCstを演算し、次回の最適値候補演算の演算処理負荷のコストCstを、前回演算された累積値Intcに加算して、累積値Intcを更新する。なお、累積値Intの初期値は0に設定される。
【0104】
ステップS39で、演算中断部55は、演算処理負荷のコストの累積値Intcが、累積上限値THintを超えたか否かを判定し、累積上限値THintを超えた場合は、最適値候補演算の繰り返しを中断すると判定してステップS40に進み、累積上限値THintを超えていない場合は、最適値候補演算の繰り返しを中断しないと判定し、ステップS33に戻り、最適値候補演算の繰り返しを継続する。
【0105】
<累積上限値THintの設定>
車両制御の制御内容に応じて、入力変数uの数及び状態変数xの数が変化するので、同じ有効制約条件の数Dactでも、車両制御の制御内容に応じて、各最適値候補演算の演算処理負荷が変化し、演算処理負荷の累積値の増加速度が変化する。
【0106】
そこで、本実施の形態では、演算中断部55は、車両制御の制御内容に基づいて、有効制約条件の数Dactに対する演算処理負荷のコストCstの設定を変化させる。
【0107】
この構成によれば、車両制御の制御内容に応じて変化する、有効制約条件の数Dactに対する演算処理負荷を精度よく評価することができ、演算処理負荷の累積値が大きくなり過ぎることを未然に抑制できる。
【0108】
例えば、
図12に示すように、演算中断部55は、状態変数xの数及び入力変数uの数が増加するに従って、有効制約条件の数Dactに対する演算処理負荷のコストCstを増加させる。
【0109】
この構成によれば、状態変数xの数及び入力変数uの数が大きく、同じ有効制約条件の数Dactでも、各最適値候補演算の演算処理負荷が大きくなる場合に、有効制約条件の数Dactに対する演算処理負荷のコストCstを増加させて、コストの累積値Intcの増加速度を増加させ、演算処理負荷の累積値を精度よく評価できる。一方、状態変数xの数及び入力変数uの数が小さく、同じ有効制約条件の数Dactでも、各最適値候補演算の演算処理負荷が小さくなる場合に、有効制約条件の数Dactに対する演算処理負荷のコストCstを減少させて、コストの累積値Intcの増加速度を減少させ、演算処理負荷の累積値を精度よく評価できる。よって、状態変数xの数及び入力変数uの数の大小にかかわらず、演算処理負荷の累積値を適切に上限制限することができる。
【0110】
本実施の形態では、演算中断部55は、前後方向制御と横方向制御との双方を実行する場合における有効制約条件の数Dactに対する演算処理負荷のコストCstを、前後方向制御と横方向制御との一方を実行する場合における有効制約条件の数Dactに対する演算処理負荷のコストCstよりも大きくする。
【0111】
この構成によれば、前後方向制御及び横方向制御の双方を実行する場合の状態変数xの数及び入力変数uの数は、前後方向制御及び横方向制御の一方を実行する場合の状態変数xの数及び入力変数uの数よりも大きく、同じ有効制約条件の数Dactでも、各最適値候補演算の演算処理負荷が大きくなる。上記の構成によれば、前後方向制御及び横方向制御の一方又は双方が実行されるかにかかわらず、演算処理負荷の累積値を精度よく評価できる。よって、演算処理負荷の最大累積値を低減し、演算処理能力が低い廉価な演算処理装置を採用することができる。
【0112】
この有効制約条件の数Dactに対する演算処理負荷のコストCstの設定処理は、例えば、
図13のフローチャートに示すように構成される。ステップS61で、演算中断部55は、現在実行中の車両制御の制御内容を取得する。ステップS62で、演算中断部55は、現在の制御内容が、前後方向制御及び横方向制御の双方であるか否かを判定し、双方である場合は、ステップS63に進み、一方である場合は、ステップS64に進む。ステップS64で、演算中断部55は、現在の制御内容が、横方向制御のみであるか否かを判定し、横方向制御のみである場合は、ステップS65に進み、横方向制御のみでなく、前後方向制御のみである場合は、ステップS66に進む。
【0113】
図14に示すように、ステップS63で、演算中断部55は、有効制約条件の数Dactに対する演算処理負荷のコストCstの設定を、前後方向制御及び横方向制御用のコストの設定値Cst1に設定する。ステップS65で、演算中断部55は、有効制約条件の数Dactに対する演算処理負荷のコストCstの設定を、横方向制御用のコストの設定値Cst2に設定する。ステップS66で、演算中断部55は、有効制約条件の数Dactに対する演算処理負荷のコストCstの設定を、前後方向制御用のコストの設定値Cst3に設定する。各有効制約条件の数Dactにおいて、前後方向制御及び横方向制御用のコストの設定値Cst1は、横方向制御用のコストの設定値Cst2及び前後方向制御用のコストの設定値Cst3よりも大きい(Cst1>Cst2、Cst3)。なお、各有効制約条件の数Dactにおいて、横方向制御用のコストの設定値Cst2は、前後方向制御用のコストの設定値Cst3よりも大きくてもよい(Cst2>Cst3)。
【0114】
なお、前後方向制御及び横方向制御の制御内容、前後方向制御の制御内容、及び横方向制御の制御内容に基づいて、より細かく、有効制約条件の数Dactに対する演算処理負荷のコストCstが設定されてもよい。
【0115】
<その他の実施の形態>
上記の各実施の形態では、状態方程式に車両モデルが用いられ、車両制御の最適化問題が解かれる場合を例に説明した。しかし、状態方程式に、各種の制御対象の式が用いられてよく、最適演算装置は、各種の制御対象の最適化問題に適用されてもよい。
【0116】
この場合でも、最適値演算部54は、最適値が用いられる制御内容に基づいて、入力変数u、状態変数x、及び設定数の制約条件を設定すればよい。そして、実施の形態1に対応する構成では、演算中断部55は、制御内容に基づいて、制約数上限閾値THdact及び回数上限閾値THnitを設定すればよい。この場合は、演算中断部55は、状態変数xの数及び入力変数uの数が増加するに従って、制約数上限閾値THdactを増加させると共に回数上限閾値THnitを減少させればよい。或いは、実施の形態2に対応する構成では、演算中断部55は、制御内容に基づいて、有効制約条件の数Dactに対する演算処理負荷のコストCstの設定を変化させればよい。この場合は、演算中断部55は、状態変数xの数及び入力変数uの数が増加するに従って、有効制約条件の数Dactに対する演算処理負荷のコストCstを増加させればよい。
【0117】
上記の各実施の形態では、最適化問題には、カルーシュ・クーン・タッカー条件(KTK条件)が用いられる場合を例に説明した。しかし、最適化問題の解法として、各種の解法が用いられもよい。
【0118】
<本願の諸態様のまとめ>
以下、本願の諸態様を付記としてまとめて記載する。
【0119】
(付記1)
予測期間の各時点の入力変数を入力として前記予測期間の各時点の状態変数を演算する状態方程式を用い、前記入力変数及び前記状態変数を評価する評価関数、及び前記入力変数又は前記状態変数を制約する1以上の設定数の制約条件を有する最適化問題を解くように、最適値候補演算の繰り返しごとに、前記設定数の前記制約条件の内で前記最適値候補演算に用いる前記制約条件である有効制約条件を追加又は削除しながら、前記入力変数及び前記状態変数の最適値の候補を演算する前記最適値候補演算を繰り返し行い、前記最適値の候補に基づいて、前記予測期間の各時点の前記入力変数及び前記状態変数の最適値を演算する最適値演算部と、
前記最適値候補演算の繰り返し中に、各前記最適値候補演算に用いられる前記有効制約条件の数に基づいて、前記最適値候補演算の繰り返しを中断するか否かを判定する演算中断部と、を備え、
前記最適値演算部は、前記最適値候補演算の繰り返しを中断すると判定された場合は、前記最適値候補演算の繰り返しを中断し、前記最適値候補演算の繰り返しを中断する前に演算された前記入力変数及び前記状態変数の前記最適値の候補に基づいて、前記入力変数及び前記状態変数の前記最適値を演算する最適演算装置。
【0120】
(付記2)
前記演算中断部は、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数が、制約数上限閾値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記制約数上限閾値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定する付記1に記載の最適演算装置。
【0121】
(付記3)
前記演算中断部は、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数に基づいて演算処理負荷のコストを演算し、前記演算処理負荷のコストの累積値が、累積上限値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記累積上限値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定する付記1に記載の最適演算装置。
【0122】
(付記4)
前記最適値演算部は、前記最適値候補演算の繰り返しを中断した場合は、前記最適値が、前記最適値候補演算の中断により演算されたことを表す状態信号を出力する付記1から3のいずれか一項に記載の最適演算装置。
【0123】
(付記5)
前記最適値演算部は、前記最適値候補演算の繰り返しを中断し、中断する前の前記最適値候補演算で演算された前記入力変数及び前記状態変数の前記最適値の候補が前記設定数の制約条件を満たす場合は、中断する前の前記最適値候補演算で演算された前記入力変数及び前記状態変数の前記最適値の候補を、前記入力変数及び前記状態変数の前記最適値として設定する付記1から4のいずれか一項に記載の最適演算装置。
【0124】
(付記6)
前記最適値演算部は、前回の前記最適値候補演算において用いたが、実際に前記入力変数又は前記状態変数の前記最適値の候補を制約していない前記有効制約条件を前記有効制約条件から削除し、前回の前記最適値候補演算において用いられていないが前記入力変数又は前記状態変数の前記最適値の候補を制約する必要がある前記制約条件を前記有効制約条件に追加することにより、次回の前記最適値候補演算において用いる前記有効制約条件を追加又は削除し、
前回の前記最適値候補演算で用いた前記有効制約条件と、次回の前記最適値候補演算において用いる前記有効制約条件とが同じ場合は、前記最適値候補演算の繰り返しを終了し、前回の前記最適値候補演算において演算された前記入力変数及び前記状態変数の前記最適値の候補を、前記入力変数及び前記状態変数の前記最適値として設定する付記1から5のいずれか一項に記載の最適演算装置。
【0125】
(付記7)
前記最適化問題は、前記評価関数の勾配、及び前記有効制約条件の勾配をラグランジュ乗数で線形結合した、前記最適値が満たすべき最適条件であるカルーシュ・クーン・タッカー条件を有する付記1から6のいずれか一項に記載の最適演算装置。
【0126】
(付記8)
前記最適値演算部は、前記最適値を用いる制御内容に基づいて、前記入力変数、前記状態変数、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記最適値候補演算の繰り返し中に、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数が、前記制約数上限閾値を超えていない場合において、繰り返し回数が、回数上限閾値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記回数上限閾値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定し、
前記演算中断部は、前記制御内容に基づいて、前記制約数上限閾値及び前記回数上限閾値を設定する付記2に記載の最適演算装置。
【0127】
(付記9)
前記最適値演算部は、車両制御に係る前記入力変数を用い、車両の挙動を表す前記状態変数を用い、前記予測期間の各時点の前記入力変数及び前記状態変数の前記最適値に基づいて、前記予測期間の各時点の車両制御量の目標値を設定し、前記車両制御の制御内容に基づいて、前記入力変数、前記状態変数、前記状態方程式、前記車両制御量の目標値、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記最適値候補演算の繰り返し中に、次回の前記最適値候補演算に用いられる前記有効制約条件の数が、前記制約数上限閾値を超えていない場合において、繰り返し回数が、回数上限閾値を超えた場合は、前記最適値候補演算の繰り返しを中断すると判定し、前記回数上限閾値を超えていない場合は、前記最適値候補演算の繰り返しを中断しないと判定し、
前記車両制御の制御内容に基づいて、前記制約数上限閾値及び前記回数上限閾値を設定する付記2に記載の最適演算装置。
【0128】
(付記10)
前記最適値演算部は、前記車両制御の制御内容として、車両の前後方向の挙動を制御する前後方向制御と車両の横方向の挙動を制御する横方向制御との一方又は双方を選択的に実行し、
前記演算中断部は、前記前後方向制御と前記横方向制御との双方を実行する場合の前記制約数上限閾値を、前記前後方向制御と前記横方向制御との一方を実行する場合の前記制約数上限閾値よりも大きくし、前記前後方向制御と前記横方向制御との双方を実行する場合の前記回数上限閾値を、前記前後方向制御と前記横方向制御との一方を実行する場合の前記回数上限閾値よりも小さくする付記9に記載の最適演算装置。
【0129】
(付記11)
前記最適値演算部は、前記状態変数の数及び前記入力変数の数が増加するに従って、前記制約数上限閾値を増加させると共に前記回数上限閾値を減少させる付記8から10のいずれか一項に記載の最適演算装置。
【0130】
(付記12)
前記最適値演算部は、前記最適値を用いる制御内容に基づいて、前記入力変数、前記状態変数、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記制御内容に基づいて、前記有効制約条件の数に対する前記演算処理負荷のコストの設定を変化させる付記3に記載の最適演算装置。
【0131】
(付記13)
前記最適値演算部は、車両制御に係る前記入力変数を用い、車両の挙動を表す前記状態変数を用い、前記予測期間の各時点の前記入力変数及び前記状態変数の前記最適値に基づいて、前記予測期間の各時点の車両制御量の目標値を設定し、前記車両制御の制御内容に基づいて、前記入力変数、前記状態変数、前記状態方程式、前記車両制御量の目標値、及び前記設定数の制約条件を設定し、
前記演算中断部は、前記車両制御の制御内容に基づいて、前記有効制約条件の数に対する前記演算処理負荷のコストの設定を変化させる付記3に記載の最適演算装置。
【0132】
(付記14)
前記最適値演算部は、前記車両制御の制御内容として、車両の前後方向の挙動を制御する前後方向制御と車両の横方向の挙動を制御する横方向制御との一方又は双方を選択的に実行し、
前記演算中断部は、前記前後方向制御と前記横方向制御との双方を実行する場合における前記有効制約条件の数に対する前記演算処理負荷のコストを、前記前後方向制御と前記横方向制御との一方を実行する場合における前記有効制約条件の数に対する前記演算処理負荷のコストよりも大きくする付記13に記載の最適演算装置。
【0133】
(付記15)
前記最適値演算部は、前記状態変数の数及び前記入力変数の数が増加するに従って、前記有効制約条件の数に対する前記演算処理負荷のコストを増加させる付記12から14のいずれか一項に記載の最適演算装置。
【0134】
本願は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【符号の説明】
【0135】
54:最適値演算部、55:演算中断部、Cst:演算処理負荷のコスト、Dall:制約条件の設定数、Dact:有効制約条件の数、Intc:コストの累積値、Nit:繰り返し回数、THdact:制約数上限閾値、THint:累積上限値、THnit:回数上限閾値、g:制約条件、gact:有効制約条件、k:各時点、u:入力変数、utmp:入力変数の候補、u*:入力変数の最適値、x:状態変数、xtmp:状態変数の候補、x*:状態変数の最適値