Motor control device
By setting up a preprocessing unit in the motor control device, the past command value is determined and used as the current command value, which solves the problem of command value amplification when the gain of the correction filter is increased in a specific frequency domain, and achieves the effect of preventing mechanical vibration and abnormal noise.
Patent Information
- Application Number
- CN202010652454.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-10
- Filing Date
- 2020-07-08
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2040-07-08
AI Technical Summary
In motor control devices, when a correction filter increases the gain in a specific frequency domain, minute changes in the command value are amplified, leading to mechanical vibration or abnormal noise.
A preprocessing unit is set up before the correction filter. By determining whether the change in the command value is below a specified value, the past command value is used as the preprocessing of the current command value to prevent the amplification of small changes.
It effectively prevents minute changes in command values from being amplified, avoids mechanical vibration or abnormal noise, and improves control accuracy.
Smart Images

Figure CN112217438B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to a motor control device. BACKGROUND
[0002] Conventionally, there is known a technique (for example, refer to Patent Literature 1) in which, in a motor control device that controls a motor for driving a driven portion of an industrial machine or the like, an inverse characteristic filter or the like that uses a transmission characteristic from the motor to the machine is used to correct a command value.
[0003] Prior art documents
[0004] Patent documents
[0005] Patent Literature 1: Japanese Patent Application Publication No. 2017-175890 SUMMARY
[0006] Problems to be solved by the invention
[0007] In such a motor control device, in a case where the correction filter has a filter characteristic that increases a gain in a specific frequency domain, a slight variation in the command value that is generated due to a discretization process or the like is amplified in the specific frequency domain, and as a result, vibration or an abnormal noise is generated in the driven portion of the machine that is controlled by the command value. In an industrial machine or the like, it is desirable to prevent the generation of such vibration or abnormal noise.
[0008] Solution to the problem
[0009] One embodiment of the motor control device of the present disclosure is configured to include a command portion that outputs a command value for controlling a motor that drives a driven portion, a motor control portion that controls the motor based on the command value, a correction filter that corrects the command value, and a preprocessing portion that is provided in a front stage of the correction filter, wherein the correction filter has a frequency domain in which a gain is greater than 1, and in a case where a variation in the command value before correction by the correction filter is equal to or less than a prescribed value, the preprocessing portion performs preprocessing that uses a past command value as a current command value.
[0010] Effects of the invention
[0011] According to the motor control device of one embodiment, even in a case where the correction filter that corrects the command value has a filter characteristic that increases a gain in a specific frequency domain, it is possible to prevent amplification of a slight variation in the command value, and thus it is possible to prevent generation of vibration or an abnormal noise in the driven portion. BRIEF DESCRIPTION OF DRAWINGS
[0012] Figure 1 is a block diagram showing one embodiment of a motor control device.
[0013] Figure 2 is a graph showing a transfer characteristic from a servo motor to a machine.
[0014] Figure 3 is a graph showing a filter characteristic of an inverse characteristic filter.
[0015] Figure 4 is a graph showing a command value output from a command section.
[0016] Figure 5 is a graph showing a corrected command value when a command value not subjected to preprocessing is corrected by an inverse characteristic filter.
[0017] Figure 6 is a graph showing a corrected command value subjected to processing by an inverse characteristic filter after being subjected to preprocessing.
[0018] Figure 7 is a flowchart showing processing of one embodiment of a motor control device.
[0019] Explanation of reference numerals
[0020] 100: motor control device; 110: command section; 120: motor control section; 121: subtracter; 122: position control section; 123: adder; 124: subtracter; 125: speed control section; 126: adder; 127: servo motor (motor); 128: rotary encoder; 129: integrator; 130: position feedforward section; 131: speed feedforward section; 150: correction filter; 160: preprocessing section; 200: machine (driven section); 300: transmission mechanism. DETAILED DESCRIPTION
[0021] One embodiment of a motor control device of the present disclosure will be described below with reference to the accompanying drawings.
[0022] Figure 1 is a block diagram showing one embodiment of a motor control device.
[0023] As shown in Figure 1 , the motor control device 100 is provided with a command section 110, a motor control section 120, a correction filter 150, and a preprocessing section 160. In addition, Figure 1 A machine 200 as a driven section driven by the motor control device 100 is shown in
[0024] As the control target of the motor control device 100, a machine 200 such as a machine tool can be given. However, the control target of the motor control device 100 is not limited to this, and can be an industrial machine other than a machine tool, for example. Industrial machines include machine tools, industrial robots, other machines (including various machines such as service robots, forging presses, and injection molding machines). In addition, the motor control device 100 can be provided as a part of an industrial machine or the like.
[0025] The command section 110 outputs a position command value as a command value for controlling the servo motor 127 that is a motor for driving the machine 200. The position command is generated by the command section 110 in accordance with a program or a command input from a higher-level control device or an external input device or the like that is a higher-level controller. The position command can also be generated by the higher-level control device or the external input device or the like that is a higher-level controller. The position command is generated to change the pulse frequency, thereby changing the speed of the servo motor 127. The position command becomes a control command. The position command value output from the command section 110 is input to the motor control section 120 after passing through the pre-processing section 160 and the correction filter 150 described later.
[0026] The motor control section 120 controls the servo motor 127 based on the command output from the command section 110. The motor control section 120 is provided with a subtracter 121, a position control section 122, an adder 123, a subtracter 124, a speed control section 125, an adder 126, a servo motor 127, an integrator 129, a position feedforward section 130, and a speed feedforward section 131. The subtracter 121, the position control section 122, the adder 123, the subtracter 124, the speed control section 125, the adder 126, the servo motor 127, and the integrator 129 constitute a position feedback loop. In addition, the subtracter 124, the speed control section 125, the adder 126, and the servo motor 127 constitute a speed feedback loop. A rotary encoder 128 is attached to the servo motor 127 that is a motor. The rotary encoder 128 and the integrator 129 become detectors, and the integrator 129 outputs a position detection value as position feedback information to the subtracter 121. In the following description, the servo motor 127 is described as a motor that performs rotational motion, but the servo motor 127 can also be a linear motor that performs linear motion.
[0027] The subtracter 121 calculates the difference between the shaped position command value output from the correction filter 150 described later and the detected position fed back, and outputs the difference as a position deviation to the position control section 122.
[0028] The position control section 122 outputs a value obtained by multiplying the position deviation by a position gain Kp to the adder 123 as a speed command value.
[0029] The adder 123 adds the speed command value to the output value of the position feedforward section 130 (position feedforward term) and outputs the result to the subtracter 124 as a speed command value subjected to feedforward control. The subtracter 124 calculates the difference between the output of the adder 123 and the speed detection value fed back from the speed, and outputs the difference as a speed deviation to the speed control section 125.
[0030] The speed control section 125 adds the value obtained by multiplying the speed deviation by an integral gain Klv and integrating the result to the value obtained by multiplying the speed deviation by a proportional gain K2v, and outputs the result as a torque command value to the adder 126.
[0031] The adder 126 adds the torque command value to the output value of the speed feedforward section 131 (speed feedforward term) and outputs the result to the servo motor 127 as a torque command value subjected to feedforward control.
[0032] The rotation of the servo motor 127 controlled based on the torque command value is transmitted to the machine 200 via a transmission mechanism 300. As the transmission mechanism 300, for example, a ball screw is used.
[0033] The rotary encoder 128 detects the rotational angular position of the servo motor 127. The speed detection value based on the detected rotational angular position is input to the subtracter 124 as speed feedback information (speed FB information).
[0034] The integrator 129 integrates the speed detection value output from the rotary encoder 128 to output a position detection value. The position detection value is input to the subtracter 121 as position feedback information (position FB information).
[0035] The position feedforward section 130 performs position feedforward processing shown by the transfer function G(s) shown in Expression (1) on the value obtained by differentiating the position command value output from the correction filter 150 and multiplying the result by a constant, and outputs the processing result as a position feedforward term to the adder 123. The coefficients a i , b j (m, n > i, j > 0, m, n are natural numbers) of Expression (1) are each a coefficient of the transfer function G(s).
[0036] [Num 1]
[0037]
[0038] The speed feedforward section 131 performs speed feedforward processing shown by the transfer function H(s) shown in Expression (2) on the value obtained by differentiating the position command value twice and multiplying the result by a constant, and outputs the processing result as a speed feedforward term to the adder 126. The coefficients c i , d j(m, n ≥ i, j ≥ 0, m, n are natural numbers) are coefficients of the transfer function H(s). The coefficients c i , d j are second coefficients. The natural numbers m, n can be the same values as the natural numbers m, n of the equation 2, or can be other values.
[0039]
Equation 2
[0040]
[0041] The motor control section 120 is configured as above.
[0042] The correction filter 150 is provided at a stage preceding the motor control section 120, and is input with the position command value. The correction filter 150 is a position command value shaper for shaping the input position command value.
[0043] As the correction filter 150, for example, an inverse characteristic filter having a filter characteristic of an inverse characteristic of a transfer characteristic from the servo motor 127 to the machine 200 based on a double inertia model is used.
[0044] Here, for a transfer function G(s) representing a transfer characteristic from the servo motor 127 to the machine 200, based on a double inertia model, the equation (3) is used.
[0045]
Equation 3
[0046]
[0047] Here, ω0is a machine resonance frequency, and ζ is a damping coefficient.
[0048] The transfer function G(s) is expressed by a second-order low-pass filter having the machine resonance frequency ω0as a cutoff frequency. As an example, Figure 2 The transfer characteristic in a case where ω0= 1 [Hz], ζ = 0.1 is shown. In Figure 2 , the horizontal axis is frequency [Hz], and the vertical axis is gain [dB].
[0049] From Figure 2 It is confirmed that the transfer characteristic from the servo motor 127 to the machine 200 has a gain of 0 [dB] or more near the resonance frequency ω0. Therefore, vibration of the machine system is easily generated near the resonance frequency ω0. In addition, from Figure 2 It is also confirmed that the transfer characteristic has a characteristic that the gain decreases in a frequency domain higher than the resonance frequency ω0. Therefore, in a frequency domain higher than the resonance frequency ω0to some extent, the machine system is not responsive.
[0050] In order to eliminate such a problem caused by the transfer characteristics, as the correction filter 150, an inverse characteristic filter of the transfer characteristics from the servo motor 127 to the machine 200 is used.
[0051] The characteristic F(s) of the inverse characteristic filter of the transfer characteristics from the servo motor 127 to the machine 200 based on the double inertia model is represented by the following expression (4).
[0052] [Num 4]
[0053]
[0054] Figure 3 The filter characteristic of this inverse characteristic filter is shown. In Figure 3 In the drawing, the horizontal axis is the frequency [Hz], and the vertical axis is the gain [dB].
[0055] By using such an inverse characteristic filter as the correction filter 150, it is possible to realize position control with less residual vibration in the vicinity of the resonance frequency ω0. In addition, it is possible to realize position control in which the mechanical system responds even in a frequency range higher than the resonance frequency ω0.
[0056] Here, Figure 3 The correction filter 150 shown in the drawing has a frequency range in which the gain is greater than 1. Specifically, there is a frequency range in which the gain is greater than 1 in a frequency range higher than the resonance frequency ω0.
[0057] On the other hand, in such a frequency range, the command value input to the correction filter 150 sometimes also has a slight variation due to the discretization process or the like.
[0058] In such a case, since the command value is corrected by the correction filter 150, the slight variation of the command value is amplified, as a result, vibration or abnormal noise sometimes occurs in the driven part of the machine.
[0059] Therefore, in order to eliminate such a situation, the preprocessing section 160 described below is provided in front of the correction filter 150.
[0060] Further, the correction filter 150 is provided outside the motor control section 120, i.e., outside the position feedback loop and the speed feedback loop, but can also be provided in the position feedback loop or the speed feedback loop of the motor control section 120 to correct various command values for controlling the motor. For example, the correction filter 150 can be connected to the commands such as the position command, the speed command, the torque command, and the like, specifically, the output side of the position control section 122, the output side of the speed control section 125, the output side of the adder 123, or the output side of the adder 126. Further, the correction filter 150 can be provided before the feedforward section, specifically, the input side of the position feedforward section 130 or the input side of the speed feedforward section 131.
[0061] However, it is preferable that the correction filter 150 be provided outside the position feedback loop or the speed feedback loop to suppress the vibration factor outside the feedback loop (position feedback loop, speed feedback loop) of the motor control section 120. In Figure 1 In the embodiment, the correction filter 150 is provided before the subtracter 121 for calculating the position deviation, and the output of the correction filter 150 is output to the subtracter 121 and the position feedforward section 130.
[0062] Further, the correction filter 150 can be another filter having a gain greater than 1 in the frequency domain, for example, a notch filter or a filter for setting a constant acceleration / deceleration time, and the like.
[0063] Next, the preprocessing section 160 will be described.
[0064] The preprocessing section 160 is provided before the correction filter 150. In a case where the variation in the command value (position command value) before correction by the correction filter 150 is equal to or less than a predetermined value, the preprocessing section 160 performs preprocessing of using a past command value as the current command value.
[0065] Figure 4 is a graph showing an example of the command value output from the command section 110, i.e., the command value before correction by the correction filter 150. As shown in the area A of Figure 4 The command value sometimes has a slight variation due to the discretization process or the like, as shown in the area A of
[0066] In this case, in a case where the correction filter 150 has a filter characteristic of increasing the gain in a specific frequency domain, the slight variation in the command value is amplified by the correction filter 150, and as a result, vibration or abnormal noise occurs in the driven section of the machine.
[0067] Figure 5 is a graph showing an example of the corrected command value when the command value not subjected to preprocessing is corrected by the correction filter 150. As shown in the area B of Figure 4 and Figure 5Comparing this, Figure 4 The slight variation (variation amount C) of the command value shown in the area A is amplified (variation amount C') in the corrected command value shown in the area A. Figure 5 As such, in the case where the correction filter 150 has a filter characteristic that increases the gain in a specific frequency domain, in the case where the frequency band of the command value is included in the specific frequency domain, the unnecessary slight variation due to the discretization processing or the like can be amplified by the correction filter 150.
[0068] Therefore, in the case where the variation of the command value before correction by the correction filter 150 is equal to or less than a prescribed value, the pre-processing section 160 performs pre-processing that uses a past command value as the command value this time.
[0069] Specifically, a prescribed threshold B (not shown) for determining the magnitude of the variation is decided, and in the case where the variation amount C of the command value is equal to or less than the prescribed threshold B, a past command value is used as the command value this time. In this case, the prescribed threshold B for determining the magnitude of the variation forms a dead zone, and if the variation amount C of the command value is within the range of the dead zone, the command value is not updated and the past command value (for example, the command value of the previous time) is directly used.
[0070] Here, the variation amount C of the command value can be found by various methods. For example, it can be found based on the difference between the command value of the previous time and the command value this time. In addition, it can also be found based on the difference between the command value before a prescribed time and the command value this time. Or, it can also be found based on the difference between the average of the command values in a past prescribed period and the command value this time.
[0071] In addition, in the case where the variation of the command value is equal to or less than a prescribed value, as the past command value used as the command value this time, the command value most recently output by the pre-processing section 160 (the command value of the previous time) or the average of the command values in a past prescribed period or the like can be used.
[0072] Figure 6 is a graph showing an example of a corrected command value when the command value shown in Figure 4 is pre-processed by the pre-processing section 160 and further corrected by the correction filter 150. By performing pre-processing by the pre-processing section 160 before correction by the correction filter 150 as such, even in the case where the correction filter 150 has a filter characteristic that increases the gain in a specific frequency domain, the slight variation of the command value due to discretization processing or the like is not amplified.
[0073] In addition, it can also be that, in the case where the variation of the command value before correction by the correction filter 150 is equal to or less than a prescribed value for a prescribed period, pre-processing that uses a past command value as the command value this time is performed.
[0074] For example, in a case where the variation of the command value is below a prescribed value for a prescribed period in the past, an average value of the command value for the prescribed period in the past can be used as the command value this time.
[0075] Thus, it is possible to more reliably determine that the slight variation is not useful and to perform the preprocessing of using the command value in the past as the command value this time.
[0076] Further, by providing the preprocessing section 160 in front of the correction filter 150, it is possible to prevent amplification of the slight variation of the command value regardless of whether the correction filter 150 has a filter characteristic of increasing the gain in the high-frequency band or a filter characteristic of increasing the gain in the low-frequency band. That is, it is possible to prevent amplification of the slight variation of the command value regardless of the filter characteristic (band in which the gain is increased) of the correction filter 150.
[0077] Further, it is possible to prevent amplification of the slight variation of the command value regardless of whether the frequency band of the signal of the command value is the high-frequency band or the low-frequency band. That is, it is possible to prevent amplification of the slight variation of the command value regardless of the frequency of the signal having the slight variation.
[0078] That is, according to the present embodiment, it is possible to prevent amplification of the slight variation of the command value in a wide range of situations compared to a case where a band-pass filter such as a low-pass filter is provided in front of the correction filter 150.
[0079] Further, in a case where only a band-pass filter such as a low-pass filter is provided in front of the correction filter 150, a situation where the command value is uniformly shaped regardless of the state of variation of the command value occurs, and the present embodiment can also prevent such processing.
[0080] Further, this structure can also be appropriately applied to a motor control device of a type in which the filter characteristic of the correction filter 150 is optimized by machine learning or the like. For example, in a motor control device in which the filter characteristic of the correction filter 150 can be changed, it is possible to prevent amplification of the slight variation of the command value even in a case where the filter characteristic of the correction filter 150 is changed and the frequency band in which the gain is increased changes.
[0081] Further, for the determination of whether the variation of the command value is below the prescribed value, it is preferable to be made based on the command value before the feedback loop (position feedback loop, speed feedback loop) of the motor control section 120. Specifically, it is preferable that the command section 110 or its upper controller (upper control device, external input device, etc.) determines whether the variation of the command value is below the prescribed value based on the command value outside the feedback loop of the motor control section 120 and before entering the feedback loop. The command section 110 or the like determines whether the pre-processing by the pre-processing section 160 is executed based on the determination result.
[0082] Thus, it is possible to suppress the vibration factor outside the feedback loop (position feedback loop, speed feedback loop) of the motor control section 120.
[0083] Next, the processing of one embodiment of the motor control device 100 will be described using the flowchart of FIG. 6. Figure 7
[0084] First, in step S1, it is determined whether the variation amount C of the command value is below the threshold value B.
[0085] In the case where the variation amount C of the command value is below the threshold value B (YES in step S1), in step S2, the pre-processing section 160 executes the pre-processing of using the past command value as the command value this time. Then, after the pre-processing of step S2 is executed, in step S3, the filtering processing is executed by the correction filter 150.
[0086] On the other hand, in the case where the variation amount C of the command value is not below the threshold value B (NO in step S1), the processing proceeds to step S3, and the filtering processing is executed by the correction filter 150.
[0087] By performing such processing, even in the case where the correction filter 150 for correcting the command value has a filter characteristic of increasing the gain in a specific frequency domain, it is possible to prevent the amplification of the slight variation of the command value, and thus it is possible to prevent the generation of the vibration or the abnormal noise of the driven section.
[0088] Further, it can be configured that the threshold value for determining whether the variation of the command value is below the prescribed value can be set by the operator. In addition, it can be configured that, in the case where the variation of the command value is below the prescribed value for a prescribed period, and in the case where the pre-processing of using the past command value as the command value this time is executed, the prescribed period and the prescribed value can be set by the operator. Thus, it is possible to appropriately set the determination reference according to the state of the device or the like.
[0089] Further, each function included in the motor control device according to one embodiment can be realized by hardware, software, or a combination thereof. Here, the realization by software means the realization by the reading and execution of a program by a computer.
[0090] The program can be saved and provided to the computer using various types of non-transitory computer readable medium. The non-transitory computer readable medium includes various types of tangible storage medium having physical records. Examples of the non-transitory computer readable medium include magnetic recording mediums (e.g., floppy disks, magnetic tapes, hard disk drives), magneto-optical recording mediums (e.g., magneto-optical disks), CD-ROM (Read Only Memory), CD-R, CD-R / W, semiconductor memories (e.g., mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM). In addition, the program can be provided to the computer via various types of transitory computer readable medium. Examples of the transitory computer readable medium include electric signals, optical signals, and electromagnetic waves. The transitory computer readable medium can provide the program to the computer via a wireless communication path or a wired communication path such as electric wires and optical fibers.
[0091] In other words, the motor control device of the present disclosure can adopt various embodiments having the following structure.
[0092] (1) The motor control device 100 of the present disclosure includes an instruction unit 110 that outputs an instruction value for controlling a servo motor 127 for driving a driven unit, a motor control unit 120 that controls the servo motor 127 based on the instruction value, a correction filter 150 for correcting the instruction value, and a pre-processing unit 160 provided in a front stage of the correction filter 150, wherein the correction filter 150 has a frequency domain in which the gain is greater than 1, and the pre-processing unit 160 performs pre-processing using a past instruction value as a current instruction value in a case where a variation of the instruction value before being corrected by the correction filter 150 is equal to or less than a predetermined value.
[0093] Thus, even in a case where the correction filter 150 for correcting the instruction value has a filter characteristic in which the gain is increased in a specific frequency domain, the amplification of a slight variation of the instruction value can be prevented, and thus the occurrence of vibration or abnormal noise of the driven unit can be prevented.
[0094] (2) In the motor control device 100 of the present disclosure, the pre-processing unit 160 performs pre-processing in a case where a variation of the instruction value before being corrected by the correction filter 150 is equal to or less than a predetermined value in a predetermined period.
[0095] Thus, the pre-process of using the past instruction value as the present instruction value can be performed after it is more reliably determined that the slight variation of the instruction value is unnecessary.
[0096] (3) In the motor control device 100 of the present disclosure, the motor control section 120 has a feedback loop, and the instruction section 110 or its upper controller determines whether the variation of the instruction value is below a prescribed value based on the instruction value before entering the feedback loop, and decides whether to perform the pre-process by the pre-process section 160 based on the determination result.
[0097] Thus, the vibration factor outside the feedback loop can be suppressed.
[0098] The above describes the embodiments of the present disclosure, but the present disclosure is not limited to the above-described embodiments, and various changes and modifications can be made. In addition, the effects described in the present embodiments are only the best effects generated from the present disclosure, and the effects of the present disclosure are not limited to the effects described in the present embodiments.
Claims
1. A motor control device comprising: an instruction unit that outputs an instruction value for controlling a motor that drives a driven unit; a motor control unit that controls the motor based on the instruction value; a correction filter that corrects the instruction value; and a pre-processing unit that is provided in a stage preceding the correction filter, wherein the correction filter has a gain greater than 1 in a frequency domain, wherein the pre-processing unit performs pre-processing that uses a past instruction value as a current instruction value, in a case where a variation in the instruction value before correction by the correction filter is equal to or less than a prescribed value during a prescribed period.
2. The motor control device according to claim 1, wherein the motor control unit has a feedback loop, and wherein the instruction unit or a higher-level controller thereof determines whether the variation in the instruction value is equal to or less than a prescribed value based on an instruction value before entering the feedback loop, and decides whether the pre-processing is performed by the pre-processing unit based on a result of the determination. wherein
Citation Information
Patent Citations
Motor drive device
JP2015042120A
Motor control apparatus having vibration control function
JP2017175890A