CONTROL DEVICE, MODEL CREATION METHOD, AND CONTROL PROGRAM
20220066404 · 2022-03-03
Assignee
Inventors
- Masaki NAMIE (Kyoto-shi, Kyoto, JP)
- Yukio INAME (Kyoto-shi, Kyoto, JP)
- Yoshimasa USUI (Kyoto-shi, Kyoto, JP)
Cpc classification
G05B19/404
PHYSICS
G05B2219/42077
PHYSICS
G05B13/042
PHYSICS
G05B2219/39195
PHYSICS
H02P23/18
ELECTRICITY
International classification
Abstract
A control device includes a control component that performs model predictive control for each control period using a dynamics model representing a relationship between a manipulated variable and the position of a controlled object to generate a manipulated variable to be output to the servo driver. The dynamics model includes a first dynamics model representing a relationship between the manipulated variable and a position of a servomotor, and a second dynamics model representing a relationship between the position of the servomotor and the position of the controlled object. The second dynamics model is created using a waveform parameter extracted from a vibration waveform of the controlled object. The waveform parameter includes a vibration frequency.
Claims
1. A control device connected to a servo driver configured to drive a servomotor configured to move a controlled object, and configured to output a manipulated variable to the servo driver to control a position of the controlled object, the control device comprising: a control component configured to perform model predictive control for each control period using a dynamics model representing a relationship between the manipulated variable and a position of the controlled object to generate a manipulated variable to be output to the servo driver, the dynamics model including a first dynamics model representing a relationship between the manipulated variable and a position of the servomotor, and a second dynamics model representing a relationship between the position of the servomotor and the position of the controlled object, the second dynamics model being created using a waveform parameter extracted from a vibration waveform of the controlled object, the waveform parameter including a vibration frequency.
2. The control device according to claim 1, wherein the waveform parameter further includes an amplitude ratio of two successive waves in the vibration waveform.
3. The control device according to claim 1, wherein the control component: inputs a manipulated variable generated before a current control period to the first dynamics model to calculate a predicted position of the servomotor; inputs the predicted position of the servomotor to the second dynamics model to calculate a predicted position of the controlled object for a future control period elapsing since the current control period ends by a dead time defined in the dynamics model; and uses the predicted position of the controlled object and the dynamics model to generate a manipulated variable to be output to the servo driver in a subsequent control period so as to minimize a deviation from a target trajectory of a position assumed by the controlled object in the future control period et. seq.
4. The control device according to claim 1, wherein the control component compensates for a predicted position of the servomotor based on a feedback value received from the servomotor.
5. The control device according to claim 1, wherein the control component includes: an output component configured to output a characteristic parameter which defines the first dynamics model; and a generation component configured to receive the characteristic parameter and the waveform parameter and generate the manipulated variable to be output to the servo driver.
6. The control device according to claim 1, wherein the control component includes: an output component configured to receive the waveform parameter and output a characteristic parameter which defines the dynamics model composed of the first and second dynamics models combined together; and a generation component configured to receive the characteristic parameter and generate the manipulated variable to be output to the servo driver.
7. The control device according to claim 1, wherein the control component includes: an output component configured to output a characteristic parameter which defines the first dynamics model, and receive a measured position of the controlled object and output the waveform parameter; and a generation component configured to receive the characteristic parameter and the waveform parameter and generate the manipulated variable to be output to the servo driver.
8. The control device according to claim 5, wherein the control device includes a processor configured to execute a user program and the output component and the generation component are implemented by a function block defined in the user program.
9. A model creation method for creating the second dynamics model used by the control device according to claim 1, the model creation method comprising: obtaining a vibration waveform of a controlled object; extracting a waveform parameter from the vibration waveform; and creating the second dynamics model using the waveform parameter, the waveform parameter including a vibration frequency.
10. A non-transitory computer-readable storage medium storing a control program executed in a control device connected to a servo driver configured to drive a servomotor configured to move a controlled object, and configured to output a manipulated variable to the servo driver to positionally control the controlled object, the control program causing the control device to: create a first dynamics model representing a relationship between the manipulated variable and a position of the servomotor; use a waveform parameter extracted from a vibration waveform of the controlled object to create a second dynamics model representing a relationship between the position of the servomotor and a position of the controlled object; and use the first and second dynamics models to perform model predictive control for each control period to generate a manipulated variable to be output to the servo driver, the waveform parameter including a vibration frequency.
11. The non-transitory computer-readable storage medium according to claim 10, wherein the waveform parameter further includes an amplitude ratio of two successive waves in the vibration waveform.
12. The non-transitory computer-readable storage medium according to claim 10, wherein the control program causing the control device to: input a manipulated variable generated before a current control period to the first dynamics model to calculate a predicted position of the servomotor; input the predicted position of the servomotor to the second dynamics model to calculate a predicted position of the controlled object for a future control period elapsing since the current control period ends by a dead time defined in the dynamics model; and use the predicted position of the controlled object and the dynamics model to generate a manipulated variable to be output to the servo driver in a subsequent control period so as to minimize a deviation from a target trajectory of a position assumed by the controlled object in the future control period et. seq.
13. The non-transitory computer-readable storage medium according to claim 10, wherein the control program causing the control device to compensate for a predicted position of the servomotor based on a feedback value received from the servomotor.
14. The non-transitory computer-readable storage medium according to claim 10, wherein the control program causing the control device to: generate a characteristic parameter which defines the first dynamics model; and use the characteristic parameter and the waveform parameter to generate the manipulated variable to be output to the servo driver.
15. The non-transitory computer-readable storage medium according to claim 10, wherein the control program causing the control device to: use the waveform parameter to generate a characteristic parameter which defines the dynamics model composed of the first and second dynamics models combined together; and use the characteristic parameter to generate the manipulated variable to be output to the servo driver.
16. The non-transitory computer-readable storage medium according to claim 10, wherein the control program causing the control device to: generate a characteristic parameter which defines the first dynamics model; use a measured position of the controlled object to generate the waveform parameter; and use the characteristic parameter and the waveform parameter to generate the manipulated variable to be output to the servo driver.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
DESCRIPTION OF EMBODIMENTS
[0036] An embodiment of the present invention will now be described in detail with reference to the drawings. Note that in the figures, identical or corresponding components are identically denoted, and accordingly, will not be described repeatedly.
§ 1. Exemplary Application
[0037] Initially, an example of a scenario in which the present invention is applied will be described with reference to
[0038] Controlled object 2 in the example shown in
[0039] One or more servomotors are motors configured to move controlled object 2, including working plate 3, and in the example shown in
[0040] Controlled object 2 includes a first base plate 4 and a second base plate 7 in addition to working plate 3.
[0041] First base plate 4 is provided with a ball screw 6 to move working plate 3 in the X direction, as desired. Ball screw 6 is engaged with a nut included in working plate 3. When servomotor 300X connected to one end of ball screw 6 is driven and thus rotated, the nut included in working plate 3 and ball screw 6 rotate relative to each other, and as a result, working plate 3 will move in the X direction.
[0042] Further, second base plate 7 is provided with a ball screw 9 to move working plate 3 and first base plate 4 in the Y direction, as desired. Ball screw 9 is engaged with a nut included in first base plate 4. When servomotor 300Y connected to one end of ball screw 9 is driven and thus rotated, the nut included in first base plate 4 and ball screw 9 rotate relative to each other, and as a result, working plate 3 and first base plate 4 will move in the Y direction.
[0043] The one or more servo drivers drive the servomotors. In the example shown in
[0044] Servo driver 200 generates a drive signal for the associated servomotor 300 based on a command value (a command position or a command speed) received from control device 100 and a feedback value received from the associated servomotor 300. Servo driver 200 outputs the generated operation signal to servomotor 300 to drive servomotor 300.
[0045] For example, servo driver 200 receives as the feedback value a signal output from an encoder coupled to the rotation shaft of the associated servomotor 300. Servomotor 300's position, rotational phase, rotational speed, cumulative rotational speed, and the like can be detected from the feedback value.
[0046] Control device 100 is connected to one or more servo drivers 200, and outputs a manipulated variable to each of one or more servo drivers 200 to positionally control controlled object 2 including working plate 3. Control device 100 and one or more servo drivers 200 can communicate data including the manipulated variable.
[0047]
[0048] Control device 100 performs model predictive control using a dynamics model representing a relationship between a manipulated variable and the position of controlled object 2 to generate a manipulated variable to be output to servo driver 200. Control device 100 outputs the generated manipulated variable to servo driver 200 as a command value (a command position or a command speed). The dynamics model is a model of servo driver 200, servomotor 300, and controlled object 2, and is defined by a transfer function representing a relationship between a manipulated variable (that is, a command value) as an input value and a load position as an output value. Model predictive control is a control method for determining an input value so that a deviation from a target value of an output value predicted using a model is minimized.
[0049] If a measured value obtained by continuously and highly accurately measuring the load position can be acquired, the transfer function between the manipulated variable and the load position can be directly created. However, continuously and highly accurately measuring the load position requires cost. Accordingly, control device 100 of the present embodiment performs model predictive control using a first dynamics model representing a relationship between the manipulated variable and the position of servomotor 300 (hereinafter referred to as a “motor position”) and a second dynamics model representing a relationship between the motor position and the load position.
[0050] The first dynamics model is a model of servo driver 200 and servomotor 300, and is defined by a transfer function representing a relationship between a manipulated variable as an input value and a motor position as an output value. Generally, servomotor 300 is provided with an encoder, and the motor position is continuously and highly accurately measured by a feedback value received from the encoder. Accordingly, the first dynamics model is created based on the measured value of the motor position.
[0051] The second dynamics model is a model of controlled object 2, and is defined by a transfer function representing a relationship between a motor position as an input value and a load position as an output value. The motor position and the load position has a relationship depending on the vibration of controlled object 2. Accordingly, the second dynamics model is created using a waveform parameter extracted from the vibration waveform of controlled object 2. The waveform parameter includes a vibration frequency (typically, an eigenfrequency) of controlled object 2.
[0052] The vibration waveform of controlled object 2 can be measured using a simple measuring instrument. In the example shown in
[0053] Thus, a simple measuring instrument can be used to measure the vibration waveform of controlled object 2 to create the second dynamics model representing the relationship between the motor position and the load position. Then, by combining the first and second dynamics models together, a dynamics model representing a relationship between the manipulated variable (that is, the command value) and the load position can be created. The created dynamics model can be used to perform model predictive control to generate a manipulated variable, and the load position can be caused to track a target trajectory and vibration damping for the load position can be improved.
§ 2. Specific Example
[0054] A specific example of control device 100 according to the present embodiment will now be described.
A. Exemplary Hardware Configuration of Control Device
[0055] Control device 100 according to the present embodiment may be implemented using a PLC (programmable controller), for example. Control device 100 may implement processing, as will be described below, by a processor executing a control program (including a system program and a user program, as will be described hereinafter) stored previously.
[0056]
[0057] Processor 102 reads a system program 110 and a user program 112 stored in flash memory 108, and develops them in main memory 106 and executes them to implement any control for the controlled object. Processor 102 executes system program 110 and user program 112 to perform processing involved in outputting a manipulated variable output to servo driver 200, communicating data via the field bus, and the like, as will be described hereinafter.
[0058] System program 110 includes instruction codes for providing basic functions of control device 100, such as data input/output processing and execution timing control. System program 110 includes, as a part thereof, a model creation library 110A and a model predictive control library 110B. These libraries are a type of program module and include instruction codes for implementing processings and functions according to the present embodiment. User program 112 is designed depending on the controlled object, as desired, and includes a sequence program 112A for executing sequence control and a motion program 112B for executing motion control. Processings and functions according to the present embodiment are implemented by defining in user program 112 a model creation function block and a model predictive control function block using model creation library 110A and model predictive control library 110B, respectively. A function block is a component of a program executed by control device 100, and means a modularization of a program element which is used a plurality of times.
[0059] Chip set 104 controls components to implement processing as control device 100 as a whole.
[0060] Internal bus controller 122 is an interface configured to communicate data with various devices coupled to control device 100 via an internal bus. An I/O unit 126 is connected as an example of such a device.
[0061] Field bus controller 124 is an interface configured to communicate data with various devices coupled to control device 100 via a field bus. As an example of such a device, servo driver 200 is connected.
[0062] Internal bus controller 122 and field bus controller 124 can issue any instruction to a device connected thereto and can obtain any data (including measured values) managed by the device. Internal bus controller 122 and/or field bus controller 124 also function as an interface configured to communicate data with servo driver 200.
[0063] External network controller 116 controls communicating data through various wired/wireless networks. Memory card interface 118 is configured to allow memory card 120 to be attached thereto and detached therefrom, and can write data to memory card 120 and read data from memory card 120.
B. Servo Driver
[0064] Operation of servo driver 200 connected to control device 100 according to the present embodiment will now be described. Servo driver 200 receives a manipulated variable output from control device 100 as a command value (a command position or a command speed), and receives a signal output from an encoder coupled to servomotor 300 as a feedback value. Servo driver 200 uses the command value and the feedback value to perform a control operation in accordance with a control loop of a model tracking control system, for example.
[0065] When servo driver 200 receives a command position as the command value, servo driver 200 performs a control operation in accordance with a position control loop and a speed control loop. When servo driver 200 receives a command speed as the command value, servo driver 200 performs a control operation in accordance with the speed control loop.
[0066] Servo driver 200 performs the control operation in accordance with the position control loop to calculate a command speed corresponding to a positional deviation between a measured position of servomotor 300 obtained from a feedback value and the command position provided from control device 100.
[0067] Servo driver 200 performs the control operation in accordance with the speed control loop to calculate a torque corresponding to a speed deviation between the command speed and a measured speed of servomotor 300 obtained from a feedback value. Servo driver 200 outputs an operation signal indicating a command for a current to cause servomotor 300 to generate the calculated torque.
C. Exemplary Functional Configuration of Control Device
[0068]
[0069] Model creation module 130 is typically implemented as the model creation function block is defined in user program 112 and thereby model creation library 110A is called. That is, model creation module 130 is functionalized by a function block defined in user program 112.
[0070] Model creation module 130 creates a first dynamics model representing dynamics of a first target to be modelled 400 composed of servo driver 200 and servomotor 300. Model creation module 130 provides model predictive control module 150 with a characteristic parameter which defines the created first dynamics model.
[0071] Trajectory generation module 140 generates time-series data of target positions for controlled object 2 along a previously specified target trajectory, and sequentially reads each target position SP corresponding to a control period from the time-series data and inputs it to model predictive control module 150. Specifically, trajectory generation module 140 extracts from the time-series data of the target positions a plurality of target positions for a period of time from the current time to the end of a prediction horizon serving as a fixed period of time in the future, and inputs the plurality of extracted target positions to model predictive control module 150.
[0072] Control device 100 may previously store the time-series data of the target positions that define the target trajectory. In that case, trajectory generation module 140 accesses the previously stored time-series data of the target positions. Thus, each target position for a control period that defines the target trajectory may be stored previously in the form of time-series data, or each target position for a control period may be sequentially calculated according to a predetermined calculation formula.
[0073] Model predictive control module 150 is typically implemented as the model predictive control function block is defined in user program 112 and thereby model predictive control library 110B is called. That is, model predictive control module 150 is functionalized by a function block defined in user program 112.
[0074] Model predictive control module 150 creates a second dynamics model representing dynamics of a second target to be modelled 402 composed of controlled object 2 serving as a load. Model predictive control module 150 uses the first and second dynamics models to perform model predictive control for each control period to generate a manipulated variable MV to be output to servo driver 200. Model predictive control module 150 outputs the generated manipulated variable MV as a command value to servo driver 200.
D. Creating the First Dynamics Model
[0075] A method for creating the first dynamics model will now be described. The first dynamics model is created using a method disclosed in Japanese Patent Laid-Open No. 2018-120327 (PTL 2), for example. The first dynamics model is created by tuning before model predictive control is performed.
[0076]
[0077] The first dynamics model is represented by a function, which is represented, for example, by the following function P.sub.CM(z.sup.−1). Function P.sub.CM(z.sup.−1) is a discrete time transfer function obtained by combining a dead time element and an n-order delay element. In the first dynamics model represented by function P.sub.CM(z.sup.−1), a dead time d for the dead time element and variables a.sub.1-a.sub.n and b.sub.1-b.sub.m for the n-order delay element are determined as characteristic parameters. Note that optimal values may also be determined for the order n and the order m.
[0078] A process of creating such characteristic parameters (that is, system identification) may be performed through least squares or the like using an identifier input and an identifier output.
[0079] Specifically, the characteristic parameters have their values determined such that an output y obtained when a manipulated variable selected as an identifier input is given to a variable u of y=P.sub.CM(z.sup.−1)*u matches a measured position selected as an identifier output (that is, such that a minimal error is provided).
[0080] In doing so, dead time d may be determined in advance and an identifier output is advanced by the determined dead time d to generate a compensated time waveform, and the remaining element of the transfer function other than the dead time element may be determined based on the compensated time waveform.
[0081] A plurality of first dynamics models may be calculated by varying the order n and the order m. In that case, an optimal first dynamics model is created based on one or more evaluation criteria. The evaluation criteria include a degree indicative of reliability of identification (a FIT rate), validity of dead time, and the like. For a static system model, a steady-state gain's validity may be applied as an evaluation criterion.
[0082] A FIT rate is a value indicating a rate of matching between an output calculated when an identifier input is given to function P.sub.CM(z.sup.−1) defined by a calculated characteristic parameter and an actually collected identifier output. For such a FIT rate, a known calculation formula used to calculate an error can be used. Basically, a calculation formula with a maximal FIT rate (that is, with a maximal matching rate/a minimal error) may be selected.
[0083] In evaluating the first dynamics model, a model exhibiting a peculiar behavior may be excluded. For example, when a dynamics model exhibits a peculiar behavior that is not included in an inherent characteristic of the controlled object, it is not considered to present the inherent characteristic of the controlled object, and accordingly, it may be excluded as a problematic dynamics model.
[0084] Thus, in the process for calculating the first dynamics model, a plurality of first dynamics models with characteristic parameters varied may be calculated. In that case, the FIT rate described above may be used to create one of the plurality of first dynamics models.
E. Creating the Second Dynamics Model
[0085] A method for creating the second dynamics model will now be described. The second dynamics model is created using a vibration waveform of controlled object 2 that is obtained in the tuning performed before model predictive control is performed. For example, in the tuning performed to create the first dynamics model, laser displacement meters 5 and 8 shown in
[0086]
f.sub.0=1/(√{square root over (1−ζ.sup.2)}T′.sub.0) [Expression 2]
[0087] Model predictive control module 150 uses the calculated vibration frequency f.sub.0 to create the second dynamics model. The second dynamics model is represented by a function P.sub.ML(s), for example as indicated below by the following expression 3. In function P.sub.ML(s), ω.sub.0 is the angular frequency of vibration of controlled object 2, and it is indicated by ω.sub.0=2πf.sub.0. Model predictive control module 150 can use the calculated vibration frequency f.sub.0 to create the second dynamics model represented by function P.sub.ML(s).
[0088] The second dynamics model may be represented by a function P.sub.ML(s) as indicated below by the following expression 4 or 5.
[0089] ζ is expressed as ζ=δ/δ.sup.2+4π.sup.2).sup.1/2 using logarithmic decrement δ. Logarithmic decrement δ is expressed by δ=ln(1/Adr) using an amplitude ratio Adr of two successive waves in a vibration waveform and natural logarithm ln. Amplitude ratio Adr is represented by a ratio of amplitudes A.sub.n and A.sub.n+1 of two successive waves in the vibration waveform shown in
[0090] Model predictive control module 150 transforms function P.sub.ML(s) of expressions 3 to 5 into a discrete time format (or performs Z transform) and uses the transformed function P.sub.ML(z.sup.−1) to perform calculation. That is, model predictive control module 150 inputs an input value to a variable u′ of y′=P.sub.ML(z.sup.−1)*u′ to calculate an output value Y.
F. Example of Processing Through Model Predictive Control
[0091] Before describing an example of processing through model predictive control, reference will be made to
[0092] As shown in
[0093] Using the calculation method shown in
[0094] Model predictive control module 150 inputs manipulated variables MV.sub.k, . . . , MV.sub.k−m+1 generated up to the current control period k to first dynamics model P.sub.CM represented by function P.sub.CM(z.sup.−1) of expression 1 to calculate a predicted motor position YM.sub.k+d+1 for a control period k+d+1. Herein, m represents an order defined by first dynamics model P.sub.CM, as described above. Control period k+d+1 is a control period after dead time d+1 defined in the dynamics model elapses since the current control period k ends.
[0095] Model predictive control module 150 inputs predicted motor position YM.sub.k+d+1 to second dynamics model P.sub.ML to calculate a predicted load position YL.sub.k+d+1 for control period k+d+1.
[0096] Predicted load position YL.sub.k+d+1 thus obtained is used to generate manipulated variable MV for a subsequent control period. In doing so, the calculated data is shifted by one control period in preparation for the subsequent control period. For example, predicted load position YL.sub.k+d+1 thus obtained is used as a predicted load position YL.sub.k+d in the subsequent control period. In other words, in the current control period k, predicted load position YL.sub.k+d+1 calculated in the previous control period is used as predicted load position YL.sub.k+d. Model predictive control module 150 performs model predictive control using predicted load position YL.sub.k+d calculated in the previous control period and first and second dynamics models P.sub.CM and P.sub.ML to generate manipulated variable MV.sub.k to be output to servo driver 200.
[0097] A known technique may be employed for model predictive control. For example, model predictive control module 150 may generate manipulated variable MV.sub.k in accordance with the following model predictive control.
[0098] After model predictive control module 150 creates first and second dynamics models P.sub.CM and P.sub.ML, model predictive control module 150 performs step response calculation and ramp response calculation.
[0099] Step response calculation is calculation to obtain an output Ys of a dynamics model (a model obtained by combining first and second dynamics models P.sub.CM and P.sub.ML together) when a maximum input (a step input) is continued in an initial state with an output of 0. In the following description, output Ys at a time i (>dead time d) elapsing since inputting the step input is started is indicated as Ys(i).
[0100] Ramp response calculation is a calculation to obtain an output Yr of the dynamics model when an input increased by one step for each control period (i.e., a ramp input) is provided in an initial state having an output of 0. In the following description, output Yr at time i (>dead time d) elapsing since inputting the ramp input is started is indicated as Yr(i).
[0101] Further, model predictive control module 150 performs free response calculation with predicted load position YL.sub.k+d set in a designated state. Free response calculation is a calculation to obtain an output Yf (k+d+H) of a dynamics model in a designated state in control period k+d for a control period k+d+H later than control period k+d when an input for the current control period k et. seq. is 0.
[0102] With a step output having a magnitude ks and a ramp output having a magnitude kr, model predictive control module 150 calculates an output MH.sub.k+d+H of the dynamics model for control period k+d+H after control period k+d in accordance with the following expression:
MH.sub.k+d+H=ks*Ys(H)+kr*Yr(H)+Yf(k+d+H).
[0103] Model predictive control module 150 obtains ks and kr so that a difference ΔMH between MH.sub.k+d+H and predicted load position YL.sub.k+d matches a difference ΔPH between a position RH.sub.k+d+H on a reference trajectory for control period k+d+H and predicted load position YL.sub.k+d. The reference trajectory is specified by a target position SP.sub.k+d+H for control period k+d+H and a predetermined reference trajectory time constant Tr. In order to obtain two variables ks and kr, two values are set as H. The two values set as H are periods of time shorter than the vibration period of controlled object 2, and they are for example ⅛ and ¼ of the vibration period. And variables ks and kr are calculated by solving simultaneous equations composed of the equations for the two values.
[0104] Model predictive control module 150 may generate a product of ks obtained as described above and the step input as manipulated variable MV.sub.k to be output to servo driver 200 in the current control period k.
G. Processing Procedure
[0105] A processing procedure for motor control by control device 100 according to the present embodiment will now be outlined.
[0106] Initially, control device 100 causes servo driver 200 to perform tuning and thereby obtains an identifier input and an identifier output, and creates first dynamics model P.sub.CM based on the obtained identifier input and output (step S1).
[0107] Subsequently, control device 100 creates second dynamics model P.sub.ML using a vibration waveform of controlled object 2 obtained in the tuning (step S2).
[0108] Control device 100 performs model predictive control using first and second dynamics models P.sub.CM and P.sub.ML respectively created in steps S1 and S2 to generate manipulated variable MV to be output to servo driver 200 for each control period (Step S3).
[0109] Subsequently, control device 100 determines whether the end point of the target trajectory is reached (step S4). When the end point of the target trajectory is not reached (NO in step S4), step S3 is repeated.
[0110] When the end point of the target trajectory is reached (YES in step S4), model predictive control ends. Through a processing procedure as above, control device 100 implements control according to the present embodiment. Note that steps S1 to S4 are performed for each designated servo driver 200. Accordingly, steps S1 to S4 may be performed for each of the plurality of servo drivers 200 in parallel.
[0111]
Exemplary Programming
[0112] The motor control by control device 100 according to the present embodiment can be performed by describing instructions in user program 112 executed by control device 100. An example of programming of control device 100 according to the present embodiment will now be described below.
[0113]
[0114] While automatic model creation FB 113 and model predictive control FB 115 are described side by side for convenience of description, they may be used individually.
[0115] Automatic model creation FB 113 includes, as input items, a start instruction 113A, a sampling period 113B, an identifier output 113C, and torque 113D. Automatic model creation FB 113 includes, as output items, a status 113E, an identifier input 113F, and a characteristic parameter 113G.
[0116] For example, a condition for starting creation of the first dynamics model is set for start instruction 113A. In the example shown in
[0117] A signal used as the identifier output is set for identifier output 113C. In the example shown in
[0118] A signal indicating a torque serving as a feedback value for generating a magnitude for the identifier output is set for torque 113D. The signal output from torque 113D is used to determine a magnitude for the identifier input such that the identifier output can have a sufficient magnitude within a range in which torque saturation does not occur.
[0119] Status 113E outputs a value indicating a state of execution of a process performed by automatic model creation FB 113.
[0120] A signal used as the identifier input is set for identifier input 113F. In the example shown in
[0121] From characteristic parameter 113G, characteristic parameters (d, a.sub.1-a.sub.n and b.sub.1-b.sub.m) which define the first dynamics model are output. When user program 112 is described in variable programming, a variable name indicating a structure for storing these characteristic parameters may be set. These characteristic parameters may be used in model predictive control FB 115.
[0122] Model predictive control FB 115 includes, as input items, a start instruction 115A, a sampling period 115B, a target position 115C, a characteristic parameter 115D, a vibration frequency 115E, and an amplitude ratio 115F. Model predictive control FB 115 includes a status 115G and a manipulated variable 115H as output items.
[0123] For example, a condition for starting model predictive control is set for start instruction 115A. In the example shown in
[0124] A control period for performing calculation by model predictive control is set for sampling period 115B.
[0125] A data array of a plurality of target positions which defines a predetermined target trajectory for controlled object 2 is set for target position 115C.
[0126] Characteristic parameter 115D receives characteristic parameters (d, a.sub.1-a.sub.n and b.sub.1-b.sub.m) output from characteristic parameter 113G of automatic model creation FB 113.
[0127] Vibration frequency f.sub.0 extracted from a previously measured vibration waveform of controlled object 2 is input to vibration frequency 115E. Amplitude ratio Adr extracted from the vibration waveform is input to amplitude ratio 115F.
[0128] A value indicating a state of execution of a process by model predictive control FB 115 is output from status 115G.
[0129] Manipulated variable 115H outputs manipulated variable MV generated by performing model predictive control using the first and second dynamics models. The first dynamics model is defined by a characteristic parameter input to characteristic parameter 115D. Of vibration frequency f.sub.0 input to vibration frequency 115E and amplitude ratio Adr input to amplitude ratio 115F, at least vibration frequency f.sub.0 defines the second dynamics model. Servo driver 200 will receive manipulated variable MV output from manipulated variable 115H. Such model predictive control allows controlled object 2 to assume a position having a trajectory closer to the target trajectory.
[0130] Thus, control device 100 according to the present embodiment allows first and second dynamics models to be created and used to implement model predictive control simply by describing a user program using two function blocks.
I. Simulation Result
[0131] A simulation was performed to verify an effect of control device 100 according to the present embodiment.
[0132]
[0133] In
[0134] In
[0135] As shown in
[0136] Further, as can be seen from the graphs in the third row, when using model predictive control according to the present embodiment is compared with using the inverse characteristic filter disclosed in PTL 1, the former provides a reduced deviation between the target position and the load position. From this, enhanced target trajectory tracking has been confirmed.
J. Advantage
[0137] Thus, control device 100 of the present embodiment is connected to servo driver 200 configured to drive servomotor 300 configured to move controlled object 2, and is configured to output a manipulated variable to servo driver 200 to control the position of controlled object 2. Control device 100 includes control means 160 configured to perform model predictive control using a dynamics model representing a relationship between the manipulated variable and the position of controlled object 2 to generate the manipulated variable to be output to servo driver 200. The dynamics model includes a first dynamics model representing a relationship between the manipulated variable and the position of servomotor 300 (the motor position), and a second dynamics model representing a relationship between the position of the servomotor and the position of controlled object 2 (the load position). The second dynamics model is created using a waveform parameter extracted from a vibration waveform of controlled object 2. The waveform parameter includes a vibration frequency.
[0138] The vibration waveform of controlled object 2 can be measured using a simple measuring instrument (e.g., laser displacement meter 5, 8). A simple measuring instrument can be used to measure the vibration waveform of controlled object 2 to create the second dynamics model representing the relationship between the motor position and the load position. The first dynamics model and the second dynamics model can be combined together to create a dynamics model representing a relationship between the manipulated variable and the load position. The created dynamics model can be used to perform model predictive control to generate a manipulated variable, and the load position can be caused to track a target trajectory and vibration damping for the load position can be improved.
[0139] Preferably, the waveform parameter further includes an amplitude ratio of two successive waves in the vibration waveform. Thus, the second dynamics model expressed by function P.sub.ML(s) of an expression 4 or 5 can be created. As a result, a predicted load position is predicted with better accuracy.
[0140] Model predictive control module 150 of control unit 160 inputs manipulated variable MV generated up to the current control period k to the first dynamics model to calculate predicted motor position YM.sub.k+d+1 for future control period k+d+1 elapsing since control period k ends by dead time d+1. Further, model predictive control module 150 inputs predicted motor position YM.sub.k+d+1 to the second dynamics model to calculate predicted load position YL.sub.k+d+1 for control period k+d+1. Model predictive control module 150 uses predicted load position YL.sub.k+d+1 and a dynamics model (the first and second dynamics models) to generate manipulated variable MV to be output to servo driver 200 in a subsequent control period so as to minimize a deviation from the target trajectory of the load position assumed in control period k+d+1 et. seq. This allows the load position to track the target position.
[0141] Control unit 160 includes: model creation module 130 configured to output a characteristic parameter which defines the first dynamics model; and model predictive control module 150 configured to receive the characteristic parameter and the waveform parameter and generate manipulated variable MV to be output to servo driver 200. Furthermore, control device 100 includes processor 102 configured to execute user program 112. Model creation module 130 and model predictive control module 150 are implemented by a function block defined in user program 112. Thus, model creation module 130 and model predictive control module 150 can be easily implemented by using the function block.
K. Modified Examples
K-1. Modified Example 1
[0142] In order to predict predicted load position YL more accurately, the model predictive control module may receive a feedback value from servomotor 300 and use it to compensate for predicted motor position YM.
[0143]
[0144] As well as model predictive control module 150, model predictive control module 150A uses a first dynamics model to calculate predicted motor position YM and uses a second dynamics model to calculate predicted load position YL. Note, however, that model predictive control module 150A differs from model predictive control module 150 in that the former uses a measured position PVM of servomotor 300 to compensate for predicted motor position YM. Measured position PVM of servomotor 300 is determined from a feedback value received from servomotor 300.
[0145] Hereinafter, a specific example of a method for compensating for predicted motor position YM will be described. The following specific example is an example when a first dynamics model represented by a function P.sub.CM(z.sup.−1) of an expression 6 is created and a second dynamics model represented by a function P.sub.ML(z.sup.−1) of an expression 7 is created. Function P.sub.ML(z.sup.−1) of expression 7 is obtained, for example, by transforming function P.sub.ML(s) of expression 5 into a discrete time format.
[0146] For example, model predictive control module 150A calculates a difference value between predicted motor position YM.sub.k and a measured motor position PVM.sub.k for the current control period k as a compensated variable C. That is, compensated variable C is expressed by C=PVM.sub.k−YM.sub.k. Since dead time d is set in function P.sub.CM(z.sup.−1) of expression 6, predicted motor position YM.sub.k for the current control period k has been calculated in a past control period k−d−1.
[0147] Subsequently, model predictive control module 150A compensates for predicted motor position YM.sub.k to measured position PVM.sub.k, and uses compensated variable C to compensate for predicted motor positions YM.sub.k+1 to YM.sub.k+d up to control period k+d elapsing since the current control period k by dead time d, as follows:
YM.sub.k+1←YM.sub.k+1+C
YM.sub.k+d←YM.sub.k+d+C.
Predicted motor positions YM.sub.k+1 to YM.sub.k+d are calculated in past control periods k−d to k−1, respectively.
[0148] Subsequently, model predictive control module 150A inputs the compensated predicted motor position YM.sub.k+d and manipulated variable MV.sub.k generated in the current control period k to the first dynamics model to calculate predicted motor position YM.sub.k+d+1 for control period k+d+1. When the first dynamics model is expressed by function P.sub.CM(z.sup.−1) of expression 6, model predictive control module 150A may calculate predicted motor position YM.sub.k+d+1 for control period k+d+1 in accordance with the following expression:
YM.sub.k+d+1=−a.sub.CM1YM.sub.k+d+b.sub.CM1MV.sub.k.
[0149] Thus, model predictive control module 150A compensates for predicted motor position YM. How model predictive control module 150A compensates for predicted motor position YM is not limited to the above-described compensation method, and a different calculation method may be used.
[0150] Model predictive control module 150A uses the compensated predicted motor position YM to calculate predicted load position YL. When the second dynamics model is expressed by function P.sub.ML(z.sup.−1) of expression 7, model predictive control module 150A may calculate predicted load position YL.sub.k+d+1 for control period k+d+1 in accordance with the following expression:
YL.sub.k+d+1=−a.sub.ML1YL.sub.k+d−a.sub.ML2YL.sub.k+d−1+b.sub.ML1YM.sub.k+d+1+b.sub.ML2YM.sub.k+d.
[0151] Model predictive control module 150A may use predicted load position YL.sub.k+d+1 and a dynamics model (the first and second dynamics models) to generate manipulated variable MV to be output to servo driver 200 in a subsequent control period so as to minimize a deviation from the target trajectory of the load position assumed in control period k+d+1 et. seq.
K-2. Modified Example 2
[0152] In the above embodiment, the vibration frequency and amplitude ratio of controlled object 2 are extracted from a vibration waveform measured while tuning is performed. However, vibration frequency f.sub.0 and amplitude ratio Adr of controlled object 2 may be measured previously through a preliminary experiment or the like and stored in control device 100. In that case, model predictive control module 150 may access previously stored data to read vibration frequency f.sub.0 and amplitude ratio Adr.
K-3. Modified Example 3
[0153] In the above embodiment, automatic model creation FB 113 and model predictive control FB 115 shown in
[0154] For example, automatic model creation FB 113 may include “vibration frequency” and “amplitude ratio” as input items. Vibration frequency f.sub.0 is input to the input item “vibration frequency”. Amplitude ratio Adr is input to the input item “amplitude ratio”. Then, characteristic parameter 113G of automatic model creation FB 113 may output characteristic parameters (d, a.sub.1-a.sub.n and b.sub.1-b.sub.m) which define a dynamics model P.sub.CM*P.sub.ML obtained by combining first and second dynamics models P.sub.CM and P.sub.ML. In that case, characteristic parameter 115D of model predictive control FB 115 receives characteristic parameters (d, a.sub.1-a.sub.n and b.sub.1-b.sub.m) output from characteristic parameter 113G. Then, manipulated variable 115H of model predictive control FB 115 outputs manipulated variable MV generated while considering dynamics model P.sub.CM*P.sub.ML defined by the characteristic parameters (d, a.sub.1-a.sub.n and b.sub.1-b.sub.m).
[0155] That is, model creation module 130 implemented by automatic model creation FB 113 receives a waveform parameter (vibration frequency f.sub.0 and amplitude ratio Adr) and outputs a characteristic parameter which defines dynamics model P.sub.CM*P.sub.ML obtained by combining first and second dynamics models P.sub.CM and P.sub.ML. Model predictive control module 150 implemented by model predictive control FB 115 receives the characteristic parameter and performs model predictive control using the dynamics model defined by the characteristic parameter to generate a manipulated variable to be output to servo driver 200.
[0156] Alternatively, automatic model creation FB 113 may include “load position” as an input item and “vibration frequency” and “amplitude ratio” as output items. The input item “load position” receives a measured position of controlled object 2 as measured by laser displacement meters 5 and 8 shown in
[0157] That is, model creation module 130 implemented by automatic model creation FB 113 outputs a characteristic parameter which defines a first dynamics model, and also receives a measured position of controlled object 2 and outputs a waveform parameter (i.e., vibration frequency f.sub.0 and amplitude ratio Adr). Model predictive control module 150 implemented by model predictive control FB 115 receives the characteristic parameter and the waveform parameter. Model predictive control module 150 performs model predictive control using the first dynamics model defined by the characteristic parameter and the second dynamics model created using the waveform parameter to generate a manipulated variable to be output to servo driver 200.
K-4. Modified Example 4
[0158] In the above embodiment, controlled object 2 is of a two-inertial system. However, controlled object 2 may be of a three or more inertial system. A three-inertial system is represented by two vibrations. Accordingly, the second dynamics model is represented in a form in which any two of expressions 3 to 5 are connected in series. For example, second dynamics model P.sub.ML is created using function P.sub.ML(s) of an expression 8 below:
[0159] In function P.sub.ML(s) of expression 8, ω.sub.01 and ζ.sub.1 represent the vibration frequency and damping ratio, respectively, of one of the two vibrations. ω.sub.02 and ζ.sub.2, represent the vibration frequency and damping ratio, respectively, of the other of the two vibrations.
L. Additional Note
[0160] As described above, the present embodiment and its modified examples include the following disclosure:
[0161] (Configuration 1)
[0162] A control device (100, 100A) connected to a servo driver (200, 200A, 200B) configured to drive a servomotor (300, 300A, 300B) configured to move a controlled object (2), and configured to output a manipulated variable to the servo driver (200, 200A, 200B) to positionally control the controlled object (2), the control device comprising:
[0163] a control means (160, 160A) configured to perform model predictive control for each control period using a dynamics model representing a relationship between the manipulated variable and a position of the controlled object (2) to generate a manipulated variable to be output to the servo driver,
[0164] the dynamics model including a first dynamics model representing a relationship between the manipulated variable and a position of the servomotor, and a second dynamics model representing a relationship between the position of the servomotor and the position of the controlled object,
[0165] the second dynamics model being created using a waveform parameter extracted from a vibration waveform of the controlled object, the waveform parameter including a vibration frequency.
[0166] (Configuration 2)
[0167] The control device (100, 100A) according to configuration 1, wherein the waveform parameter further includes an amplitude ratio of two successive waves in the vibration waveform.
[0168] (Configuration 3)
[0169] The control device (100, 100A) according to configuration 1 or 2, wherein the control means (160):
[0170] inputs a manipulated variable generated before a current control period to the first dynamics model to calculate a predicted position of the servomotor (300, 300A, 300B);
[0171] inputs the predicted position of the servomotor (300, 300A, 300B) to the second dynamics model to calculate a predicted position of the controlled object for a future control period elapsing since the current control period ends by a dead time defined in the dynamics model; and uses the predicted position of the controlled object and the dynamics model to generate a manipulated variable to be output to the servo driver (200, 200A, 200B) in a subsequent control period so as to minimize a deviation from a target trajectory of a position assumed by the controlled object in the future control period et. seq.
[0172] (Configuration 4)
[0173] The control device (100A) according to configuration 1 or 2, wherein the control means (160A) compensates for a predicted position of the servomotor (300, 300A, 300B) based on a feedback value received from the servomotor.
[0174] (Configuration 5)
[0175] The control device (100, 100A) according to configuration 1 or 2, wherein the control means (160, 160A) includes:
[0176] an output means (130) configured to output a characteristic parameter which defines the first dynamics model; and
[0177] a generation means (150) configured to receive the characteristic parameter and the waveform parameter and generate the manipulated variable to be output to the servo driver.
[0178] (Configuration 6)
[0179] The control device (100, 100A) according to configuration 1 or 2, wherein the control means (160, 160A) includes:
[0180] an output means (130) configured to receive the waveform parameter and output a characteristic parameter which defines the dynamics model composed of the first and second dynamics models combined together; and
[0181] a generation means (150) configured to receive the characteristic parameter and generate the manipulated variable to be output to the servo driver.
[0182] (Configuration 7)
[0183] The control device (100, 100A) according to configuration 1 or 2, wherein the control means (160, 160A) includes:
[0184] an output means (130) configured to output a characteristic parameter which defines the first dynamics model, and receive a position of the controlled object and output the waveform parameter; and
[0185] a generation means (150) configured to receive the characteristic parameter and the waveform parameter and generate the manipulated variable to be output to the servo driver.
[0186] (Configuration 8)
[0187] The control device (100, 100A) according to any one of configurations 5 to 7, wherein
[0188] the control device (100, 100A) includes a processor (102) configured to execute a user program and
[0189] the output means (130) and the generation means (150) are implemented by a function block (113, 115) defined in the user program.
[0190] (Configuration 9)
[0191] A model creation method for creating the second dynamics model used by the control device (100, 100A) according to any one of configurations 1 to 8, the method comprising:
[0192] obtaining a vibration waveform of a controlled object;
[0193] extracting a waveform parameter from the vibration waveform; and
[0194] creating the second dynamics model using the waveform parameter,
[0195] the waveform parameter including a vibration frequency.
[0196] (Configuration 10)
[0197] A control program (112) executed in a control device (100, 100A) connected to a servo driver (200, 200A, 200B) configured to drive a servomotor (300, 300A, 300B) configured to move a controlled object (2), and configured to output a manipulated variable to the servo driver (200, 200A, 200B) to positionally control the controlled object (2),
[0198] the control program (112) causing the control device (100, 100A) to:
[0199] create a first dynamics model representing a relationship between the manipulated variable and a position of the servomotor (300, 300A, 300B);
[0200] use a waveform parameter extracted from a vibration waveform of the controlled object (2) to create a second dynamics model representing a relationship between the position of the servomotor (300, 300A, 300B) and a position of the controlled object (2); and
[0201] use the first and second dynamics models to perform model predictive control for each control period to generate a manipulated variable to be output to the servo driver (200, 200A, 200B), the waveform parameter including a vibration frequency.
[0202] While the present invention has been described in embodiments, it should be understood that the embodiments disclosed herein are illustrative and non-restrictive in any respect. The scope of the present invention is defined by the terms of the claims, and is intended to include any modifications within the meaning and scope equivalent to the terms of the claims.
REFERENCE SIGNS LIST
[0203] 1 control system, 2 controlled object, 3 working plate, 4 first base plate, 5,8 laser displacement meter, 6,9 ball screw, 7 second base plate, 100, 100A control device, 101 field bus, 102 processor, 104 chip set, 106 main memory, 108 flash memory, 110 system program, 110A model creation library, 110B model predictive control library, 112 user program, 112A sequence program, 112B motion program, 113 automatic model creation FB, 113A, 115A start instruction, 113B, 115B sampling period, 113C identifier output, 113D torque, 113E, 115G status, 113F identifier input, 113G, 115D characteristic parameter, 115 model predictive control FB, 115C target position, 115E vibration frequency, 115F amplitude ratio, 115H manipulated variable, 1151 prediction error, 116 external network controller, 118 memory card interface, 120 memory card, 122 internal bus controller, 124 field bus controller, 126 I/O Unit, 130 model creation module, 140 trajectory generation module, 150, 150A model predictive control module, 160, 160A control unit, 200, 200X, 200Y servo driver, 300, 300X, 300Y servomotor, 400 first target to be modelled, 402 second target to be modelled.