以下、図面を参照して、本発明に係るインバータ制御装置の実施の形態について説明する。なお、各図において同一要素については同一の符号を記し、重複する説明は省略する。
図1は、本実施形態にかかる車両システム及びインバータ制御装置の構成を説明する図である。図1を用いて、車両システムの構成要素について説明する。
本実施形態にかかる車両システムは、バッテリ10と、平滑キャパシタ20と、インバータ40と、電流センサ50と、モータ60と、磁極位置センサ70と、モータの出力軸80と、トランスミッション90と、クランクシャフト100と、エンジン110と、プロペラシャフト120と、ディファレンシャルギア130と、ドライブシャフト140と、駆動輪150と、インバータ制御装置160と、を有する。
バッテリ10は、ニッケル水素バッテリやリチウムイオンバッテリなどが用いられる。平滑キャパシタ20は、フィルムコンデンサや電解コンデンサなどが用いられる。電流センサ50は、ホール素子やカレントトランスなどが用いられる。モータ60は、永久磁石同期モータや誘導機などが用いられる。磁極位置センサ70は、レゾルバやエンコーダなどが用いられる。
インバータ40の直流側には、バッテリ10及び平滑キャパシタ20が接続される。バッテリ10は、インバータ40に直流電圧を印加するものである。インバータ40の交流側には、電流センサ50を介して、モータ60の固定子に巻かれた3相巻線61、62、63が接続される。
インバータ40は、インバータ制御装置160で生成されたスイッチング信号Sup、Sun、Svp、Svn、Swp、Swnに基づいて、各相上下アームのスイッチング素子41、42、43、44、45、46をオンもしくはオフする。これにより、インバータ40は、バッテリ10から印加された直流電圧を可変電圧・可変周波数の3相交流電圧に変換する。変換された3相交流電圧は、モータ60の固定子に巻かれた3相巻線61、62、63に印加される。3相巻線61、62、63に印加された33相交流電圧は、モータ60の固定子に巻かれた3相巻線61、62、63に3相交流電流iu1、iv1、iw1を発生させる。モータ60は、固定子に巻かれた3相巻線61、62、63に流れる3相交流電流iu1、iv1、iw1により回転磁界を生成する。生成された回転磁界により、回転子64は、加速もしくは減速され、モータ60のトルクを生成する。生成されたモータ60のトルクは、モータ60の出力軸80を介して、トランスミッション90に伝達される。
エンジン110は、車両制御装置(不図示)から受信したエンジン110のトルク指令に応じて、燃料の吸気、圧縮、爆発、排気を制御し、エンジン110のトルクを生成する。生成したエンジン110のトルクは、クランクシャフト100を介して、トランスミッション90に伝達される。
トランスミッション90は、伝達されたモータ60のトルクとエンジン110のトルクとを加算したトータルトルクを、プロペラシャフト120を介して、ディファレンシャルギア130に伝達する。
ディファレンシャルギア130は、トランスミッション90から伝達されたトータルトルクを、駆動軸トルクに変換し、ドライブシャフト140に伝達する。ドライブシャフト140は、伝達された駆動軸トルクにより、車両の駆動輪150の回転を加速もしくは減速させ、車両(不図示)を加速もしくは減速させる。
また、モータ60は、トランスミッション90を介して、モータ60の出力軸80に伝達されたエンジン110のトルクを電力に変換する。変換された電力は、インバータ40を介してバッテリ10に充電することができる。また、モータ60は、ドライブシャフト140とディファレンシャルギア130とプロペラシャフト120とトランスミッション90を順に介して、モータ60の出力軸80に伝達された駆動輪150の回転エネルギーを電力に変換する。変換された電力は、インバータ40を介してバッテリ10に充電することができる。
ここで、インバータ40を介して、バッテリ10からモータ60に電力を供給するモードを力行モードと定義する。そして、インバータ40を介して、モータ60で発電した電力をバッテリ10に充電するモードを回生モードと定義する。ハイブリッド自動車は、低燃費化を実現するために、車両の発進時や加速時に、力行モードを最大限に利用し、車両の減速時には回生モードを最大限に利用する。
本実施形態にかかるインバータ40の主回路は、U相上アームのスイッチング素子41と、U相下アームのスイッチング素子42と、V相上アームのスイッチング素子43と、V相下アームのスイッチング素子44と、W相上アームのスイッチング素子45と、W相下アームのスイッチング素子46を有する。
スイッチング素子41、42、43、44、45、46は、絶縁ゲートバイポーラトランジスタ(IGBT)や金属酸化膜型電界効果トランジスタ(MOSFET)などと、ダイオードを組み合わせて構成されている。例えば、スイッチング素子41、42、43、44、45、46に、IGBTとダイオードを用いるならば、スイッチング素子41、42、43、44、45、46は、IGBTのコレクタ側とダイオードのカソード側を接続し、IGBTのエミッタ側とダイオードのアノード側を接続して構成される。本実施形態では、IGBTとダイオードを用いる構成で説明する。
インバータ40の主回路は、スイッチング素子41と42からなるU相直列回路と、スイッチング素子43と44からなるV層直列回路と、スイッチング素子45と46からなるW相直列回路と、を並列に接続した構成である。
スイッチング素子41のIGBTは、スイッチング信号Supに基づいて、オンまたはオフする。スイッチング素子42のIGBTは、スイッチング信号Sunに基づいて、オンまたはオフする。スイッチング素子43のIGBTは、スイッチング信号Svpに基づいて、オンまたはオフする。スイッチング素子44のIGBTは、スイッチング信号Svnに基づいて、オンまたはオフする。スイッチング素子45のIGBTは、スイッチング信号Swpに基づいて、オンまたはオフする。スイッチング素子46のIGBTは、スイッチング信号Swnに基づいて、オンまたはオフする。
本実施形態にかかるインバータ制御装置160は、電流検出部170、3相/d−q軸変換部180、磁極位置検出部190、磁極位置推定部200、モータ回転速度演算部210、d−q軸電流推定部220、d−q軸電流制御部240、d−q軸/3相変換部250、スイッチング信号生成部260、カウンタ270を有する。
インバータ制御装置160は、カウンタ270において、予め定められたマイコンのクロック周波数でカウントアップするカウント値CNT1を生成する。そして、インバータ制御装置160は、カウンタ270において、生成したカウント値CNT1が予め定められた中間値Mid1と一致したときに、カウントアップするカウント値CNT2を生成する。
電流検出部170には、電流センサ50で得られた3相交流電流iu1、iv1、iw1が入力される。電流検出部170は、インバータ40のスイッチング周期Tswの複数回に1回の頻度で、3相交流電流iu1、iv1、iw1を検出する。電流検出部170は、相交流電流の検出値iu2、iv2、iw2を出力する。
3相/d−q軸変換部180には、電流検出部170で検出された相交流電流の検出値iu2、iv2、iw2が入力される。また、3相/d−q軸変換部180には、後述する磁極位置検出部190から出力された回転子64の磁極位置の検出値θe2と、後述する磁極位置推定部200から出力された回転子64の磁極位置の推定値θe3とが入力される。3相/d−q軸変換部180は、モータ60のd−q軸電流id2、iq2を算出する。
磁極位置検出部190には、磁極位置センサ70で得られた回転子64の磁極位置θe1が入力される。磁極位置検出部190は、インバータ40のスイッチング周期Tswの複数回に1回の頻度で、回転子64の磁極位置θe1を検出する。磁極位置検出部190は、回転子64の磁極位置の検出値θe2を出力する。
磁極位置推定部200には、磁極位置検出部190から出力された回転子64の磁極位置の検出値θe2が入力される。磁極位置推定部200は、磁極位置検出部190で既に検出した検出値θe2の過去値に基づいて、回転子64の磁極位置の推定値θe3を算出する。なお、磁極位置検出部190で既に検出した検出値θe2の過去値ではなく、磁極位置推定部200で既に算出した推定値θe3の過去値に基づいて、回転子64の磁極位置の推定値θe3を算出する構成としてもよい。
モータ回転速度演算部210には、磁極位置検出部190から出力された検出値θe2と、磁極位置推定部200で算出された推定値θe3と、が入力される。モータ回転速度演算部210は、回転子64の電気角速度ωeを算出する。
d−q軸電流推定部220には、3相/d−q軸変換部180で算出されたd−q軸電流id2、iq2と、モータ回転速度演算部210で算出された電気角速度ωeと、が入力される。また、d−q軸電流推定部220には、後述するd−q軸電流制御部240で既に生成されたd−q軸電圧指令vd *、vq *の過去値が入力される。d−q軸電流推定部220は、d−q軸電流id2、iq2の過去値、電気角速度ωe、d−q軸電圧指令vd *、vq *の過去値、およびモータ60の固定子に巻かれた3相巻線61、62、63の抵抗値やインダクタンス等のモータパラメータに基づいて、d−q軸電流の推定値id3、iq3を算出する。なお、3相/d−q軸変換部180で既に算出したd−q軸電流id2、iq2の過去値ではなく、d−q軸電流推定部220で既に算出したd−q軸電流の推定値id3、iq3の過去値に基づいて、d−q軸電流の推定値id3、iq3を算出する構成としてもよい。
d−q軸電流制御部240には、3相/d−q軸変換部180で算出されたd−q軸電流id2、iq2と、d−q軸電流推定部220で算出されたd−q軸電流の推定値id3、iq3と、d−q軸電流指令id *、iq *と、が入力される。d−q軸電流制御部240は、モータ60に印加するd−q軸電圧指令vd *、vq *を算出する。
d−q軸/3相変換部250には、d−q軸電流制御部240で算出されたd−q軸電圧指令vd *、vq *と、磁極位置検出部190で検出された磁極位置の検出値θe2と、磁極位置推定部200で算出された磁極位置の推定値θe3と、が入力される。d−q軸/3相変換部250は、モータ60の固定子に巻かれた3相巻線61、62、63に印加する3相交流電圧指令vu *、vv *、vw *を算出する。
スイッチング信号生成部260には、d−q軸/3相変換部250で算出した3相交流電圧指令vu *、vv *、vw *が入力される。スイッチング信号生成部260は、スイッチング信号Sup、Sun、Svp、Svn、Swp、Swnを生成する。スイッチング信号Sup、Sun、Svp、Svn、Swp、Swnは、前述の通り、スイッチング素子41、42、43、44、45、46を構成するIGBTのオンとオフを制御する。
図2は、本実施形態に係るインバータ制御装置160のカウンタ270の処理手順を説明する図である。図2が説明する処理は、クロック信号に基づいて、後述する図3に示すようなカウント値CNT1及びCNT2の波形を求めるための手順である。
ステップa1において、カウンタ270は、マイコンのクロック信号がHighからLowに変化したか否かを判定する。マイコンのクロック信号がHighからLowに変化した場合には、カウンタ270は、ステップa2を実行する。マイコンのクロック信号がHighからLowに変化していない場合は、カウンタ270は、ステップa1に戻る。
ステップa2において、カウンタ270は、現在のカウント値CNT1に正の所定値X1を加算する(カウント値CNT1をカウントアップする)。続いて、カウンタ270は、ステップa3を実行する。
ステップa3において、カウンタ270は、ステップa2で算出したカウント値CNT1が所定のピーク値Pk1よりも大きいか否かを判定する。カウント値CNT1が所定のピーク値Pk1よりも大きい場合には、カウンタ270は、ステップa4を実行する。カウント値CNT1が所定のピーク値Pk1よりも大きくない場合には、カウンタ270は、ステップa5を実行する。
ステップa4において、カウンタ270は、カウント値CNT1を所定のボトム値Bot1に設定する。続いて、カウンタ270は、ステップa5を実行する。
ステップa5において、カウンタ270は、カウント値CNT1が所定の中間値であるMid1に一致したか否かを判定する。ここで、所定の中間値Mid1とは、所定のピーク値Pk1と所定のボトム値Bot1の中間値である。所定の中間値Mid1は、(1)式を用いて予め設定されている。
カウント値CNT1が所定の中間値であるMid1に一致した場合には、カウンタ270は、ステップa6を実行する。カウント値CNT1が所定の中間値であるMid1に一致していない場合には、カウンタ270は、ステップa1に戻る。
ステップa6において、カウンタ270は、現在のカウント値CNT2に正の所定値X2を加算する(カウント値CNT2をカウントアップする)。続いて、カウンタ270は、ステップa7を実行する。
ステップa7において、カウンタ270は、ステップa6で算出されたカウント値CNT2が所定のピーク値Pk2よりも大きいか否かを判定する。ステップa6で算出されたカウント値CNT2が所定のピーク値Pk2よりも大きい場合には、カウンタ270は、ステップa8を実行する。ステップa6で算出されたカウント値CNT2が所定のピーク値Pk2よりも大きくない場合には、カウンタ270は、ステップa1に戻る。
ステップa8において、カウンタ270は、カウント値CNT2を所定のボトム値Bot2に設定する。続いて、カウンタ270は、ステップa1に戻る。
なお、上述した本実施例におけるカウンタ270では、ステップa1において、マイコンのクロック信号がHighからLowに変化した場合に、ステップa2以降の処理を実行するようにしたが、マイコンのクロック信号がLowからHighに変化した場合に、ステップa2以降の処理を実行するようにしてもよい。
所定のピーク値Pk1、正の所定値X1、所定のボトム値Bot1は、インバータ40のスイッチング周期Tswとカウント値CNT1の周期とが一致するように、(2)式で予め設定されている。なお、(2)式中のTclkは、マイコンのクロック信号の周期である。
所定のピーク値Pk2、正の所定値X2、所定のボトム値Bot2は、カウント値CNT1の周期に対するカウント値CNT2の周期が所定の倍数Mul1となるように、(3)式で予め設定されている。
図3は、本実施形態に係るインバータ制御装置160のカウンタ270で生成したカウント値CNT1とCNT2の波形を説明する図である。
上述したように、カウント値CNT1は、マイコンのクロック信号の立下りでカウントアップされる。そして、カウント値CNT1は、所定のピーク値Pk1よりも大きくなったときに、所定のボトム値Bot1にリセットされる。このように生成されたカウント値CNT1の周期は、インバータ40のスイッチング周期Tswと一致する。
カウント値CNT2は、カウント値CNT1が所定の中間値Mid1と一致したときにカウントアップされる。そして、カウント値CNT2は、所定のピーク値Pk2よりも大きくなったときに、所定のボトム値Bot2にリセットされている。このように生成されたカウント値CNT2の周期は、カウント値CNT1の周期に対して所定の倍数Mul1になる。
本実施例では、所定の倍数Mul1を3に設定したときのカウント値CNT2の波形を説明したが、所定の倍数Mul1は3に限らず、2以上の整数であれば問題ない。
図4は、本実施形態に係るインバータ制御装置160の全体の処理手順を説明する図である。図4が示す処理は、U、V、Wの三相交流電流を検出する処理を、インバータ回路のスイッチング周期よりも長い周期であるカウント値CNT2の周期ごとに実行するための処理を表す。本実施例では、カウント値CNT2の値が所定のピーク値Pk2から所定のボトム値Bot2に変化したタイミングで、三相交流電流検出処理を行う(後述する図10参照)。以下、処理手順を順番に説明する。
ステップb1において、インバータ制御装置160は、カウンタ270で生成したカウント値CNT2が所定のピーク値Pk2から所定のボトム値Bot2に変化したか否かを判定する。カウント値CNT2がPk2からBot2に変化した場合には、インバータ制御装置160は、ステップb2を実行する。カウント値CNT2がPk2からBot2に変化していない場合には、インバータ制御装置160は、ステップb6を実行する。
ステップb2において、インバータ制御装置160の電流検出部170は、電流センサ50から出力されたU相交流電流iu1を検出する。続いて、インバータ制御装置160は、ステップb3を実行する。
ステップb3において、インバータ制御装置160の電流検出部170は、電流センサ50から出力されたV相交流電流iv1を検出する。続いて、インバータ制御装置160は、ステップb4を実行する。
ステップb4において、インバータ制御装置160の電流検出部170は、電流センサ50から出力されたW相交流電流iw1を検出する。続いて、インバータ制御装置160は、ステップb5を実行する。なお、上述したステップb2からb4は、順番を入れ替えても問題ない。
ステップb5において、インバータ制御装置160の磁極位置検出部190は、磁極位置センサ70から出力された回転子64の磁極位置θe1を検出する。続いて、インバータ制御装置160は、ステップb1に戻る。
ステップb6において、インバータ制御装置160は、後述する図5に示す処理を実行する。続いて、インバータ制御装置160は、ステップb1に戻る。
ここで、カウンタ270で生成したカウント値CNT2が所定のピーク値Pk2から所定のボトム値Bot2に変化した場合には、インバータ制御装置160は、ステップb6よりも優先的に、ステップb2からb5を実施する。すなわち、インバータ制御装置160は、後述する図5に示す処理を実行している最中であっても、カウント値CNT2がPk2からBot2に変化した場合には、図5に示す処理を停止し、ステップb2からb5を優先的に実行する。そして、インバータ制御装置160は、ステップb2からb5を終了させた後に、図5に示す処理を再開する。
このように、ステップb2からb5をステップb6よりも優先的に実行することにより、カウント値CNT2が所定のピーク値Pk2から所定のボトム値Bot2に変化した場合には必ず、3相交流電流iu1、iv1、iw1と、磁極位置θe1を検出することができる。
また、カウント値CNT2がPk2からBot2に変化した場合に3相交流電流iu1、iv1、iw1と磁極位置θe1を検出することにより、3相交流電流iu1、iv1、iw1と磁極位置θe1の検出頻度を、インバータ40のスイッチング周期Tswの複数回に1回の頻度に低減することができる。例えば、所定の倍数Mul1を予め3に設定した場合には、インバータ40のスイッチング周期Tswの3回に1回の頻度で、3相交流電流iu1、iv1、iw1と磁極位置θe1を検出することができる。
また、インバータ制御装置160のスイッチング信号生成部260は、ステップb1からb6と同時に、ステップb7において、インバータ40の各相上下アームのスイッチング素子41〜46を構成するIGBTのスイッチング信号Sup、Sun、Svp、Svn、Swp、Swnを生成する。ステップb7におけるスイッチング信号を生成する詳細な手順は、図6乃至図8にて後述する。
図5は、図4に示したステップb6の処理を説明する図である。図5が表す処理は、三相交流電流を検出しない期間におけるインバータ制御装置160の処理手順を示すものである。本実施例では、インバータ制御装置160は、インバータ回路のスイッチング周期と同じ周期で、デューティ設定処理を実行し、そして三相交流電流を検出しない期間において磁極位置推定処理及び電流推定処理を実行する動作を基本とする(後述する図10参照)。以下、処理手順を順番に説明する。
ステップb6-1において、インバータ制御装置160は、カウンタ270で生成したカウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化したか否かを判定する。カウント値CNT1がPk1からBot1に変化した場合には、インバータ制御装置160は、ステップb6-2を実行する。
ステップb6-2において、インバータ制御装置160は、後述するステップb6-7により演算した閾値Uonof、Uofon、Vonof、Vofon、Wonof、Wofonを、デューティとして設定する。続いて、インバータ制御装置160は、ステップb6-3を実行する。
ここで、閾値Uonof、Vonof、Wonofは、インバータ40の各相上アームのスイッチング素子41、43、45を構成するIGBTのスイッチング状態をオンにするとともに、インバータ40の各相下アームのスイッチング素子42、44、46を構成するIGBTのスイッチング状態をオフにするための閾値である。また、閾値Uofon、Vofon、Wofonは、インバータ40の各相上アームのスイッチング素子41、43、45を構成するIGBTのスイッチング状態をオフにするとともに、インバータ40の各相下アームのスイッチング素子42、44、46を構成するIGBTのスイッチング状態をオンにするための閾値である。
上述した図4のステップb7において、インバータ制御装置160のスイッチング信号生成部260は、閾値Uonofに基づいて、スイッチング信号Supをオンに設定するとともに、スイッチング信号Sunをオフに設定する。また、閾値Uofonに基づいて、スイッチング信号Supをオフに設定するとともに、スイッチング信号Sunをオンに設定する。同様にして、閾値Vonof、Vofonに基づいて、スイッチング信号Svp、Svnのオン・オフを設定し、閾値Wonof、Wofonに基づいて、スイッチング信号Swp、Swnのオン・オフを設定する。
ステップb6-3において、インバータ制御装置160は、カウンタ270で生成したカウント値CNT2が所定のボトム値Bot2に一致しているか否かを判定する。カウント値CNT2が所定のボトム値Bot2に一致している場合には、インバータ制御装置160は、ステップb6-4を実行する。カウント値CNT2が所定のボトム値Bot2に一致していない場合には、インバータ制御装置160は、ステップb6-9を実行する。
ステップb6-4において、インバータ制御装置160の3相/d−q軸変換部180は、上述した図4のステップb2からb5で検出した、3相交流電流の検出値iu2、iv2、iw2と、磁極位置の検出値θe2を(4)式に代入し、モータ60のd−q軸電流id2、iq2を算出する。続いて、インバータ制御装置160は、ステップb6-5を実行する。
ステップb6-5において、インバータ制御装置160のd−q軸電流制御部240は、d−q軸電流指令id *、iq *と、ステップb6-4で算出したd−q軸電流id2、iq2を(5)式に代入し、d−q軸電流偏差Δid2、Δiq2を算出する。
また、ステップb6-5において、インバータ制御装置160のd−q軸電流制御部240は、(5)式で算出したd−q軸電流偏差Δid2、Δiq2と、所定のd−q軸比例ゲインGpd、Gpqと、所定のd−q軸積分ゲインGid、Giqとを(6)式に代入し、d−q軸電圧指令vd *、vq *を算出する。続いて、インバータ制御装置160は、ステップb6-6を実行する。ここで、インバータ制御装置160に用いる数式は、離散系で表した方が望ましいが、説明を簡単化するために、本実施例では、連続系の数式を用いて説明する。
ステップb6-6において、インバータ制御装置160のd−q軸/3相変換部250は、ステップb6-5で算出したd−q軸電圧指令vd *、vq *と、上述した図4のステップb5で検出した回転子64の磁極位置の検出値θe2を(7)式に代入し、3相交流電圧指令vu *、vv *、vw *を算出する。続いて、インバータ制御装置160は、ステップb6-7を実行する。
ステップb6-7において、インバータ制御装置160のスイッチング信号生成部260は、所定の中間値Mid1と、インバータ40の入力電圧Vdcと、ステップb6-6で算出した3相交流電圧指令vu *、vv *、vw *と、所定のピーク値Pk1と、所定のボトム値Bot1とを(8)式に代入し、閾値Uofon、Vofon、Wofonを算出する。
また、ステップb6-7において、インバータ制御装置160のスイッチング信号生成部260は、(8)式と同様に、(9)式に基づいて、閾値Uonof、Vonof、Wonofを算出する。続いて、ンバータ制御装置160は、ステップb6-8を実行する。
ステップb6-8において、インバータ制御装置160は、フェールセーフなどのその他の処理を実行する。その後、インバータ制御装置160は、ステップb6-1に戻って処理を実行する。
ステップb6-9において、インバータ制御装置160の磁極位置推定部200は、カウンタ270で生成したカウント値CNT2が所定のボトム値Bot2に正の所定値X2を加算した値と等しいか否かを判定する。カウント値CNT2がBot2にX2を加算した値と等しい場合には、磁極位置推定部200は、図4のステップb5により既に検出した磁極位置の検出値θe2の中の最新値θe2old1と、本ステップ(ステップb6-9)により既に算出した磁極位置の推定値θe3の中の最新値θe3old1を(10)式に代入し、モータ60の回転子64の磁極位置の推定値θe3を算出する。これは、カウント値CNT2がBot2にX2を加算した値と等しい場合は、カウント値CNT2が最後にPk2からBot2に変化した後、最初に磁極位置推定処理を実行することになるため、磁極位置の推定値θe3より磁極位置の検出値θe2の方が最新の値であるからである。
一方、ステップb6-9において、カウント値CNT2がBot2にX2を加算した値と等しくない場合には、磁極位置推定部200は、カウント値CNT2がBot2に正の所定値X2の2倍の値を加算した値と等しいか否かを判定する。カウント値CNT2がBot2にX2の2倍の値を加算した値と等しい場合には、磁極位置推定部200は、図4のステップb5により既に検出した磁極位置の検出値θe2の中の最新値θe2old1と、本ステップ(ステップb6-9)により既に算出した磁極位置の推定値θe3の中の最新値θe3old1を(11)式に代入し、モータ60の回転子64の磁極位置の推定値θe3を算出する。
カウント値CNT2がBot2にX2の2倍の値を加算した値と等しくない場合には、磁極位置推定部200は、本ステップ(ステップb6-9)により既に算出した磁極位置の推定値θe3の中の最新値θe3old1と、本ステップにより既に算出した磁極位置の推定値θe3の中の2番目に新しい値θe3old2を(12)式に代入し、磁極位置の推定値θe3を算出する。
以上説明したように、ステップb6-9において、インバータ制御装置160の磁極位置推定部200は、カウンタ270で生成したカウント値CNT2の状態に応じて、上述した(10)式から(12)式のいずれかを用いて、モータ60の回転子64の磁極位置の推定値θe3を算出する。続いて、インバータ制御装置160は、ステップb6-10を実行する。
ステップb6-10において、インバータ制御装置160のモータ回転速度演算部210は、ステップb6-9により算出した回転子64の磁極位置の推定値θe3を(13)式に代入し、回転子64の電気角速度ωeを算出する。続いて、インバータ制御装置160は、ステップb6-11を実行する。
ステップb6-11において、インバータ制御装置160のd−q軸電流推定部220は、カウンタ270で生成したカウント値CNT2が所定のボトム値Bot2に正の所定値X2を加算した値と等しいか否かを判定する。カウント値CNT2がBot2にX2を加算した値と等しい場合には、d−q軸電流推定部220は、ステップb6-4により既に演算したd−q軸電流id2、iq2の中の最新値id2old1、iq2old1と、ステップb6-10により算出した回転子64の電気角速度ωeと、ステップb6-5により既に算出したd−q軸電圧指令vd *、vq *の中の最新値vdold1 *、vqold1 *と、あらかじめインバータ制御装置のメモリ(不図示)に記憶させておいたモータ60の3相巻線61、62、63の抵抗値Rと、d−q軸インダクタンスLd、Lqと、誘起電圧定数Keとを(14)式に代入し、d−q軸電流の推定値id3、iq3を算出する。
一方、カウント値CNT2がBot2にX2を加算した値と等しくない場合には、d−q軸電流推定部220は、本ステップ(ステップb6-11)により既に算出したd−q軸電流の推定値id3、iq3の中の最新値id3old1、iq3old1と、ステップb6-10により算出した回転子64の電気角速度ωeと、ステップb6-5により既に算出したd−q軸電圧指令vd *、vq *の中の最新値vdold1 *、vqold1 *と、あらかじめインバータ制御装置のメモリ(不図示)に記憶させておいたモータ60の3相巻線61、62、63の抵抗値Rと、d−q軸インダクタンスLd、Lqと、誘起電圧定数Keを(15)式に代入し、d−q軸電流の推定値id3、iq3を算出する。
また、上記の(14)式および(15)式に代入するモータ60の3相巻線61、62、63の抵抗値Rと、d−q軸インダクタンスLd、Lqは、モータ60の固定子の温度に対応させて予めインバータ制御装置のメモリ(不図示)に記憶させておき、サーミスタなどで検出したモータ60の固定子の温度に対応した値を代入することとしても良い。
また、3相交流電流iu1、iv1、iw1を検出しない期間のd−q軸電流を推定することができれば、(14)式および(15)式に限らず、他のd−q軸電流推定式を用いても問題ない。
ステップb6-11においてd−q軸電流を推定した後、d−q軸電流制御部240は、ステップb6-5において、d−q軸電流偏差Δid3、Δiq3を算出する。d−q軸電流偏差Δid3、Δiq3は、d−q軸電流指令id *、iq *と、ステップb6-11で算出したd−q軸電流の推定値id3、iq3を(16)式に代入して算出する。
また、ステップb6-5において、d−q軸電流制御部240は、(16)式で算出したd−q軸電流偏差Δid3、Δiq3と、所定のd−q軸比例ゲインGpd、Gpqと、所定のd−q軸積分ゲインGid、Giqを(17)式に代入し、d−q軸電圧指令vd *、vq *を算出する。続いて、インバータ制御装置160は、ステップb6-6を実行する。
ステップb6-6において、d−q軸/3相変換部250は、ステップb6-5により算出したd−q軸電圧指令vd *、vq *と、ステップb6-9により算出した回転子64の磁極位置の推定値θe3を(18)式に代入し、3相交流電圧指令vu *、vv *、vw *を算出する。続いて、インバータ制御装置160は、ステップb6-7を実行する。
ステップb6-7において、スイッチング信号生成部260は、上述したように、(8)式および(9)式に基づいて閾値Uofon、Vofon、Wofon、Uonof、Vonof、Wonofを算出する。そして、インバータ制御装置160は、ステップb6-8において、上述したように、フェールセーフなどのその他の処理を実行する。その後、インバータ制御装置160は、ステップb6−1に戻って処理を実行する。
図6は、図4に示したステップb7の処理において、インバータ40のU相上下アームのスイッチング信号Sup、Sunの生成手順を説明する図である。図6に示される処理は、後述する図9の波形に示されるように、カウント値CNT1と閾値Uofon及びUonofを比較して、スイッチング信号Sup及びSunの波形を算出する処理である。
インバータ40のU相上下アームのスイッチング素子41、42のIGBTの上下アーム短絡を防止するためには、スイッチング信号Supとスイッチング信号Sunにデッドタイムを設定することが望ましいが、本実施例では、デッドタイムを省略して説明する。
ステップb7-1において、インバータ制御装置160のスイッチング信号生成部260は、上述した図5のステップb6-7において演算した閾値Uofonが、(1)式により設定した所定の中間値Mid1よりも大きいか否かを判定する。閾値Uofonが所定の中間値Mid1よりも大きい場合には、スイッチング信号生成部260は、ステップb7-2を実行する。閾値Uofonが所定の中間値Mid1よりも大きくない場合には、スイッチング信号生成部260は、ステップb7-11を実行する。
ステップb7-2において、スイッチング信号生成部260は、図5のステップb6-7において演算した閾値Uonofが、(1)式により設定した所定の中間値Mid1よりも小さいか否かを判定する。閾値Uonofが所定の中間値Mid1よりも小さい場合には、スイッチング信号生成部260は、ステップb7-3を実行する。閾値Uonofが所定の中間値Mid1よりも小さくない場合には、スイッチング信号生成部260は、ステップb7-9を実行する。
ステップb7-3において、スイッチング信号生成部260は、カウンタ270で生成したカウント値CNT1が、閾値Uofon以上であるか否かを判定する。カウント値CNT1が閾値Uofon以上である場合には、スイッチング信号生成部260は、ステップb7-4を実行する。カウント値CNT1が閾値Uofon以上ではない場合には、スイッチング信号生成部260は、ステップb7-6を実行する。
ステップb7-4において、スイッチング信号生成部260は、インバータ40のU相上アームのスイッチング素子41を構成するIGBTのスイッチング信号Supをオフに設定する。続いて、スイッチング信号生成部260は、ステップb7-5において、インバータ40のU相下アームのスイッチング素子42を構成するIGBTのスイッチング信号Sunをオンに設定する。その後、インバータ制御装置160は、処理がステップb7-1に戻る。
ステップb7-6において、スイッチング信号生成部260は、カウンタ270で生成したカウント値CNT1が、閾値Uonof以上であるか否かを判定する。カウント値CNT1が閾値Uonof以上である場合には、スイッチング信号生成部260は、ステップb7-7を実行する。カウント値CNT1が閾値Uonof以上ではない場合には、スイッチング信号生成部260は、処理がステップb7-1に戻る。
ステップb7-7において、スイッチング信号生成部260は、インバータ40のU相下アームのスイッチング素子42を構成するIGBTのスイッチング信号Sunをオフに設定する。続いて、スイッチング信号生成部260は、ステップb7-8において、インバータ40のU相上アームのスイッチング素子41を構成するIGBTのスイッチング信号Supをオンに設定する。その後、インバータ制御装置160は、処理がステップb7-1に戻る。
ステップb7-9において、スイッチング信号生成部260は、インバータ40のU相上アームのスイッチング素子41を構成するIGBTのスイッチング信号Supをオフに設定する。続いて、スイッチング信号生成部260は、ステップb7-10において、インバータ40のU相下アームのスイッチング素子42を構成するIGBTのスイッチング信号Sunをオンに設定する。その後、インバータ制御装置160は、処理がステップb7-1に戻る。
ステップb7-11において、スイッチング信号生成部260は、インバータ40のU相上アームのスイッチング素子41を構成するIGBTのスイッチング信号Supをオフに設定する。続いて、スイッチング信号生成部260は、ステップb7-12において、インバータ40のU相下アームのスイッチング素子42を構成するIGBTのスイッチング信号Sunをオンに設定する。その後、インバータ制御装置160は、処理がステップb7-1に戻る。
図7は、図4に示したステップb7の処理において、インバータ40のV相上下アームのスイッチング信号Svp、Svnの生成手順を説明する図である。図7に示される手順は、図6においてインバータ40のU相上下アームのスイッチング信号Sup、Sunの生成手順と同様にして説明されるため、詳細な説明は省略する。
図8は、図4に示したステップb7の処理において、インバータ40のW相上下アームのスイッチング信号Swp、Swnの生成手順を説明する図である。図8に示される手順は、図6においてインバータ40のU相上下アームのスイッチング信号Sup、Sunの生成手順と同様にして説明されるため、詳細な説明は省略する。
図9は、図6から図8に示した手順に基づいて生成したスイッチング信号Sup、Sun、Svp、Svn、Swp、Swnと、3相巻線61、62、63に流れる3相交流電流iu1、iv1、iw1の波形とを説明する図である。
スイッチング信号Supのスイッチング状態は、カウント値CNT1が閾値Uonof以上になった瞬間にオフからオンに変化し、カウント値CNT1が閾値Uofon以上になった瞬間にオンからオフに変化する。スイッチング信号Sunのスイッチング状態は、カウント値CNT1が閾値Uonof以上になった瞬間にオンからオフに変化し、カウント値CNT1が閾値Uofon以上になった瞬間にオフからオンに変化する。
スイッチング信号Svpのスイッチング状態は、カウント値CNT1が閾値Vonof以上になった瞬間にオフからオンに変化し、カウント値CNT1が閾値Vofon以上になった瞬間にオンからオフに変化する。スイッチング信号Svnのスイッチング状態は、カウント値CNT1が閾値Vonof以上になった瞬間にオンからオフに変化し、カウント値CNT1が閾値Vofon以上になった瞬間にオフからオンに変化する。
スイッチング信号Swpのスイッチング状態は、カウント値CNT1が閾値Wonof以上になった瞬間にオフからオンに変化し、カウント値CNT1が閾値Wofon以上になった瞬間にオンからオフに変化する。スイッチング信号Swnのスイッチング状態は、カウント値CNT1が閾値Wonof以上になった瞬間にオンからオフに変化し、カウント値CNT1が閾値Wofon以上になった瞬間にオフからオンに変化する。
スイッチング信号Sup、Svp、Swpを上述のように生成することにより、スイッチング信号Sup、Svp、Swpの全てがオン状態となる期間の中間の時刻t2において、カウント値CNT1は、所定の中間値Mid1と一致する。
ここで、Sup、Svp、Swpの全てがオン状態となる時刻は、図中のt1であり、その後いずれかのスイッチング信号がオフ状態となる時刻は、図中のt3である。時刻t2は、時刻t1と時刻t3の中間の時刻である。また、モータ60の固定子に巻かれたU相巻線61に流れるU相交流電流iu1と、V相巻線62に流れるV相交流電流iv1とは、電流が順方向に流れ、W相巻線63に流れるW相交流電流iw1は、電流が逆方向に流れている状態とする。
U相交流電流iu1は、時刻t1から低下し始め、時刻t3で上昇し始める。また、U相交流電流iu1は、時刻t2において、時刻t1で得られるU相交流電流iu1の電流値と、時刻t3で得られるU相交流電流iu1の電流値との平均値となる。
本実施例では、図4で示したように、カウント値CNT2が所定のピーク値Pk2から所定のボトム値Bot2に変化した時に、U相交流電流iu1を検出している。すなわち、カウント値CNT1が所定の中間値Mid1と一致した時に、U相交流電流iu1の平均値を検出している。これにより、U相交流電流iu1の脈動に影響されることなく、U相交流電流iu1の基本波成分を制御することができる。
また、V相交流電流iv1は、時刻t1から低下し始め、時刻t3で上昇し始める。V相交流電流iv1は、時刻t2において、時刻t1で得られるV相交流電流iv1の電流値と、時刻t3で得られるV相交流電流iv1の電流値との平均値となる。
本実施例では、図4で示したように、カウント値CNT2が所定のピーク値Pk2から所定のボトム値Bot2に変化した時に、V相交流電流iv1を検出している。すなわち、カウント値CNT1が所定の中間値Mid1と一致した時に、V相交流電流iv1の平均値を検出している。これにより、V相交流電流iv1の脈動に影響されることなく、V相交流電流iv1の基本波成分を制御することができる。
また、W相交流電流iw1は、時刻t1から上昇し始め、時刻t3で下降し始める。W相交流電流iw1は、時刻t2において、時刻t1で得られるW相交流電流iw1の電流値と、時刻t3で得られるW相交流電流iw1電流値との平均値となる。
本実施例では、図4で示したように、カウント値CNT2が所定のピーク値Pk2から所定のボトム値Bot2に変化した時に、W相交流電流iw1を検出している。すなわち、カウント値CNT1が所定の中間値Mid1と一致した時に、W相交流電流iw1の平均値を検出している。これにより、W相交流電流iw1の脈動に影響されることなく、W相交流電流iw1の基本波成分を制御することができる。
本実施例では、インバータ40のスイッチング1周期における、3相交流電流iu1、iv1、iw1の平均値を検出する方法として、スイッチング信号Sup、Svp、Swpが全てオンになった瞬間から何れかのスイッチング信号がオフになるまでの中間点で3相交流電流iu1、iv1、iw1を検出する方法を説明した。しかし、3相交流電流iu1、iv1、iw1の平均値を検出する方法はこれに限られず、例えば、スイッチング信号Sun、Svn、Swnが全てオンになった瞬間から何れかのスイッチング信号がオフになるまでの中間点で3相交流電流iu1、iv1、iw1を検出する方法としてもよい。
図10は、図4から図9に示した本実施形態に係るインバータ制御装置160の処理手順について、それぞれの処理期間を説明する図である。ここでは、便宜上、期間A1、B1、C1、D1と分けて説明をする。期間A1ないしD1は、インバータ40のスイッチング周期Tswと同じ周期の期間である。図10には、カウント値CNT1及びCNT2の波形と、3相交流電流の検出期間、磁極位置の検出期間、磁極位置推定処理期間、モータ回転速度演算処理期間、d−q軸電流推定処理期間、3相/d−q軸変換処理期間、d−q軸電流制御処理期間、d−q軸/3相変換処理期間、デューティ演算処理期間、その他の演算処理期間、デューティの設定期間が図示されている。これらについて、期間A1から期間B1へ切り替わった時刻から順番に説明する。
まず、インバータ制御装置160は、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化した瞬間において、図5のステップb6-2に基づき、デューティ設定処理を実行する。そして、カウント値CNT2が所定のボトム値Bot2であるため、インバータ制御装置160は、ステップ6-4に基づき、3相/d−q軸変換処理を実行する。その後は、図5に示されるように、d−q軸電流制御処理(ステップb6-5)、d−q軸/3相変換処理(ステップb6-6)、デューティ演算処理(ステップb6-7)、フェールセーフ等のその他の処理(ステップb6-8)を順次実行していく。
次に、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化して、期間B1から期間C1へと移行する。インバータ制御装置160は、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化した瞬間において、図5のステップb6-2に基づき、デューティ設定処理を実行する。
カウント値CNT2が所定のボトム値Bot2と一致しないので、インバータ制御装置160は、次はステップb6-9を実行する。カウント値CNT2がBot2にX2を加算した値と等しいので、インバータ制御装置160は、ステップb6-9では、(10)式に基づいてモータ60の回転子64の磁極位置の推定値θe3を算出する。その後、インバータ制御装置160は、モータ回転速度演算処理(ステップb6-10)を実行し、(14)式に基づいてd−q軸電流推定処理(ステップb6-11)を実行する。ステップb6-11における(14)式の演算では、期間B1における3相/d−q軸変換処理(ステップb6-4)により既に演算したd−q軸電流の最新値id2old1、iq2old1と、期間B1におけるd−q軸電流推定処理(ステップb6-5)により既に算出したd−q軸電圧指令の最新値vdold1 *、vqold1 *と、が用いられる。
そして、インバータ制御装置160は、d−q軸電流制御処理(ステップb6-5)、d−q軸/3相変換処理(ステップb6-6)、デューティ演算処理(ステップb6-7)、フェールセーフ等のその他の処理(ステップb6-8)を順次実行していく。
次に、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化して、期間C1から期間D1へと移行する。なお、図10に示した期間D1と期間A1とは、同じ処理である。インバータ制御装置160は、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化した瞬間において、図5のステップb6-2に基づき、デューティ設定処理を実行する。
続いてインバータ制御装置160は、期間C1と同様にして、磁極位置推定処理(ステップb6-9)から順次ステップを実行していく。期間D1においては、磁極位置推定処理(ステップb6-9)は(11)式に基づき実行され、d−q軸電流推定処理(ステップb6-11)は(15)式に基づいて実行される。
しかし、期間D1(A1)では、d−q軸電流制御処理(ステップb6-5)を実行した後、ステップb6-6に基づいてd−q軸/3相変換処理を実行しようとするが、カウント値CNT2が所定のピーク値Pk2から所定のボトム値Bot2に変化したため、3相交流電流検出処理を実行する(図4のステップb2〜b4)。そしてインバータ制御装置160は、磁極位置検出処理(ステップb5)を実行する。
磁極位置検出処理(ステップb5)を実行した後は、インバータ制御装置160は、図5のステップb6-6に移行し、d−q軸/3相変換処理を実行する。その後は順次、デューティ演算処理(ステップb6-7)を実行し、フェールセーフ等のその他の処理(ステップb6-8)を実行しようとする。しかし、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化した(期間A1から期間B1に切り替わった)ため、フェールセーフ等のその他の処理(ステップb6-8)を実行せず、デューティ設定処理を実行している(ステップb6-2)。
その後は、インバータ制御装置160は、期間B1について上述した処理と同様にして、処理を繰り返すため、説明を省略する。
続いて、比較例として、カウント値CNT1と所定の中間値Mid1が一致する毎に、3相交流電流と磁極位置を検出した場合のインバータ制御装置160の演算処理について説明する。
図11は、インバータ制御装置160の処理手順の比較例について、それぞれの処理期間を説明する図である。図11には、カウント値CNT1の波形と、3相交流電流の検出期間、磁極位置の検出期間、3相/d−q軸変換処理期間、d−q軸電流制御処理期間、d−q軸/3相変換処理期間、デューティ演算処理期間、その他の演算処理期間、デューティの設定期間が図示されている。これらについて、期間A2から期間B2へ切り替わった時刻から順番に説明する。
まず、インバータ制御装置160は、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化した瞬間において、デューティ設定処理を実行する。そして、本実施系他のインバータ制御装置160(図10)と同様に、3相/d−q軸変換処理、d−q軸電流制御処理、d−q軸/3相変換処理、デューティ演算処理を順次実行していく。
続いて、カウント値CNT1と所定の中間値Mid1が一致したため、3相交流電流検出処理と、磁極位置検出処理を実行する。そしてその後、インバータ制御装置160は、フェールセーフ等のその他の処理を実行する。
そして、インバータ制御装置160は、カウント値CNT1が所定のピーク値Pk1から所定のボトム値Bot1に変化した瞬間に、その他の処理を中断し、デューティ設定処理の実行に移行する。図11に示した期間A2と期間C2と期間D2は、期間B2と同じ処理であるため、説明を省略する。
このように、カウント値CNT1と所定の中間値Mid1が一致する毎に、3相交流電流と磁極位置を検出する方法では、カウント値CNT1の1周期内において、その他の演算処理のために確保できる時間が短くなる。このため、フェールセーフなどの信頼性にかかわる重要な処理を、カウント値CNT1の1周期内で処理しきれない場合があり、信頼性を著しく低下させる問題がある。
また、フェールセーフなどの信頼性にかかわる重要な処理を、カウント値CNT1の1周期内で処理しきれない場合には、カウント値CNT1の複数周期に跨って処理を分割する方法もあるが、演算処理手順や演算タイミングなどのタスク管理が複雑化するとともに、各期間の演算内容を把握することが困難となり、やはり、安全性および信頼性を著しく低下させる問題がある。
一方で、本実施形態に係るインバータ制御装置160では、上述したような処理を実行することにより、フェールセーフ等のその他の演算処理を実行するための時間を十分に確保することができる。特に、3相交流電流および磁極位置を検出した期間(A1)の次の期間である期間(B1)において、フェールセーフ等のその他の演算処理を実行するための時間を十分に確保することができる。したがって、フェールセーフなどの信頼性にかかわる重要な処理を期間B1で実行することにより、カウント値CNT1の1周期内で演算処理を完了させることができるため、安全性および信頼性を向上することができる。
また、3相交流電流iu1、iv1、iw1および磁極位置θe1を検出しない期間である期間B1や期間C1におけるd−q軸電流と磁極位置を推定することにより、期間B1や期間C1においてd−q軸電流指令やd−q軸電流が変化した場合においても、d−q軸電流指令やd−q軸電流の変化分を補償するようにインバータの電圧指令を生成することができる。これにより、3相交流電流および磁極位置を検出しない期間に、d−q軸電流指令やd−q軸電流が変化した場合においても、モータのトルクリプルを抑制することができる。
本実施形態にかかるインバータ制御装置160は、上述したように、インバータのスイッチング周期よりも長い周期でモータ電流と磁極位置を検出する。そして、モータ電流を検出しない期間ではモータ電流を推定し、推定したモータ電流を電流指令値に一致させるようにスイッチング信号Sup、Sun、Svp、Svn、Swp、Swnを生成する。したがって、本実施形態にかかるインバータ制御装置160は、インバータ40のスイッチング1周期内において、マイコンに搭載されているA/Dコンバータへの供給電圧が変動していない状態(すなわち、インバータ制御装置160の磁極位置検出部190および電流検出部170が停止している状態)であっても、モータ電流の振幅や周波数が変化したときに、その変化分を補償するようにインバータ40の出力電圧指令を生成する。そのため、マイコンに搭載されているA/Dコンバータへの供給電圧が変動していない状態であっても、モータ電流の振幅や周波数の変化分に応じて、スイッチング信号のオンおよびオフする時間が変化する。
本実施例では、カウンタ270で生成するカウント値CNT2の周期を、カウント値CNT1の周期に対して3倍に設定した状態で説明した。しかし、実施の形態としてはこれに限られるものではなく、カウンタ270で生成するカウント値CNT2の周期を、カウント値CNT1の周期に対して2倍以上に設定すれば問題ない。