"ステータとロータを有するブラシレスモータに対してセンサレス制御を行なうモータ制御装置であって、前記ブラシレスモータに供給されるべき電流指令値を設定するために必要な変動値を検出するための手段でありかつ前記ブラシレスモータによって駆動される駆動対象に外部から加えられるトルクを検出するためのトルク検出手段を少なくとも含む変動値検出手段と、前記変動値検出手段によって検出される変動量に基づいて、前記駆動対象に作用させるべきトルクを前記ブラシレスモータから発生させるための電流指令値を設定する電流指令値設定手段と、前記ブラシレスモータに流れる電流を検出する電流検出手段と、前記電流検出手段によって検出される電流検出値を、d軸電流検出値およびq軸電流検出値に変換する変換手段と、前記d軸電流検出値に基づいて、前記ロータの回転角度を推定する角度推定手段と、前記電流指令値設定手段によって設定される電流指令値と、前記変換手段によって得られるd軸電流検出値およびq軸電流検出値と、前記角度推定手段によって推定されるロータ回転角度とに基づいて、前記ブラシレスモータに供給される電流を制御する制御手段とを含む、モータ制御装置。前記角度推定手段は、前記d軸電流検出値に基づいて、ロータ回転角度を補正するための補正角度を演算する補正角度演算手段と、前記ロータの速度を演算する速度演算手段と、前記補正角度演算手段によって演算される補正角度と、前記速度演算手段によって演算されるロータ速度とに基づいて、ロータ回転角度を演算するロータ角度演算手段とを含む、請求項1に記載のモータ制御装置。車両の舵取り機構に駆動力を付与するモータと、前記モータを制御する請求項1または2に記載のモータ制御装置とを含む、電動パワーステアリング装置。この発明の目的は、回転角センサを用いない新たな制御方式でモータを制御することができるモータ制御装置およびそれを備えた電動パワーステアリング装置を提供することである。上記の目的を達成するための請求項1に記載の発明は、ステータとロータを有するブラシレスモータ5に対してセンサレス制御を行なうモータ制御装置6であって、前記ブラシレスモータに供給されるべき電流指令値を設定するために必要な変動値を検出するための手段でありかつ前記ブラシレスモータによって駆動される駆動対象3に外部から加えられるトルクを検出するためのトルク検出手段1を少なくとも含む変動値検出手段1,2と、前記変動値検出手段によって検出される変動量に基づいて、前記駆動対象に作用させるべきトルクを前記ブラシレスモータから発生させるための電流指令値Id,Iqを設定する電流指令値設定手段24,21と、前記ブラシレスモータに流れる電流を検出する電流検出手段29と、前記電流検出手段によって検出される電流検出値を、d軸電流検出値Idおよびq軸電流検出値Iqに変換する変換手段30と、前記d軸電流検出値に基づいて、前記ロータの回転角度θを推定する角度推定手段31~35と、前記電流指令値設定手段によって設定される電流指令値と、前記変換手段によって得られるd軸電流検出値およびq軸電流検出値と、前記角度推定手段によって推定されるロータ回転角度とに基づいて、前記ブラシレスモータに供給される電流を制御する制御手段22,23,25,26,27,28とを含む、モータ制御装置である。なお、括弧内の英数字は、後述の実施形態における対応構成要素等を表すが、むろん、この発明の範囲は当該実施形態に限定されない。以下、この項において同じ。変動値検出手段によって検出される変動量に基づいて、ブラシレスモータに供給されるべき電流指令値が設定される。この変動量には、ブラシレスモータによって駆動される駆動対象に外部から加えられるトルクが含まれる。一方、ブラシレスモータに流れる電流が検出され、検出された電流検出値がd軸電流検出値およびq軸電流検出値に変換される。このd軸電流検出値に基づいて、ロータの回転角度が推定される。そして、電流指令値と、d軸電流検出値と、q軸電流検出値と、推定されたロータ回転角度とに基づいて、ブラシレスモータに供給される電流が制御される。これにより、回転角センサを用いることなく、変動値検出手段によって検出される変動量に応じた適切なモータトルクをブラシレスモータから発生させることができる。請求項2記載の発明は、前記角度推定手段は、前記d軸電流検出値に基づいて、ロータ回転角度を補正するための補正角度を演算する補正角度演算手段31,32,33と、前記ロータの速度を演算する速度演算手段35と、前記補正角度演算手段によって演算される補正角度と、前記速度演算手段によって演算されるロータ速度とに基づいて、ロータ回転角度を演算するロータ角度演算手段34とを含む、請求項1に記載のモータ制御装置である。この構成では、d軸電流検出値に基づいて補正角度が演算される。また、速度演算手段によって、ロータ速度が演算される。そして、補正角度とロータ速度とに基づいてロータ回転角度が演算される。請求項3記載の発明は、車両の舵取り機構3に駆動力を付与するモータ5と、前記モータを制御する請求項1または2に記載のモータ制御装置6とを含む、電動パワーステアリング装置である。この構成によれば、回転角センサを用いることなく、変動値検出手段によって検出される変動量に応じた適切なモータトルクを車両の舵取り機構に付与することができる。この場合に、前記トルク検出手段は、前記車両の操向のため操作される操舵部材10に加えられる操舵トルクを検出するものであってもよい。また、前記電流指令値設定手段は、操舵トルクの目標値としての目標操舵トルクをブラシレスモータから発生させるための電流指令値を設定するものであってもよい。また、前記変動値検出手段は、前記トルク検出手段の他、車両の速度を検出する速度検出手段を含むものであってもよい。この構成によれば、運転者の操作に伴って変動する変動値に応じたアシストトルク操舵補助力を舵取り機構に付与できる。以下では、この発明の実施形態を、添付図面を参照して詳細に説明する。図1は、この発明の一実施形態に係るモータ制御装置を適用した電動パワーステアリング装置の電気的構成を示すブロック図である。この電動パワーステアリング装置は、車両のステアリングホイール10に加えられる操舵トルクを検出するトルクセンサ1と、車両の速度を検出する車速センサ2と、車両の舵取り機構3に減速機構4を介して操舵補助力を与えるモータ5と、モータ5を駆動制御するモータ制御装置6とを備えている。モータ制御装置6は、トルクセンサ1が検出する操舵トルクおよび車速センサ2が検出する車速に応じてモータ5を駆動することによって、操舵状況および車速に応じた適切な操舵補助を実現する。モータ5は、この実施形態では、3相ブラシレスモータであり、界磁としてのロータ図示せずと、ロータに対向するステータ図示せずに配置されたU相、V相、W相のステータ巻線図示せずとを備えている。モータ制御装置6は、マイクロコンピュータ11と、マイクロコンピュータ11によって制御され、モータ5に電力を供給する駆動回路インバータ回路12と、モータ5に流れるU相電流およびV相電流を検出するための電流センサ13,14とを備えている。マイクロコンピュータ11は、CPUおよびメモリROM,RAMなどを備えており、所定のプログラムを実行することにより、複数の機能処理部として機能するようになっている。この複数の機能処理部には、q軸電流指令値設定部21と、q軸電流偏差演算部22と、q軸電流制御部23と、d軸電流指令値設定部24と、d軸電流偏差演算部25と、d軸電流制御部26と、座標変換部27と、PWM制御部28と、電流検出部29と、座標変換部30と、d軸電流指令値設定部31と、d軸電流偏差演算部32と、ロータ角度制御部位相制御部33と、ロータ角度演算部34と、速度演算部35とを含んでいる。電流検出部29は、所定の演算周期Ts毎に、電流センサ13,14の出力信号に基づいて、U相、V相およびW相の相電流を求める。座標変換部30は、ロータ角度演算部34によって演算されるロータの回転角度以下、ロータ角度θというを用いて、電流検出部29によって求められた3相の相電流を、二相回転座標系における2相の電流に変換する。二相回転座標系は、ロータの磁極方向に沿うd軸と、d軸に直交するq軸とによって規定される座標系である。二相回転座標系における2相の電流は、d軸電流成分とq軸電流成分とからなる。座標変換部30によって得られる2相の電流のうち、d軸電流成分をd軸電流検出値Idといい、q軸電流成分をq軸電流検出値Iqということにする。q軸電流指令値設定部21は、トルクセンサ1によって検出される操舵トルクおよび車速センサ2によって検出される車速に応じたモータトルクアシストトルクをモータ5から発生させるためのq軸電流指令値Iqを設定する。より具体的には、操舵トルクおよび車速に対応したq軸電流指令値Iqを記憶したマップテーブルを用いてq軸電流指令値Iqが設定されるようになっていてもよい。q軸電流偏差演算部22は、q軸電流指令値Iqと座標変換部30によって得られるq軸電流検出値Iqとの偏差Iq-Iqを演算する。q軸電流制御部23は、q軸電流偏差演算部22によって得られた偏差Iq-Iqに対して比例積分演算PI演算を行なうことにより、モータ5に供給すべきq軸電圧以下、q軸電圧指令値Vqというを演算する。d軸電流指令値設定部24は、d軸電流指令値Idを設定する。d軸電流指令値Idは、たとえば零に設定される。d軸電流偏差演算部25は、d軸電流指令値Idと座標変換部30によって得られるd軸電流検出値Idとの偏差Id-Idを演算する。d軸電流制御部26は、d軸電流偏差演算部25によって得られた偏差Id-Idに対して比例積分演算PI演算を行なうことにより、モータ5に供給すべきd軸電圧以下、d軸電圧指令値Vdというを演算する。d軸電流指令値設定部24とq軸電流指令値設定部21とによって、電流指令値演算手段が構成されている。座標変換部27は、ロータ角度演算部34によって演算されるロータ角度θを用いて、d軸電圧指令値Vdおよびq軸電圧指令値Vqを、三相固定座標系におけるU相、V相およびW相の電圧指令値VU,VV,VWに変換する。PWM制御部28は、U相、V相およびW相の電圧指令値VU,VV,VWそれぞれに対応するデューティのU相PWM制御信号、V相PWM制御信号およびW相PWM制御信号を生成し、駆動回路12に供給する。駆動回路12は、U相、V相およびW相に対応した三相インバータ回路からなる。このインバータ回路を構成するパワー素子がPWM制御部28から与えられるPWM制御信号によって制御されることにより、三相電圧指令値VU,VV,VWに相当する電圧がモータ5の各相のステータ巻線に印加されることになる。座標変換部27,30において前記座標変換を行うためには、ロータの回転角ロータ角度θが必要となる。そこで、マイクロコンピュータ11は、ロータ角度θを回転角センサを用いることなく推定するロータ角度推定手段を備えている。ロータ角度推定手段は、d軸電流指令値設定部31、d軸電流偏差演算部32、ロータ角度制御部33、ロータ角度演算部34および速度演算部35から構成される。d軸電流指令値設定部31は、d軸電流指令値Idを設定する。d軸電流指令値Idは、たとえば零に設定される。d軸電流偏差演算部32は、所定の演算周期Ts毎にd軸電流指令値Idと座標変換部30によって得られるd軸電流検出値Idとの偏差Id-Idを演算する。ロータ角度制御部33は、d軸電流偏差演算部32によって演算される偏差Id-Idに対して、比例積分演算PI演算を行なうことにより、補正角度Δθを演算する。たとえば、ロータ角度制御部33は、例えば次式に基づいて、補正角度Δθを演算する。なお、ロータ角度制御部33は、前記偏差Id-Idに対して、比例積分微分演算または比例演算を行なうことにより、補正角度Δθを演算するものであってもよい。Δθ=KP×AKI×B...A:d軸電流指令値Idとd軸電流Idとの偏差Id-IdKP:比例ゲインB:Aの累積値KI:積分ゲインロータ角度演算部34は、所定の演算周期Ts毎に、ロータ角度θを演算する。ロータ角度演算部34は、前回の演算周期においてロータ角度演算部34によって演算されたロータ回転角θk-1と、前回の演算周期において速度演算部35によって演算されたロータの回転速度ωk-1と、今回の演算周期においてロータ角度制御部33によって演算された補正角度Δθkと、演算周期Tsとに基づいて、今回の演算周期でのロータ角度θkを演算する。具体的には、ロータ角度演算部34は、例えば次式に基づいて、ロータ角度θkを演算する。θk=θk-1ωk-1TsΔθk...このように、ロータ角度演算部34は、補正角度Δθkを用いてロータ角度θkを求めているので、ロータ角度θをロータの実際の回転角度に収束させることができる。速度演算部35は、前回の演算周期においてロータ角度演算部34によって演算されたロータ角度θk-1と、今回の演算周期においてロータ角度演算部34によって演算されたロータ角度θkと、演算周期Tsとに基づいて、今回の演算周期でのロータの回転速度ωkを演算する。具体的には、速度演算部35は、例えば次式に基づいて、ロータの回転速度ωkを演算する。ωk=θk-θk-1/Ts...q軸電流偏差演算部22、q軸電流制御部23、d軸電流偏差演算部25およびd軸電流制御部26は、電流フィードバック制御手段を構成している。この電流フィードバック制御手段の働きによって、モータ5に流れるモータ電流が、q軸電流指令値設定部21およびd軸電流指令値設定部24によって設定される電流指令値Iq,Idに近づくように制御される。これにより、操舵トルクおよび車速に対応した適切なアシストトルク操舵補助力を舵取り機構3に与えることができる。電動パワーステアリング装置では、モータ5は、運転者によってステアリングイール1が操作されることにより、起動される。運転者によってステアリングイール1が操作されると、ロータも回転する。この実施形態では、モータ5は、外部から加えられるトルクに基づくロータの回転に同期した起動が可能となる。つまり、運転者によってステアリングイール1が操作されると、モータ5のロータが回転し、モータ5に誘起電圧が発生する。これにより、モータ5に電流が流れる。このモータ電流が、電流検出部29によって検出され、座標変換部30によってd軸電流検出値Idおよびq軸電流検出値Id変換される。このd軸電流検出値Idとd軸電流指令値設定部31によって設定されたd軸電流指令値IdId=0との偏差Id-Idがd軸電流偏差演算部32によって演算される。ロータ角度制御部33では、この偏差Id-Idに基づいて、補正角度Δθが演算される。たとえば、前記式に基づいて、補正角度Δθが演算される。ロータ角度演算部34では、補正角度Δθと速度演算部35によって演算されるロータ回転速度ωとに基づいて、ロータ角度θが演算される。また、速度演算部35では、ロータ角度演算部34によって演算されたロータ角度θに基づいてロータ回転速度ωが演算される。このようにしてロータ角度演算部34からロータ角度θが出力されるので、モータ5が回転を開始する。このとき、ロータ角度演算部34によって演算されたロータ角度θは実際のロータの回転角からずれているため、モータ5は余分な電流を伴って回転する。座標変換部30では、この余分なモータ電流に基づいてd軸電流検出値Idが求められる。ロータ角度制御部33は、座標変換部30によって求められたd軸電流検出値Idを0に収束させるように機能する。つまり、ロータ角度制御部33では、ロータ角度演算部34によって演算されたロータ角度θと実際のロータの回転角とのずれを補正するための補正角度Δθが演算される。したがって、ロータ角度演算部34によって演算されるロータ角度θは実際のロータの回転角に徐々に近づいていく。これにより、外部からの回転に同期した起動が可能となる。前記実施形態によれば、回転角センサを用いないセンサレス制御方式であって、モータモデルを使用しない新たな制御方式のモータ制御装置を実現することができる。また、前記実施形態では、ロータ角度θを推定するための各部31~35は、比較的単純な演算を行なうものであるため、従来のセンサレス制御方式に比べてCPU負荷を軽減できる。また、前記実施形態によれば、モータモデルや電源電圧の影響を受けることなく、ロータ角度θを推定することができる。以上、この発明の実施形態について説明したが、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。"