実施の形態.
<インバータの構成>
図1に示すように、インバータ1は入力端P1,P2及び出力端Pu,Pv,Pwと接続される。入力端P1,P2には直流電圧が印加される。ここでは入力端P2に印加される電位は入力端P1に印加される電位よりも低い。
インバータ1は入力端P1,P2から入力される直流電圧を三相交流電圧に変換し、この三相交流電圧を出力端Pu,Pv,Pwへと出力する。インバータ1は入力端P1,P2の間で互いに直列に接続される一対のスイッチング素子を3相分備えている。図1では、u相についての一対のスイッチング素子S1,S4と、v相についての一対のスイッチング素子S2,S5と、w相についての一対のスイッチング素子S3,S6とが例示されている。
スイッチング素子S1〜S6は例えば絶縁ゲートバイポーラトランジスタ又は電界効果トランジスタなどである。各スイッチング素子S1〜S3は出力端Pu,Pv,Pwの各々と入力端P1との間に設けられている。以下では、各スイッチング素子S1〜S3を上側のスイッチング素子とも呼ぶ。各スイッチング素子S4〜S6は出力端Pu,Pv,Pwの各々と入力端P2との間に設けられている。以下では各スイッチング素子S4〜S6を下側のスイッチング素子とも呼ぶ。
またインバータ1はダイオードD1〜D6を備えている。ダイオードD1〜D3のアノードはそれぞれ出力端Pu,Pv,Pwに接続され、ダイオードD1〜D3はそれぞれスイッチング素子S1〜S3と並列に接続される。ダイオードD4〜D6のアノードは入力端P2に接続され、ダイオードD4〜D6はそれぞれスイッチング素子S4〜S6と並列に接続される。なおダイオードD1〜D6はそれぞれスイッチング素子S1〜S6の寄生ダイオードであってもよい。
スイッチング素子S1〜S6には制御部3からそれぞれスイッチ信号が与えられる。かかるスイッチ信号により各スイッチング素子S1〜S6が導通する。制御部3が適切なタイミングでスイッチング素子S1〜S6へとそれぞれスイッチ信号を与えることにより、インバータ1は直流電圧を三相交流電圧に変換して、これを出力端Pu,Pv,Pwに出力する。
インバータ1は例えば誘導性負荷2を駆動することができる。誘導性負荷2は出力端Pu,Pv,Pwに接続される。誘導性負荷2は例えばモータであって、インバータ1によって印加される三相交流電圧に応じて回転する。
電流検出部4は入力端P2を流れる直流電流idcを検出する。なお電流検出部4は入力端P1を流れる直流電流idcを検出しても良い。ただし、入力端P1には高電位が印加されることから、電流検出部4として絶縁性の高い検出部を採用する必要があり、製造コストの増大を招く。よって、電流検出部4は入力端P2を流れる直流電流idcを検出することが望ましい。
電流検出部4が検出した直流電流idcは制御部3に入力される。制御部3はスイッチング素子S1〜S6のスイッチングパターンに基づいて直流電流idcを線電流として検出する。この点については後に詳述する。
またここでは、制御部3はマイクロコンピュータと記憶装置を含んで構成される。マイクロコンピュータは、プログラムに記述された各処理ステップ(換言すれば手順)を実行する。上記記憶装置は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、書き換え可能な不揮発性メモリ(EPROM(Erasable Programmable ROM)等)、ハードディスク装置などの各種記憶装置の1つ又は複数で構成可能である。当該記憶装置は、各種の情報やデータ等を格納し、またマイクロコンピュータが実行するプログラムを格納し、また、プログラムを実行するための作業領域を提供する。なお、マイクロコンピュータは、プログラムに記述された各処理ステップに対応する各種手段として機能するとも把握でき、あるいは、各処理ステップに対応する各種機能を実現するとも把握できる。また、制御部3はこれに限らず、制御部3によって実行される各種手順、あるいは実現される各種手段又は各種機能の一部又は全部をハードウェアで実現しても構わない。
制御部3についてのより詳細な機能ブロックおよび動作については後に詳述する。
<インバータの一般的な制御と線電流の検出>
以下ではまず一般的なインバータの制御を説明し、続けて直流電流idcと線電流との関係について説明する。まず同じ出力端に接続される一対のスイッチング素子は互いに排他的に導通させる。これは入力端P1,P2が短絡してスイッチング素子へと大電流が流れることを防止するためである。よって、スイッチング素子S1〜S6のスイッチングパターンとして次の8つのパターンが存在する。ここで上側のスイッチング素子が導通し、下側のスイッチング素子が非導通であるスイッチ状態を「1」で表現し、上側のスイッチング素子が非導通であって下側のスイッチング素子が導通するスイッチ状態を「0」で表現する。そして各相についてのスイッチングパターンをこの順で並べると、スイッチングパターンとしては、(000)(001)(010)(011)(100)(101)(110)(111)の8つのパターンが存在する。
上述した各スイッチングパターンをスイッチング素子S1〜S6が採用することにより、インバータ1はスイッチングパターンに応じた電圧を出力する。各スイッチングパターンにより出力される電圧のベクトルを、スイッチングパターンの上記3つの数字を10進数で表した数字を用いて、それぞれ電圧ベクトルV0〜V7と表現する。例えばスイッチングパターン(100)が採用されることで出力される電圧のベクトルは電圧ベクトルV4である。
図2には電圧ベクトル図が示されている。各電圧ベクトルV1〜V6はこれらの始点を中心点に一致させそれらの終点を放射状に外側に向けて配置される。各電圧ベクトルV1〜V6の終点同士を結ぶと正六角形を構成する。電圧ベクトルV0,V7では同じ入力端に接続されるスイッチング素子のいずれもが導通する。これにより出力端Pu,Pv,Pwが短絡される。したがって電圧ベクトルV0,V7は大きさを有さない。よって電圧ベクトルV0,V7は中心点に配置される。以下では、かかる各電圧ベクトルV0,V7を零電圧ベクトルとも呼称し、各電圧ベクトルV1〜V6を非零電圧ベクトルとも呼称する。なお、各電圧ベクトルV1〜V6のうちの隣り合う二者で挟まれる領域をそれぞれR1〜R6と呼ぶ。
かかる電圧ベクトル図において、出力端Pu,Pv,Pwから出力されるべき電圧のベクトルV(即ち電圧指令ベクトルV*)が、中心点を始点として一定の大きさを持ち、その方向が中心点を中心に一定角速度で回転すれば、出力端Pu,Pv,Pwには三相交流電圧が出力されることになる。なお、電圧ベクトルVの大きさが出力端Pu,Pv,Pwから出力される三相交流電圧の振幅に相当し、角速度の逆数が三相交流電圧の周期に相当する。
かかる電圧ベクトルVを採用すべく、インバータ1は電圧ベクトルV0〜V7を採用する。例えば電圧指令ベクトルV*が位置する領域R1〜R6に応じて、当該領域R1〜R6を構成する2つの電圧ベクトルVi,Vj(i,j=1〜6,i≠j)と電圧ベクトルV0(又は/及び電圧ベクトルV7)とが採用される。かかる電圧ベクトルVi,Vjと電圧ベクトルV0(又は/及び電圧ベクトルV7)とは、これらの合成電圧ベクトルが電圧指令ベクトルV*に一致するように採用される。以下、零電圧ベクトルとして電圧ベクトルV0,V7を採用した場合の一例について説明する。
例えば電圧指令ベクトルV*が領域R1に位置する場合、所定期間Tにおいて例えば電圧ベクトルV0,V4,V6,V7がそれぞれ期間t0,t4,t6,t7(T=t0+t4+t6+t7)に渡って採用される。なお所定期間Tは、電圧指令ベクトルV*が領域R1を通過するのに要する期間に比べて十分に小さい(例えば100分の1)。
所定期間Tにおける合成電圧ベクトルは、V0・t0/T+V4・t4/T+V6・t6/T+V7・t7/Tで表され、この合成電圧ベクトルが電圧指令ベクトルV*と一致するように、電圧ベクトルV0,V4,V6,V7が採用される。換言すれば、合成電圧ベクトルが電圧指令ベクトルV*と一致するように期間t0,t4,t6,t7が求められ、期間t0,t4,t6,t7に渡ってそれぞれ電圧ベクトルV0,V4,V6,V7が採用される。
次に出力端Pu,Pv,Pwをそれぞれ流れる線電流iu,iv,iwと直流電流idcとの関係について述べる。ここで線電流iu,iv,iwは自身がインバータ1から誘導性負荷2へと流れるときに正の値を採る、と仮定する。
例えば電圧ベクトルV4が採用される期間t4において、スイッチング素子S1,S5,S6が導通する(図1も参照)。したがって、入力端P1を流れる直流電流idcは出力端Puを経由して線電流iuとして誘導性負荷2を流れる。線電流iuは誘導性負荷2において線電流iv,iwに分流し、線電流iv,iwはそれぞれ出力端Pv,Pwを流れる。その後、線電流iv,iwが合流して直流電流idcとして入力端P2へと流れる。よって、期間t4において流れる直流電流idcは線電流iuと一致する。
また例えば電圧ベクトルV6が採用される期間t6において、スイッチング素子S1,S2,S6が導通する。したがって、入力端P1を流れる直流電流idcは線電流iu,ivに分流し、線電流iu,ivはそれぞれ出力端Pu,Pvを経由して誘導性負荷2へと流れる。線電流iu,ivは誘導性負荷2において合流して線電流iwとして出力端Pwを流れる。その後、線電流iwは直流電流idcとして入力端P2を流れる。よって、期間t6において流れる直流電流idcは線電流iwと一致する。ただし、線電流iwは誘導性負荷2からインバータ1へと流れるので、直流電流idcは負の線電流iwと一致する。
零電圧ベクトルV0,V7が採用されるときには、出力端Pu,Pv,Pwが短絡されるので、直流電流idcは流れない。
以上のように、例えば電圧指令ベクトルV*が領域R1に位置する場合、所定期間T内の期間t4,t6において直流電流idcからそれぞれ線電流iu,iwを検出することができる。さらに線電流iu,iv,iwの和が零であることに鑑みれば、検出した線電流iu,iwを用いて残りの線電流ivを求めることができる。
なお他の領域R2〜R6についても同様にスイッチングパターンに基づいて直流電流idcを線電流として検出することができる。図2において、採用されるスイッチングパターン、即ち電圧ベクトル、の付近に、直流電流idcに対応する線電流が付記されている。かかる線電流iu,iv,iwは例えば電圧指令ベクトルV*の生成に用いられる。この電圧指令ベクトルV*の生成方法は公知な技術であり、本願の本質とは異なるため詳細な説明を省略する。
一方、上述したインバータ1の制御から理解されるように、例えば電圧指令ベクトルV*が領域R1内において電圧ベクトルV4の近傍に位置する場合、期間t6は短い。したがって、線電流iwを検出するために、短い期間t6において直流電流idcを検出する必要がある。しかしながら、期間t6が所定値よりも短ければ直流電流idcの検出精度が低下する。電圧指令ベクトルV*が各電圧ベクトルV1〜V6の近傍に位置する場合にも、同様にして直流電流idcの検出精度が低下する。
また電圧指令ベクトルV*の大きさが小さいほど、所定期間Tに対する期間t0(t7)の割合が大きくなり、非零電圧ベクトルV1〜V6が採用される期間が短くなる。したがって直流電流idcの検出精度が低下する。
図2においては直流電流idcの検出精度が低下する電圧指令ベクトルV*の範囲が斜線で示されている。
さて、上述したインバータ1の制御を実現すべく、制御部3は、周期を有するキャリアCと、三相交流電圧についての3相の電圧指令値Vu*,Vv*,Vw*の各々との比較に基づいて、スイッチング素子S1〜S6に各スイッチングパターンを採用させる。電圧指令値Vu*,Vv*,Vw*は電圧指令ベクトルV*の構成要素である。キャリアCの周期は所定期間Tであり、キャリアCは図3に示すように例えば三角波である。図3の例示ではキャリアCは二等辺三角波である。より詳細には、キャリアCは各所定期間Tの始期および終期においてボトム(例えば−1)を採り、各所定期間Tの中央でピーク(例えば1)を採る。電圧指令値Vu*,Vv*,Vw*は例えば正弦波であり、互いに120度ずつ位相がずれている。ただし、図3の例示では、電圧指令値Vu*,Vv*,Vw*の周期よりも十分に短いキャリアCの一周期たる所定期間Tが示されており、この所定期間Tにおいて電圧指令値Vu*,Vv*,Vw*は一定値に近似されている。
制御部3はこの比較の結果に基づいてスイッチング素子S1〜S6へとスイッチ信号を出力してこれらを制御する。ここでは一例として、制御部3はキャリアCが各電圧指令値Vu*,Vv*,Vw*以上であるときに各上側のスイッチング素子S1〜S3を導通させる。
図3は、電圧指令ベクトルV*が領域R1に位置するときのタイミングチャートが例示されている。最大出力電圧となる指令値がu相のVu*となり、次いで出力電圧が大きくなる指令値がv相のVv*で、最小出力電圧となる指令値がw相のVw*となる。よってキャリアCは所定期間Tの始期から増大してまず時点taにおいて電圧指令値Vu*と一致する。よって時点taにおいてスイッチング素子S1が導通する。続けてキャリアCは増大して時点tbにおいて電圧指令値Vv*と一致し、スイッチング素子S2が導通する。続けてキャリアCは増大して時点tcにおいて電圧指令値Vw*と一致し、スイッチング素子S3が導通する。そしてキャリアCは所定期間Tの半期においてピークを採った後に低減し、再び時点tdにおいて電圧指令値Vw*と一致する。よって時点tdにおいてスイッチング素子S3が非導通する。続けてキャリアCは低減して時点teにおいて電圧指令値Vv*と一致し、スイッチング素子S2が非導通する。続けてキャリアCは低減して時点tfにおいて電圧指令値Vu*と一致し、スイッチング素子S1が非導通する。
このスイッチング制御によって、所定期間Tの始期から時点taまでの期間および時点tfから所定期間Tの終期までの期間では零電圧ベクトルV0が採用され、時点ta〜tbの期間t41および時点te〜tfの期間t42では電圧ベクトルV4が採用され、時点tb〜tcの期間t61および時点td〜teの期間t62では電圧ベクトルV6が採用され、時点tc〜tdの期間では電圧ベクトルV7が採用される。
なお、時点ta,tfは電圧指令値Vu*によって規定され、時点tb,teは電圧指令値Vv*によって規定され、時点tc,tdは電圧指令値Vw*によって規定される。よって期間t41,t42は最小相指令値たる電圧指令値Vu*と中間相指令値たる電圧指令値Vv*によって規定され、期間t61,t62は中間相指令値たる電圧指令値Vv*と最大相指令値たる電圧指令値Vw*によって規定される。
さて電圧ベクトルV4,V6は所定期間Tの前後半において採用されている。言い換えれば、期間t4が期間t41,t42に分割され、期間t6が期間t61,t62に分割される。また図3の例示ではキャリアCは二等辺三角波であるので、期間t41,t42は互いに等しく、期間t61,t62は互いに等しい。
そして、期間t41,t42の少なくとも何れか一方において直流電流idcを正の線電流iuとして検出する。期間t41,t42が所定値以上であれば直流電流idcを適切な精度で検出できる。同様に期間t61,t62の少なくとも何れか一方において、直流電流idcを負の線電流iwとして検出する。期間t61,t62が所定値以上であれば直流電流idcは適切な精度で検出できる。一方、例えば期間t41,t42若しくは期間t61,t62が所定値以下であれば直流電流idcの検出精度が低下する。
<インバータの特徴的な制御方法と制御部>
図1を参照して、制御部3は例えば電圧指令生成部31と、キャリア生成部32と、比較部33とを備えている。電圧指令生成部31には例えば誘導性負荷2の一例たるモータの回転速度についての回転速度指令値が入力される。また電圧指令生成部31には電流検出部4から直流電流idcが入力される。電圧指令生成部31はスイッチングパターンに基づいて直流電流idcを線電流として検出し、所定期間Tにおいて各線電流を検出する。そして、各線電流から公知な技術を用いてモータの回転速度を推定し、この推定値と回転速度指令値とに基づいて電圧指令値Vu*,Vv*,Vw*を生成する。電圧指令値Vu*,Vv*,Vw*は比較部33に出力される。また電圧指令生成部31は生成した電圧指令値Vu*,Vv*,Vw*から次の所定期間Tにおいて非零電圧ベクトルが採用される各期間を推定し、その結果をキャリア生成部32に出力する。また生成した電圧指令値Vu*,Vv*,Vw*を比較部33に出力する。
キャリア生成部32は電圧指令生成部31からの結果に基づいてキャリアCを生成して比較部33に出力する。キャリア生成部32は、非零電圧ベクトルが採用される期間が所定値以上であると当該期間よりも前に推定されたときには例えば三角波のキャリアCを生成して比較部33に出力する。一方、期間が所定値以下であると推定されたときには、キャリアCと、当該期間を規定する一対の指令値の一方と比較される第2キャリアとを比較部33へと出力する。
比較部33はキャリアCあるいはキャリアCと第2キャリアと、各電圧指令値Vu*,Vv*,Vw*との比較に基づいて、スイッチング素子S1〜S6に各スイッチングパターンを採用させる。つまり比較部33はスイッチング素子S1〜S6へとスイッチ信号を出力する。
以下、制御部3の具体的な動作の一例について説明する。ここではまず、図3を参照して電圧ベクトルV4,V6が採用される期間のいずれもが所定値tref以下となる場合について説明する。このとき、例えばキャリア生成部32は3相の指令値のいずれか2つとそれぞれ比較される2つのキャリアを新たに生成する。
さて、図2を参照して、電圧指令ベクトルV*の大きさが所定値よりも小さいときには領域R1〜R6の区別なしに非零電圧ベクトルの期間が短くなる。よってこの期間における直流電流idcの検出精度が低下する。換言すると、インバータ1が出力する三相交流電圧の振幅が所定値よりも小さいときには直流電流idcの検出精度が低下する。なお三相交流電圧の振幅が小さいときには電圧指令値Vu*,Vv*,Vw*は互いに近い値を有し、三相交流電圧の振幅が0であれば電圧指令値Vu*,Vv*,Vw*は互いに等しい値(例えば0)を採る。
さて、図2を参照して説明したインバータ1の制御から理解できるように、所定期間Tにおいて零電圧ベクトルV0,V7以外に2つの非零電圧ベクトルが採用される。電圧指令値Vu*,Vv*,Vw*が互いに近い値を採るときは、この2つの非零電圧ベクトルが採用される期間が短い。図3の例示に即して説明すれば、このとき、電圧ベクトルV4が採用される期間t41,t42と、電圧ベクトルV6が採用される期間t61,t62とのいずれもが所定値tref以下となる。
ここでは、例えば期間t41,t42および期間t61,t62が所定値tref以下になると推定されるときには、キャリア生成部32はキャリアCu,Cv,Cwを生成する。図4に例示するように、キャリアCuは例えば二等辺三角波であり、例えば他の所定期間Tにおいても採用されるキャリアCと同一である。キャリアCv,Cwは互いに異なる直角三角波である。より詳細にはキャリアCvは例えばそのピークが所定期間Tの終期と一致する直角三角波であり、キャリアCwは例えばそのピークが所定期間Tの始期と一致する直角三角波である。なお、図4の例示では、三相交流電圧の振幅が小さい極端な例として、当該振幅が0である場合が示されている。図4の例示では各電圧指令値Vu*,Vv*,Vw*はいずれもキャリアCu,Cv,Cwのピーク(例えば1)とボトム(例えば−1)との間の中央値(例えば0)である。
そして例えば従来のように電圧指令値Vu*,Vv*,Vw*がいずれも同じキャリアCと比較される場合、電圧指令値Vu*,Vv*,Vw*が互いに等しければ理論的には所定期間Tにおいて零電圧ベクトルV0,V7のみが採用される。よって、このとき直流電流idcを検出することができない。
一方ここでは、比較部33はキャリアCu,Cv,Cwと電圧指令値Vu*,Vv*,Vw*とをそれぞれ比較して、比較結果に基づいてスイッチング素子S1〜S6を制御する。例えばキャリアCuが電圧指令値Vu*以上であるときに上側のスイッチング素子S1を導通させ、キャリアCvが電圧指令値Vv*以上であるときに上側のスイッチング素子S2を導通させ、キャリアCwが電圧指令値Vw*以上であるときに上側のスイッチング素子S3を導通させる。よって、所定期間Tの中央付近でスイッチング素子S1が導通し、所定期間Tの半期以後においてスイッチング素子S2が導通し、所定期間Tの半期以前においてスイッチング素子S3が導通する。
これにより所定期間Tにおいて、図4に例示するように電圧ベクトルV1,V5,V6,V2がこの順で採用される。そして、各電圧ベクトルV1,V5,V6,V2がそれぞれ採用された各期間t1,t5,t6,t2において直流電流idcが線電流として検出される。なお期間t1,t6では線電流iwが検出されることから、期間t1,t6のいずれか一方において線電流iwが検出されても良い。同様に、期間t2,t5のいずれか一方において線電流ivが検出されても良い。
以上のように、従来では所定期間Tにおいて零電圧ベクトル以外の非零電圧ベクトルが採用される期間がほとんど存在しないところ、本制御方法によれば、非零電圧ベクトルV1,V5,V6,V2が採用される期間が存在するので、これらの期間における直流電流idcの検出精度を向上することができる。換言すれば線電流の検出精度を向上することができる。
しかも、キャリアCの周期を増大させる必要がない。よって出力電圧のパルスが粗くなることを防止でき、線電流の波形の劣化を抑制できる。さらにキャリア周波数が低下しないため、騒音も増加しない。この内容は後述する他の態様でも同様であるので、以下では繰り返しの説明を避ける。
なおキャリアCv,Cwはいずれも直角三角波に限らない。キャリアCu,Cv,Cwが三角波であって、これらのピークが時間軸において互いに異なっていれば、例えば図5に示すように非零電圧ベクトルを採用する期間が存在する。換言すれば、キャリアCwはキャリアCuのピークを時間軸において平行移動した位置にピークを有し、キャリアCvは、キャリアCwのピークの平行移動量とは異なる量、キャリアCuのピークを時間軸において平行移動した位置にピークを有していればよい。図5の例示では、キャリアCv,CwのピークはキャリアCuのピークを時間軸において正の方向に平行移動させた位置にあり、キャリアCv,Cwのピークの位置は互いに異なっている。これによって例えば図5に示すように、所定期間Tにおいて電圧ベクトルV0,V4,V5,V7,V3,V2がこの順で採用される。よって、ほとんど非零電圧ベクトルが存在しない従来に比して、これらの電圧ベクトルV4,V5,V3,V2が採用される期間での電流検出の精度を向上できる。
またキャリアCv,Cwが三角波であって、それぞれキャリアCのピークを平行移動したピークを有していれば、所定期間Tにおけるスイッチング素子S1〜S3の導通期間は時間軸において平行移動するものの、その長さはそれぞれ変化しない。よって、インバータ1が出力する各相電圧のパルス期間が変わらない。したがって、相電圧パルス幅は変わらない。この点は、後述する他の態様であっても同様であるので、繰り返しの説明を避ける。
各キャリアCu,Cv,Cwのピークの位置は、電圧ベクトルV4,V5,V3,V2の期間t4,t5,t3,t2のうち直流電流idcが検出される期間が所定値tref以上となるように、決定されることが望ましい。これによって必要な精度での直流電流idcの検出を実現できる。一方で、図4に例示するように、キャリアCv,Cwとして直角三角波を採用すれば、キャリアCのピークを平行移動させる量(即ちピークの位置)を算出する必要がなく、制御が容易である。
またキャリアCv,CwのピークをキャリアCuのピークに対して時間軸において互いに反対に位置させることが望ましい。これは次の理由による。例えばキャリアCvのピークがキャリアCuのピークに対して時間軸において正の方向にずれていれば、スイッチング素子S2の導通期間がスイッチング素子S1の導通期間に対して時間軸において正の方向にずれる(図4参照)。このずれ量に応じて、所定期間Tにおいて電圧ベクトルV2が採用される期間t2が登場する。そして、キャリアCwのピークをキャリアCuのピークに対して時間軸において負の方向へとずらしても、期間t2は変らない(図4参照)。一方、キャリアCwのピークを正の方向へとずらせば、期間t2が低減する(図5参照)。したがって、キャリアCv,CwのピークをキャリアCuのピークに対して時間軸において互いに反対方向にずらせば、効率的に非零電圧ベクトルが採用される期間を増大させることができる。
図5に例示する二等辺三角波のキャリアCuは、逆二等辺三角波のキャリアCuと把握することができる。例えば所定期間Tの始期および終期においてキャリアCuがピークを採り、所定期間Tの半期においてキャリアCuがボトムを採ると把握すれば、所定期間TにおいてキャリアCuは逆二等辺三角波となる。この場合、キャリアCuのボトムを時間軸において平行移動させてキャリアCv,Cwを生成してもよい。この点は後述する他の態様であっても同様であるので、以下では繰り返しの説明を避ける。
なお、必ずしも、電圧指令値Vu*,Vv*,Vw*とそれぞれ比較される3つのキャリアCu,Cv,Cwを生成する必要はない。例えば図3を参照して、期間t61が所定値tref以下であることが所定期間Tよりも前に推定されたときには、キャリア生成部32は期間t61を規定する電圧指令値Vv*,Vw*の一方と比較されるキャリアを生成してもよい。よってこのときキャリアCは電圧指令値Vu*と、電圧指令値Vv*,Vw*の他方と比較される。
図6の例示では、キャリア生成部32は最大相電圧指令値Vw*と比較されるキャリアCwを生成している。キャリアCwは例えば三角波であって、キャリアCのピークを時間軸において正の方向に平行移動させた位置にピークを有している。これに伴って、スイッチング素子S3が導通する期間は時間軸において正の方向に平行移動する。よってスイッチング素子S2が導通する時点とスイッチング素子S3が導通する時点との間の期間t61が増大し、以って電流検出の精度を高めることができる。しかも、期間t41は変化しないため、期間t41が前記所定値tref以上ある場合は、期間t41、t61において2相の電流検出が可能となる。これは、期間Tの前半のみの直流電流idcを用いて線電流iu,iv,iwを検出する場合に有利である。このように前半のみで検出することは、期間Tの前半の直流電流idcと、後半の直流電流idcを用いて検出する場合に比べて、検出精度の観点で望ましいからである。また最大相の電圧指令値Vw*と比較されるキャリアCwのみを新たに生成すればよいので、制御が簡易である。
次に、生成したキャリアCwのピークの位置について考察する。キャリアCwのピークとキャリアCのピークとの間の期間ΔTpkと、期間t61の増分Δtとは次式を満たす。ただし、キャリアの高さ(=最大値−最小値、例えば2)を高さHとする。
ΔTpk=H・Δt/Vw* ・・・(1)
増分Δtは例えば所定値tref以上の値から増大前の期間t61を減算した値が採用されるとよい。これによって、増大した期間t61は所定値tref以上となり、必要な検出精度を実現できる。
なおキャリアCwのピークは図6の例示よりもさらに正の方向に位置していても良い。図7の例示では、スイッチング素子S2が非導通となる時点よりも後の時点でスイッチング素子S3が導通する。よって、電圧ベクトルV6が採用される期間t6はスイッチング素子S2が導通する期間と一致し、期間t6を最も長くすることができる。
なお、キャリアCwは必ずしも三角波でなくてもよく、要するにキャリアCが所定の変化率で電圧指令値Vw*を超える時点tc’よりも遅い時点tcにおいて、キャリアCwが当該変化率とは異なる変化率で電圧指令値Vw*を超えればよい。一方、期間t62を増大させるのであれば、キャリアCが所定の変化率で電圧指令値Vw*を下回る時点td’よりも早い時点で、キャリアCwが当該変化率とは異なる変化率で電圧指令値Vw*を下回ればよい。これは、例えばキャリアCのピークを時間軸において負の方向に平行移動させた位置にピークを有する三角波のキャリアCwを生成することで実現される。
また図8に例示するように、電圧指令値Vw*と比較するキャリアCwを生成するのではなく、中間相の電圧指令値Vv*と比較するキャリアCvを生成してもよい。そして、期間t61を増大させるのであれば、キャリアCが所定の変化率で電圧指令値Vv*を超える時点tb’よりも早い時点tbにおいて、キャリアCvが当該変化率とは異なる変化率で電圧指令値Vv*を超えればよい。また期間t62を増大させるのであれば、キャリアCが所定の変化率で電圧指令値Vv*を下回る時点よりも遅い時点において、キャリアCvが当該変化率とは異なる変化率で電圧指令値Vv*を下回ればよい。これによって期間t62が増大し、以って電流検出の精度を高めることができる。
しかも中間相電圧指令値たる電圧指令値Vv*と比較される三角波のキャリアCvを生成することで次に説明する効果も招来する。即ち、スイッチング素子S2の導通期間は、三角波のキャリアCvのピークと三角波のキャリアCのピークとの間の期間に応じて平行移動する。例えば図8を参照して、スイッチング素子S2の導通期間が負の方向に平行移動すると、期間t61が増大するとともに期間t42も増大する。したがって、期間t61,t42における直流電流の検出精度を向上することができる。しかも中間相の電圧指令値Vv*と比較されるキャリアCvのみを新たに生成すればよいので、制御が簡易である。
なお図6〜8を参照して説明した内容は、次のように把握できる。即ち、電圧指令値Vv*,Vw*の一方と比較される第2キャリアが生成される。第2キャリアは第1時点及び第2時点を用いて把握される。第1時点は、キャリアCが増大する若しくは低減する方向で電圧指令値Vv*,Vw*の一方と交差する時点である。第2時点は、キャリアCが当該方向で電圧指令値Vv*,Vw*の他方と交差する時点である。第2キャリアは第1時点に対して第2時点とは反対側の第3時点において、当該方向で電圧指令値Vv*,Vw*の一方と交差する。また図5に例示するように、第1時点(例えばキャリアCuが電圧指令値Vv*と交差する時点)と第2時点(例えばキャリアCuが電圧指令値Vw*と交差する時点)とが一致する場合は、第1時点に対して遅いまたは早い第3時点で、第2キャリア(例えばキャリアCv)が当該一方(例えば電圧指令値Vv*)と交差すればよい。
またキャリアが当該一方と交差する際のキャリアの変化率は、第2キャリアが当該一方と交差する際の第2キャリアの変化率と異なると把握できる。これによれば、キャリアCのボトムと第2キャリアのボトムを一致させることができる。よって各所定期間Tにおけるキャリアの不連続を回避することができ、ひいてはキャリアの周期の始期および終期における第2キャリアの値を算出する必要がない。
図9の例示では、キャリアCと電圧指令値Vu*,Vv*との比較によって決まる期間t41’が所定値tref以下である。このとき、キャリア生成部32は電圧指令値Vu*,Vv*の一方と比較されるキャリアを生成してもよい。図9の例示では、キャリア生成部32は最小相電圧指令値Vu*と比較されるキャリアCuを生成している。キャリアCuは例えば三角波であって、キャリアCのピークを時間軸において例えば負の方向に平行移動させた位置にピークを有している。これに伴って、スイッチング素子S1が導通する期間は時間軸において負の方向に平行移動する。よってスイッチング素子S1が導通する時点とスイッチング素子S2が導通する時点との間の期間t41が増大し、以って電流検出の精度を高めることができる。しかも、期間t61が変化しないため、期間t61が前記所定値tref以上ある場合は、期間t41、t61において2相の電流検出が可能となる。これは、期間Tの前半のみの直流電流idcを用いて線電流iu,iv,iwを検出する場合に有利である。このように前半のみで検出することは、期間Tの前半の直流電流idcと、後半の直流電流idcを用いて検出する場合に比べて、検出精度の観点で望ましいからである。また最小相の電圧指令値Vu*と比較されるキャリアCuのみを新たに生成すればよいので、制御が簡易である。
生成したキャリアCuのピークの位置については、図6を参照して説明した位置と同様の論理によって容易に理解されるので、繰り返しの説明を避ける。
なお図7を参照した説明と同様に、キャリアCuのピークは図9の例示よりもさらに負の方向に位置していても良い。またキャリアCuは必ずしも三角波でなくてもよく、要するにキャリアCが所定の変化率で電圧指令値Vu*を超える時点ta’よりも早い時点taにおいて、キャリアCuが当該変化率とは異なる変化率で電圧指令値Vu*を超えればよい。一方、期間t42を増大させるのであれば、キャリアCが所定の変化率で電圧指令値Vu*を下回る時点tf’よりも遅い時点で、キャリアCuが当該変化率とは異なる変化率で電圧指令値Vu*を下回ればよい。これは、例えばキャリアCのピークを時間軸において正の方向に平行移動させた位置にピークを有する三角波のキャリアCuを生成することで実現される。
また図8を参照した説明と同様に、電圧指令値Vu*と比較するキャリアCuを生成するのではなく、中間相の電圧指令値Vv*と比較するキャリアCvを生成してもよい。そして、期間t42を増大させるのであれば、キャリアCが所定の変化率で電圧指令値Vv*を下回る時点te’よりも早い時点teにおいて、キャリアCvが当該変化率とは異なる変化率で電圧指令値Vv*を下回ればよい(図8も参照)。また期間t41を増大させるのであれば、キャリアCが所定の変化率で電圧指令値Vv*を超える時点tb’よりも遅い時点において、キャリアCvが当該変化率とは異なる変化率で電圧指令値Vv*を超えればよい。これによって期間t41が増大し、以って電流検出の精度を高めることができる。
しかも中間相電圧指令値たる電圧指令値Vv*と比較される三角波のキャリアCvを生成することで、既に述べたように、電圧ベクトルV4,V6が採用される期間(例えば期間t61,t42)における直流電流の検出精度を向上することができる。また中間相の電圧指令値Vv*と比較されるキャリアCvのみを新たに生成すればよいので、制御が簡易である。
次に、図4,5の例示と異なって、電圧指令値Vu*,Vv*,Vw*が比較的に互いに近い値を有するものの互いに異なっている場合について説明する。図10の例示では、期間t41(或いは期間t42)および期間t61(或いは期間t62)の両方が所定値tref以下である。なお、期間t41,t42は一対の電圧指令値Vu*,Vv*とキャリアCとの比較によって決定され、期間t61,t62は当該一対の電圧指令値Vu*,Vv*以外の電圧指令値Vw*および中間相の電圧指令値Vv*とキャリアCとの比較によって決定される。
このとき、電圧指令値Vu*,Vv*,Vw*のいずれか2つとそれぞれ比較される2つのキャリアを新たに生成する。図11の例示では、キャリアCu,Cwが生成される。キャリアCuは、キャリアCが所定の変化率で電圧指令値Vu*を超える時点ta’よりも前の時点taにおいて、当該変化率とは異なる変化率で電圧指令値Vu*を超える。例えばキャリアCuは三角波であって、キャリアCのピークを時間軸において負の方向に平行移動した位置にピークを有する。キャリアCwは、キャリアCが所定の変化率で電圧指令値Vw*を超える時点tc’よりも後の時点tcにおいて、当該変化率とは異なる変化率で電圧指令値Vw*を超える。例えばキャリアCwは三角波であって、キャリアCのピークを時間軸において正の方向に平行移動した位置にピークを有する。これによって、期間t41,t61を増大させることができ、これらの期間における電流検出の精度を向上できる。
なお、期間t42を増大させるべく、キャリアCuは、キャリアCが所定の変化率で電圧指令値Vu*を下回る時点よりも後の時点において、当該変化率とは異なる変化率で電圧指令値Vu*を下回っても良い。これは、例えばキャリアCのピークを時間軸において正の方向に平行移動させた位置にピークを有する三角波のキャリアCuを生成することで実現できる。また期間t62を増大させるべく、キャリアCwは、キャリアCが所定の変化率で電圧指令値Vw*を下回る時点よりも前の時点において当該変化率とは異なる変化率で電圧指令値Vw*を下回っても良い。これは、例えばキャリアCのピークを時間軸において負の方向に平行移動させた位置にピークを有する三角波のキャリアCwを生成することで実現される。
キャリアCu,Cwのピークは、図7と同様に、図11に例示するピークよりキャリアCのピークとは反対側にさらに平行移動してもよい。これによって、新たな電圧ベクトルが採用される期間を登場させることができ、かかる期間において直流電流idcを線電流として検出することができる。
図12の例示では、中間相指令値たる電圧指令値Vv*と比較される三角波のキャリアCvのみを新たに生成している。キャリアCvはキャリアCのピークを時間軸において正の方向に平行移動させた位置にピークを有している。このとき、図8を参照した説明と同様に期間t41,t62を増大させることができる。したがって、生成するキャリアの数を少なくしつつも、2つの電圧ベクトルV4,V6が採用される期間を増大させることができる。