Modifying PWM to increase torque

swbluto

10 TW
Joined
May 30, 2008
Messages
9,430
Everybody knows that the torque of a motor is dependent on the current flowing through it as everybody knows that current determines the electromagnetic force(holding everything else constant). According to ebikes.ca, the motor's current is equal to the battery's current divided by the duty cycle. So, to increase torque by increasing motor current, all one has to do is modify the duty cycle, right? Or can that not be done for some physical reason?

I'm thinking if I could modify the duty cycle to .0001, I could definitely get some serious hill-climbing power! :lol:
 
Thing is, modifying the duty cycle to be really low also lowers power going to the motor. :? You wouldn't even be able to move the bike itself on only 0.0001(%?).

The throttle is what modulates the duty cycle. Low throttle = low duty cycle, high throttle = high duty cycle.
 
Link said:
Thing is, modifying the duty cycle to be really low also lowers power going to the motor. :? You wouldn't even be able to move the bike itself on only 0.0001(%?).

The throttle is what modulates the duty cycle. Low throttle = low duty cycle, high throttle = high duty cycle.

Uhhhh... yeah, except also where the battery current is being limited which usually predominantly happens during acceleration and hill-climbing. According to ebikes.ca, I_motor = I_battery/D, so by naive inference, an infinitesimal D would result in a nearly infinite motor current thus nearly infinite torque! But that's obviously absurd and I agree that an infinitesimal duty cycle would severely limit the power, so there's some other element coming into play at this lower point and something(s) that is/are determining a reasonable D at lower RPMs so I ask, what are these things and how can D be calculated? It seems ebikes.ca seems to be finding D just fine given they're calculating motor-current, as can inferred by the fact they're calculating torque and their torque equation includes the motor-current equation which depends on D as in the diagram, all over the current-limited range.
 
Current limiting is the same thing. It lowers the duty cycle on the motor same as letting off the throttle would.

The motor also has to be loaded down for it to be drawing significant amperage with lower PWM. So increased battery voltage would theoretically get you more torque, wouldn't it?

