Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Calculating motor resistance (NPC-T64)

Status
Not open for further replies.

sebgus

New Member
Hi!

I have two motors (NPC-T64) which I want to calculate the motor resistance on. I have some values on current, torque, voltage and rpm. This would be my approach:

First of all; calculate the mechanical power with Pm = T*ω.

After that there is a correlation between mechanical power and current times voltage over the stator: Pm = Ia*Ea. Solve Ea.

At last using KVL you can set up an equation for the circuit: U = Ea + Ia*R. Solve R.

With this method I am getting a resistance between 0.2 and 0.4 Ohms, is this reasonable?

// Sebgus
 
Last edited:
Yep, They quote stall current at 110 amps. At 24 volts thats .218 ohms.
 
Hi!

I have two motors (NPC-T64) which I want to calculate the motor resistance on. I have some values on current, torque, voltage and rpm. This would be my approach:

First of all; calculate the mechanical power with Pm = T*ω.

After that there is a correlation between mechanical power and current times voltage over the stator: Pm = Ia*Ea. Solve Ea.

At last using KVL you can set up an equation for the circuit: U = Ea + Ia*R. Solve R.

With this method I am getting a resistance between 0.2 and 0.4 Ohms, is this reasonable?

// Sebgus


Hi there,


As ronv pointed out the stall torque parameters are sometimes used, but the running resistance may be different so another way to calculate this is as follows...

First calculating the power P:
P=T/12*S/5252*745.7
where
P is the power in watts,
T is the torque in inch pounds,
S is the speed in RPM (rotations per minute)

Then:
Ra=P/Ia^2
where
Ra is the resistance,
Ia is the measured armature current.

For your motor going by the published dynamometer measurements at 187 RPM the resistance comes out to about 0.39 ohms.


Another more accurate method is to put the motor into a feedback circuit where the quantity Ia*Rx is used as a negative feedback signal in an integration controller attempting to control the speed by keeping it constant with load. As the load is varied the speed does not stay constant until Rx=Ra at which time the speed does stay constant. In other words, vary Rx until the speed stays reasonably constant with load changes and then Ra=Rx. Of course in an actual circuit Rx may be made an analogue of Ra to allow the use of more commonly available potentiometers and then simply calculate Ra from Rx once it is adjusted properly for a given speed.
 
Last edited:
Thanks MrAl for your extensive answer and the alternative way to calculate the resistance! I think, for my applications, that it is sufficient to calculate it theoretically.

Would you perhaps know how to calculate the inductance of the motor? Or is it negligible?

Thanks again!
 
Hello again,


You're very welcome and for me it's good to see that people are interested in these kinds of issues in a nice forum like this.

The feedback method is very interesting for sure, and something like that had been used in lots of commercial equipment until ic's came out that would do it digitally, but the simplicity is that you get to control the speed via the measurement of the current and the motor's terminal voltage. The old cassette players used transistors to do this :)

In many cases the inductance is taken to be swamped by the rotational inertia of the system, so the inertia often dominates the response and the inductance is ignored. I guess it really depends on your system though, because some systems may want to use a large drive to get the motor up and spinning quickly. Perhaps the brushes dont allow too high of a drive though so the system may not be sped up too much anyway, but some motors are spec'd at higher voltages than the normal running voltage so maybe there's an opening there for drive improvement, if it is really needed of course (many apps dont need that anyway).

We might be able to come up with a test scheme to measure the inductance if you really need to, but i guess i would have to ask what kind of application you would need this for as well. For example, if the inertia is large enough a pulse to the motor might reveal the inductive response as before the system starts moving significantly the inductive effect should be dominate....i'd have to take a better look though to be sure, or find some method on the web perhaps, but the input model is just basically an inductor (La) in series with a resistance (Ra) in series with the back emf generator. A scope would do the trick.

In stepper motors though it is common to take special interest in the inductance so the drive can be designed better with faster response. The lack of brushes makes an incredible difference.
 
Last edited:
Hi!

Sorry for a late reply. It is indeed a very nice forum, seen you helping a lot of people!

Casette players? Haha cool!

Okay, interesting. Well the application is a Segway. We are first going to simulate the system with some mathematical models and then going to build it. Thats why we needed some constants of the motors (Resistance, torque and velocity constant).

