Author Topic: 100+kW Motor Controller  (Read 8163 times)

0 Members and 4 Guests are viewing this topic.

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
100+kW Motor Controller
« on: April 29, 2019, 10:09:14 pm »
Hi,
I just wanted to show you guys what we have been working on for quite a while over the endless-sphere forums, recently released in hackaday

https://hackaday.io/project/164932-axiom-100kw-motor-controller


I hope you find it interesting, and I'm keen to hear feedback from the forum! There is always room to improve. If you like what you see, consider following the project and actual like in that page, it would help quite a bit to keep us working on it.





Cheers
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 
The following users thanked this post: oPossum

Offline jeremy

  • Super Contributor
  • ***
  • Posts: 1079
  • Country: au
Re: 100+kW Motor Controller
« Reply #1 on: April 29, 2019, 11:00:27 pm »
Very nice!

If I may ask, is the FPGA completely necessary? It seems like the MCU is doing the PWM (and possibly the calculations ?). All I can really think of other than that is the encoders, but there are many ARM mcus that can directly interface to incremental encoders nowadays.
 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #2 on: April 29, 2019, 11:48:28 pm »
Very nice!

If I may ask, is the FPGA completely necessary? It seems like the MCU is doing the PWM (and possibly the calculations ?). All I can really think of other than that is the encoders, but there are many ARM mcus that can directly interface to incremental encoders nowadays.
Thanks!

Incremental encoders is already supported, but for high performance you want to know the rotor position from the start, otherwise you can't apply full torque at 0rpm, in a launch situation for example. That can be done with resolvers or high speed absolute encoders, a common comm protocol for those is BiSS which I'm not confident can be managed by the already loaded cpu.
The other potential usage is fitting 7 delta sigma demodulators to digitize the 4 voltages and 3 currents directly at the busbars, without any analog signal path. This way everything stays digital, filtering can be tweaked from firmware, no drift, no offsets, etc. We are already using sensors that come with delta sigma variants. In this scenario all motor signals are being input directly to the FPGA and output PWM is an fpga output,so  you could run the control loop at ludicrous frequencies inside the fpga and using the arm mcu as an application processor.

Also the fpga is actually not much more expensive, early versions had a bunch of discrete logic gates doing the basic protection job and the costs sum up, I think overall its a $3 difference that gives you the opportunity to do interesting things.


Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 

Offline m3vuv

  • Super Contributor
  • ***
  • !
  • Posts: 1738
  • Country: gb
Re: 100+kW Motor Controller
« Reply #3 on: April 29, 2019, 11:57:24 pm »
is it for an ebike?,it would be mental if so!!
 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #4 on: April 30, 2019, 12:14:04 am »
Its more for an EV car, but we had several requests for sportbikes. Apparently there is no such thing as too much power =D
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 

Offline Psi

  • Super Contributor
  • ***
  • Posts: 10091
  • Country: nz
Re: 100+kW Motor Controller
« Reply #5 on: April 30, 2019, 12:35:22 am »
Regenerative braking?
Greek letter 'Psi' (not Pounds per Square Inch)
 

Offline langwadt

  • Super Contributor
  • ***
  • Posts: 4540
  • Country: dk
Re: 100+kW Motor Controller
« Reply #6 on: April 30, 2019, 12:43:56 am »
Very nice!

If I may ask, is the FPGA completely necessary? It seems like the MCU is doing the PWM (and possibly the calculations ?). All I can really think of other than that is the encoders, but there are many ARM mcus that can directly interface to incremental encoders nowadays.
Thanks!

Incremental encoders is already supported, but for high performance you want to know the rotor position from the start, otherwise you can't apply full torque at 0rpm, in a launch situation for example. That can be done with resolvers or high speed absolute encoders, a common comm protocol for those is BiSS which I'm not confident can be managed by the already loaded cpu.
The other potential usage is fitting 7 delta sigma demodulators to digitize the 4 voltages and 3 currents directly at the busbars, without any analog signal path. This way everything stays digital, filtering can be tweaked from firmware, no drift, no offsets, etc. We are already using sensors that come with delta sigma variants. In this scenario all motor signals are being input directly to the FPGA and output PWM is an fpga output,so  you could run the control loop at ludicrous frequencies inside the fpga and using the arm mcu as an application processor.

