"ステータとロータを有するブラシレスモータに対してベクトル制御を行なうモータ制御装置であって、前記ブラシレスモータに供給される電源電流を検出する電源電流検出手段と、前記ブラシレスモータに流れる相電流を検出する相電流検出手段と、前記相電流検出手段によって検出される相電流検出値を、d軸電流検出値およびq軸電流検出値に変換する変換手段と、所定の電源電流指令値と前記電源電流検出手段によって検出される電源電流検出値との偏差に基づいてq軸電流指令値を演算するq軸電流指令値演算手段と、所定のd軸電流指令値と前記d軸電流検出値との偏差に基づいてd軸電圧指令値を演算するとともに、前記q軸電流指令値と前記q軸電流検出値との偏差に基づいてq軸電圧指令値を演算する電圧指令値演算手段と、前記電圧指令値演算手段によって演算されたd軸電圧指令値およびq軸電圧指令値に基づいて前記ブラシレスモータを駆動する手段とを含む、モータ制御装置。前記ロータが前記所定角度回転する毎に、前記q軸電流指令値演算手段を動作させる動作タイミング制御手段を含む、請求項1に記載のモータ制御装置。前述した従来のモータの制御装置では、電源電流指令値をq軸電流制御部72に対する指令値としているために電流の安定領域が狭く、外乱に対するロバスト性が低い。また、電源電流とq軸電流との間にはリニアな相関がないため、誤動作が発生しやすい。この発明の目的は、電源電流指令値に基づいてブラシレスモータを電流制御で駆動する場合に、外乱に対するロバスト性を向上させることができるモータ制御装置を提供することである。上記の目的を達成するための請求項1に記載の発明は、ステータとロータを有するブラシレスモータ1に対してベクトル制御を行なうモータ制御装置10であって、前記ブラシレスモータに供給される電源電流を検出する電源電流検出手段16と、前記ブラシレスモータに流れる相電流を検出する相電流検出手段31と、前記相電流検出手段によって検出される相電流検出値を、d軸電流検出値およびq軸電流検出値に変換する変換手段32と、所定の電源電流指令値と前記電源電流検出手段によって検出される電源電流検出値との偏差に基づいてq軸電流指令値を演算するq軸電流指令値演算手段21,22と、所定のd軸電流指令値と前記d軸電流検出値との偏差に基づいてd軸電圧指令値を演算するとともに、前記q軸電流指令値と前記q軸電流検出値との偏差に基づいてq軸電圧指令値を演算する電圧指令値演算手段23,24,26,27と、前記電圧指令値演算手段によって演算されたd軸電圧指令値およびq軸電圧指令値に基づいて前記ブラシレスモータを駆動する手段28,29とを含む、モータ制御装置である。なお、括弧内の英数字は、後述の実施形態における対応構成要素等を表すが、むろん、この発明の範囲は当該実施形態に限定されない。以下、この項において同じ。この発明では、所定の電源電流指令値と電源電流検出手段によって検出される電源電流検出値との偏差に基づいてq軸電流指令値が演算され、q軸電流指令値とq軸電流検出値との偏差に基づいてq軸電圧指令値が演算されるので、電源電流指令値に基づいてブラシレスモータを電流制御で駆動する場合に、外乱に対するロバスト性を向上させることができる。請求項2に記載の発明は、前記ロータが所定角度回転する毎に、前記q軸電流指令値演算手段を動作させる動作タイミング制御手段38を含む、請求項1に記載のモータ制御装置である。この構成では、前記所定角度を電源電流検出手段によって電源電流を安定して検出できる角度に設定することができるので、安定した制御を行なえるようになる。以下では、この発明の実施形態を、添付図面を参照して詳細に説明する。図1は、この発明の一実施形態に係るモータ制御装置の構成を示すブロック図である。この実施形態では、電動ポンプに用いられるブラシレスモータをセンサレスベクトル制御方式で制御するモータ制御装置について説明する。モータ制御装置10は、三相ブラシレスモータ1以下、モータ1というを駆動する。モータ1は、界磁としてのロータ図示せずと、ロータに対向するステータ図示せずに配置されたU相、V相、W相のステータ巻線図示せずとを備えている。モータ制御装置10には、装置外部からシリアル信号などによって電源電流指令値IPが入力される。電源電流指令値IPとしては、例えばモータ1の仕様に示されている定格電源電流が用いられる。モータ制御装置10は、マイクロコンピュータ11と、マイクロコンピュータ11によって制御され、モータ1に電力を供給する駆動回路12と、モータ1に流れるU相電流を検出するためのU相電流センサ13と、モータ1に流れるV相電流を検出するためのV相電流センサ14と、シャント抵抗15と、モータ1に供給される電源電流を検出するための電源電流検出部16とを備えている。駆動回路12は、三相ブリッジインバータ回路である。この駆動回路12では、モータ1のU相に対応した一対のFET電界効果トランジスタ2UH,2ULの直列回路と、モータ1のV相に対応した一対のFET2VH,2VLの直列回路と、モータ1のW相に対応した一対のFET電界効果トランジスタ2WH,2WLの直列回路とが、直流電源3と接地4との間に並列に接続されている。モータ1のU相コイルは、U相に対応した一対のFET2UH,2ULの間の接続点に接続されている。モータ1のV相コイルは、V相に対応した一対のFET2VH,2VLの間の接続点に接続されている。モータ1のW相コイルは、W相に対応した一対のFET2WH,2WLの間の接続点に接続されている。U相の界磁コイルと駆動回路12とを接続するための接続線にU相電流センサ13が設けられている。また、V相の界磁コイルと駆動回路12とを接続するための接続線にV相電流センサ14が設けられている。駆動回路12の接地側と接地4との間にシャント抵抗15が接続されている。電源電流検出部16は、シャント抵抗15の端子間電圧に基づいて、3相の界磁コイルに流れる電流の総和を電源電流IPとして検出するものである。マイクロコンピュータ11は、CPUおよびメモリROM,RAMなどを備えており、所定のプログラムを実行することにより、複数の機能処理部として機能するようになっている。この複数の機能処理部には、電源電流偏差演算部21と、電源電流制御部22と、q軸電流偏差演算部23と、q軸電流制御部24と、d軸電流指令値設定部25と、d軸電流偏差演算部26と、d軸電流制御部27と、座標変換部28と、PWM制御部29と、相電流検出部31と、座標変換部32と、d軸電流指令値設定部33と、d軸電流偏差演算部34と、ロータ角度制御部位相制御部35と、ロータ角度演算部36と、速度演算部37と、動作タイミング制御部38とを含んでいる。相電流検出部31は、所定の演算周期Ts毎に、U相電流センサ13およびV相電流センサ14の出力信号に基づいて、U相、V相およびW相の相電流を求める。座標変換部32は、ロータ角度演算部36によって演算されるロータの回転角度以下、ロータ角度θというを用いて、相電流検出部31によって求められた3相の相電流を、二相回転座標系における2相の電流に変換する。二相回転座標系は、ロータの磁極方向に沿うd軸と、d軸に直交するq軸とによって規定される座標系である。二相回転座標系における2相の電流は、d軸電流成分とq軸電流成分とからなる。座標変換部32によって得られる2相の電流のうち、d軸電流成分をd軸電流検出値Idといい、q軸電流成分をq軸電流検出値Iqということにする。電源電流偏差演算部21は、電源電流指令値IPと電源電流検出部16によって検出された電源電流検出値IPとの偏差IP-IPを演算する。電源電流制御部22は、電源電流偏差演算部21によって演算された偏差IP-IPに対して比例積分演算PI演算を行なうことにより、モータ1に供給すべきq軸電流以下、q軸電流指令値Iqというを演算する。q軸電流偏差演算部23は、q軸電流指令値Iqと座標変換部32によって得られるq軸電流検出値Iqとの偏差Iq-Iqを演算する。q軸電流制御部24は、q軸電流偏差演算部23によって得られた偏差Iq-Iqに対して比例積分演算PI演算を行なうことにより、モータ1に供給すべきq軸電圧以下、q軸電圧指令値Vqというを演算する。d軸電流指令値設定部25は、d軸電流指令値Idを設定する。d軸電流指令値Idは、たとえば零に設定される。d軸電流偏差演算部26は、d軸電流指令値Idと座標変換部32によって得られるd軸電流検出値Idとの偏差Id-Idを演算する。d軸電流制御部27は、d軸電流偏差演算部26によって得られた偏差Id-Idに対して比例積分演算PI演算を行なうことにより、モータ1に供給すべきd軸電圧以下、d軸電圧指令値Vdというを演算する。座標変換部28は、ロータ角度演算部36によって演算されるロータ角度θを用いて、d軸電圧指令値Vdおよびq軸電圧指令値Vqを、三相固定座標系におけるU相、V相およびW相の電圧指令値VU,VV,VWに変換する。PWM制御部29は、U相、V相およびW相の電圧指令値VU,VV,VWそれぞれに対応するデューティのU相PWM制御信号、V相PWM制御信号およびW相PWM制御信号を生成し、駆動回路12に供給する。駆動回路12内のFET2がPWM制御部29から与えられるPWM制御信号によって制御されることにより、三相電圧指令値VU,VV,VWに相当する電圧がモータ1の各相のステータ巻線に印加されることになる。座標変換部28,32において前記座標変換を行うためには、ロータの回転角ロータ角度θが必要となる。そこで、マイクロコンピュータ11は、ロータ角度θを回転角センサを用いることなく推定するロータ角度推定手段を備えている。ロータ角度推定手段は、d軸電流指令値設定部33、d軸電流偏差演算部34、ロータ角度制御部35、ロータ角度演算部36および速度演算部37から構成される。d軸電流指令値設定部33は、d軸電流指令値Idを設定する。d軸電流指令値Idは、たとえば零に設定される。d軸電流偏差演算部34は、所定の演算周期Ts毎にd軸電流指令値Idと座標変換部32によって得られるd軸電流検出値Idとの偏差Id-Idを演算する。ロータ角度制御部35は、d軸電流偏差演算部34によって演算される偏差Id-Idに対して比例積分演算PI演算を行なうことにより、補正角度Δθを演算する。具体的には、ロータ角度制御部35は、例えば次式1に基づいて、補正角度Δθを演算する。なお、ロータ角度制御部35は、前記偏差Id-Idに対して、比例積分微分演算または比例演算を行なうことにより、補正角度Δθを演算するものであってもよい。Δθ=KP×AKI×B...A:d軸電流指令値Idとd軸電流Idとの偏差Id-IdKP:比例ゲインB:Aの累積値KI:積分ゲインロータ角度演算部36は、所定の演算周期Ts毎に、ロータ角度θを演算する。ロータ角度演算部36は、前回の演算周期においてロータ角度演算部36によって演算されたロータ回転角θk-1と、速度演算部37によって演算されたロータの回転速度ωと、今回の演算周期においてロータ角度制御部35によって演算された補正角度Δθkと、演算周期Tsとに基づいて、今回の演算周期でのロータ角度θkを演算する。具体的には、ロータ角度演算部36は、例えば次式に基づいて、ロータ角度θkを演算する。θk=θk-1ωTsΔθk...このように、ロータ角度演算部36は、補正角度Δθkを用いてロータ角度θkを求めているので、ロータ角度θをロータの実際の回転角度に収束させることができる。速度演算部37は、この実施形態では、ロータが電気角で360°回転するのに要した時間Txを計測し、360°/Txを演算することにより、ロータの回転速度ωを演算する。例えば、速度演算部37は、演算周期Ts毎に、ロータ角度演算部36によって演算されたロータ角度θkと、その1回前にロータ角度演算部36によって演算されたロータ角度θk-1とを比較し、θk<θk-1であれば、ロータが360°回転したと判定する。そして、速度演算部37は、ロータが360°回転する間に、ロータ角度演算部36によってロータ角度θkが演算された回数Kをカウントし、この回数Kと演算周期Tsとの積KTsを、ロータが電気角で360°回転するのに要した時間Txとして演算する。最後に、速度演算部37は、360 ゚をTxで除算した値360 ゚/Txを、ロータの回転速度ωとして演算する。したがって、ロータの回転速度ωは、ロータが電気角で360°回転する毎に更新される。電源電流偏差演算部21および電源電流制御部22は、q軸電流指令値演算手段を構成している。また、q軸電流偏差演算部23、q軸電流制御部24、d軸電流偏差演算部26およびd軸電流制御部27は、電圧指令値演算手段を構成している。そして、q軸電流指令値演算手段21,22によって演算されたq軸電流指令値が、電圧指令値演算手段23,24,26,27に与えられる。つまり、この実施形態では、q軸電流指令値演算手段21,22および電源電流検出部16を含む外側ループマスターループと、その内側の電圧指令値演算手段23,24,26,27、座標変換部28,32および相電流検出部31を含む内側ループスレーブループとが組み合わされたカスケード制御によって、モータ1が制御される。モータ1に流れるq軸電流は正弦波であるため、そのサンプリング周期が短いほど、波形生成の精度が上がる。そこで、この実施形態では、内側ループの制御周期前記演算周期Tsは、例えば50μsecに設定される。したがって、電圧指令値演算手段23,24,26,27および角度制御部35は、50μsec周期で動作する。一方、電源電流の変化が安定するのは3相分の電流が揃った後となるため、電源電流の検出には電気角で360°の遅れが生じる。このため、電源電流を検出するサンプリング周期を、電気角の360°に同期させることによって、安定した制御が可能となる。そこで、この実施形態では、外側ループの制御周期Tmは、動作タイミング制御部38によって、電気角の360°に同期した周期となるように制御される。具体的には、動作タイミング制御部38は、速度演算部37によって、ロータが電気角で360°回転されたことが検出される毎に、q軸電流指令値演算手段21,22電源電流偏差演算部21および電源電流制御部22に動作指令を与える。q軸電流指令値演算手段21,22に動作指令が与えられると、電源電流偏差演算部21は、電源電流検出部16から電源電流検出値IPを取り込み、取り込んだ電源電流検出値IPと電源電流指令値IPとの偏差IP-IPを演算する。そして、電源電流制御部22は、電源電流偏差演算部21によって演算された偏差IP-IPに対して比例積分演算PI演算を行なうことにより、q軸電流指令値Iqを演算する。なお、モータ1のロータに設けられた磁極対数をmとし、ロータの回転速度がR[rpmである場合のq軸電流指令値演算手段21,22の制御周期Tmは、次式で表される。Tm=1/{R/60m}[sec]...例えば、m=4とすると、R=1000[rpmのときにはTm=15.0msecとなり、R=2000[rpmのときにはTm=7.5msecとなり、R=3000[rpmのときにはTm=5.0msecとなる。このように、モータの回転速度が高い場合でも、内側ループの制御周期Tsは例えば50μsecに設定され、外側ループの制御周期Tmよりも内側ループの制御周期Tsが充分短くされている。以上のような構成において、q軸電流指令値演算手段21,22は、ロータが電気角で360°回転する毎に、電源電流検出値IPと電源電流指令値IPとの偏差に基づいてq軸電流指令値Iqを演算する。そして、電圧指令値演算手段23,24,26,27は、所定の演算周期Ts毎に、q軸電流指令値演算手段21,22によって決定されたq軸電流指令値Iqとq軸電流検出値Iqとの偏差および所定のd軸電流指令値Idとq軸電流検出値Idとの偏差に基づいて、q軸電圧指令値Vqおよびd軸電圧指令値Vdとを演算する。この電圧指令値Vq,Vdに基づいてモータ1が駆動される。これにより、モータ1に供給される電源電流3相の界磁コイルに流れる電流の総和が、電源電流指令値IPとなるように制御される。前記実施形態によれば、電源電流指令値IPと電源電流検出値IPとの偏差に基づいてq軸電流指令値Iqが演算され、q軸電流指令値Iqとq軸電流検出値Iqとの偏差に基づいてq軸電圧指令値Vqが演算されるので、電源電流指令値に基づいてモータ1を電流制御で駆動する場合に、外乱に対するロバスト性を向上させることができる。また、電源電流を安定して検出できる電気角の360°に同期して、q軸電流指令値演算手段21,22を動作させているので、安定した制御が可能となる。なお、この発明は、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。"