WO2019093246A1 - 指令値補間装置及びサーボドライバ - Google Patents

指令値補間装置及びサーボドライバ Download PDF

Info

Publication number
WO2019093246A1
WO2019093246A1 PCT/JP2018/040891 JP2018040891W WO2019093246A1 WO 2019093246 A1 WO2019093246 A1 WO 2019093246A1 JP 2018040891 W JP2018040891 W JP 2018040891W WO 2019093246 A1 WO2019093246 A1 WO 2019093246A1
Authority
WO
WIPO (PCT)
Prior art keywords
command value
interpolation
interpolation function
kth
value
Prior art date
Application number
PCT/JP2018/040891
Other languages
English (en)
French (fr)
Inventor
守 恵木
Original Assignee
オムロン株式会社
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 オムロン株式会社 filed Critical オムロン株式会社
Priority to EP18876860.0A priority Critical patent/EP3709117A4/en
Priority to CN201880054565.4A priority patent/CN111052029B/zh
Priority to US16/644,526 priority patent/US11494465B2/en
Publication of WO2019093246A1 publication Critical patent/WO2019093246A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • G06F17/175Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39358Time optimal control along path for singular points, having veloctiy constraints

Definitions

  • the present invention relates to a command value interpolation device and a servo driver.
  • the command values between the command values are made continuous so that the first order derivative and the second order derivative become continuous.
  • An interpolation function for interpolation (calculation) is generated, and command values are interpolated using the generated interpolation functions (see, for example, Patent Document 1).
  • the number of command values required for generating the interpolation function is not particularly limited. However, when the command values are sequentially input, it is possible to reduce the follow-up delay with respect to the command composed of each command value as the number of command values required to generate the interpolation function is smaller. Therefore, when the command values are sequentially input, it is preferable that the number of command values required to generate the interpolation function be small. And, even when the command values are sequentially input, it is desirable that the second order derivatives of the respective interpolation functions be continuous in order to prevent the Jerk (acceleration) from becoming large.
  • the present invention has been made in view of the above circumstances, and provides an interpolation technique that can interpolate a command value input in time series in such a manner that Jerk does not increase and the follow-up delay to the command is small.
  • the purpose is
  • the command value x (k) sequentially input at a predetermined period t s (k is an integer value indicating which has been the command value input to what number) to interpolate
  • the kth interpolation function in which the function value at the start time and the end time of the k-th time period respectively agree with the command value x (k) and the command value x (k + 1) is “1” or more
  • the interpolation function generation unit repeats the kth ((3) interpolation function from the command value x (k ⁇ 2) to the command value x (k + 1) And means for generating based on a command value, and as the kth ( ⁇ 3) interpolation function,
  • the interpolation function generation means of the command value interpolation device of the present invention when k ⁇ 3, based on 4 command values from the command value x (k-2) to the command value x (k + 1)
  • the fifth equation of time is generated as the k-th interpolation function for calculating the command value in the equation.
  • the k-th (33) interpolation function generated by the interpolation function generation means is such that the function values at the start time and end time of the k-th time section are the command value x (k) and the command value x (k + 1), respectively.
  • the “interpolation function generation means sets the function value at the start time and the end time of the kth time interval as the kth ( ⁇ 3) interpolation function respectively as the command value
  • the first order derivative value and the second order derivative value at the end time of the k-th time period coincide with x (k) and the command value x (k + 1), respectively. It is possible to adopt a configuration in which a fifth-order equation of time is generated, which coincides with the first-order derivative value and the second-order derivative value at the start time of the k-1 time interval.
  • an elapsed time from the start time of the k-th time section is set such that the k-th interpolation function sets “a 1 to a 6 satisfying the following equations to 0th to 5th coefficients, respectively.
  • This can be realized by setting the fifth expression of t.
  • the “interpolation function generation means normally generates the kth ( ⁇ 1) interpolation function when the command value x (k + 1) is input.
  • the interpolation unit may start the process of calculating the command value in the kth time interval when the kth interpolation function is generated.
  • the timing at which the kth interpolation function is generated by the interpolation function generation means, and the start timing of the “process for calculating the command value in the kth time interval” by the interpolation means are as described above. A different configuration may be adopted.
  • the interpolation function generation means of the command value interpolation device of the present invention various different generation procedures of the first and second interpolation functions can be adopted.
  • the interpolation function generation means for example, the values of “x (-1), x (0) are“ 3 ⁇ x (1) ⁇ 2 ⁇ x (2) ”,“ 2 ⁇ x Assuming that (1) ⁇ x (2) ′ ′, the first interpolation function is generated according to the equation (1), and the value of x (0) is “2 ⁇ x (1) ⁇ x (2) Assuming that “)”, the second interpolation function may be generated by the above equation (1).
  • the interpolation function generation means it is assumed that “x (-1), x (0) values are both x (1),” and the first interpolation function is generated by the equation (1). And assuming that the value of x (0) is x (1), the second interpolation function may be generated according to the equation (1).
  • the command value interpolation device of the present invention can be used to input timing at which “command value x (k + 1) (k ⁇ 3) should be input. If the command value x (k + 1) is not input in step b, the interpolation means calculates the command value in the kth time interval using the k-1th interpolation function. When the command value x (k + 1) is not input at the input timing at which (k33) is to be input, the interpolation function generation unit estimates the command value x (k + 1) using the k-1th interpolation function Alternatively, the kth interpolation function may be generated using the estimated command value x (k + 1).
  • the servo driver for driving the servomotor based on the command value x (k) (k is an integer value indicating the first input command value) sequentially input in a predetermined cycle is:
  • the function values at the start time and the end time of the kth time section are respectively the command value x (k) using an interpolation function generation unit that generates a kth interpolation function that matches the command value x (k + 1), and using the kth interpolation function generated by the interpolation function generation unit, within the kth time interval
  • the servo driver according to the present invention calculates the kth interpolation function (the fifth equation of time) for calculating the command value in the kth ( ⁇ 3) command section.
  • Interpolation function generation means is provided for generating based on four command values from the command value x (k-2) to the command value x (k + 1).
  • the kth () 3) interpolation function generated by this interpolation function generation means is a command value x (k) and a command value x (k + 1) at the start time and the end time of the kth time section, respectively.
  • the second derivative value at the start time of the kth time interval matches the second derivative value at the end time of the k-1th time interval of the k-1st interpolation function. Therefore, according to each interpolation function generated by the interpolation function generation means, it is possible to interpolate the command value in such a manner that Jerk (acceleration) becomes smaller. Since the interpolation function generation means generates each interpolation function from a small amount (four) of command values, the servo driver according to the present invention can control the power circuit with less delay in following the command. Become.
  • FIG. 1 is an explanatory view of a schematic configuration and a usage pattern of a servo driver according to an embodiment of the present invention.
  • FIG. 2 is a functional block diagram of a control unit provided in the servo driver according to the embodiment.
  • FIG. 3 is a diagram for explaining the interpolation function y k (t).
  • FIG. 4 is a flowchart of an interpolation function generation process performed by an interpolation function generation unit in the control unit.
  • FIG. 5 is an explanatory diagram of a specific example of the parameter calculation process.
  • FIG. 6 is an explanatory diagram of another specific example of the parameter calculation process.
  • FIG. 7 is an explanatory view of a time change pattern of the position and torque of the motor when the parameter calculation process of FIG. 5 is adopted.
  • FIG. 8 is an explanatory diagram of a time change pattern of the position and torque of the motor when the parameter calculation process of FIG. 6 is adopted.
  • FIG. 9 is an explanatory diagram of a process of step S106 of the interpolation function generation process.
  • FIG. 10 is an explanatory diagram of simulation results of Jerk values when primary interpolation, secondary interpolation, and fifth-order interpolation by the control unit are performed on the same input.
  • FIG. 11 is an explanatory diagram of an interpolation result by the control unit of the servo driver according to the embodiment.
  • FIG. 1 shows a schematic configuration and usage of a servo driver 20 according to an embodiment of the present invention.
  • the servo driver 20 is a device for driving a motor (three-phase motor) 40. As illustrated, the servo driver 20 is a current sensor for measuring the input / output current value of each leg of the power circuit 21, the control unit 10, and the inverter circuit 24 (details will be described later) in the power circuit 21. 25 is provided.
  • the power circuit 21 is a circuit for generating a three-phase alternating current to be supplied to the motor 40.
  • the power circuit 21 includes a rectifying circuit 22 for rectifying three-phase alternating current from the three-phase power source 50 and a smoothing capacitor 23.
  • the power circuit 21 includes an inverter circuit 24 for converting the output voltage of the rectifier circuit 22 smoothed by the smoothing capacitor 23 into a three-phase alternating current.
  • the control unit 10 is a unit configured of a processor, a flash ROM, a RAM, a gate driver, and the like. As illustrated, the control unit 10 receives a signal from each current sensor 25 and a signal from an encoder 41 (absolute encoder or incremental encoder) attached to the motor 40.
  • an encoder 41 absolute encoder or incremental encoder
  • control unit 10 operates as a unit having various functions, which will be described later, by the processor reading out the program onto the RAM and executing the program.
  • control unit 10 the function of the control unit 10 will be described.
  • the control unit 10 is a command value (in the present embodiment, a current command value) periodically input at a predetermined cycle t s (for example, 4 ms) from the host device 30 such as a programmable logic controller (PLC). ) And controls the inverter circuit 24 in accordance with
  • t s for example, 4 ms
  • PLC programmable logic controller
  • the k-th (k ⁇ 1; the first is the first) command value from the upper apparatus 30 will be denoted as x (k).
  • x (k) a time interval from the input of the kth command value to the input of the k + 1st command value, and the time from the output of the kth command value to the output of the k + 1st command value
  • the section is described as a kth command section.
  • FIG. 2 shows a functional block diagram of the control unit 10. As illustrated, the control unit 10 operates as an interpolation function generation unit 11, an interpolation unit 12, and a drive unit 13.
  • t in the fifth equation is an elapsed time from the start time (start time) of the k-th command section, as schematically shown in FIG. That is, when the time within the kth time interval in which the command value (interpolated value of the command value) is to be calculated is denoted as t tgt and the start time of the k th command interval is expressed as t k , the above fifth equation is t By substituting “t tgt ⁇ t k ”, the command value at time t tgt is calculated.
  • the interpolation unit 12 (FIG. 2) basically calculates the command value based on the latest interpolation function generated by the interpolation function generation unit 11 in a period t o (eg, 0.125 ms) shorter than the period t s Is a unit to repeat.
  • the interpolation unit 12 has a function (details will be described later) for calculating the command value in the kth command section from the interpolation formula y k-1 (t) for the k-1st command section.
  • the drive unit 13 is a unit that controls the inverter circuit 24 such that the current value from each sensor 25 has a value corresponding to the command value calculated by the interpolation unit 12.
  • the interpolation function generation unit 11 of the control unit 10 starts the interpolation function generation process of the procedure shown in FIG. 4 when the first (first) command value x (1) is input.
  • k has an initial value of "1", and increments by "1" every time branching to the "YES" side is performed in the processing (determination) of step S101.
  • the interpolation function generation unit 11 which starts this interpolation function generation process, first waits for the input timing of the next command value in step S101. In other words, the interpolation function generating unit 11 waits an input time of the current command value, from the input period t s of the command value has elapsed.
  • step S101; YES the interpolation function generation unit 11 determines whether the command value has been input (step S102). Then, when the command value is input (step S102; YES), the interpolation function generation unit 11 determines whether the k value is 4 or more (whether the command value input this time is the fourth or later command value) ) Is determined (step S103).
  • step S103 If the k value is less than 4 (step S103; NO), that is, if the command value input this time is the second or third command value, the interpolation function generation unit 11 performs parameter calculation processing (step After performing step S104), the function generation process (step S105) is performed. On the other hand, when the command value input this time is the fourth or later command value (step S103; YES), the interpolation function generation unit 11 performs the function generation process (step S105) without performing the parameter calculation process. .
  • Equation (1) is obtained as a result of intensive research on a method of generating a function for command value interpolation in which the first order derivative and the second order derivative continue at section boundaries.
  • the function value at the command section boundary coincides with the command value, and the interpolation function in which the first order derivative and the second order derivative at the command section boundary are continuous needs to satisfy the six boundary conditions. Therefore, using the following equation (2) (a fifth-order equation of time t) having six coefficients, the function value at the command section boundary matches the command value, and the first order derivative at the command section boundary, second order The function can obtain a continuous interpolation function.
  • Equation (3) is an approximation of the first-order derivative value at the end time of the kth command interval of the kth interpolation function
  • equation (4) is 2 at the end time of the kth command interval of the kth interpolation function. It is an approximation of the second derivative value.
  • Equation (8) can be obtained by ignoring each term of the third or higher order term of “t ⁇ t s ” on the right side of the equation (7) (considering “0”).
  • the equation (12) is changed to the equation of x using the relational expression (k + 1), and the above-mentioned equation (4) is the one in which the right side of the equation (12) is changed to the equation of x using the same relational equation is there.
  • the first time, the second order derivative value at the start time of) is a function that matches the value of the second order derivative. Therefore, the kth interpolation function needs to satisfy the following two conditions.
  • equation (15) is modified using equation (13)
  • equation (5) is obtained
  • equation (16) is modified using equation (14)
  • a (a 1 to a 6 ) can be calculated by the above equation (1).
  • the function generation process is originally a process that requires four command values input continuously. However, when the function generation processing is such processing, control of the power circuit 21 (drive control of the motor 40) can not be started until the fourth command value is input.
  • the process prepared for enabling control of the power circuit 21 to be started when the second command value is input is the parameter calculation process of step S104.
  • the function generation processing of the above contents can be executed if there are four continuous command values. Therefore, when generating the first interpolation function, the command value x (-1) and the command value x (0) are calculated (estimated) to perform function generation processing, and when generating the second interpolation function, the command value x ( If 0) is calculated and the function generation process is performed, control of the power circuit 21 can be started at the stage when the second command value is input.
  • the command value x (-1) is an estimated value of a command value two orders before the command value x (1), and the command value x (0) is 1 of the command value x (1). Is the estimated value of the previous command value.
  • step S104 the command value x (-1) and x (0) or the command value x (0) is calculated based on the command value already input. Parameter calculation processing is performed.
  • the interpolation function generation unit 11 After completing the function generation process, the interpolation function generation unit 11 returns to step S101 and waits for the input timing of the next command value.
  • the interpolation function generation unit 11 usually repeats the above processing. However, when the command value is not input despite the input timing of the command value (step S102; NO), the interpolation function generation unit 11 instructs the interpolation unit 12 to perform fifth-order interpolation for the front command section. The interpolation in the equation is instructed (step S106).
  • the interpolation of the kth command section up to the kth command value (in the drawing, the missing command value) not input from the kth-1 command value is k-1 It can be performed by a fifth-order interpolation formula y k-1 (t) for the command section. Note that t in the fifth-order interpolation formula y k-1 (t) for the k-1st command interval is an elapsed time from the start time t k-1 of the k- 1th command interval.
  • the interpolation unit 12 receives the instruction in the process of step S106, the elapsed time from the start time of the kth time section of the time t tgt for which the command value should be calculated is represented by ⁇ t, y k-1 (t)
  • the command value at time t tgt is calculated by substituting “t s + ⁇ t” for t of t.
  • the control unit 10 of the servo driver 20 determines the command value x (k) based on the four command values from the command value x (k-2) to the command value x (k + 1).
  • a k-th interpolation function (a fifth-order equation of time) for calculating the command value in the k-th command section from the command value x (k + 1) to the command value x (k + 1) is generated.
  • the kth interpolation function generated by the control unit 10 corresponds to the command value x (k) and the command value x (k + 1) at the start time and the end time of the kth time interval, respectively,
  • the first order derivative value and the second order derivative value at the start time of the k th time interval are respectively the first order derivative value and the second order derivative at the end time of the k th -1 time interval of the k th -1 interpolation function It is a function that matches the value. Therefore, according to each interpolation function generated by the control unit 10, it is possible to interpolate the command value in such a manner that the followability to the original trajectory (time change pattern of the interpolation target command value) is high and Jerk (acceleration) is not large.
  • FIG. 10 shows simulation results of Jerk values when primary interpolation, secondary interpolation, and fifth-order interpolation by the control unit 10 are performed on the same input (the same set of command values).
  • FIG. 10A shows simulation results of Jerk values when primary interpolation, secondary interpolation, and fifth-order interpolation by the control unit 10 are performed on the same input (the same set of command values).
  • FIG. 10A shows simulation results of Jerk values when primary interpolation, secondary interpolation, and fifth-order interpolation by the control unit 10 are performed on the same input (the same set of command values).
  • the linear interpolation FIG. 10A
  • relatively large Jerk occurs at each input of the command value.
  • quadratic interpolation FIG. 10 (b)
  • a relatively large Jerk is generated for each input of the command value, but according to the quintic interpolation of the control unit 10, FIG.
  • the Jerk value can be reduced to a very small value.
  • control unit 10 has a function of generating a first interpolation function and a second interpolation function in which the four command values are not uniform, using an estimated value such as the command value x (0). Therefore, according to the servo driver 20 (control unit 10) according to the present embodiment, as shown in FIG. 11, interpolation of the command value is started from the point of time of input of the second command value as in the linear interpolation. It will also be possible.
  • the servo driver 20 (control unit 10) according to the above-described embodiment can perform various modifications. For example, based on the above technology, a device for correcting a command value that is not for the motor 40 may be manufactured. Further, in the interpolation function generation process (FIG. 4), when the command value is not input at the input timing of the command value (step S102; NO), the fifth-order interpolation formula y k-1 for the k-1st command section The processing of calculating (estimating) x (k + 1) by substituting 2t s into t of (t) may be performed, and then the processing may be modified to processing of step S105.
  • Equation (5) Jerk will be smaller, even if the first derivative is not continuous. Therefore, other equations may be used instead of equation (5) to calculate a 1 to a 6 . However, Jerk will be smaller if both the -1st derivative and the 2nd derivative are continuous, so equation (5) is used (a 1 to a 6 can be calculated by equation (1) Is preferable).

