以下、図面を参照して、本発明に係る電力変換装置の実施の形態について説明する。なお、各図において同一要素については同一の符号を記し、重複する説明は省略する。
図1は、実施例1にかかる車両システムを説明する図である。本実施例にかかる車両システムは、バッテリ10と、平滑キャパシタ20と、インバータ40と、U相電流センサ50と、V相電流センサ55と、モータ60と、角度センサ70と、モータ60の出力軸80と、トランスミッション90と、クランクシャフト100と、エンジン110と、プロペラシャフト120と、ディファレンシャルギア130と、ドライブシャフト140と、駆動輪150と、インバータ制御装置160を有する。
バッテリ10は、平滑キャパシタ20とインバータ40の直流側に並列に接続され、インバータ40に直流電圧を供給する。インバータ40のU相は、U相電流センサ50を介してモータ60のU相巻線61に接続される。インバータ40のV相は、V相電流センサ55を介してモータ60のV相巻線62に接続される。インバータ40のW相は、モータ60のW相巻線63に接続される。ここでは、U相とV相に電流センサを取り付けた構成で説明しているが、U相とW相、もしくはV相とW相に電流センサを取り付けた2相電流検出システムでも良い。
また、インバータ40は、インバータ制御装置160で生成されたPWM信号Sup、Sun、Svp、Svn、Swp、Swnに基づいて、各相上下アームのスイッチング素子41〜46をオンもしくはオフし、バッテリ10から供給された直流電圧を可変電圧、可変周波数の3相交流電圧に変換する。そして、インバータ40は、変換した3相交流電圧をモータ60の固定子に巻かれた3相巻線61〜63に印加し、モータ60の固定子に巻かれた3相巻線61〜63に3相交流電流を発生させる。モータ60は、固定子に巻かれた3相巻線61〜63に流れる3相交流電流によって回転磁界を生成し、生成した回転磁界により回転子64を加速もしくは減速させ、モータ60のトルクを生成する。
本実施例にかかるインバータ40の主回路は、スイッチング素子41〜46を有する。スイッチング素子41〜46は、絶縁ゲートバイポーラトランジスタ(IGBT)や金属酸化膜型電界効果トランジスタ(MOSFET)などと、ダイオードを組み合わせて構成されている。以下では、スイッチング素子41〜46に、IGBTとダイオードを適用したインバータ40の主回路を想定して説明する。なお、本実施例に係るインバータ40の回路構成は、既知のものであるため、ここでは詳細な説明を省略する。インバータ40のU相上アームのスイッチング素子41は、インバータ制御装置160で生成されたPWM信号Supに基づいて、オンもしくはオフする。以降同様に、スイッチング素子42、43、44、45、46は、それぞれ、PWM信号Sun、Svp、Svn、Swp、Swnに基づいて、オンもしくはオフする。
本実施例にかかるインバータ制御装置160は、検出電流変換部170、3相/dq軸変換部180、電圧指令演算部190、dq軸/3相変換部200、PWM信号生成部210、高調波抽出部220、ピーク検出部225、ゲイン調整状態決定部230、ゲイン調整方向探索部240、ゲイン調整部250を有する。
インバータ制御装置160は、U相電流センサ50で検出したU相電流iu1と、V相電流センサ55で検出したV相電流iv1と、後述するゲイン調整部250で調整されたU相検出ゲインGcuと、V相検出ゲインGcvと、を検出電流変換部170に入力する。インバータ制御装置160は、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvのばらつきを補正し、新たに、U相電流iu2とV相電流iv2とW相電流iw2を算出する。インバータ制御装置160は、検出電流変換部170で算出したUVW相電流iu2、iv2、iw2と、角度センサ70で検出したモータ60の回転子64の電気角θeを3相/dq軸変換部180に入力し、d軸電流idとq軸電流iqを算出する。
インバータ制御装置160は、3相/dq軸変換部180で算出したq軸電流iqと、角度センサ70で検出したモータ60の回転子64の電気角θeと、を高調波抽出部220に入力し、q軸電流iq(もしくは、d軸電流id)に含まれているモータ60の回転子64の電気角周波数feの2倍の周波数の高調波電流を算出する。インバータ制御装置160は、高調波抽出部220で算出したq軸高調波電流iqh(もしくは、d軸高調波電流idh)をピーク検出部225に入力し、q軸高調波電流(もしくはd軸高調波電流)の正のピーク値Pkpと負のピーク値Pknを検出するとともに、前記正負のピーク値Pkp、Pknを検出した時だけオンするピーク検出フラグFlpkを生成する。インバータ制御装置160は、ピーク検出部225で生成したq軸高調波電流(もしくはd軸高調波電流)の正負のピーク値Pkp、Pknとピーク検出フラグFlpkをゲイン調整状態決定部230に入力し、U相検出ゲインGcuとV相検出ゲインGcvの調整状態(調整方向の探索、調整開始、調整継続、調整終了、リセット)を決定する調整状態決定フラグFlstを生成する。また、インバータ制御装置160は、調整状態決定フラグFlstが探索を示している状態で、ピーク検出フラグFlpkがオンした時にだけカウントダウンする第1のカウント値Cnt1を生成する。
インバータ制御装置160は、ピーク検出部225で生成したq軸高調波電流(もしくはd軸高調波電流)の正負のピーク値Pkp、Pknと、ピーク検出フラグFlpkと、ゲイン調整状態決定部230で生成した調整状態決定フラグFlstと、第1のカウント値Cnt1と、をゲイン調整方向探索部240に入力し、U相検出ゲインGcuとV相検出ゲインGcvを調整する方向(正方向に増大させるのか、もしくは、負方向に増大させるのか)を決定する調整方向決定フラグFlcmpを生成する。さらに、インバータ制御装置160は、ピーク検出部225で生成したピーク検出フラグFlpkと、ゲイン調整状態決定部230で生成した調整状態決定フラグFlstと、ゲイン調整方向探索部240で生成した調整方向決定フラグFlcmpと、をゲイン調整部250に入力し、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvのばらつきをバランスさせるように、U相検出ゲインGcuとV相検出ゲインGcvを調整する。
そして、インバータ制御装置160は、3相/dq軸変換部180で算出したd軸電流id及びq軸電流iqと、d軸電流指令id*及びq軸電流指令iq*と、を電圧指令演算部190に入力し、d軸電圧指令vd*とq軸電圧指令vq*を生成する。インバータ制御装置160は、電圧指令演算部190で生成したd軸電圧指令vd*及びq軸電圧指令vq*と、角度センサ70で検出したモータ60の回転子の電気角θeと、をdq軸/3相変換部200に入力し、U相電圧指令vu*とV相電圧指令vv*とW相電圧指令vw*とを生成する。インバータ制御装置160は、dq軸/3相変換部200で算出したU相電圧指令vu*とV相電圧指令vv*とW相電圧指令vw*をPWM信号生成部210に入力し、インバータ40の各相上下アームのスイッチング素子41〜46を構成するIGBTのオンとオフを制御するためのPWM信号Sup、Sun、Svp、Svn、Swp、Swnを生成する。
以下では、q軸電流iqに含まれているモータ60の回転子64の電気角周波数feの2倍の周波数の高調波電流iqhを利用した場合について説明するが、d軸電流idに含まれているモータ60の回転子64の電気角周波数feの2倍の周波数の高調波電流idhを利用しても問題ない。
(検出電流変換部170の処理内容の説明)
図2は、検出電流変換部170の処理手順を説明する図である。まず、検出電流変換部170は、ステップa−1とa−2において、U相電流センサ50で検出したU相電流iu1と、V相電流センサ55で検出したV相電流iv1を取得する。次に、検出電流変換部170は、ステップa−3とa−4において、後述するゲイン調整部250で調整されたU相検出ゲインGcuとV相検出ゲインGcvを取得する。次に、検出電流変換部170は、ステップa−5において、ステップa−1で取得したU相電流iu1とステップa−3で取得したU相検出ゲインGcuを(1)式に代入し、U相電流iu2を算出する。
ここで、ステップa−1で取得したU相電流iu1は、モータ60のU相巻線61に流れている真のU相電流iutとU相電流センサ50のゲインGsuを用いて(2)式で表される。
したがって、U相電流iu2は、(2)式を(1)式に代入することにより、(3)式で表すことができる。
次に、検出電流変換部170は、ステップa−6において、ステップa−2で取得したV相電流iv1とステップa−4で取得したV相検出ゲインGcvを(4)式に代入し、V相電流iv2を算出する。
ここで、ステップa−2で取得したV相電流iv1は、モータ60のV相巻線62に流れている真のV相電流ivtとV相電流センサ55のゲインGsvを用いて(5)式で定義している。
したがって、V相電流iv2は、(5)式を(4)式に代入することにより、(6)式で表すことができる。
次に、検出電流変換部170は、ステップa−7において、ステップa−5で算出したU相電流iu2とステップa−6で算出したV相電流iv2を(7)式に代入し、W相電流iw2を算出する。
詳細は後述するが、ゲイン調整部250は、前記(3)式中に示したU相電流センサ50のゲインGsuとU相検出ゲインGcuの乗算値と、前記(6)式中に示したV相電流センサ55のゲインGsvとV相検出ゲインGcvの乗算値とが等しくなるように、U相検出ゲインGcuとV相検出ゲインGcvの値を調整する。このように、U相検出ゲインGcuとV相検出ゲインGcvを調整することにより、UV相の電流センサ50、55のゲインのばらつきを補正することができる。
(3相/dq軸変換部180の処理内容の説明)
図3は、3相/dq軸変換部180の処理手順を説明する図である。まず、3相/dq軸変換部180は、ステップb−1〜b−3において、検出電流変換部170で算出したU相電流iu2とV相電流iv2とW相電流iw2を取得する。次に、3相/dq軸変換部180は、ステップb−4において、角度センサ70で検出したモータ60の回転子64の電気角θeを取得する。
そして、3相/dq軸変換部180は、ステップb−5において、ステップb―1〜b―4で取得したU相電流iu2とV相電流iv2とW相電流iw2とモータ60の回転子64の電気角θeを(8)式に代入し、d軸電流idとq軸電流iqを算出する。
(高調波抽出部220の処理内容の説明)
図4は、高調波抽出部220の処理手順を説明する図である。まず、高調波抽出部220は、ステップc−1において、3相/dq軸変換部180で算出したq軸電流iqを取得する。次に、高調波抽出部220は、ステップc−2において、角度センサ70で検出したモータ60の回転子64の電気角θeを取得する。次に、高調波抽出部220は、ステップc−3において、ステップc−2で取得した最新の電気角θeと、後述するステップc−8で算出された過去の電気角θeoldを(9)式に代入し、最新の電気角θeと過去の電気角θeoldとの電気角の差分値Δθeを算出する。
(9)式で算出した電気角の差分値Δθeが負の値である場合には、高調波抽出部220は、ステップc−3において、最新の電気角θeと過去の電気角θeoldを(10)式に代入し、最新の電気角の差分値Δθeを再計算する。
次に、高調波抽出部220は、ステップc−4において、ステップc−3で算出した最新の電気角の差分値Δθeが、所定値θx以上であるか否かを判定する。ここで、所定値θxは、(11)式によって予め定められている。
ステップc−4において、最新の電気角の差分値Δθeが、所定値θx以上である場合には、高調波抽出部220は、ステップc−5において、マイコンのメモリに記憶させておいたq軸電流補間値iqinter(0)〜iqinter(N−1)のデータを移動させる。具体的には、時系列的に過去2番目に古いデータであるq軸電流補間値iqinter(N−1)を、過去最も古いデータであるq軸電流補間値iqinter(N)に上書きする。次いで、過去3番目に古いデータであるq軸電流補間値iqinter(N−2)を、過去2番目に古いデータであるq軸電流補間値iqinter(N−1)に上書きする。このように、q軸電流補間値iqinter(0)〜iqinter(N−1)のデータを、時系列的に古い順番に移動させ、最新のデータであるq軸電流補間値iqinter(0)を、2番目に新しいデータであるq軸電流補間値iqinter(1)に上書きした時点で終了する。なお、Nは(12)式に示す値である。
次に、高調波抽出部220は、ステップc−6において、ステップc−1で取得した最新のq軸電流iqと、ステップc−3で算出された最新の電気角の差分値Δθeと、後述するステップc−9で算出された1演算周期前の電気角の差分値Δθeoldと、後述するステップc−10で算出された1演算周期前のq軸電流iqoldと、所定値θxを(13)式に代入し、後述するステップc−8で算出された過去の電気角θeoldから所定値θxだけ変化した点のq軸電流の補間値iqinter(0)を算出する。
次に、高調波抽出部220は、ステップc−7において、モータ60の回転子64の電気角θeの1周期分のq軸電流補間値iqinter(0)〜iqinter(N)を(14)式に代入し、モータ60の回転子64の電気角周波数feの2倍の周波数のq軸高調波電流iqhを算出する。
そして、高調波抽出部220は、ステップc−8において、ステップc−2で取得した最新の電気角θeとステップc−3で算出した最新の差分値Δθeと所定値θxを(15)式に代入し、過去の電気角θeoldの値を更新する。
ここで、(15)式によって算出された過去の電気角θeoldが負の値である場合には、高調波抽出部220は、ステップc−8において、ステップc−2で取得した最新の電気角θeとステップc−3で算出した最新の差分値Δθeと所定値θxを(16)式に代入し、過去の電気角θeoldを再計算する。
次に、高調波抽出部220は、ステップc−9において、ステップc−3で算出した最新の電気角の差分値Δθeを1演算周期前の電気角の差分値Δθeoldとして設定する。次に、高調波抽出部220は、ステップc−10において、ステップc−1で取得したq軸電流iqを1演算周期前のq軸電流iqoldとして設定する。
また、ステップc−4において、最新の電気角の差分値Δθeが所定値θx以上ではない場合には、高調波抽出部220は、前述したステップc−9とc−10の処理を実施する。
図5は、U相電流センサ50のゲインGsuと、V相電流センサ55のゲインGsvと、3相/dq軸変換部180で算出されたq軸電流iqと、モータ60の回転子64の電気角θeと上述した図4の処理によって抽出されたq軸高調波電流iqhと、のそれぞれの関係を説明する図である。
まず、U相電流センサのゲインGsuとV相電流センサのゲインGsvの値が異なると、3相/dq軸変換部180で算出したq軸電流iqには、モータ60の回転子64の電気角周波数feの2倍の周波数の脈動が発生していることがわかる。また、q軸電流高調波iqhは、電気角θeが過去の電気角θeoldから所定値θxだけ変化した時に更新されていることが確認できる。また、図5において、時刻t1から時刻t2までの期間Aのモータ60の回転子64の電気角周波数fe1は(17)式で設定されている。
したがって、期間Aのモータ60の回転子64の電気角θe1は(18)式で表せる。
また、時刻t2から時刻t3までの期間Bのモータ60の回転子64の電気角周波数fe2は(19)式で設定されている。
したがって、期間Bのモータ60の回転子64の電気角θe2は(20)式で表せる。
また、時刻t3から時刻t4までの期間Cのモータ60の回転子64の電気角周波数fe3は(21)式で設定されている。
したがって、期間Cのモータ60の回転子64の電気角θe3は(22)式で表せる。
また、期間A〜期間Cのモータ60の回転子64の電気角周波数fe1〜fe3の大小関係は、(23)式のように設定されている。
(17)〜(23)式により、モータ60の回転子64の電気角θeが、過去の電気角θeoldから所定値θxだけ変化する際に要する時間は、期間Bが最も短く、それに次いで期間Aが短く、期間Cは最も長いことがわかる。したがって、q軸高調波電流iqhが更新される時間の間隔は、期間Bが最も短く、次に期間Aが短く、期間Cは最も長くなっている。
このように、電気角θeの変化量に基づいて、q軸高調波電流iqhの更新タイミングを決定することにより、モータ60の回転子64の電気角周波数feが変動した場合においても、高精度にq軸電流高調波電流iqhを抽出することができる。
(ピーク検出部225の処理内容の説明)
図6は、実施例1にかかるピーク検出部225の処理手順を説明する図である。まず、ピーク検出部225は、ステップd−1において、高調波抽出器220で抽出したq軸高調波電流iqhを取得する。次に、ピーク検出部225は、ステップd−2において、ピーク検出フラグFlpkを0(オフ)に設定する。
次に、ピーク検出部225は、ステップd−3において、ステップd−1で取得した最新のq軸高調波電流iqhが、後述するステップd−8で算出した第1のq軸高調波電流の過去値iqhold1よりも小さいか否かを判定する。ステップd−3において、最新のq軸高調波電流iqhが、第1のq軸高調波電流の過去値iqhold1よりも小さい場合には、ピーク検出部225は、ステップd−4において、第1のq軸高調波電流の過去値iqhold1が、後述するステップd−7で算出した第2のq軸高調波電流の過去値iqhold2よりも大きいか否かを判定する。ステップd−4において、第1のq軸高調波電流の過去値iqhold1が、第2のq軸高調波電流の過去値iqhold2よりも大きい場合には、ピーク検出部225は、ステップd−5において、後述するステップd−8で算出した第1のq軸高調波電流の過去値iqhold1を(24)式に代入し、q軸高調波電流の正のピーク値Pkpを算出する。
次に、ピーク検出部225は、ステップd−6において、ピーク検出フラグFlpkを1(オン)に設定する。次に、ピーク検出部225は、ステップd−7において、第1のq軸高調波電流の過去値iqhold1を第2のq軸高調波電流の過去値iqhold2として設定する。次に、ピーク検出部225は、ステップd−8において、最新のq軸高調波電流iqhを第1のq軸高調波電流の過去値iqhold1として設定する。
一方、ステップd−4において、第1のq軸高調波電流の過去値iqhold1が、第2のq軸高調波電流の過去値iqhold2よりも大きくない場合には、ピーク検出部225は、前述したステップd−7とd−8の処理を実施する。
また、ステップd−3において、最新のq軸高調波電流iqhが、第1のq軸高調波電流の過去値iqhold1よりも小さくない場合には、ピーク検出部225は、ステップd−9において、最新のq軸高調波電流iqhが、第1のq軸高調波電流の過去値iqhold1よりも大きいか否かを判定する。ステップd−9において、最新のq軸高調波電流iqhが、第1のq軸高調波電流の過去値iqhold1よりも大きい場合には、ピーク検出部225は、ステップd−10において、第1のq軸高調波電流の過去値iqhold1が、第2のq軸高調波電流の過去値iqhold2よりも小さいか否かを判定する。ステップd−10において、第1のq軸高調波電流の過去値iqhold1が、第2のq軸高調波電流の過去値iqhold2よりも小さい場合には、ピーク検出部225は、ステップd−11において、ステップd−8で算出された第1のq軸高調波電流の過去値iqhold1を(25)式に代入し、q軸高調波電流の負のピーク値Pkpを算出する。
そして、ピーク検出部225は、前述したステップd−6〜d−8の処理を実施する。一方、ステップd−10において、第1のq軸高調波電流の過去値iqhold1が、第2のq軸高調波電流の過去値iqhold2よりも小さくない場合には、ピーク検出部225は、前述したステップd−7とd−8の処理を実施する。
また、ステップd−9において、最新のq軸高調波電流iqhが、第1のq軸高調波電流の過去値iqhold1よりも大きくない場合には、ピーク検出部225は、何も処理を実施することなく、次回の演算タイミングでステップd−1の処理から再スタートする。
このように、q軸高調波電流の正負のピーク値Pkp、Pknを算出することにより、第1のq軸高調波電流の過去値iqhold1が、最新のq軸高調波電流iqhと第2のq軸高調波電流の過去値iqhold2よりも大きくなった時に、第1のq軸高調波電流の過去値iqhold1が、q軸高調波電流の正のピーク値Pkpとなる。さらに、第1のq軸高調波電流の過去値iqhold1が、最新のq軸高調波電流iqhと第2のq軸高調波電流の過去値iqhold2よりも小さくなった時に、第1のq軸高調波電流の過去値iqhold1が、q軸高調波電流の負のピーク値Pknとなる。また、ピーク検出フラグFlpkは、q軸高調波電流の正負のピーク値Pkp、Pknが算出された時にだけオンする信号となる。
(ゲイン調整状態決定部230の処理内容の説明)
図7は、実施例1にかかるゲイン調整状態決定部230の処理手順を説明する図である。まず、ゲイン調整状態決定部230は、ステップe−1とe−2において、ピーク検出部225で生成したq軸高調波電流の正負のピーク値Pkp、Pknを取得する。次に、ゲイン調整状態決定部230は、ステップe−3において、ピーク検出部225で生成したピーク検出フラグFlpkを取得する。
次に、ゲイン調整状態決定部230は、ステップe−4において、ステップe−3で取得したピーク検出フラグFlpkが、1(オン)であるか否かを判定する。ステップe−4において、ピーク検出フラグFlpkが、オンである場合には、ゲイン調整状態決定部230は、ステップe−5において、後述するステップe−8、e−14、e−16、e−20もしくはe−21で設定した調整状態決定フラグFlstが、0(終了)を示しているか否かを判定する。ステップe−5において、調整状態決定フラグFlstが、0(終了)を示している場合には、ゲイン調整状態決定部230は、ステップe−6において、ステップe−1で取得したq軸高調波電流の正のピーク値Pkpが、第1の正の閾値Thp1よりも大きいか否かを判定する。ステップe−6において、q軸高調波電流の正のピーク値Pkpが、第1の所定の正の閾値Thp1よりも大きい場合には、ゲイン調整状態決定部230は、ステップe−7において、第1のカウント値Cnt1を所定値X1に設定する。ここで、所定値X1は、2の倍数の正の整数に設定されている。次に、ゲイン調整状態決定部230は、ステップe−8において、調整状態決定フラグFlstを1(探索)に設定する。
一方、ステップe−6において、q軸高調波電流の正のピーク値Pkpが、第1の正の閾値Thp1よりも大きくない場合には、ゲイン調整状態決定部230は、ステップe−9において、ステップe−2で取得したq軸高調波電流の負のピーク値Pknが、第1の負の閾値Thn1よりも小さいか否かを判定する。ステップe−9において、q軸高調波電流の負のピーク値Pknが、第1の負の閾値Thn1よりも小さい場合には、ゲイン調整方向決定部230は、前述したステップe−7とe−8の処理を実施する。一方、ステップe−9において、q軸高調波電流の負のピーク値Pknが、第1の負の閾値Thn1よりも小さくない場合には、ゲイン調整状態決定部230は、何も処理を実施することなく、次回の演算タイミングでステップe−1の処理から再スタートする。
また、ステップe−5において、調整状態決定フラグFlstが、0(終了)を示していない場合には、ゲイン調整状態決定部230は、ステップe−10において、調整状態決定フラグFlstが、4(リセット)を示しているか否かを判定する。ステップe−10において、調整状態決定フラグFlstが、4(リセット)を示している場合には、ゲイン調整状態決定部230は、前述したステップe−6の処理に移行する。一方、ステップe−10において、調整状態決定フラグFlstが、4(リセット)を示していない場合には、ゲイン調整状態決定部230は、ステップe−11において、調整状態決定フラグFlstが、1(探索)を示しているか否かを判定する。
ステップe−11において、調整状態決定フラグFlstが、1(探索)を示している場合には、ゲイン調整状態決定部230は、ステップe−12において、第1のカウント値Cnt1をカウントダウンする。次に、ゲイン調整状態決定部230は、ステップe−13において、第1のカウント値Cnt1が、0であるか否かを判定する。ステップe−13において、第1のカウント値Cnt1が、0である場合には、ゲイン調整状態決定部230は、ステップe−14において、調整状態決定フラグFlstを2(調整開始)に設定する。すなわち、ゲイン調整状態決定部230は、第1のカウント値Cnt1が、所定値X1から0に減少するまで、調整状態決定フラグを1(探索)の状態に維持する。一方、ステップe−13において、第1のカウント値Cnt1が、0ではない場合には、ゲイン調整状態決定部230は、何も処理を実施することなく、次回の演算タイミングでステップe−1の処理から再スタートする。
また、ステップe−11において、調整状態決定フラグFlstが、1(探索)を示していない場合には、ゲイン調整状態決定部230は、ステップe−15において、q軸高調波電流の正のピーク値Pkpが、第2の正の閾値Thp2よりも大きいか否かを判定する。q軸高調波電流の正のピーク値Pkpが、第2の正の閾値Thp2よりも大きい場合には、ゲイン調整状態決定部230は、ステップe−16において、調整状態決定フラグFlstを4(リセット)に設定する。また、ステップe−15において、q軸高調波電流の正のピーク値Pkpが、第2の正の閾値Thp2よりも大きくない場合には、ゲイン調整状態決定部230は、ステップe−17において、q軸高調波電流の負のピーク値Pknが、第2の負の閾値Thn2よりも小さいか否かを判定する。ステップe−17において、q軸高調波電流の負のピーク値Pknが、第2の所定の負の閾値Thn2よりも小さい場合には、ゲイン調整状態決定部230は、前述したステップe−16の処理を実施する。一方、ステップe−17において、q軸高調波電流の負のピーク値Pknが、第2の負の閾値Thn2よりも小さくない場合には、ゲイン調整状態決定部230は、ステップe−18において、q軸高調波電流の正のピーク値Pkpが、第3の正の閾値Thp3よりも小さいか否かを判定する。
ステップe−18において、q軸高調波電流の正のピーク値Pkpが、第3の正の閾値Thp3よりも小さい場合には、ゲイン調整状態決定部230は、ステップe−19において、q軸高調波電流の負のピーク値Pknが、第3の負の閾値Thn3よりも大きいか否かを判定する。ステップe−19において、q軸高調波電流の負のピーク値Pknが、第3の負の閾値Thn3よりも大きい場合には、ゲイン調整状態決定部230は、ステップe−20において、調整状態決定フラグFlstを0(終了)に設定する。一方、ステップe−19において、q軸高調波電流の負のピーク値Pknが、第3の負の閾値Thn3よりも大きくない場合には、ゲイン調整状態決定部230は、ステップe−21において、調整状態決定フラグFlstを3(継続)に設定する。また、ステップe−18において、q軸高調波電流の正のピーク値Pkpが、第3の正の閾値Thp3よりも小さくない場合には、ゲイン調整状態決定部230は、前述したステップe−21の処理を実施する。また、ステップe−4において、ピーク検出フラグFlpkが、1(オン)ではない場合には、ゲイン調整状態決定部230は、何も処理を実施することなく、次回の演算タイミングでステップe−1の処理から再スタートする。ここで、前述した第1〜第3の正の閾値の大小関係は、(26)式のように設定されている。
また、前述した第1〜第3の負の閾値の大小関係は、(27)式のように設定されている。
このように調整状態決定フラグFlstを生成することにより、後述するゲイン調整部250において、U相検出ゲインGcuとV相検出ゲインGcvの調整が失敗した場合においても、上述したステップe−15とステップe−17によって調整の失敗を検知し、ステップe−16の処理によって、U相検出ゲインGcuとV相検出ゲインGcvを初期値にリセットするための信号を生成することができる。これにより、ゲイン調整部250において、U相検出ゲインGcuとV相検出ゲインGcvの調整をやり直すことができる。また、U相検出ゲインGcuとV相検出ゲインGcvの調整が成功している場合には、調整状態決定フラグFlstは、1(検出ゲインの調整方向の探索)、2(検出ゲインの調整開始)、3(検出ゲインの調整継続)、0(検出ゲインの調整終了)の順で規則的に変化する。
(ゲイン調整方向探索部240の処理内容の説明)
図8は、ゲイン調整方向探索部240の処理手順を説明する図である。まず、ゲイン調整方向探索部240は、ステップf−1とf−2において、ピーク検出部225で算出したq軸高調波電流の正負のピーク値Pkp、Pknをそれぞれ取得する。次に、ゲイン調整方向探索部240は、ステップf−3において、ピーク検出部225で生成したピーク検出フラグFlpkを取得する。次に、ゲイン調整方向探索部240は、ステップf−4とf−5において、ゲイン調整状態決定部230で生成した調整状態決定フラグFlstと第1のカウント値Cnt1を取得する。
次に、ゲイン調整方向探索部240は、ステップf−6において、ステップf−3で取得したピーク検出フラグFlpkが、1(オン)であるか否かを判定する。ステップf−6において、ピーク検出フラグFlpkが、1(オン)である場合には、ゲイン調整方向探索部240は、ステップf−7において、ステップf−4で取得した調整状態決定フラグFlstが、1(探索)を示しているか否かを判定する。ステップf−7において、調整状態決定フラグFlstが、1(探索)を示している場合には、ゲイン調整方向探索部240は、ステップf−8において、ステップf−5で取得した第1のカウント値Cnt1が、所定値X1に等しいか否かを判定する。
ステップf−8において、第1のカウント値Cnt1が、所定値X1に等しい場合には、ゲイン調整方向探索部240は、ステップf−9において、調整方向決定フラグFlcmpを0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に設定する。次に、ゲイン調整方向探索部240は、ステップf−10〜f−13において、q軸高調波電流の正のピーク値を積算した第1の正のピーク値の積算値Pkps1と、q軸高調波電流の正のピーク値を積算した第2の正のピーク値の積算値Pkps2と、q軸高調波電流の負のピーク値を積算した第1の負のピーク値の積算値Pkns1と、q軸高調波電流の負のピーク値を積算した第2の負のピーク値の積算値Pkns2を0にリセットする。
一方、ステップf−8において、第1のカウント値Cnt1が、所定値X1ではない場合には、ゲイン調整方向探索部240は、ステップf−14において、第1のカウント値Cnt1が、(X1/2)に等しいか否かを判定する。
ステップf−14において、第1のカウント値Cnt1が、(X1/2)に等しい場合には、ゲイン調整方向探索部240は、ステップf−15において、前回演算した第1の正のピーク値の積算値Pkps1に、ステップf−1で取得したq軸高調波電流の正のピーク値Pkpを加算し、最新の第1の正のピーク値の積算値Pkps1を算出する。次に、ゲイン調整方向探索部240は、ステップf−16において、前回演算した第1の負のピーク値の積算値Pkns1に、ステップf−2で取得したq軸高調波電流の負のピーク値Pknを加算し、最新の第1の負のピーク値の積算値Pkns1を算出する。次に、ゲイン調整方向探索部240は、ステップf−17において、ステップf−15で算出した最新の第1の正のピーク値の積算値Pkps1を(X1/2)で除算し、第1の正のピーク値の平均値Pkpa1を算出する。次に、ゲイン調整方向探索部240は、ステップf−18において、ステップf−16で算出した最新の第1の負のピーク値の積算値Pkns1を(X1/2)で除算し、第1の負のピーク値の平均値Pkna1を算出する。次に、ゲイン調整方向探索部240は、ステップf−19において、ステップf−17で算出した第1の正のピーク値の平均値Pkpa1から、ステップf−18で算出した第1の負のピーク値の平均値Pkna1を減算し、第1のピークピーク値の平均値Pkda1を算出する。次に、ゲイン調整方向探索部240は、ステップf−20において、調整方向決定フラグFlcmpを1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)に設定する。
また、ステップf−14において、第1のカウント値Cnt1が、(X1/2)に等しくない場合には、ゲイン調整方向探索部240は、ステップf−21において、第1のカウント値Cnt1が、(X1/2)よりも大きいか否かを判定する。
ステップf−21において、第1のカウント値Cnt1が、(X1/2)よりも大きい場合には、ゲイン調整方向探索部240は、ステップf−22において、前回算出した第1の正のピーク値の積算値Pkps1に、ステップf−1で取得したq軸高調波電流の正のピーク値Pkpを加算し、最新の第1の正のピーク値の積算値Pkps1を算出する。次に、ゲイン調整方向探索部240は、ステップf−23において、前回算出した第1の負のピーク値の積算値Pkns1に、ステップf−2で取得したq軸高調波電流の負のピーク値Pknを加算し、最新の第1の負のピーク値の積算値Pkns1を算出する。
一方、ステップf−21において、第1のカウント値Cnt1が、(X1/2)よりも大きくない場合には、ゲイン調整方向探索部240は、ステップf−24において、前回算出した第2の正のピーク値の積算値Pkps2に、ステップf−1で取得したq軸高調波電流の正のピーク値Pkpを加算し、最新の第2の正のピーク値の積算値Pkps2を算出する。次に、ゲイン調整方向探索部240は、ステップf−25において、前回算出した第2の負のピーク値の積算値Pkns2に、ステップf−2で取得したq軸高調波電流の負のピーク値Pknを加算し、最新の第2の負のピーク値の積算値Pkns2を算出する。
また、ステップf−7において、調整状態決定フラグFlstが、1(探索)を示していない場合には、ゲイン調整方向探索部240は、ステップf−26−1において、後述する図9の処理に移行する。また、ステップf−6において、ピーク検出フラグFlpkが、1(オン)ではない場合には、ゲイン調整方向探索部240は、何も処理を実施することなく、次回の演算タイミングでステップf−1の処理から再スタートする。
図9は、図8のステップf−7において、調整状態決定フラグFlstが、1(探索)を示していない時のゲイン調整方向探索部240の処理手順を説明する図である。まず、ゲイン調整方向探索部240は、ステップf−26−2において、調整状態決定フラグFlstが、2(開始)を示しているか否かを判定する。
ステップf−26−2において、調整状態決定フラグFlstが、2(開始)を示している場合には、ゲイン調整方向探索部240は、ステップf−26−3において、前回算出した第2の正のピーク値の積算値Pkps2に、図8のステップf−1で取得したq軸高調波電流の正のピーク値Pkpを加算し、最新の第2の正のピーク値の積算値Pkps2を算出する。次に、ゲイン調整方向探索部240は、ステップf−26−4において、前回算出した第2の負のピーク値の積算値Pkns2に、図8のステップf−2で取得したq軸高調波電流の負のピーク値Pknを加算し、最新の第2の負のピーク値の積算値Pkns2を算出する。次に、ゲイン調整方向探索部240は、ステップf−26−5において、ステップf−26−3で算出した最新の第2の正のピーク値の積算値Pkps2を(X1/2)で除算し、第2の正のピーク値の平均値Pkpa2を算出する。次に、ゲイン調整方向探索部240は、ステップf−26−6において、ステップf−26−4で算出した最新の第2の負のピーク値の積算値Pkns2を(X1/2)で除算し、第2の負のピーク値の平均値Pkna2を算出する。次に、ゲイン調整方向探索部240は、ステップf−26−7において、ステップf−26−5で算出した第2の正のピーク値の平均値Pkpa2から、ステップf−26−6で算出した第2の負のピーク値の平均値Pkna2を減算し、第2のピークピーク値の平均値Pkda2を算出する。次に、ゲイン調整方向探索部240は、ステップf−26−8において、第1のピークピーク値の平均値Pkda1が、第2のピークピーク値の平均値Pkda2よりも小さいか否かを判定する。
ステップf−26−8において、第1のピークピーク値の平均値Pkda1が、第2のピークピーク値の平均値Pkda2よりも小さい場合には、ゲイン調整方向探索部240は、ステップf−26−9において、調整方向決定フラグFlcmpを0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に設定する。一方、ステップf−26−8において、第1のピークピーク値の平均値Pkda1が、第2のピークピーク値の平均値Pkda2よりも小さくない場合には、ゲイン調整方向探索部240は、ステップf−26−10において、調整方向決定フラグFlcmpを1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)に設定する。
また、ステップf−26−2において、調整状態決定フラグFlstが、2(開始)を示していない場合には、ゲイン調整方向探索部240は、何も処理を実施することなく、次回の演算タイミングで図8のステップf−1の処理から再スタートする。
このように、調整状態決定フラグFlstが、1(探索)を示している期間に演算した第1のピークピーク値の平均値Pkda1と第2のピークピーク値の平均値Pkda2の大小関係に基づいて、最終的な調整方向決定フラグFlcmpを決定することにより、後述するゲイン調整部250において、q軸電流高調波のピークピーク値が小さくなるように、U相検出ゲインGcuとV相検出ゲインGcvを調整することができる。さらに、ノイズなどの影響により、高調波抽出器220で算出したq軸高調波電流iqhや、ピーク検出部225で算出したq軸高調波電流の正負のピーク値が乱れた場合においても、q軸電流高調波のピークピーク値が小さくなるように、調整方向決定フラグFlcmpを正確に決定することができる。ここでは、U相検出ゲインGcuとV相検出ゲインGcvの両方を調整するような方法で説明したが、U相検出ゲインGcuを基準ゲインとし、V相検出ゲインGcvだけを調整しても良いし、V相検出ゲインGcvを基準ゲインとし、U相検出ゲインGcuだけを調整するような方法でも問題ない。
(ゲイン調整部250の処理内容の説明)
図10は、ゲイン調整部250の処理手順を説明する図である。まず、ゲイン調整部250は、ステップg−1において、ピーク検出部225で生成したピーク検出フラグFlpkを取得する。次に、ゲイン調整部250は、ステップg−2において、ゲイン調整状態決定部230で生成した調整状態決定フラグFlstを取得する。次に、ゲイン調整部250は、ステップg−3において、ゲイン調整方向探索部240で生成した調整方向決定フラグFlcmpを取得する。次に、ゲイン調整部250は、ステップg−4において、ステップg−1で取得したピーク検出フラグFlpkが、1(オン)であるか否かを判定する。
ステップg−4において、ピーク検出フラグFlpkが、1(オン)である場合には、ゲイン調整部250は、ステップg−5において、ステップg−2で取得した調整状態決定フラグFlstが、1(探索)を示しているか否かを判定する。ステップg−5において、調整状態決定フラグFlstが、1(探索)を示している場合には、ゲイン調整部250は、ステップg−6において、調整方向決定フラグFlcmpが0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)であるか否かを判定する。
ステップg−6において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップg−7において、U相検出ゲインの過去値Gcuoldに所定値X2を加算し、U相検出ゲインGcuを正の方向に増大させる。次に、ゲイン調整部250は、ステップg−8において、V相検出ゲインの過去値Gcvoldから所定値X2を減算し、V相検出ゲインGcvを負の方向に増大させる。
一方、ステップg−6において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップg−9において、U相検出ゲインの過去値Gcuoldから所定値X2を減算し、U相検出ゲインGcuを負の方向に増大させる。次に、ゲイン調整部250は、ステップg−10において、V相検出ゲインの過去値Gcvoldに所定値X2を加算し、V相検出ゲインGcvを正の方向に増大させる。
また、ステップg−5において、調整状態決定フラグFlstが、1(探索)ではない場合には、ゲイン調整部250は、ステップg−11において、調整状態決定フラグFlstが、2(開始)を示しているか否かを判定する。ステップg−11において、調整状態決定フラグFlstが、2(開始)を示している場合には、ゲイン調整部250は、ステップg−12において、U相検出ゲインの過去値GcuoldをU相検出ゲインGcuとして設定する。次に、ゲイン調整部250は、ステップg−13において、V相検出ゲインの過去値GcvoldをV相検出ゲインGcvとして設定する。
一方、ステップg−11において、調整状態決定フラグFlstが、2(開始)を示していない場合には、ゲイン調整部250は、ステップg−14において、調整状態決定フラグFlstが、3(継続)を示しているか否かを判定する。ステップg−14において、調整状態決定フラグFlstが、3(継続)を示している場合には、ゲイン調整部250は、ステップg−15において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)であるか否かを判定する。ステップg−15において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップg−16において、前回算出したU相検出ゲインGcuに所定値X3を加算し、最新のU相検出ゲインGcuを算出する。次に、ゲイン調整部250は、ステップg−17において、前回算出したV相検出ゲインGcvから所定値X3を減算し、最新のV相検出ゲインGcvを算出する。
一方、ステップg−15において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップg−18において、前回算出したU相検出ゲインGcuから所定値X3を減算し、最新のU相検出ゲインGcuを算出する。次に、ゲイン調整部250は、ステップg−19において、前回算出したV相検出ゲインGcvに所定値X3を加算し、最新のV相検出ゲインGcvを算出する。
また、ステップg−14において、調整状態決定フラグFlstが、3(継続)ではない場合には、ゲイン調整部250は、ステップg−20において、調整状態決定フラグFlstが、4(リセット)であるか否かを判定する。ステップg−20において、調整状態決定フラグFlstが、4(リセット)である場合には、ゲイン調整部250は、ステップg−21において、U相検出ゲインGcuを1(初期値)に設定する。次に、ゲイン調整部250は、ステップg−22において、V相検出ゲインGcvを1(初期値)に設定する。次に、ゲイン調整部250は、ステップg−23において、ステップg−21で設定したU相検出ゲインGcuをU相検出ゲインの過去値Gcuoldとして設定する。次に、ゲイン調整部250は、ステップg−24において、ステップg−22で設定したV相検出ゲインGcvをV相検出ゲインの過去値Gcvoldとして設定する。
また、ステップg−20において、調整状態決定フラグFlstが、4(リセット)を示していない場合には、ゲイン調整部250は、前述したステップg−23とg−24の処理を実施する。また、ステップg−4において、ピーク検出フラグFlpkが、1(オン)ではない場合には、ゲイン調整部250は、何も処理を実施することなく、次回の演算タイミングでステップg−1の処理から再スタートする。
このように、調整方向決定フラグFlcmpの状態に基づいて、U相検出ゲインGcuとV相検出ゲインGcvを調整することにより、q軸電流高調波のピークピーク値を低減することができる。すなわち、U相電流センサ50とV相電流センサ55のゲインのばらつきを補正することができる。また、U相検出ゲインGcuとV相検出ゲインGcvは、モータ60の回転子64の電気角θeが、π/2だけ変化した時に調整される。ここでは、U相検出ゲインGcuとV相検出ゲインGcvの両方を調整するような方法で説明したが、U相検出ゲインGcuを基準ゲインとし、V相検出ゲインGcvだけを調整しても良いし、V相検出ゲインGcvを基準ゲインとし、U相検出ゲインGcuだけを調整するような方法でも問題ない。
(q軸高調波電流iqhおよび各フラグと検出ゲインとの関係の説明)
図11は、U相電流センサ50のゲインGsuと、V相電流センサ55のゲインGsvと、q軸高調波電流iqhと、ピーク検出フラグFlpkと、調整状態決定フラグFlstと、調整方向決定フラグFlcmpと、第1のカウント値Cnt1と、上述した手順によって調整されたU相検出ゲインGcuとV相検出ゲインGcvとの関係を説明する図である。ここでは、U相電流センサ50のゲインGsuが、V相電流センサ55のゲインGsvよりも小さい場合を想定し、時刻t5からU相電流センサ60のゲインGsuとV相電流センサ55のゲインGsvのばらつきを補正するように設定している。
まず、時刻t5において、q軸高調波電流iqhの負のピーク値Pknは、第1の負の閾値Thn1よりも小さいため、調整状態決定フラグFlstは、時刻t5の直後に0(終了)から1(探索)に切り替わる。調整状態決定フラグFlstが、0(終了)から1(探索)に切り替った瞬間に、第1のカウント値Cnt1は、所定値X1からカウントダウンを開始する。そして、第1のカウント値Cnt1が、(X1/2)と等しくなった瞬間に、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)から1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)に切り替わる。
そして、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが0の時に、U相検出ゲインGcuは、1(初期値)から正の方向に所定値X2だけ増大され、V相検出ゲインGcvは、1(初期値)から負の方向に所定値X2だけ増大される。ここで、U相検出ゲインGcuが、1(初期値)から正の方向に所定値X2だけ増大し、V相検出ゲインGcvが、1(初期値)から負の方向に所定値X2だけ増大する期間を期間Dとする。
一方、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが1の時に、U相検出ゲインGcuは、1(初期値)から負の方向に所定値X2だけ増大され、V相検出ゲインGcvは、1(初期値)から正の方向に所定値X2だけ増大される。ここで、U相検出ゲインGcuが、1(初期値)から負の方向に所定値X2だけ増大し、V相検出ゲインGcvが、1(初期値)から正の方向に所定値X2だけ増大する期間を期間Eとする。
次に、前記期間Dのq軸高調波電流iqhのピークピーク値の平均値は、前記期間Eのq軸高調波電流iqhのピークピーク値の平均値よりも小さいことがわかる。したがって、第1のカウント値Cnt1が0となり、調整状態決定フラグFlstが、1(探索)から2(開始)に切り替わった瞬間に、調整方向決定フラグFlcmpは、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)から0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に切り替わる。
そして、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)から0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に切り替った直後に、調整状態決定フラグFlstは、2(開始)から3(継続)に切り替わる。そして、調整状態決定フラグFlstが3(継続)で、調整方向決定フラグFlcmpが0の時には、U相検出ゲインGcuは、正の方向に所定値X3の刻みで徐々に増大され、V相検出ゲインGcvは、負の方向に所定値X3の刻みで徐々に増大される。最終的に、時刻t6において、q軸高調波電流iqhの正負のピーク値Pkp、Pknが、第3の正負の閾値Thp3、Thn3の範囲内に収まる。
これによって、調整状態決定フラグFlstは、3(継続)から0(終了)に切り替わり、U相検出ゲインGcuとV相検出ゲインGcvの調整が終了する。これらの処理は、ピーク検出フラグFlpkが、0(オフ)から1(オン)に切り替わった瞬間にだけ実施されている。
このように、U相検出ゲインGcuとV相検出ゲインGcvを調整することにより、U相電流センサ50のゲインGsuとU相検出ゲインGcuとの乗算値と、V相電流センサ55のゲインGsvとV相検出ゲインGcvとの乗算値を、ほぼ一致させることができる。すなわち、U相電流センサ50のゲインGsvとV相電流センサ55のゲインGsvのばらつきを補正することができる。また、q軸電流iqに含まれているモータ60の回転子64の電気角周波数feの2倍の周波数の高調波電流iqhは、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvのばらつきが補正され始めた直後に、一定期間だけ減少(もしくは、増大)してから一定期間だけ増大(もしくは、減少)した後、徐々に減少する波形となる。
(電圧指令演算部190の処理内容の説明)
図12は、実施例1にかかる電圧指令演算部190の処理手順を説明する図である。まず、電圧指令演算部190は、ステップh−1とh−2において、d軸電流指令id*とq軸電流指令iq*を取得する。次に、電圧指令演算部190は、ステップh−3とh−4において、3相/dq軸変換部180で算出したd軸電流idとq軸電流iqを取得する。次に、電圧指令演算部190は、ステップh−5において、ステップh−1で取得したd軸電流指令id*とステップh−3で取得したd軸電流idを(28)式に代入し、d軸電流指令id*とd軸電流idとの偏差Δidを算出する。
次に、電圧指令演算部190は、ステップh−6において、ステップh−5で算出したd軸電流偏差Δidを(29)式に代入し、d軸電圧指令vd*を算出する。ここで、d軸比例ゲインKpdとd軸積分ゲインKidの値は、予めマイコンのメモリに記憶させている。
次に、電圧指令演算部190は、ステップh−7において、ステップh−2で取得したq軸電流指令iq*とステップh−4で取得したq軸電流iqを(30)式に代入し、q軸電流指令iq*とq軸電流iqとの偏差Δiqを算出する。
次に、電圧指令演算部190は、ステップh−8において、ステップh−7で算出したq軸電流偏差Δiqを(31)式に代入し、q軸電圧指令vq*を算出する。ここで、q軸比例ゲインKpqとq軸積分ゲインKiqの値は、予めマイコンのメモリに記憶させている。
(dq軸/3相変換部200の処理内容の説明)
図13は、dq軸/3相変換部200の処理手順を説明する図である。まず、dq軸/3相変換部200は、ステップi−1とi−2において、電圧指令演算部190で算出したd軸電圧指令vd*とq軸電圧指令vq*をそれぞれ取得する。次に、dq軸/3相変換部200は、ステップi−3において、角度センサ70で検出したモータ60の回転子64の電気角θeを取得する。次に、dq軸/3相変換部200は、ステップi−4において、ステップi−1〜i−3で取得したd軸電圧指令vd*とq軸電圧指令vq*とモータ60の回転子64の電気角θeを(32)式に代入し、U相電圧指令vu*とV相電圧指令vv*とW相電圧指令vw*を算出する。
(PWM信号生成部210の処理内容の説明)
図14は、PWM信号生成部210の処理手順を説明する図である。まず、PWM信号生成部210は、ステップj−1〜j−3において、dq軸/3相変換部200で算出したU相電圧指令vu*とV相電圧指令vv*とW相電圧指令vw*をそれぞれ取得する。 次に、PWM信号生成部210は、ステップj−4において、ステップj−1で取得したU相電圧指令vu*が、搬送波(不図示)の値以上であるか否かを判定する。
ステップj−4において、U相電圧指令vu*が、搬送波の値以上である場合には、PWM信号生成部210は、ステップj−5において、PWM信号Sunをオフに設定した後、ステップj−6において、PWM信号Supをオンに設定する。次に、PWM信号生成部210は、ステップj−7において、ステップj−2で取得したV相電圧指令vv*が、搬送波の値以上であるか否かを判定する。
ステップj−7において、V相電圧指令vv*が、搬送波の値以上である場合には、PWM信号生成部210は、ステップj−8において、PWM信号Svnをオフに設定した後、ステップj−9において、PWM信号Svpをオンに設定する。次に、PWM信号生成部210は、ステップj−10において、ステップj−3で取得したW相電圧指令vw*が、搬送波の値以上であるか否かを判定する。
ステップj−10において、W相電圧指令vw*が、搬送波の値以上である場合には、PWM信号生成部210は、ステップj−11において、PWM信号Swnをオフに設定した後、ステップj−12において、PWM信号Swpをオンに設定する。一方、ステップj−10において、W相電圧指令vw*が、搬送波の値以上ではない場合には、PWM信号生成部210は、ステップj−13において、PWM信号Swpをオフに設定した後、ステップj−14において、PWM信号Swnをオンに設定する。
また、ステップj−7において、V相電圧指令vv*が、搬送波の値以上ではない場合には、PWM信号生成部210は、ステップj−15において、PWM信号Svpをオフに設定した後、ステップj−16において、PWM信号Svnをオンに設定する。
また、ステップj−4において、U相電圧指令vu*が、搬送波の値以上ではない場合には、PWM信号生成部210は、ステップj−17において、PWM信号Supをオフに設定した後、ステップj−18において、PWM信号Sunをオンに設定する。
このように、PWM信号Sup、Sun、Svp、Svn、Swp、Swnを生成することにより、インバータ40が出力するUVW相電圧の平均値が、UVW相電圧指令vu*、vv*、vw*と一致するように制御することができる。このようなPWM信号の生成法は、三角波比較方式として一般的に知られている。また、PWM信号の生成方法は、三角波比較方式に限ることなく、空間ベクトル変調方式などを用いて問題ない。
図15は、実施例2にかかる車両システムを説明する図である。上述した実施例1は、U相とV相、もしくは、U相とW相、もしくはV相とW相に電流センサを取り付けた2相電流検出システムにおいて、2つの電流センサのゲインアンバランスを補正する方法である。本実施例は、UVW相全てに電流センサを取り付けた3相電流検出システムにおいて、3つの電流センサのゲインアンバランスを補正する方法である。ゲイン補正機能搭載部260とゲイン補正機能起動停止部270を除いたインバータ制御装置160の構成は、上述した実施例1と同じ構成であるため、説明を省略する。
本実施例にかかるゲイン補正機能搭載部260は、検出電流変換部170、ゲイン調整状態決定部230、ゲイン調整方向探索部240、ゲイン調整部250を有する。
ゲイン補正機能搭載部260は、後述するゲイン補正機能起動停止部270で生成した補正機能起動停止フラグFlssに基づいて、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvとW相電流センサ58のゲインGswのばらつきの補正を開始、もしくは、停止する。ゲイン補正機能起動停止部270は、ゲイン補正機能起動停止部270の内部に設けられたゲイン補正機能起動停止アルゴリズムに従って、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvとW相電流センサ58のゲインGswのばらつきを補正するタイミングを決定する。
図16は、実施例2にかかるゲイン補正機能起動停止部270の処理手順を説明する図である。まず、ゲイン補正機能起動停止部270は、ステップk−1において、後述するゲイン調整状態決定部230で生成した第2のカウント値Cnt2を取得する。詳細は後述するが、第2のカウント値Cnt2は、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvとW相電流センサ58のゲインGswのばらつきの補正が終了した時に0となる。次に、ゲイン補正機能起動停止部270は、ステップk−2において、ゲイン補正機能を起動するか否かを決定する。ここで、ゲイン補正機能を起動するタイミングは、例えば、インバータ制御装置160やモータ60に温度センサ(不図示)を取り付けておき、前記温度センサで検出した温度が変化した場合や所定の時間間隔ごとなど、予め定められている。
ステップk−2において、ゲイン補正機能を起動する場合には、ゲイン補正機能起動停止部270は、ステップk−3において、補正機能起動停止フラグFlssを1(起動開始)に設定する。一方、ステップk−2において、ゲイン補正機能を起動しない場合には、ゲイン補正機能起動停止部270は、ステップk−4において、ゲイン補正機能を強制停止するか否かを決定する。
ステップk−4において、ゲイン補正機能を強制停止する場合には、ゲイン補正機能起動停止部270は、ステップk−5において、補正機能起動停止フラグFlssを0(停止)に設定する。一方、ステップk−4において、ゲイン補正機能を強制停止しない場合には、ゲイン補正機能起動停止部270は、ステップk−6において、補正起動停止フラグFlssが、1(起動開始)を示しているか否かを判定する。
ステップk−6において、補正起動停止フラグFlssが、1(起動て開始)を示している場合には、ゲイン補正機能起動停止部270は、ステップk−7において、補正機能起動停止フラグFlssを2(起動済)に設定する。一方、ステップk−6において、補正起動停止フラグFlssが、1(起動開始)を示していない場合には、ゲイン補正機能起動停止部270は、ステップk−8において、補正機能起動停止フラグFlssが、2(起動済)を示しているか否かを判定する。
ステップk−8において、補正機能起動停止フラグFlssが、2(起動済)を示している場合には、ゲイン補正機能起動停止部270は、ステップk−9において、ステップk−1で取得した第2のカウント値Cnt2が、0であるか否かを判定する。ステップk−9において、第2のカウント値Cnt2が、0である場合には、ゲイン補正機能起動停止部270は、ステップk−10において、補正機能起動停止フラグFlssを0(停止)に設定する。一方、ステップk−9において、第2のカウント値Cnt2が、0ではない場合には、ゲイン補正機能起動停止部270は、何も処理を実施することなく、次回の演算タイミングでステップk−1の処理から再スタートする。
また、ステップk−8において、補正機能起動停止フラグFlssが、2(起動済)を示していない場合には、ゲイン補正機能起動停止部270は、何も処理を実施することなく、次回の演算タイミングでステップk−1の処理から再スタートする。
(ゲイン調整状態決定部230の処理内容の説明)
図17は、実施例2にかかるゲイン調整状態決定部230の処理手順を説明する図である。まず、ゲイン調整状態決定部230は、ステップl−1において、図7で示したステップe−1〜e−3の処理を実施する。次に、ゲイン調整状態決定部230は、ステップl−2において、ゲイン補正機能起動停止部270で生成した補正機能起動停止フラグFlssを取得する。次に、ゲイン調整状態決定部230は、ステップl−3において、ステップl−2で取得した補正機能起動停止フラグFlssが、2(起動済)を示しているか否かを判定する。
ステップl−3において、補正機能起動停止フラグFlssが、2(起動済)を示している場合には、ゲイン調整状態決定部230は、ステップl−4において、ステップl−1で取得したピーク検出フラグFlpkが、1(オン)であるか否かを判定する。
ステップl−4において、ピーク検出フラグFlpkが、1(オン)である場合には、ゲイン調整状態決定部230は、ステップl−5において、後述するステップl−6、l−8、l−10、l−17、l−21、l−23、もしくは、l−27で設定した調整状態決定フラグFlstが、0(終了)を示しているか否かを判定する。ステップl−5において、調整状態決定フラグFlstが、0(終了)を示している場合には、ゲイン調整状態決定部230は、ステップl−6において、調整状態決定フラグFlstを5(切替開始)に設定する。一方、ステップl−5において、補正状態決定フラグFlstが、0(終了)を示していない場合には、ゲイン調整状態決定部230は、ステップl−7において、調整状態決定フラグFlstが、5(切替開始)を示しているか否かを判定する。
ステップl−7において、調整状態決定フラグFlstが、5(切替開始)を示している場合には、ゲイン調整状態決定部230は、ステップl−8において、調整状態決定フラグFlstを6(切替中)に設定する。次に、ゲイン調整状態決定部230は、ステップl−9において、第3のカウント値Cnt3が、0であるか否かを判定する。
ステップl−9において、第3のカウント値Cnt3が、0である場合には、ゲイン調整状態決定部230は、ステップl−10において、調整状態決定フラグFlstを7(切替完了)に設定する。次に、ゲイン調整状態決定部230は、ステップl−11において、第3のカウント値Cnt3を、所定値X4に設定する。ここで、後述する検出ゲインの調整方向を正しく決定するために、所定値X4は、2の倍数で4以上の値に設定しておくことが望ましい。
一方、ステップl−9において、第3のカウント値Cnt3が、0ではない場合には、ゲイン調整状態決定部230は、ステップl−12において、第3のカウント値Cnt3をカウントダウンする。
また、ステップl−7において、調整状態決定フラグFlstが、5(切替開始)を示していない場合には、ゲイン調整状態決定部230は、ステップl−13において、調整状態決定フラグFlstが、6(切替中)を示しているか否かを判定する。ステップl−13において、調整状態決定フラグFlstが、6(切替中)を示している場合には、前述したステップl−9の処理に移行する。一方、ステップl−13において、調整状態決定フラグFlstが、6(切替中)を示していない場合には、ゲイン調整状態決定部230は、ステップl−14において、調整状態決定フラグFlstが、7(切替完了)を示しているか否かを判定する。
ステップl−14において、調整状態決定フラグFlstが、7(切替完了)を示している場合には、ゲイン調整状態決定部230は、ステップl−15において、ステップl−1で取得したq軸高調波電流の正のピーク値Pkpが、第1の正の閾値Thp1よりも大きいか否かを判定する。
ステップl−15において、q軸高調波電流の正のピーク値Pkpが、第1の正の閾値Thp1よりも大きい場合には、ゲイン調整状態決定部230は、ステップl−16において、第1のカウント値Cnt1を所定値X1に設定する。ここで、所定値X1は、実施例1で述べたように、2の倍数の正の整数に設定されている。次に、ゲイン調整状態決定部230は、ステップl−17において、調整状態決定フラグFlstを1(探索)に設定する。次に、ゲイン調整状態決定部230は、ステップl−18において、第2のカウント値Cnt2を3に設定する。
一方、ステップl−15において、q軸高調波電流の正のピーク値Pkpが、第1の正の閾値Thp1よりも大きくない場合には、ゲイン調整状態決定部230は、ステップl−19において、ステップl−1で取得したq軸高調波電流の負のピーク値Pknが、第1の負の閾値Thn1よりも小さいか否かを判定する。
ステップl−19において、q軸高調波電流の負のピーク値Pknが、第1の負の閾値Thn1よりも小さい場合には、前述したステップl−16〜l−18の処理を実施する。一方、ステップl−19において、q軸高調波電流の負のピーク値Pknが、第1の負の閾値Thn1よりも小さくない場合には、ゲイン調整状態決定部230は、ステップl−20において、第2のカウント値Cnt2をカウントダウンする。次に、ゲイン調整状態決定部230は、ステップl−21において、調整状態決定フラグFlstを0(終了)に設定する。
また、ステップl−14において、調整状態決定フラグFlstが、7(切替完了)を示していない場合には、ゲイン調整状態決定部230は、ステップl−22において、調整状態決定フラグFlstが、4(リセット)を示しているか否かを判定する。ステップl−22において、調整方向決定フラグFlstが、4(リセット)を示している場合には、前述したステップl−15の処理に移行する。一方、ステップl−22において、調整方向決定フラグFlstが、4(リセット)を示していない場合には、ゲイン調整状態決定部230は、ステップl−23において、図7で示したステップe−11〜e−21の処理を実施する。
また、ステップl−4において、ピーク検出フラグFlpkが、1(オン)ではない場合には、ゲイン調整状態決定部230は、何も処理を実施することなく、次回の演算タイミングでステップl−1の処理から再スタートする。
また、ステップl−3において、補正機能起動停止フラグFlssが、2(起動済)を示していない場合には、ゲイン調整状態決定部230は、ステップl−24において、補正機能起動停止フラグFlssが、1(起動開始)を示しているか否かを判定する。ステップl−24において、補正機能起動停止フラグFlssが、1(起動開始)を示している場合には、ゲイン調整状態決定部230は、ステップl−25において、第2のカウント値Cnt2を3に設定する。次に、ゲイン調整状態決定部230は、ステップl−26において、第3のカウント値Cnt3を所定値X4に設定する。次に、ゲイン調整状態決定部230は、ステップl−27において、調整状態決定フラグFlstを0(終了)に設定する。
一方、ステップl−24において、補正機能起動停止フラグFlssが、1(起動開始)を示していない場合には、ゲイン調整状態決定部230は、何も処理を実施することなく、次回の演算タイミングでステップl−1の処理から再スタートする。
このように調整状態決定フラグFlstを生成することにより、後述するゲイン調整部250において、各相の検出ゲインの調整が失敗した場合においても、上述したステップl−23(具体的には図7に示したステップe−15とステップe−17)によってゲイン調整の失敗を検知し、(具体的には、図7に示したステップe−16の処理によって、)各相の検出ゲインを初期値にリセットするための信号を生成することができる。これにより、ゲイン調整部250において、各相の検出ゲインの調整をやり直すことができる。
また、各相の検出ゲインの調整が成功している場合には、調整状態決定フラグFlstは、第2のカウント値Cnt2が0になるまで、5(検出ゲインを調整する相の切替開始)、6(検出ゲインを調整する相の切替中)、7(検出ゲインを調整する相の切替完了)、1(検出ゲインの調整方向の探索)、2(検出ゲインの調整開始)、3(検出ゲインの調整継続)、0(検出ゲインの調整終了)の順で規則的に変化する。
また、詳細は後述するが、本実施例では、まず、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvの2相のゲインアンバランスを補正する。次に、U相電流センサ50のゲインGsuとW相電流センサ58のゲインGswの2相のゲインアンバランスを補正する。そして、V相電流センサ55のゲインGsvとW相電流センサ58のゲインGswの2相のゲインアンバランスを補正する。これらを繰り返すことにより、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvとW相電流センサ58のゲインGswの3相のゲインアンバランスを補正することができる。
(ゲイン調整方向探索部240の処理内容の説明)
図18は、実施例2にかかるゲイン調整方向探索部240の処理手順を説明する図である。まず、ゲイン調整方向探索部240は、ステップm−1において、図8に示したステップf−2〜f−5の処理を実施する。次に、ゲイン調整方向探索部240は、ステップm−2において、ゲイン補正機能起動停止部270で生成した補正機能起動停止フラグFlssを取得する。次に、ゲイン調整方向探索部240は、ステップm−3において、ステップm−2で取得した補正機能起動停止フラグFlssが、2(起動済)を示しているか否かを判定する。
ステップm−3において、補正機能起動停止フラグFlssが、2(起動済)を示している場合には、ゲイン調整方向探索部240は、ステップm−4において、ステップm−1で取得したピーク検出フラグFlpkが、1(オン)であるか否かを判定する。
ステップm−4において、ピーク検出フラグFlpkが、1(オン)である場合には、ゲイン調整方向探索部240は、ステップm−5において、ステップm−1で取得した調整状態決定フラグFlstが、5(切替開始)を示しているか否かを判定する。
ステップm−5において、調整状態決定フラグFlstが、5(切替開始)を示しているか否かを判定する。ステップm−5において、調整状態決定フラグFlstが、5(切替開始)を示している場合には、ゲイン調整方向探索部240は、ステップm−6において、第4のカウント値Cnt4が、0であるか否かを判定する。
ステップm−6において、第4のカウント値Cnt4が、0である場合には、ゲイン調整方向探索部240は、ステップm−7において、第4のカウント値Cnt4を2に設定する。一方、ステップm−6において、第4のカウント値Cnt4が、0ではない場合には、ゲイン調整方向探索部240は、ステップm−8において、第4のカウント値Cnt4をカウントダウンする。
詳細は後述するが、第4のカウント値Cnt4が2の時には、U相電流センサ50のゲインGsvとV相電流センサ55のゲインGsvのばらつきを補正するモードとなり、U相検出ゲインGcuとV相検出ゲインGcvが調整される。また、第4のカウント値Cnt4が1の時には、U相電流センサ50のゲインGsuとW相電流センサ58のゲインGswのばらつきを補正するモードとなり、U相検出ゲインGcuとW相検出ゲインGcwが調整される。また、第4のカウント値Cnt4が0の時には、V相電流センサ55のゲインGsvとW相電流センサ58のゲインGswを補正するモードとなり、V相検出ゲインGcvとW相検出ゲインGcwが調整される。
また、ステップm−5において、調整状態決定フラグFlstが、5(切替開始)を示していない場合には、ゲイン調整方向探索部240は、ステップm−9において、調整状態決定フラグFlstが、1(探索)を示しているか否かを判定する。
ステップm−9において、調整状態決定フラグFlstが、1(探索)を示している場合には、ゲイン調整方向探索部240は、ステップm−10において、第1のカウント値Cnt1が、所定値X1に等しいか否かを判定する。
ステップm−10において、第1のカウント値Cnt1が、所定値X1に等しい場合には、ゲイン調整方向探索部240は、ステップm−11において、第4のカウント値Cnt4が、2であるか否かを判定する。
ステップm−11において、第4のカウント値Cnt4が、2である場合には、ゲイン調整方向探索部240は、ステップm−12において、調整方向決定フラグFlcmpを0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に設定する。次に、ゲイン調整方向探索部240は、ステップm−13において、図8に示したf−10〜f−13の処理を実施する。
一方、ステップm−11において、第4のカウント値Cnt4が、2ではない場合には、ゲイン調整方向探索部240は、ステップm−14において、第4のカウント値Cnt4が、1であるか否かを判定する。ステップm−14において、第4のカウント値Cnt4が、1である場合には、ゲイン調整方向探索部240は、ステップm−15において、調整方向決定フラグFlcmpを2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に設定し、前述したステップm−13の処理を実施する。
一方、ステップm−14において、第4のカウント値Cnt4が、1ではない場合には、ゲイン調整方向探索部240は、ステップm−16において、調整方向決定フラグFlcmpを4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に設定し、前述したステップm−13の処理を実施する。
また、ステップm−10において、第1のカウント値Cnt1が、所定値X1に等しくない場合には、ゲイン調整方向探索部240は、ステップm−17において、第1のカウント値Cnt1が、(X1/2)に等しいか否かを判定する。ステップm−17において、第1のカウント値Cnt1が、(X1/2)に等しい場合には、ゲイン調整方向探索部240は、ステップm−18において、図8に示したステップf−15〜f−19の処理を実施する。
次に、ゲイン調整方向探索部240は、ステップm−19において、現在の調整方向決定フラグFlcmpに1を加算し、最新の調整方向決定フラグFlcmpを決定する。例えば、現在の調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、最新の調整方向決定フラグFlcmpは、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)となる。また、現在の調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、最新の調整方向決定フラグFlcmpは、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)となる。また、現在の調整方向決定フラグFlcmpが、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、最新の調整方向決定フラグFlcmpは、5(V相検出ゲインGcvを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)となる。
一方、ステップm−17において、第1のカウント値Cnt1が、(X1/2)に等しくない場合には、ゲイン調整方向探索部240は、ステップm−20において、図8に示したステップf−21〜f−25の処理を実施する。
また、ステップm−9において、調整状態決定フラグFlstが、1(探索)を示していない場合には、ゲイン調整方向探索部240は、ステップm−21−1において、後述する図19の処理に移行する。
また、ステップm−4において、ピーク検出フラグFlpkが、1(オン)ではない場合には、ゲイン調整方向探索部240は、何も処理を実施することなく、次回の演算タイミングでステップm−1の処理から再スタートする。
また、ステップm−3において、補正機能起動停止フラグFlssが、2(起動済)を示していない場合には、ゲイン調整方向探索部240は、ステップm−22において、補正機能起動停止フラグFlssが、1(起動開始)を示しているか否かを判定する。
ステップm−22において、補正機能起動停止フラグFlssが、1(起動開始)を示している場合には、ゲイン調整方向探索部240は、ステップm−23において、第4のカウント値Cnt4を0に設定する。このように、補正機能起動停止フラグFlssが、1(起動開始)を示している時に、第4のカウント値Cnt4を0に設定することにより、補正機能起動停止フラグFlssが、2(起動済)となった瞬間に、第4のカウント値Cnt4が2に設定されるため、U相電流センサ50のゲインGsvとV相電流センサ55のゲインGsvのばらつきを補正するモードから開始させることができる。
一方、ステップm−22において、補正機能起動停止フラグFlssが、1(起動開始)を示していない場合には、ゲイン調整方向探索部240は、何も処理を実施することなく、次回の演算タイミングでステップm−1の処理から再スタートする。
図19は、図18に示したステップm−9において、調整状態決定フラグFlstが、1(探索)を示していない時のゲイン調整方向探索部240の処理手順を説明する図である。まず、ゲイン調整方向探索部240は、ステップm−21−2において、調整状態決定フラグFlstが、2(開始)を示しているか否かを判定する。
ステップm−21−2において、調整状態決定フラグFlstが、2(開始)を示している場合には、ゲイン調整方向探索部240は、ステップm−21−3において、図9に示したステップf−26−3〜f−26−7の処理を実施する。次に、ゲイン調整方向探索部240は、ステップm−21−4において、図18に示したステップm−18で算出した第1のピークピーク値の平均値Pkda1が、ステップm−21−3で算出した第2のピークピーク値の平均値Pkda2よりも小さいか否かを判定する。
ステップm−21−4において、第1のピークピーク値の平均値Pkda1が、第2のピークピーク値の平均値Pkda2よりも小さい場合には、ゲイン調整方向探索部240は、ステップm−21−5において、第4のカウント値Cnt4が、2に等しいか否かを判定する。
ステップm−21−5において、第4のカウント値Cnt4が、2に等しい場合には、ゲイン調整方向探索部240は、ステップm−21−6において、調整方向決定フラグFlcmpを0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に設定する。一方、ステップm−21−5において、第4のカウント値Cnt4が、2に等しくない場合には、ゲイン調整方向探索部240は、ステップm−21−7において、第4のカウント値Cnt4が、1に等しいか否かを判定する。
ステップm−21−7において、第4のカウント値Cnt4が、1に等しい場合には、ゲイン調整方向探索部240は、ステップm−21−8において、調整方向決定フラグFlcmpを2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に設定する。一方、ステップm−21−7において、第4のカウント値Cnt4が、1に等しくない場合には、ゲイン調整方向探索部240は、ステップm−21−9において、調整方向決定フラグFlcmpを4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に設定する。
また、ステップm−21−4において、第1のピークピーク値の平均値Pkda1が、第2のピークピーク値の平均値Pkda2よりも小さくない場合には、ゲイン調整方向探索部240は、ステップm−21−10において、第4のカウント値Cnt4が、2に等しいか否かを判定する。
ステップm−21−10において、第4のカウント値Cnt4が、2に等しい場合には、ゲイン調整方向探索部240は、ステップm−21−11において、調整方向決定フラグFlcmpを1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)に設定する。一方、ステップm−21−10において、第4のカウント値Cnt4が、2に等しくない場合には、ゲイン調整方向探索部240は、ステップm−21−12において、第4のカウント値Cnt4が、1に等しいか否かを判定する。
ステップm−21−12において、第4のカウント値Cnt4が、1に等しい場合には、ゲイン調整方向探索部240は、ステップm−21−13において、調整方向決定フラグFlcmpを3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)に設定する。一方、ステップm−21−12において、第4のカウント値Cnt4が、1に等しくない場合には、ゲイン調整方向探索部240は、ステップm−21−14において、調整方向決定フラグFlcmpを5(V相検出ゲインGcvを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)に設定する。
このように、調整状態決定フラグFlstが、1(探索)を示している期間に演算した第1のピークピーク値の平均値Pkda1と第2のピークピーク値の平均値Pkda2の大小関係に基づいて、最終的な調整方向決定フラグFlcmpを決定することにより、後述するゲイン調整部250において、q軸電流高調波のピークピーク値が小さくなるように、各相の検出ゲインを調整することができる。さらに、ノイズなどの影響により、高調波抽出器220で算出したq軸高調波電流iqhや、ピーク検出部225で算出したq軸高調波電流の正負のピーク値が乱れた場合においても、q軸電流高調波のピークピーク値が小さくなるように、調整方向決定フラグFlcmpを正確に決定することができる。
ここでは、選択された第1の相の検出ゲインと第2の相の検出ゲインの両方を調整するような方法で説明したが、選択された第1の相の検出ゲインを基準ゲインとし、選択された第2の相の検出ゲインだけを調整しても良いし、選択された第2の相の検出ゲインを基準ゲインとし、選択された第1の相の検出ゲインだけを調整しても問題ない。例えば、第1の相にU相が選択され、第2の相にV相が選択された場合には、U相検出ゲインGcuを基準ゲインとし、V相検出ゲインGcvだけを調整しても良いし、V相検出ゲインGcvを基準ゲインとし、U相検出ゲインGcuを調整しても問題ない。また、第1の相にU相が選択され、第2の相にW相が選択された場合には、U相検出ゲインGcuを基準ゲインとし、W相検出ゲインGcwだけを調整しても良いし、W相検出ゲインGcwを基準ゲインとし、U相検出ゲインGcuを調整しても問題ない。また、第1の相にV相が選択され、第2の相にW相が選択された時には、V相検出ゲインGcvを基準ゲインとし、W相検出ゲインGcwだけを調整しても良いし、W相検出ゲインGcwを基準ゲインとし、V相検出ゲインGcvだけを調整しても問題ない。
図20は、実施例2にかかるゲイン調整部250の処理手順を説明する図である。まず、ゲイン調整部250は、ステップn−1において、図10に示したg−1〜g−3の処理を実施する。次に、ゲイン調整部250は、ステップn−2において、ゲイン補正機能起動停止部270で生成した補正機能起動停止フラグFlssを取得する。次に、ゲイン調整部250は、ステップn−3において、ステップn−2で取得した補正機能起動停止フラグFlssが、2(起動済)を示しているか否かを判定する。
ステップn−3において、補正機能起動停止フラグFlssが、2(起動済)を示している場合には、ゲイン調整部250は、ステップn−4において、ステップn−1で取得したピーク検出フラグFlpkが、1(オン)であるか否かを判定する。
ステップn−4において、ピーク検出フラグFlpkが、1(オン)である場合には、ゲイン調整部250は、ステップn−5において、ステップn−1で取得した調整状態決定フラグFlstが、1(探索)を示しているか否かを判定する。
ステップn−5において、調整状態決定フラグFlstが、1(探索)を示している場合には、ゲイン調整部250は、ステップn−6において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)であるか否かを判定する。
ステップn−6において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−7において、U相検出ゲインの過去値Gcuoldに所定値X2を加算し、U相検出ゲインGcuを正の方向に増大させる。次に、ゲイン調整部250は、ステップn−8において、V相検出ゲインの過去値Gcvoldから所定値X2を減算し、V相検出ゲインGcvを負の方向に増大させる。
一方、ステップn−6において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−9において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)であるか否かを判定する。
ステップn−9において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−10において、U相検出ゲインの過去値Gcuoldから所定値X2を減算し、U相検出ゲインGcuを負の方向に増大させる。次に、ゲイン調整部250は、ステップn−11において、V相検出ゲインの過去値Gcvoldに所定値X2を加算し、V相検出ゲインGcvを正の方向に増大させる。
一方、ステップn−9において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−12において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)であるか否かを判定する。
ステップn−12において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−13において、U相検出ゲインの過去値Gcuoldに所定値X2を加算し、U相検出ゲインGcuを正の方向に増大させる。次に、ゲイン調整部250は、ステップn−14において、W相検出ゲインの過去値Gcwoldから所定値X2を減算し、W相検出ゲインGcwを負の方向に増大させる。
一方、ステップn−12において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−15において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)であるか否かを判定する。
ステップn−15において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−16において、U相検出ゲインの過去値Gcuoldから所定値X2を減算し、U相検出ゲインGcuを負の方向に増大させる。次に、ゲイン調整部250は、ステップn−17において、W相検出ゲインの過去値Gcwoldに所定値X2を加算し、W相検出ゲインGcwを正の方向に増大させる。
一方、ステップn−15において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−18において、調整方向決定フラグFlcmpが、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)であるか否かを判定する。
ステップn−18において、調整方向決定フラグFlcmpが、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−19において、V相検出ゲインの過去値Gcvoldに所定値X2を加算し、V相検出ゲインGcvを正の方向に増大させる。次に、ゲイン調整部250は、ステップn−20において、W相検出ゲインの過去値Gcwoldから所定値X2を減算し、W相検出ゲインGcwを負の方向に増大させる。
一方、ステップn−18において、調整方向決定フラグFlcmpが、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−21において、V相検出ゲインの過去値Gcvoldから所定値X2を減算し、V相検出ゲインGcvを負の方向に増大させる。次に、ゲイン調整部250は、ステップn−22において、W相検出ゲインの過去値Gcwoldに所定値X2を加算し、W相検出ゲインGcwを正の方向に増大させる。
また、ステップn−5において、調整状態決定フラグFlstが、1(探索)を示していない場合には、ゲイン調整部250は、ステップn−23−1において、後述する図21の処理に移行する。
また、ステップn−4において、ピーク検出フラグFlpkが、1(オン)ではない場合には、ゲイン調整部250は、何も処理を実施することなく、次回の演算タイミングでステップn−1の処理から再スタートする。
また、ステップn−3において、補正機能起動停止フラグFlssが、2(起動済)を示していない場合には、ゲイン調整部250は、何も処理を実施することなく、次回の演算タイミングでステップn−1の処理から再スタートする。
図21は、図20に示したステップn−5において、調整状態決定フラグFlstが、1(探索)を示していない時のゲイン調整部250の処理手順を説明する図である。まず、ゲイン調整部250は、ステップn−23−2において、調整状態決定フラグFlstが、2(開始)を示しているか否かを判定する。
ステップn−23−2において、調整状態決定フラグFlstが、2(開始)を示している場合には、ゲイン調整部250は、ステップn−23−3において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)であるか否かを判定する。
ステップn−23−3において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−4において、U相検出ゲインの過去値GcuoldをU相検出ゲインGcuとして設定する。次に、ゲイン調整部250は、ステップn−23−5において、V相検出ゲインの過去値GcvoldをV相検出ゲインGcvとして設定する。
一方、ステップn−23−3において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−6において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)であるか否かを判定する。
ステップn−23−6において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)である場合には、ゲイン調整部250は、前述したステップn−23−4の処理に移行する。
一方、ステップn−23−6において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−7において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)であるか否かを判定する。
ステップn−23−7において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−8において、U相検出ゲインの過去値GcuoldをU相検出ゲインGcuとして設定する。次に、ゲイン調整部250は、ステップn−23−9において、W相検出ゲインの過去値GcwoldをW相検出ゲインGcwとして設定する。
一方、ステップn−23−7において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−10において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)であるか否かを判定する。
ステップn−23−10において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)である場合には、ゲイン調整部250は、前述したステップn−23−8の処理に移行する。
一方、ステップn−23−10において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−11において、V相検出ゲインの過去値GcvoldをV相検出ゲインGcvとして設定する。次に、ゲイン調整部250は、ステップn−23−12において、W相検出ゲインの過去値GcwoldをW相検出ゲインGcwとして設定する。
また、ステップn−23−2において、調整状態決定フラグFlstが、2(開始)を示していない場合には、ゲイン調整部250は、ステップn−23−13において、調整状態決定フラグFlstが、3(継続)を示しているか否かを判定する。
ステップn−23−13において、調整状態決定フラグFlstが、3(継続)を示している場合には、ゲイン調整部250は、ステップn−23−14において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)であるか否かを判定する。
ステップn−23−14において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−15において、前回算出したU相検出ゲインGcuに所定値X3を加算し、最新のU相検出ゲインGcuを算出する。次に、ゲイン調整部250は、ステップn−23−16において、前回算出したV相検出ゲインGcvから所定値X3を減算し、最新のV相検出ゲインGcvを算出する。
一方、ステップn−23−14において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−17において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)であるか否かを判定する。
ステップn−23−17において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−18において、前回算出したU相検出ゲインGcuから所定値X3を減算し、最新のU相検出ゲインGcuを算出する。次に、ゲイン調整部250は、ステップn−23−19において、前回算出したV相検出ゲインGcvに所定値X3を加算し、最新のV相検出ゲインGcvを算出する。
一方、ステップn−23−17において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−20において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)であるか否かを判定する。
ステップn−23−20において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−21において、前回算出したU相検出ゲインGcuに所定値X3を加算し、最新のU相検出ゲインGcuを算出する。次に、ゲイン調整部250は、ステップn−23−22において、前回算出したW相検出ゲインGcwから所定値X3を減算し、最新のW相検出ゲインGcwを算出する。
一方、ステップn−23−20において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−23において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)であるか否かを判定する。
ステップn−23−23において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−24において、前回算出したU相検出ゲインGcuから所定値X3を減算し、最新のU相検出ゲインGcuを算出する。次に、ゲイン調整部250は、ステップn−23−25において、前回算出したW相検出ゲインGcwに所定値X3を加算し、最新のW相検出ゲインGcwを算出する。
一方、ステップn−23−23において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−26において、調整方向決定フラグFlcmpが、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)であるか否かを判定する。
ステップn−23−26において、調整方向決定フラグFlcmpが、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−27において、前回算出したV相検出ゲインGcvに所定値X3を加算し、最新のV相検出ゲインGcvを算出する。次に、ゲイン調整部250は、ステップn−23−28において、前回算出したW相検出ゲインGcwから所定値X3を減算し、最新のW相検出ゲインGcwを算出する。
一方、ステップn−23−26において、調整方向決定フラグFlcmpが、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−29において、前回算出したV相検出ゲインGcvから所定値X3を減算し、最新のV相検出ゲインGcvを算出する。次に、ゲイン調整部250は、ステップn−23−30において、前回算出したW相検出ゲインGcwに所定値X3を加算し、最新のW相検出ゲインGcwを算出する。また、ステップn−23−13において、調整状態決定フラグFlstが、3(継続)を示していない場合には、ゲイン調整部250は、ステップn−23−31−1において、後述する図22の処理に移行する。
図22は、図21に示したステップn−23−13において、調整状態決定フラグFlstが、3(継続)を示していない時のゲイン調整部250の処理手順を説明する図である。まず、ゲイン調整部250は、ステップn−23−31−2において、調整状態決定フラグFlstが、4(リセット)を示しているか否かを判定する。
ステップn−23−31−2において、調整状態決定フラグFlstが、4(リセット)を示している場合には、ゲイン調整部250は、ステップn−23−31−3において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)であるか否かを判定する。
ステップn−23−31−3において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−31−4において、U相検出ゲインGcuを1(初期値)に設定する。次に、ゲイン調整部250は、ステップn−23−31−5において、V相検出ゲインGcvを1(初期値)に設定する。次に、ゲイン調整部250は、ステップn−23−31−6において、ステップn−23−31−4で設定したU相検出ゲインGcuをU相検出ゲインの過去値Gcuoldとして設定する。次に、ゲイン調整部250は、ステップn−23−31−7において、ステップn−23−31−5で設定したV相検出ゲインGcvをV相検出ゲインの過去値Gcvoldとして設定する。
一方、ステップn−23−31−3において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−8において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)であるか否かを判定する。
ステップn−23−31−8において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)である場合には、ゲイン調整部250は、前述したステップn−23−31−4の処理に移行する。一方、ステップn−23−31−8において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−9において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)であるか否かを判定する。
ステップn−23−31−9において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−31−10において、U相検出ゲインGcuを1(初期値)に設定する。次に、ゲイン調整部250は、ステップn−23−31−11において、W相検出ゲインGcwを1(初期値)に設定する。次に、ゲイン調整部250は、ステップn−23−31−12において、ステップn−23−31−10で設定したU相検出ゲインGcuをU相検出ゲインの過去値Gcuoldとして設定する。次に、ゲイン調整部250は、ステップn−23−31−13において、ステップn−23−31−11で設定したW相検出ゲインGcwをW相検出ゲインの過去値Gcwoldとして設定する。
一方、ステップn−23−31−9において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−14において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)であるか否かを判定する。ステップn−23−31−14において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)である場合には、ゲイン調整部250は、前述したステップn−23−31−10の処理に移行する。
一方、ステップn−23−31−14において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−15において、V相検出ゲインGcvを1(初期値)に設定する。次に、ゲイン調整部250は、ステップn−23−31−16において、W相検出ゲインGcwを1(初期値)に設定する。次に、ゲイン調整部250は、ステップn−23−31−17において、ステップn−23−31−15で設定したV相検出ゲインGcvをV相検出ゲインの過去値Gcvoldとして設定する。次に、ゲイン調整部250は、ステップn−23−31−18において、ステップn−23−31−16で設定したW相検出ゲインGcwをW相検出ゲインの過去値Gcwoldとして設定する。
また、ステップn−23−31−2において、調整状態決定フラグFlstが、4(リセット)を示していない場合には、ゲイン調整部250は、ステップn−23−31−19において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)であるか否かを判定する。
ステップn−23−31−19において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−31−20において、U相検出ゲインGcuをU相検出ゲインの過去値Gcuoldとして設定する。次に、ゲイン調整部250は、ステップn−23−31−21において、V相検出ゲインGcvをV相検出ゲインの過去値Gcvoldとして設定する。
一方、ステップn−23−31−19において、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−22において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)であるか否かを判定する。ステップn−23−31−22において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)である場合には、ゲイン調整部250は、前述したステップn−23−31−20とn−23−31−21の処理を実施する。
一方、ステップn−23−31−22において、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−23において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)であるか否かを判定する。
ステップn−23−31−23において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)である場合には、ゲイン調整部250は、ステップn−23−31−24において、U相検出ゲインGcuをU相検出ゲインの過去値Gcuoldとして設定する。次に、ゲイン調整部250は、ステップn−23−31−25において、W相検出ゲインGcwをW相検出ゲインの過去値Gcwoldとして設定する。
一方、ステップn−23−31−23において、調整方向決定フラグFlcmpが、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−26において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)であるか否かを判定する。ステップn−23−31−26において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)である場合には、ゲイン調整部250は、前述したステップn−23−31−24の処理に移行する。
一方、ステップn−23−31−26において、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)ではない場合には、ゲイン調整部250は、ステップn−23−31−27において、V相検出ゲインGcvをV相検出ゲインの過去値Gcvoldとして設定する。次に、ゲイン調整部250は、ステップn−23−31−28において、W相検出ゲインGcwをW相検出ゲインの過去値Gcwoldとして設定する。
このように、調整方向決定フラグFlcmpの状態に基づいて、U相検出ゲインGcuとV相検出ゲインGcvとW相検出ゲインGcwを調整することにより、q軸電流高調波のピークピーク値を低減することができる。すなわち、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvとW相電流センサ58のゲインGswのばらつきを補正することができる。また、U相検出ゲインGcuとV相検出ゲインGcvとW相検出ゲインGcwは、モータ60の回転子64の電気角θeが、π/2だけ変化した時に調整される。
ここでは、選択された第1の相の検出ゲインと第2の相の検出ゲインの両方を調整するような方法で説明したが、選択された第1の相の検出ゲインを基準ゲインとし、選択された第2の相の検出ゲインだけを調整しても良いし、選択された第2の相の検出ゲインを基準ゲインとし、選択された第1の相の検出ゲインだけを調整しても問題ない。例えば、第1の相にU相が選択され、第2の相にV相が選択された場合には、U相検出ゲインGcuを基準ゲインとし、V相検出ゲインGcvだけを調整しても良いし、V相検出ゲインGcvを基準ゲインとし、U相検出ゲインGcuを調整しても問題ない。また、第1の相にU相が選択され、第2の相にW相が選択された場合には、U相検出ゲインGcuを基準ゲインとし、W相検出ゲインGcwだけを調整しても良いし、W相検出ゲインGcwを基準ゲインとし、U相検出ゲインGcuを調整しても問題ない。また、第1の相にV相が選択され、第2の相にW相が選択された時には、V相検出ゲインGcvを基準ゲインとし、W相検出ゲインGcwだけを調整しても良いし、W相検出ゲインGcwを基準ゲインとし、V相検出ゲインGcvだけを調整しても問題ない。
(検出電流変換部170の処理内容の説明)
図23は、実施例2にかかる検出電流変換部170の処理手順を説明する図である。まず、検出電流変換部170は、ステップo−1〜o−3において、UVW相電流センサ50、55、58で検出したUVW相電流iu1、iv1、iw1をそれぞれ取得する。ここで、ステップo−1とo−2で取得したU相電流iu1とV相電流iv1は、それぞれ前記(2)式と前記(4)式で表され、ステップo−3で取得したW相電流iw1は、モータ60のW相巻線63に流れている真のW相電流iwtとW相電流センサ58のゲインGswを用いて、(33)式で表される。
次に、検出電流変換部170は、ステップo−4〜o−6において、UVW相検出ゲインGcu、Gcv、Gcwを取得する。次に、検出電流変換部170は、ステップo−7において、ゲイン調整方向探索部240で生成した第4のカウント値Cnt4を取得する。次に、検出電流変換部170は、ステップo−8において、ゲイン補正機能起動停止部270で生成した補正機能起動停止フラグFlssを取得する。次に、検出電流変換部170は、ステップo−9において、ステップo−8で取得した補正機能起動停止フラグFlssが、2(起動済)を示しているか否かを判定する。
ステップo−9において、補正機能起動停止フラグFlssが、2(起動済)を示している場合には、検出電流変換部170は、ステップo−10において、ステップo−7で取得した第4のカウント値Cnt4が、2に等しいか否かを判定する。
ステップo−10において、第4のカウント値Cnt4が、2に等しい場合には、検出電流変換部170は、ステップo−11において、ステップo−1で取得したU相電流iu1とステップo−4で取得したU相検出ゲインGcuを前記(3)式に代入し、U相電流iu2を算出する。次に、検出電流変換部170は、ステップo−12において、ステップo−2で取得したV相電流iv1とステップo−5で取得したV相検出ゲインGcvを前記(6)式に代入し、V相電流iv2を算出する。次に、検出電流変換部170は、ステップo−13において、ステップo−11で算出したU相電流iu2とステップo−12で算出したV相電流iv2を前記(7)式に代入し、W相電流iw2を算出する。すなわち、補正機能起動停止フラグFlssが、2(起動済)を示しており、第4のカウント値Cnt4が、2に等しい場合には、検出電流変換部170は、U相とV相にだけ電流センサを取り付けた2相電流検出システムの検出電流変換部と同じように、UVW相電流iu2、iv2、iw2を算出する。
このとき、ゲイン調整部250は、前記(3)式中に示したU相電流センサ50のゲインGsuとU相検出ゲインGcuの乗算値と前記(6)式中に示したV相電流センサ55のゲインGsvとV相検出ゲインGcvの乗算値とが等しくなるように、U相検出ゲインGcuとV相検出ゲインGcvの値を調整する。このように、U相検出ゲインGcuとV相検出ゲインGcvを調整することにより、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvのばらつきが補正される。
一方、ステップo−10において、第4のカウント値Cnt4が、2に等しくない場合には、検出電流変換部170は、ステップo−14において、第4のカウント値Cnt4が、1に等しいか否かを判定する。ステップo−14において、第4のカウント値Cnt4が、1に等しい場合には、検出電流変換部170は、ステップo−15において、ステップo−1で取得したU相電流iu1とステップo−4で取得したU相検出ゲインGcuを前記(3)式に代入し、U相電流iu2を算出する。次に、検出電流変換部170は、ステップo−16において、ステップo−3で取得したW相電流iu1とステップo−6で取得したW相検出ゲインGcwを(34)式に代入し、W相電流iw2を算出する。
次に、検出電流変換部170は、ステップo−17において、ステップo−15で算出したU相電流iu2とステップo−16で算出したW相電流iw2を(35)式に代入し、V相電流iv2を算出する。
すなわち、補正機能起動停止フラグFlssが、2(起動済)を示しており、第4のカウント値Cnt4が、1に等しい場合には、検出電流変換部170は、U相とW相にだけ電流センサを取り付けた2相電流検出システムの検出電流変換部と同じように、UVW相電流iu2、iv2、iw2を算出する。この時、ゲイン調整部250は、前記(3)式中に示したU相電流センサ50のゲインGsuとU相検出ゲインGcuの乗算値と、前記(34)式中に示したW相電流センサ58のゲインGswとW相検出ゲインGcwの乗算値とが等しくなるように、U相検出ゲインGcuとW相検出ゲインGcwの値を調整する。このように、U相検出ゲインGcuとW相検出ゲインGcwを調整することにより、U相電流センサ50のゲインGsuとW相電流センサ58のゲインGswのばらつきが補正される。
一方、ステップo−14において、第4のカウント値Cnt4が、1に等しくない場合には、検出電流変換部170は、ステップo−18において、ステップo−2で取得したV相電流iv2とステップo−5で取得したV相検出ゲインGcvを前記(6)式に代入し、V相電流iv2を算出する。次に、検出電流変換部170は、ステップo−19において、ステップo−3で取得したW相電流iw2とステップo−6で取得したW相検出ゲインGcwを前記(34)式に代入し、W相電流iw2を算出する。次に、検出電流変換部170は、ステップo−20において、ステップo−18で算出したV相電流iv2とステップo−19で算出したW相電流iw2を(36)式に代入し、U相電流iu2を算出する。
すなわち、補正機能起動停止フラグFlssが、2(起動済)を示しており、第4のカウント値Cnt4が、0に等しい場合には、検出電流変換部170は、V相とW相にだけ電流センサを取り付けた2相電流検出システムの検出電流変換部と同じように、UVW相電流iu2、iv2、iw2を算出する。この時、ゲイン調整部250は、前記(6)式中に示したV相電流センサ55のゲインGsvとV相検出ゲインGcvの乗算値と、前記(34)式中に示したW相電流センサ58のゲインGswとW相検出ゲインGcwの乗算値とが等しくなるように、V相検出ゲインGcvとW相検出ゲインGcwの値を調整する。このように、V相検出ゲインGcvとW相検出ゲインGcwを調整することにより、V相電流センサ55のゲインGsvとW相電流センサ58のゲインGswのばらつきが補正される。
また、ステップo−9において、補正機能起動停止フラグFlssが、2(起動済)を示していない場合には、検出電流検出部170は、ステップo−21において、ステップo−1で取得したU相電流iu1とステップo−4で取得したU相検出ゲインGcuを前記(3)式に代入し、U相電流iu2を算出する。次に、検出電流検出部170は、ステップo−22において、ステップo−2で取得したV相電流iv1とステップo−5で取得したV相検出ゲインGcvを前記(6)式に代入し、V相電流iv2を算出する。次に、検出電流検出部170は、ステップo−23において、ステップo−3で取得したW相電流iw1とステップo−6で取得したW相検出ゲインGcwを前記(34)式に代入し、W相電流iw2を算出する。すなわち、補正機能起動停止フラグFlssが、2(起動済)を示していない場合には、検出電流変換部170は、U相とV相とW相全てに電流センサを取り付けた3相電流検出システムの検出電流変換部と同じように、UVW相電流iu2、iv2、iw2を算出する。
(q軸高調波電流iqhおよび各フラグと検出ゲインとの関係の説明)
図24は、U相電流センサ50のゲインGsuと、V相電流センサ55のゲインGsvと、W相電流センサ58のゲインGswと、q軸高調波電流iqhと、ピーク検出フラグFlpkと、補正機能起動停止フラグFlssと、調整状態決定フラグFlstと、調整方向決定フラグFlcmpと、第1のカウント値Cnt1と、第2のカウント値Cnt2と、第3のカウント値Cnt3と、第4のカウント値Cnt4と、上述した手順によって調整されたU相検出ゲインGcuとV相検出ゲインGcvとW相検出ゲインGcwの関係を説明する図である。ここでは、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvとW相電流センサのゲインGswの大小関係は、(37)式のように想定し、時刻t7からU相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvとW相電流センサのゲインGswのばらつきを補正するように設定している。
まず、時刻t7において、補正機能起動停止フラグFlssが、0(停止)から1(起動開始)に変化する。その直後に、補正機能起動停止フラグFlssは、1(起動開始)から2(起動済)に切り替わる。これに伴って、調整状態決定フラグFlstが、0(終了)から5(切替開始)に切り替わると同時に、第4のカウント値Cnt4が0から2に変化する。補正機能起動停止フラグFlssが2(起動済)で、第4のカウント値Cnt4が2の時、UVW相電流iu2、iv2、iw2は、それぞれ前記(3)式、(6)式、(7)式で算出されている。
次に、調整状態決定フラグFlstは、ピーク検出フラグFlpkが、0から1に変化した瞬間に、5(切替開始)から6(切替中)に切り替わる。同時に、第3のカウント値Cnt3が、所定値X4からカウントダウンを開始する。そして、第3のカウント値Cnt3が0になった瞬間に、調整状態決定フラグFlstは、6(切替中)から7(切替完了)に切り替わる。
このとき、q軸高調波電流iqhの負のピーク値Pknは、第1の負の閾値Thn1よりも小さいため、調整状態決定フラグFlstは、7(切替完了)から1(探索)に切り替わる。調整状態決定フラグFlstが、7(切替完了)から1(探索)に切り替った瞬間に、第1のカウント値Cnt1が、所定値X1からカウントダウンを開始する。そして、第1のカウント値Cnt1が、(X1/2)と等しくなった瞬間に、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)から1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)に切り替わる。
そして、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが0の時に、U相検出ゲインGcuは、1(初期値)から正の方向に所定値X2だけ増大され、V相検出ゲインGcvは、1(初期値)から負の方向に所定値X2だけ増大される。ここで、U相検出ゲインGcuが、1(初期値)から正の方向に所定値X2だけ増大し、V相検出ゲインGcvが、1(初期値)から負の方向に所定値X2だけ増大する期間を期間Fとする。
一方、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが1の時に、U相検出ゲインGcuは、1(初期値)から負の方向に所定値X2だけ増大され、V相検出ゲインGcvは、1(初期値)から正の方向に所定値X2だけ増大される。ここで、U相検出ゲインGcuが、1(初期値)から負の方向に所定値X2だけ増大し、V相検出ゲインGcvが、1(初期値)から正の方向に所定値X2だけ増大する期間を期間Gとする。
次に、前記期間Fのq軸高調波電流iqhのピークピーク値の平均値は、前記期間Gのq軸高調波電流iqhのピークピーク値の平均値よりも小さいことがわかる。したがって、第1のカウント値Cnt1が0となり、調整状態決定フラグFlstが1(探索)から2(開始)に切り替わった瞬間に、調整方向決定フラグFlcmpは、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)から0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に切り替わる。そして、調整方向決定フラグFlcmpが、1(U相検出ゲインGcuを負方向に増大し、V相検出ゲインGcvを正方向に増大する信号)から0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)に切り替った直後に、調整状態決定フラグFlstは、2(開始)から3(継続)に切り替わる。そして、調整状態決定フラグFlstが3(継続)で、調整方向決定フラグFlcmpが0の時には、U相検出ゲインGcuは、正の方向に所定値X3の刻みで徐々に増大され、V相検出ゲインGcvは、負の方向に所定値X3の刻みで徐々に増大される。
そして、時刻t8において、q軸高調波電流iqhの正負のピーク値Pkp、Pknが、第3の正負の閾値Thp3、Thn3の範囲内に収まる。これによって、調整状態決定フラグFlstは、3(継続)から0(終了)に切り替わり、U相検出ゲインGcuとV相検出ゲインGcvの調整が終了する。
次に、時刻t8の直後に、調整状態決定フラグFlstが、0(終了)から5(切替開始)に切り替わる。これと同時に、第4のカウント値Cnt4が、2から1に変化する。補正機能起動停止フラグFlssが2(起動済)で、第4のカウント値Cnt4が1の時、UVW相電流iu2、iv2、iw2は、それぞれ(3)式、(35)式、(34)式で算出されている。
次に、調整状態決定フラグFlstは、ピーク検出フラグFlpkが、0から1に変化した瞬間に、5(切替開始)から6(切替中)に切り替わる。同時に、第3のカウント値Cnt3が、所定値X4からカウントダウンを開始する。そして、第3のカウント値Cnt3が、0になった瞬間に、調整状態決定フラグFlstは、6(切替中)から7(切替完了)に切り替わる。
このとき、q軸高調波電流iqhの正のピーク値Pkpは、第1の正の閾値Thp1よりも大きいため、調整状態決定フラグFlstは、7(切替完了)から1(探索)に切り替わる。調整状態決定フラグFlstが、7(切替完了)から1(探索)に切り替った瞬間に、調整方向決定フラグFlcmpが、0(U相検出ゲインGcuを正方向に増大し、V相検出ゲインGcvを負方向に増大する信号)から2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に切り替わると同時に、第1のカウント値Cnt1が、所定値X1からカウントダウンを開始する。そして、第1のカウント値Cnt1が、(X1/2)と等しくなった瞬間に、調整方向決定フラグFlcmpは、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)から3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)に切り替わる。
そして、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが2の時に、U相検出ゲインGcuは、1(初期値)から正の方向に所定値X2だけ増大され、W相検出ゲインGcvは、1(初期値)から負の方向に所定値X2だけ増大される。ここで、U相検出ゲインGcuが、1(初期値)から正の方向に所定値X2だけ増大し、W相検出ゲインGcwが、1(初期値)から負の方向に所定値X2だけ増大する期間を期間Hとする。
一方、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが3の時に、U相検出ゲインGcuは、1(初期値)から負の方向に所定値X2だけ増大され、W相検出ゲインGcwは、1(初期値)から正の方向に所定値X2だけ増大される。ここで、U相検出ゲインGcuが、1(初期値)から負の方向に所定値X2だけ増大し、W相検出ゲインGcwが、1(初期値)から正の方向に所定値X2だけ増大する期間を期間Iとする。
次に、前記期間Hのq軸高調波電流iqhのピークピーク値の平均値は、前記期間Iのq軸高調波電流iqhのピークピーク値の平均値よりも小さいことがわかる。したがって、第1のカウント値Cnt1が0となり、調整状態決定フラグFlstが1(探索)から2(開始)に切り替わった瞬間に、調整方向決定フラグFlcmpは、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)から2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に切り替わる。そして、調整方向決定フラグFlcmpが、3(U相検出ゲインGcuを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)から2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に切り替った直後に、調整状態決定フラグFlstは、2(開始)から3(継続)に切り替わる。そして、調整状態決定フラグFlstが3(継続)で、調整方向決定フラグFlcmpが2の時には、U相検出ゲインGcuは、正の方向に所定値X3の刻みで徐々に増大され、W相検出ゲインGcwは、負の方向に所定値X3の刻みで徐々に増大される。
そして、時刻t9において、q軸高調波電流iqhの正負のピーク値Pkp、Pknが、第3の正負の閾値Thp3、Thn3の範囲内に収まる。これによって、調整状態決定フラグFlstは、3(継続)から0(終了)に切り替わり、U相検出ゲインGcuとW相検出ゲインGcwの調整が終了する。
次に、時刻t8の直後に、調整状態決定フラグFlstは、0(終了)から5(切替開始)に切り替わる。これと同時に、第4のカウント値Cnt4が、1から0に変化する。補正機能起動停止フラグFlssが2(起動済)で、第4のカウント値Cnt4が0の時、UVW相電流iu2、iv2、iw2は、それぞれ前記(36)式、(6)式、(34)式で算出されている。
次に、調整状態決定フラグFlstは、ピーク検出フラグFlpkが、0から1に変化した瞬間に、5(切替開始)から6(切替中)に切り替わる。同時に、第3のカウント値Cnt3が、所定値X4からカウントダウンを開始する。そして、第3のカウント値Cnt3が、0になった瞬間に、調整状態決定フラグFlstは、6(切替中)から7(切替完了)に切り替わる。
このとき、q軸高調波電流iqhの正のピーク値Pkpは、第1の正の閾値Thp1よりも大きいため、調整状態決定フラグFlstは、7(切替完了)から1(探索)に切り替わる。調整状態決定フラグFlstが、7(切替完了)から1(探索)に切り替った瞬間に、調整方向決定フラグFlcmpは、2(U相検出ゲインGcuを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)から4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に切り替わり、第1のカウント値Cnt1が、所定値X1からカウントダウンを開始する。そして、第1のカウント値Cnt1が、(X1/2)と等しくなった瞬間に、調整方向決定フラグFlcmpは、4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)から5(V相検出ゲインGcvを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)に切り替わる。
そして、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが4の時に、V相検出ゲインGcvは、1(初期値)から正の方向に所定値X2だけ増大され、W相検出ゲインGcwは、1(初期値)から負の方向に所定値X2だけ増大される。ここで、V相検出ゲインGcvが、1(初期値)から正の方向に所定値X2だけ増大し、W相検出ゲインGcwが、1(初期値)から負の方向に所定値X2だけ増大する期間を期間Jとする。
一方、調整状態決定フラグFlstが1(探索)で、調整方向決定フラグFlcmpが5の時に、V相検出ゲインGcvは、1(初期値)から負の方向に所定値X2だけ増大され、W相検出ゲインGcwは、1(初期値)から正の方向に所定値X2だけ増大される。ここで、V相検出ゲインGcvが、1(初期値)から負の方向に所定値X2だけ増大し、W相検出ゲインGcwが、1(初期値)から正の方向に所定値X2だけ増大する期間を期間Kとする。
次に、前記期間Jのq軸高調波電流iqhのピークピーク値の平均値は、前記期間Kのq軸高調波電流iqhのピークピーク値の平均値よりも小さいことがわかる。したがって、第1のカウント値Cnt1が0となり、調整状態決定フラグFlstが、1(探索)から2(開始)に切り替わった瞬間に、調整方向決定フラグFlcmpは、5(V相検出ゲインGcvを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)から4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に切り替わる。そして、調整方向決定フラグFlcmpが、5(V相検出ゲインGcvを負方向に増大し、W相検出ゲインGcwを正方向に増大する信号)から4(V相検出ゲインGcvを正方向に増大し、W相検出ゲインGcwを負方向に増大する信号)に切り替った直後に、調整状態決定フラグFlstは、2(開始)から3(継続)に切り替わる。そして、調整状態決定フラグFlstが3(継続)で、調整方向決定フラグFlcmpが4の時には、V相検出ゲインGcvは、正の方向に所定値X3の刻みで徐々に増大され、W相検出ゲインGcwは、負の方向に所定値X3の刻みで徐々に増大される。
そして、時刻t10において、q軸高調波電流iqhの正負のピーク値Pkp、Pknが、第3の正負の閾値Thp3、Thn3の範囲内に収まる。これによって、調整状態決定フラグFlstは、3(継続)から0(終了)に切り替わり、V相検出ゲインGcvとW相検出ゲインGcwの調整が終了する。
次に、時刻t10の直後に、調整状態決定フラグFlstが、0(終了)から5(切替開始)に切り替わる。これと同時に、第4のカウント値Cnt4は、0から2に変化する。補正機能起動停止フラグFlssが2(起動済)で、第4のカウント値Cnt4が2の時、UVW相電流iu2、iv2、iw2は、それぞれ前記(3)式、(6)式、(7)式で算出されている。
次に、ピーク検出フラグFlpkが、0から1に変化した瞬間に、調整状態決定フラグFlstは、5(切替開始)から6(切替中)に切り替わり、第3のカウント値Cnt3が、所定値X4からカウントダウンを開始する。そして、第3のカウント値Cnt3が0になった瞬間に、調整状態決定フラグFlstは、6(切替中)から7(切替完了)に切り替わる。このとき、q軸高調波電流iqhの正負のピーク値Pkp、Pknは、第1の正負の閾値Thp1、Thn1の範囲内に収まっているため、調整状態決定フラグFlstは、7(切替完了)から0(終了)に切り替わると同時に、第2のカウント値Cnt2が3から2に変化する。
次に、時刻t11の直後に、調整状態決定フラグFlstは、0(終了)から5(切替開始)に切り替わる。同時に、第4のカウント値Cnt4が、2から1に変化する。補正機能起動停止フラグFlssが2(起動済)で、第4のカウント値Cnt4が1の時、UVW相電流iu2、iv2、iw2は、それぞれ(3)式、(35)式、(34)式で算出されている。
次に、ピーク検出フラグFlpkが、0から1に変化した瞬間に、調整状態決定フラグFlstは、5(切替開始)から6(切替中)に切り替わり、第3のカウント値Cnt3が、所定値X4からカウントダウンを開始する。そして、第3のカウント値Cnt3が、0になった瞬間に、調整状態決定フラグFlstは、6(切替中)から7(切替完了)に切り替わる。この時、q軸高調波電流iqhの正負のピーク値Pkp、Pknは、第1の正負の閾値Thp1、Thn1の範囲内に収まっているため、調整状態決定フラグFlstは、7(切替完了)から0(終了)に切り替わる。同時に、第2のカウント値Cnt1が2から1に変化する。
次に、時刻t12の直後に、調整状態決定フラグFlstは、0(終了)から5(切替開始)に切り替わる。同時に、第4のカウント値Cnt4は、1から0に変化する。補正機能起動停止フラグFlssが2(起動済)で、第4のカウント値Cnt4が1の時、UVW相電流iu2、iv2、iw2は、それぞれ前記(6)式、(36)式、(34)式で算出されている。
次に、ピーク検出フラグFlpkが、0から1に変化した瞬間に、調整状態決定フラグFlstは、5(切替開始)から6(切替中)に切り替わり、第3のカウント値Cnt3が、所定値X4からカウントダウンを開始する。そして、第3のカウント値Cnt3が0になった瞬間に、調整状態決定フラグFlstは、6(切替中)から7(切替完了)に切り替わる。この時、q軸高調波電流iqhの正負のピーク値Pkp、Pknは、第1の正負の閾値Thp1、Thn1の範囲内に収まっているため、調整状態決定フラグFlstは、7(切替完了)から0(終了)に切り替わる。同時に、第2のカウント値Cnt1が1から0に変化する。
時刻t13において、第2のカウント値Cnt2が0となったため、補正機能起動停止フラグFlssは、2(起動済)から0(停止)に変化し、補正機能が停止される。なお、補正機能起動停止フラグFlssが0(停止)の時、UVW相電流iu2、iv2、iw2は、それぞれ前記(3)式、(6)式、(34)式で算出されている。
このように、U相検出ゲインGcuとV相検出ゲインGcvとW相検出ゲインGcwを調整することにより、U相電流センサ50のゲインGsuとU相検出ゲインGcuとの乗算値と、V相電流センサ55のゲインGsvとV相検出ゲインGcvと、W相電流センサ58のゲインGswとW相検出ゲインGcwとの乗算値を、ほぼ一致させることができる。すなわち、U相電流センサ50のゲインGsvとV相電流センサ55のゲインGsvとW相電流センサ58のゲインGswのばらつきを補正することができる。
また、q軸電流iqに含まれているモータ60の回転子64の電気角周波数feの2倍の周波数の高調波電流iqhは、U相電流センサ50のゲインGsuとV相電流センサ55のゲインGsvのばらつきが補正され始めた直後、もしくは、U相電流センサ50のゲインGsuとW相電流センサ55のゲインGswのばらつきが補正され始めた直後、もしくは、V相電流センサ50のゲインGsvとW相電流センサ55のゲインGswのばらつきが補正され始めた直後に、一定期間だけ減少(もしくは、増大)してから一定期間だけ増大(もしくは、減少)した後、徐々に減少する波形となる。