(58)【調査した分野】(Int.Cl.,DB名)
前記コントローラは、前記電動モータの回転速度が零を含む所定範囲にあるときに、前記q軸電流検出値と前記q軸電流推定値とを比較する、請求項1に記載のモータ駆動装置。
前記所定時間は、前記電動モータの回転速度が変動している場合に、前記回転速度の変動周期、前記回転速度の変動量、及び、前記電動モータが駆動する駆動対象の変動量に基づいて設定される、請求項1〜3のいずれか1つに記載のモータ駆動装置。
前記q軸電流推定値は、前記q軸電圧指令値の印加に対する前記電動モータのモータ特性による電流応答遅れを考慮して推定される、請求項1〜4のいずれか1つに記載のモータ駆動装置。
【発明を実施するための形態】
【0010】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図1は、モータ駆動装置を適用した車両用内燃機関の一例を示す。
【0011】
内燃機関10は、シリンダブロック11と、シリンダブロック11のシリンダボア11Aに往復動可能に嵌挿されたピストン12と、吸気ポート13A及び排気ポート13Bが形成されたシリンダヘッド13と、吸気ポート13A及び排気ポート13Bの開口端を開閉する吸気バルブ14A及び排気バルブ14Bと、を有している。
【0012】
ピストン12は、クランクシャフト15に対して、ロアリンク16A及びアッパリンク16Bを含むコンロッド(コネクティングロッド)16を介して連結されている。そして、ピストン12の冠面12Aとシリンダヘッド13の下面との間に、燃焼室Sが形成されている。シリンダヘッド13には、燃焼室Sに臨んで、燃料を噴射する燃料噴射弁17と、燃料と空気との混合気を着火する点火栓18とが取り付けられている。
【0013】
クランクシャフト15は、複数のジャーナル部15Aとクランクピン部15Bとを有し、シリンダブロック11の主軸受(図示せず)に、ジャーナル部15Aが回転自在に支持されている。クランクピン部15Bは、ジャーナル部15Aから偏心しており、ここにロアリンク16Aが回転自在に連結されている。アッパリンク16Bは、下端側が連結ピン16Cによりロアリンク16Aの一端に回動可能に連結され、上端側がピストンピン16Dによりピストン12に回動可能に連結されている。
【0014】
また、内燃機関10は、燃焼室Sの容積を変更することで、圧縮比を可変とする可変圧縮比(VCR:Variable Compression Ratio)機構20を備えている。VCR機構20は、例えば、特開2002−276446号公報に開示されるような複リンク機構によって、燃焼室Sの容積を変更させることで、内燃機関10の圧縮比を可変とする。
【0015】
VCR機構20は、コントロールリンク21、コントロールシャフト22及び圧縮比制御アクチュエータ23を有している。コントロールリンク21は、上端側が連結ピン21Aによりロアリンク16Aの他端に回動可能に連結され、下端側がコントロールシャフト22を介してシリンダブロック11の下部に回動可能に連結されている。詳しくは、コントロールシャフト22は、回転可能にシリンダブロック11に支持されていると共に、その回転中心から偏心している偏心カム部22Aを有し、この偏心カム部22Aにコントロールリンク21の下端部が回転可能に嵌合している。そして、圧縮比制御アクチュエータ23の動力源である電動モータMの回転出力は、減速機23Aによって減速されて出力軸23Bに伝達された後、出力軸23Bに形成されたギア(例えばウォームギア)23Cとコントロールシャフト22に形成されたギア(例えばウォームホイール)22Bとの噛合によって、コントロールシャフト22に伝達される。すなわち、圧縮比制御アクチュエータ23としての電動モータMはコントロールシャフト22を駆動対象とする。
【0016】
このようなVCR機構20において、圧縮比制御アクチュエータ23としての電動モータMを正転又は逆転させることでコントロールシャフト22の回転角度が制御される。圧縮比制御アクチュエータ23がコントロールシャフト22を回転させると、コントロールシャフト22の回転中心から偏心している偏心カム部22Aの中心位置が変化する。これにより、コントロールリンク21の下端の搖動支持位置が変化することで、ピストン上死点(TDC)におけるピストン12の位置が高くなったり低くなったりして、燃焼室Sの容積が増減し、内燃機関10の圧縮比が変更される。
【0017】
圧縮比制御アクチュエータ23は、電動モータMに加えて、電動モータMを駆動するモータ駆動装置100を内蔵している。モータ駆動装置100は、例えばCAN(Controller Area Network)等の車載ネットワークを介して、内燃機関10の燃料噴射弁17及び点火栓18を電子制御するECU(Engine Control Unit)30に接続されている。
【0018】
ECU30は、マイクロコンピュータを内蔵し、内燃機関10の運転状態を検出するために、内燃機関10の回転速度Neを検出する回転速度センサ31、内燃機関10の負荷Qを検出する負荷センサ32、及び、内燃機関10の実際の圧縮比に相当するパラメータとしてコントロールシャフト22の回転角度を検出する回転角度センサ33の各出力信号を入力するように構成されている。ここで、内燃機関10の負荷Qとしては、例えば、吸気負圧、吸気流量、過給圧力、アクセル開度、スロットル開度など、トルクと密接に関連する状態量を使用することができる。ECU30は、例えば、内燃機関10において回転速度及び負荷に適合した圧縮比が設定されたマップを参照する等して、内燃機関10の回転速度Ne及び負荷Qに応じた目標圧縮比を演算し、さらに、目標圧縮比に応じたコントロールシャフト22の目標角度を演算する。そして、ECU30は、回転角度センサ33によって検出されたコントロールシャフト22の検出角度が目標角度に近づくように電動モータMの目標トルクを演算し、この目標トルクをモータ駆動装置100に対する指令トルクとして含む指令信号をモータ駆動装置100に出力する。
【0019】
図2は、電動モータ及びモータ駆動装置の内部構成を示す。電動モータMは、3相ブラシレスモータであり、スター結線されたU相コイルMu、V相コイルMv、W相コイルMwの3相コイルをそれぞれ巻き回した円筒状のステータ(図示省略)と、このステータの中央部に形成されている空間において軸線中心に回転可能に配置されたロータ(永久磁石回転子)MRと、を備えている。また、モータ駆動装置100は、インバータ200、電流検出部300及びコントローラ400を備えている。
【0020】
インバータ200は、直流の車載電源Eと接続され、電動モータMに対して交流電力を供給するように、逆並列のダイオード201d〜206dを1対1でそれぞれ含むスイッチング素子201〜206を3相ブリッジ接続してなる電気回路を有している。スイッチング素子201〜206は、例えば、FET(Field Effect Transistor)又はIGBT(Insulated Gate Bipolar Transistor)等、電力制御の用途に用いられる半導体素子で構成されている。スイッチング素子201〜206の各制御端子(ゲート端子)はコントローラ400の出力ポートに接続されている。
【0021】
電流検出部300は、インバータ200の直流母線電流を検出する電流検出手段であり、1つのシャント抵抗301及び検出回路302を有している。シャント抵抗301は、各相の下アームと車載電源Eの接地側との間に直列に接続され、オペアンプ等を含む検出回路302は、シャント抵抗301の両端と接続されている。検出回路302は、シャント抵抗301を流れる電流の大きさに応じて変化する、シャント抵抗301の両端電位差を検出し、この電位差に対応する電圧をアナログの電流検出電圧としてコントローラ400へ出力する。
【0022】
コントローラ400は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のマイクロプロセッサ、及び、ROM(Read Only Memory)、RAM(Random Access Memory)等のメモリデバイスを含むマイクロコンピュータを備えている。また、コントローラ400は、例えば、ホール素子、ホールIC(Integrated Circuit)、レゾルバ等、電動モータMにおけるロータMRの磁極位置を検出する磁極位置センサPSと接続され、磁極位置センサPSから出力された磁極位置検出信号を入力する。そして、コントローラ400のマイクロコンピュータは、電流検出部300の検出回路302から出力された電流検出電圧、電動モータMにおけるロータMRの磁極位置を検出する磁極位置センサPSから出力された磁極位置検出信号、及び、ECU30から出力された指令信号(指令トルク)に基づいて、インバータ200におけるスイッチング素子201〜206のオン・オフ状態の切り替えを制御する制御信号を、スイッチング素子201〜206の各制御端子へ出力するように構成されている。
【0023】
具体的には、コントローラ400は、インバータ200のスイッチング素子201〜206のオン・オフを三角波比較方式のPWM(Pulse Width Modulation)によって制御して、電動モータMに印加する電圧を制御する。三角波比較方式のPWM制御においては、三角波キャリアと電圧指令値(デューティ指令値)とを比較することで、各スイッチング素子201〜206のオン・オフ状態を切り替えるタイミング、換言すれば、スイッチング素子201〜206に対する制御信号であるPWMパルスの立ち上げ及び立ち下げのタイミングを検出する。
【0024】
なお、コントローラ400は、各相の上アームにおけるスイッチング素子201,203,205のオン・オフ状態の切り替えを制御するPWMパルスに対し、各相の下アームにおけるスイッチング素子202,204,206のオン・オフ状態の切り替えを制御するPWMパルスを逆相とする相補方式で、インバータ200におけるスイッチング素子201〜206をPWM制御する。つまり、1つの相の上アームにおけるスイッチング素子201,203,205のオン・オフ状態の切り替えを制御するPWMパルスが論理レベルでハイ(High)のとき、同じ相の下アームにおけるスイッチング素子202,204,206のオン・オフ状態の切り替えを制御するPWMパルスは論理レベルでロー(Low)となり、全相の上アームがオンのときに全相の下アームがオフに、全相の下アームがオンのときに全相の上アームがオフになる。
【0025】
図3は、コントローラ400の機能ブロック図であり、ベクトル制御方式による3相指令電圧Vu、Vv、Vwの設定処理を示す。コントローラ400は、機能ブロックとして、相電流検出部401、ロータ角度演算部402、ロータ角速度演算部403、3相−2軸変換部404、d軸電流指令値設定部405、q軸電流指令値設定部406、ベクトル制御部407、2軸−3相変換部408及びPWMパルス生成部409を有している。
【0026】
相電流検出部401は、電流検出部300の検出回路302から出力された電流検出電圧をA/D(Analog to Digital)変換し、変換後のA/D変換値からインバータ200の直流母線電流を算出し、算出した直流母線電流に基づいて各相の相電流を相電流検出値Iu,Iv,Iwとして検出する。すなわち、モータ駆動装置100は、1つのシャント抵抗301で電動モータMの各相の相電流を検出するように構成されている。なお、相電流の検出方法については後述する。
【0027】
ロータ角度演算部402は、磁極位置センサPSから出力された磁極位置検出信号に基づいて、電動モータMにおけるロータMRの磁極位置θを演算する。ロータ角速度演算部403は、ロータ角度演算部402で算出したロータMRの磁極位置θの時間変化からロータMRの角速度ωを演算する。
【0028】
3相−2軸変換部404は、相電流検出部401で検出した相電流検出値Iu,Iv,Iwを、そのときのロータMRの磁極位置θに基づいて、2軸の回転座標系(d−q座標系)におけるd軸電流検出値Id及びq軸電流検出値Iqに変換する。
【0029】
d軸電流指令値設定部405は、d−q座標系におけるd軸電流の指令値(d軸電流指令値)Id
*を例えば零に設定する。q軸電流指令値設定部406は、ECU30からの指令トルクを電動モータMに固有のトルク定数Ktで除算する等により、d−q座標系におけるq軸電流の指令値(q軸電流指令値)Iq
*を設定する。
【0030】
ベクトル制御部407は、d軸電流指令値Id
*及びq軸電流指令値Iq
*、ロータ角速度演算部403で算出した角速度ω、3相−2軸変換部404で相電流検出値Iu,Iv,Iwを変換して得られたd軸電流検出値Id及びq軸電流検出値Iqに基づいて、d−q座標系におけるd軸電圧の指令値(d軸電圧指令値)Vd及びq軸電圧の指令値(q軸電圧指令値)Vqを演算する。要するに、ベクトル制御部407は、ロータMRの角速度を考慮しつつ、PI制御等の電流フィードバック制御によって、d軸電流検出値Idをd軸電流指令値Id
*に近づけ、かつ、q軸電流検出値Iqをq軸電流指令値Iq
*に近づけるように、d軸電圧指令値Vd及びq軸電圧指令値Vqを演算する。
【0031】
2軸−3相変換部408は、ベクトル制御部407で演算されたd軸電圧指令値Vd及びq軸電圧指令値Vqを、そのときのロータMRの磁極位置θに基づいて、U相電圧指令値Vu、V相電圧指令値Vv及びW相電圧指令値Vwの3相電圧指令値に変換する。
【0032】
また、2軸−3相変換部408は、3相電圧指令値Vu,Vv,Vwを補正することにより、三角波キャリアの谷を中心として生成されるPWMパルスを前後にシフトさせるパルスシフト処理を行う。このパルスシフト処理は、相電流を検出するタイミングを生成するために必要となる処理であり、詳細については後述する。
【0033】
PWMパルス生成部409では、スイッチング素子201〜206を駆動するためのPWMパルスの立ち上げタイミング及び立ち下げタイミングを、3相電圧指令値Vu,Vv,Vwと三角波キャリアとの比較に基づいて決定し、生成したPWMパルスをインバータ200のスイッチング素子201〜206の各制御端子に出力する。
【0034】
例えば、PWMパルス生成部409は、U相電圧指令値Vuと三角波キャリアとを比較し、U相電圧指令値Vuが三角波キャリアよりも大きいときに、U相の上アームにおけるスイッチング素子201を駆動するためのPWMパルスを論理レベルでハイレベルに設定し、U相電圧指令値Vuが三角波キャリアよりも小さいときにU相の上アームにおけるスイッチング素子201を駆動するためのPWMパルスを論理レベルでローレベルに設定する。また、PWMパルス生成部409は、U相の上アームにおけるスイッチング素子201を駆動するためのPWMパルスの反転信号を、U相の下アームにおけるスイッチング素子202を駆動するためのPWMパルスとして生成する。
【0035】
同様にして、PWMパルス生成部409は、V相の上下アームにおけるスイッチング素子203,204を駆動するためのPWMパルス、及び、W相の上下アームにおけるスイッチング素子205,206を駆動するためのPWMパルスを生成する。
【0036】
次に、相電流検出部401における相電流の検出方法について説明する。
【0037】
相電流検出部401は、電流検出電圧に基づいて算出したインバータ200の直流母線電流が、スイッチング素子201〜206に出力されるPWMパルスの組み合わせ次第で1つの相の相電流に相当することを利用して、電動モータMの各相の相電流を相電流検出値Iu,Iv,Iwとして検出する。
【0038】
例えば、U相の上アームのスイッチング素子201がオン状態で、V相の上アームのスイッチング素子203及びW相の上アームのスイッチング素子205が共にオフ状態である場合は、U相コイルMuに流れた電流がV相コイルMv及びW相コイルMwに分かれて流れ、相電流検出部401は、算出した直線母線電流をU相の相電流検出値Iuとして検出することになる。つまり、各相の上アームのスイッチング素子201,203,205のうちの1つをオン状態に制御しつつ他の2つをオフ状態に制御するPWMパルスの組み合わせ状態において、相電流検出部401は、上アームのスイッチング素子201,203,205のうちオン状態に制御されている1つの相の相電流を検出することになる。
【0039】
また、U相の上アームのスイッチング素子201及びV相の上アームのスイッチング素子203が共にオン状態で、W相の上アームのスイッチング素子205がオフ状態である場合は、U相コイルMuに流れた電流及びV相コイルMvに流れた電流が合流してW相コイルMwに流れることになり、相電流検出部401は、算出した直線母線電流をW相の相電流検出値Iwとして検出することになる。つまり、各相の上アームのスイッチング素子201,203,205のうちの2つをオン状態に制御しつつ他の1つをオフ状態に制御するPWMパルスの組み合わせ状態において、相電流検出部401は、上アームのスイッチング素子201,203,205のうちオフ状態に制御されている1つの相の相電流を検出することになる。
【0040】
したがって、相電流検出部401は、PWMパルスが各相の上アームにおけるスイッチング素子201,203,205のうちの1つ又は2つをオン状態に制御する論理レベルとなる時間を相電流検出時間とする。相電流検出部401は、各相電流検出時間において、1つだけオン状態となる上アームのスイッチング素子の相、あるいは、1つだけオフ状態となる上アームのスイッチング素子の相を、相電流が検出される相として特定する。そして、相電流検出部401は、相電流検出時間内に相電流検出タイミング(例えば電流検出電圧のA/D変換におけるサンプリングタイミング)を設定し、この相電流検出タイミングで電流検出電圧をサンプリングし、サンプリング値から求めた直流母線電流の電流値をそのときに検出対象として特定されている相の相電流検出値とする。
【0041】
ところで、電動モータMにおける3相の相電流のうち2相までを検出できれば、残りの1相の相電流は、3相の相電流の総和が零になることを用いて演算により得られる。そこで、2軸−3相変換部408は、電動モータMにおける3相のうち2相の各相電流を検出する相電流検出タイミングを設定できるように、PWMパルスの位相を相毎に変化させるパルスシフト処理を実施する。
【0042】
図4は、パルスシフト処理による相電流検出の一態様を示すタイムチャートである。
図4に示すように、例えば、V相の相電流検出値Iv及びW相の相電流検出値Iwを検出する場合には、2軸−3相変換部408は、V相の上アームのスイッチング素子203に対するPWMパルスの位相を進めるとともに、W相の上アームのスイッチング素子205に対するPWMパルスの位相を遅くするようにV相電圧指令値Vv及びW相電圧指令値Vwを補正する。具体的には、2軸−3相変換部408は、V相の上アームのスイッチング素子203に対するPWMパルスの位相を進める場合、三角波キャリアの谷よりも前半の半周期(時刻t1〜t3)でV相電圧指令値Vvを増大補正し、その増大補正分に応じて、三角波キャリアの谷よりも後半の半周期(時刻t3〜t5)でV相電圧指令値Vvを減少補正する。また、2軸−3相変換部408は、W相の上アームのスイッチング素子205に対するPWMパルスの位相を遅くする場合、三角波キャリアの谷よりも前半の半周期(時刻t1〜t3)でW相電圧指令値Vwを減少補正し、その減少補正分に応じて、三角波キャリアの谷よりも後半の半周期(時刻t3〜t5)でW相電圧指令値Vwを増大補正する。
【0043】
U相電圧指令値Vuは2軸−3相変換部408によって補正されていないので、U相の上アームのスイッチング素子201に対するPWMパルスは三角波キャリアの谷(時刻t3)を中心に生成される。一方、V相電圧指令値Vv及びW相電圧指令値Vwは2軸−3相変換部408によって補正されているので、V相の上アームのスイッチング素子203に対するPWMパルスは位相が進められて三角波キャリアの谷(時刻t3)よりも早い時刻を中心に生成され、W相の上アームのスイッチング素子205に対するPWMパルスは位相が遅らされて三角波キャリアの谷(時刻t3)よりも遅い時刻を中心に生成される。
【0044】
かかるパルスシフト処理によって、三角波キャリアの谷よりも前半の半周期(時刻t1〜t3)で、U相の上アームのスイッチング素子201及びV相の上アームのスイッチング素子203がオン状態となり、かつ、W相の上アームのスイッチング素子205がオフ状態となる相電流検出時間D1が生成される。また、三角波キャリアの谷よりも後半の半周期(時刻t3〜t5)で、U相の上アームのスイッチング素子201及びW相の上アームのスイッチング素子205がオン状態となり、かつ、V相の上アームのスイッチング素子203がオフ状態となる相電流検出時間D2が生成される。
【0045】
そこで、相電流検出部401は、三角波キャリアの谷よりも前半の半周期(時刻t1〜t3)における相電流検出時間D1のうちの時刻t2を相電流検出タイミングとして設定し、この相電流検出タイミングで電流検出部300の検出回路302から出力された電流検出電圧をサンプリングしてW相の相電流を検出する。また、相電流検出部401は、三角波キャリアの谷よりも後半の半周期(時刻t3〜t5)における相電流検出時間D2のうちの時刻t4を相電流検出タイミングとして設定し、この相電流検出タイミングで電流検出電圧をサンプリングしてV相の相電流を検出する。そして、相電流検出値Iv及びIwから、Iu=−(Iv+Iw)なる演算式によって相電流検出値Iuを算出する。
【0046】
ここで、コントローラ400には、
図3に示すように、q軸電圧指令値Vq、q軸電流検出値Iq及びロータMRの角速度ωに基づいて、シャント抵抗301を含む電流検出部300の異常を検知する異常診断部500がさらに備えられている。
【0047】
図5は、異常診断部500における異常診断処理の概要を示す。異常診断部500は、ベクトル制御部407で算出したq軸電圧指令値Vqの符号情報を抽出する符号情報抽出処理501を行う。そして、異常診断部500は、乗算処理502において、q軸電圧指令値Vqの符号が負を示す場合には(−1)を、あるいは、q軸電圧指令値Vqの符号が正を示す場合には(+1)を、3相−2軸変換部404で得られたq軸電流検出値Iqに乗算して、q軸電流検出値Iqの診断用変換値である診断用q軸電流検出値Iqaを取得する。要するに、異常診断部500は、乗算処理502において、q軸電圧指令値Vqの正負に応じてq軸電流検出値Iqの正負を決定している。
【0048】
また、異常診断部500は、ベクトル制御部407で算出したq軸電圧指令値Vqを絶対値に変換する絶対値処理503を行った後、絶対値に変換されたq軸電圧指令値(診断用q軸電圧指令値)|Vq|に基づいて、電流検出部300が正常であるときの診断用q軸電流検出値Iqaとして推定されるq軸電流推定値を決定する。具体的には、異常診断部500は、種々要因によるq軸電流検出値Iqのばらつきを考慮して、上限推定値演算処理504によりq軸電流推定値の上限値であるq軸電流上限推定値を演算し、下限推定値演算処理505によりq軸電流推定値の下限値であるq軸電流下限推定値を演算する。q軸電流上限推定値及びq軸電流下限推定値は、診断用q軸電流検出値Iqaの正常範囲を画する閾値となる。q軸電流上限推定値及びq軸電流下限推定値は、概略的には、
図6に示すように、診断用q軸電圧指令値|Vq|とともに徐々に増大し、また、診断用q軸電流検出値Iqaの正常範囲は、絶対値化したq軸電圧指令値|Vq|とともに徐々に広がっていく。
【0049】
そして、異常診断部500は、乗算処理502で得られた診断用q軸電流検出値Iqa、上限推定値演算処理504で得られたq軸電流上限推定値、及び、下限推定値演算処理505で得られたq軸電流下限推定値に基づいて、電流検出部300の異常の有無を判定する異常判定処理506を行う。
【0050】
図7は、コントロールシャフト22の回転角度の変化に対する診断用q軸電流検出値Iqaの変化を示す。基本的には、異常診断部500における異常判定処理506では、診断用q軸電流検出値Iqaがq軸電流推定値から所定時間T継続して乖離する、より詳しくは、診断用q軸電流検出値Iqaがq軸電流上限推定値とq軸電流下限推定値との間で規定される正常範囲から逸脱するという異常状態が所定時間T継続したときに、電流検出部300は異常であると判定する。コントロールシャフト22の検出角度を目標角度に近づけるべく電動モータMを回転させる際には、q軸電流検出値Iqやその正常範囲が安定し難いため、異常診断部500による電流検出部300の異常検知は、電動モータMが殆ど停止した状態で行うことが好ましい。
【0051】
ところで、例えばシャント抵抗301の抵抗値が何らかの原因によって低下する等により、電流検出部300の検出回路302から出力される電流検出電圧が実際の直流母線電流に相当する電圧よりも低い電圧となる異常(以下、「電流検出ゲイン低下異常」という)が発生した場合には、q軸電流検出値Iqも実際より零に近い値となってしまう。そうすると、ベクトル制御部407は、q軸電流検出値Iqをq軸電流指令値Iq
*に近づけるべくq軸電圧指令値Vqを上昇させる。しかし、電動モータMのトルクが過大となって、コントロールシャフト22の回転角度が目標角度を超えてしまうため、ECU30は、電動モータMが逆方向のトルクを発生するようにコントローラ400に指令トルクを出力する。そして、ベクトル制御部407は、ECU30が指令トルクを逆方向にしたことに伴って算出されたq軸電流指令値Iq
*にq軸電流検出値Iqを近づけるようにq軸電圧指令値Vqを算出する。ところが、上記のようにq軸電流検出値Iqは実際より零に近い値となるため、今度は、電動モータMの逆方向のトルクが過大となって、コントロールシャフト22の回転角度が逆方向から目標角度を超えてしまう。
【0052】
したがって、電流検出ゲイン低下異常が発生した場合には、
図8(a)に示すようにコントロールシャフト22の回転角度が目標角度に収束せずに振動するとともに、
図8(b)に示すように電動モータMが正転及び逆転を繰り返すことが想定される。この状態において、
図8(c)に示すようにq軸電圧指令値Vqが変動するに伴い、
図8(d)に示すようにq軸電流下限推定値(q軸電流上限推定値についても同様。以下省略)が上下動を繰り返すことになる。
【0053】
しかし、q軸電流下限推定値は、電動モータMの回転速度が上昇するに従って増大する誘起電圧の影響によって、
図6のように診断用q軸電圧指令値|Vq|に基づいて算出されるq軸電流下限推定値よりも低下してしまう。このため、電動モータMの回転速度が比較的低い場合には、診断用q軸電流検出値Iqaはq軸電流下限推定値を下回って異常範囲に含まれる一方、電動モータMの回転速度が比較的高い場合には、診断用q軸電流検出値Iqはq軸電流下限値を上回って正常範囲に含まれてしまう。したがって、
図8(e)に示すように、診断用q軸電流検出値Iqaが異常範囲に含まれてからの異常状態の継続時間を示すNGカウンタが所定時間Tに到達する前に、診断用q軸電流検出値Iqaが正常範囲に含まれる正常状態となると、RAM等の書き換え可能なメモリに記憶されているNGカウンタは零にリセットされるため、電流検出部300の異常を検知できないという誤診断のおそれがある。
【0054】
そこで、異常診断部500では、
図9(a)に示すように、電動モータMの回転速度が零を含む比較的低い所定範囲Rにあるときを、異常を検知するための診断実施時間としている。所定範囲Rは、電流検出ゲイン低下異常が発生している場合に、
図9(b)に示すように、診断用q軸電流検出値Iqaがq軸電流下限推定値を下回って、診断用q軸電流検出値Iqaが異常状態となるように予め設定される。異常診断部500は、電動モータMの回転速度が所定範囲Rにあるか否かによって診断実施時間の開始及び終了のタイミングを判断するために、ロータ角速度演算部403で得られたロータMRの角速度ωを用いる。
【0055】
また、異常診断部500は、診断実施時間において診断用q軸電流検出値Iqaが異常状態であるときには、
図9(c)に示すように、RAM等に記憶されているNGカウンタを診断実施時間分増大させ、診断実施時間終了後、NGカウンタの値を保持するように構成されている。
【0056】
そして、異常診断部500は、
図9(d)に示すように、NGカウンタが診断実施時間の積算によって所定時間Tに到達したときに、電流検出部300が異常であると判定して、シャント抵抗301を含む電流検出部300の合理性を示すNGフラグを異常であることを示す値に変化させる。
【0057】
図10は、車両のイグニッションスイッチがオン操作されてモータ駆動装置100に電源供給されたことを契機として、異常診断部500において繰り返し実行される異常診断処理を示す。
【0058】
ステップS1(図中では「S1」と略記する。以下同様。)では、異常診断部500は、診断実施条件が成立しているか否かを判定する。かかる診断実施条件が成立するのは、ECU30からコントローラ400に対して電動モータMの駆動指令信号が出力される等の駆動許可条件が成立していること、異常時に車載電源Eからインバータ200に対する電力供給を停止するフェールセーフリレーがシャットダウン(遮断)動作中でないこと、及び、電動モータMの回転速度が前述の所定範囲Rに含まれることの3条件が全て成立する場合である。電動モータMの回転速度が所定範囲Rに含まれているか否かは、ロータ角速度演算部403で得られたロータMRの角速度ωに基づいて判定することができる。そして、異常診断部500は、診断実施条件が成立していると判定した場合には(YES)、処理をステップS2へ進める一方、診断実施条件が成立していないと判定した場合には(NO)、異常診断処理を終了する。
【0059】
ステップS2では、異常診断部500は、診断用q軸電圧指令値|Vq|に対してフィルタ処理を行う。かかるフィルタ処理は、q軸電圧指令値Vqに基づくPWMパルスをインバータ200に出力して電動モータMを駆動する場合に、q軸電流検出値Iqがq軸電圧指令値Vqに対応した値となるまでの時間的な遅れ、すなわち、電動モータMのモータ特性(例えばインダクタンス)による電流応答遅れ(1次遅れ)が発生することを考慮して行うものである。したがって、異常診断部500は、上記の電流応答遅れを考慮してq軸電流上限推定値及びq軸電流下限推定値を演算できるように、診断用q軸電圧指令値|Vq|に対してフィルタ処理を行う。
【0060】
ステップS3では、異常診断部500は、ステップS1でフィルタ処理がなされた診断用q軸電圧指令値|Vq|に基づいて、q軸電流上限推定値及びq軸電流下限推定値を演算する。診断用q軸電流検出値Iqaの正常範囲は、電流検出電圧のA/D変換等による電圧検出、電流検出部300による電流検出、電動モータMのモータ特性(誘起電圧定数、q軸抵抗)、相補方式のスイッチング切り換え時におけるデッドタイムに起因した電圧降下代、ロータ角度検出、及び、内燃機関10の油温又は排気性能の複数からなる、診断用q軸電流検出値Iqaの複数のばらつき要因のうち、少なくとも1つの要因におけるばらつきに応じて変化する。
【0061】
例えば、異常診断部500は、以下のようにしてq軸電流上限推定値及びq軸電流下限推定値を演算する。電圧検出のばらつきの最大値を考慮してq軸電流上限推定値を演算した場合には、電圧検出のばらつきの最小値を考慮してq軸電流下限推定値を演算する。電流検出のばらつきの最大値を考慮してq軸電流上限推定値を演算した場合には、電流検出のばらつきの最小値を考慮してq軸電流下限推定値を演算する。誘起電圧定数のばらつきの最小値を考慮してq軸電流上限推定値を演算した場合には、誘起電圧定数のばらつきの最大値を考慮してq軸電流下限推定値を演算する。q軸抵抗のばらつきの最小値を考慮してq軸電流上限推定値を演算した場合には、q軸抵抗のばらつきの最大値を考慮してq軸電流下限推定値を演算する。デッドタイムによる電圧降下代のばらつきの最小値を考慮してq軸電流上限推定値を演算した場合には、デッドタイムによる電圧降下代のばらつきの最大値を考慮してq軸電流下限推定値を演算する。ロータ角度検出ばらつきの最大値を考慮してq軸電流上限推定値を演算した場合には、ロータ角度検出ばらつきの最小値を考慮してq軸電流下限推定値を演算する。
【0062】
ステップS4では、異常診断部500は、q軸電圧指令値Vqが零よりも大きいか否かを判定する。そして、異常診断部500は、q軸電圧指令値Vqが零よりも大きいと判定した場合には(YES)、処理をステップS5へ進める一方、q軸電圧指令値Vqが零以下であると判定した場合には(NO)、処理をステップS6へ進める。
【0063】
ステップS5では、異常診断部500は、3相−2軸変換部404で得られたq軸電流検出値Iqを異常診断処理における診断用q軸電流検出値Iqaとして決定する。一方、ステップS6では、異常診断部500は、3相−2軸変換部404で得られたq軸電流検出値Iqに(−1)を乗算した値を診断用q軸電流検出値Iqaとして決定する。
【0064】
ステップS7では、異常診断部500は、診断用q軸電流検出値Iqaがq軸電流上限推定値以上であるか否かを判定する。そして、異常診断部500は、診断用q軸電流検出値Iqaがq軸電流上限推定値以上であると判定した場合には(YES)、診断用q軸電流検出値Iqaが正常範囲を逸脱して異常範囲に含まれるので、処理をステップS9へ進める。一方、異常診断部500は、診断用q軸電流検出値Iqaがq軸電流上限推定値未満であると判定した場合には(NO)、処理をステップS8へ進める。
【0065】
ステップS8では、異常診断部500は、診断用q軸電流検出値Iqaがq軸電流下限推定値以下であるか否かを判定する。そして、異常診断部500は、診断用q軸電流検出値Iqaがq軸電流下限推定値以下であると判定した場合には(YES)、診断用q軸電流検出値Iqaが正常範囲を逸脱して異常範囲に含まれるので、処理をステップS9へ進める。一方、異常診断部500は、診断用q軸電流検出値Iqaがq軸電流下限推定値よりも大きいと判定した場合には(NO)、診断用q軸電流検出値Iqaは正常範囲に含まれるので、ステップS9を省略して、処理をステップS10へ進める。
【0066】
ステップS9では、異常診断部500は、例えば、ステップS1において診断実施条件が成立したと判定されてからの経過時間等、異常診断処理における経過時間で、RAM等の書き換え可能なメモリに記憶されているNGカウンタをカウントアップする(増大させる)。
【0067】
ステップS10では、異常診断部500は、NGカウンタが所定時間T以上であるか否かを判定する。そして、異常診断部500は、NGカウンタが所定時間T以上であると判定し場合には(YES)、処理をステップS11へ進めて、電流検出部300が異常であると判定するとともに、NGフラグを、異常を示す値に変化させる。一方、異常診断部500は、NGカウンタが所定時間T未満であると判定した場合には(NO)、ステップS11を省略して、異常診断処理を終了する。
【0068】
ステップS10の所定時間Tは、電流検出ゲイン低下異常によって、
図11(a)に示すように電動モータMの回転速度Nがハンチングを起こして、
図11(b)に示すようにコントロールシャフト22が回転振動したときであっても、VCR機構20ないし内燃機関10に対する影響が低い時間内で電流検出部300の異常を判定できるようにすべく、以下のように設定可能である。
【0069】
先ず、異常診断部500は、
図11(a)に示すように、電動モータMの回転速度Nのハンチング波形から回転速度Nの変動周期TA及び回転速度Nの最大変動量N
p(ピーク値)を検出する。そして、異常診断部500は、電動モータMの回転速度Nが
図11(a)のハンチング波形で継続するものと仮定して、回転速度Nの変動周期TA及び回転速度Nの最大変動量N
pに基づいて、電動モータMの回転速度Nが所定範囲R(N1〜N2)に含まれている時間すなわち診断実施時間TBを推定する。例えば、電動モータMの回転速度Nのハンチング波形を、αを初期位相とした正弦波で近似すると、
N1=N
p×SIN{(2π/TA)×t
i+α}…(1)、及び
N2=N
p×SIN{(2π/TA)×t
ii+α}…(2)
という2つの関係式(1)及び(2)から時刻t
i及びt
iiを演算し、時刻t
i及びt
iiに基づいて診断実施時間TBを演算できる。
【0070】
また、異常診断部500は、コントロールシャフト22の回転角度のハンチング波形における回転角度θの最大変動量L
p−p(ピークピーク値)を検出する。そして、異常診断部500は、コントロールシャフト22の回転角度θが
図11(b)のハンチング波形で継続するものと仮定して、検出した回転角度θの最大変動量L
p−p及び変動周期TAに基づいて、異常状態を継続してもVCR機構20ないし内燃機関10に対して殆ど影響を及ぼさない時間の最長値(異常継続許容時間)TCを推定する。例えば、コントロールシャフト22の回転角度θが1周期変動すると、その変動量は回転角度θの最大変動量L
p−pの2倍の回転角度に相当する変動量(2×L
p−p)となる。これに対し、電動モータMの回転速度のハンチングがVCR機構20ないし内燃機関10に対して殆ど影響を及ぼさないときの変動量の限界値としてLmaxが予め設定されているとすると、異常継続許容時間TCは、以下の関係式(3)によって演算される。
TC=(Lmax/(2×L
p−p))×TA…(3)
【0071】
そして、異常診断部500は、上記のようにして演算された、ハンチング波形の周期TA、診断実施時間TB及び異常継続許容時間TCに基づいて、所定時間Tを演算する。例えば、NGカウンタが所定時間Tに到達するまでの周期をPとすると、以下の2つの関係式(4)及び(5)が成立する。
T=2×TB×P…(4)
TC≧TA×P…(5)
【0072】
したがって、上記の2つの関係式(4)及び(5)からPを消去すると、
T≦(2×TB×TC)/TA…(6)
という関係式(6)が得られ、異常判定の精度を重視する場合には、所定時間Tを長くすることが好ましいので、所定時間Tは、
T=(2×TB×TC)/TA…(7)
という関係式(7)で定義されることになる。これにより、電流検出ゲイン低下異常によるVCR機構20ないし内燃機関10の2次故障を抑制しつつ、比較的良好な精度で異常を判定することができる。
【0073】
このようなモータ駆動装置100によれば、コントローラ400が、1つのシャント抵抗301を含む電流検出部300の検出回路302から出力された電流検出電圧に基づいてq軸電流検出値Iqを演算し、また、電流指令値Id
*,Iq
*、電流検出値Id,Iq、角速度ωに基づいてq軸電圧指令値Vqを演算する。そして、コントローラ400は、q軸電流検出値Iqから演算した診断用q軸電流検出値Iqaが、診断用q軸電圧指令値|Vq|に基づいて設定されたq軸電流推定値から所定時間継続して乖離するか否かによって、電流検出部300の異常の有無を判定している。このため、モータ駆動装置100は、電流検出部300の異常を検知するために、電流検出部300以外の他の電流検出手段を用いていない。したがって、モータ駆動装置100によれば、部品点数を増大させることなく、簡易な構成で電流検出部300の異常を検知することができる。
【0074】
また、モータ駆動装置100によれば、電流検出ゲイン低下異常により電動モータMの回転速度がハンチングしたときに、電動モータMの回転速度の上昇に伴ってq軸電流下限推定値が誘起電圧の影響により低下して、診断用q軸電流検出値Iqaが正常範囲に含まれてしまう場合でも、以下のようにして電流検出部300の異常を検知することができる。すなわち、異常診断部500は、電動モータMの回転速度が比較的低い所定範囲Rとなるときを診断実施時間としているので、q軸電流下限推定値が誘起電圧の影響を受け難く、診断用q軸電流検出値Iqaがq軸電流下限推定値を下回った状態で異常の有無を判定することができる。そして、異常診断部500は、各診断実施時間でカウントアップしたNGカウンタの値を保持するように構成されているので、NGカウンタが所定時間Tに到達したときに電流検出部300の異常を検知することができる。
【0075】
なお、前述の実施形態において、d軸電流指令値設定部405では、d軸電流指令値Id
*を零に設定していたが(「Id=0制御」)、電動モータMの種類に応じたベクトル制御方式に変更することで、d軸電流指令値設定部405はd軸電流指令値Id
*を零以外の値に設定することができる。例えば、電動モータMがロータMRの内部に永久磁石を埋め込んだ埋込磁石構造のIPM(Interior Permanent Magnet Synchronous Motor)である場合には、「Id=0制御」以外のベクトル制御方式を採用することができる。
【0076】
「Id=0制御」以外のベクトル制御方式を採用する場合、異常診断部500は、前述の実施形態と同様に、d軸電圧指令値Vd及びd軸電流検出値Idに基づいて、電流検出部300の異常を検知することができる。すなわち、異常診断部500は、d軸電圧指令値Vdを絶対値処理及びフィルタ処理して得られる診断用d軸電圧指令値|Vd|に基づいてd軸電流上限推定値及びd軸電流下限推定値を演算し、d軸電流検出値Idとd軸電圧指令値Vdの符号情報とに基づいて診断用d軸電流検出値Idaを演算する。そして、異常診断部500は、診断用d軸電流検出値Idaがd軸電流上限推定値とd軸電流下限推定値との間で規定される正常範囲から逸脱する異常状態が所定時間T継続したときに、電流検出部300が異常であると判定する。
【0077】
但し、異常診断部500がd軸電圧指令値Vd及びd軸電流検出値Idに基づいて異常診断処理を行う場合には、d軸電流上限推定値及びd軸電流下限推定値は電動モータMの回転速度が上昇しても誘起電圧の影響を受けないため、診断実施時間は電動モータMの回転速度が所定範囲Rとなるときに限られない。このため、異常診断部500は、ステップS1の診断実施条件から、電動モータMの回転速度が前述の所定範囲Rに含まれること、という条件を除外することができる。したがって、異常診断部500は、ロータMRの角速度ωの情報を用いることなく、異常診断処理を行うことができる。
【0078】
前述の実施形態において、電流検出ゲイン低下異常によって電動モータMの回転速度がハンチングしても、電動モータMのモータ特性によりq軸電流検出値が正常範囲に含まれて正常状態となるようなことが生じないと想定される場合には、診断実施条件から、電動モータMの回転速度が前述の所定範囲Rに含まれること、という条件を除外してもよい。
【0079】
前述の実施形態の異常診断処理(
図10参照)において、異常診断部500は、ステップ8により診断用q軸電流検出値Iqaが正常範囲に含まれて正常状態であると判定した場合、ステップS10の処理を行う前に、ステップS9のNGカウンタのカウントアップ処理を省略するだけであった。これに代えて、異常診断部500は、誤診断を低減すべく、ステップ8により診断用q軸電流検出値Iqaが正常範囲に含まれて正常状態であると判定した場合、ステップS10の処理を行う前に、NGカウンタをリセットするか、あるいはカウントダウンし(減少させ)てもよい。
【0080】
前述の実施形態において、異常診断部500がステップS11において電流検出部300が異常であると判定して、NGフラグを異常であることを示す値に変化させた場合には、以下のようにすることができる。すなわち、コントローラ400は、NGフラグの値に基づいて、VCR機構20ないし内燃機関10の2次故障を抑制すべく、車載電源Eとインバータ200との間の直流母線に介挿された図示省略のフェールセーフリレーをシャットダウン(遮断)して、電動モータMに対する電力供給を停止することができる。また、コントローラ400は、フェールセーフリレーのシャットダウンに加えて又はこれとは別に、例えば、ベクトル制御部407でd軸電圧指令値Vd及びq軸電圧指令値Vqを零にする等の強制的処理によって、コントローラ400からインバータ200のスイッチング素子201〜206へ出力されるPWMパルスのデューティを零にすることもできる。
【0081】
以上、好ましい実施形態を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば種々の変形態様を採り得ることは自明である。例えば、モータ駆動装置100はVCR機構20における圧縮比制御アクチュエータ23の動力源としての電動モータMを駆動するものとして適用したが、これに限らず、モータ駆動装置100は、内燃機関10におけるカムの回転位相を可変制御するVTC(Valve Timing Control)、吸気バルブ14A及び排気バルブ14Bの作動角・リフト量を可変制御するVEL(Variable Valve Event and Lift Control)、電動ブレーキシステム、電動パワーステアリング等、車載システムを駆動する車載アクチュエータとしての電動モータに適用可能である。要するに、モータ駆動装置100は、電流検出手段によって検出された電流検出値が、車載アクチュエータとしての電動モータが駆動する駆動対象である車載システムの動作位置と目標位置との偏差に基づいて演算される目標電流値となるように電流フィードバック制御を行うものであればよい。
【0082】
電動モータMにおけるロータMRの磁極位置を検出する磁極位置検出手段として、磁極位置センサPSを例に説明したが、磁極位置センサPSを用いない既知のセンサレス技術によって磁極位置を検出するようにしてもよい。
【0083】
モータ駆動装置100は、圧縮比制御アクチュエータ23に内蔵される構成に限らず、圧縮比制御アクチュエータ23とは別体に構成することができる。また、モータ駆動装置100についても、インバータ200とコントローラ400は別体に構成することができる。