本発明の一実施形態を図2〜図7を参照して説明する。図2は本実施形態に係るDCブラシレスモータの制御装置の機能的構成を示すブロック図、図3は該制御装置に備えたパワードライブユニットによるPWM制御を説明するための図、図4(a)は本実施形態で基本駆動電圧に重畳する周期信号の例を示す図、図4(b)は周期信号の他の例を示す図、図5は本実施形態での電流センサ、サーチコイルおよび積分器の構成を示す図、図6(a),(b)はPWM制御のキャリアと積分器の動作との関係を示す図、図7はロータ角度の推定処理を示すフローチャートである。
図2を参照して、10はDCブラシレスモータ、12はDCブラシレスモータ1を制御する制御装置である。本実施形態では、DCブラシレスモータ10(以下、単にモータ10という)は、3相(U相、V相、W相)の電機子14U,14V,14Wをステータに備えたモータである。また、モータ10のロータ(図示省略)は、永久磁石により構成された突極型のロータである。なお、以下の説明では、各電機子14U,14V,14Wを互いに区別する必要がないときは、単に電機子14という。
このモータ10を制御する制御装置12は、マイクロコンピュータを含む電子回路により構成されている。該制御装置12は、その機能を概略的に説明すると、モータ10の各相の電機子14に流れる電流(相電流)を所要の目標電流にフィードバック制御する機能を持つ。
この場合、本実施形態では、モータ10のロータの界磁極の磁束方向をq軸、該q軸と直交する方向をd軸とするdq座標系(ロータと一体に回転する回転座標系)を使用し、モータ10を、q軸上のq軸電機子とd軸のd軸電機子とを有する等価回路に変換して扱う。そして、制御装置12は、外部から与えられるd軸電流の目標値であるd軸目標電流Id_cとq軸電流の目標値であるq軸目標電流Iq_cとに応じて、d軸電機子に流れる電流(以下、d軸電流という)とq軸電機子に流れる電流(以下、q軸電流という)とをフィードバック制御する。すなわち、d軸電流およびq軸電流をそれぞれId_c、Iq_cに一致させるように(収束させるように)フィードバック制御する。なお、周知のように、d軸電流およびq軸電流は、ロータ角度に応じた変換行列(各要素値がロータ角度に応じて定まる変換行列)によって、モータ1の各相の電機子14の電流(相電流)との間で一義的に変換できるので、d軸電流およびq軸電流をそれぞれId_c、Iq_cに制御するということは、モータ1の各相の相電流を、Id_c、Iq_cに対応する目標電流(Id_c、Iq_cを変換してなる相電流)に制御することと等価である。
また、制御装置12は、上記のようなフィードバック制御を行ないながら、ロータ角度を逐次推定する処理も実行する。従って、該制御装置12は、本発明のロータ角度推定装置としての機能も含んでいる。
以下に制御装置12を詳細に説明する。
制御装置12は、モータ1の3相の電機子14U,14V,14Wのうちの2相の電機子、例えばU相電機子14UおよびW相電機子14Wに流れる電流をそれぞれ検出するU相電流センサ16およびW相電流センサ18と、U相電流センサ16の検出電流値IuとW相電流センサ18の検出電流値Iwとからd軸電流の検出値であるd軸実電流Idとq軸電流の検出値であるq軸実電流Iqとを算出する3相/dq変換部20とを備えている。電流センサ16,18は本発明における電流検出手段に相当する。
補足すると、各相の電機子14を流れる電流の総和は0になるので、3相の電機子14U,14V,14Wのうちの2相の電機子のそれぞれを流れる電流を検出すれば、それらの検出値から残りの1相の電機子を流れる電流を算出できる。このため、本実施形態では、3相/dq変換部20において、検出電流値Iu,IwからV相電機子14Vを流れる電流の検出値としての検出電流値Iv(=−Iu−Iw)が算出される。そして、これらの検出電流値Iu,Iv,Iwからなるベクトル(Iu,Iv,Iw)t(「t」は転置を意味する)に、ロータ角度に応じて各要素値が決定される公知の変換行列(2行3列行列)を乗じることにより、d軸実電流Idとq軸実電流Iqとからなる実電流ベクトル(Id,Iq)tが算出される。この場合、3相/dq変換部20の変換行列の各要素値は、後述する角度推定部50で求められたロータ角度の推定値θ^に応じて決定される。
また、制御装置12は、d軸実電流Idおよびq軸実電流Iqと外部から与えられる前記d軸目標電流Id_cおよびq軸目標電流Iq_cとに応じてd軸電機子への印加電圧の基本指令値であるd軸基本駆動電圧Vfbdとq軸電機子への印加電圧の基本指令値であるq軸基本駆動電圧Vfbqとを決定する処理を行なう基本駆動電圧決定部22(これは本発明における基本駆動電圧決定手段に相当する)と、そのd軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqにそれぞれロータ角度検出用の周期信号VhdおよびVhqを重畳する周期信号重畳部24と、その重畳により得られたd軸駆動電圧指令値Vd_cおよびq軸駆動電圧指令値Vq_cをモータ10のU相、V相、W相のそれぞれの相電圧指令値Vu_c,Vv_c,Vw_cに変換するdq/3相変換部26と、相電圧指令値Vu_c,Vv_c,Vw_cの電圧をそれぞれPWU制御によりモータ10のU相電機子14U、V相電機子14V、W相電機子14Wに印加して、各相の電機子14に通電するパワードライブユニット28(以下、PDU28という)とを備えている。なお、本実施形態では、周期信号重畳部24、dq/3相変換部26およびPDU28により本発明における通電手段が構成されている。
PDU28は、公知のPWMインバータ回路により構成されたものであり、図3に示す如く、三角波のキャリアCaと、各相電圧指令値Vu_c,Vv_c,Vw_cとを比較することにより、図示しないインバータ回路のスイッチング素子の制御信号Sを生成し、この制御信号Sによりスイッチング素子をON・OFFさせることで、各相の電機子14に通電する。なお、本実施形態では、キャリアCa(以下、PWMキャリアCaという)は、その1周期分の個々の三角波形が、該1周期の前半と後半とで対称となる三角波である。
また、基本駆動電圧決定部22は、より具体的には、図示の如く、減算器30、PI演算部32、加算器34、および非干渉演算部36を備えており、これらにより、次のようにしてd軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqを決定する。
すなわち、3相/dq変換部20で算出される実電流ベクトル(Id,Iq)tと、前記d軸目標電流Id_cおよびq軸目標電流Iq_cから成る目標電流ベクトル(Id_c,Iq_c)tとの差である電流偏差ベクトル(Id_c−Id,Iq_c−Iq)tが減算器30により算出される。
そして、この電流偏差ベクトル(Id_c−Id,Iq_c−Iq)tに応じて、PI演算部32により要求駆動電圧ベクトル(Vfbd_s,Vfbd_s)tが算出される。該要求駆動電圧ベクトル(Vfbd_s,Vfbd_s)tは、電流偏差ベクトル(Id_c−Id,Iq_c−Iq)tのd軸成分(Id_c−Id)を0に収束させるために要求されるd軸電機子の要求駆動電圧Vfbd_sと、q軸成分(Iq_c−Iq)を0に収束させるために要求されるq軸電機子の要求駆動電圧Vfbd_sとからなるベクトルである。PI演算部32は、この要求駆動電圧ベクトル(Vfbd_s,Vfbd_s)tを、電流偏差ベクトル(Id_c−Id,Iq_c−Iq)tからフィードバック制御則としてのPI制御則(比例・積分制御則)により算出する。なお、PI制御則以外のフィードバック制御則を使用してもよい。
一方、非干渉演算部36は、d軸とq軸との間で干渉し合う速度起電力の影響(電流偏差ベクトル(Id_c−Id,Iq_c−Iq)tを0に収束させるための制御に対する影響)を打ち消すためのd軸電機子の駆動電圧の補償量Vcdとq軸電機子の駆動電圧の補償量Vcqとからなるベクトルである非干渉成分ベクトル(Vcd,Vcq)tをd軸実電流Idおよびq軸実電流Iqに応じて算出する。そして、基本駆動電圧決定部22は、この非干渉成分ベクトル(Vcd,Vcq)tを、加算器34により前記要求駆動電圧ベクトル(Vfbd_s,Vfbd_s)tに加算することにより、d軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqから成る基本駆動電圧ベクトル(Vfbd,Vfbd)tを算出する。
以上説明した基本駆動電圧決定部22の処理により、d軸実電流Idおよびq軸実電流Iqをそれぞれd軸目標電流Id_c、q軸目標電流Iq_cに一致させるように、d軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqが決定されることとなる。
制御装置12は、基本的には、d軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqをそれぞれd軸駆動電圧指令値Vd_cおよびq軸駆動電圧指令値Vq_cとしてdq/3相変換部26に入力し、このd軸駆動電圧指令値Vd_cおよびq軸駆動電圧指令値Vq_cからdq/3相変換部26により相電圧指令値Vu_c,Vv_c,Vw_cを決定する。該dq/3相変換部26は、ロータ角度に応じて各要素値が決定される公知の変換行列(3行2列行列)をd軸駆動電圧指令値Vd_cおよびq軸駆動電圧指令値Vq_cから成る駆動電圧指令値ベクトル(Vd_c,Vq_c)tに乗じることにより、相電圧指令値Vu_c,Vv_c,Vw_cから成る相電圧指令値ベクトル(Vu_c,Vv_c,Vw_c)tを算出する。この場合、dq/3相変換部26の変換行列の各要素値は、前記3相/dq変換部20の変換行列と同様に、後述する角度推定部50で求められたロータ角度の推定値θ^に応じて決定される。
そして、制御装置12は、このように決定された相電圧指令値Vu_c,Vv_c,Vw_cに応じて、前記したようにPDU28によりモータ10の各相の電機子14の通電を制御することで、d軸電流およびq軸電流をそれぞれ前記d軸目標電流Id_c、q軸目標電流Iq_cに一致させるようにフィードバック制御する。
なお、制御装置12の処理は、所定の制御サイクルで実行される。この場合、1制御サイクルの時間は、本実施形態では、前記PWMキャリアCa(三角波)の1周期の時間(具体的には、三角波の谷部(極小点)の時刻から次の谷部の時刻までの時間)と同じである(前記図3を参照)。但し、後述するロータ角度の推定処理を実行しているときは、基本駆動電圧決定部22は、前記周期信号重畳部24により周期信号Vhd,Vhqを重畳するd軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqを、該周期信号Vhd,Vhqの1周期に相当する所定数n(n≧2)の制御サイクルの期間(本実施形態ではn=3)で一定に維持するように(n制御サイクル毎にVfbdおよびVfbqを更新するように)、VfbdおよびVfbqを決定する。
モータ10のd軸電流およびq軸電流を上記のようにフィードバック制御するためには、前記3相/dq変換部20およびdq/3相変換部26の処理で、ロータ角度が必要となる。そこで、本実施形態では、このロータ角度をセンサレスで(レゾルバ等の位置検出センサを使用せずに)推定するために、前記周期信号重畳部24によりd軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqにそれぞれ周期信号Vhd,Vhqを重畳する。具体的には、該周期信号重畳部24は、基本駆動電圧決定部22で決定された基本駆動電圧ベクトル(Vfbd,Vfbq)tに、周期信号Vhd,Vhqの値(電圧値)を成分とする周期信号ベクトル(Vhd,Vhq)tを加算器38を介して加算することにより、該周期信号Vhd,Vhqをそれぞれ、Vfbd、Vfbqに重畳する。この重畳により、Vfbd+Vhd、Vfbq+Vhqがそれぞれd軸駆動電圧指令値Vd_c、q軸駆動電圧指令値Vq_cとして決定され、このd軸駆動電圧指令値Vd_cおよびq軸駆動電圧指令値Vq_cがdq/3相変換部26を介して相電圧指令値Vu_c,Vv_c,Vw_cに変換される。
ここで、周期信号Vhd,Vhqは、一般的には、n個(n≧2)の連続する制御サイクルを1周期とし、且つ、その1周期内の連続した2制御サイクル以上の期間(1周期の全期間を含む)における周期信号Vhd,Vhqのそれぞれの総和(当該期間における時間平均値)が0となるような周期信号である。より正確には、周期信号Vhd,Vhqは、次式(4)を満たす信号である。
なお、Vhd(j),Vhq(j)(j=1,2,…,n)は、周期信号Vhd,Vhqの1周期内のj番目の制御サイクルにおけるVhd,Vhqの値(電圧値)である。
本実施形態では、例えば図4(a)に示す如く、周期信号Vhd,Vhqは、3制御サイクルを1周期とし(n=3とする)、且つ、その1周期の各制御サイクル(時刻T11、T12、T13の制御サイクル)におけるVhd,Vhqのそれぞれの電圧値の総和(1周期の期間における時間平均値)が0となるようなパターンで設定された周期信号である。また、該周期信号Vhd,Vhqの電圧値の大きさは、それぞれd軸基本駆動電圧Vfbd、q軸基本駆動電圧Vfbqに比して十分小さいものに設定されている。なお、図4(a)の丸付き数字を付した各矢印は、周期信号Vhd,Vhqの1周期の各制御サイクル(時刻T11、T12、T13の制御サイクル)における周期信号ベクトル(Vhd,Vhq)tを示している。また、丸付き数字は、1周期における周期信号ベクトル(Vhd,Vhq)tの発生順番を示している。
補足すると、周期信号Vhd,Vhqは、例えば図4(b)に示すように、4制御サイクルを1周期とし、且つ、その1周期内の連続した2制御サイクル毎の(時刻T11、T12、T13の制御サイクル)電圧値の総和(時刻T21,T22の2つの制御サイクルおける電圧値の総和と、時刻T23,T24の2つの制御サイクルにおける電圧値の総和)が0となるようなパターンで設定してもよい。なお、図4(b)の丸付き数字を付した各矢印および該丸付き数字の意味は、図4(a)の場合と同様である。
また、周期信号Vhd,Vhqをd軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqに重畳するということは、基本駆動電圧ベクトル(Vfbd,Vfbq)tをdq/3相変換部26により変換してなる各相の相電圧指令値に、周期信号ベクトル(Vhd,Vhq)tをdq/3相変換部26により変換してなる各相の周期信号(この周期信号もその1周期における電圧値の総和が0になる)を重畳することと等価である。従って、周期信号の重畳は、dq/3相変換部26の入力側で行う代わりに、出力側で行うようにしてもよい。
なお、上記のような周期信号Vhd,Vhqをそれぞれd軸基本駆動電圧Vfbd、q軸基本駆動電圧Vfbqに重畳してモータ10の通電制御を行なったとき、周期信号Vhd,Vhqの1周期の期間(あるいは周期信号Vhd,Vhqの電圧値の総和が0となる期間)における基本駆動電圧ベクトル(Vfbd,Vfbq)tを一定としたとき、該期間におけるモータ10の各相の電機子14の電流、あるいは、d軸電機子およびq軸電機子の電流は、基本駆動電圧ベクトル(Vfbd,Vfbq)tに応じた電流(モータ10に所望のトルクを発生させるための電流)を中心として、周期信号Vhd,Vhqと同じ周期で微小変動することとなる。
制御装置12は、モータ10のロータ角度の推定処理を実行するために、さらに、次のような構成を備えている。
すなわち、図2に示すように、制御装置12は、前記U相電流センサ16およびW相電流センサ18の後述する磁性体コアにそれぞれ組み付けられたサーチコイル40,42の出力電圧Vsu、Vswをそれぞれ後述する所定期間(本実施形態では各制御サイクル内の所定期間)において積分する積分器44,46と、該積分器44,46の出力がそれぞれ示すU相電機子14Uの電流変化量ΔIuおよびW相電機子14Wの電流変化量ΔIwから、d軸電機子の電流変化量であるd軸電流変化量ΔIdとq軸電機子の電流変化量であるq軸電流変化量ΔIqとを算出する3相/dq変換部48と、このd軸電流変化量ΔIdおよびq軸電流変化量ΔIqを用いてモータ10のロータ角度を推定する(ロータ角度の推定値θ^を算出する)角度推定部50とを備えている。さらに、制御装置12は、ロータ角度の推定処理と併せて、U相電流センサ16およびW相電流センサ18の故障の有無を検知するために、d軸電流変化量ΔIdおよびq軸電流変化量ΔIqと前記3相/dq変換部20により算出されたd軸実電流Idおよびq軸実電流Iq(詳しくは積分器44,46の積分期間におけるd軸実電流Idおよびq軸実電流Iqの変化量)とを基にU相電流センサ16およびW相電流センサ18の故障の有無を検知する故障検知部52とを備えている。なお、積分器44,46は、本発明における積分手段に相当し、角度推定部50は、本発明における角度推定手段に相当し、故障検知部52は、本発明における故障検知手段に相当する。
ここで、各電流センサ16,18、サーチコイル40,42および積分器44,46のより具体的な構成を図5を参照して説明する。なお、U相電流センサ16、サーチコイル40および積分器44の組に関する構成と、電流センサ18、サーチコイル42および積分器46の組に関する構成とは、同じ構成であるので、図5では、W相電流センサ18、サーチコイル42および積分器46を括弧付きの参照符号で示す。そして、以下では、U相電流センサ16、サーチコイル40および積分器44の組について、代表的に説明する。
電流センサ16は、公知のホール素子型電流センサであり、U相電機子14Uの電流路1U(PDU28からU相電機子14Uに通電する導線)に外挿された環状の磁性体コア54と、該磁性体コア54に装着されたホール素子56と、このホール素子56の出力を増幅する増幅器58とを備えている。そして、電流センサ16は、磁性体コア54の軸心部を貫通する電流路1Uを流れる電流Iの値(U相電機子14Uの検出電流値Iu)を示す信号をホール素子56から増幅器58を介して出力する。
本実施形態では、このような構成の電流センサ16の磁性体コア54を、前記図1に示した磁性体コア3として利用し、該電流センサ16の磁性体コア54にサーチコイル40を巻回している。この場合、サーチコイル40の出力電圧Vは、前記したように、磁性体コア54の軸心部を貫通する電流路1Uを流れる電流Iの時間的変化率に比例する。そして、本実施形態では、このサーチコイル40の出力電圧Vを、オペアンプ60を含む増幅回路62により増幅した後、スイッチ素子64を介して積分器44に入力して積分するようにしている。この場合、積分器44は、オペアンプ66とコンデンサ68とを使用して構成されたものであり、コンデンサ68の充電電圧を、サーチコイル40の出力電圧Vの積分値、換言すれば、積分器44の積分期間における電流路1Uの電流Iの変化量を示すものとして出力する。また、スイッチ素子64は、その動作状態が、前記PWMキャリアCaに同期した制御信号によって、増幅回路62の出力を積分器44に入力する状態(以下、ON状態という)と、その入力を遮断しつつコンデンサ68を短絡する状態(積分器44の出力を0にリセットする状態。以下、OFF状態という)とに切替わるものである。
上述した電流センサ16、サーチコイル40および積分器44に関する構成は、W相に関する電流センサ18、サーチコイル42および積分器46の組についても同様である。
ここで、本実施形態におけるロータ角度の推定手法の概要を説明しておく。なお、この手法の基本的原理は、本願出願人が先に出願した特願2004−304492号にて詳細に説明されているので、本明細書では、概略的な説明に留める。
d軸電機子のインダクタンスをLd、q軸電機子のインダクタンスをLqとし、変数L0、L1を次式(5)により定義する。
また、ロータ角度の実際の値(真値)θと角度推定部50による推定値θ^との偏差(以下、位相差という)をθe(≡θ−θ^)とおく。そして、前記したように基本駆動電圧ベクトル(Vfbd,Vfbq)tに周期信号ベクトル(Vhd,Vhq)tを重畳した状態において、ある番数iの制御サイクルに対して、i+1番目の制御サイクルからi+n番目の制御サイクルまでの期間における周期信号ベクトル(Vhd,Vhq)tの総和が0で、且つ、該期間における基本駆動電圧ベクトル(Vfbd,Vfbq)tが一定であるとする。また、i+j番目(j=1,2,……,n)の制御サイクルからi+j+1番目の制御サイクルまでの1制御サイクルの期間におけるd軸実電流Idの1階差分dId(i+j)(=(Id(i+j+1)−Id(i+j))/ΔT)とq軸実電流Iqの1階差分dIq(i+j)(=(Iq(i+j+1)−Iq(i+j))/ΔT)とからなる1階差分ベクトル(dId(i+j),dIq(i+j))tをdIdq(i+j)とおく(ΔTは1制御サイクルの時間)。このとき、次式(6)が成立する。
従って、1階差分ベクトルdIdq(i+j)(j=1,2,…,n)を観測することにより、その観測値から、式(6)により、位相差θeの2倍角の正弦値、余弦値にそれぞれ比例する値としての正弦参照値Vsdq、余弦参照値Vcdqを算出することができる。そして、位相差θeは、これらの正弦参照値Vsdq、余弦参照値Vcdqから、次式(7)により算出できる。
なお、θeが十分に0に近い場合には、近似的に次式(8)によりθeを算出してもよい。
さらに、式(7)の右辺は、次式(9)により近似してもよい。
補足すると、前記式(6)の但し書きで定義した1階差分ベクトルdIdq(i+j)(j=1,2,……,n)に任意の定数(≠0。例えばΔT)を乗じてなるベクトルをdIdq(i+j)の代わりに用いて、前記式(6)の演算を行なうことにより、正弦参照値Vsdqおよび余弦参照値Vcdqを算出するようにしてもよい。このようにしても、前記式(7)または(8)または(9)により算出される位相差θeは、式(6)の但し書きで定義した1階差分ベクトルdIdqを使用した場合と同じになる。そこで、以降の説明では、式(6)の但し書きで定義した1階差分ベクトルdIdqの定数倍(1倍を含む)のベクトルを改めて1階差分ベクトルdIdqという。
本実施形態では、上記のように算出される位相差θeを用いて、次式(10)により表されるオブザーバによって、ロータ角度の推定値θ^を逐次算出する。
なお、ω^は、ロータ角度の角速度の推定値(θ^の時間的変化率)、Δtはロータ角度の推定値θ^の更新サイクルの時間、kはθ^の更新番数、K1,K2,K~は、あらかじめ設定されるゲイン係数、offsetはあらかじめ設定されるオフセット値である。
かかる式(10)により表されるオブザーバは、位相差θeを0に近づけるように(ロータ角度の推定値θ^を実際の値θに近づけるように)、推定値θ^をΔtのサイクルで逐次更新しつつ算出するものである。
以上が、本実施形態におけるロータ角度の推定処理の基本的な手法である。そして、本実施形態では、この手法に基づいてロータ角度を推定するために、前記積分器44,46を使用して、前記式(6)における1階差分ベクトルdIdq(i+j)(j=1,2,…,n)を検出する(本実施形態ではn=3)。さらに、その検出した1階差分ベクトルdIdq(i+j)から、角度推定部50によって、式(6)の演算と、式(7)または式(8)または式(9)の演算と、式(10)の演算とを順次実行することで、ロータ角度の推定値θ^を算出する。なお、本実施形態では、θeを算出するために、3制御サイクル分の1階差分ベクトルdIdqが必要となるので、式(10)によるロータ角度の更新も3制御サイクル毎に行なわれる(Δt=3・ΔT)。
この場合、1階差分ベクトルdIdq(i+j)(本実施形態ではj=1,2,3)を検出するために、図6(a)または(b)で示す如く、PWMキャリアCaに同期して、積分器44,46の積分動作を行なう。
具体的には、図6(a)に示す如く、(i+j)番目の制御サイクルの開始時刻Tjから、(i+j+1)番目の制御サイクルの開始時刻Tj+1までの1制御サイクルの期間ΔTのうち、PWMキャリアCaの三角波のレベル(電圧値)が増加する前半の期間ΔTfにおいて、サーチコイル40,42の出力電圧Vをそれぞれ積分器44,46により積分させる。すなわち時刻TjにおいてPWMキャリアCaの三角波のレベルが減少から増加に転じる(極小値になる)ことをトリガとして、各積分器44,46の入力側のスイッチ素子64をON状態に制御して、各積分器44,46の積分動作を開始させる。そして、時刻TmにおいてPWMキャリアCaの三角波のレベルが増加から減少に転じる(極大値になる)ことをトリガとして、スイッチ素子64をOFF状態に切り換えて、各積分器44,46の積分動作を中止する。なお、1制御サイクルの期間ΔTのうち、PWMキャリアCaの三角波のレベルが減少する後半の期間ΔTr(時刻Tmから時刻Tj+1の期間)においては、スイッチ素子64はOFF状態に維持される。このため、該期間ΔTrにおいて、各積分器44,46がリセットされる(各積分器44,46の出力が0になる)。
あるいは、図6(b)に示す如く、図6(a)の場合と逆に、1制御サイクルの期間ΔTのうち、前半の期間ΔTfにおいては、スイッチ素子64をOFF状態に維持して、各積分器44,46をリセットしておき、後半の期間Trにおいて、スイッチ素子64をON状態にして、サーチコイル40,42の出力電圧Vをそれぞれ積分器44,46により積分させるようにしてもよい。
ここで、本実施形態では、(i+1)番目の制御サイクルから(i+3)番目の制御サイクルまでの3制御サイクルの期間(周期信号Vhd,Vhqの1周期の期間)における基本駆動電圧ベクトル(Vfbd,Vfbq)tは一定に維持される(3制御サイクル毎に、基本駆動電圧ベクトル(Vfbd,Vfbq)tを更新する)。さらに、1制御サイクルの時間は、PWMキャリアCaの1周期の時間と同じで、且つ、該PWMキャリアCaの波形は、その1周期の前半と後半とで対称な三角波である。
このため、(i+1)番目の制御サイクルから(i+3)番目の制御サイクルまでの各制御サイクルにおけるモータ10の各相の電機子14の電流の変化量(周期信号Vhd,Vhqに応じた電流変化量)は、該制御サイクルの前半と後半とでほぼ等しくなる。従って、上記のように、1制御サイクルの期間ΔTのうちの前半または後半の期間ΔTfにおいて各積分器44,46による積分動作を実行したとき、その積分動作の終了時における各積分器44,46の出力がそれぞれ示すU相電機子14Uの電流変化量ΔIuおよびW相電機子14Wの電流変化量ΔIwと、これらから算出されるV相電流変化量ΔIv(=−ΔIu−ΔIw)とは、それぞれ1制御サイクルの期間ΔTの全体における各相の電機子の電流変化量の半分となる。なお、以下の説明では、各積分器44,46の出力がそれぞれ示す電流変化量ΔIu,ΔIwをそれぞれ単に、積分器44の出力ΔIu、積分器46の出力ΔIwということがある。
また、各制御サイクルで、各積分器44,46の出力(積分動作の終了時の出力)ΔIu,ΔIwから、これらに対応するd軸電流変化量ΔIdおよびq軸電流変化量ΔIqを前記3相/dq変換部48により算出したとき、そのΔId,ΔIqは、それぞれ1制御サイクルの期間ΔTの全体におけるd軸電流変化量、q軸電流変化量の半分となる。
そこで、角度推定部50では、各制御サイクル毎の各積分器44,46の出力ΔIu,ΔIwから3相/dq変換部48により算出されるd軸電流変化量ΔIdとq軸電流変化量ΔIqとからなるベクトル(ΔId,ΔIq)tを前記式(6)で使用する1階差分ベクトルdIdqとして検出する。
なお、(ΔId,ΔIq)tを定数倍(例えば2倍もしくは2/ΔT倍)したベクトルを1階差分ベクトルdIdqとして検出するようにしてもよい。(ΔId,ΔIq)tを2倍した場合には、各制御サイクルの全期間におけるd軸電流変化量およびq軸電流変化量が検出されることとなり、2/ΔT倍した場合には、各制御サイクルにおけるd軸電流およびq軸電流の時間的変化率が検出されることとなる。
また、3相/dq変換部48では、各積分器44,46の出力ΔIu,ΔIwから、V相電機子14Vの電流変化量ΔIv(=−ΔIu−ΔIw)が算出される。そして、これらの電流変化量ΔIu,ΔIv,ΔIwからなるベクトル(ΔIu,ΔIv,ΔIw)tに、前記3相/dq変換部20で使用する変換行列と同様の変換行列(2行3列行列)を乗じることにより、d軸電流変化量ΔIdとq軸電流変化量ΔIqとからなるベクトル(ΔId,ΔIq)tが算出される。この場合、3相/dq変換部48の変換行列の各要素値は、角度推定部50で求められたロータ角度の推定値θ^に応じて決定される。
次に、本実施形態におけるロータ角度の推定処理を図7のフローチャートを参照して具体的に説明する。補足すると、この推定処理は、本願出願人が先に出願した特願2004−304492号に記載した第2実施形態のものと、1階差分ベクトルdIdqの検出手法だけが相違するものである。
制御装置12は、前記基本駆動電圧決定部22の処理を行いつつ、カウンタ変数ptrを0に初期化して、周期信号重畳部24により基本駆動電圧ベクトル(Vfbd,Vfbq)tに周期信号ベクトル(Vhd,Vhq)tを重畳する。そして、この状態で、制御装置12は、図7のフローチャートの処理を所定の制御サイクルで繰り返し実行する。
制御装置12は、まず、STEP1で、U相電流センサ16の検出電流値Iuと、W相電流センサ18の検出電流値Iwとを取り込む。
次いで、STEP2において、各積分器44,46の出力ΔIu,ΔIvを取り込む。この場合、前記図6(a)のように、PWMキャリアCaの前半の期間ΔTfで各積分器44,46の積分動作を行なう場合には、その積分動作の終了時刻(図6(a)の時刻Tm)で各積分器44,46の出力ΔIu,ΔIvが角度推定部50に取り込まれる。この場合には、取り込まれる出力ΔIu,ΔIvは、今回の(現在の)制御サイクルの全期間における電流変化量の半分に相当するものとなる。
また、前記図6(b)のように、PWMキャリアCaの後半の期間ΔTrで各積分器44,46の積分動作を行なう場合には、各制御サイクルの開始時(図6(b)の時刻Tj、Tj+1など)に各積分器44,46の出力ΔIu,ΔIvが角度推定部50に取り込まれる。この場合には、取り込まれる出力ΔIu,ΔIvは、前回の制御サイクルの全期間における電流変化量の半分に相当するものとなる。
次いで、STEP3に進み、制御装置12は、STEP2で取り込んだΔIu,ΔIwを3相/dq変換部48によりdq座標系に変換して、dq座標系での電流変化量ΔId,ΔIqからなるベクトルを1階差分ベクトルdIdqとして算出し、それを保持する。
この場合、前記図6(a)のように、PWMキャリアCaの前半の期間ΔTfで各積分器44,46の積分動作を行なう場合には、前回の制御サイクルのSTEP2で取り込んだΔIu,ΔIwから、3相/dq変換部48により1階差分ベクトルdIdqが算出される。また、図6(b)のように、PWMキャリアCaの前半の期間ΔTfで各積分器44,46の積分動作を行なう場合には、今回の制御サイクルのSTEP2で取り込んだΔIu,ΔIwから、3相/dq変換部48により1階差分ベクトルdIdqが算出される。従って、いずれの場合でも、STEP3で算出される1階差分ベクトルdIdqは、前回の制御サイクルの期間内での電流変化量(詳しくは前回の制御サイクルの全期間における電流変化量の半分)に相当する。
なお、3相/dq変換部48の処理(前記変換行列の各要素値を決定する処理)で必要なロータ角度の推定値θ^としては、後述するSTEP8の処理が実行された過去の制御サイクルのうちの最新の制御サイクルでSTEP8の処理により更新された値が用いられる。
次いで、STEP4に進み、カウンタ変数ptrの現在値が1であるか否かを判断する。このときptrが1であるときには、制御装置12は、STEP5〜8の処理を角度推定部50により実行し、カウンタ変数ptrが1でないときには、制御装置12の処理は、STEP9に分岐する。
ここで、カウンタ変数ptrは、STEP14で各制御サイクル毎にインクリメントされ、STEP15で、ptr=3になったときにSTEP16で0にリセットされる。このため、周期信号Vhd,Vhqの1周期に相当する3制御サイクルが経過する毎にSTEP4でptr=1となって、STEP5〜8の処理が実行される。なお、以降の説明では、各制御サイクルの開始時のカウンタ変数ptrの値が0、1、2となる制御サイクルをそれぞれ制御サイクル(0)、制御サイクル(1)、制御サイクル(2)ということがある。
STEP4の判断結果がptr=1である場合(今回の制御サイクルが制御サイクル(1)である場合)においては、まず、STEP5において、角度推定部50により、前記式(5)(詳しくは、式(5)におけるnをn=3としてなる式)を使用して、正弦参照値Vsdqおよび余弦参照値Vcdqが算出される。具体的には、前々回の制御サイクル(2)でSTEP3の処理により算出された1階差分ベクトルdIdqと、前回の制御サイクル(0)でSTEP3の処理により算出された1階差分ベクトルdIdqと、今回の制御サイクル(1)でSTEP3の処理により算出された1階差分ベクトルdIdqとを、それぞれ式(6)のdIdq(j+1)、dIdq(j+2)、dIdq(j+3)(=dIdq(j+n))として用いて、式(6)の左辺の演算を実行することによって、正弦参照値Vsdqおよび余弦参照値Vcdqが算出される。
次いで、STEP6に進み、角度推定部50は、上記の如く算出した正弦参照値Vsdqおよび余弦参照値Vcdqから、前記式(7)または式(8)または式(9)により、位相差θeを算出する。
次いでSTEP7に進み、制御装置10は、STEP1で取り込んだIu,Iwを前記3相/dq変換部20によりdq座標系に変換することで、電流フィードバック制御用のd軸実電流Idおよびq軸実電流Iq、すなわち、基本駆動電圧決定部22の処理に使用する実電流ベクトル(Id,Iq)tを取り込んで保持する。このSTEP7で取り込まれる実電流ベクトル(Id,Iq)tは、次次回(次回の次の回)の制御サイクル(0)の後述するSTEP10で、基本駆動電圧決定部22により基本駆動電圧ベクトル(Vfbd,Vfbq)tを更新するために使用される。
なお、STEP7で3相/dq変換部20の処理(前記変換行列の各要素値を決定する処理)で使用するロータ角度の推定値θ^は、今回の制御サイクル(0)のSTEP3で前記3相/dq変換部48の処理で使用したθ^の値と同じである。
次いで、STEP8に進み、角度推定部50は、dq変換用のロータ角度の推定値θ^の値(詳しくは、3相/dq変換部20,48の処理で使用するθ^の値)を、前回の制御サイクル(0)の後述するSTEP11で新たに決定された値に更新する。従って、前記STEP3における3相/dq変換部48の処理で使用するθ^の値は、制御サイクル(2)から制御サイクル(1)までの3制御サイクルの期間において一定に維持される。また、この3制御サイクルの期間のうちの制御サイクル(1)でSTEP7の3相/dq変換部20の処理に使用するθ^の値は、当該3制御サイクルの期間において3相/dq変換部48の処理(STEP3の処理)で使用するθ^の値と同じになる。
以上のSTEP5〜8の処理により、ptr=1となる制御サイクル(1)において(3制御サイクル毎に)、3制御サイクル分の1階差分ベクトルdIdq(i+1),dIdq(i+2),dIdq(i+2)を基に、位相差θeが算出される。このとき3制御サイクル分の1階差分ベクトルdIdq(i+1),dIdq(i+2),dIdq(i+2)は、積分器44,46の出力ΔIu,ΔIvから、同じ値のロータ角度の推定値θ^を使用して算出される。
上記のようにSTEP8の処理を実行した後、あるいは、前記STEP4でptr≠1である場合には、制御装置12は、STEP9においてカウンタ変数ptrの現在値が0であるか否かを判断する。
このときptr=0である場合には、制御装置12は、STEP10,11の処理を前記基本駆動電圧決定部22および角度推定部50により順次実行し、ptr≠0である場合には、制御装置12の処理は、STEP12に分岐する。
STEP9の判断結果がptr=0である場合(今回の制御サイクルが制御サイクル(0)である場合)においては、まず、STEP10において、基本駆動電圧決定部22により、前述の演算処理によってd軸基本駆動電圧Vfbdおよびq軸基本駆動電圧Vfbqを算出する(基本駆動電圧ベクトル(Vfbd,Vfbq)tを算出する)。なお、この場合、(Vfbd,Vfbq)tを算出するために必要となる前記偏差ベクトル(Id_c−Id,Iq_c−Iq)tは、前々回の制御サイクル(1)の前記STEP7で取り込んだ実電流ベクトル(Id,Iq)t(すなわち、実電流ベクトル(Id,Iq)tの最新値)と、目標電流ベクトル(Id_c,Iq_c)tの今回値(最新値)とから算出される。なお、目標電流ベクトル(Id_c,Iq_c)tは、制御サイクル(0)から制御サイクル(2)までの3制御サイクルの期間において一定に維持される。
次いで、STEP11に進んで、角度推定部50により、ロータ角度の推定値θ^(推定角度θ^)を前記式(10)により更新する。この場合、ロータ角度の推定値θ^の更新に必要な位相差θeとして、前々回の制御サイクル(1)の前記STEP6で算出された値、すなわち、θeの最新値が用いられる。
以上のようにして、ptr=0となる制御サイクル(0)では、基本駆動電圧ベクトル(Vfbd,Vfbq)tが更新されると共に、ロータ角度の推定値θ^が更新される。従って、3制御サイクル毎に、基本駆動電圧ベクトル(Vfbd,Vfbq)tとロータ角度の推定値θ^とが更新される。
なお、前記STEP8の処理を有するため、STEP11で更新されたロータ角度の推定値θ^は、次回の制御サイクル(1)のSTEP8の処理が実行されるまでは、3相/dq変換部20,48の処理(STEP3,7の処理)では使用されず、次次回の制御サイクル(2)から制御サイクル(1)までの3制御サイクルの期間において、前記STEP3の処理(3相/dq変換部48の処理)で使用されると共に、この3制御サイクルの期間のうちの制御サイクル(1)において、前記STEP7の処理(3相/dq変換部20の処理)で使用される。
上記のようにSTEP11の処理を実行した後、あるいは、前記STEP9でptr≠0である場合には、制御装置12は、STEP12において、周期信号重畳部12により周期信号ベクトル(Vhd,Vhq)tを基本駆動電圧ベクトル(Vfbd,Vfbq)tの最新値に重畳する(加算する)ことにより、駆動電圧指令値ベクトル(Vd_c,Vq_c)tを算出する。
なお、STEP12で周期信号ベクトル(Vhd,Vhq)tを重畳する基本駆動電圧ベクトル(Vfbd,Vfbq)tは、今回の制御サイクルおよび過去の制御サイクルのうち、ptr=0となる最新の制御サイクル(0)のSTEP10で算出された値である。従って、STEP12で算出される駆動電圧指令値ベクトル(Vd_c,Vq_c)tのうちの、基本駆動電圧ベクトル(Vfbd,Vfbq)tは制御サイクル(0)から制御サイクル(2)までの3制御サイクルの期間では一定に維持される。このため、該期間の各制御サイクルで算出される駆動電圧指令値ベクトル(Vd_c,Vq_c)tは、周期信号ベクトル(Vhd,Vhq)tの成分だけが互いに相違するものとなる。但し、当該3制御サイクルの期間における周期信号ベクトル(Vhd,Vhq)tの総和は0であるので、該期間における駆動電圧指令値ベクトル(Vd_c,Vq_c)tの平均値は、該期間で一定値となる基本駆動電圧ベクトル(Vfbd,Vfbq)tに一致する。
次いで、STEP13に進み、制御装置12は、STEP12で求めた駆動電圧指令値ベクトル(Vd_c,Vq_c)tをdq/3相変換部26により相電圧指令値ベクトル(Vu_c,Vv_c,Vw_c)tに変換する。
なお、このSTEP13におけるdq/3相変換部26の処理(前記変換行列の各要素値を決定する処理)で使用するロータ角度の推定値θ^の値は、今回の制御サイクルおよび過去の制御サイクルのうち、ptr=0となる最新の制御サイクル(0)のSTEP11で角度推定部50により更新された値(ロータ角度の新たな推定値)である。従って、制御サイクル(0)から制御サイクル(2)までの期間の各制御サイクルのSTEP13の処理(dq/3相変換部26の処理)では、同じ値のθ^を使用して、相電圧指令値ベクトル(Vu_c,Vv_c,Vw_c)tが算出される。
また、このSTEP13で算出された相電圧指令値ベクトル(Vu_c,Vv_c,Vw_c)tは次回の制御サイクルにおいて、前記PDU28に出力される。従って、STEP13で算出された相電圧指令値ベクトル(Vu_c,Vv_c,Vw_c)tに応じた駆動電圧をPDU28を介してモータ10の各相の電機子14に実際に印加することは、1制御サイクル遅れて行なわれる。
次いで、STEP14に進んで、制御装置12はカウンタ変数ptrの値を1だけインクリメントする。さらに、制御装置12は、STEP15において、インクリメント後のptrの値が3であるか否かを判断し、ptr=3である場合には、STEP16において、ptrの値を0にリセットし、今回の制御サイクルの処理を終了する。また、ptr≠3である場合には、そのまま今回の制御サイクルの処理を終了する。
以上の処理によって、PDU28による各相の電機子14への実際の印加電圧のうちの基本駆動電圧ベクトル(Vfbd,Vfbq)tに応じた成分は、制御サイクル(1)から制御サイクル(0)までの3制御サイクル分の期間(周期信号Vhd,Vhqの1周期の期間)において一定に維持される。そして、この3制御サイクル分の期間において、PDU28によるモータ10の各相の電機子14への実際の印加電圧のうちの周期信号ベクトル(Vhd,Vhq)tに応じた成分は、該期間を1周期として、該期間内の各制御サイクル毎に変化する。但し、該期間におけるモータ10の各相の電機子14への実際の印加電圧の平均値は、周期信号ベクトル(Vhd,Vhq)tに依存せずに、基本駆動電圧ベクトル(Vfbd,Vfbq)tに応じた値となる。このため、該期間におけるモータ10の各相の電機子14の通電電流の平均値が、目標電流ベクトル(Id_c,Iq_c)tに対応する電流値に一致するように制御されることとなる。
さらに、制御サイクル(1)から制御サイクル(0)までの3制御サイクルの期間内の各制御サイクルにおける電流変化量(該期間において重畳されている周期信号に応じた電流変換量)としての1階差分ベクトルdIdqが当該3制御サイクルの期間から1制御サイクル遅れた3制御サイクルの期間(制御サイクル(2)から制御サイクル(1)までの期間)において積分器44,46を介して検出される。
この場合、積分器44,46にそれぞれ入力されるサーチコイル40,42の出力電圧Vは、モータ10の各相の電機子14を流れる電流の大きさには依存せず、該電流の時間的変化にのみ依存するので、前記図6(a)または(c)に示した期間で各積分器44,46の積分動作を行なわせることで、該積分器44,46の出力ΔIu,ΔIwは、その積分期間における電流変化量を精度よく示すものとなる。また、積分器44,46の出力ΔIu,ΔIwのフルスケール値が過大にならないので、その出力ΔIu,ΔIwをA/D変換しても高い分解能で観測できる。従って、各制御サイクルにおける電流変化量に相当する1階差分ベクトルdIdqを精度よく観測することができる。このため、周期信号Vhd,Vhqの電圧値を微小なものとすることができ、ひいては、周期信号の重畳に伴う発生音を十分に小さくできる。
また、制御サイクル(2)から制御サイクル(1)までの期間の各制御サイクル(2),(0),(1)で検出される1階差分ベクトルdIdq(i+1),dIdq(i+2),dIdq(i+3)は、それぞれ2制御サイクル前の制御サイクル(0),(1),(2)のSTEP12で決定された駆動電圧指令値ベクトル(Vd_c,Vq_c)tのうちの周期信号ベクトル(Vhd,Vhq)tに応じた電流変化量に相当する。そして、制御サイクル(2)から制御サイクル(1)までの期間で1階差分ベクトルdIdq(i+1),dIdq(i+2),dIdq(i+3)を算出するときに3相/dq変換部48で使用するロータ角度の推定値θ^は一定に維持されると共に、そのθ^の値は、該1階差分ベクトルdIdq(i+1),dIdq(i+2),dIdq(i+3)にそれぞれ対応する駆動電圧指令値ベクトル(Vd_c,Vq_c)tを算出するときにdq/3相変換部26で使用するロータ角度の推定値θ^と一致する。このため、制御サイクル(0)から制御サイクル(2)までの期間で基本駆動電圧ベクトル(Vfbd,Vfbq)tを一定として算出された駆動電圧指令値ベクトル(Vd_c,Vq_c)tに応じた電流変化量(詳しくは、(Vd_c,Vq_c)tのうちの周期信号ベクトル(Vhd,Vhq)tに応じた電流変化量)に相当する1階差分ベクトルdIdq(i+1),dIdq(i+2),dIdq(i+3)を、制御サイクル(2)から制御サイクル(1)までの期間において、該期間内のロータ角度の変化の影響を受けずに適切に検出できる。
そして、制御サイクル(2)から制御サイクル(1)までの期間の各制御サイクルで検出された1階差分ベクトルdIdqを基に、位相差θeが算出され、この位相差θeを用いて、ptr=0となる制御サイクル(0)毎(3制御サイクル毎に)、ロータ角度の推定値θ^が算出(更新)される。同時に、制御サイクル(0)では、基本駆動電圧ベクトル(Vfbd,Vfbq)tが更新される。従って、ロータ角度の推定値θ^の更新と、基本駆動電圧ベクトル(Vfbd,Vfbq)tの更新とは3制御サイクル毎に、同期して行なわれる。
次に、前記故障検知部52の処理を説明する。
前記したように周期信号ベクトル(Vhd,Vhq)tを基本駆動電圧ベクトル(Vfbd,Vfbq)tに重畳しながら、モータ10の各相の電機子14に通電している状態において、故障検知部52には、各制御サイクル毎に、検出電流値Iu,Iwから3相/dq変換部20で算出される実電流ベクトル(id,Iq)tが取り込まれる。そして、故障検知部52は、各制御サイクル毎に、取り込んだ実電流ベクトル(id,Iq)tの今回値(最新値)と前回値との差を演算することによって、1制御サイクルの期間におけるd軸電流の変化量ΔId2(以下、d軸電流変化量センサ値ΔId2という)およびq軸電流の変化量ΔIq2(以下、q軸電流変化量センサ値ΔIq2という)を算出する。また、故障検知部52には、各制御サイクル毎に、積分器44,46の出力ΔIu,ΔIwから前記3相/dq変換部48で算出される1階差分ベクトルdIdq=(ΔId,ΔIq)tが取り込まれる。そして、故障検知部52は、d軸電流電流変化量ΔId2およびq軸電流変化量センサ値ΔIq2を、それぞれ1階差分ベクトルdIdq=(ΔId,ΔIq)tの各成分ΔId,ΔIqの2倍値と比較する。あるいは、ΔId2,ΔIq2のそれぞれの1/2倍の値を、それぞれΔId,ΔIqと比較する。
このとき、ΔId2,ΔIq2の精度(分解能)はΔId,ΔIqに比べて低いものの、電流センサ16,18が正常であれば、ΔId2≒2ΔId且つΔIq2≒2ΔIq、あるいは、ΔId2/2≒ΔId且つΔIq2/2≒ΔIqとなるはずである。そこで、本実施形態では、故障検知部52は、例えば|ΔId2−2ΔId|、|ΔIq2−2ΔIq|のいずれかがあらかじめ定めた所定量よりも大きいとき、あるいは、|ΔId2/2−ΔId|、|ΔIq2/2−ΔIq|のいずれかがあらかじめ定めた所定量よりも大きいときに、電流センサ16,18のいずれかが故障していると判断し、そうでないときには、電流センサ16,18が正常であると判断する。そして、故障検知部52は、電流センサ16,18のいずれかが故障していると判断したときには、その旨を示すエラー信号を出力する。
補足すると、電流検出値Iu,Iwから、各制御サイクル毎のU相、V相の電機子14U,14Vの電流変化量ΔIu2,ΔIw2を算出し、そのΔIu2,ΔIw2のそれぞれを、積分器44,46の出力ΔIu,ΔIwのそれぞれの2倍値と比較し、あるいは、ΔIu2,ΔIw2のそれぞれの1/2倍値を、積分器44,46の出力ΔIu,ΔIwのそれぞれと比較することで、電流センサ16,18の故障の有無を判断するようにしてもよい。
なお、以上説明した実施形態では、積分器44,46の積分動作をPWMキャリアCaの半周期の期間で行なうようにしたが、例えば図8に示す如く、制御装置12の1制御サイクルの期間をPWMキャリアCaの2周期分の期間とし、その期間内におけるPWMキャリアCaの1周期分の期間(1制御サイクルの期間の半分の期間)で、積分器44,46の積分動作を実行するようにしてもよい。この場合、図8の例では、1制御サイクルの期間の後半の期間で積分器44,46の積分動作を実行するようにしているが、前半の期間で積分器44,46の積分動作を実行するようにしてもよい。
あるいは、各電流センサ16,18に備えたサーチコイル40,46のそれぞれの出力を積分する積分器を2つずつ備えておき、それらの積分器の積分動作をPWMキャリアCaの1周期分づつ、交互に行なうようにしてもよい。この場合には、PWMキャリアCaの1周期を1制御サイクルの期間としつつ、各制御サイクルにおける電流変化量を2つの積分器により交互に検出できることとなる。
また、前記実施形態では、dq座標系での1階差分ベクトルdIdqを検出して、ロータ角度の推定値θ^を求める手法に関して説明したが、特願2004−304492号の第1実施形態にて本願出願人が提案している如く、相電流の1階差分を検出して、ロータ角度の推定値θ^を求めるようにしてもよい。あるいは、前記特許文献1〜3のいずれかの手法を適用して、ロータ角度θ^を推定するようにしてもよい。本願発明は、周期信号を基本駆動電圧信号に重畳しながら、電機子の電流変化を検出し、その電流変化に基づいてロータ角度を推定するいずれの手法にも適用することができる。
10…DCブラシレスモータ、14(14U,14V,14W)…電機子、16,18…電流センサ(電流検出手段)、22…基本駆動電圧決定部(基本駆動電圧決定手段)、24…周期信号重畳部(通電手段)、26…dq/3相変換部(通電手段)、28…パワードライブユニット(通電手段)、5,40,42…サーチコイル、44,46…積分器(積分手段)、50…角度推定部(角度推定手段)、52…故障検知部(故障検知手段)。