(57)【要約】【課題】ロータの位置を精度よく推定できる範囲を、回転数のより低い範囲に拡大する。【解決手段】第１周期計測部３５は、ハードウェアタイマ３ｃを用いて、電気角周期を表す第１周期値Ｃｃｙを計測する。第２周期計測部３２及び相当値算出部３６は、処理周期Ｔｐより長いカウント周期Ｔｃでカウント動作をする第２タイマを用いてタイマ相当値Ｃｅを生成する。瞬時値調停部３７は、下限回転数以上であればハードウェアタイマ３ｃのカウント値である第１タイマ値ＨＣを、下限回転数より小さければタイマ相当値Ｃｅを、瞬時値Ｃｉｎとして選択する。電気角算出部３８は、瞬時値Ｃｉｎと第１周期値Ｃｃｙとを用いて、電気角周期内での電気角を表す基準電気角θを算出する。【選択図】図２
2019213376.tif 000002
【特許請求の範囲】
【請求項１】
ブラシレスモータ（５）を駆動するモータ制御装置（１）であって、
ロータ（５１）が電気角で１回転する期間を電気角周期として、前記電気角周期の間に取り得る複数の回転位置に対応した検出パターン（Ｕ，Ｖ，Ｗ）を生成するように構成されたパターン生成部（３１）と、
予め設定されたビット幅を有し、回転速度の分解能に応じて周期が設定されたクロック信号に従ってカウント動作を行い、前記検出パターンに従って前記電気角周期毎にカウント値がリセットされるハードウェアタイマである第１タイマ（３ｃ）を用いて、前記電気角周期を表す第１周期値（Ｃｃｙ）を計測するように構成された第１周期計測部（３５）と、
前記クロック信号の周期より長く設定されたカウント周期（Ｔｃ）毎にカウント動作を行い、前記検出パターンが変化する毎にカウント値がリセットされる第２タイマを用いて、前記検出パターンが変化する周期を表す第２周期値（Ｃｐｔ）を計測するように構成された第２周期計測部（３２）と、
前記第２タイマのカウント値である第２タイマ値（Ｃ２）を取得し、該第２タイマ値を、前記検出パターンと前記第２周期値とを用いて、前記カウント周期でカウントした値に相当するタイマ相当値（Ｃｅ）に換算するように構成された相当値算出部（３６）と、
前記第１タイマのカウント値を第１タイマ値（ＨＣ）として、前記電気角周期の間に前記第１タイマ値が飽和する前記ロータの回転数を下限回転数として、前記ロータの回転数が、前記下限回転数より小さいか否かを判定する低速判定部（３４）と、
前記低速判定部にて、前記ロータの回転数が前記下限回転数以上であると判定された場合は前記第１タイマ値を選択し、前記下限回転数より小さいと判定された場合は前記タイマ相当値を選択するように構成された瞬時値調停部（３７）と、
前記瞬時値調停部で選択された値である瞬時値（Ｃｉｎ）と前記第１周期値とを用いて、前記電気角周期内での電気角を表す基準電気角（θ）を算出するように構成された電気角算出部（３８）と
を備えるモータ制御装置。
【請求項２】
請求項１に記載のモータ制御装置であって、
前記相当値算出部は、前記検出パターン毎に予め設定された下限値から上限値までの範囲内で前記タイマ相当値を生成するように構成された
モータ制御装置。
【請求項３】
請求項１又は請求項２に記載のモータ制御装置であって、
前記第１周期計測部は、前記電気角周期毎に取得される前記カウント値の変化が、予め設定された許容範囲内である場合は、複数の前記電気角周期に渡る前記カウント値の平均値を前記第１周期値とし、該カウント値の変化が前記許容範囲を超える場合は、最新の前記カウント値を前記第１周期値とするように構成された、
モータ制御装置。
【請求項４】
請求項１から請求項３までのいずれか１項に記載のモータ制御装置であって、
前記第１周期計測部は、前記ロータの回転数が、前記下限回転数より小さい場合、前記第１タイマの飽和値を前記第１周期値とするように構成された、
モータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ブラシレスモータのロータ位置を推定する技術に関する。
【背景技術】
【０００２】
下記特許文献１には、３個のホールＩＣを用いてブラシレスモータのロータ位置を検出する技術が記載されている。具体的には、マイクロコンピュータ（以下、マイコン）が有するハードウェアタイマを利用して、１個のホールＩＣ信号の電気角周期を表す周期カウント値Ｃｃｙ計測すると共に、予め設定された処理周期毎にハードウェアタイマの瞬時値を表す瞬時カウント値Ｃｉｎを取得する。そして、ロータ位置を表す電気角θ［ｄｅｇ］を、下式を用いて算出する。
【０００３】
θ＝Ｃｉｎ÷Ｃｃｙ×３６０［ｄｅｇ］
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５７０９６９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、発明者の詳細な検討の結果、特許文献１に記載の従来技術では、ロータが、タイマの計測範囲外となるような低速で動作している場合、ロータ位置を精度よく推定できないという課題が見出された。
【０００６】
即ち、ハードウェアタイマのビット幅は固定値であるため、ハードウェアタイマを動作させるクロックの周波数によって、ロータ回転数の分解能と、計測可能なロータ回転数の下限（以下、下限回転数）とが決まる。実際には、要求される分解能が得られるようにクロックの周波数を設定することによって、下限回転数が決まる。
【０００７】
そして、ロータが下限回転数より低い回転数で動作（以下、低速動作）している場合、一周期の計測が終了する前にハードウェアタイマのカウント値が飽和するため、周期を正確に計測できない。その結果、ハードウェアタイマのカウント値からはロータ位置を推定できず、３個のホールＩＣから出力される信号のパターンから６０［ｄｅｇ］間隔という荒い精度でロータ位置を推定することになる。つまり、従来技術では、低速動作時には、ロータ位置の推定精度が劣化し、モータ制御の性能が損なわれていた。
【０００８】
本開示の１つの局面は、ロータの位置を精度よく推定できる範囲を、回転数のより低い範囲に拡大する技術を提供することにある。
【課題を解決するための手段】
【０００９】
本開示の一態様によるモータ制御装置（１）は、ブラシレスモータを駆動する。モータ制御装置は、パターン生成部（３１）と、第１周期計測部（３５）と、第２周期計測部（３２）と、相当値算出部（３６）と、瞬時値調停部（３７）と、電気角算出部（３８）と、を備える。
【００１０】
パターン生成部は、電気角周期の間に取り得る複数の回転位置に対応した検出パターンを生成する。電気角周期は、ロータが電気角で１回転する期間である。
第１周期計測部は、第１タイマ（３ｃ）を用いて、電気角周期を表す第１周期値を算出
する。第１タイマは、予め設定されたビット幅を有し、ロータの回転数の分解能に応じて周期が設定されたクロック信号に従ってカウント動作を行い、検出パターンに従って電気角周期毎にカウント値がリセットされるハードウェアタイマである。
【００１１】
第２周期計測部は、第２タイマを用いて、検出パターンが変化する周期を表す第２周期値を算出する。第２タイマは、クロック信号の周期より長く設定されたカウント周期毎にカウント動作を行い、検出パターンが変化する毎にカウント値がリセットされる。
【００１２】
相当値算出部は、第２タイマのカウント値である第２タイマ値を取得し、該第２タイマ値を、検出パターンと第２周期値とを用いて、タイマ相当値に換算する。タイマ相当値は、電気角周期の基点となるタイミングから第２タイマ値が得られたタイミングまでの期間を、カウント周期でカウントした値に相当する。
【００１３】
低速判定部は、ロータの回転数が、下限回転数より小さいか否かを判定する。下限回転数は、第１タイマのカウント値を第１タイマ値として、電気角周期の間に第１タイマ値が飽和するロータの回転数である。
【００１４】
瞬時値調停部は、低速判定部にて、ロータの回転数が下限回転数以上であると判定された場合は第１タイマ値を選択し、下限回転数より小さいと判定された場合はタイマ相当値を選択する。
【００１５】
電気角算出部は、選択部で選択された値である瞬時値と第１周期値とを用いて、電気角周期内での電気角を表す基準電気角を算出する。
このような構成によれば、ロータの回転数が下限回転数以上である場合、第１タイマ値を用いて、電気角周期内での位相である基準電気角が算出される。また、ロータの回転数が下限回転数より小さい場合、より低速のカウント周期で動作する第２タイマのカウント値を用いて、検出パターンが変化する期間内での位相を、電気角周期内での位相に換算したタイマ相当値を用いて、基準電気角が算出される。
【００１６】
このため、ロータの回転数が、第１タイマでは測定不能な下限回転数より低い場合でも、ロータ位置を精度よく測定することができる。また、高速性が要求される第１タイマにはハードウェアタイマが用いられるが、より低速な第２タイマはソフトウェアによって構成することができる。第２タイマをソフトウェアで構成した場合、カウント値のビット幅もハードウェアに制約されることがないため、任意の大きさに設定でき、これにより、測定可能な回転数の下限値を大幅に改善することができる。
【００１７】
また、第２タイマを用いた測定結果を、第１タイマ値と同等のタイマ相当値に変換しており、ロータの回転数に応じて第１タイマ値およびタイマ相当値のいずれかを瞬時値として選択するため、いずれが選択された場合でも同一の演算によって基準電気角を算出できる。
【００１８】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１９】
【図１】モータ制御装置、および制御対象となるブラシレスモータの構成を示すブロック図である。
【図２】複数の検出パターンと、各検出パターンにおけるリミット値との関係を示す一覧表である。
【図３】モータ制御装置の制御部の機能的な構成を示す機能ブロック図である。
【図４】制御部の各部の動作を例示するタイミング図である。
【図５】回転数と、検出される基準電気角とを例示するグラフである。
【発明を実施するための形態】
【００２０】
以下、図面を参照しながら、本開示の実施形態を説明する。
［１．構成］
図１に示すモータ制御装置１は、ブラシレスモータ５を駆動制御する装置である。ブラシレスモータ５は、三相モータであり、ロータ５１と、複数のステータ５２と、３個のホールＩＣ５３とを備える。
【００２１】
ロータ５１は、複数の磁極対を回転自在に支持する。磁極対には、永久磁石が用いられる。磁極対は、ロータ５１の外周においてＮ極とＳ極とが交互かつ均等に並ぶように配置される。本実施形態では、磁極対の数をＮとして、Ｎ＝５である場合について例示するが、これに限定されるものではなく、磁極対の数は任意でよい。
【００２２】
ステータ５２は、ロータ５１の周囲に等角度間隔で配置され、巻線が巻回される。ステータ５２は、Ｕ相、Ｖ相およびＷ相のいずれかの巻線がそれぞれ巻回される。本実施形態では、ステータ５２の数が３である場合について例示するが、これに限定されるものではなく、ステータ５２の数は、３の倍数であればよい。
【００２３】
３個のホールＩＣ５３は、いずれもホール素子が組み込まれた集積回路であり、ロータと一体に回転する永久磁石の磁極を検出して、磁極の極性に対応した信号レベルを有する検出信号Ｓｕ，Ｓｖ，Ｓｗを出力する。検出信号Ｓｕ，Ｓｖ，Ｓｗの信号レベルは、例えば、ホールＩＣ５３と対向する磁極がＮ極であるときにハイレベルＨｉ、Ｓ極であるときにロウレベルＬｏとなる。
【００２４】
３個のホールＩＣ５３は、電気角で１２０［ｄｅｇ］ずつ離れた位置に配置される。電気角とは、個々のホールＩＣ５３が出力する検出信号の１周期を３６０［ｄｅｇ］とした時の角度を表す。ここでは、ロータ５１が５個の磁極対（即ち、磁極数は１０）を有するため、機械角では、２４（＝１２０／５）［ｄｅｇ］ずつ離れた位置に配置される。但し、機械角での配置間隔は２４［ｄｅｇ］に限るものではなく、例えば９６（＝１２０／５＋３６０／５）［ｄｅｇ］でもよい。機械角とは、ロータ５１の１回転を３６０［ｄｅｇ］としたときの角度を表す。これにより、３つの検出信号Ｓｕ，Ｓｖ，Ｓｗは、図４に示すように、１２０［ｄｅｇ］ずつ位相が異なる。
【００２５】
モータ制御装置１は、インタフェース（以下、Ｉ／Ｆ）部２と、制御部３と、駆動回路４とを備える。
Ｉ／Ｆ部２は、３つの検出信号Ｓｕ，Ｓｖ，Ｓｗを入力し、これらの信号に、増幅処理や波形整形処理などを施して制御部３へ出力する。
【００２６】
制御部３は、検出信号Ｓｕ，Ｓｖ，Ｓｗにより電気角６０［ｄｅｇ］単位で表現される低精度な回転位置から、より高精度に回転位置を表現する基準電気角θを推定し、この基準電気角θに応じたデューティ比を有するＰＷＭ信号を生成して、駆動回路４に出力する。
【００２７】
駆動回路４は、ＰＷＭ信号に応じた所定の周期で各相のステータ５２の巻線に通電することで、巻線と磁極との間に発生する吸引力および反発力によって、ロータ５１を回転させる。
【００２８】
制御部３は、ＣＰＵ３ａと、例えば、ＲＡＭ又はＲＯＭ等の半導体メモリ（以下、メモリ３ｂ）と、ハードウェアタイマ３ｃと、を有するマイクロコンピュータを備える。制御部３の各機能は、ＣＰＵ３ａが非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリ３ｂが、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムが実行されることで、プログラムに対応する方法が実行される。なお、制御部３は、１つのマイクロコンピュータを備えてもよいし、複数のマイクロコンピュータを備えてもよい。
【００２９】
メモリ３ｂには、プログラムの他、制御部３の機能を実現するために必要なデータとしてパターンテーブルが記憶される。パターンテーブルは、図２に示すように、検出パターン（Ｕ，Ｖ，Ｗ）と、該検出パターン（Ｕ，Ｖ，Ｗ）に対応づけられるリミット値とが記憶されている。検出パターン（Ｕ，Ｖ，Ｗ）は、検出信号Ｓｕ，Ｓｖ，Ｓｗによって表現される信号レベルの組み合わせパターンである。なお、図１に示したロータ５１の時計周りをＣＷ、反時計周りをＣＣＷと表記するものとして、検出パターン（Ｕ，Ｖ，Ｗ）は、ロータ５１の回転方向がＣＷである場合に変化する順番に記憶される。各検出パターンのリミット値は、それぞれ上限角および下限角を有する。上限角と下限角とは、両者の差が６０［ｄｅｇ］となり、且つ、順方向に並ぶ先の検出パターンの上限角と後の検出パターンの下限角とが一致するように設定される。ここでは、検出信号Ｓｕ，Ｓｖ，ＳｗのハイレベルＨｉを１、ロウレベルＬｏを０で表すものとする。そして、検出パターン（Ｕ，Ｖ，Ｗ）が（１，０，１）である場合における下限角を基準（即ち、０［ｄｅｇ］）にして設定される。
【００３０】
ハードウェアタイマ３ｃは、第１タイマに相当する。ハードウェアタイマ３ｃは、カウント値が１６ビットで表現される。ハードウェアタイマ３ｃは、所定の周波数を有するクロックＣＫによって駆動される。ハードウェアタイマ３ｃのカウント値を第１タイマ値ＨＣとして出力すると共に、いずれか一つのホールＩＣ５３からの検出信号、ここではＵ相の検出信号Ｓｕの立ち上がりエッジをトリガに、カウント値を第１周期値Ｃｒとして保存し、計測用のカウンタをリセットする。
【００３１】
ハードウェアタイマ３ｃを駆動するクロックＣＫの周波数ｆhwt［Ｈｚ］は、ロータ５１の回転数（以下、ロータ回転数）がＮrated［ｒｐｍ］の時に、±Ｎerror［ｒｐｍ］以下の回転数精度が得られるように設定される。詳しくは、ロータ回転数Ｎratedに相当する電気角周期を、周波数ｆhwtでカウントしたときのカウント値を求め、そのカウント値を１カウント変化させたときにロータ回転数の変化がＮerror以下となるように、周波数ｆhwtを設定する。但し、周波数ｆhwtは、ハードウェアタイマ３ｃの駆動用に用意されたクロックを分周することで得られる周波数の中から、上記条件を満たす最小の周波数が選択される。なお、ハードウェアタイマ３ｃのビット数は、上述の１６ビットに限定されるものではない。
【００３２】
周波数がｆhwtである場合、ハードウェアタイマ３ｃのカウント値がカウント開始から飽和するまでに要する時間が２１６／ｆhwt［ｓ］である。また、ハードウェアタイマ３ｃによって検出可能なロータ回転数の下限である下限回転数は６０÷極対数÷（２１６／ｆhwt）［ｒｐｍ］となる。
【００３３】
制御部３は、図３に示すように、パターン生成部３１と、第２周期計測部３２と、回転判定部３３と、低速判定部３４と、第１周期計測部３５と、相当値算出部３６と、瞬時値調停部３７と、電気角算出部３８と、信号生成部３９と、を備える。これら制御部３に含まれる各部の機能を実現する手法は、ソフトウェアに限るものではなく、その一部又は全部の機能は、一つあるいは複数のハードウェアを用いて実現されてもよい。例えば、上記機能がハードウェアである電子回路によって実現される場合、その電子回路は、デジタル
回路、又はアナログ回路、あるいはこれらの組合せによって実現されてもよい。
【００３４】
なお、瞬時値調停部３７、電気角算出部３８、および信号生成部３９は、予め設定された処理周期Ｔｐ毎に処理が実行される。処理周期Ｔｐは、例えば、ｆｐ［Ｈｚ］として、Ｔｐ＝１／ｆｐ［ｓ］に設定される。また、第２周期計測部３２、回転判定部３３、低速判定部３４、および相当値算出部３６は、処理周期Ｔｐより長く設定されたカウント周期Ｔｃ毎に処理が実行される。カウント周期Ｔｃは処理周期Ｔｐの整数倍の長さを有する。
【００３５】
パターン生成部３１は、処理周期Ｔｐ毎に、検出信号Ｓｕ，Ｓｖ，Ｓｗの信号レベルがハイレベルかロウレベルかを判断し、判断結果である検出パターン（Ｕ，Ｖ，Ｗ）をバッファに記憶する。パターン生成部３１は、現在の検出パターンである現パターンと、バッファに記憶された検出パターンである前パターンとを比較して、現パターンが前パターンから変化したか否かを判断し、その判断結果を表す切替信号Ｓｘを生成する。パターン生成部３１は、現パターンが前パターンから変化した場合に、バッファの記憶内容を更新する。切替信号Ｓｘは、第２周期計測部３２に入力される。バッファの記憶内容は、第２周期計測部３２、回転判定部３３および相当値算出部３６に入力される。
【００３６】
第２周期計測部３２は、ソフトウェアによって実現されるタイマである第２タイマを有する。第２周期計測部３２は、カウント周期Ｔｃ毎に第２タイマのカウント動作を実行し、切替信号Ｓｘに従い、検出パターン（Ｕ，Ｖ，Ｗ）の変化をトリガとしてカウント値がリセットされる。第２周期計測部３２は、リセットの直前に得られるカウント値を、パターンが変化する周期Ｔｐｔを表す第２周期値Ｃｐｔとして出力する。また、第２周期計測部３２は、リセット時点からの経過時間に対応した値として、カウント値Ｃ２を出力する。第２周期値Ｃｐｔは低速判定部３４および相当値算出部３６に入力され、カウント値Ｃ２は相当値算出部３６に入力される。
【００３７】
回転判定部３３は、図２に示したパターンテーブルを参照して、過去に取得された検出パターンと新たに取得された検出パターンとを比較し、検出パターン（Ｕ，Ｖ，Ｗ）の変化の仕方から、ロータ５１の回転方向を判定し、その判定結果を示す回転判定信号Ｓｒを出力する。つまり、検出パターン（Ｕ，Ｖ，Ｗ）が、パターンテーブルの上から下へ向かうように変化する場合はＣＷと判定し、下から上へ向かうように変化する場合はＣＣＷと判定する。回転判定信号Ｓｒは、相当値算出部３６および電気角算出部３８に入力される。
【００３８】
低速判定部３４は、第２周期計測部３２で計測された第２周期値Ｃｐｔが予め設定された低速閾値を超えたか否かを判断し、その判断結果を表す低速判定信号Ｓｖを出力する。低速判定信号Ｓｖは、第１周期計測部３５および瞬時値調停部３７に入力される。低速閾値は、ロータ回転数の下限回転数に相当するパターン周期Ｔｐｔを、カウント周期Ｔｃで除した値に設定される。つまり、低速判定部３４は、第２周期値Ｃｐｔが低速閾値を超えている場合に、ロータ回転数が下限回転数に満たない、即ち、ハードウェアタイマ３ｃでは計測不能な回転数まで低下していると判定する。また、低速判定部３４は、カウント値Ｃ２が低速閾値を超えてもリセットされない場合にも、ロータ回転数が下限回転数に満たないと判定する。
【００３９】
第１周期計測部３５は、周期バッファ３５１と、周期調停部３５３とを備える。
ハードウェアタイマ３ｃは、ハードウェアタイマ３ｃが検出信号Ｓｕに従ってリセットされる毎に、リセット直前のカウント値Ｃｒを、周期バッファ３５１に記憶する。バッファリングは、ソフトウェアにより実行される。周期バッファ３５１は、ロータ５１の磁極対と同数である過去５回分のカウント値Ｃｒが少なくとも記憶される。なお、図３において［ｎ］はバッファに記憶された最新のカウント値Ｃｒであることを表す。［ｍａｘ］は
ハードウェアタイマ３ｃのカウント値の上限である飽和値を表す。周期バッファ３５１は、［ｎ］を第１データとし、［ｍａｘ］を第２データとして出力する。
【００４０】
周期調停部３５３は、低速判定信号Ｓlowに従って、第１データ［ｎ］および第２データ［ｍａｘ］のいずれかを選択し、ロータ５１の電気角周期を表す第１周期値Ｃｃｙの算出に必要な周期データＤｃｙとして出力する。具体的には、低速判定信号Ｓlowにより、ロータ回転数が下限回転数より低下していることが示されている場合は、第２データ［ｍａｘ］が周期データＤｃｙとして選択される。ロータ回転数が下限回転数以上である場合は、第１データ［ｎ］が周期データＤｃｙとして選択される。選択された周期データＤｃｙは、電気角算出部３８に入力される。
【００４１】
相当値算出部３６は、符号付与部３６１と、リミット設定部３６２と、換算部３６３と、を備える。
符号付与部３６１は、カウント周期Ｔｃ毎に第２周期計測部３２からカウント値Ｃ２および第２周期値Ｃｐｔを取得し、（１）式に従って、パターン周期内での位相を表す符号付きカウント値ＳＣを算出する。
【００４２】
ＳＣ＝Ｓign×（Ｃ２÷Ｃｐｔ）×（［ｍａｘ］×６０÷３６０）  （１）
即ち、符号付与部３６１は、カウント値Ｃ２を第２周期値Ｃｐｔで除した結果に、ハードウェアタイマ３ｃのカウント値の上限である飽和値［ｍａｘ］をパターン周期（即ち、６０［ｄｅｇ］）分の値に換算した値を乗じ、更に、回転判定信号Ｓｒに従って符号Ｓignを付与することで符号付きカウント値ＳＣを算出する。符号Ｓignは、具体的には、回転判定信号Ｓｒにより示される回転方向がＣＷである場合はプラス符号となり、回転方向がＣＣＷである場合はマイナス符号となる。
【００４３】
リミット設定部３６２は、パターン生成部３１から検出パターン（Ｕ，Ｖ，Ｗ）を取得し、パターンテーブルを参照して、取得した検出パターン（Ｕ，Ｖ，Ｗ）に応じた下限角αＬおよび上限角αＵを取得し、（２）（３）式に従って、下限値ＣＬおよび上限値ＣＵを算出する。
【００４４】
ＣＬ＝αＬ÷３６０×［ｍａｘ］    （２）
ＣＵ＝αＵ÷３６０×［ｍａｘ］    （３）
即ち、リミット設定部３６２は、取得した下限角αＬおよび上限角αＵを、それぞれ３６０［ｄｅｇ］で除した結果に、ハードウェアタイマ３ｃのカウント値の上限である飽和値［ｍａｘ］を乗じることで、下限値ＣＬおよび上限値ＣＵを算出する。この下限値ＣＬおよび上限値ＣＵは、取得した検出パターン（Ｕ，Ｖ，Ｗ）の状態が維持されている間に、タイマ相当値Ｃｅが取り得る値の範囲を表す。
【００４５】
換算部３６３は、回転判定信号Ｓｒに従い、回転方向がＣＷである場合は下限値ＣＬを基準値Ｃｆとして選択し、回転方向がＣＣＷである場合は上限値ＣＵを基準値Ｃｆとして選択する。また、換算部３６３は、選択された基準値Ｃｆに、符号付与部３６１からの符号付きカウント値ＳＣを加算する。具体的には、回転方向がＣＷの場合は、基準値Ｃｆである下限値ＣＬとプラス符号のカウント値との加算が実行され、回転方向がＣＣＷの場合は、基準値Ｃｆである上限値ＣＵとマイナス符号のカウント値との加算、即ち、上限値ＣＵからのカウント値の減算が実行される。更に換算部３６３は、加算結果が下限値ＣＬから上限値ＣＵまでの許容範囲内にある場合は、加算結果をそのままタイマ相当値Ｃｅとして出力する。また換算部３６３は、加算結果が許容範囲外にある場合は、ガード値によって制限された値をタイマ値Ｃｅとして出力する。具体的には、加算結果が、上限値ＣＵより大きな値であれば、ガード値である上限値ＣＵをタイマ相当値Ｃｅとし、下限値ＣＬより小さな値であれば、ガード値である下限値ＣＬをタイマ相当値Ｃｅとして出力する。タ
イマ相当値Ｃｅは、瞬時値調停部３７に入力される。
【００４６】
つまり、相当値算出部３６では、検出パターン（Ｕ，Ｖ，Ｗ）によって特定される電気角で６０［ｄｅｇ］の範囲内での位相（即ち、ロータ５１の回転位置）を推定し、更に、検出パターン（Ｕ，Ｖ，Ｗ）を用いて電気角で３６０［ｄｅｇ］の範囲（即ち、１周期）内での位相を表す値に換算したものをタイマ相当値Ｃｅとして出力する。
【００４７】
瞬時値調停部３７は、低速判定信号Ｓｖに従い、ロータ回転数が下限回転数以上である場合は、第１タイマ値ＨＣを選択し、ロータ回転数が下限回転数より低い場合は、タイマ相当値Ｃｅを選択して、選択された値を瞬時値Ｃｉｎとして出力する。瞬時値Ｃｉｎは、電気角算出部３８に入力される。
【００４８】
電気角算出部３８は、周期データＤｃｙを第１周期値Ｃｃｙとし、この第１周期値Ｃｃｙと、瞬時値Ｃｉｎと、回転判定信号Ｓｒとに基づき、回転判定信号ＳｒがＣＷの時は（４）式に従って、回転判定信号ＳｒがＣＣＷの時は（５）式に従って、基準電気角θを算出する。（４）及び（５）式は、回転方向によりロータ位置と立上がりエッジの関係が１８０［ｄｅｇ］変化することを意味する。
【００４９】
θ＝Ｃｉｎ÷Ｃｃｙ×３６０［ｄｅｇ］              （４）
θ＝−Ｃｉｎ÷Ｃｃｙ×３６０＋１８０［ｄｅｇ］    （５）
ここでは、第１周期値Ｃｃｙとして、周期データＤｃｙをそのまま用いているが、これに限定されるものではない。例えば、過去Ｎ周期分の周期データＤｃｙをＤ１〜ＤＮで表すものとして、（６）式に示すように、機械角で１周期分に相当する電気角でＮ周期分の周期データＤ１〜ＤＮの平均値を、第１周期値Ｃｃｙとして用いてもよい。なお、平均化するデータ数は、Ｎ個に限定されるものではない。
【００５０】
Ｃｃｙ＝（Ｄ１＋Ｄ２＋…＋ＤＮ）／Ｎ              （６）
信号生成部３９は、基準電気角θに従って、ステータ５２の巻線の通電制御に用いる３種類のＰＷＭ信号を生成する。
【００５１】
［２．動作］
図４に示すように、検出信号Ｓｕ，Ｓｖ，Ｓｗは、電気角で１２０ｄｅｇずつずれたタイミングで信号レベルが変化し、回転方向が一定である場合、電気角周期（即ち、３６０ｄｅｇ）の間に６つの検出パターン（Ｕ，Ｖ，Ｗ）が現れる。
【００５２】
第１タイマ値ＨＣは処理周期Ｔｐ毎に取得される。第２タイマ値Ｃ２は、カウント周期Ｔｃ毎に取得される。なお、第２タイマ値Ｃ２は、第１タイマ値ＨＣより緩やかに変化する。
【００５３】
図示を省略するが、第１周期値Ｃｃｙは、処理周期Ｔｐ毎またはカウント周期Ｔｃ毎に取得され、その値は電気角の１周期毎に変化する。第２周期値Ｃｐｔは、カウント周期Ｔｃ毎に取得され、その値は、電気角の６０［ｄｅｇ］毎に変化する。タイマ相当値Ｃｅは、カウント周期Ｔｃ毎に算出される。
【００５４】
基準電気角θは、処理周期Ｔｐ毎に算出される。
回転判定信号Ｓｒは、処理周期Ｔｐ毎に確認され、検出パターン（Ｕ，Ｖ，Ｗ）が変化するタイミングで変化する。低速判定値Ｓｖは、カウント周期Ｔｃ毎に確認される。
低速判定は、カウント周期毎に行われる。
【００５５】
第１周期値Ｃｃｙは、周期データＤｃｙに基づいて処理周期Ｔｐ毎またはカウント周期
Ｔｃ毎に算出され、基準電気角θは、瞬時値Ｃｉｎと第１周期値Ｃｃｙを用いて処理周期Ｔｐ毎に算出される。
【００５６】
瞬時値Ｃｉｎは、ロータ回転数が下限回転数以上である非低速動作時には第１タイマ値ＨＣが用いられ、ロータ回転数が下限回転数より小さい低速動作時にはタイマ相当値Ｃｅが用いられる。
【００５７】
非低速動作時には、周期データＤｃｙとして第１データ［ｎ］が選択される。つまり、ハードウェアタイマ３ｃから得られる電気周期のカウント値である第１データ［ｎ］が、周期データＤｃｙ、ひいては第１周期値Ｃｃｙとして使用される。
【００５８】
低速動作時には、周期データＤｃｙとして第２データ［ｍａｘ］が選択される。つまり、下限回転数のときの周期を表す飽和値が、周期データＤｃｙ、ひいては第１周期値Ｃｃｙとして使用される。
【００５９】
図４では、ロータ５１が非低速動作である場合のタイミング図を示しているが、低速動作である場合、検出信号Ｓｕ，Ｓｖ，Ｓｗ、検出パターン（Ｕ，Ｖ，Ｗ）が時間軸方向に引き伸ばされる点、ハードウェアタイマ３ｃの代わりにソフトウェアで動作する第２タイマを用いて算出された瞬時値Ｃｉｎ（即ち、タイマ相当値Ｃｅ）が用いられる点以外は、同様なタイミング図となる。
【００６０】
図５は、回転方向が変化するときに回転数がゼロとなる前後で生じる低速動作時において、タイマ相当値に基づいて算出される基準電気角θおよび検出パターンから設定されるガード値を例示したグラフである。図５の下側のグラフにおいて、実線は基準電気角θであり、一点鎖線はガード値であり、破線は基準電気角θの理論値である。
【００６１】
低速動作時には、第１周期値Ｃｃｙの算出に、下限回転数の時の周期を表すカウント値［ｍａｘ］が用いられるため、回転数がゼロに近づくほど、第１周期値Ｃｃｙは実際の値より小さく見積もられることになり、基準電気角θは、理論値より大きめの値が算出される。しかし、検出パターン（Ｕ，Ｖ，Ｗ）が変化するパターン周期毎にガード値が設定され、ガード値によって基準電気角θの値が制限されるため、パターン周期を跨いで誤差が蓄積されることがない。
【００６２】
なお、ガード値は、検出パターン（Ｕ，Ｖ，Ｗ）に従って設定されるため、応答性よく正しく設定されるが、回転方向の判定は、複数のパターン周期に渡る検出パターンの比較が必要であり、実際の状況に対して遅延が生じる。この影響で、図５中の時刻６の周辺では、実際には電気角が減少しているにも関わらず、基本電気角θが増加するというずれが生じている。しかし、回転方向の判定が正しく反映された後の基本電気角θは、理論値とのずれが十分に抑制されている。
【００６３】
［３．効果］
以上詳述した第１実施形態によれば、以下の効果を奏する。
（１）モータ制御装置１では、ロータ回転数がハードウェアタイマ３ｃでは測定不能となる下限回転数より低い場合、より低速のカウント周期Ｔｃで動作する第２タイマを用いて基準電気角θを算出する。このため、ロータ回転数が、下限回転数より低い場合でも、ロータ位置を精度よく推定することができる。具体的には、ｆhwt［Ｈｚ］のクロックで動作するハードウェアタイマ３ｃでは、計測可能な下限回転数は６０÷極対数÷（２１６／ｆhwt）［ｒｐｍ］である。これに対して、カウント周期Ｔｃ（＞１／ｆhwt）のクロックで動作することに相当する第２タイマを用いることで、計測可能な下限回転数を６０÷極対数÷（２１６／（１／Ｔｃ））［ｒｐｍ］に引き下げることができる。
【００６４】
（２）第２タイマを用いる場合、電気角周期内での位相を直接計測するのではなく、検出パターン（Ｕ，Ｖ，Ｗ）が変化するパターン周期と、パターン周期内での位相とを計測し、これを電気角周期内での位相を表すタイマ相当値に換算している。このため、電気角周期内での位相を直接計測する場合と比較して、より短時間で基準電気角を推定できる。また、タイマ相当値Ｃｅは、第１タイマ値ＨＣと同等の値であるため、瞬時値Ｃｉｎとしていずれの値が選択された場合でも、基準電気角θを同一の演算によって算出でき、従来の構成を有効利用できる。
【００６５】
（３）パターン周期内での位相を計測する時に、検出パターン（Ｕ，Ｖ，Ｗ）に応じたガード値を設定することで、パターン周期内での誤差が、パターン周期を跨いで蓄積されることがないようにされている。従って、低速動作時は、回転数変化に対する外乱の寄与度大きいにも関わらず、その影響を、個々のパターン周期内だけに留めることができ、全体としての基準電気角θの推定精度を向上させることができる。
【００６６】
（４）第２タイマは、ソフトウェアにより実現されるため、カウント値のビット幅を、ハードウェアに制約されることなく任意の大きさに設定できるため、計測可能な回転数の下限値を大幅に改善できる。
【００６７】
［４．他の実施形態］
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【００６８】
（ａ）上記実施形態では、一つの第２タイマを用いて一つのカウント相当値Ｃｅが算出されるように構成されているが、カウント周期Ｔｃの異なる複数の第２タイマを用いて複数のカウント相当値Ｃｅが算出されるように構成されてもよい。即ち、カウント周期Ｔｃを長くするほど、より低速まで計測できる一方で回転数の分解能が低下する。つまり、計測対象となる回転数に応じた分解能を実現する複数のカウント相当値Ｃｅを用いることで、必要な分解能を保持しつつ、計測可能な回転速度の下限をより引き下げることができる。
【００６９】
（ｂ）上記実施形態では、相当値算出部３６は、検出パターン（Ｕ，Ｖ，Ｗ）と回転方向とで決まる値を基準として、符号付きカウント値ＳＣを加算することで、タイマ相当値Ｃｅを算出しているが、本開示は、これに限定されるものではない。例えば、直前のパターン周期の最後に得られた値を基準として、符号付きカウント値ＳＣを加算することで、タイマ相当値Ｃｅを算出してもよい。この場合、回転方向の判定が誤っている場合でも、パターン周期の開始時点の値は、常に、直前のパターン周期の終了時点の値となる。このため、回転方向の判定が誤っている場合に、そのパターン周期でのタイマ相当値Ｃｅは、開始から終了まで一定の値となるものの、実際の位相変化とは逆方向にタイマ相当値Ｃｅが変化することを阻止できる。
【００７０】
（ｃ）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【００７１】
（ｄ）上述したモータ制御装置の他、当該モータ制御装置を構成要素とするシステム、当該モータ制御装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、ロータ位置の推定方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【００７２】
１…モータ制御装置、２…インタフェース部、３…制御部、３ａ…ＣＰＵ、３ｂ…メモリ、３ｃ…ハードウェアタイマ、４…駆動回路、５…ブラシレスモータ、３１…パターン生成部、３２…第２周期計測部、３３…回転判定部、３４…低速判定部、３５…第１周期計測部、３６…相当値算出部、３７…瞬時値調停部、３８…電気角算出部、３９…信号生成部、５１…ロータ、５２…ステータ、５３…ホールＩＣ、３５１…周期バッファ、３５３…周期調停部、３６１…符号付与部、３６２…リミット設定部、３６３…換算部。
【図１】
2019213376.tif 000003
【図２】
2019213376.tif 000004
【図３】
2019213376.tif 000005
【図４】
2019213376.tif 000006
【図５】
2019213376.tif 000007