The parameter documentation project

Post Reply
User avatar
johu
Site Admin
Posts: 5768
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 157 times
Been thanked: 1009 times
Contact:

The parameter documentation project

Post by johu »

In this thread I'd like to develop a description of the various parameters and how they affect operation. I'll start out with what can be found on https://openinverter.org/docs/index.htm ... rs,24.html .
Please feel free to make suggestions, make graphs or drawings etc. to make it as easy to read as possible. I think this is also a good place to submit parameter files. Maybe this should be an "editing thread" so whenever you come back with something new add it to your existing post. A wiki would be more suitable for this, so when I have the time I can set one up.

Motor Parameters

The parameters to adjust the inverter to the motor are boost, fweak, fslipmin, fslipmax, polepairs, fmin, fmax and numimp.

They can be deduced from the motors nameplate or by trying which feels best. For illustration we will assume a bus voltage of 500V and a 4-pole (p=2) motor with a nominal speed of n=1450rpm@f=50Hz and 230V. With 500V DC an AC voltage of 500/1.41=355V can be generated.

boost is the digital amplitude of the sine wave at motor startup. It is needed to overcome the motors ohmic resistance. Digital amplitude is an internal quantity. 0 means no voltage is generated at all, 37813 means the full possible voltage is generated.

Example: boost=1700

At full throttle an effective voltage of 1700/37813*355=16V is generated. The best way to find a feasible value is to optimize it in the finished car. Start with the default value and increase until you get a good startup.

fweak is the frequency at which the full possible voltage is generated. It is also the point of the highest motor power. Beyond fweak torque will decrease to the square of frequency and thus power will decrease linear with frequency.

A starting point for fweak is the motors nameplate:
fweak.png
fweak.png (5.45 KiB) Viewed 3071 times
With our illustration motor fweak=355/230*50=77Hz. fweak can be configured lower than that resulting in more torque at the low end.

fslipmin/fslipmax is the slip frequency at which the motor is run at minimum/maximum throttle. fslipmin is set to the motors optimal slip frequency which can be deduced from the nameplate. fslipmin=f-p*n/60. With our illustration motor fslipmin=50-2*1450/60=1.66Hz. fslipmax can be set as high as breakdown torque which is not found on the nameplate. So its best found experimental starting with 2*fslipmin. If set too high the motor will start to rock violently on startup, possibly tripping the over current limit.

polepairs is set to p, 2 in our example.

fmin should be set just below fslipmin.

fmax is used to limit the speed of the motor. The default 200Hz would result in a maximum speed of about 6000rpm.

ampmin Is the minimum relative amplitude fed to the motor. At very low amplitudes the motor does not generate any noticable torque and throttle travel is wasted that does nothing. Find out a good value by experimenting.


Inverter Parameters

pwmfrq Sets the frequency at which the IGBTs are switched on and off. The faster the switching the higher the losses in the inverter and the lower the losses in the motor. The maximum frequency is also limited by the driver boards as explained here.

pwmpol Sets the polarity of the PWM signals, active high or active low. Do not touch this parameter if you don't know what you're doing. When configured inversely it will blow up your power stage immediatly if connected to a potent power source like batteries.

deadtime The time between switching off one IGBT and switching on the other. 28=800ns, 63=1.5µs. More values can be found in the STM32 data sheet. Make sure to test the deadtime at low power levels. Setting the deadtime too low while operating of a potent power source can blow up your power stage!
Here are some example values (Thanks arber!)
  • 28 (0.8us)
  • 64 (1us)
  • 88 (1.4us)
  • 116 (1.6us)
  • 135 (2us)
  • 155 (2.5us)
  • 185 (3.3us)
  • 195 (4us)
To be continued...
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
arber333
Posts: 3261
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 232 times
Contact:

Re: The parameter documentation project

Post by arber333 »

Deadtime
I suggest first to test without DClink connected.
You can do this by connecting 2channel scope directly to GE terminals of IGBT module.

WARNING! The same should not be attempted with live DC link connected to inverter. Even 12Vdc can cause large interference and noise since both probe GND connections are on the same reference inside scope usually.

