モータ制御装置及び車両用シート装置
【課題】パルス割れやパルス抜けが生じた場合でも、数えられたパルス数がモータの回転量を正確に示すようにする。
【解決手段】制御部4が、抽出回路3によって出力されたパルス信号のパルス数Nを計数するとともに、パルス信号のパルスごとにパルス周期を計時する。制御部4は、計時したパルス周期T_pulseが正常範囲から外れた時から正常範囲内に収まった時まで、計時したパルス周期T_pulseを積算して得られた値を累積期間Tとして算出する。制御部4は、計時したパルス周期T_pulseが正常範囲から外れた時から正常範囲内に収まった時まで、パルス信号のパルス数Mを計数する。制御部4が、累積期間Tを正常周期T_normalで除することで得られた値を推定パルス数mとして算出する。制御部4が、パルス数Nに推定パルス数mに加算して、パルス数Mを減じて得られる値に、パルス数Nを更新する。
【解決手段】制御部4が、抽出回路3によって出力されたパルス信号のパルス数Nを計数するとともに、パルス信号のパルスごとにパルス周期を計時する。制御部4は、計時したパルス周期T_pulseが正常範囲から外れた時から正常範囲内に収まった時まで、計時したパルス周期T_pulseを積算して得られた値を累積期間Tとして算出する。制御部4は、計時したパルス周期T_pulseが正常範囲から外れた時から正常範囲内に収まった時まで、パルス信号のパルス数Mを計数する。制御部4が、累積期間Tを正常周期T_normalで除することで得られた値を推定パルス数mとして算出する。制御部4が、パルス数Nに推定パルス数mに加算して、パルス数Mを減じて得られる値に、パルス数Nを更新する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ制御装置及び車両用シート装置に関する。
【背景技術】
【0002】
車両用シート、電動ドアミラー、パワーウィンドウ等には可動部が設けられ、可動部がモータによって駆動される。可動部の位置及び速度を制御装置によって正確に制御するためには、動作中のモータの回転量や位置を検出する必要がある。モータの回転量や位置を検出するべく、センサが用いられる。つまり、センサ(例えば、ホール素子、エンコーダ、リードスイッチセンサ)がモータ等に設けられ、動作中のモータの回転に同期した信号がセンサによって出力され、センサの出力信号が検出回路(例えば、コンパレータやAD変換器)を介して制御装置に入力される。
【0003】
ところが、センサを用いると、コストアップの要因になってしまう。そこで、センサを用いずに、モータの電流信号を利用して、モータの後段回路によってモータの回転量を検出する技術が提案されている(例えば、特許文献1、特許文献2参照)。モータが動作している際には、モータの電流信号には直流成分、低周波成分及び高周波ノイズ等が含まれており、更に、モータの回転に同期した脈動(以下、リプル(ripple)という。)成分も含まれている。特許文献1、特許文献2に記載の技術では、モータの電流信号を後段回路によって処理することによってリプル成分を抽出する。具体的には、後段回路のフィルタによってモータの電流信号のうち直流成分、低周波成分及び高周波ノイズを除去し、リプル成分を通過させる。モータの電流信号の各成分の周波数が環境変化によって変動するため、後段回路のフィルタには、カットオフ周波数を可変することができるスイッチト・キャパシタ・フィルタを用いる。具体的には、スイッチト・キャパシタ・フィルタを通過した信号が演算回路にフィードバックされ、演算回路がフィードバック信号からカットオフ周波数を演算して、スイッチト・キャパシタ・フィルタのカットオフ周波数を設定する。
【0004】
特許文献1に記載の技術では、リプルパルス整形回路が、スイッチト・キャパシタ・フィルタ(SCF)を通過したリプル成分をパルス化し、カウンタ(CT)が、リプルパルス整形回路の出力信号のパルス数を計数する。カウンタ(CT)によって計数されたパルス数が、モータの回転量に相当するとともに、可動部の移動量に相当する。
【0005】
ところが、スイッチト・キャパシタ・フィルタ及びリプルパルス整形回路等によって出力されるパルス信号のパルスが複数に割れてしまい、正常よりも多くのパルスが発生することがある(例えば、特許文献3参照)。スイッチト・キャパシタ・フィルタ及びリプルパルス整形回路等によって出力されるパルス信号のパルスが抜けてしまい、パルス信号に発生するパルスが正常よりも少ないことがある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−9585号公報
【特許文献2】特開2008−283762号公報
【特許文献3】特表2003−536355号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところが、パルス割れが生じると、カウンタ等によって数えられたパルス数が、実際のモータの回転量に相当するパルス数よりも多くなってしまう。一方、パルス割れが生じると、カウンタ等によって数えられたパルス数が、実際のモータの回転量に相当するパルス数より少なくなってしまう。そのため、カウンタ等によって数えられたパルス数がモータの回転量を正確に示さない。
【0008】
そこで、本発明が解決しようとする課題は、パルス割れやパルス抜けが生じた場合でも、数えられたパルス数がモータの回転量を正確に示すようにすることである。
【課題を解決するための手段】
【0009】
以上の課題を解決するための請求項1に係る発明によれば、
モータ制御装置が、駆動されると電流信号に周期的なリプルを発生させるモータと、前記モータの前記電流信号からリプル成分を抽出して、そのリプル成分をパルス化したパルス信号を出力する抽出回路と、前記パルス信号を入力するとともに、前記モータを制御する制御部と、を備え、前記制御部が、前記パルス信号のパルス数を計数する第一処理と、前記パルス信号のパルスごとにパルス周期を計時する第二処理と、前記第二処理で計時されたパルス周期が正常周期を含む正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記第二処理で計時されたパルス周期を積算して得られた値を累積期間として算出する第三処理と、前記第二処理で計時されたパルス周期が前記正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記パルス信号のパルス数を計数する第四処理と、前記第三処理で算出された累積期間を前記正常周期で除することで得られた値を推定パルス数として算出する第五処理と、前記第一処理で計数されたパルス数に前記第五処理で算出された推定パルス数を加算して、それに前記第四処理で計数されたパルス数を減じて得られる値に、前記第一処理で計数されたパルス数を更新する第六処理と、を実行する。
【0010】
請求項2に係る発明によれば、請求項1において、
前記モータ制御装置が、前記モータの電圧を検出する電圧検出部と、前記モータの電流を検出する電流検出部と、を更に備え、前記第二処理では、前記制御部が、計時したパルス周期を順次記憶し、前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、前記第七処理は、前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出するとともに、前記基準周期を含む基準範囲を算出する処理と、前記第二処理で計時されたパルス周期が前記基準範囲内及び前記正常範囲内に収まっている場合、前記第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新し、その平均値から所定値を減算して得られた値に前記正常範囲の下限値を更新し、その平均値に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理と、前記第二処理で計時されたパルス周期が前記基準範囲から外れている場合又は前記第二処理で計時されたパルス周期が前記正常範囲から外れている場合、前記正常周期及び前記正常範囲を更新せずに維持する処理と、を含む。
【0011】
請求項3に係る発明によれば、請求項1において、
前記モータ制御装置が、前記モータの電圧を検出する電圧検出部と、前記モータの電流を検出する電流検出部と、を更に備え、前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、前記第七処理は、前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出し、前記正常周期を前記基準周期に更新し、前記基準周期から所定値を減算して得られた値に前記正常範囲の下限値を更新し、前記基準周期に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理を含む。
【0012】
請求項4に係る発明によれば、
車両用シート装置が、請求項1から3の何れか一項に記載のモータ制御装置と、前記モータによって駆動される可動部を有するシート本体と、を備える。
【発明の効果】
【0013】
請求項1に係る発明によれば、パルス割れやパルス抜けが生じて、第一処理で数えられたパルス数に誤差が生じた場合でも、第一処理で計時されたパルス数が第六処理で補正される。よって、モータの回転量や位置等の検出を正確に行えることができる。
【0014】
請求項2に係る発明によれば、正常周期が第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新される。つまり、正常周期が実測されたパルス周期の平均値に更新されるから、ノイズ等の外乱、モータ等の状態、誤差、個体差、経年変化といった因子によってモータの電流信号の各成分の周波数や振幅が変動した場合でも、それらの因子が正常周期の設定に反映される。よって、モータの回転量や位置等の検出をより正確に行うことができる。
【0015】
請求項3に係る発明によれば、モータの動作中にモータの負荷や摩擦等が変動して、モータの回転速度が変動する場合でも、その変動後の回転速度が正常周期の設定に反映される。よって、モータの回転量や位置等の検出をより正確に行うことができる。
【図面の簡単な説明】
【0016】
【図1】本発明を適用した実施形態に係るモータ制御装置を示したブロック図である。
【図2】モータの電流信号の波形を示したタイミングチャートである。
【図3】モータの電流信号の波形を示したタイミングチャートである。
【図4】電流電圧変換器、ハイパスフィルタ、バンドパスフィルタ、フィルタと差動増幅器、増幅器及び波形整形部の入力信号及び出力信号の波形を示した図である。
【図5】フィルタの周波数特性を示したグラフである。
【図6】フィルタと差動増幅器を示した回路図である。
【図7】フィルタと差動増幅器の入力信号及び出力信号の波形を示したタイミングチャートである。
【図8】モータを起動させる処理の流れを示したフローチャートである。
【図9】モータの動作中にパルス信号のパルス数を計数する処理の流れを示したフローチャートである。
【図10】パルス抜けが生じたパルス信号の波形を示したタイミングチャートである。
【図11】パルス割れが生じたパルス信号の波形を示したタイミングチャートである。
【図12】モータの動作中にパルス信号のパルス周期を計時する処理の流れを示したフローチャートである
【図13】パルス信号のパルス周期を計時する毎に行われる処理の流れを示したフローチャートである。
【図14】正常周期及び正常範囲を設定するための処理の流れを示したフローチャートである。
【図15】車両用シート装置のシート本体を示した側面図である。
【図16】フィルタの周波数特性を示したグラフである。
【図17】フィルタの周波数特性を示したグラフである。
【発明を実施するための形態】
【0017】
以下に、本発明を実施するための形態について図面を用いて説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい種々の限定が付されているが、本発明の範囲を以下の実施形態及び図示例に限定するものではない。
【0018】
図1は、モータ制御装置1のブロック図である。
モータ制御装置1は、モータ2、抽出回路3、制御部4、記憶部5、モータドライバ6、A/Dコンバータ7及びA/Dコンバータ8等を備える。
【0019】
モータ2は、直流モータである。電流がモータ2に流れると、モータ2が回転するとともに、モータ2が周期的なリプル(ripple)を電流に発生させる。モータ2の電流信号について図2及び図3を参照して説明する。図2は、モータ2が駆動される際にモータ2に流れる電流のレベルの変化を示したチャートである。図3は、図2に示されたA部における時間及び電流のスケールを大きくして示したチャートである。
【0020】
図2において、時刻T1はモータ2が起動したタイミングであり、時刻T2はモータ2が安定的に動作し始めるタイミングである。時刻T3は、モータ2によって駆動される可動部がストッパ等に当接して、モータ2の動力を可動部に伝える伝動機構が拘束され始めるタイミングである。時刻T4は、モータ2が停止するタイミングである。
【0021】
図2及び図3に示すように、モータ2の電流信号は直流成分、リプル成分及び一又は複数の周波成分(交流成分)を含み、周波成分及びリプル成分が直流成分に重畳している。モータ2の電流信号のうち、電流のレベルが急激に変化した高周波成分はノイズである(例えば、符号n参照)。なお、図3は、高周波ノイズ成分がないものとして図示されている。
【0022】
時刻T1から時刻T2までの期間P1では、リプル成分r1と、リプル成分r1よりも周波数が低い低周波成分とが直流成分に重畳している。期間P1のうちモータ2の起動直後では、慣性力の影響により低周波成分の電流レベルが大きく、その後、低周波成分の電流レベルが時間の経過に伴って緩やかに減少する。また、モータ2の起動直後では、低周波成分よりも周波数が高いリプル成分r1の振幅が大きく、その後、リプル成分r1の周波数が時間の経過に伴って漸増するとともに、リプル成分r1の振幅が時間の経過に伴って漸減する。
【0023】
時刻T2から時刻T3までの期間P2では、リプル成分r2と、リプル成分r2よりも周波数が低い低周波成分とが直流成分に重畳し、直流成分がほぼ一定で安定し、低周波成分の周波数及び振幅が安定し、リプル成分r2の周波数及び振幅が安定している。リプル成分r2の周波数が低周波成分の周波数よりも高くなるのは、モータ2に内蔵された複数のコイルが巻き線抵抗に差を有するためである。
【0024】
時刻T3から時刻T4までの期間P3では、モータの電流信号のうち低周波成分の周波数が低くなり、低周波成分の電流レベルが時間の経過とともに漸増する。期間P3では、モータの電流信号のうちリプル成分r3の周波数が時間の経過に伴って漸減し、リプル成分r3の振幅が時間の経過に伴って漸増する。
【0025】
モータ2の電流信号のうち低周波成分及びリプル成分の周波数及び振幅は、様々な環境(例えば、モータ2に対する負荷、環境温度、モータ2の電源電圧等)の影響を受ける。そのため、環境が変化すれば、低周波成分及びリプル成分の周波数及び振幅が変化する。
【0026】
抽出回路3は、以上のようなモータ2の電流信号からリプル成分を抽出して、リプル成分をパルス化し、リプル成分がパルス化されてなるパルス信号を制御部4に出力する。抽出回路3及び抽出回路3を用いたリプル抽出方法について具体的に説明する。
【0027】
図1に示すように、抽出回路3は、電流電圧変換器10、ハイパスフィルタ(High-pass Filter)20、バンドパスフィルタ(Band-pass Filter)30、フィルタ40、差動増幅器50、増幅器60及び波形整形部70を備える。図4は、電流電圧変換器10、ハイパスフィルタ20、バンドパスフィルタ30、フィルタ40と差動増幅器50、増幅器60及び波形整形部70の入力信号及び出力信号を説明するための図である。図4において、電流電圧変換器10、ハイパスフィルタ20及びバンドパスフィルタ30の入力信号と出力信号が示されている期間は、図2における時刻T1から期間P2の初期にかけてである。フィルタ40と差動増幅器50、増幅器60及び波形整形部70の入力信号及び出力信号が示されている期間は、図2における期間P2の一部である。
【0028】
電流電圧変換器10は、モータ2の電流信号を入力する。電流電圧変換器10は、入力したモータ2の電流信号を電圧信号に変換する。具体的には、電流電圧変換器10が抵抗器11を有し、抵抗器11がグランドとモータ2の間に接続され、モータ2の電流信号が抵抗器11とモータ2の間における電圧信号に変換される。電流電圧変換器10は、変換した電圧信号をハイパスフィルタ20及びバンドパスフィルタ30を介してフィルタ40及び差動増幅器50に出力する。なお、電流電圧変換器10は、オペアンプを用いたもの(例えば、負帰還型電流電圧変換器)でもよい。
【0029】
ハイパスフィルタ20は、電流電圧変換器10によって変換された電圧信号(電流電圧変換器10の出力信号)を入力する。ハイパスフィルタ20は、電流電圧変換器10によって変換された電圧信号(電流電圧変換器10の出力信号)のうち高周波成分を通過させ、低周波成分を減衰させる。つまり、ハイパスフィルタ20は、電流電圧変換器10によって変換された電圧信号のうち直流成分を除去する。ハイパスフィルタ20は、バンドパスフィルタ30を介して、低周波成分が減衰した信号をフィルタ40及び差動増幅器50に出力する。
ハイパスフィルタ20は、オペアンプを用いたもの(例えば、負帰還型ハイパスフィルタ、正帰還型ハイパスフィルタ)又は抵抗器・キャパシタを用いたもの(例えば、CRハイパスフィルタ)である。
【0030】
バンドパスフィルタ30は、電流電圧変換器10によって変換された電圧信号をハイパスフィルタ20を介して入力する。バンドパスフィルタ30は、電流電圧変換器10によって変換された電圧信号(ハイパスフィルタ20の出力信号)のうち所定周波数帯域の成分を通過させ、その所定周波数帯域外の成分を減衰させる。つまり、バンドパスフィルタ30は、電流電圧変換器10によって変換された電圧信号(ハイパスフィルタ20の出力信号)のうち高周波ノイズ成分を除去するとともに、ハイパスフィルタ20によって除去しきれなかった低周波成分を除去する。バンドパスフィルタ30は、所定周波数帯域外の成分を減衰させた信号をフィルタ40及び差動増幅器50に出力する。
バンドパスフィルタ30は、オペアンプを用いたもの(例えば、多重負帰還型バンドパスフィルタ、多重正帰還型バンドパスフィルタ)又は抵抗器・キャパシタを用いたものである。
【0031】
なお、バンドパスフィルタ30がハイパスフィルタ20の後段に設けられているが、バンドパスフィルタ30が電流電圧変換器10の後段であってハイパスフィルタ20の前段に設けられてもよい。
【0032】
フィルタ40は、電流電圧変換器10によって変換された電圧信号をハイパスフィルタ20及びバンドパスフィルタ30を介して入力し、その信号を濾波する。フィルタ40は、濾波した信号を差動増幅器50に出力する。
【0033】
図5は、フィルタ40の周波数特性を示したグラフである。
図5に示すように、フィルタ40は、バンドパスフィルタである。フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうち、低カットオフ周波数fc1から高カットオフ周波数fc2までの間の中間周波数帯域の成分を通過させる。低カットオフ周波数fc1はフィルタ40のハイパスフィルタ部のカットオフ周波数であり、高カットオフ周波数fc2はフィルタ40のローパスフィルタ部のカットオフ周波数であり、低カットオフ周波数fc1<高カットオフ周波数fc2である。なお、カットオフ周波数とは、出力電力が入力電力の1/2となる周波数を指す。つまり、ゲインGが−3dbとなる周波数がカットオフ周波数である。
【0034】
また、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうち、低カットオフ周波数fc1を下回る低周波域の成分を減衰させる。具体的には、低カットオフ周波数fc1を下回る低周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより高くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)の低周波域成分を減衰させる。
【0035】
また、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうち、高カットオフ周波数fc2を超える高周波域の成分を減衰させる。具体的には、高カットオフ周波数fc2を超える高周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより低くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)の高周波域成分を減衰させる。
【0036】
図2及び図3に示したように、モータ2の電流信号は、リプル成分と、そのリプル成分よりも周波数が低い低周波成分とを重畳したものである。リプル成分の周波数は実験・測定等によって予め調べられ、フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、フィルタ40の高カットオフ周波数fc2がリプル成分の周波数(例えば、常温時の周波数)よりも低く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を低周波成分(低周波成分はリプル成分よりも周波数が低い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を低周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
【0037】
差動増幅器50は、電流電圧変換器10によって変換された電圧信号をハイパスフィルタ20及びバンドパスフィルタ30を介して入力するとともに、フィルタ40の出力信号を入力する。差動増幅器50は、入力したフィルタ40の出力信号と、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)の差分を取って、その差分を増幅する。差動増幅器50は、その差分を表す差分信号を増幅器60に出力する。
【0038】
図6は、フィルタ40と差動増幅器50の一例を示した回路図である。図7(a)は図6に示されたA部における電圧信号の波形を示したタイミングチャートであり、図7(b)は図6に示されたB部における電圧信号の波形を示したタイミングチャートであり、図7(c)は図6に示されたC部における電圧信号の波形を示したタイミングチャートである。
【0039】
図6に示すように、フィルタ40は、ハイパスフィルタ41、ローパスフィルタ42及びハイパスフィルタ43を有する。バンドパスフィルタ30の出力がハイパスフィルタ41の入力に接続され、ハイパスフィルタ41の出力がローパスフィルタ42の入力に接続され、ローパスフィルタ42の出力がハイパスフィルタ43の入力に接続される。
【0040】
ハイパスフィルタ41は、二次のCRハイパスフィルタである。つまり、ハイパスフィルタ41は、キャパシタ41a、抵抗器41b、キャパシタ41c及び抵抗器41dを有する。なお、ハイパスフィルタ41が一つのキャパシタ及び抵抗器からなる一次のCRハイパスフィルタであってもよい。また、ハイパスフィルタ41が三次以上のCRハイパスフィルタでもよい。
【0041】
ローパスフィルタ42は、二次のRCローパスフィルタである。つまり、ローパスフィルタ42は、抵抗器42a、キャパシタ42b、抵抗器42c及びキャパシタ42dを有する。なお、ローパスフィルタ42が一つの抵抗器及びキャパシタからなる一次のRCローパスフィルタであってもよい。また、ローパスフィルタ42が三次以上のRCローパスフィルタでもよい。
ハイパスフィルタ43は、キャパシタ43aからなる。
【0042】
差動増幅器50は抵抗器51,52、オペアンプ53、カップリングコンデンサ54及びバイアス回路55等を有する。オペアンプ53の出力端子が抵抗器52を介してオペアンプ53の反転入力端子に接続され、負帰還がオペアンプ53にかけられている。フィルタ40の出力信号(ハイパスフィルタ43の出力信号)が抵抗器51を介してオペアンプ53の反転入力端子に入力され、バンドパスフィルタ30の出力信号がカップリングコンデンサ54及びバイアス回路55を介してオペアンプ53の非反転入力端子に入力される。カップリングコンデンサ54は、バンドパスフィルタ30の出力信号の直流成分を除去する。バイアス回路55は、電源電圧とグランドの間に直列された抵抗器56,57を有する。バイアス回路55は、カップリングコンデンサ54によって直流成分が除去されたバンドパスフィルタ30の出力信号にバイアス電圧をかけて、バンドパスフィルタ30の出力信号の基準レベルを引き上げる。なお、カップリングコンデンサ54及びバイアス回路55を省略してもよい。
【0043】
差動増幅器50によって出力された差分信号は、電流電圧変換器10によって変換された電圧信号のうちリプル成分である。差動増幅器50によって出力された差分信号が、バンドパスフィルタ30の出力信号とフィルタ40の出力信号との差分を表すからこそ、モータ2の電流信号の各成分の周波数が環境変化によって変化しても、モータ2の電流信号に含まれるリプルを高精度に検出することができる。
【0044】
図1、図6に示すように、増幅器60は、差動増幅器50によって出力された差分信号(オペアンプ53の出力信号)を入力する。増幅器60は、差動増幅器50によって出力された差分信号を増幅して、それを波形整形部70に出力する。増幅器60は、例えば負帰還型増幅器である。
【0045】
波形整形部70は、差動増幅器50によって出力された差分信号(オペアンプ53の出力信号)を増幅器60を介して入力する。波形整形部70は、差動増幅器50によって出力された差分信号(増幅器60の出力信号)の波形を矩形波に整形する。具体的には、波形整形部70がコンパレータを有し、該コンパレータが、差動増幅器50によって出力された差分信号(増幅器60の出力信号)を基準電圧と比較することによって、差動増幅器50によって出力された差分信号(増幅器60の出力信号)をパルス信号に変換する。波形整形部70は、矩形波に整形されたパルス信号を制御部4に出力する。制御部4は、波形整形部70によって出力されたパルス信号を入力する。
【0046】
モータドライバ6は、制御部4からの指令に従ってモータ2を駆動する。つまり、モータドライバ6は、制御部4から起動指令及び回転向き指令を受けたら、モータ2をその回転向きに起動させる。モータドライバ6は、制御部4から受けた設定速度指令に従ってその設定速度でモータ2を駆動する。モータドライバ6は、制御部4から停止指令を受けたら、モータ2を停止する。
【0047】
A/Dコンバータ7は、電圧検出部である。つまり、A/Dコンバータ7は、モータ2の電源電圧を検出して、その電圧信号をデジタル信号に変換して、デジタル化した電圧データを制御部4に出力する。制御部4は、A/Dコンバータ7によって出力される電圧データを入力する。
【0048】
A/Dコンバータ8は、電流検出部である。つまり、A/Dコンバータ8は、モータ2の電流値を検出して、その電流信号をデジタル信号に変換して、デジタル化した電流データを制御部4に出力する。ここで、電流電圧変換器10の出力信号がモータ2の電流を表すので、A/Dコンバータ8は電流電圧変換器10の出力信号をデジタル信号に変換して、それを制御部4に出力する。制御部4は、A/Dコンバータ8によって出力される電流データを入力する。
【0049】
制御部4は、CPU4a及びRAM4b等を有するコンピュータである。CPU4aは、数値計算、情報処理、機器制御等の各種処理を行う。RAM4bは、一時記憶領域としての作業領域をCPU4aに提供する。
【0050】
記憶部5は、制御部4に接続されている。記憶部5は、不揮発性メモリ、ハードディスクといった読み書き可能な記憶媒体である。記憶部5は、一つの記憶媒体からなるものでもよいし、複数の記憶媒体を組み合わせたものでもよい。記憶部5が複数の記憶媒体を組み合わせたものである場合、何れかの記憶媒体がROMであってもよい。
【0051】
記憶部5には、初期位置データ5Aが格納されている。初期位置データ5Aは、モータ2が動作する前のモータ2の初期の回転位置や、モータ2によって駆動される可動部の初期位置を示す。具体的には、初期位置データ5Aは、モータ2が所定の原点位置から初期の回転位置まで回転した場合のパルス信号のパルス数である。そのパルス数に所定の定数を乗じて得られた値は、モータ2が所定の原点位置から初期の回転位置まで回転した場合の回転量であって、モータ2が動作する前のモータ2の初期の回転位置を示す。初期位置データ5Aは、予め設定されたデフォルト値であるか、又は以前にモータ2が動作した際に書き込まれた値である。仮にモータ2の初期の回転位置が原点位置であれば、初期位置データ5Aはゼロである。
【0052】
記憶部5には、制御部4にとって読み取り可能なプログラム5Zが格納されている。制御部4は、プログラム5Zを読み込んでそのプログラム5Zに従った処理を行ったり、そのプログラム5Zによって各種機能を実現したりする。なお、記憶部5が複数の記憶媒体を組み合わせたものである場合、プログラム5Zが記憶部5のROMに格納されていてもよい。
【0053】
プログラム5Zに基づく制御部4の処理の流れについて説明するとともに、制御部4の処理に伴うモータ制御装置1の動作について説明する。
【0054】
所定の条件が満たされると、制御部4がモータ2の起動処理(図8参照)を実行する。所定の条件が満たされるとは、例えば、ユーザが起動スイッチをオンにすること、起動センサがオンになること、制御部4によって実行されている処理(例えば、シーケンス処理)で所定の条件が満たされること等である。
【0055】
まず、制御部4は、モータ2の回転の向き(正回転か逆回転)を決定し、その回転の向きをRAM又は記憶部5に書き込む(ステップS11)。
【0056】
次に、制御部4は、ステップS11で決定した向きにモータ2を起動させる(ステップS12)。つまり、制御部4は、ステップS11で決定した向きに従った回転向き指令をモータドライバ6に出力するとともに、起動指令をそのモータドライバ6に出力する。回転向き指令及び起動指令を受けたモータドライバ6がモータ2に通電して、モータ2をその回転向きに駆動する。これにより、モータ2が回転し、モータ2によって可動部が駆動される。以上により、モータ2の起動処理が終了する。
【0057】
モータ2の動作中は、抽出回路3がモータ2の電流信号からリプル成分を抽出(検出)して、リプル成分をパルス化する。そして、抽出回路3は、リプル成分がパルス化されてなるパルス信号を制御部4に出力する。
【0058】
モータ2が起動すると、制御部4は、抽出回路3から入力したパルス信号に基づいて、パルス信号のパルス数の計数、モータ2の回転量の算出及びモータ2の回転位置の算出を行う。より具体的には、制御部4が図9に示す処理を実行することによってパルス信号のパルス数の計数、モータ2の回転量の算出及びモータ2の回転位置の算出を行う。
【0059】
図9に示す処理について具体的に説明する。
制御部4は、A/Dコンバータ7から入力した電圧データを監視して、電圧データを所定の閾値と比較する(ステップS21)。上述のように制御部4がモータ2を起動させると(ステップS13)、モータ2に電流が通電するから、制御部4は電圧データが所定の閾値を上回ったと判定して、モータ2の通電・起動を検出する(ステップS21:YES)。そして、制御部4が記憶部5から初期位置データ5Aを読み込んで、制御部4の処理がステップS22に移行する。なお、制御部4がA/Dコンバータ8から入力した電流データを監視して、制御部4が電流データを所定の閾値と比較してもよい(ステップS21)。この場合、モータ2に電流が通電した場合、制御部4は電流データが所定の閾値を上回ったと判定して、モータ2の通電・起動を検出する(ステップS21:YES)。
【0060】
電流がモータ2に通電すると、制御部4は抽出回路3によって出力されたパルス信号のパルス数を計数するとともに、モータ2の回転量及び回転位置を算出する(ステップS22,S23,S24、S25)。具体的には、まず、制御部4は、計数値Nをゼロにリセットする(ステップS22)。その後、制御部4は、抽出回路3によって出力されたパルス信号のパルスを入力するごとに(ステップS23:YES)、計数値Nに1を加算して得られた値に計数値Nを更新するとともに(ステップS24)、読み込んだ初期位置データ5Aに更新後の計数値Nを加算するか、又は読み込んだ初期位置データ5Aから更新後の計数値Nを減算する(ステップS25)。制御部4は、ステップS25の演算をステップS11で決定した向きに従って決定する。例えば、ステップS11で決定した回転の向きが正回転である場合には、制御部4がステップS25で加算を行い、ステップS11で決定した回転の向きが逆回転である場合には、制御部4がステップS25で減算を行う。勿論、回転の向きと演算の関係が逆であってもよい。
【0061】
ステップS24において更新された計数値Nが、制御部4によって計数されたパルス数である。制御部4によって計数されたパルス数(計数値N)に所定の定数を乗じて得られる値がモータ2の回転量や可動部の移動量に相当するから、制御部4がパルス数(計数値N)を計数する処理(ステップS21〜ステップS26)は、制御部4がモータ2の回転量や可動部の移動量を算出する処理に相当する。また、ステップS25において求められた差や和が、モータ2の回転位置(原点位置からその回転位置までのモータ2の回転量)を示すとともに、可動部の位置(原点位置からその位置までの可動部の移動量)を示す。
【0062】
制御部4は、モータ2の電流の遮断を検出するまでステップS23〜ステップS26の処理を繰り返す(ステップS26:NO)。具体的には、制御部4は、ステップS25の処理の後に、A/Dコンバータ7から入力した電圧データを所定の閾値と比較する(ステップS26)。そして、モータ2の電流が遮断されなかったら、制御部4は電圧データが所定の閾値を上回っていると判定して(ステップS26:NO)、制御部4の処理がステップS23に戻り、制御部4がステップS23〜ステップS25の処理を再度行う。なお、ステップS26では、制御部4がA/Dコンバータ8から入力した電流データを所定の閾値と比較してもよい(ステップS26)。この場合、モータ2の電流が遮断されなかったら、制御部4は電流データが所定の閾値を上回ったと判定して(ステップS26:NO)、制御部4がステップS23〜ステップS25の処理を再度行う。
【0063】
制御部4が図9に示す処理を実行している時に所定の条件が満たされると、制御部4がモータドライバ6に停止指令を出力する。そうすると、停止指令を受けたモータドライバ6がモータ2の通電を遮断し、モータ2が停止する。所定の条件とは、例えば、ユーザが停止スイッチをオンにすること、制御部4によって実行された処理(例えば、シーケンス処理)で所定の条件が満たされること、上述のステップS25において求めた差又は和が所定の値になることである。
【0064】
制御部4がモータドライバ6に停止指令を出力すると、モータ2の電流がモータドライバ6によって遮断されるので、制御部4はA/Dコンバータ7から入力した電圧データが所定の閾値を下回ったと判定して(ステップS26:YES)、制御部4は図9に示す処理を終了する。なお、制御部4がA/Dコンバータ8から入力した電流データを所定の閾値と比較する場合(ステップS26)、モータ2の電流が遮断されたら、制御部4は電流データが所定の閾値を下回ったと判定して(ステップS26:YES)、制御部4は図9に示す処理を終了する。
【0065】
制御部4は、図9に示す処理の終了後、図9に示すステップS23〜ステップS26の処理を繰り返している際に最後のステップS25において求めた差又は和を記憶部5に書き込む。具体的には、制御部4は、記憶部5に記憶された初期位置データ5Aを最後のステップS25において求めた差又は和に書き換える。
【0066】
ところで、モータ2の動作中に抽出回路3によって生成されるパルス信号に異常が生じることがある。例えば、図10に示すように、パルスが抜けた結果、異常なパルス周期が正常なパルス周期よりも長くなってしまうことがある。このようなパルス抜けが生じると、図9に示す処理で求められたパルス信号のパルス数(計数値N)は正常な場合と比較して少ない。一方、図11に示すように、パルスが複数に分割された結果、異常なパルス周期が正常なパルス周期よりも短くなってしまう。このようなパルス割れが生じると、図9に示す処理で求められたパルス信号のパルス数(計数値N)は正常な場合と比較して多い。そこで、制御部4は、次のような処理(図12〜図14参照)を行うことによって、図9に示す処理で求めたパルス数(計数値N)を補正する。
【0067】
モータ2の動作中において、制御部4は、パルス信号のパルスごとにパルス周期を計時する。具体的には、制御部4が、図12に示すような処理を実行することによってパルスの立ち上がりから次のパルスの立ち上がりまでのパルス周期をパルスごとに順次計時し、計時したパルス周期をRAMや記憶部5に順次記憶する。
【0068】
まず、制御部4は、計時時間をゼロにリセットする(ステップS31)。次に、制御部4は、計時を開始するとともに、抽出回路3の出力パルス信号のパルスが立ち上がるまで計時を継続する(ステップS32、ステップS33:NO)。そして、制御部4が抽出回路3の出力パルス信号のパルスの立ち上がりを検出したら(ステップS33:YES)、制御部4が計時を終了するとともに(ステップS34)、計時時間をRAM若しくは記憶部5又はこれらの両方に記憶する(ステップS35)。そして、制御部4は計時時間を再びゼロにリセットして(ステップS31)、計時を行う(ステップS32)。制御部4が以上のステップS31〜ステップS35の処理を繰り返すことによって、計時時間がRAM若しくは記憶部5又はこれらの両方に順次記憶される。RAM若しくは記憶部5又はこれらの両方に書き込まれた計時時間のデータ列は、抽出回路3の出力パルス信号のパルスごとのパルス周期のデータ列である。パルス周期の逆数が、モータ2の回転速度に示すとともに、モータ2によって駆動される可動部の速度を示す。従って、制御部4がパルスごとにパルス周期を計時する処理(ステップS31〜ステップS35)は、パルスごとにモータ2の回転速度や可動部の速度を求める処理に相当する。
【0069】
制御部4は、抽出回路3によって出力されるパルス信号のパルス周期の計時を終了する(ステップS34参照)度に、図13に示す処理を実行する。そのため、抽出回路3によって出力されるパルス信号のパルスが連続的に発生すると、制御部4が図13に示す処理を繰り返して実行する。図13に示す処理が繰り返して実行されると、制御部4が計数値Mの計数をしたり、累積期間Tを積算したりする。図10及び図11に示すように、計数値Mは、異常周期のパルスが連続して発生した回数を表す。但し、異常周期のパルスの後に正常周期のパルスが発生したら、異常周期のパルスの後に最初に発生した正常周期のパルスも異常周期のパルスとして計数値Mに数えられる。累積期間Tは、異常周期のパルスが連続して発生した期間を表す。但し、異常周期のパルスの後に正常周期のパルスが発生したら、異常周期のパルスの後に最初に発生した正常周期のパルスの周期も累積期間Tに加算される。
【0070】
制御部4がモータ2の起動後に初めて図13に示す処理を実行する前には、制御部4が計数値Mをゼロにリセットするとともに、累積期間Tをゼロにリセットする。また、モータ2の動作中において、異常周期のパルスが発生した後に正常周期のパルスが発生すると、制御部4が計数値M及び累積期間Tをゼロにリセットする(ステップS50、ステップS51参照)。
【0071】
図13に示す処理について具体的に説明する。
まず、制御部4は、ステップS34で終了した計時時間(パルス周期T_pulse)をリセットする(ステップS31参照)前に、その計時時間をパルス周期T_pulseとして取得する(ステップS41)。なお、制御部4が図13に示す処理を再実行した場合、制御部4はパルス周期T_pulseを取得したら(ステップS41)、前に実行した際に取得したパルス周期T_pulseを消去して、今回取得したパルス周期T_pulseに更新する。
次に、制御部4は、正常周期T_normal及び正常範囲を設定する(ステップS42)。正常周期T_normalとは、パルス抜け及びパルス割れが発生していない場合のパルス周期を示す。正常範囲とは、正常周期T_normalを含む範囲である。具体的には、正常範囲は、正常周期T_normalを中心とした範囲あって、正常周期T_normalから所定値を減算して得られる下限値T_min1から正常周期T_normalに所定値を加算して得られる上限値T_max1までの範囲である。下限値T_min1<上限値T_max1である。なお、正常周期T_normalが下限値T_min1と上限値T_max1の平均値であってもよいし、正常周期T_normalが下限値T_min1と上限値T_max1の平均値からずれていてもよい。制御部4が正常周期T_normal及び正常範囲を設定する処理(図14参照)については、後に詳述する。
【0072】
次に、制御部4は、ステップS41で取得したパルス周期T_pulseを正常範囲の下限値T_min1及び上限値T_max1と比較することで、パルス周期T_pulseが正常範囲内に収まるか否かを判定する(ステップS43)。パルス周期T_pulseが正常範囲内に収まっていると制御部4が判定した場合には(ステップS43:YES)、制御部4は計数値Mがゼロであるか否かを判定することによって異常周期のパルスの数の計数中であるか否かを判定する(ステップS44)。計数値Mがゼロであって異常周期のパルスの数を計数していないと制御部4が判定すると(ステップS44:YES)、制御部4は図13に示す処理を終了する。
【0073】
制御部4が抽出回路3によって出力されるパルス信号のパルス周期の計時を終了する(ステップS34参照)度に図13に示す処理を実行するから、モータ2の動作中に正常な周期のパルスが抽出回路3の出力パルス信号に連続的に発生していれば、異常な周期のパルスが抽出回路3の出力パルス信号に発生するまで、制御部4がステップS41、ステップS42、ステップS43(YES)及びステップS44(YES)の処理を繰り返し行う。正常な周期のパルスが抽出回路3の出力パルス信号に連続的に発生していれば、図9に示す処理で求めたパルス数(計数値N)が補正されない。
【0074】
一方、異常な周期のパルスが抽出回路3の出力パルス信号に発生すると、パルス周期T_pulseが正常範囲から外れたと制御部4が判定する(ステップS43:NO)。そのような判定の結果、制御部4が異常周期のパルスの数の計数を開始し、制御部4が計数値Mに1を加算して得られた値に計数値Mを更新する(ステップS52)。更に、制御部4は、ステップS41で取得したパルス周期T_pulseを累積期間Tに加算して得られた値に累積期間Tを更新する(ステップS53)。その後、制御部4は、図13に示す処理を終了する。
【0075】
制御部4が抽出回路3によって出力されるパルス信号のパルス周期の計時を終了する(ステップS34参照)度に図13に示す処理を実行するから、モータ2の動作中に異常な周期のパルスが抽出回路3の出力パルス信号に連続的に発生していれば、正常な周期のパルスが抽出回路3の出力パルス信号に発生するまで、制御部4がステップS41、ステップS42、ステップS43(NO)、ステップS52及びステップS53の処理を繰り返し行う。よって、図10、図11に示すように、異常な周期のパルスが抽出回路3の出力パルス信号に発生したら、その後正常な周期のパルスが抽出回路3の出力パルス信号に発生するまで、制御部4がパルス信号に含まれる異常周期のパルスの数(計数値M)の計数を継続するとともに(ステップS52)、パルス信号に含まれる異常周期のパルスの周期の積算を継続する(ステップS53)。
【0076】
異常な周期のパルスが抽出回路3の出力パルス信号に発生した後に(ステップS43(NO)、ステップS52及びステップS53の後に)、正常な周期のパルスが抽出回路3の出力パルス信号に発生すると、パルス周期T_pulseが正常範囲内に収まっていると制御部4が判定する(ステップS43:YES)。そして、計数値Mがゼロを超えているから、制御部4は計数値Mがゼロでないと判定して、制御部4が異常周期のパルスの数の計数中であると判定する(ステップS44:NO)。ステップS43、ステップS44の判定の結果、制御部4の処理がステップS45に移行すると、制御部4が計数値Mに1を加算して得られた値に計数値Mを更新する。このステップS45の処理は、異常周期のパルスの後に発生した正常周期のパルスを異常周期のパルスとして計数値Mに数える処理である。また、制御部4は、ステップS41で取得したパルス周期T_pulseを累積期間Tに加算して得られた値に累積期間Tを更新する(ステップS46)。このステップS46の処理は、異常周期のパルスの後に発生した正常周期のパルスの周期を異常周期のパルスとして累積期間Tに加算する処理である。
【0077】
次に、制御部4は、積算した累積期間Tを正常周期T_normalで除して、その除算により得られた値を推定パルス数mとして算出する(ステップS47)。推定パルス数mは、異常な周期のパルスが最初に発生した時からその後正常な周期のパルスが最初に発生した時までの期間(累積期間T)内に仮に正常な周期のパルスが発生したとしたら、その正常な周期のパルスの数を表した推定値である。
【0078】
次に、制御部4が、推定パルス数mから計数値Mを減ずることで得られた値を補正値nとして算出する(ステップS48)。補正値nは、異常な周期のパルスが最初に発生した時からその後正常な周期のパルスが最初に発生した時までの期間(累積期間T)内に仮に発生した正常な周期のパルスの数(推定パルス数m)と、その期間内に実際に発生したパルスの数(計数値M)との差である。パルス抜けが発生した場合、補正値nが正となり、パルス割れが発生した場合、補正値nが負となる。
【0079】
次に、制御部4が、図9の処理で計数中のパルス数(計数値N)を補正する(ステップS49)。具体的には、制御部4が、計数値Nに補正値nを加算することで得られた値に計数値Nを更新する(ステップS49)。なお、制御部4が、計数値Nに推定パルス数mを加算するとともにそれに計数値Mを減算して得られた値に計数値Nを更新してもよい。更新後の計数値Nは、パルス抜けによって数えられなかったパルス数(補正値nの絶対値)を加えたパルス数であるか、パルス割れによって過剰に数えてしまったパルス数(補正値nの絶対値)を減じたパルス数である。よって、パルス割れやパルス抜けが生じても、正確なパルス数(計数値N)が算出され、そのパルス数(計数値N)が実際のモータ2の回転量や可動部の移動量を正確に表す。
【0080】
計数値Nの補正後、制御部4が計数値M及び累積期間Tをゼロにリセットする(ステップS50、ステップS51)。そして、制御部4が図13に示す処理を終了する。
【0081】
図14を参照して、ステップS42における正常周期T_normal及び正常範囲の設定処理について具体的に説明する。
まず、制御部4が、A/Dコンバータ7によって検出された電流データ及びA/Dコンバータ8によって検出された電圧データを入力する(ステップS61)。
【0082】
次に、制御部4が、入力した電流データ及び電圧データに基づいて、モータ2の回転速度に相当するパルス周期を基準周期T_standardとして算出する(ステップS62)。更に、制御部4が基準範囲を算出する(ステップS62)。具体的には、制御部4が、基準周期T_standardから所定値を減算することで基準範囲の下限値T_min2を算出するとともに、基準周期T_standardに所定値を加算して得られる基準範囲の上限値T_max2を算出する。基準範囲とは、基準周期T_standardを含む範囲であって、好ましくは、基準周期T_standardを中心とした範囲である。基準周期T_standardは、基準範囲の下限値T_min2と上限値T_max2の平均値であってもよいし、その平均値からずれていてもよい。なお、基準周期T_standardの算出の際には、過去の平均値やモータ2の回転位置、負荷、環境温度又はモータ2の回転方向を加味してもよい。
【0083】
次に、制御部4がモータ2の起動後に初めて図13及び図14に示す処理を実行するのであれば、正常周期T_normalが設定されていないから(ステップS63:NO)、制御部4が基準周期T_standardの値を正常周期T_normalに設定する(ステップS64)。更に、制御部4が基準範囲の下限値T_min2の値を正常範囲の下限値T_min1に設定するとともに、基準範囲の上限値T_max2の値を正常範囲の上限値T_max1に設定する(ステップS65)。なお、制御部4が基準周期T_standardの値を正常周期T_normalに設定せずに、デフォルト値を正常周期T_normalに設定するとともに(ステップS64)、デフォルトの上限値及び下限値を正常範囲の下限値T_min1及び上限値T_max1に設定してもよい(ステップS65)。
【0084】
一方、制御部4がモータ2の起動後に図13及び図14に示す処理を再実行するのであれば、正常周期T_normalが既に設定されているから(ステップS63:YES)、制御部4がステップS64及びステップS65の処理を省略する。
【0085】
次に、制御部4は、ステップS41で取得したパルス周期T_pulseを正常範囲の下限値T_min1及び上限値T_max1と比較することで、パルス周期T_pulseが正常範囲内に収まっているか否かを判定する(ステップS66)。更に、制御部4は、ステップS41で取得したパルス周期T_pulseを基準範囲の下限値T_min2及び上限値T_max2と比較することで、パルス周期T_pulseが基準範囲内に収まっているか否かを判定する(ステップS67)。
【0086】
パルス周期T_pulseが正常範囲から外れた場合(ステップS66:NO)又はパルス周期T_pulseが基準範囲から外れた場合(ステップS67:NO)、制御部4が正常周期T_normal及び正常範囲を更新せずに維持し(ステップS70)、図14に示す処理を終了する。
【0087】
一方、パルス周期T_pulseが正常範囲内であり、且つパルス周期T_pulseが基準範囲内に収まっている場合(ステップS66:YES、ステップS67:YES)、制御部4が、RAM又は記憶部5に記憶された以前のパルスのパルス周期(今回のパルスのパルス周期T_pulseを含む。)の平均値を算出する。そして、制御部4が、正常周期T_normalをその平均値に更新する(ステップS68)。更に、制御部4が、算出した平均値を中心とした範囲に正常範囲を更新する(ステップS69)。具体的には、制御部4が、平均値から所定値を減算することで得られた値に正常範囲の下限値T_min1を更新するとともに、平均値に所定値を加算することで得られた値に正常範囲の上限値T_max1を更新する(ステップS69)。そして、制御部4は図14に示す処理を終了する。
【0088】
制御部4がモータ2の起動後に初めて図13、図14に示す処理を実行した場合には、計時されたパルス周期T_pulseの値が正常周期T_normalに設定されるか(ステップS68参照)、モータ2の電流・電圧データに基づいたモータ2の回転速度に相当するパルス周期(基準周期T_standard)の値又はデフォルト値が正常周期T_normalに設定される(ステップS64、ステップS70参照)。制御部4が図13、図14に示す処理を再実行した場合には、それまでに計時されたパルスのパルス周期の平均値が正常周期T_normalに設定されるか(ステップS68参照)、以前の最後の設定又は更新をされた正常周期T_normalがそのまま更新されずに維持される(ステップS70)。従って、正常周期T_normalが一定値ではなく、実測されたパルス周期に基づいて設定される。そのため、ノイズ等の外乱、モータ2等の状態、誤差、個体差、経年変化といった因子によってモータ2の電流信号の各成分の周波数や振幅が変動した場合でも、それらの因子が正常周期T_normalの設定に反映される。よって、ノイズ等の外乱、モータ2等の状態、誤差、個体差、経年変化等にも対応することができる。
【0089】
以上に述べたことがモータ制御装置1の動作の説明である。図1に示されたモータ制御装置1は、例えば車両用シート装置に用いられる。その車両用シート装置は、図1に示されたモータ制御装置1と、図15に示されたシート本体90とを備え、シート本体90の可動部がモータ2によって駆動される。
【0090】
シート本体90の可動部の数とモータ2の数が同数であることが好ましく、モータ2の数が複数である場合、モータドライバ6及び抽出回路3がモータ2ごとに設けられ、制御部4及び記憶部5が全てのモータ2に共通している。なお、モータ2の数が複数である場合、モータドライバ6及び抽出回路3の数がそれぞれ1であってもよい。その場合、リレー回路が設けられ、リレー回路が制御部4からの指令に従って複数のモータ2のうちの何れか一つを選択する。そして、そのリレー回路が選択したモータ2を抽出回路3及びモータドライバ6に接続するとともに、他を抽出回路3及びモータドライバ6から遮断する。
【0091】
シート本体90について具体的に説明する。シート本体90はレール91、シートボトム92、バックレスト93、ヘッドレスト94、アームレスト95及びレッグレスト96等を備える。
【0092】
シートボトム92がレール91の上に搭載され、シートボトム92がレール91よって前後方向に移動可能に設けられており、モータ2がシートボトム92を前後方向に駆動する。シートボトム92の前部が昇降可能に設けられ、別のモータ2がシートボトム92の前部を上下方向に駆動する。シートボトム92の後部が昇降可能に設けられ、別のモータ2がシートボトム92の後部を上下方向に駆動する。バックレスト93がリクライニング機構によってシートボトム92の後端部に回転可能に連結され、別のモータ2がバックレスト93をシートボトム92に対して起伏させる。ヘッドレスト94がバックレスト93の上端部に昇降可能・回転可能に連結され、別のモータ2がヘッドレスト94を上下方向に駆動し、更に別のモータ2がヘッドレスト94を前後に起伏させる。アームレスト95がバックレスト93の側面に回転可能に連結され、別のモータ2がアームレスト95を水平状態から垂直状態に及びその逆に駆動する。レッグレスト96がシートボトム92の前端部に回転可能に連結され、別のモータ2がレッグレスト96を跳ね上げ状態から垂下状態に又はその逆に駆動する。
【0093】
本発明の実施の形態は、以下のような効果を奏する。
(1) パルス割れが生じて、制御部4によって数えられたパルス数(計数値N)が実際のモータ2の回転量に相当するパルス数よりも多くなってしまっても、制御部4によって数えられたパルス数(計数値N)がその増量分(補正値nの絶対値)だけ減算されるように補正される(ステップS49参照)。一方、パルス抜けが生じて、制御部4によって数えられたパルス数(計数値N)が実際のモータ2の回転量に相当するパルス数よりも少なくなっても、制御部4によって数えられたパルス数(計数値N)がその減量分(補正値nの絶対値)だけ加算されるように補正される(ステップS49参照)。よって、モータ2の回転量や位置等の検出を正確に行えることができる。
(2) 正常周期T_normalが一定値ではなく、実測されたパルス周期に基づいて設定されるから(ステップS68参照)、モータ2等の状態、誤差、個体差、経年変化等にも対応することができる。
(3) フィルタ40の回路設計においてフィルタ40の高カットオフ周波数fc2がリプル成分の周波数よりも低く設定されているから、フィルタ40によってリプル成分を除去することができる。
(4) 差動増幅器50が、バンドパスフィルタ30の出力信号(電流電圧変換器10によって変換された電圧信号のうち直流成分及び高周波ノイズ成分等が除去されたもの)と、フィルタ40の出力信号(電流電圧変換器10によって変換された電圧信号のうち直流成分、高周波ノイズ成分及びリプル成分等が除去されたもの)の差分を取って、それを差分信号として出力する。そのため、差動増幅器50の出力信号は、電流電圧変換器10によって変換された電圧信号のうちリプル成分である。差動増幅器50の出力信号が差分信号であるからこそ、モータ2の電流信号の各成分の周波数が環境変化によって変動しても、リプル成分が正確に抽出されて、モータ2の電流信号中のリプルを高精度に検出することができる。
(5) 図5に示す周波数特性のうち、高カットオフ周波数fc2よりも高い領域の傾斜部分を利用したからこそ、リプル成分の周波数が温度変化により変動したものとしても、差動増幅器50の出力信号がリプル成分として正確に抽出される。
(6) フィルタ40の周波数特性を利用して、フィルタ40と差動増幅器50によってリプル成分を抽出したから、フィルタ40にカットオフ周波数可変型フィルタを用いなくても済む。そのため、フィルタ40のコストを削減することができる。
(7) 抽出回路3がフィードバック制御回路のような閉ループ回路でないから、モータ2の電流信号の各成分の周波数が過渡的に又は急激に変化したものとしても、リプルを正確に検出することができる。
(8) フィルタ40が抵抗器41b,41d,41a,41c及びキャパシタ41a,41c,41b,41d,43aからなるフィルタであるから、フィルタ40の構成がシンプルであり、フィルタ40のコストアップを抑えることができる。
(9) フィルタ40の周波数特性を利用して、フィルタ40と差動増幅器50によってリプル成分を抽出したから、ハイパスフィルタ20やバンドパスフィルタ30にカットオフ周波数可変型フィルタを用いなくても済む。そのため、ハイパスフィルタ20やバンドパスフィルタ30のコストアップを抑えることができる。
(10) 電流電圧変換器10によって変換された電圧信号のうち直流成分がハイパスフィルタ20によって除去されるから、そのハイパスフィルタ20の後段のバンドパスフィルタ30、フィルタ40及び差動増幅器50の処理が正確に行われる。
(11) 電流電圧変換器10によって変換された電圧信号のうち所定周波数帯域外の成分がバンドパスフィルタ30によって減衰するから、そのバンドパスフィルタ30の後段のフィルタ40や差動増幅器50の処理が正確に行われる。
【0094】
〔変形例〕
なお、本発明を適用可能な実施形態は、上述した実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。以下、変形例について説明する。以下に挙げる変形例は可能な限り組み合わせてもよい。
【0095】
〔変形例1〕
図14に示す処理において、制御部4の処理がステップS62からステップS64に移行するとともに、制御部4の処理がステップS65の後に終了してもよい。そうすれば、パルス信号のパルスごとに、制御部4は入力した電流データ及び電圧データに基づいて、モータ2の回転速度に相当するパルス周期を基準周期T_standardとして算出するとともに基準範囲を算出し(ステップS62)、正常周期T_normalを基準周期T_standardの値に更新し(ステップS64)、正常範囲の下限値T_min1を基準範囲の下限値T_min2の値に更新するとともに正常範囲の上限値T_max1を基準範囲の上限値T_max2の値に更新する(ステップS65)。
【0096】
この場合でも、モータ2の動作中にモータ2の負荷や摩擦等が変動して、モータ2の回転速度が変動する場合でも、パルス抜けやパルス割れによって生じたパルス数の計数誤差を解消することができる。
【0097】
〔変形例2〕
図13に示す処理のステップS42において、制御部4が予め求められた一定の値を正常周期T_normalとして設定し、その一定値を含む範囲を正常範囲として設定してもよい。
【0098】
〔変形例3〕
上述のステップS22において、制御部4は、計数値Nをゼロにリセットするのではなく、計数値Nを初期位置データ5Aに設定してもよい。この場合、ステップS25における処理が省略される。更に、ステップS24においては、制御部4が、抽出回路3によって出力されたパルス信号のパルスを入力するごとに、計数値Nに1を加算し又は減算することで計数値Nを更新する。また、ステップS49においては、制御部4が、計数値Nに補正値nを加算することで得られた値に計数値Nを更新するか、計数値Nに補正値nを減算することで得られた値に計数値Nを更新する(ステップS49)。制御部4は、ステップS24及びステップS49の演算をステップS11で決定した向きに従って決定する。例えば、ステップS11で決定した回転の向きが正回転である場合には、制御部4がステップS24及びステップS49で加算を行い、ステップS11で決定した回転の向きが逆回転である場合には、制御部4がステップS24及びステップS49で減算を行う。勿論、回転の向きと演算の関係が逆であってもよい。
【0099】
ステップS24で更新した計数値Nは、モータ2の回転位置を示すとともに、原点位置を基準としてその原点位置からの距離を示す。
【0100】
〔変形例4〕
抽出回路3は一例であり、上述の実施形態の回路に限るものではない。例えば、フィルタ40及び差動増幅器50を省略してもよい。その場合、リプル成分の周波数が変化しても、リプル成分を正確に抽出できるようにするために、スイッチト・キャパシタ・フィルタをバンドパスフィルタ30の後段であって増幅器60の前段に設けることが好ましい。スイッチト・キャパシタ・フィルタのカットオフ周波数が可変であり、リプル成分や低周波成分の周波数が変化した場合でも、スイッチト・キャパシタ・フィルタは、低周波成分を減衰させ、リプル成分を通過させる。
【0101】
〔変形例5〕
フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図5に示すフィルタ40の低カットオフ周波数fc1がリプル成分の周波数(例えば、常温時の周波数)よりも高く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を高周波成分(高周波成分はリプル成分よりも周波数が高い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を高周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
この場合、モータ2の電流信号やフィルタ40及び差動増幅器50の入力信号は、リプル成分と、そのリプル成分よりも周波数が高い高周波成分とを重畳したものである。
【0102】
〔変形例6〕
フィルタ40がバンドパスフィルタではなく、図16に示すような周波数特性を有したローパスフィルタであってもよい。フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちカットオフ周波数fc3以下の成分を通過させ、カットオフ周波数fc3を超える成分を減衰させる。具体的には、カットオフ周波数fc3を超える高周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより低くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)を減衰させる。
【0103】
フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図16に示すフィルタ40のカットオフ周波数fc3がリプル成分の周波数(例えば、常温時の周波数)よりも低く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を低周波成分(低周波成分はリプル成分よりも周波数が低い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を低周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
【0104】
この場合、モータ2の電流信号やフィルタ40及び差動増幅器50の入力信号は、リプル成分と、そのリプル成分よりも周波数が低い低周波成分とを重畳したものである。
フィルタ40がローパスフィルタである場合、図6に示すハイパスフィルタ41,43が省略され、バンドパスフィルタ30の出力がローパスフィルタ42の入力に接続され、ローパスフィルタ42の出力が抵抗器51を介してオペアンプ53の反転入力端子に接続される。
【0105】
〔変形例7〕
フィルタ40がバンドパスフィルタではなく、図17に示すような周波数特性を有したハイパスフィルタであってもよい。フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちカットオフ周波数fc4以上の成分を通過させ、カットオフ周波数fc4を下回る成分を減衰させる。具体的には、カットオフ周波数fc4を下回る低周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより高くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)を減衰させる。
【0106】
フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図17に示すフィルタ40のカットオフ周波数fc4がリプル成分の周波数(例えば、常温時の周波数)よりも高く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を高周波成分(高周波成分はリプル成分よりも周波数が高い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を高周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
フィルタ40がハイパスフィルタである場合、図6に示すローパスフィルタ42が省略され、バンドパスフィルタ30の出力がハイパスフィルタ41の入力に接続されている。
【0107】
〔変形例8〕
フィルタ40がバンドパスフィルタではなく、バンドストップフィルタであってもよい。
【0108】
〔変形例9〕
ハイパスフィルタ20とバンドパスフィルタ30の一方又は両方を省略してもよい。ハイパスフィルタ20を省略した場合には、電流電圧変換器10の出力がバンドパスフィルタ30の入力に接続される。バンドパスフィルタ30を省略した場合には、ハイパスフィルタ20の出力がフィルタ40の入力及び差動増幅器50の入力に接続される。ハイパスフィルタ20とバンドパスフィルタ30の両方が省略されている場合には、電流電圧変換器10の出力がフィルタ40の入力及び差動増幅器50の入力に接続される。
【0109】
〔変形例10〕
モータ制御装置1が電動ドアミラー装置に組み込まれ、電動ドアミラー装置の可動部(例えば、ドアに対してミラーハウジングの格納及び展開をする格納機構、ミラーハウジングに対してミラーを上下に振るチルト機構、ミラーハウジングに対してミラーを左右に振るパン機構)がモータ制御装置1のモータ2によって駆動されてもよい。モータ制御装置1がパワーウィンドウ装置に組み込まれ、パワーウィンドウ装置の可動部(例えば、ウィンドウレギュレター)がモータ2によって駆動されてもよい。
【0110】
〔変形例11〕
フィルタ40がオペアンプを用いたもの(例えば、負帰還型ローパスフィルタ、正帰還型ローパスフィルタ、多重負帰還型バンドパスフィルタ、多重正帰還型バンドパスフィルタ)でもよい。
【符号の説明】
【0111】
1 モータ制御装置
2 モータ
3 抽出回路
4 制御部
5 記憶部
7 A/Dコンバータ(電圧検出部)
8 A/Dコンバータ(電流検出部)
【技術分野】
【0001】
本発明は、モータ制御装置及び車両用シート装置に関する。
【背景技術】
【0002】
車両用シート、電動ドアミラー、パワーウィンドウ等には可動部が設けられ、可動部がモータによって駆動される。可動部の位置及び速度を制御装置によって正確に制御するためには、動作中のモータの回転量や位置を検出する必要がある。モータの回転量や位置を検出するべく、センサが用いられる。つまり、センサ(例えば、ホール素子、エンコーダ、リードスイッチセンサ)がモータ等に設けられ、動作中のモータの回転に同期した信号がセンサによって出力され、センサの出力信号が検出回路(例えば、コンパレータやAD変換器)を介して制御装置に入力される。
【0003】
ところが、センサを用いると、コストアップの要因になってしまう。そこで、センサを用いずに、モータの電流信号を利用して、モータの後段回路によってモータの回転量を検出する技術が提案されている(例えば、特許文献1、特許文献2参照)。モータが動作している際には、モータの電流信号には直流成分、低周波成分及び高周波ノイズ等が含まれており、更に、モータの回転に同期した脈動(以下、リプル(ripple)という。)成分も含まれている。特許文献1、特許文献2に記載の技術では、モータの電流信号を後段回路によって処理することによってリプル成分を抽出する。具体的には、後段回路のフィルタによってモータの電流信号のうち直流成分、低周波成分及び高周波ノイズを除去し、リプル成分を通過させる。モータの電流信号の各成分の周波数が環境変化によって変動するため、後段回路のフィルタには、カットオフ周波数を可変することができるスイッチト・キャパシタ・フィルタを用いる。具体的には、スイッチト・キャパシタ・フィルタを通過した信号が演算回路にフィードバックされ、演算回路がフィードバック信号からカットオフ周波数を演算して、スイッチト・キャパシタ・フィルタのカットオフ周波数を設定する。
【0004】
特許文献1に記載の技術では、リプルパルス整形回路が、スイッチト・キャパシタ・フィルタ(SCF)を通過したリプル成分をパルス化し、カウンタ(CT)が、リプルパルス整形回路の出力信号のパルス数を計数する。カウンタ(CT)によって計数されたパルス数が、モータの回転量に相当するとともに、可動部の移動量に相当する。
【0005】
ところが、スイッチト・キャパシタ・フィルタ及びリプルパルス整形回路等によって出力されるパルス信号のパルスが複数に割れてしまい、正常よりも多くのパルスが発生することがある(例えば、特許文献3参照)。スイッチト・キャパシタ・フィルタ及びリプルパルス整形回路等によって出力されるパルス信号のパルスが抜けてしまい、パルス信号に発生するパルスが正常よりも少ないことがある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−9585号公報
【特許文献2】特開2008−283762号公報
【特許文献3】特表2003−536355号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところが、パルス割れが生じると、カウンタ等によって数えられたパルス数が、実際のモータの回転量に相当するパルス数よりも多くなってしまう。一方、パルス割れが生じると、カウンタ等によって数えられたパルス数が、実際のモータの回転量に相当するパルス数より少なくなってしまう。そのため、カウンタ等によって数えられたパルス数がモータの回転量を正確に示さない。
【0008】
そこで、本発明が解決しようとする課題は、パルス割れやパルス抜けが生じた場合でも、数えられたパルス数がモータの回転量を正確に示すようにすることである。
【課題を解決するための手段】
【0009】
以上の課題を解決するための請求項1に係る発明によれば、
モータ制御装置が、駆動されると電流信号に周期的なリプルを発生させるモータと、前記モータの前記電流信号からリプル成分を抽出して、そのリプル成分をパルス化したパルス信号を出力する抽出回路と、前記パルス信号を入力するとともに、前記モータを制御する制御部と、を備え、前記制御部が、前記パルス信号のパルス数を計数する第一処理と、前記パルス信号のパルスごとにパルス周期を計時する第二処理と、前記第二処理で計時されたパルス周期が正常周期を含む正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記第二処理で計時されたパルス周期を積算して得られた値を累積期間として算出する第三処理と、前記第二処理で計時されたパルス周期が前記正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記パルス信号のパルス数を計数する第四処理と、前記第三処理で算出された累積期間を前記正常周期で除することで得られた値を推定パルス数として算出する第五処理と、前記第一処理で計数されたパルス数に前記第五処理で算出された推定パルス数を加算して、それに前記第四処理で計数されたパルス数を減じて得られる値に、前記第一処理で計数されたパルス数を更新する第六処理と、を実行する。
【0010】
請求項2に係る発明によれば、請求項1において、
前記モータ制御装置が、前記モータの電圧を検出する電圧検出部と、前記モータの電流を検出する電流検出部と、を更に備え、前記第二処理では、前記制御部が、計時したパルス周期を順次記憶し、前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、前記第七処理は、前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出するとともに、前記基準周期を含む基準範囲を算出する処理と、前記第二処理で計時されたパルス周期が前記基準範囲内及び前記正常範囲内に収まっている場合、前記第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新し、その平均値から所定値を減算して得られた値に前記正常範囲の下限値を更新し、その平均値に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理と、前記第二処理で計時されたパルス周期が前記基準範囲から外れている場合又は前記第二処理で計時されたパルス周期が前記正常範囲から外れている場合、前記正常周期及び前記正常範囲を更新せずに維持する処理と、を含む。
【0011】
請求項3に係る発明によれば、請求項1において、
前記モータ制御装置が、前記モータの電圧を検出する電圧検出部と、前記モータの電流を検出する電流検出部と、を更に備え、前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、前記第七処理は、前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出し、前記正常周期を前記基準周期に更新し、前記基準周期から所定値を減算して得られた値に前記正常範囲の下限値を更新し、前記基準周期に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理を含む。
【0012】
請求項4に係る発明によれば、
車両用シート装置が、請求項1から3の何れか一項に記載のモータ制御装置と、前記モータによって駆動される可動部を有するシート本体と、を備える。
【発明の効果】
【0013】
請求項1に係る発明によれば、パルス割れやパルス抜けが生じて、第一処理で数えられたパルス数に誤差が生じた場合でも、第一処理で計時されたパルス数が第六処理で補正される。よって、モータの回転量や位置等の検出を正確に行えることができる。
【0014】
請求項2に係る発明によれば、正常周期が第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新される。つまり、正常周期が実測されたパルス周期の平均値に更新されるから、ノイズ等の外乱、モータ等の状態、誤差、個体差、経年変化といった因子によってモータの電流信号の各成分の周波数や振幅が変動した場合でも、それらの因子が正常周期の設定に反映される。よって、モータの回転量や位置等の検出をより正確に行うことができる。
【0015】
請求項3に係る発明によれば、モータの動作中にモータの負荷や摩擦等が変動して、モータの回転速度が変動する場合でも、その変動後の回転速度が正常周期の設定に反映される。よって、モータの回転量や位置等の検出をより正確に行うことができる。
【図面の簡単な説明】
【0016】
【図1】本発明を適用した実施形態に係るモータ制御装置を示したブロック図である。
【図2】モータの電流信号の波形を示したタイミングチャートである。
【図3】モータの電流信号の波形を示したタイミングチャートである。
【図4】電流電圧変換器、ハイパスフィルタ、バンドパスフィルタ、フィルタと差動増幅器、増幅器及び波形整形部の入力信号及び出力信号の波形を示した図である。
【図5】フィルタの周波数特性を示したグラフである。
【図6】フィルタと差動増幅器を示した回路図である。
【図7】フィルタと差動増幅器の入力信号及び出力信号の波形を示したタイミングチャートである。
【図8】モータを起動させる処理の流れを示したフローチャートである。
【図9】モータの動作中にパルス信号のパルス数を計数する処理の流れを示したフローチャートである。
【図10】パルス抜けが生じたパルス信号の波形を示したタイミングチャートである。
【図11】パルス割れが生じたパルス信号の波形を示したタイミングチャートである。
【図12】モータの動作中にパルス信号のパルス周期を計時する処理の流れを示したフローチャートである
【図13】パルス信号のパルス周期を計時する毎に行われる処理の流れを示したフローチャートである。
【図14】正常周期及び正常範囲を設定するための処理の流れを示したフローチャートである。
【図15】車両用シート装置のシート本体を示した側面図である。
【図16】フィルタの周波数特性を示したグラフである。
【図17】フィルタの周波数特性を示したグラフである。
【発明を実施するための形態】
【0017】
以下に、本発明を実施するための形態について図面を用いて説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい種々の限定が付されているが、本発明の範囲を以下の実施形態及び図示例に限定するものではない。
【0018】
図1は、モータ制御装置1のブロック図である。
モータ制御装置1は、モータ2、抽出回路3、制御部4、記憶部5、モータドライバ6、A/Dコンバータ7及びA/Dコンバータ8等を備える。
【0019】
モータ2は、直流モータである。電流がモータ2に流れると、モータ2が回転するとともに、モータ2が周期的なリプル(ripple)を電流に発生させる。モータ2の電流信号について図2及び図3を参照して説明する。図2は、モータ2が駆動される際にモータ2に流れる電流のレベルの変化を示したチャートである。図3は、図2に示されたA部における時間及び電流のスケールを大きくして示したチャートである。
【0020】
図2において、時刻T1はモータ2が起動したタイミングであり、時刻T2はモータ2が安定的に動作し始めるタイミングである。時刻T3は、モータ2によって駆動される可動部がストッパ等に当接して、モータ2の動力を可動部に伝える伝動機構が拘束され始めるタイミングである。時刻T4は、モータ2が停止するタイミングである。
【0021】
図2及び図3に示すように、モータ2の電流信号は直流成分、リプル成分及び一又は複数の周波成分(交流成分)を含み、周波成分及びリプル成分が直流成分に重畳している。モータ2の電流信号のうち、電流のレベルが急激に変化した高周波成分はノイズである(例えば、符号n参照)。なお、図3は、高周波ノイズ成分がないものとして図示されている。
【0022】
時刻T1から時刻T2までの期間P1では、リプル成分r1と、リプル成分r1よりも周波数が低い低周波成分とが直流成分に重畳している。期間P1のうちモータ2の起動直後では、慣性力の影響により低周波成分の電流レベルが大きく、その後、低周波成分の電流レベルが時間の経過に伴って緩やかに減少する。また、モータ2の起動直後では、低周波成分よりも周波数が高いリプル成分r1の振幅が大きく、その後、リプル成分r1の周波数が時間の経過に伴って漸増するとともに、リプル成分r1の振幅が時間の経過に伴って漸減する。
【0023】
時刻T2から時刻T3までの期間P2では、リプル成分r2と、リプル成分r2よりも周波数が低い低周波成分とが直流成分に重畳し、直流成分がほぼ一定で安定し、低周波成分の周波数及び振幅が安定し、リプル成分r2の周波数及び振幅が安定している。リプル成分r2の周波数が低周波成分の周波数よりも高くなるのは、モータ2に内蔵された複数のコイルが巻き線抵抗に差を有するためである。
【0024】
時刻T3から時刻T4までの期間P3では、モータの電流信号のうち低周波成分の周波数が低くなり、低周波成分の電流レベルが時間の経過とともに漸増する。期間P3では、モータの電流信号のうちリプル成分r3の周波数が時間の経過に伴って漸減し、リプル成分r3の振幅が時間の経過に伴って漸増する。
【0025】
モータ2の電流信号のうち低周波成分及びリプル成分の周波数及び振幅は、様々な環境(例えば、モータ2に対する負荷、環境温度、モータ2の電源電圧等)の影響を受ける。そのため、環境が変化すれば、低周波成分及びリプル成分の周波数及び振幅が変化する。
【0026】
抽出回路3は、以上のようなモータ2の電流信号からリプル成分を抽出して、リプル成分をパルス化し、リプル成分がパルス化されてなるパルス信号を制御部4に出力する。抽出回路3及び抽出回路3を用いたリプル抽出方法について具体的に説明する。
【0027】
図1に示すように、抽出回路3は、電流電圧変換器10、ハイパスフィルタ(High-pass Filter)20、バンドパスフィルタ(Band-pass Filter)30、フィルタ40、差動増幅器50、増幅器60及び波形整形部70を備える。図4は、電流電圧変換器10、ハイパスフィルタ20、バンドパスフィルタ30、フィルタ40と差動増幅器50、増幅器60及び波形整形部70の入力信号及び出力信号を説明するための図である。図4において、電流電圧変換器10、ハイパスフィルタ20及びバンドパスフィルタ30の入力信号と出力信号が示されている期間は、図2における時刻T1から期間P2の初期にかけてである。フィルタ40と差動増幅器50、増幅器60及び波形整形部70の入力信号及び出力信号が示されている期間は、図2における期間P2の一部である。
【0028】
電流電圧変換器10は、モータ2の電流信号を入力する。電流電圧変換器10は、入力したモータ2の電流信号を電圧信号に変換する。具体的には、電流電圧変換器10が抵抗器11を有し、抵抗器11がグランドとモータ2の間に接続され、モータ2の電流信号が抵抗器11とモータ2の間における電圧信号に変換される。電流電圧変換器10は、変換した電圧信号をハイパスフィルタ20及びバンドパスフィルタ30を介してフィルタ40及び差動増幅器50に出力する。なお、電流電圧変換器10は、オペアンプを用いたもの(例えば、負帰還型電流電圧変換器)でもよい。
【0029】
ハイパスフィルタ20は、電流電圧変換器10によって変換された電圧信号(電流電圧変換器10の出力信号)を入力する。ハイパスフィルタ20は、電流電圧変換器10によって変換された電圧信号(電流電圧変換器10の出力信号)のうち高周波成分を通過させ、低周波成分を減衰させる。つまり、ハイパスフィルタ20は、電流電圧変換器10によって変換された電圧信号のうち直流成分を除去する。ハイパスフィルタ20は、バンドパスフィルタ30を介して、低周波成分が減衰した信号をフィルタ40及び差動増幅器50に出力する。
ハイパスフィルタ20は、オペアンプを用いたもの(例えば、負帰還型ハイパスフィルタ、正帰還型ハイパスフィルタ)又は抵抗器・キャパシタを用いたもの(例えば、CRハイパスフィルタ)である。
【0030】
バンドパスフィルタ30は、電流電圧変換器10によって変換された電圧信号をハイパスフィルタ20を介して入力する。バンドパスフィルタ30は、電流電圧変換器10によって変換された電圧信号(ハイパスフィルタ20の出力信号)のうち所定周波数帯域の成分を通過させ、その所定周波数帯域外の成分を減衰させる。つまり、バンドパスフィルタ30は、電流電圧変換器10によって変換された電圧信号(ハイパスフィルタ20の出力信号)のうち高周波ノイズ成分を除去するとともに、ハイパスフィルタ20によって除去しきれなかった低周波成分を除去する。バンドパスフィルタ30は、所定周波数帯域外の成分を減衰させた信号をフィルタ40及び差動増幅器50に出力する。
バンドパスフィルタ30は、オペアンプを用いたもの(例えば、多重負帰還型バンドパスフィルタ、多重正帰還型バンドパスフィルタ)又は抵抗器・キャパシタを用いたものである。
【0031】
なお、バンドパスフィルタ30がハイパスフィルタ20の後段に設けられているが、バンドパスフィルタ30が電流電圧変換器10の後段であってハイパスフィルタ20の前段に設けられてもよい。
【0032】
フィルタ40は、電流電圧変換器10によって変換された電圧信号をハイパスフィルタ20及びバンドパスフィルタ30を介して入力し、その信号を濾波する。フィルタ40は、濾波した信号を差動増幅器50に出力する。
【0033】
図5は、フィルタ40の周波数特性を示したグラフである。
図5に示すように、フィルタ40は、バンドパスフィルタである。フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうち、低カットオフ周波数fc1から高カットオフ周波数fc2までの間の中間周波数帯域の成分を通過させる。低カットオフ周波数fc1はフィルタ40のハイパスフィルタ部のカットオフ周波数であり、高カットオフ周波数fc2はフィルタ40のローパスフィルタ部のカットオフ周波数であり、低カットオフ周波数fc1<高カットオフ周波数fc2である。なお、カットオフ周波数とは、出力電力が入力電力の1/2となる周波数を指す。つまり、ゲインGが−3dbとなる周波数がカットオフ周波数である。
【0034】
また、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうち、低カットオフ周波数fc1を下回る低周波域の成分を減衰させる。具体的には、低カットオフ周波数fc1を下回る低周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより高くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)の低周波域成分を減衰させる。
【0035】
また、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうち、高カットオフ周波数fc2を超える高周波域の成分を減衰させる。具体的には、高カットオフ周波数fc2を超える高周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより低くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)の高周波域成分を減衰させる。
【0036】
図2及び図3に示したように、モータ2の電流信号は、リプル成分と、そのリプル成分よりも周波数が低い低周波成分とを重畳したものである。リプル成分の周波数は実験・測定等によって予め調べられ、フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、フィルタ40の高カットオフ周波数fc2がリプル成分の周波数(例えば、常温時の周波数)よりも低く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を低周波成分(低周波成分はリプル成分よりも周波数が低い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を低周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
【0037】
差動増幅器50は、電流電圧変換器10によって変換された電圧信号をハイパスフィルタ20及びバンドパスフィルタ30を介して入力するとともに、フィルタ40の出力信号を入力する。差動増幅器50は、入力したフィルタ40の出力信号と、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)の差分を取って、その差分を増幅する。差動増幅器50は、その差分を表す差分信号を増幅器60に出力する。
【0038】
図6は、フィルタ40と差動増幅器50の一例を示した回路図である。図7(a)は図6に示されたA部における電圧信号の波形を示したタイミングチャートであり、図7(b)は図6に示されたB部における電圧信号の波形を示したタイミングチャートであり、図7(c)は図6に示されたC部における電圧信号の波形を示したタイミングチャートである。
【0039】
図6に示すように、フィルタ40は、ハイパスフィルタ41、ローパスフィルタ42及びハイパスフィルタ43を有する。バンドパスフィルタ30の出力がハイパスフィルタ41の入力に接続され、ハイパスフィルタ41の出力がローパスフィルタ42の入力に接続され、ローパスフィルタ42の出力がハイパスフィルタ43の入力に接続される。
【0040】
ハイパスフィルタ41は、二次のCRハイパスフィルタである。つまり、ハイパスフィルタ41は、キャパシタ41a、抵抗器41b、キャパシタ41c及び抵抗器41dを有する。なお、ハイパスフィルタ41が一つのキャパシタ及び抵抗器からなる一次のCRハイパスフィルタであってもよい。また、ハイパスフィルタ41が三次以上のCRハイパスフィルタでもよい。
【0041】
ローパスフィルタ42は、二次のRCローパスフィルタである。つまり、ローパスフィルタ42は、抵抗器42a、キャパシタ42b、抵抗器42c及びキャパシタ42dを有する。なお、ローパスフィルタ42が一つの抵抗器及びキャパシタからなる一次のRCローパスフィルタであってもよい。また、ローパスフィルタ42が三次以上のRCローパスフィルタでもよい。
ハイパスフィルタ43は、キャパシタ43aからなる。
【0042】
差動増幅器50は抵抗器51,52、オペアンプ53、カップリングコンデンサ54及びバイアス回路55等を有する。オペアンプ53の出力端子が抵抗器52を介してオペアンプ53の反転入力端子に接続され、負帰還がオペアンプ53にかけられている。フィルタ40の出力信号(ハイパスフィルタ43の出力信号)が抵抗器51を介してオペアンプ53の反転入力端子に入力され、バンドパスフィルタ30の出力信号がカップリングコンデンサ54及びバイアス回路55を介してオペアンプ53の非反転入力端子に入力される。カップリングコンデンサ54は、バンドパスフィルタ30の出力信号の直流成分を除去する。バイアス回路55は、電源電圧とグランドの間に直列された抵抗器56,57を有する。バイアス回路55は、カップリングコンデンサ54によって直流成分が除去されたバンドパスフィルタ30の出力信号にバイアス電圧をかけて、バンドパスフィルタ30の出力信号の基準レベルを引き上げる。なお、カップリングコンデンサ54及びバイアス回路55を省略してもよい。
【0043】
差動増幅器50によって出力された差分信号は、電流電圧変換器10によって変換された電圧信号のうちリプル成分である。差動増幅器50によって出力された差分信号が、バンドパスフィルタ30の出力信号とフィルタ40の出力信号との差分を表すからこそ、モータ2の電流信号の各成分の周波数が環境変化によって変化しても、モータ2の電流信号に含まれるリプルを高精度に検出することができる。
【0044】
図1、図6に示すように、増幅器60は、差動増幅器50によって出力された差分信号(オペアンプ53の出力信号)を入力する。増幅器60は、差動増幅器50によって出力された差分信号を増幅して、それを波形整形部70に出力する。増幅器60は、例えば負帰還型増幅器である。
【0045】
波形整形部70は、差動増幅器50によって出力された差分信号(オペアンプ53の出力信号)を増幅器60を介して入力する。波形整形部70は、差動増幅器50によって出力された差分信号(増幅器60の出力信号)の波形を矩形波に整形する。具体的には、波形整形部70がコンパレータを有し、該コンパレータが、差動増幅器50によって出力された差分信号(増幅器60の出力信号)を基準電圧と比較することによって、差動増幅器50によって出力された差分信号(増幅器60の出力信号)をパルス信号に変換する。波形整形部70は、矩形波に整形されたパルス信号を制御部4に出力する。制御部4は、波形整形部70によって出力されたパルス信号を入力する。
【0046】
モータドライバ6は、制御部4からの指令に従ってモータ2を駆動する。つまり、モータドライバ6は、制御部4から起動指令及び回転向き指令を受けたら、モータ2をその回転向きに起動させる。モータドライバ6は、制御部4から受けた設定速度指令に従ってその設定速度でモータ2を駆動する。モータドライバ6は、制御部4から停止指令を受けたら、モータ2を停止する。
【0047】
A/Dコンバータ7は、電圧検出部である。つまり、A/Dコンバータ7は、モータ2の電源電圧を検出して、その電圧信号をデジタル信号に変換して、デジタル化した電圧データを制御部4に出力する。制御部4は、A/Dコンバータ7によって出力される電圧データを入力する。
【0048】
A/Dコンバータ8は、電流検出部である。つまり、A/Dコンバータ8は、モータ2の電流値を検出して、その電流信号をデジタル信号に変換して、デジタル化した電流データを制御部4に出力する。ここで、電流電圧変換器10の出力信号がモータ2の電流を表すので、A/Dコンバータ8は電流電圧変換器10の出力信号をデジタル信号に変換して、それを制御部4に出力する。制御部4は、A/Dコンバータ8によって出力される電流データを入力する。
【0049】
制御部4は、CPU4a及びRAM4b等を有するコンピュータである。CPU4aは、数値計算、情報処理、機器制御等の各種処理を行う。RAM4bは、一時記憶領域としての作業領域をCPU4aに提供する。
【0050】
記憶部5は、制御部4に接続されている。記憶部5は、不揮発性メモリ、ハードディスクといった読み書き可能な記憶媒体である。記憶部5は、一つの記憶媒体からなるものでもよいし、複数の記憶媒体を組み合わせたものでもよい。記憶部5が複数の記憶媒体を組み合わせたものである場合、何れかの記憶媒体がROMであってもよい。
【0051】
記憶部5には、初期位置データ5Aが格納されている。初期位置データ5Aは、モータ2が動作する前のモータ2の初期の回転位置や、モータ2によって駆動される可動部の初期位置を示す。具体的には、初期位置データ5Aは、モータ2が所定の原点位置から初期の回転位置まで回転した場合のパルス信号のパルス数である。そのパルス数に所定の定数を乗じて得られた値は、モータ2が所定の原点位置から初期の回転位置まで回転した場合の回転量であって、モータ2が動作する前のモータ2の初期の回転位置を示す。初期位置データ5Aは、予め設定されたデフォルト値であるか、又は以前にモータ2が動作した際に書き込まれた値である。仮にモータ2の初期の回転位置が原点位置であれば、初期位置データ5Aはゼロである。
【0052】
記憶部5には、制御部4にとって読み取り可能なプログラム5Zが格納されている。制御部4は、プログラム5Zを読み込んでそのプログラム5Zに従った処理を行ったり、そのプログラム5Zによって各種機能を実現したりする。なお、記憶部5が複数の記憶媒体を組み合わせたものである場合、プログラム5Zが記憶部5のROMに格納されていてもよい。
【0053】
プログラム5Zに基づく制御部4の処理の流れについて説明するとともに、制御部4の処理に伴うモータ制御装置1の動作について説明する。
【0054】
所定の条件が満たされると、制御部4がモータ2の起動処理(図8参照)を実行する。所定の条件が満たされるとは、例えば、ユーザが起動スイッチをオンにすること、起動センサがオンになること、制御部4によって実行されている処理(例えば、シーケンス処理)で所定の条件が満たされること等である。
【0055】
まず、制御部4は、モータ2の回転の向き(正回転か逆回転)を決定し、その回転の向きをRAM又は記憶部5に書き込む(ステップS11)。
【0056】
次に、制御部4は、ステップS11で決定した向きにモータ2を起動させる(ステップS12)。つまり、制御部4は、ステップS11で決定した向きに従った回転向き指令をモータドライバ6に出力するとともに、起動指令をそのモータドライバ6に出力する。回転向き指令及び起動指令を受けたモータドライバ6がモータ2に通電して、モータ2をその回転向きに駆動する。これにより、モータ2が回転し、モータ2によって可動部が駆動される。以上により、モータ2の起動処理が終了する。
【0057】
モータ2の動作中は、抽出回路3がモータ2の電流信号からリプル成分を抽出(検出)して、リプル成分をパルス化する。そして、抽出回路3は、リプル成分がパルス化されてなるパルス信号を制御部4に出力する。
【0058】
モータ2が起動すると、制御部4は、抽出回路3から入力したパルス信号に基づいて、パルス信号のパルス数の計数、モータ2の回転量の算出及びモータ2の回転位置の算出を行う。より具体的には、制御部4が図9に示す処理を実行することによってパルス信号のパルス数の計数、モータ2の回転量の算出及びモータ2の回転位置の算出を行う。
【0059】
図9に示す処理について具体的に説明する。
制御部4は、A/Dコンバータ7から入力した電圧データを監視して、電圧データを所定の閾値と比較する(ステップS21)。上述のように制御部4がモータ2を起動させると(ステップS13)、モータ2に電流が通電するから、制御部4は電圧データが所定の閾値を上回ったと判定して、モータ2の通電・起動を検出する(ステップS21:YES)。そして、制御部4が記憶部5から初期位置データ5Aを読み込んで、制御部4の処理がステップS22に移行する。なお、制御部4がA/Dコンバータ8から入力した電流データを監視して、制御部4が電流データを所定の閾値と比較してもよい(ステップS21)。この場合、モータ2に電流が通電した場合、制御部4は電流データが所定の閾値を上回ったと判定して、モータ2の通電・起動を検出する(ステップS21:YES)。
【0060】
電流がモータ2に通電すると、制御部4は抽出回路3によって出力されたパルス信号のパルス数を計数するとともに、モータ2の回転量及び回転位置を算出する(ステップS22,S23,S24、S25)。具体的には、まず、制御部4は、計数値Nをゼロにリセットする(ステップS22)。その後、制御部4は、抽出回路3によって出力されたパルス信号のパルスを入力するごとに(ステップS23:YES)、計数値Nに1を加算して得られた値に計数値Nを更新するとともに(ステップS24)、読み込んだ初期位置データ5Aに更新後の計数値Nを加算するか、又は読み込んだ初期位置データ5Aから更新後の計数値Nを減算する(ステップS25)。制御部4は、ステップS25の演算をステップS11で決定した向きに従って決定する。例えば、ステップS11で決定した回転の向きが正回転である場合には、制御部4がステップS25で加算を行い、ステップS11で決定した回転の向きが逆回転である場合には、制御部4がステップS25で減算を行う。勿論、回転の向きと演算の関係が逆であってもよい。
【0061】
ステップS24において更新された計数値Nが、制御部4によって計数されたパルス数である。制御部4によって計数されたパルス数(計数値N)に所定の定数を乗じて得られる値がモータ2の回転量や可動部の移動量に相当するから、制御部4がパルス数(計数値N)を計数する処理(ステップS21〜ステップS26)は、制御部4がモータ2の回転量や可動部の移動量を算出する処理に相当する。また、ステップS25において求められた差や和が、モータ2の回転位置(原点位置からその回転位置までのモータ2の回転量)を示すとともに、可動部の位置(原点位置からその位置までの可動部の移動量)を示す。
【0062】
制御部4は、モータ2の電流の遮断を検出するまでステップS23〜ステップS26の処理を繰り返す(ステップS26:NO)。具体的には、制御部4は、ステップS25の処理の後に、A/Dコンバータ7から入力した電圧データを所定の閾値と比較する(ステップS26)。そして、モータ2の電流が遮断されなかったら、制御部4は電圧データが所定の閾値を上回っていると判定して(ステップS26:NO)、制御部4の処理がステップS23に戻り、制御部4がステップS23〜ステップS25の処理を再度行う。なお、ステップS26では、制御部4がA/Dコンバータ8から入力した電流データを所定の閾値と比較してもよい(ステップS26)。この場合、モータ2の電流が遮断されなかったら、制御部4は電流データが所定の閾値を上回ったと判定して(ステップS26:NO)、制御部4がステップS23〜ステップS25の処理を再度行う。
【0063】
制御部4が図9に示す処理を実行している時に所定の条件が満たされると、制御部4がモータドライバ6に停止指令を出力する。そうすると、停止指令を受けたモータドライバ6がモータ2の通電を遮断し、モータ2が停止する。所定の条件とは、例えば、ユーザが停止スイッチをオンにすること、制御部4によって実行された処理(例えば、シーケンス処理)で所定の条件が満たされること、上述のステップS25において求めた差又は和が所定の値になることである。
【0064】
制御部4がモータドライバ6に停止指令を出力すると、モータ2の電流がモータドライバ6によって遮断されるので、制御部4はA/Dコンバータ7から入力した電圧データが所定の閾値を下回ったと判定して(ステップS26:YES)、制御部4は図9に示す処理を終了する。なお、制御部4がA/Dコンバータ8から入力した電流データを所定の閾値と比較する場合(ステップS26)、モータ2の電流が遮断されたら、制御部4は電流データが所定の閾値を下回ったと判定して(ステップS26:YES)、制御部4は図9に示す処理を終了する。
【0065】
制御部4は、図9に示す処理の終了後、図9に示すステップS23〜ステップS26の処理を繰り返している際に最後のステップS25において求めた差又は和を記憶部5に書き込む。具体的には、制御部4は、記憶部5に記憶された初期位置データ5Aを最後のステップS25において求めた差又は和に書き換える。
【0066】
ところで、モータ2の動作中に抽出回路3によって生成されるパルス信号に異常が生じることがある。例えば、図10に示すように、パルスが抜けた結果、異常なパルス周期が正常なパルス周期よりも長くなってしまうことがある。このようなパルス抜けが生じると、図9に示す処理で求められたパルス信号のパルス数(計数値N)は正常な場合と比較して少ない。一方、図11に示すように、パルスが複数に分割された結果、異常なパルス周期が正常なパルス周期よりも短くなってしまう。このようなパルス割れが生じると、図9に示す処理で求められたパルス信号のパルス数(計数値N)は正常な場合と比較して多い。そこで、制御部4は、次のような処理(図12〜図14参照)を行うことによって、図9に示す処理で求めたパルス数(計数値N)を補正する。
【0067】
モータ2の動作中において、制御部4は、パルス信号のパルスごとにパルス周期を計時する。具体的には、制御部4が、図12に示すような処理を実行することによってパルスの立ち上がりから次のパルスの立ち上がりまでのパルス周期をパルスごとに順次計時し、計時したパルス周期をRAMや記憶部5に順次記憶する。
【0068】
まず、制御部4は、計時時間をゼロにリセットする(ステップS31)。次に、制御部4は、計時を開始するとともに、抽出回路3の出力パルス信号のパルスが立ち上がるまで計時を継続する(ステップS32、ステップS33:NO)。そして、制御部4が抽出回路3の出力パルス信号のパルスの立ち上がりを検出したら(ステップS33:YES)、制御部4が計時を終了するとともに(ステップS34)、計時時間をRAM若しくは記憶部5又はこれらの両方に記憶する(ステップS35)。そして、制御部4は計時時間を再びゼロにリセットして(ステップS31)、計時を行う(ステップS32)。制御部4が以上のステップS31〜ステップS35の処理を繰り返すことによって、計時時間がRAM若しくは記憶部5又はこれらの両方に順次記憶される。RAM若しくは記憶部5又はこれらの両方に書き込まれた計時時間のデータ列は、抽出回路3の出力パルス信号のパルスごとのパルス周期のデータ列である。パルス周期の逆数が、モータ2の回転速度に示すとともに、モータ2によって駆動される可動部の速度を示す。従って、制御部4がパルスごとにパルス周期を計時する処理(ステップS31〜ステップS35)は、パルスごとにモータ2の回転速度や可動部の速度を求める処理に相当する。
【0069】
制御部4は、抽出回路3によって出力されるパルス信号のパルス周期の計時を終了する(ステップS34参照)度に、図13に示す処理を実行する。そのため、抽出回路3によって出力されるパルス信号のパルスが連続的に発生すると、制御部4が図13に示す処理を繰り返して実行する。図13に示す処理が繰り返して実行されると、制御部4が計数値Mの計数をしたり、累積期間Tを積算したりする。図10及び図11に示すように、計数値Mは、異常周期のパルスが連続して発生した回数を表す。但し、異常周期のパルスの後に正常周期のパルスが発生したら、異常周期のパルスの後に最初に発生した正常周期のパルスも異常周期のパルスとして計数値Mに数えられる。累積期間Tは、異常周期のパルスが連続して発生した期間を表す。但し、異常周期のパルスの後に正常周期のパルスが発生したら、異常周期のパルスの後に最初に発生した正常周期のパルスの周期も累積期間Tに加算される。
【0070】
制御部4がモータ2の起動後に初めて図13に示す処理を実行する前には、制御部4が計数値Mをゼロにリセットするとともに、累積期間Tをゼロにリセットする。また、モータ2の動作中において、異常周期のパルスが発生した後に正常周期のパルスが発生すると、制御部4が計数値M及び累積期間Tをゼロにリセットする(ステップS50、ステップS51参照)。
【0071】
図13に示す処理について具体的に説明する。
まず、制御部4は、ステップS34で終了した計時時間(パルス周期T_pulse)をリセットする(ステップS31参照)前に、その計時時間をパルス周期T_pulseとして取得する(ステップS41)。なお、制御部4が図13に示す処理を再実行した場合、制御部4はパルス周期T_pulseを取得したら(ステップS41)、前に実行した際に取得したパルス周期T_pulseを消去して、今回取得したパルス周期T_pulseに更新する。
次に、制御部4は、正常周期T_normal及び正常範囲を設定する(ステップS42)。正常周期T_normalとは、パルス抜け及びパルス割れが発生していない場合のパルス周期を示す。正常範囲とは、正常周期T_normalを含む範囲である。具体的には、正常範囲は、正常周期T_normalを中心とした範囲あって、正常周期T_normalから所定値を減算して得られる下限値T_min1から正常周期T_normalに所定値を加算して得られる上限値T_max1までの範囲である。下限値T_min1<上限値T_max1である。なお、正常周期T_normalが下限値T_min1と上限値T_max1の平均値であってもよいし、正常周期T_normalが下限値T_min1と上限値T_max1の平均値からずれていてもよい。制御部4が正常周期T_normal及び正常範囲を設定する処理(図14参照)については、後に詳述する。
【0072】
次に、制御部4は、ステップS41で取得したパルス周期T_pulseを正常範囲の下限値T_min1及び上限値T_max1と比較することで、パルス周期T_pulseが正常範囲内に収まるか否かを判定する(ステップS43)。パルス周期T_pulseが正常範囲内に収まっていると制御部4が判定した場合には(ステップS43:YES)、制御部4は計数値Mがゼロであるか否かを判定することによって異常周期のパルスの数の計数中であるか否かを判定する(ステップS44)。計数値Mがゼロであって異常周期のパルスの数を計数していないと制御部4が判定すると(ステップS44:YES)、制御部4は図13に示す処理を終了する。
【0073】
制御部4が抽出回路3によって出力されるパルス信号のパルス周期の計時を終了する(ステップS34参照)度に図13に示す処理を実行するから、モータ2の動作中に正常な周期のパルスが抽出回路3の出力パルス信号に連続的に発生していれば、異常な周期のパルスが抽出回路3の出力パルス信号に発生するまで、制御部4がステップS41、ステップS42、ステップS43(YES)及びステップS44(YES)の処理を繰り返し行う。正常な周期のパルスが抽出回路3の出力パルス信号に連続的に発生していれば、図9に示す処理で求めたパルス数(計数値N)が補正されない。
【0074】
一方、異常な周期のパルスが抽出回路3の出力パルス信号に発生すると、パルス周期T_pulseが正常範囲から外れたと制御部4が判定する(ステップS43:NO)。そのような判定の結果、制御部4が異常周期のパルスの数の計数を開始し、制御部4が計数値Mに1を加算して得られた値に計数値Mを更新する(ステップS52)。更に、制御部4は、ステップS41で取得したパルス周期T_pulseを累積期間Tに加算して得られた値に累積期間Tを更新する(ステップS53)。その後、制御部4は、図13に示す処理を終了する。
【0075】
制御部4が抽出回路3によって出力されるパルス信号のパルス周期の計時を終了する(ステップS34参照)度に図13に示す処理を実行するから、モータ2の動作中に異常な周期のパルスが抽出回路3の出力パルス信号に連続的に発生していれば、正常な周期のパルスが抽出回路3の出力パルス信号に発生するまで、制御部4がステップS41、ステップS42、ステップS43(NO)、ステップS52及びステップS53の処理を繰り返し行う。よって、図10、図11に示すように、異常な周期のパルスが抽出回路3の出力パルス信号に発生したら、その後正常な周期のパルスが抽出回路3の出力パルス信号に発生するまで、制御部4がパルス信号に含まれる異常周期のパルスの数(計数値M)の計数を継続するとともに(ステップS52)、パルス信号に含まれる異常周期のパルスの周期の積算を継続する(ステップS53)。
【0076】
異常な周期のパルスが抽出回路3の出力パルス信号に発生した後に(ステップS43(NO)、ステップS52及びステップS53の後に)、正常な周期のパルスが抽出回路3の出力パルス信号に発生すると、パルス周期T_pulseが正常範囲内に収まっていると制御部4が判定する(ステップS43:YES)。そして、計数値Mがゼロを超えているから、制御部4は計数値Mがゼロでないと判定して、制御部4が異常周期のパルスの数の計数中であると判定する(ステップS44:NO)。ステップS43、ステップS44の判定の結果、制御部4の処理がステップS45に移行すると、制御部4が計数値Mに1を加算して得られた値に計数値Mを更新する。このステップS45の処理は、異常周期のパルスの後に発生した正常周期のパルスを異常周期のパルスとして計数値Mに数える処理である。また、制御部4は、ステップS41で取得したパルス周期T_pulseを累積期間Tに加算して得られた値に累積期間Tを更新する(ステップS46)。このステップS46の処理は、異常周期のパルスの後に発生した正常周期のパルスの周期を異常周期のパルスとして累積期間Tに加算する処理である。
【0077】
次に、制御部4は、積算した累積期間Tを正常周期T_normalで除して、その除算により得られた値を推定パルス数mとして算出する(ステップS47)。推定パルス数mは、異常な周期のパルスが最初に発生した時からその後正常な周期のパルスが最初に発生した時までの期間(累積期間T)内に仮に正常な周期のパルスが発生したとしたら、その正常な周期のパルスの数を表した推定値である。
【0078】
次に、制御部4が、推定パルス数mから計数値Mを減ずることで得られた値を補正値nとして算出する(ステップS48)。補正値nは、異常な周期のパルスが最初に発生した時からその後正常な周期のパルスが最初に発生した時までの期間(累積期間T)内に仮に発生した正常な周期のパルスの数(推定パルス数m)と、その期間内に実際に発生したパルスの数(計数値M)との差である。パルス抜けが発生した場合、補正値nが正となり、パルス割れが発生した場合、補正値nが負となる。
【0079】
次に、制御部4が、図9の処理で計数中のパルス数(計数値N)を補正する(ステップS49)。具体的には、制御部4が、計数値Nに補正値nを加算することで得られた値に計数値Nを更新する(ステップS49)。なお、制御部4が、計数値Nに推定パルス数mを加算するとともにそれに計数値Mを減算して得られた値に計数値Nを更新してもよい。更新後の計数値Nは、パルス抜けによって数えられなかったパルス数(補正値nの絶対値)を加えたパルス数であるか、パルス割れによって過剰に数えてしまったパルス数(補正値nの絶対値)を減じたパルス数である。よって、パルス割れやパルス抜けが生じても、正確なパルス数(計数値N)が算出され、そのパルス数(計数値N)が実際のモータ2の回転量や可動部の移動量を正確に表す。
【0080】
計数値Nの補正後、制御部4が計数値M及び累積期間Tをゼロにリセットする(ステップS50、ステップS51)。そして、制御部4が図13に示す処理を終了する。
【0081】
図14を参照して、ステップS42における正常周期T_normal及び正常範囲の設定処理について具体的に説明する。
まず、制御部4が、A/Dコンバータ7によって検出された電流データ及びA/Dコンバータ8によって検出された電圧データを入力する(ステップS61)。
【0082】
次に、制御部4が、入力した電流データ及び電圧データに基づいて、モータ2の回転速度に相当するパルス周期を基準周期T_standardとして算出する(ステップS62)。更に、制御部4が基準範囲を算出する(ステップS62)。具体的には、制御部4が、基準周期T_standardから所定値を減算することで基準範囲の下限値T_min2を算出するとともに、基準周期T_standardに所定値を加算して得られる基準範囲の上限値T_max2を算出する。基準範囲とは、基準周期T_standardを含む範囲であって、好ましくは、基準周期T_standardを中心とした範囲である。基準周期T_standardは、基準範囲の下限値T_min2と上限値T_max2の平均値であってもよいし、その平均値からずれていてもよい。なお、基準周期T_standardの算出の際には、過去の平均値やモータ2の回転位置、負荷、環境温度又はモータ2の回転方向を加味してもよい。
【0083】
次に、制御部4がモータ2の起動後に初めて図13及び図14に示す処理を実行するのであれば、正常周期T_normalが設定されていないから(ステップS63:NO)、制御部4が基準周期T_standardの値を正常周期T_normalに設定する(ステップS64)。更に、制御部4が基準範囲の下限値T_min2の値を正常範囲の下限値T_min1に設定するとともに、基準範囲の上限値T_max2の値を正常範囲の上限値T_max1に設定する(ステップS65)。なお、制御部4が基準周期T_standardの値を正常周期T_normalに設定せずに、デフォルト値を正常周期T_normalに設定するとともに(ステップS64)、デフォルトの上限値及び下限値を正常範囲の下限値T_min1及び上限値T_max1に設定してもよい(ステップS65)。
【0084】
一方、制御部4がモータ2の起動後に図13及び図14に示す処理を再実行するのであれば、正常周期T_normalが既に設定されているから(ステップS63:YES)、制御部4がステップS64及びステップS65の処理を省略する。
【0085】
次に、制御部4は、ステップS41で取得したパルス周期T_pulseを正常範囲の下限値T_min1及び上限値T_max1と比較することで、パルス周期T_pulseが正常範囲内に収まっているか否かを判定する(ステップS66)。更に、制御部4は、ステップS41で取得したパルス周期T_pulseを基準範囲の下限値T_min2及び上限値T_max2と比較することで、パルス周期T_pulseが基準範囲内に収まっているか否かを判定する(ステップS67)。
【0086】
パルス周期T_pulseが正常範囲から外れた場合(ステップS66:NO)又はパルス周期T_pulseが基準範囲から外れた場合(ステップS67:NO)、制御部4が正常周期T_normal及び正常範囲を更新せずに維持し(ステップS70)、図14に示す処理を終了する。
【0087】
一方、パルス周期T_pulseが正常範囲内であり、且つパルス周期T_pulseが基準範囲内に収まっている場合(ステップS66:YES、ステップS67:YES)、制御部4が、RAM又は記憶部5に記憶された以前のパルスのパルス周期(今回のパルスのパルス周期T_pulseを含む。)の平均値を算出する。そして、制御部4が、正常周期T_normalをその平均値に更新する(ステップS68)。更に、制御部4が、算出した平均値を中心とした範囲に正常範囲を更新する(ステップS69)。具体的には、制御部4が、平均値から所定値を減算することで得られた値に正常範囲の下限値T_min1を更新するとともに、平均値に所定値を加算することで得られた値に正常範囲の上限値T_max1を更新する(ステップS69)。そして、制御部4は図14に示す処理を終了する。
【0088】
制御部4がモータ2の起動後に初めて図13、図14に示す処理を実行した場合には、計時されたパルス周期T_pulseの値が正常周期T_normalに設定されるか(ステップS68参照)、モータ2の電流・電圧データに基づいたモータ2の回転速度に相当するパルス周期(基準周期T_standard)の値又はデフォルト値が正常周期T_normalに設定される(ステップS64、ステップS70参照)。制御部4が図13、図14に示す処理を再実行した場合には、それまでに計時されたパルスのパルス周期の平均値が正常周期T_normalに設定されるか(ステップS68参照)、以前の最後の設定又は更新をされた正常周期T_normalがそのまま更新されずに維持される(ステップS70)。従って、正常周期T_normalが一定値ではなく、実測されたパルス周期に基づいて設定される。そのため、ノイズ等の外乱、モータ2等の状態、誤差、個体差、経年変化といった因子によってモータ2の電流信号の各成分の周波数や振幅が変動した場合でも、それらの因子が正常周期T_normalの設定に反映される。よって、ノイズ等の外乱、モータ2等の状態、誤差、個体差、経年変化等にも対応することができる。
【0089】
以上に述べたことがモータ制御装置1の動作の説明である。図1に示されたモータ制御装置1は、例えば車両用シート装置に用いられる。その車両用シート装置は、図1に示されたモータ制御装置1と、図15に示されたシート本体90とを備え、シート本体90の可動部がモータ2によって駆動される。
【0090】
シート本体90の可動部の数とモータ2の数が同数であることが好ましく、モータ2の数が複数である場合、モータドライバ6及び抽出回路3がモータ2ごとに設けられ、制御部4及び記憶部5が全てのモータ2に共通している。なお、モータ2の数が複数である場合、モータドライバ6及び抽出回路3の数がそれぞれ1であってもよい。その場合、リレー回路が設けられ、リレー回路が制御部4からの指令に従って複数のモータ2のうちの何れか一つを選択する。そして、そのリレー回路が選択したモータ2を抽出回路3及びモータドライバ6に接続するとともに、他を抽出回路3及びモータドライバ6から遮断する。
【0091】
シート本体90について具体的に説明する。シート本体90はレール91、シートボトム92、バックレスト93、ヘッドレスト94、アームレスト95及びレッグレスト96等を備える。
【0092】
シートボトム92がレール91の上に搭載され、シートボトム92がレール91よって前後方向に移動可能に設けられており、モータ2がシートボトム92を前後方向に駆動する。シートボトム92の前部が昇降可能に設けられ、別のモータ2がシートボトム92の前部を上下方向に駆動する。シートボトム92の後部が昇降可能に設けられ、別のモータ2がシートボトム92の後部を上下方向に駆動する。バックレスト93がリクライニング機構によってシートボトム92の後端部に回転可能に連結され、別のモータ2がバックレスト93をシートボトム92に対して起伏させる。ヘッドレスト94がバックレスト93の上端部に昇降可能・回転可能に連結され、別のモータ2がヘッドレスト94を上下方向に駆動し、更に別のモータ2がヘッドレスト94を前後に起伏させる。アームレスト95がバックレスト93の側面に回転可能に連結され、別のモータ2がアームレスト95を水平状態から垂直状態に及びその逆に駆動する。レッグレスト96がシートボトム92の前端部に回転可能に連結され、別のモータ2がレッグレスト96を跳ね上げ状態から垂下状態に又はその逆に駆動する。
【0093】
本発明の実施の形態は、以下のような効果を奏する。
(1) パルス割れが生じて、制御部4によって数えられたパルス数(計数値N)が実際のモータ2の回転量に相当するパルス数よりも多くなってしまっても、制御部4によって数えられたパルス数(計数値N)がその増量分(補正値nの絶対値)だけ減算されるように補正される(ステップS49参照)。一方、パルス抜けが生じて、制御部4によって数えられたパルス数(計数値N)が実際のモータ2の回転量に相当するパルス数よりも少なくなっても、制御部4によって数えられたパルス数(計数値N)がその減量分(補正値nの絶対値)だけ加算されるように補正される(ステップS49参照)。よって、モータ2の回転量や位置等の検出を正確に行えることができる。
(2) 正常周期T_normalが一定値ではなく、実測されたパルス周期に基づいて設定されるから(ステップS68参照)、モータ2等の状態、誤差、個体差、経年変化等にも対応することができる。
(3) フィルタ40の回路設計においてフィルタ40の高カットオフ周波数fc2がリプル成分の周波数よりも低く設定されているから、フィルタ40によってリプル成分を除去することができる。
(4) 差動増幅器50が、バンドパスフィルタ30の出力信号(電流電圧変換器10によって変換された電圧信号のうち直流成分及び高周波ノイズ成分等が除去されたもの)と、フィルタ40の出力信号(電流電圧変換器10によって変換された電圧信号のうち直流成分、高周波ノイズ成分及びリプル成分等が除去されたもの)の差分を取って、それを差分信号として出力する。そのため、差動増幅器50の出力信号は、電流電圧変換器10によって変換された電圧信号のうちリプル成分である。差動増幅器50の出力信号が差分信号であるからこそ、モータ2の電流信号の各成分の周波数が環境変化によって変動しても、リプル成分が正確に抽出されて、モータ2の電流信号中のリプルを高精度に検出することができる。
(5) 図5に示す周波数特性のうち、高カットオフ周波数fc2よりも高い領域の傾斜部分を利用したからこそ、リプル成分の周波数が温度変化により変動したものとしても、差動増幅器50の出力信号がリプル成分として正確に抽出される。
(6) フィルタ40の周波数特性を利用して、フィルタ40と差動増幅器50によってリプル成分を抽出したから、フィルタ40にカットオフ周波数可変型フィルタを用いなくても済む。そのため、フィルタ40のコストを削減することができる。
(7) 抽出回路3がフィードバック制御回路のような閉ループ回路でないから、モータ2の電流信号の各成分の周波数が過渡的に又は急激に変化したものとしても、リプルを正確に検出することができる。
(8) フィルタ40が抵抗器41b,41d,41a,41c及びキャパシタ41a,41c,41b,41d,43aからなるフィルタであるから、フィルタ40の構成がシンプルであり、フィルタ40のコストアップを抑えることができる。
(9) フィルタ40の周波数特性を利用して、フィルタ40と差動増幅器50によってリプル成分を抽出したから、ハイパスフィルタ20やバンドパスフィルタ30にカットオフ周波数可変型フィルタを用いなくても済む。そのため、ハイパスフィルタ20やバンドパスフィルタ30のコストアップを抑えることができる。
(10) 電流電圧変換器10によって変換された電圧信号のうち直流成分がハイパスフィルタ20によって除去されるから、そのハイパスフィルタ20の後段のバンドパスフィルタ30、フィルタ40及び差動増幅器50の処理が正確に行われる。
(11) 電流電圧変換器10によって変換された電圧信号のうち所定周波数帯域外の成分がバンドパスフィルタ30によって減衰するから、そのバンドパスフィルタ30の後段のフィルタ40や差動増幅器50の処理が正確に行われる。
【0094】
〔変形例〕
なお、本発明を適用可能な実施形態は、上述した実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。以下、変形例について説明する。以下に挙げる変形例は可能な限り組み合わせてもよい。
【0095】
〔変形例1〕
図14に示す処理において、制御部4の処理がステップS62からステップS64に移行するとともに、制御部4の処理がステップS65の後に終了してもよい。そうすれば、パルス信号のパルスごとに、制御部4は入力した電流データ及び電圧データに基づいて、モータ2の回転速度に相当するパルス周期を基準周期T_standardとして算出するとともに基準範囲を算出し(ステップS62)、正常周期T_normalを基準周期T_standardの値に更新し(ステップS64)、正常範囲の下限値T_min1を基準範囲の下限値T_min2の値に更新するとともに正常範囲の上限値T_max1を基準範囲の上限値T_max2の値に更新する(ステップS65)。
【0096】
この場合でも、モータ2の動作中にモータ2の負荷や摩擦等が変動して、モータ2の回転速度が変動する場合でも、パルス抜けやパルス割れによって生じたパルス数の計数誤差を解消することができる。
【0097】
〔変形例2〕
図13に示す処理のステップS42において、制御部4が予め求められた一定の値を正常周期T_normalとして設定し、その一定値を含む範囲を正常範囲として設定してもよい。
【0098】
〔変形例3〕
上述のステップS22において、制御部4は、計数値Nをゼロにリセットするのではなく、計数値Nを初期位置データ5Aに設定してもよい。この場合、ステップS25における処理が省略される。更に、ステップS24においては、制御部4が、抽出回路3によって出力されたパルス信号のパルスを入力するごとに、計数値Nに1を加算し又は減算することで計数値Nを更新する。また、ステップS49においては、制御部4が、計数値Nに補正値nを加算することで得られた値に計数値Nを更新するか、計数値Nに補正値nを減算することで得られた値に計数値Nを更新する(ステップS49)。制御部4は、ステップS24及びステップS49の演算をステップS11で決定した向きに従って決定する。例えば、ステップS11で決定した回転の向きが正回転である場合には、制御部4がステップS24及びステップS49で加算を行い、ステップS11で決定した回転の向きが逆回転である場合には、制御部4がステップS24及びステップS49で減算を行う。勿論、回転の向きと演算の関係が逆であってもよい。
【0099】
ステップS24で更新した計数値Nは、モータ2の回転位置を示すとともに、原点位置を基準としてその原点位置からの距離を示す。
【0100】
〔変形例4〕
抽出回路3は一例であり、上述の実施形態の回路に限るものではない。例えば、フィルタ40及び差動増幅器50を省略してもよい。その場合、リプル成分の周波数が変化しても、リプル成分を正確に抽出できるようにするために、スイッチト・キャパシタ・フィルタをバンドパスフィルタ30の後段であって増幅器60の前段に設けることが好ましい。スイッチト・キャパシタ・フィルタのカットオフ周波数が可変であり、リプル成分や低周波成分の周波数が変化した場合でも、スイッチト・キャパシタ・フィルタは、低周波成分を減衰させ、リプル成分を通過させる。
【0101】
〔変形例5〕
フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図5に示すフィルタ40の低カットオフ周波数fc1がリプル成分の周波数(例えば、常温時の周波数)よりも高く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を高周波成分(高周波成分はリプル成分よりも周波数が高い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を高周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
この場合、モータ2の電流信号やフィルタ40及び差動増幅器50の入力信号は、リプル成分と、そのリプル成分よりも周波数が高い高周波成分とを重畳したものである。
【0102】
〔変形例6〕
フィルタ40がバンドパスフィルタではなく、図16に示すような周波数特性を有したローパスフィルタであってもよい。フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちカットオフ周波数fc3以下の成分を通過させ、カットオフ周波数fc3を超える成分を減衰させる。具体的には、カットオフ周波数fc3を超える高周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより低くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)を減衰させる。
【0103】
フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図16に示すフィルタ40のカットオフ周波数fc3がリプル成分の周波数(例えば、常温時の周波数)よりも低く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を低周波成分(低周波成分はリプル成分よりも周波数が低い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を低周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
【0104】
この場合、モータ2の電流信号やフィルタ40及び差動増幅器50の入力信号は、リプル成分と、そのリプル成分よりも周波数が低い低周波成分とを重畳したものである。
フィルタ40がローパスフィルタである場合、図6に示すハイパスフィルタ41,43が省略され、バンドパスフィルタ30の出力がローパスフィルタ42の入力に接続され、ローパスフィルタ42の出力が抵抗器51を介してオペアンプ53の反転入力端子に接続される。
【0105】
〔変形例7〕
フィルタ40がバンドパスフィルタではなく、図17に示すような周波数特性を有したハイパスフィルタであってもよい。フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちカットオフ周波数fc4以上の成分を通過させ、カットオフ周波数fc4を下回る成分を減衰させる。具体的には、カットオフ周波数fc4を下回る低周波域において、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)に含まれる成分の周波数が低いほど減衰率がより高くなるように、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)を減衰させる。
【0106】
フィルタ40の回路設計において、温度変化によるリプル成分の周波数の変動も考慮しつつ、図17に示すフィルタ40のカットオフ周波数fc4がリプル成分の周波数(例えば、常温時の周波数)よりも高く設定されている。従って、フィルタ40は、電流電圧変換器10によって変換された電圧信号(バンドパスフィルタ30の出力信号)のうちリプル成分を高周波成分(高周波成分はリプル成分よりも周波数が高い。)よりも高い減衰率で減衰させる。つまり、フィルタ40は、リプル成分を高周波成分よりも効率的に除去する。従って、フィルタ40は、リプル成分を除去した信号を差動増幅器50に出力する。
フィルタ40がハイパスフィルタである場合、図6に示すローパスフィルタ42が省略され、バンドパスフィルタ30の出力がハイパスフィルタ41の入力に接続されている。
【0107】
〔変形例8〕
フィルタ40がバンドパスフィルタではなく、バンドストップフィルタであってもよい。
【0108】
〔変形例9〕
ハイパスフィルタ20とバンドパスフィルタ30の一方又は両方を省略してもよい。ハイパスフィルタ20を省略した場合には、電流電圧変換器10の出力がバンドパスフィルタ30の入力に接続される。バンドパスフィルタ30を省略した場合には、ハイパスフィルタ20の出力がフィルタ40の入力及び差動増幅器50の入力に接続される。ハイパスフィルタ20とバンドパスフィルタ30の両方が省略されている場合には、電流電圧変換器10の出力がフィルタ40の入力及び差動増幅器50の入力に接続される。
【0109】
〔変形例10〕
モータ制御装置1が電動ドアミラー装置に組み込まれ、電動ドアミラー装置の可動部(例えば、ドアに対してミラーハウジングの格納及び展開をする格納機構、ミラーハウジングに対してミラーを上下に振るチルト機構、ミラーハウジングに対してミラーを左右に振るパン機構)がモータ制御装置1のモータ2によって駆動されてもよい。モータ制御装置1がパワーウィンドウ装置に組み込まれ、パワーウィンドウ装置の可動部(例えば、ウィンドウレギュレター)がモータ2によって駆動されてもよい。
【0110】
〔変形例11〕
フィルタ40がオペアンプを用いたもの(例えば、負帰還型ローパスフィルタ、正帰還型ローパスフィルタ、多重負帰還型バンドパスフィルタ、多重正帰還型バンドパスフィルタ)でもよい。
【符号の説明】
【0111】
1 モータ制御装置
2 モータ
3 抽出回路
4 制御部
5 記憶部
7 A/Dコンバータ(電圧検出部)
8 A/Dコンバータ(電流検出部)
【特許請求の範囲】
【請求項1】
駆動されると電流信号に周期的なリプルを発生させるモータと、
前記モータの前記電流信号からリプル成分を抽出して、そのリプル成分をパルス化したパルス信号を出力する抽出回路と、
前記パルス信号を入力するとともに、前記モータを制御する制御部と、を備え、
前記制御部が、
前記パルス信号のパルス数を計数する第一処理と、
前記パルス信号のパルスごとにパルス周期を計時する第二処理と、
前記第二処理で計時されたパルス周期が正常周期を含む正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記第二処理で計時されたパルス周期を積算して得られた値を累積期間として算出する第三処理と、
前記第二処理で計時されたパルス周期が前記正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記パルス信号のパルス数を計数する第四処理と、
前記第三処理で算出された累積期間を前記正常周期で除することで得られた値を推定パルス数として算出する第五処理と、
前記第一処理で計数されたパルス数に前記第五処理で算出された推定パルス数を加算して、それに前記第四処理で計数されたパルス数を減じて得られる値に、前記第一処理で計数されたパルス数を更新する第六処理と、を実行する、モータ制御装置。
【請求項2】
前記モータの電圧を検出する電圧検出部と、
前記モータの電流を検出する電流検出部と、を更に備え、
前記第二処理では、前記制御部が、計時したパルス周期を順次記憶し、
前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、
前記第七処理は、
前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出するとともに、前記基準周期を含む基準範囲を算出する処理と、
前記第二処理で計時されたパルス周期が前記基準範囲内及び前記正常範囲内に収まっている場合、前記第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新し、その平均値から所定値を減算して得られた値に前記正常範囲の下限値を更新し、その平均値に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理と、
前記第二処理で計時されたパルス周期が前記基準範囲から外れている場合又は前記第二処理で計時されたパルス周期が前記正常範囲から外れている場合、前記正常周期及び前記正常範囲を更新せずに維持する処理と、を含む、請求項1に記載のモータ制御装置。
【請求項3】
前記モータの電圧を検出する電圧検出部と、
前記モータの電流を検出する電流検出部と、を更に備え、
前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、
前記第七処理は、
前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出し、前記正常周期を前記基準周期に更新し、前記基準周期から所定値を減算して得られた値に前記正常範囲の下限値を更新し、前記基準周期に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理を含む、請求項1に記載のモータ制御装置。
【請求項4】
請求項1から3の何れか一項に記載のモータ制御装置と、
前記モータによって駆動される可動部を有するシート本体と、を備える車両用シート装置。
【請求項1】
駆動されると電流信号に周期的なリプルを発生させるモータと、
前記モータの前記電流信号からリプル成分を抽出して、そのリプル成分をパルス化したパルス信号を出力する抽出回路と、
前記パルス信号を入力するとともに、前記モータを制御する制御部と、を備え、
前記制御部が、
前記パルス信号のパルス数を計数する第一処理と、
前記パルス信号のパルスごとにパルス周期を計時する第二処理と、
前記第二処理で計時されたパルス周期が正常周期を含む正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記第二処理で計時されたパルス周期を積算して得られた値を累積期間として算出する第三処理と、
前記第二処理で計時されたパルス周期が前記正常範囲から外れた時から前記第二処理で計時されたパルス周期が前記正常範囲内に収まった時まで、前記パルス信号のパルス数を計数する第四処理と、
前記第三処理で算出された累積期間を前記正常周期で除することで得られた値を推定パルス数として算出する第五処理と、
前記第一処理で計数されたパルス数に前記第五処理で算出された推定パルス数を加算して、それに前記第四処理で計数されたパルス数を減じて得られる値に、前記第一処理で計数されたパルス数を更新する第六処理と、を実行する、モータ制御装置。
【請求項2】
前記モータの電圧を検出する電圧検出部と、
前記モータの電流を検出する電流検出部と、を更に備え、
前記第二処理では、前記制御部が、計時したパルス周期を順次記憶し、
前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、
前記第七処理は、
前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出するとともに、前記基準周期を含む基準範囲を算出する処理と、
前記第二処理で計時されたパルス周期が前記基準範囲内及び前記正常範囲内に収まっている場合、前記第四処理で記憶されたパルスごとのパルス周期の平均値に前記正常周期を更新し、その平均値から所定値を減算して得られた値に前記正常範囲の下限値を更新し、その平均値に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理と、
前記第二処理で計時されたパルス周期が前記基準範囲から外れている場合又は前記第二処理で計時されたパルス周期が前記正常範囲から外れている場合、前記正常周期及び前記正常範囲を更新せずに維持する処理と、を含む、請求項1に記載のモータ制御装置。
【請求項3】
前記モータの電圧を検出する電圧検出部と、
前記モータの電流を検出する電流検出部と、を更に備え、
前記制御部が、前記パルス信号のパルスごとに前記正常周期及び前記正常範囲を設定する第七処理を実行し、
前記第七処理は、
前記電圧検出部によって検出された電圧及び前記電流検出部によって検出された電流に基づいて前記モータの回転速度に相当する基準周期を算出し、前記正常周期を前記基準周期に更新し、前記基準周期から所定値を減算して得られた値に前記正常範囲の下限値を更新し、前記基準周期に所定値を加算して得られた値に前記正常範囲の上限値を更新する処理を含む、請求項1に記載のモータ制御装置。
【請求項4】
請求項1から3の何れか一項に記載のモータ制御装置と、
前記モータによって駆動される可動部を有するシート本体と、を備える車両用シート装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−213262(P2012−213262A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−77087(P2011−77087)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000220066)テイ・エス テック株式会社 (625)
【Fターム(参考)】
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000220066)テイ・エス テック株式会社 (625)
【Fターム(参考)】
[ Back to top ]