# DC Motor Parameter Identification Using Speed Step Responses

Authors: Wei Wu
Journal: Modelling and Simulation in Engineering
 (2012)

---

## Abstract

Based on the DC motor speed response measurement under a step voltage input, important motor parameters such as the electrical time constant, the mechanical time constant, and the friction can be estimated. A power series expansion of the motor speed response is presented, whose coefficients are related to the motor parameters. These coefficients can be easily computed using existing curve fitting methods. Experimental results are presented to demonstrate the application of this approach. In these experiments, the approach was readily implemented and gave more accurate estimates than conventional methods.


---

## Body

## 1. Introduction

DC motors have wide applications in industrial control systems because they are easy to control and model. For analytical control system design and optimization, sometimes a precise model of the DC motor used in a control system may be needed. In this case, the values for reference of the motor parameters given in the motor specifications, usually provided by the motor manufacturer, may not be considered adequate, especially for cheaper DC motors which tend to have relatively large tolerances in their electrical and mechanical parameters. General system identification methods [1–4] can be applied to DC motor model identification. In particular, various methods have been applied to DC motor parameter identification; that is, [5, 6] used the algebraic identification method, [7] used the recursive least square method, [8] applied the inverse theory, [9] used the least square method, and [10] applied the moments method. Identified DC motor models are often subsequently used for controller design and/or optimization, for example, [6, 9, 11].Without expensive testing apparatus and a long testing cycle, a quick and effective system identification approach based on the motor input and output is desirable and valuable, especially for the field applications and quick controller prototyping. In this paper, a DC motor parameter identification approach based on the Taylor series expansion of the motor speed response under a constant voltage input is presented. The relationships between the motor parameters and the coefficients of the Taylor series are established. In the implementation, the motor speed response under a constant voltage is sampled, then fit the samples to obtain the coefficients of power terms in the Taylor series. Then, the DC motor mechanical and electrical time constants, back-EMF, and the friction can be computed using these coefficients. With the knowledge of these parameters, a precise motor model is obtained for the subsequent controller design.For application point of view, this approach requires only a speed/position sensor, such as an optical encoder, and a voltage power supply, no current measurement is needed and the motor is run in open loop; thus it is practical and cost effective. The curve fitting can be performed using many existing methods, such as the least square method, and these optimization methods are widely available in commercial computing packages such as Matlab and LabVIEW.


## 2. Main Results

Consider the following DC motor governing equations:(1)Ldidt+iR+kbω=V,Jdωdt=kti+Td,
where ω is the motor speed, V is the motor terminal voltage, i is the winding current, kb is the back-EMF constant of the motor, kt is the torque constant, R is the terminal resistance, L is the terminal inductance, J is the motor and load inertia, and Td is the disturbance torque. Td is a combination of the cogging torque, Tcog, the kinetic friction, Tf, and the viscous friction (viscous damping force):
(2)Td=Tcog+Tf+cω˙,
where c is the damping coefficient. According to (1), the velocity response in the Laplace domain is
(3)ω(s)=1/kbtmtes2+tms+1V(s)+(1/J)tm(tes+1)tmtes2+tms+1Td(s),
where te=L/R is the electrical time constant, tm=RJ/ktkb is the mechanical time constant, and s is the Laplace variable.Based on these equations, we would like to knowtm, te, Td, J, and so forth, by measuring the velocity response under a known, controlled voltage input. In this paper, we consider two application situations: the first situation is that the disturbance torque is negligible, while in the second one, the disturbance needs to be considered.


### 2.1. Estimation without the Disturbance Torque

