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