説明

制御指令値生成プログラム、制御指令値生成方法および制御指令値生成装置

【課題】 一の入力指令値から複数の制御指令値を高精度かつ安定的に生成するとともにその際の演算負荷を低減することができる制御指令値生成プログラム、制御指令値生成方法および制御指令値生成装置を提供する。
【解決手段】 コンピュータを、所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタとして機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットなどの指令値および加加速度指令値などを生成する制御指令値生成プログラム、制御指令値生成方法および制御指令値生成装置に関する。
【背景技術】
【0002】
一般的に、産業ロボット等として用いられるロボットは、1体のロボットに複数のモータが設けられた多軸のロボットとして構成されている。このようなロボットの制御においては、各軸の位置指令値に基づいてその軸の速度、加速度、加加速度などの制御指令値を求めて制御することが知られている。一般的に、ロボット制御においてはデジタル制御を行うため、制御指令値が離散的な値となる。したがって、制御指令生成周期がモータ制御周期に比べて大きいと、制御指令生成周期ごとに生成される位置指令値が大きく変化してしまう。位置指令値が大きく変化すると、速度、加速度、加加速度などの変化が急激になりサージが発生する場合がある。そこで、位置指令値を微分して速度などの制御指令値を生成するとともに位置指令値の変化を滑らかにすることができるデジタルフィルタを適用することが知られている(例えば特許文献1参照)。特許文献1においては、位置指令値から位置、速度、加速度の各制御指令値を求めるために、1次フィルタを複数入れ子状にしたようなデジタルフィルタが設けられている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−164680号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記のようなデジタルフィルタでは、前回の演算で求められた速度、位置の各制御指令値の微分値を演算することで、加速度、速度の各制御指令値を生成しており、各制御指令値が小さくならない場合がある。生成される制御指令値の変化を連続系に近い形で実現できるデジタルフィルタとしては、IIR(無限インパルス応答)フィルタが考えられるが、フィルタの次数を高くするほど、および/または、演算周期を短くするほど、演算誤差が大きくなり、特に高次の微分の出力が振動的になる問題がある。例えば位置指令値から加加速度に関する制御指令値を演算するために、3次のIIRフィルタを適用するとすると、連続系の伝達関数H(s)は、以下のように表される。
【0005】
【数1】

【0006】
ここで、a〜aは入力側における各次数のフィルタ係数を示し、b〜bは出力側における各次数のフィルタ係数を示す。
【0007】
これを離散化するために、双一次変換を行って、上記伝達関数H(s)を以下に示す離散的な伝達関数H(z)に変換する。
【0008】
【数2】

【0009】
ここで、P〜Pは変換後の入力側における各次数のフィルタ係数を示し、q〜qは変換後の出力側における各次数のフィルタ係数を示し、Tはサンプリング周期を示す。
【0010】
このように、双一次変換において連続系の変数(ラプラス変数)sを離散系の変数zに変換する際に、サンプリング周期Tが用いられるため、離散化された伝達関数H(z)におけるn次のフィルタ係数には、サンプリング周期Tのn乗が乗算されることになる。したがって、各制御指令値の精度を高めるためにサンプリング周期を短くすると、高次のフィルタ係数(上記式においてはpやq)が指数関数的に小さくなり、結果として出力される制御指令値が振動的になり誤差が大きくなる。前述したように制御指令値の変化を小さく抑えるためには、できるだけサンプリング周期は短い方がよいが、サンプリング周期を短くすると制御指令値の誤差が大きくなってしまい、ロボット制御にうまく適用できない問題がある。
【0011】
また、上記従来のデジタルフィルタにおいては、一の入力指令値(位置指令値)から複数の制御指令値(速度、加速度、加加速度など)を演算する場合には、1つずつ制御指令値を演算する必要があるため、演算負荷が増大する問題もある。
【0012】
本発明は、以上のような課題を解決すべくなされたものであり、一の入力指令値から複数の制御指令値を高精度かつ安定的に生成するとともにその際の演算負荷を低減することができる制御指令値生成プログラム、制御指令値生成方法および制御指令値生成装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明に係る制御指令値生成プログラムは、コンピュータを、所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタとして機能させるものである。
【0014】
上記プログラムによれば、生成される制御指令値の連続系の伝達関数に対応する離散的な状態方程式を用いることにより、連続系の伝達関数を誤差なく離散化できるため、制御指令値を高精度かつ安定的に生成することができる。さらに、生成される制御指令値が入力指令値のn階までの微分であることより、各制御指令値の連続系の伝達関数が互いに共通の分母を有する。このため、連続系の伝達関数から状態方程式への当てはめを行う際に、全ての制御指令値が1組の状態方程式で表せる。したがって、上記プログラムによれば、一の入力指令値から複数の制御指令値を高精度かつ安定的に生成するとともにその際の演算負荷を低減することができる。
【0015】
前記所定の入力指令値は、制御対象の位置指令値であり、前記デジタルフィルタは、前記位置指令値から当該位置指令値の3階までの微分で表せる、位置指令値、速度指令値、加速度指令値および加加速度指令値の4つの制御指令値を生成する3次のデジタルフィルタであってもよい。
【0016】
前記入力指令値の伝達関数G(s)を以下の式(1)で表したとき、前記入力指令値を1〜n階微分した制御指令値G(s)〜G(s)は、以下の式(2)で示され、前記n次のデジタルフィルタの状態方程式は、入力uに対する出力をyとして以下の式(3)で示されるものでもよい。
【0017】
【数3】






