**METHOD OF ACCURATELY DETERMINING ANGULAR ROTOR POSITION FROM A RAW SIGNAL**

KAYAN ERTAN (LU)

*;*

**G01D5/244**

**H02P6/16**DE102013224243A1 | 2015-05-28 | |||

US20090066324A1 | 2009-03-12 | |||

US20100225307A1 | 2010-09-09 |

CLAIMS 1. A method of determining a refined angular position (18*) of a rotor of an electric motor comprising the steps of : a) providing, in respect of a rotating electric motor rotor, a raw signal indicative of raw angle of the rotor (Angle_raw) (10); b) from step a), computing a signal indicative of the change of angle ((Angle delta) (13) over a sample time interval; c) processing said signal from b); wherein said processing includes a filtering step, to provide a filtered signal indicative of angular change (Angle _delta Jilt) over said time interval (15); d) determining a signal indicative of refined filtered angle (Angle Jilt) (18*) by adding the value of the refined filtered angle computed (18*) at the previous sample timepoint to the value of the signal determined from step c), characterized in additionally adding an angle compensation (signal) value (21) (Angle_comp) thereto. 2. A method as claimed in claim 1 where said refined filtered angle (18*) at timepoint of sample n is compute at step d) from the following equation: Angle Jilt Angle_delta ilt Angle_comp : is an angle/drift compensation value is computed based on the difference (Angle_error) between raw angle of step a) and refined filtered angle determined at step d). 3. A method as claimed in claim 1 or 2 wherein step b) comprises determining the value of the signal of raw angle at first/current sample timepoint (t 4. A method as claimed in steps 1 to 3 wherein said compensation angle value (21) is determined by determining an angle error (Angle _err or), based on signals from step a) and value (18*) Angle filt determined at step d). 5. A method as claimed in steps 1 to 4 wherein said compensation angle value (21) is determined by determining an angle error (Angle _err or), based on the difference between signals from step a) and a time delayed value of the value (18*) Angle filt determined at step d). 6. A method as claimed in claim 5 wherein said time delayed value of the value (18*) Angle filt determined at step d) is time delayed by a sample or processing interval time. 7. A method as claimed in steps 1 to 6 wherein said compensation angle value (21) is determined by determining an angle error (Angle _err or), based on the difference between signal from step a) and the value (18*) Angle filt 8. A method as claimed in steps 1 to 7 wherein said compensation angle value (21) is determined by determining an angle error (Angle _err or), based on the difference between signal value from step a) and a time delayed value (18*) Angle filt , said time delay being equal to a processing or sampling time. 9. A method as claimed in claim 7 or 8 wherein said angle compensation value (21) is determined based a value (26) obtained by applying a gain to the determined angle error (Angle_error) (24). 10. A method as claimed in claim 7 to 9 wherein said angle compensation value (21) is determined based a value (28) obtained by integrating the angle error (Angle_error) signal value (24). 11. A method as claimed in claim 7 to 10 wherein said angle compensation value (2)1 is determined based on a value (28) obtained by integrating the angle error (Angle_error) as well as on a value (26) obtained by applying a gain to the determined an angle error (Angle _err or). 12. A method as described in any preceding claim further comprising returning the signal of refined filtered angle to the electric motor. |

TECHNICAL FIELD

This relates to electric motors and to a method and system of accurately determining the angular rotor position of an electric motor from a raw sensor signal indicative of (angular) rotor position. It has particular but not exclusive application to motors for electric vehicles.

BACKGROUND OF THE INVENTION

Many vehicle electric motors are equipped with sensors to provide angular displacement information of the rotor such as a double inductive position sensor that provide analog sine and cosine signals corresponding to the rotor position. These analog signals are e.g. sampled by the ECU every lOOps to compute the actual rotor position/speed.

An e.g. inductive position sensor used on a power electronics application typically returns two analogue voltages which correspond to sine and cosine value of the rotor position (angle). In the prior art, these two voltages are normalized (rescaled between -1 and 1) and filtered using ATO (Angle Tracking Observer) methodology.

The problem associated with this is the fact that the 3 ^{rd } order Angle Tracking Observer (ATO) is not very stable at high speed and it needs lot of CPU resources.