What I have seen from several articles on segways is that they ignore the inductance of the motors, and I guess it would be ok to do it in this case also? How much can it influence in the end? What would the difference be?
 
Hello again,


Well, since this is a more dynamic system than i originally thought you were talking about it would be difficult for me to give a definite answer from my armchair so to speak but it doesnt seem like it would be too hard to start with the simplified model (rotational inertia dominates) and keep in mind the more complete model (inductive effects have significant effects on the system). In terms of the order of the system it would mean one order less without the inductance but then again only one order more to include the inductance.
If the inductance is low compared to the inertia then the system, if designed properly, will operate smoothly and without any instability. If the system is designed without considering inductance and the inductance is really not as low as expected, then the system could be jerky or wobble between two stable points even if stable overall, or it could be completely unstable if the inductance is high enough.
If you have seen several write ups on these machines already and they ignore the inductance and they operate normally then i dont see why you couldnt do the same. At least that could be the starting point to keep the system a little more simple. If you find that the operation is unacceptable you can always fall back on including the inductance cant you?
What else is done sometimes in cases like this is we model the system in all it's complexities and then do some simulations in order to study the effects of the variable on the entire system. For this app you might design the control system based on the inductance being zero, but do the simulation with a range of inductance values to study the effect of more significant inductance. For example, you would start by testing the model with zero inductance, then see what happens when you use 1mH, 2mH, 5mH, etc., up to the estimated max.

What kind of feedback system do you intend to use?
I'd like to hear more about this project too if you dont intend to go into production with this.
 
Last edited:
You can estimate the inductance by applying a 2-level PWM to the motor (50% duty) and measuring the current ripple amplitude dI. 2-level PWM means that you are switching the motor voltage between two voltage levels (Vcc and -Vcc).

L = Vcc / (2*dI*Fpwm)

But, like MrAl said, It is very likely that you can ignore the motor inductance. Many applications actually include additional inductance in series with the motor to reduce the current ripple. This makes the motor operation more efficient and also makes current measurement easier (and improves the stability of possible current controller).
 
Last edited:
Hi!

Thank you for taking your time to answer my questions! :)

MrAl said:
Hello again,
Well, since this is a more dynamic system than i originally thought you were talking about it would be difficult for me to give a definite answer from my armchair so to speak but it doesnt seem like it would be too hard to start with the simplified model (rotational inertia dominates) and keep in mind the more complete model (inductive effects have significant effects on the system). In terms of the order of the system it would mean one order less without the inductance but then again only one order more to include the inductance.

I don't mind to start off with a simplified model, just makes life easier for us :). But it is as you say just one more order to include the inductance. It is a pity that we have some time constraints, otherwise we would have done a comprehensive model.

MrAl said:
If the inductance is low compared to the inertia then the system, if designed properly, will operate smoothly and without any instability. If the system is designed without considering inductance and the inductance is really not as low as expected, then the system could be jerky or wobble between two stable points even if stable overall, or it could be completely unstable if the inductance is high enough.
If you have seen several write ups on these machines already and they ignore the inductance and they operate normally then i dont see why you couldnt do the same. At least that could be the starting point to keep the system a little more simple. If you find that the operation is unacceptable you can always fall back on including the inductance cant you?

I guess you can identify that kind of stability problems in a Nyquist-diagram for example? It seems though that nobody else cares about it, and there is of course a possibility to fall back to include the inductance (if we have time left). :)

MrAl said:
What else is done sometimes in cases like this is we model the system in all it's complexities and then do some simulations in order to study the effects of the variable on the entire system. For this app you might design the control system based on the inductance being zero, but do the simulation with a range of inductance values to study the effect of more significant inductance. For example, you would start by testing the model with zero inductance, then see what happens when you use 1mH, 2mH, 5mH, etc., up to the estimated max.

What kind of feedback system do you intend to use?
I'd like to hear more about this project too if you dont intend to go into production with this.

