BLDC motor controller / driver

By employing a curve converter and pole FOC motor control in a BLDC motor, the inefficiencies and lack of precision in rotor position sensing and electronic commutator control of traditional BLDC motors are solved, achieving more efficient motor control.

CN114424449BActive Publication Date: 2026-04-17ALLEGRO MICROSYSTEMS LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ALLEGRO MICROSYSTEMS LLC
Filing Date
2020-09-10
Publication Date
2026-04-17

AI Technical Summary

Technical Problem

Traditional BLDC motors suffer from low efficiency and insufficient accuracy in rotor position sensing and electronic commutator control, especially in the absence of Hall effect sensors.

Method used

A curve converter is used for interpolation data processing. Combined with pole FOC motor control, the motor speed, torque and power are controlled by the interpolation data. The processor and memory in the motor controller IC package provide index values ​​to achieve precise corner point control.

Benefits of technology

It improves the control accuracy and efficiency of BLDC motors, and enables more precise rotor position sensing and closed-loop control of the electronic commutator.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114424449B_ABST
    Figure CN114424449B_ABST
Patent Text Reader

Abstract

A method and apparatus for controlling a three-phase BLDC motor having a curve transformer with an index value for each stored input value and output value for providing a stored angular point for the output of the curve transformer. The curve transformer can output interpolated data for input data between adjacent input values.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] As is known in the art, brushless direct current (BLDC) motors may include external electronic switches synchronized with the rotor position, replacing the mechanical commutator. In conventional BLDCs, Hall effect sensors may be mounted on the windings for rotor position sensing and closed-loop control of the electronic commutator. Summary of the Invention

[0002] In one aspect, a method includes employing a curve transformer that has index values ​​for each stored input and output value to provide stored corner points for the output of the curve transformer, wherein the curve transformer outputs interpolated data between adjacent input values.

[0003] A method may further include one or more of the following features: the interpolation data includes linear interpolation data; the curve converter controls a three-phase motor; the curve converter controls the motor speed; the curve converter controls the motor torque; the curve converter controls the motor power; the curve converter controls the motor control requirements; index values, input values, and output values ​​provide steps in the output of the curve converter; the steps include hysteresis; the output of the curve converter is not monotonic; and / or, the curve converter uses a polar FOC in a motor controller IC package.

[0004] In another aspect, a motor controller IC package includes a processor and a memory configured to provide a curve converter having index values ​​for each stored input value and output value to provide stored corner points for the output of the curve converter; wherein the curve converter outputs interpolated data between adjacent input values.

[0005] A motor controller IC package may further include one or more of the following features: the interpolation data includes linear interpolation data; the curve converter is configured to control a three-phase motor; the curve converter is configured to control motor speed; the curve converter is configured to control motor torque; the curve converter is configured to control motor power; the curve converter is configured to control motor control requirements; the index value, input value, and output value provide steps in the output of the curve converter, the steps including hysteresis; the output of the curve converter is not monotonic; and / or, the curve converter is configured for pole FOC motor control. Attached Figure Description

[0006] The above-described features of the present invention, as well as the invention itself, can be more fully understood from the following description of the accompanying drawings, in which:

[0007] Figure 1This is a schematic diagram of an example control system for a three-phase BLDC motor according to an exemplary embodiment of the present invention;

[0008] Figure 2 It is a display Figure 1 A schematic diagram showing further details of an example control system;

[0009] Figure 2A This is a schematic diagram showing example bus current measurement and zero-phase current detection;

[0010] Figure 3 This is a diagram illustrating the phase current and phase voltage waveforms of a BLDC motor.

[0011] Figure 3A It is a polar coordinate representation of phase voltage and drive current;

[0012] Figure 4 This is a schematic diagram of the driving current for the rotating direct current derived from the three-phase alternating current;

[0013] Figure 5 This is an illustrative process for controlling the speed of a three-phase BLDC motor according to an exemplary embodiment of the present invention;

[0014] Figure 6 This is a schematic diagram of a curve converter;

[0015] Figure 7A This is an example implementation of a curve transformer;

[0016] Figure 7B This is another example implementation of the curve transformer;

[0017] Figure 7C This is another example implementation of the curve transformer;

[0018] Figure 7D This is another example implementation of the curve transformer;

[0019] Figure 7E This is another example implementation of the curve transformer;

[0020] Figure 8A This is a schematic diagram of an embodiment of the PI ring;

[0021] Figure 8B This is a schematic diagram of another PI ring embodiment;

[0022] Figure 9A This is a schematic diagram of an example error feedback loop;

[0023] Figure 9B This is a schematic diagram of another example error feedback loop;

[0024] Figure 10 It is a block diagram of the control loop used for operation;

