(57)【要約】【課題】非干渉制御を行いつつも、モータ温度によらず適切に初期値を設定してトルクの脈動を抑制することが可能なモータ制御装置を提供する。【解決手段】モータ制御装置は、電流ベクトル制御部と、電圧位相制御部２００と、電流ベクトル制御部による電流ベクトル制御モードと、電圧位相制御部２００による電圧位相制御モードとの間で制御モードを切り替える切替部と、を備え、電圧位相制御部２００は、切替部により電圧位相制御モードから電流ベクトル制御モードに切り替えられた場合の非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出する非干渉制御初期値演算部２８０及び補正値演算器２９０を有し、当該演算部２８０及び演算器２９０は、電圧位相補正値αｆｂ＊に応じた初期値補正値ωｒｅΔΦａを加味して非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出する。【選択図】図４
2015173547.tif 000002
【特許請求の範囲】
【請求項１】
トルク指令値に応じた電流指令値及び非干渉電圧指令値を算出し、算出した電流指令値に基づく電流ベクトル制御を行うと共に補干渉電圧指令値に基づく非干渉制御を行うことにより第１の電圧指令値を算出する電流ベクトル制御部と、
前記トルク指令値に基づいてモータへの電圧位相指令値及び電圧振幅指令値を生成し、モータ巻線へ供給される電流の検出値に基づいてモータトルクを推定し、推定したモータトルク及び前記トルク指令値から求められる電圧位相補正値と前記電圧位相指令値との偏差、並びに、前記電圧振幅指令値に基づいて、第２の電圧指令値を生成する電圧位相制御部と、
前記電流ベクトル制御部により算出された第１の電圧指令値に基づいてモータを制御する電流ベクトル制御モードと、前記電圧位相制御部により算出された第２の電圧指令値に基づいてモータを制御する電圧位相制御モードとの間で制御モードを切り替える切替部と、を備え、
前記電圧位相制御部は、前記切替部により前記電圧位相制御モードから前記電流ベクトル制御モードに切り替えられた場合の前記非干渉電圧指令値の初期値を算出する初期値算出部を有し、当該初期値算出部は、前記電圧位相補正値に応じた初期値補正値を加味して前記非干渉電圧指令値の初期値を算出する
ことを特徴とするモータ制御装置。
【請求項２】
前記初期値算出部は、さらに前記トルク指令値又はモータが基準温度であるときの基準温度電圧位相値に基づいて初期値補正値を算出する
ことを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記初期値算出部は、さらにバッテリ電圧に基づいて初期値補正値を算出する
ことを特徴とする請求項１又は請求項２のいずれかに記載のモータ制御装置。
【請求項４】
前記初期値算出部は、さらにモータ回転数に基づいて初期値補正値を算出する
ことを特徴とする請求項１又は請求項２のいずれかに記載のモータ制御装置。
【請求項５】
前記電圧位相制御部は、前記電圧位相補正値と前記電圧位相指令値との偏差及び前記電圧振幅指令値に基づいて第２の仮電圧指令値を生成し、当該第２の仮電圧指令値に対してローパスフィルタ処理及びハイパスフィルタ処理をこの順に施して第２の電圧指令値を生成する波形整形部をさらに備え、
前記初期値算出部は、当該第２の仮電圧指令値に対してローパスフィルタ処理が施された値、モータ巻線へ供給される電流の検出値とモータ巻線の抵抗値との乗算値、及び、前記電圧位相補正値に応じた初期値補正値に基づき、前記非干渉電圧指令値の初期値を算出する
ことを特徴とする請求項１から請求項４のいずれか１項に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置に関する。
【背景技術】
【０００２】
従来、電流ベクトル制御と電圧位相制御とを適宜切り替えてモータを駆動するモータ制御装置が提案されている。このようなモータ制御装置では、一般的に高回転数域において電圧位相制御を行い、低回転数域において電流ベクトル制御を行っている。
【０００３】
このようなモータ制御装置には、電圧位相制御（矩形波制御）中においてモータに供給される交流電流の位相（実電流位相φ１）の絶対値が、所定切替電流位相φ０の絶対値と一致した場合に、電圧位相制御から電流ベクトル制御に切り替えるものがある（特許文献１参照）。この所定切替電流位相φ０は、例えば現在のトルク指令を最も小さな電流値で実現する際に必要な電流位相、すなわちトルク／電流比が最も大きくなる位相が用いられる。よって、電圧位相制御から電流ベクトル制御への切替は、電流ベクトル制御にて目標とする状態と一致した場合に行われることとなる。
【０００４】
しかし、特許文献１に記載のモータ制御装置では、電圧位相制御から電流ベクトル制御への切替が電流によって行われ、しかも電流が温度に依存して変化するため、その設計が複雑化してしまう。そこで、設計の簡素化のために例えば固定の回転数に基づいて電圧位相制御から電流ベクトル制御へ切替を行おうとした場合、電流ベクトル制御にて目標とする状態との一致が保証できず、切替時の初期化を要してしまう。
【０００５】
そこで、電圧位相制御から電流ベクトル制御に切り替える場合に、切替直前の電圧位相制御のモータ印加電圧と切替直後の電流ベクトル制御のモータ印加電圧とが等しくなるように初期化を行うものも提案されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３６８３１３５号公報
【特許文献２】特開２００７−１４３２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、モータ制御には、非干渉制御というものが知られている。非干渉制御とは、ロータの回転に伴ってモータ内部で生じる速度起電力を補償するように電圧指令値を定める制御である。この非干渉制御を行うことによって、速度起電力による応答性や追従性の低下を効果的に抑制できると期待されている。
【０００８】
しかし、特許文献２に記載のモータ制御装置に非干渉制御を組み込んだうえで、電圧位相制御から電流ベクトル制御に切り替える場合、非干渉制御部について初期化を行うと共に、非干渉制御と電流フィードバック制御との初期値についてモータ温度変化を考慮して適切に配分する必要がある。よって、切替前後でモータ印加電圧が等しくなるように初期化したとしても配分が不適切な場合には外乱として作用してしまい、切替直後において過渡的にトルクに脈動が発生してしまう。
【０００９】
本発明はこのような従来の課題を解決するためになされたものであり、その目的とするところは、非干渉制御を行いつつも、モータ温度によらず適切に初期値を設定してトルク
の脈動を抑制することが可能なモータ制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、非干渉制御を行う電流ベクトル制御部と、推定したモータトルク及びトルク指令値から求められる電圧位相補正値と電圧位相指令値との偏差に基づいて、第２の電圧指令値を生成する電圧位相制御部とを備え、電圧位相制御モードから電流ベクトル制御モードに切り替えられた場合に、電圧位相補正値に応じた初期値補正値を加味して非干渉電圧指令値の初期値を算出する。
【発明の効果】
【００１１】
本発明によれば、非干渉電圧指令値の初期値を算出するにあたり、電圧位相補正値に応じた初期値補正値を加味するため、モータの温度変化によるトルク変動を補償する電圧位相補正値と相関がある初期値補正値を加味することとなり、モータの温度によらずに適切な非干渉電圧指令値の初期値が求められることとなる。従って、非干渉制御を行いつつも、モータ温度によらず適切に初期値を設定してトルクの脈動を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係るモータ制御装置を示す構成図である。
【図２】制御モードの決定方法を説明する図である。
【図３】図１に示した電流ベクトル制御部の詳細を示す図である。
【図４】図１に示した電圧位相制御部の詳細を示す図である。
【図５】干渉電圧補正値と電圧位相補正値との相関を示すグラフである。
【図６】図１に示した電流ベクトル制御部の詳細を示す図であって、初期値の設定の様子を示している。
【図７】本実施形態に係るモータ制御装置１の動作の概略を示すタイミングチャートであり、（ａ）はトルクを示し、（ｂ）はｄｑ軸電流を示し、（ｃ）は干渉電圧を示している。
【図８】モード切替時のトルク偏差を示すグラフであって、（ａ）は比較例を示し、（ｂ）は本実施形態を示している。
【図９】本実施形態に係るモータ制御装置の動作の詳細を示すフローチャートであり、電圧位相制御モードにおける動作を示している。
【図１０】本実施形態に係るモータ制御装置の動作の詳細を示すフローチャートであり、電流ベクトル制御モードにおける動作を示している。
【図１１】第２実施形態に係る電圧位相制御部の詳細を示す図である。
【図１２】第２実施形態に係るモータ制御装置において電圧センサの故障時におけるモード移行の様子を示す図である。
【図１３】本実施形態に係るモータ制御装置の動作の詳細を示すフローチャートであり、電圧位相制御モードにおける動作を示している。
【発明を実施するための形態】
【００１３】
以下、本発明の好適な実施形態を図面に基づいて説明する。図１は、本発明の実施形態に係るモータ制御装置を示す構成図である。図１に示すように、モータ制御装置１は、三相モータＭを駆動制御するものであって、電流ベクトル制御部１００と、電圧位相制御部２００と、制御切替判定部１３と、制御モード切替器（切替部）３とを備えている。
【００１４】
電流ベクトル制御部１００は、上位装置から送信されるトルク指令値Ｔ＊に基づいてｄｑ軸電圧指令値ｖｄｉ＊、ｖｑｉ＊を生成して出力するものである。この電流ベクトル制御部１００は、トルク指令値Ｔ＊、ＤＣ電圧（バッテリ電圧）Ｖｄｃ、及びモータ回転数Ｎを入力のうえ、予め実験又は解析により求められるｄｑ軸電流テーブルを参照し、ｄｑ軸電流指令値ｉｄ＊，ｉｑ＊を生成すると共に、モータＭのｄｑ軸電流（電流の検出値）
ｉｄ、ｉｑを入力して、これらの偏差Δｉｄ、Δｉｑがゼロとなるようなｄｑ軸電圧指令値（第１の電圧指令値）ｖｄｉ＊、ｖｑｉ＊を算出して出力するものである。
【００１５】
電圧位相制御部２００は、トルク指令値Ｔ＊に基づいてｄｑ軸電圧指令値ｖｄｖ＊、ｖｑｖ＊を生成して出力するものである。この電圧位相制御部２００は、トルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及びモータ回転数Ｎを入力のうえ、予め実験又は解析により求められるテーブルを参照するなどして、電圧振幅指令値（電圧ノルム指令値）Ｖａ＊と電圧位相指令値α＊とを生成し、ベクトル変換を経てｄｑ軸電圧指令値ｖｄｖ＊、ｖｑｖ＊を算出して出力するものである。
【００１６】
制御切替判定部１３は、回転数Ｎに基づいて電流ベクトル制御を実行するか電圧位相制御を実行するかを決定し、制御モードを表すフラグを出力するものである。図２は、制御モードの決定方法を説明する図である。図２に示すように、制御切替判定部１３は、電圧位相制御の実行中において回転数Ｎが閾値Ｎｌｏ以下となった場合に、電流ベクトル制御モード（電流ベクトル制御部１００による制御を行うモード）に移行すると決定する。一方、制御切替判定部１３は、電流ベクトル制御の実行中において回転数Ｎが閾値Ｎｈｉ以上となった場合に、電圧位相制御モード（電圧位相制御部２００による制御を行うモード）に移行すると決定する。
【００１７】
なお、図２に示す例では、閾値Ｎｈｉ＞閾値Ｎｌｏとなっており、閾値Ｎｈｉ，Ｎｌｏ間には制御モード移行のチャタリングを防止すべくヒステリシスが設けられているが、これに限らず、閾値Ｎｈｉ＝閾値Ｎｌｏとなっていてもよい。
【００１８】
制御モード切替器３は、制御切替判定部１３からのフラグに基づいて、電流ベクトル制御部１００の出力と電圧位相制御部２００の出力のいずれかを選択して最終電圧指令値ｖｄ＊、ｖｑ＊として出力するものである。
【００１９】
さらに、モータ制御装置１は、ｄｑ軸／ＵＶＷ相変換器４と、ＰＷＭ変換器５と、インバータ６と、電圧センサ７と、電流センサ８と、位置検出器１０と、回転数演算器１１と、ＵＶＷ相／ｄｑ軸変換器１２とを備えている。
【００２０】
ｄｑ軸／ＵＶＷ相変換器４は、以下の式（１）に基づき、入力した最終電圧指令値ｖｄ＊，ｖｑ＊を三相電圧指令値ｖｕ＊，ｖｖ＊，ｖｗ＊に変換するものである。ここで、θは位置検出器１０により検出された電気角検出値である。
【数１】
2015173547.tif 000003
【００２１】
ＰＷＭ変換器５は、三相電圧指令値ｖｕ＊、ｖｖ＊、ｖｗ＊及びＤＣ電圧Ｖｄｃを入力し、デッドタイム補償や電圧利用率向上処理といった公知の処理を行なうと共に、三相電圧指令値ｖｕ＊、ｖｖ＊、ｖｗ＊に対応したインバータ６のパワー素子駆動信号Ｄｕｕ＊、Ｄｕｌ＊、Ｄｖｕ＊、Ｄｖｌ＊、Ｄｗｕ＊、Ｄｗｌ＊を生成する。インバータ６にはバッテリＢａｔが接続されており、バッテリＢａｔからのＤＣ電圧Ｖｄｃを擬似交流電圧ｖ
ｕ，ｖｖ，ｖｗに変換して出力する。なお、ＤＣ電圧Ｖｄｃは、電圧センサ７により検出されている。
【００２２】
電流センサ８は、モータＭのＵ相及びＶ相の電流ｉｕ，ｉｖを検出するものである。回転数演算器１１は、位置検出器１０により検出された電気角検出値θから回転数Ｎを演算するものである。
【００２３】
ＵＶＷ相／ｄｑ軸変換器１２は、電流センサ８により検出されたＵ相及びＶ相の電流ｉｕ，ｉｖと位置検出器１０により検出された電気角検出値θとを入力し、以下の式（２）に基づき、ｄｑ軸電流ｉｄ、ｉｑに変換するものである。
【数２】
2015173547.tif 000004
【００２４】
図３は、図１に示した電流ベクトル制御部１００の詳細を示す図である。図３に示すように、電流ベクトル制御部１００は、電流指令値演算器１１０と、非干渉電圧演算器１２０と、減算器１３０と、ＰＩ制御器１４０と、ローパスフィルタ１５０と、加算器１６０とから構成されている。なお、図３ではｑ軸に相当する各値について図示を省略している。
【００２５】
電流指令値演算器１１０は、モータＭが基準温度（例えば２５℃）である場合において所望のトルクを得るためのｄｑ軸電流テーブルを格納したものである。ｄｑ軸電流テーブルは、予め実験又は解析により求められるものである。この電流指令値演算器１１０は、トルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及びモータ回転数Ｎを入力のうえｄｑ軸電流テーブルを参照し、ｄｑ軸電流指令値ｉｄ＊，ｉｑ＊を生成して出力する。
【００２６】
非干渉電圧演算器１２０は、予め作成したテーブルを格納しており、トルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及びモータ回転数Ｎを入力のうえ当該テーブルを参照しｄｑ軸非干渉電圧Ｖｄ_ｄｃｐｌ，Ｖｑ_ｄｃｐｌを生成して出力するものである。このテーブルについてもモータＭが基準温度（例えば２５℃）である場合において予め実験的に求められた値が格納されている。
【００２７】
減算器１３０は、ｄｑ軸電流指令値ｉｄ＊，ｉｑ＊とｄｑ軸電流ｉｄ、ｉｑとを入力し、これらの偏差Δｉｄ、Δｉｑを求めるものである。
【００２８】
ＰＩ制御器１４０は、偏差Δｉｄ、Δｉｑを入力して偏差Δｉｄ、Δｉｑを比例積分（ＰＩ）演算増幅することにより非干渉電圧を加味していない状態のｄｑ軸電圧指令値ｖｄｉ’，ｖｑｉ’を算出するものである。このとき、ＰＩ制御器１４０は、以下の式（３）からｄｑ軸電圧指令値ｖｄｉ’，ｖｑｉ’を算出する。
【数３】
2015173547.tif 000005
【００２９】
ローパスフィルタ１５０は、ｄｑ軸電流規範応答の時定数τｍを持ち、ｄｑ軸非干渉電圧Ｖｄ_ｄｃｐｌ，Ｖｑ_ｄｃｐｌを入力してｄｑ軸非干渉電圧指令値Ｖｄ_ｄｃｐｌ_ｆｌｔ，Ｖｑ_ｄｃｐｌ_ｆｌｔを出力するものである。
【００３０】
加算器１６０は、非干渉電圧を加味していない状態のｄｑ軸電圧指令値ｖｄｉ’，ｖｑｉ’とｄｑ軸非干渉電圧指令値Ｖｄ_ｄｃｐｌ_ｆｌｔ，Ｖｑ_ｄｃｐｌ_ｆｌｔとを加算して、ｄｑ軸電圧指令値ｖｄｉ＊、ｖｑｉ＊を出力するものである。すなわち、以下の式（４）によりｄｑ軸電圧指令値ｖｄｉ＊、ｖｑｉ＊を得て出力する。
【数４】
2015173547.tif 000006
【００３１】
図４は、図１に示した電圧位相制御部２００の詳細を示す図である。図４に示すように、電圧位相制御部２００は、電圧指令値演算部２１０と、トルク推定部２２０と、減算器２３０と、ＰＩ制御器２４０と、加算器２５０と、ベクトル変換部２６０と、波形整形部２７０とを備えている。
【００３２】
電圧指令値演算部２１０は、トルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及びモータ回転数Ｎに基づき電圧ノルム指令値Ｖａ＊と基準温度電圧位相値αｆｆ＊とをテーブル参照によって算出し出力する。テーブルには、モータＭが基準温度である場合において予め実験的に求めた所望のトルクを得る値が格納されている。
【００３３】
トルク推定部２２０は、ＵＶＷ相／ｄｑ軸変換器１２にて算出されたｄｑ軸電流ｉｄ，ｉｑを入力して、以下の式（５）からモータトルク推定値Ｔｃａｌを算出する。
【数５】
2015173547.tif 000007
なお、Φａは磁石磁束であり、Ｌｄ，Ｌｑはｄｑ軸インダクタンスであり、ｐはモータＭの極対数である。
【００３４】
減算器２３０は、モータトルク推定値Ｔｃａｌとトルク指令値Ｔ＊との差分ΔＴを算出するものである。
【００３５】
ＰＩ制御器２４０は、差分ΔＴを入力し、以下の式（６）から電圧位相補正値αｆｂ＊を算出するものである。電圧位相補正値αｆｂ＊はＰＩ増幅された値である。
【数６】
2015173547.tif 000008
なお、Ｋｐは比例ゲインであり、Ｋｉは積分ゲインである。
【００３６】
加算器２５０は、電圧指令値演算部２１０からの基準温度電圧位相値αｆｆ＊と、ＰＩ制御器２４０からの電圧位相補正値αｆｂ＊とを、以下の式（７）のように加算することにより補正し、電圧位相指令値α＊を算出するものである。
【数７】
2015173547.tif 000009
【００３７】
ここで、電圧指令値が一定のままではモータの温度変化によって電流が変化してしまうため、電流を一定に制御できる電流ベクトル制御に対して定常トルクに段差が発生してしまうことが知られている。トルク推定部２２０、減算器２３０、ＰＩ制御器２４０、及び加算器２５０はこれを解消するために上記のフィードバック制御を行っている。
【００３８】
ベクトル変換部２６０は、電圧指令値演算部２１０からの電圧ノルム指令値Ｖａ＊と加算器２５０からの電圧位相指令値α＊とを入力し、以下の式（８）からｄｑ軸成分（第２の仮電圧指令値）ｖｄ＊＊、ｖｑ＊＊を算出するものである。
【数８】
2015173547.tif 000010
【００３９】
波形整形部２７０は、ｄｑ軸成分ｖｄ＊＊，ｖｑ＊＊を入力し、これの応答特性を一次応答遅れとするローパスフィルタ２７１，２７２とハイパスフィルタ２７３，２７４とを備えている。なお、ハイパスフィルタ２７３，２７４は、図４において等価変換されており、減算器２７３ａ，２７４ａ、乗算器２７３ｂ，２７４ｂ、及び加算器２７３ｃ，２７４ｃから構成されている。
【００４０】
この波形整形部２７０は、ローパスフィルタ２７１，２７２にｄｑ軸成分ｖｄ＊＊，ｖｑ＊＊を入力し、ローパスフィルタ２７１，２７２を介して得られた値を減算器２７３ａ，２７４ａにてｄｑ軸成分ｖｄ＊＊、ｖｑ＊＊から減算する。減算により得られた値は利得ｋ１，ｋ２を有する乗算器２７３ｂ，２７４ｂ介して、加算器２７３ｃ，２７４ｃにてローパスフィルタ２７１，２７２の出力に加算される。これにより、ｄｑ軸電圧指令値（第２の電圧指令値）ｖｄｖ＊，ｖｑｖ＊が生成され出力される。
【００４１】
なお、波形整形部２７０については以下の式（９）により表すことができる。
【数９】
2015173547.tif 000011
【００４２】
ここで、モータＭの方程式は式（１０）で表され、ｄｑ軸成分ｖｄ＊＊，ｖｑ＊＊に対するｄｑ軸電流の応答特性を一次遅れとすると、波形整形部２７０のローパスフィルタ処理は式（１０）の右辺第１項と第３項とを、ハイパスフィルタ処理は同じく第２項の成分を生成していることを意味している。
【数１０】
2015173547.tif 000012
但し、
【数１１】
2015173547.tif 000013
Ｒは巻線抵抗であり、ωｒｅは電気角速度である。
【００４３】
さらに、電圧位相制御部２００は、非干渉制御初期値演算部２８０と、補正値演算器２９０とを備えている。非干渉制御初期値演算部２８０は、非干渉制御の初期値を演算するものであり、乗算器２８１，２８２と、減算器２８３，２８４とを備えている。
【００４４】
乗算器２８１，２８２は、ｄｑ軸電流ｉｄ，ｉｑを入力してモータＭの巻線抵抗Ｒを乗算するものである。減算器２８３，２８４は、波形整形部２７０のローパスフィルタ２７１，２７２の出力から乗算器２８１，２８２の出力を減算するものである。
【００４５】
非干渉制御はモータのｄｑ軸間の干渉電圧、すなわち誘起電圧を打ち消す制御であり、誘起電圧とは、原理的には式（１０）における右辺第３項に相当する。波形整形部２７０のローパスフィルタ直後の成分から巻線抵抗Ｒによる電圧降下分Ｒｉを算出して差し引けば、モータＭの温度によらず精度よく誘起電圧を求めることができる。
【００４６】
しかし、電流ベクトル制御部１００においては、モータ温度変化による誘起電圧の変化分は電流フィードバックによって対応することができるものの、モータ温度が基準温度からずれている場合は非干渉制御による干渉電圧値は真の誘起電圧に対して誤差をもって動作する。
【００４７】
そこで、本実施形態において非干渉制御初期値演算部２８０は、減算器２８４を加減算器として機能させ、波形整形部２７０のローパスフィルタ直後の成分から巻線抵抗Ｒによる電圧降下分Ｒｉを算出して差し引き、さらにｑ軸成分を干渉電圧補正値（初期値補正値）ωｒｅΔΦａで補正して非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出している。すなわち、非干渉制御初期値演算部２８０は、式（１１）に示す非干渉制御初期値（非干渉電圧指令値の初期値）ｖｄ０＊，ｖｑ０＊を算出している。
【数１２】
2015173547.tif 000014
【００４８】
また、補正値演算器２９０は、予め格納するテーブルを参照することによって干渉電圧補正値ωｒｅΔΦａを演算するものである。ここで、干渉電圧補正値ωｒｅΔΦａは、モータＭの温度変化によるトルク変動を補償する電圧位相補正値αｆｂ＊と相関がある。こ
の相関はトルクによっても異なる。
【００４９】
図５は、干渉電圧補正値ωｒｅΔΦａと電圧位相補正値αｆｂ＊との相関を示すグラフである。図５に示すような相関となっているため、補正値演算器２９０は、電圧位相補正値αｆｂ＊を入力すると共に、ＤＣ電圧Ｖｄｃに加えてトルク指令値Ｔ＊についても入力する。そして、補正値演算器２９０は、図５に示すテーブルを参照して干渉電圧補正値ωｒｅΔΦａを求めることとなる。
【００５０】
図６は、図１に示した電流ベクトル制御部１００の詳細を示す図であって、初期値の設定の様子を示している。なお、図６についても図３と同様にｑ軸に相当する各値について図示を省略している。通常時の電流ベクトル制御部１００は図３に示す構成で動作するが、電圧位相制御モードから電流ベクトル制御モードに切り替わった直後では図６に示す構成で動作する。
【００５１】
すなわち、図６に示すようにローパスフィルタ１５０の出力は非干渉制御初期値ｖｄ０＊，ｖｑ０＊で初期化され、ＰＩ制御器１４０の出力は切替直前のｄｑ軸電圧指令値ｖｄ＊，ｖｑ＊から非干渉制御初期値ｖｄ０＊，ｖｑ０＊を差し引いた値で初期化される。
【００５２】
このようにすることで切替直後の電流ベクトル制御部１００の出力ｖｄｉ＊，ｖｑｉ＊は切替直前の電圧指令値ｖｄｖ＊，ｖｑｖ＊を引き継ぐので、最終電圧指令値ｖｄ＊，ｖｑ＊の連続性が保たれる。これにより、非干渉制御初期値ｖｄ０＊，ｖｑ０＊が適切に設定されておらず制御系にとって外乱となってしまい、最終電圧指令値ｖｄ＊，ｖｑ＊の連続性が保たれていても、一時的にｄｑ軸電流が（ひいてはトルクが）振動的になってしまうことを防止することができる。
【００５３】
次に、本実施形態に係るモータ制御装置１の動作を説明する。まず、上記したように非干渉電圧演算器１２０により算出されるｄｑ軸非干渉電圧Ｖｄ_ｄｃｐｌ，Ｖｑ_ｄｃｐｌは、電流指令値ｉｄ＊、ｉｑ＊と基準温度におけるモータ特性に基づく値となるため、非干渉制御初期値ｖｄ０＊，ｖｑ０＊についても同じようにモード切替時点の電流指令値ｉｄ＊、ｉｑ＊と基準温度におけるモータ特性に基づく値であることが望ましい。本実施形態に係る非干渉制御初期値ｖｄ０＊，ｖｑ０＊は、これを実現する値であるため、図７及び図８に示す動作となる。
【００５４】
図７は、本実施形態に係るモータ制御装置１の動作の概略を示すタイミングチャートであり、（ａ）はトルクを示し、（ｂ）はｄｑ軸電流ｉｄ、ｉｑを示し、（ｃ）は干渉電圧を示している。なお、図７においては比較例の挙動を破線にて示し、本実施形態の挙動を一点鎖線にて示している。
【００５５】
図７に示すように、比較例ではモード切替後における非干渉制御初期値ｖｄ０＊，ｖｑ０＊が適切化されておらず、また、ＰＩ制御器１４０の初期値との配分についても考慮されていないため、結果として電流及びトルクに脈動が生じる（図７（ａ）及び図７（ｂ）参照）。すなわち、図７（ｃ）の比較例ではモータ温度変化時の干渉電圧（電流Ａ）に示すように、補正をしない非干渉電圧初期値が適用される結果、基準温度において電流Ａが流れたときの干渉電圧とかけ離れた値となってしまい、結果として電流及びトルクに脈動が生じる。
【００５６】
これに対して本実施形態に係るモータ制御装置１は、モータＭが基準温度であるときの電圧ノルム指令値Ｖａ＊と基準温度電圧位相値αｆｆ＊とに基づいてベクトル変換部２６０にて得られたｄｑ軸成分ｖｄ＊＊、ｖｑ＊＊からローパスフィルタ２７１，２７２を介して得られた値に加えて、電圧位相補正値αｆｂ＊に応じた干渉電圧補正値ωｒｅΔΦａ
を加味して非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出している。
【００５７】
これにより、図７（ｃ）のモータ温度変化時の干渉電圧（電流Ａ）にて示すように、補正をしない非干渉制御初期値ｖｄ０＊，ｖｑ０＊が補正されて補正後の非干渉電圧指令値ｖｄ０＊，ｖｑ０＊が適用されることとなり、図７（ａ）及び図７（ｂ）に示すように電流及びトルクの脈動を抑制することなる。
【００５８】
図８は、モード切替時のトルク偏差を示すグラフであって、（ａ）は比較例を示し、（ｂ）は本実施形態を示している。図８（ａ）に示すように、比較例では干渉電圧補正値ωｒｅΔΦａを加味していないことから、モータ高温時及び低温時においてトルク脈動が発生してしまう。これに対して、図８（ｂ）に示すように、本実施形態に係るモータ制御装置１では干渉電圧補正値ωｒｅΔΦａを加味した非干渉電圧指令値ｖｄ０＊，ｖｑ０＊が設定されることから、モータ高温時及び低温時においてもトルク脈動が抑えられることとなる。
【００５９】
図９は及び図１０は、本実施形態に係るモータ制御装置１の動作の詳細を示すフローチャートであり、図９は電圧位相制御モードにおける動作を示し、図１０は電流ベクトル制御モードにおける動作を示している。
【００６０】
まず、図９に示すように、ＵＶＷ相／ｄｑ軸変換器１２は、電流センサ８により検出されたＵ相及びＶ相の電流ｉｕ，ｉｖをｄｑ軸電流ｉｄ、ｉｑに変換する（Ｓ１）。次いで、回転数演算器１１は、位置検出器１０により検出された電気角検出値θから回転数Ｎを演算する（Ｓ２）。次いで、電圧位相制御部２００は、トルク指令値Ｔ＊、及びＤＣ電圧Ｖｄｃを取得する（Ｓ３）。
【００６１】
その後、制御切替判定部１３は、ステップＳ２において演算された回転数Ｎが閾値Ｎｌｏ以下であるかを判断する（Ｓ４）。回転数Ｎが閾値Ｎｌｏ以下であると判断した場合（Ｓ４：ＹＥＳ）、上記の如く電流ベクトル制御の初期値が設定され（Ｓ５）、電流ベクトル制御モードに移行し、図９に示す処理は終了する。すなわち、ステップＳ５では式（１１）に示す干渉電圧補正値ωｒｅΔΦａを加味した非干渉電圧指令値ｖｄ０＊，ｖｑ０＊で初期化され、且つ、ＰＩ制御器１４０の出力は切替直前のｄｑ軸電圧指令値ｖｄ＊，ｖｑ＊から非干渉制御初期値ｖｄ０＊，ｖｑ０＊を差し引いた値で初期化される。
【００６２】
一方、回転数Ｎが閾値Ｎｌｏ以下でないと判断した場合（Ｓ４：ＮＯ）、電圧位相制御モードが継続し、まず、電圧指令値演算部２１０は、トルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及びモータ回転数Ｎに基づき電圧ノルム指令値Ｖａ＊と基準温度電圧位相値αｆｆ＊とをテーブル参照によって算出する（Ｓ６）。
【００６３】
次に、トルク推定部２２０は、ステップＳ１にて算出されたｄｑ軸電流ｉｄ，ｉｑを入力して、モータトルク推定値Ｔｃａｌを算出する（Ｓ７）。その後、ＰＩ制御器２４０は、モータトルク推定値Ｔｃａｌとトルク指令値Ｔ＊との差分ΔＴを入力し、電圧位相補正値αｆｂ＊を算出する（Ｓ８）。
【００６４】
次いで、ベクトル変換部２６０が基準温度電圧位相値αｆｆ＊と電圧位相補正値αｆｂ＊との加算値、及び、電圧ノルム指令値Ｖａ＊から生成したｄｑ軸成分ｖｄ＊＊、ｖｑ＊＊について波形整形処理を施す（Ｓ９）。このステップＳ９の処理において波形整形部２７０は、ｄｑ軸成分ｖｄ＊＊，ｖｑ＊＊を入力し、ローパスフィルタ処理とハイパスフィルタ処理とをこの順で施し、ｄｑ軸電圧指令値ｖｄｖ＊，ｖｑｖ＊を生成する。
【００６５】
次に、補正値演算器２９０は、トルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及び電圧位相補正
値αｆｂ＊からテーブルを参照して干渉電圧補正値ωｒｅΔΦａを演算し、非干渉制御初期値演算部２８０は、干渉電圧補正値ωｒｅΔΦａを加味した非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出する（Ｓ１０）。なお、補正値演算器２９０は、トルク指令値Ｔ＊に代えて、これの代表特性となる、モータＭが基準温度であるときの基準温度電圧位相値αｆｆ＊を入力して、干渉電圧補正値ωｒｅΔΦａを算出するようにしてもよい。
【００６６】
その後、ｄｑ軸／ＵＶＷ相変換器４は、入力した最終電圧指令値ｖｄ＊，ｖｑ＊（すなわち、ステップＳ９にて得られるｄｑ軸電圧指令値ｖｄｖ＊，ｖｑｖ＊）を三相電圧指令値ｖｕ＊，ｖｖ＊，ｖｗ＊に変換する（Ｓ１１）。次に、ＰＷＭ変換器５は、三相電圧指令値ｖｕ＊、ｖｖ＊、ｖｗ＊に対応したインバータ６のパワー素子駆動信号Ｄｕｕ＊、Ｄｕｌ＊、Ｄｖｕ＊、Ｄｖｌ＊、Ｄｗｕ＊、Ｄｗｌ＊を生成し、インバータ６はバッテリＢａｔからのＤＣ電圧Ｖｄｃを擬似交流電圧ｖｕ，ｖｖ，ｖｗに変換して出力する（Ｓ１２）。これにより、モータＭが駆動され、図９に示す処理は終了する。なお、図９に示す処理は電流ベクトル制御モードに移行しない限り、モータ制御装置１の電源がオフとなるまで、繰り返し実行される。
【００６７】
また、電流ベクトル制御モードでは図１０に示す処理が実行される。まず、ＵＶＷ相／ｄｑ軸変換器１２は、電流センサ８により検出されたＵ相及びＶ相の電流ｉｕ，ｉｖをｄｑ軸電流ｉｄ、ｉｑに変換する（Ｓ２１）。次いで、回転数演算器１１は、位置検出器１０により検出された電気角検出値θから回転数Ｎを演算する（Ｓ２２）。次いで、電流ベクトル制御部１００は、トルク指令値Ｔ＊、及びＤＣ電圧Ｖｄｃを取得する（Ｓ２３）。
【００６８】
その後、制御切替判定部１３は、ステップＳ２において演算された回転数Ｎが閾値Ｎｈｉ以上であるかを判断する（Ｓ２４）。回転数Ｎが閾値Ｎｈｉ以上であると判断した場合（Ｓ２４：ＹＥＳ）、電圧位相制御の初期値が設定され（Ｓ２５）、電圧位相制御モードに移行し、図１０に示す処理は終了する。なお、ステップＳ２５では、公知の種々の手法により初期値が設定される。
【００６９】
一方、回転数Ｎが閾値Ｎｈｉ以上でないと判断した場合（Ｓ２４：ＮＯ）、電圧ベクトル制御モードが継続し、まず、電流指令値演算器１１０及び非干渉電圧演算器１２０がトルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及びモータ回転数Ｎを入力のうえそれぞれのテーブルを参照し、ｄｑ軸電流指令値ｉｄ＊，ｉｑ＊及びｄｑ軸非干渉電圧Ｖｄ_ｄｃｐｌ，Ｖｑ_ｄｃｐｌを生成する（Ｓ２６）。
【００７０】
次いで、減算器１３０は、ｄｑ軸電流指令値ｉｄ＊，ｉｑ＊とｄｑ軸電流ｉｄ、ｉｑとを入力し、これらの偏差Δｉｄ、Δｉｑを求め、ＰＩ制御器１４０は、偏差Δｉｄ、Δｉｑを比例積分（ＰＩ）演算増幅することにより非干渉電圧を加味していない状態のｄｑ軸電圧指令値ｖｄｉ’，ｖｑｉ’を算出する（Ｓ２７）。
【００７１】
次に、ローパスフィルタ１５０はｄｑ軸非干渉電圧Ｖｄ_ｄｃｐｌ，Ｖｑ_ｄｃｐｌを入力してｄｑ軸非干渉電圧指令値Ｖｄ_ｄｃｐｌ_ｆｌｔ，Ｖｑ_ｄｃｐｌ_ｆｌｔを出力し、加算器１６０は、非干渉電圧を加味していない状態のｄｑ軸電圧指令値ｖｄｉ’，ｖｑｉ’とｄｑ軸非干渉電圧指令値Ｖｄ_ｄｃｐｌ_ｆｌｔ，Ｖｑ_ｄｃｐｌ_ｆｌｔとを加算してｄｑ軸電圧指令値ｖｄｉ＊、ｖｑｉ＊を得る（Ｓ２８）。
【００７２】
その後、ｄｑ軸／ＵＶＷ相変換器４は、入力した最終電圧指令値ｖｄ＊，ｖｑ＊（すなわち、ステップＳ２８にて得られるｄｑ軸電圧指令値ｖｄｖ＊，ｖｑｖ＊）を三相電圧指令値ｖｕ＊，ｖｖ＊，ｖｗ＊に変換する（Ｓ２９）。次に、ＰＷＭ変換器５は、三相電圧指令値ｖｕ＊、ｖｖ＊、ｖｗ＊に対応したインバータ６のパワー素子駆動信号Ｄｕｕ＊、Ｄｕｌ＊、Ｄｖｕ＊、Ｄｖｌ＊、Ｄｗｕ＊、Ｄｗｌ＊を生成し、インバータ６はバッテリ
ＢａｔからのＤＣ電圧Ｖｄｃを擬似交流電圧ｖｕ，ｖｖ，ｖｗに変換して出力する（Ｓ３０）。これにより、モータＭが駆動され、図１０に示す処理は終了する。なお、図１０に示す処理は電圧位相制御モードに移行しない限り、モータ制御装置１の電源がオフとなるまで、繰り返し実行される。
【００７３】
このようにして、本実施形態に係るモータ制御装置１によれば、非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出するにあたり、電圧位相補正値αｆｂ＊に応じた干渉電圧補正値ωｒｅΔΦａを加味するため、モータＭの温度変化によるトルク変動を補償する電圧位相補正値αｆｂ＊と相関がある干渉電圧補正値ωｒｅΔΦａを加味することとなり、モータＭの温度によらずに適切な非干渉制御初期値ｖｄ０＊，ｖｑ０＊が求められることとなる。従って、非干渉制御を行いつつも、モータ温度によらず適切に初期値を設定してトルクの脈動を抑制することができる。
【００７４】
また、補正値演算器２９０は、さらにトルク指令値又はモータＭが基準温度であるときの基準温度電圧位相値αｆｆ＊に基づいて干渉電圧補正値ωｒｅΔΦａを算出するため、トルクによってモータ温度変化に対する感度が変化する電圧位相補正値αｆｂ＊に、更にトルク指令値Ｔ＊又はトルク指令値Ｔ＊の代表特性となる、モータが基準温度であるときの基準温度電圧位相値αｆｆ＊を考慮することで、一層精度良く干渉電圧補正値ωｒｅΔΦａを算出して、非干渉制御初期値ｖｄ０＊，ｖｑ０＊の精度を高めることができる。
【００７５】
また、補正値演算器２９０は、さらにバッテリ電圧Ｖｄｃに基づいて干渉電圧補正値ωｒｅΔΦａを算出するため、バッテリ電圧Ｖｄｃによってモータ温度変化に対する感度が変化する電圧位相補正値αｆｂ＊に、更にバッテリ電圧Ｖｄｃを考慮することで、一層精度良く干渉電圧補正値ωｒｅΔΦａを算出して、非干渉制御初期値ｖｄ０＊，ｖｑ０＊の精度を高めることができる。
【００７６】
また、補正値演算器２９０は、ｄｑ軸成分ｖｄ＊＊、ｖｑ＊＊に対してローパスフィルタ処理が施された値、モータＭのｄｑ軸電流ｉｄ、ｉｑとモータ巻線の抵抗値Ｒとの乗算値、及び、電圧位相補正値αｆｂ＊に応じた干渉電圧補正値ωｒｅΔΦａに基づき、非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出する。このため、非干渉制御と等価な周波数成分の電圧成分を抽出することとなり、より適切な非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出することができる。
【００７７】
次に、本発明の第２実施形態を説明する。第２実施形態に係るモータ制御装置２は、第１実施形態のものと同様であるが、構成及び動作が第１実施形態のものと一部異なっている。以下、第１実施形態との相違点のみを説明する。
【００７８】
図１１は、第２実施形態に係る電圧位相制御部２００の詳細を示す図である。図１１に示すように、第２実施形態に係る電圧位相制御部２００は、補正値演算器２９０がトルク指令値Ｔ＊、ＤＣ電圧Ｖｄｃ、及び電圧位相補正値αｆｂ＊に加えて、回転数Ｎについても入力するようになっている。また、補正値演算器２９０は、トルク指令値Ｔ＊、及び電圧位相補正値αｆｂ＊に加えて、回転数Ｎに基づいて干渉電圧補正値ωｒｅΔΦａを演算するためのテーブルを格納している。
【００７９】
ここで、電圧センサ７が故障した場合、電圧ノルム指令値Ｖａ＊通りの電圧をモータＭに印加できなくなる。このため、トルク応答性や制御系の安定性が損なわれる恐れがある。よって、本実施形態に係るモータ制御装置２は、電圧センサ７の故障を検知すると、故障検知前のＤＣ電圧Ｖｄｃを保持しつつ非常時回避機能として強制的に電圧位相制御モードから電流ベクトル制御モードに移行するようにしている。
【００８０】
図１２は、第２実施形態に係るモータ制御装置２において電圧センサ７の故障時におけるモード移行の様子を示す図である。電圧センサ７の故障時においては、図１０に示すように想定していない回転数Ｎで電流ベクトル制御モードに移行する。例えば、図１０に示すように、回転数Ｎが閾値Ｎｌｏはもとより閾値Ｎｈｉも超えるにも拘わらず、電圧位相制御モードから電流ベクトル制御モードに移行する。
【００８１】
このような場合、補正値演算器２９０は、第１実施形態にて示したテーブルに基づいて干渉電圧補正値ωｒｅΔΦａを演算することとなる。このように構成することで、通常制御時には想定していない回転数Ｎでの電流ベクトル制御モードへの切り替えに対してもトルク脈動を抑制することができる。
【００８２】
なお、電圧センサ７が故障したか否かについては例えば特開２００７−２８２２９９号公報に記載の手法など、種々の公知又は周知の手法によって判断できる。センサの故障判断機能は、便宜上以下の説明において補正値演算器２９０が備えるものとするが、特にこれに限らず、補正値演算器２９０以外の部位が備えるようになっていてもよいし、モータ制御装置２外の機器が備えるようになっていてもよい。
【００８３】
図１３は、本実施形態に係るモータ制御装置２の動作の詳細を示すフローチャートであり、電圧位相制御モードにおける動作を示している。
【００８４】
まず、図１３に示すステップＳ４１〜Ｓ４５の処理、及び、ステップＳ４７〜Ｓ５３の処理は、図９に示したステップＳ１〜Ｓ１２の処理と同じであるため、説明を省略する。
【００８５】
ステップＳ４４において回転数Ｎが閾値Ｎｌｏ以下でないと判断した場合（Ｓ４４：ＮＯ）、補正値演算器２９０は、電圧センサ７が故障したかを判断する（Ｓ４６）。電圧センサ７が故障していないと判断した場合（Ｓ４６：ＮＯ）、電圧位相制御モードが継続し、ステップＳ４７〜Ｓ５３の処理が実行される。
【００８６】
一方、電圧センサ７が故障したと判断した場合（Ｓ４６：ＹＥＳ）、処理はステップＳ４５に移行する。そして、図１３に示す処理は終了する。
【００８７】
このようにして、第２実施形態に係るモータ制御装置２によれば、第１実施形態と同様に、非干渉制御を行いつつも、モータ温度によらず適切に初期値を設定してトルクの脈動を抑制することができる。また、一層精度良く算出して、非干渉制御初期値ｖｄ０＊，ｖｑ０＊の精度を高めることができる。さらに、非干渉制御と等価な周波数成分の電圧成分を抽出することとなり、より適切な非干渉制御初期値ｖｄ０＊，ｖｑ０＊を算出することができる。
【００８８】
加えて、第２実施形態によれば、補正値演算器２９０は、さらにモータ回転数Ｎに基づいて干渉電圧補正値ωｒｅΔΦａを算出するため、モータ回転数Ｎによってモータ温度変化に対する感度が変化する電圧位相補正値αｆｂ＊に、更にモータ回転数Ｎを考慮することで、一層精度良く干渉電圧補正値ωｒｅΔΦａを算出して、非干渉制御初期値ｖｄ０＊，ｖｑ０＊の精度を高めることができる。しかも、算出にバッテリ電圧Ｖｄｃを用いずバッテリセンサ等の故障時においても非干渉制御初期値ｖｄ０＊，ｖｑ０＊の精度を高めることができる。
【００８９】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に限られるものでは無く、本発明の趣旨を逸脱しない範囲で、変更を加えてもよい。
【００９０】
例えば上記実施形態に係るモータ制御装置１，２は、図示した回路構成に限るものでは
なく、本発明の趣旨を逸脱しない範囲で公知の種々の回路構成とすることが可能である。
【符号の説明】
【００９１】
１，２                  ：モータ制御装置
３                      ：制御モード切替器（切替部）
４                      ：ｄｑ軸／ＵＶＷ相変換器
５                      ：ＰＷＭ変換器
６                      ：インバータ
７                      ：電圧センサ
８                      ：電流センサ
１０                    ：位置検出器
１１                    ：回転数演算器
１２                    ：ＵＶＷ相／ｄｑ軸変換器
１３                    ：制御切替判定部
１００                  ：電流ベクトル制御部
１１０                  ：電流指令値演算器
１２０                  ：非干渉電圧演算器
１３０                  ：減算器
１４０                  ：ＰＩ制御器
１５０                  ：ローパスフィルタ
１６０                  ：加算器
２００                  ：電圧位相制御部
２１０                  ：電圧指令値演算部
２２０                  ：トルク推定部
２３０                  ：減算器
２４０                  ：ＰＩ制御器
２５０                  ：加算器
２６０                  ：ベクトル変換部
２７０                  ：波形整形部
２７１，２７２          ：ローパスフィルタ
２７３，２７４          ：ハイパスフィルタ
２７３ａ，２７４ａ      ：減算器
２７３ｂ，２７４ｂ      ：乗算器
２７３ｃ，２７４ｃ      ：加算器
２８０                  ：非干渉制御初期値演算部（初期値算出部）
２８１，２８２          ：乗算器
２８３，２８４          ：減算器
２９０                  ：補正値演算器（初期値算出部）
Ｂａｔ                  ：バッテリ
Ｍ                      ：モータ
【図１】
2015173547.tif 000015
【図２】
2015173547.tif 000016
【図３】
2015173547.tif 000017
【図４】
2015173547.tif 000018
【図５】
2015173547.tif 000019
【図６】
2015173547.tif 000020
【図７】
2015173547.tif 000021
【図８】
2015173547.tif 000022
【図９】
2015173547.tif 000023
【図１０】
2015173547.tif 000024
【図１１】
2015173547.tif 000025
【図１２】
2015173547.tif 000026
【図１３】
2015173547.tif 000027