本発明は、操舵可能な限界となる操舵終端に対応する角度(以下、「終端角度」とする)に操舵角が達する前に、具体的には操舵角が終端角度近傍に設定される閾値を超えた場合に、反力アクチュエータが生成する反力を上昇させるための目標操舵トルクとなるトルク信号の特性を、舵角速度に応じて変更する。即ち、本発明では、トルク信号を大きくする割合を舵角速度に応じて変更したり(以下、本機能を「増加率変更機能」とする)、閾値の大きさ(絶対値)を舵角速度に応じて変更したり(以下、本機能を「閾値変更機能」とする)、操舵角に追従して閾値を変動させ、その変動する量を舵角速度に応じて変更したり(以下、本機能を「追従量変更機能」とする)して算出されるトルク信号に基づいて反力を上昇させる。これにより、必要に応じて適切な反力が生成され、モータの消費電力の増加やモータの温度の上昇を抑制することができる。上記各機能は目標操舵トルク生成部内の弾性項生成部に実装される。
以下に、本発明の実施の形態を、図面を参照して説明する。
まず、本発明に係る制御装置を備えるSBWシステムの構成例について説明する。
図1はSBWシステムの構成例を示した図である。SBWシステムは、運転者が操作するハンドルを有する操舵機構を構成する反力装置30、転舵輪を転舵する転舵機構を構成する転舵装置40、及び両装置の制御を行う制御装置50を備える。SBWシステムには、一般的な電動パワーステアリング装置が備える、コラム軸(ステアリングシャフト、ハンドル軸)2と機械的に結合されるインターミディエイトシャフトがなく、運転者によるハンドル1の操作を電気信号によって、具体的には反力装置30から出力される操舵角θhを電気信号として伝える。
反力装置30は、反力用モータ31及び反力用モータ31の回転速度を減速する減速機構32を備え、転舵輪5L,5Rから伝わる車両の運動状態を、反力用モータ31により生成される反力(トルク)として運転者に伝達する。反力装置30は、コラム軸2に設けられる舵角センサ33及び角度センサ34を更に備えている。コラム軸2への舵角センサ33及び角度センサ34の配設は、具体的には図2のようになっている。即ち、舵角センサ33はコラム軸2の上部に設けられ、操舵角θhを検出する。コラム軸2にはトーションバー2Aが介挿されており、角度センサ34として、トーションバー2Aを挟んでコラム軸2のハンドル1側に上側角度センサ34Aが設けられ、トーションバー2Aを挟んでコラム軸2のハンドル1の反対側に下側角度センサ34Bが設けられており、上側角度センサ34Aはハンドル角θ1を検出し、下側角度センサ34Bはコラム角θ2を検出する。ハンドル角θ1及びコラム角θ2は捩れ角演算部36に入力され、捩れ角演算部36は下記数1によってトーションバーの捩れ角Δθを求める。
なお、磁歪式や光学式等の公知のセンサを用いて、捩れ角Δθを直接求めても良い。
コラム軸2は、操舵可能な限界となる操舵終端を物理的に設定するストッパ35を備える。操舵終端まで操舵したときの操舵角θhが終端角度であり、操舵角θhの大きさの限界値となる。ストッパ35として、例えば特許文献1に記載の回転制限機構等を使用する。なお、反力アクチュエータは反力用モータ31、減速機構32等により構成されるが、反力用モータ31のみを反力アクチュエータと呼ぶこともある。
転舵装置40は、転舵用モータ41、転舵用モータ41の回転速度を減速する減速機構42及び回転運動を直線運動に変換するピニオンラック機構44を備える。操舵角θhの変化に合わせて、転舵用モータ41を駆動し、その駆動力を、減速機構42を介してピニオンラック機構44に付与し、タイロッド3a,3bを経て、転舵輪5L,5Rを転舵する。ピニオンラック機構44の近傍には角度センサ43が配置されており、転舵輪5L,5Rの転舵角θtを検出する。転舵角θtとして、転舵用モータ41のモータ角やラックの位置等を使用しても良い。
制御装置50は、反力装置30及び転舵装置40を協調制御するために、両装置から出力される操舵角θhや転舵角θt等の情報に加え、車速センサ10で検出される車速Vs等を基に、反力用モータ31を駆動制御するための電圧制御指令値Vref1及び転舵用モータ41を駆動制御するための電圧制御指令値Vref2を生成する。制御装置50には、バッテリ12から電力が供給されると共に、イグニションキー11を経てイグニションキー信号が入力される。また、制御装置50には、車両の各種情報を授受するCAN(Controller Area Network)20が接続されており、車速VsはCAN20から受信することも可能である。更に、制御装置50には、CAN20以外の通信、アナログ/ディジタル信号、電波等を授受する非CAN21も接続可能である。
制御装置50はCPU(MCU、MPU等も含む)を有し、反力装置30及び転舵装置40の協調制御は、主としてCPU内部においてプログラムで実行される。その制御を行うための構成例(第1実施形態)を図3に示す。図3において、反力用モータ31、舵角センサ33、角度センサ34、PWM(パルス幅変調)制御部37、インバータ38及びモータ電流検出器39を反力装置30が具備し、転舵用モータ41、角度センサ43、PWM制御部47、インバータ48及びモータ電流検出器49を転舵装置30が具備し、その他の構成要素が制御装置50で実現される。なお、制御装置50の構成要素の一部又は全部をハードウェアで実現しても良い。制御装置50は、データやプログラム等を格納するために、RAM(ランダムアクセスメモリ)やROM(リードオンリーメモリ)等を搭載しても良い。また、制御装置50がPWM制御部37、インバータ38、モータ電流検出器39、PWM制御部47、インバータ48及びモータ電流検出器49を具備しても良い。
制御装置50は、反力装置30の制御を行う構成(以下、「反力制御系」とする)と、転舵装置40の制御を行う構成(以下、「転舵制御系」とする)を有し、反力制御系60と転舵制御系70が協調して、反力装置30及び転舵装置40を制御する。
反力制御系60は、目標操舵トルク生成部100及び200、変換部300、捩れ角制御部400、電流制御部500、加算部510並びに減算部520及び530を備え、トーションバー2Aの捩れ角が目標捩れ角に追従するような制御を行う。目標操舵トルク生成部100にて操舵角θh及び車速Vsに基づいて目標操舵トルクTrefAが生成され、目標操舵トルク生成部200にて操舵角θhに基づいて目標操舵トルクTrefBが生成され、目標操舵トルクTrefA及びTrefBの加算値である目標操舵トルクTrefが変換部300にて目標捩れ角Δθrefに変換される。目標捩れ角Δθrefと捩れ角Δθの偏差dΔθ(=Δθref-Δθ)が捩れ角制御部400に入力され、捩れ角制御部400にて、捩れ角Δθが目標捩れ角Δθrefとなるような電流指令値Imcが演算される。そして、電流指令値Imcとモータ電流検出器39で検出される反力用モータ41の電流値(モータ電流値)Imrの偏差I1(=Imc-Imr)が減算部530で算出され、偏差I1に基づいて電流制御部500にて電圧制御指令値Vref1が求められる。反力装置30では、電圧制御指令値Vref1に基づいて、PWM制御部37及びインバータ38を介して反力用モータ31が駆動制御される。
目標操舵トルク生成部100の構成例を図4に示す。目標操舵トルク生成部100は、基本マップ部110、微分部120、ダンパゲイン部130、乗算部140及び加算部150を備える。操舵角θhは基本マップ部110及び微分部120に入力され、車速Vsは基本マップ部110及びダンパゲイン部130に入力される。
基本マップ部110は、基本マップを有し、基本マップを用いて、車速Vsをパラメータとするトルク信号Tref_aを出力する。トルク信号Tref_aは、基本となる反力を生成するために使用される。基本マップはチューニングにより調整されており、例えば、図5(A)に示されるように、トルク信号Tref_aは、操舵角θhの大きさ|θh|が増加するにつれて増加し、車速Vsが増加するにつれても増加するようになっている。つまり、操舵角θhの大きさが大きくなるにつれ、また、車速Vsが速くなるにつれ、反力が大きくなる。なお、図5(A)において、符号部111は操舵角θhの符号(+1、-1)を乗算部112に出力しており、操舵角θhの大きさからマップによりトルク信号Tref_aの大きさを求め、これに操舵角θhの符号を乗算し、トルク信号Tref_aを求める構成となっている。または、図5(B)に示されるように、正負の操舵角θhに応じてマップを構成しても良く、この場合、操舵角θhが正の場合と負の場合とで変化の態様を変えても良い。また、図5に示される基本マップは車速感応であるが、車速感応でなくても良い。
微分部120は、操舵角θhを微分して角速度情報である舵角速度ωh1を算出し、舵角速度ωh1は乗算部140に入力される。なお、舵角速度ωh1の代わりに反力用モータ31のモータ角速度を角速度情報として使用しても良い。この場合、微分部120は不要となる。
ダンパゲイン部130は、舵角速度ωh1に乗算されるダンパゲインDGを出力する。乗算部140にてダンパゲインDGを乗算された舵角速度ωh1は、トルク信号Tref_bとして加算部150に入力される。ダンパゲインDGは、ダンパゲイン部130が有する車速感応型のダンパゲインマップを用いて、車速Vsに応じて求められる。ダンパゲインマップは、例えば、図6に示されるように、車速Vsが速くなるに従って徐々に大きくなる特性を有する。このようなダンパゲインDGを舵角速度ωh1に乗算して舵角速度ωh1に比例した目標操舵トルクの補償を行うことにより、フィーリングとしての粘性感を持たせることができ、また、ステアリングを切った状態から手放しの状態にした場合、ハンドルが発振することなく収れん性を持たせられ、システム安定性の向上を図れる。ダンパゲインマップは操舵角θhに応じて可変としても良い。なお、ダンパゲイン部130及び乗算部140でダンパ演算部を構成している。
トルク信号Tref_a及びTref_bは、加算部150で加算され、加算結果は目標操舵トルクTrefAとして出力される。
目標操舵トルク生成部200の構成例を図7に示す。目標操舵トルク生成部200は、弾性項生成部210及び位相補償部220を備え、操舵角θhは弾性項生成部210に入力される。
弾性項生成部210は、増加率変更機能を有する。弾性項生成部210は、操舵角θhの大きさ|θh|が終端角度の近傍に設定される所定の閾値θthを超えてから反力を上昇させるためのトルク信号TrefB0を生成する。そして、トルク信号TrefB0が大きくなる割合を、閾値θthよりも終端角度から離れた位置(図11参照)に設定される判定角θjにおける舵角速度ωh2に応じて変更する。具体的には、舵角速度ωh2が速くなるに従って、割合を大きくする。判定角θjという固定した角度での舵角速度を基にすることにより、トルク信号TrefB0が大きくなる割合が変動して反力のスムーズな上昇を阻害するのを抑制する。ここで、閾値θthは終端角度から45~90deg手前の位置に設定することができる。
弾性項生成部210の構成例を図8に示す。弾性項生成部210は、基本ゲイン部211、操舵角判定部212、微分部213、傾きゲイン部214、スイッチ部215、傾きゲイン記憶部216及び乗算部217を備え、操舵角θhは、基本ゲイン部211、操舵角判定部212及び微分部213に入力される。
基本ゲイン部211は、操舵角θhの大きさが閾値θthを超えてから基本ゲインGfを出力するような特性のマップ(以下、「基本ゲインマップ」とする)を有する。基本ゲインマップは、例えば、図9に示されるように、操舵角θhの大きさが閾値θthを超えてから大きくなるに従って、基本ゲインGfがゼロから直線的に大きくなる特性を有する。このような増加する特性に基づいて反力に急激な変化をつけることで操舵終端での衝突の抑制を図る。図9において、θlimは操舵角の機械的な限界値である終端角度又は操舵角検出の測定限界値であり、基本ゲインマップはθlim以下の領域で定義される。このように、基本ゲイン部によれば、操舵角θhの大きさが閾値θthを超えた場合に大きな反力となる目標操舵トルクを与えることができる。なお、基本ゲインマップは、図9に示されるような直線的な特性ではなく、単調に増加する特性であれば、曲線的な特性でも良い。また、マップではなく、数式、例えば一次関数等によって特性を定義しても良い。更に、図9では、符号部218は操舵角θhの符号(+1、-1)を乗算部219に出力しており、操舵角θhの大きさからマップにより基本ゲインGfの大きさを求め、これに操舵角θhの符号を乗算し、基本ゲインGfを求める構成となっているが、目標操舵トルク生成部100の基本マップ部110と同様に、正負の操舵角θhに応じてマップを構成しても良く、この場合、操舵角θhが正の場合と負の場合とで変化の態様を変えても良い。
操舵角判定部212は、操舵角θhが判定角θjを通過したか否かを判定する。上述のように、判定角θjにおける舵角速度ωh2に応じてトルク信号TrefB0が大きくなる割合を変更するので、そのタイミングを検知するために、操舵角判定部212は、操舵角θhが判定角θjを通過したか否かを判定し、判定結果Jrを出力する。通過したと判定したときは、判定結果Jrを「通過」とし、通過していないと判定したときは、判定結果Jrを「未通過」とする。
微分部213は、操舵角θhを微分して舵角速度ωh2を算出し、舵角速度ωh2は傾きゲイン部214に入力される。
傾きゲイン部214は、傾きゲインマップを有し、傾きゲインマップを用いて、舵角速度ωh2に応じてトルク信号TrefB0が大きくなる割合を変更するための傾きゲインGiを求める。傾きゲインマップは、例えば、図10に示されるように、舵角速度ωh2の大きさ|ωh2|が大きくなる程、つまり、舵角速度ωh2が速くなる程、傾きゲインGiが直線的に大きくなる特性を有する。直線的な特性ではなく、単調に増加する特性であれば、曲線的な特性でも良く、マップではなく、数式、例えば一次関数等によって特性を定義しても良い。
傾きゲイン記憶部216は、傾きゲインGiを記憶する。
スイッチ部215は、操舵角判定部212から出力される判定結果Jrに基づいて、傾きゲイン部214と傾きゲイン記憶部216の接続をON/OFFする。判定結果Jrが「通過」の場合、接続をONにして、傾きゲイン部214と傾きゲイン記憶部216を接続する。判定結果Jrが「未通過」の場合、接続をOFFにして、傾きゲイン部214と傾きゲイン記憶部216を接続しない。つまり、判定結果Jrが「通過」の場合とは操舵角θhが判定角θjを通過した場合であり、このときに接続がONとなり、傾きゲインGiが傾きゲイン記憶部216に記憶される。これにより、判定角θjにおける舵角速度ωh2に応じた傾きゲインGiが記憶されることになる。
基本ゲインGfと傾きゲイン記憶部216に記憶されている傾きゲインGiとが乗算部217で乗算され、乗算結果がトルク信号TrefB0として出力される。図9に示される特性を有する基本ゲインGfと図10に示される特性を有する傾きゲインGiを乗算する場合、トルク信号TrefB0は図11に示されるような特性になる。即ち、トルク信号TrefB0は、操舵角θhの大きさが閾値θthを超えてから大きくなる程、ゼロから直線的に大きくなり、舵角速度ωh2が速くなる程、その大きくなる割合が大きくなる。このように、舵角速度ωh2が遅いとき、トルク信号TrefB0の増加は抑えられ、その結果、反力の上昇も抑えられるので、操舵角が終端角度になる前に操舵終端に達したと誤認してしまう可能性や操舵終端まで操舵するために大きな操舵トルクを与えなければならない可能性が低くなり、ハンドルを切り戻す際のキックバックも小さくなる。舵角速度ωh2が速いときは、ある程度の大きさのキックバックが生じるが、舵角速度に関係なく反力を生成する場合に比べて、必要以上の反力を生成しないので、許容範囲のキックバックとなる。
なお、傾きゲイン記憶部216に記憶される傾きゲインGiの初期値に関して、判定角θjにおける基本ゲインGfは0であり、通常、判定角θjを通過した後に閾値θthを通過するので、傾きゲインGiの初期値は問題とならないが、操舵角θhが判定角θjより大きい状態で動作を開始した場合を考慮して、傾きゲインGiの初期値として1又は舵角速度ωh2が0の時の値を設定する。
位相補償部220は、トルク信号TrefB0に対して位相進み補償を行い、目標操舵トルクTrefBを算出する。操舵終端付近まで操舵した際に、弾性項生成部210の効果で抑制がかかることにより、跳ね返される事象が生じる可能性があるので、トルク信号TrefB0に対して位相進み補償を行うことにより、この跳ね返りの低減を図る。位相補償部220は、下記数2で表される1次の位相補償フィルタを有し、分子の遮断周波数を分母の遮断周波数よりも小さい値に設定することにより位相進みの設定とする。
ここで、Tn=1/(2π・fn)、Td=1/(2π・fd)で、fn及びfdは遮断周波数であり、fn<fdとなっている。位相補償部220は、入力したトルク信号TrefB0に対して、上記数2で表される位相補償フィルタによる位相進み補償を行い、目標操舵トルクTrefBを算出する。操舵角θhの大きさが閾値θth以下の場合、図11に示されるようにトルク信号TrefB0はゼロであるから、位相補償部220から出力される目標操舵トルクTrefBもゼロとなり、位相進み補償は機能しないことになる。このように、弾性項生成部210と位相補償部220を組み合わせることにより、操舵終端での衝突抑制と同時に跳ね返り低減を実現することができる。位相補償フィルタは1次ではなく、2次以上でも良く、位相進み補償を実現するのであれば、PD(比例微分)制御等で位相進み補償を行っても良い。位相補償フィルタの特性を車速及び/又は舵角速度に応じて変更しても良い。例えば、車速又は舵角速度が速いときには応答性が速くなるように、Tnを大きくするか、Tdを小さくする。これにより、より適切な跳ね返り低減を実現することができる。なお、跳ね返り低減を他の手段で実現する場合等では、位相補償部220はなくても良い。
説明を図3に戻すと、目標操舵トルク生成部100及び200からそれぞれ出力される目標操舵トルクTrefA及びTrefBは、加算部510で加算され、加算結果は目標操舵トルクTrefとして出力される。
変換部300は、トーションバー2Aのバネ定数Ktの逆数の符号を反転した-1/Ktの特性を有しており、目標操舵トルクTrefを目標捩れ角Δθrefに変換する。
減算部520では、目標捩れ角Δθrefが加算入力され、トーションバー2Aの捩れ角Δθが減算入力され、減算結果である偏差dΔθが捩れ角制御部400に入力される。
捩れ角制御部400は、偏差dΔθに対して補償値CFB(伝達関数)を乗算し、目標捩れ角Δθrefに捩れ角Δθが追従するような電流指令値Imcを出力する。補償値CFBは単純なゲインでも、PI(比例積分)制御やPID(比例積分微分)制御等の補償値など一般的に用いられている補償値でも良い。
電流指令値Imcは減算部530に加算入力され、減算部530にて、フィードバックされているモータ電流値Imrとの偏差I1が演算される。電流制御部500は偏差I1を入力し、PI制御等により電流制御を行い、電流制御された電圧制御指令値Vref1を出力する。
電圧制御指令値Vref1は反力装置30に送られ、PWM制御部37に入力されてデューティが演算され、PWM制御部37からのPWM信号により、インバータ38を介して反力用モータ31がPWM駆動される。反力用モータ31のモータ電流値Imrはモータ電流検出器39で検出され、反力制御系60の減算部530にフィードバックされる。
なお、目標操舵トルク生成部100での微分部120で算出される舵角速度ωh1及び弾性項生成部210での微分部213で算出される舵角速度ωh2は、操舵角θhに対する微分演算により求めているが、高域のノイズの影響を低減するために適度にローパスフィルタ(LPF)処理を実施している。また、ハイパスフィルタ(HPF)とゲインにより、微分演算とLPFの処理を実施しても良い。更に、舵角速度ωh1及びωh2は、操舵角θhではなく、上側角度センサが検出するハンドル角θ1又は下側角度センサが検出するコラム角θ2に対して微分演算とLPFの処理を行って算出しても良い。微分部120及び213を1つにして共用しても良い。
転舵制御系70は、目標転舵角生成部600、転舵角制御部700、電流制御部800並びに減算部810及び820を備え、転舵角θtが目標転舵角θtrefに追従するような制御を行う。目標転舵角生成部600にて操舵角θhに基づいて目標転舵角θtrefが生成され、目標転舵角θtrefと転舵角θtの偏差dθt(=θtref-θt)が転舵角制御部700に入力され、転舵角制御部700にて、転舵角θtが目標転舵角θtrefとなるような電流指令値Imctが演算される。そして、電流指令値Imctとモータ電流検出器49で検出される転舵用モータ41の電流値(モータ電流値)Imdの偏差I2(=Imct-Imd)が減算部820で算出され、偏差I2に基づいて電流制御部800にて電圧制御指令値Vref2が求められる。転舵装置40では、電圧制御指令値Vref2に基づいて、PWM制御部47及びインバータ48を介して転舵用モータ41が駆動制御される。
目標転舵角生成部600の構成例を図12に示す。目標転舵角生成部600は、制限部610、レート制限部620及び補正部630を備える。
制限部610は、操舵角θhの上下限値を制限して、操舵角θh1を出力する。操舵角θhの上下限値を制限することにより、ハードウェアエラー等によるRAMのデータ化けや通信異常等の影響で操舵角θhが異常値となった場合に、異常な値の出力を抑える。図13に示されるように、操舵角に対する上限値及び下限値を予め設定し、入力する操舵角θhが、上限値以上の場合は上限値を、下限値以下の場合は下限値を、それ以外の場合は操舵角θhを、操舵角θh1として出力する。なお、操舵角が異常値とならない場合や、他の手段で異常な値の出力を抑える場合等では制限部610は省略可能である。
レート制限部620は、非常に急激な操舵が行われた場合、又は、上記のように操舵角が異常値になった場合に、操舵角の急変を防止するために、操舵角θh1の変化量に対して制限値を設定して制限をかけて、操舵角θh2を出力する。例えば、1サンプル前の操舵角θh1からの差分を変化量とし、その変化量の絶対値が所定の値(制限値)より大きい場合、変化量の絶対値が制限値となるように、操舵角θh1を加減算し、操舵角θh2として出力し、制限値以下の場合は、操舵角θh1をそのまま操舵角θh2として出力する。操舵角θh1の変化量に対して制限をかけることにより、目標転舵角の急変を防止し、車両の不安定挙動を抑制する。なお、変化量の絶対値に対して制限値を設定するのではなく、変化量に対して上限値及び下限値を設定して制限をかけるようにしても良く、変化量ではなく変化率や差分率に対して制限をかけるようにしても良い。また、操舵角が急変しない場合や、他の手段で急変を回避する場合等ではレート制限部620は省略可能である。
補正部630は、操舵角θh2を補正して、目標転舵角θtrefを出力する。例えば、目標操舵トルク生成部100内の基本マップ部110のように、操舵角θh2の大きさ|θh2|に対する目標転舵角θtrefの特性を定義したマップを用いて、操舵角θh2より目標転舵角θtrefを求める。或いは、単純に、操舵角θh2に所定のゲインを乗算することにより、目標転舵角θtrefを求めるようにしても良い。
減算部810では、目標転舵角θtrefが加算入力され、転舵角θtが減算入力され、減算結果である偏差dθtが転舵角制御部700に入力される。
転舵角制御部700は、捩れ角制御部400と同様に、偏差dθtに対して補償値CtFB(伝達関数)を乗算し、目標転舵角θtrefに転舵角θtが追従するような電流指令値Imctを出力する。
減算部820、電流制御部800、PWM制御部47、インバータ48及びモータ電流検出器49は、それぞれ減算部530、電流制御部500、PWM制御部37、インバータ38及びモータ電流検出器39と同様な構成で同様な動作を行う。
このような構成において、本実施形態の動作例を図14~図17のフローチャートを参照して説明する。
動作を開始すると、操舵角θh、車速Vs、捩れ角Δθ及び転舵角θtが検出又は算出され(ステップS10)、操舵角θhは目標操舵トルク生成部100及び200並びに目標転舵角生成部600に、車速Vsは目標操舵トルク生成部100に、捩れ角Δθは減算部520に、転舵角θtは減算部810にそれぞれ入力される。
操舵角θh及び車速Vsを入力した目標操舵トルク生成部100は、目標操舵トルクTrefAを生成する(ステップS20)。目標操舵トルク生成部100の動作例については、図15のフローチャートを参照して説明する。
目標操舵トルク生成部100に入力された操舵角θhは基本マップ部110及び微分部120に、車速Vsは基本マップ部110及びダンパゲイン部130にそれぞれ入力される(ステップS21)。
基本マップ部110は、図5(A)又は(B)に示される基本マップを用いて、操舵角θh及び車速Vsに応じたトルク信号Tref_aを生成して、加算部150に出力する(ステップS22)。
微分部120は操舵角θhを微分して舵角速度ωh1を出力し(ステップS23)、ダンパゲイン部130は図6に示されるダンパゲインマップを用いて車速Vsに応じたダンパゲインDGを出力し(ステップS24)、乗算部140は舵角速度ωh1及びダンパゲインDGを乗算してトルク信号Tref_bを演算し、加算部150に出力する(ステップS25)。そして、加算部150にてトルク信号Tref_a及びTref_bが加算され、目標操舵トルクTrefAが演算される(ステップS26)。
操舵角θhを入力した目標操舵トルク生成部200は、目標操舵トルクTrefBを生成する(ステップS30)。目標操舵トルク生成部200の動作例については、図16のフローチャートを参照して説明する。
目標操舵トルク生成部200に入力された操舵角θhは弾性項生成部210内の基本ゲイン部211、操舵角判定部212及び微分部213に入力される(ステップS31)。
基本ゲイン部211は、図9に示される基本ゲインマップを用いて、操舵角θhに応じた基本ゲインGfを求め、乗算部217に出力する(ステップS32)。
操舵角判定部212は、操舵角θhが判定角θjを通過したか否かを判定し、通過したと判定したときは判定結果Jrを「通過」とし、通過していないと判定したときは判定結果Jrを「未通過」とする(ステップS33)。判定結果Jrはスイッチ部215に出力される。
微分部213は操舵角θhを微分して舵角速度ωh2を算出し、傾きゲイン部214に出力する(ステップS34)。
傾きゲイン部214は、図10に示される傾きゲインマップを用いて、舵角速度ωh2に応じた傾きゲインGiを求める(ステップS35)。
スイッチ部215は、入力した判定結果Jrが「通過」の場合(ステップS36)、接続をONにし(ステップS37)、傾きゲイン部214から出力された傾きゲインGiが傾きゲイン記憶部216に記憶される(ステップS38)。入力した判定結果Jrが「未通過」の場合(ステップS36)、接続をOFFにし(ステップS39)、傾きゲインGiは記憶されない。
乗算部217は、入力した基本ゲインGfと傾きゲイン記憶部216に記憶された傾きゲインGiを乗算し、乗算結果をトルク信号TrefB0として出力する(ステップS40)。
位相補償部220は、トルク信号TrefB0に対して位相進み補償を行い、目標操舵トルクTrefBを算出し、加算部510に出力する(ステップS41)。
加算部510において目標操舵トルクTrefA及びTrefBが加算され、目標操舵トルクTrefが変換部300に出力される(ステップS50)。
変換部300は、目標操舵トルクTrefを目標捩れ角Δθrefに変換し(ステップS60)、目標捩れ角Δθrefは減算部520に加算入力される。
減算部520には捩れ角Δθが減算入力されており、目標捩れ角Δθrefから捩れ角Δθを減算することにより、偏差dΔθが算出される(ステップS70)。偏差dΔθは捩れ角制御部400に入力され、捩れ角制御部400は、偏差dΔθに補償値CFBを乗算することにより電流指令値Imcを求める(ステップS80)。
電流指令値Imcは減算部530に加算入力され、モータ電流検出器39で検出されたモータ電流値Imrとの偏差I1が減算部530で算出される(ステップS90)。偏差I1は電流制御部500に入力され、電流制御部500は電流制御により電圧制御指令値Vref1を算出する(ステップS100)。その後、電圧制御指令値Vref1に基づいて、PWM制御部37及びインバータ38を介して、反力用モータ31が駆動制御される(ステップS110)。
一方、操舵角θhを入力した目標転舵角生成部600は、目標転舵角θtrefを生成する(ステップS120)。目標転舵角生成部600の動作例については、図17のフローチャートを参照して説明する。
目標転舵角生成部600に入力された操舵角θhは制限部610に入力される。制限部610は、予め設定された上限値及び下限値により操舵角θhの上下限値を制限し(ステップS121)、操舵角θh1としてレート制限部620に出力する。レート制限部620は、予め設定された制限値により操舵角θh1の変化量に対して制限をかけ(ステップS122)、操舵角θh2として補正部630に出力する。補正部630は、操舵角θh2を補正して目標転舵角θtrefを求める(ステップS123)。目標転舵角θtrefは減算部810に加算入力される。
減算部810には転舵角θtが減算入力されており、目標転舵角θtrefから転舵角θtを減算することにより、偏差dθtが算出される(ステップS130)。偏差dθtは転舵角制御部700に入力され、転舵角制御部700は、偏差dθtに補償値CtFBを乗算することにより電流指令値Imctを求める(ステップS140)。
電流指令値Imctは減算部820に加算入力され、モータ電流検出器49で検出されたモータ電流値Imdとの偏差I2が減算部820で算出される(ステップS150)。偏差I2は電流制御部800に入力され、電流制御部800は電流制御により電圧制御指令値Vref2を算出する(ステップS160)。その後、電圧制御指令値Vref2に基づいて、PWM制御部47及びインバータ48を介して、転舵用モータ41が駆動制御される(ステップS170)。
なお、図14~図17におけるデータ入力及び演算等の順番は適宜変更可能である。例えば、ステップS34での操舵角θhの微分及びステップS35での傾きゲインGiの決定は、ステップS36での判定結果Jrが「通過」の場合のみに行なうようにしても良い。
上述の実施形態において、目標操舵トルク生成部100はダンパ演算部(ダンパゲイン部130、乗算部140)を備えるが、ダンパ演算部による効果を別の手段で実現する場合や、演算量削減を重視する場合等では、ダンパ演算部を削減しても良い。この場合、微分部120及び加算部150も削減可能となる。目標操舵トルクTrefAに基づいて生成される反力にヒステリシス特性を付加するために、即ちハンドルの切増し操舵と切戻し操舵とで異なる反力を生成するために、ヒステリシス特性を有するトルク信号を目標操舵トルクTrefAに加算するようにしても良い。更に、基本マップ部110の前段又は後段に位相補償を行なう位相補償部160を挿入しても良い。つまり、図4中の破線で囲まれた領域Rの構成を、図18(A)又は(B)に示されるような構成にしても良い。位相補償部160において、位相補償として位相進み補償を設定し、例えば、分子の遮断周波数を1.0Hz、分母の遮断周波数を1.3Hzとした1次フィルタで位相進み補償を行う場合、スッキリしたフィールを実現することができる。目標操舵トルク生成部100に関しては、操舵角に基づいた構成であるならば、上述の構成に限られない。
また、反力制御系60の機能を、目標操舵トルクTrefBを基にした反力の生成に特化する場合等では、目標操舵トルク生成部100を削減しても良い。この場合、加算部510も削減可能で、目標操舵トルク生成部200から出力される目標操舵トルクTrefBが変換部300に入力されることになる。
目標操舵トルク生成部200に関しては、弾性項生成部210は基本ゲインマップと傾きゲインマップの2つのマップを使用してトルク信号TrefB0を求めているが、2つのマップを統合した図11に示されるようなマップを使用して求めても良い。また、操舵角θhが判定角θjを通過した時点での舵角速度ωh2に基づいて傾きゲインGiを決定しているが、操舵角θhを入力した時点での舵角速度ωh2に基づいて決定しても良い。この場合、操舵角判定部212、スイッチ部215及び傾きゲイン記憶部216は不要となる。
弾性項生成部が閾値変更機能を有する場合の実施形態(第2実施形態)について説明する。なお、以降の各実施形態において、既出の他の実施形態と同一の構成には同一の符号を付して、その説明の一部又は全てを省略する。
第2実施形態での弾性項生成部210Aは、トルク信号TrefB0の生成で使用する閾値θthの大きさを、判定角θjにおける舵角速度ωh2に応じて変更する。具体的には、舵角速度ωh2が速くなるに従って、閾値の大きさを小さくする。
弾性項生成部210Aの構成例を図19に示す。弾性項生成部210Aは、基本ゲイン部211、操舵角判定部212、微分部213、シフト量決定部231、符号部233、乗算部234、スイッチ部215、シフト量記憶部232及び加算部235を備え、操舵角θhは、操舵角判定部212、微分部213、符号部233及び加算部235に入力される。
シフト量決定部231は、シフト量マップを有し、シフト量マップを用いて、舵角速度ωh2に応じて閾値θthの大きさを変更する量であるシフト量Sftの大きさ|Sft|を決定する。シフト量マップは、例えば、図20に示されるように、舵角速度ωh2の大きさが大きくなる程、つまり、舵角速度ωh2が速くなる程、シフト量Sftの大きさが直線的に大きくなる特性を有する。直線的な特性ではなく、単調に増加する特性であれば、曲線的な特性でも良く、マップではなく、数式、例えば一次関数等によって特性を定義しても良い。
シフト量記憶部232は、シフト量Sftを記憶する。
符号部233は、舵角速度ωh2の符号Sgn(+1、-1)を乗算部234に出力する。乗算部234は、シフト量Sftの大きさに符号Sgnを乗算し、シフト量Sftを出力する。
基本ゲイン部211は、第1実施形態の場合と同様の構成及び動作により、操舵角θhにシフト量Sftを加算して算出される操舵角θhsを操舵角θhと見做して、基本ゲインマップを用いて基本ゲインGfを求め、トルク信号TrefB0として出力する。
弾性項生成部210Aは、判定角θjにおける舵角速度ωh2に基づいて決定されるシフト量Sftを操舵角θhに加算することにより、実質的に、基本ゲイン部211が有する基本ゲインマップでの閾値θthの大きさを変更するようにしている。その弾性項生成部210Aの動作例を図21のフローチャートを参照して説明する。なお、第2実施形態のその他の動作は、第1実施形態と同じである。
操舵角θhは弾性項生成部210A内の操舵角判定部212、微分部213、符号部233及び加算部235に入力される(ステップS31A)。
操舵角判定部212は、操舵角θhが判定角θjを通過したか否かを判定し、通過したと判定したときは判定結果Jrを「通過」とし、通過していないと判定したときは判定結果Jrを「未通過」とする(ステップS33)。判定結果Jrはスイッチ部215に出力される。
微分部213は操舵角θhを微分して舵角速度ωh2を算出し、シフト量決定部231に出力する(ステップS34)。
シフト量決定部231は、図20に示されるシフト量マップを用いて、舵角速度ωh2に応じたシフト量Sftの大きさを求め、シフト量Sftの大きさに符号部233で判定された舵角速度ωh2の符号Sgnが乗算部234で乗算されて、シフト量Sftが求められる(ステップS35A)。
スイッチ部215は、入力した判定結果Jrが「通過」の場合(ステップS36)、接続をONにし(ステップS37)、シフト量Sftがシフト量記憶部232に記憶される(ステップS38A)。入力した判定結果Jrが「未通過」の場合(ステップS36)、接続をOFFにし(ステップS39)、シフト量Sftは記憶されない。
加算部235は、入力した操舵角θhとシフト量記憶部232に記憶されたシフト量Sftを加算し、加算結果を操舵角θhsとして基本ゲイン部211に出力する(ステップS40A)。
基本ゲイン部211は、図9に示される基本ゲインマップを用いて、操舵角θhsを操舵角θhと見做して基本ゲインGfを求め、トルク信号TrefB0として出力する(ステップS40B)。
なお、図21におけるデータ入力及び演算等の順番は適宜変更可能である。例えば、ステップS34での操舵角θhの微分及びステップS35Aでのシフト量Sftの決定は、ステップS36での判定結果Jrが「通過」の場合のみに行なうようにしても良い。
このような動作を弾性項生成部210Aが行うことにより、トルク信号TrefB0は図21に示されるような特性になる。即ち、トルク信号TrefB0は、操舵角θhの大きさが閾値θthを超えてから大きくなる程、ゼロから直線的に大きくなり、閾値θthの大きさは、舵角速度ωh2が速くなる程、小さくなる。このように、舵角速度ωh2が遅いとき、トルク信号TrefB0の立ち上がりが遅くなり、反力の上昇開始も遅くなるので、第1実施形態の場合と同様に、操舵終端と誤認してしまう可能性や操舵終端までの操舵のために大きな操舵トルクを与えなければならない可能性が低くなり、キックバックも小さくなる。舵角速度ωh2が速いときは、ある程度の大きさのキックバックが生じるが、舵角速度に関係なく反力を生成する場合に比べて、必要以上の反力を生成しないので、許容範囲のキックバックとなる。
シフト量記憶部232に記憶されるシフト量Sftの初期値に関して、第1実施形態の場合と同様に、舵角θhが判定角θjより大きい状態で動作を開始した場合を考慮して、シフト量Sftの初期値として0又は舵角速度ωh2が0の時の値を設定する。
なお、弾性項生成部210Aは基本ゲインマップとシフト量マップの2つのマップを使用してトルク信号TrefB0を求めているが、2つのマップを統合した図22に示されるようなマップを使用して求めても良い。
弾性項生成部が追従量変更機能を有する場合の実施形態(第3実施形態)について説明する。
第3実施形態での弾性項生成部210Bは、トルク信号TrefB0の生成で使用する閾値θthを操舵角θhに追従して変動させ、その変動量を舵角速度に応じて変更する。具体的には、舵角速度が速くなるに従って、変動量を小さくする。変動量をこのように変更するために、弾性項生成部210Bは、操舵角θhに対してLPFによるフィルタ処理を施すことにより、閾値θthを決める。
弾性項生成部210Bの構成例を図23に示す。弾性項生成部210Bはフィルタ部241及び可変ゲイン部242を備え、操舵角θhは、フィルタ部241及び可変ゲイン部242に入力される。
フィルタ部241は、LPFを有しており、操舵角θhに対してLPFによるフィルタ処理を施して、その結果を閾値θthとして出力する。LPFとして、1次の伝達関数や2次の伝達関数等の任意の伝達関数で表されるLPFを使用して良い。遮断周波数は、経験値として1~5Hzとする。
可変ゲイン部242は、基本ゲインマップを有する基本ゲイン部211と同様の構成で構成されているが、閾値θthは固定値ではなく、フィルタ部241から出力される閾値θthが使用される。そして、基本ゲインGfをトルク信号TrefB0として出力する。
第3実施形態の動作は、第1実施形態の動作と比べると、弾性項生成部の動作が上述のように異なるだけで、他の動作は同じである。
このような構成の弾性項生成部210Bにおける閾値θthの変動について説明する。
舵角速度が遅い場合、操舵角θhの殆どの周波数成分はフィルタ部241のLPFにより遮断されることなく通過するので、フィルタ部241から出力される閾値θthは、操舵角θhとほぼ同じ値となる。よって、図24(A)に示されるように、閾値θthは操舵角θhに追従して移動するので、トルク信号TrefB0はゼロに近い値となり、トルク信号TrefB0に基づく反力は生じない。これに対して、舵角速度が速くなると、遮断される周波数成分が出てくるので、閾値θthは、操舵角θhよりも小さい値となる。よって、図24(B)に示されるように、操舵角θhに対する閾値θthの追従が遅くなり、トルク信号TrefB0の値が大きくなり、それに基づく反力が生じる。トルク信号TrefB0に基づく反力が生じている状態において保舵すると、閾値θthが操舵角θhに近づいていくので、トルク信号TrefB0が小さくなり、それに基づく反力が弱くなる。ハンドルを切り戻す際は、舵角速度ωh2がゼロになり、図24(A)に示される状態からの開始に戻るので、トルク信号TrefB0に基づく反力もゼロからの開始となる。このように、舵角速度が遅いとき、閾値θthが操舵角θhに追従して移動し、反力の上昇が抑えられるので、操舵終端と誤認してしまう可能性や操舵終端までの操舵のために大きな操舵トルクを与えなければならない可能性が低くなり、キックバックの発生も抑えられる。舵角速度が速いときも、ハンドルを切り戻す際は閾値θthが操舵角θhに再び追従することになるので、キックバックの発生を抑えられる。
弾性項生成部210Bの構成については、閾値θthを変動させるのではなく、操舵角θhから閾値θthを減算することにより、実質的に閾値θthが操舵角θhに追従するような構成でも良い。その構成例を図25に示す。弾性項生成部210B’の基準ゲイン部244は、図26に示されるように、基本ゲインマップと同じ傾きで原点を通るような特性の基準ゲインマップを使用して、トルク信号TrefB0を生成する。
なお、弾性項生成部210Bではフィルタ部241からの出力を閾値θthとしているが、閾値θthにマージンをもたせるべく、フィルタ部241からの出力に所定の値を加えたものを閾値θthとしても良い。操舵角θhにマージンをもたせた値をフィルタ部241で処理し、フィルタ部241からの出力を閾値θthとしても良い。また、操舵角θhが所定の角度を超えた時点から、閾値θthの操舵角θhへの追従を開始させるようにしても良い。その場合、操舵角θhが所定の角度以内のときには、閾値θthを所定の角度に固定するようにしても良い。
上述の実施形態(第1~第3実施形態)では、反力を上昇させるための目標操舵トルクTrefBを目標操舵トルクTrefAに加算しているが、目標操舵トルク生成から電流指令値算出までの各段階において、反力を上昇させるための基となる要素の加算を行うことが可能である。
図27に示す反力制御系の構成例(第4実施形態)では、目標捩れ角演算後に上記加算を行っている。第4実施形態での反力制御系60Aでは、図3に示される第1実施形態での反力制御系60と比べると、変換部310が追加され、目標操舵トルク生成部100の後段に配置されている加算部510が削除され、代わりに変換部300の後段に加算部511が配置されている。
変換部310は、変換部300と同様に、トーションバー2Aのバネ定数Ktの逆数の符号を反転した-1/Ktの特性を有しており、目標操舵トルク生成部200から出力される目標操舵トルクTrefBを目標捩れ角ΔθrefBに変換する。目標捩れ角ΔθrefBは加算部511に入力される。また、変換部300は、目標操舵トルク生成部100から出力される目標操舵トルクTrefAを目標捩れ角ΔθrefAに変換し、目標捩れ角ΔθrefAは加算部511に入力される。そして、目標捩れ角ΔθrefAとΔθrefBの加算結果が目標捩れ角Δθrefとなる。
第4実施形態の動作は、第1実施形態の動作と比べると、反力制御系において目標操舵トルクTrefA及びTrefBの生成後から偏差dΔθの算出前までの動作(図14でのステップS50~S60)が異なる。異なる動作について、図28のフローチャートを参照して説明する。
ステップS30の後、変換部300は目標操舵トルクTrefAを目標捩れ角ΔθrefAに変換し(ステップS51)、変換部310は目標操舵トルクTrefBを目標捩れ角ΔθrefBに変換する(ステップS52)。そして、加算部511は、目標捩れ角ΔθrefAとΔθrefBを加算し、目標捩れ角Δθrefを出力する(ステップS53)。目標捩れ角Δθrefは減算部520に加算入力され、ステップS70へと続く。
図29に示す反力制御系の構成例(第5実施形態)では、電流指令値演算後に上記加算を行っている。第5実施形態での反力制御系60Bでは、図27に示される第4実施形態での反力制御系60Aと比べると、捩れ角制御部410が更に追加され、加算部が捩れ角制御部400の後段に移動している。
捩れ角制御部410は、捩れ角制御部400と同様に、目標捩れ角ΔθrefBに対して補償値CFB(伝達関数)を乗算し、電流指令値ImcBを出力する。電流指令値ImcBは加算部512に入力される。減算部520は、変換部300から出力される目標捩れ角ΔθrefAからトーションバー2Aの捩れ角Δθを減算し、減算結果である偏差dΔθAが捩れ角制御部400に入力される。捩れ角制御部400は、偏差dΔθAに対して補償値CFB(伝達関数)を乗算し、電流指令値ImcAを出力する。電流指令値ImcAは加算部512に入力される。そして、電流指令値ImcAとImcBの加算結果が電流指令値Imcとなる。
第5実施形態の動作は、第4実施形態の動作と比べると、反力制御系において目標捩れ角ΔθrefA及びΔθrefBの演算後から偏差I1の算出前までの動作(図14及び28でのステップS53~S80)が異なる。異なる動作について、図30のフローチャートを参照して説明する。
ステップS52の後、減算部520は、目標捩れ角ΔθrefAから捩れ角Δθを減算することにより、偏差dΔθAを算出する(ステップS61)。偏差dΔθAは捩れ角制御部400に入力され、捩れ角制御部400は、偏差dΔθAに補償値CFBを乗算することにより電流指令値ImcAを求める(ステップS62)。一方、捩れ角制御部410は、目標捩れ角ΔθrefBに補償値CFBを乗算することにより電流指令値ImcBを求める(ステップS63)。そして、加算部512は、電流指令値ImcAとImcBを加算し、電流指令値Imcを出力する(ステップS64)。電流指令値Imcは減算部530に加算入力され、ステップS90へと続く。
上述の実施形態(第1~第5実施形態)では1つの制御装置が反力制御系及び転舵制御系を有しているが、反力制御系のみを有する制御装置と転舵制御系のみを有する制御装置をそれぞれ設けても良い。この場合、制御装置同士は通信によりデータの送受信を行うことになる。また、図1に示されるSBWシステムは反力装置30と転舵装置40の間には機械的な結合を持たないが、システムに異常が発生した場合に、コラム軸2と転舵機構をクラッチ等で機械的に結合する機械的トルク伝達機構を備えるSBWシステムにも、本発明は適用可能である。このようなSBWシステムでは、システム正常時はクラッチをオフにして機械的トルク伝達を開放状態とし、システム異常時はクラッチをオンにして機械的トルク伝達を可能状態とする。更に、反力装置30はトーションバーを備えているが、ハンドル1と反力用モータ31の間に任意のバネ定数を有する機構であればトーションバーに限定しなくても良い。
上述の実施形態での捩れ角制御部は直接的に電流指令値を演算しているが、電流指令値を演算する前に、先ず出力したいモータトルク(目標トルク)を演算してから、電流指令値を演算するようにしても良い。この場合、モータトルクから電流指令値を求めるには、一般的に用いられている、モータ電流とモータトルクの関係を使用する。
なお、上述で使用した図は、本発明に関して定性的な説明を行うための概念図であり、これらに限定されるものではない。また、上述の実施形態は本発明の好適な実施の一例ではあるが、これに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変形実施可能である。
本発明の主たる目的は、操舵終端での衝突を抑制するための目標操舵トルクの実現手段についてであり、目標操舵トルクに対する操舵トルクの追従性の実現手段に関しては、上記の変換部及び捩れ角制御部に限定しなくても良い。