【数4】

【0018】
生成される制御指令値が入力指令値のn階微分であることより、各制御指令値の連続系の伝達関数が互いに共通の分母を有するため、状態方程式におけるA行列をすべての制御指令値に対して共通化することができる。また、各制御指令値の連続系の伝達関数の分子に対応するC行列は各制御指令値の連続系の分子を示す1×n行列をn+1個並べて(n+1)×n行列とすることにより、1つの状態方程式で表すことができる。ここで、入力指令値のn階微分で表される制御指令値における連続系の伝達関数は、分母と分子との次数が同じになるため、そのままでは状態方程式に当てはめることができない。しかし、式(2)のG(s)に示すように、当該制御指令値における連続系の伝達関数における分子のn次の項を分数表記の外へ出すように変形することにより、分数表記において分母より分子の次数を少なくして、A〜C行列をその他の制御指令値と同様に適用することができる。さらに、n次の項については別途D行列として加えることにより状態方程式として表現可能である。これにより、1組の行列の組み合せで、n+1個の制御指令値を生成する状態方程式とすることができる。
【0019】
本発明に係る制御指令値生成方法は、所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタを前記入力指令値に適用することにより、前記n+1個の制御指令値を生成するものである。
【0020】
また、本発明に係る制御指令値生成装置は、所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタを備えている。
【発明の効果】
【0021】
本発明は以上に説明したように構成され、一の入力指令値から複数の制御指令値を高精度かつ安定的に生成するとともにその際の演算負荷を低減することができるという効果を奏する。
【図面の簡単な説明】
【0022】
【図1】本発明の一実施形態に係る制御指令値生成装置が適用されたロボット制御システムの概略構成を示すブロック図である。
【図2】本発明の一実施形態に係る制御指令値生成装置において演算されるシステムを示すブロック線図である。
【図3】本実施例の制御指令値生成プログラムに基づく3次のデジタルフィルタに、入力指令値としてステップ入力を入力した場合の各制御指令値の応答結果を比較例とともに示すグラフである。
【図4】図3に示す加速度指令値および加加速度指令値を部分的に拡大したグラフである。
【発明を実施するための形態】
【0023】
以下、本発明の実施の形態を、図面を参照しながら説明する。なお、以下では全ての図を通じて同一または相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【0024】
まず、本発明の一実施形態に係る制御指令値生成装置が適用されたロボット制御システムの概略構成について説明する。図1は、本発明の一実施形態に係る制御指令値生成装置が適用されたロボット制御システムの概略構成を示すブロック図である。
【0025】
図1に示されるように、本実施形態のロボット制御システムは、多軸のロボットの各軸に設けられるサーボモータを制御してロボットの位置制御を行うロボット制御装置2を有している。また、ロボット制御システムは、このロボット制御装置2への制御指令値を生成する制御指令値生成装置1を備えている。なお、制御指令値生成装置1とロボット制御装置2とは、シリアル接続されていてもよいし、有線または無線による通信ネットワークにより接続されていてもよい。また、ロボット制御装置2の内部に(ロボット制御装置2と一体化して)制御指令値生成装置1が設けられてもよい。また、ロボット制御装置2と制御指令値生成装置1とは完全に分離していてもよい。すなわち、制御指令値生成装置1で生成された制御指令値をロボット制御装置2に手入力などで入力することとしてもよい。
【0026】
制御指令値生成装置1は、一般的なコンピュータで構成され、入力指令値が入力される入力部11と、入力部11によって入力された入力指令値に基づいて制御指令値を生成する演算部12と、演算部12の演算に用いられる各種データおよび制御指令値生成プログラムを記憶する記憶部13とを備えている。制御指令値生成装置1の各構成は、バス14を介して電気的に接続され、演算部12で演算された制御指令値をバス14を介してロボット制御装置1へ出力するよう構成されている。
【0027】
記憶部13に記憶される制御指令値生成プログラムは、制御指令値生成装置1を構成するコンピュータを、所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタとして機能させるようプログラミングされている。
【0028】
次に、本実施形態におけるn次のデジタルフィルタを構成するための概要について説明する。
【0029】
初めに、1つの入力uが入力され、1つの出力yが出力される線形システムにおける状態方程式は、以下のように表せる。
【0030】
【数5】