(I'm kinda out of my depth here...)
 
Link said:
Current limiting is the same thing. It lowers the duty cycle on the motor same as letting off the throttle would.

The motor also has to be loaded down for it to be drawing significant amperage with lower PWM. So increased battery voltage would theoretically get you more torque, wouldn't it?

(I'm kinda out of my depth here...)

Don't worry, I'm more out of this depth than you are! :p But I'm intending to go into as much of this depth as possible. I want to make PREDICTIONS, you know? I want to know how to predict motor performance so that I could apply it analytically to a given load.

Ebikes.ca's simulator seems to show that higher voltages does increase torque at 0 RPM, but the relationship does not seem proportional. I'm getting the sense that there's more information to ebikes.ca's formulas than they're letting on at the moment; Basically, the formulas they do have on there are just a "sampler" of the actual nuts and bolts of the simulator and that they really aren't showing what the "independent variables" are or how they were found in their simulator(The independent variable being the duty-cycle in the current-limited RPM region. The other independent variable, such as the windage torque are just second-order approximations that they derived from testing with the dynometer(sp?) for each motor.).
 
I'm guessing you're wanting to know for that new simulator you seem to be wanting to program? :wink:
 
According to ebikes.ca, I_motor = I_battery/D, so by naive inference, an infinitesimal D would result in a nearly infinite motor current thus nearly infinite torque!

Bad formula. They meant to say
I_motor = I_battery * D

Where D (duty cycle) is a number ranging from 0 to 1 and I_battery is the "current you'd have if 100% duty cycle", and I_motor is the current at the motor.

So anything less than 100% duty cycle REDUCES current at the motor.

One way to increase amperage (current) beyond what the battery is actually putting out is to step down the voltage.

You can step down the voltage by using pulse width modulation to limit the duty cycle, and then using capacitor(s) to turn your fluctuating voltage into a steady voltage (so 48v * 50% duty cycle = average voltage 24V - capacitor turns this into steady (actual) voltage of 24V)
 
Basically you can get more torque in a few ways.

Run at 100% duty
Increase applied voltage
gear the motor down


Increasing your voltage will increase the amperage at 100% duty cycle, if vehicle rollout is not changed. Top speed will be higher, amp draw will be higher. You can also get more torque at a sacrifice to speed with more geardown.

My favorite way is to gear down and increase voltage so that more power can be extracted and vehicle speed does not change. If you baby the throttle, no more amps are pulled on acceleration. You can gun it and get faster acceleration and more torque however. The vehicle will also pull hills faster because of the extra wattage available, assuming the motor does not become saturated.
 
cerewa said:
According to ebikes.ca, I_motor = I_battery/D, so by naive inference, an infinitesimal D would result in a nearly infinite motor current thus nearly infinite torque!

Bad formula. They meant to say
I_motor = I_battery * D

Where D (duty cycle) is a number ranging from 0 to 1 and I_battery is the "current you'd have if 100% duty cycle", and I_motor is the current at the motor.

No this is not true, the formula listed ( I_motor = I_battery/D) is (to a first order) completely correct. And the explanation and equations that I gave in the simulator description is all that there is to it, there is no 'behind the scenes' trickery going on. If you had a motor with zero winding resistance, then yes at low duty cycle the current through the motor would be many many times more than the current from the battery pack. When the motor has a finite winding resistance, then the current that results through the motor is to a first order just the battery voltage, times the duty cycle, divided by the motor resistance

Imotor = Vbatt * D / Rmotor

In a 1 quadrant motor like the Crytslayte, it is actually less than this because of the voltage drop across the freewheeling diodes, which is accounted for in the simulator but we can ignore that here.

So at low values for D, then you also get a lower (not a higher) value for Imotor, and hence less torque. Once you have calculated Imotor this way, then you can go backwards to find the battery current, Ibatt = Imotor*D.

Justin
 
justin_le said:
cerewa said:
According to ebikes.ca, I_motor = I_battery/D, so by naive inference, an infinitesimal D would result in a nearly infinite motor current thus nearly infinite torque!

Bad formula. They meant to say
I_motor = I_battery * D

Where D (duty cycle) is a number ranging from 0 to 1 and I_battery is the "current you'd have if 100% duty cycle", and I_motor is the current at the motor.

No this is not true, the formula listed ( I_motor = I_battery/D) is (to a first order) completely correct. And the explanation and equations that I gave in the simulator description is all that there is to it, there is no 'behind the scenes' trickery going on. If you had a motor with zero winding resistance, then yes at low duty cycle the current through the motor would be many many times more than the current from the battery pack. When the motor has a finite winding resistance, then the current that results through the motor is to a first order just the battery voltage, times the duty cycle, divided by the motor resistance

Imotor = Vbatt * D / Rmotor

In a 1 quadrant motor like the Crytslayte, it is actually less than this because of the voltage drop across the freewheeling diodes, which is accounted for in the simulator but we can ignore that here.

So at low values for D, then you also get a lower (not a higher) value for Imotor, and hence less torque. Once you have calculated Imotor this way, then you can go backwards to find the battery current, Ibatt = Imotor*D.

Justin

With our probable differing background knowledges and experiences(including solving methodologies), I don't think your "That's all there is to it" is the same as mine. I mean that in the most complimentary way as possible.

Anyways, I found Alan Kelm's analysis which had a "Master equation" in which variables could be substituted and solved for in a way that's useful for different parts of the torque/current curve. Cross-checking with your oh-so-awesome graphs, it appears to be veeeery accurate. And.. it's more formulaic than "algorithmic"(Although the cross over between the current-limiting to throttle-limiting region has to be solved for to determine when the "current-limiting" formula takes precendence over the "throttle limiting" formula.), which is exciting.

Anyways, I've got the torque/current curve equations solved for which can be used for nearly any motor which is, well, awesome. I plan to determine the formulas for determining final velocity and, if I feel like it, instantaneous acceleration and the time for a given amount of "total acceleration"(a given velocity change from some initial velocity) given a certain context later on today. I think this will tremendously help out buyers who are curious how fast a given motor will help them up a given hill or how fast they'll go, which appears to be a fairly frequent question on the forums from "n00bs" to put it bluntly(I was one once, so I understand the frustration!). As far as setting up an online calculator and finding a host, ehhhhh.... that might take some time. I don't even know how I'll implement it. PHP? HTML? I've never designed interactive web-sites but I've played with HTML before and I learn programming languages rather quickly(Especially when I borrow examples. :p ).
 
Java's pretty much universal to browsers, and isn't that difficult (I had to learn a little bit in one of my web design classes where I basically just supplied a flash drive for someone getting money from people to give them finished pages; I got them for free). Learn it. :wink:
 
Link said:
Java's pretty much universal to browsers, and isn't that difficult (I had to learn a little bit in one of my web design classes where I basically just supplied a flash drive for someone getting money from people to give them finished pages; I got them for free). Learn it. :wink:

Haha. I already do. But I've only used the console version as opposed to the applet version and didn't want to deal with all the... uhhh... GUI tediousness(Or is it much simpler now?). Oh well, perhaps I'll learn the Swing set.

It seems like I'm pretty much going to have to use an "official programming language" since learning the solutions I'm looking for can't be found analytically and so I'm going to have to use estimation-based functions which are most easily borrowed from a math-package. So Java is sounding appealing.

edit: Wait, nevermind. According to Java's Applet's security restrictions, "An applet cannot load libraries or define native methods." which kind of eliminates the math libraries I need to load to run the numerical approximation methods(Which Java's API doesn't seem to possess. Wait.. I guess I could write my own numerical approximation methods or perhaps just copy the source code of someone else's, bah hahahaha.).

Further edit: On another thought, it seems like the numerical approximation code should be exceedingly easy to write. The only problem might be computationally expensive calculations, but it shouldn't be that burdensome and using a "divide and conquer" methodology, the amount of individual calculations and comparisons can be minimized to an absurd extreme.
 
Back
Top