(57)【特許請求の範囲】
【請求項１】
駆動されると電流信号に周期的なリプルを発生させるモータと、
前記モータの前記電流信号からリプル成分を抽出して、そのリプル成分をパルス化したパルス信号を出力する抽出回路と、
前記パルス信号を入力するとともに、前記モータを制御する制御部と、を備え、
前記制御部が、
前記パルス信号のパルス数を計数する第一処理と、
前記パルス信号のパルスごとにパルス周期を計時する第二処理と、
前記第二処理で計時されたパルス周期が正常周期を含む正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記第二処理で計時されたパルス周期を積算して得られた値を累積期間として算出する第三処理と、
前記第二処理で計時されたパルス周期が前記正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記パルス信号のパルス数を計数する第四処理と、
前記第三処理で算出された累積期間を前記正常周期で除することで得られた値を推定パルス数として算出する第五処理と、
前記第一処理で計数されたパルス数に前記第五処理で算出された推定パルス数を加算して、それに前記第四処理で計数されたパルス数を減じて得られる値に、前記第一処理で計数されたパルス数を更新する第六処理と、を実行する、モータ制御装置。
【請求項２】
前記モータの電圧を検出する電圧検出部と、
前記モータの電流を検出する電流検出部と、を更に備え、
前記第二処理では、前記制御部が、計時したパルス周期を順次記憶し、
前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、
前記第七処理は、
前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出するとともに、前記基準周期を含む基準範囲を算出する処理と、
前記第二処理で計時されたパルス周期が前記基準範囲内及び前記正常範囲内に収まっている場合、前記第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新し、その平均値から所定値を減算して得られた値に前記正常範囲の下限値を更新し、その平均値に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理と、
前記第二処理で計時されたパルス周期が前記基準範囲から外れている場合又は前記第二処理で計時されたパルス周期が前記正常範囲から外れている場合、前記正常周期及び前記正常範囲を更新せずに維持する処理と、を含む、請求項１に記載のモータ制御装置。
【請求項３】
前記モータの電圧を検出する電圧検出部と、
前記モータの電流を検出する電流検出部と、を更に備え、
前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、
前記第七処理は、
前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出し、前記正常周期を前記基準周期に更新し、前記基準周期から所定値を減算して得られた値に前記正常範囲の下限値を更新し、前記基準周期に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理を含む、請求項１に記載のモータ制御装置。
【請求項４】
請求項１から３の何れか一項に記載のモータ制御装置と、
前記モータによって駆動される可動部を有するシート本体と、を備える車両用シート装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置及び車両用シート装置に関する。
【背景技術】
【０００２】
車両用シート、電動ドアミラー、パワーウィンドウ等には可動部が設けられ、可動部がモータによって駆動される。可動部の位置及び速度を制御装置によって正確に制御するためには、動作中のモータの回転量や位置を検出する必要がある。モータの回転量や位置を検出するべく、センサが用いられる。つまり、センサ（例えば、ホール素子、エンコーダ、リードスイッチセンサ）がモータ等に設けられ、動作中のモータの回転に同期した信号がセンサによって出力され、センサの出力信号が検出回路（例えば、コンパレータやＡＤ変換器）を介して制御装置に入力される。
【０００３】
ところが、センサを用いると、コストアップの要因になってしまう。そこで、センサを用いずに、モータの電流信号を利用して、モータの後段回路によってモータの回転量を検出する技術が提案されている（例えば、特許文献１、特許文献２参照）。モータが動作している際には、モータの電流信号には直流成分、低周波成分及び高周波ノイズ等が含まれており、更に、モータの回転に同期した脈動（以下、リプル（ripple）という。）成分も含まれている。特許文献１、特許文献２に記載の技術では、モータの電流信号を後段回路によって処理することによってリプル成分を抽出する。具体的には、後段回路のフィルタによってモータの電流信号のうち直流成分、低周波成分及び高周波ノイズを除去し、リプル成分を通過させる。モータの電流信号の各成分の周波数が環境変化によって変動するため、後段回路のフィルタには、カットオフ周波数を可変することができるスイッチト・キャパシタ・フィルタを用いる。具体的には、スイッチト・キャパシタ・フィルタを通過した信号が演算回路にフィードバックされ、演算回路がフィードバック信号からカットオフ周波数を演算して、スイッチト・キャパシタ・フィルタのカットオフ周波数を設定する。
【０００４】
特許文献１に記載の技術では、リプルパルス整形回路が、スイッチト・キャパシタ・フィルタ（ＳＣＦ）を通過したリプル成分をパルス化し、カウンタ（ＣＴ）が、リプルパルス整形回路の出力信号のパルス数を計数する。カウンタ（ＣＴ）によって計数されたパルス数が、モータの回転量に相当するとともに、可動部の移動量に相当する。
【０００５】
ところが、スイッチト・キャパシタ・フィルタ及びリプルパルス整形回路等によって出力されるパルス信号のパルスが複数に割れてしまい、正常よりも多くのパルスが発生することがある（例えば、特許文献３参照）。スイッチト・キャパシタ・フィルタ及びリプルパルス整形回路等によって出力されるパルス信号のパルスが抜けてしまい、パルス信号に発生するパルスが正常よりも少ないことがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−９５８５号公報
【特許文献２】特開２００８−２８３７６２号公報
【特許文献３】特表２００３−５３６３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、パルス割れが生じると、カウンタ等によって数えられたパルス数が、実際のモータの回転量に相当するパルス数よりも多くなってしまう。一方、パルス割れが生じると、カウンタ等によって数えられたパルス数が、実際のモータの回転量に相当するパルス数より少なくなってしまう。そのため、カウンタ等によって数えられたパルス数がモータの回転量を正確に示さない。
【０００８】
そこで、本発明が解決しようとする課題は、パルス割れやパルス抜けが生じた場合でも、数えられたパルス数がモータの回転量を正確に示すようにすることである。
【課題を解決するための手段】
【０００９】
以上の課題を解決するための請求項１に係る発明によれば、
モータ制御装置が、駆動されると電流信号に周期的なリプルを発生させるモータと、前記モータの前記電流信号からリプル成分を抽出して、そのリプル成分をパルス化したパルス信号を出力する抽出回路と、前記パルス信号を入力するとともに、前記モータを制御する制御部と、を備え、前記制御部が、前記パルス信号のパルス数を計数する第一処理と、前記パルス信号のパルスごとにパルス周期を計時する第二処理と、前記第二処理で計時されたパルス周期が正常周期を含む正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記第二処理で計時されたパルス周期を積算して得られた値を累積期間として算出する第三処理と、前記第二処理で計時されたパルス周期が前記正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記パルス信号のパルス数を計数する第四処理と、前記第三処理で算出された累積期間を前記正常周期で除することで得られた値を推定パルス数として算出する第五処理と、前記第一処理で計数されたパルス数に前記第五処理で算出された推定パルス数を加算して、それに前記第四処理で計数されたパルス数を減じて得られる値に、前記第一処理で計数されたパルス数を更新する第六処理と、を実行する。
【００１０】
請求項２に係る発明によれば、請求項１において、
前記モータ制御装置が、前記モータの電圧を検出する電圧検出部と、前記モータの電流を検出する電流検出部と、を更に備え、前記第二処理では、前記制御部が、計時したパルス周期を順次記憶し、前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、前記第七処理は、前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出するとともに、前記基準周期を含む基準範囲を算出する処理と、前記第二処理で計時されたパルス周期が前記基準範囲内及び前記正常範囲内に収まっている場合、前記第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新し、その平均値から所定値を減算して得られた値に前記正常範囲の下限値を更新し、その平均値に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理と、前記第二処理で計時されたパルス周期が前記基準範囲から外れている場合又は前記第二処理で計時されたパルス周期が前記正常範囲から外れている場合、前記正常周期及び前記正常範囲を更新せずに維持する処理と、を含む。
【００１１】
請求項３に係る発明によれば、請求項１において、
前記モータ制御装置が、前記モータの電圧を検出する電圧検出部と、前記モータの電流を検出する電流検出部と、を更に備え、前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、前記第七処理は、前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出し、前記正常周期を前記基準周期に更新し、前記基準周期から所定値を減算して得られた値に前記正常範囲の下限値を更新し、前記基準周期に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理を含む。
【００１２】
請求項４に係る発明によれば、
車両用シート装置が、請求項１から３の何れか一項に記載のモータ制御装置と、前記モータによって駆動される可動部を有するシート本体と、を備える。
【発明の効果】
【００１３】
請求項１に係る発明によれば、パルス割れやパルス抜けが生じて、第一処理で数えられたパルス数に誤差が生じた場合でも、第一処理で計時されたパルス数が第六処理で補正される。よって、モータの回転量や位置等の検出を正確に行えることができる。
【００１４】
請求項２に係る発明によれば、正常周期が第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新される。つまり、正常周期が実測されたパルス周期の平均値に更新されるから、ノイズ等の外乱、モータ等の状態、誤差、個体差、経年変化といった因子によってモータの電流信号の各成分の周波数や振幅が変動した場合でも、それらの因子が正常周期の設定に反映される。よって、モータの回転量や位置等の検出をより正確に行うことができる。
【００１５】
請求項３に係る発明によれば、モータの動作中にモータの負荷や摩擦等が変動して、モータの回転速度が変動する場合でも、その変動後の回転速度が正常周期の設定に反映される。よって、モータの回転量や位置等の検出をより正確に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明を適用した実施形態に係るモータ制御装置を示したブロック図である。
【図２】モータの電流信号の波形を示したタイミングチャートである。
【図３】モータの電流信号の波形を示したタイミングチャートである。
【図４】電流電圧変換器、ハイパスフィルタ、バンドパスフィルタ、フィルタと差動増幅器、増幅器及び波形整形部の入力信号及び出力信号の波形を示した図である。
【図５】フィルタの周波数特性を示したグラフである。
【図６】フィルタと差動増幅器を示した回路図である。
【図７】フィルタと差動増幅器の入力信号及び出力信号の波形を示したタイミングチャートである。
【図８】モータを起動させる処理の流れを示したフローチャートである。
【図９】モータの動作中にパルス信号のパルス数を計数する処理の流れを示したフローチャートである。
【図１０】パルス抜けが生じたパルス信号の波形を示したタイミングチャートである。
【図１１】パルス割れが生じたパルス信号の波形を示したタイミングチャートである。
【図１２】モータの動作中にパルス信号のパルス周期を計時する処理の流れを示したフローチャートである
【図１３】パルス信号のパルス周期を計時する毎に行われる処理の流れを示したフローチャートである。
【図１４】正常周期及び正常範囲を設定するための処理の流れを示したフローチャートである。
【図１５】車両用シート装置のシート本体を示した側面図である。
【図１６】フィルタの周波数特性を示したグラフである。
【図１７】フィルタの周波数特性を示したグラフである。
【発明を実施するための形態】
【００１７】
以下に、本発明を実施するための形態について図面を用いて説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい種々の限定が付されているが、本発明の範囲を以下の実施形態及び図示例に限定するものではない。
【００１８】
図１は、モータ制御装置１のブロック図である。
モータ制御装置１は、モータ２、抽出回路３、制御部４、記憶部５、モータドライバ６、Ａ／Ｄコンバータ７及びＡ／Ｄコンバータ８等を備える。
【００１９】
モータ２は、直流モータである。電流がモータ２に流れると、モータ２が回転するとともに、モータ２が周期的なリプル（ripple）を電流に発生させる。モータ２の電流信号について図２及び図３を参照して説明する。図２は、モータ２が駆動される際にモータ２に流れる電流のレベルの変化を示したチャートである。図３は、図２に示されたＡ部における時間及び電流のスケールを大きくして示したチャートである。
【００２０】
図２において、時刻Ｔ１はモータ２が起動したタイミングであり、時刻Ｔ２はモータ２が安定的に動作し始めるタイミングである。時刻Ｔ３は、モータ２によって駆動される可動部がストッパ等に当接して、モータ２の動力を可動部に伝える伝動機構が拘束され始めるタイミングである。時刻Ｔ４は、モータ２が停止するタイミングである。
【００２１】
図２及び図３に示すように、モータ２の電流信号は直流成分、リプル成分及び一又は複数の周波成分（交流成分）を含み、周波成分及びリプル成分が直流成分に重畳している。モータ２の電流信号のうち、電流のレベルが急激に変化した高周波成分はノイズである（例えば、符号ｎ参照）。なお、図３は、高周波ノイズ成分がないものとして図示されている。
【００２２】
時刻Ｔ１から時刻Ｔ２までの期間Ｐ１では、リプル成分ｒ１と、リプル成分ｒ１よりも周波数が低い低周波成分とが直流成分に重畳している。期間Ｐ１のうちモータ２の起動直後では、慣性力の影響により低周波成分の電流レベルが大きく、その後、低周波成分の電流レベルが時間の経過に伴って緩やかに減少する。また、モータ２の起動直後では、低周波成分よりも周波数が高いリプル成分ｒ１の振幅が大きく、その後、リプル成分ｒ１の周波数が時間の経過に伴って漸増するとともに、リプル成分ｒ１の振幅が時間の経過に伴って漸減する。
【００２３】
時刻Ｔ２から時刻Ｔ３までの期間Ｐ２では、リプル成分ｒ２と、リプル成分ｒ２よりも周波数が低い低周波成分とが直流成分に重畳し、直流成分がほぼ一定で安定し、低周波成分の周波数及び振幅が安定し、リプル成分ｒ２の周波数及び振幅が安定している。リプル成分ｒ２の周波数が低周波成分の周波数よりも高くなるのは、モータ２に内蔵された複数のコイルが巻き線抵抗に差を有するためである。
【００２４】
時刻Ｔ３から時刻Ｔ４までの期間Ｐ３では、モータの電流信号のうち低周波成分の周波数が低くなり、低周波成分の電流レベルが時間の経過とともに漸増する。期間Ｐ３では、モータの電流信号のうちリプル成分ｒ３の周波数が時間の経過に伴って漸減し、リプル成分ｒ３の振幅が時間の経過に伴って漸増する。
【００２５】
モータ２の電流信号のうち低周波成分及びリプル成分の周波数及び振幅は、様々な環境（例えば、モータ２に対する負荷、環境温度、モータ２の電源電圧等）の影響を受ける。そのため、環境が変化すれば、低周波成分及びリプル成分の周波数及び振幅が変化する。
【００２６】
抽出回路３は、以上のようなモータ２の電流信号からリプル成分を抽出して、リプル成分をパルス化し、リプル成分がパルス化されてなるパルス信号を制御部４に出力する。抽出回路３及び抽出回路３を用いたリプル抽出方法について具体的に説明する。
【００２７】
図１に示すように、抽出回路３は、電流電圧変換器１０、ハイパスフィルタ（High-pass Filter）２０、バンドパスフィルタ（Band-pass Filter）３０、フィルタ４０、差動増幅器５０、増幅器６０及び波形整形部７０を備える。図４は、電流電圧変換器１０、ハイパスフィルタ２０、バンドパスフィルタ３０、フィルタ４０と差動増幅器５０、増幅器６０及び波形整形部７０の入力信号及び出力信号を説明するための図である。図４において、電流電圧変換器１０、ハイパスフィルタ２０及びバンドパスフィルタ３０の入力信号と出力信号が示されている期間は、図２における時刻Ｔ１から期間Ｐ２の初期にかけてである。フィルタ４０と差動増幅器５０、増幅器６０及び波形整形部７０の入力信号及び出力信号が示されている期間は、図２における期間Ｐ２の一部である。
【００２８】
電流電圧変換器１０は、モータ２の電流信号を入力する。電流電圧変換器１０は、入力したモータ２の電流信号を電圧信号に変換する。具体的には、電流電圧変換器１０が抵抗器１１を有し、抵抗器１１がグランドとモータ２の間に接続され、モータ２の電流信号が抵抗器１１とモータ２の間における電圧信号に変換される。電流電圧変換器１０は、変換した電圧信号をハイパスフィルタ２０及びバンドパスフィルタ３０を介してフィルタ４０及び差動増幅器５０に出力する。なお、電流電圧変換器１０は、オペアンプを用いたもの（例えば、負帰還型電流電圧変換器）でもよい。
【００２９】
ハイパスフィルタ２０は、電流電圧変換器１０によって変換された電圧信号（電流電圧変換器１０の出力信号）を入力する。ハイパスフィルタ２０は、電流電圧変換器１０によって変換された電圧信号（電流電圧変換器１０の出力信号）のうち高周波成分を通過させ、低周波成分を減衰させる。つまり、ハイパスフィルタ２０は、電流電圧変換器１０によって変換された電圧信号のうち直流成分を除去する。ハイパスフィルタ２０は、バンドパスフィルタ３０を介して、低周波成分が減衰した信号をフィルタ４０及び差動増幅器５０に出力する。
ハイパスフィルタ２０は、オペアンプを用いたもの（例えば、負帰還型ハイパスフィルタ、正帰還型ハイパスフィルタ）又は抵抗器・キャパシタを用いたもの（例えば、ＣＲハイパスフィルタ）である。
【００３０】
バンドパスフィルタ３０は、電流電圧変換器１０によって変換された電圧信号をハイパスフィルタ２０を介して入力する。バンドパスフィルタ３０は、電流電圧変換器１０によって変換された電圧信号（ハイパスフィルタ２０の出力信号）のうち所定周波数帯域の成分を通過させ、その所定周波数帯域外の成分を減衰させる。つまり、バンドパスフィルタ３０は、電流電圧変換器１０によって変換された電圧信号（ハイパスフィルタ２０の出力信号）のうち高周波ノイズ成分を除去するとともに、ハイパスフィルタ２０によって除去しきれなかった低周波成分を除去する。バンドパスフィルタ３０は、所定周波数帯域外の成分を減衰させた信号をフィルタ４０及び差動増幅器５０に出力する。
バンドパスフィルタ３０は、オペアンプを用いたもの（例えば、多重負帰還型バンドパスフィルタ、多重正帰還型バンドパスフィルタ）又は抵抗器・キャパシタを用いたものである。
【００３１】
なお、バンドパスフィルタ３０がハイパスフィルタ２０の後段に設けられているが、バンドパスフィルタ３０が電流電圧変換器１０の後段であってハイパスフィルタ２０の前段に設けられてもよい。
【００３２】
フィルタ４０は、電流電圧変換器１０によって変換された電圧信号をハイパスフィルタ２０及びバンドパスフィルタ３０を介して入力し、その信号を濾波する。フィルタ４０は、濾波した信号を差動増幅器５０に出力する。
【００３３】
図５は、フィルタ４０の周波数特性を示したグラフである。
図５に示すように、フィルタ４０は、バンドパスフィルタである。フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうち、低カットオフ周波数ｆｃ１から高カットオフ周波数ｆｃ２までの間の中間周波数帯域の成分を通過させる。低カットオフ周波数ｆｃ１はフィルタ４０のハイパスフィルタ部のカットオフ周波数であり、高カットオフ周波数ｆｃ２はフィルタ４０のローパスフィルタ部のカットオフ周波数であり、低カットオフ周波数ｆｃ１＜高カットオフ周波数ｆｃ２である。なお、カットオフ周波数とは、出力電力が入力電力の1/2となる周波数を指す。つまり、ゲインＧが−3dbとなる周波数がカットオフ周波数である。
【００３４】
また、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうち、低カットオフ周波数ｆｃ１を下回る低周波域の成分を減衰させる。具体的には、低カットオフ周波数ｆｃ１を下回る低周波域において、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）に含まれる成分の周波数が低いほど減衰率がより高くなるように、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）の低周波域成分を減衰させる。
【００３５】
また、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうち、高カットオフ周波数ｆｃ２を超える高周波域の成分を減衰させる。具体的には、高カットオフ周波数ｆｃ２を超える高周波域において、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）に含まれる成分の周波数が低いほど減衰率がより低くなるように、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）の高周波域成分を減衰させる。
【００３６】
図２及び図３に示したように、モータ２の電流信号は、リプル成分と、そのリプル成分よりも周波数が低い低周波成分とを重畳したものである。リプル成分の周波数は実験・測定等によって予め調べられ、フィルタ４０の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、フィルタ４０の高カットオフ周波数ｆｃ２がリプル成分の周波数（例えば、常温時の周波数）よりも低く設定されている。従って、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうちリプル成分を低周波成分（低周波成分はリプル成分よりも周波数が低い。）よりも高い減衰率で減衰させる。つまり、フィルタ４０は、リプル成分を低周波成分よりも効率的に除去する。従って、フィルタ４０は、リプル成分を除去した信号を差動増幅器５０に出力する。
【００３７】
差動増幅器５０は、電流電圧変換器１０によって変換された電圧信号をハイパスフィルタ２０及びバンドパスフィルタ３０を介して入力するとともに、フィルタ４０の出力信号を入力する。差動増幅器５０は、入力したフィルタ４０の出力信号と、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）の差分を取って、その差分を増幅する。差動増幅器５０は、その差分を表す差分信号を増幅器６０に出力する。
【００３８】
図６は、フィルタ４０と差動増幅器５０の一例を示した回路図である。図７（ａ）は図６に示されたＡ部における電圧信号の波形を示したタイミングチャートであり、図７（ｂ）は図６に示されたＢ部における電圧信号の波形を示したタイミングチャートであり、図７（ｃ）は図６に示されたＣ部における電圧信号の波形を示したタイミングチャートである。
【００３９】
図６に示すように、フィルタ４０は、ハイパスフィルタ４１、ローパスフィルタ４２及びハイパスフィルタ４３を有する。バンドパスフィルタ３０の出力がハイパスフィルタ４１の入力に接続され、ハイパスフィルタ４１の出力がローパスフィルタ４２の入力に接続され、ローパスフィルタ４２の出力がハイパスフィルタ４３の入力に接続される。
【００４０】
ハイパスフィルタ４１は、二次のＣＲハイパスフィルタである。つまり、ハイパスフィルタ４１は、キャパシタ４１ａ、抵抗器４１ｂ、キャパシタ４１ｃ及び抵抗器４１ｄを有する。なお、ハイパスフィルタ４１が一つのキャパシタ及び抵抗器からなる一次のＣＲハイパスフィルタであってもよい。また、ハイパスフィルタ４１が三次以上のＣＲハイパスフィルタでもよい。
【００４１】
ローパスフィルタ４２は、二次のＲＣローパスフィルタである。つまり、ローパスフィルタ４２は、抵抗器４２ａ、キャパシタ４２ｂ、抵抗器４２ｃ及びキャパシタ４２ｄを有する。なお、ローパスフィルタ４２が一つの抵抗器及びキャパシタからなる一次のＲＣローパスフィルタであってもよい。また、ローパスフィルタ４２が三次以上のＲＣローパスフィルタでもよい。
ハイパスフィルタ４３は、キャパシタ４３ａからなる。
【００４２】
差動増幅器５０は抵抗器５１，５２、オペアンプ５３、カップリングコンデンサ５４及びバイアス回路５５等を有する。オペアンプ５３の出力端子が抵抗器５２を介してオペアンプ５３の反転入力端子に接続され、負帰還がオペアンプ５３にかけられている。フィルタ４０の出力信号（ハイパスフィルタ４３の出力信号）が抵抗器５１を介してオペアンプ５３の反転入力端子に入力され、バンドパスフィルタ３０の出力信号がカップリングコンデンサ５４及びバイアス回路５５を介してオペアンプ５３の非反転入力端子に入力される。カップリングコンデンサ５４は、バンドパスフィルタ３０の出力信号の直流成分を除去する。バイアス回路５５は、電源電圧とグランドの間に直列された抵抗器５６，５７を有する。バイアス回路５５は、カップリングコンデンサ５４によって直流成分が除去されたバンドパスフィルタ３０の出力信号にバイアス電圧をかけて、バンドパスフィルタ３０の出力信号の基準レベルを引き上げる。なお、カップリングコンデンサ５４及びバイアス回路５５を省略してもよい。
【００４３】
差動増幅器５０によって出力された差分信号は、電流電圧変換器１０によって変換された電圧信号のうちリプル成分である。差動増幅器５０によって出力された差分信号が、バンドパスフィルタ３０の出力信号とフィルタ４０の出力信号との差分を表すからこそ、モータ２の電流信号の各成分の周波数が環境変化によって変化しても、モータ２の電流信号に含まれるリプルを高精度に検出することができる。
【００４４】
図１、図６に示すように、増幅器６０は、差動増幅器５０によって出力された差分信号（オペアンプ５３の出力信号）を入力する。増幅器６０は、差動増幅器５０によって出力された差分信号を増幅して、それを波形整形部７０に出力する。増幅器６０は、例えば負帰還型増幅器である。
【００４５】
波形整形部７０は、差動増幅器５０によって出力された差分信号（オペアンプ５３の出力信号）を増幅器６０を介して入力する。波形整形部７０は、差動増幅器５０によって出力された差分信号（増幅器６０の出力信号）の波形を矩形波に整形する。具体的には、波形整形部７０がコンパレータを有し、該コンパレータが、差動増幅器５０によって出力された差分信号（増幅器６０の出力信号）を基準電圧と比較することによって、差動増幅器５０によって出力された差分信号（増幅器６０の出力信号）をパルス信号に変換する。波形整形部７０は、矩形波に整形されたパルス信号を制御部４に出力する。制御部４は、波形整形部７０によって出力されたパルス信号を入力する。
【００４６】
モータドライバ６は、制御部４からの指令に従ってモータ２を駆動する。つまり、モータドライバ６は、制御部４から起動指令及び回転向き指令を受けたら、モータ２をその回転向きに起動させる。モータドライバ６は、制御部４から受けた設定速度指令に従ってその設定速度でモータ２を駆動する。モータドライバ６は、制御部４から停止指令を受けたら、モータ２を停止する。
【００４７】
Ａ／Ｄコンバータ７は、電圧検出部である。つまり、Ａ／Ｄコンバータ７は、モータ２の電源電圧を検出して、その電圧信号をデジタル信号に変換して、デジタル化した電圧データを制御部４に出力する。制御部４は、Ａ／Ｄコンバータ７によって出力される電圧データを入力する。
【００４８】
Ａ／Ｄコンバータ８は、電流検出部である。つまり、Ａ／Ｄコンバータ８は、モータ２の電流値を検出して、その電流信号をデジタル信号に変換して、デジタル化した電流データを制御部４に出力する。ここで、電流電圧変換器１０の出力信号がモータ２の電流を表すので、Ａ／Ｄコンバータ８は電流電圧変換器１０の出力信号をデジタル信号に変換して、それを制御部４に出力する。制御部４は、Ａ／Ｄコンバータ８によって出力される電流データを入力する。
【００４９】
制御部４は、ＣＰＵ４ａ及びＲＡＭ４ｂ等を有するコンピュータである。ＣＰＵ４ａは、数値計算、情報処理、機器制御等の各種処理を行う。ＲＡＭ４ｂは、一時記憶領域としての作業領域をＣＰＵ４ａに提供する。
【００５０】
記憶部５は、制御部４に接続されている。記憶部５は、不揮発性メモリ、ハードディスクといった読み書き可能な記憶媒体である。記憶部５は、一つの記憶媒体からなるものでもよいし、複数の記憶媒体を組み合わせたものでもよい。記憶部５が複数の記憶媒体を組み合わせたものである場合、何れかの記憶媒体がＲＯＭであってもよい。
【００５１】
記憶部５には、初期位置データ５Ａが格納されている。初期位置データ５Ａは、モータ２が動作する前のモータ２の初期の回転位置や、モータ２によって駆動される可動部の初期位置を示す。具体的には、初期位置データ５Ａは、モータ２が所定の原点位置から初期の回転位置まで回転した場合のパルス信号のパルス数である。そのパルス数に所定の定数を乗じて得られた値は、モータ２が所定の原点位置から初期の回転位置まで回転した場合の回転量であって、モータ２が動作する前のモータ２の初期の回転位置を示す。初期位置データ５Ａは、予め設定されたデフォルト値であるか、又は以前にモータ２が動作した際に書き込まれた値である。仮にモータ２の初期の回転位置が原点位置であれば、初期位置データ５Ａはゼロである。
【００５２】
記憶部５には、制御部４にとって読み取り可能なプログラム５Ｚが格納されている。制御部４は、プログラム５Ｚを読み込んでそのプログラム５Ｚに従った処理を行ったり、そのプログラム５Ｚによって各種機能を実現したりする。なお、記憶部５が複数の記憶媒体を組み合わせたものである場合、プログラム５Ｚが記憶部５のＲＯＭに格納されていてもよい。
【００５３】
プログラム５Ｚに基づく制御部４の処理の流れについて説明するとともに、制御部４の処理に伴うモータ制御装置１の動作について説明する。
【００５４】
所定の条件が満たされると、制御部４がモータ２の起動処理（図８参照）を実行する。所定の条件が満たされるとは、例えば、ユーザが起動スイッチをオンにすること、起動センサがオンになること、制御部４によって実行されている処理（例えば、シーケンス処理）で所定の条件が満たされること等である。
【００５５】
まず、制御部４は、モータ２の回転の向き（正回転か逆回転）を決定し、その回転の向きをＲＡＭ又は記憶部５に書き込む（ステップＳ１１）。
【００５６】
次に、制御部４は、ステップＳ１１で決定した向きにモータ２を起動させる（ステップＳ１２）。つまり、制御部４は、ステップＳ１１で決定した向きに従った回転向き指令をモータドライバ６に出力するとともに、起動指令をそのモータドライバ６に出力する。回転向き指令及び起動指令を受けたモータドライバ６がモータ２に通電して、モータ２をその回転向きに駆動する。これにより、モータ２が回転し、モータ２によって可動部が駆動される。以上により、モータ２の起動処理が終了する。
【００５７】
モータ２の動作中は、抽出回路３がモータ２の電流信号からリプル成分を抽出（検出）して、リプル成分をパルス化する。そして、抽出回路３は、リプル成分がパルス化されてなるパルス信号を制御部４に出力する。
【００５８】
モータ２が起動すると、制御部４は、抽出回路３から入力したパルス信号に基づいて、パルス信号のパルス数の計数、モータ２の回転量の算出及びモータ２の回転位置の算出を行う。より具体的には、制御部４が図９に示す処理を実行することによってパルス信号のパルス数の計数、モータ２の回転量の算出及びモータ２の回転位置の算出を行う。
【００５９】
図９に示す処理について具体的に説明する。
制御部４は、Ａ／Ｄコンバータ７から入力した電圧データを監視して、電圧データを所定の閾値と比較する（ステップＳ２１）。上述のように制御部４がモータ２を起動させると（ステップＳ１３）、モータ２に電流が通電するから、制御部４は電圧データが所定の閾値を上回ったと判定して、モータ２の通電・起動を検出する（ステップＳ２１：ＹＥＳ）。そして、制御部４が記憶部５から初期位置データ５Ａを読み込んで、制御部４の処理がステップＳ２２に移行する。なお、制御部４がＡ／Ｄコンバータ８から入力した電流データを監視して、制御部４が電流データを所定の閾値と比較してもよい（ステップＳ２１）。この場合、モータ２に電流が通電した場合、制御部４は電流データが所定の閾値を上回ったと判定して、モータ２の通電・起動を検出する（ステップＳ２１：ＹＥＳ）。
【００６０】
電流がモータ２に通電すると、制御部４は抽出回路３によって出力されたパルス信号のパルス数を計数するとともに、モータ２の回転量及び回転位置を算出する（ステップＳ２２，Ｓ２３，Ｓ２４、Ｓ２５）。具体的には、まず、制御部４は、計数値Ｎをゼロにリセットする（ステップＳ２２）。その後、制御部４は、抽出回路３によって出力されたパルス信号のパルスを入力するごとに（ステップＳ２３：ＹＥＳ）、計数値Ｎに１を加算して得られた値に計数値Ｎを更新するとともに（ステップＳ２４）、読み込んだ初期位置データ５Ａに更新後の計数値Ｎを加算するか、又は読み込んだ初期位置データ５Ａから更新後の計数値Ｎを減算する（ステップＳ２５）。制御部４は、ステップＳ２５の演算をステップＳ１１で決定した向きに従って決定する。例えば、ステップＳ１１で決定した回転の向きが正回転である場合には、制御部４がステップＳ２５で加算を行い、ステップＳ１１で決定した回転の向きが逆回転である場合には、制御部４がステップＳ２５で減算を行う。勿論、回転の向きと演算の関係が逆であってもよい。
【００６１】
ステップＳ２４において更新された計数値Ｎが、制御部４によって計数されたパルス数である。制御部４によって計数されたパルス数（計数値Ｎ）に所定の定数を乗じて得られる値がモータ２の回転量や可動部の移動量に相当するから、制御部４がパルス数（計数値Ｎ）を計数する処理（ステップＳ２１〜ステップＳ２６）は、制御部４がモータ２の回転量や可動部の移動量を算出する処理に相当する。また、ステップＳ２５において求められた差や和が、モータ２の回転位置（原点位置からその回転位置までのモータ２の回転量）を示すとともに、可動部の位置（原点位置からその位置までの可動部の移動量）を示す。
【００６２】
制御部４は、モータ２の電流の遮断を検出するまでステップＳ２３〜ステップＳ２６の処理を繰り返す（ステップＳ２６：ＮＯ）。具体的には、制御部４は、ステップＳ２５の処理の後に、Ａ／Ｄコンバータ７から入力した電圧データを所定の閾値と比較する（ステップＳ２６）。そして、モータ２の電流が遮断されなかったら、制御部４は電圧データが所定の閾値を上回っていると判定して（ステップＳ２６：ＮＯ）、制御部４の処理がステップＳ２３に戻り、制御部４がステップＳ２３〜ステップＳ２５の処理を再度行う。なお、ステップＳ２６では、制御部４がＡ／Ｄコンバータ８から入力した電流データを所定の閾値と比較してもよい（ステップＳ２６）。この場合、モータ２の電流が遮断されなかったら、制御部４は電流データが所定の閾値を上回ったと判定して（ステップＳ２６：ＮＯ）、制御部４がステップＳ２３〜ステップＳ２５の処理を再度行う。
【００６３】
制御部４が図９に示す処理を実行している時に所定の条件が満たされると、制御部４がモータドライバ６に停止指令を出力する。そうすると、停止指令を受けたモータドライバ６がモータ２の通電を遮断し、モータ２が停止する。所定の条件とは、例えば、ユーザが停止スイッチをオンにすること、制御部４によって実行された処理（例えば、シーケンス処理）で所定の条件が満たされること、上述のステップＳ２５において求めた差又は和が所定の値になることである。
【００６４】
制御部４がモータドライバ６に停止指令を出力すると、モータ２の電流がモータドライバ６によって遮断されるので、制御部４はＡ／Ｄコンバータ７から入力した電圧データが所定の閾値を下回ったと判定して（ステップＳ２６：ＹＥＳ）、制御部４は図９に示す処理を終了する。なお、制御部４がＡ／Ｄコンバータ８から入力した電流データを所定の閾値と比較する場合（ステップＳ２６）、モータ２の電流が遮断されたら、制御部４は電流データが所定の閾値を下回ったと判定して（ステップＳ２６：ＹＥＳ）、制御部４は図９に示す処理を終了する。
【００６５】
制御部４は、図９に示す処理の終了後、図９に示すステップＳ２３〜ステップＳ２６の処理を繰り返している際に最後のステップＳ２５において求めた差又は和を記憶部５に書き込む。具体的には、制御部４は、記憶部５に記憶された初期位置データ５Ａを最後のステップＳ２５において求めた差又は和に書き換える。
【００６６】
ところで、モータ２の動作中に抽出回路３によって生成されるパルス信号に異常が生じることがある。例えば、図１０に示すように、パルスが抜けた結果、異常なパルス周期が正常なパルス周期よりも長くなってしまうことがある。このようなパルス抜けが生じると、図９に示す処理で求められたパルス信号のパルス数（計数値Ｎ）は正常な場合と比較して少ない。一方、図１１に示すように、パルスが複数に分割された結果、異常なパルス周期が正常なパルス周期よりも短くなってしまう。このようなパルス割れが生じると、図９に示す処理で求められたパルス信号のパルス数（計数値Ｎ）は正常な場合と比較して多い。そこで、制御部４は、次のような処理（図１２〜図１４参照）を行うことによって、図９に示す処理で求めたパルス数（計数値Ｎ）を補正する。
【００６７】
モータ２の動作中において、制御部４は、パルス信号のパルスごとにパルス周期を計時する。具体的には、制御部４が、図１２に示すような処理を実行することによってパルスの立ち上がりから次のパルスの立ち上がりまでのパルス周期をパルスごとに順次計時し、計時したパルス周期をＲＡＭや記憶部５に順次記憶する。
【００６８】
まず、制御部４は、計時時間をゼロにリセットする（ステップＳ３１）。次に、制御部４は、計時を開始するとともに、抽出回路３の出力パルス信号のパルスが立ち上がるまで計時を継続する（ステップＳ３２、ステップＳ３３：ＮＯ）。そして、制御部４が抽出回路３の出力パルス信号のパルスの立ち上がりを検出したら（ステップＳ３３：ＹＥＳ）、制御部４が計時を終了するとともに（ステップＳ３４）、計時時間をＲＡＭ若しくは記憶部５又はこれらの両方に記憶する（ステップＳ３５）。そして、制御部４は計時時間を再びゼロにリセットして（ステップＳ３１）、計時を行う（ステップＳ３２）。制御部４が以上のステップＳ３１〜ステップＳ３５の処理を繰り返すことによって、計時時間がＲＡＭ若しくは記憶部５又はこれらの両方に順次記憶される。ＲＡＭ若しくは記憶部５又はこれらの両方に書き込まれた計時時間のデータ列は、抽出回路３の出力パルス信号のパルスごとのパルス周期のデータ列である。パルス周期の逆数が、モータ２の回転速度に示すとともに、モータ２によって駆動される可動部の速度を示す。従って、制御部４がパルスごとにパルス周期を計時する処理（ステップＳ３１〜ステップＳ３５）は、パルスごとにモータ２の回転速度や可動部の速度を求める処理に相当する。
【００６９】
制御部４は、抽出回路３によって出力されるパルス信号のパルス周期の計時を終了する（ステップＳ３４参照）度に、図１３に示す処理を実行する。そのため、抽出回路３によって出力されるパルス信号のパルスが連続的に発生すると、制御部４が図１３に示す処理を繰り返して実行する。図１３に示す処理が繰り返して実行されると、制御部４が計数値Ｍの計数をしたり、累積期間Ｔを積算したりする。図１０及び図１１に示すように、計数値Ｍは、異常周期のパルスが連続して発生した回数を表す。但し、異常周期のパルスの後に正常周期のパルスが発生したら、異常周期のパルスの後に最初に発生した正常周期のパルスも異常周期のパルスとして計数値Ｍに数えられる。累積期間Ｔは、異常周期のパルスが連続して発生した期間を表す。但し、異常周期のパルスの後に正常周期のパルスが発生したら、異常周期のパルスの後に最初に発生した正常周期のパルスの周期も累積期間Ｔに加算される。
【００７０】
制御部４がモータ２の起動後に初めて図１３に示す処理を実行する前には、制御部４が計数値Ｍをゼロにリセットするとともに、累積期間Ｔをゼロにリセットする。また、モータ２の動作中において、異常周期のパルスが発生した後に正常周期のパルスが発生すると、制御部４が計数値Ｍ及び累積期間Ｔをゼロにリセットする（ステップＳ５０、ステップＳ５１参照）。
【００７１】
図１３に示す処理について具体的に説明する。
まず、制御部４は、ステップＳ３４で終了した計時時間（パルス周期Ｔ_pulse）をリセットする（ステップＳ３１参照）前に、その計時時間をパルス周期Ｔ_pulseとして取得する（ステップＳ４１）。なお、制御部４が図１３に示す処理を再実行した場合、制御部４はパルス周期Ｔ_pulseを取得したら（ステップＳ４１）、前に実行した際に取得したパルス周期Ｔ_pulseを消去して、今回取得したパルス周期Ｔ_pulseに更新する。
次に、制御部４は、正常周期Ｔ_normal及び正常範囲を設定する（ステップＳ４２）。正常周期Ｔ_normalとは、パルス抜け及びパルス割れが発生していない場合のパルス周期を示す。正常範囲とは、正常周期Ｔ_normalを含む範囲である。具体的には、正常範囲は、正常周期Ｔ_normalを中心とした範囲あって、正常周期Ｔ_normalから所定値を減算して得られる下限値Ｔ_min1から正常周期Ｔ_normalに所定値を加算して得られる上限値Ｔ_max1までの範囲である。下限値Ｔ_min1＜上限値Ｔ_max1である。なお、正常周期Ｔ_normalが下限値Ｔ_min1と上限値Ｔ_max1の平均値であってもよいし、正常周期Ｔ_normalが下限値Ｔ_min1と上限値Ｔ_max1の平均値からずれていてもよい。制御部４が正常周期Ｔ_normal及び正常範囲を設定する処理（図１４参照）については、後に詳述する。
【００７２】
次に、制御部４は、ステップＳ４１で取得したパルス周期Ｔ_pulseを正常範囲の下限値Ｔ_min1及び上限値Ｔ_max1と比較することで、パルス周期Ｔ_pulseが正常範囲内に収まるか否かを判定する（ステップＳ４３）。パルス周期Ｔ_pulseが正常範囲内に収まっていると制御部４が判定した場合には（ステップＳ４３：ＹＥＳ）、制御部４は計数値Ｍがゼロであるか否かを判定することによって異常周期のパルスの数の計数中であるか否かを判定する（ステップＳ４４）。計数値Ｍがゼロであって異常周期のパルスの数を計数していないと制御部４が判定すると（ステップＳ４４：ＹＥＳ）、制御部４は図１３に示す処理を終了する。
【００７３】
制御部４が抽出回路３によって出力されるパルス信号のパルス周期の計時を終了する（ステップＳ３４参照）度に図１３に示す処理を実行するから、モータ２の動作中に正常な周期のパルスが抽出回路３の出力パルス信号に連続的に発生していれば、異常な周期のパルスが抽出回路３の出力パルス信号に発生するまで、制御部４がステップＳ４１、ステップＳ４２、ステップＳ４３（ＹＥＳ）及びステップＳ４４（ＹＥＳ）の処理を繰り返し行う。正常な周期のパルスが抽出回路３の出力パルス信号に連続的に発生していれば、図９に示す処理で求めたパルス数（計数値Ｎ）が補正されない。
【００７４】
一方、異常な周期のパルスが抽出回路３の出力パルス信号に発生すると、パルス周期Ｔ_pulseが正常範囲から外れたと制御部４が判定する（ステップＳ４３：ＮＯ）。そのような判定の結果、制御部４が異常周期のパルスの数の計数を開始し、制御部４が計数値Ｍに１を加算して得られた値に計数値Ｍを更新する（ステップＳ５２）。更に、制御部４は、ステップＳ４１で取得したパルス周期Ｔ_pulseを累積期間Ｔに加算して得られた値に累積期間Ｔを更新する（ステップＳ５３）。その後、制御部４は、図１３に示す処理を終了する。
【００７５】
制御部４が抽出回路３によって出力されるパルス信号のパルス周期の計時を終了する（ステップＳ３４参照）度に図１３に示す処理を実行するから、モータ２の動作中に異常な周期のパルスが抽出回路３の出力パルス信号に連続的に発生していれば、正常な周期のパルスが抽出回路３の出力パルス信号に発生するまで、制御部４がステップＳ４１、ステップＳ４２、ステップＳ４３（ＮＯ）、ステップＳ５２及びステップＳ５３の処理を繰り返し行う。よって、図１０、図１１に示すように、異常な周期のパルスが抽出回路３の出力パルス信号に発生したら、その後正常な周期のパルスが抽出回路３の出力パルス信号に発生するまで、制御部４がパルス信号に含まれる異常周期のパルスの数（計数値Ｍ）の計数を継続するとともに（ステップＳ５２）、パルス信号に含まれる異常周期のパルスの周期の積算を継続する（ステップＳ５３）。
【００７６】
異常な周期のパルスが抽出回路３の出力パルス信号に発生した後に（ステップＳ４３（ＮＯ）、ステップＳ５２及びステップＳ５３の後に）、正常な周期のパルスが抽出回路３の出力パルス信号に発生すると、パルス周期Ｔ_pulseが正常範囲内に収まっていると制御部４が判定する（ステップＳ４３：ＹＥＳ）。そして、計数値Ｍがゼロを超えているから、制御部４は計数値Ｍがゼロでないと判定して、制御部４が異常周期のパルスの数の計数中であると判定する（ステップＳ４４：ＮＯ）。ステップＳ４３、ステップＳ４４の判定の結果、制御部４の処理がステップＳ４５に移行すると、制御部４が計数値Ｍに１を加算して得られた値に計数値Ｍを更新する。このステップＳ４５の処理は、異常周期のパルスの後に発生した正常周期のパルスを異常周期のパルスとして計数値Ｍに数える処理である。また、制御部４は、ステップＳ４１で取得したパルス周期Ｔ_pulseを累積期間Ｔに加算して得られた値に累積期間Ｔを更新する（ステップＳ４６）。このステップＳ４６の処理は、異常周期のパルスの後に発生した正常周期のパルスの周期を異常周期のパルスとして累積期間Ｔに加算する処理である。
【００７７】
次に、制御部４は、積算した累積期間Ｔを正常周期Ｔ_normalで除して、その除算により得られた値を推定パルス数ｍとして算出する（ステップＳ４７）。推定パルス数ｍは、異常な周期のパルスが最初に発生した時からその後正常な周期のパルスが最初に発生した時までの期間（累積期間Ｔ）内に仮に正常な周期のパルスが発生したとしたら、その正常な周期のパルスの数を表した推定値である。
【００７８】
次に、制御部４が、推定パルス数ｍから計数値Ｍを減ずることで得られた値を補正値ｎとして算出する（ステップＳ４８）。補正値ｎは、異常な周期のパルスが最初に発生した時からその後正常な周期のパルスが最初に発生した時までの期間（累積期間Ｔ）内に仮に発生した正常な周期のパルスの数（推定パルス数ｍ）と、その期間内に実際に発生したパルスの数（計数値Ｍ）との差である。パルス抜けが発生した場合、補正値ｎが正となり、パルス割れが発生した場合、補正値ｎが負となる。
【００７９】
次に、制御部４が、図９の処理で計数中のパルス数（計数値Ｎ）を補正する（ステップＳ４９）。具体的には、制御部４が、計数値Ｎに補正値ｎを加算することで得られた値に計数値Ｎを更新する（ステップＳ４９）。なお、制御部４が、計数値Ｎに推定パルス数ｍを加算するとともにそれに計数値Ｍを減算して得られた値に計数値Ｎを更新してもよい。更新後の計数値Ｎは、パルス抜けによって数えられなかったパルス数（補正値ｎの絶対値）を加えたパルス数であるか、パルス割れによって過剰に数えてしまったパルス数（補正値ｎの絶対値）を減じたパルス数である。よって、パルス割れやパルス抜けが生じても、正確なパルス数（計数値Ｎ）が算出され、そのパルス数（計数値Ｎ）が実際のモータ２の回転量や可動部の移動量を正確に表す。
【００８０】
計数値Ｎの補正後、制御部４が計数値Ｍ及び累積期間Ｔをゼロにリセットする（ステップＳ５０、ステップＳ５１）。そして、制御部４が図１３に示す処理を終了する。
【００８１】
図１４を参照して、ステップＳ４２における正常周期Ｔ_normal及び正常範囲の設定処理について具体的に説明する。
まず、制御部４が、Ａ／Ｄコンバータ７によって検出された電流データ及びＡ／Ｄコンバータ８によって検出された電圧データを入力する（ステップＳ６１）。
【００８２】
次に、制御部４が、入力した電流データ及び電圧データに基づいて、モータ２の回転速度に相当するパルス周期を基準周期Ｔ_standardとして算出する（ステップＳ６２）。更に、制御部４が基準範囲を算出する（ステップＳ６２）。具体的には、制御部４が、基準周期Ｔ_standardから所定値を減算することで基準範囲の下限値Ｔ_min2を算出するとともに、基準周期Ｔ_standardに所定値を加算して得られる基準範囲の上限値Ｔ_max2を算出する。基準範囲とは、基準周期Ｔ_standardを含む範囲であって、好ましくは、基準周期Ｔ_standardを中心とした範囲である。基準周期Ｔ_standardは、基準範囲の下限値Ｔ_min2と上限値Ｔ_max2の平均値であってもよいし、その平均値からずれていてもよい。なお、基準周期Ｔ_standardの算出の際には、過去の平均値やモータ２の回転位置、負荷、環境温度又はモータ２の回転方向を加味してもよい。
【００８３】
次に、制御部４がモータ２の起動後に初めて図１３及び図１４に示す処理を実行するのであれば、正常周期Ｔ_normalが設定されていないから（ステップＳ６３：ＮＯ）、制御部４が基準周期Ｔ_standardの値を正常周期Ｔ_normalに設定する（ステップＳ６４）。更に、制御部４が基準範囲の下限値Ｔ_min2の値を正常範囲の下限値Ｔ_min1に設定するとともに、基準範囲の上限値Ｔ_max2の値を正常範囲の上限値Ｔ_max1に設定する（ステップＳ６５）。なお、制御部４が基準周期Ｔ_standardの値を正常周期Ｔ_normalに設定せずに、デフォルト値を正常周期Ｔ_normalに設定するとともに（ステップＳ６４）、デフォルトの上限値及び下限値を正常範囲の下限値Ｔ_min1及び上限値Ｔ_max1に設定してもよい（ステップＳ６５）。
【００８４】
一方、制御部４がモータ２の起動後に図１３及び図１４に示す処理を再実行するのであれば、正常周期Ｔ_normalが既に設定されているから（ステップＳ６３：ＹＥＳ）、制御部４がステップＳ６４及びステップＳ６５の処理を省略する。
【００８５】
次に、制御部４は、ステップＳ４１で取得したパルス周期Ｔ_pulseを正常範囲の下限値Ｔ_min1及び上限値Ｔ_max1と比較することで、パルス周期Ｔ_pulseが正常範囲内に収まっているか否かを判定する（ステップＳ６６）。更に、制御部４は、ステップＳ４１で取得したパルス周期Ｔ_pulseを基準範囲の下限値Ｔ_min2及び上限値Ｔ_max2と比較することで、パルス周期Ｔ_pulseが基準範囲内に収まっているか否かを判定する（ステップＳ６７）。
【００８６】
パルス周期Ｔ_pulseが正常範囲から外れた場合（ステップＳ６６：ＮＯ）又はパルス周期Ｔ_pulseが基準範囲から外れた場合（ステップＳ６７：ＮＯ）、制御部４が正常周期Ｔ_normal及び正常範囲を更新せずに維持し（ステップＳ７０）、図１４に示す処理を終了する。
【００８７】
一方、パルス周期Ｔ_pulseが正常範囲内であり、且つパルス周期Ｔ_pulseが基準範囲内に収まっている場合（ステップＳ６６：ＹＥＳ、ステップＳ６７：ＹＥＳ）、制御部４が、ＲＡＭ又は記憶部５に記憶された以前のパルスのパルス周期（今回のパルスのパルス周期Ｔ_pulseを含む。）の平均値を算出する。そして、制御部４が、正常周期Ｔ_normalをその平均値に更新する（ステップＳ６８）。更に、制御部４が、算出した平均値を中心とした範囲に正常範囲を更新する（ステップＳ６９）。具体的には、制御部４が、平均値から所定値を減算することで得られた値に正常範囲の下限値Ｔ_min1を更新するとともに、平均値に所定値を加算することで得られた値に正常範囲の上限値Ｔ_max1を更新する（ステップＳ６９）。そして、制御部４は図１４に示す処理を終了する。
【００８８】
制御部４がモータ２の起動後に初めて図１３、図１４に示す処理を実行した場合には、計時されたパルス周期Ｔ_pulseの値が正常周期Ｔ_normalに設定されるか（ステップＳ６８参照）、モータ２の電流・電圧データに基づいたモータ２の回転速度に相当するパルス周期（基準周期Ｔ_standard）の値又はデフォルト値が正常周期Ｔ_normalに設定される（ステップＳ６４、ステップＳ７０参照）。制御部４が図１３、図１４に示す処理を再実行した場合には、それまでに計時されたパルスのパルス周期の平均値が正常周期Ｔ_normalに設定されるか（ステップＳ６８参照）、以前の最後の設定又は更新をされた正常周期Ｔ_normalがそのまま更新されずに維持される（ステップＳ７０）。従って、正常周期Ｔ_normalが一定値ではなく、実測されたパルス周期に基づいて設定される。そのため、ノイズ等の外乱、モータ２等の状態、誤差、個体差、経年変化といった因子によってモータ２の電流信号の各成分の周波数や振幅が変動した場合でも、それらの因子が正常周期Ｔ_normalの設定に反映される。よって、ノイズ等の外乱、モータ２等の状態、誤差、個体差、経年変化等にも対応することができる。
【００８９】
以上に述べたことがモータ制御装置１の動作の説明である。図１に示されたモータ制御装置１は、例えば車両用シート装置に用いられる。その車両用シート装置は、図１に示されたモータ制御装置１と、図１５に示されたシート本体９０とを備え、シート本体９０の可動部がモータ２によって駆動される。
【００９０】
シート本体９０の可動部の数とモータ２の数が同数であることが好ましく、モータ２の数が複数である場合、モータドライバ６及び抽出回路３がモータ２ごとに設けられ、制御部４及び記憶部５が全てのモータ２に共通している。なお、モータ２の数が複数である場合、モータドライバ６及び抽出回路３の数がそれぞれ１であってもよい。その場合、リレー回路が設けられ、リレー回路が制御部４からの指令に従って複数のモータ２のうちの何れか一つを選択する。そして、そのリレー回路が選択したモータ２を抽出回路３及びモータドライバ６に接続するとともに、他を抽出回路３及びモータドライバ６から遮断する。
【００９１】
シート本体９０について具体的に説明する。シート本体９０はレール９１、シートボトム９２、バックレスト９３、ヘッドレスト９４、アームレスト９５及びレッグレスト９６等を備える。
【００９２】
シートボトム９２がレール９１の上に搭載され、シートボトム９２がレール９１よって前後方向に移動可能に設けられており、モータ２がシートボトム９２を前後方向に駆動する。シートボトム９２の前部が昇降可能に設けられ、別のモータ２がシートボトム９２の前部を上下方向に駆動する。シートボトム９２の後部が昇降可能に設けられ、別のモータ２がシートボトム９２の後部を上下方向に駆動する。バックレスト９３がリクライニング機構によってシートボトム９２の後端部に回転可能に連結され、別のモータ２がバックレスト９３をシートボトム９２に対して起伏させる。ヘッドレスト９４がバックレスト９３の上端部に昇降可能・回転可能に連結され、別のモータ２がヘッドレスト９４を上下方向に駆動し、更に別のモータ２がヘッドレスト９４を前後に起伏させる。アームレスト９５がバックレスト９３の側面に回転可能に連結され、別のモータ２がアームレスト９５を水平状態から垂直状態に及びその逆に駆動する。レッグレスト９６がシートボトム９２の前端部に回転可能に連結され、別のモータ２がレッグレスト９６を跳ね上げ状態から垂下状態に又はその逆に駆動する。
【００９３】
本発明の実施の形態は、以下のような効果を奏する。
(1)  パルス割れが生じて、制御部４によって数えられたパルス数（計数値Ｎ）が実際のモータ２の回転量に相当するパルス数よりも多くなってしまっても、制御部４によって数えられたパルス数（計数値Ｎ）がその増量分（補正値ｎの絶対値）だけ減算されるように補正される（ステップＳ４９参照）。一方、パルス抜けが生じて、制御部４によって数えられたパルス数（計数値Ｎ）が実際のモータ２の回転量に相当するパルス数よりも少なくなっても、制御部４によって数えられたパルス数（計数値Ｎ）がその減量分（補正値ｎの絶対値）だけ加算されるように補正される（ステップＳ４９参照）。よって、モータ２の回転量や位置等の検出を正確に行えることができる。
(2)  正常周期Ｔ_normalが一定値ではなく、実測されたパルス周期に基づいて設定されるから（ステップＳ６８参照）、モータ２等の状態、誤差、個体差、経年変化等にも対応することができる。
(3)  フィルタ４０の回路設計においてフィルタ４０の高カットオフ周波数ｆｃ２がリプル成分の周波数よりも低く設定されているから、フィルタ４０によってリプル成分を除去することができる。
(4)  差動増幅器５０が、バンドパスフィルタ３０の出力信号（電流電圧変換器１０によって変換された電圧信号のうち直流成分及び高周波ノイズ成分等が除去されたもの）と、フィルタ４０の出力信号（電流電圧変換器１０によって変換された電圧信号のうち直流成分、高周波ノイズ成分及びリプル成分等が除去されたもの）の差分を取って、それを差分信号として出力する。そのため、差動増幅器５０の出力信号は、電流電圧変換器１０によって変換された電圧信号のうちリプル成分である。差動増幅器５０の出力信号が差分信号であるからこそ、モータ２の電流信号の各成分の周波数が環境変化によって変動しても、リプル成分が正確に抽出されて、モータ２の電流信号中のリプルを高精度に検出することができる。
(5)  図５に示す周波数特性のうち、高カットオフ周波数ｆｃ２よりも高い領域の傾斜部分を利用したからこそ、リプル成分の周波数が温度変化により変動したものとしても、差動増幅器５０の出力信号がリプル成分として正確に抽出される。
(6)  フィルタ４０の周波数特性を利用して、フィルタ４０と差動増幅器５０によってリプル成分を抽出したから、フィルタ４０にカットオフ周波数可変型フィルタを用いなくても済む。そのため、フィルタ４０のコストを削減することができる。
(7)  抽出回路３がフィードバック制御回路のような閉ループ回路でないから、モータ２の電流信号の各成分の周波数が過渡的に又は急激に変化したものとしても、リプルを正確に検出することができる。
(8)  フィルタ４０が抵抗器４１ｂ，４１ｄ，４１ａ，４１ｃ及びキャパシタ４１ａ，４１ｃ，４１ｂ，４１ｄ，４３ａからなるフィルタであるから、フィルタ４０の構成がシンプルであり、フィルタ４０のコストアップを抑えることができる。
(9)  フィルタ４０の周波数特性を利用して、フィルタ４０と差動増幅器５０によってリプル成分を抽出したから、ハイパスフィルタ２０やバンドパスフィルタ３０にカットオフ周波数可変型フィルタを用いなくても済む。そのため、ハイパスフィルタ２０やバンドパスフィルタ３０のコストアップを抑えることができる。
(10)  電流電圧変換器１０によって変換された電圧信号のうち直流成分がハイパスフィルタ２０によって除去されるから、そのハイパスフィルタ２０の後段のバンドパスフィルタ３０、フィルタ４０及び差動増幅器５０の処理が正確に行われる。
(11)  電流電圧変換器１０によって変換された電圧信号のうち所定周波数帯域外の成分がバンドパスフィルタ３０によって減衰するから、そのバンドパスフィルタ３０の後段のフィルタ４０や差動増幅器５０の処理が正確に行われる。
【００９４】
〔変形例〕
なお、本発明を適用可能な実施形態は、上述した実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。以下、変形例について説明する。以下に挙げる変形例は可能な限り組み合わせてもよい。
【００９５】
〔変形例１〕
図１４に示す処理において、制御部４の処理がステップＳ６２からステップＳ６４に移行するとともに、制御部４の処理がステップＳ６５の後に終了してもよい。そうすれば、パルス信号のパルスごとに、制御部４は入力した電流データ及び電圧データに基づいて、モータ２の回転速度に相当するパルス周期を基準周期Ｔ_standardとして算出するとともに基準範囲を算出し（ステップＳ６２）、正常周期Ｔ_normalを基準周期Ｔ_standardの値に更新し（ステップＳ６４）、正常範囲の下限値Ｔ_min1を基準範囲の下限値Ｔ_min2の値に更新するとともに正常範囲の上限値Ｔ_max1を基準範囲の上限値Ｔ_max2の値に更新する（ステップＳ６５）。
【００９６】
この場合でも、モータ２の動作中にモータ２の負荷や摩擦等が変動して、モータ２の回転速度が変動する場合でも、パルス抜けやパルス割れによって生じたパルス数の計数誤差を解消することができる。
【００９７】
〔変形例２〕
図１３に示す処理のステップＳ４２において、制御部４が予め求められた一定の値を正常周期Ｔ_normalとして設定し、その一定値を含む範囲を正常範囲として設定してもよい。
【００９８】
〔変形例３〕
上述のステップＳ２２において、制御部４は、計数値Ｎをゼロにリセットするのではなく、計数値Ｎを初期位置データ５Ａに設定してもよい。この場合、ステップＳ２５における処理が省略される。更に、ステップＳ２４においては、制御部４が、抽出回路３によって出力されたパルス信号のパルスを入力するごとに、計数値Ｎに１を加算し又は減算することで計数値Ｎを更新する。また、ステップＳ４９においては、制御部４が、計数値Ｎに補正値ｎを加算することで得られた値に計数値Ｎを更新するか、計数値Ｎに補正値ｎを減算することで得られた値に計数値Ｎを更新する（ステップＳ４９）。制御部４は、ステップＳ２４及びステップＳ４９の演算をステップＳ１１で決定した向きに従って決定する。例えば、ステップＳ１１で決定した回転の向きが正回転である場合には、制御部４がステップＳ２４及びステップＳ４９で加算を行い、ステップＳ１１で決定した回転の向きが逆回転である場合には、制御部４がステップＳ２４及びステップＳ４９で減算を行う。勿論、回転の向きと演算の関係が逆であってもよい。
【００９９】
ステップＳ２４で更新した計数値Ｎは、モータ２の回転位置を示すとともに、原点位置を基準としてその原点位置からの距離を示す。
【０１００】
〔変形例４〕
抽出回路３は一例であり、上述の実施形態の回路に限るものではない。例えば、フィルタ４０及び差動増幅器５０を省略してもよい。その場合、リプル成分の周波数が変化しても、リプル成分を正確に抽出できるようにするために、スイッチト・キャパシタ・フィルタをバンドパスフィルタ３０の後段であって増幅器６０の前段に設けることが好ましい。スイッチト・キャパシタ・フィルタのカットオフ周波数が可変であり、リプル成分や低周波成分の周波数が変化した場合でも、スイッチト・キャパシタ・フィルタは、低周波成分を減衰させ、リプル成分を通過させる。
【０１０１】
〔変形例５〕
フィルタ４０の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図５に示すフィルタ４０の低カットオフ周波数ｆｃ１がリプル成分の周波数（例えば、常温時の周波数）よりも高く設定されている。従って、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうちリプル成分を高周波成分（高周波成分はリプル成分よりも周波数が高い。）よりも高い減衰率で減衰させる。つまり、フィルタ４０は、リプル成分を高周波成分よりも効率的に除去する。従って、フィルタ４０は、リプル成分を除去した信号を差動増幅器５０に出力する。
この場合、モータ２の電流信号やフィルタ４０及び差動増幅器５０の入力信号は、リプル成分と、そのリプル成分よりも周波数が高い高周波成分とを重畳したものである。
【０１０２】
〔変形例６〕
フィルタ４０がバンドパスフィルタではなく、図１６に示すような周波数特性を有したローパスフィルタであってもよい。フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうちカットオフ周波数ｆｃ３以下の成分を通過させ、カットオフ周波数ｆｃ３を超える成分を減衰させる。具体的には、カットオフ周波数ｆｃ３を超える高周波域において、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）に含まれる成分の周波数が低いほど減衰率がより低くなるように、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）を減衰させる。
【０１０３】
フィルタ４０の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図１６に示すフィルタ４０のカットオフ周波数ｆｃ３がリプル成分の周波数（例えば、常温時の周波数）よりも低く設定されている。従って、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうちリプル成分を低周波成分（低周波成分はリプル成分よりも周波数が低い。）よりも高い減衰率で減衰させる。つまり、フィルタ４０は、リプル成分を低周波成分よりも効率的に除去する。従って、フィルタ４０は、リプル成分を除去した信号を差動増幅器５０に出力する。
【０１０４】
この場合、モータ２の電流信号やフィルタ４０及び差動増幅器５０の入力信号は、リプル成分と、そのリプル成分よりも周波数が低い低周波成分とを重畳したものである。
フィルタ４０がローパスフィルタである場合、図６に示すハイパスフィルタ４１，４３が省略され、バンドパスフィルタ３０の出力がローパスフィルタ４２の入力に接続され、ローパスフィルタ４２の出力が抵抗器５１を介してオペアンプ５３の反転入力端子に接続される。
【０１０５】
〔変形例７〕
フィルタ４０がバンドパスフィルタではなく、図１７に示すような周波数特性を有したハイパスフィルタであってもよい。フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうちカットオフ周波数ｆｃ４以上の成分を通過させ、カットオフ周波数ｆｃ４を下回る成分を減衰させる。具体的には、カットオフ周波数ｆｃ４を下回る低周波域において、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）に含まれる成分の周波数が低いほど減衰率がより高くなるように、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）を減衰させる。
【０１０６】
フィルタ４０の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図１７に示すフィルタ４０のカットオフ周波数ｆｃ４がリプル成分の周波数（例えば、常温時の周波数）よりも高く設定されている。従って、フィルタ４０は、電流電圧変換器１０によって変換された電圧信号（バンドパスフィルタ３０の出力信号）のうちリプル成分を高周波成分（高周波成分はリプル成分よりも周波数が高い。）よりも高い減衰率で減衰させる。つまり、フィルタ４０は、リプル成分を高周波成分よりも効率的に除去する。従って、フィルタ４０は、リプル成分を除去した信号を差動増幅器５０に出力する。
フィルタ４０がハイパスフィルタである場合、図６に示すローパスフィルタ４２が省略され、バンドパスフィルタ３０の出力がハイパスフィルタ４１の入力に接続されている。
【０１０７】
〔変形例８〕
フィルタ４０がバンドパスフィルタではなく、バンドストップフィルタであってもよい。
【０１０８】
〔変形例９〕
ハイパスフィルタ２０とバンドパスフィルタ３０の一方又は両方を省略してもよい。ハイパスフィルタ２０を省略した場合には、電流電圧変換器１０の出力がバンドパスフィルタ３０の入力に接続される。バンドパスフィルタ３０を省略した場合には、ハイパスフィルタ２０の出力がフィルタ４０の入力及び差動増幅器５０の入力に接続される。ハイパスフィルタ２０とバンドパスフィルタ３０の両方が省略されている場合には、電流電圧変換器１０の出力がフィルタ４０の入力及び差動増幅器５０の入力に接続される。
【０１０９】
〔変形例１０〕
モータ制御装置１が電動ドアミラー装置に組み込まれ、電動ドアミラー装置の可動部（例えば、ドアに対してミラーハウジングの格納及び展開をする格納機構、ミラーハウジングに対してミラーを上下に振るチルト機構、ミラーハウジングに対してミラーを左右に振るパン機構）がモータ制御装置１のモータ２によって駆動されてもよい。モータ制御装置１がパワーウィンドウ装置に組み込まれ、パワーウィンドウ装置の可動部（例えば、ウィンドウレギュレター）がモータ２によって駆動されてもよい。
【０１１０】
〔変形例１１〕
フィルタ４０がオペアンプを用いたもの（例えば、負帰還型ローパスフィルタ、正帰還型ローパスフィルタ、多重負帰還型バンドパスフィルタ、多重正帰還型バンドパスフィルタ）でもよい。
【符号の説明】
【０１１１】
１  モータ制御装置
２  モータ
３  抽出回路
４  制御部
５  記憶部
７  Ａ／Ｄコンバータ（電圧検出部）
８  Ａ／Ｄコンバータ（電流検出部）
【図１】
0005628729.tif 000002
【図２】
0005628729.tif 000003
【図３】
0005628729.tif 000004
【図４】
0005628729.tif 000005
【図５】
0005628729.tif 000006
【図６】
0005628729.tif 000007
【図７】
0005628729.tif 000008
【図８】
0005628729.tif 000009
【図９】
0005628729.tif 000010
【図１０】
0005628729.tif 000011
【図１１】
0005628729.tif 000012
【図１２】
0005628729.tif 000013
【図１３】
0005628729.tif 000014
【図１４】
0005628729.tif 000015
【図１５】
0005628729.tif 000016
【図１６】
0005628729.tif 000017
【図１７】
0005628729.tif 000018