【0031】
上記式(4)をxの初期条件を0として、ラプラス変換すると、以下のようになる。
【0032】
sX(s)=AX(s)+BU(s)…(5)
Y(s)=CX(s)…(6)
ここで、sはラプラス変数を示す。
【0033】
上記式(5)より、X(s)=(sI−A)−1BU(s)となる(Iは単位行列を示す)ため、これを上記式(6)へ代入すると、Y(s)=C(sI−A)−1BU(s)となる。本線形システムにおける伝達関数G(s)は入力のラプラス変換に対する出力のラプラス変換の比で表される。すなわち、伝達関数は、G(s)=Y(s)/U(s)=C(sI−A)−1Bで表される。
【0034】
ここで、上記状態方程式の各行列を以下のように表したシステムを考える。
【0035】
【数6】

【0036】
このとき、伝達関数G(s)は、以下のように表せる。
【0037】
【数7】

【0038】
本発明の発明者らは、このような状態方程式と伝達関数G(s)との間で変換が可能であることに着目して、鋭意研究の末、本発明を発明したものである。
【0039】
具体例を用いて説明する。本実施形態においては、入力指令値uが、制御対象であるロボットの位置指令値であり、デジタルフィルタは、位置指令値から当該位置指令値の3階までの微分(n=3)で表せる、位置指令値p(0階微分)、速度指令値v(1階微分)、加速度指令値a(2階微分)および加加速度指令値j(3階微分)の4つの制御指令値yを生成する3次のデジタルフィルタである場合を例示する。
【0040】
3次のデジタルフィルタの時定数をTとすると、入力指令値である位置指令値から制御指令値である位置指令値p、速度指令値v、加速度指令値aおよび加加速度指令値jを得るための各伝達関数G(S),G(S),G(S),G(S)は、それぞれ以下のようになる。
【0041】
【数8】

【0042】
上記式(9)に示されるように、各制御指令値yは、入力指令値uである位置指令値から当該位置指令値の3階までの微分で表せるため、各制御指令値yを得るための各伝達関数は、分子における微分演算子(ラプラス変数)sの次数が異なるものとなる。ここで、位置指令値から2階までの微分で表せる位置指令値p(0階微分)、速度指令値v(1階微分)および加速度指令値a(2階微分)については、分子におけるsの次数が分母におけるsの次数より小さいため、そのまま、上記式(8)の伝達関数G(s)の形に変換できる。また、加加速度指令値j(3階微分)については、分子におけるsの次数と分母におけるsの次数とが同じになるため、そのままでは、上記式(8)を適用できない。このため、分子におけるsの最大次数(3次)の項を分数から取り出すことにより、sのある項とない項とに分離した形に変形した上で、sのある項については上記式(8)の伝達関数G(s)の形に変換する。以上より、上記式(9)は以下のように変形できる。
【0043】
【数9】

