(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、一実施の形態について図面を参照しつつ説明する。
【0011】
<1.モータ制御システムの全体構成>
まず、
図1を参照しつつ、本実施形態に係るモータ制御システム1の全体構成の一例について説明する。
【0012】
図1に示すように、モータ制御システム1は、上位制御装置3と、指令生成装置5と、モータ制御装置7と、エンコーダ9を備えたサーボモータ11とを有する。
【0013】
上位制御装置3は、サーボモータ11を制御するための第1の指令を指令生成装置5に出力する。「第1の指令」は、サーボモータ11をどのように駆動するかを規定する指令であり、例えば移動量である。なお、第1の指令は、例えば位置指令や速度指令でもよいし、指令生成装置5において後述する指令速度V1の波形を特定可能であれば、指令の種類は限定されるものではない。
【0014】
指令生成装置5は、上位制御装置3から出力された第1の指令に基づいて、サーボモータ11を制御するための第2の指令を生成し、モータ制御装置7に出力する。「第2の指令」は、例えば位置指令である。なお、第2の指令は位置指令以外の指令、例えば速度指令でもよい。
【0015】
モータ制御装置7は、指令生成装置5から出力された第2の指令に基づいて、サーボモータ11を制御する。例えば、第2の指令が位置指令である場合には、モータ制御装置7は、エンコーダ9により検出された駆動位置に基づいて、サーボモータ11の駆動位置が位置指令に追従するように位置フィードバック制御を行う。また例えば、第2の指令が速度指令である場合には、モータ制御装置7は、エンコーダ9により検出された駆動速度に基づいて、サーボモータ11の駆動速度が速度指令に追従するように速度フィードバック制御を行う。
【0016】
サーボモータ11(モータの一例)は、例えばロボット、加工機、工作機等の産業機械(図示省略)を駆動する。サーボモータ11は、サーボモータの駆動状態(駆動位置や駆動速度)を検出するエンコーダ9を有する。エンコーダ9は、検出結果をモータ制御装置7に出力する。なお、図示は省略するが、モータ制御装置7及びサーボモータ11は産業機械の軸数に応じた数だけ設けられる。
【0017】
なお、上述した上位制御装置3又は指令生成装置5は、例えばモーションコントローラで構成されてもよいし、又は汎用パーソナルコンピュータ(PC)としてもよい。あるいは、プログラマブルロジックコントローラ(PLC)等により構成されてもよい。
【0018】
また、上述した上位制御装置3、指令生成装置5、モータ制御装置7の全部又は一部を、別体でなく一体の制御装置として構成してもよい。また、上位制御装置3、指令生成装置5、モータ制御装置7のいずれかを、複数の制御装置で構成してもよい。
【0019】
<2.指令生成装置の機能構成>
次に、
図2を参照しつつ、指令生成装置5の機能構成の一例について説明する。
【0020】
図2に示すように、指令生成装置5は、指令入力部13と、第1中間データ算出部15と、記録部17と、遅延時間設定部19と、第2中間データ算出部21と、指令出力部23とを有する。
【0021】
指令入力部13は、上位制御装置3から出力された、サーボモータ11を制御するための第1の指令を入力する。前述のように、第1の指令は例えば移動量である。
【0022】
第1中間データ算出部15は、第1の指令に基づいて第1の中間データを算出する。「第1の中間データ」は、例えば平滑化処理前の指令速度である。具体的には、記録部17に、予め設定された指令速度の上限値、加速度、減速度等が記録されている。第1中間データ算出部15は、上位制御装置3から入力した移動量と、記録部17に記録された上限値、加速度、減速度とに基づいて、例えば台形状の波形に沿って変化する指令速度を算出する。
【0023】
遅延時間設定部19は、第1の中間データに平滑化処理を行った場合の第1の指令に基づく位置決めを完了するまでの時間が、第1の中間データに平滑化処理を行わない場合の第1の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間を、第1の指令に基づいて可変に設定する。「平滑化処理」は、例えば移動平均フィルタによる平滑化処理である。なお、遅延時間の時間設定が可能であれば、移動平均以外の平滑化処理としてもよい。
【0024】
具体的には、遅延時間設定部19は、第1中間データ算出部15により算出された指令速度の最大値が、予め設定された指令速度の上限値に到達しない場合に、遅延時間を予め設定された初期値よりも短縮するように設定する。なお、以下では適宜、指令速度の最大値が指令速度の上限値に到達しない場合の移動量を「微小な移動量」という。また、遅延時間の初期値は、予め設定されて記録部17に記録されている。
【0025】
例えば遅延時間設定部19は、下記(式1)に基づいて、遅延時間の初期値に、指令速度の上限値に対する最大値の割合を乗ずることにより、遅延時間を算出する。
DT=DTo×(Vmax/Vlim)・・・(式1)
なお、DTは遅延時間、DToは遅延時間の初期値、Vmaxは第1中間データ算出部15により算出された指令速度の最大値、Vlimは予め設定された指令速度の上限値である。
【0026】
なお、微小な移動量の場合に遅延時間を初期値よりも短縮することが可能であれば、遅延時間の算出手法は上記以外としてもよい。
【0027】
第2中間データ算出部21は、遅延時間設定部19により算出された遅延時間に基づいて、第1の中間データに平滑化処理を行った第2の中間データを算出する。「第2の中間データ」は、例えば平滑化処理後の指令速度である。すなわち、第2中間データ算出部21は、第1中間データ算出部15により算出された平滑化処理前の指令速度と、遅延時間設定部19により算出された遅延時間とに基づいて、例えば台形状の波形を平滑化した波形に沿って変化する指令速度を算出する。
【0028】
指令出力部23は、第2中間データ算出部21により算出された第2の中間データに基づいて、サーボモータ11を制御するための第2の指令をモータ制御装置7に出力する。前述のように、第2の指令は例えば位置指令である。すなわち、指令出力部23は、第2中間データ算出部21により算出された平滑化処理後の指令速度に基づいて、制御周期毎の移動量を表す位置指令を出力する。
【0029】
なお、指令生成装置5は、原則として、第2の指令を出力してサーボモータ11の位置決め動作を開始する前に、位置決めが完了するまでの全ての指令データを予め生成する。すなわち、第1中間データ算出部15が位置決めを完了するまでの第1の中間データを算出し、当該第1の中間データに基づいて遅延時間設定部19が遅延時間を設定し、当該遅延時間に基づいて第2中間データ算出部21が位置決めを完了するまでの第2の中間データを算出した上で、指令出力部23が第2の指令の出力を開始する。
【0030】
但し、サーボモータ11の位置決め動作中(第2の指令の出力中)に第1の指令が変更された場合には、当該位置決め動作中に第1の中間データ及び第2の中間データが再計算され、更新された第2の中間データに基づいて第2の指令が出力される。このとき、遅延時間設定部19は、指令出力部23により第2の指令が出力されていない状態で、指令入力部13により第1の指令が入力された場合に、遅延時間を算出する。したがって、サーボモータ11の位置決め動作中に第1の指令が入力(変更)された場合には、遅延時間設定部19は遅延時間の再計算は行わず、遅延時間は変更されない。その結果、第2の中間データは、第1の指令の変更前に設定された遅延時間に基づいて再計算される。
【0031】
但し、第1の指令の変更により、例えば、サーボモータ11の動作方向が反転する場合には、遅延時間が再計算される。すなわち、遅延時間設定部19は、指令出力部23により第2の指令が出力されている状態で、例えば、指令入力部13により第1の指令が変更された場合には、サーボモータ11の動作方向が反転するタイミングで遅延時間を算出する。その結果、第2の中間データは、第1の指令の変更後に再設定された遅延時間に基づいて再計算される。なお、サーボモータ11の動作方向が反転する場合以外にも、例えば、第1の指令の変更により一旦指令速度が0となりその後あらためて同じ動作方向に動作するような場合には、指令速度が0となるタイミングで遅延時間を再計算してもよい。
【0032】
なお、上述した指令入力部13、第1中間データ算出部15、遅延時間設定部19、第2中間データ算出部21、指令出力部23等における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部(例えば1つの処理部)で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述の処理機能は後述するCPU901(
図13参照)が実行するプログラムにより実装されてもよいし、その一部又は全部がASICやFPGA、その他の電気回路等の実際の装置により実装されてもよい。
【0033】
<3.第1の中間データ、第2の中間データの波形>
次に、
図3〜
図11を参照しつつ、第1の中間データ及び第2の中間データの経時変化を表す波形の具体例について説明する。ここでは、例えば第1の指令が移動量、第1の中間データ及び第2の中間データが指令速度、第2の指令が位置指令であり、移動平均による平滑化処理が行われる場合について説明する。
【0034】
図3に、平滑化処理前の指令速度V1、及び、平滑化処理後の指令速度V2の経時変化の一例を示す。
図3に示すように、指令速度V1(第1の中間データ、第1の指令速度の一例)は、台形状の波形に沿って変化する。すなわち、指令速度V1は、予め設定された加速度に基づいて加速し、予め設定された上限値Vlimで定速となり、予め設定された減速度に基づいて減速する。また、指令速度V2(第2の中間データ、第2の指令速度の一例)は、台形状の波形を移動平均フィルタにより平滑化した波形に沿って変化する。移動平均による平滑化処理を行うことにより、位置決めが完了するまでの時間PTは、平滑化処理を行う前に比べて遅延時間DToだけ遅延する。遅延時間DToは、実行される平滑化処理に基づいて予め設定された初期値である。なお、指令速度V1又は指令速度V2の各々の制御周期毎の時間積分値の累積値(各波形の面積)は、移動量と一致する。
【0035】
図4に、微小な移動量である場合の指令速度V1及び指令速度V2の経時変化の一例を示す。なお、
図4は、本実施形態との比較のために、遅延時間を初期値DToに固定した場合の指令速度V1及び指令速度V2を示している。遅延時間DToが一定である場合には、移動量が小さくなるにつれて、位置決めを完了するまでの時間PTに対する遅延時間DToの割合が次第に大きくなり、遅延時間の影響が大きくなる。特に、
図4に示すように、指令速度V1の最大値Vmaxが上限値Vlimに到達しないような微小な移動量である場合には、位置決めを完了するまでの時間PTに対する遅延時間DToの割合が著しく大きくなり、遅延時間の影響が顕著となる。
【0036】
そこで、本実施形態では、微小な移動量でない場合には遅延時間DTを初期値DToのままとし、微小な移動量である場合には、前述の(式1)に基づいて遅延時間DTを初期値DToよりも短縮するように可変させる。
【0037】
図5及び
図6に、微小な移動量でない場合の指令速度V1及び指令速度V2の経時変化の一例を示す。
図5は、例えば指令速度V1の最大値Vmaxが上限値Vlimに到達し、且つ、指令速度V1が上限値Vlimで定速となる区間が存在する場合である。
図6は、例えば指令速度V1の最大値Vmaxが上限値Vlimに到達し、且つ、指令速度V1が上限値Vlimで定速となる区間が存在しない場合である。
図5及び
図6に示す例では共に、最大値Vmaxが上限値Vlimと等しい(=Vlim×100%)ことから、(式1)に基づいて遅延時間DTは初期値DToのまま(=DTo×100%)となる。
【0038】
図7〜
図9に、微小な移動量である場合の指令速度V1及び指令速度V2の経時変化の一例を示す。
図7は、指令速度V1の最大値Vmaxが例えば上限値Vlimの70%となった場合である。この場合、(式1)に基づいて遅延時間DTは初期値DToの70%に設定される。同様に、
図8は、指令速度V1の最大値Vmaxが例えば上限値Vlimの50%となった場合である。この場合、(式1)に基づいて遅延時間DTは初期値DToの50%に設定される。同様に、
図9は、指令速度V1の最大値Vmaxが例えば上限値Vlimの30%となった場合である。この場合、(式1)に基づいて遅延時間DTは初期値DToの30%に設定される。このようにすることで、微小な移動量の場合でも、位置決めを完了するまでの時間PTに対する遅延時間DTの割合を小さく抑えることができ、遅延時間の影響を低減できる。
【0039】
図10に、サーボモータ11の位置決め動作中に移動量が変更された場合の指令速度V1及び指令速度V2の経時変化の一例を示す。
図10に示す例では、変更前の移動量に基づいて、指令速度V1の最大値Vmax1が例えば上限値Vlimの50%となり、遅延時間DTは初期値DToの50%に設定された上で、位置指令によるサーボモータ11の位置決め動作が行われている。その後、例えば時間T1において移動量が変更され、変更後の移動量に基づいて、指令速度V1の最大値Vmax2が例えば上限値Vlimの100%となっている。
【0040】
このような場合に、仮に、遅延時間DTを変更して位置指令を新たに生成した場合には、変更前の移動量に基づいて算出された位置指令による動作を、変更後の移動量に基づいて算出された位置指令による動作にスムーズに移行することが難しくなり、振動発生の要因となる。また、それらの連続性を担保するために複雑な演算を行う場合には、演算負担の増大を招く。
【0041】
そこで本実施形態では、前述のように遅延時間DTの変更は行わず、初期値DToの50%のままとする。その結果、移動量の変更後は、変更された移動量と、移動量の変更前に設定された遅延時間DT(初期値DTo×50%)に基づいて、指令速度V1,V2が再計算される。そして、再計算された指令速度V2に基づいて生成された位置指令により、サーボモータ11の位置決め動作が行われる。これにより、位置決め動作中に移動量が変更された場合でも、複雑な演算を行うことなく振動の発生を防止できる。
【0042】
図11に、サーボモータ11の位置決め動作中に移動量が変更された場合の指令速度V1及び指令速度V2の経時変化の他の例を示す。
図11に示す例では、変更前の移動量に基づいて、指令速度V1の最大値Vmaxが例えば上限値Vlim1の70%となり、遅延時間DT1は初期値DToの70%に設定された上で、位置指令によるサーボモータ11の位置決め動作が行われている。その後、例えば時間T1において移動量が変更され、当該移動量の変更により、サーボモータ11の動作方向が反転している。この場合、サーボモータ11の動作方向が反転するタイミング(指令速度V2が0となるタイミング)である時間T2で遅延時間DTが再計算される。
【0043】
図11に示す例では、変更後の移動量に基づいて、指令速度V1の最小値Vminが例えば下限値Vlim2の50%となっている。これにより、時間T2において遅延時間DT2が初期値DToの50%に再設定され、変更された移動量と、変更された遅延時間DT2に基づいて、指令速度V1,V2が再計算される。そして、再計算された指令速度V2に基づいて生成された位置指令により、サーボモータ11の位置決め動作が行われる。このようにすることで、遅延時間DTを変更する場合でも、変更前の移動量に基づいた位置指令による動作を変更後の移動量に基づいた位置指令による動作にスムーズに移行することが可能となり、複雑な演算を行うことなく振動の発生を防止できる。
【0044】
<4.指令生成装置の制御内容>
次に、
図12を参照しつつ、指令生成装置5が実行する制御内容(指令生成方法)の一例について説明する。ここでも上記と同様に、例えば第1の指令が移動量、第1の中間データ及び第2の中間データが指令速度、第2の指令が位置指令であり、移動平均による平滑化処理が行われる場合について説明する。
【0045】
図12に示すように、ステップS10では、指令生成装置5は、指令入力部13により、上位制御装置3から出力された、サーボモータ11を制御するための移動量を入力する。
【0046】
ステップS20では、指令生成装置5は、第1中間データ算出部15により、上記ステップS10で入力した移動量に基づいて指令速度V1を算出する。
【0047】
ステップS30では、指令生成装置5は、遅延時間設定部19により、上記ステップS20で算出した指令速度V1に移動平均による平滑化処理を行った場合の位置決めを完了するまでの時間が、指令速度V1に移動平均による平滑化処理を行わない場合の位置決めを完了するまでの時間に対して遅れる遅延時間DTを、上記ステップS10で入力した移動量に基づいて可変に設定する。例えば遅延時間設定部19は、前述の(式1)に基づいて、遅延時間の初期値DToに、指令速度V1の上限値Vlimに対する最大値Vmaxの割合を乗ずることにより、遅延時間DTを算出する。
【0048】
ステップS40では、指令生成装置5は、第2中間データ算出部21により、上記ステップS30で設定された遅延時間DTに基づいて、上記ステップS20で算出した指令速度V1に移動平均による平滑化処理を行った指令速度V2を算出する。
【0049】
ステップS50では、指令生成装置5は、指令出力部23により、上記ステップS40で算出された指令速度V2に基づいて、サーボモータ11を制御するための位置指令をモータ制御装置7に出力する。以上により、本フローチャートを終了する。
【0050】
<5.実施形態の効果>
以上説明したように、本実施形態の指令生成装置5は、サーボモータ11を制御するための第1の指令を入力する指令入力部13と、第1の指令に基づいて第1の中間データを算出する第1中間データ算出部15と、第1の中間データに平滑化処理を行った場合の第1の指令に基づく位置決めを完了するまでの時間が、第1の中間データに平滑化処理を行わない場合の第1の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間DTを、第1の指令に基づいて可変に設定する遅延時間設定部19と、遅延時間DTに基づいて、第1の中間データに平滑化処理を行った第2の中間データを算出する第2中間データ算出部21と、第2の中間データに基づいて、サーボモータ11を制御するための第2の指令を出力する指令出力部23とを有する。
【0051】
本実施形態では、第1の中間データに平滑化処理を行った場合の遅延時間DTを、第1の指令に基づいて可変に設定できる。これにより、第1の指令に応じて遅延時間DTを調整できるので、例えば第1の指令が微小な移動量である場合に遅延時間DTを短縮することが可能となる。また、平滑化処理により平滑化された第1の中間データの滑らかな波形を維持したまま、第1の指令に応じて遅延時間DTを調整できるので、微小な移動量である場合でも算出した中間データや生成した指令が不連続となるのを防止することが可能となり、振動の発生を抑制できる。したがって、微小な移動量の場合でも振動の発生を抑制でき、位置決めが完了するまでの時間を短縮できる。
【0052】
また、本実施形態では特に、遅延時間設定部19は、第1の指令に基づいて算出された第1の中間データの最大値Vmaxが、予め設定された第1の中間データの上限値Vlimに到達しない場合(微小な移動量の場合)に、遅延時間DTを予め設定された初期値DToよりも短縮するように設定する。これにより、次のような効果を奏する。
【0053】
仮に、遅延時間DTを予め設定された初期値DToに固定した状態で指令生成装置5を運用した場合、例えば第1の指令が比較的大きな移動量である場合には、位置決めを完了するまでの時間PTに対する遅延時間DToの割合が小さくなるため、遅延時間の影響も小さい。一方、例えば第1の指令が比較的小さな移動量である場合には、位置決めを完了するまでの時間PTに対する遅延時間DToの割合が大きくなるため、遅延時間の影響も大きくなる。つまり、移動量が微小になるほど遅延時間の割合が大きくなり、その影響は顕著となる。
【0054】
本実施形態では、第1の指令が、第1の中間データの最大値Vmaxが上限値Vlimに到達しないような微小な移動量である場合に限定して、遅延時間DTを予め設定された初期値DToよりも短縮するように設定する。これにより、遅延時間DTを効果的に短縮してその影響を低減できると共に、遅延時間DTの影響が少ない場合には調整を行わないことで演算負担を軽減できる。
【0055】
また、本実施形態では特に、遅延時間設定部19は、遅延時間DTの初期値DToに、第1の中間データの上限値Vlimに対する最大値Vmaxの割合を乗ずることにより、遅延時間DTを算出する。
【0056】
このようにすることで、第1の指令が、第1の中間データの最大値Vmaxが上限値Vlimに到達するような比較的大きな移動量である場合には、遅延時間DTを可変させずに初期値DToのままとして設定することができる。また、第1の指令が、第1の中間データの最大値Vmaxが上限値Vlimに到達しないような微小な移動量である場合には、遅延時間DTを移動量に応じて短縮するように設定することができる。このような遅延時間DTの可変な設定処理を簡単な演算によって実現できる。
【0057】
また、本実施形態では特に、遅延時間設定部19は、指令出力部23により第2の指令が出力されていない状態で、指令入力部13により第1の指令が入力された場合に、遅延時間DTを算出する。これにより、次のような効果を奏する。
【0058】
すなわち本実施形態では、第1中間データ算出部15が位置決めを完了するまでの第1の中間データを算出し、当該第1の中間データに基づいて遅延時間設定部19が遅延時間DTを設定し、当該遅延時間DTに基づいて第2中間データ算出部21が位置決めを完了するまでの第2の中間データを算出した上で、指令出力部23が第2の指令の出力を開始する。このようにして、第2の指令を出力してサーボモータ11の位置決め動作を開始する前に、位置決めが完了するまでの全ての指令データを予め生成しておくことにより、位置決め動作中での複雑な指令生成演算を避けることができ、複雑な指令生成演算に伴う中間データや生成した指令が不連続となる恐れを回避することができる。
【0059】
また、本実施形態では特に、遅延時間設定部19は、指令出力部23により第2の指令が出力されている状態で、指令入力部13により第1の指令が変更された場合には、サーボモータ11の動作方向が反転するタイミングで遅延時間DTを算出する。これにより、次のような効果を奏する。
【0060】
すなわち、位置決め動作中に第1の指令に変更(例えば移動量、目標位置、目標速度の変更等)が生じて第1の中間データが変化する場合に、遅延時間DTを変更して第2の中間データを新たに算出する場合には、変更前の第1の指令に基づいて算出された第2の指令による動作を、変更後の第1の指令に基づいて算出された第2の指令による動作にスムーズに移行することが難しくなり、振動発生の要因となる。また、それらの連続性を担保するために複雑な演算を行う場合には、演算負担の増大を招く。
【0061】
そこで、第1の指令の変更によりサーボモータ11の動作方向が反転する場合には、その反転するタイミングで遅延時間DTを変更して第2の中間データを新たに算出し、当該算出した第2の中間データに基づく新たな位置指令の出力を反転するタイミングで開始する。これにより、変更前の第1の指令に基づいた第2の指令による動作を変更後の第1の指令に基づいた第2の指令による動作にスムーズに移行することが可能となり、複雑な演算を行うことなく振動の発生を防止できる。
【0062】
また、本実施形態では特に、遅延時間設定部19は、第1の中間データに移動平均による平滑化処理を行った場合の位置決めを完了するまでの時間が、第1の中間データに移動平均による平滑化処理を行わない場合の位置決めを完了するまでの時間に対して遅れる遅延時間DTを、第1の指令に基づいて可変に設定する。
【0063】
移動平均による平滑化処理を行う場合、平滑化処理を行う前と比較して、位置決め完了時間PTが遅延する特性がある。本実施形態では、その遅延時間DTを第1の指令に基づいて可変に設定できるので、位置決めが完了するまでの時間PTを短縮できる。
【0064】
また、本実施形態では特に、指令入力部13は、サーボモータ11を制御するための移動量を入力し、第1中間データ算出部15は、移動量に基づいて指令速度V1を算出し、遅延時間設定部19は、指令速度V1に移動平均による平滑化処理を行った場合の移動量に基づく位置決めを完了するまでの時間が、指令速度V1に移動平均による平滑化処理を行わない場合の移動量に基づく位置決めを完了するまでの時間に対して遅れる遅延時間DTを、移動量に基づいて可変に設定し、第2中間データ算出部21は、遅延時間DTに基づいて、指令速度V1に平滑化処理を行った指令速度V2を算出し、指令出力部23は、指令速度V2に基づいて、サーボモータ11を制御するための位置指令を出力する。
【0065】
本実施形態では、指令速度V1に移動平均による平滑化処理を行った場合の遅延時間DTを、移動量に基づいて可変に設定できる。これにより、移動量に応じて遅延時間DTを調整できるので、例えば移動量が微小である場合に遅延時間DTを短縮することができる。また、平滑化処理により平滑化された指令速度V2の滑らかな波形を維持したまま、移動量に応じて遅延時間DTを調整できるので、移動量が微小である場合でも指令速度V2や生成した指令が不連続となるのを防止することが可能となり、振動の発生を抑制できる。したがって、微小な移動量の場合でも振動の発生を抑制でき、位置決めが完了するまでの時間PTを短縮できる。
【0066】
<6.指令生成装置のハードウェア構成例>
次に、
図13を参照しつつ、指令生成装置5のハードウェア構成例について説明する。
【0067】
図13に示すように、指令生成装置5は、例えば、CPU901と、ROM903と、RAM905と、ASIC又はFPGA等の特定の用途向けに構築された専用集積回路907と、入力装置913と、出力装置915と、記録装置917と、ドライブ919と、接続ポート921と、通信装置923とを有する。これらの構成は、バス909や入出力インターフェース911を介し相互に信号を伝達可能に接続されている。
【0068】
プログラムは、例えば、ROM903やRAM905、前述の記録部17を含む、ハードディスク等により構成される記録装置917等に記録しておくことができる。
【0069】
また、プログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のCD・MOディスク・DVD等の光ディスク、半導体メモリ等のリムーバブルな記録媒体925に、一時的又は非一時的(永続的)に記録しておくこともできる。このような記録媒体925は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体925に記録されたプログラムは、ドライブ919により読み出されて、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0070】
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等(図示せず)に記録しておくこともできる。この場合、プログラムは、LANやインターネット等のネットワークNWを介し転送され、通信装置923がこのプログラムを受信する。そして、通信装置923が受信したプログラムは、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0071】
また、プログラムは、例えば、適宜の外部接続機器927に記録しておくこともできる。この場合、プログラムは、適宜の接続ポート921を介し転送され、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0072】
そして、CPU901が、上記記録装置917に記録されたプログラムに従い各種の処理を実行することにより、前述の指令入力部13、第1中間データ算出部15、遅延時間設定部19、第2中間データ算出部21、指令出力部23等による処理が実現される。この際、CPU901は、例えば、上記記録装置917からプログラムを直接読み出して実行してもよいし、RAM905に一旦ロードした上で実行してもよい。更にCPU901は、例えば、プログラムを通信装置923やドライブ919、接続ポート921を介し受信する場合、受信したプログラムを記録装置917に記録せずに直接実行してもよい。
【0073】
また、CPU901は、必要に応じて、例えばマウス・キーボード・マイク(図示せず)等の入力装置913から入力する信号や情報に基づいて各種の処理を行ってもよい。
【0074】
そして、CPU901は、上記の処理を実行した結果を、例えば表示装置や音声出力装置等の出力装置915から出力してもよく、さらにCPU901は、必要に応じてこの処理結果を通信装置923や接続ポート921を介し送信してもよく、上記記録装置917や記録媒体925に記録させてもよい。
【0075】
なお、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【解決手段】指令生成装置5は、サーボモータ11を制御するための第1の指令を入力する指令入力部13と、第1の指令に基づいて第1の中間データを算出する第1中間データ算出部15と、第1の中間データに平滑化処理を行った場合の第1の指令に基づく位置決めを完了するまでの時間が、第1の中間データに平滑化処理を行わない場合の第1の指令に基づく位置決めを完了するまでの時間に対して遅れる遅延時間DTを、第1の指令に基づいて可変に設定する遅延時間設定部19と、遅延時間DTに基づいて、第1の中間データに平滑化処理を行った第2の中間データを算出する第2中間データ算出部21と、第2の中間データに基づいて、サーボモータ11を制御するための第2の指令を出力する指令出力部23とを有する。