[0025] Figure 11 This is a schematic diagram of an example PLL implementation method;

[0026] Figure 12 yes Figure 11 Example circuit implementation of a PLL;

[0027] Figure 13 This is an example clock mode implementation;

[0028] Figure 14 yes Figure 13 The waveform diagram of the clock signal in the clock mode;

[0029] Figure 15 This is a block diagram of an example hybrid implementation of the clock mode; and

[0030] Figure 16 It is an illustrative computer that can perform at least a portion of the processes described herein. Detailed Implementation

[0031] Figure 1 An example system 100 for controlling a motor is shown according to an illustrative embodiment of the invention. This control system 100 can be used, for example, to control a three-phase BLDC (brushless DC) motor. An exemplary motor control circuit 102 is coupled to drive a motor 104 having three windings 104a, 104b, and 104c, which can be described as corresponding equivalent circuits having inductors in series with a resistor and in series with a reverse EMF (electromotive force) voltage source. For example, winding A 104a is shown as including an inductor 130 in series with a resistor 131 and in series with a reverse EMF voltage source VA 136. The voltage of the reverse EMF voltage source VA 136 cannot be directly observed when current flows in the relevant motor winding, but can be estimated by observing the phase current and phase voltage.

[0032] Generally, the voltage on the motor windings, for example, the voltage on winding A 140a, is controlled by the following formula:

[0033] VoutA-Vcommon=VA+IR+LdI / dt,

[0034] in:

[0035] VoutA = the observable voltage at one end of winding A;

[0036] Vcommon = (VoutA + VoutB + VoutC) / 3, the voltage at the intersection of windings 104a, 104b, and 104c; and can be calculated from VoutA, VoutB, and VoutC.

[0037] R = the resistance of resistor 131;

[0038] L = Inductance of 130;

[0039] I = the current through the winding; and

[0040] VA = Reverse EMF voltage

[0041] Therefore, if the current through winding 104a is zero, then VoutA - Vcommon = VA + LdI / dt. Ideally, VoutA - Vcommon = LdI / dt, so that the reverse EMF VA is in phase with the phase current.

[0042] In the illustrated embodiment, the motor control circuit 102 includes a speed demand generator 107 coupled to receive an external speed demand signal 106 from outside the motor control circuit 102. The external speed demand signal 106 can be provided in various forms. Generally, the external speed demand signal 106 indicates the speed of the motor 104 requested from outside the motor control circuit 102.

[0043] In this embodiment, the speed demand signal 107a is determined not only by the external speed demand signal but also by the motor current demand measured or calculated in the signal processing module. If an overcurrent limiting (OCL) event occurs, the speed demand signal 107a will be clamped and may be less than the external speed demand signal 106.

[0044] Speed ​​demand generator 107 is configured to generate a speed demand signal 107a. Pulse width modulation (PWM) generator 108 is coupled to receive the speed demand signal 107a and configured to generate a PWM signal 108a, the duty cycle of which is controlled by the speed demand signal 107a. PWM generator 108 is also coupled to receive a modulated waveform from modulation signal generation module 146. Based on the modulated waveform from modulation signal generation module 146, a PWM signal 108a with modulation characteristics (i.e., a relative time-varying duty cycle) is generated.

[0045] In one embodiment, the motor control circuit 102 further includes a gate drive circuit 110 coupled to receive the PWM signal 108a and configured to generate PWM gate drive signals 110a, 110b, 110c, 110d, 110e, and 110f to drive six transistors 112, 114, 116, 118, 120, and 122 arranged as three half-bridge circuits 112 / 114, 116 / 118, and 120 / 122. These six transistors 112, 114, 116, 118, 120, and 122 can operate in saturation to provide three motor drive signals VoutA, VoutB, VoutC, 124, 126, and 128 at nodes 102d, 102c, and 102b, respectively.

[0046] It is understandable that any practical number of switching elements coupled in various suitable configurations can be used to meet the needs of a particular application. It is also understandable that any suitable signal generator can be used to generate control signals for the switching elements that provide the signals to energize the three-phase BLDC motor.

[0047] The motor control circuit 102 may further include a signal processing module 143 to receive one or more of the bus current measurement signal 150 and motor drive signals VoutA, VoutB, VoutC, 124, 126, and 128. In this embodiment, these signals can be used for zero-current detection (ZCD) of phase A, phase B, and / or phase C. The bus current 150 and the motor drive signals VoutA, B, and C can be used to control the motor speed, which will be discussed more fully below.

