以下、本発明の一実施形態を、添付図面を参照して説明する。なお、以下の説明及び図面においては、上述した内容を含めて、同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
[第1実施形態]
まず、本発明の第1実施形態を、図7〜図14を参照して説明する。
<構成>
図7には、一実施形態に係るトラクション制御装置700Aの構成が、ブロック図にて示されている。
図7に示されるように、トラクション制御装置700Aは、移動体MV内に配置される。この移動体MVには、トラクション制御装置700Aに加えて、トルク指令値生成部810、加速度検出部820及びモータ駆動系900が配置され、トラクション制御装置700Aに接続される。
トラクション制御装置700Aは、移動速度取得部710と、回転速度取得部720と、実トルク値取得部730と、制御部740Aとを備えている。
上記の移動速度取得部710は、加速度検出部820から送られた加速度αを受ける。そして、移動速度取得部710は、加速度αの時間積分を行って、移動速度vを取得する。こうして取得された移動速度vは、制御部740Aへ送られる。
上記の回転速度取得部720は、回転位置検出部940から送られた回転位置θを受ける。そして、回転速度取得部720は、回転位置θの時間微分を行って、回転速度ωを取得する。こうして取得された回転速度ωは、制御部740Aへ送られる。
上記の実トルク値取得部730は、電流検出部950から送られた検出電流値IDを受ける。引き続き、実トルク値取得部730は、検出電流値IDに基づいてモータ電流値Imを算出する。なお、モータ電流値Imは、上述したように、検出電流値IDの大きさを示しており、Im=|ID|である.
次に、実トルク値取得部730は、上述した(1)式を利用して実トルク値Tmを算出することにより、実トルク値Tmを取得する。こうして取得された実トルク値Tmは、制御部740Aへ送られる。
上記の制御部740Aは、トルク指令値生成部810から送られたトルク指令値Tcを受ける。そして、制御部740Aは、移動速度v、回転速度ω及び実トルク値Tmに基づいて、トルク設定値Tsを算出する。こうして算出されたトルク設定値Tsは、モータ駆動系900へ送られる。
かかる機能を有する制御部740Aは、図8に示されるように、上述した補正値算出部990(図5参照)と、積分部741とを備えている。また、制御部740Aは、加算部742と、トルク設定値算出部743とを備えている。
なお、補正値算出部990は、比例系フィードバック値Tpを積分部741及び加算部742へ送るようになっている。
また、第1実施形態では、補正値算出部990において採用されるフィードバックゲイン値kpは、乾燥路面の不必要なトルク低下をできるだけ少なくしつつ、凍結路面に入った瞬間の速応性を確保するとの観点から、実験、シミュレーション、経験等に基づいて、予め定められる。
上記の積分部741は、移動速度取得部710から送られた移動速度v、回転速度取得部720から送られた回転速度ω、補正値算出部990から送られた比例系フィードバック値Tp、及び、実トルク値取得部730から送られた実トルク値Tmを受ける。そして、積分部741は、移動速度v、回転速度ω、比例系フィードバック値Tp及び実トルク値Tmに基づいて、積分補償値Tiを算出する。こうして算出された積分補償値Tiは、加算部742へ送られる。
なお、積分部741の構成の詳細については、後述する。
上記の加算部742は、補正値算出部990から送られた比例系フィードバック値Tp、及び、積分部741から送られた積分補償値Tiを受ける。そして、加算部742は、次の(10)式によりフィードバックトルク値Tfを算出し、算出されたフィードバックトルク値Tfをトルク設定値算出部743へ送る。
Tf=Tp+Ti …(10)
上記のトルク設定値算出部743は、減算部751を備えて構成される。このトルク設定値算出部743は、トルク指令値生成部810から送られたトルク指令値Tc、及び、加算部742から送られたフィードバックトルク値Tfを受ける。そして、トルク設定値算出部743は、次の(11)式により、トルク設定値Tsを算出し、算出されたトルク設定値Tsをモータ駆動系900へ送る。
Ts=Tc−Tf …(11)
<積分部741の構成>
次に、上述した積分部741の構成について説明する。
積分部741は、図9に示されるように、スリップ率推定部761と、摩擦係数推定部762とを備えている。また、積分部741は、積分補償部763を備えている。
上記のスリップ推定部761は、移動速度取得部710から送られた移動速度v、及び、回転速度取得部720から送られた回転速度ωを受ける。そして、スリップ推定部761は、上述した(5)式により、スリップ率λを算出することにより、スリップ率推定を行う。こうして算出されたスリップ率λは、積分補償部763へ送られる。
上記の摩擦係数推定部762は、回転速度取得部720から送られた回転速度ω、及び、実トルク値取得部730から送られた実トルク値Tmを受ける。そして、摩擦係数推定部762は、回転速度ω及び実トルク値Tmに基づいて、摩擦係数μを算出することにより、摩擦係数推定を行う。
かかる摩擦係数推定に際して、摩擦係数推定部762は、まず、回転速度ω及び実トルク値Tmに基づいて、上述した(3)式を変形して得られる次の(12)式により駆動トルクTdを算出する。
Td=Tm−Jw・(dω/dt) …(12)
引き続き、摩擦係数推定部762は、算出された駆動トルクTd及び駆動輪の半径rに基づいて、次の(13)式により、駆動力Fdを算出する。
Fd=Td/r …(13)
次に、摩擦係数推定部762は、算出された駆動力Fdに基づいて、上述した(4)式により算出された値に対して、ローパスフィルタ(LPF)によるフィルタリング処理を施して、摩擦係数μを算出する。こうして算出された摩擦係数μは、積分補償部763へ送られる。
なお、第1実施形態では、(4)式における垂直抗力Nとして、移動体MVの重量Mを駆動輪の数で除算した値を採用するようにしている。
上記の積分補償部763は、補正値算出部990から送られた比例系フィードバック値Tp、スリップ率推定部761から送られたスリップ率λ、及び、摩擦係数推定部762から送られた摩擦係数μを受ける。そして、積分補償部763は、比例系フィードバック値Tp、スリップ率λ及び摩擦係数μに基づいて、積分補償値Tiを算出する。
かかる機能を有する積分補償部763は、判断部766と、積分演算部767とを備えている。また、積分補償部763は、積分ゲイン算出部768と、乗算部769とを備えている。
上記の判断部766は、スリップ率推定部761から送られたスリップ率λを受ける。そして、判断部766は、スリップ率λの値に基づいて、「ON」又は「OFF」の2値情報を担う積分イネーブルENを生成する。こうして生成された積分イネーブルENは、積分演算部767へ送られる。
なお、第1実施形態では、判断部766は、積分イネーブルENが「OFF」である状態では、スリップ率λが第1所定値(λTHH)より大きくなったときに、「ON」とする。また、判断部766は、積分イネーブルENが「ON」である状態では、スリップ率λが第2所定値(λTHL<λTHH)より小さくなったときに、「OFF」とする。すなわち、第1実施形態では、判断部766は、スリップ率λの変化に対してヒステリシス特性を有するように、積分イネーブルENの値を変化させるようになっている。
上記の積分演算部767は、補正値算出部990から送られた比例系フィードバック値Tpを受ける。そして、積分演算部767は、積分イネーブルENが「ON」である期間にわたって、比例系フィードバック値Tpの積分演算を行う。また、積分イネーブルENが「OFF」である期間には、比例系フィードバック値Tpの積分演算を中止する。積分演算部767による演算結果TIは、乗算部769へ送られる。
なお、第1実施形態では、積分イネーブルENが「ON」から「OFF」に変化すると、積分値を「0」にクリアするようになっている。
上記の積分ゲイン算出部768は、スリップ率推定部761から送られたスリップ率λ、及び、摩擦係数推定部762から送られた摩擦係数μを受ける。そして、積分ゲイン算出部768は、スリップ率λ及び摩擦係数μに基づいて、次の(14)式により積分ゲイン値kiを算出し、算出された積分ゲイン値kiを乗算部769へ送る。
ki=d・(λ/μ)+e …(14)
なお、定数d,eは、補正値算出部990により算出される比例系フィードバックトルク値Tpのみを利用する比例系フィードバックで残ってしまう残留偏差を少なくするとの観点から、実験、シミュレーション等に基づいて、予め定められる。
上記の乗算部769は、積分演算部767から送られた演算結果TI、及び、積分ゲイン算出部768から送られた積分ゲイン値kiを受ける。そして、乗算部769は、演算結果TI及び積分ゲイン値kiに基づいて、次の(15)式により積分補償値Tiを算出し、算出された積分補償値Tiを加算部742へ送る。
Ti=ki・TI …(15)
<第1実施形態により実現される制御系について>
ここで、第1実施形態のトラクション制御装置700Aにより実現される制御系について説明する。
《従来の制御系》
上述した図5に示される従来の制御系では、移動体MVの駆動輪が粘着モデルの動作に近づくようにトルク設定値Tsが制御されるため、スリップ率λの増加が抑えられる。ここで、モータにより駆動される車両の伝達関数P(s)及び粘着モデルの伝達関数Pn(s)は、次の(16),(17)式により表される。
したがって、従来の制御系におけるトルク指令値Tcからフィードバックトルク値Tfまでの一巡伝達関数Goは、次の(18)式で与えられる。
ここで、値Lは無駄時間であり、値τ1は、トルク設定値Tsから実トルク値Tmまでのトルク応答時間を意味する時定数である。
(18)式から、スリップ率λが小さいとゲインが小さくなり、スリップ率λが大きいとゲインが大きくなることがわかる。このため、滑っている状態が強い、すなわち、スリップ率λが大きいほど、フィードバックトルク値Tfが大きくなり、トルク設定値Tsを低下させる働きが強くなる。
(18)式中のスリップ率λが関係している項を「Gλ」として、スリップ率λが変化した場合のGλ値の変化を、図10に示す。図10(A)から、スリップ率λが大きいほど、Gλ値が大きくなることがわかる。ここで、スリップ率λが「0.8」以上となると、Gλ値が大きく増大し、フィードバック量を多くすることができる。しかしながら、スリップ率λが「0.8」以下の範囲では、Gλ値の変化度合いは小さい。このため、スリップ率λが「0.8」以下の範囲では、スリップを十分に抑制するだけのゲインが得られない場合が起こり得る。
スリップ率λが「0.8」以下の範囲においてスリップを十分に抑制するだけのゲインが得るためには、図10(B)に示されるように、フィードバックゲイン値kpを大きくして、Gλ値をkp倍して、トータルゲインを大きくすれば良いのだが、当然ながらGλ値がスリップ率λの全範囲にわたってkp倍されることになる。このため、安定領域であるスリップ率λが「0.2」以下のトータルゲインも大きくなってしまう。かかる理由によって、上述した図3,4に示されるように、乾燥路面を走行中であり、スリップ率λが小さい場合であってもフィードバック量が多くなり、不必要なトルク低下が生じてしまうのである。
《第1実施形態の制御系》
そこで、第1実施形態では、従来からの比例系フィードバックと、積分補償とを組み合わせてフィードバックトルク値Tfを算出する構成としている。具体的には、フィードバックゲイン値kpを小さな値としつつ、スリップ率λの値から滑りやすい状態と判断した場合には、積分補償を有効にする(すなわち、積分イネーブルENを「ON」とする)。また、スリップ率λの値から滑りにくい状態と判断した場合には、積分補償を無効にする(すなわち、積分イネーブルENを「OFF」とする)。
かかる積分補償を行うことにより、第1実施形態の制御系では、スリップ率λが大きく、駆動輪が滑っている状態と判断した場合は、フィードバックトルク値Tfが大きくなり、十分なスリップ抑制を行うようにしている。また、スリップ率λが小さく、駆動輪が滑っていない状態と判断した場合は、フィードバックトルク値Tfが少なくなって不必要なトルク低下を防止するようにしている。
第1実施形態で実現される制御系を採用した場合におけるアンチスリップ性能についてのシミュレーション結果を、図11に示す。なお、当該シミュレーションの条件は、上述した図3,4の場合と同様である。また、フィードバックゲイン値kpを「0.2」とし、LPF部994の時定数τを「1.0[s]」とし、積分ゲイン値kiを「5.0」とした。
図11に示されるように、乾燥路面におけるトルク設定値Tsは、トルク指令値Tcが「700[Nm]」と大きい値であっても、20[Nm]弱の低下で済んでおり、不必要なトルク低下がほとんど生じてない。また、凍結路面に入ると、迅速にトルク設定値Tsが低下し、スリップ率λの増加を抑制できている。その後、乾燥路面に戻ると、トルク設定値Tsは、トルク指令値Tcに近い値に迅速に復帰している。
上述したように、第1実施形態では、上述した従来からの比例系フィードバックにより、瞬時な路面変化に対応が可能となるような速応性を向上するとともに、積分補償により、比例系フィードバックで残ってしまう残留偏差を少なくするようにしている。かかる比例系フィードバックの役割、及び、積分補償の役割のそれぞれを十分に果たせるように、第1実施形態では、フィードバックゲイン値kp及び積分ゲイン値kiを適宜設定することにより、フィードバックトルク値Tfが適切となるようにしている。
図12(A)は、フィードバックゲイン値kp及び積分ゲイン値kiが適切に設定された場合のシミュレーション結果である。比例系フィードバック値Tpと積分補償値Tiを加算したフィードバックトルク値Tfは、乾燥路面では小さく、かつ、凍結路面では十分な値が算出されている。したがって、乾燥路面での不必要なトルク低下が発生せず、凍結路面での十分なスリップ抑制が行われる。
図12(B)は、積分ゲイン値kiが小さいときはどうなるのかを検証するため、極端な例としてフィードバックゲイン値kpのみ設定し、積分ゲイン値kiを「0」とした場合のシミュレーション結果である。凍結路面でのスリップ率λを抑制するためにフィードバックゲイン値kpを大きくする必要があるため、乾燥路面でのフィードバックトルク値Tfが無視できない大きさで生成されてしまっている。これが、乾燥路面での不必要なトルク低下を生じさせるのである。
図13(A)は、逆に、フィードバックゲイン値kpを小さくし、積分ゲイン値kiを大きくした場合のシミュレーション結果である。比例系フィードバック値Tpが小さいため、トータルのフィードバックトルク値Tfの立ち上がりが鈍化しているのがわかる。その結果、図13(B)に示すように、凍結路面に入った後のスリップ率が一旦大きくなってしまっている。比例系フィードバックは制御の速応性に役立つため、フィードバックゲイン値kpを小さくしすぎることは好ましくないことがわかる。
第1実施形態では、積分補償を行うか否かを、積分イネーブルENを「ON」とするか、「OFF」とするかによって制御している。この場合の制御系の安定性について検討を行った。具体的には、トルク指令値Tcからフィードバックトルク値Tfまでの一巡伝達関数を用いてBode線図を描き、ゲイン余裕と位相余裕とからシステムの安定性を判断するようにした。
なお、積分補償を行わない場合は、上述した(18)式が一巡伝達関数となる。また、積分補償を行う場合には、次の(19)式が一巡伝達関数となる。
図14に、積分補償を行わない場合及び積分補償を行う場合のそれぞれのBode線図を示す。なお、図14では、積分補償を行わない場合が2点鎖線により示され、積分補償を行う場合が実線鎖線により示されている。
図14に示されるように、積分補償を行わない場合及び積分補償を行う場合で、ゲイン特性及び位相特性のどちらも途中からカーブが重なり、ゲイン特性が「0[dB]」を横切る周波数と、位相特性が「−180[deg]」を横切る周波数が一致している。このため、ゲイン余裕及び位相余裕はほぼ同じであり、それぞれ「11.4[dB]」及び「65.4[deg]」であり十分な安定性を保持している。すなわち、積分補償を加えても、システムの安定性は変化しないことが示されている。また、制御帯域を示すゲイン交差周波数も変わらないため、速応性も変化しないことが示されている。その一方で、低域のゲインは十分大きくなっているため、残留偏差を抑圧する能力が高まり、凍結路面でのスリップ率λの上昇を抑制する性能が確保されることが確認できる。
<動作>
次に、上記のように構成されたトラクション制御装置700Aの動作について説明する。
なお、トルク指令値生成部810、加速度検出部820及びモータ駆動系900は、既に動作を開始しており、トルク指令値Tc、加速度α、回転位置θ及び検出電流値IDが、逐次、トラクション制御装置700Aへ送られているものとする(図7参照)。
トラクション制御装置700Aでは、トラクション制御に際して、移動速度取得部710が、加速度検出部820から送られた加速度αの時間積分を行って、移動速度vを取得する。そして、移動速度取得部710は、取得された移動速度vを制御部740Aへ逐次送る(図7参照)。
また、回転速度取得部720が、回転位置検出部940から送られた回転位置θの時間微分を行って、回転速度ωを取得する。そして、回転速度取得部720は、取得された回転速度ωを制御部740Aへ逐次送る(図7参照)。
また、実トルク値取得部730が、電流検出部950から送られた検出電流値IDに基づいて実トルク値Tmを算出することにより、実トルク値Tmの取得を行う。そして、実トルク値取得部730は、取得された実トルク値Tmを制御部740Aへ逐次送る(図7参照)。
制御部740Aでは、補正値算出部990における微分部991が、回転速度ωの時間微分値(dω/dt)を算出する。そして、粘着モデル部992が、当該時間微分値(dω/dt)に基づいて、上述した(7)式により逆算トルク値Tnを算出する(図5参照)。
次に、減算部993が、逆算トルク値Tn及び実トルク値Tmに基づいて、(8)式により差分トルク値Thを算出した後、LPF部994が、差分トルク値Thに対してフィルタリング処理を施してフィルタ後トルク値Tafを算出する。引き続き、乗算部995が、フィードバックゲイン値kpを用い、上述した(9)式により比例系フィードバック値Tpを算出する。そして、乗算部995が、算出された比例系フィードバック値Tpを、積分部741及び加算部742へ送る(図5,8参照)。
なお、補正値算出部990は、上述のようにして算出された実トルク値Tmを、積分部741へ送る(図8参照)。
かかる補正値算出部990による比例系フィードバック値Tpの算出と並行して、制御部740Aでは、積分部741におけるスリップ率推定部761が、移動速度v及び回転速度ωに基づいて、上述した(5)式により、スリップ率λを算出することにより、スリップ率推定を行う。また、摩擦係数推定部762が、回転速度ω及び実トルク値Tmに基づいて、上述した(4),(12),(13)式を適宜利用して、摩擦係数μを算出することにより、摩擦係数推定を行う(図9参照)。
引き続き、積分部741では、積分補償部763が、比例系フィードバック値Tp、スリップ率λ及び摩擦係数μに基づいて、積分補償値Tiを算出する。かかる積分補償値Tiの算出に際して、積分補償部763では、判断部766が、スリップ率λに基づいて、「ON」又は「OFF」の2値情報を担う積分イネーブルENを生成する。そして、積分演算部767が、積分イネーブルENが「ON」である期間にわたって、比例系フィードバック値Tpの積分演算を行う(図9参照)。
また、積分ゲイン算出部768が、スリップ率λ及び摩擦係数μに基づいて、上述した(14)式により積分ゲイン値kiを算出する。そして、乗算部769は、積分演算部767から送られた演算結果TI、及び、積分ゲイン値kiに基づいて、上述した(15)式により積分補償値Tiを算出し、算出された積分補償値Tiを加算部742へ送る(図9参照)。
補正値算出部990から送られた比例系フィードバック値Tp、及び、積分部741から送られた積分補償値Tiを受けると、加算部742が、比例系フィードバック値Tp及び積分補償値Tiに基づいて、上述した(10)式によりフィードバックトルク値Tfを算出する。そして、加算部742は、算出されたフィードバックトルク値Tfをトルク設定値算出部743へ送る(図8,9参照)。
トルク指令値生成部810から送られたトルク指令値Tc、及び、加算部742から送られたフィードバックトルク値Tfを受けると、トルク設定値算出部743は、上述した(11)式により、トルク設定値Tsを算出する。そして、トルク設定値算出部743は、算出されたトルク設定値Tsをモータ駆動系900へ送る(図8参照)。
モータ駆動系900では、トラクション制御装置700Aから送られたトルク設定値Tsに基づいて、トルク設定値Tsに対応する電流をモータ930に供給する(図7参照)。この結果、モータ930は、トルク設定値Tsに対応するトルク値で駆動される。
以上説明したように、第1実施形態では、モータ930によって駆動される駆動輪を有する移動体MVの移動速度v、移動体MVの駆動輪の回転速度ω、及び、モータ930が発生する実トルク値Tmを取得する。引き続き、制御部740Aの補正値算出部990が、各時点の回転速度ω及び実トルク値Tmに基づいて、比例系フィードバック値TPを算出する。
また、制御部740Aの積分部741におけるスリップ率推定部761が、移動速度v及び回転速度ωに基づいてスリップ率λを算出することにより、スリップ率推定を行う。また、積分部741における摩擦係数推定部762が、回転速度ω及び実トルク値Tmに基づいて摩擦係数μを算出することにより、摩擦係数推定を行う。
引き続き、積分部741では、積分補償部763が、比例系フィードバック値Tp、スリップ率λ及び摩擦係数μに基づいて、積分補償値Tiを算出する。かかる積分補償値Tiの算出に際して、積分補償部763では、判断部766が、スリップ率λに基づいて、「ON」又は「OFF」の2値情報を担う積分イネーブルENを生成する。そして、積分演算部767が、積分イネーブルENが「ON」である期間にわたって、比例系フィードバック値Tpの積分演算を行う。
また、積分補償部763では、積分ゲイン算出部768が、スリップ率λ及び摩擦係数μに基づいて、積分ゲイン値kiを算出する。そして、乗算部769は、積分演算部767から送られた演算結果TI、及び、積分ゲイン値kiに基づいて積分補償値Tiを算出し、算出された積分補償値Tiを加算部742へ送る。
次に、加算部742が、比例系フィードバック値Tp及び積分補償値Tiに基づいて、フィードバックトルク値Tfを算出する。そして、加算部742は、算出されたフィードバックトルク値Tfをトルク設定値算出部743へ送る。
次いで、トルク設定値算出部743が、トルク指令値Tc及びフィードバックトルク値Tfに基づいて、トルク設定値Tsを算出する。そして、トルク設定値算出部743は、算出されたトルク設定値Tsをモータ駆動系900へ送る。
すなわち、第1実施形態では、迅速な取得が可能な移動体MVの移動速度v、移動体MVの駆動輪の回転速度ω、及び、モータ930が発生する実トルク値Tmを取得する。そして、比例系フィードバックと、積分補償とを組み合わせてフィードバックトルク値Tfを算出し、算出されたフィードバックトルク値Tfを利用して、トルク設定値Tsを算出する。
したがって、第1実施形態によれば、滑りやすい路面での十分なスリップ抑制の迅速な実現と、滑りにくい路面での不必要なトルク低下防止とを両立することができる。
また、第1実施形態では、積分イネーブルの変化にヒステリシス特性を持たせるようにした。このため、スリップ率の推定結果の微妙な変化による積分イネーブルの頻繁な変化を回避することができる。
[第2実施形態]
次に、本発明の第2実施形態を、図15及び図16を主に参照して説明する。
図15には、第2実施形態に係るトラクション制御装置700Bの構成及び位置付けが示されている。この図15に示されるように、トラクション制御装置700Bは、互いに独立に駆動可能な4つの駆動輪である左前側駆動輪WHFL、右前側駆動輪WHFR、左後側駆動輪WHRL及び右後側駆動輪WHRRの4個の駆動輪を有する移動体MV内に配置される。
移動体MVには、トラクション制御装置700Bに加えて、トルク指令値生成部810、加速度検出部820及びモータ駆動系900FL〜900RRが配置されている。ここで、モータ駆動系900j(j=FL〜RR)のそれぞれは、上述した第1実施形態において説明したモータ駆動系900と同様に構成されている。
すなわち、モータ駆動系900jは、上述した駆動制御部910と同様の機能を有する駆動制御部910jと、上述したインバータ920と同様の機能を有するインバータ920jと、上述したモータ930と同様の機能を有するモータ930jとを備えている。また、モータ駆動系900jは、上述した回転位置検出部940と同様の機能を有する回転位置検出部940jと、上述した電流検出部950と同様の機能を有する電流検出部950jを備えている。
ここで、駆動制御部910jは、トラクション制御装置700Bから送られたトルク設定値CTs,j、回転位置検出部940jにより検出された回転位置θj、及び、電流検出部950jにより検出された検出電流値ID,jに基づいて、駆動電圧を算出する。そして、駆動制御部910jは、算出された駆動電圧を、インバータ920jへ送る。
また、回転位置検出部940jは、モータ930jの回転位置θjを検出する。そして、回転位置検出部940jは、検出された回転位置θjを、トラクション制御装置700B、駆動制御部910j及び電流検出部950jへ送る。
また、電流検出部950jは、モータ930jを流れる電流値を検出する。そして、電流検出部950jは、検出された電流値を、検出電流値ID,jとして、トラクション制御装置700B及び駆動制御部910jへ送る。
なお、トルク指令値生成部810からは、4個の駆動輪WHFL〜WHRRに対応して、トルク指令値Tc,FL〜Tc,RRが、トラクション制御装置700Bへ送られる。
<トラクション制御装置700Bの構成>
図15に示されるように、トラクション制御装置700Bは、上述した第1実施形態のトラクション制御装置700Aと比べて、制御部740Aに代えて制御部740Bを備える点が異なっている。以下、この相違点に主に着目して説明する。
なお、第2実施形態における回転速度取得部720は、回転位置検出部940jから送られた回転位置θjを受ける。そして、回転速度取得部720は、回転位置θの時間微分を行って、回転速度ωjを取得する。こうして取得された回転速度ωjは、制御部740Bへ送られる。
また、第2実施形態における実トルク値取得部730は、電流検出部950jから送られた検出電流値ID,jを受ける。引き続き、実トルク値取得部730は、検出電流値ID,jに基づいてモータ電流値Im,jを算出する。なお、モータ電流値Im jは検出電流値ID,jの大きさを示しており、Im,j=|ID,j|である。
次に、実トルク値取得部730は、上述した(1)式を利用して実トルク値Tm,jを算出することにより、実トルク値Tm,jを取得する。こうして取得された実トルク値Tm,jは、制御部740Bへ送られる。
上記の制御部740Bは、図16に示されるように、個別制御部781FL〜781RRと、共通トルク設定値算出部782とを備えている。
上記の個別制御部781j(j=FL〜RR)のそれぞれは、上述した制御部740Aと同様に構成される。個別制御部781jは、トルク指令値生成部810から送られたトルク指令値Tc,jを受ける。引き続き、個別制御部781jは、移動速度v、回転速度ωj及びモータ電流値Im,jに基づいて、個別トルク設定値Ts,jを算出する。そして、個別制御部781jは、算出された個別トルク設定値Ts,jを共通トルク設定値算出部782へ送る。
なお、個別制御部781jは、トラクション制御を行うべき旨が指定されていない場合には、トルク指令値Tc,jを、個別トルク設定値Ts,jとして、共通トルク設定値算出部782へ送るようになっている。
上記の共通トルク設定値算出部782は、個別制御部781jから送られた個別トルク設定値Ts,jを受ける。そして、共通トルク設定値算出部782は、トラクション制御を行うべき旨が指定されていない場合には、個別トルク設定値Ts,jを、トルク設定値CTs,jとしてモータ駆動系900jへ送る。この結果、トラクション制御を行うべき旨が指定されていない場合には、トルク指令値Tc,jが、トルク設定値CTs,jとしてモータ駆動系900jへ送られることになる。
一方、トラクション制御を行うべき旨が指定されている場合には、共通トルク設定値算出部782は、個別トルク設定値Ts,FL〜Ts,RRのうちの最小値を抽出する。引き続き、共通トルク設定値算出部782は、トルク設定値CTs,FL〜CTs,RRの全てを、抽出された最小値Ts,minに設定する。共通トルク設定値算出部782は、最小値Ts,minに設定されたトルク設定値CTs,jをモータ駆動系900jへ送る。
<動作>
次に、上記のように構成されたトラクション制御装置700Bの動作について、トラクション制御を行うべき旨が指定されている場合の制御部740Bにおけるトラクション制御モード処理に主に着目して説明する。
なお、トルク指令値生成部810、加速度検出部820及びモータ駆動系900jは、既に動作を開始しており、トルク指令値Tc,j、加速度α、回転位置θj及び検出電流値ID,jが、逐次、トラクション制御装置700Bへ送られているものとする(図15参照)。
トラクション制御装置700Bでは、移動速度取得部710が、加速度検出部820から送られた加速度αの時間積分を行って、移動速度vを取得する。そして、移動速度取得部710は、取得された移動速度vを制御部740Bへ逐次送る(図15参照)。
また、回転速度取得部720が、回転位置検出部940jから送られた回転位置θjの時間微分を行って、回転速度ωjを取得する。そして、回転速度取得部720は、取得された回転速度ωjを制御部740Bへ逐次送る(図15参照)。
また、実トルク値取得部730が、電流検出部950jから送られた検出電流値ID,jに基づいて実トルク値Tm,jを算出することにより、実トルク値Tm,jの取得を行う。そして、実トルク値取得部730は、取得された実トルク値Tm,jを制御部740Bへ逐次送る(図15参照)。
<トラクション制御モード処理>
トラクション制御モード処理では、制御部740Bにおいて、個別制御部781jが、上述した制御部740Aと同様の処理を行って、個別トルク設定値Ts,jを算出する。そして、個別制御部781jは、算出された個別トルク設定値Ts,jを共通トルク設定値算出部782へ送る。
個別制御部781FL〜781RRから送られた個別トルク設定値Ts,FL〜Ts,RRを受けると、共通トルク設定値算出部782は、個別トルク設定値Ts,FL〜Ts,RRのうちの最小値を抽出する。引き続き、共通トルク設定値算出部782は、トルク設定値CTs,FL〜CTs,RRの全てを、抽出された最小値Ts,minに設定する。そして、共通トルク設定値算出部782は、最小値Ts,minに設定されたトルク設定値CTs,jをモータ駆動系900jへ送る。
<非トラクション制御モード処理>
非トラクション制御モード処理では、制御部740Bにおいて、個別制御部781jが、トルク指令値Tc,jをそのまま、個別トルク設定値Ts,jとする。そして、個別制御部781jは、個別トルク設定値Ts,j(=Tc,j)を共通トルク設定値算出部782へ送る。
個別制御部781FL〜781RRから送られた個別トルク設定値Ts,FL〜Ts,RRを受けると、共通トルク設定値算出部782は、個別トルク設定値Ts,FL〜Ts,RRをそのままトルク設定値CTs,FL〜CTs,RRとする。
個別制御部781FL〜781RRから送られた個別トルク設定値Ts,FL〜Ts,RRを受けると、
共通トルク設定値算出部782は、個別トルク設定値Ts,jをそのまま、トルク設定値CTs,jとしてモータ駆動系900jへ送る。この結果、モータ駆動系900jへは、トルク指令値Tc,jが、そのまま送られる。
モータ駆動系900jでは、トラクション制御装置700Bから送られたトルク設定値CTs,jに基づいて、トルク設定値CTs,jに対応する電流をモータ930jに供給する。この結果、モータ930jは、トルク設定値CTs,jに対応する実トルク値で駆動される。
以上説明したように、第2実施形態によれば、上述した第1実施形態の場合と同様に、必要な駆動力を確保しつつ安定な走行のための制御を、路面状態の変化に応じて迅速に実現することができる。
また、第2実施形態では、複数の駆動輪のそれぞれについて算出された個別設定トルク値の中の最小値を、複数の駆動輪の全てのトルク指令値とする。この場合には、複数の駆動輪間におけるトルク設定値の差を抑制できるので、安定な走行を確保することができる。例えば、道路の左側のみ凍結しているような路面を走行する場合に、左側の駆動輪を対象として算出したトルク設定値が右側の駆動輪にも適応されるため、左右トルクのアンバランスが回避され、移動体の向きが変化することを防止できる。
[実施形態の変形]
本発明は、上記の実施形態に限定されるものではなく、様々な変形が可能である。
例えば、上記の第1及び第2実施形態では、移動速度の取得に際して加速度センサを利用するようにしたが、光学式対地センサを利用するようにしてもよい。
また、上記の第1及び第2実施形態では、モータの実トルク値Tmを(1)式から求めたが、Tsにトルク応答特性を乗じる次の(20)式により、実トルク値Tmを算出するようにしてもよい。
Tm=Ts・(1/(τ1・s+1)) …(20)
ここで、値τ1は、トルク応答の時定数である。
また、上記の第1及び第2実施形態では、移動体MVの重量Mを駆動輪の数で除算した値を、垂直抗力Nとして採用するようにした。これに対し、駆動輪の荷重を検出する荷重センサを配置するようにし、当該荷重センサによる検出結果を、垂直抗力Nとして採用するようにしてもよい。
また、上記の第1及び第2実施形態では、積分ゲイン値を、スリップ率及び摩擦係数の推定結果に対して適応的に算出するようにした。これに対し、積分ゲイン値を、比例系フィードバックで残ってしまう残留偏差を少なくするとの観点から、実験、シミュレーション等に基づいて予め定められた固定値としてもよい。
また、上記の第1及び第2実施形態では、スリップ率の推定値に基づいて積分イネーブルを「ON」から「OFF」へ変化させるようにした。これに対し、摩擦係数の推定値に基づいて積分イネーブルを「ON」から「OFF」へ変化させるようにしてもよい。
また、上記の第1及び第2実施形態では、スリップ率の推定値に基づいて積分イネーブルを「OFF」から「ON」へ変化させるようにした。これに対し、実トルク値の変化に対する回転速度の変化の割合と摩擦係数の推定値とに基づいて、積分イネーブルの値を変化させるようにしてもよい。この場合には、実トルク値の変化に対する回転速度の変化の割合が所定変化割合値以上で、かつ摩擦係数の推定値が所定摩擦係数値以下となった場合に、積分イネーブルを「ON」とし、積分補償を行うようにすればよい。
また、上記の第1及び第2実施形態では、積分イネーブルENが「ON」から「OFF」に変化すると、積分値を「0」にクリアするようにした。これに対し、積分イネーブルENが「ON」から「OFF」に変化した場合には、「OFF」の期間にわたって出力値を「0」とするが、積分演算を継続するようにしてもよい。
なお、上記の実施形態のトラクション制御装置を、中央処理装置(CPU:Central Processing Unit)、DSP(Digital Signal Processor)等を備えた演算手段としてのコンピュータとして構成し、予め用意されたプログラムを当該コンピュータで実行することにより、上記の実施形態のトラクション制御装置の機能の一部又は全部を実行するようにしてもよい。このプログラムはハードディスク、CD−ROM、DVD等のコンピュータで読み取り可能な記録媒体に記録され、当該コンピュータによって記録媒体からロードされて実行される。また、このプログラムは、CD−ROM、DVD等の可搬型記録媒体に記録された形態で取得されるようにしてもよいし、インターネットなどのネットワークを介した配信の形態で取得されるようにしてもよい。
次に、本発明の一実施例を、図17〜図20を主に参照して説明する。なお、以下の説明においては、上述した実施形態を含めて、同一又は同等の要素には同一の符号を付し、重複する説明を極力省略する。
[構成]
図17には、一実施例に係るトラクション制御装置100の構成が概略的に示されている。このトラクション制御装置100は、上述した第2実施形態に係るトラクション制御装置700Bの一態様となっている。
図17に示されるように、トラクション制御装置100は、移動体MVとしての車両CR内に配置される。なお、車両CRは、互いに独立に駆動可能な4つの駆動輪である左前側駆動輪WHFL、右前側駆動輪WHFR、左後側駆動輪WHRL及び右後側駆動輪WHRRの4個の駆動輪を備えている。
車両CRには、トラクション制御装置100に加えて、トルク指令値生成部810、加速度検出部820及びモータ駆動系900FL〜900RRが配置されている。ここで、モータ駆動系900j(j=FL〜RR)のそれぞれは、上述した第2実施形態において説明したモータ駆動系900jと同様に構成されている。
<トラクション制御装置100の構成>
トラクション制御装置100は、制御ユニット110と、記憶ユニット120とを備えている。
上記の制御ユニット110は、演算手段としての中央処理装置(CPU)、DSP(Digital Signal Processor)を備えて構成される。この制御ユニット110は、プログラムを実行することにより、上述した第2実施形態における移動速度取得部710、回転速度取得部720、実トルク値取得部730及び制御部740Bとしての機能を果たすようになっている。
制御ユニット110が実行するプログラムは、記憶ユニット120に記憶され、記録ユニットからロードされて実行される。このプログラムは、CD−ROM、DVD等の可搬型記録媒体に記録された形態で取得されるようにしてもよいし、インターネットなどのネットワークを介した配信の形態で取得されるようにしてもよい。
なお、制御ユニット110が実行する処理については、後述する。
上記の記憶ユニット120には、制御ユニット110が利用する様々な情報データが記憶される。こうした情報データには、制御ユニット110が実行するプログラムが含まれている。この記憶ユニット120には、制御ユニット110がアクセスできるようになっている。
<駆動制御部910j及び電流検出部950jの構成>
ここで、本実施例の駆動制御部910j及び電流検出部950jについて、図18を参照して、より詳しく説明する。なお、本実施例では、モータ930jは、3相モータとなっている。
まず、駆動制御部910jについて説明する。この駆動制御部910jは、ベクトル制御により、モータ930jの駆動を制御する。かかる機能を有する駆動制御部910jは、電流指令値生成部911と、減算部912d,912qと、比例及び積分(PI)演算部913d,913qとを備えている。また、駆動制御部910jは、座標変換部914と、パルス幅変調(PWM)部915とを備えている。
上記の電流指令値生成部911は、トラクション制御装置100から送られたトルク設定値CTs,jを受ける。そして、電流指令値生成部911は、トルク設定値CTs,jのモータトルクを発生させるべく、d軸電流指令値Id,j *及びq軸電流指令値Iq,j *を生成する。こうして生成されたd軸電流指令値Id,j *は、減算部912dへ送られるとともに、q軸電流指令値Iq,j *は、減算部912qへ送られる
上記の減算部912dは、電流指令値生成部911から送られたd軸電流指令値Id,j *を受ける。そして、減算部912dは、電流検出部950jから送られたd軸検出電流値Id,jを、d軸電流指令値Id,j *から差し引く。減算部912dによる減算結果は、PI演算部913dへ送られる。
上記の減算部912qは、電流指令値生成部911から送られたq軸電流指令値Iq,j *を受ける。そして、減算部912qは、電流検出部950jから送られたq軸検出電流値Iq,jを、q軸電流指令値Iq,j *から差し引く。減算部912qによる減算結果は、PI演算部913qへ送られる。
上記のPI演算部913dは、減算部912dから送られた減算結果を受ける。そして、PI演算部913dは、当該減算結果に基づいて比例及び積分演算を行い、d軸電圧指令値Vd,j *を算出する。PI演算部913dにより算出されたd軸電圧指令値Vd,j *は、座標変換部914へ送られる。
上記のPI演算部913qは、減算部912qから送られた減算結果を受ける。そして、PI演算部913qは、当該減算結果に基づいて比例及び積分演算を行い、q軸電圧指令値Vq,j *を算出する。PI演算部913qにより算出されたq軸電圧指令値Vq,j *は、座標変換部914へ送られる。
上記の座標変換部914は、PI演算部913dから送られたd軸電圧指令値Vd,j *、及び、PI演算部913qから送られたq軸電圧指令値Vq,j *を受ける。そして、座標変換部914は、回転位置検出部940jから送られた回転位置θjを参照して、d軸電圧指令値Vd,j *及びq軸電圧指令値Vq,j *に対して座標変換を施して、u軸制御電圧値Vu,j *、v軸制御電圧値Vv,j *及びw軸制御電圧値Vw,j *を算出する。座標変換部914による算出結果は、PWM部915へ送られる。
上記のPWM部915は、座標変換部914から送られた3相制御電圧を受ける。そして、PWM部915は、当該3相制御電圧に対してパルス幅変調を施して、3相PWM信号を生成する。こうして生成された3相PWM信号は、インバータ920jへ送られる。
次いで、電流検出部950jについて説明する。この電流検出部950jは、電流検出器951と、座標変換部952とを備えている。
上記の電流検出器951は、モータ930jを流れるu軸電流値及びv軸電流値を検出する。そして、電流検出器951は、検出結果を、u軸検出電流値Iu,j及びv軸検出電流値Iv,jとして、座標変換部952へ送る。なお、w軸電流値(Iw,j)を検出してもよいが、「Iu,j+Iv,j+Iw,j=0」との関係が成立しているため、w軸電流値(Iw,j)を検出しなくても済む。
上記の座標変換部952は、電流検出器951から送られたu軸検出電流値Iu,j及びv軸検出電流値Iv,jを受ける。そして、座標変換部952は、回転位置検出部940jから送られた回転位置θjを参照して、u軸検出電流値Iu,j及びv軸検出電流値Iv,jに対して座標変換を施して、d軸検出電流値Id,j及びq軸検出電流値Iq,jを算出する。座標変換部952による算出結果は、検出電流値ID,jとして、トラクション制御装置100及び駆動制御部910jへ送られる。
なお、ID,jの大きさ|ID,j|は、次の(21)式により算出される。
|ID,j|=(Id,j 2+Iq,j 2)1/2 …(21)
[動作]
次に、上記のように構成されたトラクション制御装置100によるトラクション制御の動作について、制御ユニット110による処理に着目して説明する。
なお、トルク指令値生成部810、加速度検出部820及びモータ駆動系900jは、既に動作を開始しており、トルク指令値Tc,j、加速度α、回転位置θj及び検出電流値ID,jが、逐次、トラクション制御装置100へ送られているものとする(図17参照)。
トラクション制御は、不図示の入力部を介して、利用者がトラクション制御の開始指令を入力することにより、開始される。かかるトラクション制御に際しては、図19に示されるように、まず、ステップS11において、制御ユニット110が、当該入力部を介して、トラクション制御の中止指令を受けたか否かを判定する。ステップS11における判定の結果が否定的であった場合(ステップS11:N)には、処理はステップS12へ進む。
ステップS12では、制御ユニット110が、4個の駆動輪WHFL〜WHRRのそれぞれに対応する比例系フィードバック値Tp,FL〜Tp,RRを算出する。引き続き、制御ユニット110は、比例系フィードバック値Tp,FL〜Tp,RRに基づいて、積分補償値Ti,FL〜Ti,RRを算出する。なお、ステップS12における積分補償値Ti,FL〜Ti,RRの算出処理については、後述する。
次に、ステップS13において、制御ユニット110が、4個の駆動輪WHFL〜WHRRのそれぞれに対応するフィードバックトルク値Tf,FL〜Tf,RRを算出する。かかるフィードバックトルク値Tf,FL〜Tf,RRの算出に際して、制御ユニット110は、上述した(10)式によりフィードバックトルク値Tfを算出する。
次いで、ステップS14において、制御ユニット110が、トルク指令値Tc,FL〜Tc,RR及びフィードバックトルク値Tf,FL〜Tf,RRに基づいて、上述した(11)式により、個別トルク設定値Ts,FL〜Ts,RRを算出する。引き続き、ステップS15において、制御ユニット110が、個別トルク設定値Ts,FL〜Ts,RRのうちの最小値を抽出する。
次に、ステップS16において、制御ユニット110が、トルク設定値CTs,FL〜CTs,RRの全てを、抽出された最小値Ts,minに設定する。そして、制御ユニット110は、最小値Ts,minに設定されたトルク設定値CTs,jをモータ駆動系900jへ逐次出力する(図17参照)。
ステップS16の処理が終了すると、処理はステップS11へ戻る。以後、ステップS11における判定の結果が肯定的となるまで、ステップS11〜S16の処理が繰り返される。
トラクション制御の中止指令を受け、ステップS11における判定の結果が肯定的となると(ステップS11:Y)、処理はステップS17へ進む。このステップS17では、制御ユニット110が、積分イネーブルENFL〜ENRRの全てを「OFF」する。
次に、ステップS18において、制御ユニット110が、積分演算の演算結果(以下、「積分値」ともいう)TI,FL〜TI,RRの全てをクリアする。引き続き、ステップS19において、フィードバックトルク値Tf,FL〜Tf,RRの全てをクリアする。そして、トラクション制御処理が終了する。この結果、トルク指令値Tc,jが、トルク設定値CTs,jとして、モータ駆動系900jへ出力されるようになる。
<積分補償値Ti,FL〜Ti,RRの算出処理>
次に、ステップS12における積分補償値Ti,FL〜Ti,RRの算出処理について説明する。
積分補償値Ti,jの算出処理に際しては、図20に示されるように、まず、ステップS21において、制御ユニット110が、加速度α、回転位置θj及び検出電流値ID,jを取得する。そして、制御ユニット110は、加速度αの時間積分を行って車速(移動速度)vを取得し、回転位置θjの時間微分を行って回転速度ωjを取得するとともに、検出電流値ID,jに基づいて実トルク値Tm,jを取得する。なお、モータ電流値Im jは検出電流値ID jの大きさを示しており、Im,j=|ID,j|である。
次に、ステップS22において、制御ユニット110が、車速v及び回転速度ωjに基づき、上述した(5)式により、スリップ率λjを算出することにより、スリップ率推定を行う。引き続き、ステップS23において、制御ユニット110が、回転速度ωj及び実トルク値Tm,jに基づき、上述した(1),(4),(12),(13)式を適宜利用して、摩擦係数μjを算出することにより、摩擦係数推定を行う。
次いで、ステップS24において、制御ユニット110は、スリップ率λjが第1所定値λTHHより大きいか否かを判定する。ステップS24における判定の結果が肯定的であった場合(ステップS24:Y)には、処理はステップS25へ進む。
ステップS25では、制御ユニット110が、積分イネーブルENjを「ON」に設定する。そして、処理は、後述するステップS28へ進む。
上述したステップS24における判定の結果が否定的であった場合(ステップS24:N)には、処理はステップS26へ進む。このステップS26では、制御ユニット110が、スリップ率λjが第2所定値λTHLより小さいか否かを判定する。ステップS26における判定の結果が否定的であった場合(ステップS26:N)には、処理はステップS28へ進む。
一方、ステップS26における判定の結果が肯定的であった場合(ステップS26:Y)には、処理はステップS27へ進む。このステップS27では、制御ユニット110が、積分イネーブルENjを「OFF」に設定する。そして、処理はステップS28へ進む。
ステップS28では、制御ユニット110は、積分イネーブルENjが「ON」であるか否かを判定する。ステップS28における判定の結果が肯定的であった場合(ステップS28:Y)には、処理はステップS29へ進む。
ステップS29では、制御ユニット110が、比例系フィードバック値Tpに対する積分を行い、積分値TI,jを更新する。そして、処理は後述するステップS31へ進む。
ステップS28における判定の結果が否定的であった場合(ステップS28:N)には、処理はステップS30へ進む。このステップS30では、制御ユニット110が、積分値TI,jをクリアする。そして、処理はステップS31へ進む。
ステップS31では、制御ユニット110が、スリップλj及び摩擦係数μjに基づいて、上述した(14)式を利用して積分ゲイン値ki,jを算出する。引き続き、ステップS32において、制御ユニット110が、積分値TI,j及び積分ゲイン値ki,jに基づいて、上述した(15)式を利用して積分補償値Tiを算出する。
ステップS32の処理が終了すると、ステップS12の処理が終了する。そして、処理は、図19のスッテプS13へ進む。
以上説明したように、本実施例では、モータ930jによって駆動される駆動輪を有する車両CRの車速v、車両CRの駆動輪の回転速度ωj、及び、モータ930jが発生する実トルク値Tm,jを取得する。ここで、車速v、回転速度ωj及び実トルク値Tm,jは、迅速な取得が可能である。
また、制御ユニット110が、車速v及び回転速度ωjに基づいてスリップ率λjを算出することによりスリップ率推定を行うとともに、回転速度ωj及び実トルク値Tm,jに基づいて摩擦係数μjを算出することにより摩擦係数推定を行う。制御ユニット110が、比例系フィードバック値Tp,j、スリップ率λj及び摩擦係数μjに基づいて、積分補償値Ti,jを算出する。かかる積分補償値Ti,jの算出に際して、制御ユニット110は、スリップ率λjに基づいて、「ON」又は「OFF」の2値情報を担う積分イネーブルENを生成する。そして、制御ユニット110が、積分イネーブルENが「ON」である期間にわたって、比例系フィードバック値Tp,jの積分演算を行う。
また、制御ユニット110が、スリップ率λj及び摩擦係数μjに基づいて、積分ゲイン値ki,jを算出する。そして、制御ユニット110は、積分値TI,j及び積分ゲイン値ki,jに基づいて積分補償値Ti,jを算出する。
次に、制御ユニット110が、比例系フィードバック値Tp,j及び積分補償値Ti,jに基づいて、フィードバックトルク値Tf,jを算出する。引き続き、制御ユニット110が、トルク指令値Tc,j及びフィードバックトルク値Tf,jに基づいて、個別トルク設定値Ts,jを算出する。そして、制御ユニット110は、算出された個別トルク設定値Ts,jに基づいて得られるトルク設定値CTs,jをモータ駆動系900jへ送る。
すなわち、本実施例では、迅速な取得が可能な車両CRの車速v、車両CRの駆動輪の回転速度ωj、及び、モータ930jが発生する実トルク値Tm,jを取得する。そして、比例系フィードバックと、積分補償とを組み合わせてフィードバックトルク値Tf,jを算出し、算出されたフィードバックトルク値Tf,jを利用して、個別トルク設定値Ts,jを算出する。
したがって、本実施例によれば、滑りやすい路面での十分なスリップ抑制の迅速な実現と、滑りにくい路面での不必要なトルク低下防止とを両立することができる。
また、本実施例では、積分イネーブルENjの変化にヒステリシス特性を持たせるようにした。このため、スリップ率λjの推定結果の微妙な変化による積分イネーブルENjの頻繁な変化を回避することができる。
また、本実施例では、複数の駆動輪のそれぞれについて算出された個別トルク設定値Ts,jの中の最小値を、複数の駆動輪の全てのトルク設定値CTs,jとする。この場合には、複数の駆動輪間におけるトルク設定値の差を抑制できるので、安定な走行を確保することができる。例えば、道路の左側のみ凍結しているような路面を走行する場合に、左側の駆動輪を対象として算出したトルク設定値が右側の駆動輪にも適応されるため、左右トルクのアンバランスが回避され、車体の向きが変化することを防止できる。
[実施例の変形]
本発明は、上記の実施例に限定されるものではなく、様々な変形が可能である。
例えば、上記の実施例では、車速の取得に際して加速度センサを利用するようにしたが、光学式対地センサを利用するようにしてもよい。
また、図18で説明したように、d軸検出電流値Id,j及びq軸検出電流値Iq,jは、それぞれd軸電流指令値Id,j *及びq軸電流指令値Iq,j *と同じになるように制御が行われる。したがって、PI演算とモータ特性とによる応答時間の遅れがあるが、結果として実トルク値Tmは、トルク設定値CTs,jと等しくなるように制御される。このため、上記の実施例では、モータの実トルク値Tm,jを(1)式から求めたが、トルク設定値CTs,jにトルク応答特性を乗じる次の(22)式により、実トルク値Tm,jを算出するようにしてもよい。
Tm,j=CTs,j・(1/(τ1・s+1)) …(22)
ここで、値τ1は、トルク応答の時定数である。
また、上記の実施例では、車両MVの重量Mを駆動輪の数で除算した値を、垂直抗力Nとして採用するようにした。これに対し、駆動輪の荷重を検出する荷重センサを配置するようにし、当該荷重センサによる検出結果を、垂直抗力Nとして採用するようにしてもよい。
また、上記の実施例では、積分ゲイン値を、スリップ率及び摩擦係数の推定結果に対して適応的に算出するようにした。これに対し、積分ゲイン値を、比例系フィードバックで残ってしまう残留偏差を少なくするとの観点から、実験、シミュレーション等に基づいて予め定められた固定値としてもよい。
また、上記の実施例では、スリップ率の推定値に基づいて積分イネーブルを「ON」から「OFF」へ変化させるようにした。これに対し、摩擦係数の推定値に基づいて積分イネーブルを「ON」から「OFF」へ変化させるようにしてもよい。
また、上記の実施例では、スリップ率の推定値に基づいて積分イネーブルを「OFF」から「ON」へ変化させるようにした。これに対し、実トルク値の変化に対する回転速度の変化の割合と摩擦係数の推定値とに基づいて、積分イネーブルの値を変化させるようにしてもよい。この場合には、実トルク値の変化に対する回転速度の変化の割合が所定変化割合値以上で、かつ摩擦係数の推定値が所定摩擦係数値以下となった場合に、積分イネーブルを「ON」とし、積分補償を行うようにすればよい。
また、上記の実施例では、積分イネーブルENが「ON」から「OFF」に変化すると、積分値を「0」にクリアするようにした。これに対し、積分イネーブルENが「ON」から「OFF」に変化した場合には、「OFF」の期間にわたって出力値を「0」とするが、積分演算を継続するようにしてもよい。