Also the fpga is actually not much more expensive, early versions had a bunch of discrete logic gates doing the basic protection job and the costs sum up, I think overall its a $3 difference that gives you the opportunity to do interesting things.


and afaiu in safety related systems FPGAs are sorta seen as "hardware" and considered more reliable than software, which make sense considering
the many many permutations of what happens in a cpu once you throw in a bunch of interrupts

 

Offline jeremy

  • Super Contributor
  • ***
  • Posts: 1079
  • Country: au
Re: 100+kW Motor Controller
« Reply #7 on: April 30, 2019, 02:33:20 am »
Makes sense. I keep forgetting that these ice FPGAs are not $70 each  ;)

Do you need to install the absolute encoder with the zero index aligned to a specific rotor angle (with a keyed shaft or something like that)? Or do you just orient it however and then spin it a few times and use a calibration routine to detect the orientation?
 

Offline NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9154
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Re: 100+kW Motor Controller
« Reply #8 on: April 30, 2019, 02:46:44 am »
It's actually very common to use FPGAs in motor drives of that size. Allows implementation of all sorts of custom PWM/PDM algorithms (e.g. variants of Delta Sigma) that common microcontrollers cannot do and that's important when dealing with IGBTs that work most efficiently up to a few kHz. There are microcontrollers with a bit of FPGA/CPLD logic built in but what I have seen in the PICs isn't nearly flexible enough to do that sort of modulation trick. (Not sure about Cypress PSoC, although I'm under the impression it's a lot more sophisticated than what Microchip uses.)
Cryptocurrency has taught me to love math and at the same time be baffled by it.

Cryptocurrency lesson 0: Altcoins and Bitcoin are not the same thing.
 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #9 on: April 30, 2019, 03:27:09 am »
Regenerative braking?
Sure, in field oriented control math its just changing the sign of Iq current. That commands negative torque ("regen")

Do you need to install the absolute encoder with the zero index aligned to a specific rotor angle (with a keyed shaft or something like that)? Or do you just orient it however and then spin it a few times and use a calibration routine to detect the orientation?

There is a command to acquire the encoder offset.  It will make the motor spin very slowly to find the offset and thats it. It works the same way for encoders, resolvers, sin/cos encoders and hall.
I think OEMs measure the offset and manually store it, but it could be to speed up production.

and afaiu in safety related systems FPGAs are sorta seen as "hardware" and considered more reliable than software, which make sense considering
the many many permutations of what happens in a cpu once you throw in a bunch of interrupts
Yup, nobody should trust software taken from github. It runs an open source RTOS so you can't really make sure its 100% solid. At least not without an awful lot of software validation so I'm sure this is the right way to go.
« Last Edit: April 30, 2019, 12:38:38 pm by marcos_ »
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 

Offline Psi

  • Super Contributor
  • ***
  • Posts: 10091
  • Country: nz
Re: 100+kW Motor Controller
« Reply #10 on: April 30, 2019, 08:41:00 am »
:wtf:
Regenerative braking?
Sure, in field oriented control math its just changing the sign of Iq current. That commands negative torque ("regen")

Interesting, i always thought re-gen required some sort of extra boost step-up system to allow pulling high current out of the motor at slow speed.
Greek letter 'Psi' (not Pounds per Square Inch)
 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #11 on: April 30, 2019, 12:48:40 pm »
Regenerative braking?
Sure, in field oriented control math its just changing the sign of Iq current. That commands negative torque ("regen")

Interesting, i always thought re-gen required some sort of extra boost step-up system to allow pulling high current out of the motor at slow speed.

You use the motor windings as inductors, the circuit has already the topology to boost.

^random image from the internet, it doesn't represent our motordrive

Anyway at low speeds there is not much power available, power = torque*speed so any effort spent in low speed regen performance doesn't give you much gains
« Last Edit: April 30, 2019, 01:10:45 pm by marcos_ »
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 

Offline mac.6

  • Regular Contributor
  • *
  • Posts: 225
  • Country: fr
Re: 100+kW Motor Controller
« Reply #12 on: April 30, 2019, 02:00:50 pm »
What is the point/target of this project? just hobby/hacker? Startup with resell exit strategy? Real OEM product? I can't see from the hackaday page...

 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #13 on: April 30, 2019, 02:26:59 pm »
What is the point/target of this project? just hobby/hacker? Startup with resell exit strategy? Real OEM product? I can't see from the hackaday page...
We get most revenue from startups needing a quality drivetrain. Helping the enthusiastic crowd and making the popular and open source VESC firmware better is a nice side effect.
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 

