(57)【要約】【課題】同期モータにおいてＰＷＭに起因するトルクリプルを低減させるモータ制御装置を提供する。【解決手段】モータ２２を駆動するインバータ回路１８と、インバータ回路１８を制御する制御回路１と、を備えるモータ制御装置あって、制御回路１が有する高調波補償部１１は、モータ２２に流れる基本電流の基本周波数Ｆｉｎｖと、インバータ回路１８に設けられるスイッチ素子をパルス幅変調するときのスイッチング周波数Ｆｓｗとを用いて、基本周波数Ｆｉｎｖに対するパルス幅変調に起因するトルクリプルの次数Ｎを算出し、次数Ｎを用いて、パルス幅変調に起因するトルクリプルの逆成分となるｄ軸補償電圧値とｑ軸補償電圧値とを求め、制御回路１が有する第一の加算器９は、ｄ軸電圧指令値にｄ軸補償電圧値を加算し、制御回路１が有する第二の加算器１０は、ｑ軸電圧指令値にｑ軸補償電圧値を加算するモータ制御装置である。【選択図】図１
2018126021.tif 000002
【特許請求の範囲】
【請求項１】
モータを駆動するインバータ回路と、
前記インバータ回路を制御する制御回路と、
を備えるモータ制御装置であって、
前記制御回路が有する高調波補償部は、
前記モータに流れる基本電流の基本周波数と、前記インバータ回路にパルス幅変調をするときのスイッチング周波数とを用いて、前記基本周波数に対する前記パルス幅変調に起因するトルクリプルの次数を算出し、
前記次数を用いて、前記パルス幅変調に起因するトルクリプルの逆成分となるｄ軸補償電圧値とｑ軸補償電圧値とを求め、
前記制御回路が有する第一の加算器は、
ｄ軸電圧指令値に前記ｄ軸補償電圧値を加算し、
前記制御回路が有する第二の加算器は、
ｑ軸電圧指令値に前記ｑ軸補償電圧値を加算する、
ことを特徴とするモータ制御装置。
【請求項２】
請求項１に記載のモータ制御装置であって、
前記高調波補償部は、
前記次数を用いて、前記次数に前記ｄ軸補償電圧値と前記ｑ軸補償電圧値とが関連付けられて記憶部に記憶されているｄ軸ｑ軸補償電圧情報を参照し、前記次数に対応する前記ｄ軸補償電圧値と前記ｑ軸補償電圧値とを求める、
ことを特徴とするモータ制御装置。
【請求項３】
請求項１に記載のモータ制御装置であって、
前記高調波補償部は、
以下の式を用いて、Ｕ相補償電圧値Ｖｕ＿ｓｗとＶ相補償電圧値Ｖｖ＿ｓｗとＷ相補償電圧値Ｖｗ＿ｓｗとを求め、
Ｖｕ＿ｓｗ＝Ｋｕ×ｓｉｎ（Ｎ×θｅ＋θｕ）
Ｖｖ＿ｓｗ＝Ｋｖ×ｓｉｎ（Ｎ×θｅ＋θｖ）
Ｖｗ＿ｓｗ＝Ｋｗ×ｓｉｎ（Ｎ×θｅ＋θｗ）
Ｎ＝Ｆｓｗ／Ｆｉｎｖ
前記Ｕ相補償電圧値Ｖｕ＿ｓｗと前記Ｖ相補償電圧値Ｖｖ＿ｓｗと前記Ｗ相補償電圧値Ｖｗ＿ｓｗとを三相交流座標系からｄ軸ｑ軸座標系に変換して前記ｄ軸補償電圧値Ｖｄ＿ｓｗと前記ｑ軸補償電圧値Ｖｑ＿ｓｗを求め、
前記次数Ｎは、前記スイッチング周波数Ｆｓｗを前記基本周波数Ｆｉｎｖで除算して算出し、
前記Ｕ相補償電圧振幅Ｋｕと前記Ｖ相補償電圧振幅Ｋｖと前記Ｗ相補償電圧振幅Ｋｗとは、前記次数Ｎを用いて、前記次数Ｎに前記Ｕ相補償電圧振幅Ｋｕと前記Ｖ相補償電圧振幅Ｋｖと前記Ｗ相補償電圧振幅Ｋｗとが関連付けられて前記記憶部に記憶されている補償電圧振幅情報を参照し、前記次数Ｎに対応する前記Ｕ相補償電圧振幅Ｋｕと前記Ｖ相補償電圧振幅Ｋｖと前記Ｗ相補償電圧振幅Ｋｗとを求め、
前記基本電流の前記位相θｅは、前記モータの位相を検出する位置検出部から取得し、
前記Ｕ相初期位相θｕと前記Ｖ相初期位相θｖと前記Ｗ相初期位相θｗとは、前記次数Ｎを用いて、前記次数Ｎに前記Ｕ相初期位相θｕと前記Ｖ相初期位相θｖと前記Ｗ相初期位相θｗとが関連付けられて前記記憶部に記憶されている初期位相情報を参照し、前記次数Ｎに対応する前記Ｕ相初期位相θｕと前記Ｖ相初期位相θｖと前記Ｗ相初期位相θｗとを求める、
ことを特徴とするモータ制御装置。
【請求項４】
モータを駆動するインバータ回路と、
前記インバータ回路を制御する制御回路と、
を備えるモータ制御装置であって、
前記制御回路が有する高調波補償部は、
前記モータに流れる基本電流の基本周波数と、前記インバータ回路にパルス幅変調をするときの三相それぞれのスイッチング周波数とを用いて、前記基本周波数に対する前記パルス幅変調に起因するトルクリプルの次数を前記スイッチング周波数それぞれに対して算出し、
前記次数を用いて、三相それぞれの前記パルス幅変調に起因するトルクリプルの逆成分となるＵ相補償電圧値とＶ相補償電圧値とＷ相補償電圧値とを求め、
前記制御回路が有する第一の加算器は、
Ｕ相電圧指令値に前記Ｕ相補償電圧値を加算し、
前記制御回路が有する第二の加算器は、
Ｖ相電圧指令値に前記Ｖ相補償電圧値を加算し、
前記制御回路が有する第三の加算器は、
Ｗ相電圧指令値に前記Ｗ相補償電圧値を加算する、
ことを特徴とするモータ制御装置。
【請求項５】
請求項４に記載のモータ制御装置であって、
前記高調波補償部は、
三相それぞれのＵ相の次数とＶ相の次数とＷ相の次数とを用いて、前記Ｕ相の次数に前記Ｕ相補償電圧値が関連付けられ、前記Ｖ相の次数に前記Ｖ相補償電圧値が関連付けられ、前記Ｗ相の次数に前記Ｗ相補償電圧値が関連付けられて記憶部に記憶されている三相補償電圧情報を参照し、前記Ｕ相の次数に対応する前記Ｕ相補償電圧値と、前記Ｖ相の次数に対応する前記Ｖ相補償電圧値と、前記Ｗ相の次数に対応する前記Ｗ相補償電圧値とを求める、
ことを特徴とするモータ制御装置。
【請求項６】
請求項４に記載のモータ制御装置であって、
前記高調波補償部は、
以下の式を用いて、前記Ｕ相補償電圧値Ｖｕ＿ｓｗと前記Ｖ相補償電圧値Ｖｖ＿ｓｗと前記Ｗ相補償電圧値Ｖｗ＿ｓｗとを求め、
Ｖｕ＿ｓｗ＝Ｋｕ×ｓｉｎ（Ｎｕ×θｅ＋θｕ）
Ｖｖ＿ｓｗ＝Ｋｖ×ｓｉｎ（Ｎｖ×θｅ＋θｖ）
Ｖｗ＿ｓｗ＝Ｋｗ×ｓｉｎ（Ｎｗ×θｅ＋θｗ）
Ｎｕ＝Ｆｓｗ＿ｕ／Ｆｉｎｖ
Ｎｖ＝Ｆｓｗ＿ｖ／Ｆｉｎｖ
Ｎｗ＝Ｆｓｗ＿ｗ／Ｆｉｎｖ
前記次数Ｎｕは、Ｕ相スイッチング周波数Ｆｓｗ＿ｕを前記基本周波数Ｆｉｎｖで除算して算出し、
前記次数Ｎｖは、Ｖ相スイッチング周波数Ｆｓｗ＿ｖを前記基本周波数Ｆｉｎｖで除算して算出し、
前記次数Ｎｗは、Ｗ相スイッチング周波数Ｆｓｗ＿ｗを前記基本周波数Ｆｉｎｖで除算して算出し、
前記Ｕ相補償電圧振幅Ｋｕは、前記次数Ｎｕを用いて、前記次数Ｎｕに前記Ｕ相補償電圧振幅Ｋｕが関連付けられて記憶部に記憶されているＵ相補償電圧振幅情報を参照し、前記次数Ｎｕに対応する前記Ｕ相補償電圧振幅Ｋｕを求め、
前記Ｖ相補償電圧振幅Ｋｖは、前記次数Ｎｖを用いて、前記次数Ｎｖに前記Ｖ相補償電圧振幅Ｋｖが関連付けられて前記記憶部に記憶されているＶ相補償電圧振幅情報を参照し、前記次数Ｎｖに対応する前記Ｖ相補償電圧振幅Ｋｖを求め、
前記Ｗ相補償電圧振幅Ｋｗは、前記次数Ｎｗを用いて、前記次数Ｎｗに前記Ｗ相補償電圧振幅Ｋｗが関連付けられて前記記憶部に記憶されているＷ相補償電圧振幅情報を参照し、前記次数Ｎｗに対応する前記Ｗ相補償電圧振幅Ｋｗを求め、
前記基本電流の前記位相θｅは、前記モータの位相を検出する位置検出部から取得し、
前記Ｕ相初期位相θｕは、前記次数Ｎｕを用いて、前記次数Ｎｕに前記Ｕ相初期位相θｕが関連付けられて前記記憶部に記憶されているＵ相初期位相情報を参照し、前記次数Ｎｕに対応する前記Ｕ相初期位相θｕを求め、
前記Ｖ相初期位相θｖは、前記次数Ｎｖを用いて、前記次数Ｎｖに前記Ｖ相初期位相θｖが関連付けられて前記記憶部に記憶されているＶ相初期位相情報を参照し、前記次数Ｎｖに対応する前記Ｖ相初期位相θｖを求め、
前記Ｗ相初期位相θｗは、前記次数Ｎｗを用いて、前記次数Ｎｗに前記Ｗ相初期位相θｗが関連付けられて前記記憶部に記憶されているＷ相初期位相情報を参照し、前記次数Ｎｗに対応する前記Ｗ相初期位相θｗを求める、
ことを特徴とするモータ制御装置。
【請求項７】
請求項４に記載のモータ制御装置であって、
前記高調波補償部は、
以下の式を用いて、前記Ｕ相補償電圧値Ｖｕ＿ｓｗと前記Ｖ相補償電圧値Ｖｖ＿ｓｗと前記Ｗ相補償電圧値Ｖｗ＿ｓｗとを求め、
Ｖｕ＿ｓｗ＝Ｋｕ×ｓｉｎ（Ｎｕｕ×θｅ＋θｕ）
Ｖｖ＿ｓｗ＝Ｋｖ×ｓｉｎ（Ｎｖｖ×θｅ＋θｖ）
Ｖｗ＿ｓｗ＝Ｋｗ×ｓｉｎ（Ｎｗｗ×θｅ＋θｗ）
Ｎｕｕ＝Ｆｓｗ＿ｕ／Ｆｉｎｖ＿ｕ
Ｎｖｖ＝Ｆｓｗ＿ｖ／Ｆｉｎｖ＿ｖ
Ｎｗｗ＝Ｆｓｗ＿ｖ／Ｆｉｎｖ＿ｗ
前記次数Ｎｕｕは、Ｕ相スイッチング周波数Ｆｓｗ＿ｕを、Ｕ相電流値を用いて求めた基本周波数Ｆｉｎｖ＿ｕで除算して算出し、
前記次数Ｎｖｖは、Ｖ相スイッチング周波数Ｆｓｗ＿ｖを、Ｖ相電流値を用いて求めた基本周波数Ｆｉｎｖ＿ｖで除算して算出し、
前記次数Ｎｗｗは、Ｗ相スイッチング周波数Ｆｓｗ＿ｗを、Ｗ相電流値を用いて求めた基本周波数Ｆｉｎｖ＿ｗで除算して算出し、
前記Ｕ相補償電圧振幅Ｋｕは、前記次数Ｎｕｕを用いて、前記次数Ｎｕｕに前記Ｕ相補償電圧振幅Ｋｕが関連付けられて記憶部に記憶されているＵ相補償電圧振幅情報を参照し、前記次数Ｎｕｕに対応する前記Ｕ相補償電圧振幅Ｋｕを求め、
前記Ｖ相補償電圧振幅Ｋｖは、前記次数Ｎｖｖを用いて、前記次数Ｎｖｖに前記Ｖ相補償電圧振幅Ｋｖが関連付けられて前記記憶部に記憶されているＶ相補償電圧振幅情報を参照し、前記次数Ｎｖｖに対応する前記Ｖ相補償電圧振幅Ｋｖを求め、
前記Ｗ相補償電圧振幅Ｋｗは、前記次数Ｎｗｗを用いて、前記次数Ｎｗｗに前記Ｗ相補償電圧振幅Ｋｗが関連付けられて前記記憶部に記憶されているＷ相補償電圧振幅情報を参照し、前記次数Ｎｗｗに対応する前記Ｗ相補償電圧振幅Ｋｗを求め、
前記基本電流の前記位相θｅは、前記モータの位相を検出する位置検出部から取得し、
前記Ｕ相初期位相θｕは、前記次数Ｎｕｕを用いて、前記次数Ｎｕｕに前記Ｕ相初期位相θｕが関連付けられて前記記憶部に記憶されているＵ相初期位相情報を参照し、前記次数Ｎｕｕに対応する前記Ｕ相初期位相θｕを求め、
前記Ｖ相初期位相θｖは、前記次数Ｎｖｖを用いて、前記次数Ｎｖｖに前記Ｖ相初期位相θｖが関連付けられて前記記憶部に記憶されているＶ相初期位相情報を参照し、前記次数Ｎｖｖに対応する前記Ｖ相初期位相θｖを求め、
前記Ｗ相初期位相θｗは、前記次数Ｎｗｗを用いて、前記次数Ｎｗｗに前記Ｗ相初期位相θｗが関連付けられて前記記憶部に記憶されているＷ相初期位相情報を参照し、前記次数Ｎｗｗに対応する前記Ｗ相初期位相θｗを求める、
ことを特徴とするモータ制御装置。
【請求項８】
請求項６又は７に記載のモータ制御装置であって、
前記Ｕ相スイッチング周波数Ｆｓｗ＿ｕは、前記Ｕ相電圧指令値を用いて求め、
前記Ｖ相スイッチング周波数Ｆｓｗ＿ｖは、前記Ｖ相電圧指令値を用いて求め、
前記Ｗ相スイッチング周波数Ｆｓｗ＿ｗは、前記Ｗ相電圧指令値を用いて求める、
ことを特徴とするモータ制御装置。
【請求項９】
請求項６又は７に記載のモータ制御装置であって、
前記Ｕ相スイッチング周波数Ｆｓｗ＿ｕは、Ｕ相電流値を用いて求め、
前記Ｖ相スイッチング周波数Ｆｓｗ＿ｖは、Ｖ相電流値を用いて求め、
前記Ｗ相スイッチング周波数Ｆｓｗ＿ｗは、Ｗ相電流値を用いて求める、
ことを特徴とするモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置に関する。
【背景技術】
【０００２】
同期モータにおいては、同期モータに流れる基本電流と永久磁石とに基づく電機子鎖交磁束の高調波成分に起因するトルクリプルが大きいことが知られている。すなわち同期モータに流れる基本電流の基本周波数Ｆｉｎｖに対し、５次、７次のトルクリプルが大きくなることが知られている。そこで基本電流と永久磁石による電機子鎖交磁束の高調波成分に起因する５次、７次のトルクリプルを算出し、算出した５次、７次のトルクリプルと逆成分となるＵ相補償電圧値、Ｖ相補償電圧値、Ｗ相補償電圧値を算出し、算出したＵ相補償電圧値、Ｖ相補償電圧値、Ｗ相補償電圧値を用いて、Ｕ相電圧指令値、Ｖ相電圧指令値、Ｗ相電圧指令値を制御することにより、基本電流と永久磁石による電機子鎖交磁束の高調波成分に起因する５次、７次のトルクリプルを低減している。
【０００３】
例えば、トルクリプルを低減させる技術として特許文献１などが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−０６４９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、同期モータにおいては、同期モータを駆動するインバータ回路に対するパルス幅変調（ＰＷＭ：pulse width modulation）に起因するトルクリプルも存在するため、基本電流と永久磁石による電機子鎖交磁束の高調波成分に起因する５次、７次のトルクリプルを低減しただけでは、トルクリプルを低減させる対策としては不十分である。ＰＷＭに起因するトルクリプルは、ＰＷＭで用いるスイッチング信号（矩形波）や、同期モータ（誘導負荷）の影響により発生し、基本周波数Ｆｉｎｖに対する５次、７次の周波数帯より高次の周波数帯に発生する。なお、同期モータが低回転の場合、基本周波数Ｆｉｎｖの周期に対して十分な分解能を持っているため、ＰＷＭに起因するトルクリプルは気にならないが、同期モータが高回転の場合、基本周波数Ｆｉｎｖの周期に対して十分な分解能を確保できなくなるため、ＰＷＭに起因するトルクリプルは増える傾向にある。
【０００６】
本発明の一側面に係る目的は、同期モータにおいてＰＷＭに起因するトルクリプルを低減できるモータ制御装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る一つの形態であるモータを駆動するインバータ回路と、インバータ回路を制御する制御回路と、を備えるモータ制御装置は、制御回路に高調波補償部、第一の加算器、第二の加算器を有する。
【０００８】
高調波補償部は、モータに流れる基本電流の基本周波数と、インバータ回路にパルス幅変調をするときのスイッチング周波数とを用いて、基本周波数に対するパルス幅変調に起因するトルクリプルの次数を算出し、次数を用いて、パルス幅変調に起因するトルクリプルの逆成分となるｄ軸補償電圧値とｑ軸補償電圧値とを求める。
【０００９】
第一の加算器はｄ軸電圧指令値にｄ軸補償電圧値を加算し、第二の加算器はｑ軸電圧指令値にｑ軸補償電圧値を加算する。
また、本発明に係る他の一つの形態であるモータを駆動するインバータ回路と、インバータ回路を制御する制御回路と、を備えるモータ制御装置は、制御回路に高調波補償部、第一の加算器、第二の加算器、第三の加算器を有する。
【００１０】
高調波補償部は、モータに流れる基本電流の基本周波数と、インバータ回路にパルス幅変調をするときの三相それぞれのスイッチング周波数とを用いて、基本周波数に対するパルス幅変調に起因するトルクリプルの次数をスイッチング周波数それぞれに対して算出し、次数を用いて、三相それぞれのパルス幅変調に起因するトルクリプルの逆成分となるＵ相補償電圧値とＶ相補償電圧値とＷ相補償電圧値とを求める。
【００１１】
第一の加算器はＵ相電圧指令値にＵ相補償電圧値を加算し、第二の加算器はＶ相電圧指令値にＶ相補償電圧値を加算し、第三の加算器はＷ相電圧指令値にＷ相補償電圧値を加算する。
【発明の効果】
【００１２】
同期モータにおいてＰＷＭに起因するトルクリプルを低減できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１の一実施例を示す図である。
【図２】変形例１の高調波補償部の一実施例を示す図である。
【図３】実施形態２の一実施例を示す図である。
【図４】変形例２の高調波補償部の一実施例を示す図である。
【図５】変形例３の一実施例を示す図である。
【図６】変形例４の一実施例を示す図である。
【図７】変形例４の高調波補償部の一実施例を示す図である。
【発明を実施するための形態】
【００１４】
以下図面に基づいて実施形態について詳細を説明する。
＜実施形態１＞
図１は、実施形態１の一実施例を示す図である。図１に示すモータ制御装置は、制御回路１（減算器２、減算器３、ＰＩ制御部４、ＰＩ制御部５、加算器６、加算器７、非干渉電圧補償部８、加算器９（第一の加算器）、加算器１０（第二の加算器）、高調波補償部１１、加算器１２、加算器１３、高調波補償部１４、座標変換部１５、ＰＷＭ制御部１６、座標変換部１７）、インバータ回路１８、電流センサ１９、電流センサ２０、位置検出部２１などを有し、モータ２２を制御する。
【００１５】
制御回路１は、インバータ回路１８を制御する。制御回路１は、例えば、ＣＰＵ（Central Processing Unit）、マルチコアＣＰＵ、プログラマブルなデバイス（ＦＰＧＡ（Field Programmable Gate Array）やＰＬＤ（Programmable Logic Device）など）などを用いた回路である。また、制御回路１は記憶部を有する。
【００１６】
減算器２は、ｄ軸電流指令値ｉｄ＊からｄ軸実電流値ｉｄを減算してｄ軸電流偏差値ｉｄ＿ｄｅｖ（＝ｉｄ＊−ｉｄ）を算出する。減算器３は、ｑ軸電流指令値ｉｑ＊からｑ軸実電流値ｉｑを減算してｑ軸電流偏差値ｉｑ＿ｄｅｖ（＝ｉｑ＊−ｉｑ）を算出する。
【００１７】
ＰＩ（Proportional Integral）制御部４は、ｄ軸電流偏差値ｉｄ＿ｄｅｖを用いてＰＩ制御することにより、ｄ軸電圧指令値Ｖ′ｄ＊を算出する。ＰＩ制御部５は、ｑ軸電流偏差値ｉｑ＿ｄｅｖを用いてＰＩ制御することにより、ｄ軸電圧指令値Ｖ′ｄ＊を算出する。
【００１８】
加算器６は、ｄ軸電圧指令値Ｖ′ｄ＊とｄ軸補償電圧値Ｖｏｄとを加算してｄ軸電圧指令値Ｖ″ｄ＊（＝Ｖ′ｄ＊＋Ｖｏｄ）を算出する。加算器７は、ｑ軸電圧指令値Ｖ′ｑ＊とｑ軸補償電圧値Ｖｏｑとを加算してｑ軸電圧指令値Ｖ″ｑ＊（＝Ｖ′ｑ＊＋Ｖｏｑ）を算出する。
【００１９】
非干渉電圧補償部８は、ｄ軸実電流値ｉｄとｑ軸実電流値ｉｑとモータ２２の電気角速度ωｅとを用いて、ｄ軸ｑ軸座標系においてｄ軸ｑ軸間で干渉し合う速度起電力を補償するｄ軸補償電圧値Ｖｏｄとｑ軸補償電圧値Ｖｏｑとを算出する。
【００２０】
加算器９は、ｄ軸電圧指令値Ｖ″ｄ＊とｄ軸補償電圧値Ｖｄ＿ｓｗとを加算してｄ軸電圧指令値Ｖ″′ｄ＊（＝Ｖ″ｄ＊＋Ｖｄ＿ｓｗ）を算出する。加算器１０は、ｑ軸電圧指令値Ｖ″ｑ＊とｑ軸補償電圧値Ｖｑ＿ｓｗとを加算してｑ軸電圧指令値Ｖ″′ｑ＊（＝Ｖ″ｑ＊＋Ｖｑ＿ｓｗ）を算出する。
【００２１】
高調波補償部１１は、モータ２２に流れる基本電流の基本周波数Ｆｉｎｖと、インバータ回路１８にＰＷＭ制御をするときのスイッチング周波数Ｆｓｗとを用いて、基本周波数Ｆｉｎｖに対するＰＷＭに起因するトルクリプルの次数Ｎを算出し、算出した次数Ｎを用いて、ＰＷＭに起因するトルクリプルの逆成分となるｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗとを求める。
【００２２】
加算器１２は、ｄ軸電圧指令値Ｖ″′ｄ＊とｄ軸補償電圧値Ｖｄ_ｍｔｒとを加算してｄ軸電圧指令値Ｖｄ＊（＝Ｖ″′ｄ＊＋Ｖｄ_ｍｔｒ）を算出する。加算器１３は、ｑ軸電圧指令値Ｖ″′ｑ＊とｑ軸補償電圧値Ｖｑ_ｍｔｒとを加算してｑ軸電圧指令値Ｖｑ＊（＝Ｖ″′ｑ＊＋Ｖｑ_ｍｔｒ）を算出する。
【００２３】
高調波補償部１４は、モータ２２の位相θｅ（基本電流の位相又は電気角）とモータ２２の電気角速度ωｅとを用いて、モータ２２に流れる基本電流と永久磁石による電機子鎖交磁束の高調波成分に起因する５次、７次のトルクリプルの逆成分となるｄ軸補償電圧値Ｖｄ_ｍｔｒとｑ軸補償電圧値Ｖｑ_ｍｔｒとを求める。
【００２４】
座標変換部１５は、ｄ軸電圧指令値Ｖｄ＊とｑ軸電圧指令値Ｖｑ＊とを、ｄ軸電圧指令値Ｖｄ＊とｑ軸電圧指令値Ｖｑ＊と位相θｅとを用いて、ｄ軸ｑ軸座標系から三相交流座標系に変換し、Ｕ相電圧指令値Ｖｕ＊とＶ相電圧指令値Ｖｖ＊とＷ相電圧指令値Ｖｗ＊とを求める。
【００２５】
ＰＷＭ制御部１６は、Ｕ相電圧指令値Ｖｕ＊とＶ相電圧指令値Ｖｖ＊とＷ相電圧指令値Ｖｗ＊とを用いて、インバータ回路１８をＰＷＭ制御するための信号（矩形波）を生成し、インバータ回路１８に出力する。
【００２６】
座標変換部１７は、電流センサ１９、２０が計測したＵ相電流値ｉｕとＶ相電流値ｉｖに対応する信号又は情報を取得し、Ｗ相電流値ｉｗを算出し、取得したＵ相電流値ｉｕとＶ相電流値ｉｖに対応する信号又は情報及び算出したＷ相電流値ｉｗとに基づいて、ｄ軸実電流値ｉｄとｑ軸実電流値ｉｑを算出する。なお、Ｗ相電流値ｉｗを計測するための電流センサを設ける場合、座標変換部１７は、Ｗ相電流値ｉｗに対応する信号又は情報を取得し、Ｕ相電流値ｉｕ、Ｖ相電流値ｉｖ、Ｗ相電流値ｉｗに対応する信号又は情報を用いてｄ軸実電流値ｉｄとｑ軸実電流値ｉｑを算出してもよい。
【００２７】
インバータ回路１８は、ＩＧＢＴ（Insulated Gate Bipolar Transistor）又はＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）などのスイッチ素子を有し、ＰＷＭ制御部１６によりＰＷＭ制御され、モータ２２にＵ相電流値ｉｕ、Ｖ相電流値ｉｖ、Ｗ相電流値ｉｗを出力する。
【００２８】
電流センサ１９は、インバータ回路１８から出力されるＵ相に流れるＵ相電流値ｉｕを計測し、計測したＵ相電流値ｉｕに対応する信号又は情報を座標変換部１７に出力する。電流センサ２０は、インバータ回路１８から出力されるＶ相に流れるＶ相電流値ｉｖを計測し、計測したＶ相電流値ｉｖに対応する信号又は情報を座標変換部１７に出力する。なお、図１では電流センサ１９、２０だけを用いる例を示したが、インバータ回路１８から出力されるＷ相に流れるＷ相電流値ｉｗを計測するための電流センサを設け、計測したＷ相電流値ｉｗに対応する信号又は情報を座標変換部１７に出力してもよい。
【００２９】
位置検出部２１は、例えば、モータ２２に接続されるエンコーダやレゾルバなどで、モータ２２の位相θｅと電気角速度ωｅを検出する。
モータ２２は、インバータ回路１８から出力されるＵ相電流値ｉｕ、Ｖ相電流値ｉｖ、Ｗ相電流値ｉｗにより制御される。モータ２２は、例えば、埋込構造永久磁石同期モータなどが考えられる。
【００３０】
実施形態１のモータ制御装置について説明する。
減算器２のｉｄ＊入力端子（＋）にはｄ軸電流指令値ｉｄ＊が入力され、減算器２のｉｄ入力端子（−）には非干渉電圧補償部８のｉｄ入力端子と座標変換部１７のｉｄ出力端子とが接続される。減算器２のｉｄ_ｄｅｖ出力端子にはＰＩ制御部４のｉｄ_ｄｅｖ入力端子が接続される。
【００３１】
減算器３のｉｑ＊入力端子（＋）にはｑ軸電流指令値ｉｑ＊が入力され、減算器３のｉｑ入力端子（−）には非干渉電圧補償部８のｉｑ入力端子と座標変換部１７のｉｑ出力端子とが接続される。減算器３のｉｑ_ｄｅｖ出力端子にはＰＩ制御部５のｉｑ_ｄｅｖ入力端子が接続される。
【００３２】
加算器６のＶ′ｄ＊入力端子（＋）にはＰＩ制御部４のＶ′ｄ＊出力端子が接続され、加算器６のＶｏｄ入力端子（＋）には非干渉電圧補償部８のＶｏｄ出力端子が接続される。加算器６のＶ″ｄ＊出力端子には加算器９のＶ″ｄ＊入力端子（＋）が接続される。
【００３３】
加算器７のＶ′ｑ＊入力端子（＋）にはＰＩ制御部５のＶ′ｑ＊出力端子が接続され、加算器７のＶｏｑ入力端子（＋）には非干渉電圧補償部８のＶｏｑ出力端子が接続される。加算器７のＶ″ｑ＊出力端子は加算器１０のＶ″ｑ＊入力端子（＋）に接続される。
【００３４】
加算器９のＶｄ＿ｓｗ入力端子（＋）には高調波補償部１１のＶｄ＿ｓｗ出力端子が接続され、加算器９のＶ″′ｄ＊出力端子には加算器１２のＶ″′ｄ＊入力端子（＋）が接続される。
【００３５】
加算器１０のＶｑ＿ｓｗ入力端子（＋）には高調波補償部１１のＶｑ＿ｓｗ出力端子が接続され、加算器１０のＶ″′ｑ＊出力端子には加算器１３のＶ″′ｑ＊入力端子（＋）が接続される。
【００３６】
加算器１２のＶｄ_ｍｔｒ入力端子（＋）には高調波補償部１４のＶｄ_ｍｔｒ出力端子が接続され、加算器１２のＶｄ＊出力端子には座標変換部１５のＶｄ＊入力端子が接続される。
【００３７】
加算器１３のＶｑ_ｍｔｒ入力端子（＋）には高調波補償部１４のＶｑ_ｍｔｒ出力端子が接続され、加算器１３のＶｑ＊出力端子には座標変換部１５のＶｑ＊入力端子が接続される。
【００３８】
座標変換部１５のＶｕ＊出力端子にはＰＷＭ制御部１６のＶｕ＊入力端子が接続され、座標変換部１５のＶｖ＊出力端子にはＰＷＭ制御部１６のＶｖ＊入力端子が接続され、座標変換部１５のＶｗ＊出力端子にはＰＷＭ制御部１６のＶｗ＊入力端子が接続される。
【００３９】
ＰＷＭ制御部１６のＵ相、Ｖ相、Ｗ相に対応する出力端子それぞれは、インバータ回路１８のＵ相、Ｖ相、Ｗ相に対応する入力端子それぞれに接続される。
【００４０】
インバータ回路１８のｉｕ出力端子にはモータ２２のｉｕ入力端子が接続され、インバータ回路１８のｉｖ出力端子にはモータ２２のｉｖ入力端子が接続され、インバータ回路１８のｉｗ出力端子にはモータ２２のｉｗ入力端子が接続される。
【００４１】
電流センサ１９の出力端子には座標変換部１７のｉｕ入力端子が接続され、電流センサ２０の出力端子には座標変換部１７のｉｖ入力端子が接続される。
【００４２】
モータ２２には位置検出部２１が接続され、位置検出部２１のθｅ出力端子には高調波補償部１１のθｅ入力端子と高調波補償部１４のθｅ入力端子と座標変換部１５のθｅ入力端子とが接続される。また、位置検出部２１のωｅ出力端子には非干渉電圧補償部８のωｅ入力端子と高調波補償部１４のωｅ入力端子とが接続される。
【００４３】
実施形態１の高調波補償部１１について説明をする。
まず、高調波補償部１１は、インバータ回路１８をＰＷＭ制御するときのスイッチング周波数Ｆｓｗを、モータ２２に流れる基本電流の基本周波数Ｆｉｎｖで除算し、次数Ｎを算出する。すなわち、高調波補償部１１は式１を用いて次数Ｎを算出する。
【００４４】
Ｎ＝Ｆｓｗ／Ｆｉｎｖ      式１
続いて、高調波補償部１１は、式１で算出した次数Ｎを用いて、次数Ｎにｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗとが関連付けられて記憶部に記憶されているｄ軸ｑ軸補償電圧情報を参照し、次数Ｎに対応するｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗとを求める。
【００４５】
ｄ軸ｑ軸補償電圧情報は、例えば、次数Ｎ（複数の異なる次数範囲「Ｎ１」「Ｎ２」〜「Ｎｎ」）と、次数Ｎに関連付けられたｄ軸補償電圧値Ｖｄ＿ｓｗ（次数範囲「Ｎ１」に対応する「Ｖｄ＿ｓｗ＿Ｎ１」、次数範囲「Ｎ２」に対応する「Ｖｄ＿ｓｗ＿Ｎ２」〜次数範囲「Ｎｎ」に対応する「Ｖｄ＿ｓｗ＿Ｎｎ」）と、次数Ｎに関連付けられたｑ軸補償電圧値Ｖｑ＿ｓｗ（次数範囲「Ｎ１」に対応する「Ｖｑ＿ｓｗ＿Ｎ１」、次数範囲「Ｎ２」に対応する「Ｖｑ＿ｓｗ＿Ｎ２」〜次数範囲「Ｎｎ」に対応する「Ｖｑ＿ｓｗ＿Ｎｎ」とが関連付けられているテーブルである。また、上記ｎは正の整数である。
【００４６】
例えば、式１で算出した次数Ｎが、ｄ軸ｑ軸補償電圧情報の次数範囲「Ｎ１」に含まれている場合、ｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗは、次数範囲「Ｎ１」に対応する「Ｖｄ＿ｓｗ＿Ｎ１」と次数範囲「Ｎ１」に対応する「Ｖｑ＿ｓｗ＿Ｎ１」となる。
【００４７】
なお、次数Ｎに関連付けられたｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗは、実験やシミュレーションを用いて予め求めておく。
続いて、高調波補償部１１は、求めたｄ軸補償電圧値Ｖｄ＿ｓｗを加算器９に出力し、求めたｑ軸補償電圧値Ｖｑ＿ｓｗを加算器１０に出力する。
【００４８】
このように、次数Ｎを用いてＰＷＭに起因するトルクリプルの逆成分となるｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗとを求め、ｄ軸電圧指令値Ｖ″ｄ＊とｄ軸補償電圧値Ｖｄ＿ｓｗとを加算器９で加算してｄ軸電圧指令値Ｖ″′ｄ＊を算出し、ｑ軸電圧指令値Ｖ″ｑ＊とｑ軸補償電圧値Ｖｑ＿ｓｗとを加算器１０で加算してｑ軸電圧指令値Ｖ″′ｑ＊を算出することで、モータ２２におけるＰＷＭに起因するトルクリプルを低減できる。
【００４９】
また、ＰＷＭに起因するトルクリプルを低減できるので、モータ２２のヒアリングノイズを低減することができる。
【００５０】
また、ハードウェアの追加をせず、制御回路１で実行されるソフトウェアを変更するだけでＰＷＭに起因するトルクリプルを低減できるので、モータ制御装置の価格上昇を抑えることができる。
【００５１】
＜変形例１＞
変形例１の高調波補償部１１について説明する。
【００５２】
図２は、変形例１の高調波補償部１１の一実施例を示す図である。図２の高調波補償部１１は、次数算出部２０１、Ｕ相補償電圧算出部２０２ｕ、Ｖ相補償電圧算出部２０２ｖ、Ｗ相補償電圧算出部２０２ｗ、座標変換部２０３を有する。
【００５３】
図２の高調波補償部１１では、まず、次数算出部２０１が、スイッチング周波数Ｆｓｗを基本周波数Ｆｉｎｖで除算して次数Ｎを算出する。式１を参照。
続いて、Ｕ相補償電圧算出部２０２ｕは、次数Ｎと位相θｅとＵ相初期位相θｕとＵ相補償電圧振幅Ｋｕとを取得する。
【００５４】
Ｕ相補償電圧振幅Ｋｕは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｕ相補償電圧算出部２０２ｕは、次数Ｎを用いて、次数ＮにＵ相補償電圧振幅Ｋｕが関連付けられて記憶部に記憶されている補償電圧振幅情報を参照し、次数Ｎに対応するＵ相補償電圧振幅Ｋｕを求める。
【００５５】
補償電圧振幅情報は、例えば、次数Ｎ（複数の異なる次数範囲「Ｎｕ１」「Ｎｕ２」〜「Ｎｕｎ」）と、次数Ｎに関連付けられたＵ相補償電圧振幅Ｋｕ（次数範囲「Ｎｕ１」に対応する「Ｋｕ＿Ｎｕ１」、次数範囲「Ｎｕ２」に対応する「Ｋｕ＿Ｎｕ２」〜次数範囲「Ｎｕｎ」に対応する「Ｋｕ＿Ｎｕｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１で算出した次数Ｎが、補償電圧振幅情報の次数範囲「Ｎｕ１」に含まれている場合、Ｕ相補償電圧振幅Ｋｕは、次数範囲「Ｎｕ１」に対応する「Ｋｕ＿Ｎｕ１」となる。なお、Ｕ相補償電圧振幅Ｋｕは実験やシミュレーションにより予め求めておく。
【００５６】
また、Ｕ相補償電圧算出部２０２ｕは、Ｕ相初期位相θｕを記憶部から取得する。Ｕ相補償電圧算出部２０２ｕは、次数Ｎを用いて、次数ＮにＵ相初期位相θｕが関連付けられて記憶部に記憶されている初期位相情報を参照し、次数Ｎに対応するＵ相初期位相θｕを求める。
【００５７】
初期位相情報は、例えば、次数Ｎ（複数の異なる次数範囲「Ｎθｕ１」「Ｎθｕ２」〜「Ｎθｕｎ」）と、次数Ｎに関連付けられたＵ相初期位相θｕ（次数範囲「Ｎθｕ１」に対応する「θｕ＿Ｎθｕ１」、次数範囲「Ｎθｕ２」に対応する「θｕ＿Ｎθｕ２」〜次数範囲「Ｎθｕｎ」に対応する「θｕ＿Ｎθｕｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１で算出した次数Ｎが、初期位相情報の次数範囲「Ｎθｕ１」に含まれている場合、Ｕ相初期位相θｕは、次数範囲「Ｎθｕ１」に対応する「θｕ＿Ｎθｕ１」となる。なお、Ｕ相初期位相θｕは実験やシミュレーションにより予め求めておく。
【００５８】
続いて、Ｕ相補償電圧算出部２０２ｕは、Ｕ相補償電圧値Ｖｕ＿ｓｗを式２を用いて算出する。
Ｖｕ＿ｓｗ＝Ｋｕ×ｓｉｎ（Ｎ×θｅ＋θｕ）      式２
また、Ｖ相補償電圧算出部２０２ｖは、次数Ｎと位相θｅとＶ相初期位相θｖとＶ相補償電圧振幅Ｋｖとを取得する。
【００５９】
Ｖ相補償電圧振幅Ｋｖは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｖ相補償電圧算出部２０２ｖは、次数Ｎを用いて、次数ＮにＶ相補償電圧振幅Ｋｖが関連付けられて記憶部に記憶されている補償電圧振幅情報を参照し、次数Ｎに対応するＶ相補償電圧振幅Ｋｖを求める。
【００６０】
補償電圧振幅情報は、例えば、次数Ｎ（複数の異なる次数範囲「Ｎｖ１」「Ｎｖ２」〜「Ｎｖｎ」）と、次数Ｎに関連付けられたＶ相補償電圧振幅Ｋｖ（次数範囲「Ｎｖ１」に対応する「Ｋｖ＿Ｎｖ１」、次数範囲「Ｎｖ２」に対応する「Ｋｖ＿Ｎｖ２」〜次数範囲「Ｎｖｎ」に対応する「Ｋｖ＿Ｎｖｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１で算出した次数Ｎが、補償電圧振幅情報の次数範囲「Ｎｖ１」に含まれている場合、Ｖ相補償電圧振幅Ｋｖは、次数範囲「Ｎｖ１」に対応する「Ｋｖ＿Ｎｖ１」となる。なお、Ｖ相補償電圧振幅Ｋｖは実験やシミュレーションにより予め求めておく。
【００６１】
また、Ｖ相補償電圧算出部２０２ｖは、Ｖ相初期位相θｖを記憶部から取得する。Ｖ相補償電圧算出部２０２ｖは、次数Ｎを用いて、次数ＮにＶ相初期位相θｖが関連付けられて記憶部に記憶されている初期位相情報を参照し、次数Ｎに対応するＶ相初期位相θｖを求める。
【００６２】
初期位相情報は、例えば、次数Ｎ（複数の異なる次数範囲「Ｎθｖ１」「Ｎθｖ２」〜「Ｎθｖｎ」）と、次数Ｎに関連付けられたＶ相初期位相θｖ（次数範囲「Ｎθｖ１」に対応する「θｖ＿Ｎθｖ１」、次数範囲「Ｎθｖ２」に対応する「θｖ＿Ｎθｖ２」〜次数範囲「Ｎθｖｎ」に対応する「θｖ＿Ｎθｖｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１で算出した次数Ｎが、初期位相情報の次数範囲「Ｎθｖ１」に含まれている場合、Ｖ相初期位相θｖは、次数範囲「Ｎθｖ１」に対応する「θｖ＿Ｎθｖ１」となる。なお、Ｖ相初期位相θｖは実験やシミュレーションにより予め求めておく。
【００６３】
続いて、Ｖ相補償電圧算出部２０２ｖは、Ｖ相補償電圧値Ｖｖ＿ｓｗを式３を用いて算出する。
Ｖｖ＿ｓｗ＝Ｋｖ×ｓｉｎ（Ｎ×θｅ＋θｖ）      式３
また、Ｗ相補償電圧算出部２０２ｗは、次数Ｎと位相θｅとＷ相初期位相θｗとＷ相補償電圧振幅Ｋｗとを取得する。
【００６４】
Ｗ相補償電圧振幅Ｋｗは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｗ相補償電圧算出部２０２ｗは、次数Ｎを用いて、次数ＮにＷ相補償電圧振幅Ｋｗが関連付けられて記憶部に記憶されている補償電圧振幅情報を参照し、次数Ｎに対応するＷ相補償電圧振幅Ｋｗを求める。
【００６５】
補償電圧振幅情報は、例えば、次数Ｎ（複数の異なる次数範囲「Ｎｗ１」「Ｎｗ２」〜「Ｎｗｎ」）と、次数Ｎに関連付けられたＷ相補償電圧振幅Ｋｗ（次数範囲「Ｎｗ１」に対応する「Ｋｗ＿Ｎｗ１」、次数範囲「Ｎｗ２」に対応する「Ｋｗ＿Ｎｗ２」〜次数範囲「Ｎｗｎ」に対応する「Ｋｗ＿Ｎｗｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１で算出した次数Ｎが、補償電圧振幅情報の次数範囲「Ｎｗ１」に含まれている場合、Ｗ相補償電圧振幅Ｋｗは、次数範囲「Ｎｗ１」に対応する「Ｋｗ＿Ｎｗ１」となる。なお、Ｗ相補償電圧振幅Ｋｗは実験やシミュレーションにより予め求めておく。
【００６６】
また、Ｗ相補償電圧算出部２０２ｗは、Ｗ相初期位相θｗを記憶部から取得する。Ｗ相補償電圧算出部２０２ｗは、次数Ｎを用いて、次数ＮにＷ相初期位相θｗが関連付けられて記憶部に記憶されている初期位相情報を参照し、次数Ｎに対応するＷ相初期位相θｗを求める。
【００６７】
初期位相情報は、例えば、次数Ｎ（複数の異なる次数範囲「Ｎθｗ１」「Ｎθｗ２」〜「Ｎθｗｎ」）と、次数Ｎに関連付けられたＷ相初期位相θｗ（次数範囲「Ｎθｗ１」に対応する「θｗ＿Ｎθｗ１」、次数範囲「Ｎθｗ２」に対応する「θｗ＿Ｎθｗ２」〜次数範囲「Ｎθｗｎ」に対応する「θｗ＿Ｎθｗｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１で算出した次数Ｎが、初期位相情報の次数範囲「Ｎθｗ１」に含まれている場合、Ｗ相初期位相θｗは、次数範囲「Ｎθｗ１」に対応する「θｗ＿Ｎθｗ１」となる。なお、Ｗ相初期位相θｗは実験やシミュレーションにより予め求めておく。
【００６８】
続いて、Ｗ相補償電圧算出部２０２ｗは、Ｗ相補償電圧値Ｖｗ＿ｓｗを式４を用いて算出する。
Ｖｗ＿ｓｗ＝Ｋｗ×ｓｉｎ（Ｎ×θｅ＋θｗ）      式４
続いて、座標変換部２０３は、Ｕ相補償電圧値Ｖｕ＿ｓｗとＶ相補償電圧値Ｖｖ＿ｓｗとＷ相補償電圧値Ｖｗ＿ｓｗとを三相交流座標系からｄ軸ｑ軸座標系に変換し、ｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗを求める。
【００６９】
このように、次数Ｎを用いて、補償電圧振幅情報を参照し、次数Ｎに対応するＵ相補償電圧振幅ＫｕとＶ相補償電圧振幅ＫｖとＷ相補償電圧振幅Ｋｗとを求めることで、次数Ｎに対応したＵ相補償電圧振幅ＫｕとＶ相補償電圧振幅ＫｖとＷ相補償電圧振幅Ｋｗとを適時求められるため、実施形態１より更にモータ２２におけるＰＷＭに起因するトルクリプルを低減できる。
【００７０】
また、ＰＷＭに起因するトルクリプルを実施形態１より更に低減できるので、更にモータ２２のヒアリングノイズを低減することができる。
また、ハードウェアの追加をせず、制御回路１で実行されるソフトウェアを変更するだけでＰＷＭに起因するトルクリプルを低減できるので、モータ制御装置の価格上昇を抑えることができる。
【００７１】
なお、Ｕ相補償電圧振幅Ｋｕ、Ｖ相補償電圧振幅Ｋｖ、Ｗ相補償電圧振幅Ｋｗそれぞれは定数を用いてもよい。また、Ｕ相初期位相θｕ、Ｖ相初期位相θｖ、Ｗ相初期位相θｗそれぞれは定数を用いてもよい。
【００７２】
なお、図１では加算器９は、加算器６と加算器１２との間に配置しているが、加算器９をＰＩ制御部４と加算器６との間に配置してもよいし、加算器１２と座標変換部１５との間に配置してもよい。また、図１では加算器１０は、加算器７と加算器１３との間に配置しているが、加算器１０をＰＩ制御部５と加算器７との間に配置してもよいし、加算器１３と座標変換部１５との間に配置してもよい。
【００７３】
＜実施形態２＞
図３は、実施形態２の一実施例を示す図である。図３に示すモータ制御装置は、制御回路３０（減算器２、減算器３、ＰＩ制御部４、ＰＩ制御部５、加算器６、加算器７、非干渉電圧補償部８、加算器１２、加算器１３、高調波補償部１４、座標変換部１５、ＰＷＭ制御部１６、座標変換部１７、スイッチング周波数算出部３１、高調波補償部３２、加算器３３（第一の加算器）、加算器３４（第二の加算器）、加算器３５（第三の加算器））、インバータ回路１８、電流センサ１９、電流センサ２０、位置検出部２１などを有し、モータ２２を制御する。
【００７４】
実施形態１と実施形態２の違いは、実施形態１ではｄ軸ｑ軸座標系において加算器９、加算器１０、高調波補償部１１を用いてＰＷＭに起因するトルクリプルの逆成分となるｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗとを算出し、ｄ軸補償電圧値Ｖｄ＿ｓｗとｑ軸補償電圧値Ｖｑ＿ｓｗを用いてＰＷＭに起因するトルクリプルを低減していたが、実施形態２ではスイッチング周波数算出部３１、高調波補償部３２、加算器３３、加算器３４、加算器３５を用いてＰＷＭに起因するトルクリプルを低減する。すなわち、実施形態１ではｄ軸ｑ軸座標系でＰＷＭに起因するトルクリプルを低減する対策をしたが、実施形態２では三相交流座標系でＰＷＭに起因するトルクリプルを低減する対策を行う。
【００７５】
実施形態２の加算器１２は、ｄ軸電圧指令値Ｖ″ｄ＊とｄ軸補償電圧値Ｖｄ_ｍｔｒとを加算してｄ軸電圧指令値Ｖｄ＊（＝Ｖ″ｄ＊＋Ｖｄ_ｍｔｒ）を算出する。また、実施形態２の加算器１３は、ｑ軸電圧指令値Ｖ″ｑ＊とｑ軸補償電圧値Ｖｑ_ｍｔｒとを加算してｑ軸電圧指令値Ｖｑ＊（＝Ｖ″ｑ＊＋Ｖｑ_ｍｔｒ）を算出する。
【００７６】
スイッチング周波数算出部３１は、Ｕ相電圧指令値Ｖｕ＊とＶ相電圧指令値Ｖｖ＊とＷ相電圧指令値Ｖｗ＊とを取得し、Ｕ相スイッチング周波数Ｆｓｗ＿ｕとＶ相スイッチング周波数Ｆｓｗ＿ｖとＷ相スイッチング周波数Ｆｓｗ＿ｗとを算出する。
【００７７】
高調波補償部３２は、モータ２２に流れる基本電流の基本周波数Ｆｉｎｖと、インバータ回路１８をＰＷＭ制御するときの三相それぞれのスイッチング周波数Ｆｓｗ＿ｕ、Ｆｓｗ＿ｖ、Ｆｓｗ＿ｗを用いて、スイッチング周波数Ｆｓｗ＿ｕ、Ｆｓｗ＿ｖ、Ｆｓｗ＿ｗそれぞれの基本周波数Ｆｉｎｖに対するＰＷＭに起因するトルクリプルの次数Ｎｕ、Ｎｖ、Ｎｗを算出し、次数Ｎｕ、Ｎｖ、Ｎｗを用いて、三相それぞれのＰＷＭに起因するトルクリプルの逆成分となるＵ相補償電圧値Ｖｕ＿ｓｗとＶ相補償電圧値Ｖｖ＿ｓｗとＷ相補償電圧値Ｖｗ＿ｓｗとを求める。
【００７８】
加算器３３は、Ｕ相電圧指令値Ｖ′ｕ＊とＵ相補償電圧値Ｖｕ＿ｓｗとを加算してＵ相電圧指令値Ｖｕ＊（＝Ｖ′ｕ＊＋Ｖｕ＿ｓｗ）を算出する。加算器３４は、Ｖ相電圧指令値Ｖ′ｖ＊とＶ相補償電圧値Ｖｖ＿ｓｗとを加算してＶ相電圧指令値Ｖｖ＊（＝Ｖ′ｖ＊＋Ｖｖ＿ｓｗ）を算出する。加算器３５は、Ｗ相電圧指令値Ｖ′ｗ＊とＷ相補償電圧値Ｖｗ＿ｓｗとを加算してＷ相電圧指令値Ｖｗ＊（＝Ｖ′ｗ＊＋Ｖｗ＿ｓｗ）を算出する。
【００７９】
実施形態２のモータ制御装置について説明する。
実施形態１と同じ部分については説明を省略する。
加算器６のＶ″ｄ＊出力端子には加算器１２のＶ″ｄ＊入力端子（＋）が接続される。加算器７のＶ″ｑ＊出力端子には加算器１３のＶ″ｑ＊入力端子（＋）が接続される。
【００８０】
加算器１２のＶｄ_ｍｔｒ入力端子（＋）には高調波補償部１４のＶｄ_ｍｔｒ出力端子が接続され、加算器１２のＶｄ＊出力端子には座標変換部１５のＶｄ＊入力端子が接続される。加算器１３のＶｑ_ｍｔｒ入力端子（＋）には高調波補償部１４のＶｑ_ｍｔｒ出力端子が接続され、加算器１３のＶｑ＊出力端子には座標変換部１５のＶｑ＊入力端子が接続される。
【００８１】
高調波補償部３２のＦｓｗ＿ｕ入力端子にはスイッチング周波数算出部３１のＦｓｗ＿ｕ出力端子が接続され、高調波補償部３２のＦｓｗ＿ｖ入力端子にはスイッチング周波数算出部３１のＦｓｗ＿ｖ出力端子に接続され、高調波補償部３２のＦｓｗ＿ｗ入力端子にはスイッチング周波数算出部３１のＦｓｗ＿ｗ出力端子が接続される。
【００８２】
加算器３３のＶｕ′＊入力端子には座標変換部１５のＶｕ′＊出力端子が接続され、加算器３３のＶｕ＿ｓｗ入力端子には高調波補償部３２のＶｕ＿ｓｗ出力端子が接続され、加算器３３のＶｕ＊出力端子にはＰＷＭ制御部１６のＶｕ＊入力端子が接続される。
【００８３】
加算器３４のＶｖ′＊入力端子には座標変換部１５のＶｖ′＊出力端子が接続され、加算器３４のＶｖ＿ｓｗ入力端子には高調波補償部３２のＶｖ＿ｓｗ出力端子が接続され、加算器３４のＶｖ＊出力端子にはＰＷＭ制御部１６のＶｖ＊入力端子が接続される。
【００８４】
加算器３５のＶｗ′＊入力端子には座標変換部１５のＶｗ′＊出力端子が接続され、加算器３５のＶｗ＿ｓｗ入力端子には高調波補償部３２のＶｗ＿ｓｗ出力端子が接続され、加算器３５のＶｗ＊出力端子にはＰＷＭ制御部１６のＶｗ＊入力端子が接続される。
【００８５】
モータ２２には位置検出部２１が接続され、位置検出部２１のθｅ出力端子には高調波補償部１４のθｅ入力端子と高調波補償部３２のθｅ入力端子と座標変換部１５のθｅ入力端子とが接続される。
【００８６】
実施形態２のスイッチング周波数算出部３１について説明をする。
スイッチング周波数算出部３１は、例えば、Ｕ相電圧指令値Ｖｕ＊とＶ相電圧指令値Ｖｖ＊とＷ相電圧指令値Ｖｗ＊とを取得し、取得したＵ相電圧指令値Ｖｕ＊とＶ相電圧指令値Ｖｖ＊とＷ相電圧指令値Ｖｗ＊とに基づいて生成されるＰＷＭ制御するための信号（矩形波）を参照し、スイッチング周波数Ｆｓｗを算出する。
【００８７】
スイッチング周波数Ｆｓｗを算出する方法として、例えば、ＰＷＭ制御するための信号の立ち上がり時刻ｔ１（ローレベルからハイレベルへ移行した時刻）と次の立ち上がり時刻ｔ２とを検出し、時刻ｔ２と時刻ｔ１との差Ｔ１（＝ｔ２−ｔ１）に基づいてＦｓｗを算出する。又は、ＰＷＭ制御するための信号の立ち下がり時刻ｔ３（ハイレベルからローレベルへ移行した時刻）と次の立ち下がり時刻ｔ４とを検出し、時刻ｔ４と時刻ｔ３との差Ｔ２（＝ｔ４−ｔ３）に基づいてＦｓｗを算出してもよい。更に、差Ｔ１と差Ｔ２の平均（（Ｔ１＋Ｔ２）／２）を算出し、平均に基づいてＦｓｗを算出してもよい。なお、スイッチング周波数Ｆｓｗは、Ｕ相、Ｖ相、Ｗ相それぞれに対して求める。すなわち、Ｕ相電圧指令値Ｖｕ＊に対してはＵ相スイッチング周波数Ｆｓｗ＿ｕを求め、Ｖ相電圧指令値Ｖｖ＊に対してはＶ相スイッチング周波数Ｆｓｗ＿ｖを求め、Ｗ相電圧指令値Ｖｗ＊に対してはＷ相スイッチング周波数Ｆｓｗ＿ｗを求める。
【００８８】
実施形態２の高調波補償部３２について説明をする。
まず、高調波補償部３２は、インバータ回路１８にＰＷＭ制御をするときのＵ相スイッチング周波数Ｆｓｗ＿ｕとＶ相スイッチング周波数Ｆｓｗ＿ｖとＷ相スイッチング周波数Ｆｓｗ＿ｗとをそれぞれ、モータ２２に流れる基本電流の基本周波数Ｆｉｎｖで除算し、Ｕ相スイッチング周波数Ｆｓｗ＿ｕに対応するＵ相の次数ＮｕとＶ相スイッチング周波数Ｆｓｗ＿ｖに対応するＶ相の次数ＮｖとＷ相スイッチング周波数Ｆｓｗ＿ｗに対応するＷ相の次数Ｎｗとを算出する。すなわち、高調波補償部３２は式５、式６、式７を用いて次数Ｎｕ、Ｎｖ、Ｎｗを算出する。
【００８９】
Ｎｕ＝Ｆｓｗ＿ｕ／Ｆｉｎｖ      式５
Ｎｖ＝Ｆｓｗ＿ｖ／Ｆｉｎｖ      式６
Ｎｗ＝Ｆｓｗ＿ｗ／Ｆｉｎｖ      式７
続いて、高調波補償部３２は、式５、式６、式７で算出した三相それぞれのＵ相の次数ＮｕとＶ相の次数ＮｖとＷ相の次数Ｎｗとを用いて、Ｕ相の次数ＮｕにＵ相補償電圧値Ｖｕ＿ｓｗが関連付けられ、Ｖ相の次数ＮｖにＶ相補償電圧値Ｖｖ＿ｓｗが関連付けられ、Ｗ相の次数ＮｗにＷ相補償電圧値Ｖｗ＿ｓｗが関連付けられて記憶部に記憶されている三相補償電圧情報を参照し、Ｕ相の次数Ｎｕに対応するＵ相補償電圧値Ｖｕ＿ｓｗと、Ｖ相の次数Ｎｖに対応するＶ相補償電圧値Ｖｖ＿ｓｗと、Ｗ相の次数に対応するＷ相補償電圧値Ｖｗ＿ｓｗとを求める。
【００９０】
三相補償電圧情報は、例えば、Ｕ相テーブルとＶ相テーブルとＷ相テーブルとを有する。Ｕ相テーブルは、Ｕ相の次数Ｎｕ（複数の異なる次数範囲「Ｎｕ＿ｕ１」「Ｎｕ＿ｕ２」〜「Ｎｕ＿ｕｎ」）と、次数Ｎｕに関連付けられたＵ相補償電圧値Ｖｕ＿ｓｗ（次数範囲「Ｎｕ＿ｕ１」に対応する「Ｖｕ＿ｓｗ＿Ｎｕ１」、次数範囲「Ｎｕ＿ｕ２」に対応する「Ｖｕ＿ｓｗ＿Ｎｕ２」〜次数範囲「Ｎｎ＿ｕｎ」に対応する「Ｖｕ＿ｓｗ＿Ｎｕｎ」）とが関連付けられている。
【００９１】
Ｖ相テーブルは、Ｖ相の次数Ｎｖ（複数の異なる次数範囲「Ｎｖ＿ｖ１」「Ｎｖ＿ｖ２」〜「Ｎｖ＿ｖｎ」）と、次数Ｎｖに関連付けられたＶ相補償電圧値Ｖｖ＿ｓｗ（次数範囲「Ｎｖ＿ｖ１」に対応する「Ｖｖ＿ｓｗ＿Ｎｖ１」、次数範囲「Ｎｖ＿ｖ２」に対応する「Ｖｖ＿ｓｗ＿Ｎｖ２」〜次数範囲「Ｎｖ＿ｖｎ」に対応する「Ｖｖ＿ｓｗ＿Ｎｖｎ」）とが関連付けられている。
【００９２】
Ｗ相テーブルは、Ｗ相の次数Ｎｗ（複数の異なる次数範囲「Ｎｗ＿ｗ１」「Ｎｗ＿ｗ２」〜「Ｎｗ＿ｗｎ」）と、次数Ｎｗに関連付けられたＷ相補償電圧値Ｖｗ＿ｓｗ（次数範囲「Ｎｗ＿ｗ１」に対応する「Ｖｗ＿ｓｗ＿Ｎｗ１」、次数範囲「Ｎｗ＿ｗ２」に対応する「Ｖｗ＿ｓｗ＿Ｎｗ２」〜次数範囲「Ｎｗ＿ｗｎ」に対応する「Ｖｗ＿ｓｗ＿Ｎｗｎ」）とが関連付けられている。
【００９３】
また、上記ｎは正の整数である。
例えば、式５で算出したＵ相の次数Ｎｕが、三相補償電圧情報の次数範囲「Ｎｕ＿ｕ１」に含まれている場合、Ｕ相補償電圧値Ｖｕ＿ｓｗは、次数範囲「Ｎｕ＿ｕ１」に対応する「Ｖｕ＿ｓｗ＿Ｎｕ１」となる。
【００９４】
なお、Ｕ相の次数Ｎｕに関連付けられたＵ相補償電圧値Ｖｕ＿ｓｗと、Ｖ相の次数Ｎｖに関連付けられたＶ相補償電圧値Ｖｖ＿ｓｗと、Ｗ相の次数Ｎｗに関連付けられたＷ相補償電圧値Ｖｗ＿ｓｗとは、実験やシミュレーションを用いて予め求めておく。
【００９５】
続いて、高調波補償部３２は、求めたＵ相補償電圧値Ｖｕ＿ｓｗを加算器３３に出力し、求めたＶ相補償電圧値Ｖｖ＿ｓｗを加算器３４に出力し、求めたＷ相補償電圧値Ｖｗ＿ｓｗを加算器３５に出力する。
【００９６】
このように、Ｕ相の次数ＮｕとＶ相の次数ＮｖとＷ相の次数Ｎｗを用いて、ＰＷＭに起因するトルクリプルの逆成分となるＵ相の次数Ｎｕに対応するＵ相補償電圧値Ｖｕ＿ｓｗと、Ｖ相の次数Ｎｖに対応するＶ相補償電圧値Ｖｖ＿ｓｗと、Ｗ相の次数に対応するＷ相補償電圧値Ｖｗ＿ｓｗとを個別に求め、Ｕ相電圧指令値Ｖ′ｕ＊とＵ相補償電圧値Ｖｕ＿ｓｗとを加算器３３で加算してＵ相電圧指令値Ｖｕ＊を算出し、Ｖ相電圧指令値Ｖ′ｖ＊とＶ相補償電圧値Ｖｖ＿ｓｗとを加算器３４で加算してＶ相電圧指令値Ｖｖ＊を算出し、Ｗ相電圧指令値Ｖ′ｗ＊とＷ相補償電圧値Ｖｗ＿ｓｗとを加算器３５で加算してＷ相電圧指令値Ｖｗ＊を算出することで、モータ２２におけるＰＷＭに起因するトルクリプルを低減できる。
【００９７】
また、Ｕ相スイッチング周波数Ｆｓｗ＿ｕとＶ相スイッチング周波数Ｆｓｗ＿ｖとＷ相スイッチング周波数Ｆｓｗ＿ｗとを用いているので、精度よくモータ２２におけるＰＷＭに起因するトルクリプルを低減できる。
【００９８】
また、ＰＷＭに起因するトルクリプルを低減できるので、モータ２２のヒアリングノイズを低減することができる。
また、ハードウェアの追加をせず、制御回路３０で実行されるソフトウェアを変更するだけでＰＷＭに起因するトルクリプルを低減できるので、モータ制御装置の価格上昇を抑えることができる。
【００９９】
＜変形例２＞
変形例２の高調波補償部３２について説明する。
【０１００】
図４は、変形例２の高調波補償部３２の一実施例を示す図である。図４の高調波補償部３２は、Ｕ相次数算出部４０１ｕ、Ｖ相次数算出部４０１ｖ、Ｗ相次数算出部４０１ｗ、Ｕ相補償電圧算出部４０２ｕ、Ｖ相補償電圧算出部４０２ｖ、Ｗ相補償電圧算出部４０２ｗを有する。
【０１０１】
図４の高調波補償部３２では、まず、Ｕ相次数算出部４０１ｕがスイッチング周波数Ｆｓｗ＿ｕを基本周波数Ｆｉｎｖで除算して次数Ｎｕを算出し、Ｖ相次数算出部４０１ｖがスイッチング周波数Ｆｓｗ＿ｖを基本周波数Ｆｉｎｖで除算して次数Ｎｖを算出し、Ｗ相次数算出部４０１ｗがスイッチング周波数Ｆｓｗ＿ｗを基本周波数Ｆｉｎｖで除算して次数Ｎｗを算出する。式５、式６、式７を参照。
【０１０２】
続いて、Ｕ相補償電圧算出部４０２ｕは、次数Ｎｕと位相θｅとＵ相初期位相θｕとＵ相補償電圧振幅Ｋｕとを取得する。
Ｕ相補償電圧振幅Ｋｕは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｕ相補償電圧算出部４０２ｕは、次数Ｎｕを用いて、次数ＮｕにＵ相補償電圧振幅Ｋｕが関連付けられて記憶部に記憶されているＵ相補償電圧振幅情報を参照し、次数Ｎｕに対応するＵ相補償電圧振幅Ｋｕを求める。
【０１０３】
Ｕ相補償電圧振幅情報は、例えば、次数Ｎｕ（複数の異なる次数範囲「Ｎｕｕ１」「Ｎｕｕ２」〜「Ｎｕｕｎ」）と、次数Ｎｕに関連付けられたＵ相補償電圧振幅Ｋｕ（次数範囲「Ｎｕｕ１」に対応する「Ｋｕ＿Ｎｕｕ１」、次数範囲「Ｎｕｕ２」に対応する「Ｋｕ＿Ｎｕｕ２」〜次数範囲「Ｎｕｕｎ」に対応する「Ｋｕ＿Ｎｕｕｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式５で算出した次数Ｎｕが、Ｕ相補償電圧振幅情報の次数範囲「Ｎｕｕ１」に含まれている場合、Ｕ相補償電圧振幅Ｋｕは、次数範囲「Ｎｕｕ１」に対応する「Ｋｕ＿Ｎｕｕ１」となる。なお、Ｕ相補償電圧振幅Ｋｕは実験やシミュレーションにより予め求めておく。
【０１０４】
また、Ｕ相補償電圧算出部４０２ｕは、Ｕ相初期位相θｕを記憶部から取得する。Ｕ相補償電圧算出部４０２ｕは、次数Ｎｕを用いて、次数ＮｕにＵ相初期位相θｕが関連付けられて記憶部に記憶されているＵ相初期位相情報を参照し、次数Ｎｕに対応するＵ相初期位相θｕを求める。
【０１０５】
Ｕ相初期位相情報は、例えば、次数Ｎｕ（複数の異なる次数範囲「Ｎθｕｕ１」「Ｎθｕｕ２」〜「Ｎθｕｕｎ」）と、次数Ｎｕに関連付けられたＵ相初期位相θｕ（次数範囲「Ｎθｕｕ１」に対応する「θｕ＿Ｎθｕｕ１」、次数範囲「Ｎθｕｕ２」に対応する「θｕ＿Ｎθｕｕ２」〜次数範囲「Ｎθｕｕｎ」に対応する「θｕ＿Ｎθｕｕｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式５で算出した次数Ｎｕが、Ｕ相初期位相情報の次数範囲「Ｎθｕｕ１」に含まれている場合、Ｕ相初期位相θｕは、次数範囲「Ｎθｕｕ１」に対応する「θｕ＿Ｎθｕｕ１」となる。なお、Ｕ相初期位相θｕは実験やシミュレーションにより予め求めておく。
【０１０６】
続いて、Ｕ相補償電圧算出部４０２ｕは、Ｕ相補償電圧値Ｖｕ＿ｓｗを式８を用いて算出する。
Ｖｕ＿ｓｗ＝Ｋｕ×ｓｉｎ（Ｎｕ×θｅ＋θｕ）      式８
また、Ｖ相補償電圧算出部４０２ｖは、次数Ｎｖと位相θｅとＶ相初期位相θｖとＶ相補償電圧振幅Ｋｖとを取得する。
【０１０７】
Ｖ相補償電圧振幅Ｋｖは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｖ相補償電圧算出部４０２ｖは、次数Ｎｖを用いて、次数ＮｖにＶ相補償電圧振幅Ｋｖが関連付けられて記憶部に記憶されているＶ相補償電圧振幅情報を参照し、次数Ｎｖに対応するＶ相補償電圧振幅Ｋｖを求める。
【０１０８】
Ｖ相補償電圧振幅情報は、例えば、次数Ｎｖ（複数の異なる次数範囲「Ｎｖｖ１」「Ｎｖｖ２」〜「Ｎｖｖｎ」）と、次数Ｎｖに関連付けられたＶ相補償電圧振幅Ｋｖ（次数範囲「Ｎｖｖ１」に対応する「Ｋｖ＿Ｎｖｖ１」、次数範囲「Ｎｖｖ２」に対応する「Ｋｖ＿Ｎｖｖ２」〜次数範囲「Ｎｖｖｎ」に対応する「Ｋｖ＿Ｎｖｖｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式６で算出した次数Ｎｖが、Ｖ相補償電圧振幅情報の次数範囲「Ｎｖｖ１」に含まれている場合、Ｖ相補償電圧振幅Ｋｖは、次数範囲「Ｎｖｖ１」に対応する「Ｋｖ＿Ｎｖｖ１」となる。なお、Ｖ相補償電圧振幅Ｋｖは実験やシミュレーションにより予め求めておく。
【０１０９】
また、Ｖ相補償電圧算出部４０２ｖは、Ｖ相初期位相θｖを記憶部から取得する。Ｖ相補償電圧算出部４０２ｖは、次数Ｎｖを用いて、次数ＮｖにＶ相初期位相θｖが関連付けられて記憶部に記憶されているＶ相初期位相情報を参照し、次数Ｎｖに対応するＶ相初期位相θｖを求める。
【０１１０】
Ｖ相初期位相情報は、例えば、次数Ｎｖ（複数の異なる次数範囲「Ｎθｖｖ１」「Ｎθｖｖ２」〜「Ｎθｖｖｎ」）と、次数Ｎｖに関連付けられたＶ相初期位相θｖ（次数範囲「Ｎθｖｖ１」に対応する「θｖ＿Ｎθｖｖ１」、次数範囲「Ｎθｖｖ２」に対応する「θｖ＿Ｎθｖｖ２」〜次数範囲「Ｎθｖｖｎ」に対応する「θｖ＿Ｎθｖｖｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式６で算出した次数Ｎｖが、Ｖ相初期位相情報の次数範囲「Ｎθｖｖ１」に含まれている場合、Ｖ相初期位相θｖは、次数範囲「Ｎθｖｖ１」に対応する「θｖ＿Ｎθｖｖ１」となる。なお、Ｖ相初期位相θｖは実験やシミュレーションにより予め求めておく。
【０１１１】
続いて、Ｖ相補償電圧算出部４０２ｖは、Ｖ相補償電圧値Ｖｖ＿ｓｗを式９を用いて算出する。
Ｖｖ＿ｓｗ＝Ｋｖ×ｓｉｎ（Ｎｖ×θｅ＋θｖ）      式９
また、Ｗ相補償電圧算出部４０２ｗは、次数Ｎｗと位相θｅとＷ相初期位相θｗとＷ相補償電圧振幅Ｋｗとを取得する。
【０１１２】
Ｗ相補償電圧振幅Ｋｗは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｗ相補償電圧算出部４０２ｗは、次数Ｎｗを用いて、次数ＮｗにＷ相補償電圧振幅Ｋｗが関連付けられて記憶部に記憶されているＷ相補償電圧振幅情報を参照し、次数Ｎｗに対応するＷ相補償電圧振幅Ｋｗを求める。
【０１１３】
Ｗ相補償電圧振幅情報は、例えば、次数Ｎｗ（複数の異なる次数範囲「Ｎｗｗ１」「Ｎｗｗ２」〜「Ｎｗｗｎ」）と、次数Ｎｗに関連付けられたＷ相補償電圧振幅Ｋｗ（次数範囲「Ｎｗｗ１」に対応する「Ｋｗ＿Ｎｗｗ１」、次数範囲「Ｎｗｗ２」に対応する「Ｋｗ＿Ｎｗｗ２」〜次数範囲「Ｎｗｗｎ」に対応する「Ｋｗ＿Ｎｗｗｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式７で算出した次数Ｎｗが、Ｗ相補償電圧振幅情報の次数範囲「Ｎｗｗ１」に含まれている場合、Ｗ相補償電圧振幅Ｋｗは、次数範囲「Ｎｗｗ１」に対応する「Ｋｗ＿Ｎｗｗ１」となる。なお、Ｗ相補償電圧振幅Ｋｗは実験やシミュレーションにより予め求めておく。
【０１１４】
また、Ｗ相補償電圧算出部４０２ｗは、Ｗ相初期位相θｗを記憶部から取得する。Ｗ相補償電圧算出部４０２ｗは、次数Ｎｗを用いて、次数ＮｗにＷ相初期位相θｗが関連付けられて記憶部に記憶されているＷ相初期位相情報を参照し、次数Ｎｗに対応するＷ相初期位相θｗを求める。
【０１１５】
Ｗ相初期位相情報は、例えば、次数Ｎｗ（複数の異なる次数範囲「Ｎθｗｗ１」「Ｎθｗｗ２」〜「Ｎθｗｗｎ」）と、次数Ｎｗに関連付けられたＷ相初期位相θｗ（次数範囲「Ｎθｗｗ１」に対応する「θｗ＿Ｎθｗｗ１」、次数範囲「Ｎθｗｗ２」に対応する「θｗ＿Ｎθｗｗ２」〜次数範囲「Ｎθｗｗｎ」に対応する「θｗ＿Ｎθｗｗｎ」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式７で算出した次数Ｎｗが、Ｗ相初期位相情報の次数範囲「Ｎθｗｗ１」に含まれている場合、Ｗ相初期位相θｗは、次数範囲「Ｎθｗｗ１」に対応する「θｗ＿Ｎθｗｗ１」となる。なお、Ｗ相初期位相θｗは実験やシミュレーションにより予め求めておく。
【０１１６】
続いて、Ｗ相補償電圧算出部４０２ｗは、Ｗ相補償電圧値Ｖｗ＿ｓｗを式１０を用いて算出する。
Ｖｗ＿ｓｗ＝Ｋｗ×ｓｉｎ（Ｎｗ×θｅ＋θｗ）      式１０
このように、次数Ｎｕ、Ｎｖ、Ｎｗを用いて、Ｕ相補償電圧振幅情報、Ｖ相補償電圧振幅情報、Ｗ相補償電圧振幅情報を参照し、次数Ｎｕに対応するＵ相補償電圧振幅Ｋｕを求め、次数Ｎｖに対応するＶ相補償電圧振幅Ｋｖを求め、次数Ｎｗに対応するＷ相補償電圧振幅Ｋｗを求めることで、次数Ｎｕに対応したＵ相補償電圧振幅Ｋｕ、次数Ｎｖに対応したＶ相補償電圧振幅Ｋｖ、次数Ｎｗに対応したＷ相補償電圧振幅Ｋｗを適時求められるため、実施形態２より更にモータ２２におけるＰＷＭに起因するトルクリプルを低減できる。
【０１１７】
また、ＰＷＭに起因するトルクリプルを実施形態２より更に低減できるので、更にモータ２２のヒアリングノイズを低減することができる。
また、ハードウェアの追加をせず、制御回路３０で実行されるソフトウェアを変更するだけでＰＷＭに起因するトルクリプルを低減できるので、モータ制御装置の価格上昇を抑えることができる。
【０１１８】
＜変形例３＞
図５は、変形例３の一実施例を示す図である。図５に示すモータ制御装置は、制御回路５０（減算器２、減算器３、ＰＩ制御部４、ＰＩ制御部５、加算器６、加算器７、非干渉電圧補償部８、加算器１２、加算器１３、高調波補償部１４、座標変換部１５、ＰＷＭ制御部１６、座標変換部１７、スイッチング周波数算出部５１、高調波補償部３２、加算器３３（第一の加算器）、加算器３４（第二の加算器）、加算器３５（第三の加算器））、インバータ回路１８、電流センサ１９、電流センサ２０、位置検出部２１などを有し、モータ２２を制御する。
【０１１９】
変形例３と実施形態２及び変形例２との違いは、実施形態２及び変形例２ではスイッチング周波数算出部３１を用いて、Ｕ相電圧指令値Ｖｕ＊からＵ相スイッチング周波数Ｆｓｗ＿ｕを算出し、Ｖ相電圧指令値Ｖｖ＊からＶ相スイッチング周波数Ｆｓｗ＿ｖを算出し、Ｗ相電圧指令値Ｖｗ＊からＷ相スイッチング周波数Ｆｓｗ＿ｗとを算出していたが、変形例３ではスイッチング周波数算出部５１を用いて、Ｕ相電流値ｉｕからＵ相スイッチング周波数Ｆｓｗ＿ｕを算出し、Ｖ相電流値ｉｖからＶ相スイッチング周波数Ｆｓｗ＿ｖを算出し、Ｗ相電流値ｉｗからＷ相スイッチング周波数Ｆｓｗ＿ｗとを算出する。
【０１２０】
スイッチング周波数算出部５１は、Ｕ相電流値ｉｕとＶ相電流値ｉｖとＷ相電流値ｉｗを取得し、Ｕ相電流値ｉｕのノイズ成分とＶ相電流値ｉｖのノイズ成分とＷ相電流値ｉｗのノイズ成分を取り除き、ノイズ成分を取り除いたＵ相電流値ｉｕを用いてＵ相スイッチング周波数Ｆｓｗ＿ｕを算出し、ノイズ成分を取り除いたＶ相電流値ｉｖを用いてＶ相スイッチング周波数Ｆｓｗ＿ｖを算出し、ノイズ成分を取り除いたＷ相電流値ｉｗを用いてＷ相スイッチング周波数Ｆｓｗ＿ｗを算出する。なお、Ｗ相電流値ｉｗはＵ相電流値ｉｕとＶ相電流値ｉｖに基づいて求めてもよい。
【０１２１】
また、ノイズ成分を取り除く方法は、例えば、バンドパスフィルタやＦＦＴ（Fast Fourier Transform）などを用いることが考えられる。なお、通過帯域幅はＰＷＭのデューティ変化率に基づいて決める。
【０１２２】
このように、ノイズ成分を取り除いたＵ相電流値ｉｕとＶ相電流値ｉｖとＷ相電流値ｉｗとを用いて、Ｕ相スイッチング周波数Ｆｓｗ＿ｕとＶ相スイッチング周波数Ｆｓｗ＿ｖとＷ相スイッチング周波数Ｆｓｗ＿ｗとを算出し、次数Ｎｕ、Ｎｖ、Ｎｗを求めることで、精度よくＵ相補償電圧値Ｖｕ＿ｓｗとＶ相補償電圧値Ｖｖ＿ｓｗとＷ相補償電圧値Ｖｗ＿ｓｗを求めることができる。従って、モータ２２におけるＰＷＭに起因するトルクリプルを低減できる。
【０１２３】
＜変形例４＞
図６は、変形例４の一実施例を示す図である。図６に示すモータ制御装置は、制御回路６０（減算器２、減算器３、ＰＩ制御部４、ＰＩ制御部５、加算器６、加算器７、非干渉電圧補償部８、加算器１２、加算器１３、高調波補償部１４、座標変換部１５、ＰＷＭ制御部１６、座標変換部１７、基本周波数算出部６１、高調波補償部６２、加算器３３（第一の加算器）、加算器３４（第二の加算器）、加算器３５（第三の加算器））、インバータ回路１８、電流センサ１９、電流センサ２０、位置検出部２１などを有し、モータ２２を制御する。
【０１２４】
実施形態２、変形例２、変形例３では、スイッチング周波数算出部３１又はスイッチング周波数算出部５１を用いて、Ｕ相電圧指令値Ｖｕ＊又はＵ相電流値ｉｕに基づいてＵ相スイッチング周波数Ｆｓｗ＿ｕを算出し、高調波補償部３２を用いてＵ相補償電圧値Ｖｕ＿ｓｗを算出したが、変形例４では、基本周波数算出部６１を用いてＵ相基本周波数Ｆｉｎｖ＿ｕを算出し、高調波補償部６２を用いて、Ｕ相基本周波数Ｆｉｎｖ＿ｕとＵ相スイッチング周波数Ｆｓｗ＿ｕから求めた次数Ｎｕｕに基づいてＵ相補償電圧値Ｖｕ＿ｓｗを算出する。
【０１２５】
また、実施形態２、変形例２、変形例３では、スイッチング周波数算出部３１又はスイッチング周波数算出部５１を用いて、Ｖ相電圧指令値Ｖｖ＊又はＶ相電流値ｉｖに基づいてＶ相スイッチング周波数Ｆｓｗ＿ｖを算出し、高調波補償部３２を用いてＶ相補償電圧値Ｖｖ＿ｓｗを算出したが、変形例４では、基本周波数算出部６１を用いてＶ相基本周波数Ｆｉｎｖ＿ｖを算出し、高調波補償部６２を用いて、Ｖ相基本周波数Ｆｉｎｖ＿ｖとＶ相スイッチング周波数Ｆｓｗ＿ｖから求めた次数Ｎｖｖに基づいてＶ相補償電圧値Ｖｖ＿ｓｗを算出する。
【０１２６】
また、実施形態２、変形例２、変形例３では、スイッチング周波数算出部３１又はスイッチング周波数算出部５１を用いて、Ｗ相電圧指令値Ｖｗ＊又はＷ相電流値ｉｗに基づいてＷ相スイッチング周波数Ｆｓｗ＿ｗを算出し、高調波補償部３２を用いてＷ相補償電圧値Ｖｗ＿ｓｗを算出したが、変形例４では、基本周波数算出部６１を用いてＷ相基本周波数Ｆｉｎｖ＿ｗを算出し、高調波補償部６２を用いて、Ｗ相基本周波数Ｆｉｎｖ＿ｗとＷ相スイッチング周波数Ｆｓｗ＿ｗから求めた次数Ｎｗｗに基づいてＷ相補償電圧値Ｖｗ＿ｓｗを算出する。
【０１２７】
基本周波数算出部６１は、Ｕ相電流値ｉｕとＶ相電流値ｉｖとＷ相電流値ｉｗを取得し、Ｕ相電流値ｉｕのノイズ成分とＶ相電流値ｉｖのノイズ成分とＷ相電流値ｉｗのノイズ成分を取り除き、ノイズ成分を取り除いたＵ相電流値ｉｕを用いてＵ相基本周波数Ｆｉｎｖ＿ｕを算出し、ノイズ成分を取り除いたＶ相電流値ｉｖを用いてＶ相基本周波数Ｆｉｎｖ＿ｖを算出し、ノイズ成分を取り除いたＷ相電流値ｉｗを用いてＷ相基本周波数Ｆｉｎｖ＿ｗを算出する。
【０１２８】
なお、Ｗ相基本周波数Ｆｉｎｖ＿ｗは、Ｕ相電流値ｉｕとＶ相電流値ｉｖに基づいて求めたＷ相電流値ｉｗから求めてもよい。
また、ノイズ成分を取り除く方法は、例えば、バンドパスフィルタやＦＦＴなどを用いることが考えられる。なお、モータ２２が低回転の場合、回転数に応じて通過帯域幅の中心周波数を変化させる。また、モータ２２が高回転の場合、電流周期の変化や位置検出部２１などの誤差、系の応答性などを考慮して設定する。
【０１２９】
高調波補償部６２は、Ｕ相の基本電流の基本周波数Ｆｉｎｖ＿ｕと、インバータ回路１８をＰＷＭ制御するときのＵ相のスイッチング周波数Ｆｓｗ＿ｕとを用いて、基本周波数Ｆｉｎｖ＿ｕに対するＰＷＭに起因するトルクリプルの次数Ｎｕｕを算出し、次数Ｎｕｕを用いて、Ｕ相のＰＷＭに起因するトルクリプルの逆成分となるＵ相補償電圧値Ｖｕ＿ｓｗを求める。また、高調波補償部６２は、Ｖ相の基本電流の基本周波数Ｆｉｎｖ＿ｖと、インバータ回路１８をＰＷＭ制御するときのＶ相のスイッチング周波数Ｆｓｗ＿ｖとを用いて、基本周波数Ｆｉｎｖ＿ｖに対するＰＷＭに起因するトルクリプルの次数Ｎｖｖを算出し、次数Ｎｖｖを用いて、Ｖ相のＰＷＭに起因するトルクリプルの逆成分となるＶ相補償電圧値Ｖｖ＿ｓｗを求める。また、高調波補償部６２は、Ｗ相の基本電流の基本周波数Ｆｉｎｖ＿ｗと、インバータ回路１８にＰＷＭ制御をするときのＷ相のスイッチング周波数Ｆｓｗ＿ｗとを用いて、基本周波数Ｆｉｎｖ＿ｗに対するＰＷＭに起因するトルクリプルの次数Ｎｗｗを算出し、次数Ｎｗｗを用いて、Ｗ相のＰＷＭに起因するトルクリプルの逆成分となるＷ相補償電圧値Ｖｗ＿ｓｗを求める。
【０１３０】
図７は、変形例４の高調波補償部６２の一実施例を示す図である。図７の高調波補償部６２は、Ｕ相次数算出部７０１ｕ、Ｖ相次数算出部７０１ｖ、Ｗ相次数算出部７０１ｗ、Ｕ相補償電圧算出部７０２ｕ、Ｖ相補償電圧算出部７０２ｖ、Ｗ相補償電圧算出部７０２ｗを有する。
【０１３１】
図７の高調波補償部６２では、まず、Ｕ相次数算出部７０１ｕがスイッチング周波数Ｆｓｗ＿ｕを基本周波数Ｆｉｎｖ＿ｕで除算して次数Ｎｕｕを算出し、Ｖ相次数算出部７０１ｖがスイッチング周波数Ｆｓｗ＿ｖを基本周波数Ｆｉｎｖ＿ｖで除算して次数Ｎｖｖを算出し、Ｗ相次数算出部７０１ｗがスイッチング周波数Ｆｓｗ＿ｗを基本周波数Ｆｉｎｖ＿ｗで除算して次数Ｎｗｗを算出する。式１１、式１２、式１３を参照。
【０１３２】
Ｎｕｕ＝Ｆｓｗ＿ｕ／Ｆｉｎｖ＿ｕ      式１１
Ｎｖｖ＝Ｆｓｗ＿ｖ／Ｆｉｎｖ＿ｖ      式１２
Ｎｗｗ＝Ｆｓｗ＿ｗ／Ｆｉｎｖ＿ｗ      式１３
続いて、Ｕ相補償電圧算出部７０２ｕは、次数Ｎｕｕと位相θｅとＵ相初期位相θｕとＵ相補償電圧振幅Ｋｕとを取得する。
【０１３３】
Ｕ相補償電圧振幅Ｋｕは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｕ相補償電圧算出部７０２ｕは、次数Ｎｕｕを用いて、次数ＮｕｕにＵ相補償電圧振幅Ｋｕが関連付けられて記憶部に記憶されているＵ相補償電圧振幅情報を参照し、次数Ｎｕｕに対応するＵ相補償電圧振幅Ｋｕを求める。
【０１３４】
Ｕ相補償電圧振幅情報は、例えば、次数Ｎｕｕ（複数の異なる次数範囲「Ｎｕｕ１′」「Ｎｕｕ２′」〜「Ｎｕｕｎ′」）と、次数Ｎｕｕに関連付けられたＵ相補償電圧振幅Ｋｕ（次数範囲「Ｎｕｕ１′」に対応する「Ｋｕ＿Ｎｕｕ１′」、次数範囲「Ｎｕｕ２′」に対応する「Ｋｕ＿Ｎｕｕ２′」〜次数範囲「Ｎｕｕｎ′」に対応する「Ｋｕ＿Ｎｕｕｎ′」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１１で算出した次数Ｎｕｕが、Ｕ相補償電圧振幅情報の次数範囲「Ｎｕｕ１′」に含まれている場合、Ｕ相補償電圧振幅Ｋｕは、次数範囲「Ｎｕｕ１′」に対応する「Ｋｕ＿Ｎｕｕ１′」となる。なお、Ｕ相補償電圧振幅Ｋｕは実験やシミュレーションにより予め求めておく。
【０１３５】
また、Ｕ相補償電圧算出部７０２ｕは、Ｕ相初期位相θｕを記憶部から取得する。Ｕ相補償電圧算出部７０２ｕは、次数Ｎｕｕを用いて、次数ＮｕｕにＵ相初期位相θｕが関連付けられて記憶部に記憶されているＵ相初期位相情報を参照し、次数Ｎｕｕに対応するＵ相初期位相θｕを求める。
【０１３６】
Ｕ相初期位相情報は、例えば、次数Ｎｕｕ（複数の異なる次数範囲「Ｎθｕｕ１′」「Ｎθｕｕ２′」〜「Ｎθｕｕｎ′」）と、次数Ｎｕｕに関連付けられたＵ相初期位相θｕ（次数範囲「Ｎθｕｕ１′」に対応する「θｕ＿Ｎθｕｕ１′」、次数範囲「Ｎθｕｕ２′」に対応する「θｕ＿Ｎθｕｕ２′」〜次数範囲「Ｎθｕｕｎ′」に対応する「θｕ＿Ｎθｕｕｎ′」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１１で算出した次数Ｎｕｕが、Ｕ相初期位相情報の次数範囲「Ｎθｕｕ１′」に含まれている場合、Ｕ相初期位相θｕは、次数範囲「Ｎθｕｕ１′」に対応する「θｕ＿Ｎθｕｕ１′」となる。なお、Ｕ相初期位相θｕは実験やシミュレーションにより予め求めておく。
【０１３７】
続いて、Ｕ相補償電圧算出部７０２ｕは、Ｕ相補償電圧値Ｖｕ＿ｓｗを式１４を用いて算出する。
Ｖｕ＿ｓｗ＝Ｋｕ×ｓｉｎ（Ｎｕｕ×θｅ＋θｕ）      式１４
また、Ｖ相補償電圧算出部７０２ｖは、次数Ｎｖｖと位相θｅとＶ相初期位相θｖとＶ相補償電圧振幅Ｋｖとを取得する。
【０１３８】
Ｖ相補償電圧振幅Ｋｖは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｖ相補償電圧算出部７０２ｖは、次数Ｎｖｖを用いて、次数ＮｖｖにＶ相補償電圧振幅Ｋｖが関連付けられて記憶部に記憶されているＶ相補償電圧振幅情報を参照し、次数Ｎｖｖに対応するＶ相補償電圧振幅Ｋｖを求める。
【０１３９】
Ｖ相補償電圧振幅情報は、例えば、次数Ｎｖｖ（複数の異なる次数範囲「Ｎｖｖ１′」「Ｎｖｖ２′」〜「Ｎｖｖｎ′」）と、次数Ｎｖｖに関連付けられたＶ相補償電圧振幅Ｋｖ（次数範囲「Ｎｖｖ１′」に対応する「Ｋｖ＿Ｎｖｖ１′」、次数範囲「Ｎｖｖ２′」に対応する「Ｋｖ＿Ｎｖｖ２′」〜次数範囲「Ｎｖｖｎ′」に対応する「Ｋｖ＿Ｎｖｖｎ′」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１２で算出した次数Ｎｖｖが、Ｖ相補償電圧振幅情報の次数範囲「Ｎｖｖ１′」に含まれている場合、Ｖ相補償電圧振幅Ｋｖは、次数範囲「Ｎｖｖ１′」に対応する「Ｋｖ＿Ｎｖｖ１′」となる。なお、Ｖ相補償電圧振幅Ｋｖは実験やシミュレーションにより予め求めておく。
【０１４０】
また、Ｖ相補償電圧算出部７０２ｖは、Ｖ相初期位相θｖを記憶部から取得する。Ｖ相補償電圧算出部７０２ｖは、次数Ｎｖｖを用いて、次数ＮｖｖにＶ相初期位相θｖが関連付けられて記憶部に記憶されているＶ相初期位相情報を参照し、次数Ｎｖｖに対応するＶ相初期位相θｖを求める。
【０１４１】
Ｖ相初期位相情報は、例えば、次数Ｎｖｖ（複数の異なる次数範囲「Ｎθｖｖ１′」「Ｎθｖｖ２′」〜「Ｎθｖｖｎ′」）と、次数Ｎｖｖに関連付けられたＶ相初期位相θｖ（次数範囲「Ｎθｖｖ１′」に対応する「θｖ＿Ｎθｖｖ１′」、次数範囲「Ｎθｖｖ２′」に対応する「θｖ＿Ｎθｖｖ２′」〜次数範囲「Ｎθｖｖｎ′」に対応する「θｖ＿Ｎθｖｖｎ′」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１２で算出した次数Ｎｖｖが、Ｖ相初期位相情報の次数範囲「Ｎθｖｖ１′」に含まれている場合、Ｖ相初期位相θｖは、次数範囲「Ｎθｖｖ１′」に対応する「θｖ＿Ｎθｖｖ１′」となる。なお、Ｖ相初期位相θｖは実験やシミュレーションにより予め求めておく。
【０１４２】
続いて、Ｖ相補償電圧算出部７０２ｖは、Ｖ相補償電圧値Ｖｖ＿ｓｗを式１５を用いて算出する。
Ｖｖ＿ｓｗ＝Ｋｖ×ｓｉｎ（Ｎｖｖ×θｅ＋θｖ）      式１５
また、Ｗ相補償電圧算出部７０２ｗは、次数Ｎｗｗと位相θｅとＷ相初期位相θｗとＶ相補償電圧振幅Ｋｗとを取得する。
【０１４３】
Ｗ相補償電圧振幅Ｋｗは、ＰＷＭに起因するトルクリプルを低減するための逆成分の振幅で、次のように求める。Ｗ相補償電圧算出部７０２ｗは、次数Ｎｗｗを用いて、次数ＮｗｗにＷ相補償電圧振幅Ｋｗが関連付けられて記憶部に記憶されているＷ相補償電圧振幅情報を参照し、次数Ｎｗｗに対応するＷ相補償電圧振幅Ｋｗを求める。
【０１４４】
Ｗ相補償電圧振幅情報は、例えば、次数Ｎｗｗ（複数の異なる次数範囲「Ｎｗｗ１′」「Ｎｗｗ２′」〜「Ｎｗｗｎ′」）と、次数Ｎｗｗに関連付けられたＷ相補償電圧振幅Ｋｗ（次数範囲「Ｎｗｗ１′」に対応する「Ｋｗ＿Ｎｗｗ１′」、次数範囲「Ｎｗｗ２′」に対応する「Ｋｗ＿Ｎｗｗ２′」〜次数範囲「Ｎｗｗｎ′」に対応する「Ｋｗ＿Ｎｗｗｎ′」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１３で算出した次数Ｎｗｗが、Ｗ相補償電圧振幅情報の次数範囲「Ｎｗｗ１′」に含まれている場合、Ｗ相補償電圧振幅Ｋｗは、次数範囲「Ｎｗｗ１′」に対応する「Ｋｗ＿Ｎｗｗ１′」となる。なお、Ｗ相補償電圧振幅Ｋｗは実験やシミュレーションにより予め求めておく。
【０１４５】
また、Ｗ相補償電圧算出部７０２ｗは、Ｗ相初期位相θｗを記憶部から取得する。Ｗ相補償電圧算出部７０２ｗは、次数Ｎｗｗを用いて、次数ＮｗｗにＷ相初期位相θｗが関連付けられて記憶部に記憶されているＷ相初期位相情報を参照し、次数Ｎｗｗに対応するＷ相初期位相θｗを求める。
【０１４６】
Ｗ相初期位相情報は、例えば、次数Ｎｗｗ（複数の異なる次数範囲「Ｎθｗｗ１′」「Ｎθｗｗ２′」〜「Ｎθｗｗｎ′」）と、次数Ｎｗｗに関連付けられたＷ相初期位相θｗ（次数範囲「Ｎθｗｗ１′」に対応する「θｗ＿Ｎθｗｗ１′」、次数範囲「Ｎθｗｗ２′」に対応する「θｗ＿Ｎθｗｗ２′」〜次数範囲「Ｎθｗｗｎ′」に対応する「θｗ＿Ｎθｗｗｎ′」）とが関連付けられているテーブルである。また、上記ｎは正の整数である。例えば、式１３で算出した次数Ｎｗｗが、Ｗ相初期位相情報の次数範囲「Ｎθｗｗ１′」に含まれている場合、Ｗ相初期位相θｗは、次数範囲「Ｎθｗｗ１′」に対応する「θｗ＿Ｎθｗｗ１′」となる。なお、Ｗ相初期位相θｗは実験やシミュレーションにより予め求めておく。
【０１４７】
続いて、Ｗ相補償電圧算出部７０２ｗは、Ｗ相補償電圧値Ｖｗ＿ｓｗを式１６を用いて算出する。
Ｖｗ＿ｓｗ＝Ｋｗ×ｓｉｎ（Ｎｗｗ×θｅ＋θｗ）      式１６
このように、次数Ｎｕｕ、Ｎｖｖ、Ｎｗｗを用いて、Ｕ相補償電圧振幅情報、Ｖ相補償電圧振幅情報、Ｗ相補償電圧振幅情報を参照し、次数Ｎｕｕに対応するＵ相補償電圧振幅Ｋｕを求め、次数Ｎｖｖに対応するＶ相補償電圧振幅Ｋｖを求め、次数Ｎｗｗに対応するＷ相補償電圧振幅Ｋｗを求めることで、次数Ｎｕｕに対応したＵ相補償電圧振幅Ｋｕ、次数Ｎｖｖに対応したＶ相補償電圧振幅Ｋｖ、次数Ｎｗｗに対応したＷ相補償電圧振幅Ｋｗを適時求められるため、実施形態２より更にモータ２２におけるＰＷＭに起因するトルクリプルを低減できる。
【０１４８】
また、ＰＷＭに起因するトルクリプルを実施形態２より更に低減できるので、更にモータ２２のヒアリングノイズを低減することができる。
また、ハードウェアの追加をせず、制御回路６０で実行されるソフトウェアを変更するだけでＰＷＭに起因するトルクリプルを低減できるので、モータ制御装置の価格上昇を抑えることができる。
【０１４９】
なお、変形例４におけるスイッチング周波数Ｆｓｗ＿ｕとスイッチング周波数Ｆｓｗ＿ｖとスイッチング周波数Ｆｓｗ＿ｗとは、スイッチング周波数算出部３１又はスイッチング周波数算出部５１を用いて求めてもよい。
【０１５０】
また、本発明は、実施形態１、変形例１、実施形態２、変形例２、変形例３、変形例４の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
【符号の説明】
【０１５１】
１、３０、５０、６０  制御回路
２、３  減算器
６、７、９、１０、１２、１３、３３、３４、３５  加算器
４、５  ＰＩ制御部
８  非干渉電圧補償部
１１、１４、３２、６２  高調波補償部
１５、１７  座標変換部
１６  ＰＷＭ制御部
１８  インバータ回路
１９、２０  電流センサ
２１  位置検出部
２２  モータ
３１、５１  スイッチング周波数算出部
６１  基本周波数算出部
２０１  次数算出部
２０２ｕ、４０２ｕ、７０２ｕ  Ｕ相補償電圧算出部
２０２ｖ、４０２ｖ、７０２ｖ  Ｖ相補償電圧算出部
２０２ｗ、４０２ｗ、７０２ｗ  Ｗ相補償電圧算出部
２０３  座標変換部
４０１ｕ、７０１ｕ  Ｕ相次数算出部
４０１ｖ、７０１ｖ  Ｖ相次数算出部
４０１ｗ、７０１ｗ  Ｗ相次数算出部
【図１】
2018126021.tif 000003
【図２】
2018126021.tif 000004
【図３】
2018126021.tif 000005
【図４】
2018126021.tif 000006
【図５】
2018126021.tif 000007
【図６】
2018126021.tif 000008
【図７】
2018126021.tif 000009