# How to perfom DC motor parameters identification without MATLAB?

#### Xavier Pacheco Paulino

Joined Oct 21, 2015
727
I always see that MATLAB is used to perfom DC motor parameters identification. Is there another way of doing this? I mean, for example, using microcontrollers I can start the motor for a period of time, and during that time one should take certain measurements and then the microcontroller perform some calculations. I'm not sure, just an idea. Is that possible? Do you know any book or reference about this for me to read?

#### Papabravo

Joined Feb 24, 2006
12,548
I always see that MATLAB is used to perfom DC motor parameters identification. Is there another way of doing this? I mean, for example, using microcontrollers I can start the motor for a period of time, and during that time one should take certain measurements and then the microcontroller perform some calculations. I'm not sure, just an idea. Is that possible? Do you know any book or reference about this for me to read?
Would having a free alternative to MATLAB be helpful?

#### shteii01

Joined Feb 19, 2010
4,647
• Xavier Pacheco Paulino

#### shteii01

Joined Feb 19, 2010
4,647
Copied from the internetz:

"Take a look here (practical method to measure the parameters and identify them)
http://www.egr.msu.edu/classes/ece480/capstone/fall10/group04/Seaton,%20Dave%20-%20Application%20Note.pdf

Actually all the practical measurement and identification methods are based on both electrical and mechanical differential equations of a brished motor at some working points (for w=0, v=0 and v=constant) then try to find a practical way to memic these situations and measure the RPM, voltage, current, armature inductance and resistance using multimeters and tachometer. Of course, to measure voltage and current you need an aquisition circuit with high side current measurement capability (that you can build yourself using ADC inputs of a microcontroller with an adequate interface circuit for sensing the current)"

https://www.researchgate.net/post/How_I_can_determine_the_parameters_of_a_brushed_DC_motor_experimentally_using_speed_vs_input_voltage

• Xavier Pacheco Paulino

Joined Jul 18, 2013
19,197
This is some notes I put together when I was looking for similar information and found them in various sources:
A simplified model of a DC motor can be derived assuming the armature inductance to be zero and ignoring the resonance effect.
With these stipulations the equations are:

1. V=Ia R + Ke omega (Ia=armature current, R=armature resistance,
Ke=electr. constant, omega=speed)

2. Tg=Kt Ia (Tg=costant, Kt=torque constant)

3. Tg=J d(omega)/dt (J=inertia, d(omega)/dt=accel.)

The DC motor transfer function is:
Gm(s)=(1/Ke)/(1+s(Rj/KtKe)), which can be written Gm(s)=(1/Ke)/(1+sTm)
where Tm=mechanical time constant.
To measure the parameters you are asking for, use the following:

A. Measure the armature resistance as below, then apply voltage to the motor without load and measure the current and speed. From equation 1. you can easily derive Ke.

B. Apply nominal current to the motor (with the shaft locked) by means
of a variable voltage source. Measure the torque on the shaft. From this you can derive the torque constant Kt=Torque/Amp.

C. You will find that Kt is approx. equal to Ke

D. For the inertia you can obtain it by calculation from the size and
material of the rotor.

Note 1: inductance can be ignored- the electrical time constant is
very short compared to the mech time constant so that it can usually be
ignored.
You can measure the mech time constant by running the motor up to
speed at no load, disconnecting the supply and letting it coast down- plot speed vs time and fit to exponential N=No(e^-t/Tm) time to drop to 36.8% of original speed is the time constant.

Note2: If it is a permanent magnet motor, you can determine the internal emf by spinning it at rated speed and measuring the open circuit voltage.
The voltage at any other speed will be directly proportional to speed. To measure the winding resistance, lock the rotor so it doesn't turn and measure the current with a small voltage applied (so as not to exceed rated current) Don't not use a multimeter's ohm range.
If you want to find the inductance, you should use a scope- apply a voltage, rotor locked and look at the current trace vs time.
This will be of the form i=K[1-e^Rt/L] where i is the current at time t.
In most cases the inductance can be ignored as its effects are generally swamped by the mechanical inertia in transient cases and is of little importance for steady state.

Max.

• Xavier Pacheco Paulino