Abstract

時系列的に入力される指令値を、Jerkが大きくならず、且つ、指令に対する従遅れが少ない形で補間できる内挿技術を提供する。サーボドライバ(20)の制御部(10)は、第k(≧3)時間区間内の指令値を算出するための第k補間関数を、x(k-2)からx(k+1)までの4指令値に基づき順次生成する機能であって、第k補間関数として、第k時間区間の開始時間、終了時間における関数値が、それぞれ、x(k)、x(k+1)と一致し、且つ、第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致する、時間の5次式を生成する機能を有する。

Description

指令値補間装置及びサーボドライバ
 本発明は、指令値補間装置とサーボドライバとに関する。
 数値制御工作機械のより滑らかな制御を可能とするために、与えられている複数の指令値に基づき、1階導関数及び2階導関数が連続するように、各指令値間の指令値を補間(算出)するための補間関数を生成し、生成した各補間関数を用いて指令値を補間することが行われている(例えば、特許文献1参照)。
特開2008-225825号公報
 補間対象となる複数の指令値が既に存在している場合、補間関数の生成に必要とされる指令値数は特に限定されない。ただし、指令値が順次入力される場合には、補間関数の生成に必要とされる指令値数が少ない程、各指令値からなる指令に対する追従遅れを少なくすることができる。そのため、指令値が順次入力される場合には、補間関数の生成に必要とされる指令値数は少ない方がよい。そして、指令値が順次入力される場合にも、Jerk(加加速度)が大きくなるのを防ぐために、各補間関数の2階導関数が連続していることが望まれる。
 本発明は、上記事情に鑑みてなされたものであり、時系列的に入力される指令値を、Jerkが大きくならず、且つ、指令に対する追従遅れが少ない形で補間できる内挿技術を提供することを目的とする。
 上記目的を達成するために、本発明の、所定周期tで順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)を補間する指令値補間装置は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を、"1"以上のk値のそれぞれについてk値の昇順に生成する補間関数生成手段と、前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する処理を、k値の昇順に繰り返す補間手段と、を備え、 前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(k-2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致する、時間の5次式を生成する手段である構成を有する。
 すなわち、本発明の指令値補間装置の補間関数生成手段は、k≧3である場合、指令値x(k-2)から指令値x(k+1)までの4指令値に基づき、第k指令区間内の指令値を算出するための第k補間関数として、時間の5次式を生成する。そして、補間関数生成手段が生成する第k(≧3)補間関数は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致する関数である。従って、補間関数生成手段が生成する各補間関数によれば、Jerk(加加速度)が小さくなる形で指令値を補間できる。そして、補間関数生成手段は、各補間関数を少量(4個)の指令値から生成するのであるから、本発明に係る指令値補間装置によれば、各指令値からなる指令に対する追従遅れを少なくすることも可能となる。
 1次導関数も連続していた方が、Jerkの抑制効果は向上する。従って、本発明の指令値補間装置に、『前記補間関数生成手段は、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の終了時間における1階導関数値、2階導関数値が、それぞれ、前記第k-1補間関数の第k-1時間区間の開始時間における1階導関数値、2階導関数値と一致する、時間の5次式を、生成する』構成を採用しておいてもよい。なお、当該構成は、例えば、第k補間関数が、『以下の式を満たすa~aを、それぞれ、0次~5次の係数とした、第k時間区間の開始時間からの経過時間tの5次式』となるようにしておくことにより実現できる。
Figure JPOXMLDOC01-appb-M000002
 本発明の指令値補間装置には、通常、『前記補間関数生成手段は、前記第k(≧1)補間関数を生成するための生成処理を、指令値x(k+1)が入力されたときに実行し、前記補間手段は、前記第k補間関数が生成されたときに、前記第k時間区間内の指令値を算出する処理を開始する』構成が採用される。ただし、本発明の指令値補間装置に、補間関数生成手段による第k補間関数の生成タイミングや、補間手段による“第k時間区間内の指令値を算出する処理”の開始タイミングが、上記したものとは異なる構成を採用しておいてもよい。
 また、本発明の指令値補間装置の補間関数生成手段としては、第1,第2補間関数の具体的な生成手順が異なる様々なものを採用することが出来る。具体的には、補間関数生成手段として、例えば、『x(-1)、x(0)の値が、それぞれ、"3・x(1)-2・x(2)"、"2・x(1)-x(2)"であると仮定して、前記(1)式により、第1補間関数を生成し、x(0)の値が、"2・x(1)-x(2)"であると仮定して、前記(1)式により、第2補間関数を生成する』ものを採用してもよい。また、補間関数生成手段として、『x(-1)、x(0)の値として、いずれも、x(1)であると仮定して、前記(1)式により、第1補間関数を生成し、x(0)の値が、x(1)であると仮定して、前記(1)式により、第2補間関数を生成する』ものを採用してもよい。
 また、或る指令値が入力されなくても補間を続行できるようにするために、本発明の指令値補間装置に、『指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間手段は、第k-1補間関数を用いて第k時間区間内の指令値を算出する』構成や、『指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間関数生成手段は、第k-1補間関数を用いて指令値x(k+1)を推定し、推定した指令値x(k+1)を用いて第k補間関数を生成する』構成を採用しておいてもよい。
 また、本発明の、所定周期で順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)に基づきサーボモータを駆動するサーボドライバは、前記サーボモータを駆動するためのパワー回路と、指令値x(k+1)(k≧1)が入力されたときに、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を生成する補間関数生成手段と、前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する補間手段と、前記補間手段により算出された各指令値に基づき前記パワー回路を制御する駆動制御手段と、を備え、前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(k-2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致する、時間の5次式を、生成する手段である構成を有する。
 すなわち、本発明のサーボドライバは、本発明の指令値補間装置と同様に、第k(≧3)指令区間内の指令値を算出するための第k補間関数(時間の5次式)を、指令値x(k-2)から指令値x(k+1)までの4指令値に基づき生成する補間関数生成手段を備える。また、この補間関数生成手段が生成する第k(≧3)補間関数は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致する関数である。従って、補間関数生成手段が生成する各補間関数によれば、Jerk(加加速度)が小さくなる形で指令値を補間できる。そして、補間関数生成手段は、各補間関数を少量(4個)の指令値から生成するのであるから、本発明のサーボドライバによれば、指令に対する追従遅れが少ない形でパワー回路の制御できることになる。
 本発明によれば、時系列的に入力される指令値を、Jerkが大きくならず、且つ、指令に対する追従遅れが少ない形で、補間することが可能となる。
図1は、本発明の一実施形態に係るサーボドライバの概略構成及び使用形態の説明図である。 図2は、実施形態に係るサーボドライバが備える制御部の機能ブロック図である。 図3は、補間関数y(t)を説明するための図である。 図4は、制御部内の補間関数生成部が実行する補間関数生成処理の流れ図である。 図5は、パラメータ算出処理の具体例の説明図である。 図6は、パラメータ算出処理の他の具体例の説明図である。 図7は、図5のパラメータ算出処理を採用した場合におけるモータの位置及びトルクの時間変化パターンの説明図である。 図8は、図6のパラメータ算出処理を採用した場合におけるモータの位置及びトルクの時間変化パターンの説明図である。 図9は、補間関数生成処理のステップS106の処理の説明図である。 図10は、同一入力に対して、1次補間、2次補間、制御部による5次補間を行った場合のJerk値のシミュレーション結果の説明図である。 図11は、実施形態に係るサーボドライバの制御部による補間結果の説明図である。
 以下、本発明の実施の形態を、図面を参照して説明する。
 図1に、本発明の一実施形態に係るサーボドライバ20の概略構成及び使用形態を示す。
 本実施形態に係るサーボドライバ20は、モータ(三相モータ)40を駆動するための装置である。図示してあるように、サーボドライバ20は、パワー回路21、制御部10、及び、パワー回路21内のインバータ回路24(詳細は後述)の各レグの入出力電流値を測定するための電流センサ25を備える。
 パワー回路21は、モータ40に供給する三相交流を生成するための回路である。パワー回路21は、三相電源50からの三相交流を整流するための整流回路22、及び、平滑コンデンサ23を備える。さらに、パワー回路21は、平滑コンデンサ23により平滑化された整流回路22の出力電圧を、三相交流に変換するためのインバータ回路24を備える。
 制御部10は、プロセッサ、フラッシュROM、RAM、ゲートドライバ等から構成されたユニットである。図示してあるように、この制御部10には、各電流センサ25からの信号と、モータ40に取り付けられたエンコーダ41(アブソリュートエンコーダやインクリメンタルエンコーダ)からの信号とが、入力されている。
 また、制御部10のフラッシュROMには、サーボドライバ20用のものとして開発されたプログラムが記憶されている。制御部10は、当該プログラムをプロセッサがRAM上に読み出して実行することにより、後述する各種機能を有するユニットとして動作する。
 以下、制御部10の機能を説明する。
 制御部10は、基本的には、PLC(Programmable logic controller)等の上位装置30から所定の周期t(例えば、4ms)で周期的に入力される指令値(本実施形態では、電流指令値)に従ってインバータ回路24を制御するユニットである。以下、上位装置30からのk番目(k≧1;先頭が1番目)の指令値のことを、x(k)と表記する。また、k番目の指令値が入力されてからk+1番目の指令値が入力されるまでの時間区間、及び、k番目の指令値が出力されてからk+1番目の指令値が出力されるまでの時間区間のことを、第k指令区間と表記する。
 図2に、制御部10の機能ブロック図を示す。図示してあるように、制御部10は、補間関数生成部11、補間部12及び駆動部13として動作する。
 補間関数生成部11は、指令区間毎に、その指令区間用の補間関数を生成するユニット(機能ブロック)である。詳細については後述するが、この補間関数生成部11は、第k(≧1)指令区間用の補間関数y(t)として、時間tの5次式を生成する。
 y(t)=a+at+a+a+a+a
 なお、この5次式におけるtは、図3に模式的に示してあるように、第k指令区間の開始時間(開始時刻)からの経過時間である。すなわち、指令値(指令値の補間値)を算出すべき第k時間区間内の時刻をttgtと表記し、第k指令区間の開始時刻をtと表記すると、上記5次式は、tに、“ttgt-t”を代入することにより、時刻ttgtにおける指令値が算出される式となっている。
 補間部12(図2)は、基本的には、補間関数生成部11により生成された最新の補間関数による指令値の算出を、周期tよりも短い周期t(例えば、0.125ms)で繰り返すユニットである。ただし、補間部12は、第k-1指令区間用の補間式yk-1(t)から、第k指令区間内の指令値を算出する機能(詳細は後述)を有している。
 駆動部13は、各センサ25からの電流値が、補間部12により算出された指令値に応じた値となるように、インバータ回路24を制御するユニットである。
 以下、制御部10の機能を、さらに具体的に説明する。
 制御部10の補間関数生成部11は、1番目(最初)の指令値x(1)が入力されたときに、図4に示した手順の補間関数生成処理を開始する。なお、この図4及び以下の説明において、kとは、初期値が“1”で、ステップS101の処理(判断)にて“YES”側への分岐が行われる度に、“1”カウントアップされる変数のことである。
 すなわち、指令値x(1)が入力されたため、この補間関数生成処理を開始した補間関数生成部11は、まず、ステップS101にて、次の指令値の入力タイミングとなるのを待機する。換言すれば、補間関数生成部11は、今回の指令値の入力時刻から、指令値の入力周期tが経過するのを待機する。
 指令値の入力タイミングとなった場合(ステップS101;YES)、補間関数生成部11は、指令値が入力されたか否かを判断する(ステップS102)。そして、補間関数生成部11は、指令値が入力された場合(ステップS102;YES)には、k値が4以上であるか(今回入力された指令値が4番目以降の指令値であるか)否かを判断する(ステップS103)。
 k値が4未満であった場合(ステップS103;NO)、すなわち、今回入力された指令値が2番目又は3番目の指令値であった場合、補間関数生成部11は、パラメータ算出処理(ステップS104)を行ってから、関数生成処理(ステップS105)を行う。一方、今回入力された指令値が4番目以降の指令値であった場合(ステップS103;YES)、補間関数生成部11は、パラメータ算出処理を行うことなく、関数生成処理(ステップS105)を行う。
 関数生成処理は、第k指令区間用の補間関数“y(t)=a+at+a+a+a+a”の係数a~aを、以下の(1)式により算出して算出結果を補間部12に通知する処理である。
Figure JPOXMLDOC01-appb-M000003
 以下、(1)式の導出手順を説明する。なお、以下の説明では、関数f(y(t)等)のn階導関数のことを、f(n)と表記する。
 上記した(1)式は、1階導関数、2階導関数が区間境界において連続する指令値補間用の関数の生成法を鋭意研究した結果として得られたものである。
 具体的には、指令区間境界における関数値が指令値と一致し、指令区間境界における1階導関数、2階導関数が連続する補間関数は、6つの境界条件を満たす必要がある。従って、6つの係数を有する以下の(2)式(時間tの5次式)を用いれば、指令区間境界における関数値が指令値と一致し、指令区間境界における1階導関数、2階導関数が連続する補間関数を得ることができる。
Figure JPOXMLDOC01-appb-M000004
 (2)式の6つの係数の値を決定するためには、原則として、6つの指令値が必要とされる。ただし、係数a~aの値の算出に要する指令値数が多いと、指令に対する追従遅れが大きくなる。そこで、上記(1)式の開発時には、指令に対する追従遅れを少なくするために、第k補間関数の第k指令区間の各境界(開始時間“0”、終了時間“t”)における1階導関数値、2階導関数値を、以下の(3)~(6)式で近似している。
Figure JPOXMLDOC01-appb-M000005
 (3)式は、第k補間関数の第k指令区間の終了時間における1階導関数値の近似式であり、(4)式は、第k補間関数の第k指令区間の終了時間における2階導関数値の近似式である。これらの式は、(2)式のテイラー展開等により導出したものとなっている。
 具体的には、(2)式を点t回りでテイラー展開すると以下の(7)式が得られる。
Figure JPOXMLDOC01-appb-M000006

 この(7)式の右辺の“t-t”の3次以上の各項を、無視する(“0”と見做す)と、以下の(8)式を得ることができる。
Figure JPOXMLDOC01-appb-M000007
 (8)式のtに、-t、0を代入すると、それぞれ、以下の(9)、(10)式が得られる。
Figure JPOXMLDOC01-appb-M000008
 これらの式を、y (1)(t)、y (2)(t)の連立方程式として解くと、以下の(11)式と(12)式とを得ることができる。
Figure JPOXMLDOC01-appb-M000009
 上記した(3)式は、(11)式の右辺を、y(-t)=x(k-1)、y(0)=x(k)、y(t)=x(k+1)という関係式を用いて、xの式に変更したものであり、上記した(4)式は、同じ関係式を用いて、(12)式の右辺をxの式に変更したものである。
 上記した(5)、(6)式は、それぞれ、第k補間関数の第k指令区間の開始時間における1階導関数値、2階導関数値の近似式である。これらの式は、以下の手順で導出したものとなっている。
 求めたい第k補間関数は、第k指令区間の開始時間における1階、2階導関数値が、それぞれ、第k-1補間関数の第k-1指令区間の終了時間(=第k指令区間の開始時間)における1階、2階導関数値と一致する関数である。従って、第k補間関数は、以下の2条件を満たす必要がある。
Figure JPOXMLDOC01-appb-M000010
 ここで、上記した(3)、(4)式の“k”に、“k-1”を代入すると以下の(15)、(16)式を得ることができる。
Figure JPOXMLDOC01-appb-M000011
 そして、(13)式を用いて(15)式を変形すれば、(5)式が得られ、(14)式を用いて(16)式を変形すれば、(6)式が得られる。従って、(5)、(6)式を満たすようにすれば、第k指令区間の開始時間における1階、2階導関数値が、それぞれ、第k-1補間関数の第k-1指令区間の終了時間(=第k指令区間の開始時間)における1階、2階導関数値と一致する第k補間関数を得ることができる。
 以上、説明したように、(3)、(4)式は、それぞれ、第k補間関数の第k指令区間の終了時間における1階導関数値、2階導関数値の近似式として使用できるものである。また、(5)式は、第k補間関数の第k指令区間の開始時間における1階導関数値の近似式、及び、第k補間関数の第k指令区間の開始時間における1階階導関数の連続条件式として使用できるものである。さらに、(6)式は、第k補間関数の第k指令区間の開始時間における2階導関数値の近似式、及び、第k補間関数の第k指令区間の開始時間における2階階導関数の連続条件式として使用できるものである。そして、y(0)=x(k)、y(t)=x(k+1)であるから、結局、以下の(17)式が成立することになる。
Figure JPOXMLDOC01-appb-M000012
 すなわち、以下のように、行列Y、K、Xを定義すると、Y=K・Xが成立することになる。
Figure JPOXMLDOC01-appb-M000013
 また、(1)式(tの5次式)の両辺をtで微分すると、以下の(18)式を得ることができ、(18)式の両辺をtで微分すると、以下の(19)式を得ることができる。
Figure JPOXMLDOC01-appb-M000014
 さらに、(1)式から、y(0)=aが得られ、(18)式、(19)式から、それぞれ、y (1)(0)=a、y (2)(0)=2aが得られる。
 従って、以下の(20)式が成立することになる。
Figure JPOXMLDOC01-appb-M000015
 この(20)式中の右辺の6行6列行列、1行6列行列のことを、それぞれ、K、Aと表記すると、Y=K・Aが成立していることになるが、既に説明したように、Y=K・Xが成立している((17)式参照)。
 そして、KX、A、Xの要素は、全て既知数であるため、K -1・K・Xにより、Aを求めることができる。Aを求めるために、K -1・Kを実際に計算すると、以下の行列が得られる。
Figure JPOXMLDOC01-appb-M000016
 従って、A(a~a)を、上記した(1)式により算出できることになる。
 図4に戻って説明を続ける。
 上記説明から明らかなように、関数生成処理は、本来は、連続的に入力された4つ指令値を必要とする処理である。ただし、関数生成処理をそのような処理としておいた場合、4番目の指令値が入力されるまで、パワー回路21の制御(モータ40の駆動制御)を開始できないことになる。
 2番目の指令値が入力された段階で、パワー回路21の制御を開始できるようにするために用意されている処理が、ステップS104のパラメータ算出処理である。
 具体的には、上記内容の関数生成処理は、連続した4つの指令値があれば実行可能である。従って、第1補間関数の生成時には、指令値x(-1)、指令値x(0)が算出(推定)されて関数生成処理が行われ、第2補間関数の生成時には、指令値x(0)が算出されて関数生成処理が行われるようにしておけば、2番目の指令値が入力された段階でパワー回路21の制御を開始することが可能となる。なお、指令値x(-1)とは、指令値x(1)の2つ前の指令値の推定値のことであり、指令値x(0)とは、指令値x(1)の1つ前の指令値の推定値のことである。
 ただし、指令値x(-1)や指令値x(0)の値が適正でない場合には、パワー回路21に対して好ましくない制御が行われてしまうことになる。そのような不具合の発生を防止するために、ステップS104では、既に入力されている指令値に基づき、指令値x(-1)及びx(0)、又は、指令値x(0)を算出するパラメータ算出処理が行われる。
 以下、パラメータ算出処理の具体例を説明する。
 パラメータ算出処理としては、k=2である場合には、以下の(21)及び(22)式により、x(-1)とx(0)とを算出(推定)し、k=3である場合には、以下の(22)式により、x(0)を算出するものを採用することが出来る。
 x(-1)=3・x(1)-2・x(2)     …(21)
 x(0)=2・x(1)-x(2)        …(22)
 すなわち、このパラメータ算出処理では、図5に模式的に示したように、指令値の変化速度が一定であると仮定して、x(-1)及びx(0)、又はx(0)を算出する。
 また、パラメータ算出処理として、図6に模式的に示したように、k=2である場合には、指令値x(1)と同じ値を、x(-1)とx(0)として算出し、k=2である場合には、指令値x(1)と同じ値を、x(0)として算出する処理を採用することもできる。
 なお、前者のパラメータ算出処理(図5)を採用した場合、モータ40の位置、トルクは、それぞれ、図7に示したように変化する。また、後者のパラメータ算出処理(図6)を採用した場合、モータ40の位置、トルクは、それぞれ、図8に示したように変化する。
 すなわち、変化速度一定を仮定して指令値x(-1)、x(0)を算出する前者のパラメータ算出処理を採用しておけば(図7)、指令値x(-1)、x(0)をx(1)と同じ値とする後者のパラメータ算出処理を採用した場合(図8)よりも、軌道再現性を向上させることができる。ただし、後者のパラメータ算出処理を採用しておけば(図8)、動作開始点のトルクのピークを、前者のパラメータ算出処理を採用した場合(図7)よりも小さくすることができる。従って、動作開始点のトルクのピークを小さくしたい場合には、前者のパラメータ算出処理が行われるようにしておけば良く、良好な軌道再現性を得たい場合には、後者のパラメータ算出処理が行われるようにしておけば良い。
 図4に戻って説明を続ける。
 関数生成処理を終えた補間関数生成部11は、ステップS101に戻って次の指令値の入力タイミングとなるのを待機する。
 補間関数生成部11は、通常は、上記のような処理を繰り返す。ただし、指令値の入力タイミングとなったにも拘わらず、指令値が入力されなかった場合(ステップS102;NO)、補間関数生成部11は、補間部12に、前指令区間用の5次補間式での補間を指示する(ステップS106)。
 すなわち、上位装置30からは、通常、なだらかに時間変化する指令値が入力される。従って、図9に模式的に示したように、第k-1指令値から入力されなかった第k指令値(図では、欠落指令値)までの第k指令区間の補間を、第k-1指令区間用の5次補間式yk-1(t)で行うことができる。なお、第k-1指令区間用の5次補間式yk-1(t)におけるtは、第k-1指令区間の開始時刻tk-1からの経過時間である。そのため、ステップS106の処理による指示を受けた補間部12は、指令値を算出すべき時刻ttgtの第k時間区間の開始時刻からの経過時間をΔtと表記すると、yk-1(t)のtに、“t+Δt”を代入することにより、時刻ttgtにおける指令値を算出する。
 以上、説明したように、本実施形態に係るサーボドライバ20の制御部10は、指令値x(k-2)から指令値x(k+1)までの4指令値に基づき、指令値x(k)から指令値x(k+1)までの第k指令区間内の指令値を算出するための第k補間関数(時間の5次式)を生成する。そして、制御部10の生成する第k補間関数は、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、第k時間区間の開始時間における1階導関数値、2階導関数値が、それぞれ、第k-1補間関数の第k-1時間区間の終了時間における1階導関数値、2階導関数値と一致する関数である。従って、制御部10が生成する各補間関数によれば、オリジナル軌道(補間対象指令値の時間変化パターン)への追従性が高く、Jerk(加加速度)も大きくならない形で指令値を補間できる。
 具体的には、図10に、同一入力(同一の指令値群)に対して、1次補間、2次補間、制御部10による5次補間を行った場合のJerk値のシミュレーション結果を示す。図示してあるように、1次補間を行った場合(図10(a))には、指令値の入力毎に、比較的に大きなJerkが発生する。また、2次補間を行った場合(図10(b))にも、指令値の入力毎に、比較的に大きなJerkが発生するが、制御部10の5次補間によれば、図10(c)に示してあるように、Jerk値を極めて小さな値に抑えることができる。
 さらに、制御部10は、4指令値が揃わない第1補間関数、第2補間関数を、指令値x(0)等の推定値を用いて生成する機能を有している。従って、本実施形態に係るサーボドライバ20(制御部10)によれば、図11に示したように、1次補間と同様に、2番目の指令値の入力時点から、指令値の補間を開始できることにもなる。
 《変形形態》
 上記した実施形態に係るサーボドライバ20(制御部10)は、各種の変形を行えるものである。例えば、上記技術に基づき、モータ40用のものではない指令値を補正する装置を製造しても良い。また、補間関数生成処理(図4)を、指令値の入力タイミングで指令値が入力されなかった場合(ステップS102;NO)に、第k-1指令区間用の5次補間式yk-1(t)のtに2tを代入することによりx(k+1)を算出(推定)する処理が行われてから、ステップS105の処理が行われる処理に変形しても良い。
 2次導関数が連続していれば(第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致していれば)、1次導関数が連続していなくても、Jerkは小さくなる。従って、(5)式の代わりに他の式が用いられてa~aが算出されるようにしておいてもよい。ただし-1次導関数及び2次導関数の双方が連続していた方がJerkは小さくなるので、(5)式を用いておく((1)式によりa~aが算出されるようにしておく)ことが好ましい。
 なお、(5)式の代わりに使用できる式としては、以下の(23)式を例示できる。
Figure JPOXMLDOC01-appb-M000017
 この(23)式を(5)式の代わりに用いた場合、a~aは、以下の(24)式にて算出されることになる。
Figure JPOXMLDOC01-appb-M000018
 10  サーボドライバ
 11  補間関数生成部
 12  補間部
 13  駆動部
 21  パワー回路
 22  整流回路
 23  平滑コンデンサ
 24  インバータ回路
 25  電流センサ
 30  上位装置
 40  モータ
 41  エンコーダ
 50  三相電源

Claims (9)

  1.  所定周期tで順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)を補間する指令値補間装置において、
     第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を、“1”以上のk値のそれぞれについてk値の昇順に生成する補間関数生成手段と、
     前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する処理を、k値の昇順に繰り返す補間手段と、
     を備え、
     前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(k-2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致する、時間の5次式を生成する手段である、
     ことを特徴とする指令値補間装置。
  2.  前記補間関数生成手段は、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の終了時間における1階導関数値、2階導関数値が、それぞれ、前記第k-1補間関数の第k-1時間区間の開始時間における1階導関数値、2階導関数値と一致する、時間の5次式を、生成する、
     ことを特徴とする請求項1に記載の指令値補間装置。
  3.  前記第k(≧3)補間関数が、以下の式を満たすa~aを、それぞれ、0次~5次の係数とした、第k時間区間の開始時間からの経過時間tの5次式である、
     ことを特徴とする請求項2に記載の指令値補間装置。
    Figure JPOXMLDOC01-appb-M000001
  4.  前記補間関数生成手段は、前記第k(≧1)補間関数を生成するための生成処理を、指令値x(k+1)が入力されたときに実行し、
     前記補間手段は、前記第k補間関数が生成されたときに、前記第k時間区間内の指令値を算出する処理を開始する、
     ことを特徴とする請求項1から3のいずれか一項に記載の指令値補間装置。
  5.  前記補間関数生成手段は、
     x(-1)、x(0)の値が、それぞれ、“3・x(1)-2・x(2)”、“2・x(1)-x(2)”であると仮定して、前記(1)式により、前記第1補間関数を生成し、
     x(0)の値が、“2・x(1)-x(2)”であると仮定して、前記(1)式により、前記第2補間関数を生成する、
     ことを特徴とする請求項3に記載の指令値補間装置。
  6.  前記補間関数生成手段は、
     x(-1)、x(0)の値が、いずれも、x(1)であると仮定して、前記(1)式により、前記第1補間関数を生成し、
     x(0)の値が、x(1)であると仮定して、前記(1)式により、前記第2補間関数を生成する、
     ことを特徴とする請求項3に記載の指令値補間装置。
  7.  指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間手段は、第k-1補間関数を用いて第k時間区間内の指令値を算出する、
     ことを特徴とする請求項1から6のいずれか一項に記載の指令値補間装置。
  8.  指令値x(k+1)(k≧3)が入力されるべき入力タイミングで指令値x(k+1)が入力されなかった場合、前記補間関数生成手段は、第k-1補間関数を用いて指令値x(k+1)を推定し、推定した指令値x(k+1)を用いて第k補間関数を生成する
     ことを特徴とする請求項1から6のいずれか一項に記載の指令値補間装置。
  9.  所定周期で順次入力される指令値x(k)(kは、何番目に入力された指令値であるかを示す整数値)に基づきサーボモータを駆動するサーボドライバにおいて、
     前記サーボモータを駆動するためのパワー回路と、
     指令値x(k+1)(k≧1)が入力されたときに、第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致する第k補間関数を生成する補間関数生成手段と、
     前記補間関数生成手段により生成される前記第k補間関数を用いて前記第k時間区間内の複数の指令値を算出する補間手段と、
     前記補間手段により算出された各指令値に基づき前記パワー回路を制御する駆動制御手段と、
     を備え、
     前記補間関数生成手段が、前記第k(≧3)補間関数を指令値x(k-2)から指令値x(k+1)までの4指令値に基づき生成する手段であると共に、前記第k(≧3)補間関数として、前記第k時間区間の開始時間、終了時間における関数値が、それぞれ、指令値x(k)、指令値x(k+1)と一致し、且つ、前記第k時間区間の開始時間における2階導関数値が、第k-1補間関数の第k-1時間区間の終了時間における2階導関数値と一致する、時間の5次式を、生成する手段である、
     ことを特徴とするサーボドライバ。
PCT/JP2018/040891 2017-11-09 2018-11-02 指令値補間装置及びサーボドライバ WO2019093246A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP18876860.0A EP3709117A4 (en) 2017-11-09 2018-11-02 INSTRUCTIONAL VALUE INTERPOLATION AND SERVO-PILOT DEVICE
CN201880054565.4A CN111052029B (zh) 2017-11-09 2018-11-02 指令值插值装置和伺服驱动器
US16/644,526 US11494465B2 (en) 2017-11-09 2018-11-02 Command value interpolation apparatus and servo driver

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017216317A JP6816704B2 (ja) 2017-11-09 2017-11-09 指令値補間装置及びサーボドライバ
JP2017-216317 2017-11-09

Publications (1)

Publication Number Publication Date
WO2019093246A1 true WO2019093246A1 (ja) 2019-05-16

Family

ID=66438401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/040891 WO2019093246A1 (ja) 2017-11-09 2018-11-02 指令値補間装置及びサーボドライバ

Country Status (5)

Country Link
US (1) US11494465B2 (ja)
EP (1) EP3709117A4 (ja)
JP (1) JP6816704B2 (ja)
CN (1) CN111052029B (ja)
WO (1) WO2019093246A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093716B (zh) * 2019-12-19 2024-04-30 广州极飞科技股份有限公司 一种运动轨迹规划方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225825A (ja) 2007-03-13 2008-09-25 Shin Nippon Koki Co Ltd 数値制御装置
JP2011086099A (ja) * 2009-10-15 2011-04-28 Toyota Motor Corp 移動体の移動経路データの生成方法
JP2013030103A (ja) * 2011-07-29 2013-02-07 Shin Nippon Koki Co Ltd 数値制御装置
JP2013184245A (ja) * 2012-03-07 2013-09-19 Canon Inc ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
WO2014064815A1 (ja) * 2012-10-25 2014-05-01 三菱電機株式会社 サーボ制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3882304A (en) * 1973-05-04 1975-05-06 Allen Bradley Co Parametric interpolation of three-dimensional surfaces
JP2897333B2 (ja) * 1990-04-11 1999-05-31 ブラザー工業株式会社 サーボ制御装置
JP5326015B2 (ja) 2012-02-20 2013-10-30 ファナック株式会社 加工曲線作成機能を有する数値制御装置
US9211806B2 (en) * 2012-04-23 2015-12-15 GM Global Technology Operations LLC Methods, systems and apparatus for generating voltage commands used to control operation of a permanent magnet machine
US9517556B2 (en) * 2012-06-29 2016-12-13 Mitsubishi Electric Corporation Robot control apparatus and robot control method
JP2015051469A (ja) * 2013-09-05 2015-03-19 キヤノン株式会社 ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
US9923444B2 (en) * 2014-06-02 2018-03-20 Ats Automation Tooling Systems Inc. Linear motor system with powered curvilinear track sections
CN106826829B (zh) * 2017-02-22 2019-05-03 武汉工程大学 一种可控误差的工业机器人光顺运动轨迹生成方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225825A (ja) 2007-03-13 2008-09-25 Shin Nippon Koki Co Ltd 数値制御装置
JP2011086099A (ja) * 2009-10-15 2011-04-28 Toyota Motor Corp 移動体の移動経路データの生成方法
JP2013030103A (ja) * 2011-07-29 2013-02-07 Shin Nippon Koki Co Ltd 数値制御装置
JP2013184245A (ja) * 2012-03-07 2013-09-19 Canon Inc ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
WO2014064815A1 (ja) * 2012-10-25 2014-05-01 三菱電機株式会社 サーボ制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3709117A4

Also Published As

Publication number Publication date
CN111052029B (zh) 2023-03-07
EP3709117A4 (en) 2021-07-28
US20200285689A1 (en) 2020-09-10
JP6816704B2 (ja) 2021-01-20
EP3709117A1 (en) 2020-09-16
US11494465B2 (en) 2022-11-08
CN111052029A (zh) 2020-04-21
JP2019087128A (ja) 2019-06-06

Similar Documents

Publication Publication Date Title
CN106873506B (zh) 校正装置、校正装置的控制方法、信息处理程序及记录介质
JP5650814B1 (ja) フィードフォワード制御を備えたモータ制御装置
US6859007B2 (en) Servo motor drive control device
JP3185857B2 (ja) モータ制御装置
JP2004288164A (ja) 同期制御装置
US10386794B2 (en) Control device, storage medium, and control system by creating internal model of control target
US8972075B2 (en) Method for controlling the temperature of a glow plug
JP6544219B2 (ja) 制御装置
JP2004234327A (ja) サーボモータ駆動制御装置
WO2011101915A1 (ja) 指令生成装置
JP2010022145A (ja) 同期制御装置
WO2019093246A1 (ja) 指令値補間装置及びサーボドライバ
WO2019092852A1 (ja) サーボ制御装置
JP2019008707A (ja) サーボ制御装置、サーボ制御方法及びシステム
JP6769246B2 (ja) 電動機制御装置
JP2011067016A (ja) サーボ制御装置
JP2000020104A (ja) 速度制御ゲイン調整方法および装置
JP4604636B2 (ja) 電力変換制御装置
JP2010130852A (ja) 電動機制御装置と予測制御方法
RU2568523C1 (ru) Способ автоматического регулирования с реверсивным исполнительным механизмом
JP2007128341A (ja) サーボドライブ装置
JP2005284843A (ja) 位置指令作成方法
RU2020112298A (ru) Регулирование плоскостности с оптимизатором
JP2006113960A (ja) 位置指令作成方法およびこれを実行する位置制御装置
JP2007108936A (ja) デジタルサーボ制御装置及びその制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18876860

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018876860

Country of ref document: EP

Effective date: 20200609