This disclosure relates generally to control of electric or electrical motors, and more particularly, to systems and methods for detecting position measurement errors of an electric motor system.
Closed loop control is commonly used to regulate motor torques of high performance AC motors, such as interior permanent magnet (IPM) motors or other types of synchronous electric motors. In a typical closed loop control system, accurate information of the rotational position of a rotor of the motor is required to effectively drive the motor. The position of the rotor is typically measured using a position sensor. For example, a resolver may measure the position of the motor rotor by measuring a position of a resolver rotor that is co-axial and co-rotating with the motor rotor. However, due to factors such as manufacture variations and tolerances, the relative position between the resolver (e.g., the resolver rotor) and the motor rotor is subject to errors, resulting in position measurement errors. The position measurement errors may cause inefficiencies in control and energy consumption, instability in motor operation, or other adverse effects. For example, when an IPM motor supplies motive torque in a vehicle propulsion system, the position measurement errors may cause reduced driving range, reduced torque, and increased noise and vibration.
The present disclosure is directed to overcoming or mitigating the adverse effects caused by position measurement errors.
Motor 150 may be an AC synchronous electric motor including a rotor and a stator (not shown). The stator may include a plurality of poles, with each pole including windings connected to an AC power source, such as a three-phase AC power source. During operation, the AC powered stator may generate a rotating magnetic field to drive the rotor to rotate. The rotor may include windings and/or permanent magnet(s) to form a magnet such that the north/south pole of the magnet is continuously attracted by the south/north pole of the rotating magnetic field generated by the stator, thereby rotating synchronously with the rotating magnetic field. Exemplary AC synchronous electric motors include interior permanent magnet (IPM) motors, reluctance motors, and hysteresis motors. In some embodiments, the control system and method disclosed herein may also be used to control other types of motors.
Motor 150 may be controlled by a motor control system 140. Motor control system 140 may regulate energy transfer from an energy storage device 130 to motor 150 to drive motor 150. In some embodiments, motor 150 may operate in a generator mode, such as when vehicle 100 undergoes speed reduction or braking actions. In the generator mode, the excess motion energy may be used to drive motor 150 to generate electrical energy and feed the energy back to energy storage device 130 through motor control system 140. In some embodiments, energy storage device 130 may include one or more batteries to supply DC power. Motor control system 140 may include a DC-AC inverter to convert the DC power supplied by energy storage device 130 into AC driving power to drive motor 150. For example, the DC-AC inverter may include power electronic devices operating under a pulse-width modulation (PWM) scheme to convert the DC power into AC power.
Vehicle 100 may include a vehicle control module 120 to provide overall control of vehicle 100. For example, vehicle control module 120 may act as an interface between user operation and propulsion system reaction. For example, when a driver depresses an acceleration pedal of vehicle 100, vehicle control module 120 may translate the acceleration operation into a torque value to be output by motor 150, a target rotation speed of motor 150, or other similar parameters to be executed by the propulsion system. Vehicle control module 120 may be communicatively connected to motor control system 140 to supply commands and/or receive feedback. Vehicle control module 120 may also be communicatively connected to energy storage device to monitor operation status such as energy level, temperature, recharge count, etc.
A sensor 152 may detect the position of the rotor of motor 150. For example, sensor 152 may be a resolver assembly including a resolver stator and a resolver rotor. The resolver rotor may be affixed to the motor rotor concentrically or coaxially such that both the resolver rotor and the motor rotor rotate synchronously. The resolver rotor may include a plurality of lobes having eccentricities such that, when rotating, the position of the resolver rotor may be determined by detecting the proximity of the lobed resolver rotor to the resolver stator. The position of the motor rotor may then be determined based on the position of the resolver rotor. Motor control system 140 may receive the positional information as feedback data to determine the proper power application scheme (e.g., PWM switching timing).
For synchronous electric motors such as IPM motors, accurate motor rotor position information may be important to regulate power application. However, due to factors such as manufacture variations and tolerance, the relative position between resolver rotor and motor rotor is subject to error. For example, the error may be due to misalignment between the resolver rotor and the motor rotor. The actual position of the motor rotor, normally the position of the rotor flux used in motor control, may be represented by a direct-quadrature (d-q) coordinate in a reference frame. Similarly, the position of the resolver rotor, which is also the measured position of the motor rotor, can be represented by another d-q coordinate in the reference frame. In the reference frame (e.g., the d-q reference frame), the field flux linkage component (along the d axis) and the torque component (along the q axis) of a three-phase AC signal are decoupled to orthogonal directions d and q. Therefore, the misalignment may be quantified by an angular offset Δθ between the d axis of the motor rotor and the d axis of the resolver rotor.
The angular offset Δθ of a synchronous motor (e.g., an IPM motor) may vary based on the rotor position.
Embodiments disclosed in this application provide a convenient solution to detect and compensate for the offset Δθ. For example, a position estimator may be provided to estimate the position of the rotor, and the estimated rotor position, denoted by {circumflex over (θ)}r, can be used to control motor operation such as reference frame transformations. If the estimated rotor position {circumflex over (θ)}r is the same as the actual rotor position θr, then the estimated rotor reference frame used in the control algorithm also aligns perfectly with the actual rotor reference frame. Under this condition, injecting a voltage signal (e.g., a pulsating, sinusoidal high frequency voltage signal) into the d-axis of the estimated (also the actual) rotor reference frame would result in zero q-axis current in response when the motor operates in low speed or in a stalled position. However, if the estimated rotor position {circumflex over (θ)}r is different from the actual rotor position θr, for example having a difference Δθr, then injecting a voltage signal into the d-axis of the estimated rotor reference frame would result in non-zero q-axis current in response to the injection. The non-zero q-axis current response may carry information of the difference Δθr and can be demodulated to extract the information of the difference Δθr. A observer can be used to drive the difference Δθr to zero by adjusting the estimated rotor position {circumflex over (θ)}r. Once the difference Δθr converges or is driven to a sufficiently small value, the output of the position estimator may be deemed the same as or very close to the actual rotor position. The offset between the actual rotor position and the measured rotor position Δθ can also be determined.
Embodiments of the present application can inject a probing voltage signal into the motor system to generate a feedback response from the motor system. The voltage signal may be a pulsating sinusoidal voltage having a predetermined magnitude and a predetermined frequency. The voltage signal may be injected into the d-axis of the estimated rotor reference frame in low speed or zero speed condition. The position estimator may estimate the actual position of the rotor by reducing the estimation error, e.g., the difference between the estimated and actual rotor positions extracted from the response current in the q-axis of the estimated rotor reference frame. For example, based on the response, the position estimator can adjust the estimated rotor position {circumflex over (θ)}r, until the response indicates that the estimation error Δθr is substantially zero.
The detection of Δθ can be configured to be performed at various times, and can be based on an operation status of the vehicle (or the motor). For example, the detection can occur before the motor is started or within a relatively short time after starting. In another example, the detection of Δθ may be performed periodically according to a maintenance schedule. In another example, the detection of Δθ may be performed on demand. In another example, the detection of Δθ may be performed when a key to vehicle 100 disengages vehicle 100.
In regular motor control, the current command ids* and iqs* may be input to a current regulator 520 as references. Current regulator may determine the difference between ids* and feedback current ids and the difference between iqs* and feedback current iqs to control a voltage command (vds and vqs). The voltage command in the d-q reference frame may be converted into actual phase voltages (va, vb, and vc), based on an output rotor position θobsv, by a two-phase to three-phase transformer 530. The output rotor position θobsv can be provided by a speed and position observer system 560, the detail of which will be disclosed below. The actual phase voltages may be input to a PWM invertor 540 to drive motor 150. Phase currents (ia, ib, and ic) may be measured and processed by a three-phase to two-phase transformer 550 to provide feedback currents (ids and iqs) in d-q reference frame to current regulator 520, again based on the output rotor position θobsv.
As discussed above, speed and position observer system 560 may be used to provide output rotor position θobsv. Speed and position observer system 560 may determine θobsv based on a measured rotor position θmeas provided by a position sensor 570, which can sense a position of the rotor (e.g., a physical rotor position) within the motor and provide the information to speed and position observer system 560. The output rotor position θmeas typically includes a position offset Δθ compared to the actual rotor position (e.g., the rotor flux position used in motor control). Speed and position observer system 560 may determine θobsv by compensating for at least a part of the position offset Δθ in θmeas. Speed and position observer system 560 may also determine the rotational speed ωr based on at least one of θmeas and θobsv.
As shown in
Position estimator 580 may inject the probing voltage signal during a predetermined time period or when motor 150 is operating under a predetermined condition, to generate the feedback response signal. For example, the probing voltage signal may be injected when the rotor of motor 150 is in a stall position, during a startup process, or within a relative short period after the rotor of motor 150 starts to rotate (e.g., within 0.5 second, 1 second, 2 second, 5 second, etc.). In another example, the probing voltage signal may be injected when the rotational speed of the rotor is below a predetermined threshold (e.g., below 1%, 2%, 5%, or 10% of the base speed).
In some embodiments, the probing voltage signal can be in the form of a voltage signal, and can be added to the voltage command output of one of the axes of the d-q reference frame (e.g., vds or vqs) of current controller 520. For example, as shown in
In some embodiments, each of MPTA 510, current controller 520, transformers 530 and 550, PWM inverter 540, speed and position observer system 560, and position estimator 580 may be implemented by one or more processor devices executing an algorithm and/or instructions stored in a memory device. In some embodiments, these components may be implemented by one or more circuits configured to perform functions such as signal application or injection, signal sampling, signal filtering, signal amplification or attenuation, logical operation, etc. In some embodiments, these components may be implemented by a combination of processor device(s) and circuit(s).
Here, Rs is stator resistance, ωr is the rotational speed of motor 150, while idsr and iqsr are stator currents in the rotor reference frame. Further, Lds, Lqs are the inductances in the synchronous frame, while λf is permanent magnet flux linkage. vdsr and vqsr can represent the voltage command provided to transformer 530, and may include the aforementioned probing voltage signal provided by position estimator 580. For example, in a case where position estimator generates a probing voltage signal vd,HF in the d-axis, vdsr may equal to vd,HF.
For a small rotational speed ωr, and that the probing voltage signal is at a high frequency (e.g., 300 Hz-1000 Hz), equation (1) can be simplified as follows:
The feedback currents, which represent the current responses to the vdsr and vqsr, can be obtained based on the following equation:
The probing voltage signal can be in the form of a sinusoidal voltage signal and is injected in an estimated rotor frame, as follows:
The probing voltage signal can be provided by a signal injector 581. If a difference exists between the actual rotor frame and the estimated rotor frame (e.g., there is an estimation error), which can be represented by Δθr, a probing voltage signal in the d-axis can lead to feedback currents in both the d-axis and the q-axis in the estimated rotor frame. For example, the feedback currents in the actual rotor frame can be determined based on Vdqs,HF{circumflex over (r)}, equation (3), and Δθr as follows:
The currents in the estimated rotor frame can be calculated based on equation (5) and an inverse rotation matrix, as follows:
The q-axis feedback current iqs{circumflex over (r)} in the estimated rotor frame, which can be represented by the expression
can be further processed to deduce the position estimation error Δθr. For example, as shown in
The output εHF can then be scaled by a factor Kdm, which equals to
to obtain the position estimation error Δθr. In some embodiments, Kdm can be determined experimentally. For example, a probing voltage signal of known V0 and ωHF can be used to obtain different values of εHF while sweeping the estimated rotor position {circumflex over (θ)}r. Because εHF is a sinusoidal function of Δθr, sweeping {circumflex over (θ)}r is equivalent to sweeping Δθr. After at least a half cycle of the sinusoidal function is obtained, the maximum value of εHF within the at least half cycle may be used to as Kdm.
The above operations can be performed by any combination of algorithms and circuits for digital signal processing.
The generated Δθr can then be provided to an observer 584, which, by adjusting the estimated rotor position {circumflex over (θ)}r based on Δθr, drives Δθr to substantially zero. Reference is now made to
Referring back to
In some embodiments, filter 564 is optional or bypassed. For example, the offset samples can be filtered to provide a result for measurement and testing, while the unfiltered offset samples can be provided directly to the transformers 530 and 550, to avoid additional delay caused by filter 564.
Speed and position observer system 560 can then generate output rotor position θobsv by compensating the measured rotor position θmeas with offset 566, and provide θobsv to transformers 530 and 550, which then perform three-phase to/from reference frame transformation based on θobsv. The position estimator 580 can adjust the estimated rotor position until the estimation error Δθr is substantially close to zero, which can be indicated when the feedback current iqs is substantially close to zero. In this case, the estimated rotor position θest converges to the actual rotor position, and the output rotor position θobsv, which is used for performing three-phase to/from reference frame transformation, has substantially zero offset. In other words, the offset Δθ between the measured rotor position and the actual rotor position can be compensated and accounted for. The actual rotor offset thus determined can then be stored in a memory, and can be provided to the system (e.g., transformers 530 and 550) for future determination of rotor position without having position estimator 580 to inject the probing voltage signal.
In step 810, motor control system 140 may determine the speed of the rotor. For example, the speed may be determined using a position sensor or a speed sensor. When the motor is stalled, the speed of the rotor is zero.
In step 820, motor control system 140 may determine whether the speed of the rotor is zero (stalled) or is not zero but below a predetermined threshold (e.g., below 1%, 2%, 5%, or 10% of the normal operating speed). If speed is not below the threshold (step 820: no), motor control system 140 may wait until the speed is below the threshold or use a stored offset to control the motor (step 830). If the speed is below the threshold (step 820: yes), method 800 may proceed to step 840.
In step 840, after motor control system 140 determines that the rotor is either stalled or has a relatively low speed in relation to the predetermined threshold, motor control system 140 may start the position measurement error detection process to detect an offset between a measured position and an actual position of the rotor. In step 840, signal injector 581 of position estimator 580 may inject a probing voltage signal, such as a voltage signal with a predetermined magnitude and frequency in the d-axis of an estimated rotor reference frame.
In step 850, position estimator 580 receives a response (e.g., in the form of feedback current) in the estimated rotor reference frame (e.g., iqs). Position estimator 580 then adjust the estimated rotor position based on the response and provide the adjusted rotor position estimation to speed and position observer system 560, in step 860. The adjusting of the estimated rotor position may include multiplying the received response with a signal of the same frequency as the probing voltage signal to generate a product, filtering the product with a low pass filter, and scaling the filtered product to obtain an estimation error. The estimation error is then input to an observer (e.g., 584) to adjust the estimated rotor position. The estimated rotor position is adjusted aiming to reduce the estimation error. The adjusted rotor position estimation is then used to compared with the measured rotor position to generate an offset sample, the offset sample can also be combined with other previously-determined offset samples based on an averaging function, to generate an estimated offset.
In step 870, the system may determine whether the estimated offset satisfy a predetermined condition. For example, the estimated offset can be compared to a factory calibration and if it is off by a certain percentage, the estimated offset can be discarded. If the estimated offset satisfies the predetermined condition (i.e., step 870 provides a “yes”), the system can then proceed to step 880 and store the estimated offset, and then to step 890 and provide the estimated offset for future rotor position estimation (e.g., for step 830). If the system determines that the estimated offset does not satisfy the predetermined condition (step 870 provides a “no”), method 800 may return to step 840 to continue injecting the probing voltage signal. In some embodiments, the predetermined condition may include convergence of the estimation error demodulated from the response current in step 860. In some embodiments, the predetermined condition may include substantially zero current response in the estimated rotor reference frame. In some embodiments, the predetermined condition may include convergence of the estimated offset.
The embodiments disclosed above include systems and methods for detecting position measurement errors in electric motors. The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. Thus, these examples are presented herein for purposes of illustration, and not limitation. For example, steps or processes disclosed herein are not limited to being performed in the order described, but may be performed in any order, and some steps may be omitted, consistent with disclosed embodiments. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.
While examples and features of disclosed embodiments are described herein, modifications, adaptations, and other implementations are possible without departing from the spirit and scope of the disclosed embodiments. Also, the words “comprising,” “having,” “containing,” and “including,” and other similar forms are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise.
Furthermore, one or more computer-readable storage media may be used in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, i.e., be non-transitory. Examples of computer-readable media include RAM, ROM, volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs, flash drives, disks, and any other known physical storage media.
It is intended that the disclosure and examples be considered as exemplary only, with a true scope and spirit of disclosed embodiments being indicated by the following claims.
This application claims the benefit of U.S. Provisional Application No. 62/353,450, filed Jun. 22, 2016, the entirety of which is hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
9948224 | Huh | Apr 2018 | B1 |
20060119305 | Lee | Jun 2006 | A1 |
20080197799 | Tomigashi | Aug 2008 | A1 |
20080309265 | Terada | Dec 2008 | A1 |
20100264861 | Basic | Oct 2010 | A1 |
20100286948 | Terada | Nov 2010 | A1 |
20100301790 | Liu | Dec 2010 | A1 |
20130320897 | Hirono | Dec 2013 | A1 |
20140145654 | Zhang | May 2014 | A1 |
20140346984 | Shiota | Nov 2014 | A1 |
20180076748 | Yamasaki | Mar 2018 | A1 |
Number | Date | Country | |
---|---|---|---|
20180138841 A1 | May 2018 | US |
Number | Date | Country | |
---|---|---|---|
62353450 | Jun 2016 | US |