モータ制御装置および電動パワーステアリング装置
【課題】ロータ回転角の推定で戻し処理が行われるがロータが反転しない場合や停止する場合等にもロータ回転角を正確に推定できるモータ制御装置を提供する。
【解決手段】ロータ回転角の離散的な検出結果とそれから得られる角速度推定値ωeとトルク情報とに基づき次のように回転角推定値θreを求める。電動パワーステアリング装置にてモータのロータ回転角の次の検出前に回転角推定値θreが検出予定回転角θnxに達すると、直前検出時点tn-1及び検出予定回転角到達時点tnの操舵トルクτ(n-1),τ(n)と角速度推定値ωeとに基づき回転方向の反転/非反転を推定する。その後、回転角推定値θreが検出済回転角θrに向かうものとし、上記推定結果が非反転の場合にはΔτ(n)=|τ(n)−τ(n-1)|に比例した角度量Δθだけ変化した時点tn+1以降で、反転の場合には30度(検出間隔の1/2)だけ変化した時点tn+1以降で、回転角推定値θreを一定に維持する。
【解決手段】ロータ回転角の離散的な検出結果とそれから得られる角速度推定値ωeとトルク情報とに基づき次のように回転角推定値θreを求める。電動パワーステアリング装置にてモータのロータ回転角の次の検出前に回転角推定値θreが検出予定回転角θnxに達すると、直前検出時点tn-1及び検出予定回転角到達時点tnの操舵トルクτ(n-1),τ(n)と角速度推定値ωeとに基づき回転方向の反転/非反転を推定する。その後、回転角推定値θreが検出済回転角θrに向かうものとし、上記推定結果が非反転の場合にはΔτ(n)=|τ(n)−τ(n-1)|に比例した角度量Δθだけ変化した時点tn+1以降で、反転の場合には30度(検出間隔の1/2)だけ変化した時点tn+1以降で、回転角推定値θreを一定に維持する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブラシレスモータ等の電動モータを駆動するモータ制御装置、および当該モータ制御装置を備えた電動パワーステアリング装置に関する。
【背景技術】
【0002】
従来から、運転者がハンドル(ステアリングホイール)に加える操舵トルクに応じて電動モータを駆動することにより車両のステアリング機構に操舵補助力を与える電動パワーステアリング装置が用いられている。電動パワーステアリング装置の電動モータには従来からブラシ付きモータが広く使用されているが、信頼性および耐久性の向上や慣性の低減などの観点から、近年ではブラシレスモータも使用されている。
【0003】
このブラシレスモータが使用されている電動パワーステアリング装置では、座標変換によるベクトル制御などでブラシレスモータを駆動する方法が一般的である。この方法では、ロータの現時点での回転位置であるロータ回転角を検出するために、ホール素子を含む位置検出センサ(ホールセンサ)が用いられることが多い。このホールセンサは、永久磁石からなるロータの周囲に、例えば120度または60度の間隔で3個が配置され、これら3個のホールセンサから出力された検出信号に基づき電気角60度毎のロータ回転角の変化が検出される。
【0004】
ここで、電気角60度毎の検出情報のみでは、現時点での正確なロータ回転角を得ることができないので、当該検出信号に基づき、現時点でのロータ回転角を推定する計算が行われるのが一般的である。例えば、検出信号における直前の検出時点からその前の検出時点までの時間間隔と、直前の検出時点からの経過時間とに基づき、現時点でのロータ回転角が推定される。
【0005】
この推定されたロータ回転角が不正確であると、脱調やモータ効率の悪化を引き起こすので、推定のための計算には従来よりさまざま工夫がなされている。例えば特許文献1には、ロータ位相推定値が次回の検出位相値に相当する値に達すると、ロータ位相推定値を今回の検出位相値に相当する値の方向へ戻す処理(以下ではこの処理を「戻し処理」という)を行うモータ制御装置の構成が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−23973号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、ロータの回転速度が急激に変化することが多い電動パワーステアリング装置において、ホールセンサからの検出信号における直前の検出時点からその前の検出時点までの時間間隔に基づいて単純に現時点でのロータ回転角を推定する計算を行うと、現実のロータ回転角と大きなずれを生じる可能性がある。
【0008】
また、文献1に記載のモータ制御装置の上記戻し処理は、現実のロータが前回の検出時点までの角速度と同じ角速度で回転し、かつ次回の検出位相角が得られると予想される時点の直前でその回転方向が反転し同じ角速度で回転する場合を想定して、上記時点でロータ位相推定値を戻すものである。そのため、現実のロータが上記場合と同様に回転すれば比較的正確なロータ位相推定値を算出することができる。しかし、現実のロータ回転角がゆっくりと変化して戻らない場合(すなわちロータの回転方向が反転しない場合)など、上記のように現実のロータが回転しない場合には正確なロータ位相推定値を算出することができない。
【0009】
また、文献1に記載のモータ制御装置の上記戻し処理において、ロータ位相推定値は、直前の検出位相値と次回の検出位相値との真ん中に相当する中間値に達すると、その後はホールセンサによる次の検出時点まで当該中間値に維持される。このような中間値に固定されると、例えばロータの回転方向が反転しない場合には、ロータ位相推定値と現実のロータ位相とのずれが大きくなり、必要な大きさのモータトルクが得られないことがある。
【0010】
そこで本発明の目的は、ロータの回転速度が急激に変化する場合や、戻し処理が行われるときに回転方向が反転しない場合、ロータの回転が停止する場合であっても、ロータ回転角を正確に推定し、その推定結果に基づきモータを駆動するモータ制御装置を提供することである。また、本発明の他の目的は、そのようなモータ制御装置を備えた電動パワーステアリング装置を提供することである。
【課題を解決するための手段】
【0011】
第1の発明は、電動モータにおけるロータの回転角の推定値を算出し、当該推定値に基づき当該電動モータを駆動するモータ制御装置であって、
前記ロータの回転角を所定の角度間隔で離散的に検出する回転角離散検出手段と、
前記回転角離散検出手段による検出結果および前記回転角離散検出手段による前記ロータの回転角の検出時点の間隔から前記ロータの回転速度の推定値を算出する速度推定手段と、
前記電動モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクを非モータトルクとして検出するトルク検出手段と、
前記速度推定手段により得られる回転速度推定値および前記トルク検出手段により検出される非モータトルクに基づき、前記ロータの現時点での回転角を示す回転角推定値を算出する回転角推定手段とを備え、
前記回転角推定手段は、前記回転角離散検出手段により前記ロータの回転角が検出された第1の検出時点から前記回転角離散検出手段により次に前記ロータの回転角が検出される第2の検出時点までに、前記回転角推定値が前記回転角離散検出手段により次に検出されるべき前記ロータの回転角である検出予定回転角に到達した場合に、前記第2の検出時点までは前記回転角推定値が当該検出予定回転角を越えないように、前記トルク検出手段により検出される非モータトルクに応じて前記回転角推定値の算出方法を変更することを特徴とする。
【0012】
第2の発明は、第1の発明において、
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記速度推定手段により得られる速度推定値とに基づき、前記第1の検出時点と前記検出予定回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記検出予定回転角への到達時点から前記第2の検出時点までは、前記検出予定回転角と前記回転角推定値との差が、前記第1の検出時点で検出される前記非モータトルクと前記検出予定回転角への到達時点で検出される前記非モータトルクとの差に応じた所定量よりも大きくならないように、前記算出方法を変更することを特徴とする。
【0013】
第3の発明は、第2の発明において、
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角に向かって前記検出予定回転角から前記所定量だけ変化した中間回転角に前記回転角推定値が到達したときには、前記第2の検出時点まで当該中間回転角を維持するように、前記算出方法を変更し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記検出済回転角と前記検出予定回転角との間を2等分する角度値に前記回転角推定値が到達したときには、前記第2の検出時点まで当該2等分する角度値を維持するように、前記算出方法を変更することを特徴とする。
【0014】
第4の発明は、第1の発明において、
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角と前記検出予定回転角との間における所定の中間回転角に前記回転角推定値が前記検出予定回転角への到達時点後に到達する場合に当該中間回転角への到達時点で検出される前記非モータトルクの向きとに基づき、前記第1の検出時点と前記中間回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記中間回転角への到達時点から前記第2の検出時点までにおいて、前記反転推定手段の推定結果に応じて前記回転角推定値が減少もしくは増加しまたは一定となるように、前記算出方法を変更することを特徴とする。
【0015】
第5の発明は、第4の発明において、
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出予定回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出済回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したか否かを前記反転推定手段が推定できない場合には、前記中間回転角への到達時点後に前記回転角推定値が一定に維持されるように前記回転角推定値を算出することを特徴とする。
【0016】
第6の発明は、第1の発明において、
前記回転角推定手段は、前記ロータの回転方向が反転したとみなして前記回転角推定値の算出方法を変更する場合には、前記回転角推定値の算出に使用する回転速度推定値の絶対値を当該算出方法の変更に伴って低減することを特徴とする。
【0017】
第7の発明は、車両のステアリング機構に電動モータによって操舵補助力を与える電動パワーステアリング装置であって、
第1から第6の発明のいずれかに係るモータ制御装置を備え、
前記トルク検出手段は、前記車両の操舵操作のために前記ステアリング機構に加えられる操舵トルクを前記非モータトルクとして検出し、
前記モータ制御装置は、前記ステアリング機構に操舵補助力を与える電動モータを駆動することを特徴とする。
【発明の効果】
【0018】
上記第1の発明によれば、電動モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクが非モータトルクとして検出され、ロータ回転角についての第1の検出時点から第2の検出時点までに回転角推定値が検出予定回転角に到達した場合には、第2の検出時点までは回転角推定値が当該検出予定回転角を越えないように上記非モータトルクに応じて回転角推定値の算出方法が変更される。これにより、ロータの回転方向が反転する場合にロータ回転角の推定誤差を低減できるだけでなく、ロータの回転方向が反転しない場合において回転角推定値が検出予定回転角に到達しても、ロータ回転角の推定誤差を低減することができる。
【0019】
上記第2の発明によれば、第1の検出時点での上記非モータトルクの向きと、第2の検出時点前の検出予定回転角への到達時点での上記非モータトルクの向きと、ロータの回転速度の推定値とに基づき、第1の検出時点と検出予定回転角への到達時点との間でロータの回転方向が反転したか否かが推定され、ロータの回転方向が反転していないと推定される場合には、検出予定回転角への到達時点から第2の検出時点までは、検出予定回転角と回転角推定値との差が所定量以下となる。この所定量は、第1の検出時点での上記非モータトルクと上記検出予定回転角への到達時点での非モータトルクとの差(トルク差)に応じたものであることから、検出予定回転角への到達時点後の回転角推定値は上記トルク差に応じて検出予定回転角に比較的近い値となる。このため、ロータの回転方向が反転していない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができる。
【0020】
上記第3の発明によれば、第1の検出時点と検出予定回転角への到達時点との間でロータの回転方向が反転したか否かが上記第2の発明と同様にして推定され、ロータの回転方向が反転していないと推定される場合において、検出予定回転角への到達時点後の回転角推定値が検出予定回転角から検出済回転角に向かって上記所定量だけ変化した中間回転角に到達したときには、第2の検出時点まで回転角推定値が当該中間回転角に維持される。ここで上記所定量は上記トルク差に応じたものであることから、検出予定回転角への到達時点後の回転角推定値は上記トルク差に応じて検出予定回転角に比較的近い値となる。これにより、ロータの回転方向が反転しない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができる。一方、ロータの回転方向が反転したと推定される場合において、検出予定回転角への到達時点後に回転角推定値が検出済回転角と検出予定回転角との間を2等分する角度値に到達したときには、第2の検出時点まで回転角推定値が当該2等分する角度値に維持される。これにより、ロータの回転方向が反転する場合にロータ回転角の推定誤差を小さくすることができる。
【0021】
上記第4の発明によれば、第1の検出時点での上記非モータトルクの向きと、第2の検出時点前における検出予定回転角への到達時点での上記非モータトルクの向きと、検出予定回転角への到達後における所定の中間回転角への到達時点での上記非モータトルクの向きに基づき、第1の検出時点と当該中間回転角への到達時点との間でロータの回転方向が反転したか否かが推定され、当該中間回転角への到達時点から第2の検出時点までにおいて、回転角推定値は、回転方向が反転したか否かの推定結果に応じて減少もしくは増加しまたは一定となる。したがって、ロータの回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく、ロータの回転方向が反転しない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができる。
【0022】
上記第5の発明によれば、第1の検出時点と上記中間回転角への到達時点との間でロータの回転方向が反転したか否かが上記第4の発明と同様の方法で推定され、ロータの回転方向が反転していないと推定される場合には、回転角推定値は上記中間回転角への到達時点後に検出予定回転角に向かって変化し、一方、ロータの回転方向が反転したと推定される場合には、回転角推定値は上記中間回転角への到達時点後に検出済回転角に向かって変化する。また、ロータの回転方向が反転したか否かを推定できない場合(不明の場合)には、回転角推定値は中間回転角への到達時点後に一定に維持される。したがって、ロータの回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく、ロータの回転方向が反転しない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができ、さらに、ロータの回転方向が反転したか否かが不明である場合にも、回転角推定値を上記中間回転角への到達時点後に一定値に維持することで推定誤差の増大を抑制することができる。
【0023】
上記第6の発明によれば、ロータの回転方向が反転したとみなして回転角推定値の算出方法が変更される場合には、回転角推定値の算出に使用する回転速度推定値の絶対値が当該算出方法の変更に伴って低減される。これにより、ロータの回転方向が反転せずに途中で停止する場合やロータの回転が極めて遅くなった場合であっても、回転角推定値が2つの回転角の間での往復を繰り返してモータトルクが振動するという事態を回避または抑制することができる。
【0024】
上記第7の発明によれば、モータ制御装置において上記第1から第6の発明に係るモータ制御装置と同様の効果を奏するので、電動パワーステアリング装置における電動モータを安定的に制御して良好な操舵感を得ることができる。
【図面の簡単な説明】
【0025】
【図1】本発明に係るモータ制御装置を用いた電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。
【図2】本発明の第1の実施形態に係るモータ制御装置の構成を示すブロック図である。
【図3】上記電動パワーステアリング装置で使用されるホールセンサを構成するホールICの配置例を示す、モータ軸方向に対する垂直断面図である。
【図4】上記電動パワーステアリング装置で使用されるホールセンサを構成するホールICの動作を説明するための図である。
【図5】上記第1の実施形態における制御部を実現するためのモータ制御処理の手順を示すフローチャートである。
【図6】上記第1の実施形態におけるモータのロータの回転角推定値を算出するための回転角推定処理の手順を示すフローチャートである。
【図7】上記第1の実施形態における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図8】上記第1の実施形態におけるモータのロータの回転角推定値の変化の例を実際のロータ回転角と共に示す波形図である。
【図9】本発明の第2の実施形態に係るモータ制御装置における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図10】上記第2の実施形態におけるモータの回転方向の推定を説明するための波形図である。
【図11】上記第2の実施形態におけるモータのロータの回転角推定値の変化の一例を実際のロータ回転角と共に示す波形図である。
【図12】本発明の第3の実施形態に係るモータ制御装置における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図13】上記第3の実施形態における回転角推定処理を説明するための波形図である。
【図14】上記第3の実施形態の第1の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図15】上記第3の実施形態の第1の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図16】上記第3の実施形態の第1の変形例における回転角推定処理を説明するための波形図である。
【図17】上記第3の実施形態の第2の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0026】
以下、添付図面を参照しつつ、本発明の実施形態について説明する。
<1.全体構成>
図1は、本発明に係るモータ制御装置を用いた電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。この電動パワーステアリング装置は、ブラシレスモータ1、減速機2、トルクセンサ3、車速センサ4、位置検出センサであるホールセンサ5、および、電子制御ユニット(Electronic Control Unit :以下「ECU」という)10を備えたコラムアシスト型の電動パワーステアリング装置である。
【0027】
図1に示すように、ステアリングシャフト102の一端にはハンドル(ステアリングホイール)101が固着されており、ステアリングシャフト102の他端はラックピニオン機構103を介してラック軸104に連結されている。ラック軸104の両端は、タイロッドおよびナックルアームからなる連結部材105を介して車輪106に連結されている。運転者がハンドル101を回転させると、ステアリングシャフト102は回転し、これに伴いラック軸104は往復運動を行う。ラック軸104の往復運動に伴い、車輪106の向きが変わる。
【0028】
電動パワーステアリング装置は、運転者の負荷を軽減するために、以下に示す操舵補助を行う。トルクセンサ3は、ハンドル101の操作によってステアリングシャフト102に加えられる操舵トルクTを検出する。車速センサ4は、車速Sを検出する。
【0029】
ホールセンサ5は、ホール素子を含むホールICからなり、ブラシレスモータ1のロータの回転位置Pを検出する。なお、後述するようにこのホールセンサは、連続的にロータの位置を検出可能ないわゆるリニア形式のホールセンサではなく、離散的にロータの位置を検出するスイッチ形式(オンオフ形式)のホールセンサである。
【0030】
ECU10は、車載バッテリ100から電力の供給を受け、操舵トルクT、車速Sおよび回転位置Pに基づきブラシレスモータ1を駆動する。ブラシレスモータ1は、ECU10によって駆動されると、操舵補助力を発生させる。減速機2は、ブラシレスモータ1とステアリングシャフト102との間に設けられる。ブラシレスモータ1で発生した操舵補助力は、減速機2を介して、ステアリングシャフト102を回転させるように作用する。
【0031】
この結果、ステアリングシャフト102は、ハンドル101に加えられる操舵トルクと、ブラシレスモータ1で発生した操舵補助力の両方によって回転する。このように電動パワーステアリング装置は、ブラシレスモータ1で発生した操舵補助力を車両のステアリング機構に与えることにより操舵補助を行う。
【0032】
<2.第1の実施形態>
<2.1 モータ制御装置の構成>
図2は、本発明の第1の実施形態に係るモータ制御装置の構成を示すブロック図である。このモータ制御装置は、上記電動パワーステアリング装置において使用され、ECU10を用いて構成されており、ブラシレスモータ1を駆動する。ECU10は、マイクロコンピュータ(以下「マイコン」と略記する)20とモータ駆動部とからなる。マイコン20は、その内部のメモリに格納された所定のプログラムを実行することにより、目標電流演算部114と、減算器122,124と、d軸電流PI制御部126と、q軸電流PI制御部128と、d−q/3相交流座標変換部132と、符号反転加算器134と、3相交流/d−q座標変換部138と、ロータ回転位置検出部162と、ロータ回転角推定部164とからなるモータ制御部として機能する。目標電流演算部114には、基本アシスト制御部180とモータ電流指令値演算部188とが含まれている。モータ駆動部は、モータ制御部としてのマイコン20から出力される電圧指令値に基づき3相のブラシレスモータ1を駆動するハードウェア(回路)であり、PWM信号生成回路150と、モータ駆動回路152と、U相電流検出器154と、V相電流検出器156とから構成される。
【0033】
ハンドル101が操作されると、トルクセンサ3によって検出される操舵トルクTがECU10に入力されるとともに、車速センサ4によって検出される車速SもECU10に入力される。
【0034】
ロータ回転位置検出部162は、ブラシレスモータ1に取り付けられた3個のホールIC5a,5b,5cからなるホールセンサ5が出力するセンサ信号に基づいて、ブラシレスモータ1のロータである永久磁石の回転位置Pである実際のロータ回転角θaに相当する電気角(以下「検出回転角」という)θrを離散的に検出する。
【0035】
図3(a)は、モータ1の軸方向に対する垂直断面図であり、図3(b)は、図3(a)に示すロータ7が60度時計回りに回転した時のモータ1の軸方向に対する垂直断面図である。図3(a)(b)に示すように、ホールセンサ5を構成する3個のホールIC5a〜5cのうち、ホールIC5aは、ロータ7のN極がステータ6aに最も近接したときに(すなわちロータ7のN極がステータ6aの直下に来たときに)ロータ7のN極とS極の境界(以下「磁極境界」という)に最も近接する位置に配置されている。また、ホールIC5bは、ロータ7のN極がステータ6bに最も近接したときにロータ7の磁極境界に最も近接する位置に配置されており、ホールIC5cは、ロータ7のN極がステータ6cに最も近接したときにロータ7の磁極境界に最も近接する位置に配置されている。各ホールIC5a〜5cは、ロータ7の磁極境界が最も接近した時、その出力信号をハイレベル(Hレベル)からローレベル(Lレベル)またはLレベルからHレベルへと変化させる。したがって、ロータ7の実際のロータ回転角θaが60度変化する毎にこれらホールIC5a〜5cのうちのいずれか1つから出力される信号がHレベルからLレベルへまたはその逆に変化する。以下、図4を参照して、これらホールIC5a〜5bの動作を更に詳しく説明する。なお以下では、ステータ6aにロータ7のN極が最も接近したときのロータ7の回転角を0度とし、時計回り方向を回転角の正方向とする。
【0036】
いま、ホールIC5aに着目し、図4(a)に示すようにロータ7が時計回り方向に回転するものとすると、このホールIC5aは、図4(b)に示すような正弦波状のマグネット磁束変化に基づき図4(c)に示すような2値信号を出力信号Saとして生成する。すなわちホールIC5aは、上記のマグネット磁束がN極のときにはHレベルとなりS極のときにはLレベルとなる出力信号Saを生成し、この出力信号Saは、上記のマグネット磁束がN極からS極へと変化する時にHレベルからLレベルへと変化し、S極からN極へと変化する時にLレベルからHレベルへと変化する。したがって、図4(a)〜(c)からわかるように、ロータ7が時計回り方向に回転している場合において、ホールIC5aの出力信号Saは、ロータ7の実際の回転角θaが0度の時にHレベルからLレベルへと変化し、180度の時にLレベルからHレベルへと変化する。同様に、図3に示すように配置されたホールIC5c,5bは、図4(d)(e)に示すような出力信号Sc,Sbをそれぞれ生成する。ホールIC5cの出力信号Scは、ロータ7の実際の回転角θaが60度の時にLレベルからHレベルへと変化し、240度の時にHレベルからLレベルへと変化する。また、ホールIC5bの出力信号Sbは、ロータ7の実際の回転角θaが120度の時にHレベルからLレベルへと変化し、300度の時にLレベルからHレベルへと変化する。そこで、ロータ回転位置検出部162は、これらの出力信号Sa,Sb,ScをホールIC5a〜5bから受け取り、これらの出力信号Sa,Sb,Scの変化に基づきロータ7の回転角θaを判別することで、検出回転角θrを60度間隔で離散的に取得する。
【0037】
既述の図3(a)(b)では、出力信号がHレベルからLレベルへまたはその逆に変化するホールICに斜線が付されている。例えば、ロータ7が図3(a)に示す回転位置にある場合、ロータ回転位置検出部162は、ホールIC5aの出力信号SaのHレベルからLレベルへの変化に基づき、ロータ7の回転角θaが0度であることを判別できるので(図4(c))、ロータ回転角推定部164に対して検出回転角θrである0度を与える。さらに、ロータ7が時計回り方向に60度回転すると、図3(b)に示すように斜線を付されたホールIC5cの出力信号Scは、LレベルからHレベルへと変化する。この場合、ロータ回転位置検出部162は、この出力信号Scの変化に基づき、ロータ7の回転角θaが60度であることを判別できるので(図4(d))、ロータ回転角推定部164に対して検出回転角θrである60度を与える。
【0038】
このように、ロータ7が60度回転する毎に、3つのホールIC5a〜5cの出力信号Sa〜ScのいずれかがLレベルからHレベルへとまたはその逆に変化するので、ロータ回転位置検出部162は、これらの出力信号Sa〜Scの変化に基づき、ロータ回転角推定部164に対して検出単位角度である60度毎に(離散的に)検出回転角θrを与える。したがって、検出回転角θrが与えられる場合には、その検出回転角θrは正確であってそのままロータ回転角として使用することができるが、その値は離散的にしか得られないためその間の値を推定する必要がある。なお、上記説明からわかるように、本実施形態では、3つのホールIC5a〜5cを含むホールセンサ5とロータ回転位置検出部162とにより、ロータ回転角を離散的に検出する回転角離散検出手段が実現されている。
【0039】
以下では、ホールセンサ5を構成するホールIC5a〜5cは、上記のような交番検知方式の2値信号出力のホールICであって図3に示すように配置されているものとして説明を進める。しかし、本発明で使用可能なホールセンサはこのような構成に限定されるものではなく、ロータ7の回転角を離散的に検出できる構成であってそのために回転角推定が必要であるものであればよい。例えば、ホールIC5a〜5cに代えて、図4(b)に示すようにロータ7の回転に従って正弦波状のアナログ信号を出力する3個のホール素子によりホールセンサ5を構成し、これら3個のホール素子を図3に示すホールIC5a〜5cと同様に配置してもよい。この場合、これら3個のホール素子の出力信号(アナログ信号)からなるセンサ信号をマイコン20が受け取り、マイコン20に内蔵されたAD変換器でデジタル信号に変換し、そのデジタル信号に基づきマイコン20でのソフトウェア処理により検出回転角θrを離散的に取得する。すなわち、そのソフトウェア処理によりロータ回転位置検出部162が実現され、ロータ回転位置検出部162は、上記3個のホール素子の出力信号の値が零になる時点(ゼロクロス点)毎に検出回転角θrを離散的に(60度毎に)求め、求めた検出回転角θrをロータ回転角推定部164に与える。
【0040】
ロータ回転角推定部164は、ロータ回転位置検出部162によって検出された検出回転角θrに対して、現時点におけるロータ回転角を正確に推定する演算を行うことにより、この検出回転角θrを推定された電気角θreに補正し出力する(この推定された電気角θreは、後述の回転角推定処理等の説明において「回転角推定値θre」と呼ばれる)。この推定演算については詳しくは後述する。なお、本実施形態では、ロータ7の極対数が1であるため、ロータの電気角は機械角に一致している。またこの極対数は2以上であってもよい。
【0041】
またロータ回転角推定部164は、ロータ回転位置検出部162から新たに検出回転角θrを受け取ると、当該受け取った検出回転角θr(今回受け取った検出回転角θr)と、前回に受け取った検出回転角θr’とを記憶するとともに、前々回にロータ回転位置検出部162から検出回転角θr''を受け取った時点から前回の時点までの時間間隔ΔTk-1 と、前回の時点から今回の時点までの時間間隔ΔTk とを記憶する。これらの値はロータ回転角の推定のために使用されるが、詳しくは後述する。さらにロータ回転角推定部164は、トルクセンサ3からの操舵トルクTを受け取り(図2参照)、この操舵トルクTもロータ7の回転角の推定に使用する。この詳細も後述する。なお、ロータ回転角推定部164が受け取る操舵トルクTは、より一般的には、モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクすなわち非モータトルクと言うべきものである。
【0042】
基本アシスト制御部180は、アシストマップと呼ばれる、操舵トルクと目標電流値とを対応づけるテーブルを参照し、操舵トルクTと車速Sとに基づいて、ブラシレスモータ1に流すべき電流の目標値である目標電流値Itを決定する。モータ電流指令値演算部188は、目標電流値Itに基づいてq軸電流指令値iq*を出力する。このq軸電流指令値iq*は、ブラシレスモータ1が発生すべきトルクに対応する電流値であり、減算器124に入力される。一方、d軸電流指令値id*は、トルクに関与しないのでid*=0として、減算器122に入力される。
【0043】
U相電流検出器154およびV相電流検出器156は、それぞれモータのU相、V相の巻き線(本明細書では単に「U相、V相」という)に流れる電流を検出し、U相電流検出値iuとV相電流検出値ivとをそれぞれ電圧信号で出力する。これらのU相電流検出器154およびV相電流検出器156は、モータ駆動回路152からブラシレスモータ1へ繋がる線に対して配置されるが、モータ駆動回路152内の各駆動用素子と接地点との間に配置されてもよい。
【0044】
3相交流/d−q座標変換部138は、ロータの電気角θreに基づいて、U相電流検出値iuおよびV相電流検出値ivを、d−q座標上の値であるd軸モータ電流値idおよびq軸モータ電流値iqに変換する。このd軸モータ電流値idおよびq軸モータ電流値iqは、減算器122および減算器124にそれぞれ入力される。
【0045】
減算器122では、d軸電流指令値id*とd軸モータ電流値idとの偏差id*−idが出力される。そして、d軸電流PI制御部126では、その偏差id*−idに基づく比例積分演算によって、d軸電圧指令値vd*が出力される。一方、減算器124では、q軸電流指令値iq*とq軸モータ電流値iqとの偏差iq*−iqが出力される。そして、q軸電流PI制御部128では、その偏差iq*−iqに基づく比例積分演算によって、q軸電圧指令値vq*が出力される。
【0046】
d−q/3相交流座標変換部132では、ロータ7の電気角θreに基づいて、d軸電圧指令値vd*およびq軸電圧指令値vq*を、3相交流座標上の値であるU相電圧指令値vu*およびV相電圧指令値vv*に変換する。そして、符号反転加算器134は、U相電圧指令値vu*およびV相電圧指令値vv*からW相電圧指令値vw*を算出する。
【0047】
PWM信号生成回路150は、U相電圧指令値vu*、V相電圧指令値vv*、W相電圧指令値vw*を受け取り、それらの指令値に応じてデューティ比の変化するPWM信号Su、Sv、Swを生成する。モータ駆動回路152では、そのPWM信号Su、Sv、Swによってスイッチング素子がオン/オフされ、それにより、デューティ比に応じた電圧vu、vv、vwがブラシレスモータ1のU相、V相、W相にそれぞれ印加される。
【0048】
<2.2 モータ制御処理>
図5は、本実施形態においてモータ1の駆動を制御するためのモータ制御部をソフトウェア的に実現するためにマイコン20によって実行されるモータ制御処理を示すフローチャートである。このモータ制御処理では、まず、車両情報等のモータ制御に必要な情報が取得される(ステップS2)。ここで取得される情報には、d軸電流PI制御部126およびq軸電流PI制御部128での演算やロータ回転位置検出部162での検出回転角θrの決定に必要なパラメータ値などが含まれる。後述の回転角推定処理(図6、図7参照)で使用されるフラグや変数等も当該ステップS2で初期化され(例えばFr=0、t=0、tn-1=0、ωe=0、θr=0、Dir=1等)、当該回転角推定処理で使用される定数についても適切な値が設定される(例えばGの設定等)。なお、マイコン20はタイマーを内蔵しており、このタイマーを当該ステップS2でスタートさせることにより、時刻を示す変数tが0に初期化される。
【0049】
このようなステップS2の実行後は、ステップS3において、各センサ3,4および電流検出器154,156からの出力信号に基づき、モータ1に流すべき電流の目標値(電流目標値)Itを算出する周期である制御周期毎に、操舵トルクT,車速S,U相電流検出値iu,V相電流検出値ivが取得される。またステップS3において、ホールIC5a〜5cの出力信号からなるホールセンサ5のセンサ信号に基づきモータ1におけるロータ7の電気角が離散的に検出される。すなわち、図2に示したロータ回転位置検出部162はステップS3により実現されている。ここで離散的に検出された当該電気角は、検出回転角θrとして、後述の回転角推定処理により実現されるロータ回転角推定部164に与えられる。以下では、現時点で既に取得されている検出回転角θrを、現時点以降で取得される検出回転角θrと区別するために「検出済回転角θr」という。なお、上記の制御周期は、検出回転角θrが取得される時間間隔すなわちロータ7の電気角が離散的に検出される時間間隔に比べて非常に短い。
【0050】
次のステップS4では、ロータ回転角推定部164を実現するための回転角推定処理が実行され、これによりモータ1におけるロータ7の電気角の推定値を示す回転角推定値θreが算出される。
【0051】
その後、ステップS6において、この回転角推定値θreを用いてモータ1の電流制御等のための処理が行われる。すなわちステップS6において、操舵トルクTおよび車速Sに基づいて電流目標値Itが決定され、この電流目標値Itから、ブラシレスモータ1が発生すべきトルクに対応するq軸電流指令値iq*が決定される。一方、上記の回転角推定値θreを用いて、U相電流検出値iuおよびV相電流検出値ivがd−q座標上の値としてのd軸モータ電流値idおよびq軸モータ電流値iqに変換される。そして、d軸電流指令値id*(=0)およびq軸電流指令値iq*とd軸モータ電流値idおよびq軸モータ電流値iqとに基づく制御演算によってd軸電圧指令値vd*およびq軸電圧指令値vq*が算出される。これらは、上記の回転角推定値θreを用いて3相交流座標上の値としての各相の電圧指令値vu*、vv*、vw*に変換され、各相の電圧指令値vu*、vv*、vw*はマイコン20から出力されてPWM信号生成回路150に与えられる。このようなステップS6の処理により、図2に示す目標電流演算部114と、減算器122,124と、d軸電流PI制御部126と、q軸電流PI制御部128と、d−q/3相交流座標変換部132と、符号反転加算器134と、3相交流/d−q座標変換部138とがソフトウェア的に実現される。
【0052】
上記の電流制御等の処理の後は、ステップS3へ戻る。以降、電動パワーステアリング装置におけるモータ制御装置(ECU)10が動作している間、上記の制御周期でステップS3,S4,S6が繰り返し実行される。
【0053】
<2.3 回転角推定処理>
図6は、本実施形態におけるロータ回転角推定部164をソフトウェア的に実現するための回転角推定処理(図5のステップS4)の手順を示すフローチャートであり、図7は、この回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。また図8は、本実施形態におけるモータ1のロータ7の回転角推定値θreの変化の例を実際のロータ回転角θaと共に示す波形図である。以下、図5〜図8を参照して本実施形態における回転角推定処理について説明する。既述のように、この回転角推定処理は非常に短い制御周期毎に実行され(図5参照)、この回転角推定処理においてマイコン20は下記のように動作する。
【0054】
まず、ステップS10において、ホールセンサ5からのセンサ信号に基づきロータ回転位置検出部162(図5のステップS3)において算出され離散的に与えられる検出済回転角θrを受け取ったか否かを判定する。これは、ホールセンサ5とロータ回転位置検出部162とにより実現される回転角離散検出手段がロータ回転角を検出したか否かを判定することを意味する。ホールセンサ5の信号検出により得られる検出済回転角θrを受け取らない場合(ステップS10でNoの場合)には、ステップS50に進む。このステップS50の推定演算処理については詳しく後述する。この推定演算処理が行われると、当該回転角推定処理は一旦終了し、次の制御周期が到来すると新たに当該回転角推定処理が開始される。このようにして、制御周期毎に当該回転角推定処理が装置の停止まで繰り返される。
【0055】
ステップS10での判定の結果、ホールセンサ5の信号検出により離散的に得られる検出済回転角θrを受け取った場合(ステップS10でYesの場合)には、受け取った検出済回転角θrをそのまま回転角推定値θreとし(ステップS11)、その回転角推定値θreを出力する。この回転角推定値θreは、ステップS6の処理において使用される。すなわち既述のように、この回転角推定値θreは、ステップS6の処理によって実現される3相交流/d−q座標変換部138およびd−q/3相交流座標変換部132に与えられる。
【0056】
次にステップS12において、ロータ7の回転方向を示す回転方向係数Dirに1または−1の値を代入する。具体的には、前回の検出時点tk-1(tn-2)における回転角推定値θre’と、今回の検出時点tk(tn-1)における回転角推定値θreとに基づき、図3の時計回り方向にロータ7が回転していると判定される場合には回転方向係数Dirに1を代入し、反時計回り方向にロータ7が回転していると判定される場合には回転方向係数Dirに−1を代入する。またθre’=θreである場合には、ロータ7の回転方向が途中で反転しているので、それ以前に得られた回転方向係数Dirの値の符号を逆にして再び回転方向係数Dirに代入する。なお本明細書では、時計回り方向を正方向としてロータ7の回転角や角速度の値が設定されるものとする。また本明細書では、操舵トルクTの検出時点やロータ7の回転角の検出時点等のように本発明において識別すべき時点は、“tn”や“tn+1”等のように“t”に“n”を含む添字を付加した記号で示し、これらの時点のうちロータ7の回転角の検出時点については、“tk”や“tk+1”等のように“t”に“k”を含む添字を付加した記号によっても示すものとする。
【0057】
次にステップS13において、ステップS3で取得された操舵トルクTの値をトルクτ(n−1)に代入することで、ホールセンサ5の信号検出による検出済回転角θrの取得時点(以下「回転角検出時点」または単に「検出時点」という)tk(tn-1)における操舵トルクの情報としてトルクτ(n−1)を取得する(以下、このような操舵トルク情報としてのトルクτ(n−1)の取得を「トルクτ(n−1)の検出」という)。
【0058】
次にステップS14において、ロータ7の回転方向が前回の検出時点tk-1(tn-2)から今回の検出時点tk(tn-1)までの間に反転したか否かを判定する。すなわち、前回の検出時点tk-1における回転角推定値θre’と今回の検出時点tkにおける回転角推定値θreとが等しい場合(θre’=θreの場合)には、2つの検出時点tk-1とtkの間でロータ7の回転方向が反転したと判定し、θre’≠θreの場合は、反転していないと判定する。このステップS14での判定の結果、反転していない場合(ステップS14でNoの場合)にはステップS16へ進み、反転した場合(ステップS14でYesの場合)にはステップS18へ進む。
【0059】
ステップS16に進んだ場合は、後述の角速度推定値ωeの算出のために導入された時間短縮係数Tcに1を代入した後にステップS20へ進む。一方、ステップS18へ進んだ場合には、前回の回転角検出時点tk-1から今回の回転角検出時点tkまでの時間間隔ΔTkが、前々回の回転角検出時点tk-2から前回の回転角検出時点tk-1までの時間間隔ΔTk-1よりも大きいか否かを判定する。その判定の結果、時間間隔ΔTkがΔTk-1よりも大きい場合には、ステップS19において、時間短縮係数Tcに1/2を代入した後にステップS20へ進み、時間間隔ΔTkがΔTk-1以下である場合には、ステップS16において時間短縮係数Tcに1を代入した後にステップS20へ進む。
【0060】
ステップS20では、次の制御周期以降での回転角推定処理(ステップS50)において回転角推定値θreを算出するために使用する角速度推定値ωeを下記式(1)により設定し、次にホールセンサ5の信号検出により取得されると予想される検出回転角である検出予定回転θnxを下記式(2)により設定する。
ωe=Dir・60/(ΔTk・Tc) …(1)
θnx=θre+Dir・60 …(2)
またステップS20において、フラグFrに0を代入し、時点tn-1に現時点の時刻t(タイマーが示す時刻t)を代入する。なお、ステップS20において上記式(1)により角速度推定値ωeが決定されることから、ステップS20の実行によりロータ7の回転速度についての速度推定手段が実現される。
【0061】
上記のステップS20を実行すると、回転角推定処理を一旦終了し、図5のモータ制御処理のルーチンに復帰する。
【0062】
その後、モータ制御処理におけるステップS6を実行し、ステップS3に戻る。そして、ステップS3を実行した後、再びステップS4を実行する。このとき実行されるステップS4の回転角推定処理では、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取らないので(図6のステップS10:No)、ステップS50に進み、推定演算処理を実行する。
【0063】
この推定演算処理においてマイコン20は、図7に示すフローチャートに従って以下のように動作する。なお以下では、ロータ回転角の推定のうち、ロータ7がその回転角の直前の検出時点tk(tn-1)での回転方向と同じ方向に回転すると想定されたロータ回転角の推定を「順方向推定」と呼び、ロータ7がその回転角の直前の検出時点tkでの回転方向とは反対の方向に回転すると想定されたロータ回転角の推定を「逆方向推定」と呼ぶものとする(他の実施形態においても同様)。
【0064】
図7の推定演算処理では、まずステップS21において、フラグFrが1か否かを判定する。既述のように、ホールセンサの信号検出により離散的に得られる検出済回転角θrを受け取ると(ロータ回転角が新たに検出されると)フラグFrに0が代入される(図6のステップS20)。この場合、ステップS21での判定の結果、ステップS22へ進み、上記の検出済回転角θrおよび現時点の時刻tとステップS20で得られた角速度推定値ωeとを用いて、下記式で示される順方向推定演算により回転角推定値θreを算出する。
θre=θr+ωe・(t−tn-1) …(3)
これは、図8(a)(b)に示すように、ロータ7が角速度推定値ωeの速度で回転するものとして回転角θrの検出時点tn-1(tk)以降におけるロータ7の回転角を推定することを意味する。
【0065】
次にステップS24において、上記のように算出される回転角推定値θreの検出済回転角θrからの偏差(回転角推定値θreと検出済回転角θrとの差の絶対値)|θre−θr|が60度以上であるか否かを判定する。この判定の結果、当該偏差|θre−θr|が60度よりも小さい場合には、当該推定演算処理(S50)を終了し、図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰し、ステップS6以降の処理を実行する。
【0066】
その後、次の制御周期において回転角推定処理(S4)が開始されると、まず、図6のステップS10において、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取ったか否かを判定する。既述のように、ロータ回転角は60度毎に離散的に得られるので、一旦、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取ると、次に新たな検出済回転角θrを受け取るまでは、ステップS10でNoと判定されて、制御周期毎に図7の推定演算処理におけるステップS21→S22→S24を実行する。
【0067】
その結果、制御周期毎にステップS22において順方向推定演算処理(式(3))により回転角推定値θreが更新されていく。そして、回転角検出値θreが検出予定回転角θnx(図6のステップS20で設定)に達すると、上記偏差|θre−θr|が60度となるので、ステップS24においてYesと判定され、ステップS26へ進む。
【0068】
ステップS26では、現時点の時刻tを回転角推定値θreが検出予定回転角θnxに達した時点tnとし、この時点tn以降においてロータ7の回転方向が反転するとみなして回転角推定値θreを算出するために、すなわち逆方向推定演算により回転角推定値θreを算出するために、フラグFrに1を代入する。また次のステップS28において、当該制御周期にステップS3で取得された操舵トルクTの値をトルクτ(n)に代入することで、この時点tnにおける操舵トルクの情報としてトルクτ(n)を取得する(トルクτ(n)の検出)。
【0069】
次にステップS31において、検出済回転角θrが取得された時点すなわちロータ回転角の直前の検出時点(以下「直前検出時点」という)tn-1(tk)におけるトルクτ(n−1)と、回転角推定値θreが検出予定回転角θnxに達した時点(以下「検出予定回転角到達時点」という)tnにおけるトルクτ(n)と、直前検出時点tn-1(tk)で算出された角速度推定値ωe(ステップS20参照)とから、ロータ7の回転方向が直前検出時点tn-1(tk)と検出予定回転角到達時点tnとの間で反転したか否かを判定(推定)する。具体的には、上記のトルクτ(n−1)とトルクτ(n)との積S(n)=τ(n−1)・τ(n)の正負、および、上記の角速度推定値ωeが予め決められた所定角速度値ωoよりも大きいか否かにより、下記のように判定する。
(1)S(n)>0または|ωe|>ωoであれば、回転方向は反転していないと判定する。
(2)S(n)<0かつ|ωe|≦ωoであれば、回転方向が反転したと判定する。
上記(1)(2)の判定は、直前検出時点tn-1(tk)および検出予定回転角到達時点tnにおける操舵トルクTの向きと角速度推定値ωeの大きさとに基づき、ロータ7の回転方向が反転したか否かを推定することを意味する。ここで、所定角速度値ωo(>0)は、電動パワーステアリング装置において通常の運転者が操作する場合の通常の角速度相当値であり、例えば150rpm程度であるが、個々の装置毎に適切な所定角速度値ωoが実験やシミュレーション等により決定される。このようなステップS31がマイコン20によって実行されることにより、ロータの回転方向が反転したか否かを推定する反転推定手段が実現される。
【0070】
ステップS31での判定の結果、回転方向が反転していないと推定される場合すなわち上記(1)の場合には、操舵トルクの変化がロータ7の角速度の変化に影響し、次式で与えられる操舵トルクの変化量Δτ(n)の絶対値が大きいほどロータ7の回転が減速しているとみなす。
Δτ(n)=τ(n)−τ(n−1) …(4)
この場合、本実施形態では、回転角推定値θreは、検出予定回転角到達時点tn以降は検出済回転角θrの方向に戻るように角速度−ωeで変化するものとし、次式で与えられる角度量Δθだけ検出予定回転角θnxから変化すると、その後は、図8(a)に示すように、次にロータ回転角が検出されるまで(ステップS10でYesと判定されるまで)変化せず一定値に維持される。
Δθ=G×|Δτ(n)| …(5)
ここで、Gは所定の定数であり、その具体的な値は、実験またはシミュレーション等によって適切に設定される。下記のように、回転方向が反転していると判定された場合には、角度量Δθは60/2=30[度]に設定されるので、上記式(5)で与えられる角度量Δθが30[度]よりも小さくなるように定数Gの値が設定される(0<Δθ<30)。
【0071】
一方、ステップS31での判定の結果、回転方向が反転していると推定される場合すなわち上記(2)の場合には、本実施形態では、回転角推定値θreは、検出予定回転角到達時点tn以降は上記(1)の場合と同様、検出済回転角θrの方向に戻るように角速度−ωeで変化するものとする。このような戻し処理は、図8(b)に示すように、回転角推定値θreが検出予定回転角θnxと検出済回転角θrとの真ん中に相当する回転角(θnx+θre)/2=90[度]に達するまで、すなわち角度量Δθ=60/2=30[度]だけ変化するまで継続する。その後、回転角推定値θreは、次にロータ回転角が検出されるまで(ステップS10でYesと判定されるまで)変化せず一定値(90[度])に維持される。
【0072】
本実施形態において上記のようにロータ回転角を推定するために、マイコン20は、図7に示すフローチャートに従って以下の同様に動作する。
【0073】
まず、ステップS31でロータ7の回転方向が反転したと判定された場合には、ステップS32へ進んで、上記の角度量Δθを上記式(5)に示すように設定し、その後に当該推定演算処理(S50)を終了する。一方、ロータ7の回転方向が反転していないと判定された場合には、ステップS34へ進んで、上記の角度量Δθを30[度]に設定し、その後に当該推定演算処理(S50)を終了する。このようにして当該推定演算処理を終了すると、図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0074】
その後、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取るまでは(ロータ回転角が新たに検出されるまでは)、制御周期毎に図7の推定演算処理を実行する(図6のS10,S50参照)。この間、フラグFr=1であるので、ステップS21でYesと判定されて、ステップS36へ進む。
【0075】
ステップS36では、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が(ステップS32またはS34で設定される)角度量Δθ以上であるか否かを判定する。
【0076】
この判定の結果、上記偏差|θre−θr|が角度量Δθよりも小さい場合(Noの場合)には、ステップS38へ進み、検出予定回転角θnxと角速度推定値ωeと検出予定回転角到達時点tnからの経過時間t−tnとを用いて、下記式で示される逆方向推定演算により回転角推定値θreを算出する。
θre=θnx−ωe・(t−tn) …(6)
これは、図8(a)(b)に示すように、検出予定回転角到達時点tnを経過すると、ロータ7が回転方向を反転し角速度推定値ωeの速度で逆方向に回転するものとみなしてロータ回転角を推定することを意味し、回転角推定値θreは検出済回転角θrに向かって速度推定値ωeの速度で変化することになる。このような逆方向推定演算を行った後は、当該推定演算処理(S50)を終了する。
【0077】
このようにして、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取らなければ、上記偏差|θre−θr|が角度量Δθよりも小さい間、ステップS36でNoと判定されて、制御周期毎に推定演算処理(S50)におけるステップS21→S36→S38を実行する。その結果、逆方向推定演算処理(式(6))により回転角推定値θreが更新されていく。この間に、回転角推定値θreの検出予定回転角θnxからの偏差|θre−θnx|が上記角度量Δθに達すると、ステップS36においてYesと判定され、上記の逆方向推定演算を行うことなく、そのまま当該推定演算処理を終了する。
【0078】
したがって、上記の偏差|θre−θnx|が上記角度量Δθに達する時点tn+1以降、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取るまでは、図8(a)(b)に示すように、回転角推定値θreは、検出予定回転角θnxから上記角度量Δθだけ検出済回転角θrの方向に変化させた値(θnx−Dir・Δθ)に維持される。ここで角度量Δθは、ステップS31において回転方向が反転していないと推定された場合はG×|Δτ(n)|であり、反転していると推定された場合は30[度]である。
【0079】
制御周期毎に上記のような推定演算処理(S50、図7)を繰り返し実行している間に、ホールセンサ5の信号検出により得られる新たな検出済回転角を受け取ると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この新たな検出済回転角は、ロータ7の回転方向が反転していない場合は、図8(a)に示すように、θr+Dir・60(図8(a)の例では120度)であり、反転している場合は、図8(b)に示すように、θr(図8(b)の例では60度)である。なお、図8(a)(b)では、検出予定回転角到達時点tn以降かつ上記偏差|θre−θnx|が上記角度量Δθに達する時点tn+1以降においてロータ回転角が新たに検出されるが、直前検出時点tn-1(tk)以降に操舵トルクの大きさが低減しない場合等には、それらの時点tnまたはtn+1以前にロータ回転角が検出される。
【0080】
図6の回転角推定処理におけるステップS10で再びYesと判定された場合には、上記の直前検出時点tk(tn-1)を前回の検出時点tk-1(tn-2)に置き換えると共に、新たな検出時点tk+1(tn+2)を今回の検出時点tk(tn-1)に置き換え、かつ、新たなロータ回転角の検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、ステップS11以降の処理を実行する。このときのステップS11以降の処理では、図8(a)に示すように、新たな検出済回転角θrが前回の検出済回転角θr’と異なる場合には、ステップS14においてロータ7の回転方向が反転していないと判定し、ステップS16以降のステップを実行する。一方、図8(b)に示すように、新たな検出済回転角θrが前回の検出済回転角θr’に等しい場合には、ステップS14においてロータ7の回転方向が反転したと判定し、ステップS18以降のステップを実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0081】
以上説明した回転角推定処理(S4)および推定演算処理(S50)は、本実施形態に係るモータ制御装置が動作している間、制御周期毎に実行され(図5)、制御周期毎に得られる回転角推定値θreを用いてモータ1の電流制御が行われる(図2、図5)。
【0082】
<2.4 効果>
上記のように本実施形態では、ホールセンサ5の検出信号に基づき検出回転角θrが取得された時点tkから次に新たな検出回転角が取得される時点tk+1までに回転角推定値θreが検出予定回転角θnxに達した場合には、その後、回転角推定値θreは、逆方向推定演算(図7のS38)により検出済回転角θrに向かって変化し(戻し処理が行われ)、検出予定回転角θnxから角度量Δθだけ変化した時点tn+1で変化を停止し(ステップS36:Yes)、その時点tn+1以後は一定値(θnx−Dir・Δθ)に維持される。ここで、検出予定回転角到達時点tnにおいてトルク積S(n)=τ(n−1)・τ(n)の正負および角速度推定値ωeに基づきロータ7の回転方向が反転しているか否かが判定される。その判定結果に基づき、回転方向が反転していると推定される場合にはΔθ=(θr+θnx)/2=30となるが、反転していないと推定される場合には、Δθ=G×|Δτ(n)|となって、角度変化量Δθはトルク変化量Δτ(n)=τ(n)−τ(n−1)の絶対値に比例する(ステップS31〜S34)。
【0083】
上記のような本実施形態によれば、ロータ7の回転方向が反転する場合に回転角の推定誤差が小さく抑えられるだけでなく(図8(b))、ロータ7の回転方向が反転しない場合において次にロータ回転角が検出されるまでに回転角推定値θreが検出予定回転角θnxに達しても、上記の角度量Δθをトルク変化量Δτ(n)の絶対値に応じた値とすることによりロータ回転角の推定誤差が小さく抑えられる(図8(a)参照)。その結果、モータ1の発生トルクすなわち本実施形態に係るモータ制御装置を備えた電動パワーステアリング装置における操舵補助力が、必要以上に低下するのを防止し、当該電動パワーステアリング装置において良好な操舵感を得ることができる。
【0084】
<3.第2の実施形態>
<3.1 モータ制御装置の構成>
本発明の第2の実施形態に係るモータ制御装置も、上記第1の実施形態と同様、図1に示すように電動パワーステアリング装置において使用され、ECU10を用いて構成されており、ブラシレスモータ1を駆動する。また、このモータ制御装置の構成は、ロータ回転角推定部164をソフトウェア的に実現するための図6の回転角推定処理において使用される推定演算処理(S50)の手順が異なる点を除き、上記第1の実施形態と実質的に同様である(図2〜図6)。そこで以下では、本実施形態における推定演算処理を中心に説明し、他の部分については同一または対応する構成要素に同一の参照符号を付して詳しい説明を省略する。
【0085】
<3.2 回転角推定処理>
図9は、本実施形態における回転角推定処理(図6)で使用される推定演算処理(S50)の手順を示すフローチャートである。また図10は、本実施形態におけるモータ1のロータ7の回転方向の推定を説明するための波形図であり、図11は、本実施形態におけるモータ1のロータ7の回転角推定値θreの変化の一例を実際のロータ回転角θaと共に示す波形図である。以下、図5および図6と共に図9〜図11を参照して本実施形態における回転角推定処理について説明する。既述のように、この回転角推定処理は非常に短い制御周期毎に実行される(図5参照)。この回転角推定処理における各ステップの処理内容は、ステップS50の推定演算処理を除き、第1の実施形態と同様であるので詳しい説明を省略する。
【0086】
ホールセンサ5からのセンサ信号に基づきロータ回転角が検出されると、その検出時点tk(tn-1)において図6のステップS11〜S20が実行され、これにより、そのときに取得される検出済回転角θrが回転角推定値θreとして設定されると共に、回転方向係数Dirや、トルクτ(n−1)、時間短縮係数Tc、角速度推定値ωe、フラグFr等が設定される。次の制御周期以降での回転角推定処理では、ロータ回転角が新たに検出されるまでは、ステップS10でNoと判定される。その結果、ステップS50へ進んで、推定演算処理が実行される。この推定演算処理においてマイコン20は、図9に示すフローチャートに従って以下のように動作する。
【0087】
まず、ステップS41においてフラグFrが0か否かを判定する。ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取ると(図6のステップS10:Yes)、フラグFrに0が代入されるので(ステップS20)、ステップS41ではYesと判定されてステップS42へ進む。この後、上記第1の実施形態と同様(図7のステップS22,S24参照)、式(3)で示される順方向推定演算により回転角推定値θreを算出し、次にステップS44において、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が60度以上であるか否かを判定する。この判定の結果、当該偏差|θre−θr|が60度よりも小さい場合には、当該推定演算処理(S50)を終了し、図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0088】
その後、制御周期毎に、図6の回転角推定処理におけるステップS10→S50および図9のステップS41→S44を実行する。その結果、制御周期毎にステップS42において順方向推定演算処理により回転角推定値θreが更新されていく。これは、図10における直前検出時点tn-1から検出予定回転角到達時点tnまでにおけるロータ回転角の推定(回転角推定値θreの算出)に相当する。このようなロータ回転角の順方向推定の過程において、ロータ回転角が新たに検出される前に回転角推定値θreが検出予定回転角θnx(図6のステップS20で設定)に達すると、上記偏差|θre−θr|が60度となるので、ステップS44においてYesと判定し、ステップS46へ進む。
【0089】
ステップS46では、現時点の時刻tを時点tnとおき、この時点tn以降すなわち検出予定回転角到達時点tn以降においてロータ7の回転方向が反転するとみなして逆方向推定演算により回転角推定値θreを算出するために、フラグFrに1を代入する。次のステップS48において、当該制御周期に図5のステップS3で取得された操舵トルクTの値をトルクτ(n)に代入することで、この検出予定回転角到達時点tnにおける操舵トルクの情報としてトルクτ(n)を取得する(トルクτ(n)の検出)。その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0090】
その後、ロータ回転角が新たに検出されるまでは、制御周期毎に図9の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=1であるので(ステップS46参照)、制御周期毎に推定演算処理においてステップS41→S51→S52→S54を実行する。
【0091】
ステップS52では、式(6)で示される逆方向推定演算により回転角推定値θreを算出し、次にステップS54において、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が所定の角度量Δθ以上であるか否かを判定する(ただし0<Δθ<60)。この判定の結果、当該偏差|θre−θr|が当該角度量Δθよりも小さい場合(Noの場合)には、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。なお、図10および図11に示す動作例では、上記角度量Δθは60/2=30[度]に設定されている。
【0092】
ステップS54での判定の結果、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が上記角度量Δθ以上の場合(Yesの場合)には、ステップS56へ進む。ステップS56では、現時点の時刻tすなわち検出予定回転角θnxから検出済回転角θrの方向に上記角度量Δθだけ変化させた回転角(以下「中間回転角」という)θnx−Dir・Δθに回転角推定値θreが達した時点tを中間回転角到達時点tn+1とする。次にステップS58において、当該制御周期にステップS3で取得された操舵トルクTの値をトルクτ(n+1)に代入することで、この中間回転角到達時点tn+1における操舵トルクの情報としてトルクτ(n+1)を取得する(トルクτ(n+1)の検出)。
【0093】
次にステップS61において、直前検出時点tn-1(tk)のトルクτ(n−1)、検出予定回転角到達時点tnのトルクτ(n)、および、中間回転角到達時点tn+1のトルクτ(n+1)の正負(符号)の組み合わせから、ロータ7の回転方向が直前検出時点tn-1(tk)と中間回転角到達時点tn+1との間で反転したか否かを判定(推定)する。具体的には、下記のように判定する。
(1)τ(n−1)とτ(n)の符号が互いに異なり、かつ、τ(n−1)とτ(n+1)の符号が互いに異なる場合には、回転方向が反転していると判定する(図11(a)参照)。
(2)τ(n−1)とτ(n)とτ(n+1)の符号が互いに同じである場合には、回転方向が反転していないと判定する(図11(b)参照)。
(3)τ(n−1)とτ(n)の符号が互いに異なり、かつ、τ(n)とτ(n+1)の符号が互いに異なる場合には、回転方向が反転したか否かは不明であると判定する(図11(c)参照)。また、τ(n−1)とτ(n)の符号が互いに同じで、かつ、τ(n)とτ(n+1)の符号が互いに異なる場合も、回転方向が反転したか否かは不明であると判定する。
上記(1)〜(3)の判定は、直前検出時点tn-1(tk)、検出予定回転角到達時点tn、および中間回転角到達時点tn+1における操舵トルクの向きに基づき、ロータ7の回転方向が反転したか否かを推定することを意味する。このようなステップS61がマイコン20によって実行されることにより、ロータの回転方向が反転したか否かを推定する反転推定手段が実現される。
【0094】
ステップS61での判定の結果、回転方向が反転していると推定される場合すなわち上記(1)の場合には、中間回転角到達時点tn+1および中間回転角θnx−Dir・Δθを時間および回転位置の起点として逆方向推定演算を行うべく、フラグFrに2を代入する(ステップS62)。一方、ステップS61での判定の結果、回転方向が反転していないと推定される場合すなわち上記(2)の場合には、中間回転角到達時点tn+1および中間回転角θnx−Dir・Δθを時間および回転位置の起点として順方向推定演算を行うべく、フラグFrに4を代入する(ステップS64)。また、ステップS61での判定の結果、回転方向が反転しているか否かが不明である場合(反転の有無を推定できない場合)すなわち上記(3)の場合には、中間回転角到達時点tn+1以降において回転角推定値θreを一定値すなわち中間回転角θnx−Dir・Δθに維持すべく、フラグFrに3を代入する(ステップS63)。
【0095】
上記のステップS62,S63,S64のいずれかが実行された後は、当該推定演算処理から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0096】
その後、新たにロータ回転角が検出されるまで、制御周期毎に図9の推定演算処理を実行する(図6のS10,S50参照)。この間、フラグFrの値に応じてロータ7の回転角を推定する。すなわち、フラグFr=2の場合(回転方向の反転が推定される場合)は、制御周期毎にステップS41→S51→S66→S67を実行し、この中でステップS67において下記式(7)で示される逆方向推定演算を行う。一方、フラグFr=4の場合(回転方向の非反転が推定される場合)は、制御周期毎にステップS41→S51→S66→S68→S69を実行し、この中でステップS69において下記式(8)で示される順方向推定演算を行う。また、フラグFr=3の場合(回転方向が反転したか否かが不明の場合)は、制御周期毎にステップS41→S51→S66→S68を実行し、逆方向推定演算も順方向推定演算も行わないので回転角推定値θreは変化しない。なお既述のように、回転方向係数Dirは、直前検出時点tk(tn-1)におけるロータ7の回転方向が時計回り方向か否かに応じて+1または−1となっている。
θre=θnx−Dir・Δθ−ωe・(t−tn+1) …(7)
θre=θnx−Dir・Δθ+ωe・(t−tn+1) …(8)
【0097】
このような処理により、図10に示す動作例における回転角推定値θreは、フラグFr=2の場合には図11(a)に示すように変化し、フラグFr=4の場合には図11(b)に示すように変化し、フラグFr=3の場合には図11(c)に示すように変化する。
【0098】
上記のような回転角推定処理(図6)および推定演算処理(図9)を制御周期毎に繰り返し実行している間に、新たにロータ回転角が検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tk(tn-1)を前回の検出時点tk-1(tn-2)に置き換えると共に、新たな検出時点tk+1(tn+2)を今回の検出時点tk(tn-1)に置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換える共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、以上説明したステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0099】
<3.3 効果>
上記のように本実施形態では、ホールセンサ5の検出信号に基づき検出済回転角θrが取得された時点tk(tn-1)から次に新たな検出済回転角が取得される時点tk+1までに回転角推定値θreが検出予定回転角θnxに達した場合には、その後、回転角推定値θreは、逆方向推定演算(図9のS52)により検出済回転角θrに向かって変化し(戻し処理が行われ)、検出予定回転角θnxから所定の角度量Δθ(図10では30度)だけ変化した時点tn+1において、直前検出時点tn-1(tk)のトルクτ(n−1)、検出予定回転角到達時点tnのトルクτ(n)、および、中間回転角到達時点tn+1のトルクτ(n+1)の正負(符号)に基づき、ロータ7の回転方向が直前検出時点tn-1と中間回転角到達時点tn+1との間で反転したか否かが判定される。中間回転角到達時点tn+1以降の回転角推定値θreは、その判定結果に応じて、逆方向推定演算もしくは順方向推定演算により算出され、または中間回転角に維持される(ステップS61〜S69、図11(a)〜(c))。
【0100】
したがって本実施形態によれば、ロータ7の回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく(図11(a))、ロータ7の回転方向が反転しない場合において次にロータ回転角が検出されるまでに回転角推定値θreが検出予定回転角θnxに達しても、中間回転角到達時点tn+1以降で順方向推定演算を行うことによりロータ回転角の推定誤差が小さく抑えられる(図11(b))。また、ロータ7の回転方向が反転するか否かを明確に判定できない場合であっても、回転角推定値θreを中間回転角到達時点tn+1以降で一定値(中間回転角)に維持することで推定誤差の増大が抑制される(図11(c))。このような回転角推定処理により、モータ1の発生トルクすなわち本実施形態に係るモータ制御装置を備えた電動パワーステアリング装置における操舵補助力が、必要以上に低下するのを防止し、当該電動パワーステアリング装置において良好な操舵感を得ることができる。
【0101】
<4.第3の実施形態>
上記第1および第2の実施形態のようにホールセンサ5等の信号検出により離散的に得られる検出回転角に基づき現時点のロータ回転角を推定する構成では、或る時点で検出回転角を得てから次に検出回転角を得るまでの間にロータが停止する場合や、極めて低い速度でロータが回転する場合には、図13(f)に示すように、回転角推定値θreが2つの回転角の間を何度も往復することになる(図13(f)の動作例では、回転角推定値θreが2つの検出回転角60度と120度との間で往復を繰り返す)。ロータ回転角の推定結果がこのようになると、その回転角推定値θreを用いて駆動されるブラシレスモータの出力トルク(モータトルク)が振動し、そのブラシレスモータを搭載した電動パワーステアリング装置における操舵感が劣化する。そこで、本発明の第3の実施形態に係るモータ制御装置は、このような問題を解決すべく、ロータが停止する場合等であってもモータトルクの振動を抑制しモータを安定的に制御できるように構成されている。以下、このような第3の実施形態に係るモータ制御装置について説明する。
【0102】
<4.1 モータ制御装置の構成>
本実施形態に係るモータ制御装置も、上記第1の実施形態と同様、図1に示すように電動パワーステアリング装置において使用され、ECU10を用いて構成されており、ブラシレスモータ1を駆動する。また、このモータ制御装置の構成は、ロータ回転角推定部164をソフトウェア的に実現するための図6の回転角推定処理において使用される推定演算処理(S50)の手順が異なる点を除き、上記第1の実施形態と基本的に同様である(図2〜図6)。そこで以下では、本実施形態における推定演算処理を中心に説明し、他の部分については同一または対応する構成要素に同一の参照符号を付して詳しい説明を省略する。ただし本実施形態には、図6のステップS20の内容等においても第1の実施形態と若干異なる点がある。その点については以下で必要に応じて説明する。
【0103】
<4.2 回転角推定処理>
図12は、本実施形態における回転角推定処理(図6)で使用される推定演算処理(S50)の手順を示すフローチャートであり、図13は、本実施形態における回転角推定処理を説明するための波形図である。以下、図5および図6と共に図12および図13を参照して本実施形態における回転角推定処理について説明する。なお、図13(a)〜(c)に示す信号波形を生成するホール素子H1,H2,H3は、図3に示すホールIC5b,5a,5cにそれぞれ対応している。
【0104】
既述のように、図6の回転角推定処理は非常に短い制御周期毎に実行される(図5参照)。この回転角推定処理における各ステップの処理内容は、ステップS50の推定演算処理を除き、第1の実施形態と同様であるので詳しい説明を省略する。
【0105】
ホールセンサ5からのセンサ信号に基づきロータ回転角が検出されると、その検出時点tk(tn-1)において図6のステップS11〜S20が実行され、これにより、そのときに取得される検出済回転角θrが回転角推定値θreとして設定されると共に、回転方向係数Dirや、トルクτ(n−1)、時間短縮係数Tc、角速度推定値ωe、フラグFr等が設定される。ただし本実施形態では、第1の実施形態とは異なり、以後に実行される順方向推定演算および逆方向推定演算(図12参照)において時間および回転位置の起点とする基準時点tbおよび基準回転角θbにもその検出時点tkで値が設定される。すなわち本実施形態では、図6のステップS20における処理は、下記式による角速度推定値ωe、角速度推定値低減係数Ga、フラグFr、基準時点tbおよび基準回転角θbの値の設定(もしくは初期化)と置き換えられる。なお、下記式は、第1の実施形態における式(図6のステップS20)と同一のものも含んでいる。また、角速度推定値低減係数Gaは本実施形態で新たに導入されたもので、以後に実行される順方向推定演算および逆方向推定演算で使用される角速度推定値ωeの絶対値を順次低減するための係数である。この角速度推定値低減係数Gaは、本実施例では下記に示すようにGa=0.5であるが、これに限定されるものではなく、1よりも小さい正数であればよい。また、この角速度推定値低減係数Gaは、必ずしも固定値である必要はなく、0<Ga<1を満たす範囲で変化させてもよい。
ωe←Dir・60/(ΔTk・Tc) …(9)
θnx←θre+Dir・60 …(10)
θb←θr …(11)
Ga←0.5 …(12)
Fr←0 …(13)
tb←t …(14)
【0106】
次の制御周期以降における回転角推定処理では、新たにロータ回転角が検出されるまではステップS10でNoと判定される。その結果、ステップS50へ進んで、推定演算処理が実行される。この推定演算処理においてマイコン20は、図12に示すフローチャートに従って以下のように動作する。
【0107】
上記第1および第2の実施形態と同様、新たにロータ回転角が検出された直後(新たな検出済回転角θrの取得直後)は、図6のステップS10でYesと判定され、ステップS20においてフラグFrに0を代入する。このため、直前検出時点tk以降、回転角推定値θreが検出予定回転角θnxに達するまで(|θre−θb|≧60となるまで)は、制御周期毎に図12の推定演算処理においてステップS71→S72→S74を実行する。このときステップS72の順方向推定演算では、次式により回転角推定値θreを算出して更新する。
θre=θb+ωe・(t−tb) …(15)
【0108】
上記式(15)による回転角推定値θreの更新は、図13に示すように、直前検出時点tk以降においてロータ7が角速度ωeで回転しているとみなしてロータ回転角を推定することを意味する。
【0109】
このようなロータ回転角の順方向推定の過程において、新たにロータ回転角が検出される前に回転角推定値θreが検出予定回転角θnx(図13の例では120度)に達すると、回転角推定値θreの基準回転角θbからの偏差|θre−θb|が60度となるので、ステップS74においてYesと判定され、ステップS76へ進む。
【0110】
ステップS76では、現時点の時刻tを基準時点tbとおき、この基準時点tb以降すなわち検出予定回転角到達時点tn以降においてロータ7の回転方向が反転するとみなす。この想定の下で後述の逆方向推定演算により回転角推定値θreを算出するために、フラグFrに1を代入すると共に、検出予定回転角θnxを新たな基準回転角θbとするために次式により基準回転角θbを更新する。
θb←θb+Dir・60 …(16)
【0111】
次にステップS78において、下記式により角速度推定値ωeを更新することにより、次に実行される逆方向推定演算で使用される角速度推定値ωeの大きさ(絶対値)を低減する(本実施例ではGa=0.5であり一般的には0<Ga<1)。
ωe←Ga・ωe …(17)
その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0112】
その後、新たにロータ回転角が検出されるまでは、制御周期毎に図12の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=1であるので(ステップS76参照)、回転角推定値θreの基準回転角θbからの偏差が所定の角度量Δθに達するまで(|θre−θb|≧Δθとなるまで)は、制御周期毎に推定演算処理においてステップS71→S81→S82→S84を実行する。このときステップS82の逆方向推定演算では、次式により回転角推定値θreを算出し更新する。
θre=θb−ωe・(t−tb) …(18)
【0113】
上記式(18)による回転角推定値θreの更新は、図13に示すように、検出予定回転角θnx(図13では120度)を起点としてロータ7が角速度−ωeで回転しているとみなしてロータ回転角を推定することを意味する。この逆方向のロータ回転角推定の前に、ステップS78において上記式(17)により角速度推定値ωeの大きさが角速度推定値低減係数Gaを用いて低減されているので、回転角推定値θreの変化速度は、直前の順方向のロータ角推定における変化速度のGa倍の速度に低減されている(本実施例ではGa=0.5)。
【0114】
このような逆方向のロータ回転角推定の過程において、新たにロータ回転角が検出される前に回転角推定値θreの基準回転角θbからの偏差|θre−θb|が所定の角度量Δθに達すると、ステップS86へ進む(ただし0<Δθ≦60)。
【0115】
ステップS86では基準時点tbを現時点の時刻tに更新し、この新たな基準時点tb以降においてロータ7の回転方向が更に反転するとみなす。すなわち、直前検出時点tkにおける回転方向と同じ方向に回転するとみなす。この想定の下で後述の順方向推定演算により回転角推定値θreを算出するためにフラグFrに2を代入すると共に、検出予定回転角θnxから検出済回転角θrに向かって所定の角度量Δθだけ変化した角度を新たな基準回転角θbとするために次式により基準回転角θbを更新する。
θb←θb−Dir・Δθ …(19)
【0116】
次にステップS88において、既述の式(17)により角速度推定値ωeを更新することにより、次に実行される順方向推定演算で使用される角速度推定値ωeの大きさ(絶対値)を低減する。その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0117】
その後、次にロータ回転角が検出されるまでは、制御周期毎に図12の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=2であるので(ステップS86参照)、回転角推定値θreの基準回転角θbからの偏差が上記角度量Δθに達するまで(|θre−θb|≧Δθとなるまで)は、制御周期毎に推定演算処理においてステップS71→S81→S92→S94を実行する。このときステップS92の順方向推定演算では、次式により回転角推定値θreを算出し更新する。
θre=θb+ωe・(t−tb) …(20)
【0118】
上記式(20)による回転角推定値θreの更新は、図13に示すように、検出予定回転角θnxから上記角度量Δθだけ検出済回転角θrの方向に変化させた値(図13(g)では60度)を起点としてロータ7が角速度ωeで回転しているとみなしてロータ回転角を推定することを意味する。この順方向のロータ回転角推定の前に、ステップS88において上記式(17)により角速度推定値ωeの大きさが角速度推定値低減係数Gaを用いて低減されているので、回転角推定値θreの変化速度は、直前の逆方向のロータ角推定の過程における変化速度のGa倍の速度に低減されている(本実施例ではGa=0.5)。
【0119】
このような順方向のロータ回転角推定の過程において、新たにロータ回転角が検出される前に上記偏差|θre−θb|が上記角度量Δθに達すると、ステップS96へ進む。
【0120】
ステップS96では、基準時点tbを現時点の時刻tに更新し、この新たな基準時点tb以降においてロータ7の回転方向が更に反転するとみなす。すなわち、直前検出時点tkにおける回転方向とは反対の方向に回転するとみなす。この想定の下で逆方向推定演算により回転角推定値θreを算出するためにフラグFrに1を代入すると共に、現時点の基準回転角θbから検出予定回転角θnxに向かって上記角度量Δθだけ変化した角度を新たな基準回転角θbとするために次式により基準回転角θbを更新する。
θb←θb+Dir・Δθ …(21)
【0121】
次にステップS98において、既述の式(17)により角速度推定値ωeを更新することにより、次に実行すべき逆方向推定演算で使用される角速度推定値ωeの大きさ(絶対値)を低減する。その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0122】
その後、次にロータ回転角が検出されるまでは、制御周期毎に図12の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=1であるので(ステップS96参照)、上記偏差|θre−θb|が上記角度量Δθに達するまでは、制御周期毎に推定演算処理においてステップS71→S81→S82→S84を実行する。
【0123】
上述の説明からわかるように、これ以降は、上記偏差|θb−θb|が上記角度量Δθに達する毎に、式(18)による逆方向のロータ回転角推定(ステップS82参照)と、式(20)による順方向のロータ回転角推定(ステップS92参照)とを交互に繰り返し、このようなロータ回転角推定の過程において回転方向が切り換わる毎に角速度推定値ωeの大きさ(絶対値)が角速度推定値低減係数Gaの比率で順次小さくなっていく。
【0124】
上記のような回転角推定処理(図6)および推定演算処理(図12)を制御周期毎に繰り返し実行している間に、新たにロータ回転角が検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tkを前回の検出時点tk-1に置き換えると共に、新たな検出時点tk+1を今回の検出時点tkに置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、以上説明したステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0125】
<4.3 効果>
上記のように本実施形態では、ホールセンサ5の検出信号に基づき検出済回転角θrが取得された時点tk(tn-1)から次に新たな検出済回転角が取得される時点tk+1までの期間が長い場合(例えばロータ7が停止している場合やロータ7の回転が極めて遅い場合)には、ロータ回転角の順方向推定の過程で回転角推定値θreが検出予定回転角θnxに達したとき、および、ロータ回転角の逆方向推定の過程で回転角推定値θreが検出予定回転角θnxから検出済回転角θrに向かって上記角度量Δθだけ変化した角度に達したときに回転方向が反転したとみなされ、かつ、回転方向が反転したとみなされる毎に回転速度(角速度)の大きさが角速度推定値低減係数Gaの比率で低減していくとみなされる(ステップS78,S88,S98)。しがって、回転角推定値θreは、例えばΔθ=60[度]の場合には図13(g)に示すように変化し、例えばΔθ=30[度]の場合には図13(h)に示すように変化する。なお、上記角度変化量Δθは必ずしも固定値でなくてもよく、例えば上記第1の実施形態におけるように、操舵トルクの変化量Δτ(n)に応じた値としてもよい(式(5)参照)。
【0126】
このような本実施形態によれば、ロータ7の回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく、ロータ7の回転方向が反転せずに途中で停止する場合やロータ7の回転が極めて遅くなった場合であっても、回転角推定値θreが2つの回転角の間で往復を繰り返してモータトルクが振動するという事態を回避または抑制することができる。これにより、ロータ7が途中で停止する場合等であってもモータ1を安定的に制御し、本実施形態に係るモータ制御装置を備えた電動パワーステアリング装置において良好な操舵感を得ることができる。
【0127】
<4.4 変形例>
<4.4.1 第1の変形例>
図14および図15は、上記第3の実施形態の第1の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートであり、図16は、本変形例における回転角推定処理を説明するための波形図である。本変形例は、上記第2の実施形態の特徴的構成を上記第3の実施形態に組み込んだものであり、図14および図15に示す推定演算処理以外の構成については、上記第2または第3の実施形態と同様であるので、同一または対応する部分に同一の参照符号を付して詳しい説明を省略する。以下では、図14〜図16を参照しつつ本変形例における推定演算処理を中心に説明する。
【0128】
本変形例においても、上記第3の実施形態と同様、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取ると、すなわち新たにロータ回転角が検出されると(図6のステップS10:Yes)、図6の回転角推定処理におけるステップS11以降のステップの実行により、検出済回転角θrが回転角推定値θreとして設定されると共に、既述の式(9)〜(14)に従って角速度推定値ωeや基準時点tb等が設定される。その後、新たにロータ回転角が検出されるまでは、図6のステップS10でNoと判定されて、制御周期毎に図14および図15に示す推定演算処理(S50)が実行される。このときマイコン20は、図14および図15に示す当該推定演算処理(S50)のフローチャートに従って以下のように動作する。
【0129】
新たにロータ回転角が検出されなければ、回転角推定値θreの基準回転角θbに対する偏差|θre−θb|が60度に達するまでは(回転角推定値θreが検出予定回転角θnxに達するまでは)、ロータ回転角の順方向推定を行う。回転角推定値θreの基準回転角θbに対する偏差|θre−θb|が60度に達した後は、ロータ回転角の逆方向推定を行う。これらの順方向および逆方向の推定処理は、ステップS71〜S78およびS81〜S84によってそれぞれ実現され、これらのステップは、第3の実施形態における推定演算処理(図12)のステップS71〜S78およびS81〜S84と実質的に同様である。しかし本変形例では、第2の実施形態の特徴(図9のステップS48)を組み込むべく、トルクτ(n)を検出するためのステップS79が挿入されている。
【0130】
上記のロータ回転角の逆方向推定の過程で、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が所定の角度量Δθに達すると、ステップS84においてYesと判定されてステップS86へ進む。その後のステップS86,S88も第3の実施形態における推定演算処理(図12)のステップS86,S88と実質的に同様である。
【0131】
ステップS88の次には、第2の実施形態の特徴(図9のステップS58)を組み込むべく、トルクτ(n+1)を検出するためのステップS89が挿入されており、更に、第2の実施形態における推定演算処理(図9)のステップS61〜S64に相当するステップS101〜S104が挿入されている。これにより、第2の実施形態と同様、直前検出時点tn-1(tk)のトルクτ(n−1)、検出予定回転角到達時点tnのトルクτ(n)、および、中間回転角到達時点tn+1のトルクτ(n+1)の正負の組み合わせから、ロータ7の回転方向が直前検出時点tn-1(tk)と中間到達tn+1との間で反転したか否かを判定(推定)する。その判定の結果、回転方向が反転していると推定される場合にはフラグFrに2を代入し(ステップS102)、回転方向が反転していないと推定される場合にはフラグFrに4を代入し(ステップS104)、回転方向が反転したか否かは不明である場合にはフラグFrに3を代入する(ステップS103)。
【0132】
その後、当該推定演算処理を一旦終了し、次の制御周期以降で当該制御演算処理が開始されたときには、フラグFrは2,3,4のいずれかであるので、ステップS71およびS81においてNoと判定され、図15のテップS110へ進む。これ以降、新たに検出済回転角が取得されるまでは、制御周期毎に、図15の推定演算処理においてフラグFrの値に応じた所定のステップ群による処理が下記のように実行される。
【0133】
フラグFr=2の場合、すなわち図14のステップS101での判定の結果、回転方向が反転していると推定される場合には、図15のステップS110〜S118によるロータ回転角の逆方向推定とステップS120〜S128によるロータ回転角の順方向推定とが交互に行われる。その結果、中間回転角到達時点tn+1以降、回転角推定値θreは、図16(g)に示すように、中間回転角θnx−Dir・Δθ(図16では90度)と検出済回転角θr(図16では60度)との間を往復するように変化する。ここで、逆方向推定と順方向推定との間で推定手順が切り換わる毎に、角速度推定値ωeの大きさが順次小さくなるので(ステップS118,S128)、回転角推定値θreの変化速度(絶対値)も順次低下する。
【0134】
フラグFr=4の場合、すなわち図14のステップS101での判定の結果、回転方向が反転していないと推定される場合には、図15のステップS130〜S138によるロータ回転角の順方向推定とステップS140〜S148によるロータ回転角の逆方向推定とが交互に行われる。その結果、中間回転角到達時点tn+1以降、回転角推定値θreは、図16(h)に示すように、中間回転角θnx−Dir・Δθ(図16では90度)と検出予定回転角θnx(図16では120度)との間を往復するように変化する。ここでも、逆方向推定と順方向推定との間で回転方向の推定が切り換わる毎に、角速度推定値ωeの大きさが順次小さくなるので(ステップS138,S148)、回転角推定値θreの変化速度(絶対値)も順次低下する。
【0135】
フラグFr=3の場合、すなわち図14のステップS101での判定の結果、回転方向が反転したか否かは不明である場合には、図15の推定演算処理においてステップS110→S120→S130→S140が制御周期毎に実行されるのみであり、順方向推定演算も逆方向推定演算も行われない。その結果、中間回転角到達時点tn+1以降、回転角推定値θreは、図16(i)に示すように一定値(中間回転角θnx−Dir・Δθ)に維持される。
【0136】
図6の回転角推定処理および上記の推定演算処理(図14、図15)を制御周期毎に繰り返し実行している間に、ロータ回転角が新たに検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tkを前回の検出時点tk-1に置き換えると共に、新たな検出時点tk+1を今回の検出時点tkに置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、ステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0137】
上記のような本変形例によれば、ロータ7の回転方向が反転したか否かが中間回転角到達時点tn+1において判定(推定)され、回転角推定値θreは、その判定結果に応じて、逆方向推定演算もしくは順方向推定演算により算出され、または中間回転角に維持される(図14のステップS101〜S104、図15のステップS110〜S148)。また、ロータ回転角について逆方向推定と順方向推定が繰り返し行われる場合には、角速度推定値ωeの大きさが順次小さくなるので(ステップS118,S128,S138,S148)、回転角推定値θreの変化速度(絶対値)が順次低下する(図16(g)(h)(i))。したがって、ロータ7の回転方向が反転するか否かに拘わらず、回転角の推定誤差が抑制されると共に、ロータ7の回転方向が反転せずに途中で停止する場合等であっても、回転角推定値θreが2つの回転角の間を往復してモータトルクが振動するという事態を回避または抑制することができる。
【0138】
<4.4.2 第2の変形例>
上記第3の実施形態における回転角推定処理(図6)および推定演算処理(図12)では、ロータ回転角推定の過程において、回転角推定値θreが予め決められた回転角(検出予定回転角θnxと中間回転角θnx−Dir・Δθ)に到達すると回転方向が反転するとみなされる(図13(f)〜(h)参照)。しかし、これに代えて、検出済回転角θrが得られてから(ロータ回転角が検出されてから)所定時間Tpが経過する毎に回転方向が反転するとみなして回転角推定値θreを算出してもよい。以下、このような構成のモータ制御装置を上記第3の実施形態の第2の変形例として説明する。
【0139】
図17は、本変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。本変形例の構成のうち図17の推定演算処理以外の構成については上記第3の実施形態と同様であるので、同一または対応する部分に同一の参照符号を付して詳しい説明を省略する。以下では、図17を参照しつつ本変形例における推定演算処理を中心に説明する。
【0140】
本変形例においても、上記第3の実施形態と同様、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取ると、すなわちロータ回転角が検出されると(図6のステップS10:Yes)、図6の回転角推定処理におけるステップS11以降のステップの実行により、検出済回転角θrが回転角推定値θreとして設定されると共に、既述の式(9)〜(14)に従って角速度推定値ωeや基準時点tb等が設定される。その後、新たにロータ回転角が検出されるまでは、図6のステップS10でNoと判定されて、制御周期毎に図17に示す推定演算処理(S50)が実行される。このときマイコン20は、図17に示す当該推定演算処理(S50)のフローチャートに従って動作する。なお、ロータ回転角推定における回転方向の反転タイミング(順方向推定と逆方向推定との間での切り換わりタイミング)を決める時間Tpは、図5のステップS2で設定されるものとするが、図6のステップS20で設定してもよい。
【0141】
図17のステップS71〜S79は、図12のステップS71〜S78に対応し、本変形例では、図12のステップS74に代えてステップS75が使用されている。このような本変形例では、制御周期毎に図17の推定演算処理におけるステップS71→S72→S75を実行することにより、直前検出時点としての基準時点tbから所定期間Tpが経過するまで、ステップS72の順方向推定演算によりロータ回転角が推定される(以下、この所定時間Tpを「推定周期」という)。
【0142】
上記のロータ回転角の順方向推定が推定周期Tpだけ行われると、ステップS77でフラグFrに1が代入されるので、それ以後は、ステップS79で設定された推定周期Tpだけロータ回転角の逆方向推定が行われる。すなわち、図17のステップS82〜S89は、図12のステップS81〜S88に対応し、本変形例では、図12のステップS84に代えてステップS85が使用されている。このような本変形例では、制御周期毎に図17の推定演算処理におけるステップS71→S82→S85を実行することにより、ステップS77で更新された基準時点tbからステップS79で更新された推定周期Tpが経過するまで、ステップS82の逆方向推定演算によりロータ回転角が推定される。
【0143】
ロータ回転角についての上記の順方向推定と逆方向推定とは推定周期毎に切り換わり(ステップS75,S85)、この切り換わり毎に、ロータ回転角推定における回転方向が反転し、角速度推定値ωeの大きさが順次小さくなるだけでなく、推定周期Tpが順次長くなる(ΔTpずつ長くなる)(ステップS79,S89)。
【0144】
図6の回転角推定処理および上記の推定演算処理(図17)を制御周期毎に繰り返し実行している間に、新たにロータ回転角が検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tkを前回の検出時点tk-1に置き換えると共に、新たな検出時点tk+1を今回の検出時点tkに置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、ステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0145】
上記のような本変形例によれば、ロータ回転角について逆方向推定と順方向推定が繰り返し行われる場合には、角速度推定値ωeの大きさが順次小さくなると共に、推定周期Tpが順次長くなるので(ステップS79,S89)、ロータ7の回転方向が反転せずに途中で停止する場合やロータ7の回転が極めて遅くなった場合であっても、回転角推定値θreが2つの回転角の間を往復してモータトルクが振動するという事態を回避または抑制することができる。
【0146】
<4.4.3 他の変形例>
上記第3の実施形態ならびにその第1および第2の変形例では、角速度推定値ωeの大きさは、ロータ回転角についての推定手順が逆方向推定と順方向推定の間で切り換わる毎に一定比率で小さくなっていくが(等比数列的に小さくなっていくが)、これに変えて、角速度推定値ωeの大きさを小さくする比率を示す角速度推定値低減率Gaを変化させる(例えば徐々に小さくしていく)ようにしてもよい。
【0147】
上記第1の変形例では、回転角推定値θreが予め決められた回転角に到達すると回転方向が反転するとみなされるが(図13(f)〜(h)参照)、これに代えて、上記第2の変形例のように、ロータ回転角の推定において推定周期Tp毎に回転方向が反転する(ロータ回転角についての推定手順が逆方向推定と順方向推定の間で切り換わる)ようにしてもよい。
【0148】
上記第2の変形例では、ロータ回転角について逆方向推定と順方向推定との間で推定手順を切り変えるための推定周期Tpは、順次長くなっていくが(ステップS79,S89)、推定周期Tpを固定値としてもよい。また、上記第2の変形例では、推定周期Tp毎に推定周期TpがΔTpずつ長くなっていく(等差数列的に増大していく)が、推定周期毎Tpに推定周期Tpを所定倍する(等比数列的に増大させる)ようにしてもよい。更にまた、回転角推定値θreが検出済回転角θrから検出予定回転角θnxまで変化するのに要する時間を推定周期Tpとしてもよい。
【0149】
<5.他の実施形態または変形例>
上記第1〜第3の実施形態では、新たにロータ回転角が検出される前(新たな検出時点tk+1前)に回転角推定値θreが検出予定回転角θnxに達した場合に、回転角推定値θreは、図8、図11、図13にそれぞれ示すように変化する。しかし本発明は、これに限定されるものではなく、新たな検出時点tk+1よりも前に回転角推定値θreが検出予定回転角θnxに達した場合に、検出回転角到達時点tnから新たな検出時点tk+1までは回転角推定値θreが検出予定回転角θnxを越えないように(|θre−θr|≦|θnx−θr|=60となるように)非モータトルクとしての操舵トルクに応じて回転角推定値θreの算出方法が変更される構成であればよい。
【0150】
上記第1〜第3の実施形態では、図6の回転角推定処理において期間短縮係数Tcには1/2が代入されるが、これは、ロータ回転角の推定において、現実のロータが前回の検出時点までの角速度と同じ角速度で回転し、かつ次回の検出済回転角が得られると予想される時点の直前でその回転方向が反転し同じ角速度で回転する変化態様を想定しているからである。したがって、ロータの回転方向が反転する場合において、上記態様とは異なるロータ角速度の変化態様を想定することにより、期間短縮係数Tcに1より小さい数値であって1/2以外の数値を代入してもよい。このような場合、途中でロータの回転方向が反転したことから長くなった期間に対してその期間を短くするよう1未満の期間短縮係数Tcを乗算することにより補正すれば、補正された期間に基づき正確な回転角推定値θreを得ることができる。
【0151】
上記第1〜第3の実施形態では、ブラシレスモータ1の電気角を示す回転角推定値を算出するように構成されているが、本発明は、電気角の推定に限定されるものではなく、電気角か機械角かに拘わらずロータの回転角を推定する場合に適用可能である。また本発明は、ロータの回転角推定値に基づき駆動される、ブラシレスモータ以外の電動モータのモータ制御装置にも適用できる。
【0152】
なお本発明は、上述したコラムアシスト型の電動パワーステアリング装置だけでなく、ピニオンアシスト型やラックアシスト型の電動パワーステアリング装置にも適用できる。また本発明は、電動パワーステアリング装置以外に用いられるモータ制御装置にも適用できる。
【符号の説明】
【0153】
5a〜5c…ホールIC、6a〜6c…ステータ、7…ロータ、20…マイコン。
【技術分野】
【0001】
本発明は、ブラシレスモータ等の電動モータを駆動するモータ制御装置、および当該モータ制御装置を備えた電動パワーステアリング装置に関する。
【背景技術】
【0002】
従来から、運転者がハンドル(ステアリングホイール)に加える操舵トルクに応じて電動モータを駆動することにより車両のステアリング機構に操舵補助力を与える電動パワーステアリング装置が用いられている。電動パワーステアリング装置の電動モータには従来からブラシ付きモータが広く使用されているが、信頼性および耐久性の向上や慣性の低減などの観点から、近年ではブラシレスモータも使用されている。
【0003】
このブラシレスモータが使用されている電動パワーステアリング装置では、座標変換によるベクトル制御などでブラシレスモータを駆動する方法が一般的である。この方法では、ロータの現時点での回転位置であるロータ回転角を検出するために、ホール素子を含む位置検出センサ(ホールセンサ)が用いられることが多い。このホールセンサは、永久磁石からなるロータの周囲に、例えば120度または60度の間隔で3個が配置され、これら3個のホールセンサから出力された検出信号に基づき電気角60度毎のロータ回転角の変化が検出される。
【0004】
ここで、電気角60度毎の検出情報のみでは、現時点での正確なロータ回転角を得ることができないので、当該検出信号に基づき、現時点でのロータ回転角を推定する計算が行われるのが一般的である。例えば、検出信号における直前の検出時点からその前の検出時点までの時間間隔と、直前の検出時点からの経過時間とに基づき、現時点でのロータ回転角が推定される。
【0005】
この推定されたロータ回転角が不正確であると、脱調やモータ効率の悪化を引き起こすので、推定のための計算には従来よりさまざま工夫がなされている。例えば特許文献1には、ロータ位相推定値が次回の検出位相値に相当する値に達すると、ロータ位相推定値を今回の検出位相値に相当する値の方向へ戻す処理(以下ではこの処理を「戻し処理」という)を行うモータ制御装置の構成が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−23973号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、ロータの回転速度が急激に変化することが多い電動パワーステアリング装置において、ホールセンサからの検出信号における直前の検出時点からその前の検出時点までの時間間隔に基づいて単純に現時点でのロータ回転角を推定する計算を行うと、現実のロータ回転角と大きなずれを生じる可能性がある。
【0008】
また、文献1に記載のモータ制御装置の上記戻し処理は、現実のロータが前回の検出時点までの角速度と同じ角速度で回転し、かつ次回の検出位相角が得られると予想される時点の直前でその回転方向が反転し同じ角速度で回転する場合を想定して、上記時点でロータ位相推定値を戻すものである。そのため、現実のロータが上記場合と同様に回転すれば比較的正確なロータ位相推定値を算出することができる。しかし、現実のロータ回転角がゆっくりと変化して戻らない場合(すなわちロータの回転方向が反転しない場合)など、上記のように現実のロータが回転しない場合には正確なロータ位相推定値を算出することができない。
【0009】
また、文献1に記載のモータ制御装置の上記戻し処理において、ロータ位相推定値は、直前の検出位相値と次回の検出位相値との真ん中に相当する中間値に達すると、その後はホールセンサによる次の検出時点まで当該中間値に維持される。このような中間値に固定されると、例えばロータの回転方向が反転しない場合には、ロータ位相推定値と現実のロータ位相とのずれが大きくなり、必要な大きさのモータトルクが得られないことがある。
【0010】
そこで本発明の目的は、ロータの回転速度が急激に変化する場合や、戻し処理が行われるときに回転方向が反転しない場合、ロータの回転が停止する場合であっても、ロータ回転角を正確に推定し、その推定結果に基づきモータを駆動するモータ制御装置を提供することである。また、本発明の他の目的は、そのようなモータ制御装置を備えた電動パワーステアリング装置を提供することである。
【課題を解決するための手段】
【0011】
第1の発明は、電動モータにおけるロータの回転角の推定値を算出し、当該推定値に基づき当該電動モータを駆動するモータ制御装置であって、
前記ロータの回転角を所定の角度間隔で離散的に検出する回転角離散検出手段と、
前記回転角離散検出手段による検出結果および前記回転角離散検出手段による前記ロータの回転角の検出時点の間隔から前記ロータの回転速度の推定値を算出する速度推定手段と、
前記電動モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクを非モータトルクとして検出するトルク検出手段と、
前記速度推定手段により得られる回転速度推定値および前記トルク検出手段により検出される非モータトルクに基づき、前記ロータの現時点での回転角を示す回転角推定値を算出する回転角推定手段とを備え、
前記回転角推定手段は、前記回転角離散検出手段により前記ロータの回転角が検出された第1の検出時点から前記回転角離散検出手段により次に前記ロータの回転角が検出される第2の検出時点までに、前記回転角推定値が前記回転角離散検出手段により次に検出されるべき前記ロータの回転角である検出予定回転角に到達した場合に、前記第2の検出時点までは前記回転角推定値が当該検出予定回転角を越えないように、前記トルク検出手段により検出される非モータトルクに応じて前記回転角推定値の算出方法を変更することを特徴とする。
【0012】
第2の発明は、第1の発明において、
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記速度推定手段により得られる速度推定値とに基づき、前記第1の検出時点と前記検出予定回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記検出予定回転角への到達時点から前記第2の検出時点までは、前記検出予定回転角と前記回転角推定値との差が、前記第1の検出時点で検出される前記非モータトルクと前記検出予定回転角への到達時点で検出される前記非モータトルクとの差に応じた所定量よりも大きくならないように、前記算出方法を変更することを特徴とする。
【0013】
第3の発明は、第2の発明において、
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角に向かって前記検出予定回転角から前記所定量だけ変化した中間回転角に前記回転角推定値が到達したときには、前記第2の検出時点まで当該中間回転角を維持するように、前記算出方法を変更し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記検出済回転角と前記検出予定回転角との間を2等分する角度値に前記回転角推定値が到達したときには、前記第2の検出時点まで当該2等分する角度値を維持するように、前記算出方法を変更することを特徴とする。
【0014】
第4の発明は、第1の発明において、
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角と前記検出予定回転角との間における所定の中間回転角に前記回転角推定値が前記検出予定回転角への到達時点後に到達する場合に当該中間回転角への到達時点で検出される前記非モータトルクの向きとに基づき、前記第1の検出時点と前記中間回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記中間回転角への到達時点から前記第2の検出時点までにおいて、前記反転推定手段の推定結果に応じて前記回転角推定値が減少もしくは増加しまたは一定となるように、前記算出方法を変更することを特徴とする。
【0015】
第5の発明は、第4の発明において、
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出予定回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出済回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したか否かを前記反転推定手段が推定できない場合には、前記中間回転角への到達時点後に前記回転角推定値が一定に維持されるように前記回転角推定値を算出することを特徴とする。
【0016】
第6の発明は、第1の発明において、
前記回転角推定手段は、前記ロータの回転方向が反転したとみなして前記回転角推定値の算出方法を変更する場合には、前記回転角推定値の算出に使用する回転速度推定値の絶対値を当該算出方法の変更に伴って低減することを特徴とする。
【0017】
第7の発明は、車両のステアリング機構に電動モータによって操舵補助力を与える電動パワーステアリング装置であって、
第1から第6の発明のいずれかに係るモータ制御装置を備え、
前記トルク検出手段は、前記車両の操舵操作のために前記ステアリング機構に加えられる操舵トルクを前記非モータトルクとして検出し、
前記モータ制御装置は、前記ステアリング機構に操舵補助力を与える電動モータを駆動することを特徴とする。
【発明の効果】
【0018】
上記第1の発明によれば、電動モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクが非モータトルクとして検出され、ロータ回転角についての第1の検出時点から第2の検出時点までに回転角推定値が検出予定回転角に到達した場合には、第2の検出時点までは回転角推定値が当該検出予定回転角を越えないように上記非モータトルクに応じて回転角推定値の算出方法が変更される。これにより、ロータの回転方向が反転する場合にロータ回転角の推定誤差を低減できるだけでなく、ロータの回転方向が反転しない場合において回転角推定値が検出予定回転角に到達しても、ロータ回転角の推定誤差を低減することができる。
【0019】
上記第2の発明によれば、第1の検出時点での上記非モータトルクの向きと、第2の検出時点前の検出予定回転角への到達時点での上記非モータトルクの向きと、ロータの回転速度の推定値とに基づき、第1の検出時点と検出予定回転角への到達時点との間でロータの回転方向が反転したか否かが推定され、ロータの回転方向が反転していないと推定される場合には、検出予定回転角への到達時点から第2の検出時点までは、検出予定回転角と回転角推定値との差が所定量以下となる。この所定量は、第1の検出時点での上記非モータトルクと上記検出予定回転角への到達時点での非モータトルクとの差(トルク差)に応じたものであることから、検出予定回転角への到達時点後の回転角推定値は上記トルク差に応じて検出予定回転角に比較的近い値となる。このため、ロータの回転方向が反転していない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができる。
【0020】
上記第3の発明によれば、第1の検出時点と検出予定回転角への到達時点との間でロータの回転方向が反転したか否かが上記第2の発明と同様にして推定され、ロータの回転方向が反転していないと推定される場合において、検出予定回転角への到達時点後の回転角推定値が検出予定回転角から検出済回転角に向かって上記所定量だけ変化した中間回転角に到達したときには、第2の検出時点まで回転角推定値が当該中間回転角に維持される。ここで上記所定量は上記トルク差に応じたものであることから、検出予定回転角への到達時点後の回転角推定値は上記トルク差に応じて検出予定回転角に比較的近い値となる。これにより、ロータの回転方向が反転しない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができる。一方、ロータの回転方向が反転したと推定される場合において、検出予定回転角への到達時点後に回転角推定値が検出済回転角と検出予定回転角との間を2等分する角度値に到達したときには、第2の検出時点まで回転角推定値が当該2等分する角度値に維持される。これにより、ロータの回転方向が反転する場合にロータ回転角の推定誤差を小さくすることができる。
【0021】
上記第4の発明によれば、第1の検出時点での上記非モータトルクの向きと、第2の検出時点前における検出予定回転角への到達時点での上記非モータトルクの向きと、検出予定回転角への到達後における所定の中間回転角への到達時点での上記非モータトルクの向きに基づき、第1の検出時点と当該中間回転角への到達時点との間でロータの回転方向が反転したか否かが推定され、当該中間回転角への到達時点から第2の検出時点までにおいて、回転角推定値は、回転方向が反転したか否かの推定結果に応じて減少もしくは増加しまたは一定となる。したがって、ロータの回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく、ロータの回転方向が反転しない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができる。
【0022】
上記第5の発明によれば、第1の検出時点と上記中間回転角への到達時点との間でロータの回転方向が反転したか否かが上記第4の発明と同様の方法で推定され、ロータの回転方向が反転していないと推定される場合には、回転角推定値は上記中間回転角への到達時点後に検出予定回転角に向かって変化し、一方、ロータの回転方向が反転したと推定される場合には、回転角推定値は上記中間回転角への到達時点後に検出済回転角に向かって変化する。また、ロータの回転方向が反転したか否かを推定できない場合(不明の場合)には、回転角推定値は中間回転角への到達時点後に一定に維持される。したがって、ロータの回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく、ロータの回転方向が反転しない場合において回転角推定値が第2の検出時点前に検出予定回転角に到達しても、ロータ回転角の推定誤差を抑制することができ、さらに、ロータの回転方向が反転したか否かが不明である場合にも、回転角推定値を上記中間回転角への到達時点後に一定値に維持することで推定誤差の増大を抑制することができる。
【0023】
上記第6の発明によれば、ロータの回転方向が反転したとみなして回転角推定値の算出方法が変更される場合には、回転角推定値の算出に使用する回転速度推定値の絶対値が当該算出方法の変更に伴って低減される。これにより、ロータの回転方向が反転せずに途中で停止する場合やロータの回転が極めて遅くなった場合であっても、回転角推定値が2つの回転角の間での往復を繰り返してモータトルクが振動するという事態を回避または抑制することができる。
【0024】
上記第7の発明によれば、モータ制御装置において上記第1から第6の発明に係るモータ制御装置と同様の効果を奏するので、電動パワーステアリング装置における電動モータを安定的に制御して良好な操舵感を得ることができる。
【図面の簡単な説明】
【0025】
【図1】本発明に係るモータ制御装置を用いた電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。
【図2】本発明の第1の実施形態に係るモータ制御装置の構成を示すブロック図である。
【図3】上記電動パワーステアリング装置で使用されるホールセンサを構成するホールICの配置例を示す、モータ軸方向に対する垂直断面図である。
【図4】上記電動パワーステアリング装置で使用されるホールセンサを構成するホールICの動作を説明するための図である。
【図5】上記第1の実施形態における制御部を実現するためのモータ制御処理の手順を示すフローチャートである。
【図6】上記第1の実施形態におけるモータのロータの回転角推定値を算出するための回転角推定処理の手順を示すフローチャートである。
【図7】上記第1の実施形態における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図8】上記第1の実施形態におけるモータのロータの回転角推定値の変化の例を実際のロータ回転角と共に示す波形図である。
【図9】本発明の第2の実施形態に係るモータ制御装置における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図10】上記第2の実施形態におけるモータの回転方向の推定を説明するための波形図である。
【図11】上記第2の実施形態におけるモータのロータの回転角推定値の変化の一例を実際のロータ回転角と共に示す波形図である。
【図12】本発明の第3の実施形態に係るモータ制御装置における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図13】上記第3の実施形態における回転角推定処理を説明するための波形図である。
【図14】上記第3の実施形態の第1の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図15】上記第3の実施形態の第1の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【図16】上記第3の実施形態の第1の変形例における回転角推定処理を説明するための波形図である。
【図17】上記第3の実施形態の第2の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0026】
以下、添付図面を参照しつつ、本発明の実施形態について説明する。
<1.全体構成>
図1は、本発明に係るモータ制御装置を用いた電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。この電動パワーステアリング装置は、ブラシレスモータ1、減速機2、トルクセンサ3、車速センサ4、位置検出センサであるホールセンサ5、および、電子制御ユニット(Electronic Control Unit :以下「ECU」という)10を備えたコラムアシスト型の電動パワーステアリング装置である。
【0027】
図1に示すように、ステアリングシャフト102の一端にはハンドル(ステアリングホイール)101が固着されており、ステアリングシャフト102の他端はラックピニオン機構103を介してラック軸104に連結されている。ラック軸104の両端は、タイロッドおよびナックルアームからなる連結部材105を介して車輪106に連結されている。運転者がハンドル101を回転させると、ステアリングシャフト102は回転し、これに伴いラック軸104は往復運動を行う。ラック軸104の往復運動に伴い、車輪106の向きが変わる。
【0028】
電動パワーステアリング装置は、運転者の負荷を軽減するために、以下に示す操舵補助を行う。トルクセンサ3は、ハンドル101の操作によってステアリングシャフト102に加えられる操舵トルクTを検出する。車速センサ4は、車速Sを検出する。
【0029】
ホールセンサ5は、ホール素子を含むホールICからなり、ブラシレスモータ1のロータの回転位置Pを検出する。なお、後述するようにこのホールセンサは、連続的にロータの位置を検出可能ないわゆるリニア形式のホールセンサではなく、離散的にロータの位置を検出するスイッチ形式(オンオフ形式)のホールセンサである。
【0030】
ECU10は、車載バッテリ100から電力の供給を受け、操舵トルクT、車速Sおよび回転位置Pに基づきブラシレスモータ1を駆動する。ブラシレスモータ1は、ECU10によって駆動されると、操舵補助力を発生させる。減速機2は、ブラシレスモータ1とステアリングシャフト102との間に設けられる。ブラシレスモータ1で発生した操舵補助力は、減速機2を介して、ステアリングシャフト102を回転させるように作用する。
【0031】
この結果、ステアリングシャフト102は、ハンドル101に加えられる操舵トルクと、ブラシレスモータ1で発生した操舵補助力の両方によって回転する。このように電動パワーステアリング装置は、ブラシレスモータ1で発生した操舵補助力を車両のステアリング機構に与えることにより操舵補助を行う。
【0032】
<2.第1の実施形態>
<2.1 モータ制御装置の構成>
図2は、本発明の第1の実施形態に係るモータ制御装置の構成を示すブロック図である。このモータ制御装置は、上記電動パワーステアリング装置において使用され、ECU10を用いて構成されており、ブラシレスモータ1を駆動する。ECU10は、マイクロコンピュータ(以下「マイコン」と略記する)20とモータ駆動部とからなる。マイコン20は、その内部のメモリに格納された所定のプログラムを実行することにより、目標電流演算部114と、減算器122,124と、d軸電流PI制御部126と、q軸電流PI制御部128と、d−q/3相交流座標変換部132と、符号反転加算器134と、3相交流/d−q座標変換部138と、ロータ回転位置検出部162と、ロータ回転角推定部164とからなるモータ制御部として機能する。目標電流演算部114には、基本アシスト制御部180とモータ電流指令値演算部188とが含まれている。モータ駆動部は、モータ制御部としてのマイコン20から出力される電圧指令値に基づき3相のブラシレスモータ1を駆動するハードウェア(回路)であり、PWM信号生成回路150と、モータ駆動回路152と、U相電流検出器154と、V相電流検出器156とから構成される。
【0033】
ハンドル101が操作されると、トルクセンサ3によって検出される操舵トルクTがECU10に入力されるとともに、車速センサ4によって検出される車速SもECU10に入力される。
【0034】
ロータ回転位置検出部162は、ブラシレスモータ1に取り付けられた3個のホールIC5a,5b,5cからなるホールセンサ5が出力するセンサ信号に基づいて、ブラシレスモータ1のロータである永久磁石の回転位置Pである実際のロータ回転角θaに相当する電気角(以下「検出回転角」という)θrを離散的に検出する。
【0035】
図3(a)は、モータ1の軸方向に対する垂直断面図であり、図3(b)は、図3(a)に示すロータ7が60度時計回りに回転した時のモータ1の軸方向に対する垂直断面図である。図3(a)(b)に示すように、ホールセンサ5を構成する3個のホールIC5a〜5cのうち、ホールIC5aは、ロータ7のN極がステータ6aに最も近接したときに(すなわちロータ7のN極がステータ6aの直下に来たときに)ロータ7のN極とS極の境界(以下「磁極境界」という)に最も近接する位置に配置されている。また、ホールIC5bは、ロータ7のN極がステータ6bに最も近接したときにロータ7の磁極境界に最も近接する位置に配置されており、ホールIC5cは、ロータ7のN極がステータ6cに最も近接したときにロータ7の磁極境界に最も近接する位置に配置されている。各ホールIC5a〜5cは、ロータ7の磁極境界が最も接近した時、その出力信号をハイレベル(Hレベル)からローレベル(Lレベル)またはLレベルからHレベルへと変化させる。したがって、ロータ7の実際のロータ回転角θaが60度変化する毎にこれらホールIC5a〜5cのうちのいずれか1つから出力される信号がHレベルからLレベルへまたはその逆に変化する。以下、図4を参照して、これらホールIC5a〜5bの動作を更に詳しく説明する。なお以下では、ステータ6aにロータ7のN極が最も接近したときのロータ7の回転角を0度とし、時計回り方向を回転角の正方向とする。
【0036】
いま、ホールIC5aに着目し、図4(a)に示すようにロータ7が時計回り方向に回転するものとすると、このホールIC5aは、図4(b)に示すような正弦波状のマグネット磁束変化に基づき図4(c)に示すような2値信号を出力信号Saとして生成する。すなわちホールIC5aは、上記のマグネット磁束がN極のときにはHレベルとなりS極のときにはLレベルとなる出力信号Saを生成し、この出力信号Saは、上記のマグネット磁束がN極からS極へと変化する時にHレベルからLレベルへと変化し、S極からN極へと変化する時にLレベルからHレベルへと変化する。したがって、図4(a)〜(c)からわかるように、ロータ7が時計回り方向に回転している場合において、ホールIC5aの出力信号Saは、ロータ7の実際の回転角θaが0度の時にHレベルからLレベルへと変化し、180度の時にLレベルからHレベルへと変化する。同様に、図3に示すように配置されたホールIC5c,5bは、図4(d)(e)に示すような出力信号Sc,Sbをそれぞれ生成する。ホールIC5cの出力信号Scは、ロータ7の実際の回転角θaが60度の時にLレベルからHレベルへと変化し、240度の時にHレベルからLレベルへと変化する。また、ホールIC5bの出力信号Sbは、ロータ7の実際の回転角θaが120度の時にHレベルからLレベルへと変化し、300度の時にLレベルからHレベルへと変化する。そこで、ロータ回転位置検出部162は、これらの出力信号Sa,Sb,ScをホールIC5a〜5bから受け取り、これらの出力信号Sa,Sb,Scの変化に基づきロータ7の回転角θaを判別することで、検出回転角θrを60度間隔で離散的に取得する。
【0037】
既述の図3(a)(b)では、出力信号がHレベルからLレベルへまたはその逆に変化するホールICに斜線が付されている。例えば、ロータ7が図3(a)に示す回転位置にある場合、ロータ回転位置検出部162は、ホールIC5aの出力信号SaのHレベルからLレベルへの変化に基づき、ロータ7の回転角θaが0度であることを判別できるので(図4(c))、ロータ回転角推定部164に対して検出回転角θrである0度を与える。さらに、ロータ7が時計回り方向に60度回転すると、図3(b)に示すように斜線を付されたホールIC5cの出力信号Scは、LレベルからHレベルへと変化する。この場合、ロータ回転位置検出部162は、この出力信号Scの変化に基づき、ロータ7の回転角θaが60度であることを判別できるので(図4(d))、ロータ回転角推定部164に対して検出回転角θrである60度を与える。
【0038】
このように、ロータ7が60度回転する毎に、3つのホールIC5a〜5cの出力信号Sa〜ScのいずれかがLレベルからHレベルへとまたはその逆に変化するので、ロータ回転位置検出部162は、これらの出力信号Sa〜Scの変化に基づき、ロータ回転角推定部164に対して検出単位角度である60度毎に(離散的に)検出回転角θrを与える。したがって、検出回転角θrが与えられる場合には、その検出回転角θrは正確であってそのままロータ回転角として使用することができるが、その値は離散的にしか得られないためその間の値を推定する必要がある。なお、上記説明からわかるように、本実施形態では、3つのホールIC5a〜5cを含むホールセンサ5とロータ回転位置検出部162とにより、ロータ回転角を離散的に検出する回転角離散検出手段が実現されている。
【0039】
以下では、ホールセンサ5を構成するホールIC5a〜5cは、上記のような交番検知方式の2値信号出力のホールICであって図3に示すように配置されているものとして説明を進める。しかし、本発明で使用可能なホールセンサはこのような構成に限定されるものではなく、ロータ7の回転角を離散的に検出できる構成であってそのために回転角推定が必要であるものであればよい。例えば、ホールIC5a〜5cに代えて、図4(b)に示すようにロータ7の回転に従って正弦波状のアナログ信号を出力する3個のホール素子によりホールセンサ5を構成し、これら3個のホール素子を図3に示すホールIC5a〜5cと同様に配置してもよい。この場合、これら3個のホール素子の出力信号(アナログ信号)からなるセンサ信号をマイコン20が受け取り、マイコン20に内蔵されたAD変換器でデジタル信号に変換し、そのデジタル信号に基づきマイコン20でのソフトウェア処理により検出回転角θrを離散的に取得する。すなわち、そのソフトウェア処理によりロータ回転位置検出部162が実現され、ロータ回転位置検出部162は、上記3個のホール素子の出力信号の値が零になる時点(ゼロクロス点)毎に検出回転角θrを離散的に(60度毎に)求め、求めた検出回転角θrをロータ回転角推定部164に与える。
【0040】
ロータ回転角推定部164は、ロータ回転位置検出部162によって検出された検出回転角θrに対して、現時点におけるロータ回転角を正確に推定する演算を行うことにより、この検出回転角θrを推定された電気角θreに補正し出力する(この推定された電気角θreは、後述の回転角推定処理等の説明において「回転角推定値θre」と呼ばれる)。この推定演算については詳しくは後述する。なお、本実施形態では、ロータ7の極対数が1であるため、ロータの電気角は機械角に一致している。またこの極対数は2以上であってもよい。
【0041】
またロータ回転角推定部164は、ロータ回転位置検出部162から新たに検出回転角θrを受け取ると、当該受け取った検出回転角θr(今回受け取った検出回転角θr)と、前回に受け取った検出回転角θr’とを記憶するとともに、前々回にロータ回転位置検出部162から検出回転角θr''を受け取った時点から前回の時点までの時間間隔ΔTk-1 と、前回の時点から今回の時点までの時間間隔ΔTk とを記憶する。これらの値はロータ回転角の推定のために使用されるが、詳しくは後述する。さらにロータ回転角推定部164は、トルクセンサ3からの操舵トルクTを受け取り(図2参照)、この操舵トルクTもロータ7の回転角の推定に使用する。この詳細も後述する。なお、ロータ回転角推定部164が受け取る操舵トルクTは、より一般的には、モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクすなわち非モータトルクと言うべきものである。
【0042】
基本アシスト制御部180は、アシストマップと呼ばれる、操舵トルクと目標電流値とを対応づけるテーブルを参照し、操舵トルクTと車速Sとに基づいて、ブラシレスモータ1に流すべき電流の目標値である目標電流値Itを決定する。モータ電流指令値演算部188は、目標電流値Itに基づいてq軸電流指令値iq*を出力する。このq軸電流指令値iq*は、ブラシレスモータ1が発生すべきトルクに対応する電流値であり、減算器124に入力される。一方、d軸電流指令値id*は、トルクに関与しないのでid*=0として、減算器122に入力される。
【0043】
U相電流検出器154およびV相電流検出器156は、それぞれモータのU相、V相の巻き線(本明細書では単に「U相、V相」という)に流れる電流を検出し、U相電流検出値iuとV相電流検出値ivとをそれぞれ電圧信号で出力する。これらのU相電流検出器154およびV相電流検出器156は、モータ駆動回路152からブラシレスモータ1へ繋がる線に対して配置されるが、モータ駆動回路152内の各駆動用素子と接地点との間に配置されてもよい。
【0044】
3相交流/d−q座標変換部138は、ロータの電気角θreに基づいて、U相電流検出値iuおよびV相電流検出値ivを、d−q座標上の値であるd軸モータ電流値idおよびq軸モータ電流値iqに変換する。このd軸モータ電流値idおよびq軸モータ電流値iqは、減算器122および減算器124にそれぞれ入力される。
【0045】
減算器122では、d軸電流指令値id*とd軸モータ電流値idとの偏差id*−idが出力される。そして、d軸電流PI制御部126では、その偏差id*−idに基づく比例積分演算によって、d軸電圧指令値vd*が出力される。一方、減算器124では、q軸電流指令値iq*とq軸モータ電流値iqとの偏差iq*−iqが出力される。そして、q軸電流PI制御部128では、その偏差iq*−iqに基づく比例積分演算によって、q軸電圧指令値vq*が出力される。
【0046】
d−q/3相交流座標変換部132では、ロータ7の電気角θreに基づいて、d軸電圧指令値vd*およびq軸電圧指令値vq*を、3相交流座標上の値であるU相電圧指令値vu*およびV相電圧指令値vv*に変換する。そして、符号反転加算器134は、U相電圧指令値vu*およびV相電圧指令値vv*からW相電圧指令値vw*を算出する。
【0047】
PWM信号生成回路150は、U相電圧指令値vu*、V相電圧指令値vv*、W相電圧指令値vw*を受け取り、それらの指令値に応じてデューティ比の変化するPWM信号Su、Sv、Swを生成する。モータ駆動回路152では、そのPWM信号Su、Sv、Swによってスイッチング素子がオン/オフされ、それにより、デューティ比に応じた電圧vu、vv、vwがブラシレスモータ1のU相、V相、W相にそれぞれ印加される。
【0048】
<2.2 モータ制御処理>
図5は、本実施形態においてモータ1の駆動を制御するためのモータ制御部をソフトウェア的に実現するためにマイコン20によって実行されるモータ制御処理を示すフローチャートである。このモータ制御処理では、まず、車両情報等のモータ制御に必要な情報が取得される(ステップS2)。ここで取得される情報には、d軸電流PI制御部126およびq軸電流PI制御部128での演算やロータ回転位置検出部162での検出回転角θrの決定に必要なパラメータ値などが含まれる。後述の回転角推定処理(図6、図7参照)で使用されるフラグや変数等も当該ステップS2で初期化され(例えばFr=0、t=0、tn-1=0、ωe=0、θr=0、Dir=1等)、当該回転角推定処理で使用される定数についても適切な値が設定される(例えばGの設定等)。なお、マイコン20はタイマーを内蔵しており、このタイマーを当該ステップS2でスタートさせることにより、時刻を示す変数tが0に初期化される。
【0049】
このようなステップS2の実行後は、ステップS3において、各センサ3,4および電流検出器154,156からの出力信号に基づき、モータ1に流すべき電流の目標値(電流目標値)Itを算出する周期である制御周期毎に、操舵トルクT,車速S,U相電流検出値iu,V相電流検出値ivが取得される。またステップS3において、ホールIC5a〜5cの出力信号からなるホールセンサ5のセンサ信号に基づきモータ1におけるロータ7の電気角が離散的に検出される。すなわち、図2に示したロータ回転位置検出部162はステップS3により実現されている。ここで離散的に検出された当該電気角は、検出回転角θrとして、後述の回転角推定処理により実現されるロータ回転角推定部164に与えられる。以下では、現時点で既に取得されている検出回転角θrを、現時点以降で取得される検出回転角θrと区別するために「検出済回転角θr」という。なお、上記の制御周期は、検出回転角θrが取得される時間間隔すなわちロータ7の電気角が離散的に検出される時間間隔に比べて非常に短い。
【0050】
次のステップS4では、ロータ回転角推定部164を実現するための回転角推定処理が実行され、これによりモータ1におけるロータ7の電気角の推定値を示す回転角推定値θreが算出される。
【0051】
その後、ステップS6において、この回転角推定値θreを用いてモータ1の電流制御等のための処理が行われる。すなわちステップS6において、操舵トルクTおよび車速Sに基づいて電流目標値Itが決定され、この電流目標値Itから、ブラシレスモータ1が発生すべきトルクに対応するq軸電流指令値iq*が決定される。一方、上記の回転角推定値θreを用いて、U相電流検出値iuおよびV相電流検出値ivがd−q座標上の値としてのd軸モータ電流値idおよびq軸モータ電流値iqに変換される。そして、d軸電流指令値id*(=0)およびq軸電流指令値iq*とd軸モータ電流値idおよびq軸モータ電流値iqとに基づく制御演算によってd軸電圧指令値vd*およびq軸電圧指令値vq*が算出される。これらは、上記の回転角推定値θreを用いて3相交流座標上の値としての各相の電圧指令値vu*、vv*、vw*に変換され、各相の電圧指令値vu*、vv*、vw*はマイコン20から出力されてPWM信号生成回路150に与えられる。このようなステップS6の処理により、図2に示す目標電流演算部114と、減算器122,124と、d軸電流PI制御部126と、q軸電流PI制御部128と、d−q/3相交流座標変換部132と、符号反転加算器134と、3相交流/d−q座標変換部138とがソフトウェア的に実現される。
【0052】
上記の電流制御等の処理の後は、ステップS3へ戻る。以降、電動パワーステアリング装置におけるモータ制御装置(ECU)10が動作している間、上記の制御周期でステップS3,S4,S6が繰り返し実行される。
【0053】
<2.3 回転角推定処理>
図6は、本実施形態におけるロータ回転角推定部164をソフトウェア的に実現するための回転角推定処理(図5のステップS4)の手順を示すフローチャートであり、図7は、この回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。また図8は、本実施形態におけるモータ1のロータ7の回転角推定値θreの変化の例を実際のロータ回転角θaと共に示す波形図である。以下、図5〜図8を参照して本実施形態における回転角推定処理について説明する。既述のように、この回転角推定処理は非常に短い制御周期毎に実行され(図5参照)、この回転角推定処理においてマイコン20は下記のように動作する。
【0054】
まず、ステップS10において、ホールセンサ5からのセンサ信号に基づきロータ回転位置検出部162(図5のステップS3)において算出され離散的に与えられる検出済回転角θrを受け取ったか否かを判定する。これは、ホールセンサ5とロータ回転位置検出部162とにより実現される回転角離散検出手段がロータ回転角を検出したか否かを判定することを意味する。ホールセンサ5の信号検出により得られる検出済回転角θrを受け取らない場合(ステップS10でNoの場合)には、ステップS50に進む。このステップS50の推定演算処理については詳しく後述する。この推定演算処理が行われると、当該回転角推定処理は一旦終了し、次の制御周期が到来すると新たに当該回転角推定処理が開始される。このようにして、制御周期毎に当該回転角推定処理が装置の停止まで繰り返される。
【0055】
ステップS10での判定の結果、ホールセンサ5の信号検出により離散的に得られる検出済回転角θrを受け取った場合(ステップS10でYesの場合)には、受け取った検出済回転角θrをそのまま回転角推定値θreとし(ステップS11)、その回転角推定値θreを出力する。この回転角推定値θreは、ステップS6の処理において使用される。すなわち既述のように、この回転角推定値θreは、ステップS6の処理によって実現される3相交流/d−q座標変換部138およびd−q/3相交流座標変換部132に与えられる。
【0056】
次にステップS12において、ロータ7の回転方向を示す回転方向係数Dirに1または−1の値を代入する。具体的には、前回の検出時点tk-1(tn-2)における回転角推定値θre’と、今回の検出時点tk(tn-1)における回転角推定値θreとに基づき、図3の時計回り方向にロータ7が回転していると判定される場合には回転方向係数Dirに1を代入し、反時計回り方向にロータ7が回転していると判定される場合には回転方向係数Dirに−1を代入する。またθre’=θreである場合には、ロータ7の回転方向が途中で反転しているので、それ以前に得られた回転方向係数Dirの値の符号を逆にして再び回転方向係数Dirに代入する。なお本明細書では、時計回り方向を正方向としてロータ7の回転角や角速度の値が設定されるものとする。また本明細書では、操舵トルクTの検出時点やロータ7の回転角の検出時点等のように本発明において識別すべき時点は、“tn”や“tn+1”等のように“t”に“n”を含む添字を付加した記号で示し、これらの時点のうちロータ7の回転角の検出時点については、“tk”や“tk+1”等のように“t”に“k”を含む添字を付加した記号によっても示すものとする。
【0057】
次にステップS13において、ステップS3で取得された操舵トルクTの値をトルクτ(n−1)に代入することで、ホールセンサ5の信号検出による検出済回転角θrの取得時点(以下「回転角検出時点」または単に「検出時点」という)tk(tn-1)における操舵トルクの情報としてトルクτ(n−1)を取得する(以下、このような操舵トルク情報としてのトルクτ(n−1)の取得を「トルクτ(n−1)の検出」という)。
【0058】
次にステップS14において、ロータ7の回転方向が前回の検出時点tk-1(tn-2)から今回の検出時点tk(tn-1)までの間に反転したか否かを判定する。すなわち、前回の検出時点tk-1における回転角推定値θre’と今回の検出時点tkにおける回転角推定値θreとが等しい場合(θre’=θreの場合)には、2つの検出時点tk-1とtkの間でロータ7の回転方向が反転したと判定し、θre’≠θreの場合は、反転していないと判定する。このステップS14での判定の結果、反転していない場合(ステップS14でNoの場合)にはステップS16へ進み、反転した場合(ステップS14でYesの場合)にはステップS18へ進む。
【0059】
ステップS16に進んだ場合は、後述の角速度推定値ωeの算出のために導入された時間短縮係数Tcに1を代入した後にステップS20へ進む。一方、ステップS18へ進んだ場合には、前回の回転角検出時点tk-1から今回の回転角検出時点tkまでの時間間隔ΔTkが、前々回の回転角検出時点tk-2から前回の回転角検出時点tk-1までの時間間隔ΔTk-1よりも大きいか否かを判定する。その判定の結果、時間間隔ΔTkがΔTk-1よりも大きい場合には、ステップS19において、時間短縮係数Tcに1/2を代入した後にステップS20へ進み、時間間隔ΔTkがΔTk-1以下である場合には、ステップS16において時間短縮係数Tcに1を代入した後にステップS20へ進む。
【0060】
ステップS20では、次の制御周期以降での回転角推定処理(ステップS50)において回転角推定値θreを算出するために使用する角速度推定値ωeを下記式(1)により設定し、次にホールセンサ5の信号検出により取得されると予想される検出回転角である検出予定回転θnxを下記式(2)により設定する。
ωe=Dir・60/(ΔTk・Tc) …(1)
θnx=θre+Dir・60 …(2)
またステップS20において、フラグFrに0を代入し、時点tn-1に現時点の時刻t(タイマーが示す時刻t)を代入する。なお、ステップS20において上記式(1)により角速度推定値ωeが決定されることから、ステップS20の実行によりロータ7の回転速度についての速度推定手段が実現される。
【0061】
上記のステップS20を実行すると、回転角推定処理を一旦終了し、図5のモータ制御処理のルーチンに復帰する。
【0062】
その後、モータ制御処理におけるステップS6を実行し、ステップS3に戻る。そして、ステップS3を実行した後、再びステップS4を実行する。このとき実行されるステップS4の回転角推定処理では、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取らないので(図6のステップS10:No)、ステップS50に進み、推定演算処理を実行する。
【0063】
この推定演算処理においてマイコン20は、図7に示すフローチャートに従って以下のように動作する。なお以下では、ロータ回転角の推定のうち、ロータ7がその回転角の直前の検出時点tk(tn-1)での回転方向と同じ方向に回転すると想定されたロータ回転角の推定を「順方向推定」と呼び、ロータ7がその回転角の直前の検出時点tkでの回転方向とは反対の方向に回転すると想定されたロータ回転角の推定を「逆方向推定」と呼ぶものとする(他の実施形態においても同様)。
【0064】
図7の推定演算処理では、まずステップS21において、フラグFrが1か否かを判定する。既述のように、ホールセンサの信号検出により離散的に得られる検出済回転角θrを受け取ると(ロータ回転角が新たに検出されると)フラグFrに0が代入される(図6のステップS20)。この場合、ステップS21での判定の結果、ステップS22へ進み、上記の検出済回転角θrおよび現時点の時刻tとステップS20で得られた角速度推定値ωeとを用いて、下記式で示される順方向推定演算により回転角推定値θreを算出する。
θre=θr+ωe・(t−tn-1) …(3)
これは、図8(a)(b)に示すように、ロータ7が角速度推定値ωeの速度で回転するものとして回転角θrの検出時点tn-1(tk)以降におけるロータ7の回転角を推定することを意味する。
【0065】
次にステップS24において、上記のように算出される回転角推定値θreの検出済回転角θrからの偏差(回転角推定値θreと検出済回転角θrとの差の絶対値)|θre−θr|が60度以上であるか否かを判定する。この判定の結果、当該偏差|θre−θr|が60度よりも小さい場合には、当該推定演算処理(S50)を終了し、図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰し、ステップS6以降の処理を実行する。
【0066】
その後、次の制御周期において回転角推定処理(S4)が開始されると、まず、図6のステップS10において、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取ったか否かを判定する。既述のように、ロータ回転角は60度毎に離散的に得られるので、一旦、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取ると、次に新たな検出済回転角θrを受け取るまでは、ステップS10でNoと判定されて、制御周期毎に図7の推定演算処理におけるステップS21→S22→S24を実行する。
【0067】
その結果、制御周期毎にステップS22において順方向推定演算処理(式(3))により回転角推定値θreが更新されていく。そして、回転角検出値θreが検出予定回転角θnx(図6のステップS20で設定)に達すると、上記偏差|θre−θr|が60度となるので、ステップS24においてYesと判定され、ステップS26へ進む。
【0068】
ステップS26では、現時点の時刻tを回転角推定値θreが検出予定回転角θnxに達した時点tnとし、この時点tn以降においてロータ7の回転方向が反転するとみなして回転角推定値θreを算出するために、すなわち逆方向推定演算により回転角推定値θreを算出するために、フラグFrに1を代入する。また次のステップS28において、当該制御周期にステップS3で取得された操舵トルクTの値をトルクτ(n)に代入することで、この時点tnにおける操舵トルクの情報としてトルクτ(n)を取得する(トルクτ(n)の検出)。
【0069】
次にステップS31において、検出済回転角θrが取得された時点すなわちロータ回転角の直前の検出時点(以下「直前検出時点」という)tn-1(tk)におけるトルクτ(n−1)と、回転角推定値θreが検出予定回転角θnxに達した時点(以下「検出予定回転角到達時点」という)tnにおけるトルクτ(n)と、直前検出時点tn-1(tk)で算出された角速度推定値ωe(ステップS20参照)とから、ロータ7の回転方向が直前検出時点tn-1(tk)と検出予定回転角到達時点tnとの間で反転したか否かを判定(推定)する。具体的には、上記のトルクτ(n−1)とトルクτ(n)との積S(n)=τ(n−1)・τ(n)の正負、および、上記の角速度推定値ωeが予め決められた所定角速度値ωoよりも大きいか否かにより、下記のように判定する。
(1)S(n)>0または|ωe|>ωoであれば、回転方向は反転していないと判定する。
(2)S(n)<0かつ|ωe|≦ωoであれば、回転方向が反転したと判定する。
上記(1)(2)の判定は、直前検出時点tn-1(tk)および検出予定回転角到達時点tnにおける操舵トルクTの向きと角速度推定値ωeの大きさとに基づき、ロータ7の回転方向が反転したか否かを推定することを意味する。ここで、所定角速度値ωo(>0)は、電動パワーステアリング装置において通常の運転者が操作する場合の通常の角速度相当値であり、例えば150rpm程度であるが、個々の装置毎に適切な所定角速度値ωoが実験やシミュレーション等により決定される。このようなステップS31がマイコン20によって実行されることにより、ロータの回転方向が反転したか否かを推定する反転推定手段が実現される。
【0070】
ステップS31での判定の結果、回転方向が反転していないと推定される場合すなわち上記(1)の場合には、操舵トルクの変化がロータ7の角速度の変化に影響し、次式で与えられる操舵トルクの変化量Δτ(n)の絶対値が大きいほどロータ7の回転が減速しているとみなす。
Δτ(n)=τ(n)−τ(n−1) …(4)
この場合、本実施形態では、回転角推定値θreは、検出予定回転角到達時点tn以降は検出済回転角θrの方向に戻るように角速度−ωeで変化するものとし、次式で与えられる角度量Δθだけ検出予定回転角θnxから変化すると、その後は、図8(a)に示すように、次にロータ回転角が検出されるまで(ステップS10でYesと判定されるまで)変化せず一定値に維持される。
Δθ=G×|Δτ(n)| …(5)
ここで、Gは所定の定数であり、その具体的な値は、実験またはシミュレーション等によって適切に設定される。下記のように、回転方向が反転していると判定された場合には、角度量Δθは60/2=30[度]に設定されるので、上記式(5)で与えられる角度量Δθが30[度]よりも小さくなるように定数Gの値が設定される(0<Δθ<30)。
【0071】
一方、ステップS31での判定の結果、回転方向が反転していると推定される場合すなわち上記(2)の場合には、本実施形態では、回転角推定値θreは、検出予定回転角到達時点tn以降は上記(1)の場合と同様、検出済回転角θrの方向に戻るように角速度−ωeで変化するものとする。このような戻し処理は、図8(b)に示すように、回転角推定値θreが検出予定回転角θnxと検出済回転角θrとの真ん中に相当する回転角(θnx+θre)/2=90[度]に達するまで、すなわち角度量Δθ=60/2=30[度]だけ変化するまで継続する。その後、回転角推定値θreは、次にロータ回転角が検出されるまで(ステップS10でYesと判定されるまで)変化せず一定値(90[度])に維持される。
【0072】
本実施形態において上記のようにロータ回転角を推定するために、マイコン20は、図7に示すフローチャートに従って以下の同様に動作する。
【0073】
まず、ステップS31でロータ7の回転方向が反転したと判定された場合には、ステップS32へ進んで、上記の角度量Δθを上記式(5)に示すように設定し、その後に当該推定演算処理(S50)を終了する。一方、ロータ7の回転方向が反転していないと判定された場合には、ステップS34へ進んで、上記の角度量Δθを30[度]に設定し、その後に当該推定演算処理(S50)を終了する。このようにして当該推定演算処理を終了すると、図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0074】
その後、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取るまでは(ロータ回転角が新たに検出されるまでは)、制御周期毎に図7の推定演算処理を実行する(図6のS10,S50参照)。この間、フラグFr=1であるので、ステップS21でYesと判定されて、ステップS36へ進む。
【0075】
ステップS36では、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が(ステップS32またはS34で設定される)角度量Δθ以上であるか否かを判定する。
【0076】
この判定の結果、上記偏差|θre−θr|が角度量Δθよりも小さい場合(Noの場合)には、ステップS38へ進み、検出予定回転角θnxと角速度推定値ωeと検出予定回転角到達時点tnからの経過時間t−tnとを用いて、下記式で示される逆方向推定演算により回転角推定値θreを算出する。
θre=θnx−ωe・(t−tn) …(6)
これは、図8(a)(b)に示すように、検出予定回転角到達時点tnを経過すると、ロータ7が回転方向を反転し角速度推定値ωeの速度で逆方向に回転するものとみなしてロータ回転角を推定することを意味し、回転角推定値θreは検出済回転角θrに向かって速度推定値ωeの速度で変化することになる。このような逆方向推定演算を行った後は、当該推定演算処理(S50)を終了する。
【0077】
このようにして、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取らなければ、上記偏差|θre−θr|が角度量Δθよりも小さい間、ステップS36でNoと判定されて、制御周期毎に推定演算処理(S50)におけるステップS21→S36→S38を実行する。その結果、逆方向推定演算処理(式(6))により回転角推定値θreが更新されていく。この間に、回転角推定値θreの検出予定回転角θnxからの偏差|θre−θnx|が上記角度量Δθに達すると、ステップS36においてYesと判定され、上記の逆方向推定演算を行うことなく、そのまま当該推定演算処理を終了する。
【0078】
したがって、上記の偏差|θre−θnx|が上記角度量Δθに達する時点tn+1以降、ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取るまでは、図8(a)(b)に示すように、回転角推定値θreは、検出予定回転角θnxから上記角度量Δθだけ検出済回転角θrの方向に変化させた値(θnx−Dir・Δθ)に維持される。ここで角度量Δθは、ステップS31において回転方向が反転していないと推定された場合はG×|Δτ(n)|であり、反転していると推定された場合は30[度]である。
【0079】
制御周期毎に上記のような推定演算処理(S50、図7)を繰り返し実行している間に、ホールセンサ5の信号検出により得られる新たな検出済回転角を受け取ると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この新たな検出済回転角は、ロータ7の回転方向が反転していない場合は、図8(a)に示すように、θr+Dir・60(図8(a)の例では120度)であり、反転している場合は、図8(b)に示すように、θr(図8(b)の例では60度)である。なお、図8(a)(b)では、検出予定回転角到達時点tn以降かつ上記偏差|θre−θnx|が上記角度量Δθに達する時点tn+1以降においてロータ回転角が新たに検出されるが、直前検出時点tn-1(tk)以降に操舵トルクの大きさが低減しない場合等には、それらの時点tnまたはtn+1以前にロータ回転角が検出される。
【0080】
図6の回転角推定処理におけるステップS10で再びYesと判定された場合には、上記の直前検出時点tk(tn-1)を前回の検出時点tk-1(tn-2)に置き換えると共に、新たな検出時点tk+1(tn+2)を今回の検出時点tk(tn-1)に置き換え、かつ、新たなロータ回転角の検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、ステップS11以降の処理を実行する。このときのステップS11以降の処理では、図8(a)に示すように、新たな検出済回転角θrが前回の検出済回転角θr’と異なる場合には、ステップS14においてロータ7の回転方向が反転していないと判定し、ステップS16以降のステップを実行する。一方、図8(b)に示すように、新たな検出済回転角θrが前回の検出済回転角θr’に等しい場合には、ステップS14においてロータ7の回転方向が反転したと判定し、ステップS18以降のステップを実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0081】
以上説明した回転角推定処理(S4)および推定演算処理(S50)は、本実施形態に係るモータ制御装置が動作している間、制御周期毎に実行され(図5)、制御周期毎に得られる回転角推定値θreを用いてモータ1の電流制御が行われる(図2、図5)。
【0082】
<2.4 効果>
上記のように本実施形態では、ホールセンサ5の検出信号に基づき検出回転角θrが取得された時点tkから次に新たな検出回転角が取得される時点tk+1までに回転角推定値θreが検出予定回転角θnxに達した場合には、その後、回転角推定値θreは、逆方向推定演算(図7のS38)により検出済回転角θrに向かって変化し(戻し処理が行われ)、検出予定回転角θnxから角度量Δθだけ変化した時点tn+1で変化を停止し(ステップS36:Yes)、その時点tn+1以後は一定値(θnx−Dir・Δθ)に維持される。ここで、検出予定回転角到達時点tnにおいてトルク積S(n)=τ(n−1)・τ(n)の正負および角速度推定値ωeに基づきロータ7の回転方向が反転しているか否かが判定される。その判定結果に基づき、回転方向が反転していると推定される場合にはΔθ=(θr+θnx)/2=30となるが、反転していないと推定される場合には、Δθ=G×|Δτ(n)|となって、角度変化量Δθはトルク変化量Δτ(n)=τ(n)−τ(n−1)の絶対値に比例する(ステップS31〜S34)。
【0083】
上記のような本実施形態によれば、ロータ7の回転方向が反転する場合に回転角の推定誤差が小さく抑えられるだけでなく(図8(b))、ロータ7の回転方向が反転しない場合において次にロータ回転角が検出されるまでに回転角推定値θreが検出予定回転角θnxに達しても、上記の角度量Δθをトルク変化量Δτ(n)の絶対値に応じた値とすることによりロータ回転角の推定誤差が小さく抑えられる(図8(a)参照)。その結果、モータ1の発生トルクすなわち本実施形態に係るモータ制御装置を備えた電動パワーステアリング装置における操舵補助力が、必要以上に低下するのを防止し、当該電動パワーステアリング装置において良好な操舵感を得ることができる。
【0084】
<3.第2の実施形態>
<3.1 モータ制御装置の構成>
本発明の第2の実施形態に係るモータ制御装置も、上記第1の実施形態と同様、図1に示すように電動パワーステアリング装置において使用され、ECU10を用いて構成されており、ブラシレスモータ1を駆動する。また、このモータ制御装置の構成は、ロータ回転角推定部164をソフトウェア的に実現するための図6の回転角推定処理において使用される推定演算処理(S50)の手順が異なる点を除き、上記第1の実施形態と実質的に同様である(図2〜図6)。そこで以下では、本実施形態における推定演算処理を中心に説明し、他の部分については同一または対応する構成要素に同一の参照符号を付して詳しい説明を省略する。
【0085】
<3.2 回転角推定処理>
図9は、本実施形態における回転角推定処理(図6)で使用される推定演算処理(S50)の手順を示すフローチャートである。また図10は、本実施形態におけるモータ1のロータ7の回転方向の推定を説明するための波形図であり、図11は、本実施形態におけるモータ1のロータ7の回転角推定値θreの変化の一例を実際のロータ回転角θaと共に示す波形図である。以下、図5および図6と共に図9〜図11を参照して本実施形態における回転角推定処理について説明する。既述のように、この回転角推定処理は非常に短い制御周期毎に実行される(図5参照)。この回転角推定処理における各ステップの処理内容は、ステップS50の推定演算処理を除き、第1の実施形態と同様であるので詳しい説明を省略する。
【0086】
ホールセンサ5からのセンサ信号に基づきロータ回転角が検出されると、その検出時点tk(tn-1)において図6のステップS11〜S20が実行され、これにより、そのときに取得される検出済回転角θrが回転角推定値θreとして設定されると共に、回転方向係数Dirや、トルクτ(n−1)、時間短縮係数Tc、角速度推定値ωe、フラグFr等が設定される。次の制御周期以降での回転角推定処理では、ロータ回転角が新たに検出されるまでは、ステップS10でNoと判定される。その結果、ステップS50へ進んで、推定演算処理が実行される。この推定演算処理においてマイコン20は、図9に示すフローチャートに従って以下のように動作する。
【0087】
まず、ステップS41においてフラグFrが0か否かを判定する。ホールセンサ5の信号検出により得られる新たな検出済回転角θrを受け取ると(図6のステップS10:Yes)、フラグFrに0が代入されるので(ステップS20)、ステップS41ではYesと判定されてステップS42へ進む。この後、上記第1の実施形態と同様(図7のステップS22,S24参照)、式(3)で示される順方向推定演算により回転角推定値θreを算出し、次にステップS44において、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が60度以上であるか否かを判定する。この判定の結果、当該偏差|θre−θr|が60度よりも小さい場合には、当該推定演算処理(S50)を終了し、図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0088】
その後、制御周期毎に、図6の回転角推定処理におけるステップS10→S50および図9のステップS41→S44を実行する。その結果、制御周期毎にステップS42において順方向推定演算処理により回転角推定値θreが更新されていく。これは、図10における直前検出時点tn-1から検出予定回転角到達時点tnまでにおけるロータ回転角の推定(回転角推定値θreの算出)に相当する。このようなロータ回転角の順方向推定の過程において、ロータ回転角が新たに検出される前に回転角推定値θreが検出予定回転角θnx(図6のステップS20で設定)に達すると、上記偏差|θre−θr|が60度となるので、ステップS44においてYesと判定し、ステップS46へ進む。
【0089】
ステップS46では、現時点の時刻tを時点tnとおき、この時点tn以降すなわち検出予定回転角到達時点tn以降においてロータ7の回転方向が反転するとみなして逆方向推定演算により回転角推定値θreを算出するために、フラグFrに1を代入する。次のステップS48において、当該制御周期に図5のステップS3で取得された操舵トルクTの値をトルクτ(n)に代入することで、この検出予定回転角到達時点tnにおける操舵トルクの情報としてトルクτ(n)を取得する(トルクτ(n)の検出)。その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0090】
その後、ロータ回転角が新たに検出されるまでは、制御周期毎に図9の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=1であるので(ステップS46参照)、制御周期毎に推定演算処理においてステップS41→S51→S52→S54を実行する。
【0091】
ステップS52では、式(6)で示される逆方向推定演算により回転角推定値θreを算出し、次にステップS54において、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が所定の角度量Δθ以上であるか否かを判定する(ただし0<Δθ<60)。この判定の結果、当該偏差|θre−θr|が当該角度量Δθよりも小さい場合(Noの場合)には、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。なお、図10および図11に示す動作例では、上記角度量Δθは60/2=30[度]に設定されている。
【0092】
ステップS54での判定の結果、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が上記角度量Δθ以上の場合(Yesの場合)には、ステップS56へ進む。ステップS56では、現時点の時刻tすなわち検出予定回転角θnxから検出済回転角θrの方向に上記角度量Δθだけ変化させた回転角(以下「中間回転角」という)θnx−Dir・Δθに回転角推定値θreが達した時点tを中間回転角到達時点tn+1とする。次にステップS58において、当該制御周期にステップS3で取得された操舵トルクTの値をトルクτ(n+1)に代入することで、この中間回転角到達時点tn+1における操舵トルクの情報としてトルクτ(n+1)を取得する(トルクτ(n+1)の検出)。
【0093】
次にステップS61において、直前検出時点tn-1(tk)のトルクτ(n−1)、検出予定回転角到達時点tnのトルクτ(n)、および、中間回転角到達時点tn+1のトルクτ(n+1)の正負(符号)の組み合わせから、ロータ7の回転方向が直前検出時点tn-1(tk)と中間回転角到達時点tn+1との間で反転したか否かを判定(推定)する。具体的には、下記のように判定する。
(1)τ(n−1)とτ(n)の符号が互いに異なり、かつ、τ(n−1)とτ(n+1)の符号が互いに異なる場合には、回転方向が反転していると判定する(図11(a)参照)。
(2)τ(n−1)とτ(n)とτ(n+1)の符号が互いに同じである場合には、回転方向が反転していないと判定する(図11(b)参照)。
(3)τ(n−1)とτ(n)の符号が互いに異なり、かつ、τ(n)とτ(n+1)の符号が互いに異なる場合には、回転方向が反転したか否かは不明であると判定する(図11(c)参照)。また、τ(n−1)とτ(n)の符号が互いに同じで、かつ、τ(n)とτ(n+1)の符号が互いに異なる場合も、回転方向が反転したか否かは不明であると判定する。
上記(1)〜(3)の判定は、直前検出時点tn-1(tk)、検出予定回転角到達時点tn、および中間回転角到達時点tn+1における操舵トルクの向きに基づき、ロータ7の回転方向が反転したか否かを推定することを意味する。このようなステップS61がマイコン20によって実行されることにより、ロータの回転方向が反転したか否かを推定する反転推定手段が実現される。
【0094】
ステップS61での判定の結果、回転方向が反転していると推定される場合すなわち上記(1)の場合には、中間回転角到達時点tn+1および中間回転角θnx−Dir・Δθを時間および回転位置の起点として逆方向推定演算を行うべく、フラグFrに2を代入する(ステップS62)。一方、ステップS61での判定の結果、回転方向が反転していないと推定される場合すなわち上記(2)の場合には、中間回転角到達時点tn+1および中間回転角θnx−Dir・Δθを時間および回転位置の起点として順方向推定演算を行うべく、フラグFrに4を代入する(ステップS64)。また、ステップS61での判定の結果、回転方向が反転しているか否かが不明である場合(反転の有無を推定できない場合)すなわち上記(3)の場合には、中間回転角到達時点tn+1以降において回転角推定値θreを一定値すなわち中間回転角θnx−Dir・Δθに維持すべく、フラグFrに3を代入する(ステップS63)。
【0095】
上記のステップS62,S63,S64のいずれかが実行された後は、当該推定演算処理から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0096】
その後、新たにロータ回転角が検出されるまで、制御周期毎に図9の推定演算処理を実行する(図6のS10,S50参照)。この間、フラグFrの値に応じてロータ7の回転角を推定する。すなわち、フラグFr=2の場合(回転方向の反転が推定される場合)は、制御周期毎にステップS41→S51→S66→S67を実行し、この中でステップS67において下記式(7)で示される逆方向推定演算を行う。一方、フラグFr=4の場合(回転方向の非反転が推定される場合)は、制御周期毎にステップS41→S51→S66→S68→S69を実行し、この中でステップS69において下記式(8)で示される順方向推定演算を行う。また、フラグFr=3の場合(回転方向が反転したか否かが不明の場合)は、制御周期毎にステップS41→S51→S66→S68を実行し、逆方向推定演算も順方向推定演算も行わないので回転角推定値θreは変化しない。なお既述のように、回転方向係数Dirは、直前検出時点tk(tn-1)におけるロータ7の回転方向が時計回り方向か否かに応じて+1または−1となっている。
θre=θnx−Dir・Δθ−ωe・(t−tn+1) …(7)
θre=θnx−Dir・Δθ+ωe・(t−tn+1) …(8)
【0097】
このような処理により、図10に示す動作例における回転角推定値θreは、フラグFr=2の場合には図11(a)に示すように変化し、フラグFr=4の場合には図11(b)に示すように変化し、フラグFr=3の場合には図11(c)に示すように変化する。
【0098】
上記のような回転角推定処理(図6)および推定演算処理(図9)を制御周期毎に繰り返し実行している間に、新たにロータ回転角が検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tk(tn-1)を前回の検出時点tk-1(tn-2)に置き換えると共に、新たな検出時点tk+1(tn+2)を今回の検出時点tk(tn-1)に置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換える共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、以上説明したステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0099】
<3.3 効果>
上記のように本実施形態では、ホールセンサ5の検出信号に基づき検出済回転角θrが取得された時点tk(tn-1)から次に新たな検出済回転角が取得される時点tk+1までに回転角推定値θreが検出予定回転角θnxに達した場合には、その後、回転角推定値θreは、逆方向推定演算(図9のS52)により検出済回転角θrに向かって変化し(戻し処理が行われ)、検出予定回転角θnxから所定の角度量Δθ(図10では30度)だけ変化した時点tn+1において、直前検出時点tn-1(tk)のトルクτ(n−1)、検出予定回転角到達時点tnのトルクτ(n)、および、中間回転角到達時点tn+1のトルクτ(n+1)の正負(符号)に基づき、ロータ7の回転方向が直前検出時点tn-1と中間回転角到達時点tn+1との間で反転したか否かが判定される。中間回転角到達時点tn+1以降の回転角推定値θreは、その判定結果に応じて、逆方向推定演算もしくは順方向推定演算により算出され、または中間回転角に維持される(ステップS61〜S69、図11(a)〜(c))。
【0100】
したがって本実施形態によれば、ロータ7の回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく(図11(a))、ロータ7の回転方向が反転しない場合において次にロータ回転角が検出されるまでに回転角推定値θreが検出予定回転角θnxに達しても、中間回転角到達時点tn+1以降で順方向推定演算を行うことによりロータ回転角の推定誤差が小さく抑えられる(図11(b))。また、ロータ7の回転方向が反転するか否かを明確に判定できない場合であっても、回転角推定値θreを中間回転角到達時点tn+1以降で一定値(中間回転角)に維持することで推定誤差の増大が抑制される(図11(c))。このような回転角推定処理により、モータ1の発生トルクすなわち本実施形態に係るモータ制御装置を備えた電動パワーステアリング装置における操舵補助力が、必要以上に低下するのを防止し、当該電動パワーステアリング装置において良好な操舵感を得ることができる。
【0101】
<4.第3の実施形態>
上記第1および第2の実施形態のようにホールセンサ5等の信号検出により離散的に得られる検出回転角に基づき現時点のロータ回転角を推定する構成では、或る時点で検出回転角を得てから次に検出回転角を得るまでの間にロータが停止する場合や、極めて低い速度でロータが回転する場合には、図13(f)に示すように、回転角推定値θreが2つの回転角の間を何度も往復することになる(図13(f)の動作例では、回転角推定値θreが2つの検出回転角60度と120度との間で往復を繰り返す)。ロータ回転角の推定結果がこのようになると、その回転角推定値θreを用いて駆動されるブラシレスモータの出力トルク(モータトルク)が振動し、そのブラシレスモータを搭載した電動パワーステアリング装置における操舵感が劣化する。そこで、本発明の第3の実施形態に係るモータ制御装置は、このような問題を解決すべく、ロータが停止する場合等であってもモータトルクの振動を抑制しモータを安定的に制御できるように構成されている。以下、このような第3の実施形態に係るモータ制御装置について説明する。
【0102】
<4.1 モータ制御装置の構成>
本実施形態に係るモータ制御装置も、上記第1の実施形態と同様、図1に示すように電動パワーステアリング装置において使用され、ECU10を用いて構成されており、ブラシレスモータ1を駆動する。また、このモータ制御装置の構成は、ロータ回転角推定部164をソフトウェア的に実現するための図6の回転角推定処理において使用される推定演算処理(S50)の手順が異なる点を除き、上記第1の実施形態と基本的に同様である(図2〜図6)。そこで以下では、本実施形態における推定演算処理を中心に説明し、他の部分については同一または対応する構成要素に同一の参照符号を付して詳しい説明を省略する。ただし本実施形態には、図6のステップS20の内容等においても第1の実施形態と若干異なる点がある。その点については以下で必要に応じて説明する。
【0103】
<4.2 回転角推定処理>
図12は、本実施形態における回転角推定処理(図6)で使用される推定演算処理(S50)の手順を示すフローチャートであり、図13は、本実施形態における回転角推定処理を説明するための波形図である。以下、図5および図6と共に図12および図13を参照して本実施形態における回転角推定処理について説明する。なお、図13(a)〜(c)に示す信号波形を生成するホール素子H1,H2,H3は、図3に示すホールIC5b,5a,5cにそれぞれ対応している。
【0104】
既述のように、図6の回転角推定処理は非常に短い制御周期毎に実行される(図5参照)。この回転角推定処理における各ステップの処理内容は、ステップS50の推定演算処理を除き、第1の実施形態と同様であるので詳しい説明を省略する。
【0105】
ホールセンサ5からのセンサ信号に基づきロータ回転角が検出されると、その検出時点tk(tn-1)において図6のステップS11〜S20が実行され、これにより、そのときに取得される検出済回転角θrが回転角推定値θreとして設定されると共に、回転方向係数Dirや、トルクτ(n−1)、時間短縮係数Tc、角速度推定値ωe、フラグFr等が設定される。ただし本実施形態では、第1の実施形態とは異なり、以後に実行される順方向推定演算および逆方向推定演算(図12参照)において時間および回転位置の起点とする基準時点tbおよび基準回転角θbにもその検出時点tkで値が設定される。すなわち本実施形態では、図6のステップS20における処理は、下記式による角速度推定値ωe、角速度推定値低減係数Ga、フラグFr、基準時点tbおよび基準回転角θbの値の設定(もしくは初期化)と置き換えられる。なお、下記式は、第1の実施形態における式(図6のステップS20)と同一のものも含んでいる。また、角速度推定値低減係数Gaは本実施形態で新たに導入されたもので、以後に実行される順方向推定演算および逆方向推定演算で使用される角速度推定値ωeの絶対値を順次低減するための係数である。この角速度推定値低減係数Gaは、本実施例では下記に示すようにGa=0.5であるが、これに限定されるものではなく、1よりも小さい正数であればよい。また、この角速度推定値低減係数Gaは、必ずしも固定値である必要はなく、0<Ga<1を満たす範囲で変化させてもよい。
ωe←Dir・60/(ΔTk・Tc) …(9)
θnx←θre+Dir・60 …(10)
θb←θr …(11)
Ga←0.5 …(12)
Fr←0 …(13)
tb←t …(14)
【0106】
次の制御周期以降における回転角推定処理では、新たにロータ回転角が検出されるまではステップS10でNoと判定される。その結果、ステップS50へ進んで、推定演算処理が実行される。この推定演算処理においてマイコン20は、図12に示すフローチャートに従って以下のように動作する。
【0107】
上記第1および第2の実施形態と同様、新たにロータ回転角が検出された直後(新たな検出済回転角θrの取得直後)は、図6のステップS10でYesと判定され、ステップS20においてフラグFrに0を代入する。このため、直前検出時点tk以降、回転角推定値θreが検出予定回転角θnxに達するまで(|θre−θb|≧60となるまで)は、制御周期毎に図12の推定演算処理においてステップS71→S72→S74を実行する。このときステップS72の順方向推定演算では、次式により回転角推定値θreを算出して更新する。
θre=θb+ωe・(t−tb) …(15)
【0108】
上記式(15)による回転角推定値θreの更新は、図13に示すように、直前検出時点tk以降においてロータ7が角速度ωeで回転しているとみなしてロータ回転角を推定することを意味する。
【0109】
このようなロータ回転角の順方向推定の過程において、新たにロータ回転角が検出される前に回転角推定値θreが検出予定回転角θnx(図13の例では120度)に達すると、回転角推定値θreの基準回転角θbからの偏差|θre−θb|が60度となるので、ステップS74においてYesと判定され、ステップS76へ進む。
【0110】
ステップS76では、現時点の時刻tを基準時点tbとおき、この基準時点tb以降すなわち検出予定回転角到達時点tn以降においてロータ7の回転方向が反転するとみなす。この想定の下で後述の逆方向推定演算により回転角推定値θreを算出するために、フラグFrに1を代入すると共に、検出予定回転角θnxを新たな基準回転角θbとするために次式により基準回転角θbを更新する。
θb←θb+Dir・60 …(16)
【0111】
次にステップS78において、下記式により角速度推定値ωeを更新することにより、次に実行される逆方向推定演算で使用される角速度推定値ωeの大きさ(絶対値)を低減する(本実施例ではGa=0.5であり一般的には0<Ga<1)。
ωe←Ga・ωe …(17)
その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0112】
その後、新たにロータ回転角が検出されるまでは、制御周期毎に図12の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=1であるので(ステップS76参照)、回転角推定値θreの基準回転角θbからの偏差が所定の角度量Δθに達するまで(|θre−θb|≧Δθとなるまで)は、制御周期毎に推定演算処理においてステップS71→S81→S82→S84を実行する。このときステップS82の逆方向推定演算では、次式により回転角推定値θreを算出し更新する。
θre=θb−ωe・(t−tb) …(18)
【0113】
上記式(18)による回転角推定値θreの更新は、図13に示すように、検出予定回転角θnx(図13では120度)を起点としてロータ7が角速度−ωeで回転しているとみなしてロータ回転角を推定することを意味する。この逆方向のロータ回転角推定の前に、ステップS78において上記式(17)により角速度推定値ωeの大きさが角速度推定値低減係数Gaを用いて低減されているので、回転角推定値θreの変化速度は、直前の順方向のロータ角推定における変化速度のGa倍の速度に低減されている(本実施例ではGa=0.5)。
【0114】
このような逆方向のロータ回転角推定の過程において、新たにロータ回転角が検出される前に回転角推定値θreの基準回転角θbからの偏差|θre−θb|が所定の角度量Δθに達すると、ステップS86へ進む(ただし0<Δθ≦60)。
【0115】
ステップS86では基準時点tbを現時点の時刻tに更新し、この新たな基準時点tb以降においてロータ7の回転方向が更に反転するとみなす。すなわち、直前検出時点tkにおける回転方向と同じ方向に回転するとみなす。この想定の下で後述の順方向推定演算により回転角推定値θreを算出するためにフラグFrに2を代入すると共に、検出予定回転角θnxから検出済回転角θrに向かって所定の角度量Δθだけ変化した角度を新たな基準回転角θbとするために次式により基準回転角θbを更新する。
θb←θb−Dir・Δθ …(19)
【0116】
次にステップS88において、既述の式(17)により角速度推定値ωeを更新することにより、次に実行される順方向推定演算で使用される角速度推定値ωeの大きさ(絶対値)を低減する。その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0117】
その後、次にロータ回転角が検出されるまでは、制御周期毎に図12の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=2であるので(ステップS86参照)、回転角推定値θreの基準回転角θbからの偏差が上記角度量Δθに達するまで(|θre−θb|≧Δθとなるまで)は、制御周期毎に推定演算処理においてステップS71→S81→S92→S94を実行する。このときステップS92の順方向推定演算では、次式により回転角推定値θreを算出し更新する。
θre=θb+ωe・(t−tb) …(20)
【0118】
上記式(20)による回転角推定値θreの更新は、図13に示すように、検出予定回転角θnxから上記角度量Δθだけ検出済回転角θrの方向に変化させた値(図13(g)では60度)を起点としてロータ7が角速度ωeで回転しているとみなしてロータ回転角を推定することを意味する。この順方向のロータ回転角推定の前に、ステップS88において上記式(17)により角速度推定値ωeの大きさが角速度推定値低減係数Gaを用いて低減されているので、回転角推定値θreの変化速度は、直前の逆方向のロータ角推定の過程における変化速度のGa倍の速度に低減されている(本実施例ではGa=0.5)。
【0119】
このような順方向のロータ回転角推定の過程において、新たにロータ回転角が検出される前に上記偏差|θre−θb|が上記角度量Δθに達すると、ステップS96へ進む。
【0120】
ステップS96では、基準時点tbを現時点の時刻tに更新し、この新たな基準時点tb以降においてロータ7の回転方向が更に反転するとみなす。すなわち、直前検出時点tkにおける回転方向とは反対の方向に回転するとみなす。この想定の下で逆方向推定演算により回転角推定値θreを算出するためにフラグFrに1を代入すると共に、現時点の基準回転角θbから検出予定回転角θnxに向かって上記角度量Δθだけ変化した角度を新たな基準回転角θbとするために次式により基準回転角θbを更新する。
θb←θb+Dir・Δθ …(21)
【0121】
次にステップS98において、既述の式(17)により角速度推定値ωeを更新することにより、次に実行すべき逆方向推定演算で使用される角速度推定値ωeの大きさ(絶対値)を低減する。その後、当該推定演算処理(S50)から図6の回転角推定処理のルーチンに復帰し、そこから更に図5のモータ制御処理のルーチンに復帰する。
【0122】
その後、次にロータ回転角が検出されるまでは、制御周期毎に図12の推定演算処理を実行する(図6のS10,S50参照)。この時点ではフラグFr=1であるので(ステップS96参照)、上記偏差|θre−θb|が上記角度量Δθに達するまでは、制御周期毎に推定演算処理においてステップS71→S81→S82→S84を実行する。
【0123】
上述の説明からわかるように、これ以降は、上記偏差|θb−θb|が上記角度量Δθに達する毎に、式(18)による逆方向のロータ回転角推定(ステップS82参照)と、式(20)による順方向のロータ回転角推定(ステップS92参照)とを交互に繰り返し、このようなロータ回転角推定の過程において回転方向が切り換わる毎に角速度推定値ωeの大きさ(絶対値)が角速度推定値低減係数Gaの比率で順次小さくなっていく。
【0124】
上記のような回転角推定処理(図6)および推定演算処理(図12)を制御周期毎に繰り返し実行している間に、新たにロータ回転角が検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tkを前回の検出時点tk-1に置き換えると共に、新たな検出時点tk+1を今回の検出時点tkに置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、以上説明したステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0125】
<4.3 効果>
上記のように本実施形態では、ホールセンサ5の検出信号に基づき検出済回転角θrが取得された時点tk(tn-1)から次に新たな検出済回転角が取得される時点tk+1までの期間が長い場合(例えばロータ7が停止している場合やロータ7の回転が極めて遅い場合)には、ロータ回転角の順方向推定の過程で回転角推定値θreが検出予定回転角θnxに達したとき、および、ロータ回転角の逆方向推定の過程で回転角推定値θreが検出予定回転角θnxから検出済回転角θrに向かって上記角度量Δθだけ変化した角度に達したときに回転方向が反転したとみなされ、かつ、回転方向が反転したとみなされる毎に回転速度(角速度)の大きさが角速度推定値低減係数Gaの比率で低減していくとみなされる(ステップS78,S88,S98)。しがって、回転角推定値θreは、例えばΔθ=60[度]の場合には図13(g)に示すように変化し、例えばΔθ=30[度]の場合には図13(h)に示すように変化する。なお、上記角度変化量Δθは必ずしも固定値でなくてもよく、例えば上記第1の実施形態におけるように、操舵トルクの変化量Δτ(n)に応じた値としてもよい(式(5)参照)。
【0126】
このような本実施形態によれば、ロータ7の回転方向が反転する場合に回転角の推定誤差が抑制されるだけでなく、ロータ7の回転方向が反転せずに途中で停止する場合やロータ7の回転が極めて遅くなった場合であっても、回転角推定値θreが2つの回転角の間で往復を繰り返してモータトルクが振動するという事態を回避または抑制することができる。これにより、ロータ7が途中で停止する場合等であってもモータ1を安定的に制御し、本実施形態に係るモータ制御装置を備えた電動パワーステアリング装置において良好な操舵感を得ることができる。
【0127】
<4.4 変形例>
<4.4.1 第1の変形例>
図14および図15は、上記第3の実施形態の第1の変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートであり、図16は、本変形例における回転角推定処理を説明するための波形図である。本変形例は、上記第2の実施形態の特徴的構成を上記第3の実施形態に組み込んだものであり、図14および図15に示す推定演算処理以外の構成については、上記第2または第3の実施形態と同様であるので、同一または対応する部分に同一の参照符号を付して詳しい説明を省略する。以下では、図14〜図16を参照しつつ本変形例における推定演算処理を中心に説明する。
【0128】
本変形例においても、上記第3の実施形態と同様、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取ると、すなわち新たにロータ回転角が検出されると(図6のステップS10:Yes)、図6の回転角推定処理におけるステップS11以降のステップの実行により、検出済回転角θrが回転角推定値θreとして設定されると共に、既述の式(9)〜(14)に従って角速度推定値ωeや基準時点tb等が設定される。その後、新たにロータ回転角が検出されるまでは、図6のステップS10でNoと判定されて、制御周期毎に図14および図15に示す推定演算処理(S50)が実行される。このときマイコン20は、図14および図15に示す当該推定演算処理(S50)のフローチャートに従って以下のように動作する。
【0129】
新たにロータ回転角が検出されなければ、回転角推定値θreの基準回転角θbに対する偏差|θre−θb|が60度に達するまでは(回転角推定値θreが検出予定回転角θnxに達するまでは)、ロータ回転角の順方向推定を行う。回転角推定値θreの基準回転角θbに対する偏差|θre−θb|が60度に達した後は、ロータ回転角の逆方向推定を行う。これらの順方向および逆方向の推定処理は、ステップS71〜S78およびS81〜S84によってそれぞれ実現され、これらのステップは、第3の実施形態における推定演算処理(図12)のステップS71〜S78およびS81〜S84と実質的に同様である。しかし本変形例では、第2の実施形態の特徴(図9のステップS48)を組み込むべく、トルクτ(n)を検出するためのステップS79が挿入されている。
【0130】
上記のロータ回転角の逆方向推定の過程で、回転角推定値θreの検出済回転角θrからの偏差|θre−θr|が所定の角度量Δθに達すると、ステップS84においてYesと判定されてステップS86へ進む。その後のステップS86,S88も第3の実施形態における推定演算処理(図12)のステップS86,S88と実質的に同様である。
【0131】
ステップS88の次には、第2の実施形態の特徴(図9のステップS58)を組み込むべく、トルクτ(n+1)を検出するためのステップS89が挿入されており、更に、第2の実施形態における推定演算処理(図9)のステップS61〜S64に相当するステップS101〜S104が挿入されている。これにより、第2の実施形態と同様、直前検出時点tn-1(tk)のトルクτ(n−1)、検出予定回転角到達時点tnのトルクτ(n)、および、中間回転角到達時点tn+1のトルクτ(n+1)の正負の組み合わせから、ロータ7の回転方向が直前検出時点tn-1(tk)と中間到達tn+1との間で反転したか否かを判定(推定)する。その判定の結果、回転方向が反転していると推定される場合にはフラグFrに2を代入し(ステップS102)、回転方向が反転していないと推定される場合にはフラグFrに4を代入し(ステップS104)、回転方向が反転したか否かは不明である場合にはフラグFrに3を代入する(ステップS103)。
【0132】
その後、当該推定演算処理を一旦終了し、次の制御周期以降で当該制御演算処理が開始されたときには、フラグFrは2,3,4のいずれかであるので、ステップS71およびS81においてNoと判定され、図15のテップS110へ進む。これ以降、新たに検出済回転角が取得されるまでは、制御周期毎に、図15の推定演算処理においてフラグFrの値に応じた所定のステップ群による処理が下記のように実行される。
【0133】
フラグFr=2の場合、すなわち図14のステップS101での判定の結果、回転方向が反転していると推定される場合には、図15のステップS110〜S118によるロータ回転角の逆方向推定とステップS120〜S128によるロータ回転角の順方向推定とが交互に行われる。その結果、中間回転角到達時点tn+1以降、回転角推定値θreは、図16(g)に示すように、中間回転角θnx−Dir・Δθ(図16では90度)と検出済回転角θr(図16では60度)との間を往復するように変化する。ここで、逆方向推定と順方向推定との間で推定手順が切り換わる毎に、角速度推定値ωeの大きさが順次小さくなるので(ステップS118,S128)、回転角推定値θreの変化速度(絶対値)も順次低下する。
【0134】
フラグFr=4の場合、すなわち図14のステップS101での判定の結果、回転方向が反転していないと推定される場合には、図15のステップS130〜S138によるロータ回転角の順方向推定とステップS140〜S148によるロータ回転角の逆方向推定とが交互に行われる。その結果、中間回転角到達時点tn+1以降、回転角推定値θreは、図16(h)に示すように、中間回転角θnx−Dir・Δθ(図16では90度)と検出予定回転角θnx(図16では120度)との間を往復するように変化する。ここでも、逆方向推定と順方向推定との間で回転方向の推定が切り換わる毎に、角速度推定値ωeの大きさが順次小さくなるので(ステップS138,S148)、回転角推定値θreの変化速度(絶対値)も順次低下する。
【0135】
フラグFr=3の場合、すなわち図14のステップS101での判定の結果、回転方向が反転したか否かは不明である場合には、図15の推定演算処理においてステップS110→S120→S130→S140が制御周期毎に実行されるのみであり、順方向推定演算も逆方向推定演算も行われない。その結果、中間回転角到達時点tn+1以降、回転角推定値θreは、図16(i)に示すように一定値(中間回転角θnx−Dir・Δθ)に維持される。
【0136】
図6の回転角推定処理および上記の推定演算処理(図14、図15)を制御周期毎に繰り返し実行している間に、ロータ回転角が新たに検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tkを前回の検出時点tk-1に置き換えると共に、新たな検出時点tk+1を今回の検出時点tkに置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、ステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0137】
上記のような本変形例によれば、ロータ7の回転方向が反転したか否かが中間回転角到達時点tn+1において判定(推定)され、回転角推定値θreは、その判定結果に応じて、逆方向推定演算もしくは順方向推定演算により算出され、または中間回転角に維持される(図14のステップS101〜S104、図15のステップS110〜S148)。また、ロータ回転角について逆方向推定と順方向推定が繰り返し行われる場合には、角速度推定値ωeの大きさが順次小さくなるので(ステップS118,S128,S138,S148)、回転角推定値θreの変化速度(絶対値)が順次低下する(図16(g)(h)(i))。したがって、ロータ7の回転方向が反転するか否かに拘わらず、回転角の推定誤差が抑制されると共に、ロータ7の回転方向が反転せずに途中で停止する場合等であっても、回転角推定値θreが2つの回転角の間を往復してモータトルクが振動するという事態を回避または抑制することができる。
【0138】
<4.4.2 第2の変形例>
上記第3の実施形態における回転角推定処理(図6)および推定演算処理(図12)では、ロータ回転角推定の過程において、回転角推定値θreが予め決められた回転角(検出予定回転角θnxと中間回転角θnx−Dir・Δθ)に到達すると回転方向が反転するとみなされる(図13(f)〜(h)参照)。しかし、これに代えて、検出済回転角θrが得られてから(ロータ回転角が検出されてから)所定時間Tpが経過する毎に回転方向が反転するとみなして回転角推定値θreを算出してもよい。以下、このような構成のモータ制御装置を上記第3の実施形態の第2の変形例として説明する。
【0139】
図17は、本変形例における回転角推定処理で使用される推定演算処理の手順を示すフローチャートである。本変形例の構成のうち図17の推定演算処理以外の構成については上記第3の実施形態と同様であるので、同一または対応する部分に同一の参照符号を付して詳しい説明を省略する。以下では、図17を参照しつつ本変形例における推定演算処理を中心に説明する。
【0140】
本変形例においても、上記第3の実施形態と同様、ホールセンサ5の信号検出により得られる検出済回転角θrを受け取ると、すなわちロータ回転角が検出されると(図6のステップS10:Yes)、図6の回転角推定処理におけるステップS11以降のステップの実行により、検出済回転角θrが回転角推定値θreとして設定されると共に、既述の式(9)〜(14)に従って角速度推定値ωeや基準時点tb等が設定される。その後、新たにロータ回転角が検出されるまでは、図6のステップS10でNoと判定されて、制御周期毎に図17に示す推定演算処理(S50)が実行される。このときマイコン20は、図17に示す当該推定演算処理(S50)のフローチャートに従って動作する。なお、ロータ回転角推定における回転方向の反転タイミング(順方向推定と逆方向推定との間での切り換わりタイミング)を決める時間Tpは、図5のステップS2で設定されるものとするが、図6のステップS20で設定してもよい。
【0141】
図17のステップS71〜S79は、図12のステップS71〜S78に対応し、本変形例では、図12のステップS74に代えてステップS75が使用されている。このような本変形例では、制御周期毎に図17の推定演算処理におけるステップS71→S72→S75を実行することにより、直前検出時点としての基準時点tbから所定期間Tpが経過するまで、ステップS72の順方向推定演算によりロータ回転角が推定される(以下、この所定時間Tpを「推定周期」という)。
【0142】
上記のロータ回転角の順方向推定が推定周期Tpだけ行われると、ステップS77でフラグFrに1が代入されるので、それ以後は、ステップS79で設定された推定周期Tpだけロータ回転角の逆方向推定が行われる。すなわち、図17のステップS82〜S89は、図12のステップS81〜S88に対応し、本変形例では、図12のステップS84に代えてステップS85が使用されている。このような本変形例では、制御周期毎に図17の推定演算処理におけるステップS71→S82→S85を実行することにより、ステップS77で更新された基準時点tbからステップS79で更新された推定周期Tpが経過するまで、ステップS82の逆方向推定演算によりロータ回転角が推定される。
【0143】
ロータ回転角についての上記の順方向推定と逆方向推定とは推定周期毎に切り換わり(ステップS75,S85)、この切り換わり毎に、ロータ回転角推定における回転方向が反転し、角速度推定値ωeの大きさが順次小さくなるだけでなく、推定周期Tpが順次長くなる(ΔTpずつ長くなる)(ステップS79,S89)。
【0144】
図6の回転角推定処理および上記の推定演算処理(図17)を制御周期毎に繰り返し実行している間に、新たにロータ回転角が検出されると、図6の回転角推定処理におけるステップS10で再びYesと判定される。この場合、上記の直前検出時点tkを前回の検出時点tk-1に置き換えると共に、新たな検出時点tk+1を今回の検出時点tkに置き換え、かつ、ロータ回転角の新たな検出前に検出された上記検出回転角θrを前回の検出済回転角θr’に置き換えると共に、新たに検出されたロータ回転角を新たな検出済回転角θrとして、ステップS11以降の処理を実行する。なお、今回の検出時点tkは、次の制御周期からは「直前検出時点tk」と呼ばれる。
【0145】
上記のような本変形例によれば、ロータ回転角について逆方向推定と順方向推定が繰り返し行われる場合には、角速度推定値ωeの大きさが順次小さくなると共に、推定周期Tpが順次長くなるので(ステップS79,S89)、ロータ7の回転方向が反転せずに途中で停止する場合やロータ7の回転が極めて遅くなった場合であっても、回転角推定値θreが2つの回転角の間を往復してモータトルクが振動するという事態を回避または抑制することができる。
【0146】
<4.4.3 他の変形例>
上記第3の実施形態ならびにその第1および第2の変形例では、角速度推定値ωeの大きさは、ロータ回転角についての推定手順が逆方向推定と順方向推定の間で切り換わる毎に一定比率で小さくなっていくが(等比数列的に小さくなっていくが)、これに変えて、角速度推定値ωeの大きさを小さくする比率を示す角速度推定値低減率Gaを変化させる(例えば徐々に小さくしていく)ようにしてもよい。
【0147】
上記第1の変形例では、回転角推定値θreが予め決められた回転角に到達すると回転方向が反転するとみなされるが(図13(f)〜(h)参照)、これに代えて、上記第2の変形例のように、ロータ回転角の推定において推定周期Tp毎に回転方向が反転する(ロータ回転角についての推定手順が逆方向推定と順方向推定の間で切り換わる)ようにしてもよい。
【0148】
上記第2の変形例では、ロータ回転角について逆方向推定と順方向推定との間で推定手順を切り変えるための推定周期Tpは、順次長くなっていくが(ステップS79,S89)、推定周期Tpを固定値としてもよい。また、上記第2の変形例では、推定周期Tp毎に推定周期TpがΔTpずつ長くなっていく(等差数列的に増大していく)が、推定周期毎Tpに推定周期Tpを所定倍する(等比数列的に増大させる)ようにしてもよい。更にまた、回転角推定値θreが検出済回転角θrから検出予定回転角θnxまで変化するのに要する時間を推定周期Tpとしてもよい。
【0149】
<5.他の実施形態または変形例>
上記第1〜第3の実施形態では、新たにロータ回転角が検出される前(新たな検出時点tk+1前)に回転角推定値θreが検出予定回転角θnxに達した場合に、回転角推定値θreは、図8、図11、図13にそれぞれ示すように変化する。しかし本発明は、これに限定されるものではなく、新たな検出時点tk+1よりも前に回転角推定値θreが検出予定回転角θnxに達した場合に、検出回転角到達時点tnから新たな検出時点tk+1までは回転角推定値θreが検出予定回転角θnxを越えないように(|θre−θr|≦|θnx−θr|=60となるように)非モータトルクとしての操舵トルクに応じて回転角推定値θreの算出方法が変更される構成であればよい。
【0150】
上記第1〜第3の実施形態では、図6の回転角推定処理において期間短縮係数Tcには1/2が代入されるが、これは、ロータ回転角の推定において、現実のロータが前回の検出時点までの角速度と同じ角速度で回転し、かつ次回の検出済回転角が得られると予想される時点の直前でその回転方向が反転し同じ角速度で回転する変化態様を想定しているからである。したがって、ロータの回転方向が反転する場合において、上記態様とは異なるロータ角速度の変化態様を想定することにより、期間短縮係数Tcに1より小さい数値であって1/2以外の数値を代入してもよい。このような場合、途中でロータの回転方向が反転したことから長くなった期間に対してその期間を短くするよう1未満の期間短縮係数Tcを乗算することにより補正すれば、補正された期間に基づき正確な回転角推定値θreを得ることができる。
【0151】
上記第1〜第3の実施形態では、ブラシレスモータ1の電気角を示す回転角推定値を算出するように構成されているが、本発明は、電気角の推定に限定されるものではなく、電気角か機械角かに拘わらずロータの回転角を推定する場合に適用可能である。また本発明は、ロータの回転角推定値に基づき駆動される、ブラシレスモータ以外の電動モータのモータ制御装置にも適用できる。
【0152】
なお本発明は、上述したコラムアシスト型の電動パワーステアリング装置だけでなく、ピニオンアシスト型やラックアシスト型の電動パワーステアリング装置にも適用できる。また本発明は、電動パワーステアリング装置以外に用いられるモータ制御装置にも適用できる。
【符号の説明】
【0153】
5a〜5c…ホールIC、6a〜6c…ステータ、7…ロータ、20…マイコン。
【特許請求の範囲】
【請求項1】
電動モータにおけるロータの回転角の推定値を算出し、当該推定値に基づき当該電動モータを駆動するモータ制御装置であって、
前記ロータの回転角を所定の角度間隔で離散的に検出する回転角離散検出手段と、
前記回転角離散検出手段による検出結果および前記回転角離散検出手段による前記ロータの回転角の検出時点の間隔から前記ロータの回転速度の推定値を算出する速度推定手段と、
前記電動モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクを非モータトルクとして検出するトルク検出手段と、
前記速度推定手段により得られる回転速度推定値および前記トルク検出手段により検出される非モータトルクに基づき、前記ロータの現時点での回転角を示す回転角推定値を算出する回転角推定手段とを備え、
前記回転角推定手段は、前記回転角離散検出手段により前記ロータの回転角が検出された第1の検出時点から前記回転角離散検出手段により次に前記ロータの回転角が検出される第2の検出時点までに、前記回転角推定値が前記回転角離散検出手段により次に検出されるべき前記ロータの回転角である検出予定回転角に到達した場合に、前記第2の検出時点までは前記回転角推定値が当該検出予定回転角を越えないように、前記トルク検出手段により検出される非モータトルクに応じて前記回転角推定値の算出方法を変更することを特徴とする、モータ制御装置。
【請求項2】
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記速度推定手段により得られる速度推定値とに基づき、前記第1の検出時点と前記検出予定回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記検出予定回転角への到達時点から前記第2の検出時点までは、前記検出予定回転角と前記回転角推定値との差が、前記第1の検出時点で検出される前記非モータトルクと前記検出予定回転角への到達時点で検出される前記非モータトルクとの差に応じた所定量よりも大きくならないように、前記算出方法を変更することを特徴とする、請求項1に記載のモータ制御装置。
【請求項3】
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角に向かって前記検出予定回転角から前記所定量だけ変化した中間回転角に前記回転角推定値が到達したときには、前記第2の検出時点まで当該中間回転角を維持するように、前記算出方法を変更し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記検出済回転角と前記検出予定回転角との間を2等分する角度値に前記回転角推定値が到達したときには、前記第2の検出時点まで当該2等分する角度値を維持するように、前記算出方法を変更することを特徴とする、請求項2に記載のモータ制御装置。
【請求項4】
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角と前記検出予定回転角との間における所定の中間回転角に前記回転角推定値が前記検出予定回転角への到達時点後に到達する場合に当該中間回転角への到達時点で検出される前記非モータトルクの向きとに基づき、前記第1の検出時点と前記中間回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記中間回転角への到達時点から前記第2の検出時点までにおいて、前記反転推定手段の推定結果に応じて前記回転角推定値が減少もしくは増加しまたは一定となるように、前記算出方法を変更することを特徴とする、請求項1に記載のモータ制御装置。
【請求項5】
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出予定回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出済回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したか否かを前記反転推定手段が推定できない場合には、前記中間回転角への到達時点後に前記回転角推定値が一定に維持されるように前記回転角推定値を算出することを特徴とする、請求項4に記載のモータ制御装置。
【請求項6】
前記回転角推定手段は、前記ロータの回転方向が反転したとみなして前記回転角推定値の算出方法を変更する場合には、前記回転角推定値の算出に使用する回転速度推定値の絶対値を当該算出方法の変更に伴って低減することを特徴とする、請求項1に記載のモータ制御装置。
【請求項7】
車両のステアリング機構に電動モータによって操舵補助力を与える電動パワーステアリング装置であって、
請求項1から6のいずれか1項に記載のモータ制御装置を備え、
前記トルク検出手段は、前記車両の操舵操作のために前記ステアリング機構に加えられる操舵トルクを前記非モータトルクとして検出し、
前記モータ制御装置は、前記ステアリング機構に操舵補助力を与える電動モータを駆動することを特徴とする、電動パワーステアリング装置。
【請求項1】
電動モータにおけるロータの回転角の推定値を算出し、当該推定値に基づき当該電動モータを駆動するモータ制御装置であって、
前記ロータの回転角を所定の角度間隔で離散的に検出する回転角離散検出手段と、
前記回転角離散検出手段による検出結果および前記回転角離散検出手段による前記ロータの回転角の検出時点の間隔から前記ロータの回転速度の推定値を算出する速度推定手段と、
前記電動モータの駆動対象に加えられるトルクのうちモータトルク以外のトルクを非モータトルクとして検出するトルク検出手段と、
前記速度推定手段により得られる回転速度推定値および前記トルク検出手段により検出される非モータトルクに基づき、前記ロータの現時点での回転角を示す回転角推定値を算出する回転角推定手段とを備え、
前記回転角推定手段は、前記回転角離散検出手段により前記ロータの回転角が検出された第1の検出時点から前記回転角離散検出手段により次に前記ロータの回転角が検出される第2の検出時点までに、前記回転角推定値が前記回転角離散検出手段により次に検出されるべき前記ロータの回転角である検出予定回転角に到達した場合に、前記第2の検出時点までは前記回転角推定値が当該検出予定回転角を越えないように、前記トルク検出手段により検出される非モータトルクに応じて前記回転角推定値の算出方法を変更することを特徴とする、モータ制御装置。
【請求項2】
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記速度推定手段により得られる速度推定値とに基づき、前記第1の検出時点と前記検出予定回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記検出予定回転角への到達時点から前記第2の検出時点までは、前記検出予定回転角と前記回転角推定値との差が、前記第1の検出時点で検出される前記非モータトルクと前記検出予定回転角への到達時点で検出される前記非モータトルクとの差に応じた所定量よりも大きくならないように、前記算出方法を変更することを特徴とする、請求項1に記載のモータ制御装置。
【請求項3】
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角に向かって前記検出予定回転角から前記所定量だけ変化した中間回転角に前記回転角推定値が到達したときには、前記第2の検出時点まで当該中間回転角を維持するように、前記算出方法を変更し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合において、前記検出予定回転角への到達時点後、前記検出済回転角と前記検出予定回転角との間を2等分する角度値に前記回転角推定値が到達したときには、前記第2の検出時点まで当該2等分する角度値を維持するように、前記算出方法を変更することを特徴とする、請求項2に記載のモータ制御装置。
【請求項4】
前記回転角推定手段は、
前記第1の検出時点で検出される前記非モータトルクの向きと、前記第2の検出時点までに前記回転角推定値が前記検出予定回転角に到達する場合に前記検出予定回転角への到達時点で検出される前記非モータトルクの向きと、前記第1の検出時点で検出された前記ロータの回転角である検出済回転角と前記検出予定回転角との間における所定の中間回転角に前記回転角推定値が前記検出予定回転角への到達時点後に到達する場合に当該中間回転角への到達時点で検出される前記非モータトルクの向きとに基づき、前記第1の検出時点と前記中間回転角への到達時点との間で前記ロータの回転方向が反転したか否かを推定する反転推定手段を含み、
前記中間回転角への到達時点から前記第2の検出時点までにおいて、前記反転推定手段の推定結果に応じて前記回転角推定値が減少もしくは増加しまたは一定となるように、前記算出方法を変更することを特徴とする、請求項1に記載のモータ制御装置。
【請求項5】
前記回転角推定手段は、
前記ロータの回転方向が反転していないと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出予定回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したと前記反転推定手段により推定される場合には、前記中間回転角への到達時点後に前記回転角推定値が前記検出済回転角に向かって変化するように前記回転角推定値を算出し、
前記ロータの回転方向が反転したか否かを前記反転推定手段が推定できない場合には、前記中間回転角への到達時点後に前記回転角推定値が一定に維持されるように前記回転角推定値を算出することを特徴とする、請求項4に記載のモータ制御装置。
【請求項6】
前記回転角推定手段は、前記ロータの回転方向が反転したとみなして前記回転角推定値の算出方法を変更する場合には、前記回転角推定値の算出に使用する回転速度推定値の絶対値を当該算出方法の変更に伴って低減することを特徴とする、請求項1に記載のモータ制御装置。
【請求項7】
車両のステアリング機構に電動モータによって操舵補助力を与える電動パワーステアリング装置であって、
請求項1から6のいずれか1項に記載のモータ制御装置を備え、
前記トルク検出手段は、前記車両の操舵操作のために前記ステアリング機構に加えられる操舵トルクを前記非モータトルクとして検出し、
前記モータ制御装置は、前記ステアリング機構に操舵補助力を与える電動モータを駆動することを特徴とする、電動パワーステアリング装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2011−120339(P2011−120339A)
【公開日】平成23年6月16日(2011.6.16)
【国際特許分類】
【出願番号】特願2009−273668(P2009−273668)
【出願日】平成21年12月1日(2009.12.1)
【出願人】(000001247)株式会社ジェイテクト (7,053)
【Fターム(参考)】
【公開日】平成23年6月16日(2011.6.16)
【国際特許分類】
【出願日】平成21年12月1日(2009.12.1)
【出願人】(000001247)株式会社ジェイテクト (7,053)
【Fターム(参考)】
[ Back to top ]