(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023034801
(43)【公開日】2023-03-13
(54)【発明の名称】モータ制御装置
(51)【国際特許分類】
H02P 21/24 20160101AFI20230306BHJP
【FI】
H02P21/24
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021141219
(22)【出願日】2021-08-31
(71)【出願人】
【識別番号】000006611
【氏名又は名称】株式会社富士通ゼネラル
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】齋藤 由樹
【テーマコード(参考)】
5H505
【Fターム(参考)】
5H505BB10
5H505DD08
5H505EE41
5H505EE49
5H505EE55
5H505GG02
5H505GG04
5H505JJ22
5H505JJ24
5H505JJ25
5H505JJ26
5H505LL14
5H505LL22
5H505LL41
(57)【要約】
【課題】モータの制御の安定化を図ること。
【解決手段】モータ制御装置100aにおいて、加算器44,45は、モータMを所望の回転数で駆動するためのd軸駆動用電圧指令値Vdm,q軸駆動用電圧指令値Vqmと、モータMのロータ位置の推定に用いられる高周波電流を発生させるためのd軸高周波電圧指令値Vdh
*,q軸高周波電圧指令値Vqh
*とを加算することによりd軸電圧指令値Vd
*,q軸電圧指令値Vq
*を算出し、軸誤差演算器30は、d軸高周波電圧指令値Vdh
*,q軸高周波電圧指令値Vqh
*の印加に応じて発生する高周波電流を用いて軸誤差Δθを算出し、高周波電流周波数算出器61は、機械角速度指令値ωm
*に応じた高周波電流周波数を算出し、高周波電圧指令値生成器43は、高周波電流周波数に基づいてd軸高周波電圧指令値Vdh
*,q軸高周波電圧指令値Vqh
*を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
モータを所望の回転数で駆動するための駆動用電圧指令値と、前記モータのロータ位置の推定に用いられる高周波電流を発生させるための高周波電圧指令値とを加算することにより電圧指令値を算出する加算器と、
前記高周波電圧指令値の印加に応じて発生する前記高周波電流を用いて軸誤差を算出する軸誤差演算器と、
前記モータの回転速度に応じた高周波電流周波数を出力する高周波電流周波数出力器と、
前記高周波電流周波数に基づいて前記高周波電圧指令値を生成する高周波電圧指令値生成器と、
を具備するモータ制御装置。
【請求項2】
前記高周波電流周波数出力器は、前記モータのロータの極数と前記モータのスロット数との最小公倍数と前記回転速度との乗算結果を2πで除算することにより、前記モータのコギングトルクに起因するコギング周波数であって、前記高周波電流の揺らぎの周波数を表す前記コギング周波数を算出し、前記コギング周波数に基づいて前記高周波電流周波数を算出する、
請求項1に記載のモータ制御装置。
【請求項3】
前記高周波電流周波数出力器は、前記コギング周波数に第一所定値を乗じた第一乗算結果に第一マージンを加算した第一周波数以上、かつ、前記コギング周波数に第二所定値を乗じた第二乗算結果から第二マージンを減算した第二周波数以下の周波数範囲にある周波数を前記高周波電流周波数として設定し、
前記第一所定値は0より大きい正の整数であり、前記第二所定値は前記第一所定値に1を加算した値である、
請求項2に記載のモータ制御装置。
【請求項4】
前記第一所定値は1である、
請求項3に記載のモータ制御装置。
【請求項5】
前記高周波電流周波数出力器は、
前記第一周波数が、前記モータ制御装置のキャリア周波数と前記駆動用電圧指令値の周波数帯とに基づいて決定される所定の基準周波数以上であるときは、前記第一周波数を前記高周波電流周波数として設定し、
前記第一周波数が前記基準周波数未満であり、かつ、前記第二周波数が前記基準周波数未満であるときは、前記第二周波数を前記高周波電流周波数として設定し、
前記第一周波数が前記基準周波数未満であり、かつ、前記第二周波数が前記基準周波数以上であるときは、前記基準周波数を前記高周波電流周波数として設定する、
請求項3に記載のモータ制御装置。
【請求項6】
鏡相電流ベクトル振幅指令値と前記高周波電流周波数とに基づいて高周波電圧振幅指令値を算出する高周波電圧振幅算出器、をさらに具備し、
前記高周波電圧指令値生成器は、前記高周波電流周波数と前記高周波電圧振幅指令値とに基づいて前記高周波電圧指令値を生成する、
請求項1に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モータ制御装置に関する。
【背景技術】
【0002】
交流モータのためのセンサレスベクトル制御におけるロータ位置の推定技術の一つとして、トルク発生に寄与しない高周波電圧をモータに印加し、検出電流に含まれる高周波成分(以下では「高周波電流」と呼ぶことがある)を用いてロータ位置の推定を行う技術がある。この技術では、高周波電圧の印加に応じて発生する高周波磁束ベクトルと同方向へ回転する同相電流ベクトルと、高周波磁束ベクトルとは逆方向へ回転する鏡相電流ベクトルとに基づいてロータ位置を推定する(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、モータが駆動する際には、主にモータのコギングトルクに起因して、モータの回転速度に応じて、電流に高周波の揺らぎが発生する。電流の揺らぎ(以下では「電流揺らぎ」と呼ぶことがある)の周波数(以下では「揺らぎ周波数」と呼ぶことがある)はモータの回転速度に応じて変化するため、モータの回転速度によっては、揺らぎ周波数が、ロータ位置の推定に用いられる高周波電流の周波数(以下では「高周波電流周波数」と呼ぶことがある)に近づいてしまう。揺らぎ周波数が高周波電流周波数に近づいてしまうと高周波電流に揺らぎが発生するため、ロータ位置の推定の精度(以下では「位置推定精度」と呼ぶことがある)が悪化する。その結果、モータの制御が不安定になってしまう。
【0005】
そこで、本開示では、モータの制御の安定化を図ることができる技術を提案する。
【課題を解決するための手段】
【0006】
本開示のモータ制御装置は、加算器と、軸誤差演算器と、高周波電流周波数出力器と、高周波電圧指令値生成器とを有する。前記加算器は、モータを所望の回転数で駆動するための駆動用電圧指令値と、前記モータのロータ位置の推定に用いられる高周波電流を発生させるための高周波電圧指令値とを加算することにより電圧指令値を算出する。前記軸誤差演算器は、前記高周波電圧指令値の印加に応じて発生する前記高周波電流を用いて前記軸誤差を算出する。前記高周波電流周波数出力器は、前記モータの回転速度に応じた高周波電流周波数を出力する。前記高周波電圧指令値生成器は、前記高周波電流周波数に基づいて前記高周波電圧指令値を生成する。
【発明の効果】
【0007】
本開示によれば、モータの制御の安定化を図ることができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本開示の実施例1のモータ制御装置の構成例を示す図である。
【
図2】
図2は、本開示の実施例1の高周波電圧指令値生成器の構成例を示す図である。
【
図3】
図3は、本開示の実施例1の軸誤差演算器の構成例を示す図である。
【
図4】
図4は、本開示の実施例1の同相鏡相電流ベクトル生成器の構成例を示す図である。
【
図5】
図5は、本開示の実施例1のモータ制御装置における処理手順の一例を示すフローチャートである。
【
図6】
図6は、本開示の実施例1のモータ制御装置の動作例を示す図である。
【
図7】
図7は、本開示の実施例2のモータ制御装置の構成例を示す図である。
【
図8】
図8は、本開示の実施例3のモータ制御装置の構成例を示す図である。
【
図9】
図9は、本開示の実施例3のモータ制御装置の動作例を示す図である。
【
図10】
図10は、本開示の実施例4のモータ制御装置の構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、本開示の実施例を図面に基づいて説明する。以下の実施例において、同一の部位には同一の符号を付し、重複する説明を省略することがある。
【0010】
本開示では、圧縮機を駆動する永久磁石同期モータ(Permanent Magnet Synchronous Motor:PMSM)の位置センサレスベクトル制御を行うモータ制御装置を一例に挙げて説明する。しかし、開示の技術は、磁気突極性を有するモータに対し、磁気突極性を利用してロータ位置の推定を行うモータ制御装置に広く適用可能である。
【0011】
[実施例1]
<モータ制御装置の構成>
図1は、本開示の実施例1のモータ制御装置の構成例を示す図である。
図1において、モータ制御装置100aは、減算器11,18,19と、速度制御器12と、加算器21,22,44,45と、電流指令値算出器14と、電流制御器20と、d-q/u,v,w変換器23と、PWM(Pulse Width Modulation)変調器24と、IPM(Intelligent Power Module)25とを有する。IPM25は、モータMに接続される。モータMの一例としてPMSMが挙げられる。
【0012】
また、モータ制御装置100aは、シャント抵抗26と、電流センサ27a,27bと、3φ電流算出器28とを有する。なお、モータ制御装置100aは、シャント抵抗26、または、電流センサ27a,27bの何れか一方を有していれば良い。
【0013】
また、モータ制御装置100aは、u,v,w/d-q変換器29と、軸誤差演算器30と、PLL(Phase Locked Loop)制御器31と、位置推定器32と、1/Pn処理器33と、非干渉化制御器36とを有する。
【0014】
また、モータ制御装置100aは、高周波除去フィルタ41,42と、高周波電圧指令値生成器43と、Pn処理器46と、高周波電流周波数算出器61とを有する。
【0015】
減算器11は、モータ制御装置100aの外部(例えば、上位のコントローラ)からモータ制御装置100aへ入力される機械角速度指令値ωm*から、1/Pn処理器33より出力される現在の推定角速度である機械角推定角速度ωmを減算することにより角速度誤差Δωを算出する。
【0016】
速度制御器12は、角速度誤差Δωの平均が0に近づくようなトルク指令値T*を生成する。
【0017】
電流指令値算出器14は、トルク指令値T*をd-q座標軸上のd軸電流指令値Id*とq軸電流指令値Iq*とに分配する。
【0018】
減算器18は、高周波除去フィルタ41より出力される高周波除去d軸電流値Idmをd軸電流指令値Id*から減算することにより、d軸電流指令値Id*と高周波除去d軸電流値Idmとの誤差であるd軸電流誤差Id_diffを算出する。減算器19は、高周波除去フィルタ42より出力される高周波除去q軸電流値Iqmをq軸電流指令値Iq*から減算することにより、q軸電流指令値Iq*と高周波除去q軸電流値Iqmとの誤差であるq軸電流誤差Iq_diffを算出する。
【0019】
電流制御器20は、入力されたd軸電流誤差Id_diffに基づいてPI(Proportional Integral)制御を行うことにより仮d軸電圧指令値Vdtを算出する。また、電流制御器20は、入力されたq軸電流誤差Iq_diffに基づいてPI制御を行うことにより仮q軸電圧指令値Vqtを算出する。
【0020】
非干渉化制御器36は、Pn処理器46より出力される電気角速度指令値ωe*と、電流指令値算出器14より出力されるd軸電流指令値Id*とに基づいて、仮d軸電圧指令値Vdtを補償するためのd軸非干渉化電圧指令値Vdaを生成する。また、非干渉化制御器36は、Pn処理器46より出力される電気角速度指令値ωe*と、電流指令値算出器14より出力されるq軸電流指令値Iq*とに基づいて、仮q軸電圧指令値Vqtを補償するためのq軸非干渉化電圧指令値Vqaを生成する。d軸非干渉化電圧指令値Vda及びq軸非干渉化電圧指令値Vqaは、d-q座標軸間の干渉をフィードフォワードでキャンセルするための非干渉化補償値である。
【0021】
加算器21は、d軸非干渉化電圧指令値Vdaを仮d軸電圧指令値Vdtに加算することによりd軸駆動用電圧指令値Vdmを算出する。加算器22は、q軸非干渉化電圧指令値Vqaを仮q軸電圧指令値Vqtに加算することによりq軸駆動用電圧指令値Vqmを算出する。これにより、d-q座標軸間の干渉がフィードフォワードでキャンセルされたd軸駆動用電圧指令値Vdm及びq軸駆動用電圧指令値Vqmが得られる。
【0022】
d-q/u,v,w変換器23は、加算器44,45より出力される2相のd軸電圧指令値Vd*及びq軸電圧指令値Vq*を、位置推定器32より出力される電気角位相θeに基づいて、3相のU相出力電圧指令値Vu*、V相出力電圧指令値Vv*及びW相出力電圧指令値Vw*へ変換する。位置推定器32より出力される電気角位相θeは、モータMの現在のロータ位置を示す。
【0023】
PWM変調器24は、U相出力電圧指令値Vu*、V相出力電圧指令値Vv*、W相出力電圧指令値Vw*と、PWMキャリア信号とに基づいて、6相のPWM信号を生成し、生成した6相のPWM信号をIPM25へ出力する。
【0024】
IPM25は、PWM変調器24より出力される6相のPWM信号に基づいて、直流電圧VdcからU相、V相、W相の3相の交流電圧を生成し、生成した3相それぞれの交流電圧をモータMのU相、V相、W相へ印加する。
【0025】
3φ電流算出器28は、シャント抵抗26を用いた1シャント方式で母線電流が検出される場合、PWM変調器24より出力される6相のPWMスイッチング情報と、検出された母線電流とから、モータMのU相電流値Iu、V相電流値Iv、W相電流値Iwを算出する。または、3φ電流算出器28は、電流センサ27a,27bでU相電流及びV相電流が検出される場合、残りのW相電流値Iwを“Iu+Iv+Iw=0”のキルヒホッフの法則に基づいて算出する。3φ電流算出器28は、各相の相電流値Iu,Iv,Iwをu,v,w/d-q変換器29へ出力する。
【0026】
u,v,w/d-q変換器29は、位置推定器32より出力される電気角位相θeに基づいて、3相のU相電流値Iu、V相電流値Iv、W相電流値Iwを、2相のd軸電流値Id及びq軸電流値Iqへ変換する。
【0027】
高周波電流周波数算出器61は、機械角速度指令値ωm
*に応じて高周波電圧の角周波数(以下では「高周波角周波数」と呼ぶことがある)ωh
*を算出する。高周波角周波数ωh
*は、高周波電流周波数fh
*を用いて、式(1)によって定義される。高周波電流周波数算出器61は、機械角速度指令値ωm
*に基づいて高周波電流周波数fh
*を決定することにより、機械角速度指令値ωm
*に応じた高周波角周波数ωh
*を式(1)に従って算出する。高周波電流周波数算出器61は、式(1)に従って算出した高周波角周波数ωh
*を軸誤差演算器30、高周波除去フィルタ41,42、及び、高周波電圧指令値生成器43へ出力する。
【数1】
【0028】
高周波除去フィルタ41は、d軸電流値Idの高周波成分をd軸電流値Idから除去することにより、トルク発生に寄与する駆動成分である高周波除去d軸電流値Idmをd軸電流値Idから抽出する。また、高周波除去フィルタ42は、q軸電流値Iqの高周波成分をq軸電流値Iqから除去することにより、トルク発生に寄与する駆動成分である高周波除去q軸電流値Iqmをq軸電流値Iqから抽出する。高周波除去フィルタ41,42は、例えば、バンドストップフィルタF(s)により実現される。高周波角周波数ωh
*をバンドストップの中心周波数とするバンドストップフィルタF(s)は式(2)に従って実現可能である。式(2)において、“s”はラプラス演算子、“d”はノッチの深さ、“ζ”はノッチの帯域幅を表す所定のフィルタ係数である。
【数2】
【0029】
PLL制御器31は、軸誤差Δθに基づいて、モータMの現在の推定角速度である電気角推定角速度ωeを算出する。
【0030】
位置推定器32は、電気角推定角速度ωeに基づいて電気角位相θeを推定する。
【0031】
1/Pn処理器33は、電気角推定角速度ωeをモータMの極対数Pnで除算することにより機械角推定角速度ωmを算出する。
【0032】
Pn処理器46は、機械角速度指令値ωm*にモータMの極対数Pnを乗算することに電気角速度指令値ωe*を算出する。
【0033】
高周波電圧指令値生成器43は、高周波角周波数ωh*と、モータ制御装置100aの外部(例えば、上位のコントローラ)からモータ制御装置100aへ入力される高周波電圧振幅指令値Vh*とに基づいて、d軸高周波電圧指令値Vdh*及びq軸高周波電圧指令値Vqh*を生成する。以下では、d軸高周波電圧指令値とq軸高周波電圧指令値とを「高周波電圧ベクトル」と総称することがある。高周波電圧ベクトルVdh*,Vqh*は、ロータ位置の推定に用いられる高周波電流を発生させるために生成され、ロータ位置の推定のためのトルク発生には寄与しない。つまり、ロータ位置の推定に用いられる高周波電流は、高周波電圧ベクトルVdh*,Vqh*の印加に応じて発生する。
【0034】
加算器44は、ロータ位置の推定のためのトルク発生に寄与するd軸駆動用電圧指令値Vdmとd軸高周波電圧指令値Vdh*とを加算することによりd軸電圧指令値Vd*を算出する。加算器45は、ロータ位置の推定のためのトルク発生に寄与するq軸駆動用電圧指令値Vqmとq軸高周波電圧指令値Vqh*とを加算することによりq軸電圧指令値Vq*を算出する。以下では、d軸駆動用電圧指令値Vdm及びq軸駆動用電圧指令値Vqmを「駆動用電圧指令値」と総称することがある。
【0035】
軸誤差演算器30は、d軸電流値Idと、q軸電流値Iqと、高周波角周波数ωh*とに基づいて、軸誤差Δθ(実際の回転軸と推定された回転軸との差)を算出する。d軸電流値Id及びq軸電流値Iqには高周波電流成分が含まれる。つまり、軸誤差演算器30は、高周波電圧ベクトルVdh*,Vqh*の印加に応じて発生する高周波電流ベクトルを用いて、d-q座標軸とd-q座標軸の推定座標軸とのズレである軸誤差Δθを算出する。
【0036】
<高周波電圧指令値生成器の構成>
図2は、本開示の実施例1の高周波電圧指令値生成器の構成例を示す図である。
図2において、高周波電圧指令値生成器43は、位相発生器43aと、余弦正弦信号発生器43bと、乗算器43cとを有する。
【0037】
位相発生器43aは、“0≦θh≦2π”の範囲で高周波角周波数ωh*を積分することにより、高周波電圧ベクトルの位相である高周波位相θhを生成する。
【0038】
余弦正弦信号発生器43bは、式(3)に従って、高周波位相θhの余弦・正弦値u(θh)を発生する。
【数3】
【0039】
乗算器43cは、余弦・正弦値u(θh)と高周波電圧振幅指令値Vh
*とに基づいて式(4)に従ってd軸高周波電圧指令値Vdh
*及びq軸高周波電圧指令値Vqh
*を生成する。
【数4】
【0040】
<軸誤差演算器の構成>
図3は、本開示の実施例1の軸誤差演算器の構成例を示す図である。
図3において、軸誤差演算器30は、同相鏡相電流ベクトル生成器301と、鏡相推定器302とを有する。軸誤差演算器30は、モータMの磁気突極性を利用し、高周波角周波数ωh
*と、d軸電流値Idと、q軸電流値Iqとに基づいて、軸誤差Δθを算出する。
図4は、本開示の実施例1の同相鏡相電流ベクトル生成器の構成例を示す図である。
図4において、同相鏡相電流ベクトル生成器301は、符号反転器b11と、D因子フィルタb12,b13とを有する。
【0041】
図4において、符号反転器b11は、高周波角周波数ωh
*の符号を反転し、符号反転後の高周波角周波数-ωh
*をD因子フィルタb12へ出力する。
【0042】
D因子フィルタb12,b13は、正相成分と逆相成分とを分離・抽出するフィルタであり、D因子フィルタb12,b13におけるD因子は、単位行列Iと交代行列Jとラプラス演算子sとを用いた式(5)によって定義される。
【数5】
【0043】
D因子フィルタb12は、符号反転後の高周波角周波数-ωh*に基づいて、d軸電流値Id及びq軸電流値Iqに含まれる同相電流ベクトルIhpを検出する。同相電流ベクトルIhpは、高周波電圧ベクトルVdh*,Vqh*の印加に応じて発生する高周波磁束ベクトルと同方向へ回転する。
【0044】
D因子フィルタb13は、高周波角周波数ωh*に基づいて、d軸電流値Id及びq軸電流値Iqに含まれる鏡相電流ベクトルIhnを検出する。鏡相電流ベクトルIhnは、高周波電圧ベクトルVdh*,Vqh*の印加に応じて発生する高周波磁束ベクトルと逆方向へ回転する。
【0045】
ここで、D因子フィルタb12,b13は、2×1ベクトルの各成分であるスカラ信号に対して、周波数特性F(s+jωh*)のフィルタと等価な働きをする。よって、F(s)をローパスの特性をもつように設計してD因子フィルタb12,b13に適用することで、D因子フィルタb12,b13は、ωh*を中心周波数とするバンドパスフィルタとして機能することになる。さらに、D因子フィルタb12,b13は、極性分離の特性を有している。つまり、D因子フィルタb12,b13における極性分離のバンドパス特性により、d軸電流値Id及びq軸電流値Iqを同相電流ベクトルIhpと鏡相電流ベクトルIhnとに分離することができる。
【0046】
鏡相推定器302は、同相電流ベクトルIhpと鏡相電流ベクトルIhnとに基づいて、式(6)及び式(7)に従って軸誤差Δθを算出する。つまり、鏡相推定器302は、ノルムを同一化した同相電流ベクトルIhpと鏡相電流ベクトルIhnとのベクトル加算によって得られる合成ベクトルの逆正接を軸誤差Δθとして算出する。
【数6】
【数7】
【0047】
<モータ制御装置における処理手順>
図5は、本開示の実施例1のモータ制御装置における処理手順の一例を示すフローチャートである。
【0048】
コギングトルクに起因する電流揺らぎが発生する揺らぎ周波数の次数は、モータMのロータの極数(以下では「ロータ極数」と呼ぶことがある)と、モータMのスロット数(以下では「モータスロット数」と呼ぶことがある)とに応じて定まる。例えば、モータMがP極Sスロットのモータである場合には、PとSの最小公倍数の周波数の電流揺らぎが発生する。さらに、PとSの最小公倍数の2分の1倍、2倍、3倍、…、n倍の次数の周波数の電流揺らぎも発生する。例えば、モータMが6極9スロットのモータである場合、6と9との最小公倍数である18次の周波数の他、6と9との最小公倍数の2分の1倍の9次の周波数、及び、36次、54次、…という18×n次の周波数の電流揺らぎが発生する。
【0049】
一方で、同相鏡相電流ベクトル生成器301はバンドパスフィルタとして機能し、通過周波数領域が広いほどバンドパスフィルタとしての同相鏡相電流ベクトル生成器301の応答速度は速くなる。このため、同相鏡相電流ベクトル生成器301におけるフィルタ定数の設計では、駆動成分の電流を十分に除去できる程度にフィルタ定数を設計することが好ましい。
【0050】
ここで、軸誤差の演算はキャリア信号の1周期毎に行われるため、高周波電流周波数fh*がキャリア周波数に近い高い値であると、高周波電流の1周期あたりのサンプリング回数が少なくなり、位置推定の精度が低下する。このため、高周波電流周波数fh*はキャリア周波数に対して十分に低い周波数(例えば20分の1)であることが好ましい。また、上述のように、バンドパスフィルタとして機能する同相鏡相電流ベクトル生成器301によって、駆動成分の電流を除去するため、高周波電流周波数fh*は駆動用電圧指令値の周波数帯より十分に高い周波数(例えば25倍)であることが好ましい。したがって、高周波電流周波数fh*は、モータ制御装置100aのキャリア周波数より十分に低く、駆動用電圧指令値の周波数帯より十分に高い周波数に設定されるのが好ましい。
【0051】
しかし、高周波電流周波数fh*を固定値にしておくと、高周波角周波数ωh*も固定値となり、同相鏡相電流ベクトル生成器301の通過周波数領域が固定される。そのため、モータMの回転速度によっては、同相鏡相電流ベクトル生成器301の通過周波数領域にコギングトルクに起因する揺らぎ周波数が含まれてしまう場合がある。この場合、同相鏡相電流ベクトル生成器301において、ロータ位置の推定のためのトルク発生に寄与しない高周波電圧ベクトルVdh*,Vqh*によって発生する電流以外の成分まで抽出されてしまう。この結果、モータMの回転速度によっては、位置推定精度が悪化してしまう。
【0052】
そこで、まず、ステップS100では、高周波電流周波数算出器61は、式(8)に従って、ロータ極数Pとモータスロット数Sとの最小公倍数と機械角速度指令値ωm
*との乗算結果を2πで除算することにより、揺らぎ周波数を表すコギング周波数fcogを算出する。
【数8】
【0053】
次いで、ステップS105では、高周波電流周波数算出器61は、式(9)に従って、コギング周波数fcogと第一マージンfmg1との加算値(以下では「マージン加算周波数」と呼ぶことがある)が所定の基準周波数fh1以上であるか否かを判定する。基準周波数fh1は、上述の、高周波電流周波数fh
*として好ましい周波数、すなわち、モータ制御装置100aのキャリア周波数より十分に低く、駆動用電圧指令値の周波数帯より十分に高い周波数に予め決定される。例えば、キャリア周波数が4kHz、駆動電圧の周波数が8Hzである時、基準周波数fh1は、200Hzと設定することができる。マージン加算周波数が基準周波数fh1以上であるときは(ステップS105:Yes)、処理はステップS110へ進み、マージン加算周波数が基準周波数fh1未満であるときは(ステップS105:No)、処理はステップS115へ進む。
【数9】
【0054】
ステップS110では、高周波電流周波数算出器61は、式(10)に従って、マージン加算周波数を高周波電流周波数fh
*として設定する。
【数10】
【0055】
一方で、ステップS115では、高周波電流周波数算出器61は、式(11)に従って、コギング周波数fcogの2倍の値から第二マージンfmg2を減算した値(以下では「マージン減算周波数」と呼ぶことがある)が基準周波数fh1未満であるか否かを判定する。マージン減算周波数が基準周波数fh1未満であるときは(ステップS115:Yes)、処理はステップS120へ進み、マージン減算周波数が基準周波数fh1以上であるときは(ステップS115:No)、処理はステップS125へ進む。
【数11】
【0056】
第一マージンfmg1は、同相鏡相電流ベクトル生成器301の通過周波数領域の幅と、高周波電流の大きさと、コギング周波数fcogの揺らぎの大きさとに基づいて予め決定されるマージンであり、例えば60Hzである。また、第二マージンfmg2は、同相鏡相電流ベクトル生成器301の通過周波数領域の幅と、高周波電流の大きさと、コギング周波数fcogの2倍の周波数の揺らぎの大きさとに基づいて予め決定されるマージンであり、例えば30Hzである。
【0057】
ステップS120では、高周波電流周波数算出器61は、式(12)に従って、マージン減算周波数を高周波電流周波数fh
*として設定する。
【数12】
【0058】
一方で、ステップS125では、高周波電流周波数算出器61は、式(13)に従って、基準周波数fh1を高周波電流周波数fh
*として設定する。
【数13】
【0059】
ステップS110,S120,S125の処理の後、処理はステップS130へ進む。
【0060】
ステップS130では、高周波電流周波数算出器61は、式(1)に従って高周波電流周波数fh*から高周波角周波数ωh*を算出し、算出した高周波角周波数ωh*を軸誤差演算器30、高周波除去フィルタ41,42、及び、高周波電圧指令値生成器43へ出力する。
【0061】
以上のように、機械角速度指令値ωm*に応じて変化するコギング周波数fcogに基づいて高周波電流周波数fh*を変化させることにより、同相鏡相電流ベクトル生成器301の通過周波数領域にコギングトルクに起因して発生する揺らぎ周波数が含まれることを防止することができる。
【0062】
<モータ制御装置の動作>
図6は、本開示の実施例1のモータ制御装置の動作例を示す図である。
【0063】
高周波電流周波数算出器61が
図5に示すフローチャートに従って動作する結果、機械角速度指令値ωm
*と高周波電流周波数fh
*との関係が
図6に示すものになる。
図6から分かるように、モータ制御装置100aでは、モータMの回転速度に応じて発生する電流揺らぎを避けることができるように、機械角速度指令値ωm
*に応じて高周波電流周波数fh
*が変化する。
【0064】
なお、高周波電流周波数算出器61は、コギング周波数fcogに第一所定値αを乗じた第一乗算結果に第一マージンfmg1を加算した値をマージン加算周波数として算出し、コギング周波数fcogに第二所定値βを乗じた第二乗算結果から第二マージンfmg2を減算した値をマージン減算周波数として算出しても良い。第一所定値αは、0より大きい正の整数であり、第二所定値βは、第一所定値αに1を加算した値である。
図5及び
図6では、一例として、第一所定値αを1とした。つまり、高周波電流周波数算出器61は、コギング周波数fcogに第一所定値αを乗じた第一乗算結果に第一マージンfmg1を加算した周波数以上、かつ、コギング周波数fcogに第二所定値βを乗じた第二乗算結果から第二マージンfmg2を減算した周波数以下の周波数範囲にある周波数を高周波電流周波数fh
*として設定しても良い。このようにすることで、高周波電流周波数fh
*をどのような値に設定した場合であっても、高周波電流周波数fh
*を揺らぎ周波数から遠ざけることができる。
【0065】
以上のように、モータMの回転速度に相当する機械角速度指令値ωm*に応じて高周波電流周波数fh*を変化させることで、高周波電流周波数をモータ制御装置100aのキャリア周波数より十分に低く、駆動用電圧指令値の周波数帯より十分に高い周波数とし、揺らぎ周波数から遠ざけることができるため、高周波電流が電流揺らぎの影響を受けないようにすることができる。これにより、精度良くロータ位置を推定することができるため、モータMの制御の安定化を図ることができる。
【0066】
以上、実施例1について説明した。
【0067】
[実施例2]
実施例2では、鏡相電流ベクトルIhnの振幅が一定になるような高周波電圧振幅指令値Vh*を算出する点が実施例1と相違する。以下、実施例1と異なる点について説明する。
【0068】
<モータ制御装置の構成>
図7は、本開示の実施例2のモータ制御装置の構成例を示す図である。
図7において、モータ制御装置100bは、高周波電圧振幅算出器62を有する。高周波電圧振幅算出器62には、高周波電流周波数算出器61から高周波角周波数ωh
*が入力され、モータ制御装置100bの外部(例えば、上位のコントローラ)から鏡相電流ベクトル振幅指令値|Ihn|
*が入力される。
【0069】
ここで、実施例1のように機械角速度指令値ωm*に応じて高周波電流周波数fh*を変化させると、トルク発生に寄与しない高周波電流の振幅が高周波電流周波数fh*に応じて変化する。また、高周波電流に含まれる鏡相電流ベクトルIhnの振幅は、高周波電圧振幅指令値Vh*が大きいほど大きくなり、位置推定精度は、鏡相電流ベクトルIhnの振幅が大きいほど高まる。このため、高周波電流周波数fh*の大きさにかかわらず位置推定精度が保証されるように、高周波電流周波数fh*の大きさにかかわらず一律に高周波電圧振幅指令値Vh*を大きくしておくことが考えられる。しかし、高周波電圧振幅指令値Vh*を大きくすると、モータMに騒音が発生したり、モータMの効率が悪化したりする等のデメリットが生じる。
【0070】
そこで、高周波電圧振幅算出器62は、式(14)に従って、鏡相電流ベクトル振幅指令値|Ihn|
*と高周波角周波数ωh
*とに基づいて高周波電圧振幅指令値Vh
*を算出する。式(14)において、“Ld”はモータMのd軸インダクタンス、“Lq”はモータMのq軸インダクタンスである。ここで、鏡相電流ベクトル振幅指令値|Ihn|
*は、位置推定精度が保証される最低限の値に予め決定される。高周波電圧振幅算出器62は、式(14)に従って算出した高周波電圧振幅指令値Vh
*を高周波電圧指令値生成器43へ出力する。
【数14】
【0071】
式(14)に従って高周波電圧振幅指令値Vh*が算出されることにより、鏡相電流ベクトルIhnの振幅は、位置推定精度が保証される最低限の値として一定になる。その結果、モータMの回転速度にかかわらず位置推定精度を保証しつつ、高周波電圧振幅指令値Vh*を最低限の値に抑えることができる。
【0072】
以上、実施例2について説明した。
【0073】
[実施例3]
実施例3では、機械角推定角速度ωmの変動成分除去後の機械角推定角速度ωm_iirに基づいて高周波角周波数ωh*を算出する点が実施例1と相違する。以下、実施例1と異なる点について説明する。
【0074】
<モータ制御装置の構成>
図8は、本開示の実施例3のモータ制御装置の構成例を示す図である。
図8において、モータ制御装置100cは、IIRフィルタ51と、高周波電流周波数算出器65とを有する。
【0075】
IIRフィルタ51は、1/Pn処理器33より出力される機械角推定角速度ωmの変動成分を除去し、変動成分除去後の機械角推定角速度ωm_iirを高周波電流周波数算出器65へ出力する。
【0076】
高周波電流周波数算出器65は、
図5のステップS100において、式(15)に従って、ロータ極数Pとモータスロット数Sとの最小公倍数と機械角推定角速度ωm_iirとの乗算結果を2πで除算することによりコギング周波数fcogを算出する。
【数15】
【0077】
<モータ制御装置の動作>
図9は、本開示の実施例3のモータ制御装置の動作例を示す図である。
【0078】
高周波電流周波数算出器65が
図5に示すフローチャートに従って動作する結果、機械角推定角速度ωm_iirと高周波電流周波数fh
*との関係が
図9に示すものになる。
図9から分かるように、モータ制御装置100cでは、モータMの回転速度に応じて発生する電流揺らぎを避けることができるように、機械角推定角速度ωm_iirに応じて高周波電流周波数fh
*が変化する。
【0079】
以上のように、モータMの回転速度を表すパラメータとして機械角速度指令値ωm*の替わりに機械角推定角速度ωm_iirを用いても、実施例1と同様に、高周波電流周波数を揺らぎ周波数から遠ざけることができるため、高周波電流が電流揺らぎの影響を受けないようにすることができる。
【0080】
以上、実施例3について説明した。
【0081】
[実施例4]
実施例4では、鏡相電流ベクトルIhnの振幅が一定になるような高周波電圧振幅指令値Vh*を算出する点が実施例3と相違する。以下、実施例3と異なる点について説明する。
【0082】
<モータ制御装置の構成>
図10は、本開示の実施例4のモータ制御装置の構成例を示す図である。
図10において、モータ制御装置100dは、高周波電圧振幅算出器62を有する。高周波電圧振幅算出器62には、高周波電流周波数算出器65から高周波角周波数ωh
*が入力され、モータ制御装置100dの外部(例えば、上位のコントローラ)から鏡相電流ベクトル振幅指令値|Ihn|
*が入力される。
【0083】
高周波電圧振幅算出器62は、式(14)に従って、鏡相電流ベクトル振幅指令値|Ihn|*と高周波角周波数ωh*とに基づいて高周波電圧振幅指令値Vh*を算出し、算出した高周波電圧振幅指令値Vh*を高周波電圧指令値生成器43へ出力する。
【0084】
以上のように、モータMの回転速度を表すパラメータとして機械角速度指令値ωm*の替わりに機械角推定角速度ωm_iirを用いても、実施例2と同様に、モータMの回転速度にかかわらず位置推定精度を保証しつつ、高周波電圧振幅指令値Vh*を最低限の値に抑えることができる。
【0085】
以上、実施例4について説明した。
【0086】
以上のように、本開示のモータ制御装置(実施例のモータ制御装置100a,100b,100c,100d)は、加算器(実施例の加算器44,45)と、軸誤差演算器(実施例の軸誤差演算器30)と、高周波電流周波数出力器(実施例の高周波電流周波数算出器61,65)と、高周波電圧指令値生成器(実施例の高周波電圧指令値生成器43)とを有する。加算器は、モータ(実施例のモータM)を所望の回転数で駆動するための駆動用電圧指令値(実施例のd軸駆動用電圧指令値Vdm,q軸駆動用電圧指令値Vqm)と、モータのロータ位置の推定に用いられる高周波電流を発生させるための高周波電圧指令値(実施例のd軸高周波電圧指令値Vdh*,q軸高周波電圧指令値Vqh*)とを加算することにより電圧指令値(実施例のd軸電圧指令値Vd*,q軸電圧指令値Vq*)を算出する。軸誤差演算器は、高周波電圧指令値の印加に応じて発生する高周波電流を用いて軸誤差を算出する。高周波電流周波数出力器は、モータの回転速度(実施例の機械角速度指令値ωm*,機械角推定角速度ωm_iir)に応じた高周波電流周波数(実施例の高周波電流周波数fh*)を出力する。高周波電圧指令値生成器は、高周波電流周波数に基づいて高周波電圧指令値を生成する。
【0087】
例えば、高周波電流周波数出力器は、モータのロータの極数とモータのスロット数との最小公倍数と回転速度との乗算結果を2πで除算することにより、モータのコギングトルクに起因する周波数であって、高周波電流の揺らぎの周波数を表すコギング周波数(実施例のコギング周波数fcog)を算出し、コギング周波数に基づいて高周波電流周波数を算出する。
【0088】
また例えば、高周波電流周波数出力器は、コギング周波数に第一所定値(実施例の第一所定値α)を乗じた第一乗算結果に第一マージン(実施例の第一マージンfmg1)を加算した第一周波数(実施例のマージン加算周波数)以上、かつ、コギング周波数に第二所定値(実施例の第二所定値β)を乗じた第二乗算結果から第二マージン(実施例の第二マージンfmg2)を減算した第二周波数(実施例のマージン減算周波数)以下の周波数範囲にある周波数を高周波電流周波数として設定する。第一所定値は0より大きい正の整数であり、第二所定値は第一所定値に1を加算した値である。
【0089】
また例えば、第一所定値は1である。
【0090】
また例えば、高周波電流周波数出力器は、第一周波数が、モータ制御装置のキャリア周波数と駆動用電圧指令値の周波数帯とに基づいて決定される所定の基準周波数(実施例の基準周波数fh1)以上であるときは、第一周波数を高周波電流周波数として設定する。また例えば、高周波電流周波数出力器は、第一周波数が基準周波数未満であり、かつ、第二周波数が基準周波数未満であるときは、第二周波数を高周波電流周波数として設定する。また例えば、高周波電流周波数出力器は、第一周波数が基準周波数未満であり、かつ、第二周波数が基準周波数以上であるときは、基準周波数を高周波電流周波数として設定する。
【0091】
また、本開示のモータ制御装置(実施例のモータ制御装置100b,100d)は、高周波電圧振幅算出器(実施例の高周波電圧振幅算出器62)をさらに有する。高周波電圧振幅算出器は、鏡相電流ベクトル振幅指令値(実施例の鏡相電流ベクトル振幅指令値|Ihn|*)と高周波電流周波数とに基づいて高周波電圧振幅指令値(高周波電圧振幅指令値Vh*)を算出する。高周波電圧指令値生成器は、高周波電流周波数と高周波電圧振幅指令値とに基づいて高周波電圧指令値を生成する。
【符号の説明】
【0092】
100a,100b,100c,100d モータ制御装置
44,45 加算器
30 軸誤差演算器
61,65 高周波電流周波数算出器
43 高周波電圧指令値生成器
62 高周波電圧振幅算出器