(57)【要約】【課題】位置データが不連続に変化した場合でも、位置制御に影響を及ぼさないようにフィルタリングできるデジタルフィルタ回路を提供する。【解決手段】ロボットアームの回転軸の位置制御に使用するため、ロータリエンコーダ２が出力する位置データをフィルタリングするもので、単位ステップ入力ｕ（ｚ）＝ｚ／（ｚ−１）に対する応答が「１」に収束する特性を有するデジタルフィルタ４について、伝達関数をｚ変換したものをＦ（ｚ）とすると、Ｇ（ｚ）＝１−Ｆ（ｚ）で表した関数を、Ｇ（ｚ）＝｛（ｚ−１）／ｚ｝・Ｈ（ｚ）に因数分解した形式で表し、入力ｕに対する出力ｙを（７）式で示される演算形式で構成する。【選択図】図１
2014155046.tif 000002
【特許請求の範囲】
【請求項１】
生産機器の位置制御に使用するため、位置データをフィルタリングするもので、単位ステップ入力ｕ（ｚ）＝ｚ／（ｚ−１）に対する応答が「１」に収束する特性を有するデジタルフィルタ回路であって、
前記フィルタ回路の伝達関数をｚ変換したものをＦ（ｚ）とすると、
Ｇ（ｚ）＝１−Ｆ（ｚ）で表した関数を、
Ｇ（ｚ）＝｛（ｚ−１）／ｚ｝・Ｈ（ｚ）
に因数分解した形式で表し、入力ｕに対する出力ｙが、
ｙ＝ｕ−ｕ（１−ｚ-1）・Ｈ（ｚ）
となる演算形式で構成したことを特徴とするデジタルフィルタ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置信号に含まれるノイズを除去するデジタルフィルタ回路に関する。
【背景技術】
【０００２】
信号に含まれるノイズを除去したり、機械的な共振の影響を排除するため、ローパスフィルタやノッチフィルタをデジタル演算により実現するデジタルフィルタ回路が用いられる。例えば、生産機器の一種であるロボットについては、アームの関節を構成する回転軸の位置を検出するためにロータリエンコーダが使用される。しかし、ロータリエンコーダが出力する位置データにもノイズが含まれることがあるので、そのノイズをデジタルフィルタ回路により除去して制御回路に入力することがある。例えば、特許文献１には、その一例が開示されている（但し、エンコーダの２相信号に対してデジタルフィルタを作用させている）。
【特許文献１】特開２０１１−１８００７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ここで、ロータリエンコーダは、回転範囲について機械的な制限がある前提で回転量を検出するものや、無限に回転する状態で速度制御に使用されるものがある。例えば多関節型ロボットの関節角度を検出する場合、水平４軸型の第４軸や、垂直６軸型の第６軸などの所謂フランジ軸については機械的な制限がなく無限回転が可能な構造となっている。
そして、軸の回転方向について正負の極性を設ける場合、ロータリエンコーダが出力する位置データには一般に２の補数表現を用いる。例えば８ビットデータであれば、正側の値域が１〜１２７，負側の値域が−１〜−１２８をとる。したがって、正側の回転位置が７ＦＨ（＝１２７）より１ステップ増えると８０Ｈ（＝−１２８）に変化して、位置データが不連続になる。
【０００４】
すなわち、図６に示すように、回転軸；ロータリエンコーダが一方向に回転し続けると、データ値が正方向に増加して最大値１２７に達した後、−１２８に飛んでから正方向に増加する。この時、データ値が極性を跨いでから暫くの間は、デジタルフィルタの作用により、データ値が１２７から−１２８の間で変化する意味が無い位置データが出力されてしまう。すると、これらの意味が無い位置データにより位置制御が正常に行われなくなるという問題がある。
【０００５】
本発明は、上記事情に鑑みてなされたもので、その目的は、位置データが不連続に変化した場合でも、位置制御に影響を及ぼさないようにフィルタリングできるデジタルフィルタ回路を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のデジタルフィルタ回路は、単位ステップ入力ｕ（ｚ）＝ｚ／（ｚ−１）に対する応答が「１」に収束する特性を有することを前提とする。これは、フィルタ回路の出力値が、最終的に入力値と同じ値に収束することを意味する。そして、フィルタ回路の伝達関数をｚ変換したものをＦ（ｚ）とすると、関数Ｇ（ｚ）を｛１−Ｆ（ｚ）｝とする。すなわち、入力値よりＧ（ｚ）を減算した結果がＦ（ｚ）と等価になる。
【０００７】
ここで、関数Ｆ（ｚ）についての上記の特性は、最終値の定理を用いると、ｚ→１の極限において関数Ｆ（ｚ）の値が「１」になることに等しい。したがって、関数Ｇ（ｚ）についてｚ→１の極限を求めれば「０」になる。つまり、Ｇ（１）＝０であるから、因数定理により関数Ｇ（ｚ）はｚ＝１にゼロ点を持つことになり、下記のように因数分解することが可能である。
Ｇ（ｚ）＝｛（ｚ−１）／ｚ｝・Ｈ（ｚ）    …（ａ）
右辺の第１項は、（１−ｚ-1）であるから、入力を位置データｕとすると、ｕに対して下記の形をとる関数ｙは、関数Ｆ（ｚ）と等価になる。
ｙ＝ｕ−ｕ（１−ｚ-1）・Ｈ（ｚ）          …（ｂ）
（１−ｚ-1）の項は、現在の入力値ｕと１つ（１サンプル）前の入力値ｕ・ｚ-1との差を出力するフィルタとなっている。したがって、そのフィルタ出力をｖとすれば、出力ｖは速度になる。先に図６で位置データが不連続になる状態を示したが、位置データが不連続であっても、速度（単位時間当たりの位置変化量）は連続となる。例えば、位置データ７ＥＨ（１２６）から単位時間経過後に８０Ｈ（−１２８）に変化しても、移動量は８０Ｈ−７ＥＨ＝２Ｈである。
すなわち、位置データが不連続に変化しても、速度の変化としては連続性がある。したがって、（ｂ）式で実現されるデジタルフィルタ回路は、図６に示したような挙動をすることなく、位置制御に影響を与えないようにフィルタリングすることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態であり、デジタルフィルタの構成を変換する手法を説明する図
【図２】変換したデジタルフィルタの特性を示す図
【図３】ロボットコントローラの構成を示す機能ブロック図
【図４】第２実施形態を示す図３相当図
【図５】第３実施形態を示す図３相当図
【図６】従来のデジタルフィルタの特性を示す図
【発明を実施するための形態】
【０００９】
（第１実施形態）
以下、第１実施形態について図１から図３を参照して説明する。図３は、産業機器たるロボットを制御するコントローラであり、ロボットのアームを構成する関節を制御する機能部分を中心に示す機能ブロック図である。上記関節を成すモータ１の図示しないロータ部分には、ロータリエンコーダ２が配置されている。ロータリエンコーダ２は、上記ロータの回転に伴って生成される２相パルス信号のエッジ入力数をアップダウンカウンタによりカウントして、位置信号をデジタルデータとして出力する。そして、前記位置信号は、ロボットコントローラ３に入力される。
【００１０】
モータ１を含んで構成されるロボットアームは、例えば上述したような、水平４軸型の第４軸や、垂直６軸型の第６軸などであり、機械的な制限がなく無限回転が可能な構造である。そして、関節軸の回転方向について正負の極性が設けられており、ロータリエンコーダ２が出力する位置データには２の補数表現が用いられている。
【００１１】
ロボットコントローラ３に内蔵されるデジタルフィルタ４（デジタルフィルタ回路）は、ローパスフィルタとして構成され、ロータリエンコーダ２が出力する位置信号に含まれるノイズを除去して、減算器５及び差分器６に出力する。減算器５は、位置指令生成部７より入力される位置指令よりエンコーダ位置信号を減算した位置偏差を、位置制御部８に出力する。位置制御部８は、上記位置偏差に基づいて演算を行い、速度指令を生成出力する。
【００１２】
位置制御部８の出力側には減算器９が配置されている。差分器６は、デジタルフィルタ４より出力される位置データの、今回の値と前回（１サンプル前）の値との差分をとって減算器９に出力する。減算器９は、速度指令より位置データの差分を減算した速度偏差を速度制御部１０に出力する。速度制御部１０は、上記速度偏差に基づいて演算を行い、電流指令を生成すると、次段の電流制御部１１に出力する。電流制御部１１は、インバータ回路等の駆動回路を含んでおり、電流指令に基づいたＰＷＭ信号を生成すると、ＰＷＭ信号により駆動用電源をスイッチングして交流電流を生成し、モータ１の各相固定子巻線に出力する。
【００１３】
次に、本実施形態におけるデジタルフィルタ４の構成について図１及び図２を参照して説明する。デジタルフィルタ４の周波数特性をｚ変換により表現したものをＦ（ｚ）とする。すなわち、図１（ａ）に示すように、
ｙ＝Ｆ（ｚ）・ｕ          …（１）
となる。ここで、
Ｇ（ｚ）＝１−Ｆ（ｚ）    …（２）
で表されるフィルタＧ（ｚ）を用いて図１（ａ）と同じフィルタを構成すると、図１（ｂ）に示すようになる。
【００１４】
また、本実施形態のフィルタＦ（ｚ）の特性については、単位ステップ入力ｕをｚ変換で表現したものをｕ（ｚ）とすると、
ｕ（ｚ）＝ｚ／（ｚ−１）  …（３）
ｕ（ｚ）に対する応答が「１」に収束する特性を有することを前提とする。これは、フィルタへの入力が一定値ａであれば、フィルタの出力は時間の経過と共に値ａに収束することを意味する。すなわち、ノイズを除去したり、機械的な共振の影響を除去する目的でフィルタを使用する場合、ノイズや振動がない状況下では、フィルタの出力値が入力値に一致することが必要だからである。
【００１５】
（３）式について最終値の定理を用いると、以下のように表される。
【数１】
2014155046.tif 000003
ここで、変形したフィルタＧ（ｚ）についてｚ→１の極限を求めると、以下のようになる。
【数２】
2014155046.tif 000004
すなわち、Ｇ（１）＝０であるから、関数Ｇ（ｚ）はｚ＝１にゼロ点を有している。したがって、関数Ｇ（ｚ）は、以下のように因数分解することが可能である。
【数３】
2014155046.tif 000005
つまり（６）式は、図１（ｂ）に示すフィルタは、図１（ｃ）に示す構成のフィルタと等価であることを示している。
【００１６】
また、図１（ｃ）に示すフィルタは（７）式で表される。
ｙ＝ｕ−ｕ（１−ｚ-1）・Ｈ（ｚ）      …（７）
したがって、図１（ｃ）に示すフィルタは、図１（ｄ）に示すように構成される。つまり、デジタルフィルタ４においては、入力信号ｕが減算器１２及び１３と遅延器１４とに与えられ、減算器１３は、入力信号ｕより１単位時間の遅延器１４の出力を減算した値を出力する。その減算結果には、乗算器１５において因数分解された項Ｈ（ｚ）が係数として乗じられ、減算器１２では、入力信号ｕより乗算器１５の出力を減算した値を、出力信号ｙとして出力する。
【００１７】
ここで、デジタルフィルタ４において、（ｚ−１）を演算要素とせず、
（ｚ−１）／ｚ＝１−ｚ-1
を演算要素としているのは、当該演算要素をプロパー化するためである。つまり、演算要素（ｚ−１）の場合は、１単位時間先の入力値と現在の入力値との差を求めることになり、実質的に利用できない。そのため、全体を１単位時間だけ遅延させて（ｚ−１）／ｚとすることで、現在の入力値と１単位時間前の入力との差を求める演算要素を構成している。
【００１８】
また、入力信号ｕは位置信号であるから、演算要素（ｚ−１）／ｚを経た出力信号ｖは速度になる。そして、位置が不連続であっても速度は連続となる。例えば、前述の例において、位置データ７ＥＨ（１２６）から単位時間経過後に８０Ｈ（−１２８）に変化しても、移動量は８０Ｈ−７ＥＨ＝２Ｈである。したがって、速度ｖが入力されるフィルタＨ（ｚ）は、設計通りに機能する。
【００１９】
つまり、デジタルフィルタ４は、フィルタＦ（ｚ）をＧ（ｚ）に変換し、微分項（ｚ−１）／ｚを因数分解した形式で構成することで、位置ｕに対して作用するフィルタを、計算誤差が発生した場合にその誤差が累積されてしまう積分項を用いることなく速度ｖに対して作用するフィルタＨ（ｚ）に変換したものと言える。その結果、図２に示すように、デジタルフィルタ４の挙動は位置信号が不連続となった場合でも、その不連続に変化する間の値であり制御に使用できない過渡値を出力しない特性となる。
【００２０】
＜変換の具体例＞
ここで一例として、次式で与えられる遮断周波数ωｍの１次ローパスフィルタＦLPF（ｓ）について、上記の手法を適用した場合を説明する。
【数４】
2014155046.tif 000006
（８）式を、サンプリング周波数Ｔｓで双一次変換して離散化すると、次式となる。
【数５】
2014155046.tif 000007
（９）式について、ｚ→１の極限を求めると、
【数６】
2014155046.tif 000008
となるから、単位ステップ応答が「１」に収束することが分かる。
【００２１】
そして、デジタルフィルタＦLPF（ｚ）を変形したフィルタＧLPF（ｚ）については、以下のように微分項（ｚ−１）／ｚを因数として分解できる。
【数７】
2014155046.tif 000009
＜本実施形態の手法で変換できない具体例＞
次の式で与えられる遮断周波数ωｎの１次ハイパスフィルタＦHPF（ｓ）について、上記の手法を適用してみる。
【数８】
2014155046.tif 000010
（１３）式を、サンプリング周波数Ｔｓで双一次変換して離散化すると、次式となる。
【数９】
2014155046.tif 000011
（１４）式について、ｚ→１の極限を求めると、
【数１０】
2014155046.tif 000012
となるから、単位ステップ応答が「１」に収束しないことが分かる。
【００２２】
したがって、デジタルフィルタＦHPF（ｚ）を変形したフィルタＧHPF（ｚ）については、以下に示すように、微分項（ｚ−１）／ｚを因数として分解できない。
【数１１】
2014155046.tif 000013
【００２３】
以上のように本実施形態によれば、ロボットアームの回転軸の位置制御に使用するため、ロータリエンコーダ２が出力する位置データをフィルタリングするもので、単位ステップ入力ｕ（ｚ）＝ｚ／（ｚ−１）に対する応答が「１」に収束する特性を有するデジタルフィルタ４について、伝達関数をｚ変換したものをＦ（ｚ）とすると、
Ｇ（ｚ）＝１−Ｆ（ｚ）で表した関数を、Ｇ（ｚ）＝｛（ｚ−１）／ｚ｝・Ｈ（ｚ）
に因数分解した形式で表し、入力ｕに対する出力ｙを（７）式で示される演算形式で構成した。これにより、位置データｕが不連続に変化しても、速度ｖの変化は連続性があることから、（７）式で実現されるデジタルフィルタ４は、図６に示したような挙動をすることなく、位置制御に影響を与えないようにフィルタリングすることが可能となる。
【００２４】
（第２実施形態）
図４は第２実施形態を示す図３相当図であり、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図４に示すロボットコントローラ２１では、位置指令生成部７と減算器５との間に、デジタルフィルタ２２（デジタルフィルタ回路）を挿入した構成である。デジタルフィルタ２２は、ノッチフィルタとしての特性を有する伝達関数を、デジタルフィルタ４と同様に、微分項（ｚ−１）／ｚを因数として分解した演算形式で構成したものである。
【００２５】
例えば、ロボットアームのエンドエフェクタの振動を抑えたいという場合に、位置指令生成部７の出力側にノッチフィルタを配置することで、動作帯域よりも低い振動周波数を除去し、共振を防止する手法がとられる。したがって、以上のように構成される第２実施形態によれば、機械的な共振を防止する目的で、位置指令生成部７の出力側に配置されるデジタルフィルタ２２についても、第１実施形態と同様の効果が得られる。
【００２６】
（第３実施形態）
図５は第３実施形態を示す図３相当図であり、第２実施形態と異なる部分のみ説明する。図５に示すロボットコントローラ３１では、第２実施形態のコントローラ２１より、ロータリエンコーダ２の出力側に配置されていたデジタルフィルタ４を除去したものである。すなわち、第２実施形態で説明したように、位置指令生成部７の出力側にデジタルフィルタ２２を配置して機械的な共振を防止することのみを目的とする場合は、第３実施形態の構成を採用すれば良い。
【００２７】
本発明は、上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
ロボットコントローラに限ることなく、その他工作機械等の産業機器について位置制御を行う場合に使用されるデジタルフィルタ回路であれば適用が可能である。
【符号の説明】
【００２８】
２はロータリエンコーダ、３はロボットコントローラ、４はデジタルフィルタ（デジタルフィルタ回路）、２１はロボットコントローラ、２２はデジタルフィルタ（デジタルフィルタ回路）、３１はロボットコントローラを示す。
【図１】
2014155046.tif 000014
【図２】
2014155046.tif 000015
【図３】
2014155046.tif 000016
【図４】
2014155046.tif 000017
【図５】
2014155046.tif 000018
【図６】
2014155046.tif 000019