(57)【要約】    【課題】モデル予測制御においては未来予測誤差が大になると制御誤差も大になる問題があり、この対策についての発表もあるが応答時間が遅いという問題があった。このため、本発明においてはこの問題を解決し、モデル予測制御を用いて周囲状況の急変に対しても迅速に対応が可能な車両操作装置の開発を目的とした。    【解決手段】システムモデルに対する標準評価関数と、実際の操作量算出に使用する参照評価関数とを比較し、参照評価関数が標準評価関数に段階的に一致するように参照評価関数を補正する構成としている。また、この計算過程で異常が発生した場合は、参照評価関数を初期評価関数に切り換えて計算の収斂を速めている。【選択図】図２
2005339241.tif 000002
【特許請求の範囲】
【請求項１】
システムの状態を検出する状態量検出手段と、
システムに加える操作量に対する未来の予測値を求めるシステム挙動予測手段と、
現在から所定時間先の未来までの時間である評価区間にわたるシステムの制御結果の評価値を算出する評価関数とを備え、
前記評価関数を最小にするような条件である最適性の条件を満たす操作量の所定時間先の未来までの時系列信号である最適解を算出するモデル予測制御装置であって、
制御系の標準的な評価関数である標準評価関数の設定情報を保持する標準評価関数記憶手段と、
実際の操作量算出に用いられる評価関数である参照評価関数の設定情報を保持する参照評価関数記憶手段と、
参照評価関数に基づいて、前記システムの挙動に最適となる解の候補、すなわち候補解に対する補正量を計算することで前記最適解を算出する最適解算出手段と、
予め決められた評価関数である初期評価関数に対して、前記候補解を利用することなく前記最適解を算出する初期解生成手段と、
前記最適解算出手段における計算の異常を異常解として検出する異常解検出手段と、
前記異常解検出手段において異常が検出された場合に、前記最適解算出手段から計算された前記最適解を破棄し、前記参照評価関数記憶手段に記録されている前記評価関数を前記初期評価関数へと切り替え、前記初期解生成手段から生成された解を最適解とする異常処理手段と、
前記標準評価関数と前記参照評価関数とを比較し、両者が一致しない場合には、前記参照評価関数を前記標準評価関数に段階的に一致させるように、前記参照評価関数に所定の範囲内で変更を加える評価関数補正手段と、
前記最適解から前記操作量を決定する操作量決定手段と
を備えることを特徴とするモデル予測制御装置。
【請求項２】
請求項１に記載のモデル予測制御装置において、
前記参照評価関数補正手段は、前記初期評価関数と、前記標準評価関数の加重和によって前記参照評価関数を構成し、結合加重を時間の経過と共に変更していくことで、前記参照評価関数を前記標準評価関数に段階的に一致させることを特徴とするモデル予測制御装置。
【請求項３】
請求項１に記載のモデル予測制御装置において、
前記参照評価関数補正手段は、前記参照評価関数の評価区間長が前記標準評価関数の評価区間長とは異なる場合には、前記参照評価関数の評価区間長を時間の経過とともに徐々に前記標準評価関数の評価区間長に近づけていくことで、前記参照評価関数を前記標準評価関数に段階的に一致させることを特徴とするモデル予測制御装置。
【請求項４】
請求項１に記載のモデル予測制御装置において、
前記初期解生成手段は、予め想定された幾つかのシステム状態量に対して算出された数値的な前記最適解が記録され、記録された前記最適解の中から現在の状態に最も適した前記最適解を選び出すことで初期解生成を行うことを特徴とするモデル予測制御装置。
【請求項５】
請求項１乃至請求項４の何れかに記載のモデル予測制御装置において、
前記初期解生成手段は、前記初期評価関数に対する前記最適解を与える既知の関数式から、現在のシステム状態量に対応する数値列を算出し、該算出された数値列を初期解として生成することを特徴とするモデル予測制御装置。
【請求項６】
請求項１乃至請求項５の何れかに記載のモデル予測制御装置において、
前記異常解検出手段は、前記最適解算出手段で算出された最適解の候補に対する補正量の大きさが所定の水準よりも大きくなった場合に、前記算出された解が異常解であると判定することを特徴とするモデル予測制御装置。
【請求項７】
請求項１乃至請求項６の何れかに記載のモデル予測制御装置において、
前記異常解検出手段は、前記最適解算出手段で算出された最適解が所定の水準よりも大きな操作量を含む場合に、算出された解が前記異常解であると判定することを特徴とするモデル予測制御装置。
【請求項８】
請求項１乃至請求項７の何れかに記載のモデル予測制御装置において、
前記最適解算出手段は、
前記最適解の候補に対する前記補正量を反復計算によって算出し、反復回数に所定の上限が設定されており、前記反復計算で得られた解と前記最適性の条件との乖離を算出するものであり、
前記異常解検出手段は、前記最適解算出手段で算出された解の前記最適性の条件との乖離が所定の水準以上に大きくなった場合に、算出された解が前記異常解であると判定することを特徴とするモデル予測制御装置。
【請求項９】
自車の走行状態を検出する自車状態検出手段と、
自車の周囲を走行する他車両を検出する周囲車両検出手段と、
自車および周囲車両の挙動を予測する周囲車両挙動予測手段と、
現在から所定時間先の未来までの評価区間にわたる周囲車両の挙動予測に基づいて、自車にとっての望ましい走行状態に関する基準と自車の操作量との適合度を数値的に評価する評価関数とを備え、
最適性の条件を満たす所定時間先の未来までの自車の操作量のパターンである最適解に基づいて運転者に推奨する操作量を生成する推奨操作量生成装置であって、
装置の設計時あるいは前記運転者によって設定された制御系の標準的な評価関数である標準評価関数の設定情報を保持する標準評価関数記憶手段と、
実際の操作量算出に用いられる評価関数である参照評価関数の設定情報を保持する参照評価関数記憶手段と、
車両走行状態の挙動に最適となる解の候補、すなわち候補解に対する補正量を計算することで前記最適解を算出する最適解算出手段と、
予め定められた評価関数である初期評価関数に対して、前記候補解を利用することなく前記最適解を算出する初期解生成手段と、
前記最適解算出手段における計算の異常を異常解として検出する異常解検出手段と、
前記異常解検出手段において異常が検出された場合に、前記最適解算出手段から計算された前記最適解を破棄し、前記参照評価関数記憶手段に記録されている参照評価関数を前記初期評価関数へと切り替え、前記初期解生成手段から生成された解を前記最適解とする異常処理手段と、
前記標準評価関数と前記参照評価関数を比較し、両者が一致しない場合には、前記参照評価関数を前記標準評価関数に段階的に一致させるように、前記参照評価関数に所定の範囲内で変更を加える参照評価関数補正手段と、
前記最適解から推奨する前記操作量を決定する推奨操作量決定手段と
を備えることを特徴とする車両用推奨操作量生成装置。
【請求項１０】
請求項９に記載の車両用推奨操作量生成装置において、
前記最適解算出手段は、最適解の候補と周囲車両挙動予測手段の予測モデルを用いて、数値的に前記自車および前記周囲車両の未来の状態を計算する状態予測計算を含み、
前記異常解検出手段は、前記自車および前記周囲車両の前記状態予測計算において、前記自車と前記周囲車両の中のいずれか一台以上の車両との接触のリスクが、所定の水準以上に大きくなる結果が得られた場合に、前記算出された解が前記異常解であると判定することを特徴とする車両用推奨操作量生成装置。
【請求項１１】
請求項９または請求項１０に記載の車両用推奨操作量生成装置において、
前記自車前方道路の車線減少地点を検出する車線減少地点検出手段を備え、
前記最適解算出手段は、前記最適解の候補と前記周囲車両の前記状態予測手段の予測モデルを用いて、数値的に前記自車および前記周囲車両の未来の状態を計算する計算過程を含み、
前記異常解検出手段は、前記自車および前記周囲車両の未来の前記状態予測計算において、前記自車が車線減少地点を通過しているにも関わらず、減少車線に留まっている結果が得られた場合に、算出された解が前記異常解であると判定することを特徴とする車両用推奨操作量生成装置。
【請求項１２】
請求項９乃至請求項１１の何れかに記載された車両用推奨操作量生成装置において、
前記異常解検出手段は、前記周囲車両挙動予測手段における前記状態予測計算において、前記自車と前記周囲車両との接触のリスクが異常検出の判定閾値を越えるか、あるいは自車が車線減少地点通過後も減少車線に留まる、という事象が予想された場合に、それらの事象の生起が予想される時刻とその時刻における前記自車の位置を記録し、記録された時刻および前記自車の位置をもとに、その時刻における前記自車の位置および速度が異常検出の条件からはずれるような暫定目標状態量を算出する暫定目標設定手段を備え、
前記異常処理手段は、前記自車が前記時刻において前記暫定目標設定手段で設定した状態量に到達する解が前記最適解となるように前記初期評価関数を設定することを特徴とする車両用推奨操作量生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、走行車両の操作補助装置として、車両の動作モデルおよび周囲他車両の挙動モデルを基に自車および周囲の他車両の挙動を予測し、自車の最適操作量を算出するシステムに係る。
【背景技術】
【０００２】
モデル予測制御とは、一般にシステムのモデルに基づいて、システムの状態量の未来時刻における予測値を求め、この予測値とシステムに加える操作量とから制御結果に対する評価値の算出を行う評価関数を定義し、評価関数が最小となるような操作量を算出し、この操作量をシステムの入力として加える制御方式である。
【０００３】
下記「特許文献１」に開示されているモデル予測制御のパラメータ設定方法では、モデル予測制御方式を利用した制御システムにおいて、システムのパラメータを変更した時に、制御演算に使用するための逆行列を求める必要のある行列の条件数を調べ、条件数の値が所定の範囲に入るように、評価関数における操作量を評価するための項にかける重みを調整する方法が示されている。
【０００４】
なお、行列の条件数とは、ある行列の最大特異値を最小特異値で割った値であり、逆行列の数値的な精度の目安となる指標である。一般に、条件数の値が大きければ大きいほど、逆行列演算の数値精度は低下し、正確な逆行列を数値的に求めることが困難になる。
【０００５】
すなわち、下記「特許文献１」の発明では、行列の条件数を監視することで、逆行列の計算を含む制御演算の異常により不適切な操作量がシステムに加えられることを防止することを目的とした発明となっている。条件数の増大によって制御演算の異常が懸念される場面では、操作量の変化分に対する評価重みを増加させることで、等価的に条件数の低減をはかり、制御演算の安定性を保つ、という構成となっている。
【０００６】
【特許文献１】特開平７−１９１７０９号公報
【特許文献２】特開２０００−１３５９３４号公報
【非特許文献１】T. Ohtsuka,  ‘‘Continuation/GMRES  method  for  fast  algorithm  of  nonlinear  receding  horizon  control’’  Proc.  39th  IEEE  Conference  on  Decision  and  Control,  pp.766-771,  2000
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上述べたように、モデル予測制御では、未来の予測に基づいて現在の操作量を決定するという構成上、未来予測の誤差が大きくなった場合には、制御性能も悪化するという問題がある。一般にモデル予測制御では、操作量の変化分を小さくするような評価を評価関数の中に含める等、何らかの形で直前の制御サイクルにおける最適解を制御演算に利用することが多い。しかし、予測誤差の増加などが原因で、直前の制御サイクルにおける操作量と大きく異なる操作量が必要になることも、制御対象によってはあり得る。そのような場面では、制御演算における数値的条件が悪化することも考えられる。
【０００８】
前記「特許文献１」の発明では、このような場面で操作量の変化分に対する評価重みを増加させることで数値的条件の悪化を抑制する構成となっている。確かに、操作量の変化分に対する評価重みを増加させることで数値的条件は改善するが、反面、操作量の大きな変化が抑制されることで、状況変化への対応が遅れ気味になることも懸念される。
【０００９】
このような状況変化への対応の遅れは、モデル予測制御を自動車の運転支援装置として適用する場合には大きな問題になる。合流や車線変更といった自動車の運転に特有の場面を扱う場合には、状況の変化に迅速に対応することが求められ、数値的条件の改善という対策では間に合わない場面も予想される。このように、前記「特許文献１」の発明では、数値演算の安定性を改善するために操作量の変化を抑制するという構成になっているので、状況変化に対する迅速な対応が必要な場面では、必ずしも満足のいく操作量が得られないことが懸念される、という問題点があった。
【００１０】
本発明においては、以上述べた問題点を解決し、状況変化に迅速に対応し得るモデル予測制御装置およびこのモデル予測制御装置で使用されている手法を用いた車両用推奨操作量生成装置の実現を目的とした。
【課題を解決するための手段】
【００１１】
車両の操作システムにおいて、本来の制御目的を表現した一つの標準的な評価関数を記憶する標準評価関数の記憶手段と、実際の操作量算出に用いられる参照評価関数の記憶手段とを有し、この参照評価関数に基づいてシステムの動作に適した候補解に対する補正量を計算することでシステム動作の最適解を求め、さらに予め決められた初期評価関数に対して最適解を算出する初期解生成を行う。
【００１２】
次いで、上記の最適解算出過程で以上が検出された場合には上記の最適解を破棄し、上記の参照評価関数を上記の初期評価関数に切り換え、上記初期解生成により得られた解を最適解とする異常処理を行う。この処理により得られた参照評価関数、すなわち初期評価関数と前記の標準評価関数とを比較し、両者が一致しない場合には、前記の参照評価関数を標準評価関数に段階的に一致させるように参照評価関数に所定の範囲内で変更を加えて評価関数補正を行い、上記の最適解から最終的な操作量を決定する構成としている。
【発明の効果】
【００１３】
本発明によれば、解の異常を検出した場合に、それまで用いてきた解を破棄して、初期解生成手段によって新たな解を生成して操作量を決定することにより、制御対象をとりまく状況変化に迅速に対応する操作量を生成することができる。また、評価関数を補正することにより、迅速に解の算出が可能な初期評価関数と、本来の設計要求に合致する標準評価関数とを、状況に応じて適切に使い分け、操作量演算に異常が発生した場合に、スムーズに異常処理から正常時の処理へと復帰させることができる。
【００１４】
また、算出された最適解の異常を検出した場合に、それまで用いてきた解を破棄して、初期解生成手段によって新たな最適解を生成して推奨操作量を決定しているので、自車周囲の走行環境の変化に迅速に対応した推奨操作量を生成することができる。また、評価関数を補正することにより、迅速に解の算出が可能な初期評価関数と、本来の望ましい運転操作を表現した標準評価関数とを、状況に応じて適切に使い分け、操作量演算に異常が発生した場合に、スムーズに異常処理から正常時の処理へと復帰させることができる。
【発明を実施するための最良の形態】
【００１５】
（実施例１）
本発明の第一の実施例を図１から図４までの図面に基づいて説明する。
図１は本発明の第一の実施例であるモデル予測制御装置を構成するのに必要な装置の一配置図である。
【００１６】
図１は、バネ１とダンパ２で拘束された台車３にモーター４が搭載され、制御指令入力装置７から与えられる制御指令に基づいてモーターコントローラ５がモーター４を駆動することで台車３の位置を制御するシステムである。バネ１の中立位置を原点として、台車３の位置を表す座標ｘを導入する。モーター４が発生するトルクをｕとしたとき、台車３の運動が下記（数１）式に示す微分方程式で記述されるものとする。ここで、（数１）式においてｘの上の点（ドット）はｘの時間ｔに関する時間微分を示すもので、本文中ではｘ’およびｘ’’でそれぞれｘの時間ｔに関する１次微分および２次微分を示すものとする。
【００１７】
【数１】
2005339241.tif 000003
ただし、ｍは台車３の質量、ｋはバネ１のバネ定数、ｒは台車３の車輪半径であり、ｄ(ｖ)は速度ｖの入力が加わった場合のダンパ２の減衰係数で、本実施
例では下記の（数２）式のように近似されているものとする。
【００１８】
【数２】
2005339241.tif 000004
ただし、ｄは正の整数である。
【００１９】
台車３の車輪にはロータリーエンコーダ６が取り付けられており、車輪の回転と共に発生するパルス信号を計測することで、台車３の位置ｘと速度ｘ’を測定することができる。測定された位置と速度の信号はモーターコントローラ５に送られて、制御演算に用いられる。  
モーターコントローラ５は、マイクロコンピュータとその周辺部品および電流制御装置から構成され、ロータリーエンコーダ６および制御指令入力装置７からの信号を、内蔵メモリに記録されたプログラムに従って処理し、モーター４を駆動する電流を発生する装置である。
【００２０】
モーターコントローラ５は搭載されたマイクロコンピュータのソフトウェアの形態により、図２に示す各処理手段のブロック５ａから５ｊにより構成されている。モーターコントローラ５にはモデル予測制御方式に基づく制御アルゴリズムが実装される。モデル予測制御とは、一般にシステムのモデルを作成し、これをもとにシステムの制御量の未来の或る時刻での予測値を求め、この予測値とその実現に必要な操作量から、制御結果の望ましさを数値的に評価する評価関数を構成し、この評価関数が最小となるように操作量を決定する制御方式である。
【００２１】
一般に、システムの状態量を→ｘ、操作量を→ｕとすると、システムのモデルは次式の微分方程式で表現することができる。ここで、→ｘはベクトルｘを、→ｕはベクトルｕ示しており、数式上では太字で示している。
【００２２】
【数３】
2005339241.tif 000005
また、評価関数Ｊは、以下の形式の関数を想定する。
【００２３】
【数４】
2005339241.tif 000006
ただし、ｔは現在の時刻、ｔ’は未来時刻、Ｔは予測区間の長さを表し、Ｌは未来の或る時刻での制御結果の瞬時評価値を計算する関数である。また、→ｕ(ｔ’；ｔ)は時刻ｔ≦ｔ’≦ｔ＋Ｔの区間における操作量の時系列を表す。
【００２４】
モデル（数３）式と評価関数（数４）式が定義されれば、（数４）式を最小にする操作量を求める問題は最適制御問題として定式化されている問題であり、問題を解くためのアルゴリズムが存在する。最適化問題を解いて得られた解として得られる操作量→ｕ＊(ｔ’；ｔ)の中から、現在時刻ｔにおける操作量→ｕ＊(ｔ；ｔ)をシステムに入力する操作量とする。以上がモデル予測制御の概要である。
【００２５】
図２に示したブロックのうち、５ａから５ｅまでは、以上のモデル予測制御に必要な各要素を構成するためのブロックである。すなわち、状態量検出手段５ａは、ロータリーエンコーダ６から送られてきたパルスを計測して、台車３の位置と速度の測定値ｘ(ｔ)、ｖ(ｔ)を算出する。システム挙動予測手段５ｂには、（数１）式で表された制御系のモデルが格納されている。台車３の速度を表す変数ｖを導入すると、（１）式は、
【００２６】
【数５】
2005339241.tif 000007
と変形することができる。ただし、ａ１＝ｄ／ｍ、ａ２＝ｋ／ｍ、ｂ＝ｒ／ｍである。よって、→ｘ＝(ｘ，ｖ)Ｔ、→ｕ＝ｕとおけば、（数５）式は（数３）式と同じ形式で表現されていることがわかる。
【００２７】
参照評価関数記憶手段５ｃは、操作量演算に用いられる評価関数（数４）式の具体形が格納される。本実施例では、評価関数の評価式Ｌとして次式の関数を想定する。
【００２８】
【数６】
2005339241.tif 000008
ただし、ｘ＊(ｔ’)は制御指令入力装置から与えられる時刻ｔ’における台車３の位置の目標値、ｗｕ，ｗｘは評価重みを表す正のパラメータである。
【００２９】
最適解算出手段５ｄは、台車３の位置と速度の測定値ｘ(ｔ), ｖ(ｔ)、予測モデル（数５）式、評価関数（数６）式を読み込んで、評価関数を最小にする操作量ｕ＊(ｔ’；ｔ)を計算する。
【００３０】
一般に、（数３）、（数４）式で定義される最適化問題は、モデルあるいは評価関数に非線形要素を含む場合、非線形最適化問題となる。一般に、非線形最適化問題を解くためには多くの計算量が必要になり、実時間で制御演算を実行する際には大きな問題となる。計算量を減らすための工夫の一つとして、最適解ｕ＊(ｔ’；ｔ)そのものではなく、最適解の候補となるような解Ｋを適当に定め、このＫに対する補正量Δｕ＊(ｔ’；ｔ)を求める方法が考えられる。制御周期Δｔを十分に短くとれば、最適解の時間の経過に伴う変化も十分に小さいとみなせる場合が多いので、最適解の候補として、直前の制御周期における最適解ｕ＊(ｔ’；ｔ−Δｔ)を用いることができる。すなわち、次式の計算によって最適解を求めることができる。
【００３１】
【数７】
2005339241.tif 000009
このように、Δｕ＊(ｔ’；ｔ)を計算することで、最適解ｕ＊(ｔ’；ｔ)を算出するのが、最適解算出手段５ｄの処理の内容である。最適化アルゴリズムの詳細については、前記「非特許文献１」に記載されている。
【００３２】
操作量決定手段５ｅでは、最適解を表す時系列信号ｕ＊(ｔ’；ｔ)から、システムに実際に入力する信号を決定する。ここでは、通常のモデル予測制御の方法と同様に、現在時刻における操作量ｕ＊(ｔ；ｔ)を入力信号、すなわちモーター４が発生するトルクとする。トルクｕ＊(ｔ；ｔ)を出すのに必要な電流値が計算され、必要な電流値が電流制御装置に伝達され、指令された電流をモーターに加えることで制御を実行する。
【００３３】
以上が、通常の制御サイクルにおける処理の流れであり、このような処理を繰り返すことでモデル予測制御が実行される。  
しかしながら、以上のような制御サイクルが常に正常に動作するとは限らない。最適解算出手段５ｄにおける最適化演算には連立一次方程式を解くプロセスが含まれているが、問題の設定によっては、連立一次方程式の数値的悪条件等の障害により、最適解の数値精度が悪化し、モーター４の制御には不適切な解が算出される可能性がある。例えば、モーター４が出力可能なトルクは有限なので、現実の操作量ｕには、例えば以下のような上下限制約が課せられる。
【００３４】
【数８】
2005339241.tif 000010
ここで、ｕＮ，ｕＰはモーターが発生可能なトルクの上下限値を、制御系に加わる力に変換した値である。解の精度が悪化した場合には、本来は（数８）式の範囲内の制御入力で対応可能な制御目標に対して、しばしば（数８）式の範囲を越えるような値が指令値として算出される場合がある。また、解の精度の悪化が原因でない場合でも、（数８）式の範囲を越えるような指令値が算出された場合には、何らかの対応が必要である。
【００３５】
以上のような最適化演算における計算結果の異常を検出する処理を行うのが、異常解検出手段５ｆである。実際の最適化演算においては、評価区間ｔ≦ｔ’≦ｔ＋ＴがＮステップに分割され、有限区間の関数であるΔｕ＊(ｔ’；ｔ)も離散化されてＮ次のベクトルとして扱われ、最終的に次式の連立一次方程式を解く問題に還元される。  
【００３６】
【数９】
2005339241.tif 000011
【００３７】
【数１０】
2005339241.tif 000012
ただし、行列→Ａ(ｔ)、ベクトル→ｂ(ｔ)は、システムモデル（数３）式、評価関数（数４）式、および候補解Ｋから算出される既知の行列あるいはベクトルである。
離散化された最適操作量として、
【００３８】
【数１１】
2005339241.tif 000013
を導入すれば、（数９）式を解いて得られた解→Ｘ＊(ｔ)によって、最適操作量は（数７）式に従って次式で得られることになる。  
【００３９】
【数１２】
2005339241.tif 000014
最適化演算によって算出された→Ｘ＊(ｔ)または→Ｕ＊(ｔ)が以下のいずれかの条件を満たした場合には、算出された最適解が異常解であるという判定を下す。
【００４０】
条件１  最適操作量→Ｕ＊(ｔ)の要素の中で、（数８）式の範囲を越えるものが存在する。
【００４１】
条件２  ‖→X*(t)‖ が所定の閾値を越える。
【００４２】
条件３  連立一次方程式の残差 ‖→ｅ‖=‖→ｂ(ｔ)−→Ａ(ｔ)・→ Ｘ＊(ｔ)‖ が所定の閾値を越える。  
ただし、ここではベクトルのノルム‖●‖として、２ノルムをとっている。
【００４３】
条件１はモーター４の出力制限を越える指令値が算出された場合に対応するための条件である。  
条件２は連立一次方程式の数値精度が悪化した場合に、直接の出力である→Ｘ＊(ｔ)の値が大きく乱れることに注目して導入した条件である。
【００４４】
条件３は、連立一次方程式の解法に反復計算に基づくアルゴリズムを用いたときに適用される条件であり、残差の増加は数値精度悪化の指標として利用できることに注目して導入した条件である。
【００４５】
以上に挙げたような異常解の条件は、大きな外乱が加わるなどして、システムモデル（数５）式の予測値と実測値に大きな誤差が生じた場合や、制御指令入力手段の操作によって目標値が変更され、評価関数（数６）式の設定が大きく変化した場合などに、しばしば成立することがある。このような場合、直前の制御サイクルにおける最適解と現在の最適解が大きく違わないという最適解算出手段における計算の前提が崩れており、最適化問題を連立一次方程式に還元する過程で行われている非線形要素の線形化近似の精度が悪化している。そのために、算出された解が異常なものになることが起こり得るのである。
【００４６】
異常解を検出した場合には、図２において異常処理手段５ｇが起動される。異常処理手段５ｇでは、新たな解を生成するために、算出された解→Ｕ＊(ｔ)と候補解→Ｕ＊(ｔ−Δｔ)の両方を破棄する。候補解を破棄すると、補正解を算出することにより間接的に最適解を求める（数１２）式に基づくアルゴリズムを利用できなくなるので、別の方法で最適解を算出しなければならない。
【００４７】
最適化問題を直接解くことは、一般には多くの計算量が必要な処理になるが、ある特別なシステムモデルと評価関数で定義される問題については、最適解を比較的単純な関数で表現することが可能であり、連立一次方程式を解くといった逆演算や反復計算を行うことなしに、短時間で最適解を得ることができる。そこで、短時間で最適解を得るために、評価関数を本来の設定である（数６）式から最適解を求めやすい形に変形する。例えば、（数６）式における評価重みｗｘを０にした場合、目標値ｘ＊(ｔ’)や評価区間長Ｔによらず、常にｕ＊(ｔ’；ｔ)＝０が最適解になる。
【００４８】
このように、最適解を求めやすいような評価関数（初期評価関数）から最適解を構成する処理を行うのが初期解生成手段５ｈである。  
異常処理手段５ｇは、異常検出時に初期解生成手段５ｈを起動するとともに、参照評価関数記憶手段５ｃに格納されていた評価関数を、初期解生成手段５ｈで容易に最適解を求めることができる初期評価関数で置き換える。この場合には、（数６）式においてｗｘ＝０とした評価関数が初期評価関数となっている。
【００４９】
以上で、異常解が検出された場合の制御サイクルは終了する。ただし、次の制御サイクル以降も評価関数をｗｘ＝０にしたまま放置すると、本来の制御目的である制御目標ｘ＊(ｔ’)への追従という動作を実現することができない。そこで、次の制御サイクルからは、評価重みｗｘを本来の値に戻していくことになる。そこで起動されるのが、評価関数補正手段５ｉである。評価関数補正手段５ｉでは、最適解算出手段の処理に先立って、標準評価関数記憶手段５ｊに格納されている本来の評価関数（本来の評価重みが設定された（数６）式の関数）と、参照評価関数記憶手段５ｃに格納されている評価関数とを評価関数補正手段５ｉにおいて比較する。両者に違いが検出された場合には、参照評価関数を標準評価関数に近づけるように参照評価関数を補正する。
【００５０】
例えば、直前の制御サイクルにおいて異常解が検出された場合には、参照評価関数記憶手段に格納されている評価関数の評価重みｗｘの値は０になっているので、ｗｘの値を増加させる。値を増加させる場合、一気に本来の設定値まで戻してしまうと、最適化問題が数値的悪条件の問題になって再び異常解が算出されてしまう恐れがあるので、値の増加は小幅なものにする。具体的には、ｗｘの本来の設定値をｗｘ ＊として、
【００５１】
【数１３】
2005339241.tif 000015
という更新則に従って、ｗｘを本来の値まで少しずつ戻していく。ここで、αはｗｘを本来の値に戻す速さを決める正の定数である。このように小幅な修正に留めることによって、候補解に対する補正解を算出するという最適解算出手段５ｄで用いているアルゴリズムを再び利用できるようになる。そして、時間の経過とともに本来の最適解へと移行していくことができる。
【００５２】
以上の説明を図３のフローチャートに沿ってまとめる。
【００５３】
ステップ１では、ロータリーエンコーダ６からの信号を読み込んで、台車３の位置ｘと速度ｘ’（＝ｖ）の測定値を得る。
【００５４】
ステップ２では、システム挙動予測手段５ｂに格納されているシステムモデルの情報が最適解算出手段５ｄに読み込まれる。
【００５５】
ステップ３では、標準評価関数記憶手段５ｊに格納されている評価関数と参照評価関数記憶手段５ｃに格納されている評価関数とが評価関数補正手段５ｉにおいて比較される。両者に違いがある場合にはステップ４に進み、（数１３）式の評価重みｗｘに従って参照評価関数を更新した後、ステップ５に進む。違いがない場合には、この更新処理を行うことなくただちにステップ５へと進む。
【００５６】
ステップ５では、最適解算出手段５ｄによって、候補解→Ｕ＊(ｔ−Δｔ)に対する補正解→Ｘ＊(ｔ)の算出が行われる。
【００５７】
ステップ６では、異常解検出手段５ｆによって、算出された解→Ｘ＊(ｔ)、→Ｕ＊(ｔ)が異常解であるかどうかが判定される。異常解であると判定された場合には、ステップ７以降の処理へ進む。そうでない場合には、ステップ７、８、９の処理を行うことなくただちにステップ１０へ進む。
【００５８】
ステップ７では、異常処理手段５ｇによって、算出解→Ｕ＊(ｔ)、候補解→Ｕ＊(ｔ−Δｔ)が破棄される。
【００５９】
ステップ８では、異常処理手段５ｇによって、参照評価関数記憶手段５ｃに格納されている評価関数が初期評価関数に置き換えられる。  
ステップ９では、初期解生成手段５ｈによって、初期評価関数に基づく新たな最適解→Ｕ＊(ｔ)が生成される。  
ステップ１０では、最適解解→Ｕ＊(ｔ)から実際の制御入力を決定し、決定した制御入力を系に加えるために必要な電流値を算出して、電流制御装置に指令を送る。
【００６０】
なお、制御を開始した最初の制御サイクルにおいては、直前の制御サイクルで用いた候補解がそもそも存在しないため、無条件に初期解生成手段が起動されて解を生成する。
【００６１】
図４に、異常解を検出した前後の時間帯における制御系の挙動の例を示す。時刻ｔ０において、制御指令入力手段の指令値をＡから−Ｂへと大きく変化させている。この時、操作量の指令値としてモーター４の出力限界−ｕＮを越える値が算出されたため、異常解と判定され、評価重みｗｘの値が０に設定される。従って、時刻ｔ０において制御系に入力される操作量は０となり、時刻ｔ０以降、評価重みｗｘの値が大きくなるに従って、操作量が大きくなり、台車３が位置−Ｂに向かって制御されている。
以上が、本発明の第１の実施例である。
（実施例２）
本発明の第２の実施例を図５から図１１までの図面に基づいて説明する。
【００６２】
図５は本発明である車両用推奨操作量生成装置を構成するのに必要な装置の一配置図である。
【００６３】
図５において、前方カメラ８ａはＣＣＤカメラ等によって構成され、車両前面の適当な位置にとりつけられ、自車両前方に位置する複数の車両の位置を測定する。また、道路上に引かれた白線を検出することで走行車線を認識する。後方カメラ８ｂは車両背面に取り付けられ、自車両後方に位置する複数の車両の位置を測定する。側方カメラ８ｃは左右の車両側面に一個ずつ取り付けられ、前方カメラと後方カメラの死角となる車両側方に位置する車両の位置を検出する。
【００６４】
車速センサ９はロータリーエンコーダ６をホイールに取り付けることで実現できる。ホイールの回転速度に応じた周期のパルス列を出力し、車速の計測値を得る。
【００６５】
演算部１０はマイクロコンピュータとその周辺部品から構成され、車速センサ９からの信号を内蔵メモリに記録されたプログラムに従って処理し、計算結果をスロットルコントローラ１２とブレーキアクチュエータ１５に伝達する。
【００６６】
制御目標入力装置１１は運転者が操作可能なスイッチ類で構成され、演算部１０に運転者が希望する走行車速等の制御目標を入力する。
【００６７】
スロットルコントローラ１２は、演算部１０から指令された駆動力指令信号を基に、スロットルアクチュエータ１３によってスロットル開度を調整してエンジン出力を制御し、指令された駆動力を実現するような制御を行う。
【００６８】
ブレーキコントローラ１４は、演算部１０から指令された制動力指令信号を基に、ブレーキアクチュエータ８によってブレーキ圧を制御し、指令された制動力を実現するような制御を行う。
【００６９】
演算部１０はマイクロコンピュータのソフトウェアの形態により、図６に示す各処理手段のブロック１０ａ〜１０ｋにより構成されている。
【００７０】
本実施例も第１の実施例と同様、モデル予測制御の手法に基づいて操作量の演算が行われるので、システムの状態を検出する手段と、システムのモデルと、評価関数が必要になる。本実施例においては、システムの状態は自車および周囲車両の進行方向および車線に対する位置と速度になる。数学的定式化のために座標系を導入する必要があるので、図７の場面を例にとって説明する。
【００７１】
図７は片側２車線道路を自車１６と二台の他車Ａ１７および他車Ｂ１８が走行している場面を示している。車の進行方向にｘ軸をとり、水平面上で進行方向と垂直な方向にｙ軸をとる。実際に制御演算を行う場合には、自車１６と他車Ａ１７および他車Ｂ１８との相対位置が必要な情報になるので、ｘ座標の原点は任意の地点に置くことができる。また、この場合、ｙ座標は車の車線位置を示す指標となるので、車線を区切るレーンマーカーの位置を原点とし、左車線の中央を１、右車線の中央を−１となるように正規化した座標を用いるものとする。自車１６のインデックスを０、他車Ａ１７および他車Ｂ１８のインデックスを１および２とそれぞれ割り当て、各他車Ａ１７および他車Ｂ１８の進行方向位置、進行方向速度、車線位置をそれぞれｘｉ，ｖｉ，ｙｉｉ＝１，２，３…で表すことにする。従って、自車１６以外に２台の他車Ａ１７および他車Ｂ１８が検出されている場合には、システムの状態量→ｘは以下のように構成される。ここで、→ｘにおける→はベクトルまたは行列を示すもので、数式内では太字で示した変数に対応している。
【００７２】
【数１４】
2005339241.tif 000016
周囲車両検出手段１０１は、前方カメラ８ａ、後方カメラ８ｂ、側方カメラ８ｃの各センサおよびロータリーエンコーダ６と、演算部１０の処理ブロックである状態量算出処理１０ａから構成され、演算部１０では各センサが検出した信号から（数１４）式の状態量ベクトルの具体的な値を算出する処理を行う。
【００７３】
システムのモデルは、各車両ごとにその挙動を予測するモデルを構成し、各車のモデルを結合して、全車両の挙動を予測するモデルを（数３）式の形式にまとめあげる。
【００７４】
ここでは、自車１６の挙動モデルとして、次式を導入する。
【００７５】
【数１５】
2005339241.tif 000017
ただし、→ｕは自車１６の加速度（減速度）を表しており、この→ｕが最終的に求める操作量となる。ここで、数式中でｘ，ｖ，ｙの各変数の上に点（ドット）が付されているのは各変数の時間微分を表し、本文中では以下、ｘ’，ｖ’，ｙ’と記す。なお、本実施例では、自車１５の制御を縦方向（進行方向）のみに限定しているので、横方向の操作量は含まれておらず、モデルも同じ車線位置を走行し続けることを想定してｙ’＝０としている。
【００７６】
他車Ａ１７および他車Ｂ１８の挙動モデルとして、次式を導入する。
【００７７】
【数１６】
2005339241.tif 000018
ここでωｖｉ，ωｙｉは（数式中では添え字が上下整列して記載されている）それぞれ他車ｉの車速調整および車線変更の速さを決める正の定数であり、
ｖｃｏｍｉ、ｕｙｉはそれぞれ他車ｉ（ｉ＝１，２）の目標速度と目標車線位置を表す。（ここにおいても、式中ではこれら添え時は上下整列して記載されている）
目標速度ｖｃｏｍｉは、次式のような関数としてモデル化される。
【００７８】
【数１７】
2005339241.tif 000019
ただし、ｖ＊ｉは単独走行時の目標車速の推定値であり、ｖｆｉ（Ｒｉ，Ｒｉ’，ｖｉ）は先行車との車間距離がＲｉ、相対速度がＲｉ’（数式中では変数Ｒの上に点を付して示している）、速度がｖｉの時の目標車速をモデル化した関数であり、例えば、前記「特許文献２」の「先行車両追従制御装置」に開示されている（数２）式から（数８）式および（表１）、（表２）から構成される制御アルゴリズムを利用することができる。なお、ｘｐｉ，ｖｐｉ，ｙｐｉ（いずれも数式中では添え字は上下整列している）は車両ｉと同一車線上を走行する先行車の位置と速度を表しており、図７を例にとれば、他車Ａ１７にとっては他車Ｂ１８が先行車となるので、ｘｐｉ＝ｘ２，ｖｐｉ＝ｖ２、となる。自車および他車Ｂ１８については先行車が存在しないので、これらの変数は定義されない。
【００７９】
目標車線位置ｕｙｉは、他車Ａ１７および他車Ｂ１８が現在の車線上に留まるか、あるいは車線変更するか、という予測に基づいて、値が−１か１に設定される。予測は主にｙｉの過去の履歴をもとに判定される。例えば図８の左側の図（ケース１）のように、車線位置ｙｉの値がある程度の時間継続的に増加している場合には、車両ｉ（ｉ＝１，２）に左車線への車線変更の意思があると判定して、目標車線位置ｕｙｉの値を−１から１へと切り替える。図８右側の図（ケース２）のように、ｙｉの値にはっきりした傾向が認められない場合には、目標車線位置ｕｙｉの値は現在走行している右車線の中央を表す−１のままにしておく。
【００８０】
以上のようにして、自車１６および他車Ａ１７および他車Ｂ１８のモデルを構成するのが、周囲車両挙動予測手段１０ｂにおける処理の内容である。
【００８１】
評価関数は、第１の実施例と同様、（数４）式の形式で表現される関数を定義する。評価式Ｌには、望ましい運転行動に関する基準を表現した関数が実装されることになるが、本実施例では、
i)   なるべく目標速度に近い速度で走行する。
ii) 
なるべく大きな加減速をしない
iii) 周囲車両に近づきすぎない
という三つの基準を表現した関数の和で評価関数を構成している。
項目i)を表現する関数として、次式の関数を導入する。
【００８２】
【数１８】
2005339241.tif 000020
ｗｖは項目i)に対する評価重みを表す正定数である。ｖ＊０（ここにおいても添え字は数式中では上下整列して示している）には制御目標入力装置によって入力された自車１６の目標速度の値が設定される。
【００８３】
項目ii)を表現する関数としては、次式のような例が挙げられる。
【００８４】
【数１９】
2005339241.tif 000021
ｗｕは項目ii)に対する評価重みを表す正の定数である。
【００８５】
項目iii)を表現するために、周囲車両である他車Ａ１７および他車Ｂ１８に対するリスクを評価する指標を導入する。評価指標としては、車間時間（＝車間距離／追従車両の速度）と衝突時間（＝車間距離／相対速度）が知られているが、評価関数（数４）式は値が小さいほど良い評価となるように構成しているので、車間時間と衝突時間の逆数を評価式として利用する。自車１６と同一車線上を走行する前方車両に対する評価式として（数２０）式を、後方車両に対する評価式として（数２１）式を構成する。
【００８６】
【数２０】
2005339241.tif 000022
【００８７】
【数２１】
2005339241.tif 000023
ただしｘｆ，ｖｆは前方車両の位置と速度、ｘｒ，ｖｒ、は後方車両の位置と速度を表す。λは車間時間と衝突時間との間の重みづけを設定する０から１までの値をとる定数であり、ｋｓは評価関数が下に有界となるように導入した飽和要素の形状を決める正の定数である。
【００８８】
図７の場面では、他車Ａ１７および他車Ｂ１８は両方とも前方車両になる。他車が両方とも右車線に留まっている場合には、自車１６と同一車線上にいないので、リスクは両車ともに０と評価する。他車Ａ１７および他車Ｂ１８のうちどちらかが左車線に車線変更してきた場合には、車線変更してきた車両に対してはリスク評価が必要になる。リスクは最も近い車両に対して評価すればよいので、他車Ａ１７および他車Ｂ１８が双方ともに左車線に車線変更してきた場合には、他車Ａに対してだけリスク評価を行う。以上のような評価が反映されるように、次式を項目iii)を表現する関数として構成する。
【００８９】
【数２２】
2005339241.tif 000024
ただしｗ１，ｗ２はそれぞれ他車Ａ１７、他車Ｂ１８に対する評価重みを表す正の定数であり、関数ｃＬ(ｙ）,ｃＲ(ｙ)は、
【００９０】
【数２３】
2005339241.tif 000025
【００９１】
【数２４】
2005339241.tif 000026
である。
（数１８）式、（数１９）式、（数２２）式の和をとることで、評価式
2005339241.tif 000027
が構成される。
【００９２】
【数２５】
2005339241.tif 000028
以上のような評価関数が操作量演算に用いられる。第１の実施例と同様、操作量演算に使用される評価関数設定は参照評価関数記憶手段１０ｃに格納されており、最適解算出手段１０ｄは参照評価関数記憶手段１０ｃに格納された評価関数設定を読み出して、最適化演算を実行する。設計された本来の評価関数は標準評価関数記憶手段１０ｅに格納される。
【００９３】
最適解算出手段１０ｄの処理は、使用するモデルと評価関数が異なる以外は、第１の実施例と同様である。
【００９４】
異常解検出手段１０ｆの処理は、第１の実施例で取り上げた三つの異常解判定の基準に加えて、車両制御に特有の異常解判定基準が加えられる。具体的な異常解発生の場面として、図９に示した状況に基づいて説明を行う。
【００９５】
図９は図７と同様、片側二車線の道路を自車１６と二台の他車Ａ１７および他車Ｂ１８が走行している場面であり、左車線を走行している自車１６が右車線を走行する他車Ａ１７を追い抜こうとしている状況を示している。この場面の問題は、他車Ａ１７と他車Ｂ１８が接近しているため、他車Ｂ１８が他車Ａ１７に遮られて、自車１６に搭載された前方カメラ８ａからは大部分が死角領域に入ってしまっていることである。このため、時刻ｔ１においてはカメラ画像認識では、他車Ａ１７と他車Ｂ１８が分離されず、他車Ａ１７のみが検出され、他車Ｂ１８は周囲車両として認識されていないという状況になっている。この場合、自車１６の操作量演算では、他車Ａ１７の挙動だけを予測して最適解の計算を行う。従って、図９のような状況から、他車Ｂ１８が左車線に車線変更を始めた場合には（時刻ｔ２）、他車Ｂ１８が左車線に進入してきてから自車１６のカメラが他車Ｂ１８の存在を検出するため（時刻ｔ３）、制御系の立場からは、急に新たな車両が横から飛び出してきたように認識され、ここに大きな予測のずれが発生することになる。
【００９６】
第１の実施例でも指摘した通り、モデル予測制御系においては、予測結果や評価関数の急激な変化は、候補解と真の最適解との乖離が大きくなるために数値的悪条件の障害が発生し、異常解が算出される原因になり得る。図９のような状況では、他車Ａ１７を追い抜くという意味では最適解であった候補解が、他車Ｂ１８を検出した途端に他車Ｂ１８に必要以上に接近する解となってしまい、真の最適解とは大きく異なる解となってしまう。さらに、周囲車両との接近のリスクを（数２０）式のような式で評価している場合には、他車に接近すればするほど評価関数の値とその勾配が大きくなり、ますます数値的悪条件の障害が顕著になるという問題が懸念される。
【００９７】
最適化問題を解くために、（数９）式の連立一次方程式を構成する際に、候補解→Ｕ＊(ｔ−Δｔ)を用いて、システムモデル（３）式を積分する次式の計算過程が含まれる。ここで、→Ｕはベクトルを示しており、数式中では太字で示している。
【００９８】
【数２６】
2005339241.tif 000029
ただし、Ｕi＊(ｔ−Δｔ)は候補解→Ｕ＊(ｔ−Δｔ)のｉ番目の成分を表す。
【００９９】
このとき得られるシステム状態量の予測値→ｘ０、→ｘ１、…→ｘＮをチェックすれば、候補解を用いることによる数値的悪条件の障害発生リスクを検出することができる。ただし、→ｘ０、→ｘ１、…→ｘＮはベクトル量を示しており、（数２６）式中では太字で示している。
【０１００】
例えば、図９の場面では、他車Ｂ１８との接近が問題になるので、任意の積分ステップにおける状態量の予測値ベクトル→ｘｉを（数２７）式のように表記すると、異常解検出条件として（数２８）式の条件式を立てることができる。
【０１０１】
【数２７】
2005339241.tif 000030
【０１０２】
【数２８】
2005339241.tif 000031
【０１０３】
【数２９】
2005339241.tif 000032
ただし、Ｒ０はカメラの検出可能最大距離よりもさらに大きな正の定数で、Ｒｆは異常解検出判定の閾値を表す正の定数である。ここで、＾ｘ２(ｉ)，＾ｘ２(ｉ)，＾ｘ２(ｉ)，（＾印は数式中ではｘ，ｖ，ｙ各変数の真上に付されている）は、ｉ番目の状態予測値ベクトル上に付されている。（数２９）式で定義される
^/ｘ２(ｉ)は車線位置を考慮して補正した他車Ｂ１８の位置を表しており、（数２８）式は他車Ｂ１８と自車との車間距離が距離Ｒｆよりも接近するような状況が予想される場合に、異常解の判定を行う条件式となっている。ここで、^/ｘ２(ｉ)は、（数２８），（数２９）式中ではｘの左側の２つの記号はｘの上に記載されている。
【０１０４】
異常処理手段１０ｇにおける処理は、第一の実施例と同様に、算出された解
→Ｕ＊(ｔ)と候補解→Ｕ＊(ｔ−Δｔ)の両方を破棄して、初期解生成手段１０ｈで容易に最適解を生成することができる初期評価関数を参照評価関数記憶手段１０ｃに格納することである。
【０１０５】
初期解生成手段１０ｈでは、（数２５）式で構成された評価関数において他車（１７，１８）の評価重みｗ１，ｗ２を０にした場合に、最適解を初等関数で表現できることを利用して初期解を生成する。ｗ１とｗ２を０にした場合の最適化問題の解は次式のようになる。
【０１０６】
【数３０】
2005339241.tif 000033
ただし、
【０１０７】
【数３１】
2005339241.tif 000034
である。
【０１０８】
検出された異常解が（数２８）式の条件を満たした場合以外は、（３０）式のｖ０(ｔ)に現在の自車速度の測定値を代入して、時刻ｔ’＝ｔ＋ｉ(Ｔ／Ｎ)  ｉ＝０，１，…Ｎ−１におけるｕ＊(ｔ’；ｔ)の値を計算することで、新たな最適解１→Ｕ＊(ｔ)を構成する。
（数２８）式の条件を満たしたために異常解として判定された場合には、新たに生成する初期解が再度（数２８）式の条件を満たすようなことがないように、最適解を実行した場合の評価区間終端における目標状態量を明示的に指定した上で初期解を生成するために、暫定目標設定手段１０ｉの処理が起動される。ここでは、（数２６）式の積分演算の積分ステップｉ＝ｉｆにおいて（数２８）式が成立したものとして暫定目標設定手段１０ｉの処理を説明する。異常解検出手段３ｆでは、（２８）式の成立を検出したとき、ｉｆの値とともに、その時の状態量→ｘｉｆの値も記録される。暫定目標設定手段１０ｉでは、（数２８）式の成立が検出された時刻ｔ’＝ｔ＋Ｔｆ，Ｔｆ＝ｉｆ(Ｔ／Ｎ)における自車状態量の暫定目標を設定する。暫定目標は以下のように設定する。
【０１０９】
【数３２】
2005339241.tif 000035
ただし、ｘ０tmp，ｖ０tmp（式中ではこれらの添え字０とｔｍｐは縦に整列している）は、以下のように設定される。
【０１１０】
【数３３】
2005339241.tif 000036
Ｒｍ，ｖｍは適当（任意の）な正の定数である。（数３２）式、（数３３）式では、時刻ｔ’＝ｔ＋Ｔｆにおいて（数２８）式の条件が成立しないように、他車ＢＡ１７との車間距離をＲｆ＋Ｒｍ以上とれるような位置に自車１６の目標位置を置くとともに、他車Ｂ１８に追突するリスクを低減するために、目標速度も他車Ｂ１８の速度よりもｖｍ以上遅い速度になるように設定している。
【０１１１】
暫定目標設定手段１０ｉによって（数３２）式のように暫定目標を定めたら、初期解生成手段１０ｈはｔ’＝ｔ＋Ｔｆにおいて暫定目標の条件を満たすような解が最適解となるように初期評価関数を補正する。初等関数で表現できる解を得るために、ｗ１とｗ２とを０にして、さらに評価区間長をＴからＴｆへと短縮する。この時の最適化問題の解は（数３０）式におけるＴをＴｆに置き換えることで得られる。この解を用いた場合、評価区間の終端である時刻ｔ’＝ｔ＋Ｔｆにおける自車１６の状態は次式のように計算することができる。
【０１１２】
【数３４】
2005339241.tif 000037
【０１１３】
【数３５】
2005339241.tif 000038
条件（数３２）式を満たすために、目標車速ｖ０＊を一時的に運転者の設定値とは異なる値に設定することにする。このとき、条件（数３２）式でｘおよびｖの両方とも満たす目標速度/ｖ０＊は次式のように定められる。ただし、ｖの前の斜線は数式中ではｖの上線で示している。
【０１１４】
【数３６】
2005339241.tif 000039
従って、最適解として、次式が初期解生成手段１０ｈから出力される。
【０１１５】
【数３７】
2005339241.tif 000040
【０１１６】
【数３８】
2005339241.tif 000041
これに対応して、異常処理手段１０ｇは、参照評価関数記憶手段１０ｃに格納される評価関数を次式の初期評価関数で置き換える。
【０１１７】
【数３９】
2005339241.tif 000042
以上で、異常解が検出された場合の制御サイクルは終了する。
【０１１８】
異常解が検出された次の制御サイクル以降は、標準評価関数と参照評価関数が異なるものになっているため、評価関数補正手段１０ｊによって、参照評価関数の補正が行われる。
【０１１９】
評価関数補正手段では、異常解検出時に評価区間長が短縮されている場合には、評価区間長を本来の値Ｔに復帰するまで少しずつ増加させる。時刻ｔにおける評価区間長Ｔ(ｔ)を次式の更新則に従って再設定する。
【０１２０】
【数４０】
2005339241.tif 000043
また、異常解検出時に０に設定された他車評価重みｗ１，ｗ２も、次式に従って本来の設定値まで復帰させる。
【０１２１】
【数４１】
2005339241.tif 000044
さらに、異常解検出時に目標速度も補正されている場合には、評価関数の中の自車１６の評価する項を以下のように更新していく。
【０１２２】
【数４２】
2005339241.tif 000045
【０１２３】
【数４３】
2005339241.tif 000046
以上の更新則により、参照評価関数は時間の経過とともに標準評価関数へと近づいていく。
【０１２４】
なお、算出された最適解→Ｕ＊(ｔ)は、第一の実施例の時と同様にして、推奨操作量決定手段１０ｋによって先頭の成分ｕ＊(ｔ；ｔ)が取り出され、ｕ＊(ｔ；ｔ)が加速度（減速度）指令値としてスロットルコントローラあるいはブレーキコントローラに伝達される。
【０１２５】
以上の説明を図１０のフローチャートに沿ってまとめる。
【０１２６】
ステップ１では、各センサからの信号を読み込んで、自車１６および周囲車両１７および１８の状態→ｘの値を決定する。
【０１２７】
ステップ２では、周囲車両挙動予測手段１０ｂに格納されている車両モデルが読み込まれ、状況に応じて必要なパラメータを決定する。
【０１２８】
ステップ３では、標準評価関数記憶手段１０ｅに格納されている評価関数と参照評価関数に格納されている評価関数が比較される。両者に違いがある場合にはステップ４に進み、（数４０）式〜（数４３）式に従って参照評価関数の設定が更新された後、ステップ５に進む。違いがない場合には、この過程を経ずただちにステップ５へと進む。
【０１２９】
ステップ５では、最適解算出手段１０ｄによって、候補解→Ｕ＊(ｔ−Δｔ)に対する補正解→Ｘ＊(ｔ)の算出が行われる。
【０１３０】
ステップ６では、異常解検出手段１０ｆによって、算出された補正解→Ｘ＊(ｔ)が異常解であるかどうかが判定される。異常解であると判定された場合には、ステップ７の処理へ進む。異常解が検出されなかった場合は、ステップ１３へ進む。
【０１３１】
ステップ７では、異常処理手段によって、算出解→Ｕ＊(ｔ)、候補解→Ｕ＊(ｔ−Δｔ)が破棄されて、ステップ８へ進む。
【０１３２】
ステップ８では、検出された異常解の種類を判別して処理を分岐する。（数２８）式の条件を満たした場合には、ステップ１１へ進み、それ以外の条件で異常解と判定された場合には、ステップ９へ進む。
【０１３３】
ステップ９では、Ｌｖ(ｖ０)＋Ｌｕ(ｕ)で構成される初期評価関数が参照評価関数記憶手段１０ｃに格納される。
【０１３４】
ステップ１０では、初期解生成手段によって、（数３０）式に従って新たな初期解→Ｕ＊(ｔ)が生成される。
【０１３５】
ステップ１１では、暫定目標設定手段１０ｉによって、初期解が満たすべき条件（数３２）式、（数３３）式が設定され、それに基づいて（数３６）式によって暫定目標車速を算出する。
【０１３６】
ステップ１２では、評価区間長をＴｆに変更し、さらにＬｖ(ｖ０)に含まれる目標車速パラメータｖ０＊をステップ１１で算出される暫定目標車速で置き換えた上で、Ｌｖ(ｖ０)＋Ｌｕ(ｕ)で構成される初期評価関数を参照評価関数記憶手段１０ｃに格納する。
【０１３７】
ステップ１３では、初期解生成手段によって、（数３７）式、（数３８）式に従って新たな初期解→Ｕ＊(ｔ)が最適解候補として生成される。
【０１３８】
ステップ１４では、最適解→Ｕ＊(ｔ)から実際の制御指令値を決定し、スロットルコントローラあるいはブレーキコントローラに指令を送る。
【０１３９】
図１１に、図９の場面における異常解の検出と異常処理の概要を説明した図を示す。図１１では、他車Ａ１７の陰から車線変更してきた他車Ｂ１８を検知し、予測計算によって異常解の判定条件を満たすほど他車Ｂ１８に接近する状況が予想されたため（図１１において、ホライズン長は短縮）、他車Ｂ１８の手前に暫定目標を設定し、ただちに減速を指示する制御指令が出力され、その後は他車Ｂ１８に追従するような制御指令が生成（ホライズン長を拡大）されている様子を示している。
以上が本発明の第２の実施例である。
（実施例３）
本発明の第３の実施例を図１２から図１６までの図面に基づいて説明する。
【０１４０】
図１２は本発明である車両用推奨操作量生成装置を構成するのに必要な装置の一配置図である。
【０１４１】
図１２において、前方カメラ８ａ、後方カメラ８ｂ、側方カメラ８ｃおよび車速センサ９は第二の実施例で説明したものと同じ装置で構成される。
【０１４２】
ＧＰＳ信号受信機１１は衛星からの信号を受信して自車位置に関する情報を得る。得られた自車位置情報は、地図情報データベース１２に記録された地図データと照合され、自車前方の車線数に関する情報が得られる。
【０１４３】
演算部１０はマイクロコンピュータとその周辺部品から構成され、センサからの信号を内蔵メモリに記録されたプログラムに従って処理し、計算結果を表示装置に伝達する。
【０１４４】
表示装置１４は液晶パネルなどの表示用ディスプレイで構成され、演算部１０から送られてきた推奨操作量に関する情報をディスプレイに表示する。
【０１４５】
演算部１０に格納されたマイクロコンピュータのソフトウェアの形態により、図１３に示すブロック１０ａ〜１０ｋを構成する。
【０１４６】
以下、図１４の場面における装置の動作を例として、本実施例における演算部の処理内容について説明する。
【０１４７】
図１４は片側三車線の道路を自車１６と二台の他車Ａ１７および他車Ｂ１８が走行している場面を示している。自車１６が走行している左車線は前方で途切れており、自車１６は中央車線に車線変更する必要に迫られている場面である。本実施例では、センサの制約により認識可能な車線は現在の走行車線の両隣に限定されているという想定を置いているので、自車１６からは中央車線を走行している他車Ａ１７は検出しているが、右車線を走行している他車Ｂ１８は検出できていない状況を考えている。なお、座標系は図１４のように設定されているものとする。
【０１４８】
状態量算出処理１０ａでは、第２の実施例と同様にして、各車の進行方向位置、進行方向速度、車線位置からなる状態量の値が決定される。その結果、（数１４）式と同様のシステム状態量が定義される。ただし、この時点では他車Ｂ１８が検出できていないので、他車Ｂ１８に関する状態量は割り当てられない。
【０１４９】
車線減少地点検出手段１０ｍでは、ＧＰＳ信号と地図情報データベースの情報をもとに、自車前方の道路構造の情報を得て、車線が減少している地点のｘ座標の値を算出する。
【０１５０】
周囲車両挙動予測手段１０ｂで構成されるモデルは第二の実施例と同じモデルが用いられるが、本実施例では自車１６の車線変更を前提とした推奨操作量が生成されるので、自車１６に関しても横方向のモデルが定義される。すなわち、自車モデルを次式のように構成する。
【０１５１】
【数４４】
2005339241.tif 000047
ｕｘは自車１６の加速度（減速度）指令値、ｕｙは自車１６の車線位置の指令値を表していて、この二つの指令値がモデル予測制御の考え方に基づいて演算部１０で算出される。
【０１５２】
評価関数は第二の実施例で説明した三つの評価基準に加えて、新たに二つの評価基準を表現した項が加えられる。その二つの評価基準とは、
iv）頻繁に車線変更を行わない
v）なるべく車線減少地点に近づかない
である。
項目iv）は、次式のような関数で表現することができる。
【０１５３】
【数４５】
2005339241.tif 000048
ｗｙは項目iv）に対する評価重みを表す正の定数である。（数４５）式の右辺は（数４４）式よりｙ０’２（ここで、’ はｙの時間ｔに関する微分を示す）に比例した項になっているので、頻繁な車線変更を抑制する効果が得られる。
【０１５４】
項目ｖ）は、車線減少地点のｘ座標をｘendとして、次式のような関数で表現することができる。
【０１５５】
【数４６】
2005339241.tif 000049
ｗｍはこの項の評価重みを表す正の定数、ｘbeginは車線の減少を考慮した推奨操作量の生成を始める地点のｘ座標、γは正の定数である。（数４６）式は、自車１６が左車線に留まったまま車線減少地点に近づけば近づくほど評価項の値が大きくなる関数を表現しており、車線減少地点に近づくほど中央車線へ車線変更することを高く評価することで、中央車線への車線変更を促す効果を持っている。
【０１５６】
以上より、本実施例においては、評価関数を構成する評価式Ｌは、
【０１５７】
【数４７】
2005339241.tif 000050
と構成される。
【０１５８】
最適解算出手段１０ｄの処理は、使用するモデルと評価関数が異なる以外は、第２の実施例と同じであるが、本実施例の場合、算出対象となる操作量がｕｘとｕｙの二つになる点が異なっている。
【０１５９】
異常解検出手段１０ｆの処理は、第２の実施例とほぼ同様であるが、本実施例では自車が車線減少地点に到達しているにも関わらず左車線に留まっていることが予想される状況が異常解検出条件として加えられる。図１４における具体的な異常解発生の場面を図１５に基づいて説明する。
【０１６０】
図１４において、自車１６が走行する左車線からは他車Ｂ１８が検出できないので、自車１６と他車Ａ１７との関係だけを考慮して推奨操作量の生成が行われる。その結果、図１５に示したように、他車Ａ（１７）が前方へ離れるのを待ってから、中央車線に車線変更することを推奨する推奨操作量が得られた。この時、右車線を走行している他車Ｂ１８が中央車線へ車線変更を開始してきたとする。この場合、他車Ｂ１８を考慮せずに生成された推奨操作量では、自車１６が中央車線に車線変更したそのすぐ後に他車Ｂ１８が車線変更してくるような解となってしまう。このような解は、他車Ｂ１８も考慮した場合の真の最適解とは大きく異なる解であり、中央車線へ車線変更する解は、異常処理手段１０ｇによって破棄されるか、あるいは通常の最適解算出手段１０ｄによる演算によって修正されるか、のどちらかによって、左車線に留まることを推奨する解へと変形される。しかし、左車線に留まった場合には、今度は車線減少地点への接近に対処するために急減速が必要になる場合があるが、解の変形が間に合わずに左車線に留まったまま車線減少地点を通り越してしまうような解が生成される場合がある。そのような解は現実には実行不可能であり、推奨操作量として出力することはできない。従って、そのような予測値が最適解算出手段１０ｄにおいて検出された場合には、やはりその解は異常解として破棄する必要がある。
【０１６１】
そこで、異常解検出条件として、次式の条件が追加される。
【０１６２】
【数４８】
2005339241.tif 000051
異常処理手段１０ｇの処理は第２の実施例と同じく、それまでの最適解および候補解の破棄と参照評価関数を新たな評価関数で置き換えることである。
【０１６３】
初期解生成手段１０ｈは、第２の実施例と同様に、他車評価重みであるｗ１とｗ２を０にした初期評価関数に対する最適解を算出する。さらに、条件（数４８）式が成立するような場合、中央車線への車線変更がもともと困難な状況になっていることが多いので、車線位置の指令値ｕｙは左車線を指示するｕｙ＝１に固定する。従って、評価式を構成する項のうち、ＬｙとＬｓは実質的に最適解に影響を与えなくなり、Ｌｙ、Ｌｕ、Ｌｍの三つの項だけで最適解が決まることになる。この場合、Ｌｍが非線形関数となっているので、第２の実施例のように最適解を既知関数で表現することは困難である。しかし、評価関数がＬｙ、Ｌｕ、Ｌｍの三つの項だけで構成されている場合、自車の現在（時刻ｔ）の車線減少地点までの距離ｘend−ｘ(ｔ)と速度ｖ(ｔ)によって最適解は一意に決まる。従って、いくつかの代表的な距離ｘend−ｘ(ｔ)と速度ｖ(ｔ)の値の組に対してあらかじめオフラインの最適化計算によって最適解の数値解を求めておいて、その結果を演算部のメモリに記録しておけば、異常解が検出された場面と最も近い値の組に対する数値解を呼び出すことで、近似的に初期解を構成することができる。
【０１６４】
暫定目標生成手段１０ｉ、評価関数補正手段１０ｊ、推奨操作量決定手段１０ｋでは第２の実施例と同様の処理が行われる。
【０１６５】
演算部全体の処理の手順についても、第２の実施例における図１０のフローチャートとほぼ同様の処理が進められる。第２の実施例と異なるのは、ステップ１の状態量算出処理の後に、車線減少地点を検出する処理が加わることだけである。
【０１６６】
表示装置４では、推奨操作量決定手段１０ｋから出力されてきた指令値ｕｘ＊(ｔ；ｔ)、ｕy＊(ｔ；ｔ)の値を読み込んで、画面上にｕｘ＊(ｔ；ｔ)、ｕy＊(ｔ；ｔ)の意味するところを運転者にわかりやすい形で表示する。表示装置１４の表示例を図１６に示す。ｕｘ＊(ｔ；ｔ)の値によって垂直方向の指示矢印が表示され、ｕy＊(ｔ；ｔ)の値と現在の車線の位置が違っている場合には、車線変更を推奨しているものと解釈して、目標車線方向に水平方向の指示矢印を表示する。
以上が本発明の第３の実施例である。
【図面の簡単な説明】
【０１６７】
【図１】第１の実施例における制御系の配置図。
【図２】第１の実施例におけるモーターコントローラのソフトウェアの構成を示すブロック図。
【図３】第１の実施例におけるモーターコントローラ処理のフロー図。
【図４】第１の実施例における異常解検出時の処理例を示すタイミング図。
【図５】第２の実施例における装置配置図。
【図６】第２の実施例における演算部ソフトウェアの構成を示すブロック図。
【図７】第２の実施例において導入した座標系の構成図。
【図８】第２の実施例における周囲車両挙動予測手段の動作説明図。
【図９】第２の実施例適用時の動作の一例を示す動作説明図。
【図１０】第２の実施例における演算部の処理のフロー図。
【図１１】第２の実施例の異常解検出時の処理の一例を示す動作説明図。
【図１２】第３の実施例における装置配置図。
【図１３】第３の実施例における演算部ソフトウェアの構成を示すブロック図。
【図１４】第３の実施例適用時の動作の一例を示す動作説明図。
【図１５】第３の実施例において異常解発生時の一例を示す動作説明図。
【図１６】第３の実施例における表示装置の画面の一例を示す表示画面図。
【符号の説明】
【０１６８】
１：ばね
２：ダンパ
３：台車
４：モータ
５：モータコントローラ
６：ロータリーエンコーダ
７：制御指令入力装置
８：カメラ
９：車速センサ
１０：演算部
１１：制御目標入力装置
１２：スロットルコントローラ
１３：スロットルアクチュエータ
１４：ブレーキコントローラ
１５：ブレーキクチュエータ
【図１】
2005339241.tif 000052
【図２】
2005339241.tif 000053
【図３】
2005339241.tif 000054
【図４】
2005339241.tif 000055
【図５】
2005339241.tif 000056
【図６】
2005339241.tif 000057
【図７】
2005339241.tif 000058
【図８】
2005339241.tif 000059
【図９】
2005339241.tif 000060
【図１０】
2005339241.tif 000061
【図１１】
2005339241.tif 000062
【図１２】
2005339241.tif 000063
【図１３】
2005339241.tif 000064
【図１４】
2005339241.tif 000065
【図１５】
2005339241.tif 000066
【図１６】
2005339241.tif 000067