Anti-interference device and associated method
The motor response is modeled through discrete time recursive filters and compared the actual responses, and the motor errors are identified, which solves the problem of detection of delays and faults in the prior art, and achieves faster and more reliable motor interference detection.
Patent Information
- Application Number
- CN202380060185.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-13
- Filing Date
- 2023-07-04
- Publication Date
- 2025-03-28
AI Technical Summary
The prior art detects and handles motor interference, especially under dynamic motor driving conditions, with detection delays and potential failures, resulting in the system being simply ‘switched off’ in the presence of interference, affecting the continuous operation of the motor.
By modeling the motor's response using a discrete time recursive filter, limiting the range of expected motor behavior, and comparing the modeled response with the actual response, motor errors are identified if the actual response exceeds the expected range.
Effectively shortens the response time of interference/overload detection, avoids detection of faults under dynamic driving conditions, ensures continuous operation of the motor and reduces the risk of equipment damage.
Smart Images

Figure CN119731935A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an anti-interference device and associated methods, and in particular to a device that is generally configured to identify a motor error if the actual response of the motor to a drive signal is outside a range of expected motor behavior defined by a modeled response to the drive signal. The device may be one or more of the following: a kitchen appliance, a blender, a portable blender, a mixer, a juicer, and a module for one or more thereof. Background Art
[0002] Early detection of motor errors is beneficial in avoiding motor damage and / or adverse chain reactions. The problem of motor error detection can be solved by monitoring the current delivered to the motor and using this information to detect disturbance / overload conditions so that appropriate action can be taken. An alternative approach could be to directly monitor the motor shaft speed using a dedicated sensor. Both approaches allow the motor error to be calculated.
[0003] The motor "anti-disturbance" feature is a mechanism involving motor disturbance detection and a subsequent set of maneuvers that exploit the fact that the motor can be operated in both forward and reverse directions to potentially eliminate the disturbance. In this regard, a "disturbance" may be understood as a "jam," "overload," or more generally, a motor error that characterizes a load level on the motor that is considered high enough to require corrective action. Such terms are intended to be used interchangeably herein unless the context requires otherwise.
[0004] Battery powered motors are unable to generate the large amounts of torque typically generated by mains powered motors. This is partly due to the limited power of the battery relative to the mains, and also due to the fact that battery powered DC motors contain permanent magnets. The permanent magnets increase the operating efficiency of the motor when compared to universal motors commonly found in household appliances, but limit the maximum torque at low speeds.
[0005] Without a method of dealing with a disturbance in a motor with reduced available torque, the system would likely simply "turn off" in the presence of the disturbance. The user would then have to turn the device back on after attempting to correct the disturbance.
[0006] Utilizing effective "anti-disturbance" mechanisms, the possibility of continuous and uninterrupted motor operation is increased.
[0007] Sequence of events
[0008] The basic method of disturbance correction relies on the cyclic forward and reverse motion of the motor. Although simple, there are several variables that affect the overall performance of this method, such as torque, rotation distance, speed, duration, and number of repetitions allowed. The method of detecting disturbances can also be optimized because it can have an impact on normal motor behavior if not implemented correctly.
[0009] Interference detection
[0010] For example, the system can simply switch the motor on and off, often by determining a fixed threshold for the motor current above which a timer is started. When the timer "times out" - often after a period of 100 milliseconds - the motor shuts down. For systems that apply variable drive voltages to the motor, appropriate current thresholds for each drive voltage can be determined based on predetermined criteria. Once the threshold is reached, the motor will shut down after a similar period of time.
[0011] Systems such as those described above typically have long timeout periods to account for all envisioned motor error conditions. A disadvantage of this approach is that overloads during normal operating conditions are not treated differently than overloads during motor startup (i.e., during the spin-up process) when the motor is under additional load. Thus, detection of disturbance / overload conditions is significantly delayed when they occur beyond the initial startup phase.
[0012] Another disadvantage of such systems is the potential for interference detection failure in the case of dynamic motor drive conditions. Dynamically changing motor drives may cause motor currents to reach a predetermined threshold on a rapid and repeated basis. This causes constant timer resets, which effectively disables detection completely if the timer resets quickly enough to prevent a timeout.
[0013] It is therefore beneficial to consider the dynamic behavior of the motor when identifying motor errors, particularly (although not exclusively) the dynamic behavior of the motor with reduced available torque. Such motors may be integrated in kitchen appliances, blenders, portable blenders, mixers, juicers, etc., and more generally in systems designed to manipulate heterogeneous physical systems into more homogeneous physical states where sudden changes in fluid dynamics may occur. Other applications that rely on motor error detection may also benefit.
[0014] The listing or discussion of a previously disclosed document or any background in this specification is not necessarily to be taken as an admission that the document or background is part of the prior art or is common general knowledge. One or more aspects / examples of the present disclosure may or may not address one or more of the background issues. Summary of the invention
[0015] According to a first aspect, a device is provided, comprising at least one processor; and at least one memory containing computer program code, the at least one memory and the computer program code being configured to, with the at least one processor, cause the device to: model a response of a motor to a drive signal using one or more filters, the one or more filters being configured to define a range of expected motor behavior associated with the drive signal; compare the modeled response with an actual response of the motor to the drive signal; and identify a motor error if the actual response of the motor is outside the range of expected motor behavior defined by the modeled response.
[0016] The one or more filters may include at least one discrete-time recursive filter configured to receive a sequence of filter inputs indicative of a drive signal forming part of a drive operation and to generate a plurality of corresponding filter outputs defining an associated modeled response of the motor, and wherein the device is configured to iteratively modify the modeled response with each filter input of the sequence using the filter output of a previous iteration as feedback.
[0017] The sequence may be received over a time interval. The one or more filters may include at least one non-recursive filter. The one or more filters may be a low pass filter. The one or more filters may have a unity steady state gain. The expected motor behavior may reflect the expected behavior of the motor at a maximum allowable load. The modeled response may be a worst case speed of the rotor, which is equivalent to a calculated worst case back EMF from the motor.
[0018] The at least one discrete time recursive filter may include a plurality of linear filters each having a respective time constant for modifying the modeled response, the respective time constant defining the time it takes for the motor to reach a predefined percentage of the terminal speed under different load conditions for expected motor behavior.
[0019] At least one discrete-time recursive filter may include a nonlinear filter having longer and shorter time constants for modifying a modeled response, the longer and shorter time constants defining the time it takes for the motor to reach a predefined percentage of the terminal speed under a range of load conditions for expected motor behavior, and wherein the device is configured to: compare each filter input of the sequence with the filter output of the previous iteration; and when the filter input and filter output have the same sign: switch from the longer time constant to the shorter time constant when the magnitude of the filter input is lower than the magnitude of the filter output of the previous iteration, otherwise use the longer time constant, and only use the shorter time constant when the filter input and filter output have opposite signs.
[0020] At least one discrete-time recursive filter may include a nonlinear filter having rise and fall time constants for modifying a modeled response, the rise and fall time constants defining the time taken for the motor to accelerate and decelerate to respective predefined percentages of a terminal speed under predefined load conditions for expected motor behavior, and wherein the device is configured to: compare each filter input of the sequence with the filter output of a previous iteration; and when the filter input and the filter output have the same sign: switch from the rise time constant to the fall time constant when the magnitude of the filter input is lower than the magnitude of the filter output of the previous iteration, otherwise use the rise time constant; and only use the fall time constant when the filter input and the filter output have opposite signs.
[0021] The rise and fall time constants can be the same or different.
[0022] The rise time constant and the fall time constant may each be in a range of about 5 ms to about 80 ms.
[0023] The predefined percentage of the terminal velocity for the load condition may be 100×(1-e -1 All rise and fall time constants can be factored (1-e -1 ) to measure.
[0024] At least one discrete-time recursive filter may include a plurality of nonlinear filters, each nonlinear filter having associated rise and fall time constants for modifying a modeled response, the associated rise and fall time constants defining the time taken for the motor to accelerate and decelerate to respective predefined percentages of a terminal speed under predefined load conditions for expected motor behavior, and wherein the device is configured to: scale each filter output by a scaling factor; determine a scaled maximum filter output value and a scaled minimum filter output value from the scaled filter outputs of the plurality of nonlinear filters at each iteration of the sequence; and if the drive signal is positive: compare an actual response of the motor to the scaled minimum filter output value, and if the actual response of the motor is less than the scaled minimum filter output value, identify a motor error; or if the drive signal is negative: compare an actual response of the motor to the scaled maximum filter output value, and if the actual response of the motor is greater than the scaled maximum filter output value, identify a motor error.
[0025] Determining the maximum scaled filter output value and the minimum scaled filter output value may include: determining the filter output having the maximum positive output value or the minimum negative output value (whichever is higher) after scaling as the maximum filter output value; and determining the filter output having the minimum positive output value or the maximum negative output value (whichever is lower) after scaling as the minimum filter output value.
[0026] The ratio of each rise time constant to its corresponding fall time constant may be equal to the asymmetry factor.
[0027] Multiple nonlinear filters may include a first group and a second group, wherein the ratio of each rise time constant in the first group to its corresponding fall time constant is equal to a first asymmetry factor, and the ratio of each rise time constant in the second group to its corresponding fall time constant is equal to a second asymmetry factor, and the second asymmetry factor is smaller than the first asymmetry factor.
[0028] The first group and the second group may each include 4 to 8 non-linear filters.
[0029] At least one discrete-time recursive filter may include a nonlinear filter comprising first and second component linear filters, each of the first and second component linear filters having a corresponding time constant for modifying a modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed from longest to shortest under all expected motor load conditions, respectively, and wherein the device is configured to: compare each filter input of the sequence with the filter output of the previous iteration; and when the filter input is lower than the filter output of the previous iteration, use the second component linear filter, otherwise use the first component linear filter.
[0030] When the filter input is lower than the filter output of the previous iteration, the second component linear filter is used, otherwise the first component linear filter is used, which may also be independent of the sign or polarity of the input.
[0031] When the filter input and the filter output have the same sign, the device can be configured to use the second component linear filter when the amplitude of the filter input is lower than the amplitude of the filter output of the previous iteration, and otherwise use the first component linear filter; and when the filter input and the filter output have opposite signs, the device can be configured to use only the second component linear filter.
[0032] At least one discrete time recursive filter includes a nonlinear filter, which may include a first and a second component linear filter, each of the first and second component linear filters having a corresponding time constant for modifying a modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed from longest to shortest under all expected motor load conditions, respectively, and wherein the device is configured to: compare a current filter output of the first component linear filter with a current filter output of the second component linear filter; and use the lower filter output as feedback for both the first and second component linear filters to modify the modeled response.
[0033] At least one discrete-time recursive filter may include an additional nonlinear filter, the additional nonlinear filter including first and second additional component linear filters, each of the first and second additional component linear filters having a corresponding time constant for correcting the modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed from longest to shortest under all expected motor load conditions, respectively, and wherein the device is configured to: compare a current filter output of the first additional component linear filter with a current filter output of the second additional component linear filter; and use the higher filter output as feedback for both the first and second additional component linear filters to correct the modeled response.
[0034] The device may be configured to select a lower filter output or a higher filter output as appropriate to compare with the actual response of the motor.
[0035] The device can be configured to: scale each filter output by a scaling factor; determine a scaled maximum filter output value and a scaled minimum filter output value from the scaled filter outputs at each iteration of the sequence; and if the drive signal is positive: compare the actual response of the motor with the scaled minimum filter output value, and if the actual response of the motor is less than the scaled minimum filter output value, identify a motor error; or if the drive signal is negative: compare the actual response of the motor with the scaled maximum filter output value, and if the actual response of the motor is greater than the scaled maximum filter output value, identify a motor error.
[0036] Lower may mean a lower magnitude, and higher may mean a higher magnitude.
[0037] The time constant may cover the range of expected motor time responses at maximum resistive load through an expected set of inertial load conditions.
[0038] The apparatus may be configured to scale a filter output of the at least one discrete-time recursive filter by a scaling factor representing a steady-state load of the motor before comparing the modeled response to an actual response of the motor to the drive signal.
[0039] The steady state load of the motor can be defined as the ratio of the calculated back EMF to the steady state of the drive signal, or the ratio of the steady state motor deceleration speed to the maximum speed of the motor. The output of each filter can be scaled by the same scaling factor. The scaling factor can be in the range of 0.01 to 1, preferably in the range of 0.2 to 0.5.
[0040] At least one discrete time recursive filter may have unity gain. Unity gain may define a filter whose output is equal to its input under steady state conditions.
[0041] Motor errors can indicate interference or jamming of the motor.
[0042] The apparatus may be configured to compare the drive signal to a first threshold defining a minimum motor drive signal and compare a modeled response of the motor to an actual response of the motor to identify a motor error only if the drive signal exceeds the magnitude of the first threshold.
[0043] The device can be configured to: determine a second threshold that limits a minimum modeled motor response to the drive signal based on the drive signal; compare the modeled response of the motor to the second threshold; and if the drive signal is positive: if the modeled response is greater than the second threshold, compare the modeled response of the motor with the actual response of the motor to identify a motor error; or if the drive signal is negative: if the modeled response is lower than the second threshold, compare the modeled response of the motor with the actual response of the motor to identify a motor error.
[0044] The device can be configured to: determine a second threshold that limits a minimum modeled motor response to the drive signal based on the drive signal; compare the modeled response of the motor with the second threshold; and compare the modeled response of the motor with an actual response of the motor to identify a motor error only if the magnitude of the modeled response exceeds the second threshold.
[0045] The modeled response of the motor may be compared to the actual response of the motor only if: if the drive signal is positive, the minimum output from the one or more filters is above a second threshold, and if the drive signal is negative, the maximum output from the one or more filters is below the second threshold, otherwise, no comparison is made.
[0046] The second threshold may be the drive signal scaled by a factor smaller than 0.5, preferably in the range of 0.05 to 0.2.
[0047] Regarding the identification of motor errors, the device can be configured to perform a calibration procedure, which includes: adjusting a drive signal; modeling a response of the motor to the adjusted drive signal; comparing the modeled response with an actual response of the motor to the adjusted drive signal; and determining that the motor error has been corrected if the actual response of the motor is within a range of expected motor behavior defined by the modeled response, otherwise repeating the calibration procedure.
[0048] The calibration procedure may further include: suspending a user program for the motor before adjusting the drive signal; and resuming the user program for the motor when it is determined that the motor error has been corrected.
[0049] The device may be configured to provide an indication of a motor error timeout if the actual response of the motor is outside of a range of expected motor behavior after a predefined time or number of drive signal adjustments.
[0050] The device may be configured to adjust one or more of the amplitude, rate of change, and polarity of the drive signal with each iteration of the drive signal adjustment.
[0051] The drive signal may include a drive voltage for the motor.
[0052] The actual response of the motor to the drive signal may include the back EMF generated by the motor.
[0053] The device may be configured to: monitor the speed of the motor or the current absorbed by the motor; and calculate the back EMF based on the monitored speed of the motor or the current absorbed by the motor as the actual response of the motor.
[0054] The device may be one or more of: a kitchen appliance, a blender, a portable blender, a mixer, a juicer, and a module for one or more thereof.
[0055] At least one of the motor and the one or more filters may form part of the apparatus.
[0056] According to a second aspect, a method is provided, comprising: modeling a response of a motor to a drive signal using one or more filters, the one or more filters being configured to limit a range of expected motor behavior associated with the drive signal; comparing the modeled response with an actual response of the motor to the drive signal; and identifying a motor error if the actual response of the motor is outside the range of expected motor behavior defined by the modeled response.
[0057] The method may be repeated at an iteration rate, wherein the iteration rate is in the range of 100 Hz to 1 kHz, preferably 100 Hz to 500 Hz.
[0058] One or more logical conditions for a filter are applicable to another filter where compatible.Optional features described with respect to the apparatus of the first aspect are applicable to the method of the second aspect where compatible.
[0059] The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated or understood by one skilled in the art.
[0060] Corresponding computer programs for implementing one or more steps of the methods disclosed herein are also within the present disclosure and covered by one or more of the described examples.
[0061] When run on a computer, one or more of the computer programs can cause the computer to configure any device, including a battery, circuit, controller, or device disclosed herein, or to perform any method disclosed herein. As a non-limiting example, one or more of the computer programs can be a software implementation, and the computer can be considered to be any suitable hardware, including a digital signal processor, a microcontroller, and an implementation in a read-only memory (ROM), an erasable programmable read-only memory (EPROM), or an electrically erasable programmable read-only memory (EEPROM). The software can be an assembler.
[0062] One or more of the computer programs may be provided on a computer readable medium, which may be a physical computer readable medium such as an optical disk or a memory device, or may be embodied as a transient signal. This transient signal may be a network download, including an Internet download.
[0063] The present disclosure includes one or more corresponding aspects, examples or features alone or in various combinations, whether or not specifically described (including claimed) in that combination or alone. Corresponding means for performing one or more of the functions discussed are also within the present disclosure.
[0064] Throughout this specification, motion-related descriptors such as "forward," "backward," or "reverse," and any adjective and adverb derivatives thereof, are used in the sense of the motion of features associated with the features presented in the drawings. However, such descriptors are not intended to limit in any way the intended uses of the inventions described or claimed.
[0065] The above summary is intended to be illustrative only and not limiting. BRIEF DESCRIPTION OF THE DRAWINGS
[0066] A description will now be given, by way of example only, with reference to the accompanying schematic drawings, in which:
[0067] Figure 1 Example devices are shown in schematic form.
[0068] Figure 2 An example system is shown in schematic form.
[0069] Figure 3 A difference equation block diagram of a single-component linear recursive filter included in a filter bank according to an example is shown.
[0070] Figure 4Simulation data for dynamic interference detection using a discrete recursive nonlinear filter according to an example is shown.
[0071] Figure 5 Another example system is shown in schematic form.
[0072] Figure 6 A difference equation block diagram of a single linear recursive filter according to an example is shown.
[0073] Figures 7a to 7c A difference equation block diagram of an example nonlinear recursive filter is shown.
[0074] Figure 7d Shows Figure 7b and Figure 7c An example filter scaling equation block diagram of an example nonlinear recursive filter is shown in FIG.
[0075] Figure 7e to Figure 7f Shown Figure 7b and Figure 7c An example of the behavior of a nonlinear recursive filter is shown in the data.
[0076] Figure 8 Comparative data from an example linear filter array and an example non-linear filter are shown.
[0077] Figures 9a to 9d Shown with Figure 8 Additional comparative data related to the data shown in .
[0078] Fig.10 A flow chart for a pre-scheduled interference detection process is shown according to an example.
[0079] Figure 11a to Figure 11b A flow chart for a pre-scheduled interference detection process according to another example is shown.
[0080] Fig.12 A flow chart for a disturbance correction control process according to an example is shown.
[0081] Fig.13 A flow chart for a disturbance correction control process according to another example is shown.
[0082] Figure 14a to Figure 14b A flow chart for an interference correction maneuvering process according to an example is shown.
[0083] Fig.15 A flow chart for an interference correction maneuvering process according to another example is shown.
[0084] Fig.16 A flow chart showing a method of identifying motor errors. DETAILED DESCRIPTION
[0085] General approach
[0086] The motor control system always knows the current level flowing into the motor. Using motor theory, the speed of the motor can be calculated using this current information along with the applied voltage and known motor characteristics. This speed information is compared to the extremes of normal behavior. The extremes of normal behavior can be determined in a two-stage process:
[0087] Calculate expected behavior.
[0088] Margin can be added to the expected behavior to reach extremes of normal behavior.
[0089] If it is determined that the motor is operating outside the "extremes of normal behavior" in such a way that it is "slower", then a disturbance is signaled. A margin may be added so that anything beyond the margin is considered an unacceptable overload.
[0090] The expected behavior can be calculated using a filter that takes into account the fact that the motor takes time to start up to a certain speed or change to a new speed.
[0091] The method described herein optionally utilizes a dynamic threshold via a recursive nonlinear filter bank that takes into account not only the current drive voltage of the motor, but also all previous values. Using this approach, the determination of the interference condition is sufficiently accurate to allow the detected interference condition to be reported immediately. There is no need to insert a timer, whose timeout is set to take into account all foreseeable possibilities.
[0092] The result is a significantly shorter disturbance / overload detection response time and the elimination of potential detection failures when the drive signal is highly dynamic.
[0093] In other words, the trigger condition for the current is not fixed and predetermined. In the example described further below, the trigger condition is real-time and is determined by passing voltage information (representing the drive to the motor) to a filter or filter bank. After additional processing described further below, the output from the filter or filter bank represents the expected worst-case back EMF of the motor (i.e., the voltage generated internally by it, as if it were acting as a generator). The back EMF of the motor is closely related to the speed of the motor (with a direct proportion in a simple motor model with permanent magnets), which in turn depends on both the drive to the motor and its load characteristics.
[0094] The term "additional processing" is used herein to refer to possible scaling of the filter output and selection of maximum or minimum filter output values in order to determine the worst case back EMF.
[0095] In these examples, the expected worst case back EMF is compared to the actual back EMF determined by direct calculation. If the actual back EMF is "worse" than the "expected worst", a disturbance condition is flagged. Thus, the method disclosed herein compares the internally generated motor voltage to its worst expected value for a non-disturbanced state.
[0096] The filter used may be a single-pole recursive filter having a speed that is approximately 63.21% (ie, 1-e) of the speed required for the motor to reach its terminal speed. -1 The output of the filter can be scaled by an amount "k" which reflects how much load can be placed on the motor. For example, a scaling factor of 0.5 means that the motor cannot be tolerated to slow down to a point below half of its no-load speed.
[0097] The method may be adapted to a range of drive signal amplitudes for the motor, and / or different drive signal polarities or drive signal change rates.
[0098] The robustness of these methods is well suited for systems that attempt to mitigate disturbance conditions (disturbance correction) using motor manipulation. Evasion actions can be attempted at an early point in time without constraints on the nature of the motor manipulation. Such manipulations can be highly dynamic, including backdriving at high repetition rates, without degrading the sensitivity of the disturbance detection system.
[0099] While the evasive motor maneuver is in progress, the disturbance detection system can remain fully operational, thereby ensuring that the correction process can decide to stop the correction maneuver at the appropriate point. This speeds up the disturbance correction process by avoiding both repeated entry into the correction process and execution of the process for longer than necessary.
[0100] Figure 1 An example device 100 is shown in schematic form. The device 100 includes at least one processor 102 and at least one memory 104 containing computer program code. The at least one memory 104 and the computer program code are configured to, with the at least one processor 102, cause the device 100 to: model a response of a motor to a drive signal using one or more filters, the one or more filters being configured to define a range of expected motor behavior associated with the drive signal; compare the modeled response to an actual response of the motor to the drive signal; and identify a motor error if the actual response of the motor is outside the range of expected motor behavior defined by the modeled response.
[0101] The one or more filters may include at least one discrete-time recursive filter configured to receive a sequence of filter inputs indicative of a drive signal forming part of a drive operation and to generate a plurality of corresponding filter outputs defining an associated modeled response of the motor, and wherein the apparatus 100 is configured to iteratively modify the modeled response using each filter input of the sequence using the filter output of a previous iteration as feedback.
[0102] The sequence may be received over a time interval. The one or more filters may include at least one non-recursive filter. The one or more filters may have a unity steady-state gain. The one or more filters may be low-pass filters. The expected motor behavior may reflect the expected behavior of the motor at a maximum allowable load. The modeled response may be a worst-case speed of the rotor, which is equivalent to a calculated worst-case back EMF from the motor.
[0103] Dynamic disturbance detection using discrete recursive nonlinear filters
[0104] The basic theory utilizes a simple permanent magnet DC motor model consisting of an ideal DC motor in series with a resistor. The resistor represents the internal resistance of the motor windings. It is assumed that the ripple current in the motor windings is small enough to make the effect of the internal motor inductance negligible. Therefore, the inductance is not included in the model.
[0105] The use of such a model allows straightforward calculation of the motor back EMF once the motor current, drive voltage and resistance are known. The motor back EMF is the theoretical voltage generated by an ideal motor, as if it were a generator.
[0106] In this example, the current going to the motor is continuously monitored during motor operation. Using a simple motor model, this current is used to calculate the theoretical back EMF of the motor for each point in time.
[0107] For the motor model used, the back EMF is proportional to the motor RPM. It can be calculated from the RPM by the following equation: Back EMF = RPM / K v The quantity K in this example v is a constant of the motor and represents the RPM per volt of applied voltage.
[0108] Back EMF can also be calculated using the following formula: Back EMF = V m –I m XR m , where V m is the voltage applied to the motor, I m is the current delivered to the motor (in the associated direction), and R mis the winding resistance. The back EMF can be a negative quantity, indicating that the motor is turning in the opposite direction to that associated with the applied voltage.
[0109] Assuming a constant load (fixed resistance and moment of inertia), when a fixed voltage is applied to an initially stationary motor, its RPM, and therefore back EMF, increases exponentially. Since this is an exponential rise, it can be defined by a time constant "τ", which represents the time it takes for the rotor to rotate to approximately 63% of its terminal value. This mechanical time constant depends on the moment of inertia of the motor's rotating parts, the rotational resistance, the internal resistance of the windings, and the effective resistance of the drive mechanism powering the motor.
[0110] The method can utilize multiple filters that accurately represent the motor employed in the system. A first order linear low pass filter can be used. Such a filter has an exponential output response to a step input and has a rise time equal to the fall time. In reality, the rise and fall times of real motors are often not the same, and these two values can vary significantly. In order to model this asymmetry in the behavior of real motors, the filters can have asymmetric rise and fall times, making them nonlinear. This is achieved by simply dynamically switching the filter coefficients, for a unity gain filter, depending on whether the amplitude of the input is greater or less than the amplitude of the previous output. In addition, all filter scaling is done after this comparison.
[0111] The difference in rise and fall times can be represented by an asymmetry factor ψ = rise time / fall time. The asymmetry factor can be determined by direct motor rpm measurements and may vary with the conditions chosen. Once a set of values is determined over a range of conditions, the quantities ψ1 and ψ2 are set to cover these values. The value of ψ1 is set so that ψ1 ≥ ψ2. ψ1 and ψ2 represent the boundaries of all values that may exist in a real motor at operation.
[0112] In the example, the filters used in the detection process are divided into two groups, Group 1 and Group 2. The asymmetry factor of filter Group 1 is ψ1, and the asymmetry factor of filter Group 2 is ψ2. There are "N" filters in Group 1 and "M" filters in Group 2. The rise and fall times of each filter are set to cover all possible rpm rise and fall times for the motor in operation. Motors with lower inertia loads will have faster fall and rise times than motors with higher inertia loads. The rise and fall times are set from motor data measured over all expected loads in normal use. The average values of the rise and fall times can range from 5ms to 80ms.
[0113] The value of "N" can be selected between 4 and 8 (inclusive). The value of "M" can also be selected between 4 and 8 (inclusive). Other values are also possible. The value of "N" can be equal to "M". If the real motor only turns in one direction, the value of "M" can be set to zero. Larger values of "N" and "M" will result in higher detection accuracy, but with diminishing returns in interfering with detection time.
[0114] All filters can have the same gain value "k" applied to their output. This gain value is set to a value that represents the maximum allowable rpm deceleration of the motor, expressed as a factor below which a disturbance is considered to be present. This value is typically in the range of 0.25 to 0.40. A value of 0.5 represents a 50% deceleration of the motor, which for a simple motor model represents the point of maximum power transfer from the motor to the load. A value of 0.25 represents a 75% deceleration, at which point the motor will operate at very low efficiency. Ideally, the motor is operated with a deceleration factor between 0.5 and 1.
[0115] The specific rise time is represented by the quantity "τ". The total number of nonlinear filters is "N" plus "M".
[0116] All filters accept the same signed input value. This input represents the drive to the motor and is proportional to the applied voltage. Negative values represent reverse drive to the motor. The units used are the same as those used to calculate the motor back EMF.
[0117] During interference detection, all filter outputs are reduced to only two values: a maximum value y[n]max and a minimum value y[n]min. The maximum value y[n]max is the largest positive output value or the smallest negative output value in the group, whichever is higher. The minimum value y[n]min is the smallest positive output value or the largest negative output value in the group, whichever is lower. The value "n" is the number of samples in the sequence.
[0118] The filter is implemented as a discrete time difference equation, which can be executed iteratively. The filter iteration rate can be set high enough to allow accurate representation of the motor input drive. The filter iteration rate can be in the range of 100 Hz to 1 kHz, preferably 100 Hz to 500 Hz.
[0119] The current delivered to the motor may be measured at each iteration, in which case the motor back EMF is calculated at each iteration in the same units of measurement as the data delivered to the filter.
[0120] Subject to operating thresholds that determine whether the detector is activated at each iteration, the scaled filter maximum or minimum value is compared to the calculated motor back EMF to determine whether a disturbance condition exists. However, these operating thresholds may be omitted or only partially implemented. If the detector is activated and a disturbance condition exists, the associated flag is set to true. If the detector is activated and if a disturbance condition does not exist, the associated flag is set to false. When the detector is not activated, the flag is not updated.
[0121] Thus, in the instance where the drive to the motor is positive (the input to the filter array is positive), the detector activates if the following criteria are met:
[0122] - The motor is driven above a predetermined positive threshold "+DMin". The value of "+DMin" can be fixed or dynamically calculated. The value of "+DMin" can be 20% of the maximum possible applied voltage (fixed in this example).
[0123] - The scaled filter bank minimum y[n]min is above a predetermined positive threshold
[0124] "Y_Min". The value of "Y_Min" can be fixed or dynamically calculated. The value of "Y_Min" can be 10% of the applied voltage (dynamic in this example).
[0125] In the instance where the drive to the motor is negative (the input to the filter array is negative), the detector activates if the following criteria are met:
[0126] - The drive of the motor falls below a predetermined negative threshold value "-DMin" (negative value of Dmin).
[0127] - The filter bank maximum y[n]max is below a predetermined negative threshold "-Y_Min"
[0128] (Negative value of Y_Min). The value of "Y_Min" may be 10% of the magnitude of the applied voltage (dynamic in this example).
[0129] In the instance where the drive to the motor is positive (the input to the filter array is positive), interference is present if the following criteria are met:
[0130] -Detector activated.
[0131] -The calculated and signed motor back EMF is less than the filter minimum.
[0132] In the instance where the drive to the motor is negative (the input to the filter array is negative), interference is present if the following criteria are met:
[0133] -Detector activated.
[0134] -The calculated and signed motor back EMF is greater than the filter maximum.
[0135] The decision to use fall time or rise time
[0136] When the amplitude of the output is decreasing, the fall time is used. When the amplitude of the output is increasing, the rise time is used. To ensure the validity of these rules, the sign (polarity) of the filter input and the filter output must be considered. In other words, simply looking at the amplitude of these quantities may lead to differences in interference detection.
[0137] For example, if the filter input is +1 and the filter output is -0.5, then the fall time is chosen because the amplitude of the output will decrease to zero.
[0138] Figure 2 An example system 206 generally configured to implement the above-described processes is shown in schematic form.
[0139] The system 206 includes: a drive logic 208, which responds to user selections and any requests for interference correction processes; a power drive module 210, which generates the motor drive voltage requested by the drive logic 208. The power drive module 210 is capable of generating both positive and negative voltages and ramping between specified values at a specified rate. Once the target voltage is reached, the status is transmitted back to the control process.
[0140] The system 206 further includes: nonlinear filter banks 1 and 2 (212a to 212b), which are discrete nonlinear filter banks with asymmetry factors ψ1 and ψ2, respectively; maximum and minimum 214, which represent the maximum and minimum values at each iteration cycle; a current sensor 216 and a disturbance detection stage 218, wherein the current sensor 216 converts the current to the motor into a readable signal for use by the disturbance detection stage 218, and the disturbance detection stage 218 processes the applied motor voltage, motor current, and filter maximum and minimum values (and then applies scaling to them) to detect disturbance conditions; a physical motor 220; and a motor model 222 used in the analysis, which includes an "ideal" motor 222a in series with a resistor 222b representing the internal resistance of the motor winding.
[0141] The system 206 further includes one or more optional features: an interference correction module 224; and user controls 226. The interference correction module 224 includes logic (not shown) responsible for interference correction. The user controls 218 allow the user to interact with the system and may allow the user to access internal motor control programs designed to perform specific tasks.
[0142] It should be understood that system 206 can be implemented as a combination of software and hardware so that theoretically independent features (such as nonlinear filter banks 1 and 2 (212a to 212b)) are optionally implemented in combination with one or more other features of the system within a single module or program.
[0143] Each nonlinear filter is a discrete, unity-gain, recursive, first-order low-pass filter with dynamically switchable coefficients. The system of equations is given by:
[0144] y[n] = a[n] *x[n] + b[n]*y[n-1] (1)
[0145] ψ=τ1 / τ2
[0146] If magnitude(x[n])>magnitude(y[n-1]), then:
[0147] a[n] = 1 – e- T / τ1 (2); b[n] = eT / τ1 (3)
[0148] otherwise
[0149] a[n] = 1 – e- T / τ2 (4); b[n] = eT / τ2 (5).
[0150] Equation (1) is an iteratively executed filter difference equation. The terms "x[n]" and "y[n]" are the sequence input and output, respectively. The quantities "a" and "b" are the dynamic switching coefficients of the filter. The quantity "n" is the data sequence number. The parameter "τ1" is the exponential rise time of the filter (in seconds). The parameter "τ2" is the exponential fall time of the filter (in seconds). Ψ is the asymmetry factor, which is defined as ψ=τ1 / τ2. The quantity "T" is the sample time period in seconds. The constant "e" is a natural number, 2.718...
[0151] Figure 3 A difference equation block diagram of a single component recursive filter 330 included in a filter bank according to an example is shown. The single component recursive filter 330 is configured to receive a filter input 331 and provide a filter output 332. The single component recursive filter 330 includes multiplier units 333, 334, a summing unit 335 and a recursive loop 336. The single component recursive filter 330 applies the quantities "a" and "b" as discussed with respect to equations (1) to (5) as first dynamically switchable coefficients 337 and second dynamically switchable coefficients 338. These dynamically switchable coefficients make the resulting filter behavior nonlinear.
[0152] To determine the worst case back EMF, additional processing may be applied. This may involve determining a filter maximum and a filter minimum, and scaling by an amount (factor) "k".
[0153] Time constant array
[0154] A plurality of linear filters, each with a corresponding time constant for modifying the modeled response, produces an array of time constants representing an array of time response possibilities. It is not known which filter response may be applied at any given moment, and therefore responses from all filters are considered.
[0155] In order to implement the model, it is necessary to determine the maximum and minimum time constants that may exist within the system being modeled. In an electromechanical system, the response time (the time to a predetermined percentage of terminal velocity) depends on two factors, the rotational mass of the moving parts (inertial load) and the resistance to motion within the system (resistive load). The resistance to motion in a system, or "system drag," is made up of the mechanical resistance and electrical resistance from the drive system.
[0156] If the moment of inertia is large, the resulting time constant will also be large. If the rotational resistance is large, the resulting time constant will be small.
[0157] When a motor drives a load, this added load may not necessarily significantly affect the time constant of the system. Therefore, both the resistance and inertial properties of the load need to be considered to determine a meaningful time constant.
[0158] For this reason, when determining the maximum and minimum time constants of the system, either actual measurements need to be made under a range of loads or, after making assumptions, measurements need to be made under no load and without the influence of the mathematically applied load.
[0159] If the added load is not rotationally "locked" to the drive, such as in the case of a fluid load, then the "added" moment of inertia is considered to be the best approximation to a single-order system. In this case, adjustments may be required to optimize actual performance.
[0160] For example, in a blender environment, a DC motor without a container load will have a high moment of inertia relative to the mechanical drag. The mechanical drag is intentionally kept low to increase the efficiency of the system. A fluid load added to the device will typically have a low contribution to the moment of inertia (to a first order approximation) but a high contribution to the rotational drag. Therefore, adding a fluid load is expected to reduce the time constant of the system rather than increase it.
[0161] In the example, when tested with no load, the average time constant of the motor was 42ms. Given a rise time of 31ms and a fall time of 51ms, the measured asymmetry factor was 0.60. The applied load modifies the average time constant from 42ms to a range of 14ms to 80ms. The value of 14ms is derived after taking into account the effect of the maximum permissible resistive load. These values form the basis for setting the rise and fall times within the detector. The values used for the detector do not have to be exactly equal to the values determined from actual measurements. Additional adjustments can be made to these values to optimize the performance of the detector. For example, a detector that was initially considered to be too sensitive to motor false detection may benefit from increasing the upper average time constant from 80ms to 100ms.
[0162] Asymmetry Factor
[0163] The asymmetry factor is the ratio of the rise time to the fall time. This is a property of the motor and therefore does not necessarily require a load to be applied when making the measurement. The measurement should be made with the intended drive source. Once the average factor is found for the motor, the value is bracketed to produce higher and lower values. The degree of bracketing will change the sensitivity of the system to detect disturbances when exposed to dynamic conditions. Actual adjustments may be required to produce the best model performance.
[0164] Using the above example of an asymmetry factor of 0.60 and an average range of 14 ms to 80 ms, an asymmetry factor of 0.6 may be included between 0.45 and 0.75. Both values would skew the modeled motor speed to a higher average in the presence of rapidly changing drive dynamics.
[0165] The above discussion illustrates an example of at least one discrete-time recursive filter including a plurality of linear filters each having a respective time constant for modifying a modeled response that defines the time it takes for a motor to reach a predefined percentage of a terminal speed under different load conditions for expected motor behavior.
[0166] At least one discrete-time recursive filter may include a nonlinear filter having longer and shorter time constants for modifying a modeled response, the longer and shorter time constants defining the time it takes for the motor to reach a predefined percentage of the terminal speed under a range of load conditions for expected motor behavior, and wherein the device 100 is configured to: compare each filter input of the sequence with the filter output of the previous iteration; and when the filter input and the filter output have the same sign: switch from the longer time constant to the shorter time constant when the magnitude of the filter input is lower than the magnitude of the filter output of the previous iteration, otherwise use the longer time constant, and only use the shorter time constant when the filter input and the filter output have opposite signs.
[0167] At least one discrete-time recursive filter may include a nonlinear filter having rise and fall time constants for modifying the modeled response, the rise and fall time constants defining the time taken for the motor to accelerate and decelerate to respective predefined percentages of the terminal speed under predefined load conditions for expected motor behavior, and wherein the device 100 is configured to: compare each filter input of the sequence with the filter output of the previous iteration; and when the filter input and the filter output have the same sign: switch from the rise time constant to the fall time constant when the amplitude of the filter input is lower than the amplitude of the filter output of the previous iteration, otherwise use the rise time constant; and when the filter input and the filter output have opposite signs, only use the fall time constant.
[0168] The rise and fall time constants can be the same or different.
[0169] The rise time constant and the fall time constant may each be in a range of about 5 ms to about 80 ms.
[0170] The predefined percentage of the terminal velocity for the load condition may be 100×(1-e -1 All rise and fall time constants can be factored (1-e -1 ) to measure.
[0171] At least one discrete-time recursive filter may include a plurality of nonlinear filters, each nonlinear filter having associated rise and fall time constants for modifying a modeled response, the associated rise and fall time constants defining the time taken for the motor to accelerate and decelerate to respective predefined percentages of a terminal speed under predefined load conditions for expected motor behavior, and wherein the device 100 is configured to: scale each filter output by a scaling factor; determine a scaled maximum filter output value and a scaled minimum filter output value from the scaled filter outputs of the plurality of nonlinear filters at each iteration of the sequence; and if the drive signal is positive: compare an actual response of the motor to the scaled minimum filter output value, and if the actual response of the motor is less than the scaled minimum filter output value, identify a motor error; or if the drive signal is negative: compare an actual response of the motor to the scaled maximum filter output value, and if the actual response of the motor is greater than the scaled maximum filter output value, identify a motor error.
[0172] Determining the maximum scaled filter output value and the minimum scaled filter output value may include: determining the filter output having the maximum positive output value or the minimum negative output value (whichever is higher) after scaling as the maximum filter output value; and determining the filter output having the minimum positive output value or the maximum negative output value (whichever is lower) after scaling as the minimum filter output value.
[0173] The ratio of each rise time constant to its corresponding fall time constant may be equal to the asymmetry factor.
[0174] Multiple nonlinear filters may include a first group and a second group, wherein the ratio of each rise time constant in the first group to its corresponding fall time constant is equal to a first asymmetry factor, and the ratio of each rise time constant in the second group to its corresponding fall time constant is equal to a second asymmetry factor, and the second asymmetry factor is smaller than the first asymmetry factor.
[0175] The first group and the second group may each include 4 to 8 non-linear filters.
[0176] Figure 4 Simulation data 440 for dynamic disturbance detection using discrete recursive nonlinear filters according to an example is shown. Specifically, simulation data 440 shows the response of two filter banks to a dynamic motor drive signal.
[0177] In this example, there are 8 filters in filter bank 1 and 8 filters in filter bank 2. For ease of illustration, the filter bank gain has been set to 0.95. This increases the visible area for interference detection. The starting condition is normalized drive to "1", where the filters are placed.
[0178] The iteration rate is set to 200 Hz and the average filter fall / rise time is set to 25 ms to 80 ms at equal intervals (rise time plus fall time divided by 2). The quantity ψ1 (for filter bank 1) is set to 1.25 and the quantity ψ2 (for filter bank 2) is set to 0.75. The x-axis indicates the number of iterations starting from 0. The output traces from filter bank 1 (m1 to m8) and indicated by reference numeral 441 are marked in red and the output traces from filter bank 2 (m9 to m16) and indicated by reference numeral 442 are marked in green.
[0179] Input drive 443, x[n], is colored solid orange. As shown, input drive 443 initially drops to a value of -0.5 (back drive) and returns to 1 in 8 iterations. This is repeated twice, and then the input drive drops to a set value of -0.75 for the remainder of the simulation.
[0180] The shaded area 444, PJAM, represents the region of jammer detection. If the back EMF of the motor is found to be within this region, the jammer flag will be set to "true" to indicate the presence of jammer.
[0181] Figure 4 Also shown in FIG. 4 is a filter bank minimum threshold Y_min[n] for detecting 445 and predetermined positive thresholds 446 and negative thresholds 447 : −DMin and +Dmin.
[0182] It can be seen that the red trace indicated by reference numeral 441 and having an asymmetry value ψ1 of 1.25 (higher) is deflected in the downward direction. This is because the rise time is longer than the fall time. It can be seen that the green trace indicated by reference numeral 442 and having an asymmetry value ψ1 of 0.75 (lower) is deflected in the upward direction. This is because the rise time is shorter than the fall time.
[0183] Over iterations 0 to 33, filter bank 1 - the trace indicated by reference numeral 441 - defines the detection boundary. Despite repeated reverse driving, the motor continues to travel in the forward direction. Over iterations 47 to 55, filter bank 2 - the trace indicated by reference numeral 442 - defines the detection boundary. This only occurs when the motor reverses in direction. This is caused by the slower fall time of filter bank 2. Over iterations 56 to 75, filter bank 1 again defines the detection boundary because its slower rise time dominates.
[0184] Dynamic interference detection using discrete recursive nonlinear filters
[0185] The basic theory follows that of dynamic disturbance detection using discrete recursive nonlinear filters.
[0186] A discrete recursive, single-pole, low-pass filter has an exponential rise in response to a step input. It is also characterized by a time constant "τ", which represents the time it takes for the filter output to achieve approximately 63% of its terminal value. This property makes the filter promising for modeling motor behavior.
[0187] The filters used for anti-jamming detection include two discrete recursive, single-pole, low-pass filters. Each filter can have unity gain in steady state and is characterized by a single quantity "τ", which is the filter rise time expressed in seconds. In response to a step input, each filter will produce an exponential output with a rise time "τ".
[0188] Both filters are given the same input, which is the input drive voltage to the motor. This allows each filter to be configured so that its corresponding output represents each extreme case of normal motor behavior. One filter characterizes the slowest rpm response expected from the motor under normal conditions. This will typically be an accelerating motor under a heavily loaded condition. The moment of inertia of the load will be "added" to the moment of inertia of the motor's rotating parts to give an expected upper maximum moment of inertia. The other filter characterizes the fastest rpm response expected from the motor under normal conditions. This will typically be a decelerating motor under an unloaded condition. The deceleration condition will be such that power from the motor is transferred back to the drive system in a braking mechanism.
[0189] The component filter outputs are combined to form a single filter output. The output from the filter, optionally after scaling, represents the worst case back EMF voltage below which a disturbance / overload condition is flagged.
[0190] The scaling factor "k" that can be applied to the filter output is chosen to represent a threshold for acceptable motor loading. A value of k = 0.5 means that the back EMF is half of the applied voltage at the detection threshold. This is the point of maximum power transfer in the simple motor model, and the efficiency is 50%. A suitable value for "k" in a practical system is about 0.35. At this value, the motor is only 35% efficient, and most of the input energy is converted into heat in the windings.
[0191] During motor operation, the current going to the motor is continuously monitored. Using a simple motor model, this current is used to calculate the theoretical back EMF of the motor. This value is directly compared to the scaled output from the filter, which represents the worst acceptable back EMF. If the actual back EMF is less than the worst case back EMF as determined by the filter output, a disturbance / overload condition is flagged.
[0192] Figure 5 Another example system 506 generally configured to implement the above-described processes is shown in schematic form.
[0193] System 506 and relative to Figure 2 The systems described are comparable and share similar components, such as drive logic and interference detection modules. Alternative features include: nonlinear filter 552, which is a discrete nonlinear filter that generates an unscaled worst-case back EMF threshold; and a scaling factor 554K for the nonlinear filter. Therefore, it should be understood that system 506 can also be implemented as a combination of software and hardware, so that theoretically independent features are implemented within a single module or program.
[0194] A nonlinear filter consists of two linear "component" filters. The system of equations for a single linear recursive filter is given by:
[0195] y[n] = a*x[n] + b*y[n-1] (6)
[0196] a = 1 – e -1 / d (7)
[0197] b = e -1 / d (8)
[0198] τ = d*T (9)
[0199] Equation 6 is a difference equation. Equations 7 and 8 determine the scaling quantities "a" and "b". The filter in this example has a low-pass gain of 1 by design. The quantity "τ" is the exponential rise time of the filter in seconds. The quantity "d" is the exponential rise time expressed as a sample period. The quantity "T" is the sample period in seconds. The constant "e" is a natural number, 2.718...
[0200] The quantity "x[n]" is the filter sequence input, where "n" represents the sequence number. Similarly, the quantity "y[n]" is the filter sequence output, where "n" represents the sequence number. The quantity "y[n-1]" is the filter output delayed by one iteration cycle. The iteration cycle delay is equal to "T" seconds.
[0201] Figure 6 FIG. 6 is a block diagram of a difference equation of a single linear recursive filter 630 according to an example. The design of the single linear recursive filter 630 is similar to that of the reference Figure 3 The design of a single component linear recursive filter is described in detail below. However, the difference is that the single linear recursive filter 630 uses the quantities "a" and "b" as discussed with respect to equations (6) to (9) as the first coefficient 637 and the second coefficient 638. These quantities are time-invariant, thereby ensuring that the behavior of the filter is linear.
[0202] A discrete recursive nonlinear filter is formed by combining the outputs of two such filters via conditional logic to form a single output. The conditional logic will select either the first filter output or the second filter output as the primary output, depending on their signed or absolute values. This single output is used as feedback to both filters. When the coefficients "a" and "b" of the first filter are different from those of the second filter, the resulting filter behavior is nonlinear.
[0203] If only a single nonlinear filter is used to calculate the worst-case back EMF, the conditional logic will compare the absolute output values of each component linear filter. Using this approach, one component filter is set to the rise time and the other is set to the fall time so that the rise time is longer than the fall time.
[0204] When the coefficients are set appropriately, the scaled output of the filter will represent the lowest acceptable back EMF (and therefore the lowest acceptable rpm) for the corresponding point in time for all reasonably expected loads.
[0205] Figures 7a to 7c FIG. 1 shows a difference equation block diagram of an example nonlinear recursive filter constructed based on the above discussion. Figure 7a In the embodiment, the nonlinear recursive filter 730 includes a first component linear filter 730 a and a second component linear filter 730 b and a conditional feedback module 739 .
[0206] In the filter design shown in Figure 7, “x[n]” is the filter input and “y s [n]" is the slow filter output, "y f [n]" is the fast filter output, and "y u [n]" is the uniform (nonlinear) filter output, and "a s " is the slow filter "a" constant, "b s ” is the slow filter “b” constant, “a f " is the fast filter "a" constant, "b f ” is the fast filter “b” constant. The remaining components are as relative to Figure 3 and Figure 6 described.
[0207] In this example, the filter iteration rate is 100 Hz. The quantity "T" - the time between iterations - will then be 10 ms. For a slow filter, "d" is set to 10, and "τ s ” (slow time constant) will be 10 x 10 ms = 100 ms. Therefore, it will take 100 ms to get 63.2% of the filter terminal value. Any transition that takes longer will be considered an anomaly. For the fast filter, “d” is set to 1, and “τf ” (fast time constant) will be 1 x 10ms = 10ms. Therefore, it will take 10ms to obtain 63.2% of the filter terminal value. Any transition that takes less time will be considered an anomaly. Alternative values for the iteration rate and “d” for each filter can be selected as appropriate.
[0208] Figure 7b and Figure 7c 1 shows a difference equation block diagram of additional example nonlinear recursive filters, specifically a slow rise nonlinear recursive filter (i.e., one that generates a rise time slower than the fall time) and a fast rise nonlinear recursive filter (i.e., one that generates a rise time faster than the fall time). Figure 3 , Figure 6 and Figure 7a Implemented as described, attention is drawn to the corresponding conditional feedback module 739.
[0209] Combining a slow-rise nonlinear recursive filter and a fast-rise nonlinear recursive filter allows for accepting positive and negative inputs representing forward and reverse motor drive, respectively. Figure 7b A slow-rise nonlinear recursive filter is shown in , and for each iterative calculation, the linear component filter with the lowest, signed value output (smallest positive value or largest negative value) is selected as the main filter output.
[0210] For fast-rising nonlinear recursive filters, and for each iterative calculation, the linear component filter with the highest, signed value output (largest positive or smallest negative) is selected as the main filter output. The main filter output is used as feedback for both component filters, using common condition feedback to make the resulting filter nonlinear.
[0211] Figure 7d Shows Figure 7b and Figure 7c Example filter scaling equation block diagram 740 of example nonlinear recursive filters shown in . In the example, these nonlinear recursive filters have unity gain, and either a "K_low" or a "K_high" gain is applied to the output at each iteration.
[0212] Figure 7e to Figure 7f Shown Figure 7b and Figure 7c An example of the behavior of a nonlinear recursive filter is shown in data 741. More specifically, Figure 7e The data shown in represent the disturbance detector internal state response to a step input, and Figure 7f The data shown in represents the internal state response of the disturbance detector to a ramping input.
[0213] The orange line 742 is the motor drive x[n]. The blue solid line 743 and the green solid line 744 represent two nonlinear filters: y1uk[n] or Figure 7b The scaled output of the slow-rise nonlinear recursive filter shown in , and y2uk[n] or Figure 7c The scaled output of the fast rise nonlinear recursive filter shown in .
[0214] In both data sets, the value of "T" is 0.01 seconds, K_low = 0.35, K_high = 0.95, "τ1s" = "τ2s" = 0.3, "τ1f" = "τ2f" = 0.05. The red dashed line 745 represents the motor response, where "K" = 0.5 and "τ" = 0.15 in these examples.
[0215] The shaded area 746 represents the disturbance detection region. If the motor back EMF is calculated to be within this region at any iteration, the disturbance / overload flag is set as discussed below.
[0216] The above discussion illustrates an example of at least one discrete-time recursive filter, which includes a nonlinear filter, which includes a first and a second component linear filter, each of which has a corresponding time constant for modifying a modeled response, which time constant defines the time it takes for the motor to reach a predefined percentage of the terminal speed from the longest to the shortest under all expected motor load conditions, respectively, and wherein the device 100 is configured to: compare each filter input of the sequence with the filter output of the previous iteration; and when the filter input is lower than the filter output of the previous iteration, use the second component linear filter, otherwise use the first component linear filter.
[0217] When the filter input is lower than the filter output of the previous iteration, the second component linear filter is used, otherwise the first component linear filter is used, again regardless of the sign or polarity of the input.
[0218] When the filter input and the filter output have the same sign, the device can be configured to use the second component linear filter when the amplitude of the filter input is lower than the amplitude of the filter output of the previous iteration, and otherwise use the first component linear filter, and when the filter input and the filter output have opposite signs, the device can be configured to use only the second component linear filter.
[0219] At least one discrete-time recursive filter includes a nonlinear filter, which may include a first and a second component linear filter, each of the first and second component linear filters having a corresponding time constant for modifying the modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed from longest to shortest under all expected motor load conditions, respectively, and wherein the device 100 is configured to: compare a current filter output of the first component linear filter with a current filter output of the second component linear filter; and use the lower filter output as feedback for both the first and second component linear filters to modify the modeled response.
[0220] At least one discrete-time recursive filter may include an additional nonlinear filter, the additional nonlinear filter including first and second additional component linear filters, each of the first and second additional component linear filters having a corresponding time constant for correcting the modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed from longest to shortest under all expected motor load conditions, respectively, and wherein the device 100 is configured to: compare the current filter output of the first additional component linear filter with the current filter output of the second additional component linear filter; and use the higher filter output as feedback for both the first and second additional component linear filters to correct the modeled response.
[0221] The device may be configured to select a lower filter output or a higher filter output as appropriate to compare with the actual response of the motor.
[0222] The device can be configured to: scale each filter output by a scaling factor; determine a scaled maximum filter output value and a scaled minimum filter output value from the scaled filter outputs at each iteration of the sequence; and if the drive signal is positive: compare the actual response of the motor with the scaled minimum filter output value, and if the actual response of the motor is less than the scaled minimum filter output value, identify a motor error; or if the drive signal is negative: compare the actual response of the motor with the scaled maximum filter output value, and if the actual response of the motor is greater than the scaled maximum filter output value, identify a motor error.
[0223] Lower may mean a lower magnitude, and higher may mean a higher magnitude.
[0224] The time constant may cover the range of expected motor time responses at maximum resistive load through an expected set of inertial load conditions.
[0225] The apparatus 100 may be configured to scale a filter output of the at least one discrete-time recursive filter by a scaling factor that represents a steady-state load of the motor before comparing the modeled response to an actual response of the motor to the drive signal.
[0226] The steady state load of the motor can be defined as the ratio of the calculated back EMF to the steady state of the drive signal, or the ratio of the steady state motor deceleration speed to the maximum speed of the motor. The output of each filter can be scaled by the same scaling factor. The scaling factor can be in the range of 0.01 to 1, preferably in the range of 0.2 to 0.5.
[0227] At a conceptual level, the above example is a calculation that determines the range of reasonably expected behavior that forms a motor. The input to this calculation is "only" the input to the motor in terms of voltage. Therefore, the calculation has no idea what the motor is actually doing.
[0228] To further illustrate, an initially stationary motor receives a voltage to start turning. The exact voltage is unknown to the calculation because it depends on the operating environment (e.g., the program selected by the user). Nevertheless, the voltage value is processed as input to the calculation.
[0229] In this example, the motor is running from standstill. Assuming "full" voltage is applied to the motor, if the motor is running with no load, it will accelerate very quickly. On the other hand, if the motor is running with a maximum inertia load, it will accelerate slowly. Here, the load refers to the moment of inertia, not friction.
[0230] Assuming further that a mass is attached to, for example, the blades of a motor, the mass will have an associated rotating mass (the exact relationship depends on the shape of the mass). Due to the larger moment of inertia, it will take longer to spin up a high rotating mass to a high speed than a low rotating mass, especially when the motor has a limited power supply (e.g., a battery). The speed ramp-up is generally exponential, and the time taken is called the mechanical time constant, or the time it takes for the motor to spin up to approximately 63% of its terminal speed.
[0231] Large masses generally correspond to large mechanical time constants, while small masses generally correspond to low mechanical time constants. These time constants can be determined by measurements on a specific motor system subject to a range of load conditions. In an example, these time constants may be 1 ms for no-load or fast mechanical time constants, and 20 ms for slow or large mechanical time constants. That is, for no-load conditions, it only takes 1 / 1000 of a second to reach about 63% of the terminal speed.
[0232] Continuing with this example, starting from zero speed and applying full power, the actual speed of the motor is expected to be the terminal speed if read after 1 second. If the actual speed of the motor is read after 1 ms, it may be between almost zero (for high mass) and about 63% of the terminal speed (for low mass).
[0233] Crucially, it is impossible to know what the mass is, and therefore it is necessary to consider the worst case motor response. The worst case response is the response that results in the lowest motor RPM. In this particular example, a single non-linear filter is used, with a worst case 20ms time constant, as this is the only relevant quantity (in this scenario) if we wish to use the resulting information to determine if a stall condition exists.
[0234] That is, as the motor accelerates, a higher time constant (e.g., 20ms) is used to determine the motor error rather than a lower time constant (e.g., 1ms). This is how time constants are used in nonlinear filters.
[0235] If at a later point in time the motor receives a drive voltage that is less than the voltage initially applied, the calculations need to be adjusted accordingly in order to produce useful information. For example, this new voltage may cause the actual motor to begin to slow down.
[0236] At a later point in time, the calculation "knows" the worst-case value of the modeled motor speed (but not the actual speed). If the new drive voltage value is still above the equivalent modeled speed (the filter output voltage before any scaling), the modeled motor will continue to accelerate. The relevant time constant here is 20ms, so this will not change.
[0237] If the new drive voltage value is below the modeled speed (filter output voltage before any scaling), the modeled motor will start to decelerate. Without knowing the mass load that affects the speed change, the worst case is taken to mean the lowest absolute speed, and the worst case time constant used here is 1ms. Therefore, the switch between fast and slow time constants depends only on whether the filter input is below or above the output (before scaling).
[0238] The use of two nonlinear filters increases the scope of the method to more accurately account for reverse speeds. In this case, the second nonlinear filter has switched the rise and fall times to generate worst-case values at negative speeds. This is advantageous when the motor undergoes reverse speed start-up, such as in anti-disturbance maneuvers.
[0239] The use of more than two non-linear filters can improve the accuracy of determining the worst case speed. The higher the accuracy, the faster the disturbance / overload condition can be determined while keeping the risk of false errors low.
[0240] Comparative Data
[0241] Figure 8 Comparative data 840 from an example linear filter array 842 and example nonlinear filters 848, 849 are shown. The example linear filter array 842 includes eight linear filters; the example nonlinear filters 848, 849 are two nonlinear filters including first and second component linear filters. The nonlinear filters are nonlinear because their rise time is not the same as their fall time. In this example, the rise and fall times of the nonlinear filters are set to the lowest and highest values in the linear filter bank.
[0242] The orange line 843 is the motor drive x[n] (which goes to zero and is not shown). The blue solid line 848 and the green solid line 849 represent the two nonlinear filters y1uk[n] and y2uk[n]. The blue dotted line 850 represents the fastest responding linear filter M1, the green dotted line 851 represents the slowest responding linear filter M8, and the red dotted line - that is, the trace between the blue dotted line 850M1 and the green dotted line 851M8 - represents all the linear filter responses in between.
[0243] The shaded area 844 is the "stall region" where evasive action is required. It is separated from the lower envelope of the linear "filter bank" by padding, discussed below.
[0244] If the shaded areas 844 were governed by nonlinear filters, they would reside below the solid blue line 848, yluk[n]. This would result in a shaded area that is significantly smaller than the area shown. The smaller shaded area means that the jammer detection system will have a delay in determining the jammer situation. If the jammer detection system is further configured to perform back-to-back jammer rejection maneuvers, the repetition rate will be low because the system will indicate that the jammer is not present for a longer period of time.
[0245] In contrast, with eight linear filters, the repetition rate for performing back-to-back anti-disturbance maneuvers is higher because the disturbance condition can be detected earlier (ie, the "stall region" is larger).
[0246] The two non-linear filter system performs two filter executions per cycle. The eight linear filter system performs eight filter executions per cycle and therefore the computational load is four times as high.
[0247] The two-nonlinear filter system tends to produce slightly worse results than the worst case. The eight-linear filter system described above tends to produce slightly better results than the worst case. Therefore, the latter requires "filler" so there is a gap between the "stall region" and the inner envelope of the filter bank. Without this gap, the system may flag a stall when none exists.
[0248] Figures 9a to 9d Additional comparative data 940a to 940d for the two systems are shown. Figure 8 Likewise, the slowest response is 5x the fastest response, and the time scale is arbitrary.
[0249] All filter outputs converge to a value of 0.95 for the motor drive 943, x[n]. The value of 0.95 is the filter gain value, which is used here to aid in the interpretation of the data. When friction is properly accounted for (including heavy loads), this value will be around 0.35, meaning that the motor needs to slow down to at least 35% of its no-resistance speed before it is considered to be in a disturbance state.
[0250] Figure 9a Simulated data 940a for a step input from a stationary start to maximum is shown. For the step input to maximum, the two systems are essentially identical. The blue dotted line (M0, which is below the blue solid line 948, y1uk[n],) and the blue solid line 948, y1uk[n], represent the worst case motor speed. The worst case motor speed is considered normal behavior, and conditions below this speed are not.
[0251] When the modeled motor speed is very low, the disturbance detection system is essentially turned off. This is shown by the left truncation of the shaded area 944. This is preferred because at low modeled speeds the accuracy of the system is low.
[0252] At startup, the motor speed is allowed to be slower without triggering a disturbance state.
[0253] Figure 9b Simulated data 940b is shown for a step input from maximum speed to zero (thus simulated heavy braking). For the step input to zero, the two systems are again substantially identical, but this time the fast response rather than the slow response dominates. At zero input, the shaded area 944 does not appear below the solid blue line 948, yluk[n]. When the input is below a predetermined absolute threshold, the detection system shuts down.
[0254] Fig.9c Simulated data 940c is shown for a momentary step input from maximum speed to zero (thus simulating a temporary heavy brake). Such motion may be selected to agitate the contents in a stirring program to achieve more efficient stirring. In order to avoid excessive stress on the system, a ramped drive signal may actually be preferred.
[0255] In this example, once power is restored, the two systems (linear and nonlinear) diverge. The nonlinear system is too pessimistic about the motor speed and produces a very low solid blue line 948, y1uk[n]. Such a system could potentially "allow" low speeds and treat them as normal, rather than flagging a disturbance in an ideal situation.
[0256] In the linear system 942, when the motor drive is restored, the rapid response 950, M0, dominates (this trace has the lowest value). Over time, the next fastest dominates, followed by the next, and then the next, all the way to the slowest response 851, M8.
[0257] Essentially, the system considers all possible loads from zero to maximum. The lowest value output in the "group" dominates because it is the lowest value that is compared to the actual motor speed. Fillers can be included in this system to avoid false triggering.
[0258] The essential difference between the two systems is that the nonlinear system effectively switches the modeled load from low inertia to high inertia when it switches from a fast fall time to a slow rise time. This may not always reflect the actual behavior and can delay disturbance detection. In contrast, each filter in a linear array does not change its time constant and can therefore model a load that maintains its inertial properties as the direction changes. This modeling is closer to reality, and therefore the linear array will produce more representative results. However, real-world nonlinear characteristics (such as a motor's ability to accelerate significantly different from its ability to decelerate, or dynamically changing load characteristics) may make a linear array too sensitive in some practical applications.
[0259] Figure 9d Simulated data 940d is shown for a transient step input from maximum speed to zero (thus a simulated temporary heavy brake) with a load value close to 0.35. Fig.9c This data is more representative of the real system than the data shown in .
[0260] In some applications, the motor is not loaded more than 0.5, which represents a 50% reduction. This is a special point called the impedance matching point. At this point, the amount of power going into the load is the same as the amount of power dissipated in the motor, resulting in a 50% motor efficiency. Exceeding this point (as an average) is undesirable because the motor will quickly heat up and run at a low efficiency.
[0261] One or more of the following features may apply to any of the examples provided above.
[0262] At least one discrete time recursive filter may have unity gain. Unity gain may define a filter whose output is equal to its input under steady state conditions.
[0263] Motor errors can indicate interference or jamming of the motor.
[0264] The apparatus 100 may be configured to compare the drive signal to a first threshold defining a minimum motor drive signal and compare a modeled response of the motor to an actual response of the motor to identify a motor error only if the drive signal exceeds the magnitude of the first threshold.
[0265] The device 100 can be configured to: determine a second threshold value that defines a minimum modeled motor response to the drive signal based on the drive signal; compare the modeled response of the motor to the second threshold value; and if the drive signal is positive: if the modeled response is greater than the second threshold value, compare the modeled response of the motor with the actual response of the motor to identify a motor error; or if the drive signal is negative: if the modeled response is lower than the second threshold value, compare the modeled response of the motor with the actual response of the motor to identify a motor error.
[0266] The device 100 can be configured to: determine a second threshold that defines a minimum modeled motor response to the drive signal based on the drive signal; compare the modeled response of the motor with the second threshold; and compare the modeled response of the motor with an actual response of the motor to identify a motor error only if the magnitude of the modeled response exceeds the second threshold.
[0267] The modeled response of the motor may be compared to the actual response of the motor only if: if the drive signal is positive, the minimum output from the one or more filters is above a second threshold, and if the drive signal is negative, the maximum output from the one or more filters is below the second threshold, otherwise, no comparison is made.
[0268] The second threshold may be the drive signal scaled by a factor smaller than 0.5, preferably in the range of 0.05 to 0.2.
[0269] The actual response of the motor to the drive signal may include the back EMF generated by the motor. The device 100 may be configured to: monitor the speed of the motor or the current absorbed by the motor; and calculate the back EMF based on the monitored speed of the motor or the current absorbed by the motor as the actual response of the motor.
[0270] The device 100 may be one or more of the following: a kitchen appliance, a blender, a portable blender, a mixer, a juicer, and a module for one or more thereof. At least one of the motor and the one or more filters may form part of the device 100 .
[0271] Example procedures and methods
[0272] Once a disturbance condition is flagged, corrective measures may be taken through a disturbance correction process. The corrective measures take the form of motor manipulations designed to eliminate the disturbance. These measures may consist of repeated forward and reverse drive operations that may increase in magnitude over successive cycles.
[0273] A disturbance correction method may include: detecting disturbance; stopping the motor; applying reverse drive at reduced power for a short period of time; stopping the motor; applying forward drive at full power; testing the disturbance; if disturbance is present at a high reverse power level, repeating the method up to N times; and, if no disturbance is detected, restoring the operating power of the motor.
[0274] The interference correction process can continuously monitor the interference detection "flag" and stop the correction maneuver once the signal notifies that there is no interference. Once the correction maneuver has stopped, the previous operating function is restored. This is usually a set of maneuvers to perform a specific function.
[0275] Fig.10 A flow chart for a pre-arranged interference detection process 1060 according to an example is shown. The steps of the pre-arranged interference detection process 1060 are: start 1061; check 1062 whether the motor is turned on; if the motor is turned on, read 1063 the motor current and voltage; calculate 1064 the back EMF of the motor, EMF m ; Execute 1065 filter difference equation; Scale 1066 filter result EMF f ; and determining the back EMF (EMF m ) is less than the scaled filter result EMF f If the calculated back EMF (EMF m ) is less than the scaled filter result EMF f , then set the disturbance condition flag 1028; otherwise, clear the disturbance condition flag 1069. After the disturbance condition flag has been set or cleared, the process is repeated. The process is also repeated if the "motor on" check is false.
[0276] The filter difference equation is executed every "T" seconds. The disturbance condition flag is initially cleared by an initialization routine executed at the beginning of each user program. Here, the user program is the programmed motor control, where each program is selected and started by the user.
[0277] Figure 11a to Figure 11bFIG. 0 shows a flowchart of a pre-arranged interference detection process 1160 according to another example. The steps of the pre-arranged interference detection process 1160 are: start 1161; check 1162 whether the motor is on; if the motor is on, clear 1170 the interference status flag; check 1171 a second time whether the motor is on; if the motor is on, read 1163 the motor current and voltage; calculate 1164 the back EMF of the motor, EMF m ; and transfer 1165 the voltage information to a filter bank and execute all filter difference equations.
[0278] The pre-arranged interference detection process 1160 further includes determining 1172 the maximum value (y[n]max) and the minimum value (y[n]min) of the filter bank output; and setting 1168 the interference status flag if: x[n]>DMin and y[n]min>Y_Min[n] (step 1173) and EMF m <y[n]min (step 1174), or if x[n] < -DMin and y[n]max > -Y_Min[n] (step 1175) and EMF m >y[n]max (step 1176). Otherwise, the process clears 1169 the interference status flag.
[0279] After waiting 1176 for a period of time "T", after the interference status flag has been set or cleared, the process is repeated. If any of the "motor on" checks is false, the process is also repeated.
[0280] Fig.12 FIG. 16 shows a flowchart of an interference correction control process 1280 according to an example. The steps of the interference correction control process 1280 are: start 1281; check 1282 whether the manipulation flag has been set; check 1283 whether the interference status flag has been set; determine 1284 whether the manipulation time is higher than a threshold time T MAX ; if the manipulation time is higher than the threshold time T MAX , then set 1285 the correction count "N" to "1", otherwise increment 1286 the correction count "N"; determine 1287 whether the correction count "N" is higher than a threshold count N MAX ; if the correction count "N" is higher than the threshold count N MAX , then close 1288 the motor program loop, otherwise execute 1289 the interference correction manipulation process for the value "N". After the interference correction manipulation process for the value "N" has been executed, the process is repeated, and if the manipulation flag is set or the interference status flag has been set, it also includes a loop.
[0281] The maneuver flag indicates that a set of motor maneuvers is currently active. The maneuver time is the time between the end of the last set of motor maneuvers and the setting of the interference condition flag. Threshold time T MAX is the maximum value of the manipulation time, beyond which the subsequent manipulation will be regarded as a new manipulation, so that the value of "N" (correction count) is set to "1".
[0282] The quantity "N" is the number of attempts to eliminate the disturbance. It is always set to "0" at the beginning of the motor control program selected by the user. The threshold count N MAX is the maximum number of correction attempts allowed.
[0283] Fig.13 A flow chart for an interference correction control process 1380 according to another example is shown. The steps of the interference correction control process 1380 are: start 1381; check 1390 whether the motor is turned on; check 1383 whether the interference condition flag has been set; set 1385 the correction count "N" to "0"; increase 1386 the correction count "N"; determine 1387 whether the correction count "N" is higher than the threshold count N MAX ; If the correction count "N" is higher than the threshold count N MAX , then close 1388 the motor program loop, otherwise suspend 1391 the user control program; execute 1389 the interference correction maneuver process for value "N"; and check 1392 again whether the interference condition flag has been set. If the interference condition flag remains set, the process repeats at setting 1386. The process repeats when the motor program loop is closed, or if the "motor on" or first "interference condition flag" check is false.
[0284] Figure 14a to Figure 14b A flow chart for an interference correction maneuvering process 1400 according to an example is shown. The steps of the interference correction maneuvering process 1400 are: start 1401; set 1401 the maneuvering flag and set "P" to "0"; pause 1403 the user program control and save the motor drive setting "VP"; ramp 1404 the motor voltage to "V(N,P)" at a rate "R(N,P)"; check 1405 whether the target voltage has been reached; if the target voltage has been reached, increase 1406 the maneuvering flag "P"; determine 1407 whether the maneuvering flag "P" is greater than the maximum maneuvering flag "P MAX "; If the control mark "P" is greater than the maximum control mark "P MAX ”, ramp 1408 the motor voltage to “VP” at rate “R”; determine 1409 whether the target voltage has been reached; if the target voltage has been reached, resume 1410 user program control; clear 1411 the manipulation flag and set the manipulation time to “0”; and complete 1412. If the first target voltage check is false or P <P Max , then repeat the process.
[0285] The quantity "N" is a count of the number of manipulation sequences or attempts to eliminate interference. Each value represents a "set" of manipulations. The maximum value (i.e., the number of acceptable correction attempts) is N. MAX The quantity "P" is the number of maneuvers. Each value represents a specific drive voltage and ramp rate for the motor. The maximum value is P MAX , and can be selected from a range of 2 to 4.
[0286] The quantity "VP" is the drive voltage of the motor at the point where the anti-disturbance maneuver begins. The value is restored at the end of the maneuver sequence. The quantity V(N,P) is a 2-dimensional array of values of size N x P. Each value represents the drive voltage of the motor for the maneuver sequence. For each group "N", the value is set independently.
[0287] The quantity R(N,P) is a 2-dimensional array of values of size N x P. Each value represents the motor drive voltage ramp rate used to manipulate the sequence. Each value has units of voltage per unit time. For each group "N", the values are set independently.
[0288] The quantity "Target Voltage Reached" is a Boolean (yes / no) check that indicates whether the drive process has reached its target voltage. The quantity "R" is a predetermined voltage ramp rate used to return the voltage drive of the motor to its original value (i.e., the value just before the anti-disturbance maneuver began).
[0289] A "user program" is a pre-selected and functional set of manipulations that are selected by the user to perform a specific task.
[0290] Fig.15 A flow chart for an interference correction maneuvering process 1500 according to another example is shown. The steps of the interference correction maneuvering process 1500 are: start 1501; set 1502 "P" to '0'; ramp 1504 the motor voltage to "V(N,P)" at a rate "R(N,P)"; check 1505 whether the target voltage has been reached; if the target voltage has been reached, increase 1506 "P"; determine 1507 whether the maneuvering flag "P" is greater than the maximum maneuvering flag "P MAX "; If the control mark "P" is greater than the maximum control mark "P MAX ", then complete 1512. If the target voltage check is false or if P <P Max , then repeat the process.
[0291] Fig.16A flow chart of a method 1600 for identifying a motor error is shown, which can be implemented according to the prearranged interference detection process described above. The method 1600 includes modeling 1601 a response of a motor to a drive signal using one or more filters, the one or more filters being configured to define a range of expected motor behavior associated with the drive signal; comparing 1602 the modeled response to the actual response of the motor to the drive signal; and identifying 1603 a motor error if the actual response of the motor is outside the range of expected motor behavior defined by the modeled response.
[0292] The method may be repeated at an iteration rate, wherein the iteration rate is in the range of 100 Hz to 1 kHz, preferably 100 Hz to 500 Hz.
[0293] The interference correction control process and the interference correction manipulation process illustrate examples of identification of motor errors, and the device 100 is configured to perform a calibration procedure, which includes: adjusting a drive signal; modeling the response of the motor to the adjusted drive signal; comparing the modeled response with the actual response of the motor to the adjusted drive signal; and if the actual response of the motor is within the range of expected motor behavior defined by the modeled response, determining that the motor error has been corrected, otherwise repeating the calibration procedure.
[0294] The calibration procedure may further include: suspending a user program for the motor before adjusting the drive signal; and resuming the user program for the motor when it is determined that the motor error has been corrected.
[0295] The device 100 may be configured to provide an indication of a motor error timeout if the actual response of the motor is outside of a range of expected motor behavior after a predefined time or number of drive signal adjustments.
[0296] The device 100 may be configured to adjust one or more of the amplitude, rate of change, and polarity of the drive signal with each iteration of the drive signal adjustment.
[0297] Any of the example procedures and methods may be combined with one or more additional features as described above.
[0298] The applicant hereby discloses individually each individual feature described herein and any combination of two or more such features to the extent that such feature or combination can be implemented according to the common general knowledge of a person skilled in the art based on the specification as a whole, regardless of whether such feature or combination of features solves any problem disclosed herein, and is not a limitation on the scope of the claims. The applicant indicates that the disclosed aspects / embodiments may consist of any such individual feature or combination of features. In view of the foregoing description, it will be apparent to a person skilled in the art that various modifications may be made within the scope of the present disclosure.
Claims
1. A device comprising: at least one processor; as well as at least one memory containing computer program code, The at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus to: modeling a response of the motor to the drive signal using one or more filters configured to define a range of expected motor behavior associated with the drive signal; comparing the modeled response to an actual response of the motor to the drive signal; as well as If the actual response of the motor is outside the range of the expected motor behavior defined by the modeled response, a motor fault is identified.
2. An apparatus according to claim 1, wherein the one or more filters include at least one discrete-time recursive filter, the at least one discrete-time recursive filter being configured to receive a sequence of filter inputs indicative of drive signals forming part of a drive operation and to generate a plurality of corresponding filter outputs defining associated modeled responses of the motor, and wherein the apparatus is configured to iteratively modify the modeled response using each filter input of the sequence using the filter output of a previous iteration as feedback.
3. The apparatus of claim 2, wherein the at least one discrete-time recursive filter comprises a plurality of linear filters, each of the plurality of linear filters having a respective time constant for modifying the modeled response, the respective time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed under different load conditions for expected motor behavior.
4. The apparatus of claim 2, wherein the at least one discrete time recursive filter comprises a non-linear filter having longer and shorter time constants for modifying the modeled response, the longer and shorter time constants defining the time taken for the motor to reach a predefined percentage of the terminal speed under a range of load conditions for expected motor behavior, and wherein the apparatus is configured to: comparing each filter input of the sequence with the filter output of the previous iteration; and When the filter input and the filter output have the same sign: when the amplitude of the filter input is lower than the amplitude of the filter output of the previous iteration, switch from the longer time constant to the shorter time constant, otherwise use the longer time constant, and when the filter input and the filter output have opposite signs, only use the shorter time constant.
5. The apparatus of claim 2, wherein the at least one discrete-time recursive filter comprises a nonlinear filter having rise and fall time constants for modifying the modeled response, the rise and fall time constants defining the time taken for the motor to accelerate and decelerate to respective predefined percentages of terminal speed under predefined load conditions for expected motor behavior, and wherein the apparatus is configured to: comparing each filter input of the sequence with the filter output of the previous iteration; and When the filter input and the filter output have the same sign: when the amplitude of the filter input is lower than the amplitude of the filter output of the previous iteration, switch from the rise time constant to the fall time constant, otherwise use the rise time constant; and when the filter input and the filter output have opposite signs, only use the fall time constant.
6. The apparatus of claim 5, wherein the at least one discrete-time recursive filter comprises a plurality of non-linear filters, each non-linear filter having associated rise and fall time constants for modifying the modeled response, the associated rise and fall time constants defining the time taken for the motor to accelerate and decelerate to respective predefined percentages of terminal speed under predefined load conditions for expected motor behavior, and wherein the apparatus is configured to: Scale each filter output by a scaling factor; determining a scaled maximum filter output value and a scaled minimum filter output value from the scaled filter outputs of the plurality of non-linear filters at each iteration of the sequence; as well as If the drive signal is positive: comparing the actual response of the motor to the scaled minimum filter output value, and identifying a motor error if the actual response of the motor is less than the scaled minimum filter output value; or If the drive signal is negative: comparing the actual response of the motor to the scaled maximum filter output value, and If the actual response of the motor is greater than the scaled maximum filter output value, a motor error is identified.
7. The device according to claim 6, wherein the plurality of nonlinear filters comprise a first group and a second group, the ratio of each rise time constant in the first group to its corresponding fall time constant being equal to a first asymmetry factor, and the ratio of each rise time constant in the second group to its corresponding fall time constant being equal to a second asymmetry factor, the second asymmetry factor being smaller than the first asymmetry factor.
8. The apparatus of claim 7, wherein the first group and the second group each include 4 to 8 nonlinear filters.
9. The apparatus of claim 6, wherein the ratio of each rise time constant to its corresponding fall time constant is equal to an asymmetry factor.
10. The apparatus of claim 2, wherein the at least one discrete time recursive filter comprises a nonlinear filter, the nonlinear filter comprising first and second component linear filters, each of the first and second component linear filters having a respective time constant for modifying the modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed, respectively, from longest to shortest, under all expected motor load conditions, and wherein the apparatus is configured to: comparing each filter input of the sequence with the filter output of the previous iteration; and When the filter input is lower than the filter output of the previous iteration, the second component linear filter is used, otherwise the first component linear filter is used.
11. The apparatus of claim 2, wherein the at least one discrete time recursive filter comprises a nonlinear filter, the nonlinear filter comprising first and second component linear filters, each of the first and second component linear filters having a respective time constant for modifying the modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed, respectively, from longest to shortest, under all expected motor load conditions, and wherein the apparatus is configured to: comparing a current filter output of the first component linear filter to a current filter output of the second component linear filter; and The modeled response is modified using the lower filter output as feedback to both the first and second component linear filters.
12. The apparatus of claim 11 , wherein the at least one discrete time recursive filter comprises a further non-linear filter, the further non-linear filter comprising first and second further component linear filters, each of the first and second further component linear filters having a respective time constant for modifying the modeled response, the time constant defining the time taken for the motor to reach a predefined percentage of the terminal speed from longest to shortest respectively under all expected motor load conditions, and wherein the apparatus is configured to: comparing a current filter output of the first further component linear filter with a current filter output of the second further component linear filter; and The modelled response is modified using the higher filter output as feedback to both the first further component linear filter and the second further component linear filter.
13. An apparatus according to any one of claims 2 to 5 and 10 to 12, wherein the apparatus is configured to scale the filter output of the at least one discrete-time recursive filter by a scaling factor before comparing the modeled response with the actual response of the motor to the drive signal, the scaling factor representing the steady-state load of the motor.
14. The apparatus according to any one of claims 2 to 13, wherein the at least one discrete-time recursive filter has unity gain.
15. The apparatus of claim 1, wherein the one or more filters include at least one non-recursive filter.
16. A device according to any preceding claim, wherein the device is configured to: comparing the drive signal to a first threshold value defining a minimum motor drive signal; and Only if the magnitude of the drive signal exceeds the first threshold, the modeled response of the motor is compared to the actual response of the motor to identify a motor error.
17. An apparatus according to any preceding claim, wherein the apparatus is configured to: determining, based on the drive signal, a second threshold defining a minimum modeled motor response to the drive signal; comparing the modeled response of the motor to the second threshold; as well as If the drive signal is positive: comparing the modeled response of the motor to the actual response of the motor to identify a motor error if the modeled response is greater than the second threshold; or If the drive signal is negative: If the modeled response is below the second threshold, the modeled response of the motor is compared to the actual response of the motor to identify a motor error.
18. Apparatus according to any preceding claim, wherein: With regard to the identification of motor errors, the device is configured to perform a calibration procedure, the calibration procedure comprising: adjusting the driving signal; modeling a response of the motor to the adjusted drive signal; comparing the modeled response to an actual response of the motor to the adjusted drive signal; and If the actual response of the motor is within the range of the expected motor behavior defined by the modeled response, then the motor error is determined to have been corrected, otherwise the calibration procedure is repeated.
19. The apparatus of claim 18, wherein the apparatus is configured to provide an indication of a motor error timeout if the actual response of the motor is outside the range of expected motor behavior after a predefined time or number of drive signal adjustments.
20. The apparatus of claim 19, wherein the apparatus is configured to adjust one or more of the amplitude, rate of change, and polarity of the drive signal with each iteration of drive signal adjustment.
21. Apparatus according to any preceding claim, wherein the drive signal comprises a drive voltage for the motor.
22. An apparatus according to any preceding claim, wherein the apparatus is configured to: monitoring the speed of the motor or the current drawn by the motor; and Back EMF is calculated based on using the monitored speed of the motor or the current absorbed by the motor as the actual response of the motor.
23. The device of any preceding claim, wherein the device is one or more of: a kitchen appliance, a blender, a portable blender, a mixer, a juicer, and a module for one or more thereof.
24. A method comprising: modeling a response of the motor to the drive signal using one or more filters configured to define a range of expected motor behavior associated with the drive signal; comparing the modeled response to an actual response of the motor to the drive signal; as well as If the actual response of the motor is outside the range of the expected motor behavior defined by the modeled response, a motor fault is identified.
25. A computer program comprising computer code configured to perform the method according to claim 24.