(58)【調査した分野】(Int.Cl.,DB名)
トルク指令値に基づいてモータへの電流指令値を生成する電流指令値生成部と、前記トルク指令値に基づいてモータの干渉電圧を生成する干渉電圧生成部と、前記電流指令値生成部により生成された電流指令値とモータコイルへ供給される電流の検出値との偏差をゼロに近づける第1の仮電圧指令値を生成する電流フィードバック制御部と、ローパスフィルタを介して前記干渉電圧から干渉電圧指令値を求め、前記干渉電圧指令値と第1の仮電圧指令値とを加算して第1の電圧指令値を生成する第1制御部と、を有し、前記第1の電圧指令値によりモータを駆動する電流ベクトル制御モードを実行する電流ベクトル制御部と、
前記トルク指令値に基づいてモータへの電圧位相値を生成する電圧位相生成部と、前記トルク指令値に基づいてモータへの電圧振幅指令値を生成する電圧振幅生成部と、前記電流の検出値に基づいてモータトルクを推定するトルク推定部と、前記トルク推定部により推定されたモータトルク及び前記トルク指令値から求められる電圧位相補正値と前記電圧位相値との偏差、並びに、前記電圧振幅生成部により生成された電圧振幅指令値に基づいて、第2の電圧指令値を生成する第2制御部と、を有し、前記第2の電圧指令値によりモータを制御する電圧位相制御モードを実行するする電圧位相制御部と、
前記電流ベクトル制御モードの実行中において前記電流ベクトル制御部にて生成された前記第1の電圧指令値を選択し、前記電圧位相制御モードの実行中において前記電圧位相制御部にて生成された前記第2の電圧指令値を選択し、選択した電圧指令値によりモータの制御を行わせる切替部と、
前記電圧位相値と前記電圧振幅指令値とから第2の仮電圧指令値を求める補正前電圧生成部と、
ローパスフィルタを介することで前記補正前電圧生成部により生成された第2の仮電圧指令値から得られた値から、前記検出値にモータコイル抵抗を乗じた値を減算する第1減算器と、
前記第2の電圧指令値から前記第1減算器により得られた値を減算する第2減算器と、を備え、
前記電圧位相制御モードから前記電流ベクトル制御モードに遷移して、前記切替部により前記第2の電圧指令値が選択されている状態から前記第1の電圧指令値が選択される状態に切り替えられた場合、前記干渉電圧指令値の初期値を前記第1減算器により得られた値とし、前記第1の仮電圧指令値の初期値を前記第2減算器により得られた値とする
ことを特徴とするモータ制御装置。
【発明を実施するための形態】
【0011】
以下、本発明の好適な実施形態を図面に基づいて説明する。
図1は、本発明の実施形態に係るモータ制御装置を示す構成図である。
図1に示すように、モータ制御装置1は、三相モータMを駆動制御するものである。このモータ制御装置1は、電流ベクトル制御部100と、電圧位相制御部200と、制御モード判定部24と、制御モード切替器(切替部)21とを備えている。
【0012】
電流ベクトル制御部100は、上位装置から送信されるトルク指令値T
*に基づいてdq軸電圧指令値(第1の電圧指令値)v
di*、v
qi*を生成して出力するものである。この電流ベクトル制御部100は、トルク指令値T
*、DC電圧V
dc、及びモータ回転数Nを入力のうえ、予め実験又は解析により求められるdq軸電流テーブルを参照し、dq軸電流指令値i
d*,i
q*を生成すると共に、モータMのdq軸電流検出値i
d、i
qを入力して、これらの偏差がゼロとなるようなdq軸電圧指令値v
di*、v
qi*を算出して出力するものである。
【0013】
電圧位相制御部200は、トルク指令値T
*に基づいてdq軸電圧指令値(第2の電圧指令値)v
dv*、v
qv*を生成して出力するものである。この電圧位相制御部200は、トルク指令値T
*、DC電圧V
dc、及びモータ回転数Nを入力のうえ、予め実験又は解析により求められるテーブルを参照するなどして、電圧振幅指令値(電圧ノルム指令値)V
a*と電圧位相指令値α
*とを生成し、ベクトル変換を経てdq軸電圧指令値v
dv*、v
qv*を算出して出力するものである。
【0014】
制御モード判定部24は、電流ベクトル制御を実行するか電圧位相制御を実行するかを決定し、制御モードを表す信号を出力するものである。以下、電流ベクトル制御部100による制御を行うモードを電流ベクトル制御モードといい、電圧位相制御部200による
制御を行うモードを電圧位相制御モードという。
【0015】
制御モード切替器21は、制御モード判定部24からの信号に基づいて、電流ベクトル制御部100の出力と電圧位相制御部200の出力のいずれかを選択して最終電圧指令値(選択した電圧指令値)v
d*、v
q*として出力するものである。
【0016】
さらに、モータ制御装置1は、dq軸/UVW相変換器5と、PWM変換器6と、インバータ7と、電圧センサ8と、電流センサ9と、位置検出器11と、回転数演算器12と、UVW相/dq軸変換器13とを備えている。
【0017】
dq軸/UVW相変換器5は、以下の式(1)に基づき、入力した最終電圧指令値v
d*,v
q*を三相電圧指令値v
u*,v
v*,v
w*に変換するものである。ここで、θは位置検出器11により検出された電気角検出値である。
【数1】
【0018】
PWM変換器6は、三相電圧指令値v
u*、v
v*、v
w*及びDC電圧V
dcを入力し、デッドタイム補償や電圧利用率向上処理といった公知の処理を行なうと共に、三相電圧指令値v
u*、v
v*、v
w*に対応したインバータ7のパワー素子駆動信号D
uu*、D
ul*、D
vu*、D
vl*、D
wu*、D
wl*を生成する。インバータ7にはバッテリBatが接続されており、バッテリBatからのDC電圧V
dcを擬似交流電圧v
u,v
v,v
wに変換して出力する。なお、DC電圧V
dcは、電圧センサ8により検出されている。
【0019】
電流センサ9は、モータMのU相及びV相の電流i
u,i
vを検出するものである。なお、モータMのW相の電流i
wは原理的に以下の式(2)より求めることができる。
【数2】
【0020】
回転数演算器12は、位置検出器11により検出された電気角検出値θから回転数Nを演算するものである。UVW相/dq軸変換器13は、電流センサ9により検出されたU相及びV相の電流i
u,i
vと位置検出器11により検出された電気角検出値θとを入力し、以下の式(3)に基づき、dq軸電流検出値(電流の検出値)i
d,i
qに変換するものである。
【数3】
【0021】
電流ベクトル制御部100は、電流指令生成部(電圧指令値生成部)110と、干渉電圧生成部120と、電流フィードバック制御器(電流フィードバック制御部)130と、非干渉制御器(第1制御部)140とから構成されている。
【0022】
電流指令生成部110は、モータ温度t℃(tは任意の数であって、以下t=25とする)において所望のトルクを得るためのdq軸電流テーブルを格納したものである。dq軸電流テーブルは、予め実験又は解析により求められるものである。この電流指令生成部110は、トルク指令値T
*、DC電圧V
dc、及びモータ回転数Nを入力のうえdq軸電流テーブルを参照し、dq軸電流指令値(電流指令値)i
d*,i
q*を生成して出力する。
【0023】
ここで、dq軸電流指令値i
d*,i
q*を生成する方法は上記に限られず、例えば「内藤治夫編著、日本テクノセンター発行」の「実用モータドライブ制御系設計とその実際」7章第4項に記載の効率最大法、及び25℃におけるモータ定数を用いて計算的に生成するようにしてもよい。
【0024】
干渉電圧生成部120は、予め作成したテーブルを格納しており、トルク指令値T
*、DC電圧Vdc、及びモータ回転数Nを入力のうえ当該テーブルを参照しdq軸干渉電圧(干渉電圧)V
d_dcpl*,V
q_dcpl*を生成して出力するものである。
【0025】
電流フィードバック制御器130は、dq軸電流指令値i
d*,i
q*及びdq軸電流検出値i
d,i
qを入力し、dq軸電流指令値i
d*,i
q*にdq軸電流検出値i
d,i
qを追従させるべくdq軸電流偏差を求め、この偏差を比例積分(PI)演算増幅することにより干渉電圧を加味していない状態のdq軸電圧指令値(第1の仮電圧指令値)v
d’,v
q’を算出するものである。
【0026】
非干渉制御器140は、電流フィードバック制御器130により算出されたdq軸電圧指令値v
d’,v
q’、及び、dq軸干渉電圧v
d_dcpl*,v
q_dcpl*を入力して、公知の電流ベクトル制御を行ってdq軸電圧指令値v
di*,v
qi*を算出するものである。この非干渉制御器140は、dq軸電流規範応答の時定数を持つローパスフィルタを有し、ローパスフィルタを介することでdq軸干渉電圧v
d_dcpl*,v
q_dcpl*からdq軸干渉電圧指令値(干渉電圧指令値)v
d_LPF*,v
q_LPF*を算出する。また、非干渉制御器140は、算出したdq軸干渉電圧指令値v
d_LPF*,v
q_LPF*と、電流フィードバック制御器130により算出された干渉電圧を加味していない状態のdq軸電圧指令値v
d’,v
q’とを加算して、dq軸電圧指令値v
di*,v
qi*を算出する。
【0027】
電圧位相制御部200は、電圧振幅生成部210と、電圧位相生成部220と、トルク演算器(トルク推定部)230と、減算器240と、PI制御器250と、減算器260と、dq軸電圧生成部(第2制御部)270とを備えている。
【0028】
電圧振幅生成部210及び電圧位相生成部220は、トルク指令値T
*、DC電圧V
d
c、及びモータ回転数Nに基づき電圧ノルム指令値V
a*と電圧位相値α
ff*とをテーブル参照によって算出し出力する。テーブルには、モータMが基準温度である場合において予め実験的に求めた所望のトルクを得る値が格納されている。
【0029】
トルク演算器230は、予め記憶されているモータ温度25℃における磁石磁束Φ
a_25℃(モータ定数の1つ)、UVW相/dq軸変換器13にて算出されたdq軸電流検出値i
d,i
q、及び、後述のインダクタンス生成部16により生成されたdq軸インダクタンス差(Ld−Lq)
25℃(モータ定数の1つ)を入力して、以下の式(1)からモータトルク推定値T
calを算出する。
【数4】
なお、pはモータMの極対数である。
【0030】
減算器240は、モータトルク推定値T
calとトルク指令値T
*との差分ΔTを算出するものである。
【0031】
PI制御器250は、差分ΔTを入力し、以下の式(5)から電圧位相補正値α
fb*を算出するものである。電圧位相補正値α
fb*はPI増幅された値である。
【数5】
なお、Kpは比例ゲインであり、Kiは積分ゲインである。
【0032】
減算器260は、電圧位相生成部220からの電圧位相値α
ff*と、PI制御器250からの電圧位相補正値α
fb*とを、減算することにより補正し、電圧位相指令値α
*を算出するものである。
【0033】
dq軸電圧生成部270は、電圧振幅生成部210からの電圧ノルム指令値V
a*と減算器260からの電圧位相指令値α
*とを入力し、以下の式(6)からdq軸電圧指令値v
dv*、v
qv*を算出するものである。
【数6】
【0034】
さらに、モータ制御装置1は、インダクタンス生成部16と、電圧位相制御移行判定部22と、電流制御移行判定部23とを備えている。
【0035】
インダクタンス生成部16は、予めオフラインで解析又は実験により得られたテーブルを格納しており、トルク指令値T
*、DC電圧V
dc、及びモータ回転数Nを入力のうえ当該テーブルを参照しモータ温度25℃におけるdq軸インダクタンス差(Ld−Lq)
25℃を生成して出力するものである。
【0036】
電圧位相制御移行判定部22は、電流ベクトル制御モードから電圧位相制御モードへの移行判定を行うものである。まず、電圧位相制御移行判定部22による判定に先だって、電圧振幅生成部210の詳細について説明する。電圧振幅生成部210に格納されるテーブルは、以下に示すルールに従って実験又は解析により取得された値が設定されている。
【0037】
図2は、
図1に示した電圧振幅生成部210の詳細について説明する図である。
図2に示すように、電圧振幅生成部210は、モータMが高回転数となるほど、回転数に比例して大きくなる電圧振幅V
a,V
a*を生成する。この比例関係は、電流ベクトル制御モードの方が電圧位相制御モードよりも先に上限値に達してしまう。すなわち、第1高回転域a、低回転域b、及び第2高回転域cを
図2に示すように設定した場合、電流ベクトル制御モードは、低回転域bにおいて比例関係を有するが、第1高回転域a及び第2高回転域cにおいて上限値に達してしまっている。一方、電圧位相制御モードは、第1高回転域a及び低回転域bにおいて比例関係を有するが、第2高回転域cにおいて上限値に達してしまっている。
【0038】
ここで、電流ベクトル制御モードでは、モータMの温度変化やバラツキにより電圧振幅V
aが変化する。このため、電圧位相制御モードにおける電圧振幅V
a*は、この変化分を考慮して設定されている。すなわち、低回転域bにおいて電圧位相制御モードにおける電圧振幅V
a*は、モータMの温度変化やバラツキにより電圧振幅V
aが変化したとしても、電圧振幅V
aを下回るように比例関係における傾きが設定されている。
【0039】
従って、電圧振幅生成部210は、弱め磁束制御を行う高回転域において電圧位相制御モードの電圧振幅V
a*が電流ベクトル制御モードの電圧振幅V
aよりも大きくなるように、且つ、当該高回転域よりも低回転域において電圧位相制御モードの電圧振幅V
a*が電流ベクトル制御モードの電圧振幅V
aよりも小さくなるように生成することとなる。
【0040】
電圧位相制御移行判定部22は、トルク指令値T
*が閾値以上である場合に、電流ベクトル制御モードから電圧位相制御モードへの移行要求を行う。ここで、電圧位相制御移行判定部22は、予めモータ回転数NとDC電圧V
dcとを指標とするテーブルを格納しており、閾値は、このテーブルを参照することによって求められ、例えば
図2に示す第2高回転域cのように低回転域b及び第1高回転域aよりも高回転高トルク側に設定されている。低回転域b及び第1高回転域aでは電圧位相制御モードから電流ベクトル制御モードへの移行が発生し得るからであり、モード切替のチャタリングを防止するためである。
【0041】
図3は、
図1に示した電流制御移行判定部23の詳細を示す構成図である。
図3に示すように、電流制御移行判定部23は、電圧位相制御モードから電流ベクトル制御モードへの移行判定を行うものであり、ローパスフィルタ23a,23bと、二乗器23c〜23fと、加算器23g,23hと、電流振幅比較器23iとから構成される。電流制御移行判定部23は、電流指令生成部110から出力されるdq軸電流指令値i
d*,i
q*と、UVW相/dq軸変換器13から出力されるdq軸電流検出値i
d,i
qとを入力する。
【0042】
ローパスフィルタ23a,23bは、dq軸電流規範応答の時定数τ
iaを持ち、dq軸電流指令値i
d*,i
q*の過渡成分を除去する。第1及び第2の二乗器23c,23dは過渡成分が除去された各指令値i
d*,i
q*をそれぞれ二乗し、第1加算器23gは二乗された各指令値i
d*,i
q*を加算して得られた値i
a_LPF2*を電流振幅比較器23iに出力する。
【0043】
一方、第3及び第4の二乗器23e,23fはdq軸電流検出値i
d,i
qをそれぞれ二乗し、第2加算器23hは二乗された各検出値i
d,i
qを加算して得られた値i
a2
を電流振幅比較器23iに出力する。
【0044】
電流振幅比較器23iは、以下の表1に従って電流制御移行要求を行うかを判断する。
【表1】
【0045】
すなわち、dq軸電流指令値i
d*,i
q*の二乗和(過渡成分除去した二乗和)がdq軸電流検出値i
d,i
qの二乗和よりも大きい場合、電流振幅比較器23iは電流制御移行要求を行わないと判断する。一方、dq軸電流指令値i
d*,i
q*の二乗和(過渡成分除去した二乗和)がdq軸電流検出値i
d,i
qの二乗和以下である場合、電流振幅比較器23iは電流制御移行要求を行うと判断する。
【0046】
このような電流制御移行要求は、
図2に示す理論に基づいて行われる。例えばモータMの温度変化やバラツキを考慮しない場合、低回転域bにおいて電流ベクトル制御モードにおける電圧振幅V
aが電圧位相制御モードにおける電圧振幅V
a*よりも大きくなる。このため、低回転域bにおいては、電流ベクトル制御モードにおける電流指令値が電圧位相制御モードにおける電流指令値よりも小さくなる。一方、第1高回転域a及び第2高回転域cにおいて電流ベクトル制御モードにおける電圧振幅V
aが電圧位相制御モードにおける電圧振幅V
a*よりも小さくなる。このため、第1高回転域a及び第2高回転域cにおいては、電流ベクトル制御モードにおける電流値についても電圧位相制御モードにおける電流値よりも大きくなる。
【0047】
従って、低回転域bにおいては、dq軸電流指令値i
d*,i
q*の二乗和(過渡成分除去した二乗和)がdq軸電流検出値i
d,i
qの二乗和以下となり、電流制御移行要求が行われることとなる。これに対して、第1高回転域a及び第2高回転域cにおいては、dq軸電流指令値i
d*,i
q*の二乗和(過渡成分除去した二乗和)がdq軸電流検出値i
d,i
qの二乗和を超えることとなり、電流制御移行要求が行われないこととなる。以上より、電圧位相制御モードから電流ベクトル制御モードへの切替は切替ポイントP1で行われることとなる。なお、モータMの温度変化やバラツキが発生すると、切替は切替ポイントP2,P3等で行われることはいうまでもない。
【0048】
ここで、従来のモータ制御装置では、電圧位相制御モードから電流ベクトル制御モードに切替がトルクステップを伴う場合、電流及びトルクに脈動が発生してしまう。そこで、本実施形態に係るモータ制御装置1は、切替初期値演算部20を備えている。この切替初期値演算部20は、電圧位相制御モードから電流ベクトル制御モードに切り替えられた場合に電流ベクトル制御モードにおける初期値を演算し、この初期値により電流及びトルクの脈動を抑えるものである。
【0049】
図4は、切替初期値演算部20の詳細を示す構成図である。
図4に示すように、切替初期値演算部20は、dq軸電圧演算部(補正前電圧生成部)20aと、ローパスフィルタ20b,20cと、二乗器20d,20eと、減算器20f〜20iとを備えている。
【0050】
dq軸電圧演算部20aは、電圧振幅生成部210により生成された電圧ノルム指令値V
a*と、電圧位相生成部220により生成された電圧位相値α
ff*とを入力し、dq
軸電圧生成部270と同様にして仮のdq軸電圧指令値(第2の仮電圧指令値)v
dv’,v
qv’を算出する。
【0051】
ローパスフィルタ20b,20cは、非干渉制御器140のローパスフィルタと同じ規範応答の時定数τ
iaを持ち、dq軸電圧演算部20aにより算出された仮のdq軸電圧指令値v
dv’,v
qv’に対して一次遅れフィルタ処理を施す。
【0052】
二乗器20d,20eは、UVW相/dq軸変換器13に算出されたdq軸電流検出値i
d,i
qにモータコイルの抵抗Rを乗じた値を算出する。第1及び第2の減算器(第1減算器)20f,20gは、ローパスフィルタ20b,20cの出力から二乗器20d,20eの出力を減算するものである。
【0053】
第3及び第4の減算器(第2減算器)20h,20iは、制御モード切替器21からの最終電圧指令値v
d*、v
q*(すなわちdq軸電圧生成部270により生成された第2の電圧指令値v
dv*,v
qv*)から第1及び第2の減算器20f,20gにより得られた値を減算する。
【0054】
また、本実施形態において電圧位相制御モードから電流ベクトル制御モードに切り替えられた場合、干渉電圧指令値V
d_LPF*,V
q_LPF*の初期値を第1及び第2の減算器20f,20gにより得られた値とし、dq軸電圧指令値v
d’,v
q’の初期値を第3及び第4の減算器20h,20iにより得られた値とする。これにより、非干渉制御と電流フィードバックとの初期値が適切とされ、電流及びトルクの脈動が抑えることとなる。
【0055】
図5は、本実施形態に係るモータ制御装置1及び従来のモータ制御装置それぞれについての電圧位相制御モードから電流ベクトル制御モードに切り替えたときのトルク挙動を示す図である。なお、
図5において縦軸はトルクを示し、横軸は時刻を示している。
【0056】
図5に示すように、従来のモータ制御装置は、干渉電圧指令値V
d_LPF*,V
q_LPF*について初期化を行っておらず、且つ、dq軸電圧指令値v
d’,v
q’との配分についても考慮されていない。このため、時刻0.1sにて電圧位相制御モードから電流ベクトル制御モードに切り替えられた場合、モータトルクは、
図5の破線に示すように、時刻0.15s時点において20Nm程度トルク指令値T
*よりも下回ってしまう。
【0057】
これに対して本実施形態に係るモータ制御装置1は、上記の如く、干渉電圧指令値V
d_LPF*,V
q_LPF*の初期値を第1及び第2の減算器20g,20fにより得られた値とし、dq軸電圧指令値v
d’,v
q’を第3及び第4の減算器20h,20iにより得られた値としている。このため、モータトルクは、
図5の実線に示すように、時刻0.1s〜0.15sの間においてトルク指令値T
*をやや下回るものの、ほぼトルク指令値T
*に追従することとなる。
【0058】
さらに、本実施形態に係るモータ制御装置1は、電圧位相制御モードから電流ベクトル制御モードへの切替を上記の表に従って行っている。このため、モータトルクは、
図5の太線に示すように、時刻0.1s〜0.15sの間においてもトルク指令値T
*に追従することとなる。これは、
図2及び表を参照して説明したように、電圧位相制御モードの電流指令値と電流ベクトル制御モードの電流指令値とが交差するタイミングで電圧位相制御モードから電流ベクトル制御モードへ切り替えられるため、トルク、dq軸電圧及びdq軸電流のいずれもが段差なく切り替わるからである。
【0059】
図6は、本実施形態に係るモータ制御装置1の動作の概略を示すタイミングチャートで
あり、(a)は回転数Nを示し、(b)は電圧振幅V
a,V
a*を示し、(c)は電流振幅I
a,I
a*を示している。なお、
図6に示す動作においては、トルク指令値T
*が一定であるものとする。
【0060】
まず、
図6(a)に示すように、時刻0から時刻t2を経て時刻t3まで比例的に回転数Nが増加したとする。これにより、電流ベクトル制御モードにおける電圧振幅V
aについても
図2を参照して説明したように比例的に増加し、時刻t2以前の時刻t1において上限値に達する。そして、電圧振幅V
aは時刻t2まで上限値を保つ(
図6(b)参照)。一方、電流振幅I
aは、時刻0から時刻t1まで一定値を保ち、時刻t1以降において単調増加する(
図6(c)参照)。
【0061】
そして、トルク指令値T
*が、電圧位相制御移行判定部に格納されるテーブルから求められる閾値以上になったとすると、時刻t2において電流ベクトル制御モードから電圧位相制御モードに切り替えられる。これにより、電流ベクトル制御モードにおける電圧振幅V
aから電圧位相制御モードにおける電圧振幅V
a*に移行し、値は増加する。また、このときの電圧振幅V
a*は上限値に達している(
図6(b)参照)。一方、電流振幅I
a,I
a*についても電流ベクトル制御モードにおける電流振幅I
aから電圧位相制御モードにおける電流振幅I
a*に移行し、値は減少する(
図6(c)参照)。
【0062】
その後、時刻t3まで電圧振幅V
a*は一定値を保ち、電流振幅I
a*は回転数Nの増加に合わせて単調増加する。
【0063】
そして、
図6(a)に示すように、時刻t3から時刻t5,t6を経て比例的に回転数Nが減少したとすると、時刻t5以前の時刻t4まで電圧振幅V
a*は一定値を保ち(
図6(b)参照)、電流振幅I
a*は回転数Nの減少に合わせて単調減少する(
図6(c)参照)。
【0064】
そして、時刻t4以降電圧振幅V
a*は回転数Nの減少に合わせて単調減少し(
図6(b)参照)、電流振幅I
a*はこれとは逆に単調増加する(
図6(c)参照)。
【0065】
そして、時刻t5において電流ベクトル制御モードにおける電流振幅I
aと電圧位相制御モードにおける電流振幅I
a*とが一致したとすると(又は電流振幅I
a*が電流振幅I
aよりも小さくなったとすると)、制御モードが電圧位相制御モードから電流ベクトル制御モードに切り替えられる。これにより、電圧位相制御モードにおける電圧振幅V
a*から電流ベクトル制御モードにおける電圧振幅V
aに移行する(
図6(b)参照)。また、電流振幅I
a,I
a*についても電圧位相制御モードにおける電流振幅I
a*から電流ベクトル制御モードにおける電流振幅I
aに移行する(
図6(c)参照)。この時点では時刻t2と異なり、電圧振幅V
a,V
a*及び電流振幅I
a,I
a*に段差が発生せず、電流及びトルクの脈動の抑制に寄与することができる。
【0066】
なお、時刻t5において電圧振幅V
aは上限値に達しているため、時刻t6までのこの値を保つ(
図6(b)参照)。一方、電流振幅I
aは回転数Nの減少に合わせて単調減少する(
図6(b)参照)。そして、時刻t6以降、電圧振幅V
aは回転数Nの減少に合わせて単調減少し(
図6(b)参照)、電流振幅I
aは一定値を保つ(
図6(c)参照)。
【0067】
図7及び
図8は、本実施形態に係るモータ制御装置1の動作の詳細を示すフローチャートであり、
図7は電圧位相制御モードにおける動作を示し、
図8は電流ベクトル制御モードにおける動作を示している。
【0068】
まず、
図7に示すように、モータ制御装置1は、トルク指令値T
*、dq軸電流検出値
i
d,i
q、dq軸電流指令値i
d*,i
q*、電気角検出値θ、回転数N、及びDC電圧V
dcを取得する(S1)。次いで、電流制御移行判定部23は、dq軸電流指令値i
d*,i
q*と、dq軸電流検出値i
d,i
qとを入力し、値i
a_LPF2*及び値i
a2を算出する(S2)。そして、電流振幅比較器23iは、値i
a2が値i
a_LPF2*以上であるか否かを判断する(S3)。
【0069】
値i
a2が値i
a_LPF2*以上であると判断した場合(S3:YES)、初期化処理が実行され(S4)、制御モードは電流ベクトル制御モードに移行し(S5)、
図7に示す処理は終了する。
【0070】
初期化処理では、まずdq軸電圧演算部20aによって、電圧振幅V
a*と電圧位相目標値α
ff*とが入力され、dq軸電圧指令値v
dv’,v
qv’が算出される。そして、dq軸電圧指令値v
dv’,v
qv’はローパスフィルタ20b,20cにより一次遅れフィルタ処理が施され、得られた値からdq軸電流検出値i
d,i
qにモータコイルの抵抗Rを乗じた値が減算される。そして、減算により得られた値が干渉電圧指令値V
d_LPF*,V
q_LPF*の初期値とされる。また、第2の電圧指令値v
dv*,v
qv*から上記の減算により得られた値を減算し、これにより得られた値をdq軸電圧指令値v
d’,v
q’の初期値とする。
【0071】
一方、値i
a2が値i
a_LPF2*以上でないと判断した場合(S3:NO)、電圧振幅生成部210は電圧振幅V
a*を生成すると共に、インダクタンス生成部16はdq軸インダクタンス差(Ld−Lq)
25℃を生成する(S6)。次に、トルク演算器230は、モータ温度25℃における磁石磁束Φ
a_25℃、dq軸電流検出値i
d,i
q、及び、dq軸インダクタンス差(Ld−Lq)
25℃を入力して、式(1)からモータトルク推定値T
calを算出する(S7)。
【0072】
その後、トルク演算器230は、モータトルク推定値T
calとトルク指令値T
*との差分を入力し、式(2)から電圧位相補正値α
fb*を算出する(S8)。
【0073】
次いで、dq軸電圧生成部270は、電圧位相補正値α
fb*と電圧位相目標値α
ff*との偏差α
*、及び、電圧振幅指令値V
a*から式(3)に基づいてdq軸電圧指令値v
dv*,v
qv*を算出する(S9)。
【0074】
次に、dq軸/UVW相変換器5は、回転子の電気角検出値θを入力して、式(4)により、dq軸電圧指令値v
d*,v
q*を三相電圧指令値v
u*,v
v*,v
w*に変換する(S10)。そして、三相電圧指令値v
u*,v
v*,v
w*に基づいてモータMが駆動され、
図7に示す処理は終了する。なお、
図7に示す処理は電流ベクトル制御モードに移行しない限り、モータ制御装置1の電源がオフとなるまで、繰り返し実行される。
【0075】
また、電流ベクトル制御モードでは
図8に示す処理が実行される。まず、モータ制御装置1は、トルク指令値T
*、dq軸電流検出値i
d,i
q、電気角検出値θ、回転数N、及びDC電圧V
dcを取得する(S11)。次いで、電圧位相制御移行判定部22は、モータ回転数NとDC電圧V
dcとを指標とするテーブルに基づいて閾値T
refを求める(S12)。そして、電圧位相制御移行判定部22は、トルク指令値T
*が閾値T
ref以上であるを判断する(S13)。
【0076】
トルク指令値T
*が閾値T
ref以上であると判断した場合(S13:YES)、制御モードは電圧位相制御モードに移行し(S14)、
図8に示す処理は終了する。
【0077】
一方、トルク指令値T
*が閾値T
ref以上でないと判断した場合(S13:NO)、
電流指令生成部110は、トルク指令値T
*、DC電圧V
dc、及びモータ回転数Nを入力のうえdq軸電流テーブルを参照し、dq軸電流指令値i
d*,i
q*を生成する(S15)。
【0078】
その後、干渉電圧生成部120はdq軸干渉電圧V
d_dcpl*,V
q_dcpl*を生成し、電流フィードバック制御器130及び非干渉制御器140は、公知の電流ベクトル制御を行ってdq軸電圧指令値v
di*,v
qi*を算出する(S16)。
【0079】
次に、dq軸/UVW相変換器5は、回転子の電気角検出値θを入力して、式(4)により、dq軸電圧指令値v
d*,v
q*を三相電圧指令値v
u*,v
v*,v
w*に変換する(S17)。そして、三相電圧指令値v
u*,v
v*,v
w*に基づいてモータMが駆動され、
図8に示す処理は終了する。なお、
図8に示す処理は電圧移行制御モードに移行しない限り、モータ制御装置1の電源がオフとなるまで、繰り返し実行される。
【0080】
このようにして、本実施形態に係るモータ制御装置によれば、非干渉制御について初期化を行うと共に、非干渉制御と電流フィードバックとの初期値についても適切とされるため、電流ベクトル制御モードにおいて非干渉制御を行いつつも、電圧位相制御モードから電流ベクトル制御モードに切替がトルクステップを伴う場合において電流及びトルクの脈動を抑制することができる。
【0081】
また、電圧振幅指令値V
a*,V
aを上記のように設定しているので、電流の大きさが電圧位相制御モードと電流ベクトル制御モードの適用領域境界で逆転する領域が得られる。そして、
図6の時刻t5のように、電流ベクトル制御モードのdq軸電流指令値i
d*,i
q*とdq軸電流検出値i
d,i
qとの一致を持って適用領域境界を検出して切替を判定する。その際、上記のフィードバックを行うことにより、切替前後のトルクが一致するようにしているので、トルク、電流の振幅と位相、電圧の振幅と位相が切替前後で段差無く一定となり、トルク段差やトルクショックを抑制することができる。よって、より適した初期化制御を行うことができる。
【0082】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に限られるものでは無く、本発明の趣旨を逸脱しない範囲で、変更を加えてもよい。
【0083】
例えば、電流振幅比較器23iは、dq軸電流指令値i
d*,i
q*の二乗和(過渡成分除去した二乗和)がdq軸電流検出値i
d,i
qの二乗和以下である場合、電流制御移行要求を行うと判断している。しかし、二乗和に限らず、二乗しない値(例えば絶対値)により電流制御移行要求を行うか否かを判断してもよい。