(57)【特許請求の範囲】
【請求項１】
予め決められた時間間隔である指令値生成制御周期で入力される指令位置に基づいて、予め決められた時間間隔であるサーボ制御周期でサーボモータを制御するサーボ制御装置であって、
前記指令位置を補正する補正部と、
前記補正部から出力される補正後の指令位置に基づいて前記サーボモータを制御するサーボアンプと、
を備え、
前記補正部は、ネットワークの構造を表すパラメータに基づいて処理を行う第１のニューラルネットワークを使用して前回のサーボ制御周期における補正後の指令位置および今回のサーボ制御周期における前記サーボモータの実際の位置に基づき１指令値生成制御周期以上先のサーボモータの実際の位置を予測し、予測結果に基づいて今回のサーボ制御周期における補正前の指令位置を補正する
ことを特徴とするサーボ制御装置。
【請求項２】
前回のサーボ制御周期における補正後の指令位置および今回のサーボ制御周期における前記サーボモータの実際の位置に基づいて前記パラメータを決定する学習部、
をさらに備えることを特徴とする請求項１に記載のサーボ制御装置。
【請求項３】
前記学習部は、第２のニューラルネットワークを使用して前記パラメータを決定する、
ことを特徴とする請求項２に記載のサーボ制御装置。
【請求項４】
前記学習部は、前回のサーボ制御周期における補正後の指令位置と、前回のサーボ制御周期における補正後の指令位置を用いて計算した今回のサーボ制御周期における前記サーボモータの実際の位置を推定したものであるモデル位置と今回のサーボ制御周期における前記サーボモータの実際の位置との誤差を表すモデル位置誤差と、に基づいて前記パラメータを決定する、
ことを特徴とする請求項３に記載のサーボ制御装置。
【請求項５】
前記学習部は、前記指令値生成制御周期および前記サーボ制御周期とは異なる予め設定された学習周期で前記パラメータを決定する、
ことを特徴とする請求項２から４のいずれか一つに記載のサーボ制御装置。
【請求項６】
前記学習部は、前記パラメータを決定した場合、決定した前記パラメータを前記補正部に適用する、
ことを特徴とする請求項２から５のいずれか一つに記載のサーボ制御装置。
【請求項７】
前記学習部が決定した前記パラメータを前記補正部に適用するタイミングを予め設定された判定周期で判定する判定部、
をさらに備え、
前記判定部は、今回の判定周期における指令位置および今回の判定周期における前記サーボモータの実際の位置に基づいて、前記タイミングを判定し、
前記学習部は、決定した前記パラメータを前記判定部での判定結果に従い前記補正部に適用する、
ことを特徴とする請求項２から５のいずれか一つに記載のサーボ制御装置。
【請求項８】
前記補正部は、
前回のサーボ制御周期における補正後の指令位置および今回のサーボ制御周期における前記サーボモータの実際の位置に基づき１指令値生成制御周期以上先のサーボモータの実際の位置を予測し、予測結果に基づいて今回のサーボ制御周期における補正前の指令位置の補正量を計算する推論器と、
今回のサーボ制御周期における補正前の指令位置を遅延させる遅延器と、
前記推論器で計算された補正量を前記遅延器により遅延された今回のサーボ制御周期における補正前の指令位置に加算することにより今回のサーボ制御周期における補正後の指令位置を生成し、前記サーボアンプへ出力する第１の加算器と、
前記推論器で計算された補正量を今回のサーボ制御周期における補正前の指令位置に加算することにより前回のサーボ制御周期における補正後の指令位置を生成し、前記推論器へ入力させる第２の加算器と、
を備えることを特徴とする請求項１から７のいずれか一つに記載のサーボ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械等の制御対象を駆動するモータを駆動制御するサーボ制御装置に関する。
【背景技術】
【０００２】
一般に、工作機械を駆動するモータを駆動制御するサーボ制御装置では、ＮＣ（Numerical  Control：数値制御）装置、モーションコントローラなどの指令値生成装置から指令された位置、速度を実現するようにモータへの駆動電流の制御が行われている。特に、加工プログラムにて指示された移動軌跡上を加工工具が移動する場合、位置を精緻に管理しながらモータの駆動制御が行われる。モータの駆動制御においてはモータの回転方向が反転する際の摩擦外乱の影響で軌跡誤差が発生する問題がある。この軌跡誤差は、象限突起、ロストモーションと呼ばれ、これまで、軌跡誤差を抑制するための様々な方式が提案されている。【０００３】
例えば、特許文献１に開示されている発明では、繰り返し動作を行う制御対象に対して、事前に動作させた際に発生した軌跡誤差の誤差量を記憶し、以降の同一プログラムを実行する際の補正量として扱い指令値を補正している。【０００４】
また、特許文献２に開示されている発明では、トルクフィードバックループの中にニューラルネットワーク（ＮＮ：Neural  Network）を配置し、ＮＮの構成を時々刻々変化させることで、バックラッシにより生じる誤差を補正するよう構成している。【０００５】
特許文献３に開示されている発明では、ロボットの手先振動を抑制するためにＮＮを用いて手先加速度の推定を行い、トルク指令を補正するよう構成している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２３４３２７号公報
【特許文献２】米国特許第７０８００５５号明細書
【特許文献３】特開平６−３５５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の発明は、誤差の補正量を計算する目的で少なくとも１回は事前に加工プログラムを実行する必要がある。すなわち、新たな加工プログラムを実行する場合は、初回運転から高精度な制御を行うことができない問題があった。また、事前動作を行うことにより機械が占有され、生産性が低下するという問題があった。さらに、加工プログラムの長さに応じた補正データが必要となるため、長時間加工を行うプログラムの場合には膨大な補正データを蓄積しておく必要があった。【０００８】
特許文献２に記載の発明は、補正量計算に加えてＮＮ構成の更新処理を行うため、学習対象（バックラッシなど）の挙動がより複雑な構成となる場合などＮＮの構成を複雑にする必要が出てきた場合に、補正量計算での処理負荷以上に高くなることが考えられる。これにより、ＮＮ処理以外のモータを制御するための処理にも影響を及ぼし、所定周期でのモータ制御ができなくなる問題が生じる。特許文献２に記載の発明では、制御ブロックの一部としてＮＮを構成しているため、処理の分散化を行うことが難しいといった問題があった。【０００９】
特許文献３に記載の発明では、ＮＮでの推定結果を用いたトルク補正を実行すると、ＮＮが学習対象としている制御対象（ロボットの手先）の特性が変化することになり、過去の測定データや学習結果に基づいて決定したパラメータを持つＮＮを継続して補正処理に使用することが出来なくなる、又はＮＮを継続して補正処理に使用したとしても補正精度が低下してしまう。また、ＮＮでの推定結果を用いたトルク補正を実行している間、加速度センサを外してしまうため学習を継続できる構成になっていない。仮に、加速度センサを取り付けたままＮＮの学習を継続しようとしても、ＮＮを用いたトルク補正の実行の有無によって制御対象（ロボットの手先）の挙動が異なることになる。すなわち、ＮＮを用いたトルク補正の実行の有無によって制御対象の特性が変化することになるため、過去の測定データおよび学習結果を活用することができない。そのため、ＮＮでの補正と、ＮＮの学習を同時に継続的に行うことができない問題があった。【００１０】
本発明は、上記に鑑みてなされたものであって、第１の目的は、ＮＮを使用して補正処理をしても、補正精度を低下させずに過去の測定データおよび学習結果を活用したＮＮによる補正処理を継続可能なサーボ制御装置を得ることを目的とする。また、第２の目的は、ＮＮでの補正と、ＮＮの学習とを同時に継続的に行っても、ＮＮ処理以外のモータを制御するための処理に影響を及ぼさずに補正処理で使用するパラメータを更新することが可能なサーボ制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明では、予め決められた時間間隔である指令値生成制御周期で入力される指令位置に基づいて、予め決められた時間間隔であるサーボ制御周期でサーボモータを制御するサーボ制御装置であって、指令位置を補正する補正部と、補正部から出力される補正後の指令位置に基づいてサーボモータを制御するサーボアンプと、を備え、補正部は、ネットワークの構造を表すパラメータに基づいて処理を行う第１のニューラルネットワークを使用して前回のサーボ制御周期における補正後の指令位置および今回のサーボ制御周期におけるサーボモータの実際の位置に基づき１指令値生成制御周期以上先のサーボモータの実際の位置を予測し、予測結果に基づいて今回のサーボ制御周期における補正前の指令位置を補正することとした。
【発明の効果】
【００１２】
本発明にかかるサーボ制御装置は、ＮＮを使用して補正処理をしても、過去の測定データおよび学習結果を活用したＮＮによる補正処理を継続することができる、という効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかるサーボ制御装置の構成例を示す図
【図２】実施の形態１にかかるサーボ制御装置の他の構成例を示す図
【図３】実施の形態２にかかるサーボ制御装置の構成例を示す図
【図４】実施の形態２にかかるサーボ制御装置の他の構成例を示す図
【図５】実施の形態３にかかる補正部の構成例を示す図
【図６】通信遅れが生じない場合の補正部の構成例を示す図
【図７】実施の形態３にかかる補正部の動作手順の一例を示すフローチャート
【図８】実施の形態１〜３にかかるサーボ制御装置を実現する処理回路を示す図
【発明を実施するための形態】
【００１４】
以下に、本発明の実施の形態にかかるサーボ制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
図１は、本発明の実施の形態１にかかるサーボ制御装置の構成例を示す図である。実施の形態１にかかるサーボ制御装置１は、指令値生成部２で生成される指令位置に基づいて、サーボモータ３を駆動するための電圧を生成し、サーボモータ３に印加する。指令位置は、サーボモータ３の位置を指令する指令値である。サーボ制御装置１は、サーボアンプ１１、学習部１２および補正部１３を備える。
【００１６】
なお、指令値生成部２は、予め決められた時間間隔である指令値生成制御周期間隔でサーボモータ３への指令位置を出力する装置で構成される。指令値生成部２は、例えば数値制御装置で実現され、公知の技術を用いて位置指令を生成する。
【００１７】
サーボ制御装置１は、予め決められた時間間隔であるサーボ制御周期間隔でサーボモータ３の位置、速度および加速度を制御する装置であり、指令値生成部２で生成された指令位置にサーボモータ３の実際の位置が一致するように制御を行う。なお、サーボアンプ１１は、実際には、後述する補正部１３で補正が行われた後の指令位置にサーボモータ３の実際の位置が一致するよう、制御を行う。指令値生成部２が指令位置を生成する指令値生成制御周期と、サーボ制御装置１がサーボモータ３を制御するサーボ制御周期は、同一周期であってもよいし、異なる周期であってもよい。これらが異なる周期の場合には、周期の違いを補償する手段をサーボ制御装置１に設けてもよい。例えば、サーボ制御装置１は、指令値生成２から入力される最新の指令位置を保持する手段を備え、保持している指令位置すなわち最新の指令位置にサーボモータ３の実際の位置が一致するように制御を行う。以下、説明が煩雑化するのを防止するため、「サーボモータ３の実際の位置」を単に「サーボモータ３の位置」と表現する場合がある。
【００１８】
サーボモータ３は、図示しないボールねじなどの動力伝達機構を介して工作機械の駆動制御を行うための駆動装置であり、サーボアンプ１１から電圧の印加を受けて回転する。サーボモータ３には、エンコーダ等の位置検出器が取り付けられており、位置検出器はサーボモータ３の位置を検出する。位置検出器は、検出した位置をサーボ制御装置１に出力する。位置検出器が検出した位置は、サーボ制御装置１内のサーボアンプ１１、学習部１２および補正部１３に入力される。
【００１９】
サーボ制御装置１の学習部１２には、サーボモータ３に取り付けられた位置検出器で検出された、サーボモータ３の位置の他に、補正部１３で前回のサーボ制御周期において補正された後の指令位置が入力される。図１に示したように、補正部１３で前回のサーボ制御周期において補正された後の指令位置はサーボアンプ１１に入力される指令位置である。学習部１２はニューラルネットワーク（以下、ＮＮと記載する）を備え、入力された今回のサーボ制御周期におけるサーボモータ３の位置および前回のサーボ制御周期におけるにおいて補正された指令位置を用いて、予め定めておいた時刻である一定時刻先のサーボモータ３の位置を予測するための学習を実施する。具体的には、学習部１２は、ＮＮのネットワーク構造を表すパラメータを学習により決定し、学習結果として保存する。ネットワーク構造を表すパラメータとしては、重みパラメータ、バイアスパラメータなどが該当する。学習部１２は誤差逆伝播法とも呼ばれるバックプロパゲーション等の公知の技術を用いて各パラメータを計算する。一般に、ネットワークの構成が複雑になると多くの計算時間を要する。学習部１２は、上述した指令値生成制御周期およびサーボ制御周期のいずれとも異なる周期（以下、学習周期と称する）で各パラメータの計算を実行してもよい。学習周期は、指令値生成制御周期およびサーボ制御周期のいずれの周期よりも長いものとする。
【００２０】
サーボ制御装置１は、学習部１２による学習結果であるＮＮのネットワーク構造を表すパラメータを、学習部１２の内部、または、学習部１２の外部の記憶領域に保存しておく。これにより、サーボ制御装置１でどのようなネットワーク構造が採用されているかの確認をユーザが行うことが可能となる。
【００２１】
なお、学習部１２は、サーボモータ３の位置の代わりに、サーボモータ３の位置、速度または加速度、サーボモータ３に流れるモータ電流、サーボアンプ１１の内部で計算されるモデル位置などを組み合わせて学習を行う構成であってもよい。
【００２２】
モデル位置は、計算により求めたサーボモータ３のおおよその位置であり、今回のサーボ制御周期におけるサーボモータ３の実際の位置を推定したものである。モデル位置は、前回のサーボ制御周期において補正された指令位置をサーボモータ３の構造を模擬したサーボモデルに通すことで推定することが可能である。このサーボモデルは、単純には、位置ループゲインに応じたカットオフ周波数を有する１次遅れフィルタとして定義されるものであり、一般には低域通過特性を有するフィルタとして扱うことができる。
【００２３】
計算により得られるモデル位置と今回のサーボ制御周期におけるサーボモータ３の実際の位置とを比較することで、サーボモデルでモデル化できない特徴であるモデル位置誤差を抽出することが可能となる。モデル位置誤差は、モデル位置と今回のサーボ制御周期におけるサーボモータ３の実際の位置との誤差である。
【００２４】
学習部１２がモデル位置誤差を用いて学習を行う場合について説明する。この場合のサーボ制御装置の構成は図２に示したものとなる。図２は、実施の形態１にかかるサーボ制御装置の他の構成例を示す図である。図２に示したサーボ制御装置１ａは、図１に示したサーボ制御装置１と同様に、サーボアンプ１１、学習部１２および補正部１３を備える。ただし、サーボ制御装置１ａでは、サーボアンプ１１が、上述した方法でモデル位置誤差を計算して学習部１２へ出力する。学習部１２は、補正部１３から入力される前回のサーボ制御周期において補正された指令位置と、サーボアンプ１１から入力されるモデル位置誤差とを用いて、ＮＮのネットワーク構造を表すパラメータを計算する。サーボ制御装置１とサーボ制御装置１ａは異なる情報を用いてサーボモータ３を制御するものであるが、制御動作そのものは同様である。そのため、サーボ制御装置１ａの詳細説明については省略する。
【００２５】
学習部１２における学習結果は、予め設定された学習周期の間隔で補正部１３に転送される。なお、学習部１２での学習に必要な処理時間を踏まえて学習周期を設定するようにしても構わない。
【００２６】
補正部１３は、学習部１２と同様にＮＮを備え、学習部１２での学習結果である、重みパラメータなどを使用し、一定時刻先のサーボモータ３の位置の予測を行う。このとき、補正部１３は、サーボアンプ１１に出力する前回のサーボ制御周期における補正後の指令位置と、今回のサーボ制御周期におけるサーボモータ３の実際の位置とに基づいてＮＮ計算（推論処理）を行い、一定時刻先のサーボモータ３の位置を予測する。また、補正部１３は、一定時刻先のサーボモータ３の位置の予測を行った後、一定時刻先のサーボモータ３の位置を用いて、サーボモータ３の位置が指令位置に一致するように今回のサーボ制御周期における補正前の指令位置の補正量を計算し、今回のサーボ制御周期における補正前の指令位置を補正する。なお、補正部１３が備えるＮＮは第１のニューラルネットワークに該当し、学習部１２が備えるＮＮは第２のニューラルネットワークに該当する。
【００２７】
また、上述したように、学習周期で学習部１２が学習を行い、学習結果を補正部１３に出力するため、補正部１３は、学習部１２から学習結果を受け取るごとに、すなわち学習周期ごとに、ＮＮのネットワーク構造を表すパラメータを更新する。この結果、補正部１３で用いるＮＮのネットワーク構造を表すパラメータと、学習部１２が学習で使用したＮＮのネットワーク構造を表すパラメータとが同一となる。
【００２８】
補正部１３は、例えば、摩擦外乱の影響を最小化するように、前回のサーボ制御周期における補正後の指令位置を入力とし、今回のサーボ制御周期におけるサーボモータ３の位置を出力とする伝達関数を計算し、その逆伝達関数への入力をサーボモータ３の位置の誤差とすることで補正量を求めることが可能である。サーボモータ３の位置の誤差とは、今回のサーボ制御周期におけるサーボモータ３の実際の位置と前回のサーボ制御周期における補正後の指令位置との誤差である。指令位置が高周波数成分を有する場合には、低域通過フィルタなどのフィルタを通して高周波成分を除去すればよい。このとき、サーボモータ３の位置の誤差と、サーボモータ３により駆動される工作機械の振動を低減する振動低減効果とはトレードオフの関係となる。そのため、補正部１３は、制御対象の工作機械に応じて伝達関数の設定を変更すればよい。
【００２９】
以上のように、本実施の形態にかかる、図１に示したサーボ制御装置１は、ＮＮを使用して指令位置を補正する補正部１３と、補正後の指令位置に基づいてサーボモータ３を制御するサーボアンプ１１と、前回のサーボ制御周期における補正後の指令位置および今回のサーボ制御周期におけるサーボモータ３の実際の位置に基づいて、補正部１３を構成するＮＮの構造を表すパラメータを決定する学習部１２とを備える。また、図２に示したサーボ制御装置１ａの学習部１２は、前回のサーボ制御周期における補正後の指令位置およびモデル位置誤差に基づいて、補正部１３を構成するＮＮの構造を表すパラメータを決定する。これにより、補正部１３が補正処理を実行中に、補正部１３を構成するＮＮの構造を表すパラメータを変更し、補正処理の性能を向上させることができる。
【００３０】
図１および図２に示したサーボ制御装置１および１ａでは、学習部１２に対して前回のサーボ制御周期における補正後の指令位置を入力することで学習処理を行う構成としている。これより、補正部１３を含まない範囲の挙動を学習することが可能なる。つまり、学習部１２は、前回のサーボ制御周期における補正後の指令位置と今回のサーボ制御周期におけるサーボモータ３の実際の位置との関係を学習することができ、その範囲に補正部１３の挙動が含まれないようにすることができる。これにより、指令位置の補正を停止している状態だけでなく、指令位置の補正を実行している間であっても、サーボモータ３の入出力関係を模擬したＮＮの構造を学習部１２が学習することが可能となる。すなわち、サーボアンプ１１への入力である前回のサーボ制御周期における補正後の指令位置と今回のサーボ制御周期におけるサーボモータ３の実際の位置との間の関係を監視してモデル化し、ＮＮのネットワーク構造を表すパラメータを決定する制御に関わる処理が、補正部１３へ指令位置が入力されてからサーボアンプ１１がサーボモータ３に印加する電圧を生成するまでの処理の外側で行われるため、指令位置の補正処理の特性を変化させずに学習を継続することが可能となる。
【００３１】
また、ネットワーク構造をＮＮとしたことで、ＮＮで機械特性を含むサーボ制御系の特性を学習することができ、類似の動作パターンも学習することとなる。これにより、過去に実行したことのない加工プログラムであっても、過去に実行したことがある加工プログラムのうち、類似性の高いものを参考に適切な補正量を得ることが可能となり、加工プログラムを実行後の初品加工から高精度に制御を行うことができる。よって、事前動作を行うことによる生産性の低下を防止することができるといった、格別な効果を奏することが可能となる。
【００３２】
また、これまでは人の手で行っていた、指令位置の補正処理に用いる制御パラメータの調整が不要となる。
【００３３】
実施の形態２．
次に、実施の形態２にかかるサーボ制御装置について説明する。以下では、実施の形態１と異なる部分を中心に説明する。
【００３４】
実施の形態１では、予め設定された学習周期で学習を行い、指令位置の補正に用いるパラメータを更新するサーボ制御装置についての説明を行った。これに対して、本実施の形態にかかるサーボ制御装置では、経年劣化に伴う機械特性の変化、制御パラメータの変更などに伴い、学習を行うタイミングを自動判別する。
【００３５】
図３は、実施の形態２にかかるサーボ制御装置の構成例を示す図である。図３では、図１に示したサーボ制御装置１と同じ構成要素に同じ符号を付している。
【００３６】
実施の形態２にかかるサーボ制御装置１ｂは、サーボアンプ１１、学習部１２ｂ、補正部１３および判定部１４を備える。すなわち、サーボ制御装置１ｂは、サーボ制御装置１の学習部１２を学習部１２ｂに置き換え、判定部１４を追加した構成である。
【００３７】
学習部１２ｂは、学習部１２と同様のタイミングおよび同様の方法で学習を行い、判定部１４から指示を受けた場合に、学習結果であるパラメータを補正部１３に出力する。
【００３８】
判定部１４には指令値生成部２が生成した指令位置と、今回のサーボモータ３の位置とが入力される。判定部１４は、入力された指令位置およびサーボモータ３の位置に基づいて、学習部１２ｂによる学習結果を補正部１３に適用するタイミングか否か、すなわち、補正部１３が備えるＮＮのネットワーク構造を表すパラメータを更新する必要があるか否かを判定する。具体的には、判定部１４は、今回の判定周期におけるサーボモータ３の位置と今回の判定周期における指令位置との誤差が予め設定しておいたしきい値を超過したか否かを予め設定されている判定周期間隔で確認する。なお、判定周期間隔ではなく実施の形態１で説明したサーボ制御周期間隔でもよい。そして、判定部１４は、上記誤差が上記しきい値を超過した場合、学習部１２ｂに対して、学習結果を補正部１３に出力するよう指示する。
【００３９】
これにより、サーボ制御装置１ｂは、サーボモータ３が駆動する機械の特性が経年変化した場合、サーボモータ３の位置と指令位置との誤差が拡大したことを検出し、最新の学習結果を使用することで最新の特性を加味した補正を行うことが可能となる。
【００４０】
また、判定部１４は、学習部１２ｂによる学習結果を補正部１３に適用するか否かの判定を行うだけでなく、学習部１２ｂが学習を行うか否かの判定を行うようにしてもよい。この場合、判定部１４は、上記の誤差が上記のしきい値を超過した場合、学習部１２ｂに対して、学習の実行を指示する。この指示を受けた学習部１２ｂは、学習を実行し、学習結果を補正部１３に出力する。この場合、学習部１２ｂにおける計算負荷が低減されるため、効率的な運用を実現できる。
【００４１】
このように、学習部１２ｂにおいて学習結果を逐次更新することで学習部１２ｂの計算負荷および補正部１３が学習結果を反映させるための処理負荷が高くなってしまう問題に対して、学習の実行頻度を下げることで、効率的に最新の学習結果を用いた補正を行うことが可能となる。
【００４２】
なお、判定部１４は、サーボモータ３の位置と補正前の指令位置との誤差を監視するだけではなく、サーボモータ３を構成するパラメータ、具体的には位置ゲインおよび速度ゲインといったパラメータの変化を監視して、パラメータ変化後の状態における学習部１２ｂの学習が完了するまで、補正部１３での補正量の算出処理を停止させるようにしてもよい。これより、学習結果と制御特性のミスマッチを避けることができるようになる。
【００４３】
なお、図１に示したサーボ制御装置１に対して判定部１４の追加などを行う場合の例を説明したが、図２に示したサーボ制御装置１ａに対して判定部１４の追加などを行ってもよい。この場合、図４に示した構成となる。図４に示したサーボ制御装置１ｃは、サーボ制御装置１ａの学習部１２を上述した学習部１２ｂに置き換え、さらに、上述した判定部１４を追加した構成である。
【００４４】
このように、本実施の形態にかかるサーボ制御装置１ｂおよび１ｃは、補正部１３を構成するＮＮの構造を表すパラメータを更新する必要があるか否かを判定する判定部１４を備える。これにより、学習部１２ｂでの学習結果が適切、かつ、効率よく補正部１３で使用されることを実現でき、位置指令の補正精度が劣化するのを防止できる。
【００４５】
実施の形態３．
本実施の形態では、実施の形態１，２で説明したサーボ制御装置が備えている補正部１３の詳細について説明する。補正部１３以外については実施の形態１，２と同様であるため、説明を省略する。
【００４６】
図５は、実施の形態３にかかる補正部の構成例を示す図である。図５に示したように、補正部１３は、遅延器１３１、加算器１３２，１３４および推論器１３３を備える。詳細については後述するが、推論器１３３は補正量を算出する。また、推論器１３３への入力経路および出力経路では信号の遅延すなわち通信遅れが生じるものとする。このような通信遅れは、推論器１３３が、サーボ制御を実行する装置とは異なる装置、または、異なる処理回路で実現される場合に発生することが考えられる。ただし、通信遅れ時間は、一定の遅れ時間となるように構成されるものであり、遅れ時間が制御周期を超えて大きく変動するものではない。
【００４７】
遅延器１３１は、予め遅れ時間を指定することで信号の出力を遅らせることが可能な回路である。すなわち、遅延器１３１は、指令値生成部２が生成した指令位置が入力されると、これを予め決められた時間だけ遅延させてから加算器１３２へ出力する。遅延器１３１が指令位置に対して遅延を与えることにより、例えば、ある指令位置に対して補正量を加算して得られる補正後の指令位置が推論器１３３に届くタイミングとサーボアンプ１１に補正後の指令位置が届くタイミングとの差を調整することが可能となる。遅延器１３１は、指令位置の更新周期と指令位置に与える遅延時間とに基づいて決まるサイズ以上の記憶領域を有する。
【００４８】
遅延器１３１が入力された指令位置に与える遅延時間は、外部から入力される指令位置が推論器１３３に入力する経路で発生する通信遅れ時間と、推論器１３３から加算器１３２までの経路で発生する通信遅れ時間と、に基づく値とする。
【００４９】
なお、遅延器１３１は、入力された指令位置を遅延させることなく出力する設定とすることも可能とする。この場合、補正部１３は、図６に示した構成となる。図６は、通信遅れが生じない場合の補正部の構成例を示す図である。図６に示した補正部１３ｄは、推論器１３３および加算器１３５を備える。推論器１３３は、図５に示した推論器１３３と同じものである。推論器１３３への信号の入力経路および推論器１３３からの信号の出力経路において通信遅れが発生しない、または、問題とならない場合、図６に示した構成の補正部１３ｄとしてもよい。
【００５０】
図５の説明に戻り、加算器１３２は、遅延器１３１を介して入力された今回のサーボ制御周期における補正前の指令位置に対して推論器１３３から入力された補正量を加算し、今回のサーボ制御周期における補正前の指令位置を補正する。加算器１３２は、推論器１３３で計算された補正量を今回のサーボ制御周期における補正前の指令位置に加算することによりサーボアンプ１１へ出力する今回のサーボ制御周期における補正後の指令位置を生成する第１の加算器である。加算器１３４は、入力された指令位置に対して推論器１３３から入力された補正量を加算し、指令位置を補正する。加算器１３４は、推論器１３３で計算された補正量を今回のサーボ制御周期における補正前の指令位置に加算することにより推論器１３３へ入力させる今回のサーボ制御周期における補正後の指令位置を生成する第２の加算器である。加算器１３２および１３４は、遅延器としての機能も有し、指令位置と補正量とを加算するタイミングを調整可能な構成であってもよい。
【００５１】
推論器１３３はＮＮで構成され、ＮＮのネットワーク構造は学習部１２，１２ｂから受け取った学習結果に従う。
【００５２】
推論器１３３は、今回のサーボ制御周期におけるサーボモータ３の実際の位置と、加算器１３４を介して入力された前回のサーボ制御周期における補正後の指令位置とに基づいて、少なくとも１指令値生成周期以上先のサーボモータ３の位置を予測し、さらに、予測結果を用いて補正量を計算する。推論器１３３が行う補正量の計算は、実施の形態１でも説明したように、前回のサーボ制御周期における補正後の指令位置を入力とし、今回のサーボ制御周期におけるサーボモータ３の位置を出力とする伝達関数を使用するなど、公知の技術を用いて行う。１指令値生成制御周期以上先の時刻である先読み時間は、推論器１３３への入出力結果を得るまでの通信遅れを加味した時間とする。推論器１３３は、計算した補正量を加算器１３２および１３４に出力する。
【００５３】
図７は、実施の形態３にかかる補正部１３の動作手順の一例を示すフローチャートである。補正部１３は、図７に示した手順で処理を実行し、入力された指令位置を補正する。
【００５４】
まず、補正部１３は、外部から受け取った指令位置を加算器１３４および遅延器１３１に入力する（ステップＳ１）。このとき、加算器１３４に到達するまでの通信経路では通信遅れが発生し、遅延器１３１に指令位置が入力されるタイミングよりも遅れて加算器１３４に指令位置が入力されることとなる。
【００５５】
次に、推論器１３３が、学習部１２，１２ｂから受け取った学習結果を用いて一定時刻先のサーボモータ３の位置の予測を行い、一定時刻先の補正量の計算を行う（ステップＳ２）。
【００５６】
次に、推論器１３３が、計算した補正量を加算器１３４および１３２に出力する（ステップＳ３）。
【００５７】
次に、加算器１３４が、次の時刻の指令位置に補正量を加算する。これは、推論器１３３に前回のサーボ制御周期における補正後の指令位置が入力されることに相当する。また、加算器１３２が、遅延器１３１で遅延が与えられた後の今回のサーボ制御周期における補正前の指令位置に補正量を加算することにより今回のサーボ制御周期における補正前の指令位置を補正する（ステップＳ４）。なお、加算器１３４から出力される指令位置と、加算器１３２から出力される指令位置は、出力されるタイミングが異なるものの、同じ値となるように構成されるものである。
【００５８】
このように、本実施の形態にかかるサーボ制御装置の補正部は、指令位置が入力されるタイミングに遅延を与え、指令位置に補正量が加算されるタイミングを調整する遅延器、を備える。これにより、指令位置が伝送される経路で遅延が発生する場合であっても、指令位置に補正量が加算されるタイミングを適切なタイミングに調整することが可能となる。
【００５９】
次に、各実施の形態で説明したサーボ制御装置の補正部、学習部および判定部を実現するハードウェアの構成について説明する。
【００６０】
実施の形態１〜３で説明した補正部１３、学習部１２，１２ｂおよび判定部１４は、図８に示した処理回路１００で実現可能である。
【００６１】
処理回路１００は、プロセッサ１０１、メモリ１０２、入力回路１０３および出力回路１０４を含んで構成されている。プロセッサ１０１は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰともいう）、システムＬＳＩ（Large  Scale  Integration）などである。メモリ１０２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリー、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）等の、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはＤＶＤ（Digital  Versatile  Disc）等である。
【００６２】
補正部１３、学習部１２，１２ｂおよび判定部１４は、それぞれに対応するプログラムをメモリ１０２から読み出してプロセッサ１０１が実行することにより実現できる。入力回路１０３は、プロセッサ１０１が処理する情報、メモリ１０２が記憶する情報などを外部から受け取る際に使用し、出力回路１０４は、プロセッサ１０１が生成した情報、メモリ１０２が記憶している情報を外部へ出力する際に使用する。
【００６３】
なお、補正部１３と学習部１２または１２ｂとを別々の処理回路１００で実現してもよい。この場合、補正部１３は実施の形態３で説明した構成となり、処理回路１００は図５に示した推論器１３３を実現される。すなわち、実施の形態３にかかる補正部１３は、処理回路１００に加えて、遅延器および加算器により実現される。
【００６４】
なお、サーボアンプ１１は、外部から供給される電圧を変換してサーボモータ３に印加する電圧を生成する変換回路、変換回路を制御する制御回路などを含む専用の回路で実現される。
【００６５】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００６６】
１，１ａ，１ｂ，１ｃ  サーボ制御装置、２  指令値生成部、３  サーボモータ、１１  サーボアンプ、１２，１２ｂ  学習部、１３，１３ｄ  補正部、１４  判定部、１３１  遅延器、１３２，１３４，１３５  加算器、１３３  推論器。
【要約】
本発明は、指令位置に基づいてサーボモータを制御するサーボ制御装置（１）であって、ネットワークの構造を表すパラメータに基づいて処理を行う第１のニューラルネットワークを使用して指令位置を補正する補正部（１３）と、補正部（１３）から出力される補正後の指令位置に基づいてサーボモータ（３）を制御するサーボアンプ（１１）と、を備え、補正部（１３）は、補正後の指令位置およびサーボモータの実際の位置に基づいて前記指令位置を補正する。【図１】
0006469320.tif 000002
【図２】
0006469320.tif 000003
【図３】
0006469320.tif 000004
【図４】
0006469320.tif 000005
【図５】
0006469320.tif 000006
【図６】
0006469320.tif 000007
【図７】
0006469320.tif 000008
【図８】
0006469320.tif 000009