(57)【要約】【課題】電動機を一定速度で駆動させる外部装置を接続しなくても回転子の検出角度に含まれる検出誤差を精度良く補償する。【解決手段】推定部２２は、検出誤差θｃを含んだ角度検出値θｓとトルク検出値τｄとの関係を示す運動方程式に、角度検出値θｓとトルク検出値τｄとを入力し、逐次最小二乗法を適用することで、検出誤差θｃを推定する。補償部２３は、推定部２２により推定された検出誤差に基づいて、角度検出値θｓに含まれる検出誤差を補償する。【選択図】図１
2018023203.tif 000002
【特許請求の範囲】
【請求項１】
電動機の制御装置であって、
前記電動機の回転子の回転角度に応じて周期的に変動する検出誤差と前記回転角度の真値とを含む前記回転子の実回転角度を検出する角度検出部と、
前記電動機の実出力トルクを検出するトルク検出部と、
前記実回転角度を駆動制御に用いることで発生する前記実出力トルクの周期的な変動から前記検出誤差を推定する推定部と、
前記推定された検出誤差に基づいて、前記実回転角度に含まれる検出誤差を補償する補償部とを備える電動機の制御装置。
【請求項２】
前記推定部は、前記実回転角度と前記実出力トルクとの関係を示す運動方程式に、前記実回転角度と前記実出力トルクとを入力することで、前記検出誤差を推定する請求項１記載の電動機の制御装置。
【請求項３】
前記実回転角度は、前記真値を変数とする三角関数に誤差ゲインを乗じた誤差関数と、前記真値との和で表され、
前記推定部は、複数の前記実回転角度と複数の前記実出力トルクとを前記運動方程式に入力し、最小二乗法によって、前記誤差ゲインを決定することにより、前記検出誤差を推定する請求項２記載の電動機の制御装置。
【請求項４】
前記推定部は、前記最小二乗法によって決定された誤差ゲインで表された前記誤差関数から、複数の回転角度と複数の検出誤差とを対応付けた対応情報を生成し、
前記補償部は、前記実回転角度に対応する検出誤差を前記対応情報から決定し、決定した検出誤差を用いて前記実回転角度を補償する請求項３記載の電動機の制御装置。
【請求項５】
前記電動機に流れる電流を検出する電流検出部を更に備え、
前記トルク検出部は、前記検出された電流に基づいて、前記実出力トルクを算出する請求項１〜４のいずれかに記載の電動機の制御装置。
【請求項６】
前記角度検出部は、レゾルバで構成される請求項１〜５のいずれかに記載の電動機の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電動機の制御装置に関するものである。
【背景技術】
【０００２】
電動機の制御装置は、例えばレゾルバのような角度検出手段が検出した回転子の角度情報を用いて、速度制御やトルク制御といった電動機の駆動制御を行う。角度検出手段が検出する角度情報には、角度検出手段の特性に起因して検出誤差が含まれるのが一般的である。この検出誤差を含む角度情報を用いて、電動機の駆動制御が行われると、電動機の回転速度や出力トルクに脈動が発生する可能性がある。そのため、角度検出手段が検出した角度情報に含まれる検出誤差を適切に補正する必要がある。
【０００３】
上記の課題解決を目的とした従来技術として、特許文献１、２がある。特許文献１は、電動機の理想回転角度を設定し、その理想回転角度と実検出角度との差を求めることで、実検出角度に含まれる検出誤差を補償する技術を開示する。
【０００４】
特許文献２は、モータの磁極位置を検出する磁気位置センサーが検出した検出信号の検出誤差を補償する技術を開示する。具体的には、特許文献２は、無負荷状態において、モータの出力トルクを０にするｄｑ電流指令値を与えたときのｄｑ電流指令値の位相差β＊と、実際のｄｑ軸電流の位相差βとの位相ズレ量を求め、検出誤差を補償する技術を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−７２６８６号公報
【特許文献２】特開２００７−３１８８９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１では、検出誤差を精度良く求めるために、補償対象となる電動機を、一定の回転速度で正確に駆動する必要がある。補償対象となる電動機の実検出角には、上述のように検出誤差が含まれている。そのため、特許文献１は、正確に一定速度で電動機を駆動させることが困難である。
【０００７】
また、特許文献１において、別途、電動機を強制的に一定速度で駆動させるための外部装置を電動機に接続し、電動機を一定速度で駆動させることも考えられるが、この場合、装置のコストアップ及び装置の大型化を招くという問題が発生する。
【０００８】
特許文献２では、無負荷状態で求められた位相ズレ量を用いて磁気位置センサーの検出誤差が補償されているので、負荷がかかった状態において、検出信号の検出誤差を正確に補償できない可能性がある。
【０００９】
本発明は、電動機を一定速度で駆動させる外部装置を接続しなくても回転子の検出角度に含まれる検出誤差を精度良く補償する電動機の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る電動機の制御装置は、
前記電動機の回転子の回転角度に応じて周期的に変動する検出誤差と前記回転角度の真値とを含む前記回転子の実回転角度を検出する角度検出部と、
前記電動機の実出力トルクを検出するトルク検出部と、
前記実回転角度を駆動制御に用いることで発生する前記実出力トルクの周期的な変動から前記検出誤差を推定する推定部と、
前記推定された検出誤差に基づいて、前記実回転角度に含まれる検出誤差を補償する。
【００１１】
本態様によれば、検出誤差を含んだ実回転角度を駆動制御に用いることで発生する実出力トルクの周期的な変動に基づいて検出誤差が推定されている。周期的に変動する検出誤差を含んだ実回転角度を電動機の駆動制御に用いた場合、実出力トルクには、検出誤差と同じ周期で、検出誤差の大きさに応じた脈動が発生する。そのため、実回転角度と実出力トルクが同時に分かれば、実回転角度に含まれる検出誤差を正確に推定できる。したがって、本態様は、実回転角度に含まれる検出誤差を正確に推定できる。
【００１２】
また、本態様は、実回転角度と実出力トルクとに着目しているので、電動機の回転速度を一定にする必要はない。よって、本態様は、回転速度を一定に保持するための外部装置を用いることなく、検出誤差を推定できる。したがって、本態様は、コストの増大及び装置規模の増大を抑制できる。
【００１３】
上記態様において、前記推定部は、前記実回転角度と前記実出力トルクとの関係を示す運動方程式に、前記実回転角度と前記実出力トルクとを入力することで、前記検出誤差を推定してもよい。
【００１４】
本態様によれば、実回転角度と実出力トルクとの関係を示す運動方程式を用いて検出誤差が推定されているので、検出誤差を精度良く推定できる。
【００１５】
上記態様において、前記実回転角度は、前記真値を変数とする三角関数に誤差ゲインを乗じた誤差関数と、前記真値との和で表され、
前記推定部は、複数の前記実回転角度と複数の前記実出力トルクとを前記運動方程式に入力し、最小二乗法によって、前記誤差ゲインを決定することにより、前記検出誤差を推定してもよい。
【００１６】
検出誤差は、回転角度に応じて周期的に変動するので、回転角度の真値を変数とする三角関数に誤差ゲインを乗じた誤差関数で表すことができる。本態様は、この誤差関数と真値との和で実回転角度が表された運動方程式を用いている。そして、本態様は、この運動方程式に複数の実回転角度と複数の実出力トルクとを入力し、最小二乗法によって、誤差ゲインを決定することで、検出誤差を推定する。そのため、検出誤差を精度良く推定できる。なお、メモリ量の削減の観点から、本態様は、逐次最小二乗法を用いても良い。
【００１７】
上記態様において、前記推定部は、前記最小二乗法によって決定された誤差ゲインで表された前記誤差関数から、複数の回転角度と複数の検出誤差とを対応付けた対応情報を生成し、
前記補償部は、前記実回転角度に対応する検出誤差を前記対応情報から決定し、決定した検出誤差を用いて前記実回転角度を補償してもよい。
【００１８】
本態様によれば、最小二乗法によって決定された誤差ゲインで表された誤差関数から、複数の回転角度と複数の検出誤差とを対応付けた対応情報が事前に生成される。そして、本態様によれば、実回転角度に対応する検出誤差を対応情報から決定し、決定した検出誤差を用いて実回転角度を補償する。そのため、実回転角度に応じた検出誤差を速やかに決定できる。
【００１９】
上記態様において、前記電動機に流れる電流を検出する電流検出部を更に備え、
前記トルク検出部は、前記検出された電流に基づいて、前記実出力トルクを算出してもよい。
【００２０】
本態様によれば、電流検出部により検出された電流に基づいて、実出力トルクが算出されているので、比較的、装置規模の大きなトルク検出装置を用いることなく、実出力トルクを検出できる。そのため、本態様は、装置規模の増大を更に抑制できる。
【００２１】
上記態様において、前記角度検出部は、レゾルバで構成されてもよい。
【００２２】
レゾルバは、回転子の回転角度に応じて検出誤差が周期的に変動するので、上記の態様を用いることで、検出誤差を正確に推定できる。
【発明の効果】
【００２３】
本発明によれば、外部装置を接続しなくても回転子の検出角度に含まれる検出誤差を精度良く補償することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態１に係る電動機の制御装置の構成を示すブロック図である。
【図２】推定部における処理の流れを示すブロック線図である。
【図３】対応情報の説明図である。
【図４】本発明の実施の形態２に係る制御装置の構成を示すブロック図である。
【図５】トルク推定部に注目したブロック図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態に係る電動機（以下、「モータ」と記述する。）の制御装置について図面を参照しながら説明する。永久磁石同期電動機をはじめとした３相ブラシレスモータの速度制御は、近年、ベクトル制御が用いられることが一般的である。したがって、本実施の形態においても、モータの速度制御として、ベクトル制御を採用する。
【００２６】
（実施の形態１）
図１は、本発明の実施の形態１に係る電動機の制御装置１の構成を示すブロック図である。制御装置１は、モータＭを制御する制御装置である。
【００２７】
制御装置１は、減算器１１、速度制御部１２、電流指令生成部１３、減算器１４ａ，１４ｂ、電流制御部１５、ｄｑ／ｕｖｗ変換部１６、インバータ１７、トルク検出部１９、角度検出部２０、ｕｖｗ／ｄｑ変換部２１、推定部２２、補償部２３、加算器２４、乗算器２５、及び速度算出部２６を備える。
【００２８】
図１において、減算器１１、速度制御部１２、電流指令生成部１３、減算器１４ａ，１４ｂ、電流制御部１５、ｄｑ／ｕｖｗ変換部１６、ｕｖｗ／ｄｑ変換部２１、推定部２２、補償部２３、加算器２４、乗算器２５、及び速度算出部２６は、例えば、ＣＰＵ、ＲＯＭ等を備えるコンピュータにより構成される。
【００２９】
減算器１１は、目標速度から速度検出値を減算し、速度偏差を算出する。目標速度は、モータＭが適用される装置に応じて異なる。例えば、モータＭが建設機械のウィンチドラムや上部旋回体や下部走行体の駆動に用いられるのであれば、操作レバーの操作量に応じた値に目標速度は設定される。また、モータＭが電気自動車やハイブリッド自動車の走行モータに適用されるのであれば、アクセルの操作量に応じた値に目標速度は設定される。
【００３０】
速度制御部１２は、減算器１１から速度偏差が入力され、この速度偏差を０にするためのトルク指令値を算出する。ここで、速度制御部１２は、例えばＰＩＤ（比例・積分・微分）制御やＰＩ（比例・積分）制御を用いてトルク指令値を算出すればよい。
【００３１】
電流指令生成部１３は、トルク指令値に基づいて、ｄ軸の目標電流値Ｉｄ＿ｒｅｆとｑ軸の目標電流値Ｉｑ＿ｒｅｆとを算出する。ここで、電流指令生成部１３は、例えば、トルク指令値に対して予め定められた値を目標電流値Ｉｄ＿ｒｅｆ，Ｉｑ＿ｒｅｆとして生成すればよい。
【００３２】
減算器１４ａは、目標電流値Ｉｄ＿ｒｅｆからｄ軸の実電流値Ｉｄを減算し、ｄ軸の電流偏差を算出する。減算器１４ｂは、目標電流値Ｉｑ＿ｒｅｆからｑ軸の実電流値Ｉｑを減算し、ｑ軸の電流偏差を算出する。
【００３３】
電流制御部１５は、減算器１４ａからのｄ軸の電流偏差を０にするためのｄ軸の電圧指令値ｖｄを算出すると共に、減算器１４ｂからのｑ軸の電流偏差を０にするためのｑ軸の電圧指令値ｖｑを算出する。電圧指令値ｖｄはモータＭに出力する電圧の界磁成分を制御する指令値であり、電圧指令値ｖｑはモータＭに出力する電圧のトルク成分を制御するための指令値である。ここで、電流制御部１５は、例えば、ＰＩＤ制御、ＰＩ制御を用いて電圧指令値ｖｄ，ｖｑを算出すればよい。
【００３４】
ｄｑ／ｕｖｗ変換部１６は、電圧指令値ｖｄ，ｖｑを、乗算器２５から出力された電気角αを用いて座標変換し、ＵＶＷの３相からなるＰＷＭ信号を生成し、インバータ１７に出力する。
【００３５】
インバータ１７は、例えば、３相のインバータで構成され、３相のＰＷＭ信号からＵＶＷの３相の交流電力を生成し、モータＭに出力する。
【００３６】
モータＭは、例えば、３相の電動機で構成され、インバータ１７から出力されるＵＶＷの３相の交流電力に従って駆動される。例えば、制御装置１がクレーンやショベルカーといった建設機械に適用されるのであれば、モータＭは、上部旋回体を旋回させたり、ウィンチドラムを回転させたりする。また、制御装置１が電気自動車に適用されるのであれば、電気自動車を走行させる。
【００３７】
トルク検出部１９は、例えば、モータＭの回転軸に加わるトルクを直接的に検出する計測装置で構成されている。そして、トルク検出部１９は、検出したトルクをトルク検出値として推定部２２に出力する。
【００３８】
角度検出部２０は、例えば、レゾルバで構成され、モータＭの回転子の回転角度を検出し、検出した回転角度を角度検出値θｓとして出力する。ここで、角度検出値θｓとしては、例えば、基準回転位置に対する回転子の回転角度が採用できる。なお、速度検出値は、例えば、回転子が所定の第１方向（例えば、右回りの方向）に回転している場合、プラスの値を持ち、回転子が第１方向とは反対の第２方向（例えば、左回りの方向）に回転した場合は、マイナスの値を持つようにして、プラスマイナスの符号を用いて回転方向を区別してもよい。
【００３９】
ｕｖｗ／ｄｑ変換部２１は、電流センサ３１，３２，３３で検出された交流電流Ｉｕ，Ｉｖ，Ｉｗを、乗算器２５で算出された電気角αを用いて座標変換し、ｄ，ｑ軸の実電流値Ｉｄ，Ｉｑを算出し、減算器１４ａ，１４ｂに出力する。
【００４０】
乗算器２５は、角度検出値θｓとモータＭの極対数とを用いてモータＭの電気角αを算出する。詳細には、乗算器２５は、角度検出値θｓに１／極対数を乗じることで、電気角αを算出すればよい。
【００４１】
速度算出部２６は、角度検出部２０で検出された角度検出値θｓを微分し、モータＭの回転速度を算出し、速度検出値として減算器１１及び乗算器２５に出力する。
【００４２】
電流センサ３１，３２，３３は、それぞれ、例えば、ホール素子を利用したホール式の電流センサで構成され、Ｕ，Ｖ，Ｗ相の交流電流Ｉｕ，Ｉｖ，Ｉｗを検出する。
【００４３】
以上が制御装置１の基本構成であり、速度検出値が目標速度に追従するように、モータＭがフィードバック制御される。
【００４４】
推定部２２は、検出誤差を含む角度検出値θｓ（実回転角度）をモータＭの駆動制御に用いることで発生するトルク検出値τｄ（実出力トルク）の周期的な変動から検出誤差を推定する。
【００４５】
補償部２３は、推定部２２により推定された検出誤差に基づいて、角度検出値θｓに含まれる検出誤差を補償する。
【００４６】
実施の形態１において、制御装置１の動作は、検出誤差を推定する推定フェーズと、推定フェーズで推定された検出誤差を用いて、角度検出値θｓに含まれる検出誤差を除去する補償フェーズとに分けられる。推定部２２は、推定フェーズで動作し、補償部２３は、補償フェーズで動作する。
【００４７】
＜推定フェーズ＞
推定フェーズでは、推定部２２は、角度検出値θｓとトルク検出値τｄとの関係を示す運動方程式に、角度検出値θｓとトルク検出値τｄを入力し、逐次最小二乗法を適用することで、検出誤差を推定する。
【００４８】
式（１）は、推定フェーズで用いられる運動方程式である。
【００４９】
【数１】
2018023203.tif 000003
【００５０】
θｓ：検出誤差を含む角度検出値
θ：角度検出値の真値
τｄ：トルク検出値
Ｊ：モータＭの慣性モーメント
Ｎ：レゾルバの倍角数
Δｃ：検出誤差のコサイン成分の誤差ゲイン
Δｓ：検出誤差のサイン成分の誤差ゲイン
ここで、角度検出値θｓは、下記の式（２）で表される。
【００５１】
【数２】
2018023203.tif 000004
【００５２】
式（２）において、右辺第１項は真値θを示し、右辺の第２項と第３項とは、検出誤差を示す。
【００５３】
トルク検出部１９は、レゾルバで構成されている。レゾルバで検出される検出誤差は、モータＭの回転角度に応じて周期的に変動する特性を持つ。詳細には、検出誤差は、レゾルバの倍角数をＮ（Ｎは自然数）とした場合、ｃｏｓ（Ｎθ）とｓｉｎ（Ｎθ）とを一次結合した数式で表される。したがって、検出誤差は、式（２）の第２項と第３項とに示すような誤差関数（Δｃ・ｃｏｓ（Ｎθ）＋Δｓ・ｓｉｎ（Ｎθ））で表すことができる。この式から分かるように、誤差関数は、モータＭが１／Ｎ回転する間に３６０度変化する特性を持つ。なお、倍角数Ｎは、レゾルバの仕様から事前に設定された値が採用できる。
【００５４】
一方、角度検出値θｓとトルク検出値τｄとは、回転系の運動方程式：Ｊθｓ’’＝τｄ＋Δτで表すことができる。但し、ΔτはＪθｓ’’で示す角度検出値θｓに基づくモータＭの出力トルクとトルク検出値τｄとのトルク差である。なお、θｓ’’に検出誤差が含まれていないならば、Δτ＝０となる。数式内に示す「・」は記載の制約上、本文中では、「’」で表している。「・」は１階微分を示し、「・・」は２階微分を示す。
【００５５】
この回転系の運動方程式に式（２）を代入してトルク差Δτを表すと、式（１）が得られる。
【００５６】
式（１）を、誤差ゲインΔｃ，Δｓについて整理すると、式（３）が得られる。
【００５７】
【数３】
2018023203.tif 000005
【００５８】
推定フェーズでは、同時に検出された角度検出値θｓとトルク検出値τｄとを式（３）の左辺に入力し、逐次最小二乗法を適用し、誤差ゲインΔｃ，Δｓを推定する。
【００５９】
逐次最小二乗法では、式（４）に示すように、変数ｚｎと、変数ｙｎと、変数Ｒｎとを用いて、推定パラメータＰｎ（ハット）を繰り返し計算することで、誤差ゲインΔｃ，Δｓを決定する。なお、数式中に示す「∧」は推定値であることを示す記号であり、本文中では記載の制約上、（ハット）と表す。
【００６０】
【数４】
2018023203.tif 000006
【００６１】
ここで、推定パラメータＰｎ（ハット）は、式（５）で表され、変数ｚｎ、真値θに対応する変数θｎ、変数ｙｎ、変数Ｒｎは、それぞれ、式（６），（７），（８），（９）で表される。
【００６２】
【数５】
2018023203.tif 000007
【００６３】
添え字のｎは、ｎ番目に算出されたデータであることを示すインデックスであり、１以上の整数である。
【００６４】
式（５）に示すように、推定パラメータＰｎ（ハット）は、推定対象となる誤差ゲインΔｃｎ，Δｓｎを示す２行１列の行列である。
【００６５】
式（６）に示すように、変数ｚｎは、状態変数と称される変数であり、２行１列の行列で表される。式（６）において、１行目は、式（３）において、右辺第１項のΔｃに乗じられた括弧内の数式を示し、２行目は、式（３）において、右辺第２項のΔｓに乗じられた括弧内の数式を示す。但し、式（６）では、式（３）のθは、θ→θｎ（ハット）で表されている。
【００６６】
式（７）に示すように、変数θｎ（ハット）は、式（２）において、右辺第１項のθをθ→θｎ（ハット）と表し、右辺第２項及び第３項のｃｏｓ及びｓｉｎの括弧内のθをθ→θｎ−１（ハット）と表し、θｓ→θｓ（ｋ＋ｎ）と表し、Δｃ→Δｃｎ−１、Δｓ→Δｓｎ−１と表したものである。逐次最小二乗法では、ｎ個のデータ群を１セットとして推定パラメータＰｎ（ハット）を算出する処理を、複数サイクル繰り返すことにより、推定パラメータＰｎを推定する。したがって、角度検出値θｓ（ｋ＋ｎ）のｋは、サイクル数を特定するためのインデックスを表す。例えば、角度検出値θｓ（ｋ＋１）は、ｋサイクル目の１番目の角度検出値を表す。この場合、角度検出値θｓ（ｋ）の値として、ｋ−１サイクル目までに得られたθｓを用いればよいので、ｋ−１サイクル目までの推定に用いられた（ｋ−１）・ｎ個の角度検出値θｓの値をメモリに保存しておく必要がない。よって、逐次最小二乗法はメモリ消費量を抑制できる。このことは、トルク検出値τｄ（ｋ＋ｎ）も同じである。
【００６７】
式（８）に示すように変数ｙｎは、式（３）の左辺のθｓ’’をθｓ’’→θｓ’’（ｋ＋ｎ）と表し、式（３）の左辺のτｄをτｄ→τｄ（ｋ＋ｎ）で表したものである。
【００６８】
式（９）に示すように変数Ｒｎは、変数Ｒｎ−１と、変数ｚｎと、を用いて表される行列式である。式（９）において、Ｉは単位行列を示し、Ｔは転置行列を示す。
【００６９】
図２は、推定部２２における処理の流れを示すブロック線図である。まず、推定部２２は、角度検出値θｓ（ｋ＋ｎ）及びトルク検出値τｄ（ｋ＋ｎ）が入力されると、式（７）を用いて変数θｎ（ハット）を算出する（ブロック２１６）。ここで、角度検出値θｓ（ｋ＋ｎ）とトルク検出値τｄ（ｋ＋ｎ）とはサンプリング周期Ｔｓで順次に入力される。
【００７０】
なお、１回目の処理では、式（７）の右辺のΔｃｎ−１，Δｓｎ−１、θｎ−１（ハット）が未知である。そこで、推定部２２は、Δｃｎ−１，Δｓｎ−１，θｎ（ハット）に事前に設定された初期値（Δｃ０，Δｓ０，θ０（ハット））を入力すればよい。事前に設定された初期値（Δｃ０，Δｓ０，θ０（ハット））としては、推定される値を見越して、その値に近い値を採用すればよい。また、２回目以降のブロック２１６では、推定部２２は、ブロック２１５で算出された推定パラメータＰｎ（ハット）＝［Δｃｎ  Δｓｎ］を［Δｃｎ−１  Δｓｎ−１］として、式（７）に入力すればよい。
【００７１】
次に、推定部２２は、ブロック２１６で算出されたθｎ（ハット）を１階微分してθｎ’（ハット）を算出し（ブロック２１７）、θｎ（ハット）を２階微分してθｎ’’（ハット）を算出し（ブロック２１８）、θｎ（ハット）に１／ｚを乗じ、θｎ−１（ハット）を算出する（ブロック２１９）。
【００７２】
なお、１回目の式（７）の処理では、θｎ−１（ハット）として初期値が用いられるので、ブロック２１９の処理は省略される。ブロック２１７における２（ｚ−１）／Ｔｓ（ｚ＋１）は、１階微分を示す離散伝達関数である。ブロック２１８における２２（ｚ−１）２／Ｔｓ２（ｚ＋１）２は、２階微分の離散伝達関数である。Ｔｓはサンプリング周期を表す。
【００７３】
次に、推定部２２は、θｎ’’（ハット）と、θｎ’（ハット）と、θｎ（ハット）とを式（６）に入力し、変数ｚｎを算出する（ブロック２１４）。
【００７４】
上記の処理と並行して、推定部２２は、式（８）を用いて変数ｙｎを算出する処理を行う（ブロック２１３）。
【００７５】
ブロック２１３の前処理として、推定部２２は、トルク検出値τｄ（ｋ＋ｎ）に「１／Ｊ」を乗じてτｄ（ｋ＋ｎ）／Ｊを算出する処理（ブロック２１１）と、角度検出値θｓ（ｋ＋ｎ）を２階微分し、θｓ’’（ｋ＋ｎ）を算出する処理（ブロック２１２）とを行う。
【００７６】
次に、推定部２２は、ブロック２１４で得られた変数ｚｎと、前回求めた変数Ｒｎ−１とを式（９）に入力し、変数Ｒｎを算出する（ブロック２１５）。なお、１回目の処理では、式（９）のＲｎ−１が未知である。そこで、推定部２２は、Ｒｎ−１に事前に設定された初期値（Ｒ０）を入力すればよい。事前に設定された初期値（Ｒ０）としては、推定される値を見越して、その値に近い値を採用すればよい。
【００７７】
次に、推定部２２は、ブロック２１３で算出された変数ｙｎとブロック２１４で算出された変数ｚｎと、前回求めた推定パラメータＰｎ−１（ハット）とを式（４）に入力し、推定パラメータＰｎ（ハット）＝［Δｃｎ  Δｓｎ］を算出する（ブロック２１５）。なお、１回目の処理では、推定パラメータＰｎ−１が未知である。そこで、推定部２２は、推定パラメータＰｎ−１に事前に設定された初期値（Ｐ０＝［Δｃ０  Δｓ０］）を入力すればよい。
【００７８】
上記の逐次最小二乗法の処理を繰り返すことで、最初、適当に初期値を与えた誤差ゲインΔｃｎ，Δｓｎが徐々に真値に収束していく。なお、逐次最小二乗法の処理を繰り返す回数としては、誤差ゲインΔｃｎ，Δｓｎが収束することが見込まれる回数が採用されればよい。
【００７９】
誤差ゲインΔｃｎ，Δｓｎが推定されると、推定部２２は、この誤差ゲインΔｃｎ，Δｓｎを式（２）に入力し、θ−θｓ＝Δｃ・ｃｏｓ（Ｎθ）＋Δｓ・ｓｉｎ（Ｎθ））と変形することで検出誤差θｃ（＝θ−θｓ）を求める。そして、推定部２２は、確定した検出誤差θｃと角度検出値θｓとの対応関係を示す誤差テーブル３０２（対応情報）を生成する。
【００８０】
図３は、誤差テーブル３０２の説明図である。図３において、グラフ３０１は、検出誤差θｃを示す誤差関数のグラフであり、縦軸はθｃを示し、横軸はθｓを示している。グラフ３０１において、検出誤差θｃは、θｃ＝０を中心に、角度検出値θｓに応じて周期的に一定の振幅で変動していることが分かる。
【００８１】
誤差テーブル３０２は、（θｓ１，θｃ１）、（θｓ２，θｃ２）、・・・というように、複数の角度検出値θｓと、検出誤差θｃとを対応付けて記憶する。推定部２２は、複数の代表的な角度検出値θｓを検出誤差θｃを示すグラフ３０１に示す誤差関数に入力することで、複数の代表的な検出誤差θｃを算出し、誤差テーブル３０２を生成すればよい。推定部２２は、誤差テーブル３０２を生成すると、推定フェーズを終了する。
【００８２】
＜補償フェーズ＞
図１に参照を戻す。推定フェーズが終了すると、制御装置１は、推定フェーズで得られた誤差テーブル３０２を用いて補償フェーズを実行する。
【００８３】
補償フェーズでは、まず、補償部２３に角度検出値θｓがサンプリング周期Ｔｓで入力される。なお、補償フェーズでは、トルク検出値τｄは用いられないので、トルク検出部１９は出力トルクを検出しない。
【００８４】
補償部２３は、入力された角度検出値θｓに対応する検出誤差θｃを推定部２２が生成した誤差テーブル３０２を参照して決定し、決定した検出誤差θｃにマイナス１を乗じ、誤差補償値（−θｃ）を算出する。なお、誤差テーブル３０２に入力された角度検出値θｓが登録されていなければ、補償部２３は、誤差テーブル３０２を線形補完することにより、入力された角度検出値θｓに対応する検出誤差θｃを決定すればよい。
【００８５】
次に、加算器２４は、補償部２３から出力された誤差補償値（−θｃ）を角度検出値θｓに加算することで、真値θ（＝θｓ−θｃ）を算出する。速度算出部２６は、算出された真値θを用いて速度検出値を算出する。以後、制御装置１は、真値θを用いてモータＭを速度制御する。
【００８６】
このように、実施の形態１の制御装置１によれば、角度検出値θｓとトルク検出値τｄとの関係を示す運動方程式（式（１））に角度検出値θｓとトルク検出値τｄとを入力することで、検出誤差θｃが推定される。ここで、周期的に変動する検出誤差θｃを含んだ角度検出値θｓをモータＭの駆動制御に用いた場合、トルク検出値τｄには、検出誤差θｃと同じ周期で、検出誤差θｃの大きさに応じた脈動が発生する。そのため、角度検出値θｓとトルク検出値τｄとが同時に分かれば、角度検出値θｓに含まれる検出誤差θｃを正確に推定できる。また、レゾルバの検出誤差θｃは、図３のグラフ３０１に示すように、角度検出値θｓに応じて周期的に変動する三角関数で表される。よって、本態様は、式（１）の運動方程式に角度検出値θｓとトルク検出値τｄとを入力し、逐次最小二乗法を適用して、誤差ゲインΔｃ，Δｓを推定することが可能となり、検出誤差θｃを正確に推定できる。
【００８７】
（実施の形態２）
図４は、本発明の実施の形態２に係る制御装置１Ａの構成を示すブロック図である。実施の形態１の制御装置１Ａは、トルク検出部１９に代えて、トルク推定部２７を備えたことを特徴とする。なお、実施の形態２において実施の形態１と同一の構成要素には同一の符号を付し、説明を省く。
【００８８】
トルク推定部２７は、ｕｖｗ／ｄｑ変換部２１により算出された実電流値Ｉｄ，Ｉｑをを用いて、トルク検出値τｄを推定する。
【００８９】
図５は、トルク推定部２７に注目したブロック図である。ここでは、モータＭがブラシレスモータの一例である永久磁石式同期電動機であるものとする。この場合、トルク推定部２７は、図５に示すように、式（１０）を用いてトルク検出値τｄを推定できる。
【００９０】
τｄ＝Ｐａ（ψａＩｑ＋１／２（Ｌｑ−Ｌｄ）ＩｄＩｑ）      （１０）
Ｐａ：モータＭの極対数
ψａ：モータＭの鎖交磁束
Ｌｄ：モータＭのｄ軸のインダクタンス
Ｌｑ：モータＭのｑ軸のインダクタンス
なお、極対数Ｐａ、鎖交磁束ψａ、インダクタンスＬｄ，ＬｑはモータＭの仕様に基づく既知の値を持つ。ここでは、式（１０）が用いられたが、トルク推定部２７は、モータＭの種類に応じて異なる式を用いてトルク検出値τｄを推定すればよい。例えば、トルク推定部２７は、実電流値Ｉｄに所定の係数を乗じた値をトルク検出値τｄとして推定してもよい。
【００９１】
推定フェーズでは、トルク推定部２７により推定されたトルク検出値τｄを用いて、実施の形態１と同様に検出誤差θｃが推定される。
【００９２】
このように、実施の形態２に係る制御装置１Ａによれば、トルク推定部２７によりトルク検出値τｄが推定されている。ここで、トルク推定部２７は、例えば、ＣＰＵ等のプロセッサにより構成されている。また、トルク推定部２７は、既存の電流センサ３１，３２，３３を用いてトルク検出値τｄを推定できる。そのため、制御装置１Ａは、専用の計測機械を用いてトルク検出値τｄを検出する必要がない。よって、制御装置１Ａは、装置のコスト及び規模を抑制できる。
【００９３】
（変形例１）
実施の形態１では、逐次最小二乗法を用いて検出誤差θｃが推定されていたが、本発明はこれに限定されず、最小二乗法を用いて検出誤差θｃを推定してもよい。
【００９４】
（変形例２）
実施の形態１では、推定フェーズにおいて、最終的に誤差テーブル３０２を生成するとして説明したが、本発明はこれに限定されず、最終的に誤差関数を生成してもよい。この場合、補償部２３は、角度検出値θｓを誤差関数に入力して検出誤差θｃを決定すればよい。
【００９５】
（変形例３）
実施の形態１では、推定フェーズと補償フェーズとに分けて処理が行われていたが、本発明はこれに限定されず、両フェーズを分けることなく検出誤差θｃの推定及び補償をリアルタイムに行ってもよい。
【００９６】
この場合、推定部２２は、トルク検出値τｄと角度検出値θｓとが入力される都度、式（１）の運動方程式を用いて誤差ゲインΔｃ，Δｓを求め、検出誤差θｃを求めればよい。そして、補償部２３は、算出された検出誤差θｃを用いて角度検出値θｓを補償すればよい。この場合、モータＭの制御回数が増大するにつれて、検出誤差θｃの補償精度を高めることができる。
【００９７】
（変形例４）
実施の形態１では、角度検出部２０としてレゾルバが採用されたが、本発明はこれに限定されず、モータＭの回転子の回転角度に応じて検出誤差θｃが周期的に変動する特性を持つ角度検出器であれば、どのような角度検出器が採用されてもよい。
【符号の説明】
【００９８】
１，１Ａ  制御装置
１１  減算器
１２  速度制御部
１３  電流指令生成部
１４ａ，１４ｂ  減算器
１５  電流制御部
１６  ｄｑ／ｕｖｗ変換部
１７  インバータ
１９  トルク検出部
２０  角度検出部
２１  ｕｖｗ／ｄｑ変換部
２２  推定部
２３  補償部
２４  加算器
２５  乗算器
２６  速度算出部
２７  トルク推定部
３１，３２，３３  電流センサ
３０１  グラフ
３０２  誤差テーブル
【図１】
2018023203.tif 000008
【図２】
2018023203.tif 000009
【図３】
2018023203.tif 000010
【図４】
2018023203.tif 000011
【図５】
2018023203.tif 000012