It is an object of the invention to overcome these problems.

SUMMARY OF THE INVENTION

In one aspect is provided a method of determining a refined angular position of a rotor of an electric motor comprising the steps of: a) providing, in respect of a rotating electric motor rotor, a raw signal indicative of raw angle of the rotor (Angle_raw) ; b) from step a), computing a signal indicative of the change of angle ((Angle delta) over a sample time interval; c) processing said signal from b); wherein said processing includes a filtering step, to provide a filtered signal indicative of angular change (Angle _delta Jilt) over said time interval; d) determining a signal indicative of refined filtered angle (Angle Jilt) by adding the value of the refined filtered angle computed at the previous sample timepoint to the value of the signal determined from step c), characterized in additionally adding an angle compensation (signal) value (Angle_comp) thereto.

Said refined filtered angle at timepoint of sample n may be computed at step d) from the following equation:

Angle Jilt _{n } = Angle Jilt _{n-r } + Angle_delta ilt _{n } + Angle_comp where Angle Jilt _{n-r } : the previous sample value of the filtered angle; n representing an integer of the sample;

Angle_delta ilt _{n } : is. the angle difference between two consecutive samples of Angle_raw (Angle raw _{n } - Angle raw _{n }-i) from step c);

Angle_comp : is an angle/drift compensation value is computed based on the difference (Angle_error) between raw angle of step a) and refined filtered angle determined at step d).

Step b) may comprise determining the value of the signal of raw angle at first/current sample timepoint (t _{n })) and the value of the signal of raw angle at a second/previous sampled time point (t _{n }-i), said timepoints separated by a sample time interval; and determining the difference (Angle_delta) therebetween.

Said compensation angle value may be determined by determining an angle error (Angle _err or), based on signals from step a) and value (Angle filt determined at step d). Said compensation angle value may be determined by determining an angle error (Angle _err or), based on the difference between signals from step a) and a time delayed value of the value Angle filt determined at step d).

Said time delayed value of the value Angle filt determined at step d) may be time delayed by a sample or processing interval time.

Said compensation angle value may be determined by determining an angle error (Angle _err or), based on the difference between signal from step a) and the value Angle filt

Said compensation angle value may be determined by determining an angle error (Angle _err or), based on the difference between signal value from step a) and a time delayed value Angle filt , said time delay being equal to a processing or sampling time.

Said angle compensation value may be determined based a value obtained by applying a gain to the determined angle error (Angle_error).

Said angle compensation value may be determined based a value obtained by integrating the angle error (Angle_error) signal value.

Said angle compensation value may be determined based on a value obtained by integrating the angle error (Angle_error) as well as on a value obtained by applying a gain to the determined an angle error (Angle_error).

The terms “signal” and “value” can be regarded as interchangeable. “Sample interval” means a sample time interval or a processing time interval.

That is e.g. step b) comprises determining the value of the signal of raw angle at first and second time points separated by a sample or computational time interval; and determining the difference (Angle_delta) 13 therebetween. The term “sample timepoint” can be considered a “computational timepoint”

In another aspect, provided is a method of determining a refined angular position of a rotor of an electric motor comprising the steps of: a) obtaining, from the the rotating electric motor rotor, a raw signal of raw angle of the rotor (Angle _raw) b) from step a), computing a signal of change of angle ((Angle delta) over a sample time interval; c) processing said signal from b); wherein said processing includes a filtering step, to provide a filtered signal of angular change (Angle _delta Jilt) over said time interval; d) computing a signal of refined filtered angle (Angle Jilt) by adding the value of the refined filtered angle computed at the previous sample timepoint to the value of the signal determined from step c) and adding an angle compensation (signal) value (Angle_comp) thereto so as to provide a refined angular position of the rotor of the electric motor.

The method may further comprise sending the signal of refined filtered angle to the electric motor. As such, providing the benefit of providing the rotor with an accurate angular position in a manner that is stable at high speed and minimises the use of CPU resources. The signal of refined filtered angle may preferably be sent to a controller of the electric motor such that the controller clan make real time adjustments to the operation on the rotor in view of the provided refined filtered angle.

Said refined filtered angle at timepoint of sample n may be computed at step d) from the following equation:

