Many types and configurations of electric motors are available including, for example, direct current (DC) motors and alternating current (AC) motors. AC motors are available in various types as well including, for example, three-phase motors. A three-phase motor includes, for example, three pairs of stator windings. Three sinusoidal currents, one for each pair of stator windings, are generated by, for example, a DC-to-AC inverter. The three sinusoidal currents are 120 degrees out-of-phase with respect to each other. With reference to a first of the sinusoidal currents, a second current is 120 degrees out-of-phase, and a third current is 240 degrees out-of-phase with respect to the first of the sinusoidal currents.
In one embodiment, a motor controller integrated circuit (IC) includes a storage device containing software, and a processor core. The processor core has an output adapted to be coupled to a motor. The processor core is configured to execute the software to operate the motor in an open-loop control, calculate first and second orthogonal components of a back electromotive force (BEMF), calculate a total BEMF value, and determine that the first orthogonal component is within a threshold of the total BEMF value. The processor core is further configured to, responsive to the first orthogonal component being within the threshold of the total BEMF value, operate the motor in a closed-loop control.
In another embodiment, a method of controlling a motor includes operating the motor with an open-loop control, calculating first and second orthogonal components of a back electromotive force (BEMF), calculating a total BEMF value, and determining that the first orthogonal component is within a threshold of the total BEMF value. Responsive to the first orthogonal component being within the threshold of the total BEMF value, the method includes operating the motor with a closed-loop control.
Reference is hereby made to co-pending patent application Ser. No. 17/358,147 (TI-92986) titled “Motor Controller Including Resonant Controllers”, which is hereby incorporated by reference in its entirety.
For a detailed description of various examples, reference will now be made to the accompanying drawings in which:
The same reference numbers and/or reference designators are used below to designate the same or similar (functionally and/or structurally) features.
The embodiments described herein pertain to a motor controller for a sensor-less motor. A sensor-less motor has no sensor for, for example, measuring motor speed or rotor position. Instead, based on motor current, the controller estimates motor speed and rotor position and uses those estimated values in a closed-loop to control the magnitude of the current to the motor and thus the speed of the motor. The motor controller includes a speed and position estimator that estimates motor speed and rotor position. However, at initial start-up of the motor, until the motor speed becomes large enough, the estimated values of speed and position are not accurate enough to use in the closed-loop control of the motor. Accordingly, the motor controller initializes in an open-loop control of the motor in which pre-determined values representing motor speed and rotor position are provided for controlling the motor.
The described embodiments are directed to techniques for an automatic change-over from open-loop control to closed-loop control of the motor. In one implementation, an auto-handoff controller repeatedly computes back electromotive force (BEMF) in, for example, a rotating reference frame and determines when a vector component of the computed BEMF (e.g., the component along the q-axis of a rotating d-axis/q-axis reference frame) is within a threshold of the total BEMF. When the computed BEMF component is within the threshold of the total BEMF, the auto-handoff controller switches the motor controller from open-loop to closed-loop control of the motor. The motor control technique described herein is a field-oriented control (FOC) technique for a three-phase sensor-less motor (e.g., a permanent magnet synchronous motor or an induction motor). The FOC control technique described herein also is applicable to single phase and three-phase grid synchronized inverters.
The I/O interface 130 and the ADC 150 also are coupled to the processor core 110. The processor core 110 generates control signals on signal lines 115 that the I/O interface 130 outputs to the three-phase inverter 140 as signals ma, mb, and mc. The I/O interface 130 may include buffers to drive signals ma, mb, and mc to the three-phase inverter 140. As explained below, the three-phase inverter 140 includes a pair of transistor switches (a high side transistor coupled to a low side transistor at a switch node) for each of the three phases a, b, and c. Each of the signals ma, mb, and mc from the processor core 110 is used by the inverter 140 to implement the duty cycle for the respective high side and low side transistors. The duty cycle for the high side transistor is
where m is the respective value of ma, mb, or mc. The duty cycle for the corresponding low side transistor is
The values of m (and thus the duty cycle values) are varied sinusoidally by the processor core 110. By varying the duty cycles of each pair of transistors over time in a sinusoidal fashion for each phase, a sinusoidal current for that phase is generated.
The ADC 150 receives analog signals Ia 151, lb 152, and Ic 153 from current sensors 157, 158, and 159, respectively. Analog signals Ia, Ib, and Ic represent (e.g., are directly proportional to) the instantaneous currents 154, 155, and 156 of the three phases a, b, and c, respectively. In one example, each of analog signals Ia, Ib, and Ic is a voltage proportional to the instantaneous magnitude of its respective phase current 154-156.
In one embodiment, the processor core 110, storage device 120, I/O interface 130, and ADC 140 are fabricated on the same integrated circuit (IC) (e.g. on a single semiconductor die or multiple semiconductor dies that are interconnected within a IC package). In another embodiment, the storage device 120 may be fabricated on an IC separate from the IC that includes the processor core 110, I/O interface 130, inverter 140, and ADC 150. In general, any two or more of the processor cores 110, storage device 120, I/O interface 130, inverter 140, and ADC 150 can be fabricated on the same IC. In another embodiment, the three-phase inverter 140 may be implemented on the same semiconductor die as the other circuit elements or can be fabricated on a separate semiconductor die but incorporated into the same IC package/module as the other circuit structures.
In one example, the processor core 110, upon execution of software 125, implements a field-oriented control (FOC) technique for controlling the operation of motor M. The FOC technique described below separately controls the torque and magnetic flux components of the motor's stator current.
The Clarke transform 210 projects the three-phase system (Ia, Ib, Ic) into a two-dimensional (α, β) orthogonal system. The Clarke transform 210 implements the following equations to convert two of Ia, Ib and Ic to Iα and lβ. Currents Ia and lb are assumed to be the two selected currents in Eq. (1), but in general, Eq. (1) uses any two of the three currents Ia, Ib, and Ic.
The Clarke transform 210 outputs Iα and lβ as inputs to the Park transform 220. The Park transform 220 projects the (α, β) orthogonal system onto a rotating reference frame (d,q) as shown in
The flux component Id and the torque component Iq are the outputs of the Park transform 220 and depend on the current vector components (Iα, Iβ) and on the rotor flux position θ. Per the FOC control technique, processor core 110 controls the flux current component (Id) and the torque current component (Iq) independently.
The speed and position estimator 260 receives as inputs the outputs Iα and lβ from the Clarke transform 210, as well as signals Vα and Vβ which are output values from the inverse Park transform 230. Using the values of Iα, lβ, Vα, and Vβ, the speed and position estimator 260 computes the back electromotive force (BEMF), and then using the computed BEMF, computes rotor speed ω and flux position θ. In one embodiment, the speed and position estimator 260 computes the BEMF in the α, β reference frame
using the following equation:
where rs is the motor's resistance and
The inductance value
wnere Ld and Lq are the d- and q-axis inductances, respectively. The speed and position estimator computes rotor position θ, but the preceding equation for computing
uses rotor position θ. The assumption is that the motor's inductance does not appreciably change very quickly (e.g., within one sampling instance) and thus the rotor position θ previously computed by the speed and position estimator 260 is used to compute the current value of motor inductance
In one embodiment, the speed and position estimator 260 then computes the BEMF in the d,q rotating reference frame (Ed and Eq, respectively) based on the BEMF in the α, β reference frame and then computes rotor speed ω and position θ as provided in equations 4-6.
The subtractor 281 subtracts the rotor speed ω from a reference speed value ωref (the target speed for the motor and generated by the processor core 110) to produce an error value errω 289. The error value errω 289 is an input to the PI controller 271. In some example embodiments, the PI controllers 271, 272 and 273 are control loop software modules that employ feedback, and in other example embodiments these PI controllers are implemented in hardware. In general, a PI controller repeatedly receives an error value that is the difference between a desired setpoint (e.g., reference speed value ωref in the case of PI controller 271) and a measured process variable (e.g., rotor speed ω), and generates an adjustment for another process variable based on proportional and integral terms. For example, in the case of the PI controller 271, the generated adjustment is Iqref. Subtractor 282 subtracts lq from Iqref to generate output value errq 285. The PI controllers 271-273 are digital controllers that implement the following equation:
u(t)=Kp+Ki/s (7)
where u(t) is the ratio of the output value to the input value (e.g., an error value) from a PI controller, Kp is a proportional gain, Ki is an integral gain, “s” is the Laplace variable. A PI controller includes a proportional component and an integral component. The proportional component operates on the present value of the error while the integral component operates on previous error values. The proportional component ensures that the steady state error becomes small, but generally cannot ensure the error to be zero. However, because it operates on present error values, the proportional component converges relatively quickly. The integral component ensures that steady state error becomes zero. However, because it operates on previous values of error (error history), it converges more slowly than the proportional component. In general, the proportional component of a PI controller reduces the error to a relatively low value, and the integral component further reduces the error to zero. The speed at which the PI controller converges and any overshoot or undershoot observed are determined by the values of the proportional gain (Kp) and the integral gain (Ki).
The outputs from the Park transform 220, Id and Iq, are flux and torque current values, respectively, in the d,q rotating reference frame. The Iq component from the Park transform is subtracted from the Iqref value by subtractor 282 to produce an error value errq 285. The PI controller 272 processes the value errq to compute the voltage value Vq in the (d,q) rotating reference frame. Subtractor 283 subtracts Id from a flux reference value Idref to compute a flux error value errd 291. PI controller 273 receives error value errd 291 and outputs a voltage value Vd. The voltages Vq and Vd are the q-axis and d-axis voltages, respectively, applied to the motor so that the q-axis and d-axis currents match their respective references.
The inverse Park transform 230 transforms the rotating frame flux and torque values Vd and Vq, respectively, into the corresponding values of Vα and Vβ in the (α, β) stationary orthogonal reference frame. The rotor flux position θ from the speed and position estimator 260 is also provided to the inverse Park transform 230. In one example, the Park transform computes Vα and Vβ as:
Vα=Vd * cos(θ)−Vq * sin(θ)
Vβ=Vd * sin(θ)+Vq * cos(θ) (8)
The values Vα and Vβ are then provided to the space vector PWM 240 which uses the values Vα and Vβ to produce the signals ma, mb, and mc that drive the three-phase inverter 140. The inverter 140 converts the voltage reference values (ma, mb, mc) to duty cycles that control the on and off states of the transistors within the respective inverter phase such that the voltage on the phase's switch node applied to the motor has an average voltage that is approximately the same as the voltage reference value (ma, mb, mc). The relationship between ma-mc and the respective duty cycle is provided above.
As explained above, the values of speed (ω) and rotor position (θ) computed by the speed and position estimator 260 are not necessarily accurate at motor start-up because speed and position is determined from BEMF, and BEMF has relatively poor (low) signal-to-noise ratio (SNR) at low motor speeds.
In addition to the functional blocks from
Multiplexer 520 has a first input (e.g. a 0-input) and a second input (e.g. a 1-input). The select signal SELECT indicates which of the two inputs is to provide its signal to the output. The output signal is lqref, described above with reference to the input of subtractor 282. The 0-input receives a value labeled lqrefm, which is one of the programmable values provided to the processor core 110 (
Multiplexer 522 also has a 0-input and a 1-input. The estimated value of rotor position from the speed and position estimator 260 is provided to the 1-input. The 0-input of multiplexer 522 is a calculated value θ_openloop. The open loop value of rotor position (θ_openloop) is calculated based on programmable values and not based on motor current. The programmable values for computing θ_openloop include rotor acceleration values a1 and a2. The processor core 110 computes motor speed (FREQ) during open loop operation as:
FREQ =(a1*t)+a2*t2 (9)
where “t” is time measured starting from the time the motor begins to spin (i.e., time spent during open-loop operation) . The processor core 110 integrates FREQ to compute the open loop value θ_openloop as:
θ_openloop=∫(FREQ)dt (10)
The select signal SELECT form the auto-handoff controller 510 causes the multiplexer 522 to select between its 0-input and its 1-input. During open loop operation, the auto-handoff controller 510 asserts SELECT to the first logic state to cause multiplexer 522 to provide θ_openloop as its output (shown in
The auto-handoff controller 510 automatically (without using externally-provided parameters) determines when to switch control from open-loop to closed-loop control. The determination of when to switch from open-loop to closed-loop control is implemented by the auto-handoff controller 510 based on the calculation of BEMF from Eq. 4 above. The calculation of BEMF produces BEMF components in the d and q-axes. The value Ed is the component of BEMF along the d-axis, and the value Eq is the component of BEMF along the q-axis. The total BEMF is the sum of the Ed and Eq components (vector addition).
In accordance with an example embodiment, the auto-handoff controller 510 computes the vector sum of the Ed and Eq BEMF components it receives from the speed and position estimator 260 and determines when the q-axis component (Eq) is within a threshold value of the total BEMF. In the example of
At 704, the method includes estimating the BEMF. In one example, the estimated BEMF includes first and second orthogonal components such as Ed and Eq in a d,q rotating reference frame. At 706, the method includes determining whether a component of the estimated BEMF is within a threshold of the total BEMF. In one example, the component is the q-axis component of the estimated BEMF and the total BEMF is the vector sum of the first and second orthogonal components of the estimated BEMF. The threshold may be, for example, a percentage of the total BEMF.
If the estimated BEMF component (e.g., Eq) is not within the threshold of the total BEMF, then control loops back to step 704, open-loop FOC operation continues and another BEMF estimate is computed. Open-loop FOC operation continues until the estimated component of BEMF reaches or exceeds the threshold, at which time the auto-handoff controller 510 changes motor operation to a closed-loop FOC control (708) in which motor current is measured and used to derive rotor speed and position as feedback values in the FOC technique.
At 808, the method includes computing the total BEMF using the Ed and Eq components of the estimated BEMF in the d,q domain. The total BEMF is computed as a vector sum of Ed and Eq, and thus the magnitude of the total BEMF is the square root of the sum of the squares of the magnitudes of Ed and Eq. At 810, the method 800 includes determining whether the Eq component of the estimated BEMF in the d,q domain is within a threshold of the total BEMF. The threshold may be, for example, a percentage of the total BEMF. If the Eq component is not within the threshold of the total BEMF, then control loops back to step 804, open-loop FOC operation continues, and another BEMF estimate in the α, β domain is computed. Open-loop FOC operation continues until the Eq component of BEMF reaches or exceeds the threshold, at which time the auto-handoff controller 510 changes motor operation to a closed-loop FOC control (812) in which motor current is measured and used to derive rotor speed and position as feedback values in the FOC technique.
In this description, the term “couple” may cover connections, communications, or signal paths that enable a functional relationship consistent with this description. For example, if device A generates a signal to control device B to perform an action: (a) in a first example, device A is coupled to device B by direct connection; or (b) in a second example, device A is coupled to device B through intervening component C if intervening component C does not alter the functional relationship between device A and device B, such that device B is controlled by device A via the control signal generated by device A.
A device that is “configured to” perform a task or function may be configured (e.g., programmed and/or hardwired) at a time of manufacturing by a manufacturer to perform the function and/or may be configurable (or re-configurable) by a user after manufacturing to perform the function and/or other additional or alternative functions. The configuring may be through firmware and/or software programming of the device, through a construction and/or layout of hardware components and interconnections of the device, or a combination thereof. As used herein, references to software functions or functional block diagrams may be implemented by software running on a processor, microcontroller or other type of processing device in conjunction with memory, in some example embodiments, or may be implemented using hardware (such as logic gates, processors, application specific integrated circuits, field programmable gate array and/or state machines), alone.
As used herein, the terms “terminal”, “node”, “interconnection”, “pin” and “lead” are used interchangeably. Unless specifically stated to the contrary, these terms are generally used to mean an interconnection between or a terminus of a device element, a circuit element, an integrated circuit, a device or other electronics or semiconductor component.
A circuit or device that is described herein as including certain components may instead be adapted to be coupled to those components to form the described circuitry or device. For example, a structure described as including one or more semiconductor elements (such as transistors), one or more passive elements (such as resistors, capacitors, and/or inductors), and/or one or more sources (such as voltage and/or current sources) may instead include only the semiconductor elements within a single physical device (e.g., a semiconductor die and/or integrated circuit (IC) package) and may be adapted to be coupled to at least some of the passive elements and/or the sources to form the described structure either at a time of manufacture or after a time of manufacture, for example, by an end-user and/or a third-party.
Unless otherwise stated, “about,” “approximately,” or “substantially” preceding a value means +/−10 percent of the stated value. Modifications are possible in the described examples, and other examples are possible within the scope of the claims.
Modifications are possible in the described embodiments, and other embodiments are possible, within the scope of the claims.