【0044】
上記式(10)に示されるように、伝達関数G(s),G(s),G(s)の分母を加加速度指令値jを得るための伝達関数G(s)の第2項(sのある項)の分母と共通となるように変形することができる。これにより、上記式(10)に示される各伝達関数を上記式(4),(5)で示される状態方程式にそれぞれ変換した場合に、A行列を共通化することができる。すなわち、上記式(5)で示されるA行列(n=3)における各係数a,a,aは、いずれの伝達関数に対してもa=1/T,a=3/T,a=3/Tとなる。また、B行列には伝達関数による変数は存在しないのでB行列も共通化できる。
【0045】
C行列については、伝達関数G(s)の第2項の分子におけるsの各次数の係数およびその他の伝達関数の分子におけるsの各次数の係数に基づいて伝達関数ごとに1×3行列で表せる。このような各伝達関数ごとのC行列を同じ行列において複数列(4列)に配置して4×3行列を構成することにより、1つのC行列として共通化できる。この際、出力yは4出力となる。
【0046】
さらに、伝達関数G(s)のsのない項については、別途、状態方程式の第2式に定数項を加えるためのD行列を設けることで対応する。D行列は、出力yが4出力(p,v,a,j)であることに合わせて1×4行列とする。
【0047】
以上をまとめると、時定数Tの3次フィルタ(n=3)を用いて入力指令値uである位置指令値から制御指令値yである位置指令値p、速度指令値v、加速度指令値aおよび加加速度指令値jを得るための状態方程式は、以下のように表せる。
【0048】
【数10】

【0049】
図2は、本発明の一実施形態に係る制御指令値生成装置において演算されるシステムを示すブロック線図である。図2に示すように、上記式(11)に示される状態方程式を用いて、1入力(実際には3入力あるが1入力のみを使用する)に対して4出力が得られる3次のデジタルフィルタを構成することができる。
【0050】
これをn次のデジタルフィルタに拡張することも可能である。入力指令値uの伝達関数G(s)を以下の式(12)で表したとき、入力指令値uを1〜n階微分した制御指令値yを求めるための伝達関数G(s)〜G(s)は、以下の式(13)で示され、n次のデジタルフィルタの状態方程式は、入力uに対する出力をyとして以下の式(14)で示される。
【0051】
【数11】





【数12】