[0048] The control circuit 102 can be coupled to receive the motor voltage VMOT (or simply VM) at node 102a, which is supplied to the motor through transistors 112, 116, and 120 when the upper transistors 112, 116, and 120 are turned on. It is understood that when transistors 112, 116, and 120 are turned on and supply current to the motor 104, the voltage drop through transistors 112, 116, and 120 may be very small (e.g., 0.1 volts).

[0049] Figure 2 A BLDC control system 200 according to an exemplary embodiment of the present invention is shown, which displays Figure 1Further details of the system are as follows. The inverter / motor module 202 receives control signals U(ABC) to control the three-phase motor. The inverter / motor module 202 generates an I_bus signal 204 corresponding to the bus current to supply to the I_bus command module 206, and generates phase current signals I(ABC) to supply to the zero-current detection module (ZCD) 208, which provides three-phase current direction information to the sampling / calculation module 210. The I_bus / command (e.g., I_bus divided by a speed command) module 206 generates an I_driving signal or drive current, as described more fully below.

[0050] The sampling / calculation module 210 receives the motor drive angle signal θ (which can be sampled as the motor drive angle signal θs when zero current is detected) and outputs a difference angle θe, which corresponds to the difference between the motor phase current and phase voltage, as described more fully below. A phase advance angle θ0, which can be provided as an input signal, can be input to a summer 212, which outputs a difference angle Δθ for adjusting the motor speed ω. In one embodiment, the difference angle Δθ and the I_driving signal (drive current) generated by the I_bus / command module 206 are provided as input to a combiner 214 (e.g., a multiplier), the output of which is provided to a proportional-integral-derivative (PID) controller 216. The PID 216 generates the motor speed output value ω, while the difference between θe and θ0 attempts to minimize the motor speed error over time. The output of PID 216 is supplied to integrator 218 and to conversion mechanism 220 (e.g., lookup table) for controlling the motor, and is also supplied to sampling / calculation module 210 so that sampling θs of motor speed angle signal θ can be obtained.

[0051] It is understood that Kp and Ki represent the coefficients of the proportional, integral, and derivative terms. The derivative coefficient Kd can also be used. P represents the current value of the error between θe and θ0, I represents the past value of that error, and D represents the possible future value of the error based on the current rate of change. By adjusting these coefficients, the PID controller 216 can execute according to specific processing requirements.

[0052] The I_driving output signal of the I_bus command module 206 is provided to the power control module 222, whose output is provided to the amplitude command module 224. The combiner 226 receives the outputs from the amplitude command module 224, the conversion mechanism 220, and a signal 228 (e.g., VBB, which may correspond to the motor voltage VM). The output of the combiner 226 is provided to the inverter / motor module 202 to generate gate signals for switching elements, thereby controlling the motor speed. In the example embodiment, the combiner 226 multiplies the input signal to generate the output.

[0053] Figure 2A An embodiment showing the illustrative positions of the bus current measurement 250 and the zero-current detection 252 for phases A, B, and C is illustrated. In this embodiment, first, second, and third switching devices are coupled to the corresponding phases A, B, and C of the motor M, respectively. The sensed signals enable zero-current detection of phases A, B, and C.

[0054] Figure 3 Illustrative waveforms for use in BLDC motor control according to an exemplary embodiment of the present invention are shown. The voltage drive angle 300 for a three-phase BLDC is shown as 0 to 360 degrees. A sinusoidal phase current signal 302 is shown with a falling zero crossover point 304, which corresponds to a sampled voltage drive angle θs, which can be used to derive the angle θe between the phase current 302 and the phase voltage 306. In the illustrated embodiment, θe = 180 - θs.

[0055] In the embodiment, the difference angle θe should be equal to θ0 under steady-state conditions. Figure 2 ). Figure 3A The angle θe in the polar coordinate system is shown, defined by the angle between phase voltage 350 and drive current 352. Figure 2 (Output from 206).

[0056] Figure 4 The representation of the drive current is shown; three-phase alternating current (AC) can be replaced by an equivalent rotating direct current (DC). It can be seen that a sinusoidal current can be supplied to each of phases A, B, and C of the motor. The magnet includes a north (N) pole and a south (S) pole, the positions of which are determined by this. Angle θ refers to the voltage drive angle, which is the input of a sinusoidal function of the phase voltage. In the embodiment, angle θ can provide an index (index, guide, indicator) for a sinusoidal lookup table.