Offline Siwastaja

  • Super Contributor
  • ***
  • Posts: 8301
  • Country: fi
Re: 100+kW Motor Controller
« Reply #14 on: April 30, 2019, 03:08:03 pm »
Interesting, i always thought re-gen required some sort of extra boost step-up system to allow pulling high current out of the motor at slow speed.

For permanent magnet motors (brushed or BLDC), just output lower PWM duty cycle in two-switch (half bridge) design. Won't work with the simplest freewheeling diode design. With a half bridge, the motor inductance simply acts as a boost converter. Draw it, you'll see it's a bidirectional synchronous buck converter (which is synchronous boost in the opposite direction). If you want to really freewheel, you turn both switches off.

For induction motors, it's fundamentally the same, but the control is, of course, a bit more complex. You need to output lower fundamental frequency than what the motor RPM dictates; this changes the sign of slip, causing it to become a generator.

For a series-wound brushed motor, regen is a different beast, but these motor types are getting increasingly rare in modern designs.
 
The following users thanked this post: schmitt trigger

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #15 on: April 30, 2019, 03:26:04 pm »
Interesting, i always thought re-gen required some sort of extra boost step-up system to allow pulling high current out of the motor at slow speed.

For permanent magnet motors (brushed or BLDC), just output lower PWM duty cycle in two-switch (half bridge) design. Won't work with the simplest freewheeling diode design. With a half bridge, the motor inductance simply acts as a boost converter. Draw it, you'll see it's a bidirectional synchronous buck converter (which is synchronous boost in the opposite direction). If you want to really freewheel, you turn both switches off.

For induction motors, it's fundamentally the same, but the control is, of course, a bit more complex. You need to output lower fundamental frequency than what the motor RPM dictates; this changes the sign of slip, causing it to become a generator.

For a series-wound brushed motor, regen is a different beast, but these motor types are getting increasingly rare in modern designs.

That's true, but when you are already computing a field oriented control, everything comes down to Iq/Id currents, those are DC variables, not aware of frequency information or PWM pulses, just like your foot is unaware of the fuel injection pulse width.

Wanna accelerate? Positive Iq. Wanna brake and store energy in the battery? Negative Iq. The control loop will unfold the frequency and angle details based upon data that the actual user (a foot) does not really care (instantaneous voltages, current, and flux angle) . Its same principle with PM or ACIM machines. Its a bit less intuitive when there is reluctance torque involved, but that's another story.
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 

Offline schmitt trigger

  • Super Contributor
  • ***
  • Posts: 2274
  • Country: mx
Re: 100+kW Motor Controller
« Reply #16 on: April 30, 2019, 04:54:07 pm »
Impressive!

Let's talk a bit about thermal management. The IGBT module appears to be attached to a water cooled plate. Is my assumption correct?
If so, is this plate a catalog item, or did you actually had to machine it.

Likewise the bussbars. Are they catalog items?
 

Offline Dave

  • Super Contributor
  • ***
  • Posts: 1352
  • Country: si
  • I like to measure things.
Re: 100+kW Motor Controller
« Reply #17 on: April 30, 2019, 06:48:18 pm »
As someone that works in this industry, I find it absolutely baffling that you managed to develop all of this yourself.
Amazing, keep up the great work!  :-+
<fellbuendel> it's arduino, you're not supposed to know anything about what you're doing
<fellbuendel> if you knew, you wouldn't be using it
 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #18 on: April 30, 2019, 07:08:47 pm »
Impressive!

Let's talk a bit about thermal management. The IGBT module appears to be attached to a water cooled plate. Is my assumption correct?
If so, is this plate a catalog item, or did you actually had to machine it.

Likewise the bussbars. Are they catalog items?

The coldplate is a wolverine cp3001, as thermals are critical part of the system performance. You can loose many kW just because a poorly chosen thermal path. If you use the IGBT modules NTC temperature sensor (yes the control is designed to measuse those 3 temps) its not dangerous, but if you run open loop temperature-wise you can overheat an IGBT.
https://www.microcooling.com/our-products/cold-plate-products/3000-series-cold-plates/cp-3001/


Phase bars are custom made, we have a small cnc here, its a simple piece we do in aluminum. Soon enough we'll waterjet it from copper and avoid fighting the aluminum oxidation.

