JP3599849B2 - Distribution method of movement command in servo control - Google Patents

Distribution method of movement command in servo control Download PDF

Info

Publication number
JP3599849B2
JP3599849B2 JP23319895A JP23319895A JP3599849B2 JP 3599849 B2 JP3599849 B2 JP 3599849B2 JP 23319895 A JP23319895 A JP 23319895A JP 23319895 A JP23319895 A JP 23319895A JP 3599849 B2 JP3599849 B2 JP 3599849B2
Authority
JP
Japan
Prior art keywords
command
servo
movement command
processing cycle
movement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP23319895A
Other languages
Japanese (ja)
Other versions
JPH0962331A (en
Inventor
哲朗 加藤
創一 有田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FANUC Corp
Original Assignee
FANUC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FANUC Corp filed Critical FANUC Corp
Priority to JP23319895A priority Critical patent/JP3599849B2/en
Publication of JPH0962331A publication Critical patent/JPH0962331A/en
Application granted granted Critical
Publication of JP3599849B2 publication Critical patent/JP3599849B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、サーボ制御に関し、特にNC工作機械やロボットの制御装置等に使用されるサーボ制御において、サーボ制御ループの処理周期毎に分配される移動指令の分配方法に関する。
【0002】
【従来の技術】
NC工作機械やロボットの制御装置等において、制御装置側のホストCPUは、制御対象物が所望の動きを行うような位置、速度、あるいは軌跡を計画し、この軌道計画に基づいてサーボCPUを介してサーボモータの制御を行っている。
【0003】
軌道計画の処理周期がサーボ制御の処理周期に比べて長い場合、サーボCPUは動作を滑らかにするために軌道計画の処理周期毎の移動指令を、サーボ処理周期毎の移動指令に分配する必要がある。
【0004】
一般に、サーボ制御ループの処理周期は、近年の高速DSP(Digitalsignal processer;デジタル信号プロセッサ)の採用によって短縮されるのに対して、軌道計画については、逆変換等に多大な処理時間を要するため、軌道計画の処理周期はサーボ処理周期に比べて長い周期を要する傾向にあるため、サーボ制御を行う場合、軌道計画の処理周期毎の移動指令をサーボ処理周期毎の移動指令に分配する処理の必要性が増大している。
【0005】
なお、通常、軌道計画の処理周期は、軌道計画の処理を行うホストCPUとサーボ処理を行うサーボCPUとの間の通信周期により制限されることが多いため、以下では通信周期の処理周期を軌道計画の処理周期として扱うものとする。
表すものとする。
【0006】
工作機械やロボット等の制御対象物は、バネ要素およびダンパ要素を含む2慣性系モデルにより一般化することができる。図6は2慣性系モデルのモデル例である。符号10はモータ側を示し、符号11は機械側を示している。このモータ側10と機械側11の間に減速器が設けられ、該減速器のバネ定数をK[kg.cm/rad]、粘性係数をD[kg.cm/(rad/s)]とする。また、モータのロータイナーシャをJm[kg.cm.s]、モータの動摩擦係数をAm[kg.cm.s]、モータ位置をθm[rad]、負荷側のイナーシャをJL [kg.cm.s]、負荷位置(ロボットの場合には、ロボットのアーム先端位置)をθL [rad]、モータのトルク定数をKt[kg.cm/Ap]とする。
【0007】
モータへの電流指令をu[Ap]とし、トルク指令をτ[kg.cm]として、負荷側について運動方程式をたてると以下の式(1)となる。
【0008】
JL ・θL **+D・(θL *−θm*)+K・(θL −θm)=0…(1)
また、モータ側について運動方程式をたてると以下の式(2)となる。
【0009】

Figure 0003599849
なお、記号の右側に付した「*」は、その記号で示される変数を微分することを示し、「*」は1回微分を表し「**」は2回微分を表している。すなわち、θL **は負荷位置θL の2回微分で負荷の速度を表している。また、(θL −θm)は制御対象点である負荷位置に対するモータのロータ回転位置偏差(ねじれ量)を意味し、(θm*−θL *)は速度偏差(ねじれ速度)を意味している。
【0010】
上記式(1),(2)から、負荷側位置と電流指令との関係は以下の式(3)によって表される。
【0011】
Figure 0003599849
ここで、DはKより充分大きい(D<<K)とすることができるため、さらに以下の式(4)とすることができる。
【0012】
Figure 0003599849
ここで、負荷位置θL を指令値uの通りに動作させるためのフィードフォワードトルクuffは、移動指令をθrとすると以下の式(5)となる。
【0013】
Figure 0003599849
このとき、sの項は充分小さいため無視することができるが、sの項のフィードフォワード分は大きく、制振効果に影響を与えることになる。
【0014】
従来、このような2慣性系モデルにおいて、軌道計画の処理周期が短い場合には、サーボ処理周期において軌道計画の移動指令を単に等分配して得られる分配指令によってサーボ制御を行ったり、サーボ処理周期において軌道計画の移動指令を移動平均によるフィルタリングで得られる分配指令によってサーボ制御を行ったり、あるいは、サーボ処理周期において軌道計画の移動指令を指数加減速によるフィルタリングで得られる分配指令によってサーボ制御を行っている。
【0015】
【発明が解決しようとする課題】
しかしながら、従来のサーボ制御における移動指令の分配方法では、制御対象の加々速度がスパイク状に大きくなるため、この加々速度を用いてフィードフォワード制御を行うと、トルク指令が飽和したり、制御対象の動きが振動的になるという問題点がある。2慣性系の制御対象においては、加々速度による制御が有効な場合が多く、この加々速度が異常に大きくなったり振動する場合には、制御に不都合が生じることになる。
【0016】
ここで、ホスト側の処理周期およびホストCPUとサーボCPUとの間の通信周期を例えば20msとし、サーボ側の処理周期を1msとし、等分配によって移動指令を分配した場合、移動平均フィルタによって移動指令を分配した場合、指数フィルタによって移動指令を分配した場合の各場合について、加速度および加々速度の変化について、図7〜図12を用いて説明する。
【0017】
以下の説明では、移動指令は、通常ホスト側とサーボ側との通信周期毎の移動指令である場合が多いため、移動指令の単位を[rad/20ms]とする。
図7は、移動指令をサーボ処理周期毎に等分配する場合のブロック線図であり、図10はこのときの移動指令,加速度指令,および加々速度指令を示す図である。図7において、ホストCPUからの移動指令は、サーボ側の処理周期(1ms)に合わせて等分配するために(1/20)の係数項によって指令値が除され、さらに、サーボ側の処理周期毎に移動指令を取り出すためにサンプリングが行われる。これによって、等分配された1ms毎の移動指令が出力される。
【0018】
図10(a)はホストCPUからの移動指令(図中の[rad/20ms]の単位)と等分配された移動指令(図中の[1/20rad/ms]の単位)の速度を表し、図10(b)は等分配された速度指令に対する加速度[rad/ms]を表し、図10(c)は等分配された速度指令に対する加々速度[rad/ms]を表している。
【0019】
この等分配の場合には、サーボ処理周期毎の移動指令は不連続な階段状となり、また、加々速度はスパイク状となり、異常に大きな値をとる場合がある。
【0020】
また、図8は、移動指令をサーボ処理周期毎に移動平均フィルタによって移動指令を分配する場合のブロック線図であり、図11はこのときの移動指令,加速度指令,および加々速度指令を示す図である。図8において、ホストCPUからの移動指令は、サーボ側の処理周期(1ms)に合わせて等分配するために(1/20)の係数項によって指令値が除され、サーボ側の処理周期毎に移動指令を取り出すためにサンプリングが行われる。さらに、サンプリングされた移動指令は、移動平均フィルタによってサンプリング周期毎にずらしながら平均をとる。これによって、移動平均によって分配された1ms毎の移動指令が出力される。図11(a)はホストCPUからの移動指令(図中の[rad/20ms]の単位)と移動平均によって分配された移動指令(図中の[1/20rad/ms]の単位)の速度を表し、図11(b)は移動平均によって分配された速度指令に対する加速度[rad/ms]を表し、図11(c)は移動平均によって分配された速度指令に対する加々速度[rad/ms]を表している。
【0021】
また、図9は、移動指令をサーボ処理周期毎に指数フィルタによって移動指令を分配する場合のブロック線図であり、図12はこのときの移動指令,加速度指令,および加々速度指令を示す図である。図9において、ホストCPUからの移動指令は、サーボ側の処理周期(1ms)に合わせて等分配するために(1/20)の係数項によって指令値が除され、サーボ側の処理周期毎に移動指令を取り出すためにサンプリングが行われる。さらに、サンプリングされた移動指令は、指数フィルタによってフィルタリングされ、1ms毎の移動指令が出力される。図12(a)はホストCPUからの移動指令(図中の[rad/20ms]の単位)と指令フィルタによって分配された移動指令(図中の[1/20rad/ms]の単位)の速度を表し、図12(b)は指令フィルタによって分配された速度指令に対する加速度[rad/ms]を表し、図12(c)は指令フィルタによって分配された速度指令に対する加々速度[rad/ms]を表している。
【0022】
図10〜図12に示すようなスパイク状の異常に大きな値の加々速度を用いてフィードフォワードを行うと、電流指令が飽和したり、不連続に表れる周期性のために制御対象が振動的となる虞がある。
【0023】
また、軌道計画の工程において、加々速度を制限して移動指令を作成しても、サーボ処理では計算値以上の加々速度を指令する場合がある。
【0024】
そこで、本発明は前記した従来の問題点を解決して、サーボ制御ループにおるけ加々速度を制限することができ、また、軌道計画により計画された加々速度をサーボ制御ループで実現することができるサーボ制御における移動指令の分配方法を提供することを解決課題とする。
【0025】
【課題を解決するための手段】
本発明のサーボ制御における移動指令の分配方法は、サーボ制御において、軌道計画の処理周期毎の移動指令をサーボ処理周期毎の移動指令に等分配し、等分配した移動指令を、軌道計画の処理周期とサーボ処理周期の比率と同じサンプリング数を持つ2段の移動平均処理により分配することによって、前記目的を達成する。
【0026】
本発明において、軌道計画は制御装置側のホストCPUが行う処理であり、制御対象物が所望の動きを行うように位置、速度、あるいは軌跡を計画する処理である。また、等分配は、処理周期の異なる制御装置側の処理周期とサーボ処理周期において、制御装置側の移動指令をサーボ制御側の移動指令に分配する一分配方法であり、制御装置側の移動指令をその処理周期に合わせて等しく分配する処理である。また、本発明の移動平均処理による分配は、等分配された移動指令をサンプリング周期毎にずらしながら平均をとって分配する処理であり、本発明においては、この移動平均処理を2回行うものである。
【0027】
なお、この移動平均処理は、遅延器と加算器により構成される移動平均フィルタによって行うことができる。
【0028】
本発明において、ホストCPUから出力された移動指令は、サーボ側の処理周期に合わせて等分配するために、ホスト側の処理周期とサーボ側の処理周期の比率で定まる係数値によって指令値が除された後サンプリングが行われて、サーボ側の処理周期毎の移動指令が取り出される。このサンプリングされた移動指令は、1段目の移動平均処理によって移動平均され、さらにその出力は2段目の移動平均処理によって移動平均される。この2段目の移動平均処理後の移動指令が、サーボ制御に用いる移動指令となる。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態を図を参照しながら詳細に説明する。
【0030】
図1は、本発明のサーボ制御における移動指令の分配方法を説明するためのブロック線図であり、サーボ側において、ホスト側からホスト側の処理周期に従って受け渡される移動指令をサーボ処理周期毎に等分配し、等分配された移動指令を移動平均によるフィルタを2回通して、2段の移動平均をとることによって移動指令を分配するものである。
【0031】
図1において、ホストCPUからの移動指令は、サーボ側の処理周期に合わせて等分配するためにの係数項によって指令値が除される。ホスト側の処理周期は、ホストCPUが行う軌道計画の処理周期あるいはホストCPUとサーボ側間の通信周期により定まる周期であり、例えば20msとする。これに対して、サーボ側の処理周期は一般にホスト側の処理周期より短く、例えば1msとする。
【0032】
このとき、図2の速度指令の図に示すように、ホスト側からV[rad/20ms]の速度指令が出力される場合(図2(a))には、サーボ側の処理周期単位でみるとV/20[rad/ms]となる。つまり、ホストCPUからの移動指令をサーボ側の処理周期に合わせて等分配するために、この係数項によって指令値をホスト側の処理周期とサーボ側の処理周期の比率で定まる係数値で除する。
【0033】
ここで、ホスト側の移動指令が図3(a)に示すように、例えば20msまではV1[rad/20ms]の速度指令が出力され、20msかち40msまではV2[rad/20ms]の速度指令が出力される場合には、上記係数項を経ることによって図3(b)に示すようなサーボ側の速度指令を得ることができる(ステップS1)。
【0034】
次に、サーボ側の処理周期に合わせて等分配するために、前記ステップS1で求めた速度指令を、サーボ側の処理周期に合わせたサンプリング周期でサンプリングする。サーボ側の処理周期を1msとすると、サンプリングに得られる等分配された移動指令は図3(b)中の点で表される。以下、このサンプリングされた移動指令をAとする(ステップS2)。
【0035】
次に、等分配された移動指令に移動平均処理を行う。移動平均処理は、処理前の移動指令をAとし、1段目の処理後の移動指令をB,2段目の処理後の移動指令をCとし、ホスト側の処理周期とサーボ側の処理周期の比率をnとすると、移動平均処理は以下の式(6)によって表され、
(1+z−1+z−2+・・・+z−(n−1))/n …(6)
n=20の場合の1段目の移動平均の値Bと2段目の移動平均の値Cはそれぞれ以下の以下の式(7),(8)によって表される。
【0036】
Figure 0003599849
この2段目の移動平均の処理の出力Cがサーボ制御に用いる移動指令Cとなる(ステップS3,4)。
【0037】
ここで、指令加速度Acmdおよび指令加々速度Jcmdは、以下の式(9),(10)となる。
【0038】
Figure 0003599849
ここで、
B(i)−B(i−20)=[A(i)−A(i−20)]/20
であり、また、Aはホスト側の処理周期毎の移動指令を等分配したものであり、20msの間は等しいため、
Figure 0003599849
となる。
【0039】
ここで、Iはホスト側の処理周期毎に更新される数値である。
同様にして、
Figure 0003599849
となるため、指令加々速度Jcmdは以下の式(13)となる。
【0040】
Figure 0003599849
この指令加々速度Jcmdは、ホスト側の処理周期に期間中においてはR(I),R(I−1),R(I−2)の値は一定であるため、加々速度は一定となる。したがって、従来のうよなスパイク状の加々速度なくなり、加々速度を制限することができる。
【0041】
一方、ホスト側における処理周期毎の移動指令から求められる加々速度Jcmd’は、
Figure 0003599849
となり、このことはホスト側で軌道計画された加々速度が再現されることを示している。
【0042】
図4はこのときの移動指令,加速度指令,および加々速度指令のを示す概略図である。図4(a)はホストCPUからの移動指令(図中の[rad/20ms]の単位)と2段の移動平均によって分配された移動指令(図中の[1/20rad/ms]の単位)の速度を表し、図4(b)は2段の移動平均によって分配された速度指令に対する加速度[rad/ms]を表し、図4(c)は2段の移動平均によって分配された速度指令に対する加々速度[rad/ms]を表している。
【0043】
図5は、本発明のサーボ制御における移動指令の分配方法を実施するための制御径の要部ブロック図である。図中において、1はサーボ制御系を制御するホストCPUで、軌道計画を行って移動指令を出力する。例えば、ロボットの場合には、補間、直交座標系の座標値から各軸の回転角への変換,逆変換等を行うとともに、ロボットの各軸へ位置指令を分配する。2はホストCPU1とサーボ回路3のプロセッサ間の情報の伝達を仲介する共有RAMで、ホストCPU1が書き込んだ移動指令等のデータをサーボ回路3のプロセッサに受渡し、サーボ回路3のプロセッサが書き込んだアラーム情報等をホストCPU1に引き渡す機能を行う。3はデジタルシグナルプロセッサ等で構成されるサーボ回路でプロセッサ,ROM,RAM等で構成され、ロボットの場合には各軸のサーボモータの制御を行うもので、本発明のサーボ制御における移動指令の分配処理を行う。4はトランジスタインバータ等で構成されるサーボアンプで、5はサーボモータである。また,6はサーボモータ5の位置を検出するパルスコーダで、位置はサーボ回路4にフィードバックされる。なお、サーボアンプ4,サーボモータ5は1軸のみを図示している。
【0044】
【実施例】
図13は、2慣性系の制御対象と制御系の概略ブロック図である。ここで、JL =0.6[kg.cm.s],Jm=0.12[kg.cm.s],Am=1.0[kg.cm.s],Kt=9[kg.cm/Ap],最大電流=80[Ap],K=400[kg.cm/rad],D=0.7[kg.cm/(rad/s)],ポジションゲイン=0.01[1/ms],速度ゲイン1=15[1/ms],速度ゲイン2=6000[1/ms],ねじれフィードバックゲイン1=100[1/ms],ねじれフィードバックゲイン2=3[1/ms]とする。なお、図中の*は推定値を示している。
【0045】
図14は、この2慣性系の制御対象と制御系において指数フィルタによる分配を行った場合の移動指令,実速度(a)および電流指令(b)を示し、図15は、同2慣性系の制御対象と制御系において1段の移動平均フィルタによる分配を行った場合の移動指令,実速度(a)および電流指令(b)を示し、また、図16は、同2慣性系の制御対象と制御系において本発明の分配方法による2段の移動平均フィルタによる分配を行った場合の移動指令,実速度(a)および電流指令(b)を示している。
【0046】
【発明の効果】
以上説明したように、本発明によれば、サーボ制御ループにおるけ加々速度を制限することができ、また、軌道計画により計画された加々速度をサーボ制御ループで実現することができるサーボ制御における移動指令の分配方法を提供することができる。
【図面の簡単な説明】
【図1】本発明のサーボ制御における移動指令の分配方法を説明するためのブロック線図である。
【図2】速度指令を説明するための図である。
【図3】速度指令を説明するための図である。
【図4】2段の移動平均による移動指令,加速度指令,および加々速度指令のを示す概略図である。
【図5】本発明のサーボ制御における移動指令の分配方法を実施するための制御径の要部ブロック図である。
【図6】2慣性系モデルのモデル例である。
【図7】移動指令を等分配する場合のブロック線図である。
【図8】移動指令を移動平均フィルタにより分配する場合のブロック線図である。
【図9】移動指令を指数フィルタにより分配する場合のブロック線図である。
【図10】等分配による移動指令,加速度指令,および加々速度指令を示す図である。
【図11】移動平均フィルタの分配による移動指令,加速度指令,および加々速度指令を示す図である。
【図12】指数フィルタの分配による移動指令,加速度指令,および加々速度指令を示す図である。
【図13】2慣性系の制御対象と制御系の概略ブロック図である。
【図14】2慣性系の制御対象および制御系において指数フィルタの分配による移動指令,実速度,電流指令を示す図である。
【図15】2慣性系の制御対象および制御系において1段の移動フィルタの分配による移動指令,実速度,電流指令を示す図である。
【図16】2慣性系の制御対象および制御系において2段の移動フィルタの分配による移動指令,実速度,電流指令を示す図である。
【符号の説明】
1 制御装置
2 共有RAM
3 サーボ回路
4 サーボアンプ
5 モータ
6 パルスコーダ
10 モータ側
11 機械側[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to servo control, and more particularly to a method of distributing movement commands distributed for each processing cycle of a servo control loop in servo control used for an NC machine tool, a control device of a robot, and the like.
[0002]
[Prior art]
In a control device of an NC machine tool or a robot, a host CPU of the control device plans a position, a speed, or a trajectory at which a control target performs a desired movement, and via a servo CPU based on the trajectory plan. Controls the servo motor.
[0003]
When the processing cycle of the trajectory planning is longer than the processing cycle of the servo control, the servo CPU needs to distribute the movement command for each processing cycle of the trajectory planning to the movement command for each servo processing cycle in order to smooth the operation. is there.
[0004]
In general, the processing cycle of the servo control loop is shortened by the recent adoption of a high-speed digital signal processor (DSP). On the other hand, the trajectory planning requires a great deal of processing time for inverse transformation and the like. Since the processing cycle of the trajectory planning tends to require a longer cycle than the servo processing cycle, when performing servo control, it is necessary to distribute the movement command for each processing cycle of the trajectory planning to the movement command for each servo processing cycle. Sex is increasing.
[0005]
In general, the processing cycle of the trajectory planning is often limited by the communication cycle between the host CPU that performs the processing of the trajectory planning and the servo CPU that performs the servo processing. It shall be treated as the processing cycle of the plan.
Shall be represented.
[0006]
Control objects such as machine tools and robots can be generalized by a two-inertia model including a spring element and a damper element. FIG. 6 is a model example of a two inertial system model. Reference numeral 10 indicates a motor side, and reference numeral 11 indicates a machine side. A speed reducer is provided between the motor side 10 and the machine side 11, and the spring constant of the speed reducer is K [kg. cm / rad] and the viscosity coefficient is D [kg. cm / (rad / s)]. Further, the rotor inertia of the motor is set to Jm [kg. cm. s 2 ], and the dynamic friction coefficient of the motor is Am [kg. cm. s], the motor position is θm [rad], and the inertia on the load side is JL [kg. cm. s 2 ], the load position (the robot arm tip position in the case of a robot) is θL [rad], and the motor torque constant is Kt [kg. cm / Ap].
[0007]
The current command to the motor is u [Ap], and the torque command is τ [kg. cm], the following equation (1) is obtained when an equation of motion is established for the load side.
[0008]
JL · θL ** + D · (θL * −θm *) + K · (θL−θm) = 0 (1)
When the equation of motion is established for the motor side, the following equation (2) is obtained.
[0009]
Figure 0003599849
Note that “*” attached to the right side of the symbol indicates that the variable indicated by the symbol is differentiated, “*” indicates one-time differentiation, and “**” indicates two-time differentiation. That is, θL ** represents the speed of the load by the second derivative of the load position θL. Further, (θL−θm) means a rotor rotational position deviation (torsion amount) with respect to a load position which is a control target point, and (θm * −θL *) means a velocity deviation (torsion speed).
[0010]
From the above equations (1) and (2), the relationship between the load-side position and the current command is represented by the following equation (3).
[0011]
Figure 0003599849
Here, since D can be made sufficiently larger than K (D << K), the following equation (4) can be further obtained.
[0012]
Figure 0003599849
Here, the feedforward torque uff for operating the load position θL as instructed by the command value u is given by the following equation (5) when the movement command is θr.
[0013]
Figure 0003599849
At this time, the term of s 4 can be ignored because sufficiently small, the feedforward component of s 3 sections is large, will affect the damping effect.
[0014]
Conventionally, in such a two-inertia model, when the processing cycle of a trajectory plan is short, servo control is performed by a distribution command obtained by simply distributing a movement command of a trajectory plan in a servo processing cycle, or servo processing is performed. Servo control is performed by the distribution command obtained by filtering the moving command of the trajectory plan in the cycle by moving average filtering, or servo control is performed by the distribution command obtained by filtering the moving command of the trajectory plan by exponential acceleration / deceleration in the servo processing cycle. Is going.
[0015]
[Problems to be solved by the invention]
However, in the conventional method of distributing the movement command in the servo control, the jerk of the control target increases in a spike shape. Therefore, if the feedforward control is performed using the jerk, the torque command may be saturated or the control may not be performed. There is a problem that the movement of the object becomes oscillatory. In a two-inertial-system control target, control by jerk is often effective, and when the jerk becomes abnormally large or vibrates, inconvenience occurs in control.
[0016]
Here, when the processing cycle on the host side and the communication cycle between the host CPU and the servo CPU are set to, for example, 20 ms, the processing cycle on the servo side is set to 1 ms, and the movement commands are distributed by equal distribution, the moving , And changes in acceleration and jerk in each case in which a movement command is distributed by an exponential filter will be described with reference to FIGS. 7 to 12.
[0017]
In the following description, the movement command is usually a movement command for each communication cycle between the host side and the servo side, and therefore the unit of the movement command is [rad / 20 ms].
FIG. 7 is a block diagram in the case where the movement commands are equally distributed for each servo processing cycle, and FIG. 10 is a diagram showing the movement commands, acceleration commands, and jerk commands at this time. In FIG. 7, the movement command from the host CPU is divided by a coefficient term of (1/20) in order to equally distribute the movement command according to the processing cycle (1 ms) on the servo side. Sampling is performed to extract a movement command every time. Thereby, equally distributed movement commands every 1 ms are output.
[0018]
FIG. 10A shows the speed of a movement command (unit of [rad / 20 ms] in the figure) and a movement command (unit of [1/20 rad / ms] in the figure) equally distributed from the host CPU. FIG. 10B shows the acceleration [rad / ms 2 ] for the equally distributed speed command, and FIG. 10C shows the jerk [rad / ms 3 ] for the equally distributed speed command.
[0019]
In the case of this equal distribution, the movement command in each servo processing cycle has a discontinuous step shape, and the jerk has a spike shape, which may take an abnormally large value.
[0020]
FIG. 8 is a block diagram when the movement command is distributed by the moving average filter for each servo processing cycle. FIG. 11 shows the movement command, acceleration command, and jerk command at this time. FIG. In FIG. 8, the movement command from the host CPU is divided by a coefficient term of (1/20) in order to equally distribute the movement command according to the processing cycle (1 ms) on the servo side. Sampling is performed to retrieve the movement command. Further, the sampled movement commands are averaged while being shifted by a moving average filter for each sampling cycle. As a result, a movement command distributed every 1 ms, which is distributed by the moving average, is output. FIG. 11A shows the speed of a movement command (unit of [rad / 20 ms] in the figure) from the host CPU and the speed of a movement command (unit of [1/20 rad / ms] in the figure) distributed by moving average. represents, FIG. 11 (b) represents the acceleration [rad / ms 2] for the speed command distributed by the moving average, and FIG. 11 (c) jerk for the speed command distributed by the moving average is [rad / ms 3 ].
[0021]
FIG. 9 is a block diagram when the movement command is distributed by an exponential filter for each servo processing cycle. FIG. 12 is a diagram showing the movement command, the acceleration command, and the jerk command at this time. It is. In FIG. 9, the movement command from the host CPU is divided by a coefficient term of (1/20) in order to equally distribute the movement command according to the processing cycle (1 ms) on the servo side. Sampling is performed to retrieve the movement command. Further, the sampled movement command is filtered by an exponential filter, and a movement command is output every 1 ms. FIG. 12A shows the speed of the movement command (unit of [rad / 20 ms] in the figure) from the host CPU and the speed of the movement command (unit of [1/20 rad / ms] in the figure) distributed by the command filter. represents, FIG. 12 (b) represents the acceleration [rad / ms 2] for the speed command distributed by a command filter, FIG. 12 (c) jerk for the speed command distributed by the command filter [rad / ms 3 ].
[0022]
When feedforward is performed using a spike-like abnormally large jerk as shown in FIGS. 10 to 12, the current command saturates or the controlled object becomes oscillating due to the periodicity that appears discontinuously. May be caused.
[0023]
In addition, even in the process of trajectory planning, even if the jerk is restricted and a movement command is created, the jerk may be commanded at a speed higher than the calculated value in the servo processing.
[0024]
Therefore, the present invention solves the above-mentioned conventional problems, and can limit the jerk in the servo control loop, and realizes the jerk planned by the trajectory planning in the servo control loop. It is an object of the present invention to provide a method for distributing a movement command in servo control that can be performed.
[0025]
[Means for Solving the Problems]
The method for distributing movement commands in the servo control according to the present invention is such that, in the servo control, the movement commands in each processing cycle of the trajectory plan are equally distributed to the movement commands in each servo processing cycle, and the equally distributed movement commands are processed in the processing of the trajectory planning. The object is achieved by distributing by two-stage moving average processing having the same number of samplings as the ratio of the cycle to the servo processing cycle .
[0026]
In the present invention, the trajectory planning is a process performed by the host CPU on the control device side, and is a process of planning a position, a speed, or a trajectory so that the control target object performs a desired movement. In addition, the equal distribution is a method of distributing a movement command on the control device side to a movement command on the servo control side in a processing cycle and a servo processing cycle on the control device side having different processing cycles. Is equally distributed in accordance with the processing cycle. Further, the distribution by the moving average process of the present invention is a process of distributing by taking an average while shifting the equally distributed movement commands for each sampling period. In the present invention, the moving average process is performed twice. is there.
[0027]
The moving average processing can be performed by a moving average filter including a delay unit and an adder.
[0028]
In the present invention, the movement command output from the host CPU is divided equally by the coefficient value determined by the ratio of the processing cycle on the host side to the processing cycle on the servo side in order to distribute the movement command equally to the processing cycle on the servo side. After that, sampling is performed, and a movement command for each processing cycle on the servo side is extracted. The sampled movement command is subjected to a moving average by a first stage moving average process, and the output thereof is further subjected to a moving average by a second stage moving average process. The movement command after the moving average processing of the second stage is a movement command used for servo control.
[0029]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0030]
FIG. 1 is a block diagram for explaining a method of distributing a movement command in the servo control of the present invention. On the servo side, a movement command transferred from the host in accordance with the processing cycle of the host is changed for each servo processing cycle. The moving commands are distributed by equal-distribution, passing the equally-distributed moving commands twice through a filter based on a moving average, and taking a two-stage moving average.
[0031]
In FIG. 1, the movement command from the host CPU is divided by a coefficient term for equal distribution in accordance with the processing cycle on the servo side. The processing cycle on the host side is a cycle determined by the processing cycle of the trajectory planning performed by the host CPU or the communication cycle between the host CPU and the servo side, and is, for example, 20 ms. On the other hand, the processing cycle on the servo side is generally shorter than the processing cycle on the host side, for example, 1 ms.
[0032]
At this time, when a speed command of V [rad / 20 ms] is output from the host side as shown in the speed command diagram of FIG. 2 (FIG. 2 (a)), it is viewed in processing cycle units on the servo side. And V / 20 [rad / ms]. That is, in order to evenly distribute the movement command from the host CPU according to the processing cycle on the servo side, the command value is divided by a coefficient value determined by the ratio of the processing cycle on the host side to the processing cycle on the servo side by this coefficient term. .
[0033]
Here, as shown in FIG. 3A, the speed command of V1 [rad / 20 ms] is output up to 20 ms, for example, and the speed command of V2 [rad / 20 ms] is output from 20 ms to 40 ms. Is output, the servo-side speed command as shown in FIG. 3B can be obtained through the coefficient term (step S1).
[0034]
Next, in order to perform equal distribution in accordance with the processing cycle on the servo side, the speed command obtained in step S1 is sampled at a sampling cycle corresponding to the processing cycle on the servo side. Assuming that the processing cycle on the servo side is 1 ms, the equally distributed movement commands obtained for sampling are represented by points in FIG. 3B. Hereinafter, the sampled movement command is set to A (step S2).
[0035]
Next, moving average processing is performed on the equally distributed movement commands. In the moving average processing, the moving command before the processing is A, the moving command after the first processing is B, the moving command after the second processing is C, the processing cycle on the host side and the processing cycle on the servo side. Assuming that the ratio of n is n, the moving average processing is represented by the following equation (6).
(1 + z- 1 + z- 2 + ... + z- (n-1) ) / n ... (6)
When n = 20, the first-stage moving average value B and the second-stage moving average value C are expressed by the following equations (7) and (8), respectively.
[0036]
Figure 0003599849
The output C of the moving average processing of the second stage is the movement command C used for the servo control (steps S3 and S4).
[0037]
Here, the commanded acceleration Acmd and the commanded jerk Jcmd are expressed by the following equations (9) and (10).
[0038]
Figure 0003599849
here,
B (i) -B (i-20) = [A (i) -A (i-20)] / 20
In addition, A is a distribution command of the movement command for each processing cycle on the host side, which is equal for 20 ms.
Figure 0003599849
It becomes.
[0039]
Here, I is a numerical value updated for each processing cycle on the host side.
Similarly,
Figure 0003599849
Therefore, the command jerk Jcmd is given by the following equation (13).
[0040]
Figure 0003599849
Since the values of R (I), R (I-1), and R (I-2) are constant during the processing cycle on the host side during this command jerk Jcmd, the jerk is assumed to be constant. Become. Therefore, the conventional spike-shaped jerk is no longer present, and the jerk can be limited.
[0041]
On the other hand, the jerk Jcmd 'obtained from the movement command for each processing cycle on the host side is:
Figure 0003599849
This indicates that the jerk speed planned by the host is reproduced.
[0042]
FIG. 4 is a schematic diagram showing the movement command, acceleration command, and jerk command at this time. FIG. 4A shows a movement command from the host CPU (unit of [rad / 20 ms] in the figure) and a movement command distributed by two-stage moving average (unit of [1/20 rad / ms] in the figure). FIG. 4B shows acceleration [rad / ms 2 ] with respect to the speed command distributed by the two-stage moving average, and FIG. 4C shows the speed command distributed by the two-stage moving average. Represents the jerk [rad / ms 3 ] with respect to.
[0043]
FIG. 5 is a block diagram of a main part of a control diameter for implementing a method of distributing a movement command in servo control according to the present invention. In the figure, reference numeral 1 denotes a host CPU for controlling a servo control system, which performs a trajectory plan and outputs a movement command. For example, in the case of a robot, interpolation, conversion from a coordinate value in a rectangular coordinate system to a rotation angle of each axis, inverse conversion, and the like are performed, and a position command is distributed to each axis of the robot. Reference numeral 2 denotes a shared RAM that mediates the transmission of information between the host CPU 1 and the processor of the servo circuit 3. The shared RAM 2 transfers data such as a movement command written by the host CPU 1 to the processor of the servo circuit 3 and an alarm written by the processor of the servo circuit 3. The function of transferring information and the like to the host CPU 1 is performed. Reference numeral 3 denotes a servo circuit composed of a digital signal processor and the like, which is composed of a processor, ROM, RAM and the like. In the case of a robot, it controls servomotors of each axis. Perform processing. Reference numeral 4 denotes a servo amplifier including a transistor inverter and the like, and reference numeral 5 denotes a servomotor. Reference numeral 6 denotes a pulse coder for detecting the position of the servo motor 5, and the position is fed back to the servo circuit 4. The servo amplifier 4 and the servo motor 5 show only one axis.
[0044]
【Example】
FIG. 13 is a schematic block diagram of a control object of a two-inertia system and a control system. Here, JL = 0.6 [kg. cm. s 2 ], Jm = 0.12 [kg. cm. s 2 ], Am = 1.0 [kg. cm. s], Kt = 9 [kg. cm / Ap], maximum current = 80 [Ap], K = 400 [kg. cm / rad], D = 0.7 [kg. cm / (rad / s)], position gain = 0.01 [1 / ms], speed gain 1 = 15 [1 / ms], speed gain 2 = 6000 [1 / ms], torsion feedback gain 1 = 100 [ 1 / ms] and torsional feedback gain 2 = 3 [1 / ms]. In addition, * in a figure has shown the estimated value.
[0045]
FIG. 14 shows a movement command, an actual speed (a) and a current command (b) when distribution is performed by an exponential filter in the control object of the two-inertia system and the control system, and FIG. FIG. 16 shows a movement command, an actual speed (a) and a current command (b) when distribution is performed by a one-stage moving average filter in the control object and the control system. FIG. 3 shows a movement command, an actual speed (a), and a current command (b) when distribution is performed in a control system using a two-stage moving average filter according to the distribution method of the present invention.
[0046]
【The invention's effect】
As described above, according to the present invention, the jerk in the servo control loop can be limited, and the jerk planned by the trajectory planning can be realized in the servo control loop. A method of distributing a movement command in control can be provided.
[Brief description of the drawings]
FIG. 1 is a block diagram for explaining a method of distributing a movement command in servo control according to the present invention.
FIG. 2 is a diagram for explaining a speed command.
FIG. 3 is a diagram for explaining a speed command.
FIG. 4 is a schematic diagram showing a movement command, an acceleration command, and a jerk command based on a two-stage moving average.
FIG. 5 is a block diagram of a main part of a control diameter for implementing a movement command distribution method in servo control according to the present invention.
FIG. 6 is a model example of a two inertial system model.
FIG. 7 is a block diagram when a movement command is equally distributed.
FIG. 8 is a block diagram when a movement command is distributed by a moving average filter.
FIG. 9 is a block diagram when a movement command is distributed by an exponential filter.
FIG. 10 is a diagram showing a movement command, an acceleration command, and a jerk command by equal distribution.
FIG. 11 is a diagram showing a movement command, an acceleration command, and a jerk command by distribution of a moving average filter.
FIG. 12 is a diagram showing a movement command, an acceleration command, and a jerk command by distribution of an exponential filter.
FIG. 13 is a schematic block diagram of a control object and a control system of a two-inertia system.
FIG. 14 is a diagram showing a movement command, an actual speed, and a current command by distribution of an exponential filter in a controlled object of a two-inertia system and a control system.
FIG. 15 is a diagram showing a movement command, an actual speed, and a current command by distribution of a one-stage movement filter in a control object of a two-inertia system and a control system.
FIG. 16 is a diagram illustrating a movement command, an actual speed, and a current command by distribution of a two-stage movement filter in a control object of a two-inertia system and a control system.
[Explanation of symbols]
1 controller 2 shared RAM
3 Servo circuit 4 Servo amplifier 5 Motor 6 Pulse coder 10 Motor side 11 Machine side

Claims (2)

サーボ制御において、軌道計画の処理周期毎の移動指令をサーボ処理周期毎の移動指令に等分配し、等分配した移動指令を、軌道計画の処理周期とサーボ処理周期の比率と同じサンプリング数を持つ2段の移動平均処理により分配することを特徴とするサーボ制御における移動指令の分配方法。In servo control, the movement command for each processing cycle of the trajectory plan is equally distributed to the movement command for each servo processing cycle, and the equally distributed movement command has the same sampling number as the ratio of the processing cycle of the trajectory plan to the servo processing cycle. A movement command distribution method in servo control, wherein distribution is performed by two-stage moving average processing. 前記移動平均処理は、移動平均フィルタによって行うことを特徴とする請求項1記載のサーボ制御における移動指令の分配方法。2. The method according to claim 1, wherein the moving average processing is performed by a moving average filter.
JP23319895A 1995-08-21 1995-08-21 Distribution method of movement command in servo control Expired - Fee Related JP3599849B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23319895A JP3599849B2 (en) 1995-08-21 1995-08-21 Distribution method of movement command in servo control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23319895A JP3599849B2 (en) 1995-08-21 1995-08-21 Distribution method of movement command in servo control

Publications (2)

Publication Number Publication Date
JPH0962331A JPH0962331A (en) 1997-03-07
JP3599849B2 true JP3599849B2 (en) 2004-12-08

Family

ID=16951293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23319895A Expired - Fee Related JP3599849B2 (en) 1995-08-21 1995-08-21 Distribution method of movement command in servo control

Country Status (1)

Country Link
JP (1) JP3599849B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19939137A1 (en) * 1999-08-18 2001-03-08 Bosch Gmbh Robert Device and method for generating a setpoint for controlling a drive
US7919940B2 (en) * 2007-10-21 2011-04-05 Ge Intelligent Platforms, Inc. System and method for jerk limited trajectory planning for a path planner
JP5259300B2 (en) * 2008-08-21 2013-08-07 株式会社日立産機システム Servo control device
JP5233592B2 (en) * 2008-10-31 2013-07-10 ブラザー工業株式会社 Numerical control method and apparatus
JP5862556B2 (en) * 2012-07-12 2016-02-16 株式会社豊田自動織機 Motor control device and motor control method
EP2843491A1 (en) * 2013-09-03 2015-03-04 Siemens Aktiengesellschaft Positioning with energy and/or time optimisation
CN103777573B (en) * 2013-12-10 2016-06-08 固高科技(深圳)有限公司 Reduce method and the system of contouring error
WO2017022170A1 (en) * 2015-08-05 2017-02-09 パナソニックIpマネジメント株式会社 Motor control device

Also Published As

Publication number Publication date
JPH0962331A (en) 1997-03-07

Similar Documents

Publication Publication Date Title
JP2709969B2 (en) Servo motor control method
JPH05216504A (en) Adaptive sliding mode control system for control object including spring system
JP2604698B2 (en) Angular acceleration control method
US4727303A (en) Positional control method and system utilizing same
Kamnik et al. Application of model reference adaptive control to industrial robot impedance control
US5303333A (en) Method for controlling the acceleration and velocity of at least one controllable axis of a machine tool or robot
US5637969A (en) Vibration control method
JP3599849B2 (en) Distribution method of movement command in servo control
JPH01164280A (en) Acceleration or deceleration controlling system
JPH03289385A (en) Regulating method for gain of motor control
JPH05111889A (en) Control of variable control type robot
JPH0392911A (en) Robot control method for sliding mode control
JP2002091570A (en) Servo control method
JPH05216540A (en) Control system for servo motor
JPH07121239A (en) Control method for robot device
JPH0580805A (en) Adaptive sliding mode control system based on pi control loop
JPH086628A (en) Planning and generating method for movement command with limit of increased increased acceleration
JPS61163406A (en) Robot control device
JP3876010B2 (en) Servo motor acceleration / deceleration control device
JPH10149210A (en) Method for preparing command for positioning control system
JP3121920B2 (en) Acceleration / deceleration control device
JPH06214656A (en) Sliding mode control method provided with damping element
JP2003131705A (en) Servo control method
Pagilla et al. Mechatronic design and control of a robot system interacting with an external environment
JPH05324086A (en) Servo motor control system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040223

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040915

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070924

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees