以下の実施形態では、車両制御装置が搭載された3輪の電気自動車の例について説明する。しかしながら、以下に示す実施形態は、車両制御装置の搭載先を3輪の電気自動車に制限するものではなく、どのような車両に搭載しても良い。
図1は、第1の実施形態の一人乗り用の3輪の電気自動車の正面図を示した図であり、図2は、第1の実施形態の一人乗り用の3輪の電気自動車(以下、車両10と称す)の側面図を示した図である。
車両10は、車体11と、支持部21により支持される右前輪20と、支持部24により支持される左前輪23と、支持部27により支持される後輪26と、を有している。
車体11は、支持部21、24、27により支持される。また、車体11は、乗員M1が着座するためのシートが設けられている。シートに着座した乗員M1は、アームレスト12に設けられた操作装置13を用いて車両10を操作する。
操作装置13は、例えば、操作ボタンや操縦レバー、車両10の状態を乗員M1に通知するための表示デバイスから構成されている。操作装置13が操作されることで、車両10は、スタートアップ(電源投入)、シャットダウン(電源切断)や、走行・停止その他の動作を行う。
図3は、車両10の内部構造の例を示した模式図である。図3に示されるように、車体11の内部には、ギアボックス31と、ロッド22、25、32と、車両制御装置40と、が収納されている。そして、ギアボックス31及び車両制御装置40は、車体11の内部に固定されている。
ギアボックス31は、車両制御装置40から回転軸41を介して伝達されたトルクに応じて、X軸に平行な軸回りにロッド32を回転させる。ロッド32は、ロッド22、25を回転可能に接続されている。また、ロッド22は、支持部21に固定されている。ロッド25は、支持部24に固定されている。ロッド22、25は、その軸が基準線Dvと平行になるように、移動が規制されている。基準線Dvは、車体11の上下方向を示す線とする。右前輪20及び左前輪23の車体11に対する高さは、回転軸41の回転軸に応じて変化する。
車両制御装置40は、車両10の姿勢を制御する。本実施形態の車両制御装置40は、Y−Z平面において、重力に基づいて車両10に生じる加速度ベクトルAvと当該車両10の上下方向の基準線Dvとのなす傾斜角θyが‘0’度になるように、回転軸41を回転させる。
図4は、車両10が傾斜面上に存在する場合を例示した図である。図4に示されるように、車両10が傾斜面上に存在する場合、車両制御装置40が、傾斜角θyが‘0’になるように、換言すれば車両10の上下方向が重力方向と一致するように、回転軸41を回転させることで、傾斜面によらず、車両10の姿勢を安定させることができる。
図3に戻り、車両10の姿勢を安定させるための構成について説明する。車両制御装置40は、モータ設置部42と、規制ユニット43と、第1電気角センサ44Aと、第2電気角センサ44Bと、加速度センサ45と、ジャイロセンサ46と、回転軸角度センサ47と、第1統合ECU(Electronic Control Unit)50Aと、第2統合ECU50Bと、第1駆動系ECU51Aと、第2駆動系ECU51Bと、を備える。
モータ設置部42には、第1モータ42Aと、第2モータ42Bと、が設けられている。第1モータ42A、及び第2モータ42Bは、例えば三相ブラシレスモータとする。第1モータ42Aは、第1駆動系ECU51Aから供給される電力に従って駆動し、第2モータ42Bは、第2駆動系ECU51Bから供給される電力に従って駆動する。
そして、第1モータ42A、及び第2モータ42Bは、(図示しない)ギアを介して、回転軸41と接続されている。そして、第1モータ42Aから出力されるトルク、及び第2モータ42Bから出力されるトルクが(図示しない)ギアを介して、回転軸41に伝達されることで、回転軸41が回転する。
第1モータ42A、及び第2モータ42Bは、回転軸41からギアボックス31、ロッド22、25、32、支持部21、24を介して接続されている右前輪20及び左前輪23の上下方向の位置を制御可能とする。つまり、第1モータ42A、及び第2モータ42Bは、車両10に設けられた複数の車輪(右前輪20及び左前輪23)を支持する支持機構(ロッド22、25、32)を制御して、車両10の位置を調整可能とする。これにより、第1モータ42A、及び第2モータ42Bは、車両10の傾きを制御可能とする。これにより、第1モータ42A、及び第2モータ42Bは、車両10の転倒を防止するための一部構成として機能する。
本実施形態では、モータ設置部42に、第1モータ42A及び第2モータ42Bが設けられたことで、第1モータ42A又は第2モータ42Bのうちいずれか一方に故障が生じた場合であっても、故障していない他方のモータの駆動で回転軸41を回転させ、車両10の姿勢制御を可能としている。
本実施形態においては、第1モータ42A及び第2モータ42Bに故障が生じていない場合には、第1モータ42A及び第2モータ42Bから出力されるトルクが均等になるように、第1駆動系ECU51A及び第2駆動系ECU51Bが制御を行う。これにより、第1モータ42A及び第2モータ42Bから生じる発熱等を抑え、第1モータ42A及び第2モータ42Bの長寿命化を実現できる。
第1電気角センサ44Aは、第1モータ42Aに取り付けられているセンサであって、例えば、レゾルバで構成される。第1電気角センサ44Aは、第1モータ42Aの回転角(電気角)を示すレゾルバ信号を、第1駆動系ECU51Aに送信する。
第2電気角センサ44Bは、第2モータ42Bに取り付けられているセンサであって、例えば、レゾルバで構成される。第2電気角センサ44Bは、第2モータ42Bの回転角(電気角)を示すレゾルバ信号を、第2駆動系ECU51Bに送信する。
レゾルバ信号(レゾルバ値)は、第1モータ42A又は第2モータ42Bについて、0〜360度の範囲で計測可能な信号であり、例えば、0〜4095の値をとる。そして、第1モータ42A又は第2モータ42Bの電気角と、回転軸41の回転角と、の間に比例関係が存在する。このため、本実施形態のレゾルバ信号で示される(第1モータ42A又は第2モータ42Bの)電気角の変化量から、回転軸41の回転角の変化量を、精度良く検出できる。
加速度センサ45は、例えば静電容量型の3軸加速度センサであって、重力加速度や車両10の加減速等によって生じる加速度を検出する。例えば、車両10が停止している場合に、加速度センサ45は、基準線Dvに対する重力加速度の方向を検出する。そして、加速度センサ45は、検出の結果を示す加速度信号を、第1統合ECU51A及び第2統合ECU51Bに送信する。
ジャイロセンサ46は、例えば、振動式のジャイロスコープとする。ジャイロセンサ46は、車両10の角速度を検出し、当該検出の結果を示す角速度信号を、第1統合ECU51A及び第2統合ECU51Bに送信する。
回転軸角度センサ47は、回転軸41の回転角を計測するためのセンサとする。本実施形態の回転軸角度センサ47が計測する回転軸41の回転角は、加速度ベクトルAvと当該車両10の上下方向の基準線Dvとのなす傾斜角θyと一致する。つまり、回転軸41の回転角が‘0’度の場合に、水平な平面上に設けられた車両10の重心の位置が車両10の中心にくる。また、本実施形態では、回転軸角度センサ47により計測された回転角を、絶対回転角と称す。回転角度センサ47は、絶対角センサの一例である。
本実施形態の第1統合ECU50A、第2統合ECU50B、第1駆動系ECU51A及び第2駆動系ECU51Bは、(図示しない)プロセッサ、不揮発性メモリ、及びRAM等を備えた構成とし、不揮発性メモリに記憶されたプログラムを実行する。
第1統合ECU50A、及び第2統合ECU50Bは、車両10全体を制御する構成とする。本実施形態にかかる第1統合ECU50Aは、加速度センサ45からの加速度信号、及びジャイロセンサ46からの角速度信号に基づいて、第1モータ42Aを駆動させる指令を第1駆動系ECU51Aに行う。なお、図3では簡易にするために省略されているが、第1統合ECU50Aは、第2駆動系ECU51Bに対して第2モータ42Bを駆動させる指令も可能とする。
同様に、第2統合ECU50Bは、加速度センサ45からの加速度信号、及びジャイロセンサ46からの角速度信号に基づいて、第2モータ42Bを駆動させる指令を第2駆動系ECU51Bに行う。また、第2統合ECU50Bは、第1駆動系ECU51Aに対して第1モータ42Aを駆動させる指令も可能とする。
第1駆動系ECU51Aは、第1統合ECU50A又は第2統合ECU50Bからの指令、回転軸角度センサ47による絶対回転角、及び第1電気角センサ44Aによる回転角に基づいて、第1モータ42Aの駆動を制御する。
第2駆動系ECU51Bは、第1統合ECU50A又は第2統合ECU50Bからの指令、回転軸角度センサ47による絶対回転角、及び第2電気角センサ44Bによる回転角に基づいて、第2モータ42Bの駆動を制御する。なお、第2駆動系ECU51Bは、回転軸角度センサ47による絶対回転角の詳細な角度である実角を、第1駆動系ECU51Aから受信する。
規制ユニット43は、第1駆動系ECU51A及び第2駆動系ECU51Bから送信される信号に従って、回転軸41を規制する。規制ユニット43は、所定の規制信号を受信した場合に、回転軸41と一体となって回転するギアに部材を係合させることで、回転軸41の回転を抑止させる。また、規制ユニット43は、回転軸を抑止させた後、所定の解除信号を受信した場合に、部材をギアから離間させることで、回転軸41の回転の抑止を解除する。なお、回転軸41の回転を抑止する手法は、ギアに部材を係合させる手法に制限するものではなく、様々な手法を適用して良い。例えば、規制ユニット43は、いわゆるシフトロック装置やギアロック装置と同様の機構を有しても良い。
図5は、本実施形態の車両の左右方向(Y軸方向)の傾きを制御する構成例を示した図である。図5に示される第1統合ECU50A、第2統合ECU50B、第1駆動系ECU51A、及び第2駆動系ECU51Bは、IG信号(イグニッション信号)に従って、起動制御が行われる。
第1統合ECU50A、第2統合ECU50B、第1駆動系ECU51A、及び第2駆動系ECU51Bの間は、第1can(Controller Area Network)、及び第2canで接続されている。第1can、及び第2canは、耐ノイズ性を考慮されて設計された、相互接続された機器間で情報を送受信するためのネットワークとする。
これにより、第1統合ECU50A、及び第2統合ECU50Bは、第1駆動系ECU51A、及び第2駆動系ECU51Bのいずれに対してもデータの送受信と指令とを行うことができる。
そして、第1統合ECU50A、及び第2統合ECU50Bは、ジャイロセンサ46及び加速度センサ45からの信号や、操作装置13からの操作情報に基づいて、第1駆動系ECU51A、及び第2駆動系ECU51Bのうち少なくとも一つに対して、車両10の姿勢を安定させるための指令を行う。本実施形態では、2種類の指令を用いる。
2種類の指令のうち一方は、リーントルク指令である。リーントルク指令は、車両10のリーン(左右方向)のトルク制御に必要なトルク値で第1モータ42A(又は第2モータ42B)を駆動させるように、第1駆動系ECU51A(又は第2駆動系ECU51B)に出力する指令とする。
具体的には、第1統合ECU50A(又は第2統合ECU50B)は、ジャイロセンサ46や加速度センサ45から送信される信号等に応じて、第1モータ42Aのトルクと負荷トルクとが平衡するようにリーンのトルク制御を行うための、第1モータ42A(又は第2モータ42B)のトルク値を算出し、当該トルク値になるようリーントルク指令として、第1駆動系ECU51A(又は第2駆動系ECU51B)に出力する。リーントルク指令は、路面に対する即応性が高いため、悪路走行や、段差の乗り上げ等に用いられ、車両10の姿勢の制御の際に、乗員M1の乗り心地を向上させる。
2種類の指令のうち他方は、リーン位置指令である。リーン位置指令は、車両10の位置制御で目標とする回転軸41の回転角(回転軸41の位置)にさせるために、第1駆動系ECU51A(又は第2駆動系ECU51B)に出力する指令とする。
具体的には、第1統合ECU50A(又は第2統合ECU50B)は、車両10の姿勢が安定する回転軸41の目標回転角(換言すれば、車両10の重心の位置が車両10の中心にくるような車両10の傾き)を算出し、当該目標回転角になるようにリーン位置指令として、第1駆動系ECU51A(又は第2駆動系ECU51B)に出力する。リーン位置指令は、リーントルク指令と比べて位置応答性が高く、車両10の姿勢を安定させるために適切な車輪20、23の高さに基づく制御が行われるため、車両運転に対して車両姿勢が急変した場合に素早く、右前輪20又は左前輪23を伸ばして姿勢の安定性を向上させる。また、リーン位置指令は、一系統フェールした場合の位置追従性も高い。
また、本実施形態では、このようなリーン制御の他、リアステア制御も行われる。リアステア制御では、主として位置制御が行われ、リアステア位置指令が第1駆動系ECUI51A、第2駆動系ECU51Bのそれぞれに入力される。
本実施形態の第1統合ECU50A、及び第2統合ECU50Bは、リーン位置指令と、リーントルク指令と、を同時に出力する。
第1駆動系ECU51A及び第2駆動系ECU51Bは、車両10の運動状態に応じて、リーン位置指令及びリーントルク指令のうち、いずれか一方の指令を選択し、当該指令に応じたモータ制御を行う。
また、第1駆動系ECU51Aは、回転軸角度センサ47により計測された絶対回転角と、第1電気角センサ44Aにより検出された電気角(回転角)と、により、回転軸41の詳細な回転角である実角を算出し、当該実角に基づいて、第1モータ42Aの制御を行う。
同様に、第2駆動系ECU51Bも、回転軸角度センサ47により計測された絶対回転角と、第2電気角センサ44Bにより検出された電気角と、により、回転軸41の実角を算出し、当該回転角に基づいて、第2モータ42Bの制御を行う。なお、回転軸角度センサ47により計測された絶対回転角は、第1駆動系ECU51Aから取得する。
そして、第1モータ42A、及び第2モータ42Bによる駆動トルクは、ギア501を介して、回転軸41に伝達される。
次に、第1駆動系ECU51Aについて説明する。図6は、第1駆動系ECU51Aの構成例を示したブロック図である。図6に示されるように、第1駆動系ECU51Aは、(図示しない)プロセッサで、不揮発性メモリに格納されているプログラムを実行することで、位置P制御部601Aと、速度PI制御部602と、q軸電流変換部603と、切替部604と、電流PI制御部605と、変調部606と、PWM出力部607と、を実現する。なお、第2駆動系ECU51Bは、第1駆動系ECU51Aと同様の構成を備えているものとして説明を省略する。
本実施形態では、位置P制御部601Aに、リーン位置指令で目標とされる目標回転角が入力され、q軸電流変換部603に、リーントルク指令に基づくトルク値が入力される。
位置P制御部601Aは、回転軸角度センサ47からの絶対回転角と、第1電気角センサ44Aからの電気角と、から現在の回転軸41の実角を導出する。そして、位置P制御部601Aは、回転角41の実角と、リーン位置指令に基づく目標回転角との差分である位置偏差を算出する。位置偏差は、現在の実角から目標回転角になるために必要な回転角であり、回転角制御量と称する場合もある。そして、位置P制御部601Aは、算出された位置偏差に対して、比例制御(P制御)を行うことで、目標となる回転軸41の回転速度を導出し、算出された回転速度を速度指令として速度PI制御部602に出力する。位置P制御部601Aの詳細については後述する。
速度PI制御部602は、位置P制御部601Aにより導出された回転速度である速度指令と、第1電気角センサ44Aから電気角を入力して、電気角から角速度を求め、回転速度と角速度の差分である速度偏差を算出する。そして、速度PI制御部602は、速度偏差に対して比例積分制御(PI制御)を行うことで、第1モータ42Aを駆動させるためのq軸電流指令値を算出する。速度PI制御部602の詳細については後述する。
一方、q軸電流変換部603は、リーントルク指令に基づくトルク値から、第1モータ42Aを駆動させるためのq軸電流指令値を算出する。
切替部604は、車両10の状態に応じて、速度PI制御部602から入力されるq軸電流指令値、及びq軸電流変換部603から入力されるq軸電流指令値のうち、いずれか一つを電流PI制御部605に出力する。
電流PI制御部605は、q軸電流指令値(d軸電流指令値=0となる)に対して、比例積分制御(PI制御)を行う。この電流PI制御605は、その内部に均等トルク制御部を備え、均等トルク制御部により第1モータ42A,第2モータ42Bとで均等にトルクを配分する均等トルク制御を行っている。
図7は、本実施形態における均等トルク制御部の構成の一例を示すブロック図である。均等トルク制御部608は、図7に示すように、切替部604と、他の駆動系ECUである第2駆動系ECU51Bから、それぞれのq軸電流指令を入力する。そして、均等トルク制御部608は、切替部604から入力したq軸電流指令値を、切替部1401に出力するとともに、切替部604から入力したq軸電流指令値と第2駆動系ECU51Bから入力したq軸電流指令値とを加算して乗算器1402により1/2倍した値を、切替部1401に出力する。切替部1401は、この値と、切替部604から入力したq軸電流指令値とを適宜切替えて、q軸電流指令として出力する。第2駆動系ECU51Bでは、他の駆動系ECUとして第1駆動系ECU51Aからq軸電流指令を入力して、同様の処理が行われる。これにより、第1モータ42Aと第2モータ42Bとで均等トルク制御が行われる。なお、電流PI制御部605では、均等トルク制御部608から出力されるq軸電流指令に対して、比例積分制御を行っている。
図6に戻り、変調部606は、比例積分制御(PI制御)が行われた後のq軸電流指令値(d軸電流指令値)に基づいて、パルス幅変調を行う。
PWM出力部607は、変調部606によりパルス幅変調が行われた後のPWM信号を、第1モータ42Aに対して出力する。
次に、第2駆動系ECU51Bについて説明する。図8は、第2駆動系ECU51Bの構成例を示したブロック図である。図8に示されるように、第2駆動系ECU51Bは、(図示しない)プロセッサで、不揮発性メモリに格納されているプログラムを実行することで、位置P制御部601Bと、速度PI制御部602と、q軸電流変換部603と、切替部604と、電流PI制御部605と、変調部606と、PWM出力部607と、を実現する。第2駆動系ECU51Bでは、位置P制御部601Bの構成が第1駆動系ECU51Aと異なっており、その他の構成は第1駆動系ECU51Aと同様であるため、説明を省略する。
位置P制御部601Bは、第1駆動系ECU51Aの位置P制御部601Aから回転軸41の実角を入力し、現在の回転軸41の実角と、リーン位置指令に基づく目標回転角とを差分である位置偏差(回転角制御量)を算出する。そして、位置P制御部601Bは、算出された位置偏差(回転角制御量)に対して比例制御(P制御)を行うことで、目標となる回転軸41の回転速度を導出し、この回転速度を速度指令として速度PI制御部602に出力する。位置P制御部601Bの詳細については後述する。
次に、第1駆動系ECU51Aの位置P制御部601Aの詳細について説明する。図9は、第1駆動系ECU51Aの位置P制御部601Aの構成を示すブロック図である。図9に示すように、第1駆動系ECU51Aは、拡張電気角演算部801と、実角演算部810と、比例要素(Kp)802と、リミッタ803とを備えている。
拡張電気角演算部801は、第1電気角センサ44Aにより検知した第1モータ42Aの電気角を拡張電気角に変換する。第1モータ42Aの回転子が1回転(回転子が回転する角度360度)する間に電気信号は極数の分だけ周期が進むため、実角は電気角の範囲を超えることになる。このため、拡張電気角演算部801は、入力される電気角を、位相を考慮して拡張電気角に変換する。
図10は、本実施形態の電気角と拡張電気角の関係を示す図である。図10において、符号902が電気角θを示し、符号901が拡張電気角θEを示している。図10の符号902に示すように、電気角θは周期毎に0から360度の範囲を繰り返すため、例えば、電気角902が同じ30度でも1周期目の30度と2周期目の30度の場合がある。このため、拡張電気角演算部801は、入力される電気角のこのような周期の違いを電気角で示した拡張電気角θEを算出している。
具体的には、拡張電気角の下位ビットをθEL、拡張電気角の下位ビットをθEUとすると、拡張電気角演算部801は、拡張電気角を以下の(1−1)、(1−2)、(1−3)、(1−4)式で算出する。例えば、電気角θは、レゾルバ信号で0〜4095の値を取る。
θEL=θ ・・・(1−1)
θEU=θEU+1(θt−θt-1<Kcarryのとき) ・・・(1−2)
θEU=θEU−1(θt−θt-1>−Kcarryのとき) ・・・(1−3)
θEL、=θEL+θEL ・・・(1−4)
ここで、Kcarryは2000、3000等の定数であり、リーン制御とリアステア制御とで最大角速度の変化以上の値で異なる値となっている。θtは、時間t時点での第1電気角センサ44Aのレゾルバ値の電気角である。
図9に戻り、実角演算部810は、車両制御装置40の初期動作時において、拡張電気角演算部801により算出された拡張電気角と、回転軸角度センサ47により計測された絶対回転角とから、回転軸41の回転角の詳細な値である実角を算出する。図11は、本実施形態の実角演算部810の構成を示すブロック図である。
実角演算部810は、車両制御装置40の初期動作時において、絶対回転角と拡張電気角とを入力し、絶対回転角を補正部811、補正テーブル812、判断部813、0点学習値814により補正する。なお、かかる補正の詳細については後述する。
そして、実角演算部810は、補正後の絶対回転角から拡張電気角を減算して、その減算値をプリセット値(第1プリセット値)としてメモリ815に保存する。そして、実角演算部810は、車両制御装置40の初期動作時において、メモリ815に保存したプリセット値と、入力された拡張電気角とを加算して実角を算出し、算出された実角と目標回転角との差(位置偏差)を比例要素(Kp)802に出力するとともに、算出された実角を第3canを介して第2駆動系ECU51Bの位置P制御部601Bに送信する。これにより、第1モータ42Aと第2モータ42Bとの間の初期位置を統一し、干渉を低減して、より精度良く実角を算出することができ、位置制御の精度をより向上させることができる。
初期動作後の車両制御装置40の通常動作時においては、実角演算部810には、実角演算部810は入力されず、拡張電気角のみが入力される。この通常動作時には、実角演算部810は、入力された拡張電気角に、メモリ815に保存されている第1プリセット値を加算して実角を算出し、算出された実角を出力する。
図9に戻り、位置P制御部601Aは、入力された位置指令としての目標回転角から、上述のように実角演算部810で算出された実角を減算して位置偏差を求め、この位置偏差に比例要素(Kp)802を乗算することで、比例制御を行う。そして、その後、位置P制御部601Aは、乗算値をリミッタ803で制限値まで制限して回転速度を求め、回転速度を速度指令として出力する。この速度指令(回転速度)は速度PI制御部に入力される。ここで、制限値は、リーン制御、リアステア制御ごとに所定の値に予め定められている。
次に、第2駆動系ECU51Bの位置P制御部601Bの詳細について説明する。図12は、本実施形態にかかる第2駆動系ECU51Bの位置P制御部601Bの構成を示すブロック図である。図12に示すように、第2駆動系ECU51Bは、拡張電気角演算部801と、実角演算810と、メモリ1215と、比例要素(Kp)802と、リミッタ803とを備えている。
本実施形態では、車両制御装置40の初期動作時において、位置P制御部601Bは、第1駆動系ECU51Aの位置P制御部601Aから第3canを介して送信される実角を受信している。このため、位置P制御部601Bは、実角演算部を備えておらず、この点で位置P制御部601Aと異なっている。
位置P制御部601Bは、第2電気角センサ44Bで検知された電気角(第2電気角)を入力し、拡張電気角演算部801が、位置P制御部601Aと同様に、入力された電気角を拡張電気角に変換する。
車両制御装置40の通常動作時においては、位置P制御部601Bは、位置P制御部601Aから受信した実角から、拡張電気角演算部801で演算された拡張電気角を減算して、その減算値をプリセット値(第2プリセット値)としてメモリ1215に保存する。
車両制御装置40の初期動作後の通常動作時においては、位置P制御部601Bは、拡張電気角に、メモリ1215に保存されているプリセット値を加算して実角を算出する。位置P制御部601Bは、入力された位置指令としての目標回転角から、実角を減算して位置偏差を求め、この位置偏差に比例要素(Kp)802を乗算することで、比例制御を行う。そして、その後、位置P制御部601Bは、乗算値をリミッタ803で制限値まで制限して回転速度を求め、回転速度を速度指令として出力する。この速度指令(回転速度)は速度PI制御部に入力される。
このように、初期動作時には、第1駆動系ECU51Aの位置P制御部601Aで算出した実角を第2駆動系ECU51Bの位置P制御部601Bに送信し、初期動作以降は、第1駆動系ECU51A,第2駆動系ECU51Bで互いに独立にモータ制御を行っている。これにより、第1駆動系ECU51Aと第2駆動系ECU51Bの位置情報(絶対回転角)が初期動作時には一致して、スムーズな位置制御、速度制御、トルク制御を行うことができるとともに、初期動作以降は、第1モータ42A,第2モータ42Bに対する制御を均等かつ安定に行いつつ、フェール時の対応をより十分に行うことができる。
次に、第1駆動系ECU51Aの位置P制御部601A内の実角演算部810で実行される絶対回転角の補正について説明する。図11に示す補正値テーブル812は、回転軸角度センサ47で検知された絶対回転角に対する補正値を定めたテーブルである。この補正値が補正後の絶対回転角となる。補正値テーブル812は、HDDやメモリ等の記憶媒体に保存される。
図13は、本実施形態にかかる補正値テーブル812の一例を示す図である。図13に示すように、補正値テーブル812には、絶対回転角に補正値が対応付けて登録されている。
補正値テーブル812における絶対回転角と補正値との一対のデータは、第1モータ42Aの回転子を、MAXから−MAXまでの範囲で5度ごとの角度における絶対回転角と補正値となっている。
補正値テーブル812における絶対回転角は、回転軸角度センサ47で計測された12ビットの絶対回転角を、16ビットにビット拡張されて登録されている。これは、回転軸角度センサ47で計測された12ビットの絶対回転角が第1電気角センサ44Aにより検知される電気角より分解能が低いためである。また、補正値テーブル812における補正値は、電気角に基づいて定められたものである。本実施形態では、補正値として上述の拡張電気角が使用されている。
このように、絶対回転角を、分解能の高い電気角センサで検知される電気角に基づいて補正することにより、絶対回転角の精度を向上させることが可能となる。
また、補正部811は、補正値を修正して補正値テーブル812へ登録するという学習処理を行う。この学習処理は、車両制御装置40の駆動前に事前に一括して行われる。かかる学習処理を一括学習という。一括学習は、具体的には、ユーザが第1モータ42Aの回転子を、+MAXの角度から−MAXの角度まで5度ずつずらしながら、以下の処理を行う。すなわち、第1モータ42Aの回転子を5度ずらし、その時の回転軸角度センサ47で絶対回転角を計測する。この絶対回転角は、補正部811に入力され、補正部811によって16ビットに拡張される。また、第1電気角センサ44Aで電気角を計算して拡張電気角演算部801で拡張電気角を算出する。この拡張電気角は補正部811に入力される。補正部811は、16ビットに拡張された絶対回転角に、拡張電気角を補正値として対応付けて、補正値テーブル812に登録する。これらの処理を、第1モータ42Aの回転子を、+MAXの角度から−MAXの角度まで5度ずつずらすことにより、補正値テーブル812が生成される。
また、このような学習処理を、車両制御装置40の駆動後の通常の動作時に行うように補正部811を構成することができる。ここで、車両制御装置40の動作時に行う学習処理を常時学習という。常時学習では、ユーザは、第1モータ42Aの回転子を、意図的に+MAXの角度から−MAXの角度まで5度ずつずらすことができず、動作状況により回転子の角度が異なってくる。このため、補正値テーブル812の絶対回転角に対してすべての補正値(拡張電気角)が埋まるわけでなく、補正値が未登録の場合もある。
このため、本実施形態では、補正前の絶対回転角と補正後の絶対回転角(すなわち、補正値)の差の絶対値が所定値より大きい場合には、補正値テーブル812の絶対回転角に対する補正値が未登録で異常値が出力された結果、上記差が所定値より大きいと判断し、補正前の絶対回転角を用いる。すなわち、この場合、位置P制御部601Aは、補正前の絶対回転角を用いて実角を算出する。
図14は、本実施形態にかかる補正処理の手順の一例を示すフローチャートである。補正部11は、絶対回転角を入力し(ステップS11)、補正値テーブル812を参照して、絶対回転角に対する補正値を取得し(ステップS12)、補正値を判断部813に出力する。
判断部813は、補正前の絶対回転角と補正値(補正後の絶対回転角)との差分を計算し、差分の絶対値が所定値を超えているか否かを判断する(ステップS13)。そして、差分の絶対値が所定値を超えている場合には(ステップS13:Yes)、補正後の絶対回転角を用いず、補正前の絶対回転角を出力する(ステップS14)。
一方、ステップS13で、差分の絶対値が所定値以下である場合には(ステップS13:No)、補正後の絶対回転角を用い、補正後の絶対回転角を出力する(ステップS15)。
補正部811に補正値の一括学習を行わせるか、常時学習を行わせるかは、予めユーザが所定のユーザインタフェイスから指定することにより決定される。
次に、第1駆動系ECU51Aおよび第2駆動系ECU51Bの速度PI制御部602の詳細について説明する。図15は、本実施形態にかかる速度PI制御部602の構成を示すブロック図である。
速度PI制御部602は、図15に示すように、スケール変換部1301と、比例要素(Kp)1302と、積分器(Σ)1305と、積分要素(Ki)1306と、トルクゲイン1307と、トルクリミッタ1308と、ディテントトルク対応処理部1309とを備えている。
速度PI制御部602は、位置P制御部601A,601Bから速度指令としての回転速度を入力するとともに、第1電気角センサ44Aから第1モータ42Aの電気角、若しくは第2電気角センサ44Bから第2モータ42Bの電気角を入力する。スケール変換部1301は、入力された電気角から第1モータ42A、第2モータ42Bの回転子の回転の角速度を求める。
速度PI制御部602は、速度指令としての回転速度とスケール変換部1301で算出された角速度の差分である速度偏差を求め、この速度偏差に対して比例積分制御を行う。すなわち、速度偏差は比例要素(Kp)1302に入力されて比例要素(Kp)1302と乗算されるとともに、積分器1305に入力されて積分されて積分要素(Ki)1306と乗算される。
速度PI制御部602は、偏差と比例要素(Kp)1302との乗算値と、偏差の積分値と積分要素(Ki)1306との乗算値を加算して、その加算値にトルクゲイン1307を乗算してq軸電流指令とし、q軸電流指令をトルクリミッタ1308で制限値を超えないように制限する。そして、ディテントトルク対応処理がオンの場合には、ディテントトルク対応処理部1309がディテントトルク対応処理を行って、q軸電流指令を出力する。ここで、ディテントトルク対応処理がオフの場合にはディテントトルク対応処理部1309によるディテントトルク対応処理は行われない。
本実施形態では、第1統合ECU50A、第1駆動系ECU51A、第1モータ42Aの第1系統と、第2統合ECU50B、第2駆動系ECU51B、第2モータ42Bの第2系統のいずれもが正常な場合と、いずれかの系統で異常が発生した場合とで、積分要素(Ki)1306の値とディテントトルク対応処理のオンオフを切り替えている。
図16は、本実施形態の速度PI制御における切替え処理の手順の一例を示すフローチャートである。まず、速度PI制御部602は、他の系統で異常が発生しているか否かを判断する(ステップS31)。そして、異常が発生していない場合、すなわち正常時には(ステップS31:No)、速度PI制御部602は、積分要素(Ki)1306を0に設定する(ステップS32)。すなわち、このことは、系統において異常が発生していない場合には、速度PI制御部602は、比例積分制御ではなく、比例制御を行うことを意味する。
このように正常動作時には、速度PI制御部602は、積分要素(Ki)1306を0に設定して比例制御を行うことにより、第1モータ42A、第2モータ42Bの駆動時における積分要素(Ki)1306によるA/D変換および演算量子干渉を回避することができる。
このように、異常が発生していない場合には、積分要素(Ki)1306が0となり比例制御が行われるため、モータディテントトルク付近(位置偏差が0の付近)では、ドライバに制御不感帯が感じられることになり、停止位置での位置制御の精度が低下する。このため、速度PI制御部602は、ディテントトルク対応処理をオンに設定する(ステップS33)。これにより、ディテントトルク対応処理部1309によるディテントトルク対応処理を行うこととし、モータディテントトルク付近(位置偏差が0の付近)でのドライバに制御不感帯が感じられることを防止するとともに、停止位置での位置制御の精度を向上している。
一方、ステップS31において、異常が発生している場合には(ステップS31:Yes)、速度PI制御部602は、積分要素(Ki)1306を0以外の値に設定する(ステップS34)。すなわち、このことは、系統において異常が発生している場合には、速度PI制御部602は、比例積分制御を行うことを意味する。そして、速度PI制御部602は、ディテントトルク対応処理をオフに設定し(ステップS35)、さらにトルクリミッタ1308の制限値(電流制限値)を増加させる(ステップS36)。例えば、速度PI制御部602は、トルクリミッタ1308の制限値を、正常時±40Aから異常時±60Aへ増加する。ただし、この制限値は一例であり、これに限定されるものではない。
ここで、ディテントトルク対応処理部1309によるディテントトルク対応処理について説明する。ディテントトルク対応処理部1309は、トルクリミッタ1308からの出力であるq軸電流指令Trefinを入力する。そして、ディテントトルク対応処理部1309は、入力されたq軸電流指令Trefinの絶対値(トルク値)が所定値以下の小さい値の場合に、q軸電流指令Trefinの絶対値にゲインKtを乗算する補償処理を行って、q軸電流指令Trefoutを出力することにより、ディテントトルク対応処理を行う。すなわち、ディテントトルク対応処理部1309は、|Trefin|が所定値以下の場合に、次の(2)式により、q軸電流指令Trefoutを算出して出力する。
Trefout=|Trefout|*Kt ・・・(2)
ゲインKtは、次の(3)式で算出される。
Kt=(2−2*|Trefin|/Kload) ・・・(3)
ここで、Kloadは、リーン制御、リアステア制御に応じて予め定められた定数である。 ディテントトルク対応処理の実行のたびに、ゲインKtを(3)式で算出して、(2)式でq軸電流指令TrefinにゲインKtを乗算してq軸電流指令Trefoutを算出するように構成しているが、これに限定されるものではない。
例えば、リーン制御とリアステ制御のそれぞれの場合において、q軸電流指令Trefinを複数設定し、このq軸電流指令Trefinの値ごとに、予め(2)式でゲインKt、(2)式でq軸電流指令Trefoutを算出しておき、q軸電流指令Trefinと、q軸電流指令Trefoutとを対応付けたテーブルを作成しておく。そして、ディテントトルク対応処理の実行時に、このテーブルを参照して、入力されたq軸電流指令Trefinに対応するq軸電流指令Trefoutを出力するようにディテントトルク対応処理部1309を構成してもよい。
このように本実施形態では、初期動作時に、第1駆動系ECU51Aの位置P制御部601Aに、回転軸角度センサ47で検知された絶対回転角を入力して、絶対回転角と第1電気角センサ44Aで検知された第1電気角との差分を第1プリセット値としてメモリ815に保持するとともに、実角を第2駆動系ECU51Bの位置P制御部601Bへ送信する。第2駆動系ECU51Bでは第1駆動系ECU51Aから受信した実角と入力される第2電気角との差分を第2プリセット値としてメモリ1215に保持しておく。そして、初期動作以降は、第1駆動系ECU51Aで第1電気角と第1プリセット値により第1モータ42Aを独立に位置制御し、第2駆動系ECU51Bで第2電気角により第2モータ42Bを独立に位置制御する。このため、本実施形態によれば、第1駆動系ECU51Aと第2駆動系ECU51Bの位置情報(絶対回転角)が初期動作時には一致するので、第1モータ42Aと第2モータ42Bとの間の初期位置を統一し、干渉を低減して、より精度良く実角を算出することができ、位置制御の精度をより向上させることができる。これにより、本実施形態によれば、スムーズな位置制御、速度制御、トルク制御を行うことができる。
また、本実施形態によれば、初期動作以降は、第1駆動系ECU51Aと第2駆動系ECU51Bとが独立な位置制御が行われるため、第1モータ42A,第2モータ42Bに対する制御を均等かつ安定に行いつつ、フェール時の対応をより十分に行うことができる。
また、本実施形態では、正常動作時には、速度PI制御部602は、積分要素(Ki)1306を0に設定して比例制御を行っているので、第1モータ42A、第2モータ42Bの駆動時における積分要素(Ki)1306によるA/D変換および演算量子干渉を回避して、位置精度の向上を図ることができる。
また、本実施形態では、正常動作時には、速度PI制御部602のディテントトルク対応処理部1309によるディテントトルク対応処理が行われるので、モータディテントトルク付近(位置偏差が0の付近)でのドライバに制御不感帯が感じられることを防止するとともに、停止位置での位置制御の精度を向上することができる。
また、本実施形態によれば、異常動作時には、速度PI制御部602は、トルクリミッタ1308の制限値を増加させているので、異常時においてもより安全な動作を継続することができる。
また、本実施形態では、第1駆動系ECU51Aの位置P制御部601Aにおいて、絶対回転角を、分解能の高い電気角に基づき補正しているので、回転軸角度センサ47で計測される絶対回転角の精度を補償して、精度をより向上させることができる。
また、本実施形態では、第1駆動系ECU51Aの位置P制御部601Aによる絶対回転角の補正のための補正値の学習処理を、事前に一括して、または、車両制御の駆動時のいずれかに行っているので、適切なタイミングで、補正値の学習処理を行うことができる。
また、本実施形態では、第1駆動系ECU51Aの位置P制御部601Aによる絶対回転角の補正のための補正値の学習処理を、事前に一括して行うか、車両制御の駆動時時に常時行うかを選択可能としているので、初期動作時から高精度で行うか、動作段階における学習時間を不要とするかに応じて学習の方法を適切に選択することができ、これにより補正値の学習時間の短縮化を図ることができる。
また、本実施形態では、補正後の絶対回転角と補正前の絶対回転角の差の絶対値が所定値より大きい場合に、補正後の絶対回転角を用いずに、補正前の絶対回転角を用いているので、補正値の常時学習において、補正値テーブル812に補正値が登録されなかった場合でも、補正値テーブル812における補正値の欄の当該未登録の値を使用せずに、有効な値の補正値のみを選択して、より精度を向上させることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。