When the voltage speed response dominates; for example, the input voltage is large, we can ignore the disturbance torque in the speed response see (3). In this case, we can consider the following DC motor model:
(4)ω(s)V(s)=1/kbtmtes2+tms+1.The transfer function can be factorized into(5)ω(s)V(s)=1/kbtmte(s+a)(s+b),
where
(6)a,b=1∓1-4te/tm2te.Assumption 2.1.
It is assumed here that there are two distinct real poles; that is,tm>4te.
For a constant voltage inputV(s)=V0/s, the speed response is
(7)ω(s)=V0/kbtmtes(s+a)(s+b)=α1s+α2s+a+α3s+b,
where
(8)α1=V0kb,α2=V0kbba-b,α3=V0kbab-a.
Consider the three terms in the step response one at a time.α1/s is a step function in the time domain; both α2/(s+a) and α1/(s+b) are exponential functions in the time domain and can be expanded using the Taylor series. Expanding the term α2/(s+a), we get
(9)V0kbba-b(1-at+12a2t2-16a3t3+⋯).
Expanding the term α3/(s+b), we get
(10)V0kbab-a(1-bt+12b2t2-16b3t3+⋯).Combining the three terms together, we have the total speed response:(11)ω(t)=V0kb(12β0t2+16β1t3+124β2t4+⋯),
where β0=ab, β1=-ab(a+b), and β2=ab(a2+ab+b2).According to (6),
(12)ab=1tmte,a+b=1te.
Thus, we have
(13)tm=-β1β02,te=-β0β1.The above equation allows us to calculate the mechanical and electrical time constantstm and te using the coefficients of the power series in (11). These coefficients can be obtained by curve fitting the motor speed step response data using power functions.


### 2.2. Estimation with the Disturbance Torque

Consider that the disturbance torque in the DC motor is not negligible. The disturbance transfer function is(14)ω(s)Td(s)=(1/J)tm(tes+1)tmtes2+tms+1.
Disturbance torque generally consists of the cogging torque and the friction torque. The cogging torque is quite complicated and is not addressed here. Both the kinetic and viscous frictions are considered and are assumed to be constant on average under a constant motor speed.Given a constant motor terminal voltageV(s)=V0/s and the constant disturbance (ignore the cogging torque or consider the average cogging torque effect on speed over one revolution is zero) Td(s)=T0/s, the speed response is
(15)ω(s)=1/kbtmtes2+tms+1V0s+(1/J)tm(tes+1)tmtes2+tms+1T0s.As in the previous section, applying the partial fraction expansion of the step response in the Laplace domain, then expanding the exponential terms in the time domain using the Taylor series, we obtain the total step response in the time domain:(16)ω(t)=β0t+β1t2-β2t3+β3t4-⋯.Based on these coefficients, we have(17)ab=18β22-24β3β13β0β2+2β12,a+b=6β2-β0ab2β1,
and another equation for a+b:
(18)a+b=12β3+β1ab2β2.
Then, we can express the motor parameters as
(19)tm=a+bab,te=1a+b,T0J=β0,kb=ab2β1V0.In practice, fit the measured motor speed step response using power functions according to (16); then calculate the motor parameters using (19).Remark 1.
Another relationship useful for checking the algorithm is based on the steady-state response of (15), expressed by the following equation:
(20)V0kb+β0tm=ωss,
where β0=T0/J and ωss is the motor steady-state angular speed.


## 2.1. Estimation without the Disturbance Torque

When the voltage speed response dominates; for example, the input voltage is large, we can ignore the disturbance torque in the speed response see (3). In this case, we can consider the following DC motor model:
(4)ω(s)V(s)=1/kbtmtes2+tms+1.The transfer function can be factorized into(5)ω(s)V(s)=1/kbtmte(s+a)(s+b),
where
(6)a,b=1∓1-4te/tm2te.Assumption 2.1.
It is assumed here that there are two distinct real poles; that is,tm>4te.
For a constant voltage inputV(s)=V0/s, the speed response is
(7)ω(s)=V0/kbtmtes(s+a)(s+b)=α1s+α2s+a+α3s+b,
where
(8)α1=V0kb,α2=V0kbba-b,α3=V0kbab-a.
Consider the three terms in the step response one at a time.α1/s is a step function in the time domain; both α2/(s+a) and α1/(s+b) are exponential functions in the time domain and can be expanded using the Taylor series. Expanding the term α2/(s+a), we get
(9)V0kbba-b(1-at+12a2t2-16a3t3+⋯).
Expanding the term α3/(s+b), we get
(10)V0kbab-a(1-bt+12b2t2-16b3t3+⋯).Combining the three terms together, we have the total speed response:(11)ω(t)=V0kb(12β0t2+16β1t3+124β2t4+⋯),
where β0=ab, β1=-ab(a+b), and β2=ab(a2+ab+b2).According to (6),
(12)ab=1tmte,a+b=1te.
Thus, we have
(13)tm=-β1β02,te=-β0β1.The above equation allows us to calculate the mechanical and electrical time constantstm and te using the coefficients of the power series in (11). These coefficients can be obtained by curve fitting the motor speed step response data using power functions.


