About half a year ago,I posted something about an ESC I was developing, receiving good comments how other builders already achieved some of my things ages ago or are just in the final stages of working out the new ESC at their lab (see px4ESC for example).
The picture above shows four generations of my ESC that were produced over the last half year. Only the left one was really used. The second left is the same design, but produced for smaller components and in a suitable layout for hiding the ESC in a multirotor arm (74x18mm).
The left one is now actually working with field oriented control. I just posted a video how that sounds. Be careful, at specific rpm's there are some grinding noises (to be investigated), which sound like nails on chalkboard (or worse), so if you hate that sound, you can turn sound off now:
Field Oriented Control is where a motor is controlled in such a way that (ideally) the current flowing through the motor is at 90 degrees with respect to the rotor flux, because at that angle the torque is at its maximum. How does that work?
Hardware wise, you need 2 current sensors (each installed after the mosfet bridge on a different phase) and a resistor bridge to get the bus voltage.
Software wise, the current sensors are used to derive not one, but two 'back-emf signals' in a 2-axis representation of the motor (Clarke/Park transform).
By observing the change of the angle over time it is possible to derive the rotational speed of the motor.
Although I really like the very low noise level (and supposedly vibration too) I'm not sure yet whether FOC is going to be the way forward for multirotor ESC's:
- FOC is meant to be used on PMSM's, which are motors that produce a more sinusoidal back-emf signal. BLDC's though produce a trapezoidal signal. This has an impact how well the angle is tracked and thus efficiency.
- FOC algorithms utilize available energy efficiently, but produce about 15% less maximum torque, because it doesn't direct current into inefficient angles. So a conventional ESC just opens a mosfet for X time to generate torque there, if it's considered to be in that 60-deg quadrant.
- FOC is also heavily associated with PI(D) control, to be able to control RPM and torque. The theory suggests that this linearizes the behavior of the ESC from the perspective of the AP, so that the system overall gets more control bandwidth. I think this is true for steady-state conditions, but for very dynamic situations like multirotor control I'm not sure, it's probably more important there to have very fast responses. Possibly, what the ESC with PI(D)s would do is achieve the same level of response regardless of AUW, etc. or change this behavior linearly in comparison to system load instead of just blowing up the system controls.