IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

<>
  • -モータ制御装置 図1
  • -モータ制御装置 図2
  • -モータ制御装置 図3
  • -モータ制御装置 図4
  • -モータ制御装置 図5
  • -モータ制御装置 図6
  • -モータ制御装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023004443
(43)【公開日】2023-01-17
(54)【発明の名称】モータ制御装置
(51)【国際特許分類】
   H02P 27/08 20060101AFI20230110BHJP
   H02M 7/48 20070101ALI20230110BHJP
【FI】
H02P27/08
H02M7/48 F ZHV
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021106096
(22)【出願日】2021-06-25
(71)【出願人】
【識別番号】300052246
【氏名又は名称】日本電産エレシス株式会社
(71)【出願人】
【識別番号】000232302
【氏名又は名称】日本電産株式会社
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100188673
【弁理士】
【氏名又は名称】成田 友紀
(74)【代理人】
【識別番号】100179833
【弁理士】
【氏名又は名称】松本 将尚
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(72)【発明者】
【氏名】小池上 貴
(72)【発明者】
【氏名】三本松 功
(72)【発明者】
【氏名】岡村 彰紘
(72)【発明者】
【氏名】福村 友博
(72)【発明者】
【氏名】片岡 耕太郎
【テーマコード(参考)】
5H505
5H770
【Fターム(参考)】
5H505AA16
5H505BB04
5H505BB10
5H505CC04
5H505DD03
5H505EE49
5H505HA10
5H505HB01
5H505JJ03
5H505LL60
5H770AA05
5H770BA02
5H770CA06
5H770DA03
5H770DA10
5H770DA41
5H770EA01
5H770EA27
(57)【要約】      (修正有)
【課題】ノイズを低減することが可能なモータ制御装置を提供する。
【解決手段】直流電源電圧を三相交流電圧に変換して三相モータに供給するインバータ回路11と、所定の更新周期で更新される三相デューティ指令値に基づいて三相PWM信号を生成し、三相PWM信号に基づいてインバータ回路を制御する制御部12と、を備える。制御部は、第1の更新タイミングで更新される三相デューティ指令値のうち少なくとも二相のデューティ指令値が同じである場合に、二相のデューティ指令値のうち一相のデューティ指令値を所定のシフト量だけシフトさせ、第2の更新タイミングで更新される三相デューティ指令値のうち一相のデューティ指令値を第1の更新タイミングにおけるシフト方向とは逆方向にシフト量だけシフトさせる。
【選択図】図1
【特許請求の範囲】
【請求項1】
三相モータを制御するモータ制御装置であって、
直流電源電圧を三相交流電圧に変換して前記三相モータに供給するインバータ回路と、
所定の更新周期で更新される三相デューティ指令値に基づいて三相PWM信号を生成し、前記三相PWM信号に基づいて前記インバータ回路を制御する制御部と、
を備え、
前記制御部は、
第1の更新タイミングで更新される前記三相デューティ指令値のうち少なくとも二相のデューティ指令値が同じである場合に、前記二相のデューティ指令値のうち一相のデューティ指令値を所定のシフト量だけシフトさせ、
前記第1の更新タイミングの次の更新タイミングである第2の更新タイミングで更新される前記三相デューティ指令値のうち前記一相のデューティ指令値を前記第1の更新タイミングにおけるシフト方向とは逆方向に前記シフト量だけシフトさせる、
モータ制御装置。
【請求項2】
前記制御部は、
前記第1の更新タイミングで更新される前記三相デューティ指令値を昇順で並び替え、
昇順で並び替えられた前記三相デューティ指令値のうち、1番目のデューティ指令値と2番目のデューティ指令値とが同じである場合に、前記1番目のデューティ指令値を低い方向に前記シフト量だけシフトさせ、
前記第2の更新タイミングで更新される前記三相デューティ指令値のうち前記1番目のデューティ指令値を高い方向に前記シフト量だけシフトさせる、
請求項1に記載のモータ制御装置。
【請求項3】
前記制御部は、
昇順で並び替えられた前記三相デューティ指令値のうち、前記2番目のデューティ指令値と3番目のデューティ指令値とが同じである場合に、前記3番目のデューティ指令値を高い方向に前記シフト量だけシフトさせ、
前記第2の更新タイミングで更新される前記三相デューティ指令値のうち前記3番目のデューティ指令値を低い方向に前記シフト量だけシフトさせる、
請求項2に記載のモータ制御装置。
【請求項4】
前記制御部は、
昇順で並び替えられた前記三相デューティ指令値の全てが同じである場合に、前記1番目のデューティ指令値を低い方向に前記シフト量だけシフトさせるとともに、前記3番目のデューティ指令値を高い方向に前記シフト量だけシフトさせ、
前記第2の更新タイミングで更新される前記三相デューティ指令値のうち前記1番目のデューティ指令値を高い方向に前記シフト量だけシフトさせるとともに、前記3番目のデューティ指令値を低い方向に前記シフト量だけシフトさせる、
請求項3に記載のモータ制御装置。
【請求項5】
前記制御部は、前記第1の更新タイミングで更新される前記三相デューティ指令値が飽和状態にある場合、前記第1の更新タイミングで更新される前記三相デューティ指令値のシフト処理を実行しない、
請求項1から4のいずれか一項に記載のモータ制御装置。
【請求項6】
前記三相モータは、
ロータと、
前記ロータの軸受け部品であるロータベアリングと、
を有する、請求項1から5のいずれか一項に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ制御装置に関する。
【背景技術】
【0002】
特許文献1には、三相モータに三相交流電圧を供給するインバータ装置において、3種類の基本電圧ベクトルを用いて三相PWM(Pulse Width Modulation)信号を生成し、三相PWM信号に基づいてインバータ装置に含まれる少なくとも6つのスイッチング素子の夫々に供給されるスイッチング信号を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第3447366号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
たとえば、三相PWM信号のうち二相のPWM信号のスイッチングタイミングが一致した瞬間に軸電圧がスパイク状に変動することがある。これがノイズの原因となる虞がある。
また別の話として、モータの出力軸とモータケースとの間の電位差(軸電圧)に起因して、モータのロータベアリングに電食が生じる場合がある。本願発明者らの研究の結果、とくに、このノイズが電食の発生に影響する虞があることが判明した。
【課題を解決するための手段】
【0005】
本発明のモータ制御装置における一つの態様は、三相モータを制御するモータ制御装置であって、直流電源電圧を三相交流電圧に変換して前記三相モータに供給するインバータ回路と、所定の更新周期で更新される三相デューティ指令値に基づいて三相PWM信号を生成し、前記三相PWM信号に基づいて前記インバータ回路を制御する制御部と、を備え、前記制御部は、第1の更新タイミングで更新される前記三相デューティ指令値のうち少なくとも二相のデューティ指令値が同じである場合に、前記二相のデューティ指令値のうち一相のデューティ指令値を所定のシフト量だけシフトさせ、前記第1の更新タイミングの次の更新タイミングである第2の更新タイミングで更新される前記三相デューティ指令値のうち前記一相のデューティ指令値を前記第1の更新タイミングにおけるシフト方向とは逆方向に前記シフト量だけシフトさせる。
【発明の効果】
【0006】
本発明の上記態様によれば、ノイズを低減することが可能なモータ制御装置が提供される。
【図面の簡単な説明】
【0007】
図1図1は、本発明の一実施形態におけるモータ制御装置の構成を模式的に示す回路ブロック図である。
図2図2は、MCUコアによって実行されるスパイク電圧抑制処理のメインルーチンに含まれる各処理を示すフローチャートである。
図3図3は、スパイク電圧抑制処理のサブルーチンであるデューティシフト処理に含まれる各処理を示すフローチャートである。
図4図4は、三相デューティ指令値に基づいて三相PWM信号が生成される原理を模式的に示す図である。
図5図5は、デューティシフト処理を説明するために用いられる第1説明図である。
図6図6は、デューティシフト処理を説明するために用いられる第2説明図である。
図7図7は、デューティシフト処理を説明するために用いられる第3説明図である。
【発明を実施するための形態】
【0008】
以下、本発明の一実施形態について図面を参照しながら詳細に説明する。
図1は、本実施形態におけるモータ制御装置10の構成を模式的に示す回路ブロック図である。図1に示すように、モータ制御装置10は、三相モータ20を制御する。一例として、三相モータ20は、インナーロータ型の三相ブラシレスDCモータである。また、三相モータ20は、例えばハイブリッド車両に搭載される駆動用モータ(トラクションモータ)である。
【0009】
三相モータ20は、A相端子21Aと、B相端子21Bと、C相端子21Cと、A相コイル22Aと、B相コイル22Bと、C相コイル22Cと、を有する。図1では図示を省略するが、三相モータ20は、モータケースと、モータケースに収容されたロータ及びステータとを有する。ロータは、モータケースの内部において、ロータベアリング等の軸受け部品によって回転可能に支持される回転体である。ロータは、ロータの径方向内側を軸方向に貫通した状態でロータと同軸接合される出力軸を有する。ステータは、モータケースの内部において、ロータの外周面を囲った状態で固定され、ロータを回転させるのに必要な電磁力を発生させる。
【0010】
A相端子21A、B相端子21B、及びC相端子21Cは、それぞれモータケースの表面から露出する金属端子である。詳細は後述するが、A相端子21A、B相端子21B、及びC相端子21Cは、それぞれ、モータ制御装置10のインバータ回路11と電気的に接続される。A相コイル22A、B相コイル22B、及びC相コイル22Cは、それぞれステータに設けられた励磁コイルである。例えば、A相コイル22A、B相コイル22B、及びC相コイル22Cは、三相モータ20の内部でスター結線される。
【0011】
A相コイル22Aは、A相端子21Aと中性点Nとの間に電気的に接続される。B相コイル22Bは、B相端子21Bと中性点Nとの間に電気的に接続される。C相コイル22Cは、C相端子21Cと中性点Nとの間に電気的に接続される。A相コイル22A、B相コイル22B、及びC相コイル22Cの通電状態がモータ制御装置10によって制御されることにより、ロータを回転させるのに必要な電磁力が発生する。ロータが回転することにより、出力軸もロータに同期して回転する。
【0012】
モータ制御装置10は、インバータ回路11と、MCU(Microcontroller Unit)12と、を備える。インバータ回路11は、直流電源電圧を三相交流電圧に変換して三相モータ20に供給する三相フルブリッジ回路である。インバータ回路11は、直流電源30から供給される直流電源電圧を三相交流電圧に変換して三相モータ20に出力する。一例として、直流電源30は、ハイブリッド車両に搭載される複数のバッテリの一つである。
【0013】
インバータ回路11は、A相上側アームスイッチQAHと、B相上側アームスイッチQBHと、C相上側アームスイッチQCHと、A相下側アームスイッチQALと、B相下側アームスイッチQBLと、C相下側アームスイッチQCLと、を有する。本実施形態において各アームスイッチは、例えばIGBT(Insulated Gate Bipolar Transistor)である。
【0014】
A相上側アームスイッチQAHのコレクタ端子、B相上側アームスイッチQBHのコレクタ端子、及びC相上側アームスイッチQCHのコレクタ端子は、それぞれ直流電源30の正極端子と電気的に接続される。A相下側アームスイッチQALのエミッタ端子、B相下側アームスイッチQBLのエミッタ端子、及びC相下側アームスイッチQCLのエミッタ端子は、それぞれ直流電源30の負極端子と電気的に接続される。なお、直流電源30の負極端子は車内グランドと電気的に接続される。
【0015】
A相上側アームスイッチQAHのエミッタ端子は、三相モータ20のA相端子21Aと、A相下側アームスイッチQALのコレクタ端子とのそれぞれに電気的に接続される。B相上側アームスイッチQBHのエミッタ端子は、三相モータ20のB相端子21Bと、B相下側アームスイッチQBLのコレクタ端子とのそれぞれに電気的に接続される。C相上側アームスイッチQCHのエミッタ端子は、三相モータ20のC相端子21Cと、C相下側アームスイッチQCLのコレクタ端子とのそれぞれに電気的に接続される。
【0016】
A相上側アームスイッチQAHのゲート端子、B相上側アームスイッチQBHのゲート端子、及びC相上側アームスイッチQCHのゲート端子は、それぞれMCU12と電気的に接続される。また、A相下側アームスイッチQALのゲート端子、B相下側アームスイッチQBLのゲート端子、及びC相下側アームスイッチQCLのゲート端子も、それぞれMCU12と電気的に接続される。
【0017】
上記のように、インバータ回路11は、3つの上側アームスイッチと3つの下側アームスイッチとを有する3相フルブリッジ回路によって構成される。このように構成されたインバータ回路11は、MCU12によって各アームスイッチがスイッチング制御されることにより、直流電源30から供給される直流電源電圧を三相交流電圧に変換して三相モータ20に出力する。
【0018】
MCU12は、所定の更新周期で更新される三相デューティ指令値に基づいて三相PWM信号を生成し、生成された三相PWM信号に基づいてインバータ回路11を制御する制御部である。三相デューティ指令値は、A相デューティ指令値DA、B相デューティ指令値DB、及びC相デューティ指令値DCを含む。三相PWM信号は、A相PWM信号PA、B相PWM信号PB、及びC相PWM信号PCを含む。MCU12は、MCUコア12aと、PWMモジュール12bと、を有する。
【0019】
MCUコア12aは、不図示のメモリに予め記憶されたプログラムに従って、少なくとも三相デューティ指令値を算出するデューティ算出処理を実行する。図1では図示を省略するが、MCU12には、上位制御装置から出力されるトルク指令値が入力される。例えば、上位制御装置は、ハイブリッド車両に搭載されるECU(Electronic Control Unit)である。MCUコア12aは、トルク指令値に基づいてq軸電流指令値及びd軸電流指令値を算出し、これらの電流指令値に基づいて三相デューティ指令値を三相電圧指令値として算出する。MCUコア12aは、三相デューティ指令値、すなわちA相デューティ指令値DA、B相デューティ指令値DB、及びC相デューティ指令値DCをPWMモジュール12bに出力する。
【0020】
PWMモジュール12bは、所定の更新周期で更新される三相デューティ指令値に基づいて三相PWM信号を生成する。図4は、三相デューティ指令値に基づいて三相PWM信号が生成される原理を模式的に示す図である。図4に示すように、PWMモジュール12bにおいて、所定の周期を有する三角波TWが生成される。以下では、三角波TWの周期をPWM制御周期と呼称する場合がある。
【0021】
具体的には、三角波TWは、PWMタイマのカウント値で構成される。n番目のPWM制御周期の開始時刻t0からPWMタイマのカウントアップが開始される。PWM制御周期の1/2周期に相当する時刻t3においてPWMタイマのカウントアップは終了し、PWMタイマのカウントダウンが開始される。n番目のPWM制御周期の終了時刻t6においてPWMタイマのカウントダウンは終了する。時刻t6は、次のPWM制御周期、すなわちn+1番目のPWM制御周期の開始時刻でもある。従って、n+1番目のPWM制御周期の開始時刻t6から再びPWMタイマのカウントアップが開始される。
【0022】
n番目のPWM制御周期の開始時刻t0と、n+1番目のPWM制御周期の開始時刻t6とにおいて、三相デューティ指令値は更新される。つまり、三相デューティ指令値の更新周期は、PWM制御周期と一致する。PWMモジュール12bの内部において、三相デューティ指令値に含まれる3つのデューティ指令値のそれぞれに、バッファレジスタと、更新用レジスタとが割り当てられる。MCUコア12aによって算出された三相デューティ指令値は、まずバッファレジスタに格納される。そして、時刻t0及び時刻t6などの更新タイミングが到来すると、バッファレジスタに格納された三相デューティ指令値は更新用レジスタに転送される。このように、「三相デューティ指令値が更新される」とは、更新タイミングにおいてバッファレジスタから更新用レジスタに三相デューティ指令値が転送されることを意味する。
【0023】
これは、MCUコア12aが更新タイミングよりも早いタイミングで三相デューティ指令値を算出する必要があることを意味する。つまり、MCUコア12aは、n番目のPWM制御周期の開始時刻t0(n番目の更新タイミング)よりも早いタイミングで、n番目のPWM制御周期で使用される三相デューティ指令値を算出してPWMモジュール12bに出力する。また、MCUコア12aは、n+1番目のPWM制御周期の開始時刻t6(n+1番目の更新タイミング)よりも早いタイミング(例えば時刻t3)で、n+1番目のPWM制御周期で使用される三相デューティ指令値を算出してPWMモジュール12bに出力する。
【0024】
図4に示すように、n番目のPWM制御周期の開始時刻t0(n番目の更新タイミング)において、A相デューティ指令値DAが「DA1」に更新され、B相デューティ指令値DBが「DB1」に更新され、C相デューティ指令値DCが「DC1」に更新されたと仮定する。B相デューティ指令値DB1とC相デューティ指令値DC1とは同じ値である。A相デューティ指令値DA1は、B相デューティ指令値DB1及びC相デューティ指令値DC1よりも高い値である。「DA1」、「DB1」、及び「DC1」は、上記のように各デューティ指令値に割り当てられた更新用レジスタ内の値である。
【0025】
三角波TWの上昇中に、三角波TWが三相デューティ指令値に到達すると、三相PWM信号のレベルがローレベルにセットされる。一方、三角波TWの下降中に、三角波TWが三相デューティ指令値に到達すると、三相PWM信号のレベルがハイレベルにセットされる。言い換えれば、PWMタイマのカウントアップ中に、PWMタイマのカウント値が三相デューティ指令値に一致すると、三相PWM信号のレベルがローレベルにセットされる。一方、PWMタイマのカウントダウン中に、PWMタイマのカウント値が三相デューティ指令値に一致すると、三相PWM信号のレベルがハイレベルにセットされる。
【0026】
図4に示す例では、PWMタイマのカウントアップ中において、PWMタイマのカウント値が、時刻t1にB相デューティ指令値DB1及びC相デューティ指令値DC1と一致し、時刻t2にA相デューティ指令値DA1と一致する。一方、PWMタイマのカウントダウン中において、PWMタイマのカウント値が、時刻t4にA相デューティ指令値DA1と一致し、時刻t5にB相デューティ指令値DB1及びC相デューティ指令値DC1と一致する。
【0027】
従って、図4に示す例では、n番目のPWM制御周期において、時刻t1にB相PWM信号PB及びC相PWM信号PCのレベルがローレベルにセットされ、時刻t2にA相PWM信号PAのレベルがローレベルにセットされる。また、n番目のPWM制御周期において、時刻t4にA相PWM信号PAのレベルがハイレベルにセットされ、時刻t5にB相PWM信号PB及びC相PWM信号PCのレベルがハイレベルにセットされる。
【0028】
図4では、n+1番目のPWM制御周期の開始時刻t6(n+1番目の更新タイミング)以降の三相PWM信号を点線で表している。これは、n番目の更新タイミングの時点では、n+1番目の更新タイミングにおいて三相デューティ指令値がどのような値に更新されるのか未定であるからである。図4では、n+1番目の更新タイミングにおいて、三相デューティ指令値がn番目の更新タイミングで更新された値と同じ値に更新されたと仮定して、三相PWM信号の点線を描画している。
【0029】
以上のように、PWMモジュール12bによって生成される三相PWM信号のデューティ比は、所定の更新周期で更新される三相デューティ指令値によって制御される。PWMモジュール12bは、上記のように生成される三相PWM信号に基づいてインバータ回路11に含まれる各アームスイッチのゲート端子に供給されるゲート制御信号を生成する。
【0030】
ゲート制御信号には、A相上側アームスイッチQAHのゲート端子に供給されるA相上側ゲート制御信号G1と、A相下側アームスイッチQALのゲート端子に供給されるA相下側ゲート制御信号G2とが含まれる。また、ゲート制御信号には、B相上側アームスイッチQBHのゲート端子に供給されるB相上側ゲート制御信号G3と、B相下側アームスイッチQBLのゲート端子に供給されるB相下側ゲート制御信号G4とが含まれる。さらに、ゲート制御信号には、C相上側アームスイッチQCHのゲート端子に供給されるC相上側ゲート制御信号G5と、C相下側アームスイッチQCLのゲート端子に供給されるC相下側ゲート制御信号G6とが含まれる。
なお、各ゲート制御信号には、同じ相の上側アームスイッチと下側アームスイッチとが同時にオンに切り替わることを防止するためにデッドタイムが挿入される。
【0031】
既に述べたように、三相モータ20の出力軸とモータケースとの間の電位差(軸電圧)に起因して、三相モータ20のロータベアリングに電食が生じる場合がある。図4に示す例では、n番目のPWM制御周期において、B相PWM信号PBのオフタイミングとC相PWM信号PCのオフタイミングとが一致する。本願発明者らの研究の結果、図4に示すように三相PWM信号のうち二相のPWM信号のスイッチングタイミングが一致した瞬間に軸電圧がスパイク状に変動することが電食の発生に影響する虞があることが判明した。
図4の例では、例えば三相モータ20が回生状態(発電状態)にあり、B相及びC相の電流が正の時(インバータ回路11から三相モータ20へ電流が流れる時)、B相PWM信号PBとC相PWM信号PCとのスイッチングタイミングが重なると軸電圧の急激な変動が発生する。一方、同様の状態で、B相電流が正であり且つC相電流が負である場合には、B相ハイサイドのターンオフとC相ローサイドのターンオンとが重なった場合、あるいは、B相ハイサイドのターンオンとC相ローサイドのターンオフとが重なった場合、軸電圧の急激な変動が発生する。
【0032】
上記の技術課題を解決するために、本実施形態におけるMCU12のMCUコア12aは、第1の更新タイミングで更新される三相デューティ指令値のうち少なくとも二相のデューティ指令値が同じである場合に、二相のデューティ指令値のうち一相のデューティ指令値を所定のシフト量だけシフトさせる処理と、第1の更新タイミングの次の更新タイミングである第2の更新タイミングで更新される三相デューティ指令値のうち一相のデューティ指令値を第1の更新タイミングにおけるシフト方向とは逆方向に所定のシフト量だけシフトさせる処理と、を含むスパイク電圧抑制処理を実行する。以下では、MCUコア12aによって実行されるスパイク電圧抑制処理について詳細に説明する。
【0033】
図2は、MCUコア12aによって実行されるスパイク電圧抑制処理のメインルーチンに含まれる各処理を示すフローチャートである。図3は、スパイク電圧抑制処理のサブルーチンであるデューティシフト処理に含まれる各処理を示すフローチャートである。MCUコア12aは、更新タイミングよりも早いタイミングで三相デューティ指令値を算出した後、三相デューティ指令値をPWMモジュール12bに出力する前に、スパイク電圧抑制処理を実行する。
【0034】
例えば、MCUコア12aは、図4に示すn番目のPWM制御周期の開始時刻t0(n番目の更新タイミング)よりも早いタイミングで、n番目のPWM制御周期で使用される三相デューティ指令値を算出した後にスパイク電圧抑制処理を実行する。n番目の更新タイミングは、第1の更新タイミングに相当する。
【0035】
図2に示すように、MCUコア12aは、スパイク電圧抑制処理を開始すると、まず、算出された三相デューティ指令値、すなわちn番目の更新タイミングで更新される三相デューティ指令値が飽和状態にあるか否かを判定する(ステップS1)。具体的には、MCUコア12aは、下記の第1飽和条件及び第2飽和条件の少なくとも1つが満たされたときに、三相デューティ指令値が飽和状態にあると判定する。
(第1飽和条件)三相デューティ指令値のうち最も大きい値が「+1」以上である。
(第2飽和条件)三相デューティ指令値のうち最も小さい値が「-1」以下である。
なお、「+1」は100%のデューティ比に対応する値であり、「-1」は0%のデューティ比に対応する値である。
第1飽和条件が満たされた場合、MCUコア12aは、最も大きい三相デューティ指令値についてはデューティシフト処理を実行しない。ただし、最も大きい値が「+1」以上であっても、残り2つの小さい値が、例えば「-0.9」の値などで重複すれば、MCUコア12aは、デューティシフト処理を実行する。
一方、第2飽和条件が満たされた場合、MCUコア12aは、最も小さい三相デューティ指令値についてはデューティシフト処理を実行しない。ただし、最も小さい値が「-1」以下であっても、残り2つの大きい値が、例えば「+0.9」の値などで重複すれば、MCUコア12aは、デューティシフト処理を実行する。
【0036】
上記ステップS1において「Yes」の場合、すなわちn番目の更新タイミングで更新される三相デューティ指令値が飽和状態にある場合、MCUコア12aは、サブルーチンであるデューティシフト処理に移行せずに、スパイク電圧抑制処理を終了する。一方、上記ステップS1において「No」の場合、すなわちn番目の更新タイミングで更新される三相デューティ指令値が飽和状態にない場合、MCUコア12aは、サブルーチンであるデューティシフト処理に移行する(ステップS2)。
【0037】
図4に示す例では、n番目の更新タイミング(時刻t0)で更新される三相デューティ指令値として、A相デューティ指令値DA1、B相デューティ指令値DB1、及びC相デューティ指令値DC1が算出される。B相デューティ指令値DB1とC相デューティ指令値DC1とは同じ値である。A相デューティ指令値DA1は、B相デューティ指令値DB1及びC相デューティ指令値DC1よりも高い値である。この場合、第1飽和条件及び第2飽和条件の両方とも満たされないため、MCUコア12aは、図3に示すデューティシフト処理に移行する。
【0038】
図3に示すように、MCUコア12aは、デューティシフト処理を開始すると、まず、n番目の更新タイミング(時刻t0)で更新される三相デューティ指令値を昇順で並び替える(ステップS11)。図4に示す例では、A相デューティ指令値DA1は、B相デューティ指令値DB1及びC相デューティ指令値DC1よりも高い値であるので、DA1(1番)、DB1(2番)、DC1(3番)の順で並び替えられる。なお、三相デューティ指令値の基本順序は、A相デューティ指令値DA(1番)、B相デューティ指令値DB(2番)、C相デューティ指令値DC(3番)の順序に設定されている。MCUコア12aは、三相デューティ指令値に少なくとも2つ以上同じ値が存在する場合には、基本順序に従って三相デューティ指令値の並び替えを行う。
【0039】
続いて、MCUコア12aは、昇順で並び替えられた三相デューティ指令値のうち、1番目のデューティ指令値と2番目のデューティ指令値とが同じであるか否かを判定する(ステップS12)。図4に示す例では、MCUコア12aは、ステップS12において、1番目のA相デューティ指令値DA1と、2番目のB相デューティ指令値DB1とが同じであるか否かを判定する。
【0040】
上記ステップS12において「Yes」の場合、すなわち1番目のデューティ指令値と2番目のデューティ指令値とが同じである場合、MCUコア12aは、1番目のデューティ指令値を低い方向に所定のシフト量だけシフトさせる(ステップS13)。所定のシフト量は、事前に実験或いはシミュレーションなどによって決定され、予めMCU12内のメモリ等に記憶される。すなわち、MCUコア12aは、ステップS13において、メモリからシフト量を読み出し、1番目のデューティ指令値を低い方向にシフト量だけシフトさせる。
【0041】
一方、上記ステップS12において「No」の場合、すなわち1番目のデューティ指令値と2番目のデューティ指令値とが異なる場合、MCUコア12aは、昇順で並び替えられた三相デューティ指令値のうち、2番目のデューティ指令値と3番目のデューティ指令値とが同じであるか否かを判定する(ステップS16)。図4に示す例では、1番目のA相デューティ指令値DA1と、2番目のB相デューティ指令値DB1とが異なるので、MCUコア12aは、ステップS12からステップS16の処理へ移行する。
【0042】
上記ステップS16において「Yes」の場合、すなわち2番目のデューティ指令値と3番目のデューティ指令値とが同じである場合、MCUコア12aは、3番目のデューティ指令値を高い方向に所定のシフト量だけシフトさせる(ステップS17)。図4に示す例では、2番目のB相デューティ指令値DB1と、3番目のC相デューティ指令値DC1とが同じであるので、MCUコア12aは、ステップS16からステップS17へ移行し、3番目のC相デューティ指令値DC1を高い方向に所定のシフト量だけシフトさせる。以下では、シフト後のC相デューティ指令値DCを「DC2」と呼称する。すなわち、3番目のC相デューティ指令値DC1を高い方向に所定のシフト量だけシフトさせることにより、C相デューティ指令値DCはDC1よりもシフト量だけ高い値であるDC2に調整される。
【0043】
続いて、MCUコア12aは、シフト後の3番目のデューティ指令値が飽和状態にあるか否かを判定する(ステップS18)。MCUコア12aは、シフト後の3番目のデューティ指令値が「+1」以上である場合に、シフト後の3番目のデューティ指令値が飽和状態にあると判定する。
【0044】
上記ステップS18において「No」の場合、すなわちシフト後の3番目のデューティ指令値が飽和状態にない場合、MCUコア12aは、三相デューティ指令値の全てが同じか否かを判定する(ステップS20)。上記の例では、シフト後の3番目のC相デューティ指令値DC2は「+1」に達していないので、MCUコア12aは、ステップS18からステップS20へ移行し、三相デューティ指令値の全てが同じか否かを判定する。
【0045】
上記ステップS20において「No」の場合、すなわち三相デューティ指令値の全てが同じではない場合、MCUコア12aは、三相デューティ指令値の全てをPWMモジュール12bに出力した後、次の更新タイミング(第2の更新タイミング)で減算処理を行う(ステップS22)。上記の例では、MCUコア12aは、ステップS20の時点で、A相デューティ指令値DA1、B相デューティ指令値DB1、及びC相デューティ指令値DC2を三相デューティ指令値として保持している。この場合、三相デューティ指令値の全てが同じではないので、MCUコア12aは、A相デューティ指令値DA1、B相デューティ指令値DB1、及びC相デューティ指令値DC2をPWMモジュール12bに出力する。
【0046】
この場合、図5に示すように、PWMモジュール12bの内部では、n番目の更新タイミング(時刻t0)で、A相デューティ指令値DAは「DA1」に更新され、B相デューティ指令値DBは「DB1」に更新され、C相デューティ指令値DCは「DC2」に更新される。図4図5とを比較してわかるように、MCUコア12aによって上記のデューティシフト処理が実行されることにより、n番目の更新タイミング(時刻t0)において、C相デューティ指令値DCは、最初に算出された「DC1」よりもシフト量だけ高い値である「DC2」に更新される。
【0047】
図5に示す例では、n番目のPWM制御周期において、PWMタイマのカウントアップ中にPWMタイマのカウント値が、時刻t1にB相デューティ指令値DB1と一致し、時刻t1’にC相デューティ指令値DC2と一致し、時刻t2にA相デューティ指令値DA1と一致する。時刻t1’は、時刻t1と時刻t2との間の時刻である。一方、PWMタイマのカウントダウン中にPWMタイマのカウント値が、時刻t4にA相デューティ指令値DA1と一致し、時刻t4’にC相デューティ指令値DC2と一致し、時刻t5にB相デューティ指令値DB1と一致する。時刻t4’は、時刻t4と時刻t5との間の時刻である。
【0048】
従って、図5に示す例では、n番目のPWM制御周期において、時刻t1にB相PWM信号PBのレベルがローレベルにセットされ、時刻t1’にC相PWM信号PCのレベルがローレベルにセットされ、時刻t2にA相PWM信号PAのレベルがローレベルにセットされる。また、n番目のPWM制御周期において、時刻t4にA相PWM信号PAのレベルがハイレベルにセットされ、時刻t4’にC相PWM信号PCのレベルがハイレベルにセットされ、時刻t5にB相PWM信号PBのレベルがハイレベルにセットされる。
【0049】
図4図5とを比較してわかるように、MCUコア12aによって上記のデューティシフト処理が実行されることにより、n番目のPWM制御周期において、B相PWM信号PBのオフタイミングとC相PWM信号PCのオフタイミングが一致することが回避される。このように、n番目の更新タイミングで更新される三相デューティ指令値のうち少なくとも二相のデューティ指令値が同じである場合に、二相のデューティ指令値のうち一相のデューティ指令値を所定のシフト量だけシフトさせることにより、軸電圧がスパイク状に変動することを抑制することができる。
【0050】
しかしながら、MCUコア12aによって上記のデューティシフト処理が実行されることにより、n番目のPWM制御周期において生成されるC相PWM信号PCのデューティ比は、本来必要であったデューティ比、すなわち最初に算出されたC相デューティ指令値DC1に対応するデューティ比から所定のシフト量だけ増加した値となる。この状態では、インバータ回路11から三相モータ20に供給される駆動電流を本来必要であった電流に制御できない。
【0051】
そこで、本実施形態において、MCUコア12aは、第1の更新タイミングの次の更新タイミングである第2の更新タイミングで更新される三相デューティ指令値のうち一相のデューティ指令値を第1の更新タイミングにおけるシフト方向とは逆方向に所定のシフト量だけシフトさせる減算処理を実行する。
【0052】
図6に示すように、MCUコア12aは、n+1番目のPWM制御周期の開始時刻t6(n+1番目の更新タイミング)よりも早いタイミングで、n+1番目のPWM制御周期で使用される三相デューティ指令値を算出する。n+1番目の更新タイミングは、第2の更新タイミングに相当する。
【0053】
図6に示す例では、n+1番目の更新タイミング(時刻t6)で更新される三相デューティ指令値として、A相デューティ指令値DA1、B相デューティ指令値DB1、及びC相デューティ指令値DC1が算出されると仮定する。B相デューティ指令値DB1とC相デューティ指令値DC1とは同じ値である。A相デューティ指令値DA1は、B相デューティ指令値DB1及びC相デューティ指令値DC1よりも高い値である。
【0054】
なお、n+1番目のPWM制御周期で使用される三相デューティ指令値が算出された時点では、まだ、n+1番目の更新タイミングで三相デューティ指令値が更新されていないので、本来であれば、n+1番目の更新タイミング以降の三相PWM信号は未確定状態にあるはずである。しかしながら、減算処理の理解を容易にするために、図6では、n+1番目の更新タイミング(時刻t6)で三相デューティ指令値がDA1、DB1、DC1に更新されたと仮定して、三相PWM信号の波形を描画している。
【0055】
図6に示す例では、n+1番目のPWM制御周期において、PWMタイマのカウントアップ中にPWMタイマのカウント値が、時刻t7にB相デューティ指令値DB1及びC相デューティ指令値DC1と一致し、時刻t8にB相デューティ指令値DB1と一致し、時刻t8にA相デューティ指令値DA1と一致する。一方、PWMタイマのカウントダウン中にPWMタイマのカウント値が、時刻t10にA相デューティ指令値DA1と一致し、時刻t11にB相デューティ指令値DB1及びC相デューティ指令値DC1と一致する。
【0056】
従って、図6に示す例では、n+1番目のPWM制御周期において、時刻t7にB相PWM信号PB及びC相PWM信号PCのレベルがローレベルにセットされ、時刻t8にA相PWM信号PAのレベルがローレベルにセットされる。また、n+1番目のPWM制御周期において、時刻t10にA相PWM信号PAのレベルがハイレベルにセットされ、時刻t11にB相PWM信号PB及びC相PWM信号PCのレベルがハイレベルにセットされる。
【0057】
図6に示す例において、MCUコア12aは、n+1番目の更新タイミングの前に算出されたC相デューティ指令値DC1をn番目の更新タイミング(t0)におけるシフト方向とは逆方向に所定のシフト量だけシフトさせる。すなわち、MCUコア12aは、C相デューティ指令値DC1を低い方向に所定のシフト量だけシフトさせる。以下では、シフト後のC相デューティ指令値DCを「DC3」と呼称する。すなわち、C相デューティ指令値DC1を低い方向に所定のシフト量だけシフトさせることにより、C相デューティ指令値DCはDC1よりも所定のシフト量だけ低い値であるDC3に調整される。
【0058】
この場合、図7に示すように、PWMモジュール12bの内部では、n+1番目の更新タイミング(時刻t6)で、A相デューティ指令値DAは「DA1」に更新され、B相デューティ指令値DBは「DB1」に更新され、C相デューティ指令値DCは「DC3」に更新される。図6図7とを比較してわかるように、MCUコア12aによって上記の減算処理が実行されることにより、n+1番目の更新タイミング(時刻t6)において、C相デューティ指令値DCは、最初に算出された「DC1」よりも所定のシフト量だけ低い値である「DC3」に更新される。
【0059】
図7に示す例では、n+1番目のPWM制御周期において、PWMタイマのカウントアップ中にPWMタイマのカウント値が、時刻t6’にC相デューティ指令値DC3と一致し、時刻t7にB相デューティ指令値DB1と一致し、時刻t8にA相デューティ指令値DA1と一致する。時刻t6’は、時刻t6と時刻t7との間の時刻である。一方、PWMタイマのカウントダウン中にPWMタイマのカウント値が、時刻t10にA相デューティ指令値DA1と一致し、時刻t11にB相デューティ指令値DB1と一致し、時刻t11’にC相デューティ指令値DC3と一致する。時刻t11’は、時刻t11と時刻t12との間の時刻である。
【0060】
従って、図7に示す例では、n+1番目のPWM制御周期において、時刻t6’にC相PWM信号PCのレベルがローレベルにセットされ、時刻t7にB相PWM信号PBのレベルがローレベルにセットされ、時刻t8にA相PWM信号PAのレベルがローレベルにセットされる。また、n+1番目のPWM制御周期において、時刻t10にA相PWM信号PAのレベルがハイレベルにセットされ、時刻t11にB相PWM信号PBのレベルがハイレベルにセットされ、時刻t11’にC相PWM信号PCのレベルがハイレベルにセットされる。
【0061】
図6図7とを比較してわかるように、MCUコア12aによって上記の減算処理が実行されることにより、n+1番目のPWM制御周期において生成されるC相PWM信号PCのデューティ比は、本来必要であったデューティ比、すなわち最初に算出されたC相デューティ指令値DC1に対応するデューティ比から所定のシフト量だけ減少した値となる。従って、上記の減算処理が実行されることにより、n番目のPWM制御周期とn+1番目のPWM制御周期とを含む制御期間をトータルで見ると、C相PWM信号PCのデューティ比は、本来必要であったデューティ比に制御される。その結果、n番目のPWM制御周期とn+1番目のPWM制御周期とを含む制御期間をトータルで見ると、インバータ回路11から三相モータ20に供給される駆動電流を本来必要であった電流に制御できる。
【0062】
以上説明したように、本実施形態におけるモータ制御装置10は、所定の更新周期で更新される三相デューティ指令値に基づいて三相PWM信号を生成し、生成された三相PWM信号に基づいてインバータ回路11を制御するMCU12を備える。MCU12は、第1の更新タイミングで更新される三相デューティ指令値のうち少なくとも二相のデューティ指令値が同じである場合に、二相のデューティ指令値のうち一相のデューティ指令値を所定のシフト量だけシフトさせる。
このような本実施形態によれば、第1の更新タイミングで更新される三相デューティ指令値に基づいて生成された三相PWM信号のうち少なくとも二相のPWM信号のスイッチングタイミングが一致することが回避されるため、三相モータ20の軸電圧がスパイク状に変動することを抑制することができる。すなわち、本実施形態によれば、軸電圧がスパイク状に変動することに起因するノイズを低減することが可能である。その結果、本実施形態によれば、三相モータ20のロータベアリングに電食が生じることを抑制できる。
また、本実施形態におけるMCU12は、第1の更新タイミングの次の更新タイミングである第2の更新タイミングで更新される三相デューティ指令値のうち前記一相のデューティ指令値を第1の更新タイミングにおけるシフト方向とは逆方向に所定のシフト量だけシフトさせる。
これにより、PWM制御期間をトータルで見ると、三相PWM信号のデューティ比は、本来必要であったデューティ比に制御される。その結果、PWM制御期間をトータルで見ると、インバータ回路11から三相モータ20に供給される駆動電流を本来必要であった電流に制御できる。
【0063】
本発明は上記実施形態に限定されず、本明細書において説明した各構成は、相互に矛盾しない範囲内において、適宜組み合わせることができる。
【符号の説明】
【0064】
10…モータ制御装置、11…インバータ回路、12…MCU(制御部)、12a…MCUコア、12b…PWMモジュール、20…三相モータ、30…直流電源
図1
図2
図3
図4
図5
図6
図7