Hi, Whats the best way to arrange filtering between mosfets and motor ?
ie. is there anything to be gained here by using center aligned as opposed to edge aligned PWM? so can common mode chokes be used ?
With no filtering the mosfets get very hot becuase the motor has very little inductance, but then the inductors I have atm just a few turns of 1mm wire on a iron powder torriod get very hot indeed when the motor is running, but at no voltage out, ie when all op are at 50% duty, theres no problem.
its a model motor, quite smal but rated 400w, im running it at 10krpm , possibly overunning it to 30k, only about 2 turns on each of the 12 poles, but with the very strong magnets gives 1000rpm/volt. with no load I dont expect the current to be that high but with 7 electrical cycles per rev its going quite a bit to get 10krpm or more, still it takes 2 amps before the thing will first move, and im stil debugging the mcu code thats driving it.
Also do they make level shifting high AND low side drivers ? If I use it for higher voltage motor I might want my output to be centered closer to ground but dont want my micro sitting at
This is a real problem. I haven't come up with any way to build a good output filter for traditional PWM schemes like synchronous antiphase, in which either the high-side or low-side transistor are always on. I have a DC motor drive that uses sign-magnitude instead, and it works MUCH better. I haven't extended this to
3-phase yet, but am working on it. It seems that if the two poles that are to be driven according to the commutation signals are shorted except when the PWM says to apply power, then the circulating currents in the motor and filter will be much less. (This requires enough series inductance in the filter so the decelerating current never gets very large in a single cycle.)
Oh, my, that is a real problem! There is no way you can run such a motor without adding inductance externally. You either have to drastically limit the number of turns/core or use a modulation scheme that cuts down on the current ripple. A higher PWM frequency can help, up to a point.
the former method (AKA symmetric PWM) gives you some advantages. Mostly that the PWM triangle (not ramp) peaks and troughs occur in the centre of the pulses. This allows you to sample the currents in the centres rather than the edges, which:
a) avoids the edge-related spikes you are likely to see
b) also conveniently avoids measuring the switching frequency ripples, thus allowing for a simpler anti-aliasing filter.
yep. the noise is part CM, part DM.
think about a balanced 3-phase set of sinusoidal voltages - they always sum to zero. But your PWM outputs are either +Vdc/2 or -Vdc/2, and there are 3 of them, so they NEVER sum to zero.
you need to look at your current waveform, and understand where your MOSFET dissipation is coming from. Low inductance means high ripple at the switching frequency. Even so, IME I would expect this will make the MOTOR get hot, not the FETs.
try driving an inductor with the FETs, at a fixed duty cycle. This will give you a triangle current waveform, and you will be able to easily calculate the associated FET conduction and switching losses. Then see if this tallies with what you measure - eg by turning the FETs ON, and running a DC current thru them until you get the same temperature rise etc.
I've set plenty on fire!
you need a very low loss material, as you have truckloads of HF. IME -40 and -52 material just wont cut the mustard, and steel is a big no-no. try -18, or even -2. -26 will smoke up big time :)
you also need to be careful about skin and proximity effect; a single-layer winding avoids proximitiy effect, but skin effect cant really be avoided. try several paralleled strands of magnet wire (a-la Litz)
OK, that explains the low inductance.
running at 3x rated speed might be a good trick though; thats 9x the inertia! 2x is usually achievable.
Que? 12 poles = 6 pole pairs so 6 electrical cycles per revolution. This means your electrical base speed is 1kHz, up to 3kHz when over-speeding.
so your FETs must be switching at a few tens of kHz, minimum.
the motor specs ought to tell you this information
make damn sure you have hardware current limiting and trip, along with hardware interlock and dead-time on the gate drives. That way, when the sw freaks out the hardware wont explode.
yes, look at International rectifier (among others)
12 poles with windings, not sure how they are wound, but 14 magnets, took me ages to work out what that was all about, but it is actualy 7 electrical cycles per rev.
atm 20khz switching frequency.
well the 24v motor psu trips quite early atm it trips out before the chokes catch fire at least wich is safe (just uses a lm338), in fact all the power only ever seems to go into heating up the inductors lol.
The SW problem is trying to keep the motor in sync, the required phase advance varies a lot at high speed, to compensate for sensor measuring delay, pwm delay and inductance etc, I think maybe it needs more than just one factor.
Ive tried various means from free running to phase advance and and some combination.
I use linear hall sensors for position, but im wondering if I should use the phase current.
Ive got some much bigger fets (4mr) but not sure the gate drivers can handle them, im using ir21091 wich have dead time, cross conduction protection etc. I might try them or get some big 30v ones instead of the 75v sets I got now.
wont hurt too much if I have to stick with 10krpm for now.
thanks, il digest those other points some more ... also I was hoping not to have to stick current probes into the thing, but the fet voltages give an indication of current, at least when they are fully on.
Thanks, Im not familiar with those terms, but all my 3 outputs are always switching, thus at idle each is at 50% pwm.
with synchronous 50% pwm the phases are also effectivly always shorted together, with one phase at 51% pwm the phases are shorted 99% of the time. with the pwm applying power between phases for 1%. although the CM signal is large this isnt a power consuming issue.
I tried making one output always low but this transfered most of the dissipation in the top FET to the lower one at low duty cycle.
yes it does seem a bit of a problem, ofc too much inductance will limit my top speed. Im wondering if I should feed the 3ph bridge with an adjustable voltage from a switching regulator to reduce the pk-pk HF content.
the low side level shifting only tolerates 5v, I was after 100-600v for both hi and low, so the logic input gnd is totaly isolated from the motor supply gnd.
With some more thought given to it now il discuss the other issues:-
With no added inductance the excessive dissipation arises from the fact that the current rises so quickly during the on period that it is limited only by pushing the FETs out of their ohmic region so cuasing drastic heating. After thinking about it for a while, CM choke isnt going to limit the phase to phase current either.
Fortunatly I was using one of those integrated 3ph drivers with thermal shutdown before I realised the complete lackof induction on this motor, I had previously been using the guts of a large 12dc fan motor. this didnt quite have enough oomph. although tbh I could do with something inbetween. im now using discrete 30 amp fets with ir lo/hi+bootstraped drivers. I did get 280 amp devices for sheer unerdulterated overkill but forgot to make sure I had drivers to match their high gate charge.
I dont think I will concern myself much with switching losses, just try to keep them as low as pos by making sure the gate is driven fast enough. calculations show at worst case its not too bad. I even tried one of the 280 amp devices and it ran cooler, even though the gate took 2us to reach 90%.
Ive had smoke from them, wich has prompted me to turn it off dam fast lol. the problem is that the smell is most distracting while trying to tweek the software. its strange that lower voltage for the same rpm doesnt necessarily correspond to lower smoke.
aha im using a FR-T50-26B, as I had a bagfull. im not too familiar with these part numbers but gather the last number is the one you refer to wich I beleive is particle size in microns and smaller = higher frequency but lower u.
I gues at the end of the day I need bigger/better cores, or maybe air cores.
Ive got it running to 20krpm now, I just ignored the smoke for a while why I got the software sorted, The ADC wasnt sampling the hall position sensors fast enough as id forgoton to take into acount id multiplexed many more inputs for debuging lol. now its in sync the chokes dont smoke, just get hot, but so does the motor too, I gues thats whinging about the HF now too, when its not in optimum sync theres about 30amps pk-pk at commutation frequency.
I couldnt see any that had high voltage isolation for the low side as well as the high side. thanks,
Ive thought about this some more too and there is another big advantage :-
with edge aligned all the phases are switched at the same time on the positive going edge, thus there is no power going from phase to phase here at this point. the power shows up with any difference in PWM duty ratio at the falling edge only with center aligned there is phase to phase power at both edges with difference in duty ratio, thus there is twice as many power pulses per cycle.
Terry, what's all this pseudo-Litz stuff (anyhow)?
I've often seen it mentioned and always thought it was had absolutely no influence on skin effect. The thing is that the wires that are at a given radius always occupy the same position along the wire length and current only have axial component, so...
To check this I made some thorough measurements with three 65cm wire loops of equivalent copper section for:
- 0.71 plain solid wire,
- 7x0.27 non isolated strands (ordinary wiring cable),
- "pseudo Litz" 7x0.27 isolated strands (from an old monitor compensation coil).
They all have ***exactly*** the same Rs from 10kHz up to 10MHz. (Ls varies a bit since the loop shapes can't be made the same).
Now this isolated stranded wire may have some benefits when coiled but this will be proximity effect, not skin effect, and you'll have to check you're not building regular patterns when winding your coil (wire stranding pitch isn't an integer ratio of the coil turn length).
This is the same as what would be called synchronous-antiphase on an H-bridge, like for a DC brush motor. The continuous triangle-wave current is the problem. If the inductance is small, then the peak-peak current is large. without changing the PWM modulation scheme, the only fix is to add inductance, and then you move the heating problem from the motor and transistors to the inductor core. That is not a great improvement, in most cases.
Now, you are on the right track! Just add series inductance. The change in modulation from full voltage one way or the other across the inductance all the time, to full voltage only 1% of the time is an ENORMOUS improvement! You would need huge cores with the 50% scheme, but a MUCH smaller core will do for the 1% scheme. Your test didn't work out because you were shorting the motor - clearly a lot of loss there. With enough inductance in series, then the circulating currents both at the PWM frequency as well as the motor's synchronous frequency will be reduced.
They used to do this, but it is not necessary. And, you don't need much inductance, just enough to cut the P-P currents at the PWM frequency, not the motor's synch freq.
Opto-isolate then. I use the TLP2200 with the logic running at 12 V for noise immunity. The same 12 V is the FET gate bias supply, too.
but my 3ph pwm outputs are not antiphase. whatever scheme is used there must be enough inductance to limit the rise of the current during the on period. otherwise the FETs realy will get very hot indeed wich was my first problem.
The motor has much less than 10uh (limit of my measurer) initialy I tried winding 200uh with one of my cores from a big bag ive got, but this got way to hot so i had to use thicker wire with less turns.
I would agree that antiphase is as if its trying to deliberatly do the worst thing lol and anything would be better.
but with my in phase pwm outputs there is also definatly no reverse voltage across the inductors, as they are accross the outputs. there is only a forward voltage difference when the falling edges are skewed by different duty cycles wich wld be 1% at low power.
Ive also decided to switch to center aligned PWM in my dsPIC wich means power pulses between phases on both edges of the PWM output.
Incidently I used another method where I only used 2 PWM modules for 3ph. one PWM controlled the first phase completly. one of the other phases was either high or low as appropriate, and the other was pwm driven.
Its also neat to keep the motor center volts close to ground.
yes you need enough total series inductance to flywheel the current so that the motor sees just an average voltage. otherwise the current might also reverse wich will just multiply all losses.
another big reason why it was getting so hot was software, with such a incredibly low motor resistance not just inductance a huge current flows if the op voltage does not match the back emf from the motor, the motor speed is of course determined by the comutation frequency. took me a while to get this right, what with problems with hall sensors not working too well etc. and the smoke was kinda putting me off tbh.
yes I had considered that if I couldnt find what I wanted. also gate drive transformers driven from a HF chopped signal and rectified, as some mcu have PWM outputs wich can do this directly.
thanks for all the help and ideas, its clearer now.
air cores are large, and sporay flux everywhere, which makes any form of EMC compliance much harder.
Oh, I see. you need to add that for yourself. make sure the optocouplers you pick have a nice high dV/dt rating. Its not so important for low-side opto's but very important if you have optos to the high-side gate driver.gatedrive.
AIUI not unless you weave the strands to ensure each strand sees the same flux - IOW make litz out of it.
but it doesnt make things worse either, and can be a lot easier to wind (which is the only reason I've done it)
I started thinking "what if you want a BIG cross-sectional area", which led to thinking the skin depth at 10MHz is what, about 20um, which is tiny compared to either wire diameter. 0.71mm corresponds to 8.6kHz, and
0.27mm to 60kHz. So I the LF and HF behaviour should be similar, but there might be some slight differences between 10-50kHz.
It seems to me that you would need the individual strand diameter to be much smaller than that of the single wire, in order to measure any appreciable difference, and that without weaving proximity effect will cancel out any gains.
back in the days of off-line bjt based SMPS design, we were told litz wire would make our transformer much more efficient, so we tried a sample, however it didnt make a scrap of difference, either the rf resistance wasnt actually a problem or the extra dc resistance canceled this out. we also tried parallel windings etc but made little difference, partly becuase again the increase in dc resistance canceled it out, however the switching frequency was ~20khz, from the thread about the 1Mhz class d amplifier output choke it makes a huge difference at much higher frequency. I must confess to not having looked at the maths behind skin effect and proximity effect in any detail before, however its useful to have a formula one could stick numbers in, or a general rule of thumb.
would be nice to draw a graph, not got time just atm maybe theres a better explanation on the net, I only just understood the advantage of it myself recently, before I thought it just meant you had more granularity on the duty cycle.
but sounds like you got the jist of it, yes this is exactly the situation, or to look at it another way for the same rate of power pulses the CM frequcncy content is halved, basically it means less ripple current for the same inductor or smaller inductor ...
I just re hashed major part of the software wich controls the motor sync and it runs quite cool now at 10krpm I can actually touch the chokes that were smoking before. It now adjusts the phase and speed of the comutation sinewave and the voltage level at each PWM pulse at 20khz. cpu is still only at 40%, and it draws a 1/vga bitmapped lcd too.
Ok. But you just said: >>> you also need to be careful about skin and proximity effect; a >>> single-layer winding avoids proximitiy effect, but skin effect cant >>> really be avoided. try several paralleled strands of magnet wire >>> (a-la Litz)
Difficult to say from the measurements. The VNA is having hard time at such low impedances.
I don't think so. To me, the finer the strands the closer you get to plain solid wire and the lower the difference. I guess that at the limit you just get a bigger plain wire of lower conductivity material to account for the voids in the composite wire section.
yep. the key part is "you cant really avoid skin effect", but you're right, it does read that way. naughty me :)
multi-filar winding is useful if you have the winding width to support it without adding extra layers, rather than using widely spaced larger wire. IME if you end up with more layers, proximity effect tends to eat any gains from dropping to multifilar smaller wires. FWIW.
Please do not shoot the messenger, but i do not think that hobby 3-phase motor controllers do not do any PWM at all. Except at stop, to prevent burning the motor up. You can get one at any RC hobby shop, or on the Internet.
I think that running the waveforms look like this:
A. |-----_ |-----_ |-----_ |-----_ _____- _____- _____-
B. ---_ |-----_ |-----_ |-----_ _____- _____- _____- ___
C. -_ |-----_ |-----_ |-----_ _____- _____- _____- _____
This is intended to represent "square waves" with a little dead time.
Gegen dummheit kampfen die Gotter Selbst, vergebens.