## 2.2. Estimation with the Disturbance Torque

Consider that the disturbance torque in the DC motor is not negligible. The disturbance transfer function is(14)ω(s)Td(s)=(1/J)tm(tes+1)tmtes2+tms+1.
Disturbance torque generally consists of the cogging torque and the friction torque. The cogging torque is quite complicated and is not addressed here. Both the kinetic and viscous frictions are considered and are assumed to be constant on average under a constant motor speed.Given a constant motor terminal voltageV(s)=V0/s and the constant disturbance (ignore the cogging torque or consider the average cogging torque effect on speed over one revolution is zero) Td(s)=T0/s, the speed response is
(15)ω(s)=1/kbtmtes2+tms+1V0s+(1/J)tm(tes+1)tmtes2+tms+1T0s.As in the previous section, applying the partial fraction expansion of the step response in the Laplace domain, then expanding the exponential terms in the time domain using the Taylor series, we obtain the total step response in the time domain:(16)ω(t)=β0t+β1t2-β2t3+β3t4-⋯.Based on these coefficients, we have(17)ab=18β22-24β3β13β0β2+2β12,a+b=6β2-β0ab2β1,
and another equation for a+b:
(18)a+b=12β3+β1ab2β2.
Then, we can express the motor parameters as
(19)tm=a+bab,te=1a+b,T0J=β0,kb=ab2β1V0.In practice, fit the measured motor speed step response using power functions according to (16); then calculate the motor parameters using (19).Remark 1.
Another relationship useful for checking the algorithm is based on the steady-state response of (15), expressed by the following equation:
(20)V0kb+β0tm=ωss,
where β0=T0/J and ωss is the motor steady-state angular speed.


## 3. Implementation and Results

