図1は、本発明の一実施例としての駆動装置を搭載する電気自動車20の構成の概略を示す構成図である。実施例の電気自動車20は、図示するように、モータ32と、インバータ34と、蓄電装置としてのバッテリ36と、電子制御ユニット50と、を備える。
モータ32は、同期発電電動機として構成されており、永久磁石が埋め込まれた回転子と、3相コイルが巻回された固定子と、を備える。このモータ32は、回転子が駆動輪22a,22bにデファレンシャルギヤ24を介して連結された駆動軸26に接続されている。
インバータ34は、モータ32の駆動に用いられると共に電力ライン38を介してバッテリ36に接続されている。このインバータ34は、6つのスイッチング素子としてのトランジスタT11〜T16と、6つのトランジスタT11〜T16のそれぞれに並列に接続された6つのダイオードD11〜D16と、を有する。トランジスタT11〜T16は、それぞれ、電力ライン38の正極側ラインと負極側ラインとに対してソース側とシンク側になるように2個ずつペアで配置されている。また、トランジスタT11〜T16の対となるトランジスタ同士の接続点には、モータ32の3相コイル(U相,V相,W相)が接続されている。以下、トランジスタT11〜T13を「上アーム」といい、トランジスタT14〜T16を「下アーム」という。したがって、インバータ34に電圧が作用しているときに、電子制御ユニット50によって、対となるトランジスタT11〜T16のオン時間の割合が調節されることにより、3相コイルに回転磁界が形成され、モータ32が回転駆動される。電力ライン38の正極ラインと負極ラインとには、平滑用のコンデンサ39が取り付けられている。
バッテリ36は、例えばリチウムイオン二次電池やニッケル水素二次電池として構成されている。このバッテリ36は、上述したように、電力ライン38を介してインバータ34に接続されている。
電子制御ユニット50は、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROMや、データを一時的に記憶するRAM、入出力ポートを備える。電子制御ユニット50には、各種センサからの信号が入力ポートを介して入力されている。電子制御ユニット50に入力される信号としては、例えば、モータ32の回転子に取り付けられた回転位置検出センサ(例えばレゾルバ)32aからのモータ32の回転子の回転位置θmや、モータ32とインバータ34とを接続する各相の電力ラインに取り付けられた電流センサ32u,32v,32wからの信号を挙げることができる。また、コンデンサ39の端子間に取り付けられた電圧センサ39aからのコンデンサ39(電力ライン38)の電圧VHや、バッテリ36の端子間に取り付けられた図示しない電圧センサからのバッテリ36の電圧Vb、バッテリ36の出力端子に取り付けられた図示しない電流検出部からのバッテリ36の電流Ibも挙げることができる。さらに、イグニッションスイッチ60からのイグニッション信号や、シフトレバー61の操作位置を検出するシフトポジションセンサ62からのシフトポジションSPも挙げることができる。加えて、アクセルペダル63の踏み込み量を検出するアクセルペダルポジションセンサ64からのアクセル開度Accや、ブレーキペダル65の踏み込み量を検出するブレーキペダルポジションセンサ66からのブレーキペダルポジションBP、車速センサ68からの車速Vも挙げることができる。電子制御ユニット50は、電流センサ32u,32v,32wからの信号(アナログ値)をモータ32の各相の相電流Iu,Iv,Iw(デジタル値)に変換するAD変換部51を有する。電子制御ユニット50からは、インバータ34のトランジスタT11〜T16へのスイッチング制御信号などが出力ポートを介して出力されている。電子制御ユニット50は、回転位置検出センサ32aからのモータ32の回転子の回転位置θmに基づいてモータ32の電気角θeや回転数Nmを演算している。
こうして構成された実施例の電気自動車20では、アクセル開度Accと車速Vとに基づいて駆動軸26に要求される要求トルクTd*を設定し、要求トルクTd*をモータ32のトルク指令Tm*に設定する。そして、モータ32がトルク指令Tm*で駆動されるようにパルス幅変調制御(PWM制御)によりインバータ34のトランジスタT11〜T16のスイッチング制御を行なう。
ここで、インバータ34の制御について説明する。電子制御ユニット50は、まず、モータ32の電気角θeを用いてU相,V相,W相の相電流Iu,Iv,Iwをd軸,q軸の電流Id,Iqに座標変換(3相−2相変換)する。続いて、モータ32のトルク指令Tm*に基づいてd軸,q軸の電流指令Id*,Iq*を設定し、d軸,q軸の電流指令Id*,Iq*および電流Id,Iqを用いてd軸,q軸の電圧指令Vd*,Vq*を設定する。そして、モータ32の電気角θeを用いてd軸,q軸の電圧指令Vd*,Vq*を各相の電圧指令Vu*,Vv*,Vw*に座標変換(2相−3相変換)し、各相の電圧指令Vu*,Vv*,Vw*と三角波(搬送波)との比較によりトランジスタT11〜T16のPWM信号を生成する。こうしてトランジスタT11〜T16のPWM信号を生成すると、そのPWM信号を用いてトランジスタT11〜T16のスイッチングを行なう。
次に、こうして構成された実施例の電気自動車20に搭載される駆動装置の動作、特に、モータ32の各相の相電流Iu,Iv,Iwを検出する、具体的には、電流センサ32u,32v,32wからの信号(アナログ値)を各相の相電流Iu,Iv,Iw(デジタル値)に変換する際の動作について説明する。図2および図3は、電子制御ユニット50により実行される相電流検出ルーチンの一例を示すフローチャートである。このルーチンは、三角波の山および谷の各タイミングで割込処理として実行される。なお、三角波の周波数(キャリア周波数)fcとしては、例えば、4kHzや5kHz、6kHzなどが用いられる。
図2および図3の相電流検出ルーチンが実行されると、電子制御ユニット50は、電流検出遅延時間ΔTが経過するのを待って、即ち、三角波の山および谷の電流検出遅延時間ΔT後に(ステップS100)、モータ32の各相の相電流Iu,Iv,Iwを検出する、具体的には、電流センサ32u,32v,32wからの信号(アナログ値)を各相の相電流Iu,Iv,Iw(デジタル値)に変換する(ステップS110)。そして、モータ32の電気角θeを用いて各相の相電流Iu,Iv,Iwをd軸,q軸の電流Id,Iqに座標変換(3相−2相変換)する(ステップS120)。ここで、電流検出遅延時間ΔTは、後述の処理により設定された時間が用いられる。また、d軸,q軸の電流Id,Iqを設定すると、本ルーチンとは別のルーチンにより、上述したように、d軸,q軸の電流Id,Iqに基づいてPWM制御によりインバータ34のトランジスタT11〜T16のスイッチング制御を行なう。
続いて、電流検出遅延時間ΔTの学習条件が成立しているか否かを判定する(ステップS130)。ここで、学習条件としては、例えば、前回に電流検出遅延時間ΔTの学習を実行してから所定時間(例えば、数分〜数十分程度)が経過しており、且つ、モータ32のトルクTmの変動量および回転数Nmの変動量が各閾値以下であり、各相の電圧指令Vu*,Vv*,Vw*の振幅が三角波の振幅よりも小さい条件などが用いられる。なお、学習条件は、これに限定されるものではなく、適宜設定可能である。
ステップS130で学習条件が成立していないと判定したときには、3相変調モードを設定して(ステップS135)、本ルーチンを終了する。ここで、3相変調モードは、インバータ34の3相のトランジスタ(トランジスタT11〜T16の全て)のスイッチングを行なうモードである。図4は、3相変調モードでの電圧指令Vu*,Vv*,Vw*および三角波と各相のスイッチング信号との一例を示す説明図である。各相のスイッチング信号は、各相の上アームのPWM信号(オンオフ反転させたものが下アームのPWM信号)に相当する。トランジスタT11〜T16の実際のスイッチングは、トランジスタT11〜T16のPWM信号(スイッチング信号)に基づいてトランジスタT11〜T16のスイッチング遅れやデッドタイムを考慮して行なわれる。
ステップS130で学習条件が成立していると判定されたときには、2相変調モードを設定する(ステップS140)。ここで、2相変調モードは、インバータ34の3相のうち1相のトランジスタ(例えば、U相のトランジスタT11,T14)のスイッチングを停止すると共に残りの2相のトランジスタ(例えば、V相,W相のトランジスタT12,T13,T15,T16)のスイッチングを行なうモードである。トランジスタのスイッチングを停止する1相(以下、「SW停止相」という)は、モータ32の電気角θeに基づいて定められる。図5は、2相変調モードでの電圧指令Vu*,Vv*,Vw*および三角波と各相のスイッチング信号との一例を示す説明図である。実施例では、2相変調モードとして、図5に示すように、SW停止相を電気角θeの120度ずつ切り替えると共にSW停止相の上アームをオン固定する(下アームをオフ固定する)ものとした。2相変調モードを設定する理由については後述する。
続いて、電流検出遅延時間ΔTの候補の全ての検査が完了したか否かを判定する(ステップS150,S152)。ここで、電流検出遅延時間ΔTの候補としては、例えば、三角波の周期が200msec程度(キャリア周波数が5kHz程度)のときに、1μsecや2μsec、・・・などを挙げることができる。
ステップS150,S152で電流検出遅延時間ΔTの候補の全ての検査が完了していないと判定したときには、今回の割込処理(本ルーチンの実行)が三角波の山のタイミングと谷のタイミングとのうちの何れのタイミングの割込処理かを判定する(ステップS160)。そして、今回の割込処理が三角波の山のタイミングの割込処理であると判定したときには、ステップS120で計算したd軸,q軸の電流Id,Iqをd軸,q軸の電流(山)Ida,Iqaに設定し(ステップS170)、今回の割込処理が三角波の谷のタイミングの割込処理であると判定したときには、d軸,q軸の電流Id,Iqがd軸,q軸の電流(谷)Idb,Iqbに設定する(ステップS180)。
続いて、d軸,q軸の電流(山)Ida,Iqaおよび電流(谷)Idb,Iqbのデータが揃っているか否かを判定し(ステップS190)、揃っていないと判定したときには、そのまま本ルーチンを終了する。
ステップS190でd軸,q軸の電流(山)Ida,Iqaおよび電流(谷)Idb,Idqのデータが揃っていると判定したときには、d軸,q軸の電流(山)Ida,Iqaから電流(谷)Idb,Idqを減じてd軸,q軸の電流山谷差ΔId,ΔIqを計算し(ステップS200)、計算したd軸の電流山谷差ΔIdの2乗とq軸の電流山谷差ΔIqの2乗との和の平方根としてdq軸電流山谷差ΔIdqを計算する(ステップS210)。
そして、dq軸電流山谷差ΔIdqに対してフィルタ処理(なまし処理)を施すことが可能か否かを判定する(ステップS220)。この判定は、例えば、電流検出遅延時間ΔTを現在の値にしてから所定時間Δtf(例えば、90msecや100msec、110msecなど)が経過したか否かを判定することにより行なわれる。dq軸電流山谷差ΔIdqに対してフィルタ処理を施すことが可能でないと判定したときには、そのまま本ルーチンを終了する。
ステップS220でdq軸電流山谷差ΔIdqに対してフィルタ処理(なまし処理)を施すことが可能であると判定したときには、dq軸電流山谷差ΔIdqに対してフィルタ処理(なまし処理)を施してdq軸電流山谷差(フィルタ値)ΔIdqを計算する(ステップS230)。この処理は、例えば、所定時間Δtfを時定数として用いてdq軸電流山谷差ΔIdqになまし処理を施すことにより行なわれる。
次に、電流検出遅延時間ΔTの候補を選択してからの経過時間としてのタイマ値Ttiを所定時間Ttirefと比較する(ステップS240)。ここで、所定時間Ttirefは、dq軸電流山谷差(フィルタ値)ΔIdqfが安定しているか否かを判定するのに要する時間であり、所定時間Δtfよりも十分に長い時間として定められ、例えば、所定時間Δtfの5倍や7倍、10倍などの時間が用いられる。タイマ値Ttiが所定時間Ttiref未満のときには、そのまま本ルーチンを終了する。
ステップS240でタイマ値Ttiが所定時間Ttiref以上のときには、電流検出遅延時間ΔTとdq軸電流山谷差(フィルタ値)ΔIdqfとの組み合わせを保存する(ステップS250)。ここで、電流検出遅延時間ΔTとdq軸電流山谷差(フィルタ値)ΔIdqfとの組み合わせは、例えば、電流検出遅延時間ΔTが1μsecのときにdq軸電流山谷差(フィルタ値)ΔIdqfが20A、電流検出遅延時間ΔTが2μsecのときにdq軸電流山谷差(フィルタ値)ΔIdqfが10A、・・・などのように保存される。
続いて、電流検出遅延時間ΔTの候補のうち未検査の候補から次の値を選択し(ステップS260)、タイマ値Ttiを値0にリセットしてからその計時を開始して(ステップS270)、本ルーチンを終了する。なお、電流検出遅延時間ΔTの候補のうち未検査の候補がないときには、現在の電流検出遅延時間ΔTを再選択するものとした。
ステップS260で電流検出遅延時間ΔTの候補のうち未検査の候補がないときには、次回に本ルーチンが実行されたときに、ステップS150,S152で電流検出遅延時間ΔTの候補の全ての検査が完了した(未検査の候補がない)と判定し、電流検出遅延時間ΔTとdq軸電流山谷差(フィルタ値)ΔIdqfとの複数の組み合わせのうちdq軸電流山谷差(フィルタ値)ΔIdqfが最小の電流検出遅延時間ΔTを選択して設定して(ステップS280)、本ルーチンを終了する。このようにして電流検出遅延時間ΔTを設定すると、次回以降に本ルーチンが実行されたときには、次回に学習条件が成立するまで、その電流検出遅延時間ΔTが用いられる(保持される)。
次に、図2および図3の相電流検出ルーチンのステップS130で学習条件が成立したとき(電流検出遅延時間ΔTを学習するとき)に2相変調モードを設定する理由について説明する。図6は、3相変調モードでの三角波の1周期における電圧指令Vu*,Vv*,Vw*および三角波と各相のスイッチング信号および電圧Vu,Vv,VwとU相の相電流(実値)Iuactおよび相電流(検出値)Iuとを示す説明図である。図7は、2相変調モードでの三角波の1周期における電圧指令Vu*,Vv*,Vw*および三角波と各相のスイッチング信号および電圧Vu,Vv,VwとU相の相電流(実値)Iuactおよび相電流(検出値)Iuとを示す説明図である。図6および図7中、ハッチングを付した部分は、各相のトランジスタのスイッチング遅れやデッドタイムなどによる、各相のスイッチング信号に対する相電圧の遅れである。図6および図7では、U相の相電流(実値)Iuactが正のときについて示した。また、図6および図7のU相の相電流(検出値)Iuの丸印は、三角波の山および谷のタイミングの相電流(検出値)Iuであり、三角印は、三角波の山および谷から遅延時間ΔTa後のタイミングの相電流(検出値)Iuである。
3相変調モードでは、図6から分かるように、相電流(実値)Iuactおよび相電流(検出値)Iuの電流リプルの主成分が三角波の2倍の周波数になり、三角波の山および谷のタイミングで、相電流(実値)Iuactに対して相電流(検出値)Iuが同一側(大きい側)にオフセットし、三角波の山および谷から遅延時間ΔTa後のタイミングでも、相電流(実値)Iuactに対して相電流(検出値)Iuが同一側(大きい側)にオフセットしている。このため、電流検出遅延時間ΔTを適切に設定することが困難である。
これに対して、2相変調モードでは、図7に示すように、相電流(実値)Iuactおよび相電流(検出値)Iuの電流リプルの主成分が三角波と同一の周波数になり、三角波の山および谷のタイミングで、相電流(実値)Iuactに対して相電流(検出値)Iuが互いに反対側にオフセットし、三角波の山および谷から遅延時間ΔTa後のタイミングでも、相電流(実値)Iuactに対して相電流(検出値)Iuが互いに反対側にオフセットしている。したがって、三角波の山から遅延時間ΔTa後のタイミングの相電流(検出値)Iuと、三角波の谷から遅延時間ΔTa後のタイミングの相電流(検出値)Iuと、の差分が最小となる遅延時間ΔTaをステップS280の処理で電流検出遅延時間ΔTに設定すれば、電流リプルのより中心付近でU相の相電流Iuを検出することができる。実施例では、これを踏まえて、各相の相電流Iu,Iv,Iwに基づくd軸,q軸の電流Id,Iqを用いてdq軸電流山谷差(フィルタ値)ΔIdqfを計算し、電流検出遅延時間ΔTとdq軸電流山谷差(フィルタ値)ΔIdqfとの関係を求めて、dq軸電流山谷差(フィルタ値)ΔIdqfが最小となる電流検出遅延時間ΔTを選択するものとした。これにより、モータ32の各相の相電流Iu,Iv,Iwを電流リプルのより中心付近で検出することができる。この結果、各相の相電流Iu,Iv,Iwの検出誤差をより低減することができる。
以上説明した実施例の電気自動車20に搭載される駆動装置では、2相変調モードのときに、モータ32の各相の相電流Iu,Iv,Iwに基づくd軸,q軸の電流Id,Iqを用いてdq軸電流山谷差(フィルタ値)ΔIdqfを計算し、電流検出遅延時間ΔTとdq軸電流山谷差(フィルタ値)ΔIdqfとの関係を求める。そして、dq軸電流山谷差(フィルタ値)ΔIdqfが最小となる電流検出遅延時間ΔTを選択する。これにより、モータ32の各相の相電流Iu,Iv,Iwを電流リプルのより中心付近で検出することができる。この結果、各相の相電流Iu,Iv,Iwの検出誤差をより低減することができる。
実施例の電気自動車20に搭載される駆動装置では、2相変調モードのときに、電流検出遅延時間ΔTとdq軸電流山谷差(フィルタ値)ΔIdqfとの複数の組み合わせのうちdq軸電流山谷差(フィルタ値)ΔIdqfが最小の電流検出遅延時間ΔTを選択するものとした。しかし、電流検出遅延時間ΔTとd軸電流山谷差ΔIdqとの複数の組み合わせのうちdq軸電流山谷差ΔIdqが最小の電流検出遅延時間ΔTを選択するものとしてもよい。即ち、dq軸電流山谷差ΔIdqに対してフィルタ処理を施さずに、電流検出遅延時間ΔTとd軸電流山谷差ΔIdqとの組み合わせを保存するものとしてもよい。
実施例の電気自動車20に搭載される駆動装置では、2相変調モードとして、図5に示したように、SW停止相を電気角θeの120度ずつ切り替えると共にSW停止相の上アームをオン固定する(下アームをオフ固定する)ものとした。しかし、図8に示すように、SW停止相を電気角θeの120度ずつ切り替えると共にSW停止相の下アームをオン固定する(上アームをオフ固定する)ものとしてもよい。また、図9に示すように、SW停止相を電気角θeの60度ずつ切り替えると共に電気角θeの60度ずつSW停止相の上アームのオン固定(下アームのオフ固定)と下アームのオン固定(上アームのオフ固定)とを交互に行なうものとしてもよい。図9の場合、トランジスタT11〜T16のスイッチングによる発熱を上下アームで均等にできるという利点がある。
実施例の電気自動車20に搭載される駆動装置では、電子制御ユニット50は、図2および図3の相電流検出ルーチンを実行するものとしたが、これに代えて、図10の相電流検出ルーチンを実行するものとしてもよい。
図10の相電流検出ルーチンが実行されると、電子制御ユニット50は、電流検出遅延時間ΔTu,ΔTv,ΔTwが経過するのを待って、即ち、三角波の山および谷の電流検出遅延時間ΔTu,ΔTv,ΔTw後に(ステップS300)、モータ32の各相の相電流Iu,Iv,Iwを検出する、具体的には、電流センサ32u,32v,32wからの信号(アナログ値)を各相の相電流Iu,Iv,Iw(デジタル値)に変換する(ステップS310)。ここで、電流検出遅延時間ΔTu,ΔTv,ΔTwは、後述の処理によりそれぞれ設定された時間が用いられる。即ち、電流検出遅延時間ΔTu,ΔTv,ΔTwは、同一の時間とは限らない。したがって、モータ32の各相の相電流Iu,Iv,Iwを検出するタイミングは、同時とは限らない。
続いて、電流検出遅延時間ΔTu,ΔTv,ΔTwの学習条件が成立しているか否かを判定する(ステップS320)。ここで、学習条件としては、例えば、前回に電流検出遅延時間ΔTu,ΔTv,ΔTwの学習を実行してから所定時間(例えば、数分〜数十分程度)が経過しており、且つ、モータ32の回転数Nmが略値0であり(回転数Nmの絶対値が閾値以下であり)、且つ、各相の電圧指令Vu*,Vv*,Vw*の振幅が三角波の振幅よりも小さい条件などが用いられる。なお、学習条件は、これに限定されるものではなく、適宜設定可能である。ステップS320で学習条件が成立していないと判定したときには、3相変調モードを設定して(ステップS330)、本ルーチンを終了する。
ステップS320で学習条件が成立していると判定したときには、2相変調モードを設定し(ステップS340)、SW停止相(トランジスタのスイッチングを停止する1相)がU相,V相,W相のうちの何れの相であるかを判定する(ステップS350)。この変形例では、2相変調モードとして、実施例と同様に、SW停止相を電気角θeの120度ずつ切り替えると共にSW停止相の上アームをオン固定する(下アームをオフ固定する)ものとした(図5参照)。
ステップS350でSW停止相がU相であると判定したときには、今回の割込処理(本ルーチンの実行)が三角波の山のタイミングと谷のタイミングとのうちの何れのタイミングの割込処理かを判定する(ステップS360)。そして、今回の割込処理が三角波の山のタイミングの割込処理であると判定したときには、U相の相電流Iuを相電流(山)Iuaに設定し(ステップS370)、今回の割込処理が三角波の谷のタイミングの割込処理であると判定したときには、U相の相電流Iuを相電流(谷)Iubに設定する(ステップS380)。
続いて、相電流(山)Iuaおよび相電流(谷)Iubのデータが揃っているか否かを判定し(ステップS390)、揃っていないと判定したときには、そのまま本ルーチンを終了する。
ステップS390で相電流(山)Iuaおよび相電流(谷)Iubのデータが揃っていると判定したときには、U相の相電流Iuが正であるか否かを判定する(ステップS400)。そして、U相の相電流Iuが正であると判定したときには、相電流(山)Iuaから相電流(谷)Iubを減じてU相電流偏差ΔIuを計算し(ステップS410)、U相の相電流Iuが正でないと判定したときには、相電流(谷)Iubから相電流(山)Iuaを減じてU相電流偏差ΔIuを計算する(ステップS420)。
こうしてU相電流偏差ΔIuを計算すると、このU相電流偏差ΔIuが値0となるようにフィードバック制御により電流検出遅延時間ΔTuを設定(補正)して(ステップS430)、本ルーチンを終了する。
図11は、図5の2相変調モードで且つSW停止相がU相で且つU相の相電流Iuが正のときの電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係の一例を示す説明図である。また、図12は、図5の2相変調モードで且つSW停止相がU相で且つU相の相電流Iuが負のときの電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係の一例を示す説明図である。図11の関係は、図7のU相の相電流(実値)Iuactと相電流(検出値)Iuとの関係から得られる。図12は、図11と同様に考えることができる。図11の場合、電流(山)Iuaから相電流(谷)Iubを減じてU相電流偏差ΔIuを計算し、図12の場合、相電流(谷)Iubから相電流(山)Iuaを減じてU相電流偏差ΔIuを計算することになる。そして、このU相電流偏差ΔIuが値0となるようにフィードバック制御により電流検出遅延時間ΔTuを設定することにより、電流リプルのより中心付近でU相の相電流Iuを検出することができる。これにより、各相の相電流の検出誤差をより低減することができる。
ステップS350でSW停止相がV相やW相であると判定したときには、SW停止相がU相であると判定したときと同様に電流検出遅延時間ΔTvや電流検出遅延時間ΔTwを設定(補正)して(ステップS440〜S510、または、ステップS520〜S590)、本ルーチンを終了する。以下、簡単に説明する。
SW停止相がV相であるときには、今回の割込処理(本ルーチンの実行)が三角波の山のタイミングの割込処理であるときには、V相の相電流Ivを相電流(山)Ivaに設定し、今回の割込処理が三角波の谷のタイミングの割込処理であるときには、V相の相電流Ivを相電流(谷)Ivbに設定する(ステップS440〜S460)。続いて、相電流(山)Ivaおよび相電流(谷)Ivbのデータが揃っているときにおいて(ステップS470)、V相の相電流Ivが正であるときには、相電流(山)Ivaから相電流(谷)Ivbを減じてV相電流偏差ΔIvを計算し、V相の相電流Ivが正でないときには、相電流(谷)Ivbから相電流(山)Ivaを減じてV相電流偏差ΔIvを計算する(ステップS480〜S500)。こうしてV相電流偏差ΔIvを計算すると、このV相電流偏差ΔIvが値0となるようにフィードバック制御により電流検出遅延時間ΔTvを設定(補正)して(ステップS510)、本ルーチンを終了する。
SW停止相がW相であるときには、今回の割込処理(本ルーチンの実行)が三角波の山のタイミングの割込処理であるときには、W相の相電流Iwを相電流(山)Iwaに設定し、今回の割込処理が三角波の谷のタイミングの割込処理であるときには、W相の相電流Iwを相電流(谷)Iwbに設定する(ステップS520〜S540)。続いて、相電流(山)Iwaおよび相電流(谷)Iwbのデータが揃っているときにおいて(ステップS550)、W相の相電流Iwが正であるときには、相電流(山)Iwaから相電流(谷)Iwbを減じてW相電流偏差ΔIwを計算し、W相の相電流Iwが正でないときには、相電流(谷)Iwbから相電流(山)Iwaを減じてW相電流偏差ΔIwを計算する(ステップS560〜S580)。こうしてW相電流偏差ΔIwを計算すると、このW相電流偏差ΔIwが値0となるようにフィードバック制御により電流検出遅延時間ΔTwを設定(補正)して(ステップS590)、本ルーチンを終了する。
上述したように、2相変調モードでは、SW停止相を電気角θeの120度ずつ切り替えると共にSW停止相の上アームをオン固定する(下アームをオフ固定する)。これを踏まえて、電流検出遅延時間ΔTu,ΔTv,ΔTwの学習を開始してから(2相固定モードを開始してから)モータ32が電気角θeで所定周期(例えば、数周期程度)だけ回転したときや、ステップS430,S510,S590で設定される電流検出遅延時間ΔTu,ΔTv,ΔTwの何れもが安定したとき(所定時間に亘って変動量が所定量以下のとき)などに、電流検出遅延時間ΔTu,ΔTv,ΔTwの学習を終了することが考えられる。このようにして電流検出遅延時間ΔTu,ΔTv,ΔTwの学習を終了すると、次回以降に本ルーチンが実行されたときには、次回に学習条件が成立するまで、その電流検出遅延時間ΔTu,ΔTv,ΔTwが用いられる(保持される)。
この変形例では、2相変調モードとして、図5に示したように、SW停止相を電気角θeの120度ずつ切り替えると共にSW停止相の上アームをオン固定する(下アームをオフ固定する)ものとした。この場合、SW停止相がU相で且つU相の相電流Iuが正のときの電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係は、図11のようになり、SW停止相がU相で且つU相の相電流Iuが負のときの電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係は、図12のようになる。
しかし、2相変調モードとして、図8に示したように、SW停止相を電気角θeの120度ずつ切り替えると共にSW停止相の下アームをオン固定する(上アームをオフ固定する)ものとしてもよい。この場合、SW停止相がU相で且つU相の相電流Iuが正のときの電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係は、図13のようになり、SW停止相がU相で且つU相の相電流Iuが負のときの電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係は、図14のようになる。したがって、図13の場合、相電流(谷)Iubから電流(山)Iuaを減じてU相電流偏差ΔIuを計算し、図14の場合、相電流(山)Iuaから相電流(谷)Iubを減じてU相電流偏差ΔIuを計算し、U相電流偏差ΔIuが値0となるようにフィードバック制御により電流検出遅延時間ΔTuを設定すればよい。こうすれば、電流リプルのより中心付近でU相の相電流Iuを検出することができ、各相の相電流の検出誤差をより低減することができる。SW停止相がV相やW相のときの電流検出遅延時間ΔTvや電流検出遅延時間ΔTwの設定についても同様に考えることができる。
また、2相変調モードとして、図9に示すように、SW停止相を電気角θeの60度ずつ切り替えると共に電気角θeの60度ずつSW停止相の上アームのオン固定(下アームのオフ固定)と下アームのオン固定(上アームのオフ固定)とを交互に行なうものとしてもよい。この場合、SW停止相がU相で且つ上アームをオン固定しているときには、電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係は、図11または図12のようになり、SW停止相がU相で且つ下アームをオン固定しているときには、電流検出遅延時間ΔTuと相電流(山)Iuaおよび相電流(谷)Iubとの関係は、図13または図14のようになる。したがって、図11〜図14の何れに相当するかに応じてU相電流偏差ΔIuを計算し、U相電流偏差ΔIuが値0となるようにフィードバック制御により電流検出遅延時間ΔTuを設定すればよい。こうすれば、電流リプルのより中心付近でU相の相電流Iuを検出することができ、各相の相電流の検出誤差をより低減することができる。SW停止相がV相やW相のときの電流検出遅延時間ΔTvや電流検出遅延時間ΔTwの設定についても同様に考えることができる。
実施例やこの変形例では特に説明していないが、電子制御ユニット50は、モータ32の回転数Nmの絶対値が閾値Nmref以上の領域では、図2および図3の相電流検出ルーチンを実行し、モータ32の回転数Nmの絶対値が閾値Nmref未満(値0付近)の領域では、図10の相電流検出ルーチンを実行するものとしてもよい。
実施例の電気自動車20では、蓄電装置として、バッテリ36を用いるものとしたが、バッテリ36に代えて、キャパシタを用いるものとしてもよい。
実施例では、モータ32を備える電気自動車20に搭載される駆動装置の形態とした。しかし、モータ32に加えてエンジンも備えるハイブリッド自動車に搭載される駆動装置の形態としてもよいし、自動車以外の車両や船舶、航空機などの移動体に搭載される駆動装置の形態としてもよいし、建設設備などの移動しない設備に搭載される駆動装置の形態としてもよい。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、モータ32が「3相交流モータ」に相当し、インバータ34が「インバータ」に相当し、電子制御ユニット50が「制御装置」に相当する。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。