You could observe that under load only using differential probes. And they are serious $$$.
Normally i set deadtime by observing unloaded IGBT channel 50% duty signal PWM curve. Observed time is between up slope of second transistor and the downslope of first transistor. I mark one line on 0V of upp transition and 0V down transition. Well 0V transition can need some time so i usually dont observe much below 0V even though shutoff tail can span across several 100ns. For IGBT shutoff voltage is -8V and +15V is on voltage.
Then i add 1.2 factor to account for the distortion under load.
2-Figure4-1.png
Worked for me...
Attachments
7-Figure11-1.png
User avatar
Peter
Posts: 310
Joined: Fri Dec 14, 2018 9:07 pm
Location: North West Lancs, UK
Been thanked: 8 times

Re: The parameter documentation project

Post by Peter »

Please could you show where the deadtime values can be seen or the calculation data required in the STM32 datasheet, thank you.
arber333
Posts: 3261
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 232 times
Contact:

Re: The parameter documentation project

Post by arber333 »

Peter wrote: Tue Jan 15, 2019 3:35 pm Please could you show where the deadtime values can be seen or the calculation data required in the STM32 datasheet, thank you.
I didnt bother with theoretical calculation much. I just connected GE to 2ch scope and probed 50% PWM. Then i entered values and observed results. Results were not at all linear. Note you must reset Olimex when you change deadtime for setting to come in effect.
With my scope i got values in brackets...
Parameter DEADTIME
64 (1us)
88 (1.4us)
116 (1.6us)
135 (2us)
155 (2.5us)
185 (3.3us)
195 (4us)

Finally i compared my results with IGBT datasheet values and accounted also driver chip delay from datasheet.
I followed equasion from infineon chapter 2.1 and decided on approx value that provided least PWM noise at driveoff.
https://www.infineon.com/dgdl/Infineon- ... aefc41005b

Also i adapted driver desat blanking time tbl to deadtime value. In fact it came out tbl is usually little less than 2x deadtime value otherwise one can get false triggering at heavy acceleration from standstill.

Inform us here if you get different values please.
User avatar
Peter
Posts: 310
Joined: Fri Dec 14, 2018 9:07 pm
Location: North West Lancs, UK
Been thanked: 8 times

Re: The parameter documentation project

Post by Peter »

Hello arber333. Thank you for your efforts in evaluating the deadtimes. From your information could there be a window of minimum and maximum deadtimes that can be recommended ? Obviously too little deadtime can lead to shoot through but what about too much deadtime, what would be the effect please? Is there any relevance to the maximum current being handled by an IGBT or is that not relevant? All adds to the learning curve :-) Peter
arber333
Posts: 3261
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 80 times
Been thanked: 232 times
Contact:

Re: The parameter documentation project

Post by arber333 »

Peter wrote: Wed Jan 16, 2019 3:39 pm Hello arber333. Thank you for your efforts in evaluating the deadtimes. From your information could there be a window of minimum and maximum deadtimes that can be recommended ? Obviously too little deadtime can lead to shoot through but what about too much deadtime, what would be the effect please? Is there any relevance to the maximum current being handled by an IGBT or is that not relevant? All adds to the learning curve :-) Peter
Hah! I have 3us deadtime on my inverter with Skyper 32 drivers. It works good and i like the slow avalanche of power. Its relaxing considering my motor could pull so hard it broke springs on a clutch plate.
Basically if you had too long dead time it wouldnt be anything bad, the power rise would be slower than equivalent faster deadtime.

On the Volt inverter my motor with the same settings and 1/2 deadtime could pull rubber whereas now is more civil.
Lets say it like... Faster application of power.
User avatar
johu
Site Admin
Posts: 5768
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 157 times
Been thanked: 1009 times
Contact:

Re: The parameter documentation project

Post by johu »

Basically the higher the dead time, the lower the achievable AC output voltage. The 3µs vs. 1µs is 2µs on both edges, so 4µs per cycle difference. If total cycle length 113µs (8.8kHz) you loose 3.5% output voltage.

