Powerstage validation

A project log for Axiom: 100+kW Motor Controller

High Power, High Performance 400V 300A 100+kW Motor Controller fully compatible with VESC

Marcos ChaparroMarcos Chaparro 06/20/2019 at 20:274 Comments

Double pulse testing

Here is some test results we had a while ago when doing double pulse tests to validate the powerstage and our custom DC Link. You can't skip this if you are making a motor controller.

First of all, we coded some handy functions and commands to perform a double pulse test from the VESC Tool GUI.

This way from the command line I can easily and accurately set the timing with the controller fully assembled. Otherwise you would need a signal generator, remove the control board, prepare the wiring to the gates, and change the wiring to test each of the 6 switches.

A test setup is something like this:
You want to observe the switching characteristics of the drive at peak current load. To do that you keep the top IGBT in OFF state (Our powerstage will keep the top gate at -9Vdc)
* Turn ON the bottom switch and let the current through the inductor increase to the desired test current (dwell time).
* Turn OFF the switch and observe the voltage overshoot
* Wait a minimum amount of time and turn ON the switch (rated current is still flowing through the body diode of the TOP switch)

We have some handy support math to calculate the construction of the inductor, the required inductance and time required to reach a set current.

A test bench looks something like this:

Note that voltages are measured with differential probes to avoid damaging the oscilloscope, and measurement happens directly at the IGBT terminals

On the top left you can see the inductor for the test. We communicate to Axiom through the isolated CANbus interface so the laptop is isolated from the device under test.

Double pulse test result at 375V 450A:

And zoomed in:

Yellow trace is Collector voltage (to measure overshoot), green trace is phase current, orange trace is TOP IGBT gate (to observe miller effect).

The overshoot is caused by the inductance of the path between the silicon switch and the DC Link capacitor. This includes the internal IGBT module wiring, the connection to the DC Link and the internal DC Link ESL. We tested other DC Link and ours performed better during this testing. Overshoot can change wildly if your DC Link is not carefully designed; we have a 100V overshoot, imagine how bad can it become if the DC Link ESL is left unchecked.

Overshoot must stay below the IGBT rated voltage, which is 650Vdc minus some buffer %. If we were operating at higher DC bus voltages we can either test snubbers, slow down the turn OFF time or just use a 1200V rated IGBT.

Miller capacitance between gate and collector of the TOP switch will try to turn ON that switch when its supposed to be off. We check that the gate sits at -9Vdc and miller can only pull it up to -7Vdc, thats good. You get a shoot through + fire if Miller is able to turn ON the TOP switch.

Something really good about double pulse test is that you can measure the switching losses, and we have access to a very good rogowski current probe but its only capable of measuring 300A and we are more interested into the 500A to 800A range. We did measure emitter current but the sensor can't properly track the slewrate. Maybe next time.

Double pulse testing is something *every* controller design should have endured, you don't know how the powerstage works until you observe it.


Marcos Chaparro wrote 06/21/2019 at 23:23 point

"Perhaps you could share some information"
So the test schematic, pwm/pulse waveform, the scope measurement and the test bench photos are not enough information for you? If you want to make a serious controller you have to take matters seriously and for example do the double pulse test like good developers in endless-sphere forums do. You can make the pulses yourself with code or a signal generator, the result will be the same, you are ranting over a convenience function. I think you are wiser after reading this log, and that's enough for me.

I'm doing a favor reminding people the importance of this test. I have seen enough "300A" controllers that are in the brink of destruction because no one noticed they are 5V away from an avalanche failure. Its not enough to go out and take a ride and call it a day.

Since I made the announcement yesterday there are already 2 vesc hw developers with 3 controller designs happy about the possibility of getting their drives tested and they will have a safer product because of this. They could have done it themselves but prefer me to do the test.

  Are you sure? yes | no

Adam Oakley wrote 06/21/2019 at 19:50 point

It would be great if you could share some of your code or tools to do this double pulse testing. If you share, people could do this kind of testing on the many cheap VESC hardware variants that are available for sale online. It would also help people developing custom VESC hardware.

  Are you sure? yes | no

Marcos Chaparro wrote 06/21/2019 at 21:07 point

Oh but we share plenty with the vesc community! There is lots of firmware development getting merged, not to mention I've been helping benjamin since his hw 4.10, It was me who created the hw4.xx github repository and organized the hw4.xx schematic you see everywhere.

As I said in the forum, my shop is open to anyone that would like me to double pulse test their drives, I just charge by the hour and provide 50% discount if I can see the kicad design files in github. After all its not that common to have $1500usd current probes, diff probes, a good scope, and the know how to tune a gate driver based on these results.

The end goal for us is to make a business out of our motor control know-how while improving the VESC platform, but we put some limits. Our extensive math support, design assurance, internal tools and other test results (like double pulse at different temps) are not enforced under GPL v3 and are *extremely* valuable for bigger companies that need more than a pretty pictures to order from you.

  Are you sure? yes | no

Adam Oakley wrote 06/21/2019 at 22:00 point

I know you have made some excellent contributions to the VESC project and I am very grateful for the work you have shared. 

Keep in mind that we are on the Hackaday website. Your project is entered in the Hackaday Prize contest. If you take a look at Hackaday's "about" page, you'll see this quote:
"We strive to promote the free and open exchange of ideas and information."

This is a community full of people who are makers and who embrace DIY. It's strange to tell this community that double pulse testing is something that every controller design should endure, but we should send our hardware to you and pay you to perform the testing. 

For some designers, it will be great that you offer this service. However, there are other people in this community who don't have the budget to ship hardware to you and pay for testing. Some people may have access to test equipment through school or work. 

I'm not suggesting that you make all your IP public, but perhaps you could share some information, like the function you added to VESC firmware to generate the test signals. 

  Are you sure? yes | no