See my previous post for introduction.
Briefly, we already learned that 1) removing braking (damping) increases efficiency 2) higher PWM frequency, even without damping, increases efficiency. Here and below we use “damping” as a process of loosing energy via braking.
Experimentally found high_frequency_PWM_efficiency (HF PWM) was not yet understood, to the best of my knowledge, few attempts of explanation were based on acceleration-deceleration, mechanical vibrations, dead times of MOSFET’s etc. Here is my explanation based on electrical properties of LR circuits and waveform shapes (dispersion from statistical point of view, meaning measure of deviation from average).
Similar to what I already wrote , PWM controlled motor is NOT equivalent to voltage change with duty cycle. Torque is ruled by average current, while loses are ruled by rms current.
Lets us consider PWM current with I0 amplitude and d duty ratio. Average current is Iavg_pwm=I0*d; heat dissipation Ploss caused by such current is Ploss=I02*d*R, but not Ploss=Iavg_pwm2*R.
To produce the same torque (torque is proportional to the average current) in the case of DC current Iavg_dc we will have Ploss_dc=Iavg_dc2*R, while with PWM we will have Ploss=I02*d*R=Iavg_pwm/d*R, and since d<1, Ploss_pwm is higher than Ploss_dc (at he same torque). In the case of arbitrary waveform this is similar, any arbitrary current waveform will give higher heat dissipation than DC at the same average current.
Fig.1 Same average current produces different heat dissipation in dependence on current waveform.
Let us consider BLDC operation. 1. At fixed throttle for damped current we have current through resistance of the coil for longer time, compared to undamped; so loses (heat) are higher even if the rest of the current is fully utilized via regeneration. 2. Shape of waveforms changes with damping and PWM frequency.
Fig. 1. Top row: waveforms at 24kHz undamped (left) and damped (right); bottom row: similar for 48kHz. Top: coil voltage, middle: coil current, bottom: battery current (short negative spikes of the battery current at right plot is current into the battery (regeneration, see)).
Some people still get confused with the meaning of “damping”. Here and always I mean “damping” as a process of braking (retarding torque) that appears at each PWM cycle when “synchronous rectification” (or shunt of body diode by MOSFET) is applied, even at steady rotation at fixed throttle. See details here. Sometimes I use “negative torque” and “negative current” with the same meaning. When there is coil current with the direction opposite to the current from Vbat to the coil it produces retarding torque.
Damped firmware makes situation even worse: for example, if braking current (negative) is equal to accelerating positive current, average current (and torque) is zero, at the same time there is strong I2R Joule heat. Any damping decreases average current and increases heat dissipation and therefore reduces efficiency.
At very high frequency or larger inductance the coil current does not have enough time to relax and the waveforms gets close to pure DC current. This is more efficient (less heat per the same torque). The drawback is lack of braking, because current does not relax to the level when Bemf changes current direction for retarding (see (Fig.11), when IR is more than Bemf there is no braking because current flows the same direction of positive torque) .
Fig.2 192 kHz frequency and 5uH inductance (left); 24kHz and 50 uH inductance (right). Current does not have time to relax to the level IR<Bemf where direction changes for braking, sure there is no regeneration current in this case also. The advantage is less heat loses, because current has lower dispersion (statistics) and rms current is close to average current (RMS=average for DC).
Sure, analytical expressions of Ploss and Iavd can be easily obtained, similar to what I did in similar consideration for brushed motors. But I believe it is not needed, we just need to have some estimation what’s going on. We have very good match of experimentally measured current waveforms and the ones predicted with our simulation model. So we can just perform numerical calculations of the curves obtained in simulation. The range is shown in Fig.1, the simulations were done for 24,48,96 kHz PWM (damped and not) at throttles 10:10:90.
We should compare obtained values not versus throttle position, but rather average current, because torque is determined by average current. More precisely we should also take into account rpm, because thrust is determined by mechanical power (which is torque*rpm), see , but for rough estimation we neglect it.
Here is power dissipated at the coil’s resistance vs average coil’s current:
Fig.2 Power dissipated at the coil’s resistance. Black line shows minimal possible limit, it can be reached with DC current.
We can see that our model provides results that are in agreement with experimentally observed, even if regeneration is perfect and other loses are not included (e.g. mechanical, iron, etc),. At currents >0.8 (hovering current) we have no much difference for 48kHz damped and undamped, for 24kHz this difference is more significant. We also obtained that 48kHz damped is close to 24kHz undamped. 96 kHz (not yet tested) should provide slightly better efficiency, compared to 48kHz version, but not that significant difference as 48kHz compared to 24kHz. Theoretically, we can get as much as 3-4 times less (vs 24 kHz damped)) heat at hovering current of ~0.8 A (though ultra HF PWM is practically limited by off-on time of MOSFETs and other factors).
May be this is a time to redesign FW to new principles? For example, get rid of PWM, and replace it with single pulse with variable width, to change torque not by current (via PWM) but duration of the pulse of maximal current . The efficiency will be close to DC theoretical limit at the same time it will make lower loses related to MOSFET and iron switches. According to GCT and my estimations, if efficiency of tiny whoop would close to DJI Mavic Pro, flight time (at hovering) would be around 10 min with 250 mAh battery.
Seems I’m at the end of my personal journey:
- Inspired by the fact that all rotor apparatus have some theoretical flight time that depends only on weight and rotor diameter (Great Copter’s Theorem and examples) I tried to fit tiny whoops to the model and found that their efficiency is less than 10-15% (compared to typical 30-50% for big drones.
- Sine then I have feeling that something is wrong and tried to find out why it happens. I developed online tool to analyze motor-propeller performance, and built test stand for micromotors. The finding was unexpected shape of curves for PWM controled brushed motors and unexpected current from brushless motors.
- After I realize that strange current is braking current I had an idea that the braking is the only reason of low efficiency (actually only partly) and checked it with removing the braking from BHeli_S. Flight time increased by 30%, but later it was found that 0802 motors with the original BLHeli_S firmware have the same efficiency as 0603 with no-damping firmware. This made me think that the reason of low efficiency is not only excess damping. (Actually 0603 vs 0802 is still need to be understood, I have some ideas for later).
- After joelucid released 48kHz version people found that efficiency of 48kHz is significantly higher than 24 kHz (damped or not) and I’ve confirmed that. It is clear that the reason is not only reduced damping with higher PWM. So I reconsidered all the facts again and this post is what I currently think. Interesting that this explanation should work for both PWM controlled brushed and brushless (and I was close when tried to measure efficiency vs PWM frequency for brushed motors, but frequency was not high enough to see the difference).
1. The efficiency of small motors drops at relatively low PWM frequency (24kHz) because of small inductance of the coil. When inductance is small current follows PWM signal and this makes heat dissipation stronger compared to DC current of the same average value. Damping makes torque (average current) lower at the same time it produces more heat (even if rest of the current fully utilized via regeneration)
2. Higher PWM frequency is better for efficiency, but braking is weaker. Upd: see next post, at 96kHz there is no damping (braking) even at 30% throttle.
3. Braking (damping) does not occur even at 24 kHz when duty ratio>0.7 (see also experimental), and may not occur at all if PWM frequency is very high (upd see there is no damping at 96kHz).
4. Bigger motors have larger inductance and efficiency is higher even at relatively lower PWM frequency, the damping should also be weaker.
5. The limit of improvement is efficiency at DC current.
6. The findings make questionable motor braking. If braking (damping) is not efficient (or does not happen at all) at high throttle or high PWM why it is needed? For stability at hovering and start up only?