Angle Jilt _{n } = Angle Jilt ^ + Angle_delta ilt _{n } + Angle_comp where Angle Jilt _{n-1 } : the previous sample value of the filtered angle; n representing an integer of the sample; Angle jielta_filt _{n } : is. the angle difference between two consecutive samples of Angle_raw (Angle raw _{n } - Angle raw _{n }-i) from step c);

Angle_comp : is an angle/drift compensation value is computed based on the difference (Angle_error) between raw angle of step a) and refined filtered angle determined at step d).

The initial signal of refined filtered angle, i.e. n=0 so there are no previous values of Angle_filt _{n } may be determined as follows:

Angle_filt _{0 } = Angle_raw _{0 }

Step b) may comprise determining the value of the signal of raw angle at first/current sample timepoint (t _{n })) and the value of the signal of raw angle at a second/previous sampled time point (t _{n }-i), said timepoints separated by a sample time interval; and determining the difference (Angle_delta) therebetween.

Said compensation angle value may be determined by determining an angle error (Angle _err or), based on signals from step a) and value (Angle filt determined at step d).

Said compensation angle value may be determined by determining an angle error (Angle _err or), based on the difference between signals from step a) and a time delayed value of the value Angle filt determined at step d).

Said time delayed value of the value Angle filt determined at step d) may be time delayed by a sample or processing interval time.

Said compensation angle value may be determined by determining an angle error (Angle _err or), based on the difference between signal from step a) and the value Angle filt Said compensation angle value may be determined by determining an angle error (Angle _err or), based on the difference between signal value from step a) and a time delayed value Angle filt , said time delay being equal to a processing or sampling time.

Said angle compensation value may be determined based a value obtained by applying a gain to the determined angle error (Angle_error).

Said angle compensation value may be determined based a value obtained by integrating the angle error (Angle_error) signal value.

Said angle compensation value may be determined based on a value obtained by integrating the angle error (Angle_error) as well as on a value obtained by applying a gain to the determined an angle error (Angle_error).

The terms “signal” and “value” can be regarded as interchangeable. “Sample interval” means a sample time interval or a processing time interval.

That is e.g. step b) comprises determining the value of the signal of raw angle at first and second time points separated by a sample or computational time interval; and determining the difference (Angle_delta) 13 therebetween. The term “sample timepoint” can be considered a “computational timepoint”

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is now described by way of example with reference to the accompanying drawings in which:

Figure 1 shows a rotor position sensor system and the resulting signals therefrom; Figure 2 shows an alternative simple prior art system/method, where a raw signal indicative of rotor angular position (Angle_raw) of an electric motor is used to determine change in angle ( Angle _delta);

Figure 3 illustrates an example of the invention

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Figure 1 shows a rotor position sensor system on the left and on the right the resulting signals therefrom. So figure 1 shows a diagram of an inductive motor position sensor 1, showing rotor 2, stator 3, induction 4, transmitter coil 5, receiver coil 6 and electronics (chip) 7. On the right is shown the signals generated from such a sensor and from these a (raw) angle signal may be obtained.

In prior art systems a 3rd order angle tracking observer (ATO) is used to obtain filtered position and speed from the raw angle. The disadvantages have been discussed above.

Figure 2 shows an alternative simple prior art system/method, where a raw signal indicative of rotor angular position (Angle_raw) of an electric motor is used to determine change in angle (Angle_delta) over a time interval i.e. the angular difference between e.g. the present and the previous raw angle samples; i.e separated by a sampling time interval.

The block diagram shows this is performed by subtracting a time delayed value of raw angle 11 from the raw angle 10 at block 12 to give a value of the change in angle (Angle_deltd) 13.

Control blocks 8 and 9 (1/Z) represents the time delay.

A basic low pass filter 14 is used to the filter the delta angle (Angle delta)13 to provide filtered signal 15 (Angle _della Jill).

A final filtered angular position (Angle Jilt) 18 is obtained by summing the previous (sample) filtered angular position sample 16 (obtained by applying by applying a time delay (1/Z)) at 9 ) and the filtered angle delta 15 at 17. AGin the time delay is the sampling or processing time interval.