[0057] As mentioned above, I_bus / command module 206 ( Figure 2This can generate an I_driving signal for the PID controller 216. In the example embodiment, I_driving = I_bus divided by the speed command. The relationship between I_driving and the phase current will be described below:

[0058] Three-phase current can be defined as:

[0059] IA = Ipeak*sin(ωt), where ω corresponds to the motor speed.

[0060] IB = Ipeak * sin(ωt - 120°)

[0061] IB = Ipeak*sin(ωt-240°).

[0062] Phase torque can be defined as:

[0063] TA=IA*FluxPeak*sin(θ+120°)

[0064] TB=IB*FluxPeak*sin(θ+240°)

[0065] TC = IC * FluxPeak * sin(θ + 0°)

[0066] Tsum=1.5*Ipeak*FluxPeak*(ωt+θ+120°)

[0067] For a DC drive current Idrive = 1.5 * Ipeak, which rotates counterclockwise at a speed ω, then Tdrive = 1.5 * Ipeak * FluxPeak * (ωt + θ + 120°) = Tsum

[0068] It can be seen that by applying Idrive (which is 1.5 times the DC current of Ipeak and rotates together with the magnet of the BLDC), the BLDC motor is driven by the equivalent torque Tdrive = Tsum. Therefore, for analysis purposes, the three-phase currents IA, IB, and IC are replaced by Idrive. Idriving is the amplitude of Idrive, which can be determined by the I_bus / command module 206 ( Figure 2 (Measured)

[0069] Figure 5 An example process for BLDC motor control according to an illustrative embodiment of the present invention is shown. In step 500, a suitable zero-current detection (ZCD) technique can be used to detect the phase current direction, such as that shown and described, for example, in U.S. Patent 8,917,043, which is incorporated herein by reference. In step 502, when zero current is detected, the phase current 302 (see, for example, ...) can be calculated from the sampled voltage drive angle θs. Figure 3 The angle θe between the voltage drive angle θ and the phase voltage 306. The voltage drive angle θ can be an index from 0 to 360 degrees, which determines the output of the sine wave. The angle θe can correspond to the angular position of the current in the polar coordinate system, such as... Figure 3A As shown. In step 504, a phase advance angle θ0 is received as input, which is calculated from the motor inductance or similar parameters. Generally, in a steady state, the angle θe should be equal to θ0. In step 506, the difference angle Δθ (e.g., θ0 - θe) is fed into the control loop (e.g., PID controller 216). Figure 2 It provides feedback signals for adjusting the motor speed ω.

[0070] In step 508, the system (e.g., I_bus / command module 206) Figure 2 )Measure bus current 204 ( Figure 2 and Figure 4 The average value of the three-phase AC current is calculated and converted into a drive current (I_driving), which is the effective rotating current that generates the driving torque for the motor. It is understood that any suitable method can be used to measure and / or estimate the drive current. In a three-phase BLDC motor driven by a sinusoidal wave, as described above, the three-phase AC current can be replaced by an equivalent rotating DC current, which can be called the drive current, and is proportional to the bus current divided by the amplitude command. In one embodiment, I_driving = Ibus * 1.732 / amplitude_command. The drive current is... Figure 3A In the polar coordinate system, the radial part is 352.

[0071] In step 510, the drive current is multiplied by the difference angle Δθ, and the product is sent to the PI controller 216. Figure 2 For example, the proportional gain (Kp) and integral gain (Ki) of the PI control loop can be determined by the motor parameters. The drive current can also be used for power control of the system's acceleration and deceleration.

[0072] In another aspect, the BLDC motor control processing may include a data curve converter that is useful for data such as speed, torque, power, and control requirements. In embodiments, the curve converter may be provided as part of a signal processor, for example... Figure 1 Signal processing module 143.

[0073] Figure 6An example curve converter module 600 with M (M:0) input bits and N (N:0) output bits is shown. In the example embodiment, N = M, such that the number of input bits and output bits are the same. It is understood that N and M can be provided as any actual integers to meet the needs of a particular application.

[0074] Figure 7A An example implementation is shown, where N = M = 9, and the range of input and output data values ​​can be from 0 to 511. Curve Transformer 600 ( Figure 6 The process transforms input data values ​​into output data values. In the illustrated embodiment, each input data value (between 0 and 511) is transformed into an output value (between 0 and 511). In some embodiments, the data query value may be stored in EEPROM or other memory. For example, "corner points" of 0 and 511 are stored, and intermediate values ​​are calculated using linear interpolation. It is understood that any suitable interpolation technique can be used to meet the needs of a particular application. The transformed data may be stored in specific memory addresses to cover a certain number of corner points. In one particular embodiment, each data point contains 9 bits of input data and 9 bits of output data.

[0075] exist Figure 7A In the illustrative embodiment, address 32 stores the first point (index 0), with input data of 0 and output data of 0; address 33 stores the second point (index 1), with input data of 511 and output data of 511. The curve is a linear curve from 0 to 511. In the second row, the input data is 511, which represents the last corner point of the curve. In this embodiment, data exceeding this row is ignored.

[0076] Figure 7B This shows a further example of converting input data {0, 100, 100, 450, 511} into output data {0, 0, 100, 511, 511} using index values ​​{0, 1, 2, 3, 4} at memory address locations {32, 33, 34, 35, 36}. The input and output values ​​are shown on the curves on the right side of the graph. Corner points are shown as linear extrapolations (extends) from 100 to 511. Input data below 100 will be converted to an output value of 0. Input data above 450 will be converted to an output value of 511.

[0077] In a speed demand implementation using a curve converter, the motor will not start when the speed demand is below approximately 20% (≈100 / 511), and the motor speed will saturate if the input demand is above approximately 80% (≈450 / 511).

[0078] Figure 7CAnother example is shown using ten points to provide a stepped curve with hysteresis. It can be seen that each input data value corresponds to an output data value to create a flat curve within a specific range of input values. Hysteresis occurs if the input data at the next point (index N+1) is less than the input data at the current point (index N). For example, if index 1 is 100 and index 2 is 80, this results in a hysteresis of 20. Similar hysteresis occurs at indices 3 and 4, indices 5 and 6, and indices 7 and 8.

[0079] Figure 7D Another example is shown where the output does not need to be monotonic; for instance, in this example, the output returns to zero when the input at index 6 is 511. In the illustrated embodiment, the curve has a linear extrapolation from 80 to 511 and various corner points.

[0080] Figure 7E Another example is shown where the curve can be considered bidirectional in motor applications. In the illustrated example, for an input demand between 230 and 280, the output is 255. If a bidirectional curve is selected, this translates to zero speed. An input demand of 0 implies a maximum speed in the reverse direction, while an input demand of 511 also translates to a maximum speed, but in the forward direction. It can be seen that the curve is linear between 0 and 230 and between 280 and 511.

[0081] As shown and described above, the example embodiment includes pole field oriented control (FOC) for a BLDC motor, wherein processing is performed in the polar coordinate domain. (Refer again) Figure 1 , 2 3. For any vector in a BLDC motor control system, voltage, current, and inverse BEMF can be characterized by direct axis coefficients and orthogonal axis coefficients. They can also be characterized by amplitude and angle; this structure is called polar coordinates. The amplitude of the current can be measured from the bus current, while the angle is measured by a ZCD (zero current cross-detection) circuit (see, for example,...). Figure 3 ).

[0082] When the phase current crosses zero, the circuit can sample the pointer value, which is the theta angle used to generate the three-phase voltage output. Note that if the current crossing is a falling edge, the sampled theta (theta_s) should be subtracted by 180 degrees to obtain the error angle (theta_e). Also note that there are three-phase currents, so if the zero current occurs in phase B or phase C, 120 or 240 degrees need to be added.

[0083] Refer again Figure 4The current flowing through the motor windings is called the phase current, while the current flowing through the power supply is called the bus current. The phase current is sinusoidal, while the bus current is rippled, having an average DC value of I_bus. In the example implementation, the drive current (or I_drive) refers to the equivalent DC rotating current. The conductor carrying the drive current rotates synchronously with the motor magnets, based on the same torque effect.

[0084] In this embodiment, the magnitude of the drive current is 1.5 times the peak value of the phase current. An exemplary motor drive controller IC package will only measure the bus current and calculate the drive current as follows:

[0085] Idrive = Ibus * 1.732 / amplitude (amplitude) Cmd / cos(theta).

[0086] Since theta is typically a relatively small angle, and cos(theta) is approximately equal to 1, the cos(theta) coefficient in the above equation can be ignored. In other embodiments, cos(theta) is not ignored.

[0087] Refer again Figure 2 The zero-crossing of the current is detected by the ZCD circuit 208, and the sampling and calculation block 210 generates the angle (theta_0) between the voltage and the current. Theta_0 is calculated based on the motor inductance, current, and motor speed (wIL). Higher current, higher speed, and higher inductance may require a higher Theta_0. In some embodiments, the user can directly set (plan, program) theta_0.

[0088] In this embodiment, it is desirable to control the difference between theta_e and theta_0, which should be zero as feedback. The PID module 216 adjusts the drive speed. The physical speed of the motor is determined by the drive torque, load torque, and inertia. The drive speed should be equal to the motor speed in a steady state. If the drive speed is higher or lower than the motor speed for a certain period, the motor will "go out of phase," and the control loop will fail. Therefore, the drive speed should be continuously adjusted based on the feedback of θ.

[0089] The bus current can be measured by the op-amp and ADC in the I_bus / command module 206. I_drive (ignoring cos theta) can be generated by dividing I_bus by the amplitude command. The I_drive signal can be limited between the rated current and zero by adjusting the amplitude command 224, which may also affect the calculation of I_drive.

[0090] In this embodiment, the I_drive signal is multiplied by 214 before being fed into the PID module 216. At higher currents (I_drive), smaller angle errors (delta theta) may require more precise adjustments. The drive speed can be integrated to generate a pointer (θ), and a sine table can be used to read the pointer to generate the three-phase output voltage.

[0091] As described above, in some embodiments, the bus current is divided by the duty cycle (bus current / duty cycle) to represent the phase current (peak value), which assumes that the phase current and phase voltage have a small angle, for example, cos(θ) = 1. In some embodiments, θ can be relatively large, such as 30 degrees, then cos(θ) may be involved in the calculation.

[0092] In some embodiments, the Idrive current, gain, and delta theta are multiplied and provided to the integral-proportional loop, such as Figure 8A As shown. In other embodiments, only the gain and delta theta are multiplied and provided to the integral proportional loop, such as Figure 8B As shown.

[0093] In some embodiments, the feedback loop includes delta theta (i.e., the error between theta and theta 0) and Idrive, such as Figure 9A As shown. Theta 0 is calculated by w*I*L. In other embodiments, an "IR+wIL / BEMF" block can be implemented for these calculations. In some embodiments, a field weakening input can be incorporated into the calculation.

[0094] In one example embodiment, the IR+wIL / BEMF block can be implemented as follows:

[0095] Error=(cos(theta)*w*L+sin(theta)*w*Idrive*R) / (w*Kt)

[0096] Error = (cos(theta)*w*L*Idrive+sin(theta)*Idrive*R) / (w*Kt)

[0097] Where theta refers to the phase current angle, w refers to the motor drive angular velocity [rad / s], Idrive refers to the phase peak current [A], R refers to the winding resistance [ohm], L refers to the winding inductance [H], Kt refers to the motor torque constant [Nm / A], and error refers to phase advance [rad].

[0098] In an exemplary embodiment, the motor controller has four operating modes: open-loop, constant speed, constant current (torque), and constant power. The constant speed, constant current (torque), and constant power operating modes are closed-loop modes. Figure 10 Example control loops with various operating modes including speed loop, power loop, current loop, and amplitude control are shown.

[0099] The drive torque of a BLDC motor is generated by the drive current (phase current) attracted (caused) by the permanent magnets. Controlling constant torque is equivalent to controlling constant current. The terms constant torque and constant current are used interchangeably. Control requirements (from analog input, PWM input, or I2C input) are applied to four different blocks depending on the selected operating mode.

[0100] If open-loop control is selected, the control requirements will be directly applied to amplitude control. Higher control requirements will result in a higher average output voltage amplitude, which will increase current and motor speed in most cases. In open-loop mode, the current loop, speed loop, and power loop are inactive.

[0101] If constant torque mode is selected, the control demand is applied to the reference input of the current loop. The speed and power loops are bypassed. If the motor operating current (I_drive) is less than the torque demand (i.e., the control demand signal from analog, PWM, or I2C), the PI loop will increase the amplitude demand and eventually regulate I_drive. In the example embodiment, the time constant of the current loop is approximately 1 ms. Adjusting the integral and proportional parameters can keep the current loop stable. Understandably, motors with higher inductance require slower PI parameters.

[0102] If constant speed mode is selected, the control requirements are applied to the speed loop's reference input. The power loop is bypassed. The current loop runs after the speed loop. If the motor operates at a speed lower than the speed requirement (i.e., the control requirement signal from the analog, PWM, I2C, or CLOCK (frequency) mode input), the PI loop increases the current reference value. Because the current loop is at least 10 times faster than the speed loop, the current can be considered an immediate adjustment target, and the system will eventually regulate the motor speed. In the example embodiment, the speed loop's time constant is longer than 10 ms. Adjusting the integral and proportional parameters can maintain the stability of the speed loop.

[0103] If constant power mode is selected, the control demand is applied to the reference input of the power loop. The speed loop is bypassed. The current loop runs after the power loop. If the motor operating power is less than the power demand (i.e., the control demand signal from the analog, PWM, or I2C input), the PI loop will increase the current reference value. Because the current loop is at least 10 times faster than the power loop, the current can be considered an immediate adjustment target, while the system eventually regulates the power supply. For example, the time constant of the power loop is longer than 10 ms.

[0104] In this embodiment, the rated speed and rated current can be set independently regardless of the selected operating mode; these are primarily used to determine the motor parameters. The rated current can be used to clamp the current reference signal from the speed loop or power loop.

[0105] On another front, embodiments of the motor controller incorporate a phase-locked loop (PLL) scheme to improve accuracy. The motor controller IC package may include an internal RC oscillator with a given accuracy / error, such as ±3%. In some applications, an external crystal precision clock reference can be received. The motor controller can accept a precision clock reference and lock its internal PLL frequency to that precision clock.

[0106] Figure 11 This example implementation shows a 16-bit EEPROM used to set the clock frequency. The value (N) in the EEPROM, multiplied by 320ns, is the input clock period. For example, if the input clock frequency is 1kHz, its period is 1ms. Therefore, N = 1ms / 320ns = 3125. We should set 3125 in the EEPROM.

[0107] An external clock can be fed from any suitable source (e.g., PWM pin, DIR pin, BRAKE pin, etc.). The external clock is measured from the 3.125MHz internal clock. If the internal clock is accurate, the measured period should equal the EEPROM parameter. If the internal clock is slower, the measured period will be less than the EEPROM parameter, so the internal oscillator should run faster, generating the adjUp pulse. If the internal clock is faster, the measured period will be higher than the EEPROM parameter, so the internal oscillator should run slower, generating the adjDown pulse. If the error exceeds 6.25% (6.25% higher or lower than the reference value), it is considered an invalid adjustment request. Neither adjUp nor adjDown will be generated. If this function is not enabled, adjUp and adjDown will be zero, and adj_none will be 1. The adjUp, adjDown, and adj_none signals control the analog circuitry to adjust the oscillator frequency.

[0108] Figure 12An example implementation is shown where the adjUp pulse charges the capacitor, and the adjDown pulse discharges it. If this function is disabled, adjNone is on, and the voltage is forced to a reference voltage (e.g., Vdd / 2). The voltage across the capacitor controls a current source that draws additional current from the VCO circuit. The adjustment range is a 2LSB fine-tuning bit. It may be necessary to tune the oscillator as close to 3.125MHz as possible; if this function is enabled, errors will be compensated for in flight.

[0109] Clock speed control mode works with closed-loop speed. It may not work with open-loop, constant torque, or constant power modes. Higher frequencies on the SPD pin will drive higher motor speeds, as shown below:

[0110] close_loop_speed(rpm)=clock_input×speed_ctrl_ratio

[0111] The speed_ctrl_ratio can be set in the EEPROM. For example, if the ratio is 4 and the clock input frequency is 60Hz, the motor will run at 240rpm. Note that to ensure the rated speed (RPM) is set accurately, the number of motor pole pairs must be correctly set in the programming application.

[0112] Figure 13 This illustrates an example implementation where a counter rises and falls based on the input CLOCK signal, and the motor's FG signal (or a multiple of the FG signal) depends on speed_ctrl_ratio. The counter controls the amplitude command.

[0113] In some embodiments, the current loop is implemented after the speed loop, and there is a requirement to independently control the speed loop time constant and speed_ctrl_ratio. In other embodiments, it is desirable to extract the CLOCK frequency, for example by "borrowing" PWM demodulation, such as... Figure 14 As shown.

[0114] Figure 15This illustrates an example hybrid implementation of the CLOCK mode. The duty cycle of the clock signal can be 50%. We utilize the rising edge of the CLOCK signal to generate a CLK_PWM signal via a monostable trigger circuit. This CLK_PWM signal has the same frequency, and the "on" period (Ton) is fixed. Therefore, the duty cycle varies with the CLOCK frequency. This signal is fed into a PWM demodulation processor, whose output represents the CLOCK frequency. The Ton time is determined by the system's maximum speed (not the rated speed, but the target speed of 100%). Higher speeds will have a smaller Ton, thus requiring a higher CLOCK frequency to reach the target speed. The converted PWM duty cycle or CLOCK frequency is used in the PI speed loop, followed by the current loop, compared to the actual speed. Due to potential quantization errors in the digital implementation, there may be a relative (partial) error between the actual speed and the CLOCK reference speed. A PLL circuit operates simultaneously as a supplementary method to compensate for the relative error after the PI speed loop. Because it only takes the relative error, this block may only have a few bits.

[0115] Figure 16 An exemplary computer 1600 is shown, which can perform at least some of the processes described herein. Computer 1600 includes a processor 1602, volatile memory 1604, non-volatile memory 1606 (e.g., a hard disk), output device 1607, and graphical user interface (GUI) 1608 (e.g., a mouse, keyboard, display, etc.). Non-volatile memory 1606 stores computer instructions 1612, operating system 1616, and data 1618. In one example, computer instructions 1612 are fetched from volatile memory 1604 and executed by processor 1602. In one embodiment, article 1620 includes non-transitory computer-readable instructions.

[0116] The processing can be implemented in hardware, software, or a combination of both. The processing can be implemented in a computer program that executes on a programmable computer / machine, each including a processor, storage media or other articles of manufacture readable by the processor (including volatile and non-volatile memory and / or storage elements), at least one input device, and one or more output devices. Program code can be applied to data input using the input devices to process and generate output information.

[0117] The system can be processed, at least in part, by a computer program product (e.g., a computer program product in a machine-readable storage device) for execution or control of its operation by a data processing apparatus (e.g., a programmable processor, a computer, or multiple computers). Each such program can be implemented in a high-level program or an object-oriented programming language to communicate with the computer system. However, these programs can also be implemented in assembly or machine language. The language can be a compiled or interpreted language, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. The computer program can be deployed to execute on a single computer, or on multiple computers located at one location or distributed across multiple locations and interconnected via a communication network. The computer program can be stored on a storage medium or device (e.g., a CD-ROM, hard disk, or floppy disk) that, when read by a computer, can be read by a general-purpose or special-purpose programmable computer for configuring and operating the computer. Processing can also be implemented as a machine-readable storage medium configured with a computer program, in which, upon execution, the instructions in the computer program cause the computer to run.

[0118] The processing can be performed by one or more programmable processors, which execute one or more computer programs to perform the functions of the system. All or part of the system can be implemented as special-purpose logic circuitry (e.g., FPGA (Field Programmable Gate Array) and / or ASIC (Application-Specific Integrated Circuit)).

[0119] Having described exemplary embodiments of the invention, it will now be apparent to those skilled in the art that other embodiments incorporating its concepts may also be used. The embodiments contained herein should not be limited to the disclosed embodiments, but should be limited only by the spirit and scope of the appended claims. All publications and references cited herein are expressly incorporated in their entirety by reference.

[0120] Elements of the different embodiments described herein can be combined to form other embodiments not specifically described above. The various elements described in the context of a single embodiment may also be provided individually or in any suitable sub-combination. Other embodiments not specifically described herein are also within the scope of the following claims.

Claims

1. A method comprising: A curve transformer is employed, wherein each stored input and output value has an index value to provide stored corner points for the output of the curve transformer; The curve transformer outputs interpolated data between adjacent input values. The index value, the input value, and the output value provide steps in the output of the curve transformer, and Some of the index values ​​are given index values, the input value of each given index value is less than the input value of the previous adjacent index value of the given index value, and the output value of each given index value is greater than or equal to the output value of the previous adjacent index value of the given index value, so as to provide hysteresis in the output of the curve converter.

2. The method of claim 1, wherein, The interpolation data includes linear interpolation data.

3. The method according to claim 1, further comprising using the curve converter to control the three-phase motor.

4. The method according to claim 3, further comprising using the curve converter to control the motor speed.

5. The method of claim 3, further comprising using the curve converter to control the motor torque.

6. The method of claim 3, further comprising using the curve converter to control the motor power.

7. The method of claim 3, further comprising using the curve converter to control motor control requirements.

8. The method of claim 1, wherein, The output of the curve converter is not monotonic.

9. The method of claim 1, further comprising employing the curve converter, wherein the curve converter uses a polar FOC in the motor controller IC package.

10. A motor controller IC package, comprising: Processor and memory, which are configured to provide: A curve transformer, wherein the curve transformer has an index value for each stored input and output value to provide a stored corner point for the output of the curve transformer; The curve transformer outputs interpolated data between adjacent input values. The index value, the input value, and the output value provide steps in the output of the curve transformer, and Some of the index values ​​are given index values, the input value of each given index value is less than the input value of the previous adjacent index value of the given index value, and the output value of each given index value is greater than or equal to the output value of the previous adjacent index value of the given index value, so as to provide hysteresis in the output of the curve converter.

11. The motor controller IC package of claim 10, wherein, The interpolation data includes linear interpolation data.

12. The motor controller IC package of claim 10, wherein, The curve converter is configured to control a three-phase motor.

13. The motor controller IC package of claim 12, wherein, The curve converter is configured to control the motor speed.

14. The motor controller IC package of claim 12, wherein, The curve converter is configured to control the motor torque.

15. The motor controller IC package of claim 12, wherein, The curve converter is configured to control the motor power.

16. The motor controller IC package of claim 12, wherein, The curve converter is configured to control the motor's control requirements.

17. The motor controller IC package of claim 10, wherein, The output of the curve converter is not monotonic.

18. The motor controller IC package of claim 12, wherein, The curve converter is configured for pole FOC motor control.

Citation Information

Patent Citations

  • Electronic circuit and method for automatically adjusting a phase of a drive signal applied to an electric motor in accordance with a zero current detected in a winding of the electric motor

    US8917043B2

  • Systems and Methods for Controlling Motor Speeds

    US20140055064A1