MOTOR CONTROL DEVICE, INDUSTRIAL MACHINE SYSTEM, AND MOTOR CONTROL METHOD
The control device adjusts motor commands based on elasticity parameters to correct for elastic deformation stages, enhancing positioning accuracy by addressing errors caused by multiple elastic elements between the motor and driven body.
Patent Information
- Application Number
- JP2023522025
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-05-17
- Publication Date
- 2025-01-15
- Estimated Expiration
- 2041-05-17
AI Technical Summary
The positioning accuracy of a driven body is affected by the elastic deformation of multiple elastic elements interposed between a motor and the driven body, leading to errors in positioning.
A control device that generates motor commands and adjusts these commands based on elasticity parameters of the elastic elements, detecting transitions between stages of elastic deformation to apply correction amounts using correction amount calculation processes tailored to each stage.
This approach effectively cancels out errors caused by gradual elastic deformation, significantly improving the positioning accuracy of the driven body by accounting for the elasticity of multiple elements.
Smart Images

Figure 0007614345000001 
Figure 0007614345000002 
Figure 0007614345000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a motor control device, an industrial machinery system, and a motor control method. [Background technology]
[0002] In a control device that controls a motor connected to a driven object via an elastic element (e.g., a ball screw), a technique is known in which a command to the motor is corrected in accordance with the elastic deformation of the elastic element (e.g., Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2014-013554 A Summary of the Invention [Problem to be solved by the invention]
[0004] In some cases, the accuracy of positioning the driven body by the motor is affected by the stepwise elastic deformation of multiple elastic elements inserted between the motor and the driven body. Conventionally, there has been a demand for a technology to improve the positioning accuracy in such cases. [Means for solving the problem]
[0005] In one aspect of the present disclosure, a control device that is connected to a driven body via a plurality of elastic elements and controls a motor that drives the driven body includes a command generating unit that generates a command to operate the motor to accelerate, a correction amount calculation unit that executes a correction amount calculation process to determine a correction amount of the command based on an elastic parameter that represents the elasticity of the elastic elements, and a stage detection unit that detects a transition from a first stage in which a driving force generated by the motor in response to the command acts on a first elastic element to a second stage in which the driving force acts on a second elastic element through the first elastic elements.
[0006] When a transition from the first stage to the second stage is detected, the correction amount calculation unit switches the correction amount calculation process to be executed from a first correction amount calculation process based on a first elastic parameter of the first elastic element to a second correction amount calculation process based on a second elastic parameter of the second elastic element and the first elastic parameter.
[0007] In another aspect of the present disclosure, a method for controlling a motor connected to a driven body via multiple elastic elements and driving the driven body includes a processor generating a command to operate the motor to accelerate, executing a correction amount calculation process to determine a correction amount of the command based on an elastic parameter representing the elasticity of the elastic elements, detecting a transition from a first stage in which a driving force generated by the motor in response to the command acts on a first elastic element to a second stage in which the driving force acts on a second elastic element through the first elastic elements, and switching the correction amount calculation process to be executed when the transition from the first stage to the second stage is detected from a first correction amount calculation process based on a first elastic parameter of the first elastic element to a second correction amount calculation process based on the first elastic parameter of the first elastic element and a second elastic parameter of the second elastic element. Effect of the Invention
[0008] According to the present disclosure, it is possible to obtain a correction amount appropriate for the stage at which the driving force of the motor acts on the multiple elastic elements. Therefore, in a case where the motor and the driven body are connected via multiple elastic elements, it is possible to cancel out errors caused by the stepwise elastic deformation of the multiple elastic elements with high accuracy, thereby improving the positioning accuracy of the driven body by the motor. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a block diagram of an industrial machinery system according to an embodiment. [Diagram 2] A schematic diagram of the industrial machine shown in Figure 1 is shown. [Diagram 3] A machine model of the industrial machine shown in Figure 2 is shown. [Figure 4]In the mechanical model shown in FIG. 3, a first stage is shown in which the driving force of the motor acts on the first elastic element. [Diagram 5] In the mechanical model shown in FIG. 3, a second stage is shown in which the driving force of the motor acts on the second elastic element through the first elastic element. [Figure 6] 4 shows an example of the time-varying characteristics of a command to operate a motor. [Figure 7] 2 is a flowchart showing an example of an operation flow of the control device shown in FIG. [Figure 8] 2 is a block diagram showing other functions of the control device shown in FIG. 1. [Figure 9] 9 is a flowchart showing an example of an operation flow of the control device shown in FIG. 8. [Figure 10] FIG. 11 is a block diagram of an industrial machinery system including a control device according to another embodiment. [Figure 11] 11 is a flowchart showing an example of an operation flow of the control device shown in FIG. [Figure 12] 11 is a block diagram showing other functions of the control device shown in FIG. 10. [Figure 13] 11 is a flowchart showing another example of the operation flow of the control device shown in FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the drawings. In various embodiments described below, similar elements are given the same reference numerals, and duplicated explanations will be omitted. First, an industrial machinery system 10 according to one embodiment will be described with reference to Figs. 1 and 2. The industrial machinery system 10 includes an industrial machine 12 and a control device 14.
[0011] The industrial machine 12 is for performing a predetermined operation (cutting, welding, etc.) on a workpiece, and has a motor 16, a plurality of elastic elements 18 and 20, and a driven body 22. The motor 16 is, for example, a servo motor serving as an electric motor, and rotates an output shaft 16a (FIG. 2) thereof in response to a command from the control device 14.
[0012] The output shaft 16a of the motor 16 and the driven body 22 are mechanically connected to each other via a plurality of elastic elements 18 and 20. For example, the elastic element 18 is a ball screw that extends straight along the axis A, and is a member (for example, an iron member) having an elastic parameter PR1.
[0013] The elastic parameter PR1 is a parameter representing the elasticity of the elastic element 18, and has, for example, a spring constant k1, a compliance C1 (=1 / k1), or an elastic modulus G1 (including Young's modulus, rigidity modulus, Poisson's ratio, etc.). In the following description, the direction along the axis A indicated by the arrow B in FIG. 2 may be referred to as the rightward direction. The left end of the elastic element 18 is fixed to the output shaft 16a of the motor 16.
[0014] On the other hand, the elastic element 20 is, for example, a sealing mechanism interposed between the elastic element 18 and the driven body 22 to prevent foreign matter from entering the inside of a housing (not shown) that houses the elastic element 18, and is a member (for example, a rubber member) having an elastic parameter PR2. The elastic parameter PR2 is a parameter that indicates the elasticity of the elastic element 20, and may have a spring constant k2, a compliance C2 (=1 / k2), or an elastic modulus G2.
[0015] The driven body 22 is, for example, a work table on which a workpiece is placed, and has an engagement portion 22a that engages with the elastic element 18 serving as a ball screw. When the motor 16 rotates the output shaft 16a, the elastic element 18 is rotated about the axis A, and in response to the rotation of the elastic element 18, the driven body 22 is reciprocated in the direction of the axis A.
[0016] On the other hand, the elastic element 20 as a sealing mechanism is in contact with the driven body 22, and elastically deforms as the driven body 22 reciprocates, applying elastic deformation stress, frictional force, and other forces to the driven body 22. In this way, the motor 16 drives the driven body 22 via the elastic elements 18 and 20.
[0017] At least one sensor 24 (FIG. 1) is provided to the motor 16. For example, the sensor 24 includes a rotation detection sensor (encoder, Hall element, etc.) that detects the rotational position P of the output shaft 16a, a current sensor that detects the current I supplied to the motor 16, and a force sensor (torque sensor) that detects the driving force F (torque) that the motor 16 applies to the output shaft 16a.
[0018] The sensor 24 detects the rotational position P, the current I, and the driving force F, and supplies them to the control device 14 as the position feedback P, the current feedback I, and the force feedback F, respectively. The sensor 24 may detect the acceleration α of the output shaft 16a (or the driven body 22) and supply the detected value to the control device 14 as the acceleration feedback α, or may supply the acceleration feedback α obtained by differentiating the position feedback P twice with respect to time to the control device 14.
[0019] The control device 14 controls the industrial machine 12 (specifically, the motor 16). As shown in Fig. 1, the control device 14 is a computer having a processor 30, a memory 32, and an I / O interface 34. The processor 30 has a CPU, a GPU, or the like, and is communicatively connected to the memory 32 and the I / O interface 34 via a bus 36. The processor 30 performs arithmetic processing to realize a command correction function, which will be described later, while communicating with the memory 32 and the I / O interface 34.
[0020] The memory 32 has a RAM or a ROM, etc., and temporarily or permanently stores various data used in the arithmetic processing for the command correction function executed by the processor 30, and various data generated during the arithmetic processing. The I / O interface 34 has, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and communicates data with an external device via wired or wireless communication under a command from the processor 30.
[0021] The processor 30 generates a command CM for driving the motor 16 to accelerate. This command CM has, for example, a position command CMp, a speed command CMv, and a torque command CMτ. The position command CMp specifies a target position of the driven body 22 (i.e., the output shaft 16a of the motor 16), the speed command CMv specifies a speed V of the motor 16 (or the driven body 22), and the torque command CMτ specifies a driving force F (torque) of the motor 16.
[0022] Note that the command CM may have an acceleration command CMα that specifies the acceleration α of the output shaft 16a of the motor 16 (or the driven body 22) instead of the torque command CMτ. In this manner, in the present embodiment, the processor 30 functions as a command generator 40 (FIG. 1) that generates the command CM.
[0023] The motor 16 generates a driving force F (torque) that rotates the output shaft 16a in response to the command CM. The driving force F generated by the motor 16 acts on the elastic element 18 and then on the elastic element 20, thereby driving the driven body 22. The elastic elements 18 and 20 can be regarded as springs that are slightly elastically deformed by the action of the driving force F.
[0024] Fig. 3 shows a schematic mechanical system model of the industrial machine 12. As shown in Fig. 3, the industrial machine 12 can be roughly represented as a mechanical system model in which elastic elements 18 and 20 acting as springs are interposed between a motor 16 and a driven body 22. As shown in Fig. 3, in the mechanical system model of the industrial machine 12, a backlash element BL1 exists between the elastic element 18 and the elastic element 20.
[0025] The backlash element BL1 on the mechanical system model represents the backlash between the output shaft 16a and the elastic element 18, and the backlash between the elastic element 18 and the driven body 22 (the engagement portion 22a). On the other hand, a backlash element BL2 exists between the elastic element 18 and the elastic element 20. The backlash element BL2 on the mechanical system model represents the backlash between the elastic element 20 and the driven body 22.
[0026] Here, it is assumed that the processor 30 generates a command CM for accelerating the motor 16 after reversing the operating direction of the motor 16 (i.e., the rotation direction of the output shaft 16a) from one side to the other, and the command CM reverses the moving direction of the driven body 22 from right to left, accelerating the driven body 22 to the left. In this case, the motor 16 generates a driving force F (torque) according to the command CM.
[0027] This driving force F first acts on the elastic element 18, but due to the above-mentioned backlash element BL1, a minute time lag TL1 occurs before the driving force F acts on the elastic element 18 and elastically deforms the elastic element 18 (in terms of the mechanical model, the spring of the elastic element 18 is stretched). When the time lag TL1 has elapsed since the driving force F acts on the elastic element 18 (i.e., when the backlash element BL1 is eliminated), the elastic element 18 begins to elastically deform (i.e., the spring is stretched) due to the driving force F acting on the elastic element 18, as shown in FIG.
[0028] Meanwhile, due to the backlash element BL2 described above, a minute time lag TL2 occurs from when the elastic element 18 elastically deforms until the driving force F elastically deforms the elastic element 20 (i.e., stretches the spring of the elastic element 20). When the time lag TL2 has elapsed since the elastic element 18 elastically deforms (i.e., when the backlash element BL2 is eliminated), the elastic element 20 starts to elastically deform due to the driving force F acting on the elastic element 20, as shown in Fig. 5. Then, the driven body 22 starts to move leftward while receiving a force (stress, frictional force) from the elastic element 20.
[0029] Thus, in the industrial machine 12, there is a stage ST1 (FIG. 4) in which the driving force F generated by the motor 16 acts on the elastic element 18 to elastically deform the elastic element 18, and in this stage ST1, due to the influence of the backlash element BL2, the driving force F does not substantially act on the elastic element 20. That is, in this stage ST1, it can be considered that only the spring of the elastic element 18 exists in the machine model of the industrial machine 12, and therefore, only the elastic parameter PR1 needs to be considered.
[0030] Then, from stage ST1, the process moves to stage ST2 (FIG. 5) in which the driving force F acts on the elastic element 20 through the elastic element 18 to elastically deform the elastic element 20. In this stage ST2, since the driving force F acts on the elastic elements 18 and 20, it can be considered that a composite spring of the elastic elements 18 and 20 exists in the machine model of the industrial machine 12, and therefore, it is necessary to take into account the elastic parameters PR1 and PR2.
[0031] In this way, the driven body 22 is driven by the driving force F through multiple stages ST1 and ST2 in which the driving force F acts stepwise on the multiple elastic elements 18 and 20. When the motor 16 generates the driving force F in accordance with the command CM, the elastic elements 18 and 20 undergo stepwise elastic deformation, causing a delay in the start of movement of the driven body 22 to the left, resulting in an error ε between the position command CMp constituting the command CM and the actual position of the driven body 22 (specifically, the rotational position of the motor 16).
[0032] In order to cancel out such an error ε, the processor 30 executes a correction amount calculation process CP to obtain a correction amount β for correcting the command CM based on the elastic parameters PR of the elastic elements 18 and 20. Therefore, in this embodiment, the processor 30 functions as a correction amount calculation unit 42 (FIG. 1) that executes the correction amount calculation process CP. The correction amount calculation process CP will be described in detail later.
[0033] Fig. 6 shows an example of the time change characteristics of the position command CMp and the torque command CMτ included in the command CM when the motor 16 is accelerated according to the command CM and the driven body 22 is moved as described with reference to Figs. 3 to 5. The position command CMp shown in Fig. 6 indicates that the operating direction of the motor 16 (or the driven body 22) is reversed at time t0.
[0034] On the other hand, the degree of change D of the torque command CMτ with respect to time t is relatively steep in the period from time t0 to t1, but is relatively gradual in the period after time t1. The period from time t0 to t1 corresponds to the above-mentioned stage ST1, while the period after time t1 corresponds to the above-mentioned stage ST2.
[0035] The driving force F generated by the motor 16 in response to the command CM is highly correlated with the torque command CMτ, the force feedback F, the acceleration feedback α (or the acceleration command CMα), and the current feedback I. Therefore, the torque command CMτ, the force feedback F, the acceleration feedback α, the acceleration command CMα, and the current feedback I can be regarded as a force parameter FP indicating the driving force F. Therefore, the time change characteristics of the force feedback F, the acceleration α, the acceleration command CMα, and the current feedback I are similar to the time change characteristics of the torque command CMτ (in other words, the driving force F) shown in FIG.
[0036] In this embodiment, the processor 30 detects a transition from stage ST1 to stage ST2 in order to execute different correction amount calculation processes CP1, CP2 for stages ST1 and ST2 during operation of the motor 16. Specifically, the processor 30 obtains a degree of change D of the force parameter FP (torque command CMτ, acceleration command CMα, force feedback F, acceleration α, acceleration feedback α, or current feedback I), and detects a transition from stage ST1 to stage ST2 based on the degree of change D.
[0037] As an example, the processor 30 acquires the gradient D1 (=ΔCMτ / Δt) of the torque command CMτ (FIG. 6) as the degree of change D. For example, when the processor 30 generates the command CM at a control period Tc (for example, 50 [msec]), the most recently generated torque command CMτ n and the torque command CMτ n The torque command CMτ generated just before n-1 The difference between D2 (=CMτ n -CMτ n-1 ) and divide the difference D2 by the control period Tc to obtain the slope D1 (=D2 / Tc=(CMτ n -CMτ n-1 ) / Tc) may also be calculated.
[0038] Alternatively, the processor 30 may calculate the difference D2 (=CMτ n -CMτ n-1 As for the acceleration command CMα, the processor 30 may obtain a gradient D3(=ΔCMα / Δt=(CMα n -CMα n-1 ) / Tc), or the difference D4 (=CMα n -CMα n-1 ) can be obtained as the degree of change D.
[0039] As another example, the processor 30 acquires the gradient D5 (=ΔF / Δt) of the force feedback F as the degree of change D. For example, the processor 30 acquires the force feedback F from the sensor 24 at a control period tc. Then, the processor 30 acquires the most recently acquired force feedback F n and the force feedback F n The force feedback F obtained just before n-1 The difference between D6 (=F n -F n-1 ) and divide the difference D6 by the control period Tc to obtain the slope D5 (=D6 / Tc=(F n -F n-1 ) / Tc) may also be calculated.
[0040] Alternatively, the processor 30 may calculate the difference D6 (=F n -F n-1 ) may be acquired as the degree of change D. Note that the processor 30 may also acquire the force feedback F n Similarly, the current feedback I is obtained from the sensor 24 at the control period Tc, and the slope D7 (= δI / δt = (I n -I n-1 ) / Tc), or the difference D8(=I n -I n-1 ) can be obtained as the degree of change D.
[0041] As yet another example, the processor 30 may acquire a slope D9 (i.e., a jerk) of the acceleration feedback α as the degree of change D. Specifically, the processor 30 acquires the position feedback P from the sensor 24 at the control period Tc, and calculates the most recently acquired position feedback P n and the position feedback P n The position feedback P generated just before n-1 The difference between (=P n -P n-1 ) and divide the difference by the control period Tc to obtain the velocity feedback V n (=(P n -P n-1 ) / Tc).
[0042] The processor 30 then calculates the most recently obtained velocity feedback V n and the velocity feedback V n The velocity feedback V generated just before n-1 Difference with (=V n -V n-1 ) and divide the difference by the control period Tc to obtain the acceleration feedback α n (=(V n -V n-1 ) / Tc).
[0043] The processor 30 then calculates the most recently obtained acceleration feedback α n and the acceleration feedback α nThe acceleration feedback α generated just before n-1 The difference between D10 (=α n -α n-1 ) and divide the difference D10 by the control period Tc to obtain the gradient D9 of the acceleration feedback α (=D10 / Tc=(α n -α n-1 Alternatively, the processor 30 may obtain the above-mentioned difference D10 as the degree D of change in the acceleration feedback α.
[0044] As described above, the processor 30 functions as a change acquisition unit 44 (FIG. 1) that acquires the degree of change D (D1 to D10) of the force parameter FP (specifically, the torque command CMτ, the acceleration command CMτ, the force feedback F, the current feedback I, or the acceleration feedback α).
[0045] Next, the processor 30 determines whether the acquired degree of change D is equal to or smaller than a predetermined criterion D th For example, when the gradient D1 of the torque command CMτ is acquired as the degree of change D, the processor 30 determines whether the gradient D1 exceeds a predetermined reference value D. th1 If it decreases beyond D1 <D th1 ), the degree of change D is the standard D th is judged to have exceeded.
[0046] This standard value D th1 For example, the gradient D1 of the torque command CMτ at stage ST1 shown in FIG. _1 and the slope D1 of the torque command CMτ in stage ST2 _2 Values between (D1 _2 <D th1 <D1 _1 ) in advance. The processor 30 may also determine the standard D th It should be understood that it is possible to determine whether the
[0047] The processor 30 determines whether the degree of change D is equal to the reference D thWhen it is determined that the difference between the first and second stages has exceeded the threshold value, the transition from stage ST1 to stage ST2 (in other words, the timing of time t1) is detected. In this manner, in the present embodiment, the stage detector 46 (FIG. 1) functions as the stage detector 46 that detects the transition from stage ST1 to stage ST2.
[0048] When the processor 30 detects a transition from stage ST1 to stage ST2 as described above, the processor 30 switches the correction amount calculation process CP to be executed from the correction amount calculation process CP1 based on the elastic parameter PR1 of the elastic element 18 to the correction amount calculation process CP2 based on the elastic parameter PR1 and the elastic parameter PR2 of the elastic element 20.
[0049] Specifically, the processor 30 functions as a correction amount calculation unit 42, and executes a correction amount calculation process CP1 in stage ST1 (the period from time t0 to t1 in FIG. 6), and in the correction amount calculation process CP1, calculates a correction amount β1 for the elastic element 18 using a spring constant k1 as an elastic parameter PR1 of the elastic element 18 and the above-mentioned force parameter FP. As an example, in the correction amount calculation process CP1, the processor 30 calculates the correction amount β1 by substituting the spring constant k1 and the most recently acquired torque command CMτ into the following formula (1). β1=CMτ / k1 (1)
[0050] This formula (1) is the so-called Hook's law, and the correction amount calculation process CP1 according to this embodiment is based on a machine model in which the elastic element 18 is assumed to be one spring, as shown in Figures 3 to 5. The spring constant k1 is determined in advance as a proportionality coefficient between the force (torque) applied to the elastic element 18 by the motor 16 in the industrial machine 12 and the amount of elastic deformation of the elastic element 18 in the direction of the axis A due to the force, and is stored in the memory 32.
[0051] The correction amount β1 calculated from the above formula (1) is for canceling the error ε1 caused by the elastic deformation of the elastic element 18 in stage ST1 (FIG. 4). In this way, the processor 30 calculates the correction amount β1 related to the elastic element 18 by executing the correction amount calculation process CP1 in stage ST1.
[0052] Then, in stage ST1, the processor 30 corrects the command CM with the obtained correction amount β1. Specifically, since the correction amount β1 is a parameter of the same dimension as the rotational position P of the motor 16 (or the position of the driven body 22), the processor 30 applies the correction amount β1 to the position command CMp to correct the position command CMp. For example, the processor 30 may correct the position command CMp by adding the correction amount β1 to the position command CMp (CMp+β1). Alternatively, the correction amount β1 may be converted into the rotational position of the output shaft 16a of the motor 16, and the converted correction amount β1 may be added to the position command CMp.
[0053] On the other hand, in stage ST2 (the period after time t1 in FIG. 6), the processor 30 functions as the correction amount calculation unit 42 and executes the correction amount calculation process CP2. As an example of the correction amount calculation process CP2, the processor 30 first acquires the torque command CMτ1 (FIG. 6) at the time when the transition from stage ST1 to stage ST2 is detected (time t1 in FIG. 6).
[0054] Then, the processor 30 obtains the difference Δτ (= CMτ - CMτ1) between the most recently obtained torque command CMτ and the above-mentioned torque command CMτ1, and calculates the correction amount β1' by substituting the spring constant k1 of the elastic element 18 and the most recently obtained Δτ into the following equation (2). β1'=Δτ / k1 (2)
[0055] Like the above-mentioned equation (1), this equation (2) also shows Hooke's law, and this correction amount β1' is intended to cancel out the error ε1 caused by the elastic deformation of the elastic element 18 in stage ST2 (FIG. 5). Below, the significance of using the difference Δτ instead of the torque command CMτ to obtain the correction amount β1' will be explained.
[0056] When moving from stage ST1 (FIG. 4) to stage ST2 (FIG. 5), the driving force F generated by the motor 16 is affected by the frictional force (resistance in the equivalent circuit) in the backlash elements BL1 and BL2. As a result, the force that elastically deforms the elastic elements 18 and 20 (i.e., stretches the springs) in stage ST2 is reduced from the driving force F. Therefore, by approximating the force that elastically deforms the elastic elements 18 and 20 in stage ST2 by the above-mentioned difference Δτ, the amount of elastic deformation of the elastic elements 18 and 20 in stage ST2 (in other words, the amount of correction) can be evaluated more accurately.
[0057] In addition to determining the above-mentioned correction amount β1', the processor 30 determines the correction amount β2 by substituting the spring constant k2 as the elastic parameter PR2 of the elastic element 20 and the most recently acquired difference Δτ into the following equation (3). β2=Δτ / k2 (3)
[0058] This formula (3) also indicates Hooke's law like the above formula (2), and the correction amount calculation process CP2 according to this embodiment is based on a machine model in which the elastic element 20 is assumed to be one spring. The spring constant k2 is determined in advance as a proportional coefficient between the force (torque) applied to the elastic element 20 by the motor 16 in the industrial machine 12 and the amount of elastic deformation of the elastic element 20 in the direction of the axis A due to the force, and is stored in the memory 32. The correction amount β2 is intended to cancel out the error ε2 caused by the elastic deformation of the elastic element 20 in stage ST2 (FIG. 5).
[0059] Then, the processor 30 calculates the sum Σβn (=β1'+β2) of the calculated correction amounts β1' and β2, and obtains the sum Σβn as the correction amount β3 (=Σβn=Δτ(1 / k1+1 / k2)) for the elastic elements 18 and 20. This correction amount β3 is intended to cancel out the error ε3 caused by the elastic deformation of the composite spring of the elastic elements 18 and 20 in stage ST2.
[0060] As another example of the correction amount calculation process CP2, the processor 30 uses a composite spring constant ks of the elastic elements 18 and 20 and torque commands CMτ1 and CMτ as force parameters FP to determine a correction amount β3 related to the elastic elements 18 and 20. Here, in the case of a machine model in which the elastic elements 18 and 20 are connected in series as shown in Figures 3 to 5, the composite spring constant ks and the spring constants k1 and k2 satisfy the following formula (4). 1 / ks=1 / k1+1 / k2 (4)
[0061] From this equation (4), the composite spring constant ks is determined in advance as ks = k1·k2 / (k1+k2) and stored in the memory 32. The processor 30 obtains the difference Δτ between the most recently obtained torque command CMτ and the torque command CMτ1, and obtains the correction amount β3 for the elastic elements 18 and 20 by substituting the difference Δτ and the composite spring constant ks into the following equation (5). β3=Δτ / ks=Δτ(1 / k1+1 / k2) ···(5)
[0062] This formula (5) also indicates Hooke's law, and is based on a mechanical model in which the elastic elements 18 and 20 are assumed to be one composite spring. In this manner, the processor 30 executes the correction amount calculation process CP2 in stage ST2 to obtain the correction amount β3 related to the elastic elements 18 and 20. Then, in stage ST2, the processor 30 applies (for example, adds) the obtained correction amount β3 to the position command CMp, as in stage ST1, to correct the position command CMp.
[0063] As described above, the processor 30 functions as the correction amount calculation unit 42, executes the correction amount calculation process CP1 based on the elasticity parameter PR1 (spring constant k1) in the stage ST1, and when it detects a transition from the stage ST1 to the stage ST2, switches from the correction amount calculation process CP1 to the correction amount calculation process CP2 based on the elasticity parameters PR1 (spring constant k1) and PR2 (spring constant k2). Thus, the processor 30 corrects the position command CMp by the calculated correction amounts β1 and β3 in the stages ST1 and ST2, respectively.
[0064] Hereinafter, a detailed flow of the command correction process executed by the processor 30 will be described with reference to Fig. 7. The flow shown in Fig. 7 starts when the processor 30 receives an operation start command from an operator, a higher-level controller, or an operation program. In step S1, the processor 30 starts an operation of generating a command CM to the motor 16 according to the operation program. The motor 16 drives the driven body 22 according to the command CM, and the industrial machine 12 thereby performs a predetermined task on the workpiece.
[0065] In step S2, the processor 30 determines whether or not there is a command CM for driving the motor 16 to accelerate it. For example, this command CM is a command for accelerating the motor 16 after reversing the direction of operation of the motor 16. Alternatively, this command CM may be a command for rapidly accelerating the motor 16 in a stopped state (or in a low-speed operating state). When the motor 16 is operated in accordance with the command CM for such acceleration, the driving force F acts stepwise on the multiple elastic elements 18 and 20 as shown in Figs. 3 to 5, so that the above-mentioned multiple stages ST1 and ST2 are generated in sequence.
[0066] For example, the processor 30 can analyze the operation program to recognize whether or not there is a command CM to accelerate (e.g., accelerate by reversing) the motor 16. If the processor 30 judges YES, it proceeds to step S3, whereas if the processor 30 judges NO, it proceeds to step S7. From the point in time when the processor 30 judges YES in step S2 (corresponding to time t0 in FIG. 6), the motor 16 starts accelerating, and the state of the industrial machine 12 transitions to stage ST1.
[0067] In step S3, the processor 30 starts the correction amount calculation process CP1. Specifically, the processor 30 obtains a correction amount β1 for the elastic element 18 using the elastic parameter PR1 (spring constant k1) and the force parameter FP (torque command CMτ) of the elastic element 18 by the above-mentioned method. Then, the processor 30 corrects the command CM with the obtained correction amount β1. This series of operations of calculating the correction amount β1 and correcting the command CM is repeatedly executed during the stage ST1, for example, at a control period tc (or a period that is an integer multiple of the control period tc).
[0068] In step S4, the processor 30 starts an operation of acquiring the degree of change D of the force parameter FP with respect to time t. Specifically, the processor 30 repeatedly acquires, for example, the slope D1 of the torque command CMτ as the degree of change D in the control period tc (or a period that is an integer multiple of the control period tc) by the method described above.
[0069] In step S5, the processor 30 determines whether the most recently acquired degree of change D is equal to or smaller than a predetermined standard D th For example, when the slope D1 is acquired in step S4, the processor 30 determines whether the slope D1 exceeds the reference value D th1 If the processor 30 judges YES, the process proceeds to step S6, whereas if the processor 30 judges NO, the process loops to step S5. At the point in time when the processor 30 judges YES in step S5 (corresponding to time t1 in FIG. 6), the state of the industrial machine 12 can be considered to have transitioned from stage ST1 to stage ST2.
[0070] In step S6, the processor 30 switches from the correction amount calculation process CP1 to the correction amount calculation process CP2. Specifically, the processor 30 calculates the correction amount β3 by using the elastic parameters PR1 and PR2 (spring constants k1, k2, or composite spring constant ks) of the elastic elements 18 and 20 and the force parameters FP (torque command CMτ, torque command CMτ1) by the above-mentioned method. Then, the processor 30 corrects the command CM with the calculated correction amount β3. This series of operations of calculating the correction amount β3 and correcting the command CM is repeatedly executed during the stage ST2, for example, at a control period tc (or a period that is an integer multiple of the control period tc).
[0071] In step S7, the processor 30 determines whether or not an operation end command has been received from an operator, a higher-level controller, or an operation program. If the processor 30 determines YES, it ends the flow shown in FIG. 7, whereas if the processor 30 determines NO, it returns to step S2.
[0072] As described above, in this embodiment, the stage detection unit 46 detects a transition from stage ST1 to stage ST2, and when the transition from stage ST1 to stage ST2 is detected, the correction amount calculation unit 42 switches the correction amount calculation process CP to be executed from the correction amount calculation process CP1 based on the elasticity parameter PR1 to the correction amount calculation process CP2 based on the elasticity parameters PR1 and PR2.
[0073] In other words, the processor 30 switches the elastic parameters PR1, PR2 used to obtain the correction amount β according to the stages ST1, ST2 in which the driving force F generated by the motor 16 acts in sequence on the multiple elastic elements 18 and 20. With this configuration, it is possible to obtain the correction amounts β1, β3 appropriate for each stage ST1, ST2.
[0074] Therefore, in an industrial machine 12 in which a motor 16 and a driven body 22 are connected via a plurality of elastic elements 18 and 20, the error ε caused by the gradual elastic deformation of the elastic elements 18 and 20 can be canceled out with higher precision, thereby significantly improving the positioning precision of the driven body 22 by the motor 16.
[0075] In this embodiment, the change acquisition unit 44 acquires the degree of change D (D1 to D10) of the force parameter FP with respect to time t, and the stage detection unit 46 determines whether the acquired degree of change D is equal to or smaller than the reference D. th When the degree of change D exceeds the threshold value, the transition from stage ST1 to stage ST2 is detected. The transition from stage ST1 to stage ST2 is clearly indicated as a change in the force parameter FP (see FIG. 6 for example). Therefore, by monitoring the degree of change D, the transition from stage ST1 to stage ST2 can be detected with high accuracy and in real time.
[0076] In the present embodiment, the change acquisition unit 44 acquires the gradient D1, D3, D5, D7, or D9 of the force parameter D (for example, the torque command CMτ, the acceleration command CMα, the force feedback F, the current feedback I, or the acceleration feedback α) as the degree of change D. With this configuration, the transition from stage ST1 to stage ST2 can be detected with even higher accuracy.
[0077] Furthermore, in this embodiment, the command generating unit 40 generates a command CM to accelerate the motor 16 (i.e., the driven body 22) after reversing the operating direction of the motor 16 (time t0 in Figure 6), thereby causing the state of the industrial machine 12 to transition from stage ST1 to stage ST2.
[0078] Here, the transition from stage ST1 to stage ST2 described with reference to Figs. 3 to 5 becomes prominent when the motor 16 (driven body 22) accelerates after the motion direction of the motor 16 is reversed. That is, when the motor 16 reverses its rotation, the error ε (ε1, ε2, ε3) occurs prominently. According to this embodiment, the error ε occurring when the motor 16 reverses its rotation can be effectively cancelled out, and as a result, the positioning accuracy when the motor 16 reverses its rotation can be effectively improved.
[0079] In this embodiment, the difference Δτ is used in the above equations (2), (3), and (5) in consideration of the influence of frictional forces in the backlash elements BL1 and BL2, etc. However, the processor 30 may substitute the most recently acquired torque command CMτ in place of the difference Δτ in the above equations (2), (3), and (5).
[0080] Moreover, with regard to the above-mentioned formula (1), the processor 30 may correct the torque command CMτ so as to remove the influence of the inertia of the elastic element 18, etc., and then substitute the corrected torque command CMτ into the formula (1) to obtain the correction amount β1. Also, with regard to the above-mentioned formulas (2), (3), and (5), the processor 30 may correct the torque command CMτ so as to remove the influence of the inertia of the elastic elements 18 and 20, etc., and then substitute the corrected torque command CMτ into the formulas (2) and (3), or (5) to obtain the correction amount β3.
[0081] Furthermore, in the above-mentioned formula (1), the processor 30 may substitute, in place of the torque command CMτ, a value obtained by multiplying the acceleration feedback α by the mass m1 of the elastic element 18: α×m1. Similarly, in the above-mentioned formulas (2) and (3), or formula (5), the processor 30 may substitute, in place of the torque command CMτ (and CMτ1), a value obtained by multiplying the acceleration feedback α by the sum of the mass m1 of the elastic element 18 and the mass m2 of the elastic element 20: (m1+m2)α.
[0082] In the present embodiment, the industrial machine 12 is approximated as a machine model in which two springs (elastic elements 18 and 20) are connected in series as shown in Figures 3 to 5, and the correction amount β is calculated from equations (1) to (5) based on Hooke's law. However, the above equations (1) to (5) are only an example, and it is also possible to approximate the industrial machine 12 as a more complicated machine model, for example, by using elastic moduli G1 and G2 as elastic parameters PR1 and PR2, and to calculate the correction amount β based on a theoretical equation that represents the complicated machine model.
[0083] Next, other functions of the control device 14 will be described with reference to Figures 8 and 9. In this embodiment, the processor 30 functions as a motion amount acquisition unit 48 instead of the above-mentioned change acquisition unit 44. Hereinafter, functions of the control device 14 according to this embodiment will be described with reference to Figure 9. Note that in the flow shown in Figure 9, processes similar to those in the flow of Figure 7 are given the same step numbers, and duplicated explanations will be omitted.
[0084] After starting the flow shown in Fig. 9, processor 30 executes steps S1 to S3 described above. In step S4', processor 30 starts a process of acquiring the movement amount MA of motor 16 from the time when step S2 is judged as YES (time t0 in Fig. 6). Here, the time when step S2 is judged as YES (time t0) is the time when motor 16 starts to move in accordance with command CM for accelerating motor 16 after reversing rotation.
[0085] As an example, the processor 30 acquires the position feedback P0 from the sensor 24 at the start of step S4' (i.e., at the time t0 when the result of the determination in step S2 is YES). After that, the processor 30 acquires the position feedback P0 from the sensor 24 during the stage ST1, for example, at the control period ts. n is obtained repeatedly.
[0086] The processor 30 then calculates the position feedback P n Each time the position feedback P nBased on the difference between the position feedback P0 obtained at the start time t0 of step S4' and the position feedback P0 obtained at the start time t0 of step S4', the operation amount MA of the motor 16 from the time t0 is calculated. n This movement amount MA n may be, for example, the rotation angle of the output shaft 16a of the motor 16, or may be a value obtained by converting the rotation angle into a moving distance in the direction of the axis A. Thus, in this embodiment, the processor 30 calculates the operation amount MA of the motor 16 from the time t0. n The operation amount acquiring unit 48 acquires the operation amount.
[0087] In step S5′, the processor 30 calculates the most recently acquired movement amount MA n is a predetermined threshold MA th reached (MA n ≧MA th Here, it is determined whether the motor 16 operates at an amount MA from time t0 to time t1 at which the stage ST1 transitions to stage ST2. th (The rotation angle or the movement distance) can be obtained in advance by an experimental method.
[0088] In other words, in the machine model shown in FIG. 3, the amount of movement MA of the motor 16 from time t0 when the motor 16 starts to drive the driven body 22 to the left to time t1 when the driving force F acts on the elastic element 20 through the elastic element 18 and the spring of the elastic element 20 starts to expand is expressed as th The amount of movement MA (rotation angle) can be obtained in advance by experiment or the like. th The threshold MA th The movement amount MA obtained in step S4' is n By comparing with the above, the timing (time t1) of transition from stage ST1 to stage ST2 can be detected.
[0089] The processor 30 functions as a stage detector 46 and detects the most recently acquired movement amount MA n is the threshold MA th reached (MA n ≧MA thIf the answer is YES, the process proceeds to step S6, whereas if the answer is NO, the process loops to step S5'. If the answer is YES in step S5', the state of the industrial machine 12 can be considered to have transitioned from stage ST1 to stage ST2. After the answer is YES in step S5', the processor 30 executes the above-mentioned steps S6 and S7.
[0090] In this manner, in the present embodiment, the step detection unit 46 detects the movement amount MA acquired by the movement amount acquisition unit 48. n is a predetermined threshold MA th When the degree of change D reaches the threshold value, the transition from stage ST1 to stage ST2 is detected. In the example shown in Fig. 6, the degree of change D changes significantly at time t1, but if the speed V (or speed command CMv) or torque command CMτ (or acceleration command CMα) of the motor 16 is small, the amount of fluctuation in the degree of change D (slope) becomes small. In this case, it becomes difficult to detect the transition from stage ST1 to stage ST2 from the degree of change D.
[0091] In this embodiment, instead of the degree of change D, the amount of operation MA of the motor 16 is used. n Therefore, even if the speed V (speed command CMv), the torque command CMτ, or the acceleration command CMα is small, the transition from stage ST1 to stage ST2 can be reliably detected. Note that the processor 30 may execute step S3 after executing step S4'.
[0092] Next, a control device 14' according to another embodiment will be described with reference to Figures 10 and 11. The control device 14' is applicable to the industrial machinery system 10 in place of the above-mentioned control device 14, and controls the industrial machinery 12. The control device 14' differs from the above-mentioned control device 14 in that it further includes a timing unit 38. The timing unit 38 is connected to the processor 30 via the bus 36, and measures the elapsed time from an arbitrary point in time in response to a command from the processor 30.
[0093] In this embodiment, the processor 30 functions as an elapsed time acquisition unit 50, instead of the above-mentioned change acquisition unit 44 or movement amount acquisition unit 48. Hereinafter, the function of the control device 14' according to this embodiment will be described with reference to Fig. 11. In the flow shown in Fig. 11, the same processes as those in the flow of Fig. 7 are given the same step numbers, and duplicated explanations will be omitted.
[0094] After starting the flow shown in FIG. 11, processor 30 executes steps S1 to S3 described above. In step S4'', processor 30 starts measuring the elapsed time te from the time point (time t0) when step S2 is judged as YES. Specifically, processor 30 sends a command to timing unit 38 at time point t0 when step S2 is judged as YES, and in response to the command, timing unit 38 starts measuring the elapsed time te from time point t0.
[0095] In step S5'', the processor 30 determines whether the elapsed time te measured by the timer 38 is equal to or smaller than a predetermined threshold t th reached (te≧t th Here, it is determined whether or not the time t0 is a time from t0 to t1, when the stage ST1 transitions to the stage ST2. th (i.e., the duration of stage ST1) varies depending on the command CM (position command CMp, speed command CMv, torque command CMτ, etc.) supplied to the motor 16 during stage ST1. th (The period of stage ST1) can be obtained in advance, for example, by using an experimental method, if the command CM is known.
[0096] As an example, the memory 32 stores a command CM and a time t th The processor 30 obtains a command CM to be supplied to the motor 16 during the stage ST1 from a command statement defined in the operation program OP, and calculates a time t corresponding to the command CM. th By searching the data table TA, the time t th The time t th Threshold t thand comparing it with the elapsed time te, the timing (time t1) of transition from stage ST1 to stage ST2 can be detected.
[0097] The processor 30 functions as a stage detector 46 and detects whether the elapsed time te exceeds a threshold t th reached (te≧t th If the answer is YES, the process proceeds to step S6, whereas if the answer is NO, the process loops to step S5". If the answer is YES in step S5", the state of the industrial machine 12 can be considered to have transitioned from stage ST1 to stage ST2. After the answer is YES in step S5", the processor 30 executes the above-mentioned steps S6 and S7.
[0098] In this manner, in this embodiment, the stage detection unit 46 detects whether the elapsed time te is equal to or smaller than the predetermined threshold t th When the speed V (speed command CMv), the torque command CMτ, or the acceleration command CMα of the motor 16 in stage ST1 is small, the transition from stage ST1 to stage ST2 can be detected reliably. Note that the processor 30 may execute step S3 after executing step S4".
[0099] As described above, when the speed V (speed command CMv), the torque command CMτ, or the acceleration command CMα is relatively large, the degree of change D is effective for detecting the transition from stage ST1 to stage ST2, whereas when the speed V (speed command CMv), the torque command CMτ, or the acceleration command CMα is relatively small, the operating amount MA or the elapsed time te is effective for detecting the transition from stage ST1 to stage ST2.
[0100] The processor 30 may switch the parameter used by the stage detector 46 to detect the transition from stage ST1 to stage ST2 between the degree of change D and the amount of movement MA (or the elapsed time te) depending on whether the degree of change D is valid. Hereinafter, such an embodiment will be described with reference to Figs. 12 and 13.
[0101] As shown in Fig. 12, in this embodiment, the processor 30 of the control device 14' functions as a command generating unit 40, a correction amount calculating unit 42, a change acquiring unit 44, a stage detecting unit 46, an operation amount acquiring unit 48, and an elapsed time acquiring unit 50, and executes the flow shown in Fig. 13. Note that in the flow shown in Fig. 13, the same processes as those in the flows of Fig. 7 and Fig. 9 are given the same step numbers, and duplicated explanations will be omitted.
[0102] 13 starts, the processor 30 executes the above-mentioned steps S1 to S3. In step S11, the processor 30 determines whether or not the degree of change D is valid as a parameter for detecting the transition from stage ST1 to stage ST2. As an example, the processor 30 determines whether or not the most recently acquired speed feedback V, speed command CMv, torque command CMτ, or acceleration command CMα is equal to or greater than a predetermined threshold value γ.
[0103] If the speed feedback V, the speed command CMv, the torque command CMτ, or the acceleration command CMα is greater than or equal to a threshold value, the processor 30 determines that the degree of change D is valid (i.e., YES) and proceeds to step S4, whereas if the processor 30 determines NO, it proceeds to step S4'.
[0104] If the determination in step S11 is YES, the processor 30 functions as the change acquisition unit 44 and executes the above-mentioned steps S4 and S5 to detect a transition from stage ST1 to stage ST2 based on the degree of change D. On the other hand, if the determination in step S11 is NO, the processor 30 functions as the movement amount acquisition unit 48 and executes the above-mentioned steps S4' and S5' to detect a transition from stage ST1 to stage ST2 based on the movement amount MA.
[0105] Thus, in this embodiment, the processor 30 determines whether the degree of change D is valid or not, and switches the parameter used to detect the transition from stage ST1 to stage ST2 between the degree of change D and the amount of movement MA depending on the result of this determination. According to this configuration, when the degree of change D is valid, the processor 30 can detect the transition from stage ST1 to stage ST2 with high accuracy by monitoring the degree of change D, whereas when the degree of change D is not valid, the processor 30 can reliably detect the transition from stage ST1 to stage ST2 by monitoring the amount of movement MA.
[0106] In the flow shown in FIG. 12, if the result of step S11 is NO, the processor 30 may function as the elapsed time acquisition unit 50 to execute the above-mentioned steps S4" and S5", instead of steps S4' and S5', and detect the transition from stage ST1 to stage ST2 based on the elapsed time te.
[0107] In addition, before executing the flow shown in Figure 7, Figure 9, Figure 11 or Figure 12, the processor 30 may execute an elastic parameter acquisition process to acquire an elastic parameter PR1 (e.g., spring constant k1) of the elastic element 20 and an elastic parameter PR2 (e.g., spring constant k2) of the elastic element 20.
[0108] For example, in the elasticity parameter acquisition process, the processor 30 operates the motor 16 according to a command CM0 for accelerating the motor 16 after reversing the operating direction of the motor 16, thereby accelerating the driven body 22 after reversing the moving direction of the driven body 22. Based on the torque command CMτ or the force feedback F1 at this time and the position feedback P, the spring constants k1 and k2 can be acquired, respectively.
[0109] In addition, in the above-mentioned step S2, the processor 30 may determine whether or not the operating direction of the motor 16 has been reversed, for example, based on the position feedback P, instead of determining whether or not there is a command CM for acceleration. Also, the industrial machine 12 may further include a sensor 24' that acquires the position P of the driven body 22, and the processor 30 may acquire the position P of the driven body 22 from the sensor 24' as the position feedback P. Also, the processor 30 may acquire a load torque acting on the motor 16, instead of the current feedback I. This load torque also constitutes the above-mentioned force parameter FP.
[0110] In the above embodiment, the processor 30 corrects the position command CMp with the correction amount β3. However, the present invention is not limited to this, and the processor 30 may correct the speed command CMv with the calculated correction amount β. In this case, the processor 30 may, for example, calculate a new correction amount β3' (=δβ3 / δt) by first-order time differentiation of the correction amount β3 calculated as described above, and apply (for example, add) the new correction amount β3' to the speed command CMv.
[0111] In the above embodiment, for ease of understanding, the industrial machine 12 has been described as having the motor 16 and the elastic element 18 (ball screw) that drive the driven body 22 in one axial direction (axis A). However, the present invention is not limited to this, and the industrial machine 12 may be configured to drive the driven body 22 in two axial directions that are perpendicular to each other.
[0112] For example, the industrial machine 12 may have a motor 16A and an elastic element 18A that drive the driven body 22 in the direction of a first axis (e.g., axis A), an elastic element 20A interposed between the driven body 22 and the elastic element 18A, a motor 16B and an elastic element 18B that drive the driven body 22 in the direction of a second axis perpendicular to the first axis, and an elastic element 20B interposed between the driven body 22 and the elastic element 18B. In this case, the processor 30 executes, for each of the motors 16A and 16B, a process of detecting a transition from stage ST1 to stage ST2 and a process of switching the correction amount calculation process CP by the above-mentioned method.
[0113] In the above embodiment, for ease of understanding, the case where two elastic elements 18 and 20 are interposed between the motor 16 and the driven body 22 has been described. However, this is not limiting, and three or more elastic elements may be interposed between the motor 16 and the driven body 22.
[0114] In this case, when the processor 30 operates the motor 16 in accordance with a command CM to operate the motor 16 to accelerate, the driving force F generated by the motor 16 acts in stages on the first elastic element, the second elastic element, ... the nth elastic element, the n+1th elastic element, ... in order of proximity to the motor 16.
[0115] In response to this, the state of the industrial machine 12 transitions in order from the first stage ST1, to the second stage ST2, ..., the nth stage STn, to the n+1th stage STn+1, .... The processor 30 functions as a stage detection unit 46, and detects, by the above-mentioned method, a transition from the nth stage STn, in which the driving force F generated by the motor 16 in response to the command CM acts on the nth elastic element (specifically, the first elastic element, the second elastic element, ..., the nth elastic element), to the n+1th stage STn+1, in which the driving force F acts on the n+1th elastic element through the nth elastic element.
[0116] When a transition from the nth stage STn to the n+1th stage STn+1 is detected, the processor 30 functions as a correction amount calculation unit 42 and switches the correction amount calculation process CP to be executed in the above-described manner from the nth correction amount calculation process CPn based on the elastic parameters PRn of the nth elastic element (specifically, the elastic parameters PR1, PR2, ... PRn) to the n+1th correction amount calculation process CPn+1 based on the elastic parameters PRn+1 of the n+1th elastic element and the elastic parameters PRn (specifically, the elastic parameters PR1, PR2, ... PRn, PRn+1).
[0117] As an example, in the n-th correction amount calculation process CPn, the processor 30 obtains a composite spring constant Ks of the first elastic element, the second elastic element,..., the (n-1)th elastic element, and the n-th elastic element from the following formula (6), where kn represents the spring constant of the n-th elastic element. 1 / ks=Σ(1 / kn)=1 / k1+1 / k2···+1 / kn···(6)
[0118] The processor 30 can obtain the correction amount β3 for the first elastic element, the second elastic element,..., the n-1th elastic element, and the nth elastic element by substituting the most recently obtained difference Δτ and the composite spring constant ks obtained from equation (6) into the above-mentioned equation (5). It should be understood that the processor 30 can also obtain the correction amount β3 in the (n+1)th correction amount calculation process CPn+1 in a similar manner.
[0119] In the above embodiment, the motor 16 may be a linear motor. In this case, the elastic element 18 may be an armature driven by a field element of the motor 16. Although the present disclosure has been described above through the embodiments, the above embodiments do not limit the invention according to the claims. [Explanation of symbols]
[0120] 10 Industrial Machinery Systems 12 Industrial machinery 14,14' Control device 16 Motor 18,20 Elastic elements 22 Driven body 30 processors 40 Command generation section 42 Correction amount calculation section 44 Change acquisition section 46 Step detection section 48 Operation amount acquisition section 50 Elapsed time acquisition unit
Claims
1. A control device that controls a motor that is connected to a driven body via a plurality of elastic elements and drives the driven body, a command generating unit that generates a command for operating the motor to accelerate; a correction amount calculation unit that executes a correction amount calculation process to obtain a correction amount of the command based on an elasticity parameter that represents the elasticity of the elastic element; a stage detection unit that detects a transition from a first stage in which a driving force generated by the motor in response to the command acts on a first elastic element to a second stage in which the driving force acts on a second elastic element through the first elastic element, The control device, wherein the correction amount calculation unit switches the correction amount calculation process to be executed from a first correction amount calculation process based on the first elastic parameter of the first elastic element to a second correction amount calculation process based on the second elastic parameter of the second elastic element and the first elastic parameter when a transition from the first stage to the second stage is detected.
2. A change acquisition unit that acquires a degree of change over time of a force parameter indicating the driving force, The control device according to claim 1 , wherein the stage detection unit detects a transition from the first stage to the second stage when the degree of the change acquired by the change acquisition unit exceeds a predetermined standard.
3. the force parameter comprises the command or feedback provided when operating the motor in response to the command; the command includes a torque command that defines the driving force or an acceleration command that defines the acceleration of the motor; The control device of claim 2 , wherein the feedback comprises force feedback corresponding to the drive force, acceleration feedback corresponding to the acceleration, or current feedback indicative of a current supplied to the motor.
4. The control device according to claim 2 , wherein the change acquisition unit acquires a gradient of the force parameter as the degree of the change.
5. a motor operation amount acquisition unit that acquires an operation amount of the motor from a point in time when the motor starts to operate in accordance with the command, The control device according to claim 1 , wherein the stage detection unit detects a transition from the first stage to the second stage when the amount of movement reaches a predetermined threshold value.
6. an elapsed time acquisition unit that acquires an elapsed time from a point in time when the motor starts to operate in accordance with the command, The control device according to claim 1 , wherein the stage detection unit detects a transition from the first stage to the second stage when the elapsed time reaches a predetermined threshold value.
7. The control device according to claim 1 , wherein the command generating unit generates the command for accelerating the motor after reversing a direction of motion of the motor.
8. The elastic parameters include a spring constant of the elastic element; The control device according to any one of claims 1 to 7, wherein the correction amount calculation unit, in the first correction amount calculation process, uses the first spring constant of the first elastic element and a force parameter indicating the driving force to determine the first correction amount for the first elastic element.
9. The correction amount calculation unit, in the second correction amount calculation process, determining the first correction amount and determining a second correction amount for the second elastic element using the second spring constant and the force parameter of the second elastic element; 9. The control device according to claim 8, wherein a sum of the first correction amount and the second correction amount is obtained as a third correction amount for the first elastic element and the second elastic element.
10. 9. The control device according to claim 8, wherein in the second correction amount calculation process, the correction amount calculation unit determines the second correction amount for the first elastic element and the second elastic element by using a composite spring constant of the first spring constant of the first elastic element and the second spring constant of the second elastic element, and the force parameter.
11. The command includes a position command that defines a position of the driven body, The control device according to any one of claims 1 to 10, wherein the correction amount calculation unit determines the correction amount for correcting the position command.
12. A driven body; a motor connected to the driven body via a plurality of elastic elements and configured to drive the driven body; An industrial machinery system comprising: the control device according to any one of claims 1 to 11.
13. A method for controlling a motor that is connected to a driven body via a plurality of elastic elements and drives the driven body, comprising the steps of: The processor: generating a command to operate the motor to accelerate; executing a correction amount calculation process for determining a correction amount of the command based on an elasticity parameter representing the elasticity of the elastic element; detecting a transition from a first stage in which a driving force generated by the motor in response to the command acts on a first elastic element to a second stage in which the driving force acts on a second elastic element through the first elastic element; A method for switching the correction amount calculation process to be executed when a transition from the first stage to the second stage is detected from a first correction amount calculation process based on the first elastic parameter of the first elastic element to a second correction amount calculation process based on the second elastic parameter of the second elastic element and the first elastic parameter.
Citation Information
Patent Citations
Servo control device including function for correcting expansion and contraction amount of ball screw
JP2014013554A
Motor controller for correcting reverse delay of motor
JP2016076119A
Servo motor control device, servo motor control method, and servo motor control program
JP2018139044A
Motor control device
JP2020093595A