During motor acceleration/deceleration, the angle delta lag (induced by the low pass filter) causes a position drift. This drift is cumulated on each filtered angle computation and can reach up to 20° at the end of speed ramp-up.

Invention

The problem of calibration issue, accuracy and CPU load are solved by filtering the delta position and applying a drift correction (angle compensation) to compensate filter lag while high acceleration.

In an example, the filtered angular position Angle_filt _{n }is computed using the following formula:

Angle_filt _{n } = Angle_filt _{n-1 } + Angle _delta_filt _{n } + Drift /Angle _comp where:

Angle_filt _{n- 1 } : the previous value (sample value) of the filtered angle; n representing an integer of the sample number;

Angle_delta_filt _{n } : as before i.e. the angle difference between two consecutive samples of Angle _r aw (Angle raw n - Angle raw n.i) after being further filtered using low-pass filter. Again n represents and integer value representing the sample number.

Drift /Angle _comp (Angle_compf. the drift/angle compensation is computed based on the difference (Angle_error) between raw and filtered angle. This difference may be preferably learnt (e.g. using an integrator) to compensate growing drift. In parallel, a fast proportional correction may be is applied. So in other words, a drift or angle compensation correction value is (Angle_comp) is determined and applied to the system of figure 2 to obtain a more accurate value of the filtered angle (Angle Jill)

So, in order to avoid the error accumulation, the drift may be learned by using an integrator and summed to the filtered angle delta. This correction centers the angle error around zero and what remains is the noise that to be eliminated,

Figure 3 shows an example of the invention. It includes the functional components of the prior art methodology/system as in figure 2, with like reference numerals representing the same, but also includes a compensation loop(s) designated by the dotted line 20.

So as before a raw signal indicative of rotor angular position ( Angle _r aw) of an electric motor is used to determine change in angle (Angle_delta) which is e.g. the difference between e.g. the present and previous raw angle sample vlaues. This is implemented as described above with reference to figure 2 .

So the block diagram shows this is performed by subtracting a time delayed value 11 of raw angle from the raw angle at 10. Control block 8 ( 1/Z) represents a time delay, which may be the sample/processing interval. A basic low pass filter 14 is used to the filter the delta angle (Angle delta) 13 to provide Angle _delta Jilt 15.

A final filtered angular position is obtained by summing the previous filtered angle position (Angle Jilt) 18* sample designated 16 (by applying a time delay 9 (1/Z)) and the filtered angle delta 15 at 17; however in addition, at 17 there is a drift or angle correction/compensation (Angle_comp) applied.

So a correction value (Angle_comp) 21 is added to the Angle _delta Jilt 15 and time delayed (sample) of Angle Jilt) 16 to provide the value of Angle Jilt 18* and the correction value is determined as follows:

A time delayed value (signal) 22 of filtered angle (Angle Jilt) 18* is provided by applying time delay block 30, represented again by 1/Z, and is then subtracted from the raw angle 10 at block 23 to produce an angle error (Angle_error) signal 24. The time delay may be equal to the sample interval or the processing time. It may be tuned to an optimum depending on processing time. The time delay is preferred to overcome problems regarding algebraic loops, and preferably equal also to the sample time above.

A gain is then applied (via block 25) to this Angle_error signal, to provide the signal/value 26. It should be noted that the gain may be any value including 1 i.e. no gain. In addition or alternatively the value of Angle error is input to an integrator (27) i.e. the signal is integrated to provide a signal 28. Before being input to the integrator there may optionally be applied an additional gain 40 in this path also.

An angle compensation value (Angle_comp) 21 computed can be the value of the signal 26 and/or the value of the signal 28. Preferably the angle compensation value is determined by adding the signals 26 and/or 28 (components); i.e. Angle_comp 21 is determined by adding both the value of 26 and 28.

The advantages of this invention compared to the prior art are: the speed and position calculation robustness by filtering the delta angle inconsistency; and the reduction of the CPU load compared to prior art methodology ATO method.

**Previous Patent:**MACHINE TOOL FOR THE SHAPING PRODUCTION OF AN ARTICLE AND METHOD FOR PRODUCING AN ARTICLE

**Next Patent: AQUEOUS BATTERIES WITH HIGH REVERSIBILITY**