This application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2023-145195, filed Sep. 7, 2023, the contents of which are incorporated herein by reference.
The present disclosure relates to an anomaly detector, a motor system, and a method for detecting an anomaly.
Patent Document 1 discloses an abnormality determination apparatus for determining a mechanical abnormality of a motor drive mechanism. The abnormality determination apparatus disclosed in Patent Document 1 includes a data abnormality determination unit for determining a data abnormality of time series data, and includes a mechanical abnormality determination unit for determining the mechanical abnormality of the motor drive mechanism based on an acquisition mode of the time series data determined as the data abnormality.
In one aspect of the present disclosure, an anomaly detector for detecting an anomaly of a motor is provided. The anomaly detector includes circuitry configured to acquire a characteristic value related to the motor and process the characteristic value. The circuitry is configured to acquire the characteristic value related to the motor as inspection data, update a statistic of the inspection data, update an amplitude from an updated statistic, update an exponential moving average value of the inspection data, update an anomaly level based on the inspection data, the amplitude, the statistic, and the exponential moving average value, and detect the anomaly of the motor based on the anomaly level.
The inventors of the present application have recognized the following information in related art. In general, anomaly detection algorithms detect data variations. In this case, for example, if a rotational speed of a variable speed motor deliberately changes, anomalies may be erroneously detected. Also, in an environment where a motor is installed, if there are gradual changes in the environment, anomalies may be erroneously detected.
The present disclosure provides an anomaly detector that suppresses false detection when performing anomaly detection of a motor.
Hereinafter, a motor system including a motor controller according to the present embodiment will be described with reference to the drawings.
The motor system 1 includes a motor 10 and a motor drive control system 20. The motor 10 is used for rotating a fan, for example. The motor drive control system 20 drives and controls the motor 10.
The motor drive control system 20 includes the motor controller 100 and a host device 200.
The motor controller 100 includes a motor driver circuit 101, a sensor unit 102, and a frequency generator (FG) signal generator 103. The motor controller 100 also includes a power supply voltage measuring unit 110, a drive control signal generator 120, a communication unit 130, a current measuring unit 140, a rotational speed measuring unit 150, an anomaly detection controller 160, and a data management unit 170.
The drive control signal generator 120, the rotational speed measuring unit 150, the anomaly detection controller 160, and the data management unit 170 in the motor controller 100 are implemented by, for example, a program processing device (computer). More specifically, the program processing device includes a processor such as a central processing unit (CPU), and includes various storage devices such as a random access memory (RAM) and a read only memory (ROM). The program processing device also includes peripheral circuits such as a counter (timer), an analog-to-digital (AD) conversion circuit, a digital-to-analog (DA) conversion circuit, a clock generation circuit, and an input/output interface (I/F) circuit. For example, the processor, the storage devices, and the peripheral circuits are connected to one another via a bus or a dedicated line. The program processing device is, for example, a microcontroller. In the program processing device, the CPU executes various kinds of arithmetic processing according to a program that is stored in a memory, to thereby perform processing.
The motor driver circuit 101 drives the motor 10 based on a drive control signal Ctl that is generated by the drive control signal generator 120. The motor driver circuit 101 includes, for example, a pre-driver circuit and an inverter circuit.
The pre-driver circuit generates an output signal to drive the inverter circuit based on the drive control signal Ctl. The pre-driver circuit outputs the generated output signal to the inverter circuit. The pre-driver circuit generates and outputs a drive signal to drive each switching element in the inverter circuit, based on, for example, the drive control signal Ctl.
The inverter circuit outputs a drive signal to the motor 10 based on the output signal that is output from the pre-driver circuit. The drive signal output from the inverter circuit energizes one or more coils that are provided in the motor 10. In the inverter circuit, for example, two switching elements that are provided at both ends of a DC power source, for example, a pair of series circuits that include transistors, such as field effect transistors is connected to a coil for each phase. Each phase terminal of the motor 10 is connected to a connection point of two switching elements in the pair of switching elements.
The drive signal generated by the pre-driver circuit turns on and off switching elements that constitute the inverter circuit. In this arrangement, power is provided for each phase of the motor 10 and thus a rotor of the motor 10 rotates.
The power from a power source 210 that is provided in the host device 200 is delivered to the motor driver circuit 101. The motor driver circuit 101 is connected to the power source 210 provided in the host device 200. The motor driver circuit 101 converts the power provided from the power source 210 based on the drive control signal Ctl. The motor driver circuit 101 then delivers the converted power to the motor 10.
The sensor unit 102 detects a rotational position of the rotor of the motor 10. The sensor unit 102 includes, for example, a position sensor. The sensor unit 102 includes, for example, a Hall element. The Hall element of the sensor unit 102 detects a magnetic pole of the rotor. The Hall element of the sensor unit 102 outputs a Hall signal whose voltage changes according to the rotation of the rotor.
The position sensor of the sensor unit 102 is not limited to the Hall element. As the position sensor, any sensor capable of detecting the rotational position of the rotor in the motor may be used. An encoder or the like may be used as the position sensor. When the encoder is used as the position sensor, the sensor unit 102 may be provided outside the motor controller 100 as an individual device that is separated from the motor controller 100. That is, the sensor unit 102 is not used as one of components in the motor controller 100.
The FG signal generator 103 generates the FG signal as a rotational speed signal indicating the rotational speed of the motor 10. For example, the FG signal generator 103 generates a signal (FG signal) having a period (frequency) proportional to the rotational speed of the motor 10, based on a detection signal (Hall signal) that is output from the Hall element of the sensor unit 102. The FG signal output from the FG signal generator 103 is input to the host device 200. The FG signal generator 103 may be implemented by, for example, an FG pattern that is formed on a substrate (printed circuit board) on which the motor 10 is mounted.
The power supply voltage measuring unit 110 measures a voltage V of the power provided from the host device 200. In other words, the power supply voltage measuring unit 110 measures the power supply voltage. The power supply voltage measuring unit 110 outputs a measured voltage magnitude Vm to the anomaly detection controller 160.
The drive control signal generator 120 generates the drive control signal Ctl to control the drive of the motor 10. The drive control signal generator 120 receives, for example, a speed command signal Sv that is a drive command signal that is output from the host device 200 as a drive command. When the drive control signal generator 120 receives a speed command signal Sv, the drive control signal generator 120 generates the drive control signal Ctl such that the rotational speed of the motor 10 matches a target rotational speed that is specified by the speed command signal Sv.
The drive control signal Ctl is, for example, a pulse width modulation (PWM) signal.
The drive control signal generator 120 includes a speed command analysis unit 121, a duty cycle determination unit 122, and an energization controller 123.
The speed command analysis unit 121 receives the speed command signal Sv output from the host device 200. Then, the speed command analysis unit 121 analyzes a target rotational speed that is specified by the speed command signal Sv. For example, when the speed command signal Sv is a PWM signal having a duty cycle that corresponds to the target rotational speed, the speed command analysis unit 121 analyzes the duty cycle of the speed command signal Sv, and outputs information on the rotational speed that is derived from the duty cycle, as the target rotational speed.
The duty cycle determination unit 122 determines the duty cycle of the PWM signal as the drive control signal Ctl, based on (i) the target rotational speed output from the speed command analysis unit 121 and (ii) a measurement value of the rotational speed of the motor 10 measured by the rotational speed measuring unit 150.
Specifically, the duty cycle determination unit 122 calculates a control value of the motor 10 such that a difference between the target rotational speed and the measured value of the rotational speed of the motor 10 becomes smaller. Then, the duty cycle determination unit 122 determines the duty cycle of the PWM signal according to the calculated control value. For example, the duty cycle determination unit 122 calculates the control value by proportional-integral-differential (PID) control such that the difference between the target rotational speed and a measured value of the rotational speed of the motor 10 becomes smaller. The duty cycle determination unit 122 may calculate the control value by either proportional-differential (PD) control or proportional-integral (PI) control. Then, the duty cycle determination unit 122 determines a duty cycle Dty of the PWM signal according to the control value.
The duty cycle determination unit 122 outputs a determined duty cycle Dty to the anomaly detection controller 160.
The energization controller 123 generates the PWM signal having the duty cycle determined by the duty cycle determination unit 122. Then, the energization controller 123 outputs the generated PWM signal to the motor driver circuit 101 as the drive control signal Ctl.
The communication unit 130 communicates with an external device. The communication unit 130 communicates with the host device 200. Specifically, the communication unit 130 transmits and receives data with respect to the host device 200 that is used as a controller. The communication unit 130 includes a transmitter 131, a receiver 132, and a communication controller 133.
The transmitter 131 transmits data to the host device 200. The receiver 132 receives data from the host device 200. The transmitter 131 and the receiver 132 are controlled by the communication controller 133. The transmitter 131 is, for example, a serial communication interface circuit that generates a predetermined serial signal and transmits the predetermined serial signal to a communication line. The receiver 132 is, for example, a serial communication interface circuit that receives the predetermined serial signal from the communication line.
The communication controller 133 controls the transmitter 131 and the receiver 132. The communication controller 133 sends encoded data to the transmitter 131. The communication controller 133 decodes data received from the receiver 132. The communication controller 133 transmits and receives data with respect to the host device 200 by controlling the transmitter 131 and the receiver 132. The communication controller 133 is implemented, for example, by a program executed by a processor that is provided in the motor controller 100.
The communication controller 133 receives the speed command signal Sv that is output from the host device 200, as a drive command. The communication controller 133 transmits the received speed command signal Sv to the speed command analysis unit 121.
The current measuring unit 140 measures the current of the power provided from the motor driver circuit 101 to the motor 10. The current measuring unit 140 includes, for example, a current transformer. The current measuring unit 140 outputs, to the anomaly detection controller 160, a current magnitude Im that is obtained by measuring the current of the power provided from the motor driver circuit 101 to the motor 10.
The rotational speed measuring unit 150 measures the rotational speed of the motor 10. The rotational speed measuring unit 150 measures the rotational speed of the motor 10 based on the detection signal (Hall signal) from the Hall element in the sensor unit 102, for example. The rotational speed measuring unit 150 outputs a measured rotational speed Rm to the anomaly detection controller 160.
The anomaly detection controller 160 detects an anomaly of the motor 10. The anomaly detection controller 160 estimates and detects the occurrence of the anomaly of the motor 10 based on any one among the voltage magnitude Vm, the current magnitude Im, the rotational speed Rm of the motor 10, and the duty cycle Dty.
The data management unit 170 manages data.
Hereinafter, the host device 200 will be described. The host device 200 provides power to the motor controller 100. The host device 200 also instructs the motor controller 100 about the rotational speed. The host device 200 includes the power source 210, a data processing controller 220, and a communication unit 230.
The power source 210 provides the power for operating the motor 10 to the motor controller 100. The power source 210 is a DC power source. The power source 210 provides, for example, the power of 12 V (volts) to the motor controller 100.
The data processing controller 220 instructs the motor controller 100 about the target rotational speed (target rotational speed) of the motor 10. The data processing controller 220 transmits the speed command signal Sv to the motor controller 100 via the communication unit 230. The data processing controller 220 transmits the speed command signal Sv to the motor controller 100, thereby to instruct the motor controller 100 about the target rotational speed (target rotational speed).
The communication unit 230 communicates with the motor controller 100. The communication unit 230 communicates with the communication unit 130 in the motor controller 100. The communication unit 230 receives a signal that is transmitted from the transmitter 131 in the communication unit 130, as a reception signal Rx. The communication unit 230 also transmits a transmission signal Tx to the receiver 132 in the communication unit 130. The communication unit 230 is, for example, a serial communication interface circuit that generates a predetermined serial signal and that transmits and receives the serial signal from the communication line.
Hereinafter, the process by the anomaly detection controller 160 will be described. While describing the process by the anomaly detection controller 160, steps included in a motor anomaly detection method for detecting the anomaly of the motor 10 will be described. Here, the motor anomaly detection method is executed by the motor controller 100. Also, a procedure of the program executed by a computer provided in the motor controller 100 will be described below.
In order to detect the anomaly of the motor 10, the inventors of the present application have found that for a characteristic value related to the motor 10 during operation, false detection can be suppressed by calculating the standard deviation as a statistic and by calculating the amplitude using the standard deviation.
The anomaly detection controller 160 in the motor controller 100 performs an inspection data acquisition step (step S10), a statistic calculation step (step S20), and an amplitude calculation step (step S30). Subsequently, the anomaly detection controller 160 performs a moving average calculation step (step S40), an anomaly level calculation step (step S50), and an anomaly detection step (step S60). The anomaly detection controller 160 repeatedly performs steps S10 to S60 while the motor 10 is operating.
While the motor 10 is operating, the anomaly detection controller 160 acquires one or more sampled characteristic values of the motor 10 as inspection data (inspection data acquisition step). The characteristic value of the motor 10 includes, for example, any one among a current magnitude and a voltage magnitude of the power provided to the motor 10, the rotational speed of the motor 10, and the duty cycle.
In this example, inspection data that is acquired nth by the anomaly detection controller 160 is expressed by inspection data xi(n), where n is an integer of 1 or more.
Next, the anomaly detection controller 160 calculates a statistic using acquired inspection data (statistic calculation step). The anomaly detection controller 160 calculates a standard deviation of the inspection data that is used as an example of a statistic. In order to calculate the standard deviation, the anomaly detection controller 160 calculates an average of the inspection data and an average (mean square) of values that are obtained by squaring the inspection data.
A specific calculation method will be described below. The anomaly detection controller 160 updates and calculates an nth average Xa(n) using nth inspection data xi(n) and (n−1)th average Xa(n−1), as expressed in Equation 1. In the equation, N is an integer of 2 or more. For example, N is an integer from 100 to 1,000.
The anomaly detection controller 160 calculates nth mean square Xsa(n) using the nth inspection data xi(n) and an (n−1)th mean square Xsa(n−1), as expressed in Equation 2.
Here, the mean square Xsa(n) corresponds to the average of values obtained by squaring inspection data xi, as expressed in Equation 3.
Then, the anomaly detection controller 160 calculates a nth standard deviation σi(n) using the nth average Xa(n) and the mean square Xsa(n), as expressed in Equation 4.
When calculating the standard deviation, in a case where the standard deviation is calculated using variance for a set of data, it is necessary to temporarily store data used for calculation. If an amount of data is increased, an area where data is stored becomes larger, and as a result, memory consumption may be increased.
In view of the above situation, the anomaly detection controller 160 calculates the average and the mean square by using recurrence relations (exponential moving average) as expressed in Equations 1 and 2, and thereby calculates the standard deviation. The standard deviation can be obtained by a sequential computation that utilizes the recurrence relations (exponential moving average), and thus the memory consumption can be reduced.
Next, the anomaly detection controller 160 calculates an amplitude Ri at the time of anomaly based on the statistic calculated in step S20 (amplitude calculation step). Specifically, the anomaly detection controller 160 updates and calculates an nth amplitude Ri(n) as expressed in Equation 5 that uses the nth standard deviation σi(n).
Next, the anomaly detection controller 160 updates an exponential moving average value of the inspection data acquired in step S10 (moving average calculation step).
The anomaly detection controller 160 calculates the exponential moving average value of the inspection data. Here, the exponential moving average value that is acquired nth is expressed as an exponential moving average value yi(n). The exponential moving average value yi(n) acquired nth is calculated as expressed in Equation 6 using a smoothing factor α, the nth inspection data xi(n), and the exponential moving average value yi(n−1) that is acquired (n−1)th. Here, a is a constant of greater than or equal to zero and less than or equal to 1.
The exponential moving average value yi(n) is calculated by the sum of a value obtained by multiplying the smoothing factor α by the inspection data xi(n), and a value obtained by multiplying a value obtained by subtracting the smoothing factor α from 1, by the exponential moving average value yi(n−1). In other words, the exponential moving average value yi(n) is updated to a value obtained by the sum of (i) the value obtained by multiplying the smoothing factor α by the inspection data xi(n) and (ii) the value obtained by multiplying the value that is obtained by subtracting the smoothing factor α from 1, by the exponential moving average value yi(n−1).
The anomaly detection controller 160 may calculate the exponential moving average value yi(n) as expressed in Equation 7, instead of Equation 6. The anomaly detection controller 160 may calculate the exponential moving average value yi(n) that is acquired nth, as expressed in Equation 7 that uses the smoothing factor N, nth inspection data xi(n), and the (n−1)th exponential moving average value yi(n−1). In other words, the anomaly detection controller 160 may calculate the exponential moving average value yi(n) based on the smoothing factor α that is expressed by 1/(N+1). Here, N is an integer of 2 or more. For example, N is an integer from 100 to 1,000. In this description, N may express the smoothing factor.
The exponential moving average yi(n) is updated to a value obtained by dividing, by a value obtained by adding 1 to the smoothing factor N, the sum of the inspection data xi(n) and a value obtained by multiplying the exponential moving average yi(n−1) by the smoothing factor N.
Next, the anomaly detection controller 160 updates an anomaly level based on the inspection data xi(n), the amplitude Ri(n), the standard deviation σi(n), and the exponential moving average value yi(n) (anomaly level calculation step). The anomaly detection controller 160 updates the anomaly level based on the inspection data xi(n) acquired in step S10, the standard deviation σi(n) calculated in step S20, the amplitude Ri(n) calculated in step S30, and the exponential moving average value yi(n) calculated in step S40. The anomaly detection controller 160 calculates a change level Sd(n) as expressed in Equation 8.
The anomaly detection controller 160 calculates an anomaly level Se(n) as expressed in Equation 9.
Here, max{a,b} is a function that returns a greater value of a and b. That is, when a result obtained by Se(n−1)+Sd(n) is negative or zero, max{0,Se(n−1)+Sd(n)} indicates zero, and when “Se(n−1)+Sd(n)” is positive, max{0, Se(n−1)+Sd(n)} returns “Se(n−1)+Sd(n).”
Next, the anomaly detection controller 160 detects an anomaly of the motor 10 based on the anomaly level Se(n) (anomaly detection step). When the anomaly level Se(n) is greater than a predetermined threshold, the anomaly detection controller 160 detects that the anomaly occurs in the motor 10.
The anomaly detection controller 160 determines whether to terminate the process. If the process is terminated (YES in step S70), the anomaly detection controller 160 terminates the process. If the process is not terminated, in other words, if the process is continuously performed (NO in step S70), the anomaly detection controller 160 returns to step S10 and repeats the process.
Hereinafter, operation results by the motor controller 100 that is an example of a motor controller according to the present embodiment will be described.
A line Lraw1 in
In each of
[Case where Sudden Change is Made]
In a case in which a sudden change is made, for example, a case where a motor command speed is changed. operation results by the motor controller 100 will be described as follows.
As shown in
[Case in which Gradual Change is Made]
The operation results by the motor controller 100 will be described in a case a gradual change is made.
As shown in
The characteristic values of the motor 10 operated by the motor controller 100 will be described below. The motor controller 100 is an example of the motor controller according to the present embodiment.
At the time point expressed by an arrow Pv2 in
As shown in
A result obtained when the standard deviation is set to a fixed value will be described below.
As shown in
In the motor controller according to the present embodiment, the anomaly level is calculated by dynamically changing the standard deviation. With this arrangement, even if the standard deviation permanently changes due to a disturbance, false detection, in which the resulting anomaly level is increased when performing anomaly detection of the motor, can be suppressed.
A smoothing factor N obtained when the motor controller 100 that is an example of the motor controller of the present embodiment operates will be described below.
As shown in
As shown in
From the above results, the smoothing factor N is appropriately determined in accordance with the change level of the characteristic value, so as to detect an anomaly. For example, the smoothing factor N may be determined in the range of greater than or equal to 100 and less than or equal to 1,000.
In the motor controller according to the present embodiment, false detection can be suppressed when performing anomaly detection of the motor.
For example, the motor controller in the reference example will be described with reference to
As the motor controller in the reference example, for example, an average value of inspection data expressed by a line Lraw4 is first calculated as expressed by a line Lavga4 in
Further, for example, the motor controller in the reference example will be described with reference to
As the motor controller in the reference example, for example, as shown as line Lavga5 in
In the motor controller according to the present embodiment, even when the characteristic value changes suddenly or gradually, false detection can be suppressed when performing anomaly detection of the motor.
For example, when the current magnitude is used as the characteristic value, the current measuring unit 140 is used as an example of an acquisition unit that acquires the characteristic value related to the motor. The anomaly detection controller 160 is an example of a processor that processes a characteristic value that is acquired by an acquisition unit.
In step S50, a change level Sd2(n) is calculated instead of the change level Sd(n), and an anomaly level Se2(n) may be calculated as an anomaly level, instead of the anomaly level Se(n). In other words, the anomaly detection controller 160 may detect a downturn in the characteristic value using a cumulative sum method. The anomaly detection controller 160 calculates the change level Sd2(n) as expressed in Equation 10.
Then, the anomaly detection controller 160 calculates the anomaly level Se2(n) as expressed in Equation 11.
Here, max{a,b} is a function that returns a greater value of a and b. That is, max{0, Se2(n−1)-Sd2(n)} returns zero when “Se2(n−1)-Sd2(n)” is negative or zero, and max{0, Se2(n−1)-Sd2(n)} returns Se(n−1)-Sd2(n) when “Se2(n−1)-Sd2(n)” is positive.
In the above-described embodiment, the current magnitude of the current that is provided to the motor 10 is used as input data indicating an operating state of the motor 10, but the input data is not limited to the current magnitude. For example, any one among the voltage magnitude of the power provided to the motor, the number of revolutions of the motor 10, and a duty cycle may be used as the input data.
Although the motor controller is described with reference to the above embodiments, the present disclosure is not limited to the embodiments. Various modifications and improvements, such as combination with or replacement with some or all of the other embodiments can be made within the scope set forth in the present disclosure.
In a motor anomaly detector in the present disclosure, false detection can be suppressed when performing anomaly detection of a motor.
Number | Date | Country | Kind |
---|---|---|---|
2023-145195 | Sep 2023 | JP | national |