(57)【要約】【課題】モータの速度変化時にも安定的にエンコーダ信号からノイズの影響を排除する。【解決手段】ステッピングモータ１０４の軸角度を検出するエンコーダ１０５と、その検出信号をフィードバックしつつ、ステッピングモータに速度指令を与えて動作制御を行う制御手段９１とを備えるエンコーダ信号フィルタ装置９０において、制御手段によるステッピングモータの速度指令に基づいて遮断周波数を調整する速度検出部２０と、遮断周波数に基づいて、エンコーダからの検出信号に含まれるノイズを除去するフィルタ処理部４０とを備えている。【選択図】図２
2012186897.tif 000002
【特許請求の範囲】
【請求項１】
ステッピングモータの軸角度を検出するエンコーダと、
前記エンコーダからの検出信号により前記ステッピングモータに速度指令を与えて動作制御を行う制御手段とを有し、
前記エンコーダからの検出信号に含まれるノイズを除去するエンコーダ信号フィルタ装置において、
前記制御手段による前記ステッピングモータの速度指令に基づいて、遮断周波数を調整する速度検出部と、
前記遮断周波数に基づいて、前記エンコーダからの検出信号に含まれるノイズを除去するフィルタ処理部とを備えることを特徴とするエンコーダ信号フィルタ装置。
【請求項２】
前記速度検出部に前記速度指令が入力されるとともに、
前記速度検出部が前記速度指令に比例するように前記遮断周波数を調整することを特徴とする請求項１記載のエンコーダ信号フィルタ装置。
【請求項３】
前記制御手段からのクロック信号と前記遮断周波数に基づいてタイミング信号を生成するタイミング信号発生部を備えることを特徴とする請求項１又は２記載のエンコーダ信号フィルタ装置。
【請求項４】
前記フィルタ処理部は、
前記タイミング信号の周期で前記エンコーダの検出信号を複数の記憶部に推移させるシフトレジスタと、
前記シフトレジスタの前記複数の記憶部の記憶データが全て一致する場合にのみ前記エンコーダの検出信号の検出値の変化を反映して出力するフリップフロップ回路とを備えることを特徴とする請求項３記載のエンコーダ信号フィルタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステッピングモータの動作量を検出するエンコーダの出力に対してノイズ成分を除去するエンコーダ信号フィルタ装置に関するものである。
【背景技術】
【０００２】
ステッピングモータは、動作信号としてのパルス信号を与えることによって、決められたステップ単位で回転するモータであり、回転角度と速度はパルス信号の回数と周期によって決まることを特徴としている。この性質を利用することで、パルス信号だけでフィードバック機構を必要としない位置決め制御を行うことができ、この特性を生かして、例えば、工業用ミシンの分野において、形状縫いミシンの布送り機構の制御等に用いられている。
しかしながら、ステッピングモータは、急激な負荷（トルク）変動や、急加速の場合に、パルス信号に動作が追従できなくなる現象が発生する。この現象は脱調と呼ばれ、脱調したステッピングモータは振動や逆転等を誘発し、制御不能となることから、ステッピングモータにとっては、最も回避すべき欠点であった。
【０００３】
このため、近年、ステッピングモータにエンコーダを取り付けて、回転角度情報をフィードバックし、クローズド・ループ制御を行うことで、急激な負荷変動や急加速の場合でも脱調しないようにした位置決め制御も行われるようになってきた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１１７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、エンコーダによるクローズド・ループ制御では、エンコーダからのフィードバック信号（エンコーダパルス信号）にノイズが入った場合、ステッピングモータの制御装置がノイズをエンコーダパルスと誤認識して取り込んでしまい、誤動作してしまう恐れがある。このため、エンコーダから出力される信号は差動信号とよばれる伝送方式を採用しているものが多い。この方式は２本の信号線を用いて、その差動信号間の電圧差でＨレベルとＬレベルの識別を行っている。
【０００６】
しかしながら、制御装置からモータまでの配線は、エンコーダがステッピングモータに併設される構成上、ノイズ源となるモータ動力線（駆動パルス信号）とエンコーダ信号線が平行し近接して配線されることが多いことから、ノイズの影響を受けやすく、差動信号を用いてもエンコーダ信号からノイズを十分に除去することは困難であった。
このため、エンコーダ信号を入力する制御装置側でフィルタ処理を行うこともノイズ対策として一般的に行われていた。
この場合、ノイズと、エンコーダ信号を切り分けるために、信号周波数の閾値として、遮断周波数をあらかじめ設定し、ローパスフィルタにより、遮断周波数より高い周波数はノイズとしてカットし、それより低い周波数はエンコーダ信号として通過させることで、ノイズのみ除去することが可能である。
しかしながら、モータの速度によって、検出されるエンコーダ信号の周波数やノイズ源となる駆動パルス信号の周波数が変化する為、固定された遮断周波数に基づいてノイズ除去を行うローパスフィルタではノイズを完全に除去することは困難であった。
【０００７】
本発明は、モータの速度変化時にも安定的にエンコーダ信号からノイズの影響を排除することをその目的とする。
【課題を解決するための手段】
【０００８】
請求項１記載の発明は、
ステッピングモータの軸角度を検出するエンコーダと、
前記エンコーダからの検出信号により前記ステッピングモータに速度指令を与えて動作制御を行う制御手段とを有し、
前記エンコーダからの検出信号に含まれるノイズを除去するエンコーダ信号フィルタ装置において、
前記制御手段による前記ステッピングモータの速度指令に基づいて、遮断周波数を調整する速度検出部と、
調整された前記遮断周波数に基づいて、前記エンコーダからの検出信号に含まれるノイズを除去するフィルタ処理部とを備えることを特徴とする。
請求項２記載の発明は、請求項１記載の発明と同様の構成を備えると共に、
前記速度検出部に前記速度指令が入力されるとともに、
前記速度検出部が前記速度指令に比例するように前記遮断周波数を調整することを特徴とする。
請求項３記載の発明は、請求項１又は２記載の発明と同様の構成を備えると共に、
前記制御手段からのクロック信号と前記遮断周波数に基づいてタイミング信号を生成するタイミング信号発生部を備えることを特徴とする。
【０００９】
請求項４記載の発明は、請求項３記載の発明と同様の構成を備えると共に、
前記フィルタ処理部は、
前記タイミング信号の周期で前記エンコーダの検出信号を複数の記憶部に推移させるシフトレジスタと、
前記シフトレジスタの前記複数の記憶部の記憶データが全て一致する場合にのみ前記エンコーダの検出信号の検出値の変化を反映して出力するフリップフロップ回路とを備えることを特徴とする。
【発明の効果】
【００１０】
請求項１から３記載の発明は、速度検出部が、ノイズとしてエンコーダ信号から除去すべき信号の周波数である遮断周波数をステッピングモータの速度指令から算出し、フィルタ処理部が、遮断周波数に基づいてエンコーダ信号のノイズを除去することから、ステッピングモータの回転速度の変動に伴いノイズの周波数も変動する場合であっても、遮断周波数もステッピングモータの回転速度に合わせて調整されるので、エンコーダ信号からノイズを適宜識別して除去することが可能である。
このため、本発明は、ステッピングモータの高速域に限らず、低速域でもエンコーダ信号のノイズを除去することが可能となり、ステッピングモータの動作速度に拘らず、安定的に高精度なステッピングモータの位置（軸角度）検出を行うことが可能となる。
【００１１】
請求項４記載の発明は、フィルタ処理部を、シフトレジスタ及びフリップフロップ回路のような論理回路で構成することができ、処理の高速化を容易に実現することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】発明の実施形態であるステッピングモータの制御装置を搭載した電子サイクルミシンの斜視図である。
【図２】エンコーダ信号フィルタ装置を搭載した制御装置のブロック図である。
【図３】速度検出部による遮断周波数の算出処理を示すフローチャートである。
【図４】タイミング信号発生部のブロック図である。
【図５】クロック信号とカウンタ段数指定部の複数のカウント出力の波形図である。
【図６】タイミング信号発生部の処理を示すフローチャートである。
【図７】フィルタ処理部のブロック図である。
【図８】タイミング信号、フィルタ処理前後のエンコーダ信号及びフィルタ処理部の記憶データ出力の波形図である。
【図９】J-Kフリップフロップ回路の二つの入力と前回の出力とその次の出力との対応を示す図表である。
【図１０】フィルタ処理部の処理を示すフローチャートである。
【図１１】ステッピングモータの速度指令信号に応じて変動するエンコーダ信号とステッピングモータの速度指令信号に応じて変動する遮断周波数の変化を示す線図である。
【発明を実施するための形態】
【００１３】
（発明の実施形態の概要）
本実施形態は、図１に示す電子サイクルミシン１００において、被縫製物である布地を水平面上で毎針ごとに任意に移動位置決めするためのエンコーダ信号フィルタ処理装置としてのステッピングモータの制御装置９０であってフィルタ処理を行う信号処理装置５０を備えるものである。
上記電子サイクルミシン１００は、図１に示すように、図示しないミシンモータによって上下動する針棒１０１と、針棒の下方に水平に設置された布板１０２と、布板１０２の上で布を保持する保持枠１０３と、保持枠１０３を水平且つ互いに直交する二方向の各々に移動させる二つのステッピングモータ１０４（図２参照）と、各ステッピングモータ１０４の出力軸の回転角度や回転角速度等の角度変化量、すなわち軸角度を検出するエンコーダ１０５（図２参照）とを備えている。
【００１４】
そして、この電子サイクルミシン１００の制御装置９０は、縫製データを読み込んで、一針ごとに二つのステッピングモータ１０４の動作量を制御して任意の位置に保持枠を移動位置決めし、所望の縫製パターンに応じた縫製を実行する。その際、各ステッピングモータ１０４の動作量をエンコーダ１０５が検出し、制御装置９０では、各ステッピングモータ１０４に対するフィードバック制御（クローズドループ制御）を実行するようになっている。
【００１５】
（制御装置）
図２は、信号処理装置５０を搭載した制御装置９０のブロック図である。なお、この図２では、ステッピングモータ１０４及びエンコーダ１０５を一つのみ図示しているが、実際には、各ステッピングモータ１０４に併設されたそれぞれのエンコーダ１０５に対して個々に信号処理装置５０が搭載される。
【００１６】
エンコーダ信号フィルタ装置としての制御装置９０は、エンコーダ１０５と、ステッピングモータ１０４に対して所定の回転駆動を行わせるための速度指令をパルス信号にて出力する制御手段としてのＣＰＵ９１と、入力されたパルス信号に基づいて、ステッピングモータ１０４にモータ電流を流すモータドライブ回路９２と、ステッピングモータ１０４の出力軸に取り付けられると共に出力軸の回転に応じてエンコーダ１０５が出力する回転角度情報となるエンコーダ信号のノイズを除去してＣＰＵ９１にフィードバックする信号処理装置５０とを備えている。
そして、制御装置９０は、エンコーダ１０５からの検出信号によりステッピングモータ１０４に速度指令を与えて動作制御を行う。
なお、制御装置９０は、電子サイクルミシン１００の各構成とも接続され、各種の動作制御を実行するが、ここでは、ステッピングモータ１０４の制御系に関する構成のみについて言及するものとする。
【００１７】
上記ＣＰＵ９１は、上記構成により、信号処理装置５０でフィルタ処理が行われたエンコーダ信号に基づいて、縫製データに基づく動作指令に追従するようステッピングモータ１０４に対するクローズド・ループ制御を行う。
また、このＣＰＵ９１は、速度指令（パルス信号）の出力に際して、信号処理装置５０を動作させる為のクロック信号を当該信号処理装置５０に対して入力する。なお、クロック信号の意義は、後述するタイミング信号発生部３０について説明する際に詳述する。
【００１８】
（信号処理装置）
信号処理装置５０は、ＰＬＤ（Programmable Logic Device）と呼ばれるＩＣで構成され、論理的な回路構造をプログラミング（ソフトウェア）によって設定することができる。
これにより、信号処理装置５０は、エンコーダ１０５から入力されるエンコーダ信号に対してノイズとしてカットすべき周波数（遮断周波数）の値を決定する速度検出部２０と、クロック信号の入力を受けて次段のフィルタ処理部４０を動作させるタイミング信号を生成するタイミング信号発生部３０と、タイミング信号に基づいて、エンコーダ１０５から入力されたエンコーダ信号からノイズを除去して、ＣＰＵ９１に出力するフィルタ処理部４０とを構成している。
すなわち、フィルタ処理部４０は遮断周波数に基づいて、エンコーダからの検出信号に含まれるノイズを除去する。
【００１９】
（速度検出部）
ＣＰＵ９１は、モータドライブ回路９２だけでなく速度検出部２０にも速度指令を入力する。
速度検出部２０は、ＣＰＵ９１からの速度指令を取り込んで、指令速度に応じた遮断周波数を算出する。すなわち、速度検出部２０は制御手段９０によるステッピングモータへの速度指令に基づいて、遮断周波数を調整する。また、この調整に際して速度指令に比例して遮断周波数を算出する。
以下、速度検出部２０による遮断周波数の算出処理を図３のフローチャートに基づいて説明する。
【００２０】
制御手段を構成するＣＰＵ９１の速度指令は、パルス信号であり、そのパルス数はステッピングモータ１０４に対する動作量を、その周波数はステッピングモータ１０４に対する動作速度を示している。
速度検出部２０は、ＣＰＵ９１から速度指令信号（パルス信号）が入力されると（ステップＳ１）、一定時間に速度指令信号（パルス信号）がいくつ入力されたかカウントする（ステップＳ３）。これにより1秒間あたりのパルス数である指令パルス周波数fp［Hz］を取得する。
【００２１】
次いで、算出した指令パルス周波数fpから、当該指令パルス周波数fp通りにステッピングモータ１０４が回転した場合に、エンコーダ１０５が出力するであろうエンコーダ信号であるパルス信号の周波数feを次式（１）により算出する（ステップＳ５）。
【００２２】
fe＝fp×(モータ1回転あたりのエンコーダパルス数)／(モータ1回転あたりの指令パルス数)      …（１）
【００２３】
ここで、モータ1回転あたりの指令パルス数と、ステッピングモータ１０４の1回転あたりのエンコーダパルス数は、それぞれステッピングモータ１０４とエンコーダ１０５の仕様によって予め定まる固定値であるため、指令パルス周波数fpが入力されると、エンコーダパルス信号の周波数feは一義的に算出することができる。
【００２４】
次に、信号処理装置５０が、ローパスフィルタとして、エンコーダ信号より高い所定の周波数成分の信号をノイズとしてカットするために、閾値となるフィルタ遮断周波数fcutを次式（２）により算出する（ステップＳ７）。
【００２５】
fcut＝fe×A      …（２）
（A：フィルタ調整ゲイン）
【００２６】
ここで、フィルタ調整ゲインAは少なくとも１より大きな値を設定し、遮断周波数fcutがエンコーダパルス信号の周波数feよりも高い周波数となるようにする。フィルタ調整ゲインAの値が大きい程、遮断周波数fcutは高くなり、フィルタ処理によるエンコーダ信号への影響を減らせるが、ノイズ除去効果は低減する。また、フィルタ調整ゲインAの値が１に近い程、遮断周波数fcutはエンコーダパルス信号の周波数feに近くなり、ノイズ除去効果は高まるが、実際にはノイズとはいえない範囲のエンコーダパルス信号も除去される可能性が生じる。
従って、使用するステッピングモータ、エンコーダの特性等によって、最適な値となるようにフィルタ調整ゲインAを調整する必要がある。
【００２７】
そして、速度検出部２０は、算出した遮断周波数fcutの値をタイミング信号発生部３０に出力する（ステップＳ９）。
【００２８】
（タイミング信号発生部）
タイミング信号発生部３０は、図４に示すように、m段（mは１以上のあらかじめ設定された数）の２進カウンタ３１と、カウンタ段数指定部３２及びＡＮＤ回路３３１〜３３ｍと、ＯＲ回路３４とを備えている。
【００２９】
上記２進カウンタ３１は、m段の出力部を備え、各出力部はカウント出力Q1〜Qmを出力する。ＣＰＵ９１は一定の周波数fclkのクロック信号を２進カウンタ３１に入力している。当該クロック信号は、サンプリングの精度を上げる為、エンコーダ周波数よりも十分高い周波数（例えば、100[kHz]）の信号を入力する。
これに対して、２進カウンタ３１の各段数の出力部は、クロック信号の周波数fclkをそれぞれの段数を指数とする2の乗数で除算した周波数のカウント出力Q1〜Qmを行う。例えば、図５に示すように、n段のカウント出力Qnの周波数は100/2n[kHz]となる。
【００３０】
カウンタ段数指定部３２は、速度検出部２０から遮断周波数fcutが入力されると、２進カウンタ３１の各出力部のカウント出力Q1〜Qmの中からフィルタ処理部４０に出力すべき段数nを次式（３）より算出する。
【００３１】
n=log2［fclk／（fcut×B）］    …（３）
（但し、1≦n≦m  で、小数点以下切捨て）
【００３２】
Bは後述するフィルタ処理部４０内のシフトレジスタ（後述）の段数であり、あらかじめ決められた整数である。このため、式（３）では、遮断周波数fcut以外は全て定数であり、遮断周波数fcutが定まればnを決定することができる。
また、段数nは２進カウンタ３１の最大段数であるm段より大きくできない為、カウンタ段数指定部３２は、段数nの算出において、1≦n≦mとなるよう、制限を行っている。また、算出により段数を決定することを目的とするので、nは整数である必要があり、カウンタ段数指定部３２は、式（３）の演算による算出値の小数点以下を切り捨てる。
【００３３】
また、カウンタ段数指定部３２は、算出した段数nを２進カウンタ３１のカウント出力Q1〜Qmに反映するために、出力段指令信号f1_SELECT〜fm_SELECTを個々に出力するm個の出力部を備えている。カウンタ段数指定部３２において、式（３）に基づいて段数nが算出されると、出力段指令信号f1_SELECT〜fm_SELECTの内で、出力段指令信号fn_SELECTのみが「Hレベル」、その他の信号は「Lレベル」が出力される（以降「H」,「L」と記す）。
【００３４】
一方、２進カウンタ３１のカウント出力Q1〜Qmは、その段数に応じて対応するＡＮＤ回路３３１〜３３ｍの一方の入力部に入力され、カウンタ段数指定部３２の出力段指令信号f1_SELECT〜fm_SELECTは段数に応じて対応するＡＮＤ回路３３１〜３３ｍの他方の入力部に入力される。そして、全ＡＮＤ回路３３１〜３３ｍの出力部は、ＯＲ回路３４の入力部に接続されている。
これにより、カウンタ段数指定部３２において算出した段数nに応じて出力段指令信号fn_SELECTのみが「Hレベル」で出力されると、ＡＮＤ回路３３ｎのみがカウント出力QnをＯＲ回路３４に入力し、ＯＲ回路３４はカウント出力Qnと同じ周波数のタイミング信号をフィルタ処理部４０に入力する。
【００３５】
上記タイミング信号発生部３０の処理を図６のフローチャートに基づいて説明する。
まず、前提として、２進カウンタ３１は、ＣＰＵ９１から周波数fclkのクロック信号が入力されており、各出力部はカウント出力Q1〜QmをそれぞれのＡＮＤ回路３３１〜３３ｍに入力した状態にある。
そして、速度検出部２０からカウンタ段数指定部３２に遮断周波数fcutが入力されると（ステップＳ１１）、前述した式（３）により段数nの値を算出する（ステップＳ１３）。そして、カウンタ段数指定部３２は、出力段指令信号fn_SELECTのみ「Hレベル」として、各出力段指令信号f1_SELECT〜fm_SELECTを対応するＡＮＤ回路３３１〜３３ｍに入力する。
これにより、ＡＮＤ回路３３ｎに入力されたカウント出力Qnと同じ周波数のタイミング信号がＯＲ回路３４を通じてフィルタ処理部４０に入力される（ステップＳ１５）。
すなわち、タイミング信号発生部３０は、制御手段９０からのクロック信号と遮断周波数に基づいてタイミング信号を生成し、このタイミング信号がフィルタ処理部４０に入力される。
【００３６】
（フィルタ処理部：構成）
フィルタ処理部４０は、図７に示すように、エンコーダ１０５から出力されるフィルタ処理前のエンコーダ信号と前述したタイミング信号とが入力されるシフトレジスタ４１と、シフトレジスタ４１の複数段（四段とする）の記憶部の記憶データD1〜D4が入力される第一のＡＮＤ回路４２と、シフトレジスタ４１の四段の記憶部からの記憶データD1〜D4の「H」と「L」とが全て反転されて入力される第二のＡＮＤ回路４３と、第一と第二のＡＮＤ回路４２，４３からの入力信号によりフィルタ処理後のエンコーダ信号を出力するJ-Kフリップフロップ回路４４とを備えている。
【００３７】
シフトレジスタ４１は、タイミング信号発生部３０で生成されるタイミング信号の一周期ごとに、入力されるフィルタ処理前のエンコーダ信号に基づく記憶データを上位の記憶部から下位の記憶部に順々に移し替える論理回路である（上位の記憶部から下位の記憶部の順に従って記憶データをD1〜D4と記載する）。
すなわち、図８に示すように、各記憶部は当初は全て「L」が記憶データとして記憶されており、フィルタ処理前のエンコーダ信号が入力されると、逐次、記憶データD1がエンコーダ信号に応じて「H」又は「L」に書き換えられ、その後はタイミング信号の一周期ごと記憶データD1の内容は記憶データD2に、記憶データD2の内容は記憶データD3に、記憶データD3の内容は記憶データD4に、記憶データD1の内容は記憶データD2に書き換えられると共に、各ＡＮＤ回路４２，４３に出力される。
【００３８】
第一のＡＮＤ回路４２は、入力される記憶データD1〜D4が全て「H」の場合にのみJ-Kフリップフロップ回路４４のJ入力に「H」を入力し、それ以外は全て「L」を入力する。
第二のＡＮＤ回路４３では、入力される記憶データD1〜D4が全て「L」の場合にのみJ-Kフリップフロップ回路４４のK入力に「H」を入力し、それ以外は全て「L」を入力する。
従って、J-Kフリップフロップ回路４４のJ入力とK入力とに入力される信号の組み合わせは、(H,L)，(L,L)，(L,H)のみであり、(H,H)は発生しない。
【００３９】
J-Kフリップフロップ回路４４は、毎回の出力に前回の出力に依存する場合がある論理回路である。J-Kフリップフロップ回路４４は、図９の対応表に示すように、タイミング信号発生部３０で生成されるタイミング信号の一周期ごとに、J入力とK入力とがいずれも「L」の場合には前回の出力が維持され、J入力とK入力とがいずれも「H」の場合には前回の出力が反転され、J入力が「L」でK入力が「H」の場合には前回の出力に拘らず今回の出力が「L」となり、J入力が「H」でK入力が「L」の場合には前回の出力に拘らず今回の出力が「H」となる。
【００４０】
（フィルタ処理部：処理の流れ）
上記構成のフィルタ処理部４０の処理を図１０のフローチャートに示す。
当初、シフトレジスタ４１の記憶データD1〜D4は全て「L」にセットされる（ステップＳ２１）。
そして、タイミング信号発生部３０からタイミング進行が入力され（ステップＳ２３）、当該タイミング信号の立ち上がり（「L」から「H」への切り替わり）が検出されるまで（ステップＳ２５：ＮＯ）、タイミング信号の読み込みが繰り返し実行される。
【００４１】
そして、タイミング信号の立ち上がりが検出されると（ステップＳ２５：ＹＥＳ）、シフトレジスタ４１の記憶データD1〜D4がそれぞれ、D1→D2、D2→D3、D3→D4とシフトされ（ステップＳ２７）、記憶データD1にはフィルタ処理前のエンコーダ信号が読み込まれてセットされる（ステップＳ２９）。
【００４２】
ついで、上記処理の結果、シフトレジスタ４１の記憶データD1〜D4が全て「H」となる場合には（ステップＳ３１：ＹＥＳ）、J-Kフリップフロップ回路４４のJ入力とK入力とに入力される信号の組み合わせは(H,L)となり、フィルタ処理後のエンコーダ出力Qoutは「H」がセットされ、出力される（ステップＳ３３）。
また、シフトレジスタ４１の記憶データD1〜D4が全て「H」とならない場合には（ステップＳ３１：ＮＯ）、記憶データD1〜D4が全て「L」となるか判定が行われ、全て「L」の場合には（ステップＳ３５：YES）、J-Kフリップフロップ回路４４のJ入力とK入力とに入力される信号の組み合わせは(L,H)となり、フィルタ処理後のエンコーダ出力Qoutは「L」がセットされ、出力される（ステップＳ３７）。
【００４３】
また、シフトレジスタ４１の記憶データD1〜D4が一部不一致の場合には（ステップＳ３５：ＮＯ）、J-Kフリップフロップ回路４４のJ入力とK入力とに入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutがそのまま維持される。
【００４４】
（フィルタ処理部：ノイズ除去の原理）
次に、フィルタ処理前のエンコーダ信号にタイミング信号の四分の一の周波数より高い周波数のノイズＮ（タイミング信号の波長四つ分より小さい波長のノイズ）が入った場合に当該ノイズＮを除去する工程について図８及び図９に基づいて説明する。なお、図８に示されているように、フィルタ処理前のエンコーダ信号が入力されてからシフトレジスタ４１の各記憶部の記憶データD1〜D4に反映されるまでにタイミング信号の一周期分の遅れがあり、各記憶部の記憶データD1〜D4が入力されてからJ-Kフリップフロップ回路４４が出力するフィルタ処理後のエンコーダ信号に反映されるまでにタイミング信号の一周期分の遅れがある。
【００４５】
図８の区間ａでは、前述したように、シフトレジスタ４１の記憶データD1〜D4は全て「L」にセットされている。従って、J-Kフリップフロップ回路４４のJ-K入力に入力される信号の組み合わせは(L,H)となり、前回のフィルタ処理後のエンコーダ出力Qoutに拘らず、今回のフィルタ処理後のエンコーダ出力Qoutは「L」となる。
【００４６】
ついで、図８の区間ｂでは、「H」のフィルタ処理前のエンコーダ信号の入力によって、シフトレジスタ４１の記憶データD1〜D4は順番に「H」に書き換えられるが、記憶データD4が「H」となるまでは、記憶データD1〜D4が不一致であるため、J-Kフリップフロップ回路４４のJ-K入力に入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持して、今回のフィルタ処理後のエンコーダ出力Qoutも「L」となる。
【００４７】
図８の区間ｃでは、「H」のフィルタ処理前のエンコーダ信号の入力によって、シフトレジスタ４１の記憶データD1〜D4は全て「H」に書き換えられ、J-Kフリップフロップ回路４４のJ-K入力に入力される信号の組み合わせは(H,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutに拘らず、今回のフィルタ処理後のエンコーダ出力Qoutは「H」となる。
【００４８】
図８の区間ｄでは、「H」のフィルタ処理前のエンコーダ信号にノイズＮが入り、シフトレジスタ４１の記憶データD1〜D4の一部が「L」に書き換えられる。この時、ノイズＮはタイミング信号の四分の一の周波数より高い周波数であることから、記憶データD1〜D4の全てが「L」に書き換えられる全一致状態は発生せず、このため、ノイズがシフトレジスタ４１に読み込まれている区間ｄでは、J-Kフリップフロップ回路４４のJ-K入力に入力される信号の組み合わせは常に(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持して、今回のフィルタ処理後のエンコーダ出力Qoutは「H」となる。
る。
従って、フィルタ処理前のエンコーダ信号にノイズＮが入った場合でも、フィルタ処理後のエンコーダ信号は「H」を維持し続け、ノイズの影響は除去される。
なお、図８ではフィルタ処理前のエンコーダ信号が「H」であって、「L」のノイズが入った場合を例示したが、フィルタ処理前のエンコーダ信号が「L」であって、「H」のノイズが入った場合でも、J-Kフリップフロップ回路４４のJ-K入力に入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持するので、フィルタ処理後のエンコーダ信号は「L」の状態が維持され、ノイズの影響は除去される。
【００４９】
その後、図８の区間ｅでは、「L」のフィルタ処理前のエンコーダ信号の入力によって、シフトレジスタ４１の記憶データD1〜D4は順番に「L」に書き換えられるが、記憶データD4が「L」となるまでは、記憶データD1〜D4が不一致であるため、J-Kフリップフロップ回路４４のJ-K入力に入力される信号の組み合わせは(L,L)となり、前回のフィルタ処理後のエンコーダ出力Qoutを維持して、今回のフィルタ処理後のエンコーダ出力Qoutも「H」となる。
【００５０】
そして、図８の区間ｆでは、シフトレジスタ４１の記憶データD1〜D4は全て「L」に書き換えられ、J-Kフリップフロップ回路４４のJ-K入力に入力される信号の組み合わせは(L,H)となり、前回のフィルタ処理後のエンコーダ出力Qoutに拘らず、今回のフィルタ処理後のエンコーダ出力Qoutは「L」となる。
このように、タイミング信号の四分の一の周波数より高い周波数のノイズＮがフィルタ処理前のエンコーダ信号に入った場合でも、フィルタ処理後のエンコーダ信号にはノイズＮを除去することが可能である。
すなわち、フィルタ処理部４０は、タイミング信号発生部３０からのタイミング信号の周期で、エンコーダ１０５の検出信号を複数の記憶部（D1〜D4に対応する）に推移させるシフトレジスタ４１と、
シフトレジスタ４１の複数の記憶部の記憶データ（D1〜D4）が全て一致する場合にのみ、エンコーダの検出信号の検出値の変化を反映して出力するフリップフロップ回路４４とを備えている。
【００５１】
（実施例）
エンコーダ信号フィルタ装置としての制御装置９０の各種パラメータ等について具体的な数値を例示した実施例について説明する。なお、以下の具体数値は、制御装置９０の各構成による処理内容を明確に説明するための例示であって、以下の例示の数値に発明の内容が限定されるものではない。
【００５２】
ＣＰＵ９１が出力するクロック信号の周波数fclk＝10MHz、ステッピングモータ1回転あたりの指令パルス数＝1000パルス、モータ1回転あたりのエンコーダパルス数=500パルス、フィルタ調整ゲインA＝1.2、２進カウンタ３１の段数m＝10、シフトレジスタ４１の段数B=4の場合における信号処理装置５０の動作を説明する。
【００５３】
まず、速度検出部２０に速度指令のパルス信号が入力され、そのパルス周波数fp=10kHzの場合、式（１）の処理を行い、エンコーダパルス信号の周波数fe＝10kHz×500ハ゜ルス／1000ハ゜ルス＝5kHzが算出される。
次に、式（２）により、フィルタ遮断周波数fcut＝5kHz×1.2=6kHz  が決定する。タイミング信号発生部では、２進カウンタ３１の出力段nを式（３）より求める。
n=log2［10000k／（6k×4）］≒8．7
nは小数点以下切捨てなので、n＝8となる。
【００５４】
前述したように、fclk＝10[MHz]としている。従って、n段目のカウント出力Qnの周波数はfn＝fclk／2n［Hz］となる。これにn＝8を代入すると、fn＝10MHz／（28）≒39kHzとなる。この周波数39kHzのパルスがタイミング信号としてフィルタ処理部４０に入力される。
【００５５】
フィルタ処理部４０では、図８で前述したように、タイミング信号が4パルス連続してエンコーダ信号が同じレベルでない限り、フィルタ出力は変化しない。従ってタイミング信号周波数fn／4＝39kHz／4＝9.75［kHz］以上の周波数の信号はノイズとしてフィルタ処理されることになる。ノイズ源となるモータ電流パルスの周波数が10kHzであることから、モータ電流パルスに基づくノイズを除去することが可能である。
【００５６】
上記の数値例では、電流指令パルスfpが10kHzである場合について例示したが、モータ速度が変化した時についてさらに図１１に示す。
ステッピングモータ１０４が減速して、ノイズ源となるモータ電流パルス周波数が下がった場合、その変化に応じて、遮断周波数fcutも下げる必要がある。信号処理装置５０では、図１１に示すように、遮断周波数fcutはエンコーダ信号周波数feより常に高い周波数になるように算出するので、エンコーダ信号の変化には影響を与えない。このように遮断周波数fcutを高速回転時は高く、低速時は低く設定することで、ノイズを効率的に除去することができる。
【００５７】
（モータ制御装置の技術的な効果）
エンコーダ信号フィルタ装置としてのモータ制御装置９０は、速度検出部２０が、ノイズとしてエンコーダ信号から除去すべき信号の周波数である遮断周波数をステッピングモータ１０４の速度指令から算出し、フィルタ処理部４０が、遮断周波数に基づくタイミング信号によりエンコーダ信号のノイズを除去することから、ステッピングモータ１０４の回転速度の変動に伴いノイズの周波数も変動する場合であっても、遮断周波数もステッピングモータ１０４の回転速度に合わせて変動させることができ、エンコーダ信号からノイズを適宜識別して除去することが可能である。
このため、モータ制御装置９０は、ステッピングモータ１０４の低速域でもエンコーダ信号のノイズを除去することが可能となり、当該モータ制御装置９０により、ステッピングモータ１０４の動作速度に拘らず、安定的に高精度なステッピングモータ１０４の位置（軸角度）検出を行うことが可能となる。
【００５８】
また、モータ制御装置９０は、フィルタ処理部４０を、シフトレジスタ４１、フリップフロップ回路４４、その他ＡＮＤ回路４２，４３のような二値を取り扱う論理回路で構成するため、処理の高速化を容易に実現することが可能となる。
【００５９】
さらに、モータ制御装置９０の信号処理装置５０は、ＰＬＤで構成されるため、モータ制御装置９０が制御を行うステッピングモータ１０４や軸角度の検出を行うエンコーダ１０５が仕様の異なるものに交換された場合でも、ステッピングモータ１０４やエンコーダ１０５に関する各種のパラメータの値を変更したり、最適な遮断周波数を求めるための係数などを変更することが、信号処理装置５０内のＰＬＤのソフトウェアの変更により行うことが可能であることから、ハードウェアを交換することなく、最適なステッピングモータ制御を行うことが可能である。
上記実施形態では、フィルタ調整ゲインＡを一定値として、速度指令に比例して遮断周波数を算出していた。これに代えて、速度領域毎にフィルタ調整ゲインＡを設定することも容易に考えられる。また、速度領域とフィルタ調整ゲインＡとのデータテーブルから遮断周波数を決定すると等種々変更可能である。
【符号の説明】
【００６０】
２０  速度検出部
３０  タイミング信号発生部
３１  ２進カウンタ
３２  カウンタ段数指定部
３３１〜３３ｍ  ＡＮＤ回路
３４  ＯＲ回路
４０  フィルタ処理部
４１  シフトレジスタ
４２  第一のＡＮＤ回路
４３  第二のＡＮＤ回路
４４  フリップフロップ回路
５０  信号処理装置装置
９０  モータ制御装置（エンコーダ信号フィルタ装置）
９１  ＣＰＵ（制御手段）
１００  電子サイクルミシン
１０４  ステッピングモータ
１０５  エンコーダ
【図１】
2012186897.tif 000003
【図２】
2012186897.tif 000004
【図３】
2012186897.tif 000005
【図４】
2012186897.tif 000006
【図５】
2012186897.tif 000007
【図６】
2012186897.tif 000008
【図７】
2012186897.tif 000009
【図８】
2012186897.tif 000010
【図９】
2012186897.tif 000011
【図１０】
2012186897.tif 000012
【図１１】
2012186897.tif 000013