(57)【特許請求の範囲】
【請求項１】
モータの制御装置であって、前記制御装置には、前記モータの回転角を検出するレゾルバが接続され、
前記制御装置は、
前記レゾルバの出力の１周に対応する角度を複数の領域に分割し、前記レゾルバの検出角が前記複数の領域間のいずれかの境界を越えたか否かを予め定められた演算周期毎に判断し、
前記検出角の境界越えを判断した第１時点から１周後に前記境界越えを判断した第２時点までの角変動量を算出し、
前記第１時点から前記第２時点までの角変動量を前記第１、第２時点間の時間で割った値に基づいて前記モータの回転速度を算出し、
前記回転速度に基づいて前記モータを制御する、モータの制御装置。
【請求項２】
前記制御装置は、
前記境界越えを判断する毎に、前記境界越えを判断した時の時刻および前記検出角を記憶し、
前記１周に対応する角度に前記第１、第２時点間の前記検出角の差を加えた値を、前記第１時点から前記第２時点までの角変動量として算出し、
前記第１、第２時点間の時刻差を前記第１、第２時点間の時間として算出する、請求項１に記載のモータの制御装置。
【請求項３】
前記制御装置は、
前記境界越えを判断する毎に、前記境界越えを判断した時と１領域前に前記境界越えを判断した時との領域時間差および前記検出角の領域角差を記憶し、
前記複数の領域分の前記領域角差の合計値を前記第１時点から前記第２時点までの角変動量として算出し、
前記複数の領域分の前記領域時間差の合計値を前記第１、第２時点間の時間として算出する、請求項１に記載のモータの制御装置。
【請求項４】
前記制御装置は、前記第１、第２時点間の時間を前記予め定められた上限時間に制限する、請求項２または３に記載のモータの制御装置。
【請求項５】
前記制御装置は、前記回転速度に応じて前記１周に対応する角度の分割数を変更する、請求項１に記載のモータの制御装置。
【請求項６】
前記制御装置は、前記回転速度が低いほど前記分割数を多くする、請求項５に記載のモータの制御装置。
【請求項７】
前記制御装置は、前記レゾルバの倍角数をａ、前記モータの極対数をｂ、１分あたりの前記モータの回転数をｃ、１秒あたりの演算回数をｆ、前記回転速度を算出するための情報を記憶するメモリがオーバーフローする値をＴｒとするとき、６０×ａ／（ｂ×ｃ×Ｔｒ）よりも大きくかつ（６０×ａ×ｆ）／（ｂ×ｃ）よりも小さい範囲で前記分割数を変更する、請求項５に記載のモータの制御装置。
【請求項８】
前記制御装置は、前記回転速度を算出した時点以前の前記回転速度の履歴に基づいて、前記回転速度を算出した時点よりも先の第３時点の前記回転速度を予測する、請求項１に記載のモータの制御装置。
【請求項９】
前記制御装置は、前記回転速度を予測する際、前記回転速度が低いほど、前記回転速度を算出した時点と前記第３時点との時間差を長くする、請求項８に記載のモータの制御装置。
【請求項１０】
モータの制御装置が行なう制御方法であって、前記制御装置には、前記モータの回転角を検出するレゾルバが接続され、
前記制御方法は、
前記レゾルバの出力の１周に対応する角度を複数の領域に分割し、前記レゾルバの検出角が前記複数の領域間のいずれかの境界を越えたか否かを予め定められた演算周期毎に判断するステップと、
前記検出角の境界越えを判断した第１時点から１周後に前記境界越えを判断した第２時点までの角変動量を算出するステップと、
前記第１時点から前記第２時点までの角変動量を前記第１、第２時点間の時間で割った値に基づいて前記モータの回転速度を算出するステップと、
前記回転速度に基づいて前記モータを制御するステップとを含む、モータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レゾルバの出力を用いてモータを制御する技術に関する。
【背景技術】
【０００２】
レゾルバを用いてモータの回転速度を算出し、算出した回転速度に基づいてモータを制御する技術が知られている。一般的に、レゾルバの出力には誤差が含まれている。この誤差の影響を排除するために、従来よりレゾルバの検出角を補正するさまざまな手法が提案されている。
【０００３】
たとえば、特開２００４−２２２４４８号公報（特許文献１）には、レゾルバの検出角が６０度、１２０度、…、７２０度になるまでの時間Ｔ１〜Ｔ１２を計測し、計測した時間Ｔ１〜Ｔ１２を用いて６０度ごとのずれ角Δθｎを演算し、その演算したずれ角Δθｎをθｎ＝ｎ×６０度＋Δθｎ（ｎ＝１〜１１）に代入して６０度ごとの角度補正を行なう技術が開示されている。この技術によれば、レゾルバの検出角に誤差が含まれていたとしても制御破綻を防止してモータを駆動できる、と特許文献１には記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２２２４４８号公報
【特許文献２】特開２００１−８２９８１号公報
【特許文献３】特開２００４−６１１５７号公報
【特許文献４】特開２００１−２１５２３４号公報
【特許文献５】特開２００９−１５６８５２号公報
【特許文献６】特開２００１−１６５７０７号公報
【特許文献７】特開２００８−１９５３１６号公報
【特許文献８】特開２００８−８９４０９号公報
【特許文献９】特開２００７−１８５０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、レゾルバの出力には、ロータの回転に同期した誤差が含まれることが知られている。この誤差を排除するための手法として、レゾルバ出力が１周する時間（レゾルバ周期）を計測した結果からモータの回転速度を算出する手法がある。
【０００６】
さらに、レゾルバ出力の１周に対応する３６０°を複数の領域に分割し、レゾルバの検出角が各分割境界を越える毎にレゾルバ周期を計測して回転速度を算出する手法もある。この手法では、回転速度の算出周期をレゾルバ周期よりも短くすることができるので、モータ回転速度が低い場合であっても回転速度を精度よく算出することができる。しかしながら、分割境界越えの判断をソフトウェアで実現する場合、各分割境界毎に最低１回演算する程度の低い演算周期では、分割境界越えを正確には計測できず、回転速度の算出精度が低下するという問題がある。
【０００７】
本発明は、上述の課題を解決するためになされたものであって、その目的は、比較的低い演算周期であっても、レゾルバの出力に基づいてモータの回転速度を精度よく算出することである。
【課題を解決するための手段】
【０００８】
この発明に係る制御装置は、モータの制御装置であって、モータの回転角を検出するレゾルバと、レゾルバの出力に基づいてモータを制御する制御部とを備える。制御部は、レゾルバの出力の１周に対応する角度を複数の領域に分割し、レゾルバの検出角が複数の領域間のいずれかの境界を越えたか否かを予め定められた演算周期毎に判断し、検出角の境界越えを判断した第１時点から１周後に境界越えを判断した第２時点までの角変動量を算出し、第１時点から第２時点までの角変動量を第１、第２時点間の時間で割った値に基づいてモータの回転速度を算出し、回転速度に基づいてモータを制御する。
【０００９】
好ましくは、制御部は、境界越えを判断する毎に、境界越えを判断した時の時刻および検出角を記憶し、１周に対応する角度に第１、第２時点間の検出角の差を加えた値を、第１時点から第２時点までの角変動量として算出し、第１、第２時点間の時刻差を第１、第２時点間の時間として算出する。
【００１０】
好ましくは、制御部は、境界越えを判断する毎に、境界越えを判断した時と１領域前に境界越えを判断した時との領域時間差および検出角の領域角差を記憶し、複数の領域分の領域角差の合計値を第１時点から第２時点までの角変動量として算出し、複数の領域分の領域時間差の合計値を第１、第２時点間の時間として算出する。
【００１１】
好ましくは、制御部は、第１、第２時点間の時間を予め定められた上限時間に制限する。
【００１２】
好ましくは、制御部は、回転速度に応じて１周に対応する角度の分割数を変更する。
好ましくは、制御部は、回転速度が低いほど分割数を多くする。
【００１３】
好ましくは、制御部は、レゾルバの倍角数をａ、モータの極対数をｂ、１分あたりのモータの回転数をｃ、１秒あたりの演算回数をｆ、回転速度を算出するための情報を記憶するメモリがオーバーフローする値をＴｒとするとき、６０×ａ／（ｂ×ｃ×Ｔｒ）よりも大きくかつ（６０×ａ×ｆ）／（ｂ×ｃ）よりも小さい範囲で分割数を変更する。
【００１４】
好ましくは、制御部は、回転速度を算出した時点以前の回転速度の履歴に基づいて、回転速度を算出した時点よりも先の第３時点の回転速度を予測する。
【００１５】
好ましくは、制御部は、回転速度を予測する際、回転速度が低いほど、回転速度を算出した時点と第３時点との時間差を長くする。
【００１６】
この発明の別の局面に係る制御方法は、モータの制御装置が行なう制御方法である。制御装置には、モータの回転角を検出するレゾルバが接続される。制御方法は、レゾルバの出力の１周に対応する角度を複数の領域に分割し、レゾルバの検出角が複数の領域間のいずれかの境界を越えたか否かを予め定められた演算周期毎に判断するステップと、検出角の境界越えを判断した第１時点から１周後に境界越えを判断した第２時点までの角変動量を算出するステップと、第１時点から第２時点までの角変動量を第１、第２時点間の時間で割った値に基づいてモータの回転速度を算出するステップと、回転速度に基づいてモータを制御するステップとを含む。
【発明の効果】
【００１７】
本発明によれば、比較的低い演算周期であっても、レゾルバの出力に基づいてモータの回転速度を精度よく算出することができる。
【図面の簡単な説明】
【００１８】
【図１】モータ駆動制御システムの全体構成図である。
【図２】制御装置の機能ブロック図（その１）である。
【図３】制御装置の処理手順を示すフローチャート（その１）である。
【図４】回転速度ＮＭの算出手法を示す図（その１）である。
【図５】制御装置の処理手順を示すフローチャート（その２）である。
【図６】回転速度ＮＭの算出手法を示す図（その２）である。
【図７】制御装置の処理手順を示すフローチャート（その３）である。
【図８】Ｎ＝Ｎ１の場合の回転速度ＮＭの更新タイミングを例示した図である。
【図９】Ｎ＝Ｎ２の場合の回転速度ＮＭの更新タイミングを例示した図である。
【図１０】分割数Ｎを決定する際に用いられるマップである。
【図１１】制御装置の機能ブロック図（その２）である。
【図１２】制御装置の処理手順を示すフローチャート（その４）である。
【図１３】予測周期αの算出に用いられるマップを示す。
【図１４】回転速度ＮＭ、予測許可カウンタｎｆ、予測禁止フラグＦの時間変化を示す図である。
【図１５】制御装置の処理手順を示すフローチャート（その５）である。
【図１６】回転速度ＮＭの時間変化を示す図である。
【図１７】制御装置の処理手順を示すフローチャート（その６）である。
【発明を実施するための形態】
【００１９】
以下に、本発明の実施の形態について図面を参照して詳細に説明する。なお以下図中の同一または相当部分には同一符号を付してその説明は原則的に繰り返さないものとする。
［実施の形態１］
図１は、本発明の実施の形態１に従う制御装置が適用されるモータ駆動制御システム１００の全体構成図である。
【００２０】
図１を参照して、モータ駆動制御システム１００は、直流電圧発生部１０♯と、平滑コンデンサＣ０と、インバータ１４と、モータＭ１と、制御装置３０とを備える。
【００２１】
直流電圧発生部１０♯は、直流電源Ｂと、平滑コンデンサＣ１と、コンバータ１２とを含む。
【００２２】
直流電源Ｂは、代表的には、ニッケル水素またはリチウムイオン等の二次電池や電気二重層キャパシタ等の蓄電装置により構成される。
【００２３】
コンバータ１２は、リアクトルと、２つのスイッチング素子と、２つのダイオードとを含む。コンバータ１２の２つのスイッチング素子は、制御装置３０からの制御信号Ｓ１およびＳ２によってそれぞれ制御される。コンバータ１２は、昇圧動作時には、正極線６および負極線５の間の電圧（直流電源Ｂの電圧）を昇圧し、昇圧した電圧を正極線７および負極線５の間に出力する。また、コンバータ１２は、降圧動作時には、正極線７および負極線５の間の電圧を降圧して正極線６および負極線５の間に出力する。
【００２４】
平滑コンデンサＣ０は、コンバータ１２からの直流電圧を平滑化し、その平滑化した直流電圧をインバータ１４へ供給する。
【００２５】
インバータ１４は、正極線７および負極線５の間に並列に設けられる三相（Ｕ、Ｖ、Ｗ相）の各上下アーム（スイッチング素子）から成る。各相の上下アームのオン／オフは、制御装置３０からの制御信号Ｓ３〜Ｓ８によって制御される。インバータ１４は、コンバータ１２から供給される直流電力を交流電力に変換してモータＭ１に供給する。また、コンバータ１２は、モータＭ１が発生した回生電力（交流電力）を直流電力に変換してコンバータ１２に供給する。
【００２６】
モータＭ１は、たとえば、電動車両（ハイブリッド自動車、電気自動車や燃料電池車等の電気エネルギによって車両駆動力を発生する自動車をいうものとする）の駆動輪を駆動するためのトルクを発生するための走行用電動機である。モータＭ１は、電動機および発電機の機能を併せ持つように構成される。モータＭ１は、代表的には、３相の永久磁石型同期電動機であり、Ｕ，Ｖ，Ｗ相の３つのコイルの一端が中性点に共通接続されて構成される。さらに、各相コイルの他端は、インバータ１４の各相の上下アームの中間点と接続されている。
【００２７】
さらに、モータ駆動制御システム１００はレゾルバ２５を備える。レゾルバ２５は、ステータとモータＭ１の回転軸に取り付けられたロータとを備え、ロータの回転角を検出し、検出結果をレゾルバ角θとして制御装置３０へ出力する。レゾルバ２５の構成そのものは周知のものでよい。レゾルバ２５の倍角数をａ（ａは自然数）とした場合、レゾルバ２５は、ロータが１回転する間に、位相が３６０°変動するレゾルバ角θをａ回繰り返し出力する。言い換えれば、モータＭ１が１／ａ回転する間にレゾルバ角θの位相は３６０°だけ変動する。以下の説明で用いる「レゾルバ周期」とは、レゾルバ角θが１周する（３６０°変動する）時間を意味するものとする。本発明は、いずれの倍角数のレゾルバにも適用可能である。
【００２８】
制御装置３０は、図示しないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）およびメモリを内蔵した電子制御ユニット（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）により構成され、当該メモリに記憶されたデータに基づいて、モータ駆動制御システム１００の動作を制御する。
【００２９】
ところで、レゾルバ２５が出力するレゾルバ角θには、ロータの回転に同期した誤差成分が含まれることが知られている。したがって、レゾルバ角θを取得するタイミングによっては、レゾルバ角θとロータの実回転角との間に比較的大きな誤差が含まれる場合がある。
【００３０】
特に、低回転時（モータ回転速度が所定値よりも低い時）は、レゾルバ周期が長くなるとともに、モータＭ１の持つ回転エネルギが相対的に減少して外乱の影響を受け易くなるため、レゾルバ角θの誤差が大きくなる傾向にある。
【００３１】
このような問題に鑑み、制御装置３０は、モータＭ１の回転速度をレゾルバ角θに基づいて複数種類算出し、これらの回転速度をモータＭ１の動作状況や用途に応じて使い分ける。
【００３２】
図２は、制御装置３０の機能ブロック図である。図２に示した各機能ブロックは、ハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
【００３３】
制御装置３０は、算出部４０と、制御部５０とを備える。
算出部４０は、レゾルバ２５からのレゾルバ角θに基づいて、複数種類のモータ回転速度を算出する。算出部４０は、回転速度Ｎｍｓを算出する算出部４１と、回転速度ＮＭを算出する算出部４２とを含む。
【００３４】
算出部４１は、１ｍｓあたりのレゾルバ角θの変動量を計測し、計測した変動量をモータ回転速度に換算した値を、回転速度Ｎｍｓとして算出する。さらに、算出部４１は、過去２回の回転速度Ｎｍｓを平均した回転速度を２ｍｓ毎に算出する。また、算出部４１は、回転速度Ｎｍｓに重畳した誤差の影響を取り除くため、過去の複数の回転速度Ｎｍｓに１次遅れ処理を施した回転速度を２．５ｍｓ毎に算出する。
【００３５】
一方、算出部４２は、１レゾルバ周期相当のレゾルバ角θの変動量を計測し、計測した変動量をモータ回転速度に換算した値を、回転速度ＮＭとして算出する。回転速度ＮＭは１レゾルバ周期相当のレゾルバ角θの変動量から算出されるためレゾルバ誤差の影響を受け難くい値となる。
【００３６】
このように、算出部４０が算出する回転速度は、回転速度Ｎｍｓ、回転速度Ｎｍｓを平均した回転速度、回転速度Ｎｍｓに１次遅れ処理を施した回転速度、回転速度ＮＭの合計４種類存在する。なお、算出部４０が算出する回転速度はこれらに限定されるものではない。
【００３７】
制御部５０は、算出部４０が算出した回転速度を目標回転速度に近づけるための制御信号Ｓ１〜Ｓ８を生成し、コンバータ１２およびインバータ１４に出力する。この際、制御部５０は、上述した４種類の回転速度のいずれの回転速度を用いて制御信号Ｓ１〜Ｓ８を生成するのかを、モータＭ１の動作状況や用途に応じて決定する。
【００３８】
本実施の形態においては算出部４２による回転速度ＮＭの算出手法に特徴を有する。以下、この点について詳しく説明する。
【００３９】
算出部４２は、１レゾルバ周期に対応する角度３６０°をＮ個（Ｎは２以上の自然数）の領域（以下、「ゾーン」という）に分割し、レゾルバ角θが各分割境界を越えたか否かを判断する。算出部４２は、レゾルバ角θが分割境界を超えたと判断した場合、その時の時刻Ｔおよびレゾルバ角θを、それぞれ今回サイクルの分割境界超え時刻およびレゾルバ角としてメモリに記憶し保持する。
【００４０】
そして、算出部４２は、レゾルバ角θが分割境界を超えたと判断する毎に、１レゾルバ周期前にメモリに記憶し保持しておいた分割境界超え時刻およびレゾルバ角と、今回サイクルの分割境界超え時刻Ｔおよびレゾルバ角θとに基づいて、回転速度ＮＭを算出する。このように、１レゾルバ周期に対応する角度３６０°をＮ個の領域に分割して回転速度ＮＭの算出周期をレゾルバ周期よりも短くする（すなわち、１レゾルバ周期中の回転速度ＮＭの算出回数を１回よりも多いＮ回に増やす）ことで、モータ回転速度が低い場合であっても回転速度ＮＭを精度よく算出することができる。
【００４１】
ところで、分割境界越えの判断精度を向上させることができれば、レゾルバ角θが３６０°変動する時間（すなわちレゾルバ周期）を正確に計測することができ回転速度ＮＭの算出精度を向上させることができる。分割境界越えの判断精度の向上を実現する手法としては、ハードウェアを用いる手法とソフトウェアを用いる手法との両方が考えられる。しかしながら、単純にソフトウェアで実現するためには演算周期を非常に短い値にする必要があり現実的ではない。たとえば、レゾルバ倍角数を２、モータ極対数を４、モータ回転速度を１００００ｒｐｍとした場合、演算周期を１μｓ以下にする必要がある。また、ハードウェアでの実現は技術的には比較的容易であるものの、コストアップが懸念される。
【００４２】
そこで、本実施の形態に従う制御装置３０は、各分割境界毎に最低１回演算する程度の比較的低い演算周期でも回転速度ＮＭの算出精度の悪化を最小限に抑えることができる制御をソフトウェアで実現可能な態様で実行する。この点が本実施の形態の特徴点である。
【００４３】
図３は、回転速度ＮＭを算出する際の制御装置３０の処理手順を示すフローチャートである。図３に示すフローチャートは、各分割境界毎に最低１回演算する程度の比較的低い演算周期（たとえば２．５ｍｓ）毎に繰り返し実行される。なお、各ステップ（以下、ステップを「Ｓ」と略す）は、上述したように、ハードウェアによっても実現可能であるが、コストアップを抑制する観点からソフトウェアによって実現するほうが望ましい。
【００４４】
Ｓ１０にて、制御装置３０は、今回サイクルのゾーン番号ｎを算出する。ゾーン番号ｎとは、レゾルバ角θが上述したＮ個のゾーンのうちの何番目のゾーンに含まれるかを示す値である。制御装置３０は、次式（１）に基づいてゾーン番号ｎを算出する。
【００４５】
ｎ＝ｆｌｏｏｒ（θ／θｚ）  ・・・（１）
ここで、「ｆｌｏｏｒ（θ／θｚ）」はθ／θｚの値の小数点以下を切り捨てた値を示す関数である。「θｚ」は１ゾーン当たりレゾルバ角である。たとえば、分割数Ｎ＝１０の場合、θｚは３６０／１０＝３６°であり、今回サイクルの演算時刻Ｔのレゾルバ角θが２６０°であった場合、ゾーン番号ｎは、ｎ＝ｆｌｏｏｒ（２６０／３６）＝ｆｌｏｏｒ（７．２２…）＝７となる。ゾーン番号ｎは、１レゾルバ周期中に「０」から「Ｎ−１」までの間で変動する整数となる。
【００４６】
Ｓ１１にて、制御装置３０は、レゾルバ角θが分割境界を越えたか否かを判断する。制御装置３０は、今回サイクルのゾーン番号ｎが前回サイクルのゾーン番号ｎ＿ｏと一致しない場合（ｎ≠ｎ＿ｏの場合）、レゾルバ角θが分割境界を越えたと判断する。レゾルバ角θが分割境界を越えていない場合（Ｓ１１にてＮＯ）、制御装置３０は、処理を終了させる。一方、レゾルバ角θが各分割境界を越えた場合（Ｓ１１にてＹＥＳ）、制御装置３０は、処理をＳ１２に移す。
【００４７】
Ｓ１２にて、制御装置３０は、１レゾルバ周期前の第ｎゾーンの演算時刻Ｔ［ｎ］と今回サイクルの演算時刻Ｔとの時間差ΔＴ［ｎ］を次式（２）を用いて算出するとともに、Ｔ［ｎ］からＴまでのレゾルバ角変動量Δθ［ｎ］を次式（３）を用いて算出する。
【００４８】
ΔＴ［ｎ］＝Ｔ−Ｔ［ｎ］              ・・・（２）
Δθ［ｎ］＝３６０＋｛θ−θ［ｎ］｝  ・・・（３）
ここで、θ［ｎ］は、１レゾルバ周期前の第ｎゾーンの演算時刻Ｔ［ｎ］で取得されたレゾルバ角である。すなわち、制御装置３０は、今回サイクルで取得されたレゾルバ角θと、１レゾルバ周期前に取得されたレゾルバ角θ［ｎ］との差に３６０°を加えた値を、時間差ΔＴ［ｎ］におけるレゾルバ角変動量Δθ［ｎ］として算出する。
【００４９】
Ｓ１３にて、制御装置３０は、回転速度ＮＭを次式（４）を用いて算出する。
ＮＭ＝Ｋ・（Δθ［ｎ］／ΔＴ［ｎ］）  ・・・（４）
ここで、「Δθ［ｎ］／ΔＴ［ｎ］」は、時間差ΔＴ［ｎ］におけるレゾルバ角θの変動速度であり、「Ｋ」は、その変動速度をモータ回転速度（単位：ｒｐｍ）に換算するための係数である。本実施の形態ではＫ＝（２π／３６０）×（１／６０）である。
【００５０】
Ｓ１４にて、制御装置３０は、今回サイクルで取得あるいは算出したθ、Ｔ、ｎを、それぞれ次回以降の演算に用いるθ［ｎ］、Ｔ［ｎ］、ｎ＿ｏとしてメモリに記憶（保持）する。
【００５１】
図４は、本実施の形態における回転速度ＮＭの算出手法を示す図である。なお、図４は、今回サイクルの演算時刻Ｔでのゾーン番号ｎが「７」の場合を例示している。
【００５２】
今回サイクルの演算時刻Ｔでのゾーン番号ｎが「７」である場合、制御装置３０は、図４に示すように、１レゾルバ周期前の第７ゾーンの演算時刻Ｔ［７］と今回サイクルの演算時刻Ｔとの時間差ΔＴ［７］（＝Ｔ−Ｔ［７］）を算出する。
【００５３】
そして、制御装置３０は、１レゾルバ周期に対応する角度３６０°に、時刻Ｔのレゾルバ角θと時刻Ｔ［７］のレゾルバ角θ［７］との差を加えた値を、時刻Ｔ［７］から時刻Ｔまでのレゾルバ角変動量Δθ［７］として算出する。そして、制御装置３０は、レゾルバ角変動量Δθ［７］を時間差ΔＴ［７］で割った値に係数Ｋを掛けた値を、今回サイクルの回転速度ＮＭとして算出する。
【００５４】
本実施の形態の特に特徴的な点は、時刻Ｔ［ｎ］から時刻Ｔまでのレゾルバ角変動量Δθ［ｎ］を、３６０°とするのではなく、３６０°にθとθ［ｎ］との差を加えた値とする点（図４に示す例では、Δθ［７］を、３６０°ではなく、３６０°＋｛θ−θ［７］｝とする点）である。
【００５５】
すなわち、本実施の形態に従う制御装置３０は、レゾルバ角θが各分割境界を越えたか否かを比較的低い演算周期（２．５ｍｓ）毎に判断するため、レゾルバ角θが分割境界を実際に越える時刻を正確には判断できない。したがって、実際の分割境界越え時刻と制御装置３０が分割境界越えを判断する時刻との間にはずれが生じる。つまり、１レゾルバ周期前の第ｎゾーンの演算時刻Ｔ［ｎ］から今回サイクルの第ｎゾーンの演算時刻Ｔまでのレゾルバ角変動量Δθ［ｎ］は、３６０°ではなく、３６０°に対して僅かにずれた値となる。
【００５６】
このずれ分を補正するために、制御装置３０は、レゾルバ角変動量Δθ［ｎ］を、３６０°ではなく、３６０°にθとθ［ｎ］との差を加えた値にする。これにより、時刻Ｔ［ｎ］から時刻Ｔまでのレゾルバ角変動量Δθ［ｎ］を精度よく算出することができるので、回転速度ＮＭの算出精度を向上させることができる。
【００５７】
以上のように、本実施の形態に従う制御装置３０は、レゾルバ角θが各分割境界を越えたか否かを比較的低い演算周期毎に判断する。そのため、１レゾルバ周期前の分割境界超え時刻から今回サイクルの分割境界超え時刻までの時間は、１レゾルバ周期とは正確には一致しない。この点を考慮し、制御装置３０は、１レゾルバ周期前に分割境界超え時刻から今回サイクルの分割境界超え時刻までの時間におけるレゾルバ角の変動量を、３６０°ではなく、３６０°に１レゾルバ周期前と今回サイクルとのレゾルバ角の差を加えた値に補正して、回転速度ＮＭを算出する。これにより、比較的低い演算周期であっても、レゾルバ角θに基づいて回転速度ＮＭを精度よく算出することができる。
［実施の形態１の変形例１］
上述の実施の形態１では、分割境界超えを判断した時の時刻およびレゾルバ角を保持する場合について説明した。
【００５８】
これに対し、本変形例では、分割境界超えを判断した時の時刻およびレゾルバ角を保持する代わりに、今回サイクルの演算時刻と１ゾーン前の演算時刻との時間差および今回サイクルのレゾルバ角と１ゾーン前のレゾルバ角との差を保持する。
【００５９】
図５は、本変形例に従う制御装置３０の処理手順を示すフローチャートである。なお、図５に示したステップのうち、前述の図３に示したステップと同じ番号を付しているステップについては、既に説明したため詳細な説明はここでは繰り返さない。
【００６０】
レゾルバ角θが分割境界を越えたと判断された場合（Ｓ１１にてＹＥＳ）、制御装置３０は、Ｓ１２ａにて、１ゾーン前の演算時刻Ｔ（ｎ−１）と今回サイクルの演算時刻Ｔとの時間差ΔＴ（ｎ）を次式（２ａ）を用いて算出するとともに、１ゾーン前の演算時刻Ｔ（ｎ）から今回サイクルの演算時刻Ｔまでのレゾルバ角変動量Δθ（ｎ）を次式（３ａ）を用いて算出する。
【００６１】
ΔＴ（ｎ）＝ｍｉｎ｛Ｔ−Ｔ（ｎ−１），Ｔｍａｘ｝  ・・・（２ａ）
Δθ（ｎ）＝θ−θ（ｎ−１）                      ・・・（３ａ）
ここで、「ｍｉｎ｛Ｔ−Ｔ（ｎ），Ｔｍａｘ｝」は、Ｔ−Ｔ（ｎ）と上限時間Ｔｍａｘとのうちのいずれか小さい方の値を表わす。「θ（ｎ−１）」は、１ゾーン前の演算時刻Ｔ（ｎ−１）のレゾルバ角である。すなわち、制御装置３０は、今回サイクルの演算時刻Ｔのレゾルバ角θと１ゾーン前の演算時刻Ｔ（ｎ）のレゾルバ角θ（ｎ）との差を、時間差ΔＴ（ｎ）におけるレゾルバ角変動量Δθ（ｎ）として算出する。
【００６２】
Ｓ１２ｂにて、制御装置３０は、時間差合計値ΣΔＴ（ｎ）を次式（２ｂ）を用いて算出するとともに、レゾルバ角変動量合計値ΣΔθ（ｎ）を次式（３ｂ）を用いて算出する。
【００６３】
ΣΔＴ（ｎ）＝ΔＴ（０）＋ΔＴ（１）＋…＋ΔＴ（Ｎ−１）・・・（２ｂ）
ΣΔθ（ｎ）＝Δθ（０）＋Δθ（１）＋…＋Δθ（Ｎ−１）・・・（３ｂ）
すなわち、制御装置３０は、最新のＮ個分の時間差ΔＴの合計値を１レゾルバ周期に相当する期間として算出するとともに、最新のＮ個分のレゾルバ角変動量Δθ（ｎ）の合計値を１レゾルバ周期に相当する期間のレゾルバ角変動量として算出する。
【００６４】
Ｓ１３ａにて、制御装置３０は、回転速度ＮＭを次式（４ａ）を用いて算出する。
ＮＭ＝Ｋ・（ΣΔθ（ｎ）／ΣΔＴ（ｎ））  ・・・（４ａ）
Ｓ１４ａにて、制御装置３０は、今回サイクルで算出したΔθ（ｎ）、ΔＴ（ｎ）を次回以降の演算に用いるためにメモリに記憶するとともに、今回サイクルで算出したｎを次回以降の演算に用いるｎ＿ｏとしてメモリに記憶（保持）する。
【００６５】
図６は、本変形例における回転速度ＮＭの算出手法を示す図である。なお、図６も、上述の図４と同様、今回サイクルの演算時刻Ｔでのゾーン番号ｎが「７」の場合を例示している。
【００６６】
本変形例では、レゾルバ角θが分割境界を越えたと判断される毎に、１ゾーン前からの時間差ΔＴ（ｎ）およびレゾルバ角変動量Δθ（ｎ）が算出されてメモリに記憶される。たとえば、今回サイクルのゾーン番号ｎが「７」の場合、図６に示すように、ゾーン７での時間差ΔＴ（７）はＴ−Ｔ（６）であり、ゾーン７でのレゾルバ角変動量Δθ（７）はθ−θ（６）である。
【００６７】
そして、制御装置３０は、時間差合計値ΣΔＴ（最新のＮ個分の時間差ΔＴの合計値）を、１レゾルバ周期に相当する期間として求める。また、制御装置３０は、レゾルバ角変動量合計値ΣΔθ（最新のＮ個分のレゾルバ角変動量Δθの合計値）を、１レゾルバ周期に相当する期間のレゾルバ角変動量として算出する。今回サイクルのゾーン番号ｎが「７」の場合、図６に示すように、ΣΔＴ（７）＝ΔＴ（８）＋ΔＴ（９）＋ΔＴ（０）＋ΔＴ（１）＋…＋ΔＴ（７）であり、ΣΔθ（７）＝Δθ（８）＋Δθ（９）＋Δθ（０）＋Δθ（１）＋…＋Δθ（７）である。
【００６８】
そして、制御装置３０は、レゾルバ角変動量合計値ΣΔθを時間差合計値ΣΔＴで割った値に係数Ｋを掛けた値を、今回サイクルの回転速度ＮＭとして算出する。
【００６９】
このようにすると、実施の形態１と同様、比較的低い演算周期であっても、レゾルバ角θに基づいて回転速度ＮＭを精度よく算出することができる。さらに、ゾーン毎の差分を保持することで、低回転時においてもメモリがオーバーフローすることを抑制することができる。
［実施の形態１の変形例２］
上述の実施の形態１およびその変形例１では、分割数Ｎを固定していた。これに対し、本変形例では、分割数Ｎをモータ回転速度に応じて変更する。
【００７０】
図７は、本変形例に従う制御装置３０の処理手順を示すフローチャートである。
Ｓ２０にて、制御装置３０は、分割数Ｎを所定値Ｎ１に設定した場合のゾーン番号ｎ１を次式（１−１）を用いて算出するとともに、分割数Ｎを所定値Ｎ２に設定した場合のゾーン番号ｎ２を次式（１−２）を用いて算出する。
【００７１】
ｎ１＝ｆｌｏｏｒ（θ／θｚ１）  ・・・（１−１）
ｎ２＝ｆｌｏｏｒ（θ／θｚ２）  ・・・（１−２）
式（１−１），（１−２）において、θｚ１＝３６０／Ｎ１、θｚ２＝３６０／Ｎ２である。
【００７２】
ここで、所定値Ｎ１，Ｎ２について説明する。所定値Ｎ１，Ｎ２は、少なくとも次式（５）を満足する値に設定される。
【００７３】
（レゾルバ周期／Ｔｒ）＜Ｎ２＜Ｎ１＜（レゾルバ周期×ｆ）  ・・・（５）
式（５）において、「Ｔｒ」はメモリがオーバーフローする値であり、「レゾルバ周期／Ｔｒ」はメモリがオーバーフローしないように規定できる分割数Ｎの最小値である。また、「ｆ」は単位時間あたりの演算回数（単位：Ｈｚ）であり、「レゾルバ周期×ｆ」は回転速度ＮＭの演算を正しく行なうように規定できる分割数Ｎの最大値である。すなわち、所定値Ｎ１，Ｎ２は、いずれも、メモリがオーバーフローせずかつ回転速度ＮＭの演算を正しく行なうことが可能な値に予め設定される。
【００７４】
なお、レゾルバ倍角数をａ、モータ極対数をｂ、モータ回転速度をｃ（単位：ｒｐｍ）とすると、レゾルバ周期は６０×ａ／（ｂ×ｃ）で表わすことができる。したがって、上記の式（５）は、｛６０×ａ／（ｂ×ｃ×Ｔｒ）｝＜Ｎ２＜Ｎ１＜｛（６０×ａ×ｆ）／（ｂ×ｃ）｝という式に変形可能である。
【００７５】
Ｓ２１ａにて、制御装置３０は、レゾルバ角θがＮ＝Ｎ１の場合の分割境界を越えたか否かを判断する。制御装置３０は、ゾーン番号ｎ１が前回演算時のゾーン番号ｎ１＿ｏから変化した場合に、レゾルバ角θがＮ＝Ｎ１の場合の分割境界を越えたと判断する。
【００７６】
レゾルバ角θがＮ＝Ｎ１の場合の分割境界を越えた場合（Ｓ２１ａにてＹＥＳ）、制御装置３０は、Ｓ２２ａ〜Ｓ２５ａにてそれぞれ図５に示したＳ１２ａ〜Ｓ１４ａと同様の処理を分割数Ｎ＝Ｎ１に設定して実行することによって、分割数Ｎ＝Ｎ１の場合の回転速度ＮＭ１を算出する。
【００７７】
一方、レゾルバ角θがＮ＝Ｎ１の場合の分割境界を越えていない場合（Ｓ２１にてＮＯ）、制御装置３０は、Ｓ２１ｂ〜Ｓ２５ｂにてそれぞれＳ２１ａ〜Ｓ２５ａと同様の処理を分割数Ｎ＝Ｎ２に設定して実行することによって、分割数Ｎ＝Ｎ２の場合の回転速度ＮＭ２を算出する。
【００７８】
Ｓ２６にて、制御装置３０は、モータ回転速度（回転速度Ｎｍｓ、回転速度Ｎｍｓを平均した回転速度、回転速度Ｎｍｓに１次遅れ処理を施した回転速度、回転速度ＮＭのいずれであってもよい）に応じて、分割数Ｎを所定値Ｎ１とするのか所定値Ｎ２とするのかを決定する。
【００７９】
ここで、所定値Ｎ１，Ｎ２は、上述したように、式（５）を満足する値に設定されており、いずれも、メモリがオーバーフローせずかつ回転速度ＮＭの演算を正しく行なうことが可能な値である。
【００８０】
図８は、Ｎ＝Ｎ１の場合の回転速度ＮＭの更新タイミングを例示した図である。図９は、Ｎ＝Ｎ２（＜Ｎ１）の場合の回転速度ＮＭの更新タイミングを例示した図である。図８、９からわかるように、分割数ＮがＮ２の場合（図９）よりも分割数ＮがＮ２よりも高いＮ１の場合（図８）のほうが、回転速度ＮＭの更新周期（算出周期）を短くすることができる。
【００８１】
図１０は、分割数Ｎを決定する際に用いられるマップである。回転速度ＮＭはレゾルバ角θが分割境界を越える毎に更新されるため、回転速度ＮＭの更新周期はレゾルバ周期／分割数Ｎとなる。レゾルバ周期はモータ回転速度が低いほど長くなるので、回転速度ＮＭの更新周期もモータ回転速度が低いほど長くなる。そのため、モータ回転速度が低いほど回転速度ＮＭの応答遅れが生じて回転速度ＮＭの算出精度が低下することが懸念される。この対策として、制御装置３０は、図１０に示すように、モータ回転速度が所定速度よりも高い領域では分割数Ｎを「Ｎ２」に設定する一方、モータ回転速度が所定速度よりも低い領域においては分割数ＮをＮ２よりも大きい「Ｎ１」に設定する。
【００８２】
なお、演算周期の変更が可能な場合には、演算周期毎にマップを変更するようにしてもよい。たとえば、演算周期が２．５ｍｓの場合にマップ１を用いて分割数Ｎを設定し、演算周期が２．５ｍｓよりも短い場合には分割数ＮをＮ１にする領域をマップ１よりも高回転速度側に拡大したマップ２（一点鎖線）を用いて分割数Ｎを設定するようにしてもよい。
【００８３】
図７に戻って、Ｓ２７にて、制御装置３０は、上述の図１０に示すマップを用いて決定した分割数ＮがＮ１であるか否かを判断する。分割数ＮがＮ１である場合（Ｓ２７にてＹＥＳ）、制御装置３０は、Ｓ２８にて回転速度ＮＭを回転速度ＮＭ１に設定する。分割数ＮがＮ２である場合（Ｓ２７にてＮＯ）、制御装置３０は、Ｓ２９にて回転速度ＮＭを回転速度ＮＭ２に設定する。
【００８４】
このように、本変形例においては、モータ回転速度が所定速度よりも低い領域においては分割数ＮをＮ２からＮ２よりも高い値Ｎ１に切り替える。これにより、分割数ＮをＮ２に固定する場合に比べて、低回転時の回転速度ＮＭの応答遅れが抑制される。そのため、低回転時においても回転速度ＮＭを精度よく算出することができる。
［実施の形態２］
上述の実施の形態１では、レゾルバ角に基づいて回転速度ＮＭを算出する手法について説明した。これに対し、実施の形態２では、回転速度ＮＭに基づいてモータ回転速度を予測する手法について説明する。
【００８５】
図１１は、実施の形態２に従う制御装置３０Ａの機能ブロック図である。
制御装置３０Ａは、算出部４０Ａと、制御部５０Ａとを備える。算出部４０Ａは、算出部４１，４２に加えて、算出部４３を備える。算出部４１，４２の機能については、上述の実施の形態１で説明したため、ここでの詳細な説明は繰り返さない。
【００８６】
算出部４３は、算出部４２が算出した回転速度ＮＭの履歴に基づいて、回転速度ＮＭの算出時点よりも先の時点（以下、「予測時点」ともいう）のモータＭ１の予測回転速度Ｎｅｓｔを算出する。
【００８７】
制御部５０Ａは、算出部４０Ａが算出した回転速度を目標回転速度に近づけるための制御信号Ｓ１〜Ｓ８を生成し、コンバータ１２およびインバータ１４に出力する。この際、制御部５０Ａは、算出部４０Ａが算出した回転速度Ｎｍｓ，ＮＭ，Ｎｅｓｔなどのうちのいずれの回転速度を用いて制御信号Ｓ１〜Ｓ８を生成するのかを、モータＭ１の動作状況や用途に応じて決定する。
【００８８】
以下、算出部４３による予測回転速度Ｎｅｓｔの算出手法について詳しく説明する。算出部４３は、回転速度急変時に回転速度の認識遅れが生じることを防止するため、回転速度ＮＭを基準として回転速度ＮＭの変化率から予測時点の回転速度を予測して予測回転速度Ｎｅｓｔを算出する。
【００８９】
ところが、上述したように、回転速度ＮＭの更新周期はモータ回転速度が低いほど長くなるため、低回転時は回転速度ＮＭの応答遅れが生じる。そのため、低回転時には予測回転速度Ｎｅｓｔの応答遅れも生じる。また、低回転から一定加速度で加速しているにも関わらず途中で加速度が急変したと認識してしまい予測回転速度Ｎｅｓｔを過大に演算してしまうことが懸念される。
【００９０】
この対策として、制御装置３０Ａは、モータ回転速度が低いほどより遠い未来を予測することで、低回転時の予測回転速度Ｎｅｓｔの応答遅れを低減する。
【００９１】
図１２は、予測回転速度Ｎｅｓｔを算出する際の制御装置３０Ａの処理手順を示すフローチャートである。
【００９２】
Ｓ３０にて、制御装置３０Ａは、過去の複数個（たとえば４個）の回転速度ＮＭの移動平均を、平均回転速度Ｎａｖｅとして算出する。
【００９３】
Ｓ３１にて、制御装置３０Ａは、今回サイクルの平均回転速度Ｎａｖｅが前回サイクルの平均回転速度Ｎａｖｅ＿ｏよりも大きいか否かを判断する。Ｎａｖｅ＞Ｎａｖｅ＿ｏの場合（Ｓ３１にてＹＥＳ）、制御装置３０Ａは、Ｓ３２にて、上昇カウンタｍｕｐを前回値ｍｕｐ＿ｏよりも１増加させ、下降カウンタｍｄｗｎを０に設定する。一方、Ｎａｖｅ＜Ｎａｖｅ＿ｏの場合（Ｓ３１にてＮＯ）、制御装置３０Ａは、Ｓ３４にて、上昇カウンタｍｕｐを０に設定し、下降カウンタｍｄｗｎを前回値ｍｄｗｎ＿ｏよりも１増加させる。
【００９４】
Ｓ３５にて、制御装置３０Ａは、上昇カウンタｍｕｐがしきい値ｍ１よりも大きいか否かを判断する。
【００９５】
ｍｕｐ＞ｍ１の場合（Ｓ３５にてＹＥＳ）、制御装置３０Ａは、Ｓ３６にて、モータ回転速度（回転速度Ｎｍｓ、回転速度Ｎｍｓを平均した回転速度、回転速度Ｎｍｓに１次遅れ処理を施した回転速度、回転速度ＮＭのいずれであってもよい）に基づいて予測周期αを算出する。
【００９６】
図１３は、予測周期αの算出に用いられるマップを示す。図１３に示すように、予測周期αは、モータ回転速度が低いほど大きい値に設定される。
【００９７】
図１２に戻って、Ｓ３７にて、制御装置３０Ａは、回転速度ＮＭが前回値ＮＭ＿ｏとほぼ同じ値であるか否かを判断する。
【００９８】
ＮＭ≒ＮＭ＿ｏの場合（Ｓ３７にてＹＥＳ）、制御装置３０Ａは、Ｓ３８にて予測許可カウンタｎｆを０に設定し、Ｓ３９にて予測禁止フラグＦを１に設定する。その後、処理はＳ４３に移される。
【００９９】
一方、ＮＭ≒ＮＭ＿ｏでない場合（Ｓ３７にてＮＯ）、制御装置３０Ａは、Ｓ４０にて予測許可カウンタｎｆを前回値ｎｆ＿ｏよりも１増加させ、Ｓ４１にて予測許可カウンタｎｆが上限値ｆ１に達したか否かを判断する。ｎｆ＝ｆ１の場合（Ｓ４１にてＹＥＳ）、制御装置３０Ａは、Ｓ４２にて予測禁止フラグＦを０に設定し、処理をＳ４３に移す。一方、ｎｆ＜ｆ１の場合（Ｓ４１にてＮＯ）、制御装置３０Ａは、処理をＳ４３に移す。
【０１００】
Ｓ４３にて、制御装置３０Ａは、予測禁止フラグＦが１であるか否かを判断する。Ｆ＝１の場合（Ｓ４３にてＹＥＳ）、制御装置３０Ａは、Ｓ４４にて予測周期αを０に設定する。その後、処理はＳ４５に移される。一方、Ｆ＝１でない場合（Ｓ４３にてＮＯ）、制御装置３０Ａは、処理をＳ４５に移す。
【０１０１】
Ｓ４５にて、制御装置３０Ａは、予測回転速度Ｎｅｓｔを次式（６）を用いて算出する。
【０１０２】
Ｎｅｓｔ＝ＮＭ＋α・（Ｎａｖｅ−Ｎａｖｅ＿ｏ）  ・・・（６）
ここで、予測周期αは、上述の図１３に示したように、モータ回転速度が低いほど大きい値（長い値）に設定される。これにより、モータ回転速度が低いほど、回転速度ＮＭの算出時点と予測時点との時間差が長くなり、より遠い未来の回転速度が予測されることになる。そのため、低回転時の予測回転速度Ｎｅｓｔの応答遅れが低減される。
【０１０３】
予測回転速度Ｎｅｓｔの算出後、制御装置３０Ａは、Ｓ５０にて、予測回転速度Ｎｅｓｔが前回値Ｎｅｓｔ＿ｏよりも低いか否かを判断する。Ｎｅｓｔ＜Ｎｅｓｔ＿ｏの場合（Ｓ５０にてＹＥＳ）、制御装置３０Ａは、Ｓ５１にて、予測回転速度Ｎｅｓｔを今回値に更新せず前回値Ｎｅｓｔ＿ｏに維持する。その後、処理はＳ５２に移される。
【０１０４】
Ｓ３５にて、ｍｕｐ＜ｍ１と判断された場合（Ｓ３５にてＮＯ）、制御装置３０Ａは、Ｓ４６にて下降カウンタｍｄｗｎがしきい値ｍ２よりも小さいか否かを判断する。ｍｄｗｎ＞ｍ２の場合（Ｓ４６にてＮＯ）、制御装置３０Ａは、Ｓ４８にてＳ３６と同様の処理を行なってモータ回転速度に応じた予測周期αを算出し、Ｓ４９にてＳ４５と同様の処理を行なって予測回転速度Ｎｅｓｔを算出する。
【０１０５】
一方、ｍｄｗｎ＜ｍ２の場合（Ｓ４６にてＹＥＳ）、制御装置３０Ａは、Ｓ４７にて予測回転速度Ｎｅｓｔを次式（７）を用いて算出する。
【０１０６】
Ｎｅｓｔ＝Ｎｅｓｔ＿ｏ−（Ｎａｖｅ＿ｏ−ＮＭ）／Ｌ  ・・・（７）
なお、「Ｌ」はＮａｖｅ＿ｏの演算時刻とＮＭの演算時刻との時間差である。
【０１０７】
Ｓ５２にて、制御装置３０Ａは、今回サイクルで算出した予測回転速度Ｎｅｓｔ、平均回転速度Ｎａｖｅを、それぞれ次回以降の演算に用いる値Ｎｅｓｔ＿ｏ、Ｎａｖｅ＿ｏとしてメモリに記憶する。
【０１０８】
このように、本実施の形態においては、上述の式（６）に示すように、低回転時に応答遅れが生じる回転速度ＮＭを用いて予測回転速度Ｎｅｓｔを算出する。したがって、低回転時に予測回転速度Ｎｅｓｔの応答遅れも生じる。そこで、制御装置３０Ａは、上述の図１３に示したように、予測回転速度Ｎｅｓｔの算出に用いる予測周期αを、モータ回転速度が低いほど大きい値に設定する。これにより、モータ回転速度が低いほど、より遠い未来が予測されるため、低回転時の予測回転速度Ｎｅｓｔの応答遅れを低減することができる。
【０１０９】
また、本実施の形態においては、回転速度ＮＭが変化していない場合には回転速度の予測が禁止される。
【０１１０】
図１４は、回転速度ＮＭ、予測許可カウンタｎｆ、予測禁止フラグＦの時間変化を示す図である。
【０１１１】
回転速度ＮＭが変化していない場合は、図１４に示すように、予測禁止フラグＦは１に設定される。予測禁止フラグＦが１の場合、予測周期αは０に設定される。これにより、上述の式（６）において「α・（Ｎａｖｅ−Ｎａｖｅ＿ｏ）」の項が０となるので、予測回転速度Ｎｅｓｔは回転速度ＮＭそのものに設定される。つまり、回転速度ＮＭが変化しておらず応答遅れを考慮する必要がない状態においては、回転速度の予測が禁止される。
【０１１２】
一方、回転速度ＮＭが変化している場合は、予測許可カウンタｎｆがカウントアップされ、予測許可カウンタｎｆが上限値ｆ１に達した時点で予測禁止フラグＦが０に設定される。これにより、式（６）におけるα・（Ｎａｖｅ−Ｎａｖｅ＿ｏ）の項が作用し、回転速度ＮＭにα・（Ｎａｖｅ−Ｎａｖｅ＿ｏ）に加えられた値が予測回転速度Ｎｅｓｔとして算出される。
【０１１３】
このように、本実施の形態においては、回転速度ＮＭが変化しているか否か（応答遅れを考慮する必要があるか否か）に応じて回転速度の予測の許否を切り替えるため、予測回転速度Ｎｅｓｔをより精度よく算出することができる。
［実施の形態２の変形例１］
上述の実施の形態２では、低回転時に予測周期αを大きい値に変化させることによって、低回転時の回転速度ＮＭの応答遅れに起因する予測回転速度Ｎｅｓｔの応答遅れを低減した。
【０１１４】
これに対し、本変形例では、低回転時の回転速度ＮＭの応答遅れそのものを低減させることによって、予測回転速度Ｎｅｓｔの応答遅れをも低減する。
【０１１５】
図１５は、本変形例に従う制御装置３０Ａが回転速度ＮＭを算出する際の処理手順を示すフローチャートである。なお、図１５に示したステップのうち、前述の図５に示したステップと同じ番号を付しているステップについては、既に説明したため詳細な説明はここでは繰り返さない。
【０１１６】
Ｓ４０にて、制御装置３０Ａは、１ゾーン前の演算時刻Ｔ（ｎ−１）と今回サイクルの演算時刻Ｔとの差が上限時間Ｔｍａｘよりも小さいか否かを判断する。
【０１１７】
本変形例では、上限時間Ｔｍａｘは、回転速度ＮＭが下限回転速度Ｎｔｈであるときのレゾルバ周期を分割数Ｎで割った値に設定される。１レゾルバ周期に対応する角度は３６０°であるため、下限回転速度Ｎｔｈと上限時間Ｔｍａｘとの間には、次式（８）の関係式が成立する。
【０１１８】
Ｎｔｈ＝Ｋ・｛３６０／（Ｎ・Ｔｍａｘ）｝  ・・・（８）
Ｔ−Ｔ（ｎ−１）＜Ｔｍａｘの場合（Ｓ４０にてＹＥＳ）、処理はＳ４１に移される。そうでない場合（Ｓ４０にてＮＯ）、処理はＳ１２ａに移される。
【０１１９】
Ｓ４１にて、制御装置３０Ａは、予測禁止フラグＦが１であるか否かを判断する。Ｆ＝１の場合（Ｓ４１にてＹＥＳ）、処理はＳ４２に移される。そうでない場合（Ｓ４１にてＮＯ）、処理はＳ１２ａに移される。
【０１２０】
Ｓ４２にて、制御装置３０Ａは、メモリに記憶されている１ゾーン前以前のすべての演算時刻Ｔ（ＡＬＬ）およびレゾルバ角θ（Ａｌｌ）を０に更新する。
【０１２１】
図１６は、本変形例における回転速度ＮＭの時間変化を示す図である。
本変形例では、図１６に示すように、モータＭ１の実回転速度（実線）が下限回転速度Ｎｔｈよりも低下した場合、回転速度ＮＭ（一点鎖線）は下限回転速度Ｎｔｈに維持される。これは、Ｔ−Ｔ（ｎ−１）が上限時間Ｔｍａｘ（下限回転速度Ｎｔｈに相当する時間）を超えるため、Ｓ１２ａの処理で、回転速度ＮＭの算出に用いられる時間差ΔＴが、Ｔ−Ｔ（ｎ−１）ではなく、上限時間Ｔｍａｘに制限されるためである。これにより、ΣΔＴ＞Ｎ・Ｔｍａｘのときには、回転速度ＮＭが下限回転速度Ｎｔｈに維持されることになる。
【０１２２】
そして、モータＭ１の実回転速度が増加し下限回転速度Ｎｔｈよりも再び高くなった場合、実回転速度が下限回転速度Ｎｔｈを超えた以降に検出されたレゾルバ角θおよび演算時刻Ｔ（分割境界超え時刻）に基づいて回転速度ＮＭが算出される。これは、Ｔ−Ｔ（ｎ−１）が上限時間Ｔｍａｘを下回った場合（Ｓ４０にてＹＥＳ）に、Ｓ４２の処理において、メモリに記載されていた１ゾーン前以前のすべての演算時刻Ｔ（ＡＬＬ）およびレゾルバ角θ（Ａｌｌ）が０に更新されるためである。これにより、回転速度ＮＭの応答遅れが低減されるため、低回転から一定加速度で加速しているにも関わらず途中で加速度が急変したと誤って認識すること（二点鎖線参照）を回避することができる。そのため、予測回転速度Ｎｅｓｔを過大に算出することも防止することができる。
［実施の形態２の変形例２］
上述の実施の形態２では、上述の式（６）にて予測回転速度Ｎｅｓｔの算出に用いる回転速度の変化率（＝Ｎａｖｅ−Ｎａｖｅ＿ｏ）を、回転速度ＮＭの移動平均から求めた。
【０１２３】
これに対し、本変形例では、予測回転速度Ｎｅｓｔの算出に用いる回転速度の変化率を、回転速度ＮＭからではなく、回転速度Ｎｍｓから算出する。
【０１２４】
図１７は、本変形例に従う制御装置３０Ａの処理手順を示すフローチャートである。なお、図１７に示したステップのうち、前述の図１２に示したステップと同じ番号を付しているステップについては、既に説明したため詳細な説明はここでは繰り返さない。
【０１２５】
Ｓ６０にて、制御装置３０Ａは、過去の複数の回転速度ＮＭの移動平均ではなく、過去の複数の回転速度Ｎｍｓの移動平均を、平均回転速度Ｎａｖｅとして算出する。
【０１２６】
ｍｕｐ＞ｍ１の場合（Ｓ３５にてＹＥＳ）、制御装置３０Ａは、Ｓ６１にて、回転速度Ｎｍｓを使用して求めた平均回転速度Ｎａｖｅの変化率（＝Ｎａｖｅ−Ｎａｖｅ＿ｏ）を算出し、算出した変化率と上述の式（６）とを用いて予測回転速度Ｎｅｓｔを算出する。
【０１２７】
ｍｄｗｎ＞ｍ２の場合（Ｓ４６にてＮＯ）、制御装置３０Ａは、Ｓ６２にて、予測回転速度Ｎｅｓｔを回転速度ＮＭに設定する。すなわち、制御装置３０Ａは回転速度の予測を行なわない。
【０１２８】
このように、本変形例においては、予測回転速度Ｎｅｓｔの算出に用いる回転速度の変化率を、低回転時の応答遅れが懸念される回転速度ＮＭではなく、低回転時でも応答遅れが生じない回転速度Ｎｍｓを使用して算出する。これにより、上述したような予測回転速度Ｎｅｓｔの急変が防止され、予測回転速度Ｎｅｓｔが過大に算出されることを防止することができる。
【０１２９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３０】
５  負極線、６  正極線、７  正極線、７  ゾーン、１０＃  直流電圧発生部、１２  コンバータ、１４  インバータ、２５  レゾルバ、３０，３０Ａ  制御装置、４０，４０Ａ，４１，４２，４３  算出部、５０，５０Ａ  制御部、１００  モータ駆動制御システム、Ｂ  直流電源、Ｃ０，Ｃ１  平滑コンデンサ、Ｍ１  モータ。
【図１】
0005456608.tif 000002
【図２】
0005456608.tif 000003
【図３】
0005456608.tif 000004
【図４】
0005456608.tif 000005
【図５】
0005456608.tif 000006
【図６】
0005456608.tif 000007
【図７】
0005456608.tif 000008
【図８】
0005456608.tif 000009
【図９】
0005456608.tif 000010
【図１０】
0005456608.tif 000011
【図１１】
0005456608.tif 000012
【図１２】
0005456608.tif 000013
【図１３】
0005456608.tif 000014
【図１４】
0005456608.tif 000015
【図１５】
0005456608.tif 000016
【図１６】
0005456608.tif 000017
【図１７】
0005456608.tif 000018