以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易にするための例示に過ぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
<車両の構成>
図1および図2を参照して、本発明の実施形態に係る制御装置100が搭載される車両1の構成について説明する。
なお、以下で説明する車両1は、本発明に係る制御装置が搭載される車両の一例に過ぎず、本発明に係る制御装置が搭載される車両は、後述するように、車両1に特に限定されない。
図1は、制御装置100が搭載される車両1の概略構成を示す模式図である。図1に示されるように、車両1は、モータ11と、インバータ12と、バッテリ13と、動力伝達系21と、車輪22と、ステアリングホイール31と、パワーステアリング機構32と、報知装置41と、車室カメラ42と、アクセルセンサ51と、ブレーキセンサ52と、操舵角センサ53と、制御装置100とを備える。
車両1は、駆動用モータであるモータ11のみを駆動源として備え、モータ11から出力される動力を用いて走行する電気車両である。
モータ11は、車両1の車輪22に伝達される動力を出力するモータであり、例えば、三相交流式のモータである。モータ11は、インバータ12を介してバッテリ13と接続されており、バッテリ13の電力を用いて駆動されて動力を出力する。
なお、モータ11は、車両1の減速時に回生駆動されて車輪22の運動エネルギを用いて発電可能なモータジェネレータであってもよい。この場合、モータ11により発電される電力は、インバータ12を介してバッテリ13へ供給される。それにより、バッテリ13がモータ11により発電される電力によって充電される。
モータ11の出力軸は、動力伝達系21を介して車輪22と接続されており、モータ11から出力される動力は、動力伝達系21を介して車輪22に伝達される。
なお、車両1において、モータ11から出力される動力が伝達される駆動輪は、前輪であってもよく、後輪であってもよい。また、動力伝達系21の出力側から出力される動力は、図示しないプロペラシャフトを介して前輪および後輪の双方へ伝達されてもよい。
インバータ12は、双方向の電力変換を行う電力変換装置である。例えば、インバータ12は、三相ブリッジ回路を含む。インバータ12は、バッテリ13から供給される直流電力を交流電力に変換してモータ11に供給可能である。また、インバータ12は、モータ11により発電された交流電力を直流電力に変換してバッテリ13に供給可能である。
バッテリ13は、電力を充放電可能な電池である。バッテリ13として、例えば、リチウムイオン電池、リチウムイオンポリマー電池、ニッケル水素電池、ニッケルカドミウム電池または鉛蓄電池が用いられるが、これら以外の電池が用いられてもよい。バッテリ13は、モータ11に供給される電力を蓄電する。
ステアリングホイール31は、パワーステアリング機構32を介して車輪22(具体的には、前輪)と接続されている。ドライバは、ステアリングホイール31を操作することによって、タイヤ舵角を調整し、車両1の進行方向を変化させることができる。
パワーステアリング機構32は、ドライバによるステアリングホイール31の操作(つまり、操舵)に必要な力をアシストする。
報知装置41は、ドライバに対して各種情報を報知する。例えば、報知装置41は、情報を視覚的に表示する機能である表示機能を有していてもよい。表示機能は、具体的には、ディスプレイまたはランプ等によって実現される。また、例えば、報知装置41は、情報を音として出力する機能である音出力機能を有していてもよい。音出力機能は、具体的には、マイクロフォン等によって実現される。
車室カメラ42は、車両1の車室内を撮像するカメラであり、具体的には、ドライバの顔を撮像する。
アクセルセンサ51は、ドライバによるアクセル操作(具体的には、アクセルペダルを踏み込む操作)の操作量であるアクセル操作量を検出し、検出結果を制御装置100に出力する。
ブレーキセンサ52は、ドライバによるブレーキ操作(具体的には、ブレーキペダルを踏み込む操作)の操作量であるブレーキ操作量を検出し、検出結果を制御装置100に出力する。
操舵角センサ53は、ドライバによるステアリング操舵(具体的には、ステアリングホイール31を回す操作)の操作量であるステアリング操舵角を検出し、検出結果を制御装置100に出力する。
制御装置100は、演算処理装置であるCPU(Central Processing Unit)、CPUが使用するプログラムや演算パラメータ等を記憶する記憶素子であるROM(Read Only Memory)、および、CPUの実行において適宜変化するパラメータ等を一時記憶する記憶素子であるRAM(Random Access Memory)等を含む。
図2は、制御装置100の機能構成の一例を示すブロック図である。例えば、図2に示されるように、制御装置100は、記憶部110と、取得部120と、制御部130と、学習部140とを有する。
記憶部110は、制御部130が行う処理において用いられる各種情報を記憶する。例えば、記憶部110は、学習部140による学習結果(具体的には、後述するドライバの運転操作特性および疲労度特性)を記憶する。
取得部120は、制御部130および学習部140が行う処理において用いられる各種情報を取得し、制御部130および学習部140へ出力する。例えば、取得部120は、車室カメラ42、アクセルセンサ51、ブレーキセンサ52および操舵角センサ53から出力される各種情報を取得する。
制御部130は、車両1内の各装置の動作を制御する。例えば、制御部130は、判定部131と、モータ制御部132と、報知制御部133とを含む。
判定部131は、取得した情報を用いて各種判定を行う。特に、本実施形態では、判定部131は、ドライバによる運転操作の操作量に基づいて、ドライバにより誤操作が行われたか否かを判定する。以下では、ドライバにより誤操作が行われたか否かの判定を、誤操作判定とも呼ぶ。
モータ制御部132は、モータ11の動作を制御する。具体的には、モータ制御部132は、インバータ12のスイッチング素子の動作を制御することによって、バッテリ13とモータ11との間の電力の供給を制御する。それにより、モータ制御部132は、モータ11による動力の生成および発電を制御することができる。
報知制御部133は、報知装置41の動作を制御することによって、ドライバに対する各種情報の報知を報知装置41に行わせることができる。
学習部140は、車両1の運転時におけるドライバの運転操作特性を学習する。運転操作特性は、車両1の運転時におけるドライバの運転操作の特性(換言すると、当該ドライバ特有の運転操作の癖)である。また、学習部140は、車両1の運転時におけるドライバの疲労度特性を学習する。疲労度特性は、車両1の運転時におけるドライバの疲労度の特性(換言すると、当該ドライバ特有の疲労度の傾向)である。疲労度は、ドライバの疲労の程度を示す指標であり、後述されるように、種々の値が用いられる。学習部140による学習結果は、判定部131により行われる誤操作判定(つまり、ドライバにより誤操作が行われたか否かの判定)に関する処理において利用される。
制御装置100は、上述したように、車両1に搭載される各装置と通信を行う。制御装置100と各装置との通信は、例えば、CAN(Controller Area Network)通信を用いて実現される。
なお、本実施形態に係る制御装置100が有する機能は複数の制御装置により分割されてもよく、複数の機能が1つの制御装置によって実現されてもよい。制御装置100が有する機能が複数の制御装置により分割される場合、当該複数の制御装置は、CAN等の通信バスを介して、互いに接続されてもよい。
本実施形態では、上述したように、制御装置100の学習部140は、車両1の運転時におけるドライバの運転操作特性を学習する。また、制御装置100の判定部131は、ドライバによる運転操作の操作量に基づいて誤操作判定を行う。判定部131は、誤操作判定において、具体的には、ドライバによる運転操作の操作量が基準範囲(具体的には、当該運転操作の種類に応じた範囲)外の場合、ドライバにより当該運転操作の誤操作が行われたと判定する。ここで、判定部131は、学習部140により事前に学習されたドライバの運転操作特性に基づいて上記の基準範囲を調整する。それにより、ドライバによる誤操作を精度良く検知することが可能となる。なお、制御装置100により行われる誤操作判定に関する処理の詳細については、後述する。
<制御装置の動作>
続いて、図3~図5を参照して、本発明の実施形態に係る制御装置100の動作について説明する。
以下では、制御装置100により行われる誤操作判定に関する処理の流れの第1の例、第2の例および第3の例をこの順に説明する。なお、誤操作判定の対象となる運転操作の種類は、後述されるように、第1の例、第2の例および第3の例に限定されない。
[第1の例]
まず、図3を参照して、誤操作判定に関する処理の流れの第1の例について説明する。
第1の例では、判定部131により行われる誤操作判定において、ドライバによるアクセル操作の誤操作が行われたか否かが判定される。第1の例の誤操作判定(具体的には、後述する図3中のステップS105)では、判定部131は、アクセル操作量がアクセル操作量上限値を超えた場合に、アクセル操作量が基準範囲外であるとして、アクセル操作の誤操作が行われたと判定する。つまり、第1の例の誤操作判定におけるアクセル操作量の基準範囲は、0からアクセル操作量上限値までの範囲である。
図3は、誤操作判定に関する処理の流れの第1の例を示すフローチャートである。図3に示される第1の例に係る制御フローは、具体的には、繰り返し実行される。
図3に示される第1の例に係る制御フローが開始されると、まず、ステップS101において、制御部130の判定部131は、前走車(つまり、車両1の前方を走行する車両)が存在するか否かを判定する。前走車が存在すると判定された場合(ステップS101/YES)、ステップS102に進む。一方、前走車が存在しないと判定された場合(ステップS101/NO)、図3に示される制御フローは終了する。
例えば、車両1には、車両前方を撮像するカメラが搭載されており、判定部131は、当該カメラにより撮像される画像に対して画像処理を施すことによって、前走車が存在するか否かを判定することができる。
ステップS101でYESと判定された場合、ステップS102において、判定部131は、アクセル操作量上限値をドライバのアクセル操作特性に基づいて調整する。アクセル操作特性は、車両1のドライバの運転操作特性のうち、アクセル操作に関する運転操作特性であり、学習部140により事前に学習される。
具体的には、アクセル操作量上限値の基準値として、平均的なドライバが意図的にアクセル操作を行った場合に想定されるアクセル操作量の最大値と同程度の値が予め設定されている。つまり、アクセル操作量上限値の基準値は、平均的なドライバが車両1を運転している場合にアクセル操作の誤操作が行われたか否かを判定するための値である。ステップS102では、判定部131は、アクセル操作量上限値の基準値をアクセル操作特性に基づいて調整する。
例えば、車両1のドライバが平均的なドライバと比較してアクセル操作においてアクセルペダルを強く踏み込む癖を有する場合、このような癖がアクセル操作特性として学習部140により事前に学習される。学習部140は、例えば、過去の所定期間におけるアクセル操作量の平均値をアクセル操作特性として学習する。例えば、車両1のドライバが平均的なドライバと比較してアクセル操作においてアクセルペダルを強く踏み込む癖を有する場合、判定部131は、誤操作判定で用いられるアクセル操作量上限値として、アクセル操作量上限値の基準値より大きな値を設定する。一方、車両1のドライバが平均的なドライバと比較してアクセル操作においてアクセルペダルを弱く踏み込む癖を有する場合、判定部131は、誤操作判定で用いられるアクセル操作量上限値として、アクセル操作量上限値の基準値より小さな値を設定する。
次に、ステップS103において、判定部131は、車両1のドライバが体調不良であるか否かを判定する。車両1のドライバが体調不良であると判定された場合(ステップS103/YES)、ステップS104に進む。一方、車両1のドライバが体調不良でないと判定された場合(ステップS103/NO)、ステップS104が行われずに、ステップS105に進む。
例えば、判定部131は、ドライバの疲労度が閾値を超えた場合、ドライバが体調不良であると判定する。上記の疲労度は、上述したように、ドライバの疲労の程度を示す指標である。上記の閾値は、平均的なドライバが体調不良である場合に想定される程度の値に設定される。
判定部131は、具体的には、車室カメラ42により得られる画像(つまり、ドライバの顔を映す画像)に対して画像処理を施すことによって得られる各種情報を疲労度として用いる。なお、上記の閾値は、疲労度として用いられる情報に応じて適宜設定される。
例えば、判定部131は、ドライバが単位時間あたりに欠伸を行った回数を取得し、当該回数を疲労度として用いてもよい。また、例えば、判定部131は、ドライバが単位時間あたりに目を閉じた回数を取得し、当該回数を疲労度として用いてもよい。また、例えば、判定部131は、ドライバの瞼の閉じ率(例えば、全開状態を0%とし、全閉状態を100%とした場合の比率)の単位時間での平均値を取得し、当該閉じ率の平均値を疲労度として用いてもよい。また、例えば、判定部131は、ドライバの瞳が単位時間あたりに動いた回数を取得し、当該回数を疲労度として用いてもよい。また、例えば、判定部131は、機械学習により得られる予測モデルを用いて、ドライバの顔を映す画像から疲労度を特定してもよい。
なお、判定部131は、上記で説明した方法以外の方法によって、ドライバが体調不良であると判定してもよい。ドライバが体調不良であるか否かの判断の方法は、公知の各種方法をとり得る。具体的には、判定部131は、ドライバの顔を映す画像に基づいて得られる情報を用いる方法以外の方法により疲労度を特定してもよい。例えば、判定部131は、ドライバの発汗量または心拍数等の生体情報に基づいて疲労度を特定してもよい。また、例えば、判定部131は、ドライバの頭または腕の動きを示す情報に基づいて疲労度を特定してもよい。また、例えば、判定部131は、ドライバによるステアリングホイール31の把持力を示す情報に基づいて疲労度を特定してもよい。
ここで、ドライバが体調不良であるか否かの判定精度を向上させる観点では、判定部131は、ドライバの疲労度特性に基づいてステップS103の判定処理の閾値を調整することが好ましい。疲労度特性は、学習部140により事前に学習される。
例えば、車両1のドライバが平均的なドライバと比較して疲労度が高くなりやすい特性を有する場合、このような特性が疲労度特性として学習部140により事前に学習される。学習部140は、例えば、過去の所定期間における疲労度の平均値を疲労度特性として学習する。例えば、車両1のドライバが平均的なドライバと比較して疲労度が高くなりやすい特性を有する場合、判定部131は、ステップS103の判定処理で用いられる閾値として、平均的なドライバに対して用いられる閾値より高い値を設定する。一方、車両1のドライバが平均的なドライバと比較して疲労度が低くなりやすい特性を有する場合、判定部131は、ステップS103の判定処理で用いられる閾値として、平均的なドライバに対して用いられる閾値より低い値を設定する。
ステップS103でYESと判定された場合、ステップS104において、判定部131は、アクセル操作量上限値を小さくする。
上述したように、第1の例の誤操作判定では、アクセル操作量がアクセル操作量上限値を超えた場合に、アクセル操作の誤操作が行われたと判定される。ゆえに、アクセル操作量上限値を小さくすることによって、ドライバにより誤操作が行われたと判定されやすくすることができる。ドライバが体調不良である場合には、誤操作が行われやすくなる。ゆえに、ドライバによる誤操作をより精度良く検知する観点では、図3の制御フローのように、判定部131は、ドライバが体調不良であると判定した場合、ドライバにより誤操作が行われたと判定されやすくなるように、基準範囲を調整することが好ましい。
次に、ステップS105において、判定部131は、アクセル操作量がアクセル操作量上限値を超えるか否かを判定する。アクセル操作量がアクセル操作量上限値を超える(つまり、基準範囲外である)場合(ステップS105/YES)、ドライバによりアクセル操作の誤操作が行われたと判定され、ステップS106に進む。一方、アクセル操作量がアクセル操作量上限値を超えていない(つまり、基準範囲内である)場合(ステップS105/NO)、ドライバによりアクセル操作の誤操作が行われていないと判定され、図3に示される制御フローは終了する。
ステップS105でYESと判定された場合、ステップS106において、報知制御部133は、ドライバによりアクセル操作の誤操作が行われた旨を報知装置41に警告させる。それにより、ドライバによりアクセル操作の誤操作が行われた場合に、その旨をドライバに認知させることができる。
例えば、報知制御部133は、ドライバによりアクセル操作の誤操作が行われた旨を示す文字、図形もしくは記号、または、これらの組み合わせ等のオブジェクトを報知装置41に表示させる。また、例えば、報知制御部133は、ドライバによりアクセル操作の誤操作が行われた旨を示す音声を報知装置41に出力させる。なお、報知制御部133は、上記以外の他の方法によって誤操作が行われた旨をドライバに認知させてもよい。例えば、報知制御部133は、車両1内の空調装置の動作を制御し、車室内の温度を変化させることによって、誤操作が行われた旨をドライバに認知させてもよい。
次に、ステップS107において、モータ制御部132は、トルクダウンを実行し、図3に示される制御フローは終了する。トルクダウンは、モータ11により出力されるトルクを低下させる制御である。
ここで、ドライバによりアクセル操作の誤操作が行われた場合には、ドライバによる車両1の運転を継続させることが望ましくない状況(例えば、ドライバが体調不良となっている状況)が生じている可能性がある。このような状況では、車両1の運転を中断するために、車両1を一旦停車させることが望ましい。そこで、ドライバによりアクセル操作の誤操作が行われた場合に、トルクダウンを実行することによって、車両1を円滑に、かつ、安全に停車させることができる。
なお、上記で説明した図3に示される制御フローでは、前走車が存在するとの条件が満たされた場合にアクセル操作の誤操作判定が行われるが、アクセル操作の誤操作判定は、他の実行条件(つまり、当該誤操作判定を実行するトリガとなる条件)が満たされた場合に実行されてもよい。ここで、アクセル操作の誤操作判定の実行条件に応じて、アクセル操作量上限値の基準値が異なっていてもよい。
[第2の例]
次に、図4を参照して、誤操作判定に関する処理の流れの第2の例について説明する。
第2の例では、判定部131により行われる誤操作判定において、ドライバによるブレーキ操作の誤操作が行われたか否かが判定される。第2の例の誤操作判定(具体的には、後述する図4中のステップS206)では、判定部131は、ブレーキ操作量がブレーキ操作量上限値を超えた場合に、ブレーキ操作量が基準範囲外であるとして、ブレーキ操作の誤操作が行われたと判定する。つまり、第2の例の誤操作判定におけるブレーキ操作の基準範囲は、0からブレーキ操作量上限値までの範囲である。
図4は、誤操作判定に関する処理の流れの第2の例を示すフローチャートである。図4に示される第2の例に係る制御フローは、具体的には、繰り返し実行される。
図4に示される第2の例に係る制御フローが開始されると、まず、ステップS201において、制御部130の判定部131は、前走車が存在するか否かを判定する。前走車が存在すると判定された場合(ステップS201/YES)、ステップS202に進む。一方、前走車が存在しないと判定された場合(ステップS201/NO)、図4に示される制御フローは終了する。なお、ステップS201の処理は、図3のステップS101の処理と同様である。
ステップS201でYESと判定された場合、ステップS202において、判定部131は、ブレーキ操作量上限値の基準値を設定する。
具体的には、ブレーキ操作量上限値の基準値は、平均的なドライバが意図的にブレーキ操作を行った場合に想定されるブレーキ操作量の最大値と同程度の値である。つまり、ブレーキ操作量上限値の基準値は、平均的なドライバが車両1を運転している場合にブレーキ操作の誤操作が行われたか否かを判定するための値である。例えば、判定部131は、車両1から前走車までの間の車間距離、および、前走車に対する車両1の相対速度に基づいて、ブレーキ操作量基準値を設定する。
次に、ステップS203において、判定部131は、ブレーキ操作量上限値をドライバのブレーキ操作特性に基づいて調整する。ブレーキ操作特性は、車両1のドライバの運転操作特性のうち、ブレーキ操作に関する運転操作特性であり、学習部140により事前に学習される。
例えば、車両1のドライバが平均的なドライバと比較してブレーキ操作においてブレーキペダルを強く踏み込む癖を有する場合、このような癖がブレーキ操作特性として学習部140により事前に学習される。学習部140は、例えば、過去の所定期間におけるブレーキ操作量の平均値をブレーキ操作特性として学習する。例えば、車両1のドライバが平均的なドライバと比較してブレーキ操作においてブレーキペダルを強く踏み込む癖を有する場合、判定部131は、誤操作判定で用いられるブレーキ操作量上限値として、ブレーキ操作量上限値の基準値より大きな値を設定する。一方、車両1のドライバが平均的なドライバと比較してブレーキ操作においてブレーキペダルを弱く踏み込む癖を有する場合、判定部131は、誤操作判定で用いられるブレーキ操作量上限値として、ブレーキ操作量上限値の基準値より小さな値を設定する。
次に、ステップS204において、判定部131は、車両1のドライバが体調不良であるか否かを判定する。車両1のドライバが体調不良であると判定された場合(ステップS204/YES)、ステップS205に進む。一方、車両1のドライバが体調不良でないと判定された場合(ステップS204/NO)、ステップS205が行われずに、ステップS206に進む。なお、ステップS204の処理は、図3のステップS103の処理と同様である。
ステップS204でYESと判定された場合、ステップS205において、判定部131は、ブレーキ操作量上限値を小さくする。
上述したように、第2の例の誤操作判定では、ブレーキ操作量がブレーキ操作量上限値を超えた場合に、ブレーキ操作の誤操作が行われたと判定される。ゆえに、ブレーキ操作量上限値を小さくすることによって、ドライバにより誤操作が行われたと判定されやすくすることができる。よって、図3の制御フローと同様に、ドライバが体調不良であるか否かの判定結果に基づいて、ドライバによる誤操作(第2の例では、ブレーキ操作の誤操作)をより精度良く検知することができる。
次に、ステップS206において、判定部131は、ブレーキ操作量がブレーキ操作量上限値を超えるか否かを判定する。ブレーキ操作量がブレーキ操作量上限値を超える(つまり、基準範囲外である)場合(ステップS206/YES)、ドライバによりブレーキ操作の誤操作が行われたと判定され、ステップS207に進む。一方、ブレーキ操作量がブレーキ操作量上限値を超えていない(つまり、基準範囲内である)場合(ステップS206/NO)、ドライバによりブレーキ操作の誤操作が行われていないと判定され、図4に示される制御フローは終了する。
ステップS206でYESと判定された場合、ステップS207において、報知制御部133は、ドライバによりブレーキ操作の誤操作が行われた旨を報知装置41に警告させる。それにより、ドライバによりブレーキ操作の誤操作が行われた場合に、その旨をドライバに認知させることができる。なお、ステップS207では、図3のステップS106と同様に、例えば、表示による報知が行われてもよく、音出力による報知が行われてもよい。
次に、ステップS208において、モータ制御部132は、トルクダウンを実行し、図4に示される制御フローは終了する。なお、ステップS208の処理は、図3のステップS107の処理と同様である。
なお、上記で説明した図4に示される制御フローでは、前走車が存在するとの条件が満たされた場合にブレーキ操作の誤操作判定が行われるが、ブレーキ操作の誤操作判定は、他の実行条件(つまり、当該誤操作判定を実行するトリガとなる条件)が満たされた場合に実行されてもよい。ここで、ブレーキ操作の誤操作判定の実行条件に応じて、ブレーキ操作量上限値の基準値が異なっていてもよい。
[第3の例]
次に、図5を参照して、誤操作判定に関する処理の流れの第3の例について説明する。
第3の例では、判定部131により行われる誤操作判定において、ドライバによるステアリング操舵の誤操作が行われたか否かが判定される。第3の例の誤操作判定(具体的には、後述する図5中のステップS306)では、判定部131は、ステアリング操舵角が操舵角上限値から操舵角下限値までの範囲外である場合に、ステアリング操舵角が基準範囲外であるとして、ステアリング操舵の誤操作が行われたと判定する。つまり、第3の例の誤操作判定におけるステアリング操舵の基準範囲は、操舵角上限値から操舵角下限値までの範囲である。
図5は、誤操作判定に関する処理の流れの第3の例を示すフローチャートである。図5に示される第3の例に係る制御フローは、具体的には、繰り返し実行される。
図5に示される第3の例に係る制御フローが開始されると、まず、ステップS301において、制御部130の判定部131は、車両1がカーブ路を走行中であるか否かを判定する。車両1がカーブ路を走行中であると判定された場合(ステップS301/YES)、ステップS302に進む。一方、車両1がカーブ路を走行中でないと判定された場合(ステップS301/NO)、図5に示される制御フローは終了する。
例えば、車両1には、当該車両1が走行している走行経路の地図上の形状および当該車両1の現在位置を特定可能なナビゲーション装置が搭載されており、判定部131は、当該ナビゲーション装置から出力される情報を利用することによって、車両1がカーブ路を走行中であるか否かを判定することができる。なお、ナビゲーション装置は、例えば、GPS(Global Positioning System)信号を取得すること等によって車両1の現在位置を特定することができ、地図データを予め記憶している。
ステップS301でYESと判定された場合、ステップS302において、判定部131は、操舵角上限値および操舵角下限値の各基準値を設定する。
具体的には、操舵角上限値の基準値は、平均的なドライバが意図的にステアリング操舵を行った場合に想定されるステアリング操舵角の最大値と同程度の値である。操舵角下限値の基準値は、平均的なドライバが意図的にステアリング操舵を行った場合に想定されるステアリング操舵角の最小値と同程度の値である。つまり、操舵角上限値の基準値および操舵角下限値の基準値は、平均的なドライバが車両1を運転している場合にステアリング操舵の誤操作が行われたか否かを判定するための値である。例えば、判定部131は、車両1が走行しているカーブ路の曲率、および、車両1の車速に基づいて、操舵角上限値の基準値および操舵角下限値の基準値を設定する。
次に、ステップS303において、判定部131は、操舵角上限値および操舵角下限値をドライバのステアリング操舵特性に基づいて調整する。ステアリング操舵特性は、車両1のドライバの運転操作特性のうち、ステアリング操舵に関する運転操作特性であり、学習部140により事前に学習される。
例えば、車両1のドライバが平均的なドライバと比較してステアリング操舵においてステアリングホイール31を大きく回す癖を有する場合、このような癖がステアリング操舵特性として学習部140により事前に学習される。学習部140は、例えば、過去の所定期間におけるステアリング操舵角の平均値をステアリング操舵特性として学習する。例えば、車両1のドライバが平均的なドライバと比較してステアリング操舵においてステアリングホイール31を大きく回す癖を有する場合、判定部131は、誤操作判定で用いられる操舵角上限値および操舵角下限値として、それぞれ操舵角上限値の基準値および操舵角下限値の基準値より大きな値を設定する。一方、車両1のドライバが平均的なドライバと比較してステアリング操舵においてステアリングホイール31を小さく回す癖を有する場合、判定部131は、誤操作判定で用いられる操舵角上限値および操舵角下限値として、それぞれ操舵角上限値の基準値および操舵角下限値の基準値より小さな値を設定する。
次に、ステップS304において、判定部131は、車両1のドライバが体調不良であるか否かを判定する。車両1のドライバが体調不良であると判定された場合(ステップS304/YES)、ステップS305に進む。一方、車両1のドライバが体調不良でないと判定された場合(ステップS304/NO)、ステップS305が行われずに、ステップS306に進む。なお、ステップS304の処理は、図3のステップS103の処理と同様である。
ステップS304でYESと判定された場合、ステップS305において、判定部131は、操舵角上限値を小さくし、操舵角下限値を大きくする。
上述したように、第3の例の誤操作判定では、ステアリング操舵角が操舵角上限値から操舵角下限値までの範囲外である場合に、ステアリング操舵の誤操作が行われたと判定される。ゆえに、操舵角上限値を小さくし、操舵角下限値を大きくすることによって、ドライバにより誤操作が行われたと判定されやすくすることができる。よって、図3の制御フローと同様に、ドライバが体調不良であるか否かの判定結果に基づいて、ドライバによる誤操作(第3の例では、ステアリング操舵の誤操作)をより精度良く検知することができる。
次に、ステップS306において、判定部131は、ステアリング操舵角が操舵角上限値から操舵角下限値までの範囲外であるか否かを判定する。ステアリング操舵角が操舵角上限値から操舵角下限値までの範囲外である(つまり、基準範囲外である)場合(ステップS306/YES)、ドライバによりステアリング操舵の誤操作が行われたと判定され、ステップS307に進む。一方、ステアリング操舵角が操舵角上限値から操舵角下限値までの範囲内である(つまり、基準範囲内である)場合(ステップS306/NO)、ドライバによりステアリング操舵の誤操作が行われていないと判定され、図5に示される制御フローは終了する。
ステップS306でYESと判定された場合、ステップS307において、報知制御部133は、ドライバによりステアリング操舵の誤操作が行われた旨を報知装置41に警告させる。それにより、ドライバによりステアリング操舵の誤操作が行われた場合に、その旨をドライバに認知させることができる。なお、ステップS307では、図3のステップS106と同様に、例えば、表示による報知が行われてもよく、音出力による報知が行われてもよい。
次に、ステップS308において、モータ制御部132は、トルクダウンを実行し、図5に示される制御フローは終了する。なお、ステップS308の処理は、図3のステップS107の処理と同様である。
なお、上記で説明した図5に示される制御フローでは、車両1がカーブ路を走行中であるとの条件が満たされた場合にステアリング操舵の誤操作判定が行われるが、ステアリング操舵の誤操作判定は、他の実行条件(つまり、当該誤操作判定を実行するトリガとなる条件)が満たされた場合に実行されてもよい。ここで、ステアリング操舵の誤操作判定の実行条件に応じて、ステアリング操舵角上限値およびステアリング操舵角下限値の各基準値が異なっていてもよい。
なお、上記では、車両1を運転するドライバが変更される場合について言及していないが、例えば、車両1が複数のドライバにより共有されている場合、乗車するドライバが変更される場合が考えられる。ゆえに、乗車するドライバが変更された場合であってもドライバによる誤操作を精度良く検知する観点では、学習部140は、乗車するドライバごとに運転操作特性の学習を分けて行い、学習した運転操作特性をドライバと紐づけて記憶部110に記憶させることが好ましい。なお、いずれのドライバが乗車しているかの認識は、例えば、特定の入力装置を用いたドライバによる入力操作、または、いずれのドライバが乗車しているかを検出する装置(例えば、車室カメラ42により撮像されるドライバの顔を映す画像を画像処理可能な装置)を用いること等によって実現され得る。
<制御装置の効果>
続いて、本発明の実施形態に係る制御装置100の効果について説明する。
本実施形態に係る制御装置100は、車両1の運転時におけるドライバの運転操作特性を学習する学習部140と、ドライバによる運転操作の操作量が基準範囲外の場合、ドライバにより誤操作が行われたと判定する判定部131と、を備える。判定部131は、学習部140により事前に学習された運転操作特性に基づいて基準範囲を調整する。それにより、個々のドライバに依存しない一律の基準ではなく、個々のドライバの運転操作特性を加味して誤操作判定を行うことができる。ゆえに、ドライバによる誤操作を精度良く検知することができる。
ここで、制御装置100の記憶部110に記憶されている学習部140による学習結果(つまり、ドライバの行動特性)を車両1と異なる他の車両の制御装置に移動させることによって、ドライバが車両1から他の車両に乗り換えた後においても、当該学習結果を活用して誤操作判定を行うことができる。ゆえに、学習部140による学習結果は、車両間で移動可能であることが好ましい。
また、本実施形態に係る制御装置100では、誤操作の判定対象となる運転操作は、アクセル操作を含み、判定部131は、アクセル操作特性(つまり、アクセル操作に関する運転操作特性)に基づいて、アクセル操作の基準範囲を調整することが好ましい。それにより、ドライバのアクセル操作特性を加味してアクセル操作の誤操作判定を行うことができる。ゆえに、ドライバによるアクセル操作の誤操作を精度良く検知することができる。
また、本実施形態に係る制御装置100では、誤操作の判定対象となる運転操作は、ブレーキ操作を含み、判定部131は、ブレーキ操作特性(つまり、ブレーキ操作に関する運転操作特性)に基づいて、ブレーキ操作の基準範囲を調整することが好ましい。それにより、ドライバのブレーキ操作特性を加味してブレーキ操作の誤操作判定を行うことができる。ゆえに、ドライバによるブレーキ操作の誤操作を精度良く検知することができる。
また、本実施形態に係る制御装置100では、誤操作の判定対象となる運転操作は、ステアリング操舵を含み、判定部131は、ステアリング操舵特性(つまり、ステアリング操舵に関する運転操作特性)に基づいて、ステアリング操舵の基準範囲を調整することが好ましい。それにより、ドライバのステアリング操舵特性を加味してステアリング操舵の誤操作判定を行うことができる。ゆえに、ドライバによるステアリング操舵の誤操作を精度良く検知することができる。
また、本実施形態に係る制御装置100では、判定部131は、ドライバが体調不良であると判定した場合、ドライバにより誤操作が行われたと判定されやすくなるように、基準範囲を調整することが好ましい。それにより、ドライバが体調不良であるか否かの判定結果に基づいて、ドライバによる誤操作をより精度良く検知することができる。
また、本実施形態に係る制御装置100では、学習部140は、車両1の運転時におけるドライバの疲労度特性を学習し、判定部131は、学習部140により事前に学習された疲労度特性に基づいて、ドライバの疲労度の閾値を調整し、ドライバの疲労度が閾値を超えた場合、ドライバが体調不良であると判定することが好ましい。それにより、ドライバが体調不良であるか否かの判定精度を向上させることができる。
以上、添付図面を参照しつつ本発明の好適な実施形態について説明したが、本発明は上述した実施形態に限定されないことは勿論であり、特許請求の範囲に記載された範疇における各種の変更例または修正例についても、本発明の技術的範囲に属することは言うまでもない。
例えば、上記では、図1を参照して、車両1の構成について説明したが、本発明に係る車両の構成は、このような例に限定されない。本発明に係る車両は、例えば、図1に示される車両1に対して一部の構成要素の削除、追加または変更を加えたものであってもよい。また、本発明に係る車両は、例えば、駆動源として駆動用モータおよびエンジンを備えるハイブリッド車両であってもよく、駆動源としてエンジンのみを備えるエンジン車両であってもよい。また、本発明に係る車両は、例えば、各車輪に対してそれぞれモータが設けられる(つまり、4つのモータが設けられる)車両であってもよい。
例えば、上記では、図3~図5を参照して、誤操作判定の対象となる運転操作がアクセル操作、ブレーキ操作またはステアリング操舵である例(具体的には、上述した第1の例、第2の例および第3の例)を説明したが、誤操作判定の対象となる運転操作の種類は、上記の例に限定されない。例えば、誤操作判定の対象となる操作は、クラッチペダルを踏み込む操作であるクラッチ操作等であってもよい。
また、例えば、本明細書においてフローチャートを用いて説明した処理は、必ずしもフローチャートに示された順序で実行されなくてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。