以下、添付図面を参照しつつ本発明を実施するための実施形態について説明する。
図1は、モータ制御装置を適用した車両用内燃機関(エンジン)の一例を示す構成図である。
エンジン1は、シリンダブロック10と、シリンダブロック10のシリンダボア10Aに往復動可能に挿入されたピストン12と、シリンダブロック10の上部に取り付けられたシリンダヘッド14と、を備えている。ピストン12の冠面12Aとシリンダヘッド14の下面との間には、燃焼室Sが形成されている。
ピストン12は、コネクティングロッド(コンロッド(conn-rod))16を介してクランクシャフト18に連結されている。シリンダヘッド14には、それぞれ、燃焼室Sに向かって開口する吸気ポート14A及び排気ポート14Bが設けられている。また、シリンダヘッド14には、吸気ポート14Aの開口を開閉する吸気バルブ20Aと、排気ポート14Bの開口を開閉する排気バルブ20Bとが取り付けられている。さらに、シリンダヘッド14には、燃焼室Sに燃料を噴射する燃料噴射装置22と、燃料と空気との混合気を着火する点火装置24とが取り付けられている。
また、エンジン1は、例えば、特開2002-276446号公報に開示されるような複リンク機構によって、燃焼室Sの容積を変更することで、圧縮比を可変とする可変圧縮比(VCR:Variable Compression Ratio)機構26を備えている。
VCR機構26の複リンク機構は、例えば、以下のように構成されている。
コンロッド16は、ロアリンク16A及びアッパリンク16Bを有する。ロアリンク16Aは、略三角形状の2つの部材で構成されている。ロアリンク16Aの略中央部には、クランクシャフト18に連結するための連結孔が形成されている。アッパリンク16Bは、下端側が第1の連結ピン28によりロアリンク16Aの一端に回動可能に連結され、上端側がピストンピン30によりピストン12に回動可能に連結されている。クランクシャフト18は、複数のジャーナル部18A及びクランクピン部18Bを有する。ジャーナル部18Aは、シリンダブロック10の主軸受(図示省略)に回転自在に支持されている。クランクピン部18Bは、ロアリンク16Aの連結孔に挿入されている。これにより、ロアリンク16Aがクランクピン部18Bに回転自在に連結される。また、クランクピン部18Bは、ジャーナル部18Aから所定量偏心している。シリンダブロック10の下部には、コントロールシャフト32が回転可能に支持されている。コントロールシャフト32は、その回転中心から偏心している偏心カム部32Aを有する。このコントロールシャフト32とロアリンク16Aの他端とは、コントロールリンク34を介して連結されている。コントロールリンク34は、上端側が第2の連結ピン36によりロアリンク16Aの他端に回動可能に連結され、下端側がコントロールシャフト32を介してシリンダブロック10の下部に回動可能に連結されている。より詳細には、コントロールリンク34の下端側は、偏心カム部32Aに回転可能に嵌合している。
このような複リンク機構を用いたVCR機構26では、コントロールシャフト32の回動位置が電動アクチュエータ38によって制御される。電動アクチュエータ38は、詳細を後述するモータと、減速機38Aと、出力軸38Bと、を含む。モータの回転出力は、まず、減速機38Aによって減速されて出力軸38Bに伝達される。回転出力は、出力軸38Bに伝達された後、出力軸38Bに形成されたギア(例えば、ウォームギア)38B1とコントロールシャフト32に形成されたギア(例えば、ウォームホイール)32Bとの噛合によって、コントロールシャフト32に伝達される。出力軸38Bの回転角度(実際の角度)βは、例えば、出力軸38Bにロータが取り付けられたレゾルバなどの回転角度センサ40によって検出される。回転角度センサ40は、実際の角度βに対応した実角度信号を出力する。
そして、VCR機構26では、電動アクチュエータ38の出力軸38Bを正転又は逆転させることでコントロールシャフト32が回動すると、偏心カム部32Aの中心位置が変化する。つまり、シリンダブロック10に対する偏心カム部32Aの相対位置が変化する。これにより、コントロールリンク34の下端の揺動支持位置が変化すると、ピストン上死点(TDC)におけるピストン12の位置が高くなったり低くなったりして、燃焼室Sの容積が増減する。したがって、エンジン1の圧縮比が低圧縮比又は高圧縮比に変更される。すなわち、エンジン1の圧縮比は、出力軸38Bの回転角度に応じて変化する。
VCR機構26には、図2に示すように、コントロールシャフト32が通常の制御範囲を超えて回動しようとするときに、通常の制御範囲以上の回動を規制するストッパ機構42が取り付けられている。ストッパ機構42は、コントロールシャフト32に要の部分が固定された第1の部材42Aと、シリンダブロック10に固定された板形状の第2の部材42Bとを有する。
第1の部材42Aは、コントロールシャフト32と一体回転する。第2の部材42Bは、通常の制御範囲である最高圧縮比(又は最低圧縮比)を超えてコントロールシャフト32が回動したときに、第1の部材42Aの中心角を規定する2辺の一方に当接する。これにより、コントロールシャフト32の変位が規制される。ここで、ストッパ機構42は、コントロールシャフト32が通常の制御範囲を超えようとするときに機能する。そのため、通常制御では、第1の部材42Aが第2の部材42Bに当接しないので、例えば、異音発生などを抑制することができる。
エンジン1の燃焼制御は、マイクロコンピュータを内蔵したエンジンコントローラ44が、燃料噴射装置22の噴射量及び噴射時期、並びに、点火装置24の点火時期などを電子制御することで行われる。エンジンコントローラ44には、例えば、車載ネットワークの一例であるCAN(Controller Area Network)を介して、VCR機構26を電子制御するVCRコントローラ46が接続されている。したがって、エンジンコントローラ44とVCRコントローラ46との間では、CANを介して任意のデータを送受信できる。尚、車載ネットワークとしては、CANに限らず、FlexRay(登録商標)などの公知のネットワークを使用することができる。
エンジンコントローラ44には、例えば、図示省略の入出力ポート又は入出力回路を介して、回転速度センサ48及び負荷センサ50の各出力信号が入力される。回転速度センサ48は、エンジン1の回転速度Neを検出する。負荷センサ50は、エンジン1の負荷Qを検出する。ここで、エンジン1の負荷Qとしては、例えば、吸気負圧、吸気流量、過給圧力、アクセル開度、スロットル開度など、トルクと密接に関連する状態量を使用することができる。
エンジンコントローラ44は、例えば、回転速度及び負荷に適合した目標値が設定されたマップを参照し、回転速度Ne及び負荷Qに応じた目標圧縮比を求める。また、エンジンコントローラ44は、求めた目標圧縮比に応じた出力軸38Bの回転角度(目標角度)βtを演算する。そして、エンジンコントローラ44は、CANを介して、目標角度βtに対応する目標角度信号をVCRコントローラ46に出力する。
VCRコントローラ46は、エンジンコントローラ44から出力された目標角度信号、回転角度センサ40から出力された実角度信号に基づいて、電動アクチュエータ38のモータの駆動を制御する。したがって、VCRコントローラ46がモータ制御装置の一例として挙げられる。モータの駆動が制御されることにより、出力軸38Bの正逆回転駆動が制御され、エンジン1の圧縮比が変更される。
図3は、電動アクチュエータ38のモータ及びVCRコントローラ46の内部構成を示す構成図である。電動アクチュエータ38のモータの一例としては、3相ブラシレスモータ60などが挙げられる。3相ブラシレスモータ60(以下、単に「モータ60」という)は、U相コイル60u、V相コイル60v及びW相コイル60wがスター結線された3相コイルを巻き回してなる略円筒状のステータ(図示省略)と、このステータの中央部に形成されている空間においてステータの軸線を中心として回転可能に配置されたロータ(永久磁石回転子)60Rと、を備えている。
モータ60には、例えば、ロータ60Rの回転に伴う磁界変化を検出し、ロータ60Rの回転角度θに応じた磁界検出信号を出力するホール素子又はエンコーダなどのロータ角度センサ60Sが内蔵されている。但し、これに限るものではなく、ロータ角度センサ60Sは、例えば、ロータ60Rの回転角度θに応じた信号を検出するレゾルバであってもよい。
VCRコントローラ46は、インバータ70及び制御器80を有する。インバータ70は、車載バッテリBの直流(電圧)を交流(電圧)に変換して当該交流電力をモータ60(その3相コイル)に供給することでモータ60を駆動する電力変換器である。
インバータ70は、スイッチング素子70A、70Bを直列接続したU相アームと、スイッチング素子70C、70Dを直列接続したV相アームと、スイッチング素子70E、70Fを直列接続したW相アームと、を有する。これらU、V、W相アームは、車載バッテリBの正極側の母線と車載バッテリBの負極側の母線との間において、それぞれ並列に接続されている。U、V、W相アームの2つのスイッチング素子間がモータ60における対応相のコイルに接続されていることにより、3相ブリッジ回路が構成されている。
図3では、スイッチング素子70A~70Fをダイオードが逆並列に接続されたIGBTとして示している。但し、これに限るものではなく、スイッチング素子70A~70Fは、ダイオードが逆並列に接続されたFETなど、他の電力制御用の半導体素子であってもよい。スイッチング素子70A~70Fの制御端子(例えば、ゲート端子)は、制御器80の出力ポートに接続されている。
U、V、W相アームには、例えば、シャント抵抗により各相電流Iu、Iv、Iwを検出するための電流検出手段(U相電流検出部72u、V相電流検出部72v、W相電流検出部72w)が設けられている。これら電流検出手段72u、72v、72wは、例えば、各シャント抵抗の両端電位差をオペアアンプなどによって検出し、各シャント抵抗における両端電位差Viu、Viv、Viwに対応した電位差信号を制御器80に出力する。
制御器80は、プロセッサ80Aと、不揮発性メモリ80Bと、揮発性メモリ80Cと、入出力回路80Dと、通信回路80Eと、これらを相互に接続するバス80Fと、を含むマイクロコンピュータを備えている。
プロセッサ80Aは、ソフトウエアプログラムに記述された命令セットを実行することで各種制御プログラムを実行するハードウエアであって、例えば、CPU(Central Processing Unit)などからなる。不揮発性メモリ80Bは、制御プログラムなどが格納されると共に各種データを保存可能な半導体メモリであって、例えば、EEPROM(Electrical Erasable Programmable Read Only Memory)及びフラッシュROM(Read Only Memory)を含む。揮発性メモリ80Cは、一時的な記憶領域となる半導体メモリであって、例えば、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)などからなる。
入出力回路80Dは、各種センサなどからアナログ信号又はデジタル信号を読み込むと共にアクチュエータなどにアナログ又はデジタルの駆動信号を出力するデバイスであって、例えば、A/Dコンバータ、D/Dコンバータなどからなる。通信回路80Eは、CANなどのネットワークを介して、他の制御器及び車載機器(図示省略)などと通信するためのデバイスであって、例えば、CANトランシーバなどからなる。
制御器80のプロセッサ80Aは、エンジンコントローラ44から出力された目標角度信号、及び、回転角度センサ40から出力された実角度信号に加えて、電流検出手段から出力された電位差信号と、ロータ角度センサ60Sから出力された磁界検出信号とに基づいて所定の制御信号を生成する。この制御信号は、スイッチング素子70A~70Fの各制御端子に出力され、スイッチング素子70A~70Fのオン・オフ状態の切り換えが制御される。これにより、電動アクチュエータ38の出力軸38Bが回転し、ピストン12の上死点位置が変更される。したがって、エンジン1の圧縮比が、低圧縮比化される方向又は高圧縮比化される方向に変更される。
制御器80は、図4に示すように、機能ブロックとして、回転角度演算部100、回転速度演算部200、相電流検出部300、3相-2軸変換部400、目標電流設定部500、ベクトル制御部600、2軸-3相変換部700及び信号生成部800を有する。
回転角度演算部100は、ロータ角度センサ60Sから出力された磁界検出信号に基づいて、ロータ60Rの回転角度θを演算する。
回転速度演算部200は、回転角度演算部100が演算した回転角度θの時間変化からモータ60の角速度(実際の回転速度)ωrを演算することで検出する。尚、ωrが負の値の場合、圧縮比が高くなる方向にモータ60が回転しているものとする一方、ωrが正の値である場合、圧縮比が低くなる方向にモータ60が回転しているものとする。
相電流検出部300は、U、V、W相電流検出部72u、72v、72wから出力された電位差信号をそれぞれA/D(Analog to Digital)変換し、変換後の値に基づいて各相の相電流Iu、Iv、Iwを検出する。
3相-2軸変換部400は、回転角度θを用いて相電流検出値Iu、Iv、Iwをdq回転座標におけるd軸電流検出値Id及びq軸電流検出値Iqに変換する。dq回転座標は、モータ60のロータ60R(永久磁石回転子)に同期して回転する界磁方向をd軸とし、このd軸に直交するトルク生成方向をq軸とした回転座標である。
目標電流設定部500は、エンジンコントローラ44から出力された目標角度信号(目標角度βt)、回転角度センサ40から出力された実角度信号(実際の角度β)、回転速度演算部200が検出した角速度検出値ωr及び3相-2軸変換部400で得られるq軸電流検出値Iqに基づいて、目標電流値である第1のd軸電流指令値Id
*及び第1のq軸電流指令値Iq
*を設定する。
より詳細には、目標電流設定部500は、まず、目標角度βtと実際の角度βとの角度偏差を演算する。そして、目標電流設定部500は、例えば、演算した角度偏差に基づく比例積分制御(PI制御)などのフィードバック制御処理を実行する。これにより、実際の角度βが目標角度βtに近付くようにモータ60の駆動を制御するための指令トルクが演算され、この指令トルクに応じた第1のq軸電流指令値Iq
*が演算される。尚、角度偏差が負の値であることは、βをβtに近付けるべく圧縮比が高くなる方向にモータ60を駆動させる必要があることを意味するものとする。また、角度偏差が正の値であることは、βをβtに近付けるべく圧縮比が低くなる方向にモータ60を駆動させる必要があることを意味するものとする。
一方、目標電流設定部500は、第1のd軸電流指令値Id
*を負の値(例えば、-20A)又は0Aに設定する。Id
*が負の値に設定されるのは、VCR機構26を用いてピストン12の上死点位置を圧縮比が低くなる方向に変更するときである。すなわち、エンジン1の燃焼圧力によりモータ60の回転方向と同一方向にトルクが加わるときに、Id
*が負の値に設定される。Id
*を負の値に設定して、モータ60の界磁磁束を意図的に弱めるように3相コイル60u、60v、60wに電流を流す、いわゆる弱め磁束制御が実行される。これにより、ピストン12の上死点位置を圧縮比が高くなる方向に変更する場合と比較してモータ60の回転速度が上昇しやすくなる。したがって、弱め磁束制御を実行することでVCR機構26の応答性を向上させることができる。
第1のd軸電流指令値Id
*が0Aに設定されるのは、ピストン12の上死点位置を圧縮比が高くなる方向に変更するとき、すなわち、エンジン1の燃焼圧力によりモータ60の回転方向と反対方向にトルクが加わるときである。このときに、弱め磁束制御を実行すると、上述したモータ60の回転方向と反対方向のトルクに加えて、界磁磁束の減少によるモータ60の発生トルクが低下する。そのため、VCR機構26の応答性が低下してしまうおそれがある。したがって、ピストン12の上死点位置を圧縮比が高くなる方向に変更するときは、Id
*は0Aに設定され、弱め磁束制御が実行されない。これにより、ピストン12の上死点位置を圧縮比が高くなる方向に変更する際のVCR機構26の応答性の低下を抑制している。このように、目標電流設定部500は、モータ60の駆動を制御するための電流指令値(第1のd、q軸電圧指令値Id
*、Id
*)を演算する。
ベクトル制御部600は、d、q軸電流検出値Id、Iqと、第1のd、q軸電流指令値Id
*、Iq
*と、角速度検出値ωrとに基づいて所定周期毎にd、q軸電圧指令値Vd、Vqを演算するベクトル制御を実行する。ベクトル制御部600の詳細については後述する。
2軸-3相変換部700は、回転角度θを用いてベクトル制御部600で演算されたd、q軸電圧指令値Vd、VqをU相電圧指令値Vu、V相電圧指令値Vv及びW相電圧指令値Vwの3相電圧指令値に変換する。
信号生成部800は、3相電圧指令値Vu、Vv、Vwと、例えば、三角波キャリアであるキャリア波(搬送波)と、に基づいてスイッチング素子70A~70Fに出力するための信号を生成する。より詳細には、信号生成部800は、例えば、スイッチング素子70A~70Fを駆動するためのPWM(Pulse Width Modulation)パルス幅を、Vu、Vv、Vwに基づいて生成される変調波(例えば、正弦波)と搬送波との比較に基づいて決定することで、上記信号としてのPWMパルスを生成する。そして、信号生成部800は、生成したPWMパルスをスイッチング素子70A~70Fに出力する。
以下、ベクトル制御部600の詳細について説明する。図5は、ベクトル制御部600の内部構成を示す構成図である。
ベクトル制御部600は、d(q)軸電流偏差演算部602(604)、第2のd(q)軸電流演算部606(608)、d(q)軸コイル分電圧演算部610(612)、非干渉制御部614及びd(q)軸電圧演算部616(618)を含む。
d(q)軸電流偏差演算部602(604)は、d(q)軸電流検出値Id(Iq)と第1のd(q)軸電流指令値Id
*(Iq
*)とのd(q)軸電流偏差ΔId(ΔIq)を演算し、ΔId(ΔIq)を第2のd(q)軸電流演算部606(608)に出力する。
第2のd(q)軸電流演算部606(608)は、例えば、d(q)軸電流偏差ΔId(ΔIq)に対するPI(比例積分)制御を実行して第2のd(q)軸電流指令値を演算する。第2のd(q)軸電流指令値は、P(比例)制御により演算されるd(q)軸の比例値Xd(Xq)と、I(積分)制御により演算されるd(q)軸の積分値Id
**(Iq
**)とを含む。
比例制御では、d(q)軸電流偏差ΔId(ΔIq)に、電流制御のd(q)軸制御応答角周波数ωcdACR(ωcqACR)を乗じることでd(q)軸の比例値Xd=ΔIdωcdACR(Xq=ΔIqωcqACR)が演算される。積分制御では、ΔId(ΔIq)に積分ゲインとしてのd(q)軸制御応答角周波数ωcdACR(ωcqACR)を乗じて積分することで積分値Id
**(Iq
**)が演算される。ここで、積分は、所定時間間隔における偏差を累積するものといえる。したがって、積分制御により、ΔId(ΔIq)を0にするようなId
**(Iq
**)が演算される。すなわち、Id
**(Iq
**)は、d(q)軸電流検出値(d、q軸実電流)Id(Iq)を第1のd(q)軸電流指令値Id
*(Iq
*)に近付けるためのものである。
そして、第2のd(q)軸電流演算部606(608)は、d(q)軸積分値Id
**(Iq
**)をd(q)軸コイル分電圧演算部610(612)及び非干渉制御部614に出力し、d(q)軸比例値Xd(Xq)をd(q)軸コイル分電圧演算部610(612)に出力する。また、第2のd(q)軸電流演算部606(608)は、d(q)軸積分値Id
**(Iq
**)を第2のq(d)軸電流演算部608(606)に出力するようになっている。
d(q)軸コイル分電圧演算部610(612)は、d(q)軸積分値Id
**(Iq
**)にモータ60の電動機定数である抵抗設定値Rを乗算してRId
**(RIq
**)を演算する。また、d(q)軸コイル分電圧演算部610(612)は、d(q)軸比例値Xd(Xq)にモータ60の電動機定数であるd(q)軸インダクタンスの設定値Ld(Lq)を乗算してXdLd=ΔIdωcdACRLd(XqLq=ΔIqωcqACRLq)を演算する。ここで、XdLd(XqLq)はΔIdωcdACRLd/R(ΔIqωcqACRLq/R)にRを乗じて得られた値に相当する。したがって、ωcdACRLd/R(ωcqACRLq/R)という項は比例制御の比例ゲインと等価となっている。そして、d(q)軸コイル分電圧演算部610(612)は、RId
**(RIq
**)にXdLd(XqLq)を加算した値RId
**+XdLd(RIq
**+XqLq)をd(q)軸電圧演算部616(618)に出力する。
非干渉制御部614は、非干渉項を演算する。モータ60が回転すると誘起電圧が発生し、d軸電圧がq軸電流による影響を受け、q軸電圧がd軸電流及び界磁磁束による影響を受けるような相互干渉が生じる。非干渉項は、このような相互干渉を予め打ち消すためのものである。
より詳細には、非干渉制御部614は、q軸積分値Iq
**に角速度検出値ωr及びq軸インダクタンスの設定値Lqを乗じることで第1の非干渉項Iq
**ωrLqを演算する。また、非干渉制御部614は、d軸積分値Id
**にωr及びd軸インダクタンスの設定値Ldを乗じて得た値に、モータ60の電動機定数である誘起電圧定数Keをωrに乗じて得た値を加算することで、第2の非干渉項Id
**ωrLd+Keωrを演算する。そして、非干渉制御部614は、第1の非干渉項Iq
**ωrLqをd軸電圧演算部616に出力し、第2の非干渉項Id
**ωrLd+Keωrをq軸電圧演算部618に出力する。
d軸電圧演算部616は、RId
**+XdLdから第1の非干渉項Iq
**ωrLqを減算することでd軸電圧Vd(=RId
**+XdLd-Iq
**ωrLq)を演算する。
q軸電圧演算部618は、RIq
**+XqLqに第2の非干渉項Id
**ωrLd+Keωrを加算することでq軸電圧Vq(=RIq
**+XqLq+Id
**ωrLd+Keωr)を演算する。
以下、d、q軸電圧演算部616、618が演算したd、q軸電圧Vd、Vqをd、q軸電圧指令値Vd、Vqという。尚、d、q軸電圧指令値の今回値をVd,t、Vq,tとし、d、q軸電流偏差の今回値をΔId,t、ΔIq,tとし、d、q軸積分値の今回値をId,t
**、Iq,t
**とし、角速度検出値の今回値をωr,tとすると、Vd,t、Vq,tは、それぞれ、以下の(数1)、(数2)で表される。
そして、d(q)軸電圧演算部616(618)は、d(q)軸電圧演算値Vd(Vq)を2軸-3相変換部700に出力する。
このように、ベクトル制御部600からはd、q軸電圧指令値Vd、Vqが出力される。そして、このVd、Vqが2軸-3相変換部700により3相電圧指令値Vu、Vv、Vwに変換されるので、信号生成部800は、Vd、Vqに応じたPWMパルスを生成することになる。したがって、制御器80は、d、q軸の電流偏差に対する積分制御を含むフィードバック制御によりd、q軸の電流検出値をd、q軸の電流指令値に近付けるようなVd、Vqを演算する。そして、制御器80は、演算したVd、Vqに基づいてインバータ70(その出力電圧)を制御することでモータ60の駆動を制御する。
ここで、上述のベクトル制御部600では、d、q軸電流検出値をd、q軸電流指令値とのd、q軸電流偏差として第2のd、q軸電流演算部606、608に通過させるフィードバック経路が形成されている。これに対し、従来において、d、q軸電流検出値をd、q軸電流指令値とのd、q軸電流偏差として第2のd、q軸電流演算部に入力すると共にd、q軸電流検出値を非干渉制御部に直接入力するベクトル制御部が知られている。つまり、このような従来のベクトル制御部には、d、q軸電流検出値を非干渉制御部に直接入力するフィードバック経路が存在している。一方、上述のベクトル制御部600では、d、q軸電流検出値を非干渉制御部に直接入力するフィードバック経路を省略することで、特に、モータ回転数が高回転領域にあるときの電流制御の安定性を高めている。d、q軸電流検出値を非干渉制御部に直接入力するフィードバック経路を省略したベクトル制御部600は、カスケード型ベクトル制御部として知られている。例えば、コスト削減のために制御器80を構成するマイクロコンピュータを演算周期の長いものに変更したとしても、このカスケード型ベクトル制御部を採用することでd、q軸電流検出値の振動が抑制されるなど安定した電流制御を行うことが可能である。
ところで、インバータ70の出力電圧は、車載バッテリBの直流電圧(以下、単に「電源電圧Ed」という。)以下に制限される。信号生成部800が変調波として正弦波を用いた場合のPWM制御、すなわち、正弦波PWM制御では、3相電圧指令値の絶対値が取り得る最大値は直流電圧Edの1/2倍(Ed/2)となる。したがって、正弦波PWM制御では、2軸-3相変換部700においてEd/2を超えるような3相電圧指令値Vu、Vv、Vwが演算されると、インバータ70の出力電圧が電源電圧Edに制限される。これは、ベクトル制御部600において、+Ed/2を超えるか又は-Ed/2未満となるようなd(q)軸電圧指令値Vd(Vq)が演算されたことに相当する。すなわち、正弦波PWM制御では、ベクトル制御部600が演算したVd(Vq)の絶対値がEd/2を超えたとき、インバータ70の出力電圧が飽和する電圧飽和状態が生じる。したがって、電圧飽和状態が生じている間、モータ60には+Ed/2又は-Ed/2と略等しいd軸電圧又はq軸電圧が印加されることになる。
以下、制御器80が正弦波PWM制御を実行する場合において、上述のEd/2をd、q軸電圧制限値Vdlmt、Vqlmtという。すなわち、+Ed/2をd、q軸電圧上限値Vdmax、Vqmaxといい、-Ed/2をd、q軸電圧下限値Vdmin、Vqminという。また、モータ60に印加されることになるd、q軸電圧を、d、q軸印加電圧Vd
*、Vq
*という。
上述の問題、すなわち、従来の制御器による電圧飽和状態で生じる問題について、図6、7を参照して説明する。尚、図6、7は、例えば、q軸電圧上限値Vqmaxを超えるq軸電圧指令値Vqが演算されて電圧飽和状態が生じた場合を示している。但し、q軸電圧下限値Vqmin未満のVqが演算された場合やd軸電圧上限値Vdmaxを超えるd軸電圧指令値Vd又はd軸電圧下限値Vdmin未満のd軸電圧指令値Vdが演算された場合も同様である。
図6では、時刻t1においてq軸印加電圧Vq
*がq軸電圧上限値Vqmaxで飽和する電圧飽和状態となっている。すなわち、時刻t1では、Vqmaxを超えるq軸電圧指令値Vqが演算されている(図示省略)。したがって、時刻t1では、演算されたVqとは異なるVqmaxによるモータ60の駆動制御が開始される。このため、例えば、q軸電流検出値Iqが第1のq軸電流指令値Iq
*を下回るなど(図6を参照)、IqがIq
*に追従せず、q軸電流偏差ΔIqが大きくなり始める。
一般に、積分制御が実行され続けると、d、q軸積分値Id
**、Iq
**は、d、q軸電流偏差ΔId、ΔIqが0にならない限り、これらΔId、ΔIqを0にしようとして増大する方向又は減少する方向に変化し続ける。したがって、図6に示すようにΔIqが大きくなり始めると、時刻t1よりも後にq軸電流検出値Iqを第1のq軸電流指令値Iq
*に近付けるための積分制御が実行され、Iq
**が増大し始める(図7を参照)。(数2)から明らかなように、q軸電圧指令値Vqは、ΔIq及びIq
**が増大するほど大きくなる。すなわち、Iqを大きくしてIqをIq
*に近付けるようなVqが演算される。より詳細には、時刻t1よりも後に演算されるVqは、電圧飽和状態が生じた時刻t1において演算されたq軸電圧指令値Vqよりも大きく、当然、Vqmaxよりも大きい。しかしながら、Vqmaxよりも大きいq軸電圧はモータ60に印加されないため、時刻t1よりも後のq軸印加電圧Vq
*はVqmaxに飽和し続けて変化しない。すなわち、時刻t1よりも後では、増大したIq
**がVq
*に反映されないので、ΔIqが0にならずIqがIq
*に到達できない、いわゆるワインドアップ現象が発生する。
また、電圧飽和状態では、時刻t1から所定時間経過後にモータ60の回転数も所定の回転数(例えば、最大回転数)に制限される。要するに、図6に示す電圧飽和状態では、モータ60の最大回転数に対して第1のq軸電流指令値Iq
*が大き過ぎるため、制御器80はモータ60の最大回転数以上を要求するようなq軸電圧指令値Vqを演算し続けてしまう。
上述したように、ワインドアップ現象の発生中、q軸電流偏差ΔIqを0にするための積分制御を実行することで得られたq軸電圧指令値Vqが反映されず、q軸印加電圧Vq
*は変化しない。そのため、ワインドアップ現象の発生中、積分制御によりq軸積分値Iq
**が増大し続け、ΔIqが過剰に累積されてしまう。一方、図6に示すように、d軸印加電圧Vd
*はd軸電圧制限値Vdlmtで飽和していない。しかしながら、(数1)から明らかなように、d軸電圧指令値VdはIq
**の影響を受けるので、時刻t1以後、Vd
*は、Iq
**が増大するほど小さくなる。そのため、d軸電流検出値Idが第1のd軸電流指令値Id
*を下回り始めるので、d軸電流偏差ΔIdが増大する。したがって、d軸積分値Id
**も増大してしまう(図7を参照)。
積分制御によりd、q軸電流偏差ΔId、ΔIqが過剰に累積されてしまうと、以下の問題が生じるおそれがあった。例えば、図6では、モータ60をそれまでの回転方向とは逆の回転方向に運転すべく、時刻t2において第1のq軸電流指令値Iq
*が変更されている(指令変更)。この場合、指令変更後の第1のd、q軸電流指令値Id
*、Iq
*に対するd、q軸電流検出値Id、Iqの収束性(応答性)が悪化するなど、過渡状態における電流制御の安定性が悪化するおそれがあった。その結果、モータ60のトルクを制御できないのでモータ60の回転数を望み通りに下げることができなくなる。したがって、VCR機構26の目標圧縮比に対してオーバーシュートするなど、ストッパ機構42において第1の部材42Aが第2の部材42Bに不要に衝突してしまうおそれがあった。
このような過渡状態における電流制御の安定性の悪化は、ワインドアップ現象の発生中にd、q軸印加電圧Vd
*、Vq
*に影響を与えない積分制御が実行され続けていることが原因となって生じる。より詳細には、指令変更後はワインドアップ現象が終了し、d、q軸電圧指令値Vd、Vqを反映したモータ60の駆動制御が可能となる。しかしながら、ワインドアップ現象の発生中に過剰に変化したd、q軸積分値Id
**、Iq
**の影響を指令変更後に取り除くのに時間がかかってしまう。例えば、図7では、時刻t1から時刻t2までの間に過剰に増大したId
**、Iq
**を減少させるのに時間がかかる。そのため、時刻t2以後、過剰に増大したId
**、Iq
**を減少させるまでの間にVd、Vqに悪影響が及び、Vd
*、Vq
*が不安定になる。したがって、d、q軸電流偏差ΔId、ΔIqが0になるまでに時間がかかるので応答性が悪化するおそれがあった。
そこで、第1実施形態に係る制御器80は、過渡状態における電流制御の安定性を向上させるべく、積分制御のd、q軸積分値Id
**、Iq
**についての所定の範囲を設定する。そして、制御器80は、Id
**、Iq
**が所定の範囲外となったとき、これらId
**、Iq
**を所定の範囲内に制限する。要するに、Id
**、Iq
**はワインドアップ現象の発生中に過剰に変化し得るので、これらId
**、Iq
**を所定の範囲内に制限することで過剰に変化しないようにする。そのために、第1実施形態による第2のd(q)軸電流演算部606(608)は、Id
**、Iq
**などを演算することに加えて上述の所定の範囲を規定する積分上下限値を演算するように構成されている。
より詳細には、第2のd(q)軸電流演算部606(608)は、図8に示すように、積分演算部606A(608A)、Xd(Xq)演算部606B(608B)、制限値演算部606C(608C)及び積分制限部606D(608D)を有する。尚、第2のd軸電流演算部606と第2のq軸電流演算部608とは同一の構成を有しているため、以下では、主に、第2のd軸電流演算部606について説明する。
積分演算部606Aは、図8において積分を意味する1/sという記号で表され、上述したように、d軸電流偏差ΔIdに積分ゲイン(ωcdACR)を乗じて積分する。積分演算部606Aが演算したd軸積分値Id
**は、積分制限部606Dに出力される。また、積分演算部606Aは、演算したId
**を第1のq軸電流演算部608の制限値演算部608Cに出力する。
Xd演算部606Bは、上述したように、d軸電流偏差ΔIdにd軸制御応答角周波数ωcdACRを乗じてd軸比例値Xd(=ΔIdωcdACR)を演算すると共にXdをd軸コイル分電圧演算部610及び制限値演算部606Cに出力する。
制限値演算部606Cは、d軸比例値Xdと、第2のq軸電流演算部608の積分演算部608Aが演算したq軸積分値Iq
**と、角速度検出値ωrと、を入力し、これらを記憶するようになっている。そして、制限値演算部606Cは、詳細を後述するように、所定の範囲を規定するd軸積分上下限値(上限値Idmax及び下限値Idmin)を演算し、演算したIdmax、Idminを積分制限部606Dに出力する。
積分制限部606Dは、d軸積分値Id
**、d軸積分上限値Idmax及びd軸積分下限値Idminを入力する。そして、積分制限部606Dは、入力したId
**とIdmax及びIdminとを比較し、比較結果に基づいてd軸コイル分電圧演算部610及び非干渉制御部614への出力を決定する。より詳細には、Id
**がIdmaxを超えているときは、Idmaxが出力される。また、Id
**がIdmin未満のときは、Idminが出力される。
要するに、入力したd軸積分値Id
**がd軸積分上限値Idmaxとd軸積分下限値Idminとで規定される所定の範囲外(すなわち、Id
**>Idmax又はId
**<Idmin)となったとき、実際に出力されるd軸積分値がこの所定の範囲内に制限される。また、第2のq軸電流演算部608においても同様に、q軸積分値Iq
**がq軸積分上限値Iqmaxとq軸積分下限値Iqminとで規定される所定の範囲外となったとき、q軸積分値が所定の範囲内に制限される。したがって、制限値演算部606C(608C)と積分制限部606D(608D)が協働することでd(q)軸積分値Id
**(Iq
**)が所定の範囲内に制限される。
一方、積分制限部606Dは、入力したd軸積分値Id
**が所定の範囲内(すなわち、Idmin≦Id
**≦Idmax)であれば、d軸コイル分電圧演算部610及び非干渉制御部614にd軸積分値Id
**をそのまま出力する。
より詳細には、制限値演算部606Cは、d軸電圧上限値Vdmaxと、抵抗設定値Rと、d、q軸インダクタンスの設定値Ld、Lqと、記憶しておいた入力値、すなわち、Xd(=ΔIdωcdACR)の前回値、q軸積分値Iq
**の前回値及び角速度検出値ωrの前回値と、を用いて、d軸積分上限値Idmaxの今回値を演算する。より詳細には、d軸積分上限値の今回値をIdmax,tとし、d軸電流偏差の前回値をΔId,t-1とし、q軸積分値の前回値をIq,t-1
**とし、角速度検出値の前回値をωr,t-1とすると、Idmax,tは以下の(数3)で表される。
(数3)で表されるように、d軸積分上限値の今回値Idmax,tは、(数1)のVd,t、ΔId,t、Iq,t
**、ωr,tに、それぞれ、Vdmax、ΔId,t-1、Iq,t-1
**、ωr,t-1を代入して変形することで得られるd軸積分値を意味している。すなわち、d軸積分値の今回値をId,t
**とすると、Idmax,tは、このId,t
**についての所定の範囲の上限値を規定している。
d軸積分下限値の今回値Idmin,tは、(数1)のVd,tにd軸電圧下限値Vdminを代入すること以外は(数3)と同様であり、以下の(数4)で表される。したがって、Idmin,tは、Id,t
**についての所定の範囲の下限値を規定している。
また、制限値演算部608Cは、q軸電圧上限値Vqmaxと、抵抗設定値Rと、d、q軸インダクタンスの設定値Ld、Lqと、誘起電圧定数Keと、記憶しておいた入力値、すなわち、Xq(=ΔIqωcqACR)の前回値、d軸積分値Id
**の前回値及び角速度検出値ωrの前回値と、を用いて、q軸積分上限値Iqmaxの今回値を演算する。より詳細には、q軸積分上限値の今回値をIqmax,tとし、q軸電流偏差の前回値をΔIq,t-1とし、d軸積分値の前回値をId,t-1
**とすると、Idmax,tは以下の(数5)で表される。
(数5)で表されるように、q軸積分上限値の今回値Iqmax,tは、(数2)のVq,t、ΔIq,t、Id,t
**、ωr,tに、それぞれ、Vqmax、ΔIq,t-1、Id,t-1
**、ωr,t-1を代入して変形することで得られるq軸積分値を意味している。すなわち、q軸積分値の今回値をIq,t
**とすると、Iqmax,tは、このIq,t
**についての所定の範囲の上限値を規定している。
q軸積分下限値の今回値Iqmin,tは、(数2)のVq,tにq軸電圧下限値Vqminを代入すること以外は(数5)と同様であり、以下の(数6)で表される。したがって、q軸積分下限値の今回値Iqmin,tは、Iq,t
**についての所定の範囲の下限値を規定している。
要するに、積分制限部606D(608D)は、所定の範囲を表す不等式Idmin,t≦Id,t
**≦Idmax,t(Iqmin,t≦Iq,t
**≦Iqmax,t)を満たさないようなd(q)軸電流指令値の今回値Id,t
**(Iq,t
**)を入力したとき、上記不等式を満たすように制限したd(q)軸積分値を実際に出力する。
尚、上記不等式は、それぞれ、以下の(数7)、(数8)で表される。
以上のように構成された制御器80のプロセッサ80Aが実行するベクトル制御処理の一例について図9、10を参照して説明する。ベクトル制御処理は、角速度検出値の今回値ωr,t、第1のd、q軸電流指令値の今回値Id,t
*、Iq,t
*及びd、q軸電流検出値の今回値Id,t、Iq,tを入力したことを契機として所定の周期毎に実行される。
ステップ1では、プロセッサ80Aは、Id,t
*、Iq,t
*のそれぞれからId,t、Iq,tを減算することでd、q軸電流偏差の今回値ΔId,t、ΔIq,tを演算する。
ステップ2では、プロセッサ80Aは、ΔId,t、ΔIq,tと、d、q軸制御応答角周波数ωcdACR、ωcqACRとに基づいてd、q軸比例値Xd、Xqの今回値(=ΔId,tωcdACR、ΔIq,tωcqACR)を演算する。また、プロセッサ80Aは、積分制御を実行してd、q軸積分値の今回値Id,t
**、Iq,t
**を演算する。
ステップ3では、プロセッサ80Aは、(数3)~(数6)に従って、d、q軸積分上限値の今回値Idmax,t、Iqmax,t及びd、q軸積分下限値の今回値Idmin,t、Iqmin,tを演算する。Idmax,t、Iqmax,t及びIdmin,t、Iqmin,tの演算に用いられるΔId,t-1、ΔIq,t-1、Id,t-1
**、Iq,t-1
**及びωr,t-1は、それぞれ、上述したように、d軸電流偏差、q軸電流偏差、d軸積分値、q軸積分値及び角速度検出値の前回値であって、前回のベクトル制御処理においてd、q軸電圧指令値Vd、Vqを演算する際に用いられた変数である。
ステップ4では、プロセッサ80Aは、図10に示す積分値決定処理を実行する。
ステップ400では、プロセッサ80Aは、ステップ2で演算したId,t
**がステップ3で演算したIdmax,tを超えているか否かを判定する。そして、プロセッサ80Aは、Id,t
**がIdmax,tを超えていると判定すると、処理をステップ402に進める。
ステップ402では、プロセッサ80Aは、d軸積分値をIdmax,tに決定し(Id
**=Idmax)、処理をステップ410に進める。
一方、ステップ400において、プロセッサ80Aは、Id,t
**がIdmax,t以下であると判定すると、処理をステップ404に進める。
ステップ404では、プロセッサ80Aは、ステップ2で演算したId,t
**がステップ3で演算したIdmin,t未満であるか否かを判定する。そして、プロセッサ80Aは、Id,t
**がIdmin,t未満であると判定すると、処理をステップ406に進める。
ステップ406では、プロセッサ80Aは、d軸積分値をIdmin,tに決定し(Id
**=Idmin)、処理をステップ410に進める。
また、ステップ400において、プロセッサ80Aは、Id,t
**がIdmin,t以上であると判定すると、処理をステップ408に進める。ステップ414では、プロセッサ80Aは、d軸積分値をステップ2で演算したId,t
**に決定し((Id
**=Id
**))、処理をステップ410に進める。
ステップ410~418の処理は、q軸積分値をステップ400~408と同様に決定する処理であり、説明を省略する。プロセッサ80Aは、ステップ412、416又は418でq軸積分値を決定すると、処理をステップ5に戻す。
ステップ5では、プロセッサ80Aは、まず、d、q軸電圧指令値の今回値(以下、単に「Vd,t、Vq,t」という)を演算する。
Vd,tは、(数1)に従って、抵抗設定値Rと、d軸制御応答角周波数ωcdACRと、d、q軸インダクタンス設定値Ld、Lqと、角速度検出値の今回値ωr,tと、ステップ1で演算したd軸電流偏差ΔId,tと、ステップ4で決定したd軸積分値(Id,t
**、Idmax,t又はIdmin,t)及びq軸積分値(Iq,t
**、Iqmax,t又はIqmin,t)と、を用いて演算される。
Vq,tは、(数2)に従って、抵抗設定値Rと、q軸制御応答角周波数ωcqACRと、d、q軸インダクタンス設定値Ld、Lqと、誘起電圧定数Keと、角速度検出値の今回値ωr,tと、ステップ1で演算したq軸電流偏差ΔIq,tと、ステップ4で決定したd軸積分値(Id,t
**、Idmax,t又はIdmin,t)及びq軸積分値(Iq,t
**、Iqmax,t又はIqmin,t)と、を用いて演算される。
Vd,t、Vq,tを演算すると、プロセッサ80Aは、ベクトル制御処理を終了させる。その後、プロセッサ80Aは、Vd,t、Vq,tを2軸-3相変換して3相電圧Vu、Vv、Vwを生成し、これら3相電圧Vu、Vv、Vwに基づいてスイッチング素子70A~70Fを駆動するPWMパルスを生成する。これにより、インバータ70を介して電圧が印加されモータ60の駆動が制御される。但し、Vd,t又はVq,tの絶対値がd軸電圧制限値Vdlmt又はq軸電圧制限値Vqlmtを超えていれば、インバータ70の出力電圧が飽和して、モータ60にはVdlmt又はVqlmtに相当するd軸電圧又はq軸電圧が印加されることになる。
以上説明した第1実施形態に係る制御器80によれば、積分制御により演算されたd、q軸積分値Id
**、Iq
**が所定の範囲外となったとき、これらId
**、Iq
**が所定の範囲内に制限される。すなわち、Id
**、Iq
**の過剰な変化が抑制されるので、特に、ワインドアップ現象発生中におけるd、q軸電流偏差ΔId、ΔIqの過剰な累積が抑制される。これにより、第1のd、q軸電流指令値Id
*、Iq
*が変更(指令変更)されてワインドアップ現象が終了した後、ΔId、ΔIqの過剰な累積による応答性の悪化を抑制することが可能となる。したがって、Id
**、Iq
**が制限される第1実施形態では、これらId
**、Iq
**を制限しない場合と比較して、d、q軸電流検出値Id、Iqを指令変更後のId
*、Iq
*に近付けるのにかかる時間を短縮することが可能になる。よって、ワインドアップ現象終了後の過渡状態における電流制御の安定性を向上させることができる。その結果、モータ60の回転数を速やかに下げることができるなど、モータ60のトルク制御の安定性を向上させることができる。
ここで、(数1)及び(数2)から明らかなように、d、q軸積分値Id
**、Iq
**の変化はd、q軸電圧指令値Vd、Vqに影響を与える。図6、7を参照して説明したように、従来においては、ワインドアップ現象の発生中、q軸電流偏差ΔIqが0にならないので、ΔIqを0にすべくIq
**が増大する。そのため、Id
**、Iq
**を上述した所定の範囲内に制限しない場合、Id
**の増大に応じて、ワインドアップ現象発生中のq軸印加電圧Vq
*(=Vqmax)よりも大きいq軸電圧指令値Vqが演算され続けてしまう。
これに対し、第1実施形態に係る制御器80では、更に以下のような作用及び効果が得られる。ここでは、q軸電圧指令値の前回値Vq,t-1がq軸電圧上限値Vqmaxを超えてq軸印加電圧Vq
*がVqmaxで飽和した場合について説明する。この場合において、q軸積分値の今回値Iq,t
**がq軸積分上限値の今回値Iqmax,tを超えたとき、Iq,t
**はIqmax,tに制限される。Iqmax,tは、(数5)に従って、Vqmaxと、Vqmaxを超えるq軸電圧指令値の前回値Vq,t-1を演算した際に用いた変数ΔIq,t-1、Id,t-1
**及びωr,t-1と、を用いて演算される。その後、(数2)に従って、Iqmax,tを用いてq軸電圧指令値の今回値Vq,tが演算される。ここで、Iqmax,tを用いて演算されたq軸電圧指令値の今回値Vq,tをV1とし、制限前のIq,t
**を用いて演算されるq軸電圧指令値の今回値Vq,tをV2とする。(数2)から明らかなように、Iq,t
**>Iqmax,tが成り立っていれば、V1はV2よりも小さい。また、(数2)の変数のうち、q軸電流偏差の今回値ΔIq,t、d軸積分値の今回値Id,t
**及び角速度検出値の今回値ωr,tとこれらの前回値との差が小さければ、V1は、q軸電圧上限値Vqmaxに近い値になる。すなわち、q軸積分値Iq
**が所定の範囲内に制限されれば、Vqmaxに飽和したq軸印加電圧Vq
*とq軸電圧指令値Vq(=V1)との差が小さくなる。以上の点は、q軸積分値Iq
**がq軸積分下限値Iqmin,tに制限された場合やd軸積分値Id
**がd軸積分上限値Idmax,t又はd軸積分下限値Idmin,tに制限された場合も同様である。要するに、ワインドアップ現象の発生中にd、q軸積分値Id
**、Iq
**を所定の範囲内に制限する(すなわち、(数7)及び(数8)が満たされる)ことは、d、q軸印加電圧Vd
*、Vq
*(=Vdlmt、Vqlmt)とd、q軸電圧指令値Vd、Vqとの差を小さくすることと同義である。したがって、d、q軸積分値Id
**、Iq
**の過剰な変化が抑制されると共に電圧飽和状態における操作量(Vd、Vq)と制御量(Vd
*、Vq
*)とが大きく乖離することが抑制される。
第1実施形態に係る制御器80による制御結果について、図11、12を参照して説明する。図11では、時刻t3においてq軸電圧上限値Vqmaxを超えるようなq軸電圧指令値Vqが演算され、インバータ70の出力電圧が飽和する電圧飽和状態が生じている。したがって、時刻t3においてq軸印加電圧Vq
*がVqmaxとなる。その後、時刻t4において第1のq軸電流指令値Iq
*がモータ60の回転方向を逆方向に回転させるような値に変更されている(指令変更)。すなわち、時刻t3~時刻t4において、q軸電流偏差ΔIqが0とならないワインドアップ現象が発生している。
時刻t3以降、q軸電流偏差ΔIqを0とすべく、図7と同様に増加するようなq軸積分値Iq
**が演算され始める。しかし、図12に示すように、時刻t5~t6において、積分制御によりq軸積分上限値Iqmaxを超えるIq
**が演算されると、q軸積分値がIqmaxに制限される(積分値制限)。すなわち、時刻t5~t6において、Iq
**が、ワインドアップ現象発生中のVq
*とVqとの差を小さくするように所定の範囲内に制限されるので、ΔIqを過剰に累積することが抑制される。したがって、図11では、指令変更された時刻t4以後、d、q軸電流検出値Id、Iqを変更後の第1のd、q軸電流指令値Id
*、Iq
*に近付けるのにかかる時間が短縮されるので、図6と比較して過渡状態における電流制御の安定性が向上することになる。また、図11に示すように、モータ60の回転数を速やかに下げて所望の回転数を得ることが可能となるので、モータ60のトルク制御の安定性を向上させることができる。
尚、上述の第1実施形態では、d、q軸電圧制限値Vdlmt、VqlmtをEd/2としたが、これに限るものではない。例えば、Vdlmt、Vqlmtを、使用するモータ60の性能や最大回転数などに応じてEd/2以下に設定してもよい。この場合、例えば、ベクトル制御部600において、d、q軸電圧演算部616、618の下流側に電圧制限部を設けることが好ましい。この電圧制限部は、例えば、演算されたVd、Vqの絶対値が設定したd、q軸電圧制限値Vdlmt、Vqlmtを超えるときにVd、Vqに代えて設定したVdlmt、Vqlmtを出力する。これにより、d、q軸印加電圧Vd
*、Vq
*が設定したVdlmt、Vqlmtで飽和する電圧飽和状態が生じるので、第1実施形態に係る制御器80を適用することが可能になる。
また、以上では、制御器80が正弦波PWM制御を実行する場合について説明したが、これに限るものではない。例えば、制御器80は、信号生成部800が正弦波に3次高調波を重畳させたものを変調波として用いる、いわゆる、3次高調波重畳方式のPWM制御を実行してもよい。
3次高調波重畳方式のPWM制御では、正弦波PWM制御と比較して、PWMパルス幅を増大させスイッチング素子70A~70Fのオン時間を長くすることが可能となることが知られている。したがって、3次高調波重畳方式のPWM制御では、直流電圧Edに対して出力できる基本波電圧の割合(電圧利用率)を正弦波PWM制御の場合よりも高くすることができる。より詳細には、3次高調波重畳方式のPWM制御では、正弦波PWM制御の基本波電圧(振幅)の2/√3(=約1.15)倍の基本波電圧(振幅)を出力することができる。これにより、正弦波PWM制御においてd、q軸電圧制限値Vdlmt、VqlmtがEd/2であったのに対し、これらVdlmt、Vqlmtを(2/√3)×(Ed/2)=Ed/√3に設定して第1実施形態において3次高調波重畳方式のPWM制御を採用することも可能である。但し、3次高調波重畳方式のPWM制御を実行する場合であっても、使用するモータ60の性能や最大回転数などに応じてVdlmt、VqlmtをEd/√3以下に設定してもよい。この場合も上述した電圧制限部と同様の電圧制限部を設けることが好ましい。
また、例えば、(数7)及び(数8)から明らかなように、d、q軸積分上下限値Idmax、Iqmax、Idmin、Iqminは、d、q軸電流偏差ΔId、ΔIq、すなわち、d、q軸電流検出値Id、Iqの影響を受ける。そのため、例えば、q軸電流検出値Iqにノイズなどが重畳している場合、演算されるIqmax、Iqminの波形が振動するおそれがある(Idmaxなどについても同様)。ここで、d、q軸積分上下限値やd、q軸電圧指令値Vd、Vqの算出に用いられるd、q軸インダクタンスLd、Lqは、モータ60の設計時において予め設定された値(設計値)である。しかしながら、上述のd、q軸積分上下限値が振動する問題が生じた場合は、d、q軸積分上下限値を算出する際のLd、Lqを設計値よりも小さくしてもよい。これにより、例えば、(数8)において、Id,t-1
**ωr,t-1Ldの項の大きさが変化するので、ΔIq,t-1ωcqACRLqの項が受け得るノイズなどの影響が相殺される。したがって、d、q軸積分上下限値の波形が振動するのを抑制することが可能となる。そのために、制限値演算部606C(608C)は、例えば、算出したd(q)軸積分上下限値の波形の最大値と最小値との差を比較用の閾値と比較するように構成されていてもよい。より詳細には、制限値演算部606C(608C)は、所定時間において、最大値と最小値との差が比較用の閾値を超えた回数を所定回数以上検出した場合に、Ld、Lqを設計値よりも小さくするように構成されていてもよい。ここで、Ld、Lqを小さくし過ぎると、所定の範囲が狭くなりすぎたり、広くなりすぎたりするなど、所定の範囲に悪影響が及ぶおそれがある。そこで、実機試験などで所定の範囲の広さについての許容範囲を予め定めておいてもよい。所定の範囲の広さが許容範囲外となった場合は、Ld、Lqを小さくするのを停止する。但し、Ld、Lqを小さくしてもIdmax、Iqmax、Idmin、Iqminの波形の振動が収まらない場合は、Ld、Lqを0に変更してもよい。
次に、第2実施形態について説明する。第2実施形態に係る制御器80は、3次高調波重畳方式のPWM制御を実行する。すなわち、信号生成部800は、正弦波に3次高調波を重畳させた変調波を用いる。また、第2実施形態に係る制御器80は、インバータ70の出力電圧として直流電圧Ed以上の電圧を仮想的に用いるべく、変調率Mが1以上の領域での制御である、いわゆる過変調制御を実行可能なように構成されている。尚、本明細書では、「変調率」を、3相電圧の振幅のピークを直流電圧Edで割った値と定義する。
上述したように、3次高調波重畳方式のPWM制御では、正弦波PWM制御と比較して電圧利用率を高めることが可能であり、正弦波PWM制御での基本波電圧の2/√3(=約1.15)倍の基本波電圧を出力可能である。ここで、電圧利用率を向上させる制御として、変調波に代えて矩形波を出力する、いわゆるワンパルス制御が知られている。ワンパルス制御では、正弦波PWM制御での基本波電圧の4/π(=約1.27)倍の基本波電圧を出力することができる。3次高調波重畳方式のPWM制御では、変調率Mを1よりも大きくする過変調制御を実行することで、電圧利用率をさらに高めることが可能であり、基本波電圧の波形を略矩形波状として上述のワンパルス制御に近付けることができる。
以上を考慮して、本明細書では、3次高調波重畳方式のPWM制御における変調率Mが1での制御を、d、q軸印加電圧Vd
*、Vq
*が1.15×Ed/2又は-1.15×Edと等しい状態での制御と定義する。すなわち、ベクトル制御部600で演算されたd、q軸電圧指令値Vd、Vqの絶対値が1.15×Ed/2と等しいとき、変調率Mが1での制御が実行される。したがって、d、q軸電圧指令値Vd、Vqの絶対値が1.15×Ed/2よりも大きいことは過変調制御用のd、q軸電圧が演算されたことを意味する。
また、本明細書では、過変調制御を実行可能な3次高調波重畳方式のPWM制御でのd、q軸電圧制限値Vdlmt、Vqlmtを、ワンパルス制御で出力可能な基本波電圧を考慮して、例えば、4/π(=約1.27)×Ed/2に設定する。すなわち、d、q軸電圧上限値Vdmax、Vqmaxは、1.27×Ed/2に設定され、d、q軸電圧下限値Vdmin、Vqminは、-1.27×Ed/2に設定される。したがって、過変調制御では、例えば、このVqmaxを超えるq軸電圧指令値Vqが演算された場合にインバータ70の出力電圧が飽和する電圧飽和状態となる(すなわち、q軸印加電圧Vq
*=Vqmax)。
また、本明細書では、1.15×Ed/2以上且つ1.27×Ed/2以下(-1.27×Ed/2以上且つ-1.15×Ed/2以下)を満たす領域を過変調制御領域という。すなわち、1.15×Ed/2は、過変調制御領域の下限値であり、1.27×Ed/2は、過変調制御領域の上限値である。したがって、以下の説明では、制御器80は、演算したd、q軸電圧指令値Vd、Vqが過変調制御領域にあるとき、これらVd、Vqに基づいて、インバータ70の出力電圧を制御するインバータ70の過変調制御を実行可能なように構成されている。
ここで、過変調制御では、変調率Mが1以下の領域での制御と比較してスイッチング素子70A~70Fのオン時間が長くなることが知られている。これにより、インバータ70の出力電圧を増大させることが可能となるので、変調率Mが1での制御と比較して、例えば、モータ60の最大回転数を約10%上昇させることができる。
しかし、過変調制御では、変調率Mが1以下の領域での制御と比較してPWMパルスの数が少なくなるので、モータ60に流れる電流(すなわち、相電流検出値Iu、Iv、Iw)に高周波成分が重畳してこれらの波形がひずむ。その結果、d、q軸電流検出値Id、Iqの波形もひずんでしまう。そのため、例えば、図13に示す制御結果のように電流制御の安定性が悪化するおそれがあった。尚、図13に示すq軸電圧についてのタイムチャートは、d、q軸印加電圧Vd
*、Vq
*の時間変化を示す図6や図11とは異なり、q軸電圧演算部618で演算されるq軸電圧指令値Vqの時間変化を示している。
図13では、モータ回転数を所望の回転数とすべく、時刻t7において、変調率Mが1を超える領域(M>1)での制御を要求するようなq軸電圧指令値Vq(>1.15×Ed/2)が演算されて過変調制御が実行されている。また、図13では、時刻t8以後、Vqmaxを超えるVqが演算され、q軸印加電圧Vq
*がVqmaxで飽和する電圧飽和状態が生じる。したがって、q軸電流検出値Iqと第1のq軸電流指令値Iq
*とのq軸電流偏差ΔIqが0にならないワインドアップ現象が発生する。
過変調制御におけるワインドアップ現象の発生中、相電流検出値Iu、Iv、Iwの波形がひずみ始めるのに伴って、q軸電流検出値Iqの波形がひずみ始める。ここで、ワインドアップ現象の発生によるq軸積分値Iq
**の過剰な増大は第1実施形態と同様の構成により抑制される(図示省略)。しかしながら、q軸電流検出値Iqの波形のひずみに伴ってq軸電流偏差ΔIqにも高周波成分が重畳し、q軸積分値Iq
**の時間に応じた変化が大きくなってしまう。また、図示省略のd軸電流検出値Idの波形もIqと同様にひずむので、(数2)から明らかなように、Vqは、Idの波形のひずみに伴うd軸積分値Id
**の時間変化の影響を受ける。そのため、演算されるVqには高周波成分である電圧リップルが重畳するので、Vqの波形がVqmaxを中心として正負両側に振動してしまう。したがって、q軸印加電圧Vq
*は、実際には、Vqmaxで飽和したり、Vqmax未満となったりするので、過変調制御により波形がひずんだ相電流Iu、Iv、Iwに悪影響が及び、相電流Iu、Iv、Iwの波形が更にひずむおそれがあった。このように、過変調制御におけるワインドアップ現象の発生後、所望のモータ回転数が得られるまでの過渡状態において電流制御の安定性が悪化する結果、モータ60の回転数が安定しない。よって、VCR機構26を用いた圧縮比の変更速度が安定しないおそれがあった。
そこで、図13に示す過渡状態における電流制御の安定性を向上させるべく、第2実施形態では、d(q)軸電圧演算部616(618)は、演算したd(q)軸電圧指令値Vd(Vq)を第2のd(q)軸電流演算部606(608)に出力する(図14を参照)。これに加えて、第2のd(q)軸電流演算部606(608)における積分演算部606A(608A)と積分制限部606D(608D)との間にローパスフィルタ処理部606E(608E)が設けられている(図15を参照)。以下、第2のd軸電流演算部606のローパスフィルタ処理部606Eについて説明するが、第2のq軸電流演算部608のローパスフィルタ処理部608Eについても同様である。
ローパスフィルタ(以下、単に「LPF」という)処理部606Eは、積分演算部606Aから出力されたd軸積分値Id
**の所定の周波数以下の周波数成分のみを通過させることでId
**の時間変化を平滑化するフィルタ処理を実行する。このようなフィルタ処理は、例えば、ソフトウェアで実行される。より詳細には、LPF処理部606Eは、まず、d軸電圧演算部616が演算したd軸電圧指令値Vdを入力し記憶しておく。すなわち、入力したVdは、前回のベクトル制御処理で演算されたVd(Vd前回値)である。そして、LPF処理部606Eは、Vd前回値の絶対値とd軸電圧制限値Vdlmtとを比較して、Vd前回値の絶対値がd軸電圧制限値Vdlmt(=1.27×Eb/2)を超えているときにフィルタ処理を実行する。すなわち、LPF処理部606E(608E)は、インバータ70の出力電圧が飽和している間、フィルタ処理を実行する。これにより、過変調制御におけるワインドアップ現象の発生中のd、q軸積分値Id
**、Iq
**の時間に応じた変化が抑制される。
一方、LPF処理部606Eは、Vd前回値の絶対値がd軸電圧制限値Vdlmt以下のときフィルタ処理を実行しない。すなわち、電圧飽和状態が生じておらずワインドアップ現象が発生していないときは、d軸積分値Id
**が積分制限部606Dにそのまま出力される。
第2実施形態に係る制御器80によれば、電圧飽和状態が生じている間、LPF処理部606E、608Eによってd、q軸積分値Id
**、Iq
**(すなわち、制限前のd(q)軸積分値)の時間変化が平滑化される。また、第1実施形態と同様に、制御器80は、d、q軸積分値Id
**、Iq
**を所定の範囲内に制限する。これにより、Id
**、Iq
**を所定の範囲内に制限しつつ、過変調制御におけるワインドアップ現象の発生中にd、q軸電流偏差ΔId、ΔIqに高周波成分が重畳するのに伴うId
**、Iq
**の時間変化を抑制することが可能となる。そして、d、q軸電圧指令値Vd、Vqは時間変化が抑制されたId
**、Iq
**などを用いて演算されるので、これらVd、Vqに電圧リプルが重畳するのを抑制することができる。これにより、過変調制御における相電流Iu、Iv、Iwの波形の更なるひずみが抑制されるので、d、q軸電流検出値Id、Iqの波形のひずみが抑制される。したがって、過変調制御におけるワインドアップ現象の発生中に所望のモータ回転数が得られるまでの過渡状態において、電流制御の安定性を向上させることができる。
ここで、LPF処理部606E(608E)は、積分演算部606A(608A)と積分制限部606D(608D)との間に設けられることに限るものではない。第2実施形態の第1変形例として、例えば、図16に示すように、LPF処理部606E(608E)は、制限値演算部606C(608C)と積分制限部606D(608D)との間に設けられてもよい。この場合、d(q)軸積分上限値Idmax(Iqmax)及びd(q)軸積分下限値Idmin(Iqmin)の時間変化が平滑化される。(数3)~(数6)から明らかなように、これらIdmax(Iqmax)及びIdmin(Iqmin)は、高周波成分が重畳したd(q)軸電流偏差ΔId(ΔIq)の影響を受ける。したがって、Idmax(Iqmax)及びIdmin(Iqmin)の時間変化が抑制されることにより、積分演算部606A(608A)の出力にフィルタ処理を施した場合と同様の効果が得られる。
また、第2実施形態の第2変形例として、例えば、図17に示すように、LPF処理部606E(608E)を積分制限部606D(608D)の下流側に設けてもよい。すなわち、第2変形例では、積分演算部606A、608Aが演算したd、q軸積分値Id
**、Iq
**が所定の範囲内であるときは、これらId
**、Iq
**にフィルタ処理が施される。また、d、q軸積分値Id
**、Iq
**が所定の範囲外のときは、d(q)軸積分上限値Idmax(Iqmax)及びd(q)軸積分下限値Idmin(Iqmin)(すなわち、制限後のd(q)軸積分値)にフィルタ処理が施される。したがって、第2変形例においても、Id
**(Iq
**)、Idmax(Iqmax)又はIdmin(Iqmin)の時間変化が平滑化されるので、第1変形例や第2変形例と同様の効果が得られる。
但し、上述した各フィルタ処理の1つのみが実行されることに限るものではない。すなわち、制限前のd(q)軸積分値と、d(q)軸積分上下限値又は制限後のd(q)軸積分値とにフィルタ処理を施してもよい。また、d(q)軸積分上下限値と、制限後のd(q)軸積分値とにフィルタ処理を施してもよい。さらに、制限前のd(q)軸積分値、d(q)軸積分上下限値及び制限後のd(q)軸積分値の全てにフィルタ処理を施してもよい。
尚、LPF処理部606E(608E)は、過変調制御におけるワインドアップ現象が発生している間にフィルタ処理を実行することに限るものではない。相電流Iu、Iv、Iwの波形は、過変調制御が開始されてからがひずみ始める。そこで、例えば、Vd前回値(Vq前回値)の絶対値と比較される閾値として、Vdlmt(Vqlmt)に代えて1.15×Ed/2を用いてもよい。すなわち、LPF処理部606E(608E)は、Vd前回値(Vq前回値)の絶対値が1.15×Ed/2を超えている間、すなわち、過変調制御を実行している間にフィルタ処理を実行するようになっていてもよい。
第2実施形態では、図15~図17に示すようにLPF処理部606E(608E)を設けることで、d、q軸積分値Id
**
、Iq
**又はd、q軸積分上下限値Idmax、Idmin、Iqmax、Iqminにフィルタ処理を施していた。これにより、d、q軸電圧指令値Vd、Vqに電圧リプルが重畳するのを抑制して相電流Iu、Iv、Iwの波形のひずみを抑制していた。但し、これに限るものではなく、以下で説明する第2実施形態の第3変形例では、LPF処理部606E(608E)を設けずにd、q軸電圧指令値Vd、Vqの電圧リップルを抑制することができる。
第3変形例では、図18に示すように、ベクトル制御部600の最下流側に電圧制限部620が設けられている。この電圧制限部620は、d、q軸電圧演算部616、618が演算したd、q軸電圧指令値Vd、Vqのそれぞれとd、q軸電圧制限値Vdlmt、Vqlmt(=1.27×Ed/2)と比較するようになっている。
電圧制限部620は、例えば、演算されたq軸電圧指令値Vqがq軸電圧上限値Vqmax以下又はq軸電圧下限値Vqmin以上であるとき、Vqをそのまま出力する。一方、電圧制限部620は、例えば、VqがVqmaxを超えたとき又はVqlmt未満のとき、d、q軸電圧指令値としてVqmax又はVqminを出力する。
要するに、ベクトル制御部600からは、電圧制限部620によってVqmax以下又はVqmin以上のVqが出力される。したがって、過変調制御におけるワインドアップ現象発生中に飽和したq軸印加電圧Vq
*であるVqmax又はVqminとベクトル制御部600の出力結果とを一致させることができる。すなわち、制御器80は、Vd、Vqがd、q軸電圧上限値Vdmax、Vqmaxを超えたときはこれらVdmax、Vqmaxに基づいてインバータ70を制御し、Vd、Vqがd、q軸電圧下限値Vdmin、Vqminを下回ったときはこれらVdmin、Vqminに基づいてインバータ70を制御する。
しかしながら、電圧制限部620を設けても、以下で説明するように、d、q軸電圧指令値Vd、Vqに電圧リプルが重畳するおそれがある。例えば、図19に示すように、時刻t9において、例えば、1.15×Ed/2を超えるVqが演算されて過変調制御が開始され、その後、時刻t10において、q軸電圧上限値Vqmaxを超えるVqが演算されてワインドアップ現象が発生したとする。この場合、q軸電流検出値Iqの波形がひずみ始めると共にq軸電流偏差ΔIqに高周波成分が重畳する。ここで、q軸積分値Iq
**はq軸積分上限値Iqmaxに制限されるものの、Iqの波形のひずみ及びΔIqへの高調波成分の重畳に伴って、演算値であるVqにVqmaxを中心として正負両側に振動するような電圧リプルが重畳してしまう。電圧制限部620によってVqmaxを超えるVqはベクトル制御部600から出力されないが、電圧制限部620による制限後のVqの波形にはVqmax以下で電圧リプルが重畳するおそれがある(図19を参照)。
そこで、第3変形例では、電圧制限部620を設けることに加えて、d(q)軸積分上限値Idmax(Iqmax)とd(q)軸積分下限値Idmin(Iqmin)とで規定される所定の範囲を広げるように補正する。より詳細には、第3変形例では、制限値演算部606C(608C)は、演算したIdmax(Iqmax)を第1の所定値αだけ増大させると共に演算したIdmin(Iqmin)を第1の所定値αだけ減少させて所定の範囲を補正するように構成されている。
例えば、図20は、q軸積分上下限値についての制限値演算部608CがIqmaxに第1の所定値αを加算した場合を示している。すなわち、図20では、Iqmaxを変更する前(図19)と比較してIqmaxが第1の所定値αだけ大きくなっている。これにより、積分演算部608Aが演算したq軸積分値Iq
**がIqmax+αを超えたとき、Iqmax+αがq軸積分値に決定される。そのため、このIqmax+αなどを用いて演算されるq軸電圧指令値Vqは、q軸積分値がIqmaxで制限されていた場合と比較して大きい値となる。第1の所定値αの調整次第では、Vqはq軸電圧上限値Vqmax以上で電圧リプルが重畳した波形となる(図20を参照)。そして、このVqは電圧制限部620によってVqmaxに制限されるため、制限後のVqは一定値(Vqmax)となる。
第1の所定値αの設定については、まず、例えば、実機試験により、ワインドアップ現象発生中のd、q軸電圧指令値Vd、Vq(電圧飽和状態におけるVd、Vq)の電圧リプル量を予め測定しておく。ここで、この電圧リプル量とは、演算したVd、Vqとd、q軸電圧制限値Vdlmt、Vqlmtとの差であって、より詳細には、図20に示すVqのピークとVqmaxとの差である。そして、第1の所定値αを、予め測定した電圧リプル量を抵抗設定値Rで除算した値以上となるように設定することが好ましい(α≧電圧リプル量/R)。すなわち、電圧リプル量/Rが、第1の所定値αとして設定できる下限値となる。要するに、制御器80は、演算したd、q軸電圧指令値とd、q軸電圧制限値との差を考慮して、(数3)~(数6)に従って得られた所定の範囲(すなわち、演算した所定の範囲)を広げるように補正する。
また、第1の所定値αを大きくするほど所定の範囲が広くなるため、所定の範囲を広くする前と比較してd、q軸積分値が増大又は減少する。そのため、第1実施形態で言及したように、指令変更後(ワインドアップ現象終了後)の電流制御の応答が遅れる。したがって、例えば、実機試験により、第1の所定値αと応答遅れの時間との関係を予め調べておき、第1の所定値αとして設定可能な上限値を、許容できる応答遅れの時間を考慮して設定してもよい。
このように、d、q軸積分値についての所定の範囲を広げることにより、Vdmax、Vdmax以上又はVdmin、Vqmin以下で電圧リプルが重畳した波形のd、q軸電圧指令値Vd、Vqを演算させることが可能となる。これにより、電圧制限部620によって、制限後のVd、Vqを電圧リプルのない一定値とすることが可能となる。要するに、電圧制限部620を設けることに加えて所定の範囲を広げることで、Vd、Vqへの電圧リプルの重畳を抑制することが可能となるので、過変調制御におけるワインドアップ現象発生中の相電流Iu、Iv、Iwの波形のひずみが更に生じるのを抑制することができる。したがって、LPF処理部606E、608Eを設けた場合と同様、電流制御の安定性を向上させることができる。
ところで、過変調制御におけるワインドアップ現象は、上述したように、Vdmax(Vqmax)(=+1.27×Ed/2)を超えるd(q)軸電圧指令値Vd(Vq)、又は、Vdmin(Vqmin)(=-1.27×Ed/2)未満のVd(Vq)が演算されたときに発生する。これは、+1.15×Ed/2以上又は-1.15×Ed/2以下のd、q軸電圧指令値Vd、Vqが演算されること、すなわち、Vd、Vqが過変調制御領域に入ることを何の制約もなく許容していることを意味する。このことは、図13に示すようなq軸電流検出値Iqの波形のひずみが発生することの一因となっている。
そこで、第3実施形態に係る制御器80では、d、q軸電圧指令値Vd、Vqが過変調制御領域に徐々に入るようにする。そのために、まず、ベクトル制御部600の最下流側には第2実施形態の第3変形例と同様の電圧制限部620が設けられている(図18を参照)。また、図21に示すように、d、q軸電圧演算部616、618が演算したVd、Vqのそれぞれは、制限値演算部606C、608Cに入力される。
電圧制限部620は、基本的には、上述の第3変形例において説明したのと同様であるが、第3実施形態では、電圧制限部620においてd、q軸電圧指令値Vd、Vqと比較されるd、q軸電圧制限値Vdlmt、Vqlmtを継時的に変更可能となっている。より詳細には、Vdlmt、Vqlmtの変更範囲は、それぞれ、過変調制御領域の下限値である1.15×Ed/2よりも小さい第1制限値と、1.15×Ed/2よりも大きい第2制限値とで規定されている。第1制限値は、Vdlmt(Vqlmt)の下限値を規定するものであって、例えば、Ed/2に設定される。また、第2制限値は、Vdlmt、Vqlmtの上限値を規定するものであって、例えば、過変調制御領域の上限値である1.27×Ed/2に設定される。
d、q軸電圧制限値Vdlmt、Vqlmtは、例えば、以下のように変更される。以下では、主に、第2のq軸電流演算部608について説明するが、第2のd軸電流演算部606についても同様である。第3実施形態では、まず、第2のq軸電流演算部608の制限値演算部608Cが、前回のベクトル制御で演算されたq軸電圧指令値Vq、すなわち、Vq前回値とVqlmtとを比較する。ここで、Vqlmtの初期値は第1制限値に設定される。制限値演算部608Cにおいて、Vq前回値の絶対値がVqlmtを超えていると判定された場合、前回のベクトル制御では、電圧制限部620がVq前回値に代えて第1制限値が出力される。すなわち、q軸印加電圧Vq
*が第1制限値で飽和した電圧飽和状態が生じている。また、制限値演算部608Cは、Vq前回値の絶対値がVqlmtを超えているとき、Vqlmtを第1制限値から第2制限値に向けて第2の所定値だけ増大させる。制限値演算部608CでのVqlmtの増大に連動して、電圧制限部620のVqlmtも変更されるようになっている。したがって、今回のベクトル制御では、電圧制限部620は、Vq今回値を増大後のVqlmtと比較する。これにより、Vq今回値が増大後のVqlmtを超えているとき、増大後のVqlmtが出力され、q軸印加電圧Vq
*が増大後のVqlmtで飽和した電圧飽和状態が継続される。その後、制限値演算部608CにおいてVq前回値が増大後のVqlmtを超え続け、Vqlmtが第2制限値と等しくなったときVqlmtの変更が終了する。
要するに、制限値演算部606C(608C)は、演算したd(q)軸電圧指令値Vd(Vq)がd(q)軸電圧上限値Vdmax(Vqmax)を超えるたびに又は演算したVd、Vqがd(q)軸電圧下限値Vdmin(Vqmin)を下回るたびに、Vdmax(Vqmax)と、Vdmin(Vqmin)の絶対値とを、第1制限値を初期値として、第2制限値に向けて第2の所定値だけ増大させる。これにより、図13に示す過変調制御におけるモータ60の最大回転数が得られるまで、Vd(Vq)を、増大させたVdmax(Vqmax)又は低減したVdmin(Vqmin)に飽和させながら最終的に第2制限値で飽和させることが可能となる。すなわち、インバータ70の出力電圧が飽和して過変調制御におけるワインドアップ現象が発生するまで、ベクトル制御部600の演算結果であるVd(Vq)を変更されるVdlmt(Vqlmt)に飽和させる。これにより、Vd(Vq)が過変調制御領域に徐々に入ることが可能となる。一方、制限値演算部606C(608C)は、演算したVd(Vq)がVdmin(Vqmin)以上且つVdmax(Vqmax)以下のときは、これらVdmax(Vqmax)Vdmin(Vqmin)をそのまま維持する。
d(q)軸電圧制限値Vdlmt(Vqlmt)は、例えば、図22に示すように第1制限値(=Ed/2)から1.15×Ed/2を経て第2制限値(=1.27×Ed/2)に向かって所定の時定数で時間変化するように増大させてもよい。所定の時定数は、制御器80(ベクトル制御部600における電流制御)の時定数(=d、q軸制御応答角周波数の逆数ωcdACR
-1、ωcqACR
-1)を考慮した時定数とする。例えば、所定の時定数は、制御器80の時定数の約4倍であってもよい。但し、これに限るものではなく、Vdlmt(Vqlmt)は、例えば、図23に示すように、時間に比例して変化するように変更されてもよい。より詳細には、Vdlmt(Vqlmt)が第1制限値から第2制限値に変化している間、d、q軸電流検出値Id、Iqが不安定にならないようなVdlmt(Vqlmt)の時間変化率(傾き)を予め実機試験などにより求めておく。そして、Vdlmt(Vqlmt)を、予め設定した傾き(求めた傾き)で時間変化するように増大させてもよい。尚、d、q軸電圧下限値Vdmin、Vqminは、-Vdlmt、-Vqlmtと等価であり、Vdlmt、Vqlmtが図22及び図23に示すように増大するほど減少する。
また、上述したように、d(q)軸電圧指令値Vd(Vq)は変更後のd(q)軸電圧制限値Vdlmt(Vqlmt)で飽和させているため、d(q)軸電流偏差ΔId(ΔIq)が0にならないワインドアップ現象が発生する。そのため、d(q)軸積分値Id
**(Iq
**)が過剰に増大又は減少する。そこで、第3実施形態では、制限値演算部606C(608C)は、d(q)軸積分上下限値Idmax(Iqmax)、Idmin(Iqmin)を演算するのに変更又は維持されたVdlmt(Vqlmt)を用いる。これにより、Vdlmt(Vqlmt)の変更に伴って所定の範囲も変更される。例えば、Iq
**が変更後のVqlmtを用いて演算されるIqmaxを超えたとき、このIqmaxがq軸積分値となる。したがって、d(q)軸電圧指令値Vd(Vq)を飽和させながら増大させている間のd(q)軸積分値の過剰な変化も抑制することが可能となる。このように、d(q)軸積分上下限値Idmax(Iqmax)、Idmin(Iqmin)の演算には、時間に依存して変更されるd(q)軸電圧制限値が用いられる。すなわち、第3実施形態では、(数3)~(数8)のVdmax、Vqmax、Vdmin、Vqminは、時間tの要素が加わった電圧制限値、すなわち、変更又は維持されたd、q軸電圧制限値(Vdmax,t、Vqmax,t、Vdmin,t、Vqmin,t)に変更される。
以上説明した第3実施形態に係る制御器80における作用及び効果について図24、25を参照して説明する。
図24では、時刻t11において、ベクトル制御部600によって第1制限値を超えるq軸電圧指令値Vqが演算される。この場合、Vqは第1制限値に制限され、q軸印加電圧Vq
*が第1制限値で飽和する電圧飽和状態が生じてワインドアップ現象が発生する。したがって、時刻t11よりも後の積分制限値の演算及び電圧指令値の決定に用いられるd、q軸電圧制限値Vdlmt、Vqlmtは、第1制限値から第2の所定値だけ増大した値に変更される。尚、図24では、Vdlmt、Vqlmtは図22に従って変更されるものとする。その後、演算されるVqがVqlmtを超え続けると、ベクトル制御部600が出力するVqはVqlmtの増大と同様の時間変化を示す。これにより、Vqは増大後のVqlmtに飽和しながら第2制限値に達する。
より詳細には、時刻t11以降、継時的に変更されるq軸電圧上限値Vqmaxでq軸電圧指令値Vqが飽和する電圧飽和状態を生じさせながら過変調制御を実行すると共に過変調制御におけるワインドアップ現象を発生させることが可能になる。これにより、過変調制御におけるワインドアップ現象が急に発生するのを抑制することができる。この点について、図13に示す過変調制御による制御結果(電圧制限値変更なし)と第3実施形態による制御結果(電圧制限値変更あり)とを比較した図25を参照して説明する。図25において、電圧制限値を変更しない場合、時刻t7において過変調制御が実行され、その後、時刻t8において過変調制御におけるワインドアップ現象が発生している。一方、電圧制限値を変更した場合、まず、時刻t11においてVqが第1制限値で飽和している。その後、時刻t12において過変調制御が実行され、時刻t13において過変調制御におけるワインドアップ現象が発生している。すなわち、電圧制限値を変更した場合では、電圧制限値を変更しない場合と比較して、過変調制御におけるワインドアップ現象の発生を時間的に遅らせることができることが分かる。また、電圧制限値を変更した場合では、時刻t11において電圧飽和状態を生じさせてから、電圧制限値(Vqmax)の変更に伴ってVqが変化している。したがって、Vqが過変調制御領域に徐々に入ることが可能になるので、過変調制御の実行も時間的に遅らせることができる。特に、電圧制限値を変更した場合では、電圧制限値を変更しない場合と比較して、過変調制御の実行からワインドアップ現象の発生までの時間を相電流Iu、Iv、Iwの波形の更なるひずみを抑制するのに十分長くすることができる(図25を参照)。
このように、第3実施形態に係る制御器80では、過変調制御及びワインドアップ現象の発生を要求するようなd、q軸電圧指令値Vd、Vqが演算されている間、Vdlmt、Vqlmtが徐々に増大するように変更される。これにより、過変調制御におけるワインドアップ現象が発生するまで、Vd、Vqを徐々に変更されるVdlmt、Vqlmtで飽和させながら過変調制御が実行される。すなわち、Vd、Vqが制限されながら過変調領域に徐々に入るようになるので、相電流Iu、Iv、Iwの波形の更なるひずみが抑制されて、d、q軸電流検出値Id、Iqの波形のひずみを抑制することができる。したがって、過変調領域におけるワインドアップ現象の発生中、所望のモータ回転数が得られるまでの過渡状態における電流制御の安定性を向上させることができる。
また、以上説明した第3実施形態と第2実施形態とを組み合わせてもよい。以下、第2実施形態と第3実施形態とを組み合わせた第4実施形態に係る制御器80が実行するベクトル制御処理について、図26~図29を参照して説明する。尚、図26~図29は、LPF処理部606E(608E)が積分演算部606A(608A)と積分制限部606D(608D)との間に設けられている場合(図15を参照)のベクトル制御処理である。したがって、d(q)軸電圧演算部616(618)が演算したd(q)軸電圧指令値Vd(Vq)は、制限値演算部606C(608C)及びLPF処理部606E(608E)に出力される。
第4実施形態によるベクトル制御処理は、以下の点で、図9に示すベクトル制御処理とは異なる。図26に示すように、ステップ2とステップ3との間には新たにステップ6の電圧制限値決定処理が挿入されており、ステップ5がステップ7の電圧指令値決定処理に変更されている。
プロセッサ80Aは、ステップ2の処理を終了すると、ステップ6において、図27に示す電圧制限値決定処理を実行する。
ステップ600では、プロセッサ80Aは、後述するステップ7で演算され記憶されていたd、q軸電圧指令値Vd、Vq、すなわち、前回のベクトル制御処理の電圧指令値決定処理で決定されたVd前回値及びVq前回値を読み込む。
ステップ602では、プロセッサ80Aは、Vd前回値の絶対値(|Vd前回値|)がd軸電圧制限値Vdlmt以下であり、且つ、Vq前回値の絶対値(|Vq前回値|)がq軸電圧制限値Vqlmt以下であるか否かを判定する。尚、初回のベクトル制御処理では、ステップ602のVdlmt、Vqlmtは、第1制限値(例えば、Ed/2)に設定されている。また、初回のベクトル制御処理では、Vd前回値及びVq前回値は決定されていないので、Vd前回値及びVq前回値は初期値(例えば0)に設定される。
ステップ602において、プロセッサ80Aは、|Vd前回値|がVdlmt以下であり、且つ、|Vq前回値|がVqlmt以下であると判定すると、処理をステップ604に進める。ステップ604では、プロセッサ80Aは、Vdlmt、Vqlmtをそのまま維持して、処理をステップ3に戻す。すなわち、ステップ604では、Vdlmt、Vqlmtは変更されない。
一方、ステップ602において、プロセッサ80Aは、|Vd前回値|がVdlmtを超えているか、又は、|Vq前回値|がVqlmtを超えているとき、前回のベクトル制御処理において電圧飽和状態が生じていると判定し、処理をステップ606に進める。
ステップ606では、プロセッサ80Aは、ステップ602及び後述するステップ7で用いられるVdlmt及びVqlmtを図22又は図23に従って第2の所定値だけ増大させ、処理をステップ3に戻す。ステップ606でVdlmt及びVqlmtを増大させると、以降の処理で用いられるVdlmt及びVqlmtは増大させたVdlmt及びVqlmtとなる。
ステップ3では、プロセッサ80Aは、ステップ6で維持又は変更されたVdlmt、Vqlmtなどを用いて、d、q軸積分上下限値Idmax、Iqmax、Idmin、Iqminの今回値を演算する。
ステップ4では、プロセッサ80Aは、図28に示す積分値決定処理を実行する。この積分値決定処理は、ステップ400の前にステップ420、422が挿入されている点で図10に示す積分値決定処理と異なる。
ステップ420では、プロセッサ80Aは、上述したLPF処理部606E(608E)によるフィルタ処理を実行するか否かを判定すべく、ステップ602と同様の判定を実行する。ここで、ステップ420で用いるVdlmt、Vqlmtは、ステップ6でVdlmt、Vqlmtが維持されたか又は変更されたかに関わらず、ステップ602で用いたVdlmt、Vqlmtを用いる。すなわち、ステップ420では、プロセッサ80Aは、|Vd前回値|及び|Vq前回値|のそれぞれとステップ602で用いたVdlmt及びVqlmtとを比較する。
ステップ420において、プロセッサ80Aは、|Vd前回値|がVdlmtを超えているとき、又は、|Vq前回値|がVqlmtを超えているとき、電圧飽和状態が生じていると判定して、処理をステップ422に進める。
ステップ422では、プロセッサ80Aは、ステップ2で演算したd、q軸積分値Id
**、Iq
**に対して上述したLPF処理部606E、608Eによるフィルタ処理を実行して、処理をステップ400に進める。したがって、ステップ400以降の処理では、フィルタ処理が施されたId
**(Iq
**)がd(q)軸積分上限値Idmax(Iqmax)及びd(q)軸積分下限値Idmin(Iqmin)と比較されてd(q)軸積分値が決定される。
一方、ステップ420において、プロセッサ80Aは、|Vd前回値|がVdlmt以下であり、且つ、|Vq前回値|がVqlmt以下であるとき、フィルタ処理を実行せずに処理をステップ400に進める。この場合、ステップ400以降の処理では、ステップ2で演算したd、q軸積分値Id
**、Iq
**がd(q)軸積分上限値Idmax(Iqmax)及びd(q)軸積分下限値Idmin(Iqmin)と比較されてd(q)軸積分値が決定される。
その後、プロセッサ80Aは、ステップ412、416又は418でq軸積分値を決定すると、処理をステップ7に戻す。
ステップ7では、プロセッサ80Aは、図29に示す電圧指令値決定処理を実行する。
ステップ700では、プロセッサ80Aは、図9に示すステップ5と同様に、d、q軸電圧指令値の今回値Vd,t、Vq,tを演算する。尚、第4実施形態では、ステップ422でd、q軸積分値Id
**、Iq
**に対してフィルタ処理が実行される場合がある。この場合、Vd,t、Vq,tの演算には、フィルタ処理が施されたId
**、Iq
**が用いられる。
ステップ702では、プロセッサ80Aは、ステップ700で演算したVd,tがd軸電圧上限値Vdmax(=+Vdlmt)を超えたか否かを判定する。上述したように、ステップ7では、Vdlmt、Vqlmtは、ステップ6で維持又は変更されたVdlmt、Vqlmtが用いられる。したがって、ステップ6でVdlmtが変更された場合、ステップ702では、Vd,tが変更後のVdmax、すなわち、図22又は図23に従って増大させたVdmaxを超えたか否かが判定される。
ステップ702において、プロセッサ80Aは、Vd,tがVdmaxを超えていると判定すると、処理をステップ704に進める。
ステップ704では、プロセッサ80Aは、最終的に出力するd軸電圧指令値の今回値をVdmaxに制限する(Vd=Vdmax)。したがって、d軸電圧指令値が増大後のVdmaxに飽和した電圧飽和状態が生じるため、ワインドアップ現象が継続することになる。
一方、ステップ702において、プロセッサ80Aは、Vd,tがVdmax以下であると判定すると、処理をステップ706に進める。
ステップ706では、プロセッサ80Aは、Vd,tがd軸電圧下限値Vdmin(=-Vdlmt)未満であるか否かを判定する。上述したように、ステップ6でVdlmtが変更された場合、d軸電圧下限値Vdminは減少する。そして、プロセッサ80Aは、Vd,tがVdmin未満であると判定すると、処理をステップ708に進める。
ステップ708では、プロセッサ80Aは、最終的に出力するd軸電圧指令値の今回値をVdminに制限する(Vd=Vdmin)。したがって、d軸電圧指令値が減少後のVdminで飽和した電圧飽和状態が生じるため、ワインドアップ現象が継続することになる。
一方、ステップ706において、プロセッサ80Aは、Vd,tがVdmin以上であると判定すると、処理をステップ710に進める。
ステップ710では、プロセッサ80Aは、ステップ700で演算したVdをそのまま出力する(Vd=Vd)。すなわち、今回のベクトル制御では、ステップ6で維持又は変更されたVdmax以下且つステップ6で維持又は変更されたVdmin以上のVdが出力される。したがって、電圧飽和状態は生じない。
ステップ712~720の処理は、最終的なq軸電圧指令値Vq,tをステップ702~710と同様に決定する処理であり、説明を省略する。プロセッサ80Aは、ステップ714、718又は720でVq,tを決定すると、ベクトル制御処理を終了させる。その後、プロセッサ80Aは、上述したように、ステップ7で決定したd、q軸電圧指令値Vd,t、Vq,tに基づいてスイッチング素子70A~70Fを駆動するPWMパルスを生成する。これにより、インバータ70を介して電圧が印加されモータ60が駆動される。
尚、以上では、LPF処理部606E(608E)が積分演算部606A(608A)と積分制限部606D(608D)との間に設けられている場合の第4実施形態について説明した。LPF処理部606E(608E)が制限値演算部606C(608C)と積分制限部606D(608D)との間にある場合には、図28に示すステップ422の処理を、d(q)軸積分上下限値Idmax(Iqmax)、Idmin(Iqmin)にフィルタ処理を施す処理に変更する。これにより、第2実施形態の第1変形例を第3実施形態と組み合わせることが可能である。
また、LPF処理部606E(608E)が積分制限部606D(608D)よりも下流側にある場合には、図28に示すステップ400よりも上流側のステップ420及び422をステップ412、416及び418よりも下流側に移動する。これにより、第2実施形態の第2変形例と第3実施形態とを組み合わせることが可能である。この場合、ステップ422の処理は、最終的に決定されたd(q)軸積分値にフィルタ処理を施す処理に変更される。すなわち、積分制限部606D(608D)が演算したd(q)軸積分値(制限前のd(q)軸積分値)又は所定の範囲内に制限されたd(q)軸積分値(制限後のd(q)軸積分値)にフィルタ処理が施される。
但し、第2実施形態で説明した各フィルタ処理の1つのみを実行することに限るものではない。すなわち、制限前のd(q)軸積分値と、d(q)軸積分上下限値又は制限後のd(q)軸積分値とにフィルタ処理を施してもよい。また、d(q)軸積分上下限値と、制限後のd(q)軸積分値とにフィルタ処理を施してもよい。さらに、制限前のd(q)軸積分値、d(q)軸積分上下限値及び制限後のd(q)軸積分値の全てにフィルタ処理を施してもよい。
また、第2実施形態の第3変形例を第3実施形態に組み合わせることも可能である。このために、図28に示すステップ420及び422の処理を削除し、図26に示すステップ3の処理が、d(q)軸積分上下限値Idmax(Iqmax)、Idmin(Iqmin)を演算することに加えて、演算したIdmax、Iqmaxに第1の所定値αを加算し、演算したIdmin、Iqminから第1の所定値αを減算する処理に変更される。
以上説明した第4実施形態に係る制御器80では、第3実施形態と同様に、d、q軸電圧指令値Vd、Vqが制限されながら徐々に過変調領域に入るようになる。また、過変調制御の実行及び過変調制御におけるワインドアップ現象の発生を時間的に遅らせることができる。したがって、相電流Iu、Iv、Iwの波形の更なるひずみが抑制されて、d、q軸電流検出値Id、Iqの波形がひずむことを抑制することができる。
また、第3実施形態で説明したように、第4実施形態においても、d(q)軸積分上下限値Idmax(Iqmax)、Idmin(Iqmin)の演算に変更後のVdlmt(Vqlmt)が用いられる。したがって、d(q)軸電圧指令値Vd(Vq)が飽和しながら増大している間のd(q)軸積分値の過剰な変化も抑制することが可能となる。さらに、第4実施形態では、d(q)軸電圧制限値Vdlmt、Vqlmtの継時的な変更に伴う電圧飽和状態が生じている間、フィルタ処理又は所定の範囲の拡大処理が行われる。したがって、第4実施形態では、d、q軸電流検出値Id、Iqの波形のひずみの抑制効果を更に向上させることができる。
さらに、上記各実施形態では、制御器80は、d、q軸電流偏差に対する比例積分制御を実行するものとして説明したが、これに限るものではない。例えば、制御器80は、比例積分制御に加えて微分制御(すなわち、PID制御)を実行するように構成されていてもよい。
尚、当業者であれば、様々な上記実施形態の技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。