METHOD OF CONTROLLING A BRUSHLESS DC MOTOR
20200373861 ยท 2020-11-26
Inventors
Cpc classification
H02P6/08
ELECTRICITY
H02P6/153
ELECTRICITY
International classification
Abstract
A method of controlling the commutation of a brushless direct current motor includes providing sensors which provide a variable output dependent on rotational angle or the relative position of the stator and rotor of the motor. Output from the sensors is sampled at a time between a past commutation event and the next commutation event to be implemented. An angular position between the rotor and stator is determined at the time. The time of the next commutation event is determined based on the next commutation angle, motor speed, and the determined angular position.
Claims
1-5. (canceled)
6. A method of controlling commutation of a brushless direct current motor, said method comprising: a) providing one or more sensors, said one or more sensors being adapted to provide a variable output dependent on a rotational angle of the brushless direct current motor or a relative position of a stator and a rotor of the brushless direct current motor; b) sampling the variable output from said one or more sensors at a time t.sub.n between a past commutation event C.sub.m1 and a next commutation event C.sub.m to be implemented; c) determining an angular position .sub.n between the rotor and the stator at time t.sub.n at said time since the past commutation event from step b); and d) determining a time T.sub.m of the next commutation event C.sub.m based on said time t.sub.n instantaneous motor speed , and output from step c).
7. A method as claimed in claim 6, wherein in step d), the time T.sub.m is based also on a next commutation angle.
8. A method as claimed in claim 6, wherein said time T.sub.m is determined from the equation:
T.sub.m=t.sub.n+(C.sub.m,angle.sub.n)/ where .sub.n is the angular position at time t.sub.n calculated from step c), is a determined or modelled rotational speed, and C.sub.m,angle is an angle of the next commutation event.
9. A method as claimed in claim 6, wherein a speed of the brushless direct current motor is determined by determining an angular change in rotation of the brushless direct current motor from sensor output at two or more known time instances (tn, tn1).
10. A method as claimed in claim 6, where a speed w of the brushless direct current motor is determined from a model of the brushless direct current motor.
11. A method as claimed in claim 1, wherein: said time T.sub.m is determined from the equation:
T.sub.m=t.sub.n+(C.sub.m,angle.sub.n) where .sub.n is the angular position at time t.sub.n calculated from step c), w is a determined or modelled rotational speed, and C.sub.m,angle is an angle of the next commutation event; and the rotational speed w of the brushless direct current motor is determined by determining an angular change in rotation of the brushless direct current motor from sensor output at two or more known time instances (tn, tn1).
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The present invention is now described by way of example with reference to the accompanying drawings in which:
[0015]
[0016]
[0017]
[0018]
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0019] The present invention provides a method to control BDC motors using simple linear sensors whilst but achieving optimal commutation timing.
[0020]
[0021] In block commutation, the commutation pattern changes at every block commutation event, in order to change the direction of the stator induced magnetic field. A high timing precision of the commutation event is required. Many angular sensors provide magnetic field raw values requiring signal post processing in order to determine the correct angular position. This processing takes time, making the determination of the commutation event imprecise. As the A/D conversion is on a typical A/D converter is not continuous there is also an undesirable time discretization leading to further error. In addition, scheduling jitter may heavily affect the time precision of the commutation event at high motor speeds. Impacts are torque ripple and lower efficiency.
[0022]
[0023] Aspects of the invention provide methodology to optimize timing precision of the commutation event in a very cost efficient way. In other aspects, the methodology may be implemented using microcontroller hardware.
[0024]
[0025] The converted values of the analog signals are shown by reference 14a and the timestamp of the sampling event 14b are provided to the position signal processing logics 15a and commutation logic 15b. The output of commutation logic 15 b is a timestamp 17 which is input to program a hardware timer 19 to provide an event 110 at T.sub.m. Based on this event the inverter logic block 111 is provides commutation control signals to the inverter for the next commutation table entry (either in hardware or via interrupt or DMA). The problem of jitter and meeting the high precision timing of the block commutation event is solved by using the hardware timer module. A time stamp is sent to the commutation controller/inverter logic block 111 from block 15a/15b.
[0026] The precision problem of the position and speed estimation due to runtime and processing delays (especially at high motor speeds) is solved by doing processing and calculations in a time-based fashion on the processing sensor data at a (relative) known time in the past. From signal data and past commutation data provided at a previous times (e.g. with a corresponding, known times/time-stamps) the next commutation timing/event is determined.
[0027] The time stamp based calculation allows in addition lowering the CPU load at high speeds, because processing time and commutation angle error are uncorrelated.
EXAMPLE 1
[0028] Methodology of aspects of the invention will now be described with reference to
[0029] The sensor outputs from one or more sensors are sampled at a time t.sub.n, to determine the angular position at the corresponding time-point e.g. .sub.n. So in other words, the position signal is used (e.g. by logic circuitry) to computes the measured actual motor position .sub.n (see
[0030] The motor (angular) speed is also estimated. This may be based on one or more older timestamp position pairs .sub.n1/t.sub.n1 and/or modeling of the system. So for example the speed of the motor w can be determined from the equation (.sub.n.sub.n1)/(t.sub.nt.sub.n1)
[0031] To determine the next desired commutation event/time Tm for the next commutation (C.sub.m), the method calculates the commutation time T.sub.m based on the past measured position .sub.n, the timestamp t.sub.n of that past position and the instantaneous speed of the motor.
[0032] In the hardware, the timestamp may be is used to program a hardware timer 19 to provide an event 10 at T.sub.m.
[0033] Based on this event the inverter is reconfigured e.g. in block 110 of
[0034] So in summary, the next commutation event is (T.sub.m) is a function of t.sub.n, .sub.n, and .
[0035] The time of the next commutation event Tm may be
[0036] T.sub.m=t.sub.n+(C.sub.m,anglen)/ where C.sub.m,angle is the next commutation angle.
[0037] Of course, the skilled person would be readily aware of other methods or variation which use these basic parameters to determine the timing of the next commutation even.
[0038] Extrapolation methodology may optionally be enhanced to compensate for acceleration (measured or estimated based on a model):
where A(M) is the acceleration derived from the model M
[0039] External parameters parameters 16 may be input to block 15a/15b in
[0040] If necessary the timestamps may need to be converted between the A/D converter and event timer domains. For this invention no common hardware timer is needed between the event generation and the A/D converterboth timers may in practice run at different clock and have an offset. For the same commutation event T.sub.m the hardware timer value may be updated several times in order to increase accuracy.