That would also be an option, I'll keep that in mind. We are considering using a standard PID-regulator or a (more fancy) Linear-quadratic regulator if the modelling is good. We have already written code for a complementary filter and we are also working on a Kalman filter. Why we are doing two of both regulators and filters is to compare the end results and choose which one is the best.
The frame (+ batteries, motors, wheels) are already in place so it is only the modelling and programming left, but that takes time too. We have some pictures on the frame if you are interested?

misterT said:
You can estimate the inductance by applying a 2-level PWM to the motor (50% duty) and measuring the current ripple amplitude dI. 2-level PWM means that you are switching the motor voltage between two voltage levels (Vcc and -Vcc).

L = Vcc / (2*dI*Fpwm)

But, like MrAl said, It is very likely that you can ignore the motor inductance. Many applications actually include additional inductance in series with the motor to reduce the current ripple. This makes the motor operation more efficient and also makes current measurement easier (and improves the stability of possible current controller).

Nice! Is there any possibility to derive the formula? Would just be interesting to see where it comes from :). Thanks!
 
The equation comes from the very fundamental equation for inductance:

v = L * di/dt

It says that if you apply constant voltage across inductance L the current changes with constant rate:

di/dt = V/L

Now, because we have constant voltage and constang inductance, we can think of the derivative di/dt being change of current divided by the time of the change.
Our case the change of current is the current ripple amplitude and the time is half the PWM period (because of 50% duty).

di = dI
dt = 1/(2*Fpwm)

Now the equation becomes:

dI*2*Fpwm = V/L

And from that it is easy to solve for L, which is a fairly good estimate of the motor inductance.
A better estimate would also take into account the resistance of the motor windings, but that is practically waste of time. Just use a (very) small resistor to measure the current.
I hope that was clear enough.. it is hard to write math this way and I don't have time for LaTex now :)

Edit: Here is an example measurement of pure inductance (2.2uH)
**broken link removed**

The inductor current is a nice triangle wave because there is no series resistance. If you add series resistance, the current will look more like a shark fin.
 
Last edited:
That wasn't too hard :). Would it still give a correct value on the inductance if we just pulse the voltage to the motors between 0 and Vcc or must it be -Vcc and Vcc?

Thanks for the graph also, so I could verify the method ;)
 
Hello again,

misterT:
Yes, thanks for posting. Keeping the pulse short should help subdue the effects of the series resistance too.

sebgus:
Yes, i'd like to see some pics if you have some posted somewhere.
 
Would it still give a correct value on the inductance if we just pulse the voltage to the motors between 0 and Vcc or must it be -Vcc and Vcc?

Maybe, just let the motor reach a steady speed and use Vcc/2 in the formula. I don't know if the brushed commutation messes up the measurements. If it does, try increasing the PWM frequency.
And you really have to switch the voltage between Vcc and 0.. not Vcc and "disconnected".

And further, like MrAl pointed, you can drive the motor with short pulses of Vcc and measure how much the current increases. This should be easy with digital oscilloscope.
In this method you need to keep the motor stalled, otherwise the back emf voltage needs to be added/subtracted from the Vcc.
 
Last edited:
Here are two pics attached. The first pic shows the bottom side of the Segway, two NPC-T64s + the blue box which is a Roboteq AX2550. Three battery-cells in shunt at 36 V and 3300 maH each.

misterT:
Thanks! That should be achievable with the motor controller we have. :)

EDIT:
The box on the top is where the microcontroller and IMU are located. There is also a touchscreen which we will implement to display speed and configure parameters in real-time.
 

Attachments

  • Undersida.JPG
    Undersida.JPG
    1.1 MB · Views: 590
  • Segway.JPG
    Segway.JPG
    1.2 MB · Views: 395
Last edited:
Hi,

Oh yes that's cool. I see you are well under way with this project already.
 
Hi everybody!

I wanted to revive this thread again to show you the progress we are doing. Here is a short vid on youtube:

YouTube - Segway Drifting

Just ask if you have any questions. We are 99% finished with implementing the touchscreen too, so it will be really nice in the end!
 
Hey that turned out pretty nice there! Looks like you've done it then.
 
Yeah, it works quite nice. What is left on our to-do list is the touchscreen, a technical report and fine-tuning the regulator.

We had some plans of implementing bluetooth, but time is very limited right now. :(
 
Status
Not open for further replies.

Latest threads

Back
Top