As someone that works in this industry, I find it absolutely baffling that you managed to develop all of this yourself.
Amazing, keep up the great work!  :-+
Ha, thanks! This also stands on years worth of effort from Benjamin developing the firmware and GUI, highhopes experience in the field, arlin experience in the dragstrip and maxi's firmware skills. But yeah, super small team.
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 
The following users thanked this post: schmitt trigger

Offline Psi

  • Super Contributor
  • ***
  • Posts: 10091
  • Country: nz
Re: 100+kW Motor Controller
« Reply #19 on: May 01, 2019, 12:40:56 pm »
Regenerative braking?
Sure, in field oriented control math its just changing the sign of Iq current. That commands negative torque ("regen")

Interesting, i always thought re-gen required some sort of extra boost step-up system to allow pulling high current out of the motor at slow speed.

You use the motor windings as inductors, the circuit has already the topology to boost.

Anyway at low speeds there is not much power available, power = torque*speed so any effort spent in low speed regen performance doesn't give you much gains

Cool!

I guess my line of thinking was...
If you dead short the 3 motor windings you will get the best braking action and a massive current flow through the short.
However the voltage will be super low.  So trying to get both good braking and high voltage for charging would require a boost circuit.
« Last Edit: May 01, 2019, 12:44:11 pm by Psi »
Greek letter 'Psi' (not Pounds per Square Inch)
 

Offline NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9154
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Re: 100+kW Motor Controller
« Reply #20 on: May 01, 2019, 04:28:44 pm »
A quick explanation of how the motor windings can be used as the inductor for a boost converter:
http://techno-fandom.org/~hobbit/cars/boost-hack/
Cryptocurrency has taught me to love math and at the same time be baffled by it.

Cryptocurrency lesson 0: Altcoins and Bitcoin are not the same thing.
 

Offline max_torque

  • Super Contributor
  • ***
  • Posts: 1309
  • Country: gb
    • bitdynamics
Re: 100+kW Motor Controller
« Reply #21 on: May 01, 2019, 07:48:48 pm »
Any idea what the EMC performance of the inverter is?  I assume you have software control of the igbt gate drive so can vary the dv/dt to optimise the loss / thermal performance against the EMC one?


(and well done getting this far btw, making an inverter really isn't very difficult, but to make one that is robust, affordable, quiet, has good software and a nice interface, well that's a whole extra level of work!  As someone who's take a hybrid vehicle inverter from concept to OE production i can tell you the last bits are much harder than the first bit......  ;-) )
 

Offline uer166

  • Frequent Contributor
  • **
  • Posts: 924
  • Country: us
Re: 100+kW Motor Controller
« Reply #22 on: May 01, 2019, 08:15:42 pm »
I guess my line of thinking was...
If you dead short the 3 motor windings you will get the best braking action and a massive current flow through the short.

Not 100% true AFAIK, the curve for rpm-vs-shorted-phase-currents is non-linear since with increasing motor speed the current gets more and more out of phase of the voltage due to winding inductance. At some point it's so out of phase it's close to 0. It's also why a 3-phase short can be a default fail-safe in a motor that spins at higher rpm to the point where back EMF>>battery voltage (possible through field weakening).
 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #23 on: May 01, 2019, 09:15:06 pm »
Any idea what the EMC performance of the inverter is?  I assume you have software control of the igbt gate drive so can vary the dv/dt to optimise the loss / thermal performance against the EMC one?

Why would you assume we have a software-controlled dynamic gate driver?

The only drive I know with that feature is tesla high performance rear drive unit, I imagine its gone now that they use SiC. They used it to manage overshoot vs switching losses, I don't see it driven by EMC.
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 

Offline marcos_Topic starter

  • Contributor
  • Posts: 16
  • Country: ar
Re: 100+kW Motor Controller
« Reply #24 on: May 02, 2019, 12:56:31 pm »
I think this log is of interest for the eevblog audience:
https://hackaday.io/project/164932-axiom-100kw-motor-controller/log/162657-block-diagram-explained

And don't forget the pretty pics and scope captures of the main description
https://hackaday.io/project/164932-axiom-100kw-motor-controller/details

Cheers
Does your project need a high performance motor drive? Let's talk!
www.powerdesigns.ca
Do you like our work? Support Axiom to win the 2019 Hackaday Prize!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf