The present application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2017-223204, filed Nov. 20, 2017. The contents of this application are incorporated herein by reference in their entirety.
Technical Field
The technologies disclosed herein relate to a motor control device and a method of controlling a motor.
Discussion of the Background
For example, Japanese Patent No. 6,041,075 discloses a known device to control a motor.
According to an aspect of the technologies disclosed herein, a motor control device includes output command calculation circuitry and inertial load value calculation circuitry. The output command calculation circuitry is configured to calculate a motor output command, based on a motor acceleration command and an inertial load value indicative of a magnitude of inertia of a load on a motor. The inertial load value calculation circuitry is configured to calculate an estimated inertial load value with an adaptive observer, based on the motor output command and a motor actual output to be output from the motor, and configured to calculate the inertial load value, based on the estimated inertial load value.
According to another aspect of the technologies disclosed herein, in a method of controlling a motor, a motor output command is calculated by output command calculation circuitry, based on a motor acceleration command and an inertial load value indicative of a magnitude of inertia of a load on a motor. An estimated inertial load value is calculated by inertial load value calculation circuitry with an adaptive observer, based on the motor output command and a motor actual output to be output from the motor. The inertial load value is calculated by the inertial load value calculation circuitry, based on the estimated inertial load value.
A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings.
The embodiment(s) will now be described with reference to the accompanying drawings, wherein like reference numerals designate corresponding or identical elements throughout the various drawings.
Configuration of Motor Control Device
As illustrated in
The motor control device 100 according to the first embodiment is configured to control a rotary motor; however, the technologies disclosed herein are also applicable to control over a linear motor and other motors. The motor 4 is a rotary motor but can be a different motor such as a linear motor. The motor control device 100 according to the first embodiment employs position control as a control method but can employ speed control as the control method.
As illustrated in
The motor output sensor 9 detects a motor actual output X from the motor 4. Specifically, the motor output sensor 9 detects a current position (an absolute position) of the movable member 4B as the motor actual output X. The motor output sensor 9 periodically detects the motor actual output X. The motor output sensor 9 is connected to the motor control device 100. The motor control device 100 periodically receives the motor actual output X (the current position). For example, the motor output sensor 9 includes an encoder. In cases where the motor 4 is a rotary motor as described in the first embodiment, the motor output sensor 9 includes a rotary encoder to detect a rotational position of the movable member 4B relative to the base member 4A.
Since the motor control device 100 according to the first embodiment performs the position control, the external command 2A includes a position command indicative of a target position of the motor 4, that is, a target position of the movable member 4B. In cases where the motor control device 100 performs the speed control, the external command 2A can include a speed command indicative of a target speed of the motor 4, that is, a target speed of the movable member 4B.
As illustrated in
The processor 20 includes a central processing unit (CPU) 21, a memory 22, a substrate 23, and a system bus 24. The CPU 21, the memory 22, and the system bus 24 are mounted on the substrate 23. The interface 25 is electrically connected to the system bus 24. The CPU 21, the memory 22, and the interface 25 are electrically connected to one another to establish mutual communications via the substrate 23 and the system bus 24. The interface 25 is connected to the external device 2 and the motor output sensor 9. The interface 25 receives signals from the external device 2 and motor output sensor 9 and transmits the signals to the processor 20.
The memory 22 includes a read only memory and a random access memory. For example, the CPU 21 reads a program stored in the memory 22, thereby achieving at least a part of the configuration of the motor control device 100 to be described later. Specifically, the CPU 21, the memory 22, the substrate 23, and the system bus 24 constitute control circuitry of the motor control device 100. In other words, the processor 20 can also be referred to as control circuitry 20.
However, the configuration of the processor 20 is not limited to that described in the first embodiment. For example, the CPU 21 and the memory 22 can be constituted of an integrated circuit.
As illustrated in
The memory 22 stores therein the motor actual output X, the position deviation ue, the speed command V, and the motor acceleration command A. The motor actual output X stored in the memory 22 is updated to its latest value each time the motor output sensor 9 detects the motor actual output X. Likewise, the position deviation ue, speed command V, and motor acceleration command A stored in the memory 22 are also updated to their latest values.
In the first embodiment, the position deviation calculator 30, the speed command calculator 40, and the acceleration command calculator 50 are separated from one another. Alternatively, at least two of the position deviation calculator 30, the speed command calculator 40, and the acceleration command calculator 50 can be integrated into one. In addition, at least one of the position deviation calculator 30, the speed command calculator 40, and the acceleration command calculator 50 can be disposed outside the motor control device 100 as an external device.
As illustrated in
The memory 22 illustrated in
As illustrated in
In the motor control system 1, the external device 2 corresponds to a device upstream from the motor control device 100, and the motor 4 corresponds to a device downstream from the motor control device 100. Examples of the command upstream from the motor acceleration command A can therefore include the external command 2A, the position deviation ue, and the speed command V.
The memory 22 illustrated in
The memory 22 illustrated in
As will be described later, the estimated viscous resistance coefficient DE is larger in error of estimation than the estimated inertial load value JE and therefore is not used for the control by the motor control device 100.
As illustrated in
The memory 22 illustrated in
The output command calculator 60 includes a first output command calculator 61 and a second output command calculator 62. The first output command calculator 61 calculates an output command T, based on the motor acceleration command A and the inertial load value J0. The second output command calculator 62 calculates a motor output command Tr, based on the output command T and the output correction value Tc. Specifically, the first output command calculator 61 multiplies the motor acceleration command A by the inertial load value J0 to calculate the output command T. In cases where the motor 4 is a rotary motor as described in the first embodiment, the output command T corresponds to a torque command. The second output command calculator 62 adds the output correction value Tc to the output command T to calculate the motor output command Tr. The second output command calculator 62 and the output correction value calculator 80 correct the output command T. In the first embodiment, the output command calculator 60 includes the first output command calculator 61 and the second output command calculator 62. However, the configuration of the output command calculator 60 is not limited to that described in the first embodiment.
As illustrated in
The current loop model 81 suppresses an increase in gain of mechanical resonance due to an influence of a current control system loop. The current loop model 81 generates a motor output command signal in which a delay in current control system loop is taken into consideration in an approximation manner for the motor output command Tr.
The resonance suppression model 82 generates an acceleration torque signal for an ideal motor, that is, a torque component for use in acceleration and deceleration by an ideal motor assumed using the nominal model. Specifically, the resonance suppression model 82 includes a first inverse system 82A and a second inverse system 82B. The first inverse system 82A is constructed for a frequency characteristic controller to control a frequency characteristic of the actual speed VR of the motor 4. The second inverse system 82B is constructed for a mechanical rigid body system in the drive subject 8. The second inverse system 82B multiplies an output from the first inverse system 82A (i.e., an acceleration of the drive subject 8 to be driven by the motor 4) by the reference inertial load value JM of the movable member 4B in the motor 4. The second inverse system 82B also multiplies the output from the first inverse system 82A by an operator s.
Each of the first equivalent low-pass filter 83 and the second equivalent low-pass filter 84 determines a frequency band of the disturbance observer. The first equivalent low-pass filter 83 removes a high-frequency component from a motor output signal generated by the current loop model 81. The second equivalent low-pass filter 84 removes a high-frequency component from a reference acceleration signal generated by the resonance suppression model 82. The subtractor 85 subtracts a signal passing through the second equivalent low-pass filter 84 from a signal passing through the first equivalent low-pass filter 83 to calculate an estimated disturbance output dE. The estimated disturbance output dE is an estimate of a disturbance output (e.g., a disturbance torque) acting on the movable member 4B in the motor 4. The low-pass filter 86 removes, from the estimated disturbance output dE, harmonic noise set with a time constant. The gain multiplier 87 adjusts the estimated disturbance output dE with a predetermined gain to calculate an output correction value Tc.
As illustrated in
The inertial load value calculator 70 includes a first state amount calculator 73, a second state amount calculator 74, and an adaptive identification calculator 75. The first state amount calculator 73 calculates a first state amount Z1, based on a state setting g1 and the motor actual output X. The second state amount calculator 74 calculates a second state amount Z2, based on the state setting g1 and the motor output command Tr. The adaptive identification calculator 75 calculates the estimated inertial load value JE, based on the first state amount Z1 and the second state amount Z2. Each of the first state amount calculator 73 and the second state amount calculator 74 corresponds to a state variable filter of the adaptive observer.
The state setting g1 is used for calculating the first state amount Z1 and the second state amount Z2 and is stored in the memory 22. The adaptive observer causes the inertial load value calculator 70 to accurately calculate the estimated inertial load value JE in a relatively short time. The adaptive observer will be described later.
The reference inertial load range is defined for determining whether the inertial load value J0 to be used by the output command calculator 60 is set at an appropriate value for the drive subject 8. When the estimated inertial load ratio RE is within the reference inertial load range, it is determined that the inertial load value J0 to be used by the output command calculator 60 is set at a relatively appropriate value for the drive subject 8.
On the other hand, when the estimated inertial load ratio RE is out of the reference inertial load range, it is determined that the inertial load value J0 to be used by the output command calculator 60 is set at a more appropriate value in order to enhance the stability in control. In the first embodiment, accordingly, the inertial load value changer 72 changes the inertial load value J0 when the estimated inertial load ratio RE is out of the reference inertial load range. On the other hand, the inertial load value changer 72 does not change the inertial load value J0 when the estimated inertial load ratio RE is within the reference inertial load range.
The reference inertial load range has an upper limit value RU and a lower limit value RL. The upper limit value RU is larger than the lower limit value RL. In the first embodiment, the reference inertial load range is defined as a range of an inertial load ratio. Each of the upper limit value RU and the lower limit value RL therefore corresponds to the inertial load ratio. For example, when the reference inertial load range corresponds to a range from 10 to 20 times of the inertial load ratio, the upper limit value RU is 20 and the lower limit value RL is 10. The memory 22 stores therein the upper limit value RU and lower limit value RL of the reference inertial load range. In the first embodiment, the upper limit value RU and lower limit value RL of the reference inertial load range each have a fixed value. For example, the upper limit value RU and lower limit value RL, of the reference inertial load range can be set by a user or can be obtained by calculation. The inertial load ratio is a ratio (JLR/JM) of an actual target inertial load value JLR indicative of the magnitude of inertial of the drive subject 8, to the reference inertial load value JM.
As illustrated in
For example, when the upper limit value RU is 20 and the estimated inertial load ratio RE is 60, the inertial load value changer 72 sets a new inertial load value J0 by adding a value given by (60/20)×JM=3×JM to the inertial load value J0.
On the other hand, in Steps S3 and S5, the inertial load value changer 72 compares the estimated inertial load ratio RE with the lower limit value RL of the reference inertial load range when the estimated inertial load ratio RE is equal to or less than the upper limit value RU of the reference inertial load range. In Steps S5, S6, and S7, the inertial load value changer 72 decreases the inertial load value J0 when the estimated inertial load ratio RE is smaller than the lower limit value RL of the reference inertial load range. Specifically, in Steps S5, S6, and S7, the inertial load value changer 72 decreases the inertial load value J0 with the estimated inertial load value JE when the estimated inertial load ratio RE is smaller than the lower limit value RL of the reference inertial load range. In the first embodiment, in Steps S5 and S6, the inertial load value changer 72 determines whether the inertial load value J0 is equal to or more than the reference inertial load value JM when the estimated inertial load ratio RE is smaller than the lower limit value RL of the reference inertial load range. In Step S6, the inertial load value changer 72 does not decrease the inertial load value J0 when the inertial load value J0 is less than the reference inertial load value JM, and then this process returns to Step S2. On the other hand, in Steps S6 and S7, when the inertial load value J0 is equal to or more than the reference inertial load value JM, the inertial load value changer 72 sets a new inertial load value J0, based on, for example, the following equation so as to decrease the inertial load value J0 as a difference between the estimated inertial load ratio RE and the lower limit value RL is larger.
For example, when the lower limit value RL is 10 and the estimated inertial load ratio RE is 6, the inertial load value changer 72 sets a new inertial load value J0 by subtracting a value given by ((10−6)/10)×JM=0.4×JM from the inertial load value J0.
As described above, a new inertial load value J0 is calculated with the estimated inertial load ratio RE in Steps S4 and S7. This configuration reduces an influence on motor control and enhances the stability in motor control as a whole even if an error of estimation becomes momentarily large as to the estimated inertial load value JE.
In Steps S4 and S7, the estimated inertial load value JE can be set as the inertial load value J0 without being changed (i.e., J0=JE). This configuration improves a processing speed for the inertial load value changing process.
Also, in the first embodiment, the reference inertial load range is set to be narrower than a compensation range for the inertial load ratio of the motor control device 100 in order to allow for the stability in control by the motor control device 100. The reference inertial load range can be equal to the compensation range for the inertial load ratio.
As illustrated in
In the output correction enable mode, as described above, the output command T is corrected with the output correction value Tc calculated by the output correction value calculator 80, and then the motor output command Tr is calculated. Also, in the output correction enable mode, the inertial load value J0 is changed with the estimated inertial load value JE by the inertial load value changer 72.
In the output correction disable mode, on the other hand, the functions of the output correction value calculator 80 and inertial load value changer 72 are disabled. In the output correction disable mode, specifically, the output correction value Tc is set at 0, and the output command T is used as the motor output command Tr without being changed. Also, in the output correction disable mode, the processing to be executed by the inertial load value changer 72 is disabled. The estimated inertial load value JE calculated by the estimated inertial load value calculator 71 is therefore used as the inertial load value J0 without being changed, in the output command calculator 60. In the output correction disable mode, the motor control device 100 has configurations substantially the same as those of a motor control device 200 according to a second embodiment to be described later.
Motor Control Method
With reference to
As illustrated in
In the mode detecting step S11, the correction mode switcher 90 detects which one of the output correction enable mode and the output correction disable mode is selected as a mode of the motor control device 100, based on a correction mode switch command 2B. As illustrated in
As illustrated in
In the output command calculating step S15, the output command calculator 60 calculates the motor output command Tr, based on the inertial load value J0 and the motor acceleration command A. Specifically, the output command calculating step S15 includes a first output command calculating step S15A and a second output command calculating step S15B. In the first output command calculating step S15A, the output command calculator 60 calculates the output command T, based on the motor acceleration command A and the inertial load value J0. In the second output command calculating step S15B, the output command calculator 60 calculates the motor output command Tr, based on the output command T and the output correction value Tc.
In the output correction value calculating step S16, the output correction value calculator 80 calculates the output correction value Tc, based on the motor actual output X and the motor output command Tr. In the output correction value calculating step S16, the output correction value calculator 80 estimates a disturbance of the motor 4 to calculate the output correction value Tc.
In the inertial load value calculating step S17, the inertial load value calculator 70 calculates the estimated inertial load value JE with the adaptive observer, based on the motor actual output X and the motor output command Tr. The inertial load value calculator 70 then calculates the inertial load value J0, based on the estimated inertial load value JE. Specifically, the inertial load value calculating step S17 includes an estimated inertial load value calculating step S17A and an inertial load value changing step S17B. In the estimated inertial load value calculating step S17A, the estimated inertial load value calculator 71 calculates the estimated inertial load value JE with the adaptive observer, based on the motor actual output X and the motor output command Tr. In the inertial load value changing step S17B, the inertial load value changer 72 changes the inertial load value J0, based on the estimated inertial load value JE. The inertial load value changing step S17B includes Steps S1 to S7 illustrated in
In the flowcharts of
As illustrated in
Configuration of Adaptive Observer
In the motor control device 100, as described above, the estimated inertial load value JE is calculated with the adaptive observer, unlike the output correction value calculator 80. Next, a specific description will be given of the adaptive observer to be applied to the estimated inertial load value calculator 71. It should be noted that a non-patent document “Observer” (CORONA PUBLISHING CO., LTD, Zenta IWAI et al.) is incorporated herein by reference.
The adaptive observer for the estimated inertial load value calculator 71 expresses a control subject with output signals (Z1, Z2) from two state variable filters (i.e., the first state amount calculator 73 and the second state amount calculator 74) each receiving an input signal (i.e., the motor output command Tr) to and an output signal (i.e., the motor actual output X) from the control subject. The adaptive observer for the estimated inertial load value calculator 71 also introduces a parameter identification mechanism for the control subject to reduce an influence to be exerted on an error of state estimation of an error of parameter estimation, with a lapse of time.
An n-order control subject is considered first. The n-order control subject is controllable with one input/output, is observable, and is expressed by Equations (1) and (2).
{dot over (x)}(t)=Ax(t)+bu(t),x(0)=x0 (1)
y(t)=cTx(t) (2)
In Equations (1) and (2), x represents an n-order state vector. In addition, u and y respectively represent a scalar input and a scalar output of which the amounts are detectable. It is assumed herein that factors of an n×n matrix A, an n-order vector b, and an n-order vector c are respectively unknown and constants. It can be inferred that Equations (1) and (2) are each in the form of minimal realization equivalent to a transfer function expressed by Equation (3) since Equations (1) and (2) are controllable and observable.
This means that, as represented by (αi, βi), i=1, 2, . . . , n in Equation (3), the control subject expressed by Equations (1) and (2) has essentially unknown parameters, the number of which is 2n. By appropriately selecting state settings, accordingly, Equations (1) and (2) do not lose generality as being expressed in the observable canonical form including the following 2n unknown parameters.
In Equations (4) and (5), a and b each represent an n-order unknown constant vector. In addition, h and F respectively represent an n−1-order known vector and a (n−1)×(n−1)-order known matrix. It should be noted that (hT, F) is an observable pair. In this case, h and F can be expressed as follows, for example.
Moreover, the following asymptotically stable n×n matrix G is introduced.
Since (hT, F) is an observable pair, (CT, G) is also an observable pair. Using the matrix G, Equations (4) and (5) can be rewritten as follows.
{dot over (x)}(t)=Gx(t)+(a−g)y(t)+bu(t),x(0)=x0 (6)
y(t)=cTx(t) (7)
Equations (6) and (7) are each in the form of minimal realization suitable for the configuration of the adaptive observer.
In addition, the following form of non-minimal realization for the control subject is derived from these forms. It is assumed in the following description that a Kreisselmeier form (K-type) is employed as the form of non-minimal realization for the control subject. The following n×n matrix filter and n-order state variable filter are considered, each of which receives an input u to and an output y from the control subject.
In this case, the control subject expressed by Equations (6) and (7) can be expressed as follows using Equations (8) and (9).
x(t)=P(t)Θ+fe(t) (10)
y(t)=z(t)TΘ+f(t) (11)
Equations (10) and (11) are each referred to as a K-type expression for the control subject, and z(t) in Equation (11) is referred to as a regression vector.
With regard to Equations (10) and (11), P(t), z(t), Θ, fe(t), and f(t) are defined as follows.
P(t)=[P1,P2]
z(t)=[z1(t)T,z2(t)T]T
Θ=[(a−g)T,bT]T
fe(t)=eGtx0 (12)
f(t)=cTeGtx0 (13)
The adaptive observer based on the K-type expression has a structure corresponding to Equations (10) and (11). A state estimate, an output estimate, and a parameter estimate are respectively placed as {circumflex over (x)}(t), ŷ(t), and {circumflex over (Θ)}(t), so that Equations (14) and (15) are established from Equations (10) and (11). Equations (14) and (15) each represent the adaptive observer.
{circumflex over (x)}(t)=P(t){circumflex over (Θ)}(t) (14)
ŷ(t)={circumflex over (z)}(t)T{circumflex over (Θ)}(t) (15)
At this time, an error of state estimation, an error of output estimation, and an error of parameter estimation are respectively placed as follows.
E(t)={circumflex over (x)}(t)−x(t)
e(t)=ŷ(t)−y(t)
ζ(t)={circumflex over (Θ)}(t)−Θ(t)
The following equations are thus established from Equations (10), (11), (14), and (15).
E(t)=P(t)ζ(t)−fe(t)
e(t)=z(t)Tζ(t)−f(t)
The following equation is established since the matrix G is asymptotically stable
Therefore, when a variable estimate vector {circumflex over (Θ)}(t) is configured to approach a true value Θ(t), the error of parameter estimation ζ(t) approaches 0. The error of state estimation E(t) and the error of output estimation e(t) thus converge on 0 as long as P(t) is bounded.
When the variable estimate vector {circumflex over (Θ)}(t) is adjusted such that a difference between the variable estimate vector {circumflex over (Θ)}(t) and the true value Θ(t) (i.e., the error of parameter estimation ζ(t)) approaches 0, the state estimate {circumflex over (x)}(t) approaches the true value. A parameter identification algorithm to determine the variable estimate vector {circumflex over (Θ)}(t) is referred to as an adaptive identification rule or an adaptive adjustment rule.
The first embodiment employs an adaptive identification rule based on the weighted least squares method.
In this case, the output from the control subject expressed by Equations (1) and (2) is expressed by y(t)=z(t)TΘ, using the regression vector z(t) and the unknown parameter Θ. An estimate given by ŷ(t)={circumflex over (z)}(t)T{circumflex over (Θ)}(t) is considered.
The corresponding error models are as follows.
E(t)=z(t)Tζ(t)
e(t)=ŷ(t)−y(t)
ζ(t)={circumflex over (Θ)}(t)−Θ(t)
It is assumed herein that the parameter estimate is determined to minimize the following weighted error square integral. In the weighted error square integral, λ(≥0) represents a weighting factor.
J(t)=∫0t{ŷ(t,τ)−y(τ)}2e−λ(t−τ)dτ
ŷ(t,τ)=z(t)T{circumflex over (Θ)}(t)
This solution is given by a variable estimate vector {circumflex over (Θ)}(t) satisfying the following equation.
It is apparent from the above description that the variable estimate vector {circumflex over (Θ)}(t) is a solution of the following three equations.
Γ(t){circumflex over (Θ)}(t)=γ(t)
Γ(t)=∫0tz(τ)z(τ)Te−λ(t−τ)dτ
γ(t)=∫0ty(τ)z(τ)e−λ(t−τ)dτ
The following equations are established by differentiation of the above equations on the assumption that Γ(t) is regular.
{circumflex over ({dot over (Θ)})}(t)=−Γ(t)−1z(t)e(t) (16)
{dot over (Γ)}(t)=−λΓ(t)+z(t)z(t)T (17)
In Equations (16) and (17), a relation of Γ(0)=γI2n (γ: a minute positive number) is satisfied. Equations (16) and (17) are each referred to as a weighted least squares adaptive identification rule.
A model illustrated in
Next, placing x, u, a, h, F, and b as follows yields a relation of G=g1 (g1: an arbitrary real number).
Equations (18) and (19) can be transformed as the following equations corresponding to Equations (6) and (7).
Since Equations (20) and (21) are each in the form of minimal realization, Θ is placed as follows for transformation into the form of K-type non-minimal realization.
The following equation is established as an equation corresponding to Equation (11).
The following equations are established when the adaptive observer is configured as expressed by Equation (15).
In Equation (24), a relation of Γ=ΓT>0 is satisfied, and the matrix Γ has an initial value placed as follows.
(γ: a minute positive number)
In addition, e represents Equation (25).
e=ŷ−y (25)
At this time, an equation corresponding to Equation (9) is established as expressed by Equations (26) and (27).
ż1=g1z1+y (26)
ż2=g1z2+Tr (27)
Equations (28) and (29) are established by Laplace transformation on Equations (26) and (27).
Equations (28) and (29) are each a derivation equation for the regression vector and each correspond to the state variable filter. In addition, Equation (30) is introduced as an equation corresponding to Equation (17).
Equation (29) is sequentially calculated to obtain the matrix Γ. The frequency λ corresponds to a cutoff frequency of a primary low-pass filter by Laplace transformation on Equation (30). As the frequency λ is larger, a time for convergence of the matrix Γ becomes shorter.
Substituting the results of Equations (25), (28), (29), and (30) in Equation (24) yields {circumflex over ({dot over (η)})}, and then integrating {circumflex over ({dot over (Θ)})} yields the variable estimate vector {circumflex over (Θ)}. The state setting g1 is a value given in advance. The unknown parameters J and D are therefore identified from the variable estimate vector {circumflex over (Θ)}.
For example, Equation (28) is provided for the first state amount calculator 73, and Equation (29) is provided for the second state amount calculator 74. In addition, Equation (30) is provided for the adaptive identification calculator 75.
Results of Simulations by Estimated Inertial Load Value Calculating Method
For the adaptive observer described above, an influence of a vibration disturbance and an influence of a modeling error were confirmed by simulation. Simulations were made on the assumption that the control subject is a rotary motor. Results of the respective simulation are described below.
(1) Influence of Vibrations in Torque Control Mode
The control subject was accelerated and decelerated in 100 ms at a rated torque of 10%, and a 0% torque command in 200 ms was input to the control subject during the acceleration and deceleration. A rated torque of 0.1% (frequency: 10 Hz) was also input as a periodic disturbance to the control subject. In addition, a time until the error of estimation becomes 0 by increasing the weighting factor λ from 1 to 1000 was confirmed by simulation.
As shown in
(2) Influence of Vibrations Due to Gain Balance in Position Control Mode
Typically, when a set inertia moment ratio to be used for calculation is smaller than a true value of an inertia moment ratio (i.e., an inertial load ratio) for a control subject (e.g., the motor 4, the drive subject 8), a balance between a position loop gain and a speed loop gain is lost, which can result in vibrations. A simulation was therefore made, in which the actual inertia moment ratio for the control subject was set at 1000% and the set inertia moment ratio was set at 0% (no load).
As shown in
It can be therefore said that vibrations which can occur due to the gain balance exert no influence on the inertial load value estimating method by the adaptive observer.
(3) Influence of Periodic Disturbance in Position Control Mode
Even when the inertia moment ratio is set correctly, vibrations can occur due to external force.
As shown in
It can be therefore said that the periodic disturbance applied to the control subject exerts no influence on the inertial load value estimating method by the adaptive observer.
(4) Influence of Modeling Error (Two-inertia Model)
The simulations (1) to (3) were made on the assumption that the control subject is a rigid body. However, the control subject is not limited to a rigid body. A simulation was therefore made, in which the control subject was a two-inertia model having frequency characteristics shown in
As shown in
It can be inferred from the above description that an influence of the modeling error mainly appears as an error of estimation of the viscous friction coefficient, but is not exerted on the estimation of the inertia moment so much. In order to confirm this inference, the same simulation was made on a three-inertia control subject and a four-inertia control subject.
(5) Influence of Modeling Error (Three-inertia Model)
The simulation was made, in which the control subject was a three-inertia model having frequency characteristics shown in
As shown in
(6) Influence of Modeling Error (Four-inertia Model)
The simulation was made, in which the control subject was a four-inertia model having frequency characteristics shown in
As shown in
(7) Influence of Modeling Error (Conclusion)
As described above, it can be said from the results of the simulation on the two-inertia model, three-inertia model, and four-inertia model that the influence of the modeling error mainly appears as the error of estimation of the viscous friction coefficient, but is not exerted on the estimation of the inertia moment so much. The inertia moment, that is, the inertial load value is a variant of a dimension of a speed, whereas the viscous friction coefficient is a variant of a dimension of an acceleration. In calculation, the inertia moment converges prior to the viscous friction coefficient, and a modeling error concentrates on the viscous friction coefficient converging later. As a result, the error of estimation of the inertia moment becomes smaller than the error of estimation of the viscous friction coefficient, so that the inertia moment is estimated accurately. In the motor control device 100, the inertial load value calculator 70, more specifically, the estimated inertial load value calculator 71 calculates the estimated inertial load value JE and the estimated viscous resistance coefficient DE, based on the motor actual output X and the motor output command Tr, such that the error of estimation of the estimated inertial load value JE becomes smaller than the error of estimation of the estimated viscous resistance coefficient DE.
Results of Experiment by Estimated Inertial Load Value Calculating Method
Performance evaluation by experiment using an estimation algorithm of an inertial load value calculated with the adaptive observer was made on an actual machine equipped with a discrete rotary motor (inertial load ratio: 0 times) and an actual machine equipped with a rotary motor to which a rigid load (inertial load ratio: 28 times) is coupled. Specifically, evaluation was made on operating conditions shown in
As shown in the table of
As described above, applying the adaptive observer to the control subject model illustrated in
Features
The features of the motor control device 100 and motor control method are summarized as follows.
(1) The estimated inertial load value calculator 71 calculates the estimated inertial load value JE with the adaptive observer, based on the motor output command Tr and the motor actual output X. This configuration therefore causes the estimated inertial load value JE to follow the actual load level of the motor 4 in a relatively short time. According to this configuration, calculating the inertial load value J0 based on the estimated inertial load value JE thus causes the motor output command Tr to follow the actual load level of the motor 4 in a relatively short time. In other words, the motor control device 100 and the motor control method enhance stability in motor control.
According to the motor control device 100, for example, the recovery of control stability and disturbance response characteristics by the recovery of a gain balance between a position loop and a speed loop is expected in position control that employs a position command as the external command 2A. In addition, the recovery of command followability is expected in speed control that employs a speed command as the external command 2A.
(2) The motor control device 100 further includes the output correction value calculator 80 to calculate the output correction value Tc, based on the motor actual output X and the motor output command Tr. The output command calculator 60 includes: the first output command calculator 61 to calculate the output command, based on the motor acceleration command A and the inertial load value J0; and the second output command calculator 62 to calculate the motor output command Tr, based on the output command and the output correction value Tc. According to the motor control device 100 and the motor control method, the output command T is corrected based on the motor output command Tr and the motor actual output X. This configuration therefore causes the motor output command Tr to follow the actual load level of the motor 4. This configuration thus further enhances the stability in motor control.
(3) According to the motor control device 100 and the motor control method, the output correction value calculator 80 estimates the disturbance to calculate the output correction value Tc. This configuration therefore enhances accuracy in calculating the output correction value Tc.
(4) According to the motor control device 100, the inertial load value changer 72 changes the inertial load value J0, based on the estimated inertial load value JE. This configuration therefore causes the inertial load value J0 to reliably follow the actual load level of the motor 4.
(5) The inertial load value changer 72 changes the inertial load value J0, based on the reference inertial load range and the estimated inertial load value JE. According to this configuration, setting the reference inertial load range in accordance with the specifications of the motor 4 therefore causes the reference inertial load range of the motor 4 to follow the actual load level of the motor 4. This configuration thus further enhances the stability in motor control.
(6) The inertial load value changer 72 increases the inertial load value J0 when the estimated inertial load value JE is larger than the upper limit value RU of the reference inertial load range. This configuration therefore causes the reference inertial load range to reliably follow the actual load level of the motor 4 even when the reference inertial load range of the motor 4 is lower than the actual load level of the motor 4. This configuration thus more reliably enhances the stability in motor control.
(7) The inertial load value changer 72 increases the inertial load value J0 with the estimated inertial load value JE when the estimated inertial load value JE is larger than the upper limit value RU of the reference inertial load range. This configuration therefore achieves a change in inertial load value J0 without stepwise calculation of the inertial load value J0 in increasing the inertial load value J0. This configuration thus improves a processing speed in calculating the inertial load value J0.
(8) The inertial load value changer 72 decreases the inertial load value J0 when each of the reference inertial load value JM and the estimated inertial load ratio RE is smaller than a second inertial load ratio. This configuration therefore causes the reference inertial load range to reliably follow the actual load level of the motor 4 even when the reference inertial load range of the motor 4 is higher than the actual load level of the motor 4. This configuration thus more reliably enhances the stability in motor control.
(9) The inertial load value changer 72 decreases the inertial load value J0 with the estimated inertial load value JE when each of the reference inertial load value JM and the estimated inertial load ratio RE is smaller than the second inertial load ratio. This configuration therefore achieves a change in inertial load value without stepwise calculation of the inertial load value J0 in decreasing the inertial load value J0. This configuration thus improves a processing speed in calculating the inertial load value J0.
(10) The adaptive identification calculator 75 calculates the estimated inertial load value JE, based on the first state amount and the second state amount. This configuration therefore enhances accuracy in estimating the inertial load value J0.
(11) The inertial load value calculator 70 calculates the estimated inertial load value JE without using the motor acceleration command A and the command upstream from the motor acceleration command A. This configuration therefore causes the calculation of the estimated inertial load value JE to be less susceptible to an influence of input to the motor control device 100. This configuration thus enhances the followability of the estimated inertial load value JE to the actual load level of the motor 4.
(12) The inertial load value J0 includes the inertia moment. This configuration thus enhances the follow-up performance in a rotary-drive motor control.
With reference to
As illustrated in
Hence, the inertial load value calculator 270 calculates the inertial load value J0 by outputting the estimated inertial load value JE as the inertial load value J0 to the output command calculator 260. Specifically, the inertial load value calculator 270 stores the estimated inertial load value JE calculated by the estimated inertial load value calculator 71, in a memory 22 as the inertial load value J0, in place of the processing by the inertial load value changer 72. The output command calculator 260 calculates the motor output command Tr, based on the inertial load value J0 (=the estimated inertial load value JE) and a motor acceleration command A.
As illustrated in
In the output command calculating step S215, more specifically, in a first output command calculating step S15A, the output command calculator 260 calculates the motor output command Tr, based on the inertial load value J0 and the motor acceleration command A. In the inertial load value calculating step S217, on the other hand, the inertial load value calculator 270 calculates the estimated inertial load value JE with the adaptive observer, based on a motor actual output X and the motor output command Tr, and also calculates the inertial load value J0, based on the estimated inertial load value JE. Specifically, the inertial load value calculating step S217 involves calculating the inertial load value J0 by outputting the estimated inertial load value JE as the inertial load value J0 from the inertial load value calculator 270 to the output command calculator 260. In the inertial load value calculating step S217, the memory 22 stores therein, as the inertial load value J0, the estimated inertial load value JE calculated in an estimated inertial load value calculating step S17A. In the output command calculating step S215, more specifically, in the first output command calculating step S15A, in other words, the output command calculator 260 calculates the motor output command Tr, based on the estimated inertial load value JE and the motor acceleration command A.
As shown in
As described above, the output command calculator 260 employs the estimated inertial load value JE as the inertial load value J0. This configuration therefore simplifies calculation processing using the estimated inertial load value JE. This configuration thus enhances stability in motor control and improves the processing speed of the motor control device 200.
Modifications
(1) In the first and second embodiments, the motor control devices 100 and 200 each perform the position control. The technologies disclosed in the foregoing embodiments are also applicable to speed control.
(2) In the first and second embodiments, the motor control devices 100 and 200 each control the motor 4 which is a rotary motor. The technologies disclosed in the foregoing embodiments are also applicable to a linear motor and other motors each serving as the motor 4. In cases where the motor 4 is a linear motor, the movable member 4B includes a slider movable linearly relative to the base member 4A. The motor output sensor 9 includes a linear encoder to detect a position, on a straight line, of the movable member 4B relative to the base member 4A. In cases where the motor 4 is a linear motor, the output command T includes a thrust command, the motor output command Tr includes a motor thrust command, and the output correction value Tc includes a thrust correction value. In cases where the motor 4 is a linear motor, moreover, the inertial load value J0 includes an inertial mass. Since the inertial load value J0 includes the inertial mass, this configuration enhances follow-up performance in linear-drive motor control.
The description of each of the first and second embodiments is applicable to a linear motor by respectively changing terms “inertia moment” and “torque” used in a rotary-drive system into the terms “inertial mass” and “thrust” used in a linear-drive system. Therefore, details in cases of controlling the linear motor will not be described here.
The term “comprising” and its derivatives, as used herein, are intended to be open ended terms that specify the presence of the stated features, elements, components, groups, integers, and/or steps, but do not exclude the presence of other unstated features, elements, components, groups, integers and/or steps. This concept also applies to words of similar meaning, for example, the terms “have,” “include” and their derivatives.
The configurations of the embodiments can include at least one of hardware configured to perform specific functions and software programmed to perform specific functions. Namely, the configurations configured to perform the specific functions are realized by hardware, software, and/or combination thereof.
The ordinal numbers such as “first” and “second” recited in the present application are merely identifiers, but do not have any other meanings, for example, a particular order and the like. Moreover, for example, the term “first element” itself does not imply an existence of “second element,” and the term “second element” itself does not imply an existence of “first element.”
Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.
Number | Date | Country | Kind |
---|---|---|---|
2017-223204 | Nov 2017 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
20030102839 | Kinpara | Jun 2003 | A1 |
20040174124 | Lee | Sep 2004 | A1 |
20050080511 | Takenaka et al. | Apr 2005 | A1 |
20140156144 | Hoshi et al. | Jun 2014 | A1 |
20170104431 | Hachiya | Apr 2017 | A1 |
20170214356 | Yoshiura et al. | Jul 2017 | A1 |
Number | Date | Country |
---|---|---|
06-309008 | Nov 1994 | JP |
2003-205484 | Jul 2003 | JP |
2004-032905 | Jan 2004 | JP |
2004-274990 | Sep 2004 | JP |
2006-223085 | Aug 2006 | JP |
4779969 | Sep 2011 | JP |
2013-215064 | Oct 2013 | JP |
6041075 | Dec 2016 | JP |
2017-070122 | Apr 2017 | JP |
2017-077122 | Apr 2017 | JP |
WO 02091558 | Nov 2002 | WO |
WO 2016056143 | Apr 2016 | WO |
Entry |
---|
Japanese Office Action for corresponding JP Application No. 2017-223204, dated Aug. 28, 2018. |
G. Kreisselmeier, Adaptive Observers with Exponential Rate of Convergence, IEEE Transactions on Automatic Control., vol. AC-22, No. 1, 2/8(Feb. 1977). |
K.S. Narendra et al., Applications of Adaptive Control, Academic Press (1980). |
R.M. Johnstone et al., Exponential convergence of recursive least squares with exponential forgetting factor, Systems and Control Letters, vol. 2, No. 2, 77/82(Aug. 1982). |
Zenta Iwai et al., “Observer” Corona Publishing Co., Ltd, 1988, See Statement of Relevancy. |
Japanese Office Action for corresponding JP Application No. 2017-223204, dated Jan. 22, 2019. |
Japanese Office Action for corresponding JP Application No. 2017-223204, dated Jun. 11, 2019 (w/ English machine translation). |
Number | Date | Country | |
---|---|---|---|
20190158006 A1 | May 2019 | US |