説明

エンコーダ信号フィルタ装置

【課題】モータの速度変化時にも安定的にエンコーダ信号からノイズの影響を排除する。
【解決手段】ステッピングモータ104の軸角度を検出するエンコーダ105と、その検出信号をフィードバックしつつ、ステッピングモータに速度指令を与えて動作制御を行う制御手段91とを備えるエンコーダ信号フィルタ装置90において、制御手段によるステッピングモータの速度指令に基づいて遮断周波数を調整する速度検出部20と、遮断周波数に基づいて、エンコーダからの検出信号に含まれるノイズを除去するフィルタ処理部40とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ステッピングモータの動作量を検出するエンコーダの出力に対してノイズ成分を除去するエンコーダ信号フィルタ装置に関するものである。
【背景技術】
【0002】
ステッピングモータは、動作信号としてのパルス信号を与えることによって、決められたステップ単位で回転するモータであり、回転角度と速度はパルス信号の回数と周期によって決まることを特徴としている。この性質を利用することで、パルス信号だけでフィードバック機構を必要としない位置決め制御を行うことができ、この特性を生かして、例えば、工業用ミシンの分野において、形状縫いミシンの布送り機構の制御等に用いられている。
しかしながら、ステッピングモータは、急激な負荷(トルク)変動や、急加速の場合に、パルス信号に動作が追従できなくなる現象が発生する。この現象は脱調と呼ばれ、脱調したステッピングモータは振動や逆転等を誘発し、制御不能となることから、ステッピングモータにとっては、最も回避すべき欠点であった。
【0003】
このため、近年、ステッピングモータにエンコーダを取り付けて、回転角度情報をフィードバックし、クローズド・ループ制御を行うことで、急激な負荷変動や急加速の場合でも脱調しないようにした位置決め制御も行われるようになってきた(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−211749号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、エンコーダによるクローズド・ループ制御では、エンコーダからのフィードバック信号(エンコーダパルス信号)にノイズが入った場合、ステッピングモータの制御装置がノイズをエンコーダパルスと誤認識して取り込んでしまい、誤動作してしまう恐れがある。このため、エンコーダから出力される信号は差動信号とよばれる伝送方式を採用しているものが多い。この方式は2本の信号線を用いて、その差動信号間の電圧差でHレベルとLレベルの識別を行っている。
【0006】
しかしながら、制御装置からモータまでの配線は、エンコーダがステッピングモータに併設される構成上、ノイズ源となるモータ動力線(駆動パルス信号)とエンコーダ信号線が平行し近接して配線されることが多いことから、ノイズの影響を受けやすく、差動信号を用いてもエンコーダ信号からノイズを十分に除去することは困難であった。
このため、エンコーダ信号を入力する制御装置側でフィルタ処理を行うこともノイズ対策として一般的に行われていた。
この場合、ノイズと、エンコーダ信号を切り分けるために、信号周波数の閾値として、遮断周波数をあらかじめ設定し、ローパスフィルタにより、遮断周波数より高い周波数はノイズとしてカットし、それより低い周波数はエンコーダ信号として通過させることで、ノイズのみ除去することが可能である。
しかしながら、モータの速度によって、検出されるエンコーダ信号の周波数やノイズ源となる駆動パルス信号の周波数が変化する為、固定された遮断周波数に基づいてノイズ除去を行うローパスフィルタではノイズを完全に除去することは困難であった。
【0007】
本発明は、モータの速度変化時にも安定的にエンコーダ信号からノイズの影響を排除することをその目的とする。
【課題を解決するための手段】
【0008】
請求項1記載の発明は、
ステッピングモータの軸角度を検出するエンコーダと、
前記エンコーダからの検出信号により前記ステッピングモータに速度指令を与えて動作制御を行う制御手段とを有し、
前記エンコーダからの検出信号に含まれるノイズを除去するエンコーダ信号フィルタ装置において、
前記制御手段による前記ステッピングモータの速度指令に基づいて、遮断周波数を調整する速度検出部と、
調整された前記遮断周波数に基づいて、前記エンコーダからの検出信号に含まれるノイズを除去するフィルタ処理部とを備えることを特徴とする。
請求項2記載の発明は、請求項1記載の発明と同様の構成を備えると共に、
前記速度検出部に前記速度指令が入力されるとともに、
前記速度検出部が前記速度指令に比例するように前記遮断周波数を調整することを特徴とする。
請求項3記載の発明は、請求項1又は2記載の発明と同様の構成を備えると共に、
前記制御手段からのクロック信号と前記遮断周波数に基づいてタイミング信号を生成するタイミング信号発生部を備えることを特徴とする。
【0009】
請求項4記載の発明は、請求項3記載の発明と同様の構成を備えると共に、
前記フィルタ処理部は、
前記タイミング信号の周期で前記エンコーダの検出信号を複数の記憶部に推移させるシフトレジスタと、
前記シフトレジスタの前記複数の記憶部の記憶データが全て一致する場合にのみ前記エンコーダの検出信号の検出値の変化を反映して出力するフリップフロップ回路とを備えることを特徴とする。
【発明の効果】
【0010】
請求項1から3記載の発明は、速度検出部が、ノイズとしてエンコーダ信号から除去すべき信号の周波数である遮断周波数をステッピングモータの速度指令から算出し、フィルタ処理部が、遮断周波数に基づいてエンコーダ信号のノイズを除去することから、ステッピングモータの回転速度の変動に伴いノイズの周波数も変動する場合であっても、遮断周波数もステッピングモータの回転速度に合わせて調整されるので、エンコーダ信号からノイズを適宜識別して除去することが可能である。
このため、本発明は、ステッピングモータの高速域に限らず、低速域でもエンコーダ信号のノイズを除去することが可能となり、ステッピングモータの動作速度に拘らず、安定的に高精度なステッピングモータの位置(軸角度)検出を行うことが可能となる。
【0011】
請求項4記載の発明は、フィルタ処理部を、シフトレジスタ及びフリップフロップ回路のような論理回路で構成することができ、処理の高速化を容易に実現することが可能となる。
【図面の簡単な説明】
【0012】
【図1】発明の実施形態であるステッピングモータの制御装置を搭載した電子サイクルミシンの斜視図である。
【図2】エンコーダ信号フィルタ装置を搭載した制御装置のブロック図である。
【図3】速度検出部による遮断周波数の算出処理を示すフローチャートである。
【図4】タイミング信号発生部のブロック図である。
【図5】クロック信号とカウンタ段数指定部の複数のカウント出力の波形図である。
【図6】タイミング信号発生部の処理を示すフローチャートである。
【図7】フィルタ処理部のブロック図である。
【図8】タイミング信号、フィルタ処理前後のエンコーダ信号及びフィルタ処理部の記憶データ出力の波形図である。
【図9】J-Kフリップフロップ回路の二つの入力と前回の出力とその次の出力との対応を示す図表である。
【図10】フィルタ処理部の処理を示すフローチャートである。
【図11】ステッピングモータの速度指令信号に応じて変動するエンコーダ信号とステッピングモータの速度指令信号に応じて変動する遮断周波数の変化を示す線図である。
【発明を実施するための形態】
【0013】
(発明の実施形態の概要)
本実施形態は、図1に示す電子サイクルミシン100において、被縫製物である布地を水平面上で毎針ごとに任意に移動位置決めするためのエンコーダ信号フィルタ処理装置としてのステッピングモータの制御装置90であってフィルタ処理を行う信号処理装置50を備えるものである。
上記電子サイクルミシン100は、図1に示すように、図示しないミシンモータによって上下動する針棒101と、針棒の下方に水平に設置された布板102と、布板102の上で布を保持する保持枠103と、保持枠103を水平且つ互いに直交する二方向の各々に移動させる二つのステッピングモータ104(図2参照)と、各ステッピングモータ104の出力軸の回転角度や回転角速度等の角度変化量、すなわち軸角度を検出するエンコーダ105(図2参照)とを備えている。
【0014】
そして、この電子サイクルミシン100の制御装置90は、縫製データを読み込んで、一針ごとに二つのステッピングモータ104の動作量を制御して任意の位置に保持枠を移動位置決めし、所望の縫製パターンに応じた縫製を実行する。その際、各ステッピングモータ104の動作量をエンコーダ105が検出し、制御装置90では、各ステッピングモータ104に対するフィードバック制御(クローズドループ制御)を実行するようになっている。
【0015】
(制御装置)
図2は、信号処理装置50を搭載した制御装置90のブロック図である。なお、この図2では、ステッピングモータ104及びエンコーダ105を一つのみ図示しているが、実際には、各ステッピングモータ104に併設されたそれぞれのエンコーダ105に対して個々に信号処理装置50が搭載される。
【0016】
エンコーダ信号フィルタ装置としての制御装置90は、エンコーダ105と、ステッピングモータ104に対して所定の回転駆動を行わせるための速度指令をパルス信号にて出力する制御手段としてのCPU91と、入力されたパルス信号に基づいて、ステッピングモータ104にモータ電流を流すモータドライブ回路92と、ステッピングモータ104の出力軸に取り付けられると共に出力軸の回転に応じてエンコーダ105が出力する回転角度情報となるエンコーダ信号のノイズを除去してCPU91にフィードバックする信号処理装置50とを備えている。
そして、制御装置90は、エンコーダ105からの検出信号によりステッピングモータ104に速度指令を与えて動作制御を行う。
なお、制御装置90は、電子サイクルミシン100の各構成とも接続され、各種の動作制御を実行するが、ここでは、ステッピングモータ104の制御系に関する構成のみについて言及するものとする。
【0017】
上記CPU91は、上記構成により、信号処理装置50でフィルタ処理が行われたエンコーダ信号に基づいて、縫製データに基づく動作指令に追従するようステッピングモータ104に対するクローズド・ループ制御を行う。
また、このCPU91は、速度指令(パルス信号)の出力に際して、信号処理装置50を動作させる為のクロック信号を当該信号処理装置50に対して入力する。なお、クロック信号の意義は、後述するタイミング信号発生部30について説明する際に詳述する。
【0018】
(信号処理装置)
信号処理装置50は、PLD(Programmable Logic Device)と呼ばれるICで構成され、論理的な回路構造をプログラミング(ソフトウェア)によって設定することができる。
これにより、信号処理装置50は、エンコーダ105から入力されるエンコーダ信号に対してノイズとしてカットすべき周波数(遮断周波数)の値を決定する速度検出部20と、クロック信号の入力を受けて次段のフィルタ処理部40を動作させるタイミング信号を生成するタイミング信号発生部30と、タイミング信号に基づいて、エンコーダ105から入力されたエンコーダ信号からノイズを除去して、CPU91に出力するフィルタ処理部40とを構成している。
すなわち、フィルタ処理部40は遮断周波数に基づいて、エンコーダからの検出信号に含まれるノイズを除去する。
【0019】
(速度検出部)
CPU91は、モータドライブ回路92だけでなく速度検出部20にも速度指令を入力する。
速度検出部20は、CPU91からの速度指令を取り込んで、指令速度に応じた遮断周波数を算出する。すなわち、速度検出部20は制御手段90によるステッピングモータへの速度指令に基づいて、遮断周波数を調整する。また、この調整に際して速度指令に比例して遮断周波数を算出する。
以下、速度検出部20による遮断周波数の算出処理を図3のフローチャートに基づいて説明する。
【0020】
制御手段を構成するCPU91の速度指令は、パルス信号であり、そのパルス数はステッピングモータ104に対する動作量を、その周波数はステッピングモータ104に対する動作速度を示している。
速度検出部20は、CPU91から速度指令信号(パルス信号)が入力されると(ステップS1)、一定時間に速度指令信号(パルス信号)がいくつ入力されたかカウントする(ステップS3)。これにより1秒間あたりのパルス数である指令パルス周波数fp[Hz]を取得する。
【0021】
次いで、算出した指令パルス周波数fpから、当該指令パルス周波数fp通りにステッピングモータ104が回転した場合に、エンコーダ105が出力するであろうエンコーダ信号であるパルス信号の周波数feを次式(1)により算出する(ステップS5)。
【0022】
fe=fp×(モータ1回転あたりのエンコーダパルス数)/(モータ1回転あたりの指令パルス数) …(1)
【0023】
ここで、モータ1回転あたりの指令パルス数と、ステッピングモータ104の1回転あたりのエンコーダパルス数は、それぞれステッピングモータ104とエンコーダ105の仕様によって予め定まる固定値であるため、指令パルス周波数fpが入力されると、エンコーダパルス信号の周波数feは一義的に算出することができる。
【0024】
次に、信号処理装置50が、ローパスフィルタとして、エンコーダ信号より高い所定の周波数成分の信号をノイズとしてカットするために、閾値となるフィルタ遮断周波数fcutを次式(2)により算出する(ステップS7)。
【0025】
fcut=fe×A …(2)
(A:フィルタ調整ゲイン)
【0026】
ここで、フィルタ調整ゲインAは少なくとも1より大きな値を設定し、遮断周波数fcutがエンコーダパルス信号の周波数feよりも高い周波数となるようにする。フィルタ調整ゲインAの値が大きい程、遮断周波数fcutは高くなり、フィルタ処理によるエンコーダ信号への影響を減らせるが、ノイズ除去効果は低減する。また、フィルタ調整ゲインAの値が1に近い程、遮断周波数fcutはエンコーダパルス信号の周波数feに近くなり、ノイズ除去効果は高まるが、実際にはノイズとはいえない範囲のエンコーダパルス信号も除去される可能性が生じる。
従って、使用するステッピングモータ、エンコーダの特性等によって、最適な値となるようにフィルタ調整ゲインAを調整する必要がある。
【0027】
そして、速度検出部20は、算出した遮断周波数fcutの値をタイミング信号発生部30に出力する(ステップS9)。
【0028】
(タイミング信号発生部)
タイミング信号発生部30は、図4に示すように、m段(mは1以上のあらかじめ設定された数)の2進カウンタ31と、カウンタ段数指定部32及びAND回路331〜33mと、OR回路34とを備えている。
【0029】
上記2進カウンタ31は、m段の出力部を備え、各出力部はカウント出力Q1〜Qmを出力する。CPU91は一定の周波数fclkのクロック信号を2進カウンタ31に入力している。当該クロック信号は、サンプリングの精度を上げる為、エンコーダ周波数よりも十分高い周波数(例えば、100[kHz])の信号を入力する。
これに対して、2進カウンタ31の各段数の出力部は、クロック信号の周波数fclkをそれぞれの段数を指数とする2の乗数で除算した周波数のカウント出力Q1〜Qmを行う。例えば、図5に示すように、n段のカウント出力Qnの周波数は100/2n[kHz]となる。
【0030】
カウンタ段数指定部32は、速度検出部20から遮断周波数fcutが入力されると、2進カウンタ31の各出力部のカウント出力Q1〜Qmの中からフィルタ処理部40に出力すべき段数nを次式(3)より算出する。
【0031】
n=log2[fclk/(fcut×B)] …(3)
(但し、1≦n≦m で、小数点以下切捨て)
【0032】
Bは後述するフィルタ処理部40内のシフトレジスタ(後述)の段数であり、あらかじめ決められた整数である。このため、式(3)では、遮断周波数fcut以外は全て定数であり、遮断周波数fcutが定まればnを決定することができる。
また、段数nは2進カウンタ31の最大段数であるm段より大きくできない為、カウンタ段数指定部32は、段数nの算出において、1≦n≦mとなるよう、制限を行っている。また、算出により段数を決定することを目的とするので、nは整数である必要があり、カウンタ段数指定部32は、式(3)の演算による算出値の小数点以下を切り捨てる。
【0033】
また、カウンタ段数指定部32は、算出した段数nを2進カウンタ31のカウント出力Q1〜Qmに反映するために、出力段指令信号f1_SELECT〜fm_SELECTを個々に出力するm個の出力部を備えている。カウンタ段数指定部32において、式(3)に基づいて段数nが算出されると、出力段指令信号f1_SELECT〜fm_SELECTの内で、出力段指令信号fn_SELECTのみが「Hレベル」、その他の信号は「Lレベル」が出力される(以降「H」,「L」と記す)。
【0034】
一方、2進カウンタ31のカウント出力Q1〜Qmは、その段数に応じて対応するAND回路331〜33mの一方の入力部に入力され、カウンタ段数指定部32の出力段指令信号f1_SELECT〜fm_SELECTは段数に応じて対応するAND回路331〜33mの他方の入力部に入力される。そして、全AND回路331〜33mの出力部は、OR回路34の入力部に接続されている。
これにより、カウンタ段数指定部32において算出した段数nに応じて出力段指令信号fn_SELECTのみが「Hレベル」で出力されると、AND回路33nのみがカウント出力QnをOR回路34に入力し、OR回路34はカウント出力Qnと同じ周波数のタイミング信号をフィルタ処理部40に入力する。
【0035】
上記タイミング信号発生部30の処理を図6のフローチャートに基づいて説明する。
まず、前提として、2進カウンタ31は、CPU91から周波数fclkのクロック信号が入力されており、各出力部はカウント出力Q1〜QmをそれぞれのAND回路331〜33mに入力した状態にある。
そして、速度検出部20からカウンタ段数指定部32に遮断周波数fcutが入力されると(ステップS11)、前述した式(3)により段数nの値を算出する(ステップS13)。そして、カウンタ段数指定部32は、出力段指令信号fn_SELECTのみ「Hレベル」として、各出力段指令信号f1_SELECT〜fm_SELECTを対応するAND回路331〜33mに入力する。
これにより、AND回路33nに入力されたカウント出力Qnと同じ周波数のタイミング信号がOR回路34を通じてフィルタ処理部40に入力される(ステップS15)。
すなわち、タイミング信号発生部30は、制御手段90からのクロック信号と遮断周波数に基づいてタイミング信号を生成し、このタイミング信号がフィルタ処理部40に入力される。
【0036】
(フィルタ処理部:構成)
フィルタ処理部40は、図7に示すように、エンコーダ105から出力されるフィルタ処理前のエンコーダ信号と前述したタイミング信号とが入力されるシフトレジスタ41と、シフトレジスタ41の複数段(四段とする)の記憶部の記憶データD1〜D4が入力される第一のAND回路42と、シフトレジスタ41の四段の記憶部からの記憶データD1〜D4の「H」と「L」とが全て反転されて入力される第二のAND回路43と、第一と第二のAND回路42,43からの入力信号によりフィルタ処理後のエンコーダ信号を出力するJ-Kフリップフロップ回路44とを備えている。
【0037】
シフトレジスタ41は、タイミング信号発生部30で生成されるタイミング信号の一周期ごとに、入力されるフィルタ処理前のエンコーダ信号に基づく記憶データを上位の記憶部から下位の記憶部に順々に移し替える論理回路である(上位の記憶部から下位の記憶部の順に従って記憶データをD1〜D4と記載する)。
すなわち、図8に示すように、各記憶部は当初は全て「L」が記憶データとして記憶されており、フィルタ処理前のエンコーダ信号が入力されると、逐次、記憶データD1がエンコーダ信号に応じて「H」又は「L」に書き換えられ、その後はタイミング信号の一周期ごと記憶データD1の内容は記憶データD2に、記憶データD2の内容は記憶データD3に、記憶データD3の内容は記憶データD4に、記憶データD1の内容は記憶データD2に書き換えられると共に、各AND回路42,43に出力される。
【0038】
第一のAND回路42は、入力される記憶データD1〜D4が全て「H」の場合にのみJ-Kフリップフロップ回路44のJ入力に「H」を入力し、それ以外は全て「L」を入力する。
第二のAND回路43では、入力される記憶データD1〜D4が全て「L」の場合にのみJ-Kフリップフロップ回路44のK入力に「H」を入力し、それ以外は全て「L」を入力する。
従って、J-Kフリップフロップ回路44のJ入力とK入力とに入力される信号の組み合わせは、(H,L),(L,L),(L,H)のみであり、(H,H)は発生しない。
【0039】
J-Kフリップフロップ回路44は、毎回の出力に前回の出力に依存する場合がある論理回路である。J-Kフリップフロップ回路44は、図9の対応表に示すように、タイミング信号発生部30で生成されるタイミング信号の一周期ごとに、J入力とK入力とがいずれも「L」の場合には前回の出力が維持され、J入力とK入力とがいずれも「H」の場合には前回の出力が反転され、J入力が「L」でK入力が「H」の場合には前回の出力に拘らず今回の出力が「L」となり、J入力が「H」でK入力が「L」の場合には前回の出力に拘らず今回の出力が「H」となる。
【0040】
(フィルタ処理部:処理の流れ)
上記構成のフィルタ処理部40の処理を図10のフローチャートに示す。
当初、シフトレジスタ41の記憶データD1〜D4は全て「L」にセットされる(ステップS21)。
そして、タイミング信号発生部30からタイミング進行が入力され(ステップS23)、当該タイミング信号の立ち上がり(「L」から「H」への切り替わり)が検出されるまで(ステップS25:NO)、タイミング信号の読み込みが繰り返し実行される。
【0041】
そして、タイミング信号の立ち上がりが検出されると(ステップS25:YES)、シフトレジスタ41の記憶データD1〜D4がそれぞれ、D1→D2、D2→D3、D3→D4とシフトされ(ステップS27)、記憶データD1にはフィルタ処理前のエンコーダ信号が読み込まれてセットされる(ステップS29)。
【0042】
ついで、上記処理の結果、シフトレジスタ41の記憶データD1〜D4が全て「H」となる場合には(ステップS31:YES)、J-Kフリップフロップ回路44のJ入力とK入力とに入力される信号の組み合わせは(H,L)となり、フィルタ処理後のエンコーダ出力Qoutは「H」がセットされ、出力される(ステップS33)。
また、シフトレジスタ41の記憶データD1〜D4が全て「H」とならない場合には(ステップS31:NO)、記憶データD1〜D4が全て「L」となるか判定が行われ、全て「L」の場合には(ステップS35:YES)、J-Kフリップフロップ回路44のJ入力とK入力とに入力される信号の組み合わせは(L,H)となり、フィルタ処理後のエンコーダ出力Qoutは「L」がセットされ、出力される(ステップS37)。
【0043】
また、シフトレジスタ41の記憶データD1〜D4が一部不一致の場合には(ステップS35:NO)、J-Kフリップフロップ回路44のJ入力とK入力とに入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutがそのまま維持される。
【0044】
(フィルタ処理部:ノイズ除去の原理)
次に、フィルタ処理前のエンコーダ信号にタイミング信号の四分の一の周波数より高い周波数のノイズN(タイミング信号の波長四つ分より小さい波長のノイズ)が入った場合に当該ノイズNを除去する工程について図8及び図9に基づいて説明する。なお、図8に示されているように、フィルタ処理前のエンコーダ信号が入力されてからシフトレジスタ41の各記憶部の記憶データD1〜D4に反映されるまでにタイミング信号の一周期分の遅れがあり、各記憶部の記憶データD1〜D4が入力されてからJ-Kフリップフロップ回路44が出力するフィルタ処理後のエンコーダ信号に反映されるまでにタイミング信号の一周期分の遅れがある。
【0045】
図8の区間aでは、前述したように、シフトレジスタ41の記憶データD1〜D4は全て「L」にセットされている。従って、J-Kフリップフロップ回路44のJ-K入力に入力される信号の組み合わせは(L,H)となり、前回のフィルタ処理後のエンコーダ出力Qoutに拘らず、今回のフィルタ処理後のエンコーダ出力Qoutは「L」となる。
【0046】
ついで、図8の区間bでは、「H」のフィルタ処理前のエンコーダ信号の入力によって、シフトレジスタ41の記憶データD1〜D4は順番に「H」に書き換えられるが、記憶データD4が「H」となるまでは、記憶データD1〜D4が不一致であるため、J-Kフリップフロップ回路44のJ-K入力に入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持して、今回のフィルタ処理後のエンコーダ出力Qoutも「L」となる。
【0047】
図8の区間cでは、「H」のフィルタ処理前のエンコーダ信号の入力によって、シフトレジスタ41の記憶データD1〜D4は全て「H」に書き換えられ、J-Kフリップフロップ回路44のJ-K入力に入力される信号の組み合わせは(H,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutに拘らず、今回のフィルタ処理後のエンコーダ出力Qoutは「H」となる。
【0048】
図8の区間dでは、「H」のフィルタ処理前のエンコーダ信号にノイズNが入り、シフトレジスタ41の記憶データD1〜D4の一部が「L」に書き換えられる。この時、ノイズNはタイミング信号の四分の一の周波数より高い周波数であることから、記憶データD1〜D4の全てが「L」に書き換えられる全一致状態は発生せず、このため、ノイズがシフトレジスタ41に読み込まれている区間dでは、J-Kフリップフロップ回路44のJ-K入力に入力される信号の組み合わせは常に(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持して、今回のフィルタ処理後のエンコーダ出力Qoutは「H」となる。
る。
従って、フィルタ処理前のエンコーダ信号にノイズNが入った場合でも、フィルタ処理後のエンコーダ信号は「H」を維持し続け、ノイズの影響は除去される。
なお、図8ではフィルタ処理前のエンコーダ信号が「H」であって、「L」のノイズが入った場合を例示したが、フィルタ処理前のエンコーダ信号が「L」であって、「H」のノイズが入った場合でも、J-Kフリップフロップ回路44のJ-K入力に入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持するので、フィルタ処理後のエンコーダ信号は「L」の状態が維持され、ノイズの影響は除去される。
【0049】
その後、図8の区間eでは、「L」のフィルタ処理前のエンコーダ信号の入力によって、シフトレジスタ41の記憶データD1〜D4は順番に「L」に書き換えられるが、記憶データD4が「L」となるまでは、記憶データD1〜D4が不一致であるため、J-Kフリップフロップ回路44のJ-K入力に入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持して、今回のフィルタ処理後のエンコーダ出力Qoutも「H」となる。
【0050】
そして、図8の区間fでは、シフトレジスタ41の記憶データD1〜D4は全て「L」に書き換えられ、J-Kフリップフロップ回路44のJ-K入力に入力される信号の組み合わせは(L,H)となり、前回のフィルタ処理後のエンコーダ出力Qoutに拘らず、今回のフィルタ処理後のエンコーダ出力Qoutは「L」となる。
このように、タイミング信号の四分の一の周波数より高い周波数のノイズNがフィルタ処理前のエンコーダ信号に入った場合でも、フィルタ処理後のエンコーダ信号にはノイズNを除去することが可能である。
すなわち、フィルタ処理部40は、タイミング信号発生部30からのタイミング信号の周期で、エンコーダ105の検出信号を複数の記憶部(D1〜D4に対応する)に推移させるシフトレジスタ41と、
シフトレジスタ41の複数の記憶部の記憶データ(D1〜D4)が全て一致する場合にのみ、エンコーダの検出信号の検出値の変化を反映して出力するフリップフロップ回路44とを備えている。
【0051】
(実施例)
エンコーダ信号フィルタ装置としての制御装置90の各種パラメータ等について具体的な数値を例示した実施例について説明する。なお、以下の具体数値は、制御装置90の各構成による処理内容を明確に説明するための例示であって、以下の例示の数値に発明の内容が限定されるものではない。
【0052】
CPU91が出力するクロック信号の周波数fclk=10MHz、ステッピングモータ1回転あたりの指令パルス数=1000パルス、モータ1回転あたりのエンコーダパルス数=500パルス、フィルタ調整ゲインA=1.2、2進カウンタ31の段数m=10、シフトレジスタ41の段数B=4の場合における信号処理装置50の動作を説明する。
【0053】
まず、速度検出部20に速度指令のパルス信号が入力され、そのパルス周波数fp=10kHzの場合、式(1)の処理を行い、エンコーダパルス信号の周波数fe=10kHz×500ハ゜ルス/1000ハ゜ルス=5kHzが算出される。
次に、式(2)により、フィルタ遮断周波数fcut=5kHz×1.2=6kHz が決定する。タイミング信号発生部では、2進カウンタ31の出力段nを式(3)より求める。
n=log2[10000k/(6k×4)]≒8.7
nは小数点以下切捨てなので、n=8となる。
【0054】
前述したように、fclk=10[MHz]としている。従って、n段目のカウント出力Qnの周波数はfn=fclk/2n[Hz]となる。これにn=8を代入すると、fn=10MHz/(28)≒39kHzとなる。この周波数39kHzのパルスがタイミング信号としてフィルタ処理部40に入力される。
【0055】
フィルタ処理部40では、図8で前述したように、タイミング信号が4パルス連続してエンコーダ信号が同じレベルでない限り、フィルタ出力は変化しない。従ってタイミング信号周波数fn/4=39kHz/4=9.75[kHz]以上の周波数の信号はノイズとしてフィルタ処理されることになる。ノイズ源となるモータ電流パルスの周波数が10kHzであることから、モータ電流パルスに基づくノイズを除去することが可能である。
【0056】
上記の数値例では、電流指令パルスfpが10kHzである場合について例示したが、モータ速度が変化した時についてさらに図11に示す。
ステッピングモータ104が減速して、ノイズ源となるモータ電流パルス周波数が下がった場合、その変化に応じて、遮断周波数fcutも下げる必要がある。信号処理装置50では、図11に示すように、遮断周波数fcutはエンコーダ信号周波数feより常に高い周波数になるように算出するので、エンコーダ信号の変化には影響を与えない。このように遮断周波数fcutを高速回転時は高く、低速時は低く設定することで、ノイズを効率的に除去することができる。
【0057】
(モータ制御装置の技術的な効果)
エンコーダ信号フィルタ装置としてのモータ制御装置90は、速度検出部20が、ノイズとしてエンコーダ信号から除去すべき信号の周波数である遮断周波数をステッピングモータ104の速度指令から算出し、フィルタ処理部40が、遮断周波数に基づくタイミング信号によりエンコーダ信号のノイズを除去することから、ステッピングモータ104の回転速度の変動に伴いノイズの周波数も変動する場合であっても、遮断周波数もステッピングモータ104の回転速度に合わせて変動させることができ、エンコーダ信号からノイズを適宜識別して除去することが可能である。
このため、モータ制御装置90は、ステッピングモータ104の低速域でもエンコーダ信号のノイズを除去することが可能となり、当該モータ制御装置90により、ステッピングモータ104の動作速度に拘らず、安定的に高精度なステッピングモータ104の位置(軸角度)検出を行うことが可能となる。
【0058】
また、モータ制御装置90は、フィルタ処理部40を、シフトレジスタ41、フリップフロップ回路44、その他AND回路42,43のような二値を取り扱う論理回路で構成するため、処理の高速化を容易に実現することが可能となる。
【0059】
さらに、モータ制御装置90の信号処理装置50は、PLDで構成されるため、モータ制御装置90が制御を行うステッピングモータ104や軸角度の検出を行うエンコーダ105が仕様の異なるものに交換された場合でも、ステッピングモータ104やエンコーダ105に関する各種のパラメータの値を変更したり、最適な遮断周波数を求めるための係数などを変更することが、信号処理装置50内のPLDのソフトウェアの変更により行うことが可能であることから、ハードウェアを交換することなく、最適なステッピングモータ制御を行うことが可能である。
上記実施形態では、フィルタ調整ゲインAを一定値として、速度指令に比例して遮断周波数を算出していた。これに代えて、速度領域毎にフィルタ調整ゲインAを設定することも容易に考えられる。また、速度領域とフィルタ調整ゲインAとのデータテーブルから遮断周波数を決定すると等種々変更可能である。
【符号の説明】
【0060】
20 速度検出部
30 タイミング信号発生部
31 2進カウンタ
32 カウンタ段数指定部
331〜33m AND回路
34 OR回路
40 フィルタ処理部
41 シフトレジスタ
42 第一のAND回路
43 第二のAND回路
44 フリップフロップ回路
50 信号処理装置装置
90 モータ制御装置(エンコーダ信号フィルタ装置)
91 CPU(制御手段)
100 電子サイクルミシン
104 ステッピングモータ
105 エンコーダ

【特許請求の範囲】
【請求項1】
ステッピングモータの軸角度を検出するエンコーダと、
前記エンコーダからの検出信号により前記ステッピングモータに速度指令を与えて動作制御を行う制御手段とを有し、
前記エンコーダからの検出信号に含まれるノイズを除去するエンコーダ信号フィルタ装置において、
前記制御手段による前記ステッピングモータの速度指令に基づいて、遮断周波数を調整する速度検出部と、
前記遮断周波数に基づいて、前記エンコーダからの検出信号に含まれるノイズを除去するフィルタ処理部とを備えることを特徴とするエンコーダ信号フィルタ装置。
【請求項2】
前記速度検出部に前記速度指令が入力されるとともに、
前記速度検出部が前記速度指令に比例するように前記遮断周波数を調整することを特徴とする請求項1記載のエンコーダ信号フィルタ装置。
【請求項3】
前記制御手段からのクロック信号と前記遮断周波数に基づいてタイミング信号を生成するタイミング信号発生部を備えることを特徴とする請求項1又は2記載のエンコーダ信号フィルタ装置。
【請求項4】
前記フィルタ処理部は、
前記タイミング信号の周期で前記エンコーダの検出信号を複数の記憶部に推移させるシフトレジスタと、
前記シフトレジスタの前記複数の記憶部の記憶データが全て一致する場合にのみ前記エンコーダの検出信号の検出値の変化を反映して出力するフリップフロップ回路とを備えることを特徴とする請求項3記載のエンコーダ信号フィルタ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate