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

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

▶ 株式会社豊田自動織機の特許一覧

<>
  • 特開-モータの制御装置 図1
  • 特開-モータの制御装置 図2
  • 特開-モータの制御装置 図3
  • 特開-モータの制御装置 図4
  • 特開-モータの制御装置 図5
  • 特開-モータの制御装置 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022068658
(43)【公開日】2022-05-10
(54)【発明の名称】モータの制御装置
(51)【国際特許分類】
   H02P 23/04 20060101AFI20220427BHJP
   H02P 27/06 20060101ALI20220427BHJP
【FI】
H02P23/04
H02P27/06
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2020177453
(22)【出願日】2020-10-22
(71)【出願人】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】朝比奈 和希
(72)【発明者】
【氏名】松岡 大輔
(72)【発明者】
【氏名】名和 政道
【テーマコード(参考)】
5H505
【Fターム(参考)】
5H505AA16
5H505CC01
5H505DD03
5H505DD05
5H505DD06
5H505EE41
5H505EE49
5H505EE55
5H505GG02
5H505GG04
5H505HA10
5H505HB01
5H505JJ03
5H505JJ17
5H505JJ24
5H505JJ29
5H505LL09
5H505LL14
5H505LL20
5H505LL22
5H505LL41
5H505LL58
(57)【要約】
【課題】モータに流れる電流により算出されるモータの回転数やロータの位置により算出されるモータの回転数を用いてモータの駆動を制御する制御装置において、モータの回転数のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないトルクリップルを抑制する。
【解決手段】モータMに流れる電流Iqにより回転数ω1を算出する第1の算出部71と、ロータの位置θにより回転数ω2を算出する第2の算出部72と、回転数ω1と回転数ω2が回転数ω3に反映される割合である重みw1、回転数ω1、及び回転数ω2により回転数ω3を算出する第3の算出部73と、回転数ω3と回転数指令値ω*との回転数差Δωに基づいて電圧指令値Vd*、Vq*を出力する指令値出力部とを備えて制御装置1を構成し、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aω、電流Iqに含まれる脈動の振幅値Ai、及び電圧指令値Vq*に含まれる脈動の振幅値Avの少なくとも1つの振幅値により重みw1を算出する。
【選択図】図1
【特許請求の範囲】
【請求項1】
モータに流れる電流により前記モータの第1の回転数を算出する第1の算出部と、
前記モータが有するロータの位置により前記モータの第2の回転数を算出する第2の算出部と、
前記第1の回転数と前記第2の回転数が第3の回転数に反映される割合である第1の重み、前記第1の回転数、及び前記第2の回転数により前記第3の回転数を算出する第3の算出部と、
前記第3の回転数と回転数指令値との回転数差に基づいて電圧指令値を出力する指令値出力部と、
搬送波の電圧値と前記電圧指令値との比較結果に応じた駆動信号を出力するドライブ回路と、
前記駆動信号によりスイッチング素子がオン、オフすることにより、入力される直流電力を交流電力に変換してモータを駆動させるインバータ回路と、
を備え、
前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値により前記第1の重みを求める
ことを特徴とするモータの制御装置。
【請求項2】
請求項1に記載のモータの制御装置であって、
前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値と、前記第1の重みとの対応関係を示す情報を記憶する記憶部を備え、
前記第3の算出部は、前記情報を参照して、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値に対応する前記第1の重みを求める
ことを特徴とするモータの制御装置。
【請求項3】
請求項1に記載のモータの制御装置であって、
前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値が、前記モータのトルクリップルの振幅値が許容値以下であるときの前記少なくとも1つの振幅値である目標振幅値になるように、PI制御により前記第1の重みを求める
ことを特徴とするモータの制御装置。
【請求項4】
請求項1に記載のモータの制御装置であって、
前記第3の算出部は、
前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値により第2の重みを求めるとともに、前記第2の回転数により第3の重みを求め、
前記第2の重みと前記第3の重みとの乗算値を前記第1の重みとする
ことを特徴とするモータの制御装置。
【請求項5】
請求項4に記載のモータの制御装置であって、
前記第2の回転数と、前記第3の重みとの対応関係を示す情報を記憶する記憶部を備え、
前記第3の算出部は、
前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値が、前記モータのトルクリップルの振幅値が許容値以下であるときの前記少なくとも1つの振幅値である目標振幅値になるように、PI制御により前記第2の重みを求め、
前記情報を参照して、前記第2の回転数に対応する前記第3の重みを求め、
前記第2の重みと前記第3の重みとの乗算値を前記第1の重みとする
ことを特徴とするモータの制御装置。
【請求項6】
請求項1に記載のモータの制御装置であって、
前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値により前記第1の重みを求める
ことを特徴とするモータの制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータの制御装置に関する。
【背景技術】
【0002】
モータの制御装置として、モータの回転数が閾値より小さい場合、センサで検出されるロータの位置により算出されるモータの回転数を用いてモータの駆動を制御(センサ使用制御)し、モータの回転数が閾値以上である場合、モータに流れる電流により算出される回転数を用いてモータの駆動を制御(センサレス制御)するものがある。この制御装置によれば、モータの高回転時、ロータの位置に含まれる量子化誤差の影響によりモータの回転数に含まれる脈動(高周波成分)の振幅値が増大することを抑えることができるため、モータに流れる電流や電圧指令値に含まれる脈動の振幅値が増大することを抑えることができ、トルクリップルを抑制することができる。関連する技術として、特許文献1がある。
【0003】
しかしながら、上記制御装置では、モータの回転数に含まれる脈動の振幅値が比較的大きい状態であるにもかかわらず、モータの回転数が閾値より小さい場合、モータに流れる電流により算出される回転数が用いられてモータの駆動が制御されないため、モータに流れる電流や電圧指令値に含まれる脈動の振幅値が増大することを抑えることができず、トルクリップルを抑制することができないおそれがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007-168971号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の一側面に係る目的は、モータに流れる電流により算出されるモータの回転数やロータの位置により算出されるモータの回転数を用いてモータの駆動を制御する制御装置において、モータの回転数のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないトルクリップルを抑制することである。
【課題を解決するための手段】
【0006】
本発明に係る一つの形態であるモータの制御装置は、モータに流れる電流により前記モータの第1の回転数を算出する第1の算出部と、前記モータが有するロータの位置により前記モータの第2の回転数を算出する第2の算出部と、前記第1の回転数と前記第2の回転数が第3の回転数に反映される割合である第1の重み、前記第1の回転数、及び前記第2の回転数により前記第3の回転数を算出する第3の算出部と、前記第3の回転数と回転数指令値との回転数差に基づいて電圧指令値を出力する指令値出力部と、搬送波の電圧値と前記電圧指令値との比較結果に応じた駆動信号を出力するドライブ回路と、前記駆動信号によりスイッチング素子がオン、オフすることにより、入力される直流電力を交流電力に変換してモータを駆動させるインバータ回路とを備え、前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値により前記第1の重みを求める。
【0007】
これにより、第2の回転数に含まれる脈動の振幅値、モータに流れる電流に含まれる脈動の振幅値、及び電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値が比較的大きい場合において、ロータの位置に含まれる量子化誤差の影響が無い第1の回転数が第3の回転数となるように第1の重みを求めることができるため、ロータの位置に含まれる量子化誤差の影響が無い第3の回転数を用いてモータの駆動を制御することができる。そのため、モータに流れる電流や電圧指令値に含まれる脈動の振幅値を抑えることができ、モータの回転数のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないモータのトルクリップルを抑制することができる。
【0008】
また、上記制御装置は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値と、前記第1の重みとの対応関係を示す情報を記憶する記憶部を備え、前記第3の算出部は、前記情報を参照して、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値に対応する前記第1の重みを求めるように構成してもよい。
【0009】
これにより、第1の重みを求める際、第3の算出部にかかる計算処理の負荷を低減することができる。
【0010】
また、前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値が、前記モータのトルクリップルの振幅値が許容値以下であるときの前記少なくとも1つの振幅値である目標振幅値になるように、PI制御により前記第1の重みを求めるように構成してもよい。
【0011】
これにより、脈動の振幅値と第1の重みとの対応関係を示す情報を事前に用意する必要がなく、重みを算出するための工数を低減することができる。
【0012】
また、前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値により第2の重みを求めるとともに、前記第2の回転数により第3の重みを求め、前記第2の重みと前記第3の重みとの乗算値を前記第1の重みとするように構成してもよい。
【0013】
これにより、第2の回転数に含まれる脈動の振幅値、モータに流れる電流に含まれる脈動の振幅値、及び電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値が比較的大きい場合で、かつ、第2の回転数が比較的大きい場合において、すなわち、ロータの位置に含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性が高く、かつ、モータの回転数が比較的大きい場合において、ロータの位置に含まれる量子化誤差の影響が無い第1の回転数が第3の回転数となるように第1の重みを求めることができるため、ロータの位置に含まれる量子化誤差の影響が無い第3の回転数を用いてモータの駆動を制御することができ、モータに流れる電流や電圧指令値に含まれる脈動の振幅値を抑えることができ、モータのトルクリップルを抑制することができる。
【0014】
また、上記制御装置は、前記第2の回転数と、前記第3の重みとの対応関係を示す情報を記憶する記憶部を備え、前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値の少なくとも1つの振幅値が、前記モータのトルクリップルの振幅値が許容値以下であるときの前記少なくとも1つの振幅値である目標振幅値になるように、PI制御により前記第2の重みを求め、前記情報を参照して、前記第2の回転数に対応する前記第3の重みを求め、前記第2の重みと前記第3の重みとの乗算値を前記第1の重みとするように構成してもよい。
【0015】
また、前記第3の算出部は、前記第2の回転数に含まれる脈動の振幅値、前記モータに流れる電流に含まれる脈動の振幅値、及び前記電圧指令値に含まれる脈動の振幅値により前記第1の重みを求めるように構成してもよい。
【0016】
これにより、第2の回転数に含まれる脈動の振幅値、モータに流れる電流に含まれる脈動の振幅値、及び電圧指令値に含まれる脈動の振幅値が比較的大きい場合において、すなわち、ロータの位置に含まれる量子化誤差の影響により各脈動の振幅値が比較的大きくなっている可能性が高い場合において、ロータの位置に含まれる量子化誤差の影響が無い第1の回転数が第3の回転数となるように第1の重みを設定することができるため、ロータの位置に含まれる量子化誤差の影響が無い第3の回転数を用いてモータの駆動を制御することができ、モータに流れる電流や電圧指令値に含まれる脈動の振幅値を抑えることができ、モータのトルクリップルを抑制することができる。
【発明の効果】
【0017】
本発明によれば、モータに流れる電流により算出される回転数やロータの位置により算出されるモータの回転数を用いてモータの駆動を制御する制御装置において、モータの回転数のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないトルクリップルを抑制することができる。
【図面の簡単な説明】
【0018】
図1】実施形態のモータの制御装置の一例を示す図である。
図2】記憶部に記憶される情報の一例を示す図である。
図3】第1実施例における第3の算出部の動作を示すフローチャートである。
図4】第2実施例における第3の算出部の動作を示すフローチャートである。
図5】第3実施例における第3の算出部の動作を示すフローチャートである。
図6】第4実施例における第3の算出部の動作を示すフローチャートである。
【発明を実施するための形態】
【0019】
図面に基づいて実施形態について詳細を説明する。
【0020】
図1は、実施形態のモータの制御装置の一例を示す図である。
【0021】
図1に示す制御装置1は、例えば、車両(電動フォークリフトやプラグインハイブリッド車など)に搭載されるモータM(三相誘導モータや三相同期モータなど)を駆動するための制御装置であって、インバータ回路2と、制御回路3とを備える。なお、モータMは、ロータ(回転子)の位置θ(ロータの基準位置から現在の位置までの位相)を検出し、その検出した位置θを制御回路3に出力する電気角検出部Sp(レゾルバなど)を備えているものとする。
【0022】
インバータ回路2は、電源Pから供給される直流電力を交流電力に変換してモータMを駆動するものであって、コンデンサCと、スイッチング素子SW1~SW6(IGBT(Insulated Gate Bipolar Transistor)など)と、電流センサSi1、Si2とを備える。すなわち、コンデンサCの一方端が電源Pの正極端子及びスイッチング素子SW1、SW3、SW5の各コレクタ端子に接続され、コンデンサCの他方端が電源Pの負極端子及びスイッチング素子SW2、SW4、SW6の各エミッタ端子に接続されている。スイッチング素子SW1のエミッタ端子とスイッチング素子SW2のコレクタ端子との接続点は電流センサSi1を介してモータMのU相の入力端子に接続されている。スイッチング素子SW3のエミッタ端子とスイッチング素子SW4のコレクタ端子との接続点は電流センサSi2を介してモータMのV相の入力端子に接続されている。スイッチング素子SW5のエミッタ端子とスイッチング素子SW6のコレクタ端子との接続点はモータMのW相の入力端子に接続されている。
【0023】
コンデンサCは、電源Pからインバータ回路2に出力される電圧を平滑する。
【0024】
スイッチング素子SW1は、制御回路3から出力される駆動信号S1がハイレベルであるときオンし、駆動信号S1がローレベルであるときオフする。スイッチング素子SW2は、制御回路3から出力される駆動信号S2がハイレベルであるときオンし、駆動信号S2がローレベルであるときオフする。スイッチング素子SW3は、制御回路3から出力される駆動信号S3がハイレベルであるときオンし、駆動信号S3がローレベルであるときオフする。スイッチング素子SW4は、制御回路3から出力される駆動信号S4がハイレベルであるときオンし、駆動信号S4がローレベルであるときオフする。スイッチング素子SW5は、制御回路3から出力される駆動信号S5がハイレベルであるときオンし、駆動信号S5がローレベルであるときオフする。スイッチング素子SW6は、制御回路3から出力される駆動信号S6がハイレベルであるときオンし、駆動信号S6がローレベルであるときオフする。
【0025】
スイッチング素子SW1~SW6がそれぞれオン、オフを繰り返すことで、電源Pから出力される直流の電圧が、互いに位相が120度ずつ異なる交流電圧Vu、Vv、Vwに変換される。そして、交流電圧VuがモータMのU相の入力端子に印加され、交流電圧VvがモータMのV相の入力端子に印加され、交流電圧VwがモータMのW相の入力端子に印加されることで、モータMに互いに位相が120度ずつ異なる交流の電流Iu、Iv、Iwが流れ、モータMのロータが回転する。
【0026】
電流センサSi1は、ホール素子やシャント抵抗などにより構成され、モータMのU相に流れる交流の電流Iuを検出して制御回路3に出力する。また、電流センサSi2は、ホール素子やシャント抵抗などにより構成され、モータMのV相に流れる交流の電流Ivを検出して制御回路3に出力する。
【0027】
制御回路3は、記憶部4と、ドライブ回路5と、演算部6とを備える。
【0028】
記憶部4は、RAM(Random Access Memory)またはROM(Read Only Memory)などにより構成される。
【0029】
図2(a)は、記憶部4に記載される情報の一例(その1)を示す図である。なお、図2(a)に示す2次元座標の横軸は回転数ω2に含まれる脈動の振幅値Aωを示し、縦軸は重みw1(第1の重み)を示している。また、図2(a)に示す実線は振幅値Aωと重みw1との対応関係を示す情報D1である。また、重みw1は、回転数ω1と回転数ω2が回転数ω3に反映される割合とする。すなわち、回転数ω1と回転数ω2を用いて求められる回転数ω3に対する回転数ω1の割合、または、回転数ω1と回転数ω2を用いて求められる回転数ω3に対する回転数ω2の割合とする。また、重みw1は、位置θ1と位置θ2が位置θ3に反映される割合とする。すなわち、位置θ1と位置θ2を用いて求められる位置θ3に対する位置θ1の割合、または、位置θ1と位置θ2を用いて求められる位置θ3に対する位置θ2の割合とする。
【0030】
図2(a)に示す情報D1では、振幅値Aωが振幅値Aω1より小さい場合、重みw1はゼロである。また、情報D1では、振幅値Aωが振幅値Aω1以上であり、かつ、振幅値Aωが振幅値Aω2以下である場合、振幅値Aωが大きくなるほど、重みw1が大きくなる。なお、振幅値Aω1<振幅値Aω2とし、0<重みw1<1とする。また、情報D1では、振幅値Aωが振幅値Aω2より大きい場合、重みw1は1である。
【0031】
図2(b)は、記憶部4に記載される情報の一例(その2)を示す図である。なお、図2(b)に示す2次元座標の横軸は電流Iqに含まれる脈動の振幅値Aiを示し、縦軸は重みw1を示している。また、図2(b)に示す実線は振幅値Aiと重みw1との対応関係を示す情報D2である。
【0032】
図2(b)に示す情報D2では、振幅値Aiが振幅値Ai1より小さい場合、重みw1はゼロである。また、情報D2では、振幅値Aiが振幅値Ai1以上であり、かつ、振幅値Aiが振幅値Ai2以下である場合、振幅値Aiが大きくなるほど、重みw1が大きくなる。なお、振幅値Ai1<振幅値Ai2とし、0<重みw1<1とする。また、情報D2では、振幅値Aiが振幅値Ai2より大きい場合、重みw1は1である。
【0033】
図2(c)は、記憶部4に記載される情報の一例(その3)を示す図である。なお、図2(c)に示す2次元座標の横軸は電圧指令値Vq*に含まれる脈動の振幅値Avを示し、縦軸は重みw1を示している。また、図2(c)に示す実線は振幅値Avと重みw1との対応関係を示す情報D3である。
【0034】
図2(c)に示す情報D3では、振幅値Avが振幅値Av1より小さい場合、重みw1はゼロである。また、情報D3では、振幅値Avが振幅値Av1以上であり、かつ、振幅値Avが振幅値Av2以下である場合、振幅値Avが大きくなるほど、重みw1が大きくなる。なお、振幅値Av1<振幅値Av2とし、0<重みw1<1とする。また、情報D3では、振幅値Avが振幅値Av2より大きい場合、重みw1は1である。
【0035】
図2(d)は、記憶部4に記載される情報の一例(その4)を示す図である。なお、図2(d)に示す2次元座標の横軸は回転数ω2を示し、縦軸は重みw3(第3の重み)を示している。また、図2(d)に示す実線は回転数ω2と重みw2との対応関係を示す情報D4である。
【0036】
図2(d)に示す情報D4では、回転数ω2が回転数ω21より小さい場合、重みw3はゼロである。また、情報D4では、回転数ω2が回転数ω21以上であり、かつ、回転数ω2が回転数ω22以下である場合、回転数ω2が大きくなるほど、重みw3が大きくなる。なお、回転数ω21<回転数ω22とし、0<重みw3<1とする。また、情報D4では、回転数ω2が回転数ω22より大きい場合、重みw3は1である。
【0037】
また、図1に示すドライブ回路5は、IC(Integrated Circuit)などにより構成され、演算部6から出力されるU相電圧指令値Vu*、V相電圧指令値Vv*、及びW相電圧指令値Vw*と搬送波の電圧値とを比較し、その比較結果に応じた駆動信号S1~S6をスイッチング素子SW1~SW6のそれぞれのゲート端子に出力する。なお、搬送波は、三角波、ノコギリ波(鋸歯状波)、逆ノコギリ波などとする。
【0038】
例えば、ドライブ回路5は、U相電圧指令値Vu*が搬送波の電圧値以上である場合、ハイレベルの駆動信号S1を出力するとともにローレベルの駆動信号S2を出力し、U相電圧指令値Vu*が搬送波の電圧値より小さい場合、ローレベルの駆動信号S1を出力するとともにハイレベルの駆動信号S2を出力する。また、ドライブ回路5は、V相電圧指令値Vv*が搬送波の電圧値以上である場合、ハイレベルの駆動信号S3を出力するとともにローレベルの駆動信号S4を出力し、V相電圧指令値Vv*が搬送波の電圧値より小さい場合、ローレベルの駆動信号S3を出力するとともにハイレベルの駆動信号S4を出力する。また、ドライブ回路5は、W相電圧指令値Vw*が搬送波の電圧値以上である場合、ハイレベルの駆動信号S5を出力するとともにローレベルの駆動信号S6を出力し、W相電圧指令値Vw*が搬送波の電圧値より小さい場合、ローレベルの駆動信号S5を出力するとともにハイレベルの駆動信号S6を出力する。
【0039】
演算部6は、マイクロコンピュータなどにより構成され、第1の算出部71と、第2の算出部72と、第3の算出部73と、減算部8と、トルク制御部9と、トルク/電流指令値変換部10と、座標変換部11と、減算部12と、減算部13と、電流制御部14と、座標変換部15とを備える。例えば、マイクロコンピュータが記憶部4に記憶されているプログラムを実行することにより、第1の算出部71、第2の算出部72、第3の算出部73、減算部8、トルク制御部9、トルク/電流指令値変換部10、座標変換部11、減算部12、減算部13、電流制御部14、及び座標変換部15が構成される。
【0040】
第1の算出部71は、電流センサSi1により検出される電流Iu及び電流センサSi2により検出される電流Ivを用いて、モータMのW相に流れる交流の電流Iwを求める。なお、電流センサSi1、Si2により検出される電流は、電流Iu、Ivの組み合わせに限定されず、電流Iv、Iwの組み合わせ、または、電流Iu、Iwの組み合わせでもよい。電流センサSi1、Si2により電流Iv、Iwが検出される場合、第1の算出部71は、電流Iv、Iwを用いて、電流Iuを求める。また、電流センサSi1、Si2により電流Iu、Iwが検出される場合、第1の算出部71は、交流電流Iu、Iwを用いて、電流Ivを求める。
【0041】
また、第1の算出部71は、座標変換部11から出力されるd軸電流Id及びq軸電流Iq、並びに、電流制御部14から出力されるd軸の電圧指令値Vd*及びqの電圧指令値Vq*を用いて、回転数ω1(第1の回転数)及び位置θ1を算出する。例えば、第1の算出部71は、下記式1に示す電圧方程式を用いて回転数ω1を求め、その求めた回転数ω1に所定時間(演算部6のクロック周期など)を乗算することにより位置θ1を求める。なお、RはモータMを構成するコイルの抵抗成分とし、pは微分演算子とし、LdはモータMを構成するコイルのd軸インダクタンスとし、LqはモータMを構成するコイルのq軸インダクタンスとし、Keは誘起電圧定数とする。
【0042】
【数1】
【0043】
第2の算出部72は、電気角検出部Spにより検出される位置θを用いてモータMの回転数ω2(第2の回転数)を算出する。例えば、第2の算出部72は、位置θを所定時間(演算部6のクロック周期など)で除算することにより回転数ω2を求める。また、第2の算出部72は、電気角検出部Spにより検出される位置θを位置θ2として出力する。
【0044】
第3の算出部73は、回転数ω1、ω2を用いて回転数ω3を算出し、位置θ1、θ2wを用いて位置θ3を算出する。
【0045】
減算部8は、外部から入力される回転数指令値ω*と第3の算出部73から出力される回転数ω3との回転数差Δωを算出する。
【0046】
トルク制御部9は、減算部8から出力される回転数差Δωを用いてトルク指令値T*を出力する。例えば、トルク制御部9は、記憶部4に記憶されている、モータMの回転数とモータMのトルクとが互いに対応付けられている情報を参照して、回転数差Δωに相当する回転数に対応するトルクをトルク指令値T*として出力する。
【0047】
トルク/電流指令値変換部10は、トルク制御部9から出力されるトルク指令値T*を、d軸の電流指令値Id*及びq軸の電流指令値Iq*に変換する。例えば、トルク/電流指令値変換部10は、記憶部4に記憶されている、モータMのトルクと電流指令値Id*及び電流指令値Iq*とが互いに対応付けられている情報を参照して、トルク指令値T*に相当するトルクに対応する電流指令値Id*及び電流指令値Iq*を出力する。
【0048】
座標変換部11は、電流センサSi1により検出される電流Iu及び電流センサSi2により検出される電流Ivを用いて、モータMのW相に流れる電流Iwを求める。なお、電流センサSi1、Si2により検出される電流は、電流Iu、Ivの組み合わせに限定されず、電流Iv、Iwの組み合わせ、または、電流Iu、Iwの組み合わせでもよい。電流センサSi1、Si2により電流Iv、Iwが検出される場合、座標変換部11は、電流Iv、Iwを用いて、電流Iuを求める。また、電流センサSi1、Si2により電流Iu、Iwが検出される場合、座標変換部11は、電流Iu、Iwを用いて、電流Ivを求める。
【0049】
また、座標変換部11は、第3の算出部73から出力される位置θ3を用いて、電流Iu、Iv、Iwをd軸の電流Id(逆起電力を制御するための電流成分)及びq軸の電流Iq(トルクを制御するための電流成分)に変換する。例えば、座標変換部11は、下記式2に示す変換行列C1を用いて、電流Iu、Iv、Iwを、電流Id及び電流Iqに変換する。
【0050】
【数2】
【0051】
また、インバータ回路2において、電流センサSi1、Si2の他に、モータMのW相に流れる電流Iwを検出する電流センサSi3をさらに備える場合、座標変換部11は、第3の算出部73から出力される位置θ3を用いて、電流センサSi1~Si3により検出される電流Iu、Iv、Iwを電流Id及び電流Iqに変換するように構成してもよい。
【0052】
減算部12は、トルク/電流指令値変換部10から出力される電流指令値Id*と、座標変換部11から出力される電流Idとの電流差ΔIdを算出する。
【0053】
減算部13は、トルク/電流指令値変換部10から出力される電流指令値Iq*と、座標変換部11から出力される電流Iqとの電流差ΔIqを算出する。
【0054】
電流制御部14は、減算部12から出力される電流差ΔId及び減算部13から出力される電流差ΔIqを用いたPI(Proportional Integral)制御によりd軸の電圧指令値Vd*及びq軸の電圧指令値Vq*を算出する。例えば、電流制御部14は、下記式3を用いて電圧指令値Vd*を算出するとともに、下記式4を用いて電圧指令値Vq*を算出する。なお、KpはPI制御の比例項の定数とし、KiはPI制御の積分項の定数とし、LqはモータMを構成するコイルのq軸インダクタンスとし、LdはモータMを構成するコイルのd軸インダクタンスとし、ω3は第3の算出部73から出力される回転数ω3とし、Keは誘起電圧定数とする。
【0055】
電圧指令値Vd*=Kp×電流差ΔId+Ki×∫(電流差ΔId)-ω3×Lq×Iq・・・式3
電圧指令値Vq*=Kp×電流差ΔIq+Ki×∫(電流差ΔIq)+ω3×Ld×Id+ω3×Ke・・・式4
【0056】
すなわち、電流制御部14は、電流Idと電流指令値Id*との電流差ΔIdが小さくなるように電圧指令値Vd*を算出するとともに電流Iqと電流指令値Iq*との電流差ΔIqが小さくなるように電圧指令値Vq*を算出する。
【0057】
座標変換部15は、第3の算出部73から出力される位置θ3を用いて、電圧指令値Vd*及び電圧指令値Vq*を、U相電圧指令値Vu*、V相電圧指令値Vv*、及びW相電圧指令値Vw*に変換する。例えば、座標変換部15は、下記式5に示す変換行列C2を用いて、電圧指令値Vd*及び電圧指令値Vq*を、U相電圧指令値Vu*、V相電圧指令値Vv*、及びW相電圧指令値Vw*に変換する。
【0058】
【数3】
【0059】
なお、減算部8、トルク制御部9、トルク/電流指令値変換部10、座標変換部11、減算部12、減算部13、及び電流制御部14により指令値出力部が構成されるものとする。すなわち、指令値出力部は、第3の算出部73から出力される回転数ω3と回転数指令値ω*との回転数差Δωに基づいて電圧指令値Vd*、Vq*を出力する。
【0060】
<第1実施例>
図3は、第1実施例における第3の算出部73の動作の一例を示すフローチャートである。
【0061】
まず、ステップS11において、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aω、電流Iqに含まれる脈動の振幅値Ai、または電圧指令値Vq*に含まれる脈動の振幅値Avを算出する。
【0062】
例えば、第3の算出部73は、演算部6のクロック周期より長い一定期間において回転数指令値ω*が一定であるときの回転数ω2の最大値と最小値との差を、回転数ω2に含まれる脈動の振幅値Aωとする。
【0063】
また、第3の算出部73は、演算部6のクロック周期より長い一定期間において回転数指令値ω*が一定であるときの電流Iqの最大値と最小値との差を、電流Iqに含まれる脈動の振幅値Aiとする。
【0064】
また、第3の算出部73は、演算部6のクロック周期より長い一定期間において回転数指令値ω*が一定であるときの電圧指令値Vq*の最大値と最小値との差を、電圧指令値Vq*の脈動の振幅値Avとする。
【0065】
次に、ステップS12において、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aω、電流Iqに含まれる脈動の振幅値Ai、または電圧指令値Vq*に含まれる振幅値Avにより重みw1を求める。
【0066】
<回転数ω2に含まれる脈動の振幅値Aωにより重みw1を求める場合(その1)>
第3の算出部73は、記憶部4に記憶される情報D1を参照し、振幅値Aωに対応する重みw1を求める。すなわち、第3の算出部73は、振幅値Aωが振幅値Aω1より小さい場合、重みw1をゼロにする。また、第3の算出部73は、振幅値Aωが振幅値Aω1以上である場合で、かつ、振幅値Aωが振幅値Aω2以下である場合、振幅値Aωが大きくなるほど、重みw1を大きくする。また、第3の算出部73は、振幅値Aωが振幅値Aω2より大きい場合、重みw1を1にする。なお、振幅値Aω1は、回転数ω2が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの振幅値Aωの最大値とする。また、振幅値Aω2は、回転数ω1が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの振幅値Aωの最小値とする。
【0067】
<回転数ω2に含まれる脈動の振幅値Aωにより重みw1を求める場合(その2)>
第3の算出部73は、下記式6に示すPI制御により重みw1を求める。すなわち、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aωが、目標振幅値Aω0になるように、PI制御により重みw1を求める。例えば、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aωと目標振幅値Aω0との差がゼロになるように、PI制御により重みw1を求める。なお、比例項wpは下記式7とし、積分項wiは下記式8とする。また、目標振幅値Aω0はモータMのトルクリップルの振幅値が許容値以下であるときの任意の振幅値Aωとする。
【0068】
重みw1=比例項wp+積分項wi ・・・式6
比例項wp=(振幅値Aω-目標振幅値Aω0)×比例定数Kp ・・・式7
積分項wi=前回算出した積分項wi+(振幅値Aω-目標振幅値Aω0)×積分定数Ki ・・・式8
【0069】
<電流Iqに含まれる脈動の振幅値Aiにより重みw1を求める場合(その1)>
第3の算出部73は、記憶部4に記憶される情報D2を参照し、振幅値Aiに対応する重みw1を求める。すなわち、第3の算出部73は、振幅値Aiが振幅値Ai1より小さい場合、重みw1をゼロにする。また、第3の算出部73は、振幅値Aiが振幅値Ai1以上である場合で、かつ、振幅値Aiが振幅値Ai2以下である場合、振幅値Aiが大きくなるほど、重みw1を大きくする。また、第3の算出部73は、振幅値Aiが振幅値Ai2より大きい場合、重みw1を1にする。なお、振幅値Ai1は、回転数ω2が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの振幅値Aiの最大値とする。また、振幅値Ai2は、回転数ω1が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの振幅値Aiの最小値とする。
【0070】
<電流Iqに含まれる脈動の振幅値Aiにより重みw1を求める場合(その2)>
第3の算出部73は、上記式6に示すPI制御により重みw1を求める。すなわち、第3の算出部73は、電流Iqに含まれる脈動の振幅値Aiが、目標振幅値Ai0になるように、PI制御により重みw1を求める。例えば、第3の算出部73は、電流Iqに含まれる脈動の振幅値Aiと目標振幅値Ai0との差がゼロになるように、PI制御により重みw1を求める。なお、比例項wpは下記式9とし、積分項wiは下記式10とする。また、目標振幅値Ai0はモータMのトルクリップルの振幅値が許容値以下であるときの任意の振幅値Aiとする。
【0071】
比例項wp=(振幅値Ai-目標振幅値Ai0)×比例定数Kp ・・・式9
積分項wi=前回算出した積分項wi+(振幅値Ai-目標振幅値Ai0)×積分定数Ki ・・・式10
【0072】
なお、第3の算出部73は、電流Iqに含まれる脈動の振幅値Aiの代わりに、電流Idに含まれる脈動の振幅値Aiにより重みw1を算出するように構成してもよい。
【0073】
また、第3の算出部73は、電流Id、Iqの代わりに、トルク/電流指令値変換部10から出力される電流指令値Id*に含まれる脈動の振幅値Aiまたは電流指令値Iq*に含まれる脈動の振幅値Aiにより重みw1を算出するように構成してもよい。
【0074】
<電圧指令値Vq*に含まれる脈動の振幅値Avにより重みw1を求める場合(その1)>
第3の算出部73は、記憶部4に記憶される情報D3を参照し、振幅値Avに対応する重みw1を求める。すなわち、第3の算出部73は、振幅値Avが振幅値Av1より小さい場合、重みw1をゼロにする。また、第3の算出部73は、振幅値Avが振幅値Av1以上である場合で、かつ、振幅値Avが振幅値Av2以下である場合、振幅値Avが大きくなるほど、重みw1を大きくする。また、第3の算出部73は、振幅値Avが振幅値Av2より大きい場合、重みw1を1にする。なお、振幅値Av1は、回転数ω2が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの振幅値Avの最大値とする。また、振幅値Av2は、回転数ω1が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの振幅値Avの最小値とする。
【0075】
<電圧指令値Vq*に含まれる脈動の振幅値Avにより重みw1を求める場合(その2)>
第3の算出部73は、上記式6に示すPI制御により重みw1を求める。すなわち、第3の算出部73は、電圧指令値Vq*に含まれる脈動の振幅値Avが、目標振幅値Av0になるように、PI制御により重みw1を求める。例えば、第3の算出部73は、電圧指令値Vq*に含まれる脈動の振幅値Avと目標振幅値Av0との差がゼロになるように、PI制御により重みw1を求める。なお、比例項wpは下記式11とし、積分項wiは下記式12とする。また、目標振幅値Av0はモータMのトルクリップルの振幅値が許容値以下であるときの任意の振幅値Avとする。
【0076】
比例項wp=(振幅値Av-目標振幅値Av0)×比例定数Kp ・・・式11
積分項wi=前回算出した積分項wi+(振幅値Av-目標振幅値Av0)×積分定数Ki ・・・式12
【0077】
なお、第3の算出部73は、電圧指令値Vq*に含まれる脈動の振幅値Avの代わりに、電圧指令値Vd*に含まれる脈動の振幅値Avにより重みw1を算出するように構成してもよい。
【0078】
そして、ステップS13において、第3の算出部73は、重みw1、回転数ω1、ω2、及び位置θ1、θ2により回転数ω3及び位置θ3を算出する。例えば、第3の算出部73は、下記式13により回転数ω3を算出し、下記式14により位置θ3を算出する。
【0079】
回転数ω3=重みw1×回転数ω1+(1-重みw1)×回転数ω2 ・・・式13
位置θ3=重みw1×位置θ1+(1-重みw1)×位置θ2 ・・・式14
【0080】
例えば、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aωが振幅値Aω1より小さい場合、重みw1としてゼロを求め、回転数ω2を回転数ω3として求める。このように、回転数ω2に含まれる脈動の振幅値Aωが比較的小さく、位置θに含まれる量子化誤差の影響によりトルクリップルが生じる可能性が低い場合、実際の回転数に近い回転数ω2が回転数ω3として第3の算出部73から出力される。
【0081】
また、第3の算出部73は、振幅値Aωが振幅値Aω2より大きい場合、重みw1として1を求め、回転数ω1を回転数ω3として算出する。このように、回転数ω2に含まれる脈動の振幅値Aωが比較的大きく、位置θに含まれる量子化誤差の影響によりトルクリップルが生じる可能性が高い場合、位置θに含まれる量子化誤差の影響が無い回転数ω1が回転数ω3として第3の算出部73から出力される。
【0082】
また、第3の算出部73は、モータMに流れる電流(電流Id、電流Iq、電流指令値Id*、または電流指令値Iq*)に含まれる脈動の振幅値Aiが振幅値Ai1より小さい場合、重みw1としてゼロを算出し、回転数ω2を回転数ω3として算出する。このように、モータMに流れる電流に含まれる脈動の振幅値Aiが比較的小さく、位置θに含まれる量子化誤差の影響によりトルクリップルが生じる可能性が低い場合、実際の回転数に近い回転数ω2が回転数ω3として第3の算出部73から出力される。
【0083】
また、第3の算出部73は、振幅値Aiが振幅値Ai2より大きい場合、重みw1として1を求め、回転数ω1を回転数ω3として算出する。このように、モータMに流れる電流に含まれる脈動の振幅値Aiが比較的大きく、位置θに含まれる量子化誤差の影響によりトルクリップルが生じる可能性が高い場合、位置θに含まれる量子化誤差の影響が無い回転数ω1が回転数ω3として第3の算出部73から出力される。
【0084】
また、第3の算出部73は、電圧指令値(電圧指令値Vd*または電圧指令値Vq*)に含まれる脈動の振幅値Avが振幅値Av1より小さい場合、重みw1としてゼロを算出し、回転数ω2を回転数ω3として算出する。このように、電圧指令値に含まれる脈動の振幅値Avが比較的小さく、位置θに含まれる量子化誤差の影響によりトルクリップルが生じる可能性が低い場合、実際の回転数に近い回転数ω2が回転数ω3として第3の算出部73から出力される。
【0085】
また、第3の算出部73は、振幅値Avが振幅値Av2より大きい場合、重みw1として1を求め、回転数ω1を回転数ω3として算出する。このように、電圧指令値に含まれる脈動の振幅値Avが比較的大きく、位置θに含まれる量子化誤差の影響によりトルクリップルが生じる可能性が高い場合、位置θに含まれる量子化誤差の影響が無い回転数ω1が回転数ω3として第3の算出部73から出力される。
【0086】
なお、第3の算出部73は、下記式15により回転数ω3を算出し、下記式16により位置θ3を算出するように構成してもよい。このように構成する場合、記憶部4に記憶される情報D1において、振幅値Aωが振幅値Aω1より小さい場合、重みw1が1になる。また、情報D1において、振幅値Aωが振幅値Aω1以上であり、かつ、振幅値Aωが振幅値Aω2以下である場合、振幅値Aωが大きくなるほど、重みw1が小さくなる。また、情報D1において、振幅値Aωが振幅値Aω2より大きい場合、重みw1がゼロになる。また、記憶部4に記憶される情報D2において、振幅値Aiが振幅値Ai1より小さい場合、重みw1が1になる。また、情報D2において、振幅値Aiが振幅値Ai1以上であり、かつ、振幅値Ai2が振幅値Aω2以下である場合、振幅値Aiが大きくなるほど、重みw1が小さくなる。また、情報D2において、振幅値Aiが振幅値Ai2より大きい場合、重みw1がゼロになる。また、記憶部4に記憶される情報D3において、振幅値Avが振幅値Av1より小さい場合、重みw1が1になる。また、情報D3において、振幅値Avが振幅値Av1以上であり、かつ、振幅値Avが振幅値Av2以下である場合、振幅値Avが大きくなるほど、重みw1が小さくなる。また、情報D2において、振幅値Avが振幅値Av2より大きい場合、重みw1がゼロになる。
【0087】
回転数ω3=(1-重みw1)×回転数ω1+重みw1×回転数ω2 ・・・式15
位置θ3=(1-重みw1)×位置θ1+重みw1×位置θ2 ・・・式16
【0088】
ここで、従来の制御装置のように、回転数ω2が閾値より小さい場合、回転数ω2を用いてモータMの駆動を制御し、回転数ω2が閾値以上である場合、回転数ω1を用いてモータMの駆動を制御する場合を想定する。なお、回転数ω2を用いてモータMの駆動を制御することをセンサ使用制御とする。また、回転数ω1を用いてモータMの駆動を制御することをセンサレス制御とする。
【0089】
この場合、回転数ω2に含まれる脈動の振幅値が許容値を超えているにもかかわらず、回転数ω2が閾値より小さい状態では、回転数ω1を用いてモータMの駆動を制御することができない。
【0090】
一方、第1実施例のように、回転数ω2に含まれる脈動の振幅値を用いて、回転数ω3として回転数ω1と回転数ω2とを切り替える場合では、回転数ω2に含まれる脈動の振幅値が許容値を超えていると、回転数ω1を用いてモータMの駆動を制御することができる。
【0091】
このように、第1実施例によれば、回転数ω2に含まれる脈動の振幅値Aω、モータMに流れる電流に含まれる脈動の振幅値Ai、または電圧指令値に含まれる脈動の振幅値Avが比較的大きい場合において、すなわち、位置θに含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性が高い場合において、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3とすることができる。これにより、位置θに含まれる量子化誤差の影響が無い回転数ω3を用いてモータMの駆動を制御することができるため、モータMに流れる電流や電圧指令値に含まれる脈動の振幅値を抑えることができ、モータMの回転数ω2のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないモータMのトルクリップルを抑制することができる。
【0092】
また、第1実施例によれば、回転数ω3として回転数ω2から回転数ω1に切り替える際、重みw1により回転数ω2から回転数ω1に徐々に変化させることができるため、または、回転数ω3として回転数ω1から回転数ω2に切り替える際、重みw1により回転数ω1から回転数ω2に徐々に変化させることができるため、回転数ω3として回転数ω2から回転数ω1にまたは回転数ω1から回転数ω2に急峻に切り替える場合に比べて、電流センサSi1、Si2の計測誤差の影響による回転数ω3の変動を抑えることができるため、モータMのトルクの変動を抑えることができる。
【0093】
また、第1実施例において、情報D1~D3を用いて重みw1を求める場合では、第3の算出部73にかかる計算処理の負荷を低減することができる。
【0094】
また、第1実施例において、PI制御により重みw1を求める場合では、脈動の振幅値と重みw1との対応関係を示す情報を事前に用意する必要がなく、重みw1を求めるための工数を低減することができる。
【0095】
<第2実施例>
図4は、第2実施例における第3の算出部73の動作の一例を示すフローチャートである。なお、図4に示すステップS21は図3に示すステップS11と同様であり、図4に示すステップS23は図3に示すステップS13と同様であるため、ステップS21、S23の説明を省略する。
【0096】
ステップS22において、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aω、電流Iqに含まれる脈動の振幅値Ai、または電圧指令値Vq*に含まれる振幅値Avと、回転数ω2とにより重みw1を算出する。
【0097】
<回転数ω2に含まれる脈動の振幅値Aωと、回転数ω2とにより重みw1を求める場合>
まず、第3の算出部73は、上記式6、式7、及び式8に示すPI制御により重みw1を求め、その求めた重みw1を重みw2(第2の重み)とする。
【0098】
次に、第3の算出部73は、記憶部4に記憶される情報D4を参照し、回転数ω2に対応する重みw3を求める。すなわち、第3の算出部73は、回転数ω2が回転数ω21より小さい場合、重みw3をゼロにする。また、第3の算出部73は、回転数ω2が回転数ω21以上である場合で、かつ、回転数ω2が回転数ω22以下である場合、回転数ω2が大きくなるほど、重みw3を大きくする。また、第3の算出部73は、回転数ω2が回転数ω22より大きい場合、重みw3を1にする。なお、回転数ω21は、回転数ω2が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの回転数ω2の最大値とする。また、回転数ω22は、回転数ω1が回転数ω3として第3の算出部73から出力されている場合においてモータMのトルクリップルの振幅値が許容値以下であるときの回転数ω2の最小値とする。
【0099】
そして、第3の算出部73は、重みw2と重みw3との乗算値を、ステップS23において用いる重みw1とする。
【0100】
<電流Iqに含まれる脈動の振幅値Aiと、回転数ω2とにより重みw1を求める場合>
まず、第3の算出部73は、上記式6、式9、及び式10に示すPI制御により重みw1を算出し、その算出した重みw1を重みw2とする。
【0101】
次に、第3の算出部73は、記憶部4に記憶される情報D4を参照し、回転数ω2に対応する重みw3を求める。
【0102】
そして、第3の算出部73は、重みw2と重みw3との乗算値を、ステップS23において用いる重みw1とする。
【0103】
なお、第3の算出部73は、電流Iqに含まれる脈動の振幅値Aiの代わりに、電流Idに含まれる脈動の振幅値Aiにより重みw2を求めるように構成してもよい。
【0104】
また、第3の算出部73は、電流Id、Iqの代わりに、トルク/電流指令値変換部10から出力される電流指令値Id*に含まれる脈動の振幅値Aiまたは電流指令値Iq*に含まれる脈動の振幅値Aiにより重みw2を求めるように構成してもよい。
【0105】
<電圧指令値Vq*に含まれる脈動の振幅値Aiと、回転数ω2とにより重みw1を算出する場合>
まず、第3の算出部73は、上記式6、式13、及び式14に示すPI制御により重みw1を算出し、その算出した重みw1を重みw2とする。
【0106】
次に、第3の算出部73は、記憶部4に記憶される情報D4を参照し、回転数ω2に対応する重みw3を求める。
【0107】
そして、第3の算出部73は、重みw2と重みw3との乗算値を、ステップS23において用いる重みw1とする。
【0108】
なお、第3の算出部73は、電圧指令値Vq*に含まれる脈動の振幅値Avの代わりに、電圧指令値Vd*に含まれる脈動の振幅値Avにより重みw2を求めるように構成してもよい。
【0109】
例えば、回転数ω2に含まれる脈動の振幅値Aωと目標振幅値Aω0との差が比較的大きい場合で、かつ、回転数ω2が回転数ω21より小さい場合、重みw2が1に近い値になるにもかかわらず、重みw3がゼロになるため、重みw2と重みw3との乗算値である重みw1がゼロになり、回転数ω2が回転数ω3として第3の出力部73から出力される。このように、回転数ω2に含まれる脈動の振幅値Aωが比較的大きいにもかかわらず、回転数ω2が比較的小さい場合、すなわち、位置θに含まれる量子化誤差以外の要因により脈動の振幅値Aωが比較的大きくなっている可能性が高い場合、電流センサSi1、Si2の計測誤差が含まれる回転数ω1ではなく、実際の回転数に近い回転数ω2を回転数ω3として第3の算出部73から出力させる。これにより、電流センサSi1、Si2の計測誤差の影響によりモータMの制御性が低下することを抑制することができる。
【0110】
また、回転数ω2に含まれる脈動の振幅値Aωと目標振幅値Aω0との差が比較的大きい場合で、かつ、回転数ω2が回転数ω22より大きい場合、重みw2、w3がそれぞれ1または略1になるため、重みw2と重みw3との乗算値である重みw1が1または略1になり、回転数ω3として回転数ω1または回転数ω1に近い回転数が第3の出力部73から出力される。このように、回転数ω2に含まれる脈動の振幅値Aω及び回転数ω2がそれぞれ比較的大きい場合では、位置θに含まれる量子化誤差の影響により振幅値Aωが比較的大きくなっている可能性がより高いため、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3として第3の算出部73から出力させる。
【0111】
第2実施例によれば、回転数ω2に含まれる脈動の振幅値Aω、モータMに流れる電流に含まれる脈動の振幅値Ai、または電圧指令値に含まれる脈動の振幅値Avが比較的大きい場合で、かつ、回転数ω2が比較的大きい場合において、すなわち、位置θに含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性が高く、かつ、回転数ω2が比較的大きい場合において、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3とすることができる。これにより、位置θに含まれる量子化誤差の影響が無い回転数ω3によりモータMの駆動を制御することができるため、モータMに流れる電流や電圧指令値に含まれる脈動の振幅値を抑えることができ、モータMの回転数ω2のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないモータMのトルクリップルを抑制することができる。
【0112】
また、第2実施例によれば、回転数ω2に含まれる脈動の振幅値Aω、モータMに流れる電流に含まれる脈動の振幅値Ai、及び電圧指令値に含まれる脈動の振幅値Avのうちの1つの振幅値により重みw1を求める場合に比べて、位置θに含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性がより高い場合において、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3とすることができるため、モータMのトルクリップルをさらに精度よく抑制することができる。
【0113】
また、第2実施例によれば、第1実施例と同様に、回転数ω3として回転数ω2から回転数ω1に切り替える際、重みw1により回転数ω2から回転数ω1に徐々に変化させることができるため、または、回転数ω3として回転数ω1から回転数ω2に切り替える際、重みw1により回転数ω1から回転数ω2に徐々に変化させることができるため、回転数ω3として回転数ω2から回転数ω1にまたは回転数ω1から回転数ω2に急峻に切り替える場合に比べて、電流センサSi1、Si2の計測誤差の影響による回転数ω3の変動を抑えることができるため、モータMのトルクの変動を抑えることができる。
【0114】
<第3実施例>
図5は、第3実施例における第3の算出部73の動作の一例を示すフローチャートである。なお、図5に示すステップS33は図3に示すステップS13と同様であるため、ステップS33の説明を省略する。
【0115】
まず、ステップS31において、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aω、電流Iqに含まれる脈動の振幅値Ai、及び電圧指令値Vq*に含まれる脈動の振幅値Avのうちの2つの振幅値を算出する。
【0116】
次に、ステップS32において、第3の算出部73は、ステップS31で算出した各脈動の振幅値により重みw1を求める。
【0117】
<振幅値Aω及び振幅値Aiにより重みw1を求める場合>
まず、第3の算出部73は、情報D1または上記式6、式7、及び式8に示すPI制御を用いて振幅値Aωに対応する重みw1を求め、その求めた重みw1を重みwωとするとともに、情報D2または上記式6、式9、及び式10に示すPI制御を用いて振幅値Aiに対応する重みw1を求め、その求めた重みw1を重みwiとする。
【0118】
次に、第3の算出部73は、重みwωと重みwiとの乗算値をステップS33において用いる重みw1とする。
【0119】
<振幅値Aω及び振幅値Avにより重みw1を求める場合>
まず、第3の算出部73は、情報D1または上記式6、式7、及び式8に示すPI制御を用いて振幅値Aωに対応する重みw1を求め、その求めた重みw1を重みwωとするとともに、情報D3または上記式6、式13、及び式14に示すPI制御を用いて振幅値Avに対応する重みw1を求め、その求めた重みw1を重みwvとする。
【0120】
次に、第3の算出部73は、重みwωと重みwvとの乗算値をステップS33において用いる重みw1とする。
【0121】
<振幅値Ai及び振幅値Avにより重みw1を求める場合>
まず、第3の算出部73は、情報D2または上記式6、式9、式10に示すPI制御を用いて振幅値Aiに対応する重みw1を求め、その求めた重みw1を重みwiとするとともに、情報D3または上記式6、式13、及び式14に示すPI制御を用いて振幅値Avに対応する重みw1を求め、その求めた重みw1を重みwvとする。
【0122】
次に、第3の算出部73は、重みwiと重みwvとの乗算値をステップS33において用いる重みw1とする。
【0123】
例えば、振幅値Aωが振幅値Aω2より大きい場合で、かつ、振幅値Aiが振幅値Ai1より小さい場合、重みwωが1であるにもかかわらず、重みwiがゼロになるため、重みwωと重みwiとの乗算値である重みw1がゼロになり、回転数ω2が回転数ω3として第3の出力部73から出力される。このように、2つの振幅値のうちの一方の振幅値が比較的大きく、他方の振幅値が比較的小さい場合では、位置θに含まれる量子化誤差の影響により一方の振幅値が比較的大きくなっている可能性が低いため、実際の回転数に近い回転数ω2を回転数ω3として第3の算出部73から出力させる。これにより、電流センサSi1、Si2の計測誤差の影響によりモータMの制御性が低下することを抑制することができる。
【0124】
また、振幅値Aωが閾値Aω2より大きい場合で、かつ、振幅値Aiが振幅値Ai2より大きい場合、重みwω及び重みwiがそれぞれ1になるため、重みwωと重みwiとの乗算値である重みw1が1になり、回転数ω1が回転数ω3として第3の出力部73から出力される。このように、2つの振幅値がそれぞれ比較的大きい場合では、位置θに含まれる量子化誤差の影響により2つの振幅値がそれぞれ比較的大きくなっている可能性が高いため、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3として第3の算出部73から出力させる。
【0125】
第3実施例によれば、回転数ω2に含まれる脈動の振幅値Aω、モータMに流れる電流に含まれる脈動の振幅値Ai、及び電圧指令値に含まれる脈動の振幅値Avのうちの2つの振幅値が比較的大きい場合において、すなわち、位置θに含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性が高い場合において、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3とすることができる。これにより、位置θに含まれる量子化誤差の影響が無い回転数ω3によりモータMの駆動を制御することができるため、モータMに流れる電流や電圧指令値に含まれる脈動の振幅値を抑えることができ、モータMの回転数ω2のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないモータMのトルクリップルを抑制することができる。
【0126】
また、第3実施例によれば、回転数ω2に含まれる脈動の振幅値Aω、モータMに流れる電流に含まれる脈動の振幅値Ai、及び電圧指令値に含まれる脈動の振幅値Avのうちの1つの振幅値により重みw1を算出する場合に比べて、位置θに含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性がより高い場合において、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3とすることができるため、モータMのトルクリップルをさらに精度よく抑制することができる。
【0127】
また、第3実施例によれば、第1実施例と同様に、回転数ω3として回転数ω2から回転数ω1に切り替える際、重みw1により回転数ω2から回転数ω1に徐々に変化させることができるため、または、回転数ω3として回転数ω1から回転数ω2に切り替える際、重みw1により回転数ω1から回転数ω2に徐々に変化させることができるため、回転数ω3として回転数ω2から回転数ω1にまたは回転数ω1から回転数ω2に急峻に切り替える場合に比べて、電流センサSi1、Si2の計測誤差の影響による回転数ω3の変動を抑えることができるため、モータMのトルクの変動を抑えることができる。
【0128】
<第4実施例>
図6は、第4実施例における第3の算出部73の動作の一例を示すフローチャートである。なお、図6に示すステップS43は図3に示すステップS13と同様であるため、ステップS43の説明を省略する。
【0129】
まず、ステップS41において、第3の算出部73は、回転数ω2に含まれる脈動の振幅値Aω、電流Iqに含まれる脈動の振幅値Ai、及び電圧指令値Vq*に含まれる脈動の振幅値Avを算出する。
【0130】
次に、ステップS42において、第3の算出部73は、ステップS41において算出した各脈動の振幅値により重みw1を算出する。
【0131】
例えば、まず、第3の算出部73は、振幅値Aωにより重みwωを求めるとともに振幅値Aiにより重みwiを求めるとともに振幅値Avにより重みwvを算出する。なお、重みwω、wi、wvは、記憶部4に記憶されている情報D1、D2、D3を使用して算出してもよいし、PI制御により算出してもよい。
【0132】
次に、第3の算出部73は、重みwωと重みwiと重みwvとの乗算値をステップS43において用いる重みw1とする。
【0133】
例えば、振幅値Aωが振幅値Aω2より大きい場合で、かつ、振幅値Aiが振幅値Ai1より小さい場合で、かつ、振幅値Avが振幅値Av1より小さい場合、重みwωが1であるにもかかわらず、重みwi、wvがそれぞれゼロになるため、重みwωと重みwiと重みωvとの乗算値である重みw1がゼロになり、回転数ω2が回転数ω3として第3の出力部73から出力される。このように、3つの振幅値のうちの少なくとも1つの振幅値が比較的大きいにもかかわらず、残りの振幅値が比較的小さい場合、位置θに含まれる量子化誤差の影響により少なくとも1つの振幅値が比較的大きくなっている可能性が低いため、実際の回転数に近い回転数ω2を回転数ω3として第3の算出部73から出力させる。これにより、電流センサSi1、Si2の計測誤差の影響によりモータMの制御性が低下することを抑制することができる。
【0134】
また、振幅値Aωが振幅値Aω2より大きい場合で、かつ、振幅値Aiが振幅値Ai2より大きい場合で、かつ、振幅値Avが振幅値Av2より大きい場合、重みwω、重みwi、及び重みwvがそれぞれ1になるため、重みwωと重みwiと重みwvとの乗算値である重みw1が1になり、回転数ω1が回転数ω3として第3の出力部73から出力される。このように、3つの振幅値がそれぞれ比較的大きい場合、位置θに含まれる量子化誤差の影響により3つの振幅値が比較的大きくなっている可能性が高いため、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3として第3の算出部73から出力させる。
【0135】
第4実施例によれば、回転数ω2に含まれる脈動の振幅値Aω、モータMに流れる電流に含まれる脈動の振幅値Ai、及び電圧指令値に含まれる脈動の振幅値Avがそれぞれ比較的大きい場合において、すなわち、位置θに含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性が高い場合において、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3とすることができる。これにより、位置θに含まれる量子化誤差の影響が無い回転数ω3によりモータMの駆動を制御することができるため、モータMに流れる電流や電圧指令値に含まれる脈動の振幅値を抑えることができ、モータMの回転数ω2のみを用いてセンサ使用制御とセンサレス制御との切り替えを判断した場合には抑制できないモータMのトルクリップルを抑制することができる。
【0136】
また、第4実施例によれば、回転数ω2に含まれる脈動の振幅値Aω、モータMに流れる電流に含まれる脈動の振幅値Ai、及び電圧指令値に含まれる脈動の振幅値Avのうちの1つの振幅値または2つの振幅値により重みw1を求める場合に比べて、位置θに含まれる量子化誤差の影響により脈動の振幅値が比較的大きくなっている可能性がより高い場合において、位置θに含まれる量子化誤差の影響が無い回転数ω1を回転数ω3とすることができるため、モータMのトルクリップルをさらに精度よく抑制することができる。
【0137】
また、第4実施例によれば、第1実施例と同様に、回転数ω3として回転数ω2から回転数ω1に切り替える際、重みw1により回転数ω2から回転数ω1に徐々に変化させることができるため、または、回転数ω3として回転数ω1から回転数ω2に切り替える際、重みw1により回転数ω1から回転数ω2に徐々に変化させることができるため、回転数ω3として回転数ω2から回転数ω1にまたは回転数ω1から回転数ω2に急峻に切り替える場合に比べて、電流センサSi1、Si2の計測誤差の影響による回転数ω3の変動を抑えることができるため、モータMのトルクの変動を抑えることができる。
【0138】
なお、本発明は、以上の実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
【符号の説明】
【0139】
1 制御装置
2 インバータ回路
3 制御回路
4 記憶部
5 ドライブ回路
6 演算部
8 減算部
9 トルク制御部
10 トルク/電流指令値変換部
11 座標変換部
12 減算部
13 減算部
14 電流制御部
15 座標変換部
71 第1の算出部
72 第2の算出部
73 第3の算出部
図1
図2
図3
図4
図5
図6