Just for informative purposes here is an excerpt from the data sheet:
This bit-field defines the duration of the dead-time inserted between the complementary
outputs. DT correspond to this duration.
DTG[7:5]=0xx => DT=DTG[7:0]x t dtg with t dtg =t DTS .
DTG[7:5]=10x => DT=(64+DTG[5:0])xt dtg with T dtg =2xt DTS .
DTG[7:5]=110 => DT=(32+DTG[4:0])xt dtg with T dtg =8xt DTS .
DTG[7:5]=111 => DT=(32+DTG[4:0])xt dtg with T dtg =16xt DTS .
Example if T DTS =125ns (8MHz), dead-time possible values are:
0 to 15875 ns by 125 ns steps,
16 us to 31750 ns by 250 ns steps,
32 us to 63us by 1 us steps,
64 us to 126 us by 2 us steps
In our application T DTS=14ns (72MHz). So you have to divide all values in the example by 8.93
Double check: Arber measured 4µ with 195. For 195 DTG[7:5]=110 DTG[4:0]=11 (3). So DT=(32+3)*8*14ns=3.92µs . QED :)

In the more recent releases you can change deadtime without rebooting because I reset the timer at every start event.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
User avatar
joromy
Posts: 371
Joined: Fri Jun 28, 2019 12:56 pm
Has thanked: 1 time
Been thanked: 3 times

Re: The parameter documentation project

Post by joromy »

Did some measurement on dead time.
With the stock Ford Ranger IGBT driver board and openinverter.
If I chose 0 or 200 I get the exact same DT 0.88uS on the my scope.
Not shure if I measure the DT correct? (see the scope capture)

There are some thing going on, that I haven't dig in to.
Is it possible that it adjust the DT by itself?
Here is the IC's on the Gate driver board:
U7,U8,U9,U10 Philips 74HC132D Quad 2-input NAND Schmitt trigger
U11 Philips 74HC4075D 3-input OR gate

U201 Motorola LM317BT adjustable voltage reg
Q402 BUK453-60B Philips PowerMOS

U6 LM2901D Quad Comparator
U3,U5 MC33074AD Quad OpAmp

U1,U4,U19ABC,U14ABC 431BI (LM431) Adjustable Precision Zener Shunt Regulator

U13ABC,U18ABC UC2543DW Power Supply Supervisory Circuit
IMG_20190916_172400_5.jpg
Attachments
top_bot_dt_2.JPG
Thomas A. Edison “I have not failed. I've just found 10,000 ways that won't work"
User avatar
johu
Site Admin
Posts: 5768
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 157 times
Been thanked: 1009 times
Contact:

Re: The parameter documentation project

Post by johu »

Did you restart the inverter when changing dead time? Like change value, hit stop, start back up.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
User avatar
joromy
Posts: 371
Joined: Fri Jun 28, 2019 12:56 pm
Has thanked: 1 time
Been thanked: 3 times

Re: The parameter documentation project

Post by joromy »

Yes I did restart. Have done this several times, and the result is the same.
Will do a reverse engineering of the driver board, to try to find out what is really happening, when I have some spare time (almost never)
I see there is some signal going out from the IGBT driver, the opto coupler is going both ways.

BTW it's the same DT I got when I measured on the original Ranger inverter.
Thomas A. Edison “I have not failed. I've just found 10,000 ways that won't work"
jon volk
Posts: 572
Joined: Wed Apr 10, 2019 7:47 pm
Location: Connecticut
Been thanked: 2 times

Re: The parameter documentation project

Post by jon volk »

Came up with a few questions.

Is iacmax based off rms or peak values?
What are the affects of ifltrise and ifltfall values?
Formerly 92 E30 BMW Cabrio with Tesla power
User avatar
johu
Site Admin
Posts: 5768
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 157 times
Been thanked: 1009 times
Contact:

Re: The parameter documentation project

Post by johu »

iacmax targets peak values.

ifltfall controls how fast slip and amplitude are reduced, ifltrise controls how fast it recovers. The greater the value, the slower.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
yaroslav
Posts: 176
Joined: Tue Aug 13, 2019 4:32 pm
Location: Russia, Stavropol
Has thanked: 14 times
Been thanked: 5 times

Re: The parameter documentation project

Post by yaroslav »

Hi, what are the effects of parameter changes:
syncofs
udcofs
User avatar
dima
Posts: 157
Joined: Sun Dec 09, 2018 9:35 pm
Location: Canada

Re: The parameter documentation project

Post by dima »

yaroslav wrote: Wed Mar 11, 2020 5:36 pm Hi, what are the effects of parameter changes:
syncofs
udcofs
viewtopic.php?f=4&t=108
Post Reply