【0052】
生成される制御指令値が入力指令値のn階微分であることより、各制御指令値の連続系の伝達関数が互いに共通の分母を有するため、状態方程式におけるA行列をすべての制御指令値に対して共通化することができる。また、各制御指令値の連続系の伝達関数の分子に対応するC行列は各制御指令値の連続系の分子を示す1×n行列をn+1個並べて(n+1)×n行列とすることにより、1つの状態方程式で表すことができる。ここで、入力指令値のn階微分で表される制御指令値における連続系の伝達関数は、分母と分子との次数が同じになるため、そのままでは状態方程式に当てはめることができない。しかし、式(13)のG(s)に示すように、当該制御指令値における連続系の伝達関数における分子のn次の項を分数表記の外へ出すように変形することにより、分数表記において分母より分子の次数を少なくして、A〜C行列をその他の制御指令値と同様に適用することができる。さらに、n次の項については別途D行列として加えることにより状態方程式として表現可能である。これにより、1組の行列の組み合せで、n+1個の制御指令値を生成する状態方程式とすることができる。
【0053】
上記プログラムが実行される制御指令値生成装置1によれば、生成される制御指令値の連続系の伝達関数に対応する離散的な状態方程式を用いることにより、連続系の伝達関数を誤差なく離散化できるため、制御指令値を高精度かつ安定的に生成することができる。さらに、生成される制御指令値が入力指令値のn階までの微分であることより、各制御指令値の連続系の伝達関数が互いに共通の分母を有する。このため、連続系の伝達関数から状態方程式への当てはめを行う際に、全ての制御指令値が1組の状態方程式で表せる。制御指令値生成装置1は、公知の好適なプログラムを用いて1組の状態方程式を一括して演算し、複数の制御指令値を一度に演算することが可能である。したがって、上記制御指令値生成装置1によれば、一の入力指令値から複数の制御指令値を高精度かつ安定的に生成するとともにその際の演算負荷を低減することができる。
【0054】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【0055】
例えば、上記実施形態においては、1つの入力指令値に対して0〜n階微分で表せるすべての制御指令値を求めることとして説明したが、本発明はこれに限られない。例えばn=3の場合において、入力指令値である位置指令値から制御指令値として速度指令値(1階微分)と加加速度指令値(3階微分)のみを得ることとしてもよい。また、例えばn=3の場合において、入力指令値である位置指令値から制御指令値として位置指令値、速度指令値および加速度指令値を得ることとしてもよい。これらの場合には、C行列において対応する行の値をすべて0にすると演算負荷をさらに低減することができる。例えば、入力指令値の0階微分で表される制御指令値および入力指令値の2階微分で表される制御指令値について出力しない場合には上記式(14)において0階微分に対応する行にある係数Cと2階微分に対応する行にある係数Cとをそれぞれ0にすることで演算負荷が低減する。
【0056】
また、入力指令値は位置指令値に限られず、例えば、速度指令値、加速度指令値、加加速度指令値など種々の指令値を適用可能である。
【実施例】
【0057】
上記実施形態の制御指令値生成プログラムに基づく3次のデジタルフィルタを構築し、入力指令値である位置指令値としてステップ入力が入力されたときに出力される位置指令値、速度指令値、加速度指令値、加加速度指令値の応答を解析した。比較例として同じ次数(3次)のIIRフィルタを用いて、同様の解析を行い、実施例と比較した。
【0058】
図3は本実施例の制御指令値生成プログラムに基づく3次のデジタルフィルタに、入力指令値としてステップ入力を入力した場合の各制御指令値の応答結果を比較例とともに示すグラフである。図3(a)はステップ入力および位置制御指令値を示すグラフであり、図3(b)は速度指令値を示すグラフであり、図3(c)は加速度指令値を示すグラフであり、図3(d)は加加速度指令値を示すグラフである。また、図4は図3に示す加速度指令値および加加速度指令値を部分的に拡大したグラフである。図4(a)は加速度指令値を示すグラフであり、図4(b)は加加速度指令値を示すグラフである。
【0059】
図3(a)および図3(b)に示すように、ステップ入力に対して次数の小さい位置制御指令値p(0階微分)および速度指令値v(1階微分)については実施例および比較例のいずれも振動成分の少ないグラフが得られている。しかし、ステップ入力に対して次数の比較的大きい加速度制御指令値a(2階微分)および加加速度指令値j(3階微分)については、特に図4(a)および図4(b)に示すように、比較例において振動成分が重畳していることが分かる。
【0060】
これに対し、本実施例の3次フィルタによって演算された加速度指令値aおよび加加速度指令値jは、振動成分がほとんどなく非常に安定した波形が得られた。このように、本発明に基づく制御指令値生成プログラムおよびこれを備えた制御指令値生成装置において、生成される制御指令値の連続系の伝達関数に対応する離散的な状態方程式を用いることにより、入力指令値に対して次数の大きい制御指令値であっても、高精度かつ安定的に生成できることが示された。
【産業上の利用可能性】
【0061】
本発明の制御指令値生成プログラム、制御指令値生成方法および制御指令値生成装置は、一の入力指令値から複数の制御指令値を高精度かつ安定的に生成するとともにその際の演算負荷を低減するために有用である。
【符号の説明】
【0062】
1 制御指令値生成装置(コンピュータ)
2 ロボット制御装置
11 入力部
12 演算部
13 記憶部
14 バス


【特許請求の範囲】
【請求項1】
コンピュータを、
所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタとして機能させる、制御指令値生成プログラム。
【請求項2】
前記所定の入力指令値は、制御対象の位置指令値であり、
前記デジタルフィルタは、前記位置指令値から当該位置指令値の3階までの微分で表せる、位置指令値、速度指令値、加速度指令値および加加速度指令値の4つの制御指令値を生成する3次のデジタルフィルタである、請求項1に記載の制御指令値生成プログラム。
【請求項3】
前記入力指令値の伝達関数G(s)を以下の式(1)で表したとき、前記入力指令値を1〜n階微分した制御指令値を求めるための伝達関数G(s)〜G(s)は、以下の式(2)で示され、前記n次のデジタルフィルタの状態方程式は、入力uに対する出力をyとして以下の式(3)で示される、請求項1に記載の制御指令値生成プログラム。
【数1】





【数2】

【請求項4】
所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタを前記入力指令値に適用することにより、前記n+1個の制御指令値を生成する、制御指令値生成方法。
【請求項5】
所定の入力指令値から当該入力指令値のn階までの微分(n≧0)で表せるn+1個の制御指令値を、入力数が1であり出力数がn+1である状態方程式を用いて生成するn次のデジタルフィルタを備えた、制御指令値生成装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−97444(P2013−97444A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−237467(P2011−237467)
【出願日】平成23年10月28日(2011.10.28)
【出願人】(000000974)川崎重工業株式会社 (1,710)
【Fターム(参考)】