JP2709766B2 - Feed forward control method of servo motor - Google Patents
Feed forward control method of servo motorInfo
- Publication number
- JP2709766B2 JP2709766B2 JP25597791A JP25597791A JP2709766B2 JP 2709766 B2 JP2709766 B2 JP 2709766B2 JP 25597791 A JP25597791 A JP 25597791A JP 25597791 A JP25597791 A JP 25597791A JP 2709766 B2 JP2709766 B2 JP 2709766B2
- Authority
- JP
- Japan
- Prior art keywords
- cycle
- speed
- movement command
- command
- loop processing
- 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
Links
Landscapes
- Feedback Control In General (AREA)
- Control Of Position Or Direction (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、工作機械の送り軸やロ
ボットのアームを駆動するサーボモータの制御方式に関
し、特に、該サーボモータのフィードフォワード制御に
関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a control system of a servomotor for driving a feed shaft of a machine tool and a robot arm, and more particularly to a feedforward control of the servomotor.
【0002】[0002]
【従来の技術】サーボモータを用いて工作機械の送り軸
やロボットのアームなどを制御するとき、位置偏差量を
低減させるためにフィードフォワード制御が行われる。
特に、工作機械で高速切削を行う場合、サーボ系の追従
遅れによる形状誤差が生じる。そのため、この形状誤差
を少くするため位置ループにフィードフォワードをかけ
ることがある。すなわち、位置,速度処理周期毎、移動
指令を微分して、この微分値にフィードフォワード係数
を乗じた値を通常の位置ループ処理で得られた速度指令
に加算して、この加算値を速度指令とするフィードフォ
ワード制御を行い、位置偏差を低減させ、サーボ遅れを
補正している。2. Description of the Related Art When a servomotor is used to control a feed axis of a machine tool, a robot arm, or the like, feedforward control is performed to reduce the amount of positional deviation.
In particular, when high-speed cutting is performed by a machine tool, a shape error occurs due to a delay in following the servo system. Therefore, in order to reduce this shape error, feedforward may be applied to the position loop. That is, for each position and speed processing cycle, the movement command is differentiated, and a value obtained by multiplying the differentiated value by a feedforward coefficient is added to the speed command obtained by ordinary position loop processing. , The position deviation is reduced, and the servo delay is corrected.
【0003】しかし、数値制御装置等からサーボ回路
側、即ち、位置ループに移動指令が受け渡しされる分配
周期(ITP周期)は8msec程度であり、サーボ回
路内部での位置ループ,速度ループの周期は2msec
或いは1msecである。そして、位置ループでは上記
数値制御装置から移動指令が受け渡されるITP周期を
位置ループ周期で分割し、分割した各位置ループ周期に
おける移動指令が均等になるように制御している。その
ため、数値制御装置から出力される移動指令に加減速時
定数を与えて出力されるようにしても、位置ループでは
各ITP周期内における位置ループ処理周期TP 毎の各
位置ループ処理での移動指令が均等になるように制御さ
れるから、ITP周期が変る位置ループ処理の移動指令
間にのみ移動指令に大きな段差が生じ、これがフィード
フォワード項で微分されて大きな値となり、速度指令は
高周波成分を含むこととなり、速度ループで追従できな
くなり、位置偏差にうねりが生じ、モータや機械の動き
に大きなショックを発生させる原因となる。そこでこの
欠点を解消するために、位置の制御,さらには速度の制
御のフィードフォワードの項に加減速処理を挿入し、上
記うねりを解消させるスムージング操作(平滑処理)を
行うサーボモータの制御方式を本願発明の発明者は特願
平1−150481号で提案した。However, the distribution cycle (ITP cycle) in which the movement command is transferred from the numerical controller or the like to the servo circuit side, that is, the position loop, is about 8 msec, and the cycle of the position loop and the speed loop inside the servo circuit is 2msec
Alternatively, it is 1 msec. In the position loop, the ITP cycle in which the movement command is transferred from the numerical controller is divided by the position loop cycle, and control is performed so that the movement commands in each of the divided position loop cycles are equal. Therefore, even if the acceleration / deceleration time constant is given to the movement command output from the numerical controller and the movement command is output, in the position loop, the movement command in each position loop processing cycle TP for each position loop processing cycle TP in each ITP cycle. Is controlled so as to be equal, a large step is generated in the movement command only between the movement commands of the position loop processing in which the ITP cycle changes, and this is differentiated by the feedforward term to become a large value, and the speed command changes the high frequency component. This means that it is not possible to follow in the speed loop, and the position deviation swells, causing a large shock to the movement of the motor or the machine. Therefore, in order to eliminate this drawback, a servo motor control method for performing a smoothing operation (smoothing process) to eliminate the swell by inserting acceleration / deceleration processing in the feedforward term of position control and further speed control. The inventor of the present invention has proposed in Japanese Patent Application No. 1-150481.
【0004】[0004]
【発明が解決しようとする課題】しかし、上記スムージ
ング操作は、時間的に過去のデータを平均化するもので
あり、フィードフォワードの項に時間的な遅れを等価的
に生じさせるため、位置ループ制御系では加減速時に位
置偏差のうねり等を生じてしまう。However, the above-mentioned smoothing operation is for averaging the past data in time, and in order to cause a time delay equivalently in the feedforward term, the position loop control is performed. In the system, swelling of the position deviation occurs at the time of acceleration / deceleration.
【0005】そこで、本発明は、上記不具合を解決する
ことを目的とし、サーボ系の指令追従性を向上させるサ
ーボモータの制御方式を提供することを目的とするもの
である。SUMMARY OF THE INVENTION It is an object of the present invention to solve the above-mentioned problems and to provide a servomotor control method for improving the command followability of a servo system.
【0006】[0006]
【課題を解決するための手段】本発明は、ITP周期を
位置・速度ループ処理周期で分割した分割数をNとする
と、当該位置・速度ループ処理における周期を中心にN
個の各位置・速度ループ処理周期における移動指令の平
均値を求め、この平均値に位置フィードフォワード係数
を乗じて得られる位置のフィードフォワード量を位置ル
ープ処理で得られる速度指令に加算して速度ループ処理
に対する速度指令とする。さらに、当該位置・速度ルー
プ周期より設定された数の周期だけ進めた上記位置・速
度ループ処理における上記平均値の微分値を求め、該微
分値に速度フィードフォワード係数を乗じて得られる速
度フィードフォワード量を速度ループ処理で得られたト
ルク指令値に加算してサーボモータへのトルク指令とす
ることによって上記課題を解決した。According to the present invention, when the number of divisions obtained by dividing the ITP cycle by the position / velocity loop processing cycle is represented by N, N
The average value of the movement command in each position / speed loop processing cycle is calculated, and the feedforward amount of the position obtained by multiplying this average value by the position feedforward coefficient is added to the speed command obtained by the position loop processing to obtain the speed. This is a speed command for loop processing. Further, a differential value of the average value in the position / velocity loop processing advanced by a set number of cycles from the position / velocity loop period is obtained, and a velocity feedforward obtained by multiplying the differential value by a velocity feedforward coefficient is obtained. The above problem was solved by adding the amount to the torque command value obtained by the speed loop processing to obtain a torque command to the servomotor.
【0007】[0007]
【作用】当該ITP周期より1つ先のITP周期の移動
指令を読み込んでおき、位置・速度ループ処理周期の移
動指令を求めておく。そして、P周期を位置・速度ルー
プ処理周期で割った数をN、位置のフィードフォワード
係数をα1、移動指令のパルスの単位を速度指令の単位
に変換する係数をP、位置・速度ループ処理周期jにお
ける移動指令をa(j)とすると、j周期における位置
のフィードフォワード量FFはj周期を中心にN個の周
期の移動指令の平均値b(j)より求める。しかし、通
常、ITP周期は8msec、位置・速度ループ周期は
1msecか2msecが通常採用されているので、上
記分割数Nは偶数となるので、(−N/2)+1〜N/
2若しくは−N/2〜(N/2)−1の平均値b(j)
によって求める。例えば、(−N/2)〜N/2−1の
周期の平均値は次の数1となる。The movement command of the ITP cycle one cycle ahead of the ITP cycle is read, and the movement command of the position / velocity loop processing cycle is obtained. N is the number obtained by dividing the P cycle by the position / speed loop processing cycle, α1 is the feedforward coefficient of the position, P is the coefficient that converts the unit of the pulse of the movement command into the unit of the speed command, and the position / speed loop processing cycle Assuming that the movement command at j is a (j), the feedforward amount FF at the position in the j period is obtained from the average value b (j) of the movement commands in N periods around the j period. However, since the ITP cycle is usually 8 msec and the position / velocity loop cycle is usually 1 msec or 2 msec, the division number N is an even number, so that (−N / 2) +1 to N / sec
2 or average value b (j) of -N / 2 to (N / 2) -1
Ask by. For example, the average value of the period from (−N / 2) to N / 2-1 is the following equation 1.
【0008】[0008]
【数1】また、(−N/2)+1〜(N/2)の周期の
平均値は次の数2となる。## EQU1 ## The average value of the period of (-N / 2) +1 to (N / 2) is given by the following equation (2).
【0009】[0009]
【数2】そしてこの平均値b(j)に係数をP,α1を
乗じて位置のフィードォワード量FFを次の数3によっ
て求める。## EQU2 ## Then, the average value b (j) is multiplied by the coefficients P and α1, and the feedforward amount FF at the position is obtained by the following equation (3).
【0010】[0010]
【数3】さらには上記数1、数2の演算により求めた値
の加重平均を求めて、平均値b(j)としこれに係数を
P,α1を乗じて位置のフィードォワード量FFとして
もよい。上記数1若しくは数2の演算、さらには数1、
数2の演算で求めた値の加重平均により求めた位置のフ
ィードォワード量FFを当該周期jの位置ループ処理で
求めた速度指令に加算して、この加算値を速度ループ処
理に対する速度指令とする。さらには、L 周期進めた周
期における上記数1等で求めた平均値b(j+L)の微
分値に移動指令のパルスの単位を速度指令の単位に変換
する係数をP、速度フィードフォワード係数α2および
移動指令のパルスの単位を電流の単位に変換する係数P
´を乗じて速度フィードフォワード量FFvを次の数4
により求める。[Mathematical formula-see original document] Further, a weighted average of the values obtained by the calculations of the above formulas 1 and 2 is obtained to obtain an average value b (j), which is multiplied by a coefficient P and α1 to obtain a feedforward amount FF of the position. Is also good. The operation of the above equation 1 or 2 and further the equation 1
The feed-forward amount FF at the position obtained by the weighted average of the values obtained by the calculation of Expression 2 is added to the speed command obtained by the position loop processing of the cycle j, and the added value is added to the speed command for the speed loop processing. I do. Further, a coefficient for converting the unit of the pulse of the movement command into the unit of the speed command into a differential value of the average value b (j + L) obtained by the above equation 1 in the cycle advanced by L cycles is P, the speed feedforward coefficient α2 and Coefficient P for converting pulse unit of movement command to current unit
'To multiply the speed feedforward amount FFv by the following equation 4.
Ask by
【0011】[0011]
【数4】上記数4で求められた速度フィードフォワード
量FFvを速度ループ処理で求めたトルク指令(電流指
令)に加算してサーボモータへのトルク指令とする。[Mathematical formula-see original document] The speed feedforward amount FFv determined by the above expression (4) is added to the torque command (current command) determined by the speed loop processing to obtain a torque command to the servomotor.
【0012】[0012]
【実施例】図1は本発明の一実施例のサーボ系のブロッ
ク線図である。図1中、伝達関数1のKP は位置ループ
におけるポジションゲイン、伝達関数2は速度ループの
積分項で、Tsは位置・速度ループ処理の周期、k1は
速度ループにおける積分ゲインである。伝達関数3のk
2は速度ループにおける比例ゲイン、4はサーボモータ
の機械部で、Ktはトルク定数、Jmはイナーシャ、5
はサーボモータの回転速度を積分し、位置を算出する伝
達関数である。また、6,7は位置のフィードフォワー
ド項であり、6はスムージング回路、7は位置のフィー
ドフォワード係数α1を乗じる項である。FIG. 1 is a block diagram of a servo system according to an embodiment of the present invention. In FIG. 1, KP of the transfer function 1 is a position gain in the position loop, transfer function 2 is an integral term of the speed loop, Ts is a period of the position / speed loop processing, and k1 is an integral gain in the speed loop. K of transfer function 3
2 is a proportional gain in the speed loop, 4 is a mechanical part of the servo motor, Kt is a torque constant, Jm is inertia, 5
Is a transfer function for calculating the position by integrating the rotation speed of the servomotor. Reference numerals 6 and 7 denote position feedforward terms, 6 denotes a smoothing circuit, and 7 denotes a term multiplied by the position feedforward coefficient α1.
【0013】また、8はスムージング回路6の出力を設
定された数の位置・速度ループ処理周期だけ遅らせる伝
達関数で、9は微分を行う伝達関数、10は速度フィー
ドフォワード係数α2を乗じる項で、この要素8,9,
10で速度フィードフォワード制御を行うものである。
また、11はCNC(コンピュータ内蔵の数値制御装
置)から分配周期(ITP周期)毎送られてくる移動指
令MCMDを位置・速度ループ処理周期毎の移動指令に
分割するDDA(Digital Different
ial Analyzer)である。Reference numeral 8 denotes a transfer function for delaying the output of the smoothing circuit 6 by a set number of position / velocity loop processing periods, reference numeral 9 denotes a transfer function for performing differentiation, and reference numeral 10 denotes a term multiplied by a speed feedforward coefficient α2. This element 8, 9,
At 10, speed feed forward control is performed.
Numeral 11 denotes a DDA (Digital Different) for dividing a movement command MCMD sent from a CNC (numerical control device built in a computer) for each distribution cycle (ITP cycle) into a movement command for each position / speed loop processing cycle.
ial Analyzer).
【0014】なお、上記伝達関数の内伝達関数2,8,
9は離散値制御系で表している。上位制御装置であるC
Nより、ITP周期ごとの移動指令MCMDが出力さ
れ、DDA11によって位置・速度ループ周期における
移動指令aを求める。また、上記要素6,8によりフィ
ードォワード量FFを求めるには、1つ先のITP周期
の移動指令を求めておく必要があり、DDA11によっ
て1つ先のITP周期の移動指令を求めておく。そし
て、当該位置・速度ループ処理における移動指令aを求
め、当該位置・速度ループ周期の移動指令aよりサーボ
モータの実際の移動量のフィードバック量Pfを減じて
位置偏差を求めこの位置偏差にポジションゲインKpを
乗じた値に、要素6,7により数1若しくは数2の演算
を行って、若しくはもしくは数1,数2の演算で得られ
る値の加重平均により得られる位置フィードフォワード
量FFを加算し速度指令を求め、この速度指令からサー
ボモータの実速度のフィードバック量Vfを減じて速度
偏差をもとめて、この速度偏差に対して要素2で積分処
理を行った値から、サーボモータの実速度Vfに比例定
数k2を乗じた値を減じて従来と同様な積分、比例の速
度ループ処理を行いトルク指令をもとめ、さらに要素
8,9,10によって数4の演算を行って速度フィード
フォワード量FFvを求めて、この速度フィードフォワ
ード量FFvを従来と同様な処理によって求めたトルク
指令に加算してフィードフォワード制御されたトルク指
令を求め、サーボモータを駆動する。The transfer functions 2, 8,
Reference numeral 9 denotes a discrete value control system. C, which is the host controller
N outputs a movement command MCMD for each ITP cycle, and the DDA 11 obtains a movement command a in the position / speed loop cycle. Further, in order to obtain the feedforward amount FF from the above elements 6 and 8, it is necessary to obtain a movement command for the next ITP cycle, and the DDA 11 obtains a movement command for the next ITP cycle. . Then, a movement command a in the position / speed loop processing is obtained, and a feedback amount Pf of an actual movement amount of the servo motor is subtracted from the movement command a in the position / speed loop cycle to obtain a position deviation. The value multiplied by Kp is subjected to the operation of Expression 1 or 2 by the elements 6 and 7, or the position feedforward amount FF obtained by the weighted average of the values obtained by the operation of Expression 1 or Expression 2 is added. A speed command is obtained, a feedback amount Vf of the actual speed of the servo motor is subtracted from the speed command, and a speed deviation is obtained. Is multiplied by a proportional constant k2, and the same integral and proportional speed loop processing as in the prior art are performed to obtain a torque command. Then, the speed feedforward amount FFv is obtained by performing the calculation of Expression 4, and the speed feedforward amount FFv is added to the torque command obtained by the same processing as that of the related art to obtain a feedforward controlled torque command. Drive the motor.
【0015】図2は、本発明の1実施例を実施するデジ
タルサーボ制御装置のブロック図であり、構成は従来の
デジタルサーボ制御を行う装置と同一構成であるので、
概略的に示している。図2において、20は数値制御装
置(NC)、21は共有RAM、22はプロセッサ(C
PU),ROM,RAM等を有するデジタルサーボ回
路、23はトランジスタインバータ等のサーボアンプ、
24はサーボモータ、25はサーボモータ24の回転と
共にパルスを発生するパルスコーダである。FIG. 2 is a block diagram of a digital servo control device for implementing one embodiment of the present invention. The configuration is the same as that of a conventional device for performing digital servo control.
It is shown schematically. In FIG. 2, reference numeral 20 denotes a numerical controller (NC), 21 denotes a shared RAM, and 22 denotes a processor (C).
PU), a digital servo circuit having ROM, RAM, etc., 23 is a servo amplifier such as a transistor inverter,
Reference numeral 24 denotes a servo motor, and reference numeral 25 denotes a pulse coder that generates a pulse with the rotation of the servo motor 24.
【0016】NC20はIPT周期(分配周期)毎に移
動指令MCMDを共有RAM21に書込み、デジタルサ
ーボ回路22のCPUはこの移動指令MCMDを共有R
AM21から読取り、上記ITP周期をN個に分割した
周期Ts(ITP=Ts×N)で、位置・速度ループ処
理を行う。ITP周期毎、NC20から出力される移動
指令MCMDがITP周期中均等に分配されるように位
置・速度ループ処理Tsにおける移動指令a(j)を求
め、この移動指令a(j)とパルスコーダ25からのフ
ィードバックパルスによって得られるサーボモータ24
の現在位置との差より位置ループ処理を行うと共に、後
述する位置のフィードフォワード制御処理を行って速度
指令を求め、次に、該速度指令とパルスコーダ25から
のフィードバックパルスによって得られるサーボモータ
24の実速度より速度ループ処理、さらには速度のフィ
ードフォワード処理を行い、トルク指令(電流指令)を
求める。そして、電流ループ処理、さらには電流フィー
ドフォワード処理を行い、PWM指令を作成し、サーボ
アンプ23を介してサーボモータ24を駆動する。The NC 20 writes the movement command MCMD into the shared RAM 21 at every IPT cycle (distribution cycle), and the CPU of the digital servo circuit 22 writes the movement command MCMD into the shared RAM 21.
The position / velocity loop processing is performed at a period Ts (ITP = Ts × N) obtained by reading from the AM 21 and dividing the ITP period into N pieces. For each ITP cycle, a movement command a (j) in the position / velocity loop processing Ts is determined so that the movement command MCMD output from the NC 20 is evenly distributed during the ITP cycle, and the movement command a (j) and the pulse coder 25 Servo motor 24 obtained by the feedback pulse of
Of the servo motor 24 obtained by the speed command and the feedback pulse from the pulse coder 25 while performing a position loop process based on the difference between the current position and the current position. A speed loop process and a speed feedforward process are performed from the actual speed to obtain a torque command (current command). Then, a current loop process and further a current feedforward process are performed, a PWM command is created, and the servo motor 24 is driven via the servo amplifier 23.
【0017】図3,図4はディジタルサーボ回路22の
CPUが実施するITP周期ごとの移動指令読み取り処
理、および位置・速度ループ処理周期ごとの位置ループ
処理、速度ループ処理のフローチャートである。本実施
例においては、IPT周期を4分割(N=4)して位置
・速度ループ処理を行なうものとしている。また、位置
フィードフォワード量FFを求めるために、当該周期を
中心にN個の周期の移動指令の平均値b(j)を上記数
式1で求めるものを使用して求めるとし、速度フィード
フォワード処理では2周期(L =2)進めた例で以下説
明する。そのため、移動指令の平均値b(j)は次の数
5となり、フィードフォワード量FFは数6となる。FIGS. 3 and 4 are flowcharts of the movement command reading process for each ITP cycle, the position loop processing and the speed loop processing for each position / speed loop processing cycle, which are executed by the CPU of the digital servo circuit 22. In this embodiment, the position / velocity loop processing is performed by dividing the IPT cycle into four (N = 4). Further, in order to obtain the position feedforward amount FF, it is assumed that the average value b (j) of the movement commands of N cycles around the cycle is obtained by using the above equation 1, and the speed feedforward processing An example in which two cycles (L = 2) are advanced will be described below. Therefore, the average value b (j) of the movement command is given by the following equation 5, and the feedforward amount FF is given by equation 6.
【0018】[0018]
【数5】(Equation 5)
【0019】[0019]
【数6】また、速度のフィードフォワード量FFvは数
4より、次の数7となる。## EQU6 ## The feedforward amount FFv of the speed is given by the following equation (7) from the equation (4).
【0020】[0020]
【数7】上記ケースの場合を例に取ってディジタルサー
ボ回路32のCPUが実施する位置・速度ループ処理に
ついて、図3および図4のフローチャートと共に説明す
る。まず、CPUはITP周期ごとNC20から出力さ
れた1つ次の移動指令MCMDを共有RAM21を介し
て読む(ステップS1)。なお、実際は後述する位置・
速度ループ処理で1周期遅れた位置・速度ループ処理周
期の移動指令で位置・速度ループ処理が行われるので、
ITP周期ごとNC20より出力される移動指令MCM
Dを読み出すことになる。The position / velocity loop processing executed by the CPU of the digital servo circuit 32 will be described with reference to the flowcharts of FIGS. First, the CPU reads the next movement command MCMD output from the NC 20 every ITP cycle via the shared RAM 21 (step S1). In addition, actually,
Since the position / velocity loop processing is performed by the movement command of the position / velocity loop processing cycle delayed by one cycle in the velocity loop processing,
Movement command MCM output from NC20 every ITP cycle
D will be read.
【0021】そして、位置・速度ループ処理周期ごとC
PUは図4に示す処理を開始し、ITP周期ごと読み取
った分配移動指令MCMDより、位置・速度ループ毎の
移動指令a(j+4)を計算する(ステップS10)。
そして、レジスタR(j−2)〜R(j+4)のの記憶
内容を1つシフトし、レイスタR(j+4)にステップ
S10で算出した移動指令a(j+4)を格納する。な
お、分配移動指令MCMDが出力されてない時点では、
該各レジスタの記憶内容は「0」である。すなわち、レ
ジスタR(j−1)の記憶内容をレジスタR(j−2)
に格納し、同様に、R(j−1)にR(j)の記憶内
容、R(j)にR(j+1)の記憶内容、R(j+1)
にR(j+2)の記憶内容、R(j+2)にR(j+
3)の記憶内容、R(j+3)にR(j+4)の記憶内
容を記憶させ、レジスタR(j+4)に移動指令a(j
+4)を格納する(ステップS11−1〜S11−
7)。そして、レジスタに記憶する前回の位置・速度ル
ープ周期の位置偏差e(j−1)にレジスタR(j)に
記憶する当該周期の移動指令a(j)を加算しパルスコ
ーダ25で検出されるサーボモータの移動量の位置のフ
ィードバック量Pf(j)を減じて当該周期の位置偏差
を求める(ステップS12)。Then, for each position / velocity loop processing cycle, C
The PU starts the processing shown in FIG. 4, and calculates a movement command a (j + 4) for each position / speed loop from the distribution movement command MCMD read for each ITP cycle (step S10).
Then, the storage contents of the registers R (j−2) to R (j + 4) are shifted by one, and the movement command a (j + 4) calculated in step S10 is stored in the rayster R (j + 4). At the time when the distribution movement command MCMD is not output,
The content stored in each register is "0". That is, the contents stored in the register R (j-1) are stored in the register R (j-2).
Similarly, the stored contents of R (j) are stored in R (j-1), the stored contents of R (j + 1) are stored in R (j), and R (j + 1) is stored.
Is stored contents of R (j + 2), and R (j + 2) is stored in R (j +
3), the storage content of R (j + 4) is stored in R (j + 3), and the movement command a (j) is stored in the register R (j + 4).
+4) (steps S11-1 to S11-).
7). Then, the movement command a (j) of the cycle stored in the register R (j) is added to the position deviation e (j-1) of the previous position / speed loop cycle stored in the register, and the servo detected by the pulse coder 25 is added. The position deviation of the cycle is obtained by subtracting the feedback amount Pf (j) of the position of the movement amount of the motor (step S12).
【0022】なお、分配移動指令MCMDをITP周期
1つ早読みすることになっているから、当該位置・速度
ループ周期の移動指令a(j)は現在の周期で算出した
移動指令a(j+4)を格納したレジスタR(j+4)
より4個前のレジスタR(j)に格納されている。次に
レジスタR(j+1),R(j),R(j−1),R
(j−2)に格納された移動指令a(j+1),a
(j),a(j−1),a(j−2)によって数5の演
算を行い平均値b(j)を求め、この値に係数α1,P
を乗じて位置フィードフォワード量FFを求める(ステ
ップS13)次に、上記ステップS12で求めた位置偏
差e(j)に位置ループゲインKpを乗じた値にステッ
プS13で求めた位置フィードフォワード量FFを加算
した速度指令Vc(j)を求め(ステップS14)、こ
の速度指令Vc(j)によって従来と同様の速度ループ
処理を行い速度フィードフォワードによる補正前のトル
ク指令Tc´(j)を求める(ステップS15)。次
に、レジスタR(j+3),R(j−1)に記憶された
移動指令a(j+3),a(j−1),によって数7の
演算を行うことによって速度フィードフォワード量FF
vを求める(ステップS16)。そして、ステップS1
5で求めた補正前のトルク指令Tc´(j)にステップ
S15で算出した速度フィードフォワード量FFvを加
算してトルク指令Tc(j)を求め(ステップS1
7)、このトルク指令Tc(j)を電流ループ処理に引
き渡し(ステップS18)、位置・速度ループの処理を
終了する。Since the distribution movement command MCMD is to be read one ITP cycle earlier, the movement command a (j) of the position / speed loop cycle is the movement command a (j + 4) calculated in the current cycle. R (j + 4) that stores
It is stored in the register R (j) four places earlier. Next, the registers R (j + 1), R (j), R (j-1), R
Movement command a (j + 1), a stored in (j-2)
(J), a (j-1), and a (j-2) are used to calculate the average value b (j), and calculate the average value b (j).
To obtain the position feedforward amount FF (step S13). Next, the position feedforward amount FF obtained at step S13 is multiplied by the value obtained by multiplying the position deviation e (j) obtained at step S12 by the position loop gain Kp. The added speed command Vc (j) is obtained (step S14), and the speed command Vc (j) is used to perform the same speed loop processing as before to obtain the torque command Tc '(j) before correction by speed feedforward (step S14). S15). Next, the speed feedforward amount FF is calculated by performing the calculation of Expression 7 using the movement commands a (j + 3) and a (j-1) stored in the registers R (j + 3) and R (j-1).
v is obtained (step S16). Then, step S1
5 is added to the pre-correction torque command Tc ′ (j) calculated in step S15 to obtain the torque command Tc (j) by adding the speed feedforward amount FFv calculated in step S15 (step S1).
7), the torque command Tc (j) is transferred to the current loop processing (step S18), and the processing of the position / velocity loop ends.
【0023】表1,図5、図6は、本実施例における一
例を記載したもので、図5(イ)に示すようにITP周
期ごとの移動指令MCMD(n)が入力されこれより位
置・速度ループ処理周期毎の移動指令a(j)を求め、
この移動指令a(j)より平均値b(j)(この平均値
に係数α1,Pを乗じて位置フィードフォワード量が求
められる)を求めると、図5(ロ)に示すようになる。
なお、表1にこの時の各レジスタR(j+4)〜R(j
−2)に記憶される値a(j+4)〜a(j−2)、お
よび平均値b(j)の値を示している。また、参考とし
て数2で求められる平均値b(j)をb(j)´数1,
数2で算出される平均の加重平均値をb(j)”として
示している。また、この表1で+4はレジスタR(j+
4)に記憶するa(j+4)の値、+3はレジスタR
(j+3)に記憶するa(j+3)の値、…jはレジス
タR(j)に記憶するa(j)の値、…−2はレジスタ
R(j−2)に記憶するa(j−2)の値を示してい
る。Tables 1, 5 and 6 show an example of the present embodiment. As shown in FIG. 5A, a movement command MCMD (n) for each ITP cycle is input, and A movement command a (j) is obtained for each speed loop processing cycle,
When an average value b (j) (a position feedforward amount is obtained by multiplying the average value by the coefficients α1 and P) from the movement command a (j) is obtained as shown in FIG.
Table 1 shows that each of the registers R (j + 4) to R (j
2 (b) shows the values of the values a (j + 4) to a (j-2) and the average value b (j) stored in -2). For reference, the average value b (j) obtained by Expression 2 is calculated as b (j) ′ Expression 1,
The weighted average value of the average calculated by Equation 2 is shown as b (j) ″. In Table 1, +4 indicates the register R (j +
4) The value of a (j + 4) stored in 4), +3 is the register R
The value of a (j + 3) stored in (j + 3),... J is the value of a (j) stored in register R (j),. ).
【0024】[0024]
【表1】 図5および表1から分かるように、位置のフィードフォ
ワード量FF(平均値b(j))はITP周期毎に移動
指令a(j)が急激に変化しても、急激な変化は生じな
く、従来のフィードフォワード制御のように移動指令を
微分したものに係数を乗じてフィードフォワード量とし
た時のように急激な変化がなくそのため位置偏差のうね
りも解消することを意味する。図6は、従来の移動指令
を微分したものに係数を乗じてフィードフォワード量と
したフィードフォワード制御において、移動指令にラン
プ入力を行ったときの位置偏差を検出したときのグラフ
で、図7は、本発明において速度のフィードフォワード
制御でデータを進めないときの(L =0)、移動指令が
ランプ入力における位置偏差を測定してグラフ化したも
のであり、図8は、本発明においてデータを2周期(L
=2)進めた時の位置偏差の測定結果をグラフ化したも
のである。この第6〜8図から明らかのように、位置偏
差のうねりは従来のフィードフォワード制御と比較して
本発明のフィードフォワード制御の方が改善されている
ことが分かる。[Table 1] As can be seen from FIG. 5 and Table 1, even if the movement command a (j) changes abruptly every ITP cycle, the position feedforward amount FF (average value b (j)) does not change abruptly. This means that there is no abrupt change as in the case where the feed command is multiplied by a coefficient obtained by differentiating the movement command as in the conventional feed forward control, and therefore the undulation of the position deviation is also eliminated. FIG. 6 is a graph showing a position deviation when a ramp input is performed on a movement command in a conventional feedforward control in which a coefficient obtained by differentiating a movement command is multiplied by a coefficient. In the present invention, when data is not advanced by the speed feedforward control (L = 0), the movement command is a graph obtained by measuring the position deviation at the ramp input, and FIG. 8 shows the data in the present invention. 2 cycles (L
= 2) It is a graph of the measurement result of the positional deviation when the operation is advanced. As is apparent from FIGS. 6 to 8, it is understood that the undulation of the position deviation is improved in the feedforward control of the present invention as compared with the conventional feedforward control.
【0025】なお、上記実施例では、当該位置・速度ル
ープ処理周期jの1つ先(未来)の周期j+1,当該周
期j,1つおよび2つ前(過去)の周期j−1,j−2
の移動指令を平均化する実施例を説明したが、数2によ
り周期j+2,j+1,j,j−1の移動指令を平均化
する方法でもよい。この場合の平均値は表1でb(j)
´で示す値となり図5(ロ)において、1周期Ts左に
シフトした状態となる。In the above embodiment, the cycle j + 1 which is one cycle (future) ahead of the cycle j of the position / velocity loop, the cycle j, one cycle and j-1 and j-j which is two cycles before (the past). 2
Although the embodiment in which the movement commands are averaged has been described, a method of averaging the movement commands in the periods j + 2, j + 1, j, j-1 according to Equation 2 may be used. The average value in this case is b (j) in Table 1.
5 (b), and is shifted to the left by one cycle Ts in FIG.
【0026】このように、ITP周期を位置・速度ルー
プ周期で分割した数Nが偶数の場合には、平均化の中心
となる位置・速度ループ周期がN個の位置・速度ループ
周期の完全に中心とならない。そのため、位置フィード
フォワード量FFは位置・速度ループ周期の半周期遅れ
るか進む状態になる。この点は、表1及び図5から見て
も明らかであるが、さらに分かり安く説明すると、図9
(a)に示すようにITP周期の移動指令MCMDが1
周期だけ4×4の移動指令がだされたとする。このと
き、数式1で平均値を求めてフィードフォワード量を求
めるとすると、当該ITP周期における位置・速度ルー
プ周期をj=0として各周期の移動指令aを求めると平
均値は図9(b)に示すように周期j=−1から順にj
=5まで、1,2,3,4,3,2,1となる。一方平
均値を数式2で求めると図9(c)に示すように、周期
j=−2から順にj=4まで1,2,3,4,3,2,
1となり、図9(b)では半周期遅れ、図9(c)では
半周期進んでいる。そこで、数式1及び数2で求められ
る平均値の加重平均を取ると、図9(d)に示すように
周期j=−2から順にj=6まで、(1/2),(3/
2),(5/2),(7/2),(7/2),(5/
2),(3/2),(1/2)となり、等価的に時間遅
れ及び進みはなくなる。As described above, when the number N obtained by dividing the ITP cycle by the position / velocity loop cycle is an even number, the position / velocity loop cycle serving as the center of averaging is completely N position / velocity loop cycles. Not the center. Therefore, the position feedforward amount FF is delayed or advanced by a half cycle of the position / velocity loop cycle. This point is evident from Table 1 and FIG. 5.
As shown in (a), the movement command MCMD of the ITP cycle is 1
It is assumed that a 4 × 4 movement command is issued only for the period. At this time, assuming that the feedforward amount is obtained by calculating the average value by Expression 1, if the position / speed loop cycle in the ITP cycle is j = 0 and the movement command a in each cycle is obtained, the average value is as shown in FIG. As shown in FIG.
1, 2, 3, 4, 4, 3, 2, 1 up to = 5. On the other hand, when the average value is obtained by Expression 2, as shown in FIG. 9C, from the period j = -2 to j = 4, 1, 2, 3, 4, 3, 2,
In FIG. 9B, it is delayed by a half cycle, and in FIG. 9C, it is advanced by a half cycle. Then, when a weighted average of the average values obtained by Expression 1 and Expression 2 is taken, as shown in FIG. 9D, (1/2), (3 /
2), (5/2), (7/2), (7/2), (5 /
2), (3/2), (1/2), and the time delay and advance are equivalently eliminated.
【0027】そこで、この加重平均によって位置のフィ
ードフォワード量FFを求めて制御する場合の処理につ
いて図10,図11と共に説明する。この実施例は上述
した実施例とは異なり、平均値をDDA11により求め
られる位置・速度ループ周期の移動指令aから求めるの
ではなく、ITP周期毎指令される移動指令MCMDよ
り求めるようにしている。A process for obtaining and controlling the position feedforward amount FF based on the weighted average will be described with reference to FIGS. This embodiment is different from the above-described embodiment in that the average value is not obtained from the movement command a of the position / speed loop cycle obtained by the DDA 11, but is obtained from the movement command MCMD issued every ITP cycle.
【0028】ディジタルサーボ回路22のCPUは分配
周期毎、図10の処理を実行し、まず、レジスタR3に
レジスタR2に記憶する値、レジスタR2にレジスタR
1に記憶する値を格納し、、レジスタR1に共有RAM
21から読み取った1回先の移動指令MCMDを格納す
る(ステップT1,T2)。そしてカウンタCを「0」
にクリアする(ステップT3)。すなわち、レジスタR
3には当該ITP周期によ1回前(過去)の移動指令M
CMDが記憶され、レジスタR2には当該周期の移動指
令MCDMが、また、レジスタR1には1回先(未来)
の移動指令MCDMが記憶されることになる。なお実際
には、単にレジスタR3にレジスタR2に記憶する値、
レジスタR2にレジスタR1に記憶する値を格納し、、
レジスタR1に分配された移動指令MCDMを格納すれ
ばよく、後述するように位置・速度ループ処理において
1ITP周期遅れて処理が実施されることになる。な
お、レジスタR1〜R3は初期設定で始めは「0」が格
納されている。The CPU of the digital servo circuit 22 executes the processing of FIG. 10 for each distribution cycle. First, the value stored in the register R2 is stored in the register R3, and the value of the register R is stored in the register R2.
1 is stored in the register R1, and the shared RAM is stored in the register R1.
The first move command MCMD read from 21 is stored (steps T1 and T2). Then, set the counter C to “0”
(Step T3). That is, the register R
3 is a movement command M one time before (past) in the ITP cycle.
The CMD is stored, the movement command MCDM of the cycle is stored in the register R2, and one time ahead (future) is stored in the register R1.
Is stored. In practice, the value stored in the register R2 is simply stored in the register R3,
The value stored in the register R1 is stored in the register R2,
What is necessary is just to store the distributed movement command MCDM in the register R1, and the processing is executed with a delay of one ITP cycle in the position / speed loop processing as described later. Note that the registers R1 to R3 initially store "0" in the initial setting.
【0029】一方、位置・速度ループ処理周期毎ディジ
タルサーボ回路22のCPUは、位置偏差の算出処理
(図4のステップS12の処理)を実行した後、次に、
図11に示す処理を実行し(なお、図11には位置フィ
ードフォワード量を求める処理のみを示し他の処理は省
略している)、まず、カウンタCの値が、分配周期を位
置・速度ループ処理周期で除した値N(=分配周期/位
置・速度ループ処理周期)の1/2より小さいか否か判
断し(ステップT10)、小さいならばアキュムレータ
SUNにレジスタR2の値からレジスタR3の値を減じ
た値を加算し(ステップT11)、また、カウンタCの
値がN/2以上ならば、アキュムレータSUNにレジス
タR1の値からレジスタR2の値を減じた値を加算し
(ステップT12)、ステップS13に移行する。な
お、アキュムレータSUNは初期設定で始めは「0」に
されている。On the other hand, after the CPU of the digital servo circuit 22 executes the position deviation calculation processing (the processing of step S12 in FIG. 4) for each position / speed loop processing cycle,
The processing shown in FIG. 11 is executed (only the processing for obtaining the position feedforward amount is shown in FIG. 11 and other processing is omitted). It is determined whether the value is smaller than 1/2 of the value N (= distribution period / position / velocity loop processing period) divided by the processing period (step T10). If smaller, the accumulator SUN stores the value of the register R2 from the value of the register R2. Is added (step T11). If the value of the counter C is equal to or more than N / 2, a value obtained by subtracting the value of the register R2 from the value of the register R1 is added to the accumulator SUN (step T12). Move to step S13. The accumulator SUN is initially set to "0" in the initial setting.
【0030】ステップT13では上記アキュムレータS
UNの値を上記分割数Nの2乗で除算し平均値b(j)
を求める。そして、カウンタCに「1」加算し、レジス
タR(b)に記憶する1周期前の平均値とステップT1
3で求められた平均値b(j)を加算し「2」で除算し
て加重平均b(j)”を求める(ステップT15)。次
に、ステップT13で求めた平均値b(j)をレジスタ
R(b)に格納し(ステップT16)、ステップT15
で求めた加重平均b(j)”に、位置のフィードフォワ
ード係数をα1、移動指令のパルスの単位を速度指令の
単位に変換する係数をPを乗じてフィードフォワード量
FFを求め(ステップT17)、以下図4のステップS
14以下の処理を実行する。なお、この場合、ステップ
S16で求める速度フィードフォワード量FFvはステ
ップS15で求めた加重平均b(j)”を記憶しておき
数4の演算を行うことによって求める。In step T13, the accumulator S
The value of UN is divided by the square of the number of divisions N and the average value b (j)
Ask for. Then, “1” is added to the counter C, and the average value one cycle before and stored in the register R (b) is compared with the average value in step T1.
The average value b (j) obtained in step 3 is added and divided by "2" to obtain a weighted average b (j) "(step T15). Next, the average value b (j) obtained in step T13 is calculated. It is stored in the register R (b) (step T16), and step T15
The weighted average b (j) "obtained by the above is multiplied by α1 for the feedforward coefficient of the position and P for the coefficient for converting the unit of the pulse of the movement command into the unit of the speed command to obtain the feedforward amount FF (step T17). , The following step S in FIG.
14 and below are executed. Note that, in this case, the speed feedforward amount FFv obtained in step S16 is obtained by storing the weighted average b (j) ″ obtained in step S15 and performing the calculation of Expression 4.
【0031】上記処理において、ステップST10〜T
13が平均値b(j)を求める処理であるが、この処理
が上述した当該位置・速度ループ周期を中心にN個の位
置・速度ループ周期の移動指令aの平均値になることを
以下説明する。例えば、図12に示すようにITP周期
毎の移動指令MCNDがA0,A1,A2,A3,A4
…と出力されA0=A1=0とし、A2,A3を位置・
速度ループ周期毎に分割した移動指令をa20,a21,a
22,a23,a30,a31,a32,a33とすると(なお分割
数Nを「4」としている)、平均値は以下のようにな
る。In the above processing, steps ST10-T
Reference numeral 13 denotes a process for calculating the average value b (j). It will be described below that this process becomes the average value of the movement commands a of N position / speed loop periods around the position / speed loop period. I do. For example, as shown in FIG. 12, the movement command MCND for each ITP cycle is A0, A1, A2, A3, A4.
Are output and A0 = A1 = 0, and A2 and A3 are
Movement commands divided for each speed loop cycle are a20, a21, a
Assuming that 22, a23, a30, a31, a32 and a33 (the number of divisions N is "4"), the average value is as follows.
【0032】 n MCMD C SUM b(j) 1 A1 0 0+A0-A1=0 0 2 0+A2-A1=A2 A2/16=a20/4 3 A2+A2-A1=2A2 2A2/16=(a20+a21)/4 2 A2 0 2A2+A2-A1=3A2 3A2/16=(a20+a21+a22)/4 1 3A2+A2-A1=4A2 4A2/16=(a20+a21+a22+a23)/4 2 4A2+A3-A2=3A2+A3 (3A2+A3)/16=(a21+a22+a23+a30)/4 3 3A2+A3+A3-A2=2A2+2A3 (2A2+2A3)/16=(a22+a23+a30+a31)/4 3 A3 0 2A2+2A3+A3-A2=A2+3A3 (A2+3A3)/16=(a23+a30+a31+a32)/4 1 A2+3A3+A3-A2=4A3 4A3/16=(a30+a31+a32+a33)/4 … … 以上のように、ステップST10〜T13の処理によっ
ても平均値b(j)を求めることができる。そして、当
該位置・速度ループ周期で求められた平均値b(j)と
1位置・速度ループ周期前に求めた平均値との加重平均
を求めれば、遅れ及び進みのないフィードフォワード量
FFを求めることができる。これは、上記例で、例え
ば、ITP周期n=3で最初の位置・速度ループ周期
(カウンタC=0)で求められる平均値b(j)は当該
位置・速度ループ周期の移動指令a30と1つ過去の周期
の移動指令a23及び1つ先,2つ先の周期の移動指令a
31,a32を加算している。すなわち数式2の演算を行っ
ている。一方、1つ前の位置・速度ループ周期で求めた
平均値b(j)は(n=2,C=3のとき)当該位置・
速度ループ周期の移動指令a30と1つ及び2つ過去の周
期の移動指令a23,a22及び1つ先の周期の移動指令a
31を加算しており、数式1の演算により平均値を求めて
いる。よって、加重平均b(j)”を求めるには、当該
周期で算出された平均値と1前の周期で算出された平均
値を加算し2で除算することにより求めればよい。N MCMD C SUM b (j) 1 A1 0 0 + A0-A1 = 0 0 2 0 + A2-A1 = A2 A2 / 16 = a20 / 4 3 A2 + A2-A1 = 2A2 2A2 / 16 = ( a20 + a21) / 4 2 A2 0 2A2 + A2-A1 = 3A2 3A2 / 16 = (a20 + a21 + a22) / 4 13A2 + A2-A1 = 4A2 4A2 / 16 = (a20 + a21 + a22 + a23) / 4 2 4A2 + A3-A2 = 3A2 + A3 (3A2 + A3) / 16 = (a21 + a22 + a23 + a30) / 4 3 3A2 + A3 + A3-A2 = 2A2 + 2A3 (2A2 + 2A3) / 16 = (a22 + a23 + a30 + a31) / 4 3 A3 0 2A2 + 2A3 + A3-A2 = A2 + 3A3 (A2 + 3A3) / 16 = (a23 + a30 + a31 + a32) / 4 1 A2 + 3A3 + A3-A2 = 4A3 4A3 / 16 = (a30 + a31 + a32 + a33) / 4... As described above, the average value b (j) can also be obtained by the processing in steps ST10 to T13. Then, if a weighted average of the average value b (j) obtained in the position / speed loop cycle and the average value obtained one cycle before the position / speed loop cycle is obtained, the feedforward amount FF without delay and advance is obtained. be able to. In the above example, for example, the average value b (j) obtained in the first position / speed loop cycle (counter C = 0) in the ITP cycle n = 3 is the movement command a30 and 1 for the position / speed loop cycle. Movement command a23 in the previous cycle and move command a in the next and next cycles
31 and a32 are added. That is, the calculation of Expression 2 is performed. On the other hand, the average value b (j) obtained in the previous position / velocity loop cycle is (when n = 2, C = 3)
The movement command a30 of the speed loop cycle, the movement commands a23 and a22 of one and two previous cycles, and the movement command a of the next cycle
31 is added, and the average value is obtained by the operation of Expression 1. Therefore, the weighted average b (j) ″ may be obtained by adding the average calculated in the cycle and the average calculated in the previous cycle and dividing by 2.
【0033】なお、上記実施例ではITP周期を4分割
する場合について説明したが、4分割する場合以外にお
いても、当該位置・速度ループ周期を中心に前後の分割
数N個の各周期の移動指令aを平均化するようにすれば
よい。In the above-described embodiment, the case where the ITP cycle is divided into four parts has been described. However, even in cases other than the case where the ITP cycle is divided into four parts, the movement command of each period of N divisions before and after the position / velocity loop cycle is used. a may be averaged.
【0034】[0034]
【発明の効果】本発明は、位置・速度ループ処理におけ
る当該移動指令よりも後に指令される移動指令をも取り
込んでフィードフォワード量を求めてフィードフォワー
制御を行うようにしたから、数値制御装置等の上位制御
装置からの分配移動指令が段階的に変動しても、位置偏
差のうねりを減少させ、モータや機械の動きに与えるシ
ョックを小さなものにした。また、分配周期を位置・速
度ループ処理の周期で分割した数が偶数の場合には、当
該周期を入れて前後の分割数の数の周期の移動指令の平
均をとる際に、当該周期より先(未来)に後(過去)よ
り1周期多く取ったときと、少なく取ったときの平均値
の加重平均を求めることによって、等価的に時間遅れの
及び進みのない位置フィードフォワード量を得ることが
でき、より正確な制御ができる。According to the present invention, a feedforward control is performed by obtaining a feedforward amount by also taking in a move command issued after the move command in the position / velocity loop processing. Even if the distribution movement command from the host controller fluctuates stepwise, the undulation of the position deviation is reduced, and the shock applied to the movement of the motor and the machine is reduced. If the number obtained by dividing the distribution cycle by the cycle of the position / velocity loop processing is an even number, when averaging the movement commands of the number of preceding and succeeding divisions by adding the cycle, the average of the movement commands before the cycle is taken. By obtaining a weighted average of the average values when one cycle is taken more (after the future) and one cycle after the (past), it is possible to obtain a position feedforward amount with a time delay and no advance equivalently. And more precise control.
【図1】本発明の一実施例のサーボ系のブロック図であ
る。FIG. 1 is a block diagram of a servo system according to an embodiment of the present invention.
【図2】同実施例を実施するデジタルサーボ制御装置の
ブロック図である。FIG. 2 is a block diagram of a digital servo control device implementing the embodiment.
【図3】同実施例におけるITP周期ごとのディジタル
サーボ回路のプロセッサが実施する処理のフローチャー
トである。FIG. 3 is a flowchart of a process executed by a processor of a digital servo circuit for each ITP cycle in the embodiment.
【図4】同実施例における位置・速度ループ処理のフロ
ーチャートである。FIG. 4 is a flowchart of a position / velocity loop process in the embodiment.
【図5】同実施例におれる一例の位置フィードフォワー
ド量(平均値)の説明図である。FIG. 5 is an explanatory diagram of an example of a position feedforward amount (average value) in the embodiment.
【図6】従来のフィードフォワード制御を行うサーボ系
において、移動指令にランプ入力をしたときの位置偏差
の推移をみた図である。FIG. 6 is a diagram showing a transition of a position deviation when a ramp is input to a movement command in a conventional servo system that performs feedforward control.
【図7】本発明の一実施例において速度フィードフォワ
ード制御の進み量L を0として移動指令にランプ入力を
したときの位置偏差の推移をみた図である。FIG. 7 is a view showing a transition of a position deviation when a ramp amount is input to a movement command with the advance amount L of the speed feedforward control set to 0 in one embodiment of the present invention.
【図8】本発明の一実施例において速度フィードフォワ
ード制御の進み量L を2として移動指令にランプ入力を
したときの位置偏差の推移をみた図である。FIG. 8 is a view showing a transition of a position deviation when a ramp amount is input to a movement command with an advance amount L of speed feedforward control set to 2 in one embodiment of the present invention.
【図9】スムージング処理による平均値の説明図であ
る。FIG. 9 is an explanatory diagram of an average value by a smoothing process.
【図10】本発明の他の実施例におけるITP周期ごと
にディジタルサーボ回路のプロセッサが実施する処理の
フローチャートである。FIG. 10 is a flowchart of a process executed by a processor of a digital servo circuit for each ITP cycle according to another embodiment of the present invention.
【図11】同他の実施例における位置・速度ループ処理
中の位置フィードフォワードを求める処理のフローチャ
ートである。FIG. 11 is a flowchart of a process of obtaining a position feedforward during a position / velocity loop process in another embodiment.
【図12】平均値を求める処理の説明図である。FIG. 12 is an explanatory diagram of a process for obtaining an average value.
1 位置ループ処理の伝達関数の項 2 速度ループ処理の積分の伝達関数の項 3 速度ループの比例の伝達関数の項 4 モータの伝達関数の項 5 速度から位置に変換する伝達関数の項 6 位置フィードフォワードのスムージング回路 7 位置フィードフォワードの位置フィードフォワード
係数の項 8 速度フィードフォワードの進み要素の項 9 速度フィードフォワードの微分の項 10 速度フィードフォワードの速度フィードフォワー
ド係数の項 11 DDA(Digital Differential Analyze) 20 数値制御装置 21 共有RAM 22 ディジタルサーボ回路 23 サーボアンプ 24 サーボモータ 25 パルスコーダ1 Term of transfer function of position loop processing 2 Term of transfer function of integral of speed loop processing 3 Term of transfer function proportional to speed loop 4 Term of transfer function of motor 5 Term of transfer function converting from speed to position 6 Position Feedforward smoothing circuit 7 Position feedforward position feedforward coefficient term 8 Speed feedforward lead element term 9 Speed feedforward derivative term 10 Speed feedforward speed feedforward coefficient term 11 DDA (Digital Differential Analyze) ) 20 Numerical controller 21 Shared RAM 22 Digital servo circuit 23 Servo amplifier 24 Servo motor 25 Pulse coder
【数式1】 [Formula 1]
【数式2】 [Formula 2]
【数式3】 [Equation 3]
【数式4】 (Equation 4)
【数式5】 (Equation 5)
【数式6】 (Equation 6)
【数式7】 [Formula 7]
Claims (4)
と実施する位置・速度ループ処理における移動指令を上
記分配周期の移動指令より求め、位置・速度ループ制御
を行うサーボモータの制御方式において、当該分配周期
より1つ先の分配周期の移動指令を読み込んで、各位置
・速度ループ処理における移動指令を計算しておき、当
該位置・速度ループ処理における周期を中心にN個の各
位置・速度ループ処理周期における移動指令の平均値を
求め、この平均値に位置フィードフォワード係数を乗じ
て得られる位置のフィードフォワード量を位置ループ処
理で得られる速度指令に加算して速度ループ処理に対す
る速度指令としたことを特徴とするサーボモータのフィ
ードフォワード制御方式。1. A servo motor control method for obtaining a movement command in a position / velocity loop process performed for each N-divided cycle of a movement command distribution cycle from a movement command of the distribution cycle and performing position / speed loop control. The movement command of the distribution cycle one ahead of the distribution cycle is read, and the movement command in each position / speed loop processing is calculated, and the N position / velocities are centered on the cycle in the position / speed loop processing. The average value of the movement command in the loop processing cycle is obtained, the feedforward amount of the position obtained by multiplying this average value by the position feedforward coefficient is added to the speed command obtained by the position loop processing, and the speed command for the speed loop processing is added. A feed forward control method for a servo motor characterized by the following.
と実施する位置・速度ループ処理における移動指令を上
記分配周期の移動指令より求め、位置・速度ループ制御
を行うサーボモータの制御方式において、当該分配周期
より1つ先の分配周期の移動指令を読み込んで記憶して
おくと共に、当該分配周期より1つ過去の分配周期の移
動指令をも記憶しておき、当該分配周期の移動指令と記
憶した上記当該分配周期より1つ先の分配周期の移動指
令及び1つ過去の分配周期の移動指令より、当該位置・
速度ループ処理における周期を中心にN個の各位置・速
度ループ処理周期における移動指令の平均値を求め、こ
の平均値に位置フィードフォワード係数を乗じて得られ
る位置のフィードフォワード量を位置ループ処理で得ら
れる速度指令に加算して速度ループ処理に対する速度指
令としたことを特徴とするサーボモータのフィードフォ
ワード制御方式。2. A control method of a servomotor for obtaining a movement command in a position / velocity loop process performed for each N-divided cycle of a distribution cycle of the movement command from the movement command of the distribution cycle, and performing position / speed loop control. In addition to reading and storing the movement command of the distribution cycle immediately before the distribution cycle, the movement command of the distribution cycle one past before the distribution cycle is also stored, and the movement command of the distribution cycle is stored. Based on the movement command of the distribution cycle one ahead of the distribution cycle and the movement command of the distribution cycle one before, the position and the position
The average value of the movement commands in each of the N position / speed loop processing cycles is obtained centering on the cycle in the speed loop processing, and the feedforward amount of the position obtained by multiplying this average value by the position feedforward coefficient is calculated by the position loop processing. A feedforward control method for a servomotor, wherein a speed command for a speed loop process is added to an obtained speed command.
は、当該位置・速度ループ処理における周期と該周期よ
り過去の(N/2)−1個及び先のN/2個の各位置・
速度ループ処理周期における合計N個の移動指令の平均
値と、当該位置・速度ループ処理における周期と該周期
より過去のN/2個及び先の(N/2)−1個の各位置
・速度ループ処理周期における合計N個の移動指令の平
均値との加重平均とする請求項1若しくは請求項2記載
のサーボモータのフィードフォワード制御方式。3. When the number of divisions N is an even number, the average value is a period in the position / velocity loop processing and each of (N / 2) -1 past and N / 2 prior to the period. position·
The average value of a total of N movement commands in the speed loop processing cycle, the cycle in the position / speed loop processing, and N / 2 and (N / 2) -1 previous positions / speeds past the cycle. 3. The feedforward control method for a servo motor according to claim 1, wherein a weighted average of the average value of the N total movement commands in a loop processing cycle is used.
た数の周期だけ進めた上記位置・速度ループ処理におけ
る上記平均値の微分値を求め、該微分値に速度フィード
フォワード係数を乗じて得られる速度フィードフォワー
ド量を速度ループ処理で得られたトルク指令値に加算し
てサーボモータへのトルク指令とした請求項1,請求項
2または請求項3記載のサーボモータのフィードフォワ
ード制御方式。4. A differential value of the average value in the position / velocity loop processing advanced by a set number of cycles from the position / velocity loop period is obtained, and the differential value is obtained by multiplying the differential value by a velocity feedforward coefficient. 4. The feedforward control method for a servomotor according to claim 1, wherein the speed feedforward amount is added to a torque command value obtained by the speed loop processing to obtain a torque command to the servomotor.
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25597791A JP2709766B2 (en) | 1990-11-08 | 1991-09-09 | Feed forward control method of servo motor |
| EP92919540A EP0556412B1 (en) | 1991-09-09 | 1992-09-09 | Method of controlling feed-forward of servo motor |
| PCT/JP1992/001150 WO1993005455A1 (en) | 1991-09-09 | 1992-09-09 | Method of controlling feed-forward of servo motor |
| DE69223236T DE69223236T2 (en) | 1991-09-09 | 1992-09-09 | METHOD FOR CONTROLLING A SERVO MOTOR WITH FORWARD CLUTCH |
| KR1019930701143A KR970003877B1 (en) | 1991-09-09 | 1992-09-09 | Feed Forward Control Method of Servo Motor |
| US08/292,762 US5448145A (en) | 1991-09-09 | 1994-08-19 | Feedforward control method for a servomotor |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2-301154 | 1990-11-08 | ||
| JP30115490 | 1990-11-08 | ||
| JP25597791A JP2709766B2 (en) | 1990-11-08 | 1991-09-09 | Feed forward control method of servo motor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0519861A JPH0519861A (en) | 1993-01-29 |
| JP2709766B2 true JP2709766B2 (en) | 1998-02-04 |
Family
ID=26542501
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP25597791A Expired - Fee Related JP2709766B2 (en) | 1990-11-08 | 1991-09-09 | Feed forward control method of servo motor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2709766B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2011135633A1 (en) * | 2010-04-30 | 2011-11-03 | パナソニック株式会社 | Motor drive device |
| CN112051726B (en) * | 2020-07-27 | 2023-08-11 | 北京控制工程研究所 | Position feedforward control method based on linear tracking differentiator |
-
1991
- 1991-09-09 JP JP25597791A patent/JP2709766B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0519861A (en) | 1993-01-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5598077A (en) | Control apparatus and a control method for a servomotor | |
| JP2762364B2 (en) | Feedforward control method for servo motor | |
| JP3129622B2 (en) | Quadrant projection correction method in full closed loop system | |
| EP0012620B1 (en) | Closed loop type numerical-controlled machine tool | |
| US5654619A (en) | Method of feedforward control for servomotor | |
| US5343132A (en) | Backlash acceleration control method | |
| JPH04323706A (en) | Foreknowledge repeat control system | |
| US5637969A (en) | Vibration control method | |
| EP0510212B1 (en) | Method for controlling servomotor feedforward | |
| US5191272A (en) | Method of adjusting gain for motor control | |
| US5448145A (en) | Feedforward control method for a servomotor | |
| JP2826391B2 (en) | Backlash acceleration control method | |
| JP2709766B2 (en) | Feed forward control method of servo motor | |
| KR970002259B1 (en) | Servo motor control method | |
| JPH0392911A (en) | Robot control method for sliding mode control | |
| JP2733881B2 (en) | Adaptive sliding mode control method based on PI control loop | |
| JP3253022B2 (en) | Servo motor backlash compensation control method | |
| KR970003877B1 (en) | Feed Forward Control Method of Servo Motor | |
| JPH04276802A (en) | Control system for servomotor | |
| JP3199769B2 (en) | Servo control device | |
| EP0596141A1 (en) | Control method for servomotor | |
| JPH03246708A (en) | Acceleration feedback control system for servomotor | |
| JP3197898B2 (en) | Servo motor control method | |
| JP2653130B2 (en) | Acceleration / deceleration control device | |
| JPH05324086A (en) | Servo motor control system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 11 Free format text: PAYMENT UNTIL: 20081024 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081024 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091024 Year of fee payment: 12 |
|
| LAPS | Cancellation because of no payment of annual fees |