This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Brushless FOC efficiency

Other Parts Discussed in Thread: DRV8301, DRV8312, TMDSCNCD28069MISO, DRV8301-69M-KIT, TMS320F28069

Hello,

If my one any ony concern is efficieny,  is it advantageous to use FOC instead of regular trapezoidal commutation ?

I'm using a sensorless brushless outrunner motor at ~5000 rpm.

  • Efficiency is an interesting topic when it comes to control techniques.

    From an applied waveform perspective you will get the best efficiency (shafte torque / input power to the inverter) - based on airgap power- by matching the back-emf waveform of the motor. So if your motor is truly trapezoidal you would probably want to use a trapezoidal switching technique, if sinusoidal a space vector approach.

    There is then the topic of switching losses. With a 3-leg sine technique, at the same switching frequency you will have more INVERTER losses than a 2-leg 6-step technique. But some 3-leg techniques may allow for slightly lower switching frequencies.  MOTOR losses are typically higher in a BLDC motor, especially if an incorrect current waveform is used to control the motor.

    Then there is the topic of dynamic control. In highly dynamic applications the superior current control and torque response of FOC can often be the dominant factor in efficiency gains.  Also, when looking at a given application, if using FOC allows you to change the motor to an appropriately sized motor (using field weakening if higher speeds are needed) this can save energy.

    But in general, running a motor in a low dynamics application at max speed, the BLDC technique is likely to give higher efficiency.

  • "running a motor in a low dynamics application at max speed, the BLDC technique is likely to give higher efficiency"
    What do you mean by: "BLDC technique"

  • 6-step trapezoidal

     

  • I'm trying to decide about the most suitable commutation technique for 4 brushless sensorless outrunner motors of a quadrotor.

    The machine has onboard MCU's with enough computational power to run the FOC algorithm - but I'm not sure that it's the best choise.

    The most important things for me are:


    1. Reliability   

    2. Efficiency

    3. Responsiveness

     

    Would you go with FOC or six step trapezoidal ? 

     

  • HI Shai,

    Difference in efficiency will be hard to measure and if you want to truly optimize you will need to do it properly. This means testing both drives at different operating conditions, measuring mechanical power, electrical power supplied to the machine and electrical power to inverter. Then you can get efficiency for the machine, power stage and whole drive. Now depending what is your optimization criteria you choose better method (might be cooling of power stage, so you would choose method which yields best efficiency for power stage). Of course in order to get proper results you would need a sensored solution just to compare it with your sensorless algorithm as any misalignment can have an impact on drive efficiency. Obviously you would need to make these measurements in wide temperature range as it is probably expected that machine and power electronics will heat up.

    From systems point of view it is much easier with FOC to get in the field weakening range if you need to exdend speed range. The efficiency will be much lower though.

    All this said, it is impossible for anyone to answer your question with certainty thus I would go with what is easier for you to implement and worry about the efficiency later.

    Best regards, Mitja

  • Mitja,

    thanks for the good response.

    shai kon,

    the motors used in hobby applications are very interesting. because they need to run high speed they will have a very large RoverL (but often much higher than required).  Because they want to limit I2R losses they make the R as small as possible, which means the L is as close to 0 as you will tend to find.  I think they also want to limit L to limit the cost as well (as few turns of copper as possible).  And then they design with high enough flux for stability, but this causes an enormous rated short circuit current (flux / L).  This flux is actually MASSIVELY over designed for the torque they want to produce.These motors are MUCH different than a motor designed for most industrial/appliance applications.

    Here are parameters I've seen from these type of motors. Ex:

    • 40mOhm, 1.7uH, 1.44mVsec, 847A Isc, RoverL = 23KHz!
    • 42mOhm, 8uH, 3mVsec, 375A Isc, RoverL = 5.25 KHz
    • 24mOhm, 20uH, 3.4mVsec, 170A Isc = 12 KHz
    • 10mOhm, 4.2uH, 23mVse,  5476A Isc (on 350A rated) !!!, RoverL = 2.4 KHz (motor is only run to about half of that, at 20 poles for 7k RPM)

    The L is much smaller than is needed as these motors will never run more than 2 KHz typically in their application. And by making the L so low they have made the flux much larger than necessary.  And this low L actually COSTS MONEY to make! To make a motor with lower L, you need a larger airgap and hence a thicker magnet to create enough flux in the airgap.

    I think the biggest reason they are done this way is a misundersanding of the costs and a desire to lower R.  But another reason is because they really have never been designed to be controlled by a model based closed loop observer like FAST.  They are designed for voltage control stability only. So in choosing a low R to limit losses they are choosing a low L for stability (stability that can be acheived with a much higher L if you use FAST!!).   It is similar to what Stepper manufacturers have done; In stepper motors stability is reached by high Rs values (some people add external Rs to steppers to broaden the operational speed range). With these hobby motors they did the opposite, they reduced Ls and added more magnets.  Both steppers and hobby motors have one thing in common: the motor designers have modified the design to reach high Rs/Ls values to get reasonable frequency stability because FAST did not yet exist :)

    For hobby motors there are several different electronic controls that are sold. I'm not an expert on them, but there are several styles I'm aware of:

    - some do PWM rather slow (3 KHz) and use a comparator to control the current. The control law is typically based on a average current desired for a commutation period, and "pulses" of current (up to the comparator trip limit) are commanded

    - some essentially just do BLDC 100% commutation and vary the bus voltage to vary the current/torque of the motor

    - some are doing very high frequency PWM (100 KHz) with Bemf type detection for commutation with comparator based current control

    Very, very few (I know of none released) publicly available controllers are doing true field oriented torque control on these machines...because it is quite challenging!  The Back EMF of these motors are often quite ugly (a motor wants to be driven by a waveform that matches its EMF) and the current switches so hard and so fast that it disrupts the typical center aligned average sampling methods used. 

    What we would really like is a motor where Isc is only a few times the rated current needed for maximum torque production (I've seen several of these motors with Isc of 40x+ Irated).  One way to do this is to add some inductance. This could be done at motor design, through the wires to the motor, or at the inverter. If done:

    • Current ripple reduces by an order of magnitude (reducing copper and core losses).
    • di/dt on shunt signals reduces an order of magnitude. Current measurement error reduces much, allowing better low speed+high torque performance.
    • A lower PWM frequency can be used: when using low side shunts, the measured current is better and easier to sample;. Higher duty cycles are possible since pulses become wider, lower dead-time distortion; better sinewave, less acoustic noise, motor runs cooler.
    • Motor ID of Ls is possible.  Most of these motors as-is will not pass our InstaSPIN-FOC Motor ID as the high di/dt creates measurement errors that cause the estimated flux to rise when commanding negative Id.  By using even just 15uH of inductance per phase everything behaves as it should.
    • The motor can be properly designed and flux (magnets) can be REDUCED while still maintaining the same mechanical output!
    • These motors as-is do not allow any field weakening, adding inductance (even external) makes some field weakening possible if necessary.
    • Having FAST available there is no need to keep Rs/Ls abnormally high, any value is OK for FAST (with Rs/Ls designed slightly higher than your maximum Hz). High Rs causes high copper loss, low Ls causes high current ripple (but then flux is over designed to keep voltage stability). Motor designers should be aware that new designs (assuming FAST-control) can lead to lower cost motors.
    • power stage can often be reduced, and if nothign else long-term reliability of the inverter and motor should be enhanced due to the control of the currents in all operation

    One note, as you reach 1.5KHz+ speeds you start to see a drift in your control system if you continue to run at 10-20 KHz sample/control loops.  When you sample and update your control output (an average voltage across three phases) at 100us (10 KHz) the motor doesn't really react for a full two control cycles, and in that time (200us) the rotor could have move significantly. 2 KHz is an electrical revolution every 500us, so in 200us it has made 40% of an electrical revolution. With 4 poles that is 20% mechanical or 72 degrees!  So you really need to do some further compensation for your applied control output in an FOC application.  This is rather simple to do just by correcting the Angle used in the IPARK by a factor based on estimated speed. This will insure you align the stator flux vector to the appropriate angle for proper oriented torque production. Or of course, you can simply increase the sample/control frequency if you have the MIPS available.

    Anyways...high speed TRUE torque control of these motors is certainly challenging  In fact, we think these high speed type motors are probably the toughest control challenge in the motor world due to their existing design.  I've been working with a couple customers and they have had tremendous success (and saving SIGNIFICANT battery usage) even with existing motor designs, but they have put in tremendous effort on their own as well and are really making their own enhancements to the control system (start-up, high speed, further compensation for Rs/Ls changes, etc) all by using FAST.

    I want to make sure you understand the challenge....it will not be "Insta" for these motors...but if you truly want highest reliability, best efficiency (over dynamic operating range, not just max speed), and torque responsiveness than it may be worth your time in investing in using FAST.

  • Thanks so much for your help! I'm a digital board / FPGA designer and no expert in motor control - so forgive me if the following questions are a little basic:

    1. What is "RoverL" ?

    2. What is "Isc" ?

    3. Are "FAST" and FOC are the same things ?

    4. What are the pros and cons of higher commutation frequencies ?

    5. You say: "they have made the flux much larger than necessary" - what are the pros and cons of having very high flux?

    6. You say: "They are designed for voltage control stability only". What do you mean by: "voltage control stability" ?

    8.. You say: "And then they design with high enough flux for stability" - what stability? how are the motors desined for high enough flux?

    9.  You say: "some essentially just do BLDC 100% commutation and vary the bus voltage to vary the current/torque of the motor" - what do you mean by vary the bus voltage? isn't 6 step commutation uses a constat Von ?

    Thanks again!

  • 1. Resistance divided by Inductance (L), which gives a theoretical limit on the stable speed of the motor (in Hz) when driven by a voltage source --> "voltage source stability"

    2. Short Circuit Current.

    3. No. FAST is our premium observer.  It would be analogous to a sliding mode observer (SMO) or flux estimation observer.  FOC is field oriented control and is the technique of a combination of torque and commutation/modulation Control in which you attempt to Orient the Field of your produced stator (stationary) field in a three phase machine in attempt to maximize torque/work from the rotor (rotating) portion of the motor.  FAST (and other observers) are used to estimate the rotor flux position using only currents/voltates and without the use of mechanical sensors in an attempt to make FOC implemenations lower cost and more robust.  FAST is used in what we call InstaSPIN-FOC

    4. Cons are switching losses in the inverter. Pros are tighter control of any torque ripple, and sometimes getting the switching out of the audible range (>20 KHz).  And if you are changing the control along with the commucation frequency it is tighter control of the torque/speed etc. You typically want to switch as low as possible (to reduce losses) while still keeping good enough control of the torque ripple so that it doesn' offse any switchign loss gains.

    5. Flux = magnetic oomph.  Pro = torque production.  Con = $ in magnet cost (both from the raw magnet and from the increased airgap which enlarges the entire motor).  Ideally you want to use the exact correct amount for a given motor design. What I am suggesting in above is that you can create a smaller motor, using less magnetic material, and a smaller airgap and still get the same torque and speed capability...in an easier to control motor that could use a smaller scale power stage that would be more robust thanks to tighter control :).  Now, some motor designers will counter that high Isc is required for highest acceleration and highest efficiency in extremely dynamic applications.  That is the case for some applications, but it could be argued that many motors are designed for these extreme cases and not for the case in which they are actually being used.  A better pairing of application use to machine design (and correct type of machine) to control features is needed.

    6. See #1

    7. poor #7 :(

    8. Flux / Inductance = Isc.  Many of these motors have Isc MUCH higher than their rated current (current they will draw when producing maximum torque).  Usually this is wasted.  If you design the motor so that Isc is very close to Irated you could use a smaller inductance.  Most people are thinking of inductance as something that costs money, and it is if you just add it to your hardware or through wiring, but in machine design it often SAVES COST by allowing a smaller airgap and an overall smaller machine to be build. Caveat: I am not an expert on machine design and there are applications where I understand high Isc is needed for ultra high acceleration (one of the reasons that hysterisis type controls are used with switched reluctance motors)

    9. Some control techniques control the Vbus of the inverter instead of trying to vary the duty cycle of the inverter switches to produce an average voltage.  It can be an eaiser technique, and especially with very low power/current motors (many small fans used for cooling) it is essentially just as efficient (and easier - look up 2-wire fans)

     

  • 1. Resistance divided by Inductance (L), which gives a theoretical limit on the stable speed of the motor (in Hz) when driven by a voltage source --> "voltage source stability"

    Speed in Hertz? How is it calculated?  

    2. Short Circuit Current.

    The current that will flow if I simply connect a dc source between 2 phases ?

    3. No. FAST is our premium observer.  It would be analogous to a sliding mode observer (SMO) or flux estimation observer.  FOC is field oriented control and is the technique of a combination of torque and commutation/modulation Control in which you attempt to Orient the Field of your produced stator (stationary) field in a three phase machine in attempt to maximize torque/work from the rotor (rotating) portion of the motor.  FAST (and other observers) are used to estimate the rotor flux position using only currents/voltates and without the use of mechanical sensors in an attempt to make FOC implemenations lower cost and more robust.  FAST is used in what we call InstaSPIN-FOC

    What technique gives the overall highest performance (FOC or FAST) ? 

    4. Cons are switching losses in the inverter. Pros are tighter control of any torque ripple, and sometimes getting the switching out of the audible range (>20 KHz).  And if you are changing the control along with the commucation frequency it is tighter control of the torque/speed etc. You typically want to switch as low as possible (to reduce losses) while still keeping good enough control of the torque ripple so that it doesn' offse any switchign loss gains.

    5. Flux = magnetic oomph.  Pro = torque production.  Con = $ in magnet cost (both from the raw magnet and from the increased airgap which enlarges the entire motor).  Ideally you want to use the exact correct amount for a given motor design. What I am suggesting in above is that you can create a smaller motor, using less magnetic material, and a smaller airgap and still get the same torque and speed capability...in an easier to control motor that could use a smaller scale power stage that would be more robust thanks to tighter control :).  Now, some motor designers will counter that high Isc is required for highest acceleration and highest efficiency in extremely dynamic applications.  That is the case for some applications, but it could be argued that many motors are designed for these extreme cases and not for the case in which they are actually being used.  A better pairing of application use to machine design (and correct type of machine) to control features is needed.

    6. See #1

    7. poor #7 :( Don't worry, he'll get over it.

    8. Flux / Inductance = Isc.  Many of these motors have Isc MUCH higher than their rated current (current they will draw when producing maximum torque).  Usually this is wasted.  If you design the motor so that Isc is very close to Irated you could use a smaller inductance.  Most people are thinking of inductance as something that costs money, and it is if you just add it to your hardware or through wiring, but in machine design it often SAVES COST by allowing a smaller airgap and an overall smaller machine to be build. Caveat: I am not an expert on machine design and there are applications where I understand high Isc is needed for ultra high acceleration (one of the reasons that hysterisis type controls are used with switched reluctance motors)

    9. Some control techniques control the Vbus of the inverter instead of trying to vary the duty cycle of the inverter switches to produce an average voltage.  It can be an eaiser technique, and especially with very low power/current motors (many small fans used for cooling) it is essentially just as efficient (and easier - look up 2-wire fans).

    You mean on simple brushed motors (not brushless) right ?

  • 1. Hz = RPM * Poles / 120.  Hz is electrical cycles per second.

    3. FAST is used in FOC. There are many other observers (or even sensors) that can be used to do FOC.  If your question is "which is more efficient, FOC or BLDC" that is very dependent on the motor design and application use.  All other things being equal, a trapezoidally wound motor operating at high speed and current controlled for a stable load will be more efficient with BLDC than FOC.  A sinusoidally wound motor operating at variable speeds and load will be more efficient with FOC vs. BLDC.

    9. No, this is for BLDC motors.

  • what about #2 ?

  • 2. Not exactly. Isc = Flux / Ls, ignoring Rs, and is more theoretical.  I suppose if you shorted two phases you would get somethign approaching that value though.

  • Interestingly enough, in the last few days I've had two different customers relay their test results regarding effiency.

    Fluid Pump (using Dyno across all operating ranges of same motor)

    InstaSPIN-FOC  vs. -BLDC 6-step BEMF-zero cross: IS-FOC at least 6%+ more efficient.

    Small low voltage compressor (in application testing using same motor and compressor)

    InstaSPIN-FOC vs. other sensorless FOC techniques (from other semiconductor vendors): IS-FOC averaged 7% more efficient

     

  • The first problem you will have is that these are 8-10V, <10A motors and we don't have a great kit for them released yet.

    Our kits are 15-50V, 3.5A (DRV8312) or 8-60V, 40A+ (DRV8301)

    The DRV8301 seems like it should work, but only using 8-10V and 10A out of the 66V+, 82.5A+ scaling will affect the performance of the algorithm - the resolution is just really poor for this use case. You really need to set the hardware up for your motor.  We have a new inverter stage that is built for 8-24V, 0-10A which will be better for these applications.  We are hoping to release it this summer, and then a 2x inverter version in the fall for our new workshops.

    Any idea what the inductance is on these machines?  I'm guessing it's similar to the EFLITE and Walker motors which I have used, though these appear to have even smaller RPM/volts so maybe the inductance is higher (which will make the current easier to control).

    If you are just starting out I'd recommend for this motor to try some of the BLDC techniques, so DRV8301-HC-C2-KIT is probably best fit.  If you want to try FAST and InstaSPIN-FOC you can always add the TMDSCNCD28069MISO card at a later time, but again, it will not give you the performance you need unless you change out the voltage and current scaling.  I'd probably recommend checking back on the new 24V/10A inverter later in the summer.

     

  • I'll check about the inductance.
    You mentioned that hobby grade motors are poorly designed...Is there a better way to build a lightweight direct drive low Kv motor ? What will you change ?

  • I answered this on the first page. Many of these motors have Ls much smaller than they need to be.  Most of these motors are only run up to 2KHz range, yet have have Ls values of 2x, 6x, and 12x too high if you just look at R/L = Hz.  The low Ls also causes a very large Isc.  As I mentioned I've read that a high Isc may have some advantages for efficiency in premium PMSM motors, but for a hobby motor at these power levels being typically controlled essentially w/o current control I don't see how it makes much sense. 

    • 40mOhm, 1.7uH, 1.44mVsec, 847A Isc, RoverL = 23KHz!
    • 42mOhm, 8uH, 3mVsec, 375A Isc, RoverL = 5.25 KHz
    • 24mOhm, 20uH, 3.4mVsec, 170A Isc = 12 KHz
    • 10mOhm, 4.2uH, 23mVse,  5476A Isc (on 350A rated) !!!, RoverL = 2.4 KHz (motor is only run to about half of that, at 20 poles for 7k RPM)

    BTW - the 10mOhm motor is being controlled with InstaSPIN-FOC at only 15 KHz PWM/Current in torque mode today.  Proper current/voltage sensing and layout is imperitive.

    So it can be DONE...but the motor could still be designed even cheaper, smaller, and easier to control.

     

     

  • The inductance of the motor is: 0,075mH.

  • 75uH isn't that bad. And from the website they claim 345mohm.

    So R/L = 4600, which is slightly over designed, but nearly as bad as the ones above.

    These are essentially 5-6K RPM motors @ 10V. Even if they are only 2 poles the max speed would only be about 1KHz.

    Here are my thoughts

    1. InstaSPIN-FOC will certainly work with this motor.

    2. InstaSPIN-FOC Motor ID feature will NOT be successful with this motor.  The number format used for R and L during motor ID will overflow if R/L > 2000, which yours is.  You will need to bypass Motor ID and load the values directly from the USER_MOTOR section of the user.h file.  Luckily you know Ls.  Rs estimation will still work (and you have a good guess anyways) and as long as your flux first guess is close (and you can just try a few different values) it will converge and then you can use that value.  You can even start Motor ID and will get the true Rs value and likely a close enough guess for Flux to be able to enter into the USER_MOTOR section.

    3. I think you will be fine with 15-20 KHz PWM and 10 KHz current loop, but you may need to increase to say 30 KHz and 15 KHz current.

    4. The hardware we have right now is not ideal for you, regardless of technique. DRV8301-69M-KIT is the closest, but it's voltage and current scaling are much too high. You will lose performance.  You'll be able to spin the motor, but low speed will be much worse and current control won't be quite as good. The upcoming 24V/10A hardware will be perfect for this application...that will be later this summer though.

  • The motor is of a rotating can design - it has 12 stator shoes and 14 rotor magnets. How can I determine the # of poles?

    Do you think that with the upcoming 24V/10A driver my motor will be able to run FOC efficiently with zero programming ?

  • This is NOT a zero programming solution. That would not be flexible at all.

    InstaSPIN-FOC is a solution that requires limited software updates to produce a stable and efficient sensorless torque controller for a 3ph motor.

    software updates for

    1. hardware design / scaling of sampling

    2. user hardware parameters (offsets), user system options (clocking, max rates), user motor parameters

    3. change current controller gains if defaults are not suitable (or gain stage based on system or user modes)

    Once you have a torque controller you may want to add a speed controller(s), that will need to be tuned, and gain staged (based on system or user modes).

    You will also need to create motions and plans. This may be as simple as some user inputs through a pot or push buttons, or it could be incredible complex.

    You may create certain states / modes with different control characteristics (how fast/slow to start-up, max accleration under differnet scenarios, etc.)

    You may need to add different communication interfaces (GPIO, input capture, serial, etc.)

    Add inverter / safety mechanisims for handling fault conditions.

    This is what it takes to create a full system that happens to use a motor.

  • Well,

    as you might  have figured it out, my final application (quadrotor) would look like this:

    a new RPM input to the control system of the motor (every 10-20ms or so) - that would have to respond very fast at the motors shaft.

     

    With the given motor, upcomig driver and the ADC's of the TMS320f28069 - can you roughly estimate the required men hours to design an efficient and robust FOC control system on a TMS320f28069?

  • very interesting topic, I work with PMSM and BLDC machines, as you said, back-emf never is full trapezoidal or full sinusoidal, I developed a strategy very simple to implement that eliminate the ripple torque and if you use an extra leg, you can maximize the power tranfered.

    http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6786034&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel7%2F41%2F4387790%2F06786034.pdf%3Farnumber%3D6786034
  • What are some examples of trapezoidally vs sinusoidally wound motors?

  • most non-custom (off the shelf) synchronous motors are sinusoidally wound. in custom applications which require more torque at start-up is when you may see trapezoidally wound, but still most traction / e-Scooter / tools are sinusoid.