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

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

▶ 日立オートモティブシステムズ株式会社の特許一覧

<>
  • 特開-モータ制御装置 図1
  • 特開-モータ制御装置 図2
  • 特開-モータ制御装置 図3
  • 特開-モータ制御装置 図4
  • 特開-モータ制御装置 図5
  • 特開-モータ制御装置 図6
  • 特開-モータ制御装置 図7
  • 特開-モータ制御装置 図8
  • 特開-モータ制御装置 図9
  • 特開-モータ制御装置 図10
  • 特開-モータ制御装置 図11
  • 特開-モータ制御装置 図12
  • 特開-モータ制御装置 図13
  • 特開-モータ制御装置 図14
  • 特開-モータ制御装置 図15
  • 特開-モータ制御装置 図16
  • 特開-モータ制御装置 図17
  • 特開-モータ制御装置 図18
  • 特開-モータ制御装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024018797
(43)【公開日】2024-02-08
(54)【発明の名称】モータ制御装置
(51)【国際特許分類】
   H02P 25/098 20160101AFI20240201BHJP
【FI】
H02P25/098
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022122341
(22)【出願日】2022-07-29
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】武田 広大
(72)【発明者】
【氏名】谷口 峻
(72)【発明者】
【氏名】原 崇文
(72)【発明者】
【氏名】高橋 史大
【テーマコード(参考)】
5H501
【Fターム(参考)】
5H501AA20
5H501AA22
5H501BB05
5H501DD01
5H501GG03
5H501HA08
5H501HA09
5H501HB07
5H501JJ03
5H501JJ04
5H501JJ17
5H501JJ25
5H501LL22
5H501LL35
(57)【要約】
【課題】出力電流の上限値に近いトルク指令値が与えられた場合でも、トルクリプルの効果的な抑制を図る。
【解決手段】モータ制御装置1は、モータ4の電気角速度24およびトルク指令値21に基づき、モータ4において生じるトルクリプルを補償するためのトルクリプル補償値25を計算するトルクリプル補償値演算部12と、トルク指令値21と、モータ4に対して設定されたトルク上限値26とに基づき、トルクリプル補償値25の振幅に対する上限値であるリプル振幅上限値27を算出するリプル振幅上限値算出部14と、リプル振幅上限値27に基づき、トルクリプル補償値25における各周波数成分の振幅を調整して、振幅調整後のトルクリプル補償値28を計算する振幅調整部15と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
上位制御器からのトルク指令値に基づいてモータを制御するモータ制御装置であって、
前記モータの電気角速度および前記トルク指令値に基づき、前記モータにおいて生じるトルクリプルを補償するためのトルクリプル補償値を計算するトルクリプル補償値演算部と、
前記トルク指令値と、前記モータに対して設定されたトルク上限値とに基づき、前記トルクリプル補償値の振幅に対する上限値であるリプル振幅上限値を算出するリプル振幅上限値算出部と、
前記リプル振幅上限値に基づき、前記トルクリプル補償値における各周波数成分の振幅を調整して、振幅調整後のトルクリプル補償値を計算する振幅調整部と、を備え、
前記振幅調整部により計算された前記振幅調整後のトルクリプル補償値と、前記トルク指令値とに基づき、前記モータを制御するための最終トルク指令値を算出する、モータ制御装置。
【請求項2】
請求項1に記載のモータ制御装置であって、
前記トルクリプル補償値演算部は、前記トルクリプルの次数ごとに振幅と位相が予め対応付けて記録された推定マップを用いて、前記トルク指令値に応じた前記トルクリプルを推定する、モータ制御装置。
【請求項3】
請求項1に記載のモータ制御装置であって、
前記トルクリプル補償値演算部は、前記電気角速度に基づいて、前記トルクリプルの次数ごとに前記トルクリプル補償値の位相と振幅を計算する、モータ制御装置。
【請求項4】
請求項3に記載のモータ制御装置であって、
前記トルクリプル補償値演算部は、前記トルク指令値と前記モータのトルク出力の間における位相と振幅のずれをそれぞれ相殺するように、前記トルクリプルの次数ごとに前記トルクリプル補償値の位相と振幅を計算する、モータ制御装置。
【請求項5】
請求項1に記載のモータ制御装置であって、
前記トルクリプル補償値演算部は、前記電気角速度が所定の基準値以上の場合、前記電気角速度が大きくなるほど前記トルクリプル補償値の振幅が減少するように、前記トルクリプル補償値を計算するモータ制御装置。
【請求項6】
請求項1に記載のモータ制御装置であって、
前記リプル振幅上限値算出部は、前記トルク上限値と前記トルク指令値の絶対値との差に基づき、前記リプル振幅上限値を算出する、モータ制御装置。
【請求項7】
請求項1に記載のモータ制御装置であって、
前記トルクリプル補償値演算部は、前記トルクリプルの次数ごとに前記トルクリプル補償値の位相と振幅を計算し、
前記振幅調整部は、
前記次数ごとに計算された前記トルクリプル補償値の位相と振幅に基づいて前記トルクリプル補償値の最大振幅を計算し、
前記最大振幅が前記リプル振幅上限値以下となるように、前記次数の中で振幅制限の対象とする振幅制限次数と、前記振幅制限次数における前記トルクリプル補償値の制限後の振幅と、をそれぞれ決定し、
前記振幅制限次数における前記トルクリプル補償値の位相および制限後の振幅と、前記振幅制限次数を除いた前記次数における前記トルクリプル補償値の位相および振幅と、前記モータの磁極位置とに基づき、前記振幅調整後のトルクリプル補償値を計算する、モータ制御装置。
【請求項8】
請求項7に記載のモータ制御装置であって、
前記振幅調整部は、高次側から低次側の順に前記振幅制限次数を決定する、モータ制御装置。
【請求項9】
請求項7に記載のモータ制御装置であって、
前記振幅調整部は、前記次数ごとに計算された前記トルクリプル補償値の振幅が小さい順に前記振幅制限次数を決定する、モータ制御装置。
【請求項10】
請求項7に記載のモータ制御装置であって、
前記振幅調整部は、前記モータの振動や騒音に及ぼす影響が大きい周波数からの乖離が大きい順に前記振幅制限次数を決定する、モータ制御装置。
【請求項11】
請求項1に記載のモータ制御装置であって、
前記振幅調整部は、前記最終トルク指令値に応じた前記モータの出力トルクの時間領域での最大振幅が最小となるように、前記振幅調整後のトルクリプル補償値を計算する、モータ制御装置。
【請求項12】
請求項7に記載のモータ制御装置であって、
前記トルクリプル補償値演算部は、前記トルクリプルの次数ごとに、予め設定された残留リプル量目標値に対する前記トルクリプル補償値のリプル超過量を計算し、
前記振幅調整部は、前記次数ごとに計算された前記リプル超過量が小さい順に前記振幅制限次数を決定する、モータ制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータを制御する装置に関する。
【背景技術】
【0002】
従来のモータ制御装置では、トルク指令に対してモータの発生するトルクが追従するようにモータ電流を制御する。このとき、モータの磁極位置に応じたトルク振動であるトルクリプルが生じ、振動や騒音を誘発することがある。そのため、トルクリプルを低減するモータの制御手法が考案されている。
【0003】
モータのトルクリプルを抑制して振動を低減する制御手法として、例えば特許文献1が知られている。特許文献1に記載されたモータ制御装置は、モータの発生するトルクに応じたトルクリプルの振幅と位相に関するテーブルを作成し、このテーブルを参照してトルクリプルの振幅および位相が抑制されるように、トルク指令値に対応したトルクリプル補償値を算出してトルク指令値に重畳し、モータの電流制御を行う。これにより、モータのトルクリプルを抑制して振動を低減するようにしている。
【0004】
一方、モータやインバータの保護のため、一般的にインバータの出力電流には上限値が設定されており、この上限値に近い出力電流に対応するトルク指令値が与えられた場合、トルクリプル補償値を重畳した調整後のトルク指令値が、出力電流が上限値以下となるような値に制限される。その結果、意図しないトルクリプルの発生や平均トルクの低下が起こることがある。
【0005】
トルクリプル補償値を重畳した調整後のトルク指令値が制限されることで生じる平均トルクの低下を防止する手法として、例えば特許文献2が知られている。特許文献2に記載された回転電機の制御装置は、基本トルク指令値に振動トルク指令値の振幅を加算した振動最大値が上限指令値より大きくなる場合に、振動最大値が上限指令値以下になるように振動トルク指令値の振幅を減少させ、最終トルク指令値を算出する。これにより、最終トルク指令値の平均値が基本トルク指令値よりも低くなることを防止している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第5784787号公報
【特許文献2】特許第6400231号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1、2では、出力電流の制限によって発生する意図しないトルクリプルの抑制については言及されていない。
【0008】
本発明は、上記課題に鑑みて、出力電流の上限値に近いトルク指令値が与えられた場合でも、トルクリプルの効果的な抑制を図ることを主な目的とする。
【課題を解決するための手段】
【0009】
本発明によるモータ制御装置は、上位制御器からのトルク指令値に基づいてモータを制御するものであって、前記モータの電気角速度および前記トルク指令値に基づき、前記モータにおいて生じるトルクリプルを補償するためのトルクリプル補償値を計算するトルクリプル補償値演算部と、前記トルク指令値と、前記モータに対して設定されたトルク上限値とに基づき、前記トルクリプル補償値の振幅に対する上限値であるリプル振幅上限値を算出するリプル振幅上限値算出部と、前記リプル振幅上限値に基づき、前記トルクリプル補償値における各周波数成分の振幅を調整して、振幅調整後のトルクリプル補償値を計算する振幅調整部と、を備え、前記振幅調整部により計算された前記振幅調整後のトルクリプル補償値と、前記トルク指令値とに基づき、前記モータを制御するための最終トルク指令値を算出する。
【発明の効果】
【0010】
本発明によれば、出力電流の上限値に近いトルク指令値が与えられた場合でも、トルクリプルの効果的な抑制を図ることができる。
【図面の簡単な説明】
【0011】
図1】本発明の第1の実施形態に係るモータ制御装置の構成を示す概略ブロック図である。
図2】本発明の第1の実施形態に係るトルクリプル補償値演算部のブロック図である。
図3】トルクリプル推定マップの例を示す図である。
図4】トルク制御応答特性テーブルの例を示す図である。
図5】トルク上限算出部およびリプル振幅上限値算出部のブロック図である。
図6】トルク上限リストの例を示す図である。
図7】本発明の第1の実施形態に係る振幅調整部のブロック図である。
図8】振幅低減割合マップの一例を示す図である。
図9】電流制御部のブロック図である。
図10】本発明の第1の実施形態に係る振幅調整部におけるトルクリプル補償値の調整方法の一例を示すフローチャートである。
図11】本発明の第1の実施形態に係るモータ制御装置の動作の概要を示す説明図である。
図12】従来のモータ制御装置と本発明によるモータ制御装置でのトルクリプル補償量の比較図である。
図13】本発明の第3の実施形態に係るモータ制御装置の構成を示す概略ブロック図である。
図14】本発明の第3の実施形態に係る振幅調整部のブロック図である。
図15】本発明の第3の実施形態に係る振幅調整部におけるトルクリプル補償値の調整方法の一例を示すフローチャートである。
図16】本発明の第5の実施形態に係るモータ制御装置の構成を示す概略ブロック図である。
図17】本発明の第5の実施形態に係るトルクリプル補償値演算部のブロック図である。
図18】本発明の第5の実施形態に係る振幅調整部におけるトルクリプル補償値の調整方法の一例を示すフローチャートである。
図19】本発明の第5の実施形態に係る振幅調整部におけるトルクリプル補償値の調整方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
(第1の実施形態)
図1は、本発明の第1の実施形態に係るモータ制御装置の構成を示す概略ブロック図である。本実施形態に係るモータ制御装置1は、上位制御器に相当するトルク指令値生成器2からのトルク指令値21に基づきインバータ3の動作を制御することで、モータ4の制御を行う。モータ制御装置1は、磁極位置計算部10と、電気角速度計算部11と、トルクリプル補償値演算部12と、トルク上限算出部13と、リプル振幅上限値算出部14と、振幅調整部15と、トルク指令値補正部16と、電流制御部17と、を備える。モータ制御装置1は、例えばマイクロコンピュータにより構成され、マイクロコンピュータにおいて所定のプログラムを実行することにより、これらの機能ブロックを実現することができる。あるいは、これらの機能ブロックの一部または全部をロジックICやFPGA等のハードウェア回路を用いて実現してもよい。
【0013】
磁極位置計算部10は、モータ4の磁極位置に関するセンサ情報22を取得し、このセンサ情報22に基づいてモータ4の磁極位置を計算して、計算結果を磁極位置23として振幅調整部15に出力する。センサ情報22には、例えばモータ4に取り付けられたレゾルバやホールセンサ等の位置センサから出力される信号などを用いることができる。あるいは、位置センサを用いずに、モータ4の電流や電圧をセンサ情報22として取得し、これらの値からモータ4の磁極位置を計算する位置センサレス制御を適用してもよい。また、磁極位置23は電気角、機械角のどちらであってもよい。磁極位置23が機械角の場合は、モータ4の極対数に基づき、振幅調整部15において機械角を電気角に変換することが可能である。
【0014】
電気角速度計算部11は、モータ4の磁極位置に関するセンサ情報22を取得し、このセンサ情報22に基づいてモータ4の電気角速度を計算して、計算結果を電気角速度24としてトルクリプル補償値演算部12に出力する。なお、センサ情報22ではなく、磁極位置計算部10から出力される磁極位置23に基づいて、モータ4の電気角速度を計算し、電気角速度24を出力してもよい。
【0015】
トルクリプル補償値演算部12は、トルク指令値生成器2からのトルク指令値21と、電気角速度計算部11からの電気角速度24とに基づき、モータ4において生じるトルクリプルを補償するための補償値を計算する。そして、計算結果をトルクリプル補償値25として振幅調整部15に出力する。なお、トルクリプル補償値演算部12によるトルクリプル補償値25の計算方法については後述する。
【0016】
トルク上限算出部13は、モータ4の状態に応じたトルクの上限値を算出し、その算出結果をトルク上限値26としてリプル振幅上限値算出部14に出力する。トルク上限算出部13は、例えば、事前の計算や実験結果に基づいて予め設定された複数の最大トルクの中から、現在のモータ4の状態に応じて最も絶対値が小さいものを選択し、その最大トルクの値をトルク上限値26として出力する。あるいは、予め設定された一定のトルク上限値26を出力してもよい。
【0017】
リプル振幅上限値算出部14は、トルク指令値生成器2からのトルク指令値21と、トルク上限算出部13からのトルク上限値26とに基づき、トルクリプル補償値演算部12から出力されるトルクリプル補償値25の振幅に対する上限値を算出する。そして、計算結果をリプル振幅上限値27として振幅調整部15に出力する。
【0018】
振幅調整部15は、リプル振幅上限値算出部14からのリプル振幅上限値27に基づき、トルクリプル補償値25における各周波数成分の振幅を調整する。そして、周波数成分ごとに振幅が調整されたトルクリプル補償値25と、磁極位置計算部10からの磁極位置23とに基づき、振幅調整後のトルクリプル補償値28を計算して、トルク指令値補正部16に出力する。なお、振幅調整部15による振幅調整後のトルクリプル補償値28の計算方法については後述する。
【0019】
トルク指令値補正部16は、トルク指令値21から振幅調整後のトルクリプル補償値28を減算し、トルク指令値21の補正を行う。そして、補正されたトルク指令値21を、モータ4を制御するための最終トルク指令値29として電流制御部17に出力する。
【0020】
電流制御部17は、トルク指令値補正部16から出力された最終トルク指令値29に基づき、インバータ3の制御信号を生成する。例えば、インバータ3に設けられたIGBT(Insulated Gate Bipolar Transistor)やMOSFET(Metal-Oxide-Semiconductor
Field Effect Transistor)などのスイッチング素子の動作を制御するためのゲート信号を、インバータ3の制御信号として生成し、インバータ3に出力する。
【0021】
インバータ3は、電流制御部17からの制御信号に基づいて動作し、不図示の直流電源から供給される直流電力を交流電力に変換してモータ4に供給する。
【0022】
モータ4は、インバータ3から供給される交流電力を用いて駆動し、最終トルク指令値29に応じたトルクを発生する。なお、モータ4には、例えば永久磁石式同期回転電機が用いられる。ただし、トルクリプルを有するモータであれば、モータ4の構造はこれに限らない。例えばリニアモータや誘導機をモータ4として用いた場合でも、本発明は適用可能である。また、モータ4は、電動機の機能に加えて、発電機の機能を有してもよい。
【0023】
次に、トルクリプル補償値演算部12の詳細について、図2図4を参照して以下に説明する。
【0024】
図2は、本発明の第1の実施形態に係るトルクリプル補償値演算部12のブロック図である。トルクリプル補償値演算部12は、トルクリプル推定マップ201と、トルク制御応答特性テーブル202と、位相振幅補償部203とを備える。
【0025】
トルクリプル推定マップ201は、トルクに応じたトルクリプルの補償係数を保持している。トルクリプル補償値演算部12では、トルク指令値生成器2から入力されるトルク指令値21に基づき、トルクリプル推定マップ201を参照して、モータ4で生じるトルクリプルの次数n(nは自然数)ごとに振幅と位相を推定する。そして、各次数のトルクリプルの振幅と位相の推定結果211を、位相振幅補償部203に入力する。
【0026】
本実施形態では、トルクリプル推定マップ201は、例えばトルクリプルの次数nごとに記録された補償係数マップである。この補償係数マップには、トルク値とトルクリプルの各次数nにおける振幅Anおよび位相φnの値とが、互いに対応付けて記録されている。そのため、トルクリプル補償値演算部12は、トルクリプル推定マップ201を参照することで、トルク指令値21に応じたトルクリプルの振幅Anおよび位相φnの値を次数ごとに推定することができる。
【0027】
図3は、ある1つの次数についてのトルクリプル推定マップ201の例を示す図である。図3(A)はトルク値とトルクリプルの振幅Anとの関係を表すトルクリプル推定マップ201の一例を示し、図3(B)はトルク値とトルクリプルの位相φnとの関係を表すトルクリプル推定マップ201の一例を示している。
【0028】
全体の傾向として、図3(A)のように、トルクの絶対値が大きくなるほど、トルクリプルの振幅Anは大きくなるが、必ずしも単調増加あるいは単調減少ではない。一方、図3(B)のように、トルク値の変化に対してトルクリプルの位相φnの変化傾向は一定ではない。このように、トルクリプルの振幅Anおよび位相φnは、トルク値に応じて変化する。
【0029】
本実施形態では、トルクリプル補償値演算部12において、予め実験や電磁界解析などの結果によって得られたトルクリプルの特性をトルクリプル推定マップ201として保持しておく。そして、トルク指令値生成器2からトルク指令値21が入力されると、トルクリプル推定マップ201を参照して、トルク指令値21が表すトルク値に応じたトルクリプルの振幅Anおよび位相φnを取得する。このとき、トルク指令値21に対応する振幅Anや位相φnがトルクリプル推定マップ201に記録されていない場合は、内挿あるいは外挿により、トルク指令値21に応じた振幅Anや位相φnを取得してもよい。これにより、トルクリプルの次数nごとに振幅Anと位相φnが予め対応付けて記録されたトルクリプル推定マップ201を用いて、トルク指令値21に応じたトルクリプルを推定し、推定結果211を求めることができる。
【0030】
なお、温度などの条件変化により、モータ4で生じるトルクリプルの形状が同一のトルク値に対して変化する場合は、トルクリプル補償値演算部12において、条件ごとに設定されたトルクリプル推定マップ201を複数保持しておき、条件に応じてトルクリプル推定マップ201を使い分けてもよい。
【0031】
また、トルクリプル補償値演算部12において、図3のようなグラフ形式ではなく、複素数や近似関数の係数などの数値を用いて、トルクリプル推定マップ201を保持してもよい。例えば、以下の式(1)のような複素係数を用いて、トルクリプルの振幅Anと位相φnを表現することができる。この場合、位相振幅補償部203では、トルクリプル推定マップ201から得られた推定結果211を、単一係数の掛け算として容易に処理することができる。また、複素係数を用いることで、内挿操作や外挿操作において位相φnの値を容易に適正化することが可能となる。一方、近似関数の係数としてトルクリプル推定マップ201を保持する場合は、データ量の圧縮が可能となる。また、内挿操作や外挿操作を関数の計算により連続的に行うことが可能となる。
【数1】
【0032】
トルク制御応答特性テーブル202は、トルク制御系によって生じる位相の遅れと振幅の変化をキャンセルするために必要な振幅補償量Gnと位相補償量θnの値を、電気角周波数ごとに保持している。トルクリプル補償値演算部12では、電気角速度計算部11から入力される電気角速度24にトルクリプルの次数nを乗算してその逆数を計算することで、次数ごとの電気角周波数を求める。そして、求めた電気角周波数に基づき、トルク制御応答特性テーブル202を参照して、モータ4で生じるトルクリプルの次数nごとに振幅補償量Gnと位相補償量θnを求め、これらの算出結果を振幅と位相の補償量212として位相振幅補償部203に入力する。
【0033】
図4は、トルク制御応答特性テーブル202の例を示す図である。図4(A)は振幅補償量Gnと位相補償量θnの周波数特性の一例を示し、図4(B)は振幅補償量Gnと位相補償量θnに相当する振幅と位相の時間領域でのずれの一例を示している。図4(A)において、上図の縦軸に示すGain値は、トルク指令値21の振幅に対する出力トルクの振幅の比率(振幅のずれ)を示している。また、下図の縦軸に示すPhase値は、トルク指令値21に対する出力トルクの位相遅れ(位相のずれ)を示している。図4(B)では、上記のトルク指令値21に対する出力トルクの振幅と位相のずれを、時間領域でそれぞれ示している。
【0034】
図4(A)、図4(B)から、モータ4の出力トルクにはトルク指令値21に対してずれが生じることが分かる。これをキャンセルするためには、例えば、トルクリプル推定マップ201からトルクリプルの次数nごとに得られる振幅Anと位相φnの推定結果211に基づき、振幅Anには、各次数nに応じた電気角周波数に対応するGain値の逆数を乗算し、位相φnには、各次数nに応じた電気角周波数に対応するPhase値を差し引けばよい。このとき、振幅補償量Gnは、図4(A)の上図より求められるGain値の逆数に相当し、位相補償量θnは、図4(A)の下図より求められるPhase値に相当する。
【0035】
本実施形態では、トルクリプル補償値演算部12において、予め実験や電磁界解析などの結果によって得られたトルク指令値21に対する出力トルクの振幅と位相のずれの周波数特性を、トルク制御応答特性テーブル202として保持しておく。そして、電気角速度計算部11から電気角速度24が入力されると、電気角速度24に基づいて各次数nの電気角周波数を求め、トルク制御応答特性テーブル202を参照して、各次数nの電気角周波数に応じた振幅補償量Gnおよび位相補償量θnを取得する。これにより、振幅補償量Gnと位相補償量θnの周波数特性を表すトルク制御応答特性テーブル202を用いて、電気角速度24に応じた振幅と位相の補償量212をトルクリプルの次数nごとに計算することができる。
【0036】
なお、キャリア周波数や制御ゲインなどの制御条件の変化に応じてトルク制御の応答特性が変化する場合は、トルクリプル補償値演算部12において、制御条件ごとに設定されたトルク制御応答特性テーブル202を複数保持しておき、制御条件に応じてトルク制御応答特性テーブル202を使い分けてもよい。
【0037】
また、トルク制御応答特性テーブル202において、電気角周波数が一定の値以上となる領域では、電気角周波数が高くなるほど振幅補償量Gnの値が減少し、振幅補償量Gnを徐々に0とするように、位相補償量θnの周波数特性を設定してもよい。このようにすれば、トルクリプル補償値演算部12において、電気角速度24が所定の基準値以上の場合に、電気角速度24が大きくなるほどトルクリプル補償値25の振幅が減少するようにトルクリプル補償値25を計算することができる。その結果、モータ4が高速回転している場合には、モータ制御装置1によるトルクリプルの抑制動作を滑らかに停止させることができる。これにより、トルクリプルの影響が相対的に小さくなる一方で、電気角1周期あたりの時間が短くなるモータ4の高速回転時には、モータ制御装置1の計算リソースを電流制御部17の処理に重点的に割り当て、モータ制御装置1全体での処理負荷の適正化を図ることができる。
【0038】
上記のトルク制御応答特性テーブル202により表されるトルク制御系での位相と振幅のずれは、モータ4に流れる電流を検出するサンプリングホールド回路での時間遅れや、トルク指令値21の演算遅れ、電流制御部17での電流制御の遅れ等による応答特性を含む。また、これらの要因ごとの応答特性は、一つのトルク制御応答特性テーブル202としてまとめて保持してもよいし、要因ごとにトルク制御応答特性テーブル202を分割して保持してもよい。要因ごとに個別にトルク制御応答特性テーブル202を保持する場合は、各要因が制御構成上の直列要素か並列要素かに応じて、それぞれのテーブルで求められた振幅補償量Gnと位相補償量θnが合成される。
【0039】
位相振幅補償部203は、トルクリプル推定マップ201から得られた各次数のトルクリプルの振幅と位相の推定結果211と、トルク制御応答特性テーブル202から得られた振幅と位相の補償量212とに基づき、トルクリプルに対する振幅補償値An’および位相補償値φn’を次数ごとに求める。そして、求められた振幅補償値An’および位相補償値φn’を、トルクリプル補償値25として振幅調整部15に出力する。
【0040】
トルクリプル補償値演算部12では、以上説明したようにして、トルク指令値21および電気角速度24に基づいてトルクリプル補償値25の計算が行われる。
【0041】
続いて、トルク上限算出部13およびリプル振幅上限値算出部14の詳細について、図5図6を参照して以下に説明する。
【0042】
図5は、トルク上限算出部13およびリプル振幅上限値算出部14のブロック図である。トルク上限算出部13はトルク上限判定部302を備え、リプル振幅上限値算出部14は絶対値算出部311および減算器312を備える。
【0043】
トルク上限判定部302には、トルク上限リスト303~307が入力される。トルク上限リスト303~307は、事前の計算や実験結果に基づいて予め設定された最大トルクのリストであり、それぞれ異なる条件に応じて設定される。例えば、任意の値により与えられたトルク上限リスト303、トルク指令値21を電流指令値に変換するマップの探索上限を表すトルク上限リスト304、インバータ3やモータ4の熱的制約に基づいて計算されたトルク上限リスト305、インバータ3やモータ4の電流制約に基づいて計算されたトルク上限リスト306、モータ4の回転数と出力トルクの間のNT特性に基づいて設定されたトルク上限リスト307などが、トルク上限判定部302に入力される。なお、トルク上限リスト303およびトルク上限リスト304は、定数として与えられる場合もある。
【0044】
図6は、トルク上限リストの例を示す図である。熱的制約によるトルク上限リスト305は、例えば図6(A)のように、一定以上の温度において、温度が上昇するほどトルク上限値が下がるように設定される。図6(A)の横軸に示す温度は、例えばインバータ3やモータ4に設置された温度センサによりモニターされる温度を表している。一般に、トルク上限リスト305は、温度の低い領域ではトルク上限値を高くし、温度の高い領域では、磁石の減磁などが起きないように、トルク上限値を絞るために利用される。
【0045】
電流制約によるトルク上限リスト306は、例えば図6(B)のように、一定以下の電流において、電流が減少するほどトルク上限値が下がるように設定される。図6(B)の横軸に示す電流制約は、例えばインバータ3とモータ4の間に設置された電流センサによりモニターされる電流を表している。トルク上限リスト306は、インバータ3やモータ4における回路の電流制約に対応して与えられるトルク上限を決定するために利用される。この電流制約は、電線の耐電流や温度上昇を抑制するために設けられ、モータ4の運転状況に応じて変化する。
【0046】
モータ4のNT特性によるトルク上限リスト307は、例えば図6(C)のように、一定以上のモータ回転数において、回転数が上昇するほどトルク上限値が下がるように設定される。トルク上限リスト307は、一定以上のモータ回転数において、電圧制約の関係でモータ4の出力トルクを絞るために利用される。
【0047】
なお、図6に示したトルク上限リスト305~307は一例であり、他のトルク上限リストを設定してもよい。トルク上限算出部13では、前述のトルク上限リスト303、304を含めて、任意のトルク上限リスト303~307をトルク上限判定部302に入力することができる。また、トルク上限判定部302に入力されるトルク上限値はトルク上限リスト303~307に限らず、任意に追加または削除してもよい。
【0048】
トルク上限判定部302は、入力されたトルク上限リスト303~307に対して、モータ4の運転条件に応じたトルク上限値をそれぞれ求め、これらのトルク上限値のうちで最も絶対値が小さいものを、最終的なトルク上限値26としてリプル振幅上限値算出部14に出力する。
【0049】
絶対値算出部311は、トルク指令値生成器2から入力されるトルク指令値21の絶対値を算出し、減算器312に出力する。減算器312は、トルク上限判定部302から出力されるトルク上限値26と、減算器312から出力されるトルク指令値21の絶対値との差分を計算し、その計算結果を、リプル振幅上限値27として振幅調整部15に出力する。
【0050】
リプル振幅上限値算出部14では、以上説明したようにして、トルク指令値21と、トルク上限算出部13において予め設定されたトルク上限値とに基づき、トルクリプル補償値25の振幅に対する上限値であるリプル振幅上限値27を算出することができる。
【0051】
続いて、振幅調整部15の詳細について、図7図8を参照して以下に説明する。
【0052】
図7は、本発明の第1の実施形態に係る振幅調整部15のブロック図である。振幅調整部15は、振幅最適化部101および補償値計算部102を備える。
【0053】
振幅最適化部101は、リプル振幅上限値算出部14から出力されるリプル振幅上限値27に基づき、トルクリプル補償値演算部12から出力されるトルクリプル補償値25の各次数nの振幅、すなわち、トルクリプル補償値25における各周波数成分の振幅を調整する。例えば、振幅最適化部101は、トルクリプル補償値演算部12の位相振幅補償部203において求められた前述の振幅補償値An’および位相補償値φn’のうち、振幅補償値An’がリプル振幅上限値27以内に収まるように、各次数nの振幅補償値An’を調整して、調整後の振幅補償値Anaを求める。具体的には、例えば振幅最適化部101は、位相振幅補償部203において次数nごとに計算された振幅補償値An’および位相補償値φn’を重ね合わせて、トルクリプル補償値25の最大振幅を計算する。そして、計算された最大振幅とリプル振幅上限値27を比較し、最大振幅がリプル振幅上限値27以下となるまで、予め定められた順番で振幅制限の対象とする次数(振幅制限次数)を決定し、その振幅制限次数の振幅補償値An’を小さくするように調整する。その結果、最大振幅がリプル振幅上限値27以下となったら、そのときの各次数nの調整後の振幅補償値Anaおよび位相補償値φnaを、調整後の位相振幅情報111として補償値計算部102に出力する。なお、振幅最適化部101における振幅補償値An’の調整方法の詳細については、図10に示すフローチャートを参照して後述する。
【0054】
なお、振幅最適化部101では、トルクリプル抑制の目的に合わせて、トルクリプル補償値25の振幅を次数nごとに調整する際に用いる目的関数や制約条件を任意に変更可能である。トルクリプル補償値25の振幅を調整する際の最適化手法は、上記のものに限定されず、任意の手法を採用可能である。また、トルクリプル補償値25とリプル振幅上限値27の組み合わせごとに調整後の各次数nの振幅補償値Anaを事前に計算しておき、この計算値を振幅最適化部101に記憶させておくことで、これを参照して調整後の位相振幅情報111を出力するようにしてもよい。このようにすれば、振幅調整部15の計算負荷を軽減することができる。
【0055】
図8は、振幅最適化部101において振幅補償値An’を調整する際に用いられる振幅低減割合マップの一例を示す図である。図8において、横軸はトルク指令値21を表し、縦軸は調整前後での振幅補償値An’の低減割合を表している。振幅最適化部101では、例えば図8に示すような振幅低減割合マップを各次数nおよび条件ごとに保持し、これに基づいて、振幅補償値An’から調整後の振幅補償値Anaを決定することができる。
【0056】
補償値計算部102は、振幅最適化部101から出力される調整後の位相振幅情報111と、磁極位置23とに基づき、振幅調整後のトルクリプル補償値28を計算する。例えば、各次数n(各振幅制限次数および他の各次数)における調整後の振幅補償値Anaおよび位相補償値φnaに基づき、磁極位置23に対応する振幅と位相の補償値を次数nごとに求める。これにより、補償値計算部102において、振幅調整後のトルクリプル補償値28を計算することができる。補償値計算部102は、こうして求めた振幅調整後のトルクリプル補償値28を、トルク指令値補正部16に出力する。
【0057】
続いて、電流制御部17の詳細について、図9を参照して以下に説明する。
【0058】
図9は、電流制御部17のブロック図である。電流制御部17は、リミット処理部41および制御回路42を備える。
【0059】
リミット処理部41は、トルク指令値21と振幅調整後のトルクリプル補償値28に基づいてトルク指令値補正部16から出力される最終トルク指令値29を、所定のリミット値と比較する。その結果、最終トルク指令値29がリミット値を超過する場合は、最終トルク指令値29をリミット値に置き換えることで最終トルク指令値29を制限し、リミット処理後の最終トルク指令値43として制御回路42に出力する。なお、最終トルク指令値29がリミット値以下の場合は、最終トルク指令値29をそのままリミット処理後の最終トルク指令値43として出力すればよい。
【0060】
制御回路42は、リミット処理部41から出力されるリミット処理後の最終トルク指令値43に基づき、所定の電流制御演算を行うことにより、インバータ3の制御信号を生成する。
【0061】
なお、最終トルク指令値29に基づきインバータ3の制御信号が生成できれば、電流制御部17の構成は図9に示したものに限定されない。例えば、リミット処理部41を設けずに制御回路42のみを用いて、電流制御部17を構成してもよい。
【0062】
次に、本実施形態におけるモータ制御装置1の詳細動作とその効果について、以下に説明する。
【0063】
モータ制御装置1は、トルクリプル補償値演算部12において、トルク指令値21に基づき、トルクリプル推定マップ201を参照して、トルクリプルの各次数nについて振幅Anと位相φnを推定する。また、モータ4の電気角速度24に基づき、トルク制御応答特性テーブル202を参照して、トルクリプルの各次数nについて振幅補償量Gnと位相補償量θnを求める。そして、これらの値に基づき、以下の式(2)により、トルクリプルに対する振幅補償値An’および位相補償値φn’を次数nごとに求める。
【数2】
【0064】
トルク上限算出部13では、モータ4の運転条件に対応したトルク上限値Tmaxを算出する。リプル振幅上限値算出部14では、トルク上限値Tmaxとトルク指令値Tcから、以下の式(3)により、リプル振幅上限値Tlimを算出する。なお、トルク指令値Tcは前述のトルク指令値21、トルク上限値Tmaxは前述のトルク上限値26、リプル振幅上限値Tlimは前述のリプル振幅上限値27にそれぞれ相当する。
【数3】
【0065】
振幅調整部15では、トルクリプル補償値演算部12が算出した振幅補償値An’および位相補償値φn’と、リプル振幅上限値算出部14が算出したリプル振幅上限値Tlimとに基づき、振幅調整後のトルクリプル補償値Trを算出する。ここでは、リプル振幅上限値27が表すリプル振幅上限値Tlimに基づいて、トルクリプル補償値25が表す振幅補償値An’および位相補償値φn’に対する調整後の振幅補償値Anaおよび位相補償値φnaを求め、これらの値から振幅調整後のトルクリプル補償値Trを算出する。なお、振幅調整部15による振幅調整後のトルクリプル補償値Trの具体的な計算方法については後述する。
【0066】
トルク指令値補正部16では、トルク指令値Tcから、振幅調整部15が算出した振幅調整後のトルクリプル補償値Trを減算し、最終トルク指令値Tcrを計算する。
【0067】
電流制御部17では、トルク指令値補正部16が算出した最終トルク指令値Tcrを用いて、インバータ3の制御信号を生成する。そして、生成した制御信号をインバータ3に出力してインバータ3の動作を制御し、モータ4の駆動制御を行う。
【0068】
図10は、本発明の第1の実施形態に係る振幅調整部15におけるトルクリプル補償値25の調整方法の一例を示すフローチャートである。図10のフローチャートでは、振幅調整部15の振幅最適化部101において、二分探索を利用した二段階振幅調整アルゴリズムを用いてトルクリプル補償値25を調整する場合の処理の流れを示している。
【0069】
まず、ステップS111では、トルクリプル補償値演算部12の位相振幅補償部203から出力されたトルクリプル補償値25が表す振幅補償値An’および位相補償値φn’に基づき、以下の式(4)によりトルクリプル関数Tr(θ)を定義する。
【数4】
【0070】
次に、ステップS112では、トルクリプル関数Tr(θ)を用いて以下の式(5)で定義される評価式Gにより、トルクリプル補償値25の最大値または最小値がリプル振幅上限値Tlimを超過するか否かを評価する。式(5)において、nmは各次数nのうち最小次数を表し、θnowは現在の磁極位置を表す。
【数5】
【0071】
ステップS112の評価結果が真の場合(S112:Y)、すなわち評価式Gが成立する場合は、振幅補償値An’を調整する必要はないと判断し、ステップS127に進む。ステップS127では、トルクリプルの全ての次数nについて、振幅補償値An’を調整後の振幅補償値Anaに設定し、図10のフローチャートに示す処理を終了する。
【0072】
一方、ステップS112の評価結果が偽の場合(S112:N)、すなわち評価式Gが成立しない場合は、予め決められた順序に従って、振幅補償値An’を調整する必要があると判断してステップS113に進む。本実施形態では、低次のトルクリプル成分ほど優先的に抑制するために、高次側から低次側の順に、最低次数が最後となるように振幅制限次数を決定する。一般に、モータのトルクリプルは低次の成分ほど大きいため、低次側のトルクリプルを優先的に抑制することで、より大きなトルクリプル抑制効果が得られる。
【0073】
ステップS113では、変数kにnmaxを代入する。nmaxは、トルクリプルの次数nのうち、モータ制御装置1において取り扱われる最大の次数を示している。続くステップS114では、トルクリプル関数Tr(θ)から、現在の変数kの値に応じたトルクリプル成分に相当するAk’cos(kθ+φk’)を差し引き、当該トルクリプル成分の次数を振幅制限次数として振幅を低減した場合のトルクリプル関数Tr(θ)を新たに定義する。なお、上記トルクリプル成分において、Ak’とφk’は現在の変数kの値に応じた成分の振幅補償値と位相補償値をそれぞれ表している。
【0074】
ステップS115では、ステップS114で新たに定義されたトルクリプル関数Tr(θ)を用いて、前述の式(5)で定義される評価式Gにより、現在の変数kの値に応じた次数を振幅制限次数として当該次数の振幅を低減した場合に、トルクリプル補償値25の最大値または最小値がリプル振幅上限値Tlimを超過するか否かを評価する。ステップS115の評価結果が真の場合(S115:Y)、すなわち評価式Gが成立する場合は、ステップS120に進む。一方、ステップS115の評価結果が偽の場合(S115:N)、すなわち評価式Gが成立しない場合は、ステップS116に進む。
【0075】
ステップS116では、現在の変数kの値が、モータ制御装置1において取り扱われる最小の次数nminであるか否かを判定する。k=nminである場合(S116:Y)は、ステップS128に進む。ステップS128では、現在の変数kの値(k=nmin)に応じた次数における調整後の振幅補償値Akaをリプル振幅上限値Tlimに設定し、他の次数における調整後の振幅補償値Ana(n≠k)を全て0に設定して、図10のフローチャートに示す処理を終了する。
【0076】
一方、k≠nminである場合(S116:N)は、ステップS117に進む。ステップS117では、現在の変数kの値に応じた次数における調整後の振幅補償値Akaを0に設定する。続くステップS118では、現在の変数kの値が表す次数の次に順位の低い次数nnext(k)を、新たな変数kの値に設定する。ステップS118の完了後は、ステップS114に戻り、以後同様の操作を繰り返す。
【0077】
ステップS120では、現在の変数kの値に応じた次数の振幅補償値Ak’の半分の値を新しい振幅補償値Ak’に設定する。このとき、変数Lを0に初期化する。続くステップS121では、トルクリプル関数Tr(θ)に、現在の変数kの値に応じたトルクリプル成分に相当するAk’cos(kθ+φk’)を加えて、当該トルクリプル成分を含めたトルクリプル関数Tr(θ)を新たに定義する。
【0078】
ステップS122では、ステップS120で設定した振幅補償値Ak’を変数Lに加える。続くステップS123では、ステップS121で新たに定義されたトルクリプル関数Tr(θ)を用いて、前述の式(5)で定義される評価式Gにより、トルクリプル補償値25の最大値または最小値がリプル振幅上限値Tlimを超過するか否かを評価する。ステップS123の評価結果が真の場合(S123:Y)、すなわち評価式Gが成立する場合は、ステップS124に進む。一方、ステップS123の評価結果が偽の場合(S123:N)、すなわち評価式Gが成立しない場合は、ステップS126に進む。
【0079】
ステップS124では、ステップS120で設定した振幅補償値Ak’の絶対値と、二分探索の終了条件として予め設定された閾値Athとを比較し、振幅補償値Ak’の絶対値|Ak’|が閾値Athよりも小さいか否かを判定する。|Ak’|<Athである場合(S124:Y)は、ステップS129に進む。ステップS129では、現在の変数kの値に応じた次数における調整後の振幅補償値Akaを、現在の変数Lの値に設定し、図10のフローチャートに示す処理を終了する。
【0080】
一方、|Ak’|≧Athである場合(S124:N)は、ステップS125に進む。ステップS125では、現在の変数kの値に応じた次数の振幅補償値Ak’の半分の値の絶対値を新しい振幅補償値Ak’に設定する。ステップS125の完了後は、ステップS121に戻り、以後同様の操作を繰り返す。
【0081】
ステップS126では、現在の変数kの値に応じた次数の振幅補償値Ak’の半分の値の絶対値にマイナスをつけた値を新しい振幅補償値Ak’に設定する。ステップS126の完了後は、ステップS121に戻り、以後同様の操作を繰り返す。
【0082】
振幅最適化部101は、以上説明した図10のフローチャートに示す処理を、ステップS112、S116、S124のいずれかの終了条件を満たすまで繰り返し実施することで、トルクリプルの各次数nについて、調整後の振幅補償値Anaと、これに応じた位相補償値φnaとを決定する。
【0083】
補償値計算部102は、振幅最適化部101から出力される調整後の位相振幅情報111が表す上記の振幅補償値Anaおよび位相補償値φnaと、磁極位置23が表す現在の磁極位置θnowとに基づき、以下の式(6)により、磁極位置θnowに応じた振幅調整後のトルクリプル補償値Tr(θnow)を算出する。
【数6】
【0084】
補償値計算部102から出力される振幅調整後のトルクリプル補償値28によって表される上記のトルクリプル補償値Tr(θnow)は、トルク指令値補正部16に入力される。トルク指令値補正部16では、トルク指令値21が表すトルク指令値Tcと、振幅調整後のトルクリプル補償値28が表すトルク補償値Trとに基づき、以下の式(7)により、最終トルク指令値Tcrを計算する。
【数7】
【0085】
図11は、本発明の第1の実施形態に係るモータ制御装置の動作の概要を示す説明図である。振幅調整部15において次数nごとにトルクリプル補償値の振幅を調整していない振幅調整前の状態では、トルク指令値生成器2からのトルク指令値21に応じてモータ4が出力するトルクの波形は、例えば図11(A)に示すように、モータ4において許容されるトルク上限値を超過することがある。
【0086】
本実施形態では、振幅調整部15において、例えば図11(B)に示すように、トルク指令値に応じた各次数nのトルクリプル補償値の振幅を、高次のトルクリプル成分に対する補償値から順次小さくなるように調整することで、振幅の最適化を行う。その結果、モータ4が出力するトルクの波形は、例えば図11(C)に示すように、モータ4において許容されるトルク上限値以下に抑えられる。
【0087】
図12は、従来のモータ制御装置と本発明によるモータ制御装置でのトルクリプル補償量の比較図である。従来のモータ制御装置では、例えば図12(A)に示すように、トルク指令値に応じて設定されるトルクリプル補償値は、次数nごとにトルク上限値の超過分がそれぞれリミットされる。そのため、意図しないリプルの発生や、補償量の不足が発生する。一方、本発明によるモータ制御装置では、前述のように振幅調整部15において、トルク指令値に応じた各次数nのトルクリプル補償値の振幅を、高次のトルクリプル成分に対する補償値から順次小さくなるように調整することで、振幅の最適化を行う。その結果、例えば図12(B)に示すように、低次のトルクリプル成分に対する補償量を最大化し、モータ4において発生するトルクリプルを効果的に抑制できる。なお、図12(A)および図12(B)では、見やすさのため、補償すべきリプルと補償量の棒グラフの位置を横軸方向で互いにずらしているが、実際には、これらの棒グラフは同一の周波数を表している。
【0088】
以上説明した本発明の第1の実施形態によれば、以下の作用効果を奏する。
【0089】
(1)モータ制御装置1は、上位制御器であるトルク指令値生成器2からのトルク指令値21に基づいてモータ4を制御する。モータ制御装置1は、モータ4の電気角速度24およびトルク指令値21に基づき、モータ4において生じるトルクリプルを補償するためのトルクリプル補償値25を計算するトルクリプル補償値演算部12と、トルク指令値21と、モータ4に対して設定されたトルク上限値26とに基づき、トルクリプル補償値25の振幅に対する上限値であるリプル振幅上限値27を算出するリプル振幅上限値算出部14と、リプル振幅上限値27に基づき、トルクリプル補償値25における各周波数成分の振幅を調整して、振幅調整後のトルクリプル補償値28を計算する振幅調整部15と、を備える。モータ制御装置1は、振幅調整部15により計算された振幅調整後のトルクリプル補償値28と、トルク指令値21とに基づき、モータ4を制御するための最終トルク指令値29を算出する。このようにしたので、出力電流の上限値に近いトルク指令値21が与えられた場合でも、トルクリプルの効果的な抑制を図ることができる。
【0090】
(2)トルクリプル補償値演算部12は、トルクリプルの次数ごとに振幅と位相が予め対応付けて記録されたトルクリプル推定マップ201を用いて、トルク指令値21に応じたトルクリプルを推定する。このようにしたので、トルク指令値21に応じた各次数のトルクリプルを容易かつ確実に推定することができる。
【0091】
(3)トルクリプル補償値演算部12は、電気角速度24に基づいて、トルクリプルの次数ごとにトルクリプル補償値の位相と振幅を計算する。具体的には、トルクリプル補償値演算部12は、トルクリプル推定マップ201、トルク制御応答特性テーブル202および位相振幅補償部203を用いて、トルク指令値21とモータ4のトルク出力の間における位相と振幅のずれをそれぞれ相殺するように、トルクリプルの次数ごとにトルクリプル補償値25の位相と振幅を計算する。このようにしたので、モータ4において生じるトルクリプルを補償するためのトルクリプル補償値25を、トルクリプルの次数ごとに正確に計算することができる。
【0092】
(4)トルクリプル補償値演算部12は、電気角速度24が所定の基準値以上の場合、電気角速度24が大きくなるほどトルクリプル補償値25の振幅が減少するように、トルクリプル補償値25を計算することができる。このようにすれば、モータ4が高速回転している場合に、モータ制御装置1全体での処理負荷の適正化を図ることができる。
【0093】
(5)リプル振幅上限値算出部14は、絶対値算出部311および減算器312により、トルク上限値26とトルク指令値21の絶対値との差に基づき、リプル振幅上限値27を算出する。このようにしたので、トルク上限値26およびトルク指令値21に応じたリプル振幅上限値27を適切に算出することができる。
【0094】
(6)トルクリプル補償値演算部12は、トルクリプルの次数ごとにトルクリプル補償値25の位相と振幅を計算する。振幅調整部15は、振幅最適化部101により、次数ごとに計算されたトルクリプル補償値25の位相と振幅に基づいてトルクリプル補償値25の最大振幅を計算し、最大振幅がリプル振幅上限値27以下となるように、次数の中で振幅制限の対象とする振幅制限次数と、振幅制限次数におけるトルクリプル補償値25の制限後の振幅と、をそれぞれ決定する。そして、補償値計算部102により、振幅制限次数におけるトルクリプル補償値の位相φnaおよび制限後の振幅Anaと、振幅制限次数を除いた次数におけるトルクリプル補償値の位相φn’(φna)および振幅An’(Ana)と、モータ4の磁極位置23とに基づき、振幅調整後のトルクリプル補償値28を計算する。このようにしたので、リプル振幅上限値27に応じた振幅調整後のトルクリプル補償値28を確実に計算することができる。
【0095】
(7)振幅調整部15は、振幅最適化部101において、高次側から低次側の順に振幅制限次数を決定する。このようにしたので、モータ4において発生するトルクリプルを抑制する際に、低次のトルクリプル成分ほど優先的に抑制して、高いトルクリプル抑制効果を得ることができる。
【0096】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。以下では、第1の実施形態と異なる部分について説明し、同様の部分については説明を省略する。
【0097】
第1の実施形態では、モータ制御装置1の振幅調整部15において、前述のように、高次側から低次側の順に振幅制限次数を決定することで、低次のトルクリプル成分ほど優先的に抑制するようにしていた。しかしながら、モータ4の構造や設計によっては、必ずしも低次のトルクリプルほど大きい振幅を持つとは限らない。そこで、本実施形態では、モータ制御装置1の振幅調整部15において、トルクリプル補償値25で表される振幅が小さい次数の順に振幅制限次数を決定することで、トルクリプルの振幅が大きい次数ほど優先的に抑制されるようにする。具体的には、トルクリプルの各次数nのうち、トルクリプル補償値演算部12において次数ごとに計算されたトルクリプル補償値25の振幅が小さい順に、振幅制限次数を決定する。
【0098】
なお、本実施形態に係るモータ制御装置1の構成は、第1の実施形態で説明した図1の概略ブロック図に示したものと同様である。
【0099】
以上説明した本発明の第2の実施形態によれば、振幅調整部15は、振幅最適化部101において、次数ごとに計算されたトルクリプル補償値25の振幅が小さい順に振幅制限次数を決定する。このようにしたので、モータ4において発生するトルクリプルを抑制する際に、振幅が大きいトルクリプル成分ほど優先的に抑制して、高いトルクリプル抑制効果を得ることができる。
【0100】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。以下では、第1の実施形態と異なる部分について説明し、同様の部分については説明を省略する。
【0101】
図13は、本発明の第3の実施形態に係るモータ制御装置の構成を示す概略ブロック図である。図13に示すモータ制御装置1Aは、図1に示した第1の実施形態に係るモータ制御装置1と同様の構成を有しているが、電気角速度計算部11からの電気角速度24が振幅調整部15にも入力される点が異なっている。
【0102】
図14は、本発明の第3の実施形態に係る振幅調整部15のブロック図である。第1の実施形態で説明した図7と同様に、本実施形態において振幅調整部15は、振幅最適化部101および補償値計算部102を備える。
【0103】
本実施形態では、振幅最適化部101には、リプル振幅上限値算出部14から出力されるリプル振幅上限値27に加えて、電気角速度計算部11から出力される電気角速度24が入力される。振幅最適化部101は、これらの値に基づき、トルクリプル補償値演算部12から出力されるトルクリプル補償値25の各次数nの振幅、すなわち、トルクリプル補償値25における各周波数成分の振幅を、第1の実施形態で説明したのとは異なる手順で調整する。
【0104】
図15は、本発明の第3の実施形態に係る振幅調整部15におけるトルクリプル補償値25の調整方法の一例を示すフローチャートである。図15のフローチャートでは、第1の実施形態で説明した図10のフローチャートと比べて、ステップS111の前にステップS130の処理が追加されている点が異なる。
【0105】
ステップS130では、電気角速度計算部11から入力される電気角速度24に基づいてモータ4の電気角周波数を算出し、この電気角周波数に基づいて、モータ4において生じるトルクリプルの周波数を次数nごとに求める。そして、算出した次数nごとのトルクリプル周波数とモータ4の共振周波数との距離に基づき、振幅制限次数の順序決めを行う。具体的には、例えば、共振周波数に対する周波数差が大きい順に、振幅制限次数を決定する。
【0106】
モータ4には、トルクを出力する対象物の機械特性や、モータ4の構造、モータ4が設置された場所の構造などに応じて、機械的な共振を起こす共振周波数が存在する。モータ4におけるトルクリプルの周波数がこの共振周波数と一致すると、モータ4の振動が増幅され、モータ4が駆動時に発生する音や振動が増加する。これは、例えばモータ4が自動車などの車両に搭載される場合は、車両の乗り心地の低下を引き起こし、モータ4が工作機械に用いられる場合は、工作精度の劣化を引き起こす。このように、モータ4において発生するトルクリプルは、その周波数が共振周波数に近いほど、モータ4の振動や騒音に及ぼす影響が大きい。
【0107】
そこで、本実施形態では、モータ制御装置1Aの振幅調整部15において、電気角速度24からモータ4の電気角周波数を算出し、次数nごとにトルクリプルの周波数を求めて、その周波数が予め設定された共振周波数から離れている次数の順に、振幅制限次数を決定する。これにより、共振周波数に近い次数のトルクリプルほど優先的に抑制されるようにする。
【0108】
なお、本実施形態において、共振周波数からの周波数差以外の基準に基づいて振幅制限次数の順番決めを行ってもよい。例えば、モータ4における機械系の伝達関数が予め分かっている場合、トルクリプル補償値演算部12により推定された次数ごとのトルクリプルの振幅Anについて、伝達関数通過後の振幅をそれぞれ算出し、その値が小さい順で振幅制限次数を決めてもよい。また、例えばエレベータなどのように、運転条件に応じて共振周波数が変化する対象物をモータ4が駆動する場合、ステップS130の処理において、共振周波数を運転条件によって変更することもできる。
【0109】
以上説明した本発明の第3の実施形態によれば、振幅調整部15は、モータ4の振動や騒音に及ぼす影響が大きい共振周波数からの乖離が大きい順に振幅制限次数を決定する。このようにしたので、モータ4において発生するトルクリプルを抑制する際に、モータ4において発生する振動や騒音への影響が大きいトルクリプル成分ほど優先的に抑制して、高いトルクリプル抑制効果を得ることができる。
【0110】
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。以下では、第1の実施形態と異なる部分について説明し、同様の部分については説明を省略する。
【0111】
本実施形態に係るモータ制御装置1の構成は、第1の実施形態で説明した図1の概略ブロック図に示したものと同様である。
【0112】
第1の実施形態では、モータ制御装置1の振幅調整部15において、前述のように、高次側から低次側の順に振幅制限次数を決定することで、低次のトルクリプル成分ほど優先的に抑制するようにしていた。しかしながら、例えば自動車などの車両に搭載されるモータ4において、車両の速度指令や位置指令に対する走行軌道の追従性を向上する目的で、加速度の偏差を最小化するために、トルクリプルの周波数成分ではなく、トルク時間波形での最大振幅を最小化したい場合がある。
【0113】
そこで、本実施形態では、モータ制御装置1の振幅調整部15において、最終トルク指令値29に応じたモータ4の出力トルクの時間領域での最大振幅が最小となるように、振幅調整後のトルクリプル補償値28を計算する。具体的には、例えば振幅最適化部101において、以下の式(8)で表される最適化問題を解くアルゴリズムを用いて、トルクリプルの各次数nについて、調整後の振幅補償値Anaおよび位相補償値φnaを決定するようにする。
【数8】
【0114】
式(8)において、Toは最終トルク指令値29に対して推定される出力トルク波形、Pはトルク指令値21から出力トルクまでの伝達関数、ωeはモータ4の電気角速度24をそれぞれ表す。なお、振幅最適化部101が制御周期内で式(8)の計算を実行することが難しい場合は、式(8)を事前に計算しておき、その計算結果を条件ごとの振幅と位相のマップとして振幅最適化部101に保持することで、このマップを参照して調整後の振幅補償値Anaおよび位相補償値φnaを決定してもよい。
【0115】
以上説明した本発明の第4の実施形態によれば、振幅調整部15は、振幅最適化部101において、最終トルク指令値29に応じたモータ4の出力トルクの時間領域での最大振幅が最小となるように、振幅調整後のトルクリプル補償値28を計算する。このようにしたので、自動車などの車両に搭載されるモータ4において、車両の加速度の偏差を最小化し、車両の速度指令や位置指令に対する走行軌道の追従性を向上させることができる。
【0116】
(第5の実施形態)
次に、本発明の第5の実施形態について説明する。以下では、第1の実施形態と異なる部分について説明し、同様の部分については説明を省略する。
【0117】
モータ4の制御設計においては、次数ごとに達成すべきトルクリプル量の目標値が定められている場合がある。本実施形態では、トルクリプル量の目標値をできる限り達成すべく、目標値からのトルクリプルの超過量が大きい次数ほど、優先的にトルクリプルを抑制する例を説明する。
【0118】
図16は、本発明の第5の実施形態に係るモータ制御装置の構成を示す概略ブロック図である。図16に示すモータ制御装置1Bは、図1に示した第1の実施形態に係るモータ制御装置1と同様の構成を有しているが、トルクリプル補償値演算部12がトルクリプル補償値25に加えてトルクリプル超過量30を計算し、これらの値が振幅調整部15に入力される点が異なっている。トルクリプル超過量30とは、予めトルクリプルの次数ごとに設定された目標値に対するトルクリプルの振幅の超過量であり、トルクリプル補償値演算部12において、トルクリプルの次数ごとに計算される。
【0119】
本実施形態において、振幅調整部15は、トルクリプル超過量30が表す各次数のトルクリプル超過量がなるべく小さくなるように、トルクリプル補償値25に基づく振幅調整後のトルクリプル補償値28を計算する。具体的には、トルクリプル超過量30が小さい次数の順に振幅制限次数を決定し、各次数(振幅制限次数および他の各次数)における調整後の振幅補償値Anaおよび位相補償値φnaを計算する。そして、これらの計算結果に基づき、磁極位置23に対応する振幅と位相の補償値を次数nごとに求める。これにより、振幅調整後のトルクリプル補償値28を計算する。
【0120】
図17は、本発明の第5の実施形態に係るトルクリプル補償値演算部12のブロック図である。本実施形態においてトルクリプル補償値演算部12は、第1の実施形態で説明した図2のトルクリプル推定マップ201、トルク制御応答特性テーブル202および位相振幅補償部203に加えて、さらに残留リプル量目標マップ204およびリプル超過量計算部205を備える。
【0121】
残留リプル量目標マップ204は、予めトルクリプルの次数nごとに設定された振幅の目標値を保持している。モータ制御装置1の設計者は、モータ4を含むシステム上、極力超えてほしくないと考えるトルクリプルの振幅の大きさを、次数ごとに残留リプル量目標マップ204として定めることができる。
【0122】
トルクリプル補償値演算部12では、トルク指令値生成器2から入力されるトルク指令値21に基づき、残留リプル量目標マップ204を参照して、モータ4で生じるトルクリプルの次数nごとに振幅の目標値を決定する。そして、決定した各次数の振幅目標値を、残留リプル量目標値214としてリプル超過量計算部205に入力する。
【0123】
リプル超過量計算部205は、トルクリプル推定マップ201から得られた各次数のトルクリプル振幅の推定結果211と、残留リプル量目標マップ204から得られた各次数nの残留リプル量目標値214との差分を計算する。そして、求められた差分値に、トルク制御応答特性テーブル202から得られた振幅と位相の補償量212が表す振幅補償量Gnを次数nごとに乗算することで、各次数nのリプル超過量Onを算出する。また、リプル超過量計算部205は、残留リプル量目標マップ204から得られた各次数nの残留リプル量目標値214に、振幅補償量Gnを次数nごとに乗算することで、各次数nの残留リプル補償量Rnを算出する。リプル超過量計算部205により算出されたリプル超過量Onと残留リプル補償量Rnは、トルクリプル超過量30として、トルクリプル補償値演算部12から振幅調整部15に出力される。
【0124】
図18および図19は、本発明の第5の実施形態に係る振幅調整部15におけるトルクリプル補償値25の調整方法の一例を示すフローチャートである。図18および図19のフローチャートでは、振幅調整部15の振幅最適化部101において、二分探索を利用した二段階振幅調整アルゴリズムを用いてトルクリプル補償値25を調整する場合の処理の流れを示している。
【0125】
ステップS111~S113およびS127では、第1の実施形態で説明した図10と同様の処理をそれぞれ実施する。ただし本実施形態では、ステップS113において、トルクリプルの次数nのうちリプル超過量Onが最小の次数を、nmaxとする。ステップS113の次は、ステップS141に進む。
【0126】
ステップS141では、トルクリプル超過量30が表すリプル超過量Onと、トルクリプル補償値25が表す位相補償値φn’に基づき、トルクリプル関数Tr(θ)を再計算する。ここでは、前述の式(4)における振幅補償値An’をリプル超過量Onで置き換えることにより、トルクリプル関数Tr(θ)を再計算する。
【0127】
ステップS142では、ステップS141で再計算されたトルクリプル関数Tr(θ)を用いて、前述の式(5)で定義される評価式Gの評価を行う。ステップS142の評価結果が真の場合(S142:Y)、すなわち評価式Gが成立する場合は、図19のステップS150に進む。一方、ステップS142の評価結果が偽の場合(S142:N)、すなわち評価式Gが成立しない場合は、ステップS143に進む。
【0128】
ステップS143では、トルクリプル関数Tr(θ)から、現在の変数kの値に応じた次数のリプル超過量に相当するOkcos(kθ+φk’)を差し引き、当該リプル超過量の次数を振幅制限次数として振幅を低減した場合のトルクリプル関数Tr(θ)を新たに定義する。なお、ステップS143で再定義されるトルクリプル関数Tr(θ)は、図10のステップS114で再定義されるトルクリプル関数Tr(θ)のAk’をOkで置き換えたものに相当する。
【0129】
ステップS143の後、ステップS115~S118およびS128では、ステップS143で再定義されたトルクリプル関数Tr(θ)に基づき、図10と同様の処理をそれぞれ実施する。ただし本実施形態では、ステップS116において、トルクリプルの次数nのうちリプル超過量Onが最大の次数を、nminとする。また、ステップS118において、現在の変数kの値が表す次数の次にリプル超過量Onが小さい次数を、次の順位の低い次数nnext(k)として、新たな変数kの値に設定する。ステップS115の評価結果が真の場合(S115:Y)、すなわち評価式Gが成立する場合は、ステップS144に進む。
【0130】
ステップS144では、現在の変数kの値に応じた次数のリプル超過量Okの半分の値を新しい振幅補償値Ak’に設定する。このとき、変数Lを0に初期化する。ステップS144の後、ステップS121~S126およびS129では、ステップS144で設定された振幅補償値Ak’に基づき、図10と同様の処理をそれぞれ実施する。
【0131】
ここまでの操作で、リプル超過量Onに対するトルクリプル補償値25の振幅調整が完了する。続く図19のステップS150以降では、残留リプル補償量Rnについて、トルクリプル補償値25の振幅調整を行う。
【0132】
ステップS150では、変数kにnminを代入する。続くステップS151では、トルクリプル関数Tr(θ)に、現在の変数kの値に応じた次数の残留リプル補償量に相当するRkcos(kθ+φk’)を加えて、当該残留リプル補償量の振幅が加わった場合のトルクリプル関数Tr(θ)を新たに定義する。
【0133】
ステップS152では、現在の変数kの値が、リプル超過量Onが最小の次数nmaxであるか否かを判定する。k=nmaxである場合(S152:Y)は、ステップS156に進み、k≠nmaxである場合(S152:N)は、ステップS153に進む。
【0134】
ステップS153では、ステップS151で再定義されたトルクリプル関数Tr(θ)を用いて、前述の式(5)で定義される評価式Gの評価を行う。ステップS153の評価結果が真の場合(S153:Y)、すなわち評価式Gが成立する場合は、ステップS154に進む。一方、ステップS153の評価結果が偽の場合(S153:N)、すなわち評価式Gが成立しない場合は、ステップS156に進む。
【0135】
ステップS154では、現在の変数kの値に応じた次数における振幅補償値Ak’を、当該次数の調整後の振幅補償値Akaとして設定する。続くステップS155では、現在の変数kの値が表す次数の次に順位の低い次数nnext(k)を、新たな変数kの値に設定する。ステップS155の完了後は、ステップS151に戻り、以後同様の操作を繰り返す。
【0136】
ステップS156では、現在の変数kの値に応じた次数の残留リプル補償量Rkの半分の値を新しい振幅補償値Ak’に設定する。続くステップS157では、トルクリプル関数Tr(θ)から、現在の変数kの値に応じた次数のトルクリプル成分に相当するAk’cos(kθ+φk’)を差し引き、当該トルクリプル成分を除いたトルクリプル関数Tr(θ)を新たに定義する。
【0137】
ステップS158では、ステップS156で設定した振幅補償値Ak’を変数Lから差し引く。続くステップS159では、ステップS157で新たに定義されたトルクリプル関数Tr(θ)を用いて、前述の式(5)で定義される評価式Gの評価を行う。ステップS159の評価結果が真の場合(S159:Y)、すなわち評価式Gが成立する場合は、ステップS160に進む。一方、ステップS159の評価結果が偽の場合(S159:N)、すなわち評価式Gが成立しない場合は、ステップS162に進む。
【0138】
ステップS160では、ステップS160で設定した振幅補償値Ak’の絶対値と、二分探索の終了条件として予め設定された閾値Athとを比較し、振幅補償値Ak’の絶対値|Ak’|が閾値Athよりも小さいか否かを判定する。|Ak’|<Athである場合(S160:Y)は、ステップS163に進む。ステップS163では、現在の変数kの値に応じた次数における調整後の振幅補償値Akaを、現在の変数Lの値にOkを加えた値に設定し、図18および図19のフローチャートに示す処理を終了する。
【0139】
一方、|Ak’|≧Athである場合(S160:N)は、ステップS161に進む。ステップS161では、現在の変数kの値に応じた次数の振幅補償値Ak’の半分の値の絶対値にマイナスをつけた値を新しい振幅補償値Ak’に設定する。ステップS161の完了後は、ステップS157に戻り、以後同様の操作を繰り返す。
【0140】
ステップS162では、現在の変数kの値に応じた次数の振幅補償値Ak’の半分の値の絶対値を新しい振幅補償値Ak’に設定する。ステップS162の完了後は、ステップS157に戻り、以後同様の操作を繰り返す。
【0141】
振幅最適化部101は、以上説明した図18および図19のフローチャートに示す処理を、ステップS112、S116、S124、S160のいずれかの終了条件を満たすまで繰り返し実施することで、トルクリプルの各次数nについて、調整後の振幅補償値Anaと、これに応じた位相補償値φnaとを決定する。
【0142】
以上説明した本発明の第5の実施形態によれば、トルクリプル補償値演算部12は、リプル超過量計算部205において、トルクリプルの次数ごとに、予め設定された残留リプル量目標値214に対するトルクリプル補償値のリプル超過量を計算する。振幅調整部15は、振幅最適化部101において、次数ごとに計算されたリプル超過量が小さい順に振幅制限次数を決定する、このようにしたので、モータ4において発生するトルクリプルを抑制する際に、目標値からのトルクリプルの超過量が大きいトルクリプル成分ほど優先的に抑制して、高いトルクリプル抑制効果を得ることができる。
【0143】
なお、本発明は、上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。
【符号の説明】
【0144】
1,1A,1B:モータ制御装置、2:トルク指令値生成器、3:インバータ、4:モータ、10:磁極位置計算部、11:電気角速度計算部、12:トルクリプル補償値演算部、13:トルク上限算出部、14:リプル振幅上限値算出部、15:振幅調整部、16:トルク指令値補正部、17:電流制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19