(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024112668
(43)【公開日】2024-08-21
(54)【発明の名称】オープン巻線型モータの制御方法、及び、オープン巻線型モータの制御装置
(51)【国際特許分類】
H02P 25/22 20060101AFI20240814BHJP
【FI】
H02P25/22
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023017872
(22)【出願日】2023-02-08
(71)【出願人】
【識別番号】000003997
【氏名又は名称】日産自動車株式会社
(74)【代理人】
【識別番号】110002468
【氏名又は名称】弁理士法人後藤特許事務所
(72)【発明者】
【氏名】渋谷 圭一
(72)【発明者】
【氏名】中村 幸代
(72)【発明者】
【氏名】澤田 彰
【テーマコード(参考)】
5H505
【Fターム(参考)】
5H505AA16
5H505BB10
5H505CC04
5H505DD06
5H505EE41
5H505EE49
5H505GG08
5H505HB01
5H505HB05
5H505JJ04
5H505JJ16
5H505JJ17
5H505JJ25
5H505LL07
5H505LL22
5H505LL41
(57)【要約】
【課題】インバータのスイッチング周波数が変化した場合でも、零相電流を抑制できるオープン巻線型モータの制御方法及び制御装置を提供する。
【解決手段】固定子として独立した複数相の巻線11を有し、インバータ22によって各相の巻線11に電力を供給することによって駆動するオープン巻線型モータ(10)の制御方法である。この制御方法では、オープン巻線型モータ(10)を駆動するときに各相の巻線11に共通に流れる零相電流i
zを抑制する零相指令値(i
z
*またはv
z1
*)を演算し、インバータ22のスイッチング周波数f
swに基づいて零相指令値(i
z
*またはv
z1
*)を補正し、補正後の零相指令値(v
z
*)を用いて零相電流i
zを制御する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
固定子として独立した複数相の巻線を有し、インバータによって各相の前記巻線に電力を供給することによって駆動するオープン巻線型モータの制御方法であって、
前記オープン巻線型モータを駆動するときに各相の前記巻線に共通に流れる零相電流を抑制する零相指令値を演算し、
前記インバータのスイッチング周波数に基づいて前記零相指令値を補正し、
補正後の前記零相指令値を用いて前記零相電流を制御する、
オープン巻線型モータの制御方法。
【請求項2】
請求項1に記載のオープン巻線型モータの制御方法であって、
前記スイッチング周波数に応じて前記零相電流に生じる成分に応じた振幅、位相、または、前記振幅及び前記位相を推定し、
前記振幅、前記位相、または、前記振幅及び前記位相に基づいて、前記零相指令値に対する補正指令値を演算し、
前記補正指令値によって前記零相指令値を補正する、
オープン巻線型モータの制御方法。
【請求項3】
請求項1に記載のオープン巻線型モータの制御方法であって、
前記零相指令値は、前記オープン巻線型モータの相数の奇数倍の次数を有する高調波を抑制する、
オープン巻線型モータの制御方法。
【請求項4】
請求項2に記載のオープン巻線型モータの制御方法であって、
複数の前記スイッチング周波数について、各々の前記スイッチング周波数と、前記振幅、前記位相、または、前記振幅及び前記位相と、を予め対応付けたマップを参照することにより、前記スイッチング周波数に対応する前記振幅、前記位相、または、前記振幅及び前記位相の値を演算し、
前記マップが実際の前記スイッチング周波数に対応する値を有しないときには、前記マップを補間することにより、実際の前記スイッチング周波数に対応する前記振幅、前記位相、または、前記振幅及び前記位相の値を演算する、
オープン巻線型モータの制御方法。
【請求項5】
請求項2に記載のオープン巻線型モータの制御方法であって、
基準とする前記スイッチング周波数である基準スイッチング周波数と、前記振幅、前記位相、または、前記振幅及び前記位相と、を予め対応付けたマップを参照することにより、前記スイッチング周波数に対応する前記振幅、前記位相、または、前記振幅及び前記位相の基準値を演算し、
実際の前記スイッチング周波数が前記基準スイッチング周波数と異なるときには、実際の前記スイッチング周波数と前記基準スイッチング周波数の差と、前記基準値と、に基づいて、実際の前記スイッチング周波数に対応する前記振幅、前記位相、または、前記振幅及び前記位相を演算する、
オープン巻線型モータの制御方法。
【請求項6】
請求項5に記載のオープン巻線型モータの制御方法であって、
前記差に応じて前記基準値を補正することにより、実際の前記スイッチング周波数に対応する前記振幅、前記位相、または、前記振幅及び前記位相を演算し、
前記差が大きいほど、前記基準値に対する補正量を大きくする、
オープン巻線型モータの制御方法。
【請求項7】
請求項1に記載のオープン巻線型モータの制御方法であって、
前記零相指令値の補正に対して補正ゲインを設定し、
前記オープン巻線型モータの駆動状態に応じて前記補正ゲインを変更する、
オープン巻線型モータの制御方法。
【請求項8】
請求項7に記載のオープン巻線型モータの制御方法であって、
回転速度が基準回転速度よりも大きいときに、または、前記オープン巻線型モータに印加する電圧のノルムが基準電圧ノルムよりも大きいときに、前記補正ゲインを低減する、
オープン巻線型モータの制御方法。
【請求項9】
固定子として独立した複数相の巻線を有し、インバータによって各相の前記巻線に電力を供給するオープン巻線型モータの制御装置であって、
前記オープン巻線型モータを駆動するときに各相の前記巻線に共通に流れる零相電流を抑制する零相指令値を演算し、
前記インバータのスイッチング周波数に基づいて前記零相指令値を補正し、
補正後の前記零相指令値を用いて前記零相電流を制御する、
オープン巻線型モータの制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オープン巻線型モータの制御方法及び制御装置に関する。
【背景技術】
【0002】
特許文献1は、オープン巻線型モータの制御に関し、インバータを3種類のスイッチングパターンで駆動することにより、各相に共通に流れる零相電流を生じさせないようにすることを開示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、出力向上を目的として、各相の巻線(固定子巻線)を結線せずに独立させ、各相の巻線の両端にそれぞれインバータを接続し、これら2つのインバータによって各相の巻線に供給する電力を制御するオープン巻線型モータが知られている。オープン巻線型モータでは、各インバータが供給しようとする平均電力の差に応じて、各相に共通に流れる電流成分である零相電流(零軸電流)が生じる。そして、零相電流はオープン巻線型モータの駆動に何ら寄与せず、単に電力の損失をもたらすので、零相電流は可能な限り抑制されることが望ましい。したがって、オープン巻線型モータの制御においては、フィードフォワード制御により、オープン巻線型モータの駆動状態(動作点)に応じて、零相電流を抑制(相殺)する電流が零相に流れるように制御される。
【0005】
一方、インバータのスイッチングによって発生する外乱は、零相電流の特性に大きな影響を与える。このため、オープン巻線型モータが特定の駆動状態であったとしても、インバータのスイッチング周波数が変化したときには、零相電流の特性が大きく変化する。したがって、インバータのスイッチング周波数が変化したときには、零相に単にオープン巻線型モータの駆動状態に応じた電流を流すだけでは、十分に零相電流を抑制することができない。
【0006】
本発明は、インバータのスイッチング周波数が変化した場合でも、零相電流を抑制できるオープン巻線型モータの制御方法及び制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明のある態様は、固定子として独立した複数相の巻線を有し、インバータによって各相の巻線に電力を供給することによって駆動するオープン巻線型モータの制御方法である。このオープン巻線型モータの制御方法では、オープン巻線型モータを駆動するときに各相の巻線に共通に流れる零相電流を抑制する零相指令値を演算し、インバータのスイッチング周波数に基づいて零相指令値を補正し、補正後の零相指令値を用いて零相電流を制御する。
【発明の効果】
【0008】
本発明によれば、インバータのスイッチング周波数が変化した場合でも、零相電流を抑制できるオープン巻線型モータの制御方法及び制御装置を提供することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、オープン巻線型モータの制御装置を示すブロック図である。
【
図2】
図2は、零相電流補正部の構成を示すブロック図である。
【
図3】
図3は、零相電流の特性を示す説明図である。
【
図4】
図4は、制御定数マップの性質を示すための説明図である。
【
図5】
図5は、制御定数マップの性質を示すための説明図である。
【
図6】
図6は、オープン巻線型モータの制御に係るフローチャートである。
【
図7】
図7は、零相電流の変動幅を示すグラフである。
【
図8】
図8は、第2実施形態に係る零相電流補正部の構成を示すブロック図である。
【
図9】
図9は、制御定数マップが有する値と補間の例を示す説明図である。
【
図10】
図10は、第3実施形態に係る零相電流補正部の構成を示すブロック図である。
【
図11】
図11は、制御定数補正部による補正方法を示す説明図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら本発明の実施形態について説明する。
【0011】
[第1実施形態]
図1は、オープン巻線型モータ10の制御装置100の構成を示すブロック図である。本実施形態のオープン巻線型モータ10及びその制御装置100は、例えば電気自動車やハイブリッド自動車等の電動車両に搭載される。この場合、オープン巻線型モータ10は、電動車両の駆動源である電動機として、または、電動車両が搭載する発電システムにおける発電機として利用される。なお、オープン巻線型モータ10及びその制御装置100は、自動車以外のシステムに搭載され得る。
【0012】
図1に示すように、制御装置100の制御対象はオープン巻線型モータ10(以下、単にモータ10という)である。制御装置100は、モータ10を予め定める所定の制御周期で制御するようにプログラムされている。モータ10は、各相の固定子巻線(以下、単に巻線11という)が結線されておらず、巻線11は電気的にそれぞれ独立している。すなわち、モータ10は、いわゆる中性点を有しない。本実施形態では、モータ10は、三相交流同期モータであり、その巻線11はUVWの各相で独立している。モータ10は、電源12から各相の巻線11にそれぞれ電力を供給することによって、図示しない回転子を回転させる。電源12は、例えば、電動車両に搭載された積層型リチウムイオンバッテリ等である。
【0013】
制御装置100は、電流指令値演算部13、電流制御部14、非干渉制御部15、第2電圧指令値演算部16、零相電流補正部17、最終電圧指令値演算部18、外乱補償部19、座標変換部20、PWM変換部21、インバータ22を備える。
【0014】
電流指令値演算部13は、トルク指令値T*、モータ10の回転速度を表すパラメータ、及び、電源12の直流電圧Vdcに基づいて、d軸電流指令値id
*、q軸電流指令値iq
*、及び、零相電流指令値iz
*を演算する。
【0015】
トルク指令値T*は、モータ10が出力すべきトルクについての指令値である。トルク指令値T*は、例えば、モータ10及び制御装置100が搭載された電動車両のアクセル開度APO(図示しない)等に応じて決定される。本実施形態では、トルク指令値T*は既知であるものとする。制御装置100は、トルク指令値T*を例えば図示しない上位のコントローラ(車両コントローラ)等から取得する。
【0016】
モータ10の回転速度を表すパラメータは、例えば、モータ10の電気角速度ωre、機械角速度ωrm、または、回転数Nm(図示しない)等である。本実施形態では、電流指令値演算部13は、モータ10の回転速度を表すパラメータとして、機械角速度ωrmを用いる。
【0017】
電源12の直流電圧Vdcは、例えば図示しない電圧センサによって、適宜に取得可能である。
【0018】
d軸電流指令値id
*及びq軸電流指令値iq
*(以下、まとめてdq軸電流指令値id
*,iq
*という)は、モータ10がトルク指令値T*に応じたトルクを出力するように、d軸及びq軸に流すべき電流を指令する指令値である。すなわち、dq軸電流指令値id
*,iq
*は、モータ10の駆動を制御する駆動用指令値である。dq軸は、モータ10の電気角速度ωreで回転する直交座標系である。
【0019】
零相電流指令値iz
*は、零相電流izを抑制(相殺)するように、敢えて流そうとする零相電流iz′を指令する。零相電流izは、多相式不平衡交流回路において各巻線11に同相で流れる電流である。より簡便に言えば、零相電流izは、モータ10を駆動したときに各相に共通に流れる電流である。すなわち、零相電流指令値iz
*は、原則としてiz+iz′≒0となるように、モータ10の駆動状態に応じた零相電流iz′を指令する。したがって、零相電流指令値iz
*は、モータ10の駆動には寄与しない。零相電流指令値iz
*は、いわばフィードフォワード制御によって定まる零相についての電流指令値である。
【0020】
本実施形態では、電流指令値演算部13は、トルク指令値T*及び直流電圧Vdcと、dq軸電流指令値id
*,iq
*及び零相電流指令値iz
*と、を実験またはシミュレーション等によって予め対応付けた電流指令値マップ(図示しない)を有する。このため、電流指令値演算部13は、電流指令値マップを参照することにより、トルク指令値T*及び直流電圧Vdcに対応するdq軸電流指令値id
*,iq
*及び零相電流指令値iz
*を演算する。
【0021】
電流制御部14は、dq軸電流指令値id
*,iq
*と、実際のd軸電流id及びq軸電流iq(以下、dq軸電流id,iqという)と、に基づいて、第1d軸電圧指令値vd1
*及び第1q軸電圧指令値vq1
*(以下、第1dq軸電圧指令値vd1
*,vq1
*という)を演算する。第1dq軸電圧指令vd1
*,vq1
*は、dq軸電流指令値id
*,iq
*に対応するdq軸電流id,iqを流すために、モータ10のdq軸に印加すべき電圧についての指令値である。第1dq軸電圧指令値vd1
*,vq1
*は、フィードバック制御によって定まるdq軸についての電圧指令値である。電流制御部14は、dq軸電流指令値id
*,iq
*と実際のdq軸電流id,iqの偏差に基づくPI(Proportional Integral)制御により、第1dq軸電圧指令値vd1
*,vq1
*を演算する。これにより、dq軸電流id,iqは、定常偏差がないとみなせる所定の応答性でdq軸電流指令値id
*,iq
*に追従する。
【0022】
また、電流制御部14は、零相電流指令値iz
*と、実際の零相電流izと、に基づいて第1零相電圧指令値vz1
*を演算する。第1零相電圧指令値vz1
*は、零相電流指令値iz
*に対応する零相電流iz′を流すために、モータ10の零相に印加すべき電圧についての指令値である。第1零相電圧指令値vz1
*は、フィードバック制御によって定まる零相についての電圧指令値である。電流制御部14は、零相電流指令値iz
*と実際の零相電流izとの偏差に基づくPI制御により、第1零相電圧指令値vz1
*を演算する。これにより、零相電流izが抑制される。
【0023】
非干渉制御部15は、モータ10の電気角速度ωre及び電気角θreと、dq軸電流指令値id
*,iq
*と、に基づいて、d軸非干渉化電圧vd-dcpl及びq軸非干渉化電圧vq-dcpl(以下、dq軸非干渉化電圧vd-dcpl,vq-dcplという)を演算する。dq軸非干渉化電圧vd-dcpl,vq-dcplは、dq軸間の干渉によって生じる電圧(干渉電圧)を相殺する電圧についての指令値である。本実施形態では、非干渉制御部15は、モータ10の電気角θreとして、先読み補償処理を施した電気角θre′を用いる。
【0024】
なお、本実施形態では、非干渉制御部15は、零相についての非干渉化電圧(以下、零相非干渉化電圧vz-dcplという)を演算しない。これは、後述する第1零相電圧指令値vz1
*に対する補正が、同時に第1零相電圧指令値vz1
*の非干渉化も兼ねるように設計されているからである。したがって、第1零相電圧指令値vz1
*に対する補正が、第1零相電圧指令値vz1
*の非干渉化を考慮しない設計となっているときには、非干渉制御部15は、dq軸非干渉化電圧vd-dcpl,vq-dcplと同様に、dq軸と零相の干渉によって生じる電圧を相殺する零相非干渉化電圧vz-dcplを演算することができる。
【0025】
第2電圧指令値演算部16は、第1dq軸電圧指令値vd1
*,vq1
*にdq軸非干渉化電圧vd-dcpl,vq-dcplを加算することにより、非干渉化された第2d軸電圧指令値vd2
*及び第2q軸電圧指令値vq2
*(以下、第2dq軸電圧指令値vd2
*,vq2
*という)を演算する。
【0026】
また、第2電圧指令値演算部16は、零相電流補正部17が出力する補正指令値vz-s
*を用いて第1零相電圧指令値vz1
*を補正することにより、第2零相電圧指令値vz2
*を演算する。本実施形態では、第2電圧指令値演算部16は、第1零相電圧指令値vz1
*に補正指令値vz-s
*を加算(重畳)することにより、第2零相電圧指令値vz2
*を演算する。
【0027】
零相電流補正部17は、機械角速度ωrm、電気角速度ωre、dq軸電流指令値id
*,iq
*、及び、電気角θre、及び、インバータ22のスイッチング周波数fswに基づいて、第1零相電圧指令値vz1
*に対する補正指令値vz-s
*を演算する。補正指令値vz-s
*は、スイッチング周波数fswに応じて零相電流izに生じる成分、すなわちスイッチング周波数fswの変化に起因した零相電流izの増減を抑制(相殺)するための指令値である。零相電流補正部17の構成については、詳細を後述する。なお、本実施形態では、零相電流補正部17は、モータ10の電気角θreとして、先読み補償処理を施した電気角θre′を用いる。また、本実施形態では、零相電流補正部17は、スイッチング周波数fswをPWM変換部21から取得するが、図示しない上位のコントローラ等からスイッチング周波数fswを取得することができる。
【0028】
最終電圧指令値演算部18は、第2dq軸電圧指令値vd2
*,vq2
*に対して外乱補償処理を施すことにより、外乱による変動を補償した最終d軸電圧指令値vd
*及び最終q軸電圧指令値vq
*(以下、最終dq軸電圧指令値vd
*,vq
*という)を演算する。本実施形態では、最終電圧指令値演算部18は、第2軸電圧指令値vd2
*,vq2
*に、外乱補償部19の出力であるd軸外乱推定値vd-dist及びq軸外乱推定値vq-distをそれぞれ加算することにより、最終dq軸電圧指令値vd
*,vq
*を演算する。
【0029】
また、最終電圧指令値演算部18は、第2零相電圧指令値vz2
*に対して外乱補償処理を施すことにより、外乱による変動を補償した最終零相電圧指令値vz
*を演算する。本実施形態では、最終電圧指令値演算部18は、第2零相電圧指令値vz2
*に、外乱補償部19の出力である零相外乱推定値vz-distを加算することにより、最終零相電圧指令値vz
*を演算する。
【0030】
外乱補償部19は、電気角速度ωre、電気角θre、最終dq軸電圧指令値vd
*,vq
*、最終零相電圧指令値vz
*、dq軸電流id,iq、及び、零相電流izに基づいて、モータ10に作用した外乱を、dq軸及び零相についてそれぞれ推定する。外乱補償部19は、推定結果を、d軸外乱推定値vd-dist、q軸外乱推定値vq-dist、及び、零相外乱推定値vz-distとして出力する。
【0031】
座標変換部20は、dq軸に零相成分を含めたdqz座標系からUVW軸の三相交流座標系への座標変換により、最終dq軸電圧指令値vd2
*,vq2
*及び最終零相電圧指令値vz
*を、UVW各相の電圧指令値vu
*,vv
*,vw
*を演算する。具体的には、座標変換部20は、下記の式(1)にしたがって、最終dq軸電圧指令値vd2
*,vq2
*及び最終零相電圧指令値vz
*を、UVW各相の電圧指令値(以下、三相電圧指令値vu
*,vv
*,vw
*という)を演算する。なお、本実施形態の座標変換部20は、モータ10の電気角θreとして先読み補償処理を施した電気角θre′を用いる。
【0032】
【0033】
PWM変換部21は、三相電圧指令値vu
*,vv
*,vw
*に基づいて、インバータ22のスイッチング素子に対する駆動信号であるPWM(Pulse Width Modulation)信号Duru
*,Durl
*,Dvru
*,Dvrl
*,Dwru
*,Dwrl
*,Dulu
*,Dull
*,Dvlu
*,Dvll
*,Dwlu
*,Dwll
*を演算する。具体的には、PWM変換部21は、三相電圧指令値vu
*,vv
*,vw
*と直流電圧Vdcに基づいてデューティ指令値(あるいは比較値)を生成し、そのデューティ指令値とキャリア波のコンペアマッチにより、上記のPWM信号を生成する。このため、インバータ22のスイッチング周波数fswは、PWM変換部21が用いるキャリア波の周波数(以下、キャリア周波数という)によって変化する。そして、PWM変換部21は、モータ10の温度やモータ10に印加する電圧のノルム等に応じて、キャリア波を変更することがある。このとき、モータ10に要求された駆動状態(トルクや回転速度)が変わらなくても、インバータ22のスイッチング周波数fswが変化する。また、PWM変換部21は、モータ10の回転(例えば電気角θre)に依存したキャリア波を用いる等、キャリア周波数を実質的に連続的に変化させる場合がある。この場合、インバータ22のスイッチング周波数fswも実質的に連続的に変化する。
【0034】
インバータ22は、PWM変換部21から入力されるPWM信号に基づいてスイッチング素子を駆動することにより、電源12の直流電圧Vdcを交流電圧vu,vv,vwに変換して、モータ10に供給する。スイッチング素子は、例えば絶縁ゲート型バイポーラトランジスタ(IGBT)等である。
【0035】
本実施形態では、モータ10は前述のようにオープン巻線型であるため、インバータ22は、第1インバータ22Rは、各相の巻線11の一端に接続される第1インバータ22Rと、各相の巻線の他端に接続される第2インバータ22Lと、によって構成される。上記のPWM信号のうち、Duru
*,Durl
*,Dvru
*,Dvrl
*,Dwru
*,Dwrl
*は第1インバータ22Rのスイッチング素子に対する駆動信号であり、Dulu
*,Dull
*,Dvlu
*,Dvll
*,Dwlu
*,Dwll
*は第2インバータ22Lのスイッチング素子に対する駆動信号である。
【0036】
各相の巻線11には、第1インバータ22Rが印加しようとする電圧と、これとは逆向きに第2インバータ22Lが印加しようとする電圧と、のバランスによって電流が流れる。このとき、各インバータ22R,22Lが供給しようとする平均電力の差に応じて、各相に共通に流れ、モータ10の駆動に寄与しない電流成分である零相電流(零軸電流)izが生じる。制御装置100では、零相電流指令値iz
*にしたがって積極的に零相電流iz′を流そうとすることで、予め零相電流izが抑制(相殺)される。
【0037】
制御装置100は、上記各部で用いるパラメータを取得するために、電流センサ23、A/D変換器24、座標変換部25、磁極位置検出器26、パルスカウンタ27、角速度演算部28、及び、先読み補償部29を備える。
【0038】
電流センサ23は、インバータ22からモータ10に供給する三相交流電流iu,iv,iwを検出する。検出された三相交流電流iu,iv,iwは、A/D変換器24でデジタル信号に変換される。A/D変換器24は、デジタル化した三相交流電流ius,ivs,iwsを座標変換部25に出力する。
【0039】
座標変換部25は、三相交流座標系からdqz軸座標系への座標変換により、三相交流電流ius,ivs,iwsと、電気角θreと、に基づいて、dq軸電流id,iq及び零相電流izを演算する。具体的には、座標変換部25は、下記の式(2)にしたがって、dq軸電流id,iq及び零相電流izを演算する。
【0040】
【0041】
式(2)から分かるとおり、零相電流izは、三相交流電流iu,iv,iwの和を用いて表される。一般に、零相電流izは、モータ10(巻線11)の相数をnwとすれば、相数nwの奇数倍(1倍,3倍,5倍,…)の次数の高調波として現れる。そして、三相交流電流iu,iv,iwを基本波とすれば、モータ10で生じる零相電流izは3次高調波成分(1nw次の高調波)が主成分である。
【0042】
磁極位置検出器26は、モータ10の回転子の位置(角度)に応じたA相,B相,Z相のパルスを出力する。パルスカウンタ27は、磁極位置検出器26が出力するパルスを用いて、モータ10の電気角θreを演算する。
【0043】
角速度演算部28は、電気角θreに基づいて、電気角速度ωre、及び、機械角速度ωrmを演算する。角速度演算部28は、電気角θreの時間変化率を演算することにより、電気角速度ωreを求める。また、角速度演算部28は、電気角速度ωreをモータ10の極対数pで除算することによって機械角速度ωrmを演算する。
【0044】
先読み補償部29は、電気角θreに先読み補償処理を施すことにより、先読み補償後の電気角θre′を演算する。具体的には、先読み補償部29は、電気角θreに、上記制御系が持つむだ時間と電気角速度ωreの乗算値を加算することにより、先読み補償後の電気角θre′を演算する。
【0045】
図2は、零相電流補正部17の構成を示すブロック図である。
図2に示すように、零相電流補正部17は、制御定数演算部31、補正指令値演算部32、補正実行判定部33、及び、最終補正指令値演算部34を備える。
【0046】
制御定数演算部31は、dq軸電流指令値id
*,iq
*、機械角速度ωrm、及び、スイッチング周波数fswを入力として重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算する。換言すれば、制御定数演算部31は、スイッチング周波数fswが変化したことによる零相電流izの変化分を補正するための重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算する。すなわち、重畳零相電圧振幅Az及び重畳零相電圧位相Dzは、零相電流指令値iz
*にしたがって零相電流iz′を流してもなお残留(出現)する零相電流izの振幅及び位相を補正するための補正量を表す。
【0047】
具体的には、制御定数演算部31は、制御定数マップ35を参照することにより、dq軸電流指令値id
*,iq
*、機械角速度ωrm、及び、スイッチング周波数fswに対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算する。
【0048】
制御定数マップ35は、dq軸電流指令値id
*,iq
*及び機械角速度ωrmによって定まるモータ10の駆動状態(いわゆる動作点)ごとに、かつ、スイッチング周波数fswごとに、重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を格納している。制御定数マップ35は、例えば、振幅マップfkと位相マップgkによって構成される。
【0049】
振幅マップfkは、dq軸電流指令値id
*,iq
*、機械角速度ωrm、及び、スイッチング周波数fswと、重畳零相電圧振幅Azと、を実験またはシミュレーション等によって予め対応付けたマップである。添字kは、奇数(k=1,3,5,…)であり、高調波の次数を指定する指標である。すなわち、振幅マップfkは、相数nwのk倍の次数を有する高調波成分(k×nw次の高調波成分)について、その変化分に対応する重畳零相電圧振幅Azkを求めるためのマップである。本実施形態では、相数nwは3であるため、例えば、k=1の振幅マップf1は、零相電流izの3次高調波について、変化分に対応する重畳零相電圧振幅Az1を求めるためのマップである。
【0050】
位相マップgkは、dq軸電流指令値id
*,iq
*、機械角速度ωrm、及び、スイッチング周波数fswと、重畳零相電圧位相Dzと、を実験またはシミュレーション等によって予め対応付けたマップである。添字kは、前述と同様であり、位相マップgkは、k×nw次の高調波成分について、その変化分に対応する重畳零相電圧位相Dzkを求めるためのマップである。本実施形態では、例えば、k=1の位相マップgkは、3次高調波成分について、その変化分に対応する重畳零相電圧位相Dz1を求めるためのマップである。
【0051】
k×nw次高調波成分についての重畳零相電圧振幅Azk及び重畳零相電圧位相Dzkは、下記の式(3)で表される。本実施形態では、特に高調波の次数を区別する必要がないときには、重畳零相電圧振幅Azk及び重畳零相電圧位相Dzk等の添字kは省略する場合がある。なお、スイッチング周波数fswに応じて設定される制御定数マップ35の内容については、詳細を後述する。
【0052】
【0053】
補正指令値演算部32は、電気角θreと、電気角速度ωreと、重畳零相電圧振幅Az及び重畳零相電圧位相Dzと、に基づいて、第1零相電圧指令値vz1
*に対する補正指令値vz-s1
*を演算する。本実施形態では、補正指令値演算部32は、電気角θreとして、先読み補償後の電気角θre′を用いる。また、本実施形態では、補正指令値vz-s1
*は、重畳零相電圧振幅Az及び重畳零相電圧位相Dzの電流成分を抑制するためにモータ10に印加すべき電圧を表す。具体的には、補正指令値vz-s1
*は、下記の式(4)で表される。なお、前述のとおり、kは奇数(k=1,3,5,…)である。但し、全ての次数の高調波を考慮しなければならないわけではなく、特定の次数について、例えば零相電流izの主成分である3次高調波成分について、補正指令値vz-s1
*を演算することができる。本実施形態では、簡単のため、下記の式(5)に示すように、k=1,nw=3で表される3次高調波成分について、補正指令値vz-s1
*を演算するものとする。
【0054】
【0055】
補正実行判定部33は、第1零相電圧指令値vz1
*に対する補正を実行するか否かを判定する。モータ10は、通常、高回転の動作点で駆動されほど誘起電圧が高くなるので、インバータ22のスイッチングによって生じる外乱電圧は、モータ10を駆動するための電圧(指令電圧)に対して相対的に小さくなる。このため、インバータ22のスイッチングによって生じる零相電流izの特性の変化は、モータ10が高回転で駆動されるほど影響が小さくなる。したがって、モータ10が高回転で駆動されるときには、第1零相電圧指令値vz1
*を補正する必要性が低下する。このことから、補正実行判定部33は、モータ10の回転速度に応じて第1零相電圧指令値vz1
*に対する補正をどの程度実行するか否かを判定する。そして、補正実行判定部33は、第1零相電圧指令値vz1
*に対する補正の必要性に応じて、補正指令値vz-s
*を低減させる。
【0056】
本実施形態では、補正実行判定部33は、機械角速度ωrmに基づいて第1零相電圧指令値vz1
*に対する補正を実行するか否かを判定する。そして、補正実行判定部33は、判定結果に応じて、第1零相電圧指令値vz1
*に対する補正の程度を調節するためのゲイン(以下、補正ゲインKcという)を設定する。補正ゲインKcは、例えば機械角速度ωrmに応じて、実験またはシミュレーション等によって予め定められる。
【0057】
より具体的には、補正実行判定部33は、機械角速度ωrmを予め定める閾値(基準機械角速度)と比較する。そして、補正実行判定部33は、機械角速度ωrmが閾値以下であるときには、補正ゲインKcを予め定める基準値(例えば「1」)に設定する。また、機械角速度ωrmが閾値よりも大きいときには、補正実行判定部33は、補正ゲインKcを基準値よりも低減した値に設定する。補正実行判定部33は、補正ゲインKcを「0」に設定することにより、第1零相電圧指令値vz1
*に対する補正を停止させる場合がある。また、補正実行判定部33は、補正ゲインKcを「0」に設定するときには、零相電流補正部17における演算を停止させることができる。
【0058】
なお、補正実行判定部33は、機械角速度ωrm以外であっても、モータ10の駆動状態(動作点)を表すパラメータを用いて、第1零相電圧指令値vz1
*に対する補正を実行するか否かを判定することができる。例えば、補正実行判定部33は、モータ10の回転速度を表す他のパラメータを用いて、第1零相電圧指令値vz1
*に対する補正を実行するか否かを判定することができる。この場合、補正実行判定部33は、モータ10の回転速度が予め定める基準回転速度(閾値)よりも大きいときに、補正ゲインKcを低減する。また、補正実行判定部33は、モータ10に対して駆動のために指令する電圧のノルム(以下、指令電圧ノルムという)に基づいて、第1零相電圧指令値vz1
*に対する補正を実行するか否かを判定してもよい。この場合、補正実行判定部33は、指令電圧ノルムが予め定める基準電圧ノルム(閾値)よりも大きくなったときに、補正ゲインKcを低減する。指令電圧ノルムは、例えば、dq軸電流指令値id
*,iq
*によって演算可能である。すなわち、補正実行判定部33は、モータ10の駆動状態(動作点)に応じて、第1零相電圧指令値vz1
*に対する補正を実行するか否かを判定し、補正ゲインKcを変更することができる。
【0059】
最終補正指令値演算部34は、補正指令値演算部32が演算した補正指令値vz-s1
*に、補正実行判定部33が設定した補正ゲインKcを乗算することにより、第2電圧指令値演算部16で用いる最終的な補正指令値vz-s
*を演算する。
【0060】
<制御定数マップ>
以下、制御定数マップ35が定める重畳零相電圧振幅Az及び重畳零相電圧位相Dzについて説明する。
【0061】
図3は、零相電流i
zの特性を示す説明図である。
図3では、スイッチング周波数f
swが第1周波数f
1であるときの零相電流i
z(f
1)と、スイッチング周波数f
swが第2周波数f
2に変化したときの零相電流i
z(f
2)と、を複素数平面上に示している。第1周波数f
1は、モータ10を駆動するときに通常に用いるスイッチング周波数f
swであり、第2周波数f
2は、モータ10が高温になった場合等やモータ10が予め定めた特定の駆動状態に至ったときに用いられるスイッチング周波数f
swである。
【0062】
図3では、零相電流指令値i
z
*(カウンターとなる零相電流i
z′)で抑制していない場合の零相電流i
zを示している。
図3では、各零相電流i
z(f
1),i
z(f
2)について、それぞれ振幅が異なる4種類の軌道を同心楕円で示している。これらの中心P
f1,P
f2はいわゆるフェーザ表示における零相電流i
z(f
1),i
z(f
2)を表す。すなわち、中心P
f1,P
f2の偏角は、フェーザ表示における零相電流i
z(f
1),i
z(f
2)の位相を表し、中心P
f1,P
f2の原点Oからの距離は、フェーザ表示における零相電流i
z(f
1),i
z(f
2)の振幅を表す。
【0063】
図3に示すように、モータ10を駆動することによって生じる零相電流i
zは複素数平面において円または楕円の軌道で表される。また、零相電流指令値i
z
*は、スイッチング周波数f
swに依らず、モータ10の駆動状態に応じて定められるので、実質的に、スイッチング周波数f
swが第1周波数f
1である場合の零相電流i
z(f
1)を抑制するように決定される。すなわち、零相電流指令値i
z
*にしたがって零相電流i
z′を流すことは、複素数平面において零相電流i
z(f
1)の中心P
f1を原点Oにシフトさせるように、零相電流i
zを補償することに相当する。
【0064】
一方、スイッチング周波数fswが通常の第1周波数f1から第2周波数f2に変化すると、零相電流izは複素数平面上での位置が変化し、零相電流iz(f2)の中心Pf2は、零相電流iz(f1)の中心Pf1からずれた位置にシフトする。すなわち、スイッチング周波数fswの変化は、零相電流izの特性を変化させる外乱として作用する。このため、零相電流iz(f2)に対して零相電流指令値iz
*にしたがった補償を行っても、零相電流iz(f2)の中心Pf2は、原点Oからずれた位置にシフトされる。すなわち、零相電流iz(f2)に対して零相電流指令値iz
*にしたがった補償を行っても、複素数平面における中心Pf1から中心Pf2への変位分に相当する零相電流izがなお残留する。
【0065】
図4及び
図5は、制御定数マップ35の性質を示すための説明図である。
図4では、スイッチング周波数f
swの変化によって、零相電流i
zの原点Oからの距離が変化した例を示す。
図5では、スイッチング周波数fswの変化によって、零相電流i
zの偏角が変化した例を示す。
【0066】
図4に示すように、スイッチング周波数f
swが第1周波数f
1から第2周波数f
2に変化したときに、中心P
f1及び中心P
f2の偏角は変わらず、原点Oからの距離が変化したとする。この場合、零相電流i
z(f
2)に対して零相電流指令値i
z
*にしたがった補償を行っても、中心P
f2は、中心P
f1と中心P
f2の距離の分だけ、原点Oから離れた位置にシフトする。このため、制御定数マップ35は、振幅マップf
kにおいて、中心P
f1と中心P
f2の距離を、スイッチング周波数f
swが第2周波数f
2であるときに対応する重畳零相電圧振幅A
zとして格納する。なお、
図4では、中心P
f1及び中心P
f2の偏角は変わらないので、零相電流指令値i
z
*にしたがった補償により、零相電流i
z(f
2)の位相は適切に補償される。このため、位相マップg
kにおいて、スイッチング周波数f
swが第2周波数f
2であるときに対応する重畳零相電圧位相D
zはゼロである。
【0067】
図5に示すように、スイッチング周波数f
swが第1周波数f
1から第2周波数f
2に変化したときに、中心P
f1,P
f2の原点Oからの距離は変わらず、偏角が変化したとする。この場合、零相電流i
z(f
2)に対して零相電流指令値i
z
*にしたがった補償を行っても、中心P
f2は、中心P
f1と中心P
f2の偏角の相違分だけ、原点Oに対して回転した位置にシフトする。このため、制御定数マップ35は、位相マップg
kにおいて、中心P
f1と中心P
f2の偏角の相違分を、スイッチング周波数f
swが第2周波数f
2であるときに対応する重畳零相電圧位相D
zとして格納する。なお、
図5では、中心P
f1及び中心P
f2の原点Oからの距離は変わらないので、零相電流指令値i
z
*にしたがった補償により、零相電流i
z(f
2)の振幅は適切に補償される。このため、振幅マップf
kにおいて、スイッチング周波数f
swが第2周波数f
2であるときに対応する重畳零相電圧振幅A
zはゼロである。
【0068】
なお、スイッチング周波数fswが第1周波数f1から第2周波数f2に変化した場合、零相電流izは、通常、振幅及び位相が両方とも変化する。このため、制御定数マップ35は、通常、零相電流指令値iz
*にしたがった補償後に残留する零相電流izについて、重畳零相電圧振幅Az及び重畳零相電圧位相Dzの両方を設定する。
【0069】
<作用>
以下、上記のように構成される制御装置100の作用を説明する。
【0070】
図6は、オープン巻線型モータ(モータ10)の制御に係るフローチャートである。
図6に示すように、ステップS10では、三相交流電流i
us,i
vs,i
ws及び電気角θ
reが取得される。ステップS11では、角速度演算部28が、電気角θ
reに基づいて、電気角速度ω
re及び機械角速度ω
rmを演算する。ステップS12では、先読み補償部29が、先読み補償後の電気角θ
re′を演算する。
【0071】
ステップS13では、電流指令値演算部13がトルク指令値T*及び直流電圧Vdcに基づいて、dq軸電流指令値id
*,iq
*及び零相電流指令値iz
*を演算する。ステップS14では、電流制御部14が、dq軸電流指令値id
*,iq
*及び零相電流指令値iz
*と、実際のdq軸電流id,iq及び零相電流izと、に基づいて、第1dq軸電圧指令値vd1
*,vq1
*及び第1零相電圧指令値vz1
*を演算する。ステップS15では、非干渉制御部15が、電気角速度ωre、電気角θre、及び、dq軸電流指令値id
*,iq
*に基づいて、dq軸非干渉化電圧vd-dcpl,vq-dcplを演算する。
【0072】
そして、ステップS16では、零相電流補正部17が、インバータ22のスイッチング周波数fsw等に基づいて、第1零相電圧指令値vz1
*に対する補正指令値vz-s
*を演算する。このとき、零相電流補正部17は、零相電流指令値iz
*によって零相電流izを補償してもなお残留する電流成分について、対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算する。そして、演算した重畳零相電圧振幅Az及び重畳零相電圧位相Dzに基づいて、補正指令値vz-s
*を演算する。
【0073】
ステップS17では、第2電圧指令値演算部16が、第1dq軸電圧指令値vd1
*,vq1
*にdq軸非干渉化電圧vd-dcpl,vq-dcplを加算することにより、第2dq軸電圧指令値vd2
*,vq2
*を演算する。また、ステップS17では、第2電圧指令値演算部16が、第1零相電圧指令値vz1
*に補正指令値vz-s
*を加算することにより、第2零相電圧指令値vz2
*を演算する。ステップS18では、外乱補償部19が、d軸外乱推定値vd-dist、q軸外乱推定値vq-dist、及び、零相外乱推定値vz-distを演算する。ステップS19では、最終電圧指令値演算部18が、第2dq軸電圧指令値vd2
*,vq2
*にd軸外乱推定値vd-dist及びq軸外乱推定値vq-distをそれぞれ加算することにより、最終dq軸電圧指令値vd
*,vq
*を演算するまた、ステップS18では、最終電圧指令値演算部18が、第2零相電圧指令値vz2
*に対して零相外乱推定値vz-distを加算することにより、最終零相電圧指令値vz
*を演算する。ステップS20では、座標変換部25が、座標変換により、最終dq軸電圧指令値vd2
*,vq2
*及び最終零相電圧指令値vz
*を、UVW各相の電圧指令値vu
*,vv
*,vw
*を演算する。
【0074】
その後、PWM変換部21がこの電圧指令値vu
*,vv
*,vw
*に基づくPWM信号を生成し、インバータ22に入力することで、モータ10が駆動される。このとき零相電流izが流れるが、制御装置100は、零相電流指令値iz
*にしたがって零相電流izを抑制する電流(iz′)を零相に流すので、零相電流izが抑制される。但し、零相電流指令値iz
*にしたがって零相電流izを抑制する電流(iz′)を零相に流す場合、インバータ22のスイッチング周波数fswが変化したときに、零相電流izの特性が変化するので、十分に零相電流izが抑制されないことがある。このため、上記のように、制御装置100は、零相電流指令値iz
*にしたがった補償後になお残留する電流成分に対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算し、その重畳零相電圧振幅Az及び重畳零相電圧位相Dzに基づいて、残留する電流成分をも抑制するように零相電流iz′を補正する。このため、スイッチング周波数fswが変化した場合でも、零相電流izは十分に抑制される。
【0075】
図7は、零相電流i
zの変動幅を示すグラフである。
図7(A)は、比較例における零相電流i
zの変動幅を示すグラフである。比較例は、零相電流指令値i
z
*にしたがって零相電流i
zを抑制する電流(i
z′)に対して、スイッチング周波数f
swに応じた補正を行わない例である。
図7(B)は、本実施形態による零相電流i
zの変動幅を示すグラフである。すなわち、零相電流指令値i
z
*にしたがって零相電流i
zを抑制する電流(i
z′)を流すときに、スイッチング周波数f
swに応じた補正を行った例である。
【0076】
図7(A)に実線で示すように、比較例では、スイッチング周波数f
swが通常用いる第1周波数f
1であるときの零相電流i
zの変動幅は、幅W
z-f1の程度に抑えられる。しかし、
図7(A)に破線で示すように、比較例では、スイッチング周波数f
swが第2周波数f
2に変化すると、零相電流i
zの変動幅は幅W
z-f2の程度に増大する。すなわち、スイッチング周波数f
swの変化によって生じる零相電流i
zの特性の変化は、スイッチング周波数f
swに依らずに決定される零相電流指令値i
z
*を用いた補償では、十分に抑制できない。
【0077】
一方、
図7(B)に示すように、本実施形態では、スイッチング周波数f
swが第2周波数f
2に変化した場合、零相電流i
zの変動幅は、比較例における幅W
z-f2よりも小さい幅W
z-f2′の程度に抑制される。また、
図7(A)と比較すれば明らかなように、幅W
z-f2′は、スイッチング周波数f
swが第1周波数f
1であるときの零相電流i
zの変動幅(幅W
z-f1)と同程度である。すなわち、本実施形態によれば、スイッチング周波数f
swが変化した場合でも、零相電流i
zは十分に抑制される。なお、図示を省略するが、本実施形態においても、スイッチング周波数f
swが第1周波数f
1であるときの零相電流i
z及びその変動幅(幅W
z-f1)は、
図7の実線と同様である。
【0078】
なお、上記第1実施形態では、第1零相電圧指令値vz1
*に対して補正指令値vz-s
*を用いた補正を行っているが、これに限らない。制御装置100は、零相電流指令値iz
*に対して同様の補正を行うように構成することができる。この場合、零相電流補正部17は、零相電流指令値iz
*に加算(重畳)する補正指令値iz-s
*(図示しない)を演算するように構成する。このように、零相電流指令値iz
*を補正する場合も、スイッチング周波数fswが変化したときに、零相電流izが十分に抑制され得る。すなわち、スイッチング周波数fswの変化によって生じる零相電流izを抑制するための補正は、敢えて流す零相電流iz′を指令する電流または電圧の指令値(零相指令値)に対して行うことができる。
【0079】
また、上記第1実施形態では、スイッチング周波数fswの変化によって生じる零相電流izの変化分に対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを両方とも推定し、これらに基づいて補正指令値vz-s
*を演算しているが、これに限らない。スイッチング周波数fswの変化によって生じる零相電流izの変化分に対応する重畳零相電圧振幅Azまたは重畳零相電圧位相Dzのいずれか一方のみを推定し、推定した重畳零相電圧振幅Azまたは重畳零相電圧位相Dzに基づいて、補正指令値vz-s
*を演算してもよい。この場合も、スイッチング周波数fswが変化したときに生じる零相電流izは抑制され得る。但し、重畳零相電圧振幅Azまたは重畳零相電圧位相Dzのいずれか一方のみを推定するときには、重畳零相電圧振幅Azを推定し、推定した重畳零相電圧振幅Azに基づいて補正指令値vz-s
*を演算する方が、簡便かつ零相電流izの抑制効果が高いことが多い。もちろん、上記第1実施形態では、スイッチング周波数fswの変化によって生じる零相電流izを補正する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを両方とも推定することが最も好ましい。
【0080】
[第2実施形態]
上記第1実施形態では、制御定数マップ35がスイッチング周波数fswに応じた重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を有していることを前提としている。しかし、前述のとおり、スイッチング周波数fswを実質的に連続的に変化させることがあるので、あらゆるスイッチング周波数fswについて、重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を予め定めておくことが現実的でない場合がある。以下、第2実施形態においては、制御定数マップ35が使用するスイッチング周波数fswに対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を有しないときに、スイッチング周波数fswに応じて生じる零相電流izを抑制する構成について説明する。なお、第1実施形態と同じ構成については説明を省略する。
【0081】
図8は、第2実施形態に係る零相電流補正部17の構成を示すブロック図である。
図8に示すように、第2実施形態の零相電流補正部17では、補間部41を備える。また、制御定数マップ35は、スイッチング周波数f
swに対応する重畳零相電圧振幅A
z及び重畳零相電圧位相D
zのデータを有しないときに、そのスイッチング周波数f
swに近いスイッチング周波数f
swに対応する重畳零相電圧振幅A
z及び重畳零相電圧位相D
zを出力する。例えば、ここでは、要求されたスイッチング周波数f
swの近傍のスイッチング周波数f
swに対応する重畳零相電圧振幅a
1,a
2及び重畳零相電圧位相d
1,d
2を出力するものとする。
【0082】
補間部41は、要求されたスイッチング周波数fswに近いスイッチング周波数fswに対応する重畳零相電圧振幅a1,a2及び重畳零相電圧位相d1,d2の値を補間することにより、要求されたスイッチング周波数fswに対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算する。
【0083】
図9は、制御定数マップ35が有する値と補間の例を示す説明図である。
図9に示すように、インバータ22のスイッチング周波数f
swがある周波数f
xであり、振幅マップfkがこの周波数f
xに対応する重畳零相電圧振幅a
xのデータを有しないとする。この場合、振幅マップf
kは、例えば、周波数f
xの近傍の周波数f
1,f
2とその周波数f
1,f
2に対応する重畳零相電圧振幅a
1,a
2を出力する。そして、破線で示すように、補間部41は、点(f
1,a
1)と点(f
2,a
2)の間を補間するとともに、周波数f
1,f
2と周波数f
xの関係に基づいて、周波数f
xに対応する重畳零相電圧振幅a
xを演算する。ここでは、重畳零相電圧振幅A
zについて説明したが、重畳零相電圧位相D
zについても同様である。
【0084】
このように、制御定数マップ35がインバータ22で使用するスイッチング周波数fswに対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を有しないときに、補間により、そのスイッチング周波数fswに対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算する構成とすれば、あらゆるスイッチング周波数fswについて重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を予め定めておく必要がない。このため、スイッチング周波数fswを実質的に連続的に変化させる場合等においても、スイッチング周波数fswによって生じる零相電流izが十分に抑制され得る。
【0085】
[第3実施形態]
上記第2実施形態では、あらゆるスイッチング周波数fswについて、重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を予め定めておくことが現実的でないとしても、制御定数マップ35が、複数のスイッチング周波数fswについて重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を有している。しかし、制御定数マップ35が、特定の1つのスイッチング周波数fswについてだけ重畳零相電圧振幅Az及び重畳零相電圧位相Dzの値を有している場合でも、上記第1実施形態または第2実施形態と同様に、スイッチング周波数fswによって生じる零相電流izを抑制することができる。以下、第3実施形態においては、制御定数マップ35がある特定のスイッチング周波数(以下、基準周波数f0という)についてのみ、対応する重畳零相電圧振幅Az′及び重畳零相電圧位相Dz′の値を有しているときに、任意のスイッチング周波数fswに応じて生じる零相電流izを抑制する構成について説明する。なお、第1実施形態または第2実施形態と同じ構成については説明を省略する。
【0086】
図10は、第3実施形態に係る零相電流補正部17の構成を示すブロック図である。
図10に示すように、第3実施形態の零相電流補正部17は、制御定数補正部42を備える。また、制御定数マップ35は、基準周波数f
0について重畳零相電圧振幅A
z′及び重畳零相電圧位相D
z′の値を有している。このため、第3実施形態では、制御定数マップ35は、実際のスイッチング周波数f
swに依らず、dq軸電流指令値i
d
*,i
q
*及び機械角速度ω
rmに応じた重畳零相電圧振幅A
z′及び重畳零相電圧位相D
z′を出力する。すなわち、重畳零相電圧振幅A
z′及び重畳零相電圧位相D
z′は、dq軸電流指令値i
d
*,i
q
*及び機械角速度ω
rmで指定されるモータ10の動作状態によって変化するが、スイッチング周波数f
swが基準周波数f
0である場合の重畳零相電圧振幅A
z及び重畳零相電圧位相D
zである。
【0087】
制御定数補正部42は、スイッチング周波数fswが基準周波数f0であるときの重畳零相電圧振幅Az′及び重畳零相電圧位相Dz′を基準値とし、基準周波数f0及び実際のスイッチング周波数fswに基づいて補正することにより、実際のスイッチング周波数fswに対応する重畳零相電圧振幅Az及び重畳零相電圧位相Dzを演算する。
【0088】
図11は、制御定数補正部42による補正方法を示す説明図である。
図11に示すように、実際のスイッチング周波数f
swが、基準周波数f
0とは異なる周波数f
xであるとする。この場合、制御定数補正部42は、基準周波数f
0と実際の周波数f
xとの差Δfに応じて、制御定数マップ35が出力する重畳零相電圧振幅A
z′に対する補正量ΔA
zを決定する。具体的には、制御定数補正部42は、基準周波数f
0と実際の周波数f
xとの差Δfが大きいほど、補正量ΔA
zを大きくする。そして、制御定数補正部42は、基準周波数f
0に対応する重畳零相電圧振幅A
z′に補正量ΔA
zを加算することにより、実際の周波数f
xに対応する重畳零相電圧振幅A
zを演算する。ここでは、重畳零相電圧振幅A
zについて説明したが、重畳零相電圧位相D
zについても同様である。
【0089】
このように、基準周波数f0と実際の周波数fxとの差Δfに応じて大きくなる補正量(ΔAz)を用いれば、制御定数マップ35が基準周波数f0についてだけ重畳零相電圧振幅Az′及び重畳零相電圧位相Dz′の値を有している場合でも、任意のスイッチング周波数fswに応じて生じる零相電流izを概ね良好に抑制することができる。
【0090】
以上のように、上記第1実施形態、第2実施形態、及び、変形例(以下、上記実施形態等という)に係るオープン巻線型モータの制御方法は、固定子として独立した複数相の巻線11を有し、インバータ22によって各相の巻線11に電力を供給することによって駆動するオープン巻線型モータ(10)の制御方法である。この制御方法では、オープン巻線型モータ(10)を駆動するときに各相の巻線11に共通に流れる零相電流izを抑制する零相指令値(iz
*またはvz1
*)を演算し、インバータ22のスイッチング周波数fswに基づいて零相指令値(iz
*またはvz1
*)を補正し、補正後の零相指令値(vz
*)を用いて零相電流izを制御する。
【0091】
原則としては、零相指令値(iz
*またはvz1
*)を設定すれば零相電流izを概ね抑制することができるが、スイッチング周波数fswが変化したときには、零相電流izの特性が変化するので、零相電流izが十分に抑制されない場合がある。このため、上記のように、スイッチング周波数fswに基づいて零相指令値(iz
*またはvz1
*)を補正すれば、スイッチング周波数fswが変化したときでも、零相電流izを十分に抑制することができる。
【0092】
上記実施形態等においては、特に、スイッチング周波数fswに応じて零相電流izに生じる成分に応じた振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)を推定し、推定した振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)に基づいて、零相指令値(iz
*またはvz1
*)に対する補正指令値(iz-s
*またはvz-s
*)を演算し、この補正指令値(iz-s
*またはvz-s
*)によって零相指令値(iz
*またはvz1
*)を補正する。
【0093】
このように、スイッチング周波数fswに応じて零相電流izに生じる成分に応じた振幅(Az)や位相(Dz)を推定し、これに応じて零相指令値(iz
*またはvz1
*)を補正すれば、スイッチング周波数fswが変化したときでも、特に正確に零相電流izを抑制することができる。
【0094】
上記実施形態等においては、零相指令値(iz
*またはvz1
*)は、オープン巻線型モータ(10)の相数nwの奇数倍の次数(k×nw)を有する高調波を抑制する。
【0095】
零相電流izは、主にk×nw次の高調波として表れるので、これを抑制するように零相指令値(iz
*またはvz1
*)を設定すれば、特に良好に零相電流izを抑制できる。
【0096】
上記実施形態等(特に第2実施形態)においては、複数のスイッチング周波数fswについて、各々のスイッチング周波数fswと、振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)と、を予め対応付けたマップ(35)を参照することにより、スイッチング周波数fswに対応する振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)の値を演算し、マップ(35)が実際のスイッチング周波数fswに対応する値を有しないときには、マップ(35)を補間することにより、実際のスイッチング周波数fswに対応する振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)の値を演算する。
【0097】
このように、制御定数マップ35が、実際のスイッチング周波数fswに対応する振幅(Az)及び位相(Dz)を有しないときには、制御定数マップ35を補間すれば、実質的に任意のスイッチング周波数fswについて、対応する振幅(Az)及び位相(Dz)を求めることができる。したがって、制御定数マップ35を補間する構成とすれば、スイッチング周波数fswがどのように変化しても(例えば連続的に変化しても)、零相電流izを十分に抑制することができる。
【0098】
上記実施形態等(特に第3実施形態)においては、基準とするスイッチング周波数fswである基準スイッチング周波数(f0)と、振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)と、を予め対応付けたマップ(35)を参照することにより、スイッチング周波数fswに対応する振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)の基準値(Az′,Dz′)を演算し、実際のスイッチング周波数fswが基準スイッチング周波数(f0)と異なるときには、実際のスイッチング周波数fswと基準スイッチング周波数(f0)の差(Δf)と、基準値(Az′,Dz′)と、に基づいて、実際のスイッチング周波数fswに対応する振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)を演算する。
【0099】
このように、制御定数マップ35が基準スイッチング周波数(f0)についてのみ振幅(Az)及び位相(Dz)の値を有している場合でも、実際のスイッチング周波数fsw(fx)と基準スイッチング周波数(f0)の差Δfに基づいて、実際のスイッチング周波数fswに対応する振幅(Az)等を演算すれば、実質的に任意のスイッチング周波数fswに対応する振幅(Az)等を求めることができる。その結果、任意のスイッチング周波数fswについて、零相電流izを十分に抑制することができる。
【0100】
上記実施形態等(特に第3実施形態)においては、差(Δf)に応じて基準値(Az′,Dz′)を補正することにより、実際のスイッチング周波数fswに対応する振幅(Az)、位相(Dz)、または、振幅(Az)及び位相(Dz)を演算し、差(Δf)が大きいほど、基準値(Az′,Dz′)に対する補正量を大きくする。
【0101】
スイッチング周波数fswによって生じる零相電流izの変化に対応する振幅(Az)及び位相(Dz)は、スイッチング周波数fswに応じて単純に増加または減少する傾向にある。このため、上記のように、実際のスイッチング周波数fsw(fx)と基準スイッチング周波数(f0)の差Δfが大きいほど、基準スイッチング周波数(f0)に対応する振幅(Az)等に対する補正量を大きくすれば、実際のスイッチング周波数fswに対応する振幅(Az)及び位相(Dz)を概ね正しく求めることができる。このため、制御定数マップ35が基準スイッチング周波数(f0)についてのみ振幅(Az)及び位相(Dz)の値を有している場合でも、任意のスイッチング周波数fswについて、零相電流izを十分に抑制することができる。
【0102】
上記実施形態等においては、零相指令値(iz
*またはvz1
*)の補正に対して補正ゲインKcを設定し、オープン巻線型モータ(10)の駆動状態に応じて補正ゲインKcを変更する。
【0103】
モータ10の駆動状態(動作点)によっては、スイッチング周波数fswによって生じる零相電流izが小さくなり、実質的に零相指令値(iz
*またはvz1
*)の補正が必要でなくなる場合がある。また、これとは逆に、モータ10の駆動状態(動作点)によっては、モータ10に流れる電流(例えばid,iq)と比較して、スイッチング周波数fswによって生じる零相電流izが相対的に大きくなり、零相指令値(iz
*またはvz1
*)の補正が強く要求される場合がある。このため、上記のように、零相指令値(iz
*またはvz1
*)の補正について、補正ゲインKcを設定すれば、本質的に補正が必要なシーンにおいて、的確にスイッチング周波数fswによって生じる零相電流izを抑制することができる。なお、補正ゲインKcを「0」に設定するときに、零相電流補正部17における演算を停止させれば、実質的に補正が必要でなくなるシーンにおいて、演算負荷を低減することができる。
【0104】
上記実施形態等においては、特に、回転速度(ωrm)が基準回転速度よりも大きいとき、または、オープン巻線型モータ(10)に印加する電圧のノルムが基準電圧ノルムよりも大きくなったときに、補正ゲインKcを低減する。
【0105】
回転速度(ωrm)が基準回転速度よりも大きいシーンや、オープン巻線型モータ(10)に印加する電圧のノルムが基準電圧ノルムよりも大きいシーンは、実質的に零相指令値(iz
*またはvz1
*)の補正が必要でなくなるシーンの典型例である。このため、上記のように、回転速度(ωrm)が基準回転速度よりも大きいとき、または、オープン巻線型モータ(10)に印加する電圧のノルムが基準電圧ノルムよりも大きくなったときに、補正ゲインKcを低減することにより、本質的に補正が必要なシーンにおいて、的確にスイッチング周波数fswによって生じる零相電流izを抑制することができる。
【0106】
上記実施形態等に係るオープン巻線型モータの制御装置は、固定子として独立した複数相の巻線11を有し、インバータ22によって各相の巻線11に電力を供給するオープン巻線型モータ(10)の制御装置100である。この制御装置100は、オープン巻線型モータ(10)を駆動するときに各相の巻線11に共通に流れる零相電流izを抑制する零相指令値(iz
*またはvz1
*)を演算し、インバータ22のスイッチング周波数fswに基づいて零相指令値(iz
*またはvz1
*)を補正し、補正後の零相指令値(vz
*)を用いて零相電流izを制御する。
【0107】
このように、イッチング周波数fswに基づいて零相指令値(iz
*またはvz1
*)を補正すれば、スイッチング周波数fswが変化したときでも、零相電流izを十分に抑制することができる。
【0108】
以上、本発明の実施形態について説明したが、上記実施形態及び各変形例で説明した構成は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を限定する趣旨ではない。
【符号の説明】
【0109】
10:モータ(オープン巻線型モータ),11:巻線,12:電源,13:電流指令値演算部,14:電流制御部,15:非干渉制御部,16:第2電圧指令値演算部,17:零相電流補正部,18:最終電圧指令値演算部,19:外乱補償部,20:座標変換部,21:PWM変換部,22:インバータ,23:電流センサ,24:A/D変換器,25:座標変換部,26:磁極位置検出器,27:パルスカウンタ,28:角速度演算部,29:先読み補償部,31:制御定数演算部,32:補正指令値演算部,33:補正実行判定部,34:最終補正指令値演算部,35:制御定数マップ,41:補間部,42:制御定数補正部,100:制御装置