<1. 第1の実施形態>
図1は、本発明の第1の実施形態(およびその他の各実施形態)に係る電動パワーステアリング装置の構成を、それに関連する車両の構成と共に示す概略図である。図1に示す電動パワーステアリング装置は、ブラシレスモータ1、減速機2、トルクセンサ3、車速センサ4、位置検出センサ5、および、電子制御ユニット(Electronic Control Unit :以下、ECUという)10を備えたコラムアシスト型の電動パワーステアリング装置である。
図1に示すように、ステアリングシャフト102の一端にはハンドル(ステアリングホイール)101が固着されており、ステアリングシャフト102の他端はラックピニオン機構103を介してラック軸104に連結されている。ラック軸104の両端は、タイロッドおよびナックルアームからなる連結部材105を介して車輪106に連結されている。運転者がハンドル101を回転させると、ステアリングシャフト102は回転し、これに伴いラック軸104は往復運動を行う。ラック軸104の往復運動に伴い、車輪106の向きが変わる。
電動パワーステアリング装置は、運転者の負荷を軽減するために、以下に示す操舵補助を行う。トルクセンサ3は、ハンドル101の操作によってステアリングシャフト102に加えられる操舵トルクTを検出する。車速センサ4は、車速Sを検出する。位置検出センサ5は、ブラシレスモータ1のロータの回転位置Pを検出する。位置検出センサ5は、例えばレゾルバで構成される。
ECU10は、車載バッテリ100から電力の供給を受け、操舵トルクT、車速Sおよび回転位置Pに基づきブラシレスモータ1を駆動する。ブラシレスモータ1は、ECU10によって駆動されると、操舵補助力を発生させる。減速機2は、ブラシレスモータ1とステアリングシャフト102との間に設けられる。ブラシレスモータ1で発生した操舵補助力は、減速機2を介して、ステアリングシャフト102を回転させるように作用する。
この結果、ステアリングシャフト102は、ハンドル101に加えられる操舵トルクと、ブラシレスモータ1で発生した操舵補助力の両方によって回転する。このように電動パワーステアリング装置は、ブラシレスモータ1で発生した操舵補助力を車両のステアリング機構に与えることにより操舵補助を行う。
このような本発明の第1の実施形態に係る電動パワーステアリング装置は、後述する第2または第3の各実施形態に係る電動パワーステアリング装置と同一の構成であるが、これらの実施形態では、それぞれブラシレスモータ1を駆動する制御装置(モータ制御装置)に特徴がある。そこで以下では、各実施形態に係る電動パワーステアリング装置に含まれるモータ制御装置について説明する。
図2は、本発明の第1の実施形態に係るモータ制御装置の構成を示すブロック図である。図2に示すモータ制御装置は、ECU10を用いて構成されており、u相、v相およびw相の3相巻線(図示せず)を有するブラシレスモータ1を駆動する。ECU10は、位相補償器11、マイクロコンピュータ(以下、マイコンと略称する)20、3相/PWM(Pulse Width Modulation)変調器12、モータ駆動回路13、および、電流センサ14を備えている。
ECU10には、トルクセンサ3から出力された操舵トルクT、車速センサ4から出力された車速S、位置検出センサ5から出力された回転位置P、および温度センサ6から出力されたモータ温度Tpmが入力される。なお、このモータ温度Tpmは、装置の動作終了時と起動時にのみ用いられる。位相補償器11は、操舵トルクTに対して位相補償を施す。マイコン20は、ブラシレスモータ1の駆動に用いられる指令電圧のレベルを求める制御手段として機能する。マイコン20の機能の詳細については、後述する。
3相/PWM変調器12とモータ駆動回路13は、ハードウェア(回路)で構成されており、マイコン20で求めたレベルの電圧を用いてブラシレスモータ1を駆動するモータ駆動手段として機能する。3相/PWM変調器12は、マイコン20で求めた3相の電圧のレベルに応じたデューティー比を有する3種類のPWM信号(図2に示すU、V、W)を生成する。モータ駆動回路13は、スイッチング素子として6個のMOS−FET(Metal Oxide Semiconductor Field Effect Transistor )を含むPWM電圧形インバータ回路である。6個のMOS−FETは、3種類のPWM信号とその否定信号によって制御される。PWM信号を用いてMOS−FETの導通状態を制御することにより、ブラシレスモータ1に対して3相の駆動電流(U相電流、V相電流およびW相電流)が供給される。このようにモータ駆動回路13は、複数のスイッチング素子を有し、ブラシレスモータ1に電流を供給するスイッチング回路として機能する。
電流センサ14は、ブラシレスモータ1に流れる電流を検出する電流検出手段として機能する。電流センサ14は、例えば抵抗体やホール素子で構成され、モータ駆動回路13と電源の間に1個だけ設けられる。図2に示す例では、電流センサ14はモータ駆動回路13と電源のマイナス側(接地)との間に設けられているが、電流センサ14をモータ駆動回路13と電源のプラス側との間に設けてもよい。
ブラシレスモータ1が回転している間、電流センサ14で検出される電流値は、PWM信号に応じて変化する。PWM信号の1周期内では、電流センサ14によって1相の駆動電流が検知されるときと、2相の駆動電流の和が検知されるときとがある。3相の駆動電流の和はゼロになるので、2相の駆動電流の和に基づき、残り1相の駆動電流を求めることができる。したがって、ブラシレスモータ1が回転している間、1個の電流センサ14を用いて3相の駆動電流を検出することができる。電流センサ14で検出された電流値ia は、マイコン20に入力される。
マイコン20は、ECU10に内蔵されたメモリ(図示せず)に格納されたプログラムを実行することにより、指令電流算出部21、オープンループ制御部22、dq軸/3相変換部23、角度算出部24、角速度算出部25、Φ算出部26、および初期Φ算出部27として機能する。また、マイコン20に内蔵される不揮発性メモリの一部は、Φ値記憶部28として機能する。マイコン20は、以下に示すように、ブラシレスモータ1に供給すべき電流の量を示す指令電流値とブラシレスモータ1のロータの角速度とに基づき、モータの回路方程式に従い、モータ駆動回路13に与えるべき電圧(以下、指令電圧という)のレベルを求める。
角度算出部24は、位置検出センサ5で検出した回転位置Pに基づき、ブラシレスモータ1のロータの回転角(以下、角度θという)を求める。角速度算出部25は、角度θに基づき、ブラシレスモータ1のロータの角速度ωe を求める。なお、図3に示すようにブラシレスモータ1に対してu軸、v軸およびw軸を設定し、ブラシレスモータ1のロータ6に対してd軸およびq軸を設定したとき、u軸とd軸のなす角が角度θとなる。
指令電流算出部21は、位相補償後の操舵トルクT(位相補償器11の出力信号)と車速Sに基づき、ブラシレスモータ1に供給すべきd軸電流とq軸電流を求める(以下、前者をd軸指令電流id *、後者をq軸指令電流iq *という)。より詳細には、指令電流算出部21は、車速Sをパラメータとして、操舵トルクTと指令電流との対応づけを記憶したテーブル(以下、アシストマップという)を内蔵しており、アシストマップを参照して指令電流を求める。アシストマップを用いることにより、ある大きさの操舵トルクが与えられたときに、その大きさに応じた適切な大きさの操舵補助力を発生させるためにブラシレスモータ1に供給すべきd軸指令電流id *とq軸指令電流iq *を求めることができる。
なお、指令電流算出部21で求めるq軸指令電流iq *は符号付きの電流値であり、その符号は操舵補助の方向を示す。例えば、符号がプラスのときには右方向へ曲がるための操舵補助が行われ、符号がマイナスのときには左方向へ曲がるための操舵補助が行われる。また、d軸指令電流id *は、典型的にはゼロに設定される。
オープンループ制御部22は、d軸指令電流id * 、q軸指令電流iq * および角速度ωe に基づき、ブラシレスモータ1に供給すべきd軸電圧とq軸電圧を求める(以下、前者をd軸指令電圧vd 、後者をq軸指令電圧vq という)。d軸指令電圧vd とq軸指令電圧vq は、次式(1)と(2)に示すモータの回路方程式を用いて算出される。
vd=(R+PLd)id *−ωeLqiq * …(1)
vq=(R+PLq)iq *+ωeLdid *+ωeΦ …(2)
ただし、式(1)と(2)において、vd はd軸指令電圧、vq はq軸指令電圧、id *はd軸指令電流、iq *はq軸指令電流、ωe はロータの角速度、Rは電機子巻線抵抗を含む回路抵抗、Ld はd軸の自己インダクタンス、Lq はq軸の自己インダクタンス、ΦはU、V、W相電機子巻線鎖交磁束数の最大値の√(3/2)倍、Pは微分演算子である。このうちR、Ld 、Lq およびΦは、既知のパラメータとして扱われる。なお、上記回路抵抗Rには、ブラシレスモータ1とECU10との間の配線抵抗やECU10内でのモータ駆動回路13の抵抗および配線抵抗などが含まれ、以下の実施形態でも同様である。
dq軸/3相変換部23は、オープンループ制御部22で求めたd軸指令電圧vd とq軸指令電圧vq を3相交流座標軸上の指令電圧に変換する。より詳細には、dq軸/3相変換部23は、d軸指令電圧vd とq軸指令電圧vq に基づき、次式(3)〜(5)を用いてu相指令電圧Vu 、v相指令電圧Vv およびw相指令電圧Vw を求める。
Vu=√(2/3)×{vd×cosθ−vq×sinθ} …(3)
Vv=√(2/3)×{vd×cos(θ−2π/3)
−vq×sin(θ−2π/3)} …(4)
Vw=−Vu−Vv …(5)
なお、式(3)と(4)に含まれる角度θは、角度算出部24で求めたものである。
このようにマイコン20は、dq座標軸上の指令電流id * 、iq * を求める処理と、モータの回路方程式に従いdq座標軸上の指令電圧vd 、vq を求める処理と、指令電圧vd 、vq を3相の指令電圧Vu 、Vv 、Vw に変換する処理とを行う。3相/PWM変調器12は、マイコン20で求めた3相の指令電圧Vu 、Vv 、Vw に基づき、3種類のPWM信号を出力する。これにより、ブラシレスモータ1の3相巻線には、各相の指令電圧に応じた正弦波状の電流が流れ、ブラシレスモータ1のロータは回転する。これに伴い、ブラシレスモータ1の回転軸には、ブラシレスモータ1を流れる電流に応じたトルクが発生する。発生したトルクは、操舵補助に用いられる。
Φ算出部26には、電流センサ14で検出された電流値ia と、角度算出部24で算出された角度θと、角速度算出部25で算出された角速度ωe とが入力される。Φ算出部26は、まず電流値ia に基づきブラシレスモータ1に流れるu相とv相の電流を求め(以下、前者をu相検出電流iu 、後者をv相検出電流iv という)、これらをdq座標軸上の電流値に変換する。より詳細には、Φ算出部26は、u相検出電流iu とv相検出電流iv に基づき、次式(6)と(7)を用いてd軸検出電流id とq軸検出電流iq を求める。
id=√2×{iv×sinθ−iu×sin(θ−2π/3)} …(6)
iq=√2×{iv×cosθ−iu×cos(θ−2π/3)} …(7)
なお、式(6)と(7)に含まれる角度θは、角度算出部24で求めたものである。
次に、Φ算出部26は、ωe ≠0のときに、q軸指令電圧vq 、d軸検出電流id 、q軸検出電流iq および角速度ωe に基づき、次式(8a)を用いて式(2)に含まれる電機子巻線鎖交磁束数Φを求める。
Φ={vq−(R+PLq)iq−ωeLdid}/ωe …(8a)
なお、式(8a)は、式(2)のd軸指令電流id *とq軸指令電流iq *にd軸検出電流id とq軸検出電流iq を代入し、その式をΦについて解いたものである。
Φ算出部26は、求めたΦ値をオープンループ制御部22に対して出力する。オープンループ制御部22は、式(2)を用いてq軸指令電圧vq を求めるときに、Φ算出部26で算出されたΦ値を使用する。ただし、装置の起動時点からΦ算出部26でΦ値が算出されるまでの間は、初期Φ算出部27から与えられるΦ値を使用する。この初期Φ算出部27の動作については詳しく後述する。このようにマイコン20は、モータの回路方程式に含まれる電機子巻線鎖交磁束数Φを求め、q軸指令電圧vq を求めるときにはそのΦ値を使用する。
Φ算出部26は、演算を簡素化するために、式(8a)に代えて次式(8b)や(8c)を使用してもよい。
Φ=(vq−Riq−ωeLdid)/ωe …(8b)
Φ=(vq−Riq)/ωe …(8c)
式(8b)は式(8a)から微分項を省略したものであり、式(8c)は式(8b)からid を含む項を省略したものである。
Φ算出部26は、ωe ≠0である限り、任意のタイミングでΦ値を求めてもよい。Φ算出部26は、例えば、所定の時間間隔でΦ値を求めてもよく、ブラシレスモータ1の駆動開始後に1回だけΦ値を求めてもよく、温度などの状態が変化したときにΦ値を求めてもよい。また、ωe がゼロに近いときに求めたΦ値には誤差が発生しやすいので、Φ算出部26は、ωe が所定の閾値以上であるときに限りΦ値を求めることとしてもよい。
以上に示すように、本実施形態に係るモータ制御装置は、指令電流値とロータの角速度とに基づき、モータの回路方程式に従いオープンループ制御により指令電圧を求めると共に、電流センサで検出した電流値に基づきモータの回路方程式に含まれるΦを求め、指令電圧を求めるときには装置起動時を除いてそのΦ値を使用する。
したがって、本実施形態に係るモータ制御装置によれば、モータの回路方程式に含まれるΦ値が製造ばらつきや温度変化によって変動するときでも、電流センサで検出した電流値に基づきΦ値を求めることにより、高い精度でブラシレスモータを駆動し、所望のモータ出力を得ることができる。
また、本実施形態に係るモータ制御装置には、電流センサは1個だけ設けられている。したがって、本実施形態に係るモータ制御装置によれば、電流センサを削減することにより、モータ制御装置の小型化、低コスト化および低消費電力化が可能となる。
ここで前述したように、Φ算出部26は、ωe =0である場合など、常にΦ値を算出することができるわけではなく、装置起動直後にはΦ値を算出できない。この場合、(一律の)設計上のΦ値を不揮発性メモリに記憶しておき、装置起動直後からΦ算出部26によるΦ値の算出が開始されるまでの間、この記憶されたΦ値を初期値として使用する構成も考えられるが、このようなΦ値は、装置毎の製造ばらつきが考慮されていないため、モータの制御誤差が生じる可能性がある。そこで、典型的には装置の動作が終了する時点でのΦ値を不揮発性メモリに記憶しておき、装置起動直後からΦ算出部26によるΦ値の算出が開始されるまでの間は、この記憶されたΦ値を初期値として使用する構成がより好ましい。このΦ値は、装置毎の製造ばらつきが考慮されているからである。
しかし、このΦ値は温度変化によっても変動するので、Φ値が記憶される装置の動作が終了する時点の温度と、装置起動直後の温度とに差がある場合、装置毎の製造ばらつきは考慮されるとしても、温度変化によるΦ値のずれによりモータの制御誤差が生じる可能性がある。
そこで、初期Φ算出部27は、Φ値記憶部28にΦ値を記憶する時点におけるモータ温度TpmをΦ値と併せて記憶させ、装置起動直後のモータ温度Tpmとの差を考慮して、Φ値記憶部28に記憶されたΦ値を補正し、(初期Φ値として)オープンループ制御部22に与える。そうすれば、装置毎の製造ばらつきはもちろん、温度変化による影響も考慮することができるため、高い精度でモータを制御することができる。以下、このような初期Φ算出部27の動作について、図4を参照して説明する。
図4は、初期Φ算出部27の処理手順を示すフローチャートである。本電動パワーステアリング装置が起動されると、初期Φ算出部27は以下の一連の処理を開始する。ここで、ステップS10〜S18の処理は、Φ値記憶部28に記憶されたΦ値を補正するための処理であり、Φ値記憶部28に記憶されるΦ値はステップS20〜S26の処理によりΦ値記憶部28に書き込まれる。したがって、まずステップS20〜S26の処理について先に説明する。
まず、ステップS20において装置の動作が終了直前(例えばイグニッションキーがオフされる等)と判定されると(ステップS20:Yes)、初期Φ算出部27は、その動作終了直前の時点でのモータ温度Tpmを温度センサ6から取得する(ステップS22)。次に初期Φ算出部27は、その同一の時点でのΦ値をオープンループ制御部22から取得する(ステップS24)。なお、このΦ値はΦ算出部26から取得してもよい。
続いて、初期Φ算出部27は、ステップS22において取得されたモータ温度Tpmと、ステップS24において取得されたΦ値とを併せてΦ値記憶部28に書き込む(ステップS26)。その後、装置の動作は終了し、次に動作が開始されるとステップS10における処理から初期Φ算出部27の動作が開始される。なお、Φ値記憶部28はEEPROMなどの不揮発性メモリを含むので、装置の動作が停止している時もモータ温度TpmおよびΦ値の記憶を維持している。
以上のように装置の動作が終了した後、新たに装置が起動されると初期Φ算出部27は、ステップS26において書き込まれた(前回の動作終了時点の)Φ値とモータ温度TpmとをΦ値記憶部28から読み出す(ステップS10)。また、初期Φ算出部27は、装置起動時点でのモータ温度Tpmを温度センサ6から取得する(ステップS12)。
次に、初期Φ算出部27は、ステップS10において読み出された(前回の動作終了時点の)モータ温度Tpmと、ステップS12において取得された(今回の装置起動時点の)モータ温度Tpmとの差(すなわち温度変化)を算出する(ステップS14)。
続いて、初期Φ算出部27は、ステップS14において取得されたモータ温度Tpmの差に応じて、ステップS10において読み出された(前回の動作終了時点の)Φ値から変化した装置起動時点での新たなΦ値を初期値として算出する(ステップS16)。
具体的には、初期Φ算出部27は、モータ温度TpmとΦ値との関係が線形であることを利用し、モータ温度Tpmが単位量(例えば摂氏0.1度)だけ変化する毎に変化するΦ値の量を予め記憶しておく。初期Φ算出部27は、この量に基づき、前回の動作終了時点から今回の装置起動時点までのモータ温度Tpmの変化に応じて、前回の動作終了時点のΦ値が装置起動時点においてどれだけ変化するかを計算することにより、装置起動時点でのΦ値を算出する。
また、Φ値をより正確に補正するため、モータ温度Tpmと理想的な(設計上の初期値としての)Φ値との関係をテーブル(マップ)や算出式、近似式などで予め記憶しておき、前回の動作終了時点におけるΦ値と前回の動作終了時点のモータ温度Tpmにおける理想的なΦ値との差に基づき、上記テーブルなどを参照して得られる今回の装置起動時点のモータ温度Tpmに対応する理想的なΦ値から、今回の装置起動時点のΦ値を算出してもよい。
次に、初期Φ算出部27は、ステップS16において算出されたΦ値を装置起動時点のΦ値としてオープンループ制御部22に設定する(ステップS18)。すなわち、オープンループ制御部22は、装置起動時点においては、Φ算出部26からのΦ値を使用することなく、初期Φ算出部27により算出される初期値としてのΦ値を使用する。
もちろん、装置起動時点でブラシレスモータ1が回転していない、すなわち角速度ωe =0である場合には、前述したようにΦ算出部26はΦ値を求めることができないが、Φ値記憶部28に記憶されるΦ値をそのままオープンループ制御部22に設定するのでは温度変化によるΦ値の変化が補償されない。
そこで、本実施形態のように、初期Φ算出部27によってモータ温度Tpmの変化に応じた補正が行われたΦ値をオープンループ制御部22に設定すれば、装置毎の製造ばらつきはもちろん、温度変化による影響も考慮することができるため、高い精度でモータを制御することができる。
したがって、本実施形態に係るモータ制御装置によれば、モータの回路方程式に含まれるΦ値が製造ばらつきや温度変化によって変動するときでも、電流センサで検出した電流値に基づきΦ値を求めることにより、高い精度でブラシレスモータを駆動し、所望のモータ出力を得ることができるとともに、動作終了時に記憶される上記Φ値を装置起動時点において温度変化に応じて補正することにより、装置起動時点から直ちに高い精度でモータを制御することができる。
<2. 第2の実施形態>
図5は、本発明の第2の実施形態に係るモータ制御装置の構成を示すブロック図である。図5に示すモータ制御装置は、第1の実施形態に係るモータ制御装置において、マイコン20に含まれるΦ算出部26、初期Φ算出部27、およびΦ値記憶部28を、R算出部36、初期R算出部37、およびR値記憶部38に置換し、さらにECU10を格納するケースに取り付けられた周囲温度Tpaを測定する温度センサ7を新たに設けたものである。以下、この実施形態の各構成要素のうち、先に述べた実施形態と同一の要素については、同一の参照符号を付して説明を省略する。
R算出部36には、Φ算出部26と同様に、電流センサ14で検出された電流値ia と、角度算出部24で算出された角度θと、角速度算出部25で算出された角速度ωe とが入力される。R算出部36は、まず電流値ia に基づきu相検出電流iu とv相検出電流iv を求め、これらを式(6)と(7)を用いてdq座標軸上の電流値に変換する。
次に、R算出部36は、iq ≠0のときに、q軸指令電圧vq 、d軸検出電流id 、q軸検出電流iq および角速度ωe に基づき、次式(9a)を用いて式(1)と(2)に含まれる電機子巻線抵抗を含む回路抵抗Rを求める。
R=(vq−PLqiq−ωeLdid−ωeΦ)/iq …(9a)
なお、式(9a)は、式(2)のd軸指令電流id *とq軸指令電流iq *にd軸検出電流id とq軸検出電流iq を代入し、その式をRについて解いたものである。
R算出部36は、求めたR値をオープンループ制御部22に対して出力する。オープンループ制御部22は、式(1)と(2)を用いてd軸指令電圧vd とq軸指令電圧vq を求めるときに、R算出部36で算出されたR値を使用する。このようにマイコン20は、モータの回路方程式に含まれる電機子巻線抵抗を含む回路抵抗Rを求め、d軸指令電圧vd とq軸指令電圧vq を求めるときにはそのR値を使用する。
R算出部36は、演算を簡素化するために、式(9a)に代えて次式(9b)や(9c)を使用してもよい。
R=(vq−ωeLdid−ωeΦ)/iq …(9b)
R=(vq−ωeΦ)/iq …(9c)
式(9b)は式(9a)から微分項を省略したものであり、式(9c)は式(9b)からid を含む項を省略したものである。
R算出部36は、iq ≠0である限り、任意のタイミングでR値を求めてもよい。R算出部36は、例えば、所定の時間間隔でR値を求めてもよく、ブラシレスモータ1の駆動開始後に1回だけR値を求めてもよく、温度などの状態が変化したときにR値を求めてもよい。また、iq がゼロに近いときに求めたR値には誤差が発生しやすいので、R算出部36は、iq が所定の閾値以上であるときに限りR値を求めることとしてもよい。
以上に示すように、本実施形態に係るモータ制御装置は、指令電流値とロータの角速度とに基づき、モータの回路方程式に従いオープンループ制御により指令電圧を求めると共に、電流センサで検出した電流値に基づきモータの回路方程式に含まれるRを求め、指令電圧を求めるときにはそのR値を使用する。
ここで前述したように、R算出部36は、iq がゼロのときなど、常にR値を算出することができるわけではなく、装置起動直後にはR値を算出できない。そして、このR値もΦ値と同様に温度変化によっても変動する。
そこで、初期R算出部37は、初期Φ算出部27とほぼ同様に、R値記憶部38にR値を記憶する時点におけるモータ温度Tpmと、同時点における周囲温度TpaとをR値と併せて記憶し、装置起動直後の温度との差を考慮して、R値記憶部38に記憶されたR値を補正し、(初期R値として)オープンループ制御部22に与える。そうすれば、装置毎の製造ばらつきはもちろん、温度変化による影響も考慮することができるため、高い精度でモータを制御することができる。
このようなR値を補正する初期R算出部37の動作について、Φ値を補正する図4に示した初期Φ算出部27の動作とほぼ同様であるが、図4におけるステップS12,S22において、モータ温度Tpmのほか、さらに周囲温度Tpaを温度センサ7から取得し、ステップS10,S26において、モータ温度Tpmと周囲温度Tpaを併せてR値記憶部38から読み出しまたはR値記憶部38に書き込む点と、ステップS14において、周囲温度Tpaの差も併せて算出し、ステップS16において、モータ温度Tpmの差のほか、周囲温度Tpaの差も併せて考慮することにより回路抵抗Rを算出する点とが異なる。以下、これらの相違点のうち、ステップS16における初期Φ算出部27の動作に相当する初期R算出部37の動作について詳しく説明する。
このステップS16において、初期R算出部37は、ステップS14において取得された(装置終了時点と装置起動時とにおける)モータ温度Tpmの差、および周囲温度Tpaの差に応じて、ステップS10において読み出された(前回の動作終了時点の)R値から変化した装置起動時点での新たなR値を初期値として算出する。
具体的には、回路抵抗Rは、ブラシレスモータ1の電機子巻線抵抗R1と、ECU10内でのモータ駆動回路13の抵抗やECU10からブラシレスモータ1までの間の配線抵抗などを含む配線等抵抗R2との和であることに着目し、モータ温度Tpmと電機子巻線抵抗R1との関係、および周囲温度Tpaと配線等抵抗R2との関係がそれぞれ線形であることを利用する。
例えば、初期R算出部37は、モータ温度Tpmと理想的な(設計上の初期値としての)R1値との関係、および周囲温度Tpaと理想的な(設計上の初期値としての)R2値との関係をそれぞれテーブル(マップ)や算出式、近似式などで予め記憶しておく。
ここで、R算出部36により算出され前回の動作終了時点においてR値記憶部38に書き込まれたR値は、装置毎の製造ばらつきを反映しているので、理想的な値とは異なるが、R1値とR2値との割合はほとんど変わらないものとして、初期R算出部37は、前回の動作終了時点におけるR値から、上記割合に基づき(推定される)動作終了時点におけるR1値およびR2値を算出する。
そして、初期R算出部37は、前回の動作終了時点における(推定される)R1値と前回の動作終了時点のモータ温度Tpmにおける理想的なR1値とのずれ(典型的にはずれ率)に基づき、上記テーブルなどを参照して得られる今回の装置起動時点のモータ温度Tpmに対応する理想的なR1値から、今回の装置起動時点のR1値を算出する。また同様に、初期R算出部37は、前回の動作終了時点における(推定される)R2値と前回の動作終了時点の周囲温度Tpaにおける理想的なR2値とのずれ(ずれ率)に基づき、上記テーブルなどを参照して得られる今回の装置起動時点の周囲温度Tpaに対応する理想的なR2値から、今回の装置起動時点のR2値を算出する。このように算出された電機子巻線抵抗R1と配線等抵抗R2との和から初期値としてのR値を求めることができる。
したがって、本実施形態に係るモータ制御装置によれば、第1の実施形態に係るモータ制御装置の場合と同様に、モータの回路方程式に含まれるR値が製造ばらつきや温度変化によって変動するときでも、電流センサで検出した電流値に基づきR値を求めることにより、高い精度でブラシレスモータを駆動し、所望のモータ出力を得ることができるとともに、動作終了時に記憶される上記R値を装置起動時点において温度センサ6、7によりそれぞれ測定される温度変化に応じて電機子巻線抵抗R1と配線等抵抗R2との2つに分けて補正することにより、特に電機子巻線抵抗に対応する部分の温度と配線等抵抗に対応する部分の温度とが大きく異なる場合には、より正確に温度補償ができるのでより高い精度でモータを制御することができる。
<3. 第3の実施形態>
図6は、本発明の第3の実施形態に係るモータ制御装置の構成を示すブロック図である。図6に示すモータ制御装置は、図5に示す第2の実施形態に係るモータ制御装置において、マイコン20に含まれる初期R算出部37およびR値記憶部38を、初期R算出部47、および初期R記憶部48に置換するとともに、新たに温度変化算出部49を設け、さらに温度センサ6,7を省略したものである。以下、この実施形態の各構成要素のうち、先に述べた実施形態と同一の要素については、同一の参照符号を付して説明を省略する。
温度変化算出部49は、電流センサ14で検出された電流値ia と、オープンループ制御部22から受け取った(R算出部36により算出された)R値とに基づき、装置起動当初から現時点(ここでは装置終了時点)までの温度変化量ΔTを算出する。この温度変化量ΔTのうちの単位時間あたりの温度変化量ΔT’は、端的には、電源からモータ駆動回路13両端までの、シャント抵抗やリレー、電解コンデンサなどの電子部品を含む電流経路における配線から生じた発熱エネルギーをAとし、これらの配線から自然対流や輻射、物質間熱伝導などにより失われた放熱エネルギーをBとし、温度上昇係数をKtとするとき、次式(10)のように表すことができる。
ΔT’=(A−B)×Kt …(10)
また、発熱エネルギーAは、時間をtとしたとき、次式(11)のように表すことができる。
A=ia 2×R×t …(11)
なお、放熱エネルギーBは、自然対流放熱や輻射による放熱、物質間熱伝導による放熱などにより決まり、周知の算出式や実験により求めることができる。
温度変化算出部49は、以上のような温度変化量ΔT’の算出を任意の単位時間毎に行う。
初期R算出部47は、温度センサを使用することなく、温度変化算出部49により算出された上記配線等の温度変化量ΔTに基づき、温度上昇前の(装置起動時点の)R値を算出し、このR値を初期R記憶部48に記憶させ、このR値を装置起動直後にオープンループ制御部22に与える。そうすれば、装置毎の製造ばらつきはもちろん、温度変化による影響も考慮することができるため、高い精度でモータを制御することができる。以下、このような初期R算出部47の動作について、図7を参照して説明する。
図7は、初期R算出部47の処理手順を示すフローチャートである。本電動パワーステアリング装置が起動されると、初期R算出部47は以下の一連の処理を開始する。
まず、初期R算出部47は、初期R記憶部48に記憶されたR値を読み出す(ステップS30)。次に、初期R算出部47は、読み出されたR値をオープンループ制御部22に設定する(ステップS32)。なお、このR値は、後述するステップにおいて補正された(温度変化を補償された)値となっている。
続いて、ステップS34において装置の動作が終了直前ではないと判定されると(ステップS34:No)、直前と判定されるまで待機状態が繰り返される。なお前述したように、この間も、温度変化算出部49は装置起動当初からの温度変化量ΔTを算出し続ける。そうしてステップS34において装置の動作が終了直前と判定されると(ステップS34:Yes)、初期R算出部47は、その時点での温度変化量ΔTを温度変化算出部49から取得する(ステップS36)。
次に、初期R算出部47は、装置の動作が終了直前である現時点でのR値をオープンループ制御部22から取得する(ステップS38)。なお、このR値はR算出部36から取得してもよい。
続いて、初期R算出部47は、ステップS36において取得された温度変化量ΔTに応じて、ステップS38において取得した(装置の動作終了直前である)現時点のR値を補正することにより、今回の装置起動時のR値(の推定値)を初期値として算出する(ステップS40)。
具体的には、配線等の温度変化量ΔTとR値との関係が線形であることを利用し、初期R算出部47は、配線等の温度が単位量(例えば摂氏0.1度)だけ変化する毎に変化するR値の量を予め記憶しておき、この量に基づき、今回の装置起動時点から動作終了時点までの温度変化に応じて今回の動作終了時点のR値に変化したと推定される、装置起動時点でのR値を算出する。
次に、初期R算出部47は、ステップS40において算出された初期値としてのR値を初期R記憶部48に書き込む(ステップS42)。その後、装置の動作は終了し、次に動作が開始されるとステップS10における処理から初期R算出部27の動作が開始される。なお、初期R記憶部48はEEPROMなどの不揮発性メモリを含むので、前述したR値記憶部38と同様、装置の動作が停止している時もR値の記憶を維持している。
以上のように、本実施形態に係るモータ制御装置によれば、モータの回路方程式に含まれるR値が製造ばらつきや温度変化によって変動するときでも、温度変化算出部49により算出した温度変化に基づき、装置起動時点のR値を求めることにより、高い精度でブラシレスモータを駆動し、所望のモータ出力を得ることができるとともに、温度変化算出部49によって温度センサを使用することなく温度変化が算出され、初期R算出部47によってR値が温度補償され記憶されているので、温度補償のための温度センサを省略することができ、かつ上記R値を使用する場合に装置起動時点から直ちに高い精度でモータを制御することができる。
<4. 各実施形態の変形例>
<4.1 主たる変形例>
上記各実施形態では、装置の動作終了時点でφ値またはR値を記憶し、装置の起動時点で、記憶された値を(補正しまたはそのまま)使用するが、装置の動作終了時点でφ値またはR値を記憶するのではなく、製造時などの所定の時点で予め記憶されたφ値またはR値を装置の起動時点で使用してもよい。
すなわち、装置の起動時点で使用されるべきφ値またはR値は、典型的には装置の製造時点において、(温度管理された環境下で)装置の温度を常温(なおここでいう常温とは、例えば日本工業規格で規定された温度範囲(20℃±15℃)であってもよいし、その中で、さらに狭い温度範囲であってもよい)に設定しておき、その状態で装置を動作させることによりφ値またはR値を算出し、算出された値をEEPROMなどの不揮発性メモリに記憶する。そして、装置の動作が停止すれば時間の経過とともに放熱が進む結果、自己発熱による温度上昇前の通常の温度、すなわち常温に装置全体の温度が復帰することになる。したがって、装置の起動時点でこの不揮発性メモリに記憶された(常温時の)φ値またはR値を使用すれば、製造ばらつきによる値の変動が補償され、また装置の動作終了時点で繰り返しφ値またはR値を記憶する必要がない簡易な構成で、装置の起動時点から直ちに高い精度でモータを制御することができる。
なお、この主たる変形例の構成は、上記各実施形態の構成と併用することも可能である。すなわち、上記各実施形態では、装置の動作終了時点でφ値またはR値を初めて記憶するため、製造時から装置が未動作であるため不揮発性メモリに未だ値が記憶されていない場合、上記主たる変形例の構成により得られるφ値またはR値を初期値として不揮発性メモリに記憶させてもよい。
また、この主たる変形例の構成では、装置の温度が常温の時点で算出されるφ値またはR値を記憶すればよいので、記憶する時点は製造時に限定されず、例えば試運転時やメンテナンス時など、さらには装置の通常動作中において、装置に備えられる温度センサにより測定される温度に基づき、装置が常温となった時点において算出されるφ値またはR値を不揮発性メモリに記憶させてもよい。
さらに、装置の温度センサを省略し(または使用せずに)、温度管理された環境下で装置の温度が常温に保たれている時点、例えば製造時におけるオペレータからの指示を受け付けた時点において、前述のように算出されるφ値またはR値を不揮発性メモリに記憶させてもよい。
<4.2 その他の変形例>
上記第1の実施形態では、温度センサ6はブラシレスモータ1に取り付けられる構成であるが、電機子巻線の温度を推定できる位置、例えば電機子巻線の周囲温度を測定できるブラシレスモータ1の近傍や、第2の実施形態における温度センサ7のようにECU10を格納するケースなどに設けられていてもよい。これらの位置の温度は、電機子巻線の温度と一定の相関関係があるため、これらの位置の温度から電機子巻線の温度を推定することができる。なお、このような温度の推定には周知のシミュレーションや実験などの結果により得られる近似式や対応テーブルなどが使用される。
上記第2の実施形態では、温度センサ7は、ECU10を格納するケースなどに取り付けられる構成であるが、配線等抵抗R2を有する配線等の温度を(その相関関係から)推定できる位置に取り付けられていればよく、例えばECU10内でのモータ駆動回路13の基板に直接取り付けられていてもよいし、マイコン20に内蔵されていてもよい。また、ECU10とは異なる車載ユニットであって温度センサを搭載するユニットから、測定された温度を車内LANなどを介した通信により取得してもよい。
上記第3の実施形態では、温度変化算出部49は、電流センサ14で検出された電流値ia に基づき温度変化量ΔTを算出するが、上記電流値ia に代えて、その推定値や、d軸指令電流id * およびq軸指令電流iq * などの指令電流値に基づき温度変化量ΔTを算出してもよい。
上記第3の実施形態では、第2の実施形態におけるモータ制御装置の構成を一部変更することによりR値を算出するが、これと同様に第1の実施形態におけるモータ制御装置の構成を一部変更することによりΦ値を算出してもよい。なお、この構成では、電機子巻線の抵抗値に基づきその自己発熱により生じる温度変化量を算出し、この温度変化量に応じて(装置終了時点の)Φ値を補正し記憶する。
上記第3の実施形態では、装置の動作終了直前の時点において装置起動時点でのR値を推定し記憶するが、装置の製造ばらつきを反映したR値を算出することができる適宜の時点において装置起動時点でのR値を推定し記憶してもよい。例えば、(電流値が大きく)精度よくR値を算出することができる時点において、装置起動時点からその時点までの温度変化量と、その時点におけるR値とに基づき、同様に装置起動時点でのR値を算出(推定)し記憶する構成でもよい。また同様にして装置起動時点でのφ値を算出し記憶してもよい。
上記各実施形態では、Φ値やR値などのパラメータと、モータ温度Tpmや周囲温度Tpaなどの値とを併せて装置の動作終了時に不揮発性メモリに記憶する構成であるが、これらが記憶される時点は、装置動作終了時に限定されるわけではなく、同一時点におけるパラメータと温度とを記憶可能であれば、装置動作中の適宜の時点でよい。したがって、例えば故障などにより装置が突然終了する場合に備えて、適宜の時間間隔を空けて装置の動作中に不揮発性メモリに記憶することを繰り返す構成でもよい。もっとも、上記値を不揮発性メモリに記憶する動作はある程度の処理時間が必要となるので、装置の動作終了時点に行うことが好ましい。
上記各実施形態では、Φ算出部26またはR算出部36のいずれかが備えられるが、これらが同時に備えられてもよい。ここで上記第1の実施形態では、Φ算出部26は、角速度ωe が所定の閾値以上であるときに限りΦ値を求めることとしてもよいとし、上記第2または第3の実施形態では、R算出部36は、q軸検出電流iq が所定の閾値以上であるときに限りR値を求めることとしてもよいとしたが、いずれの実施形態においてもΦ値とR値とを同時に求めることはできず、また異なる時点で求めた両値の関係から連立方程式を解くことにより求める方法も検出電流が大きく変化しない等の問題があることから実際的ではない。そこで、Φ算出部26およびR算出部36が同時に備えられる場合には、両値のうちの一方の値の変化による影響が小さい場合にはその一方の値の変化によって生じる算出値に対する影響を無視することができるので、その場合に他方の値を算出する動作を行う。そうすれば、両値とも正確に算出することが可能となる。
また上記第2および第3の実施形態では、R算出部36は、上式(2)のd軸指令電流id *とq軸指令電流iq *にd軸検出電流id とq軸検出電流iq を代入し、その式をRについて解くことを前提にしているが、上式(1)のd軸指令電流id *とq軸指令電流iq *にd軸検出電流id とq軸検出電流iq を代入し、その式をRについて解くことも考えられる。そうすれば、Φ値の影響を全く受けることなく正確にR値を算出することができる。
なお、本発明は、上述したコラムアシスト型の電動パワーステアリング装置だけでなく、ピニオンアシスト型やラックアシスト型の電動パワーステアリング装置にも適用できる。また、本発明は、電動パワーステアリング装置以外のモータ制御装置にも適用できる。