(57)【特許請求の範囲】
【請求項１】
モータを制御するための第１の指令を入力する指令入力部と、
前記第１の指令に基づいて第１の中間データを算出する第１中間データ算出部と、
前記第１の中間データに平滑化処理を行った場合の前記第１の指令に基づく位置決めを完了するまでの時間が、前記第１の中間データに前記平滑化処理を行わない場合の前記第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、前記第１の指令に基づいて可変に設定する遅延時間設定部と、
前記遅延時間に基づいて、前記第１の中間データに前記平滑化処理を行った第２の中間データを算出する第２中間データ算出部と、
前記第２の中間データに基づいて、前記モータを制御するための第２の指令を出力する指令出力部と、
を有することを特徴とする指令生成装置。
【請求項２】
前記遅延時間設定部は、
前記第１の指令に基づいて算出された前記第１の中間データの最大値が、予め設定された前記第１の中間データの上限値に到達しない場合に、前記遅延時間を予め設定された初期値よりも短縮するように設定する
ことを特徴とする請求項１に記載の指令生成装置。
【請求項３】
前記遅延時間設定部は、
前記遅延時間の前記初期値に、前記第１の中間データの前記上限値に対する前記最大値の割合を乗ずることにより、前記遅延時間を算出する
ことを特徴とする請求項２に記載の指令生成装置。
【請求項４】
前記遅延時間設定部は、
前記指令出力部により前記第２の指令が出力されていない状態で、前記指令入力部により前記第１の指令が入力された場合に、前記遅延時間を算出する
ことを特徴とする請求項３に記載の指令生成装置。
【請求項５】
前記遅延時間設定部は、
前記指令出力部により前記第２の指令が出力されている状態で、前記指令入力部により前記第１の指令が変更された場合には、前記モータの動作方向が反転するタイミングで前記遅延時間を算出する
ことを特徴とする請求項４に記載の指令生成装置。
【請求項６】
前記遅延時間設定部は、
前記第１の中間データに移動平均による平滑化処理を行った場合の前記第１の指令に基づく位置決めを完了するまでの時間が、前記第１の中間データに前記移動平均による平滑化処理を行わない場合の前記第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、前記第１の指令に基づいて可変に設定する
ことを特徴とする請求項１乃至５のいずれか１項に記載の指令生成装置。
【請求項７】
前記指令入力部は、
前記モータを制御するための移動量を入力し、
前記第１中間データ算出部は、
前記移動量に基づいて第１の指令速度を算出し、
前記遅延時間設定部は、
前記第１の指令速度に前記移動平均による平滑化処理を行った場合の前記移動量に基づく位置決めを完了するまでの時間が、前記第１の指令速度に前記移動平均による平滑化処理を行わない場合の前記移動量に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、前記移動量に基づいて可変に設定し、
前記第２中間データ算出部は、
前記遅延時間に基づいて、前記第１の指令速度に前記平滑化処理を行った第２の指令速度を算出し、
前記指令出力部は、
前記第２の指令速度に基づいて、前記モータを制御するための位置指令を出力する
ことを特徴とする請求項６に記載の指令生成装置。
【請求項８】
モータを制御するための第１の指令を入力することと、
前記第１の指令に基づいて第１の中間データを算出することと、
前記第１の中間データに平滑化処理を行った場合の前記第１の指令に基づく位置決めを完了するまでの時間が、前記第１の中間データに前記平滑化処理を行わない場合の前記第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、前記第１の指令に基づいて可変に設定することと、
前記遅延時間に基づいて、前記第１の中間データに前記平滑化処理を行った第２の中間データを算出することと、
前記第２の中間データに基づいて、前記モータを制御するための第２の指令を出力することと、
を有することを特徴とする指令生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、指令生成装置及び指令生成方法に関する。
【背景技術】
【０００２】
特許文献１には、サーボシステムに制御周期毎に供給する駆動指令を生成する指令生成装置が記載されている。この指令生成装置は、ユーザからの入力に基づいて、加減速区間において一次関数と１周期分の正弦波関数とを加算した時間関数に従って速度を加減速する、制御周期毎の中間指令を生成する時間関数処理部と、予め設定された周波数成分を除去するフィルタを中間指令に作用させることによって駆動指令を生成するフィルタ部と、を有する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１５／１７７９１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術の指令生成装置では、実速度の最大値が予め設定された上限値に到達しないような微小な移動量である場合に、生成した指令が不連続となって振動が発生し、位置決めが完了するまでの時間が遅延する可能性があった。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、微小な移動量の場合でも振動の発生を抑制でき、位置決めが完了するまでの時間を短縮できる指令生成装置及び指令生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の一の観点によれば、モータを制御するための第１の指令を入力する指令入力部と、前記第１の指令に基づいて第１の中間データを算出する第１中間データ算出部と、前記第１の中間データに平滑化処理を行った場合の前記第１の指令に基づく位置決めを完了するまでの時間が、前記第１の中間データに前記平滑化処理を行わない場合の前記第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、前記第１の指令に基づいて可変に設定する遅延時間設定部と、前記遅延時間に基づいて、前記第１の中間データに前記平滑化処理を行った第２の中間データを算出する第２中間データ算出部と、前記第２の中間データに基づいて、前記モータを制御するための第２の指令を出力する指令出力部と、を有する指令生成装置が適用される。
【０００７】
また、本発明の別の観点によれば、モータを制御するための第１の指令を入力することと、前記第１の指令に基づいて第１の中間データを算出することと、前記第１の中間データに平滑化処理を行った場合の前記第１の指令に基づく位置決めを完了するまでの時間が、前記第１の中間データに前記平滑化処理を行わない場合の前記第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、前記第１の指令に基づいて可変に設定することと、前記遅延時間に基づいて、前記第１の中間データに前記平滑化処理を行った第２の中間データを算出することと、前記第２の中間データに基づいて、前記モータを制御するための第２の指令を出力することと、を有する指令生成方法が適用される。
【発明の効果】
【０００８】
本発明によれば、微小な移動量の場合でも振動の発生を抑制でき、位置決めが完了するまでの時間を短縮できる。
【図面の簡単な説明】
【０００９】
【図１】モータ制御システムの全体構成の一例を表すシステム構成図である。
【図２】指令生成装置の機能構成の一例を表す機能ブロック図である。
【図３】平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図４】微小な移動量である場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図５】微小な移動量でなく、且つ、定速区間が存在する場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図６】微小な移動量でなく、且つ、定速区間が存在しない場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図７】指令速度の最大値が上限値の７０％となった場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図８】指令速度の最大値が上限値の５０％となった場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図９】指令速度の最大値が上限値の３０％となった場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図１０】サーボモータの位置決め動作中に移動量が変更された場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図１１】サーボモータの位置決め動作中に移動量が変更され、サーボモータの動作方向が反転する場合の、平滑化処理前の指令速度、及び、平滑化処理後の指令速度の経時変化の一例を表す波形図である。
【図１２】指令生成装置が実行する制御内容の一例を表すフローチャートである。
【図１３】指令生成装置のハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【００１０】
以下、一実施の形態について図面を参照しつつ説明する。
【００１１】
＜１．モータ制御システムの全体構成＞
まず、図１を参照しつつ、本実施形態に係るモータ制御システム１の全体構成の一例について説明する。
【００１２】
図１に示すように、モータ制御システム１は、上位制御装置３と、指令生成装置５と、モータ制御装置７と、エンコーダ９を備えたサーボモータ１１とを有する。
【００１３】
上位制御装置３は、サーボモータ１１を制御するための第１の指令を指令生成装置５に出力する。「第１の指令」は、サーボモータ１１をどのように駆動するかを規定する指令であり、例えば移動量である。なお、第１の指令は、例えば位置指令や速度指令でもよいし、指令生成装置５において後述する指令速度Ｖ１の波形を特定可能であれば、指令の種類は限定されるものではない。
【００１４】
指令生成装置５は、上位制御装置３から出力された第１の指令に基づいて、サーボモータ１１を制御するための第２の指令を生成し、モータ制御装置７に出力する。「第２の指令」は、例えば位置指令である。なお、第２の指令は位置指令以外の指令、例えば速度指令でもよい。
【００１５】
モータ制御装置７は、指令生成装置５から出力された第２の指令に基づいて、サーボモータ１１を制御する。例えば、第２の指令が位置指令である場合には、モータ制御装置７は、エンコーダ９により検出された駆動位置に基づいて、サーボモータ１１の駆動位置が位置指令に追従するように位置フィードバック制御を行う。また例えば、第２の指令が速度指令である場合には、モータ制御装置７は、エンコーダ９により検出された駆動速度に基づいて、サーボモータ１１の駆動速度が速度指令に追従するように速度フィードバック制御を行う。
【００１６】
サーボモータ１１（モータの一例）は、例えばロボット、加工機、工作機等の産業機械（図示省略）を駆動する。サーボモータ１１は、サーボモータの駆動状態（駆動位置や駆動速度）を検出するエンコーダ９を有する。エンコーダ９は、検出結果をモータ制御装置７に出力する。なお、図示は省略するが、モータ制御装置７及びサーボモータ１１は産業機械の軸数に応じた数だけ設けられる。
【００１７】
なお、上述した上位制御装置３又は指令生成装置５は、例えばモーションコントローラで構成されてもよいし、又は汎用パーソナルコンピュータ（ＰＣ）としてもよい。あるいは、プログラマブルロジックコントローラ（ＰＬＣ）等により構成されてもよい。
【００１８】
また、上述した上位制御装置３、指令生成装置５、モータ制御装置７の全部又は一部を、別体でなく一体の制御装置として構成してもよい。また、上位制御装置３、指令生成装置５、モータ制御装置７のいずれかを、複数の制御装置で構成してもよい。
【００１９】
＜２．指令生成装置の機能構成＞
次に、図２を参照しつつ、指令生成装置５の機能構成の一例について説明する。
【００２０】
図２に示すように、指令生成装置５は、指令入力部１３と、第１中間データ算出部１５と、記録部１７と、遅延時間設定部１９と、第２中間データ算出部２１と、指令出力部２３とを有する。
【００２１】
指令入力部１３は、上位制御装置３から出力された、サーボモータ１１を制御するための第１の指令を入力する。前述のように、第１の指令は例えば移動量である。
【００２２】
第１中間データ算出部１５は、第１の指令に基づいて第１の中間データを算出する。「第１の中間データ」は、例えば平滑化処理前の指令速度である。具体的には、記録部１７に、予め設定された指令速度の上限値、加速度、減速度等が記録されている。第１中間データ算出部１５は、上位制御装置３から入力した移動量と、記録部１７に記録された上限値、加速度、減速度とに基づいて、例えば台形状の波形に沿って変化する指令速度を算出する。
【００２３】
遅延時間設定部１９は、第１の中間データに平滑化処理を行った場合の第１の指令に基づく位置決めを完了するまでの時間が、第１の中間データに平滑化処理を行わない場合の第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、第１の指令に基づいて可変に設定する。「平滑化処理」は、例えば移動平均フィルタによる平滑化処理である。なお、遅延時間の時間設定が可能であれば、移動平均以外の平滑化処理としてもよい。
【００２４】
具体的には、遅延時間設定部１９は、第１中間データ算出部１５により算出された指令速度の最大値が、予め設定された指令速度の上限値に到達しない場合に、遅延時間を予め設定された初期値よりも短縮するように設定する。なお、以下では適宜、指令速度の最大値が指令速度の上限値に到達しない場合の移動量を「微小な移動量」という。また、遅延時間の初期値は、予め設定されて記録部１７に記録されている。
【００２５】
例えば遅延時間設定部１９は、下記（式１）に基づいて、遅延時間の初期値に、指令速度の上限値に対する最大値の割合を乗ずることにより、遅延時間を算出する。
ＤＴ＝ＤＴｏ×（Ｖｍａｘ／Ｖｌｉｍ）・・・（式１）
なお、ＤＴは遅延時間、ＤＴｏは遅延時間の初期値、Ｖｍａｘは第１中間データ算出部１５により算出された指令速度の最大値、Ｖｌｉｍは予め設定された指令速度の上限値である。
【００２６】
なお、微小な移動量の場合に遅延時間を初期値よりも短縮することが可能であれば、遅延時間の算出手法は上記以外としてもよい。
【００２７】
第２中間データ算出部２１は、遅延時間設定部１９により算出された遅延時間に基づいて、第１の中間データに平滑化処理を行った第２の中間データを算出する。「第２の中間データ」は、例えば平滑化処理後の指令速度である。すなわち、第２中間データ算出部２１は、第１中間データ算出部１５により算出された平滑化処理前の指令速度と、遅延時間設定部１９により算出された遅延時間とに基づいて、例えば台形状の波形を平滑化した波形に沿って変化する指令速度を算出する。
【００２８】
指令出力部２３は、第２中間データ算出部２１により算出された第２の中間データに基づいて、サーボモータ１１を制御するための第２の指令をモータ制御装置７に出力する。前述のように、第２の指令は例えば位置指令である。すなわち、指令出力部２３は、第２中間データ算出部２１により算出された平滑化処理後の指令速度に基づいて、制御周期毎の移動量を表す位置指令を出力する。
【００２９】
なお、指令生成装置５は、原則として、第２の指令を出力してサーボモータ１１の位置決め動作を開始する前に、位置決めが完了するまでの全ての指令データを予め生成する。すなわち、第１中間データ算出部１５が位置決めを完了するまでの第１の中間データを算出し、当該第１の中間データに基づいて遅延時間設定部１９が遅延時間を設定し、当該遅延時間に基づいて第２中間データ算出部２１が位置決めを完了するまでの第２の中間データを算出した上で、指令出力部２３が第２の指令の出力を開始する。
【００３０】
但し、サーボモータ１１の位置決め動作中（第２の指令の出力中）に第１の指令が変更された場合には、当該位置決め動作中に第１の中間データ及び第２の中間データが再計算され、更新された第２の中間データに基づいて第２の指令が出力される。このとき、遅延時間設定部１９は、指令出力部２３により第２の指令が出力されていない状態で、指令入力部１３により第１の指令が入力された場合に、遅延時間を算出する。したがって、サーボモータ１１の位置決め動作中に第１の指令が入力（変更）された場合には、遅延時間設定部１９は遅延時間の再計算は行わず、遅延時間は変更されない。その結果、第２の中間データは、第１の指令の変更前に設定された遅延時間に基づいて再計算される。
【００３１】
但し、第１の指令の変更により、例えば、サーボモータ１１の動作方向が反転する場合には、遅延時間が再計算される。すなわち、遅延時間設定部１９は、指令出力部２３により第２の指令が出力されている状態で、例えば、指令入力部１３により第１の指令が変更された場合には、サーボモータ１１の動作方向が反転するタイミングで遅延時間を算出する。その結果、第２の中間データは、第１の指令の変更後に再設定された遅延時間に基づいて再計算される。なお、サーボモータ１１の動作方向が反転する場合以外にも、例えば、第１の指令の変更により一旦指令速度が０となりその後あらためて同じ動作方向に動作するような場合には、指令速度が０となるタイミングで遅延時間を再計算してもよい。
【００３２】
なお、上述した指令入力部１３、第１中間データ算出部１５、遅延時間設定部１９、第２中間データ算出部２１、指令出力部２３等における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部（例えば１つの処理部）で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述の処理機能は後述するＣＰＵ９０１（図１３参照）が実行するプログラムにより実装されてもよいし、その一部又は全部がＡＳＩＣやＦＰＧＡ、その他の電気回路等の実際の装置により実装されてもよい。
【００３３】
＜３．第１の中間データ、第２の中間データの波形＞
次に、図３〜図１１を参照しつつ、第１の中間データ及び第２の中間データの経時変化を表す波形の具体例について説明する。ここでは、例えば第１の指令が移動量、第１の中間データ及び第２の中間データが指令速度、第２の指令が位置指令であり、移動平均による平滑化処理が行われる場合について説明する。
【００３４】
図３に、平滑化処理前の指令速度Ｖ１、及び、平滑化処理後の指令速度Ｖ２の経時変化の一例を示す。図３に示すように、指令速度Ｖ１（第１の中間データ、第１の指令速度の一例）は、台形状の波形に沿って変化する。すなわち、指令速度Ｖ１は、予め設定された加速度に基づいて加速し、予め設定された上限値Ｖｌｉｍで定速となり、予め設定された減速度に基づいて減速する。また、指令速度Ｖ２（第２の中間データ、第２の指令速度の一例）は、台形状の波形を移動平均フィルタにより平滑化した波形に沿って変化する。移動平均による平滑化処理を行うことにより、位置決めが完了するまでの時間ＰＴは、平滑化処理を行う前に比べて遅延時間ＤＴｏだけ遅延する。遅延時間ＤＴｏは、実行される平滑化処理に基づいて予め設定された初期値である。なお、指令速度Ｖ１又は指令速度Ｖ２の各々の制御周期毎の時間積分値の累積値（各波形の面積）は、移動量と一致する。
【００３５】
図４に、微小な移動量である場合の指令速度Ｖ１及び指令速度Ｖ２の経時変化の一例を示す。なお、図４は、本実施形態との比較のために、遅延時間を初期値ＤＴｏに固定した場合の指令速度Ｖ１及び指令速度Ｖ２を示している。遅延時間ＤＴｏが一定である場合には、移動量が小さくなるにつれて、位置決めを完了するまでの時間ＰＴに対する遅延時間ＤＴｏの割合が次第に大きくなり、遅延時間の影響が大きくなる。特に、図４に示すように、指令速度Ｖ１の最大値Ｖｍａｘが上限値Ｖｌｉｍに到達しないような微小な移動量である場合には、位置決めを完了するまでの時間ＰＴに対する遅延時間ＤＴｏの割合が著しく大きくなり、遅延時間の影響が顕著となる。
【００３６】
そこで、本実施形態では、微小な移動量でない場合には遅延時間ＤＴを初期値ＤＴｏのままとし、微小な移動量である場合には、前述の（式１）に基づいて遅延時間ＤＴを初期値ＤＴｏよりも短縮するように可変させる。
【００３７】
図５及び図６に、微小な移動量でない場合の指令速度Ｖ１及び指令速度Ｖ２の経時変化の一例を示す。図５は、例えば指令速度Ｖ１の最大値Ｖｍａｘが上限値Ｖｌｉｍに到達し、且つ、指令速度Ｖ１が上限値Ｖｌｉｍで定速となる区間が存在する場合である。図６は、例えば指令速度Ｖ１の最大値Ｖｍａｘが上限値Ｖｌｉｍに到達し、且つ、指令速度Ｖ１が上限値Ｖｌｉｍで定速となる区間が存在しない場合である。図５及び図６に示す例では共に、最大値Ｖｍａｘが上限値Ｖｌｉｍと等しい（＝Ｖｌｉｍ×１００％）ことから、（式１）に基づいて遅延時間ＤＴは初期値ＤＴｏのまま（＝ＤＴｏ×１００％）となる。
【００３８】
図７〜図９に、微小な移動量である場合の指令速度Ｖ１及び指令速度Ｖ２の経時変化の一例を示す。図７は、指令速度Ｖ１の最大値Ｖｍａｘが例えば上限値Ｖｌｉｍの７０％となった場合である。この場合、（式１）に基づいて遅延時間ＤＴは初期値ＤＴｏの７０％に設定される。同様に、図８は、指令速度Ｖ１の最大値Ｖｍａｘが例えば上限値Ｖｌｉｍの５０％となった場合である。この場合、（式１）に基づいて遅延時間ＤＴは初期値ＤＴｏの５０％に設定される。同様に、図９は、指令速度Ｖ１の最大値Ｖｍａｘが例えば上限値Ｖｌｉｍの３０％となった場合である。この場合、（式１）に基づいて遅延時間ＤＴは初期値ＤＴｏの３０％に設定される。このようにすることで、微小な移動量の場合でも、位置決めを完了するまでの時間ＰＴに対する遅延時間ＤＴの割合を小さく抑えることができ、遅延時間の影響を低減できる。
【００３９】
図１０に、サーボモータ１１の位置決め動作中に移動量が変更された場合の指令速度Ｖ１及び指令速度Ｖ２の経時変化の一例を示す。図１０に示す例では、変更前の移動量に基づいて、指令速度Ｖ１の最大値Ｖｍａｘ１が例えば上限値Ｖｌｉｍの５０％となり、遅延時間ＤＴは初期値ＤＴｏの５０％に設定された上で、位置指令によるサーボモータ１１の位置決め動作が行われている。その後、例えば時間Ｔ１において移動量が変更され、変更後の移動量に基づいて、指令速度Ｖ１の最大値Ｖｍａｘ２が例えば上限値Ｖｌｉｍの１００％となっている。
【００４０】
このような場合に、仮に、遅延時間ＤＴを変更して位置指令を新たに生成した場合には、変更前の移動量に基づいて算出された位置指令による動作を、変更後の移動量に基づいて算出された位置指令による動作にスムーズに移行することが難しくなり、振動発生の要因となる。また、それらの連続性を担保するために複雑な演算を行う場合には、演算負担の増大を招く。
【００４１】
そこで本実施形態では、前述のように遅延時間ＤＴの変更は行わず、初期値ＤＴｏの５０％のままとする。その結果、移動量の変更後は、変更された移動量と、移動量の変更前に設定された遅延時間ＤＴ（初期値ＤＴｏ×５０％）に基づいて、指令速度Ｖ１，Ｖ２が再計算される。そして、再計算された指令速度Ｖ２に基づいて生成された位置指令により、サーボモータ１１の位置決め動作が行われる。これにより、位置決め動作中に移動量が変更された場合でも、複雑な演算を行うことなく振動の発生を防止できる。
【００４２】
図１１に、サーボモータ１１の位置決め動作中に移動量が変更された場合の指令速度Ｖ１及び指令速度Ｖ２の経時変化の他の例を示す。図１１に示す例では、変更前の移動量に基づいて、指令速度Ｖ１の最大値Ｖｍａｘが例えば上限値Ｖｌｉｍ１の７０％となり、遅延時間ＤＴ１は初期値ＤＴｏの７０％に設定された上で、位置指令によるサーボモータ１１の位置決め動作が行われている。その後、例えば時間Ｔ１において移動量が変更され、当該移動量の変更により、サーボモータ１１の動作方向が反転している。この場合、サーボモータ１１の動作方向が反転するタイミング（指令速度Ｖ２が０となるタイミング）である時間Ｔ２で遅延時間ＤＴが再計算される。
【００４３】
図１１に示す例では、変更後の移動量に基づいて、指令速度Ｖ１の最小値Ｖｍｉｎが例えば下限値Ｖｌｉｍ２の５０％となっている。これにより、時間Ｔ２において遅延時間ＤＴ２が初期値ＤＴｏの５０％に再設定され、変更された移動量と、変更された遅延時間ＤＴ２に基づいて、指令速度Ｖ１，Ｖ２が再計算される。そして、再計算された指令速度Ｖ２に基づいて生成された位置指令により、サーボモータ１１の位置決め動作が行われる。このようにすることで、遅延時間ＤＴを変更する場合でも、変更前の移動量に基づいた位置指令による動作を変更後の移動量に基づいた位置指令による動作にスムーズに移行することが可能となり、複雑な演算を行うことなく振動の発生を防止できる。
【００４４】
＜４．指令生成装置の制御内容＞
次に、図１２を参照しつつ、指令生成装置５が実行する制御内容（指令生成方法）の一例について説明する。ここでも上記と同様に、例えば第１の指令が移動量、第１の中間データ及び第２の中間データが指令速度、第２の指令が位置指令であり、移動平均による平滑化処理が行われる場合について説明する。
【００４５】
図１２に示すように、ステップＳ１０では、指令生成装置５は、指令入力部１３により、上位制御装置３から出力された、サーボモータ１１を制御するための移動量を入力する。
【００４６】
ステップＳ２０では、指令生成装置５は、第１中間データ算出部１５により、上記ステップＳ１０で入力した移動量に基づいて指令速度Ｖ１を算出する。
【００４７】
ステップＳ３０では、指令生成装置５は、遅延時間設定部１９により、上記ステップＳ２０で算出した指令速度Ｖ１に移動平均による平滑化処理を行った場合の位置決めを完了するまでの時間が、指令速度Ｖ１に移動平均による平滑化処理を行わない場合の位置決めを完了するまでの時間に対して遅れる遅延時間ＤＴを、上記ステップＳ１０で入力した移動量に基づいて可変に設定する。例えば遅延時間設定部１９は、前述の（式１）に基づいて、遅延時間の初期値ＤＴｏに、指令速度Ｖ１の上限値Ｖｌｉｍに対する最大値Ｖｍａｘの割合を乗ずることにより、遅延時間ＤＴを算出する。
【００４８】
ステップＳ４０では、指令生成装置５は、第２中間データ算出部２１により、上記ステップＳ３０で設定された遅延時間ＤＴに基づいて、上記ステップＳ２０で算出した指令速度Ｖ１に移動平均による平滑化処理を行った指令速度Ｖ２を算出する。
【００４９】
ステップＳ５０では、指令生成装置５は、指令出力部２３により、上記ステップＳ４０で算出された指令速度Ｖ２に基づいて、サーボモータ１１を制御するための位置指令をモータ制御装置７に出力する。以上により、本フローチャートを終了する。
【００５０】
＜５．実施形態の効果＞
以上説明したように、本実施形態の指令生成装置５は、サーボモータ１１を制御するための第１の指令を入力する指令入力部１３と、第１の指令に基づいて第１の中間データを算出する第１中間データ算出部１５と、第１の中間データに平滑化処理を行った場合の第１の指令に基づく位置決めを完了するまでの時間が、第１の中間データに平滑化処理を行わない場合の第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間ＤＴを、第１の指令に基づいて可変に設定する遅延時間設定部１９と、遅延時間ＤＴに基づいて、第１の中間データに平滑化処理を行った第２の中間データを算出する第２中間データ算出部２１と、第２の中間データに基づいて、サーボモータ１１を制御するための第２の指令を出力する指令出力部２３とを有する。
【００５１】
本実施形態では、第１の中間データに平滑化処理を行った場合の遅延時間ＤＴを、第１の指令に基づいて可変に設定できる。これにより、第１の指令に応じて遅延時間ＤＴを調整できるので、例えば第１の指令が微小な移動量である場合に遅延時間ＤＴを短縮することが可能となる。また、平滑化処理により平滑化された第１の中間データの滑らかな波形を維持したまま、第１の指令に応じて遅延時間ＤＴを調整できるので、微小な移動量である場合でも算出した中間データや生成した指令が不連続となるのを防止することが可能となり、振動の発生を抑制できる。したがって、微小な移動量の場合でも振動の発生を抑制でき、位置決めが完了するまでの時間を短縮できる。
【００５２】
また、本実施形態では特に、遅延時間設定部１９は、第１の指令に基づいて算出された第１の中間データの最大値Ｖｍａｘが、予め設定された第１の中間データの上限値Ｖｌｉｍに到達しない場合（微小な移動量の場合）に、遅延時間ＤＴを予め設定された初期値ＤＴｏよりも短縮するように設定する。これにより、次のような効果を奏する。
【００５３】
仮に、遅延時間ＤＴを予め設定された初期値ＤＴｏに固定した状態で指令生成装置５を運用した場合、例えば第１の指令が比較的大きな移動量である場合には、位置決めを完了するまでの時間ＰＴに対する遅延時間ＤＴｏの割合が小さくなるため、遅延時間の影響も小さい。一方、例えば第１の指令が比較的小さな移動量である場合には、位置決めを完了するまでの時間ＰＴに対する遅延時間ＤＴｏの割合が大きくなるため、遅延時間の影響も大きくなる。つまり、移動量が微小になるほど遅延時間の割合が大きくなり、その影響は顕著となる。
【００５４】
本実施形態では、第１の指令が、第１の中間データの最大値Ｖｍａｘが上限値Ｖｌｉｍに到達しないような微小な移動量である場合に限定して、遅延時間ＤＴを予め設定された初期値ＤＴｏよりも短縮するように設定する。これにより、遅延時間ＤＴを効果的に短縮してその影響を低減できると共に、遅延時間ＤＴの影響が少ない場合には調整を行わないことで演算負担を軽減できる。
【００５５】
また、本実施形態では特に、遅延時間設定部１９は、遅延時間ＤＴの初期値ＤＴｏに、第１の中間データの上限値Ｖｌｉｍに対する最大値Ｖｍａｘの割合を乗ずることにより、遅延時間ＤＴを算出する。
【００５６】
このようにすることで、第１の指令が、第１の中間データの最大値Ｖｍａｘが上限値Ｖｌｉｍに到達するような比較的大きな移動量である場合には、遅延時間ＤＴを可変させずに初期値ＤＴｏのままとして設定することができる。また、第１の指令が、第１の中間データの最大値Ｖｍａｘが上限値Ｖｌｉｍに到達しないような微小な移動量である場合には、遅延時間ＤＴを移動量に応じて短縮するように設定することができる。このような遅延時間ＤＴの可変な設定処理を簡単な演算によって実現できる。
【００５７】
また、本実施形態では特に、遅延時間設定部１９は、指令出力部２３により第２の指令が出力されていない状態で、指令入力部１３により第１の指令が入力された場合に、遅延時間ＤＴを算出する。これにより、次のような効果を奏する。
【００５８】
すなわち本実施形態では、第１中間データ算出部１５が位置決めを完了するまでの第１の中間データを算出し、当該第１の中間データに基づいて遅延時間設定部１９が遅延時間ＤＴを設定し、当該遅延時間ＤＴに基づいて第２中間データ算出部２１が位置決めを完了するまでの第２の中間データを算出した上で、指令出力部２３が第２の指令の出力を開始する。このようにして、第２の指令を出力してサーボモータ１１の位置決め動作を開始する前に、位置決めが完了するまでの全ての指令データを予め生成しておくことにより、位置決め動作中での複雑な指令生成演算を避けることができ、複雑な指令生成演算に伴う中間データや生成した指令が不連続となる恐れを回避することができる。
【００５９】
また、本実施形態では特に、遅延時間設定部１９は、指令出力部２３により第２の指令が出力されている状態で、指令入力部１３により第１の指令が変更された場合には、サーボモータ１１の動作方向が反転するタイミングで遅延時間ＤＴを算出する。これにより、次のような効果を奏する。
【００６０】
すなわち、位置決め動作中に第１の指令に変更（例えば移動量、目標位置、目標速度の変更等）が生じて第１の中間データが変化する場合に、遅延時間ＤＴを変更して第２の中間データを新たに算出する場合には、変更前の第１の指令に基づいて算出された第２の指令による動作を、変更後の第１の指令に基づいて算出された第２の指令による動作にスムーズに移行することが難しくなり、振動発生の要因となる。また、それらの連続性を担保するために複雑な演算を行う場合には、演算負担の増大を招く。
【００６１】
そこで、第１の指令の変更によりサーボモータ１１の動作方向が反転する場合には、その反転するタイミングで遅延時間ＤＴを変更して第２の中間データを新たに算出し、当該算出した第２の中間データに基づく新たな位置指令の出力を反転するタイミングで開始する。これにより、変更前の第１の指令に基づいた第２の指令による動作を変更後の第１の指令に基づいた第２の指令による動作にスムーズに移行することが可能となり、複雑な演算を行うことなく振動の発生を防止できる。
【００６２】
また、本実施形態では特に、遅延時間設定部１９は、第１の中間データに移動平均による平滑化処理を行った場合の位置決めを完了するまでの時間が、第１の中間データに移動平均による平滑化処理を行わない場合の位置決めを完了するまでの時間に対して遅れる遅延時間ＤＴを、第１の指令に基づいて可変に設定する。
【００６３】
移動平均による平滑化処理を行う場合、平滑化処理を行う前と比較して、位置決め完了時間ＰＴが遅延する特性がある。本実施形態では、その遅延時間ＤＴを第１の指令に基づいて可変に設定できるので、位置決めが完了するまでの時間ＰＴを短縮できる。
【００６４】
また、本実施形態では特に、指令入力部１３は、サーボモータ１１を制御するための移動量を入力し、第１中間データ算出部１５は、移動量に基づいて指令速度Ｖ１を算出し、遅延時間設定部１９は、指令速度Ｖ１に移動平均による平滑化処理を行った場合の移動量に基づく位置決めを完了するまでの時間が、指令速度Ｖ１に移動平均による平滑化処理を行わない場合の移動量に基づく位置決めを完了するまでの時間に対して遅れる遅延時間ＤＴを、移動量に基づいて可変に設定し、第２中間データ算出部２１は、遅延時間ＤＴに基づいて、指令速度Ｖ１に平滑化処理を行った指令速度Ｖ２を算出し、指令出力部２３は、指令速度Ｖ２に基づいて、サーボモータ１１を制御するための位置指令を出力する。
【００６５】
本実施形態では、指令速度Ｖ１に移動平均による平滑化処理を行った場合の遅延時間ＤＴを、移動量に基づいて可変に設定できる。これにより、移動量に応じて遅延時間ＤＴを調整できるので、例えば移動量が微小である場合に遅延時間ＤＴを短縮することができる。また、平滑化処理により平滑化された指令速度Ｖ２の滑らかな波形を維持したまま、移動量に応じて遅延時間ＤＴを調整できるので、移動量が微小である場合でも指令速度Ｖ２や生成した指令が不連続となるのを防止することが可能となり、振動の発生を抑制できる。したがって、微小な移動量の場合でも振動の発生を抑制でき、位置決めが完了するまでの時間ＰＴを短縮できる。
【００６６】
＜６．指令生成装置のハードウェア構成例＞
次に、図１３を参照しつつ、指令生成装置５のハードウェア構成例について説明する。
【００６７】
図１３に示すように、指令生成装置５は、例えば、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、ＡＳＩＣ又はＦＰＧＡ等の特定の用途向けに構築された専用集積回路９０７と、入力装置９１３と、出力装置９１５と、記録装置９１７と、ドライブ９１９と、接続ポート９２１と、通信装置９２３とを有する。これらの構成は、バス９０９や入出力インターフェース９１１を介し相互に信号を伝達可能に接続されている。
【００６８】
プログラムは、例えば、ＲＯＭ９０３やＲＡＭ９０５、前述の記録部１７を含む、ハードディスク等により構成される記録装置９１７等に記録しておくことができる。
【００６９】
また、プログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のＣＤ・ＭＯディスク・ＤＶＤ等の光ディスク、半導体メモリ等のリムーバブルな記録媒体９２５に、一時的又は非一時的（永続的）に記録しておくこともできる。このような記録媒体９２５は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体９２５に記録されたプログラムは、ドライブ９１９により読み出されて、入出力インターフェース９１１やバス９０９等を介し上記記録装置９１７に記録されてもよい。
【００７０】
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等（図示せず）に記録しておくこともできる。この場合、プログラムは、ＬＡＮやインターネット等のネットワークＮＷを介し転送され、通信装置９２３がこのプログラムを受信する。そして、通信装置９２３が受信したプログラムは、入出力インターフェース９１１やバス９０９等を介し上記記録装置９１７に記録されてもよい。
【００７１】
また、プログラムは、例えば、適宜の外部接続機器９２７に記録しておくこともできる。この場合、プログラムは、適宜の接続ポート９２１を介し転送され、入出力インターフェース９１１やバス９０９等を介し上記記録装置９１７に記録されてもよい。
【００７２】
そして、ＣＰＵ９０１が、上記記録装置９１７に記録されたプログラムに従い各種の処理を実行することにより、前述の指令入力部１３、第１中間データ算出部１５、遅延時間設定部１９、第２中間データ算出部２１、指令出力部２３等による処理が実現される。この際、ＣＰＵ９０１は、例えば、上記記録装置９１７からプログラムを直接読み出して実行してもよいし、ＲＡＭ９０５に一旦ロードした上で実行してもよい。更にＣＰＵ９０１は、例えば、プログラムを通信装置９２３やドライブ９１９、接続ポート９２１を介し受信する場合、受信したプログラムを記録装置９１７に記録せずに直接実行してもよい。
【００７３】
また、ＣＰＵ９０１は、必要に応じて、例えばマウス・キーボード・マイク（図示せず）等の入力装置９１３から入力する信号や情報に基づいて各種の処理を行ってもよい。
【００７４】
そして、ＣＰＵ９０１は、上記の処理を実行した結果を、例えば表示装置や音声出力装置等の出力装置９１５から出力してもよく、さらにＣＰＵ９０１は、必要に応じてこの処理結果を通信装置９２３や接続ポート９２１を介し送信してもよく、上記記録装置９１７や記録媒体９２５に記録させてもよい。
【００７５】
なお、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【００７６】
５            指令生成装置
１１          サーボモータ（モータ）
１３          指令入力部
１５          第１中間データ算出部
１９          遅延時間設定部
２１          第２中間データ算出部
２３          指令出力部
ＤＴ          遅延時間
ＤＴｏ        初期値
Ｖ１          指令速度（第１の中間データ）
Ｖ２          指令速度（第２の中間データ）
Ｖｌｉｍ      上限値
Ｖｍａｘ      最大値
【要約】
【課題】微小な移動量の場合でも振動の発生を抑制でき、位置決めが完了するまでの時間を短縮できるようにする。
【解決手段】指令生成装置５は、サーボモータ１１を制御するための第１の指令を入力する指令入力部１３と、第１の指令に基づいて第１の中間データを算出する第１中間データ算出部１５と、第１の中間データに平滑化処理を行った場合の第１の指令に基づく位置決めを完了するまでの時間が、第１の中間データに平滑化処理を行わない場合の第１の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間ＤＴを、第１の指令に基づいて可変に設定する遅延時間設定部１９と、遅延時間ＤＴに基づいて、第１の中間データに平滑化処理を行った第２の中間データを算出する第２中間データ算出部２１と、第２の中間データに基づいて、サーボモータ１１を制御するための第２の指令を出力する指令出力部２３とを有する。
【選択図】図２【図１】
0006960112.tif 000002
【図２】
0006960112.tif 000003
【図３】
0006960112.tif 000004
【図４】
0006960112.tif 000005
【図５】
0006960112.tif 000006
【図６】
0006960112.tif 000007
【図７】
0006960112.tif 000008
【図８】
0006960112.tif 000009
【図９】
0006960112.tif 000010
【図１０】
0006960112.tif 000011
【図１１】
0006960112.tif 000012
【図１２】
0006960112.tif 000013
【図１３】
0006960112.tif 000014