The proposed approaches were first applied to a Mabuchi RK370CA motor, then a Mabuchi FC130 motor. To implement the algorithms, a LabVIEW program was created to interface a pulse width modulated (PWM) motor drive and an optical encoder with quadrature digital outputs mounted on the motor shaft. The determinism of the sample time was assured by the LabVIEW real-time module. And, a national instrument (NI) LabVIEW FPGA (field programmable gate array) card was utilized to process the digital quadrature encoder signals to obtain the motor speed and to control the motor PWM drive.Values of the motor parameters given in the motor specifications for reference are presented in Table1.Table 1
RK370CA parameter values.
Parameter
Value
Unit
Terminal resistance
17± 15%
Ω
Terminal inductance
N/A
Henry
Torque constant
18.3± 18%
mNm/A
Mass moment of inertia
9.0
gc
m
2
Counter-electromotive force
0.0233
volt/(rad/sec)Note that the Back-EMF and torque constant are not equal (although it should be theoretically). Inductance value is not given and was measured as 20.25 Henry. The resistance was measured as 16.4 Ω. Thus we calculatedte=L/R=0.00122 sec.First, apply the algorithm for no-disturbance torque. To apply this algorithm, the speed response part due to the voltage input is assumed to dominate. To meet this condition, for example, the speed variation at the steady-state is small compared to the steady-state speed, we send a large voltage to the motor drive,V=20 volt. Next, we apply the approach for disturbance torque. The disturbances, that is, friction, effects on the speed response are significant when the input voltage is small. To demonstrate the effectiveness of the algorithm, we sent two voltages, 2 volt and 10 volt, to the motor. Driving the motor at two different voltage levels can demonstrate that the viscous friction varies with the speed, also can allow us to calculate the viscous damping coefficient.Usuallyte is very small compared to tm a good estimate of both te and tm at the same time is difficult. Because tm is usually much larger than te, tm and te were estimated separately using different data collected with different sample rates and different time durations. For estimating tm, the motor speed in both the transient phase and the steady-state was sampled at 1 kHz for one second; for estimating te, the motor speed in the transient phase was sampled at 8 kHz for 200 msec. In each test, the motor was driven multiple times and parameter estimates were averaged.Results are summarized in Table2. Column two gives the values estimated using the algorithm for no disturbance, and column three gives the values obtained using the algorithm considering disturbance; values in the fourth column are computed using values from Table 1. Note that R=17Ω, J=9 gcm2, kb=0.0233 volt/(rad/sec), and kt=0.0183 Nm/A are used to calculate tm in the fourth column of the table. According to Table 2, the estimates of kt, tm, and te are in good agreement with those given by the motor specifications.Table 2
RK370CA test results.
Parameter
w/o dist.  20 v
w/dist.  2 v/10 v
Spec. (meas.)
Unit
k
t
0.0238
0.0207/0.0169
0.0183± 18%
Nm
/
A
t
m
0.0407
0.0211/0.0203
0.0359
sec
t
e
0.00554
0.00122/0.00134
(0.00122)
sec
T
0
/
J
N/A
10.551/115.758
N/A
Nm
/
kg
m
2Time responses sampled at 1 kHz for 1 s are given in Figures1, 2 and 3. In these figures, red curves represent the power series, ∑i=1nxiti, resulting from curve fitting the motor speed responses. Comparing these figures, it is obvious that the approach with disturbance consideration approximates the measurements much better, because of the existence of the linear term, β0t, in the power series due to the presence of the constant disturbance in the motor.Figure 1
Approachw/consideration of disturbance under 2 volt input: black, measurement: red, power series fitted.Figure 2
Approachw/o consideration of disturbance under 2 volt input: black, measurement: red, power series fitted.Figure 3
Approachw/o consideration of disturbance under 20 volt input:Black, measurement: Red, power series fitted.To further demonstrate the effectiveness of the proposed algorithms, we compared them to conventional identification approaches. First, we drove the motor using random voltage input (10 volts maximum) and measured the motor speed at a sampling rate of 10 kHz. Then, the motor/drive frequency response function was calculated through spectral analysis. Based on the calculated frequency response data, we used Matlab system identification toolbox to identify a second-order model. Various methods, that is, subspace approach in the system identification toolbox, were tried and compared. The best model found was(21)T(s)=9078s2+334.6s+18860.
Using the model coefficients, we get
(22)tm=0.0177sec,te=3msec,kt=0.031volts/(rad/sec).
These estimates are bad, especially the electrical time constant te due to the very small time scale as alluded to earlier.Remark 2.
T
0
/
J may be used to calculate the friction (both kinetic and viscous) if J is known. First, calculate the viscous friction coefficient c=(T1-T0)/(ω1-ω0). Then, calculate the dynamic friction, Tf=T0-cω0. For example, ω0=1.21 ips under 2 volt, ω1=6.274 ips under 10 volt, J=9.0 gcm2, and it renders c=0.0187 mNm/ips.Remark 3.
The number of terms in the power series included for fitting the data was determined through trial and error. When disturbance was not considered, twenty-five terms were included; when disturbance was considered, including forty terms gave the best results. Since the coefficients were calculated using the polynomial curve fitting function from the math library provided inside LabVIEW, it was not difficult and time consuming to try different number of terms. Including more terms does not necessarily improve the parameter estimation accuracy.
A Mabuchi FC130 motor was tested as well. It is a smaller motor compared to RK370. Good results were obtained again this time; see Table3. Note the very small te in this small motor. Algorithm considering disturbance torque was applied. In the testing, 10 volts was used as the motor drive input. For tm estimation, the speed response was sampled at 1000 Hz for 500 samples, while for te estimation, it was sampled at 6000 Hz for 850 samples.Table 3
FC130 test results.
Parameter
w/dist.
Spec.
Unit
k
t
0.0137
0.0127± 10%
Nm
/
A
t
m
0.0208
0.024
sec
t
e
0.251
0.214
msec


## 4. Conclusions

A convenient, effective system identification approach is proposed to estimate the DC motor torque constant, mechanical time constant, electrical time constant, and friction. This approach was implemented on two Mabuchi motors, and the great test results were presented. This open-loop method requires little hardware, only a speed/position sensor and a voltage supply. The estimated motor parameters can be used to verify the DC motor performance or be used to build a model of the motor for the subsequent controller design or system optimization. This approach is especially suited to quick field applications.



---

*Source: 189757-2012-10-03.xml*