Designing a digital speed controller for a DC motor By: Thu Nguyen van Dept. of Automatic Control Hanoi University of Technology Vietnam Abstract: Controlling the speed of a DC motor is a classical problem in both electrical field and in automatic control. There have been many types of controllers from simple to complex, from analog to digital; This paper only introduces an approach to the solution. To monitor the speed and get high quality, we must control the torque of the motor by means of manipulating its armature current. Thus we have a cascade controller in which the inner loop controls the motor armature current and the outer one handles the speed. The both loops are analyzed and designed in the z-plane using the most advantage method which the z-plane provides. Modeling of the DC motor: We have a DC motor with the parameters from [1]: Moment of inertia: J= 0.012 kg.m 2 Electric resistance: Ra= 250 mΩ Electric inductance: La= 4 mH
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Designing a digital speed controller for a DC motor
By:
Thu Nguyen van
Dept. of Automatic Control
Hanoi University of Technology
Vietnam
Abstract:
Controlling the speed of a DC motor is a classical problem in both electrical field
and in automatic control. There have been many types of controllers from simple
to complex, from analog to digital;
This paper only introduces an approach to the solution. To monitor the speed
and get high quality, we must control the torque of the motor by means of
manipulating its armature current. Thus we have a cascade controller in which the
inner loop controls the motor armature current and the outer one handles the
speed.
The both loops are analyzed and designed in the z-plane using the most
advantage method which the z-plane provides.
Modeling of the DC motor:
We have a DC motor with the parameters from [1]:
Moment of inertia: J= 0.012 kg.m2
Electric resistance: Ra= 250 mΩ
Electric inductance: La= 4 mH
Back EMF constant: ke= 236.8
Mechanical constant: kM= 38.2
Flux ψ= 0.04 V.s
The equations describing the motor are shown as follow:
Armature voltage:
Back e.m.f:
The Speed:
Torque of the motor:
Designing the current control loop
When designing the current loop, which is much faster than the speed one, the
variation of the back emf eA, therefore, can be neglected.
Then the current loop has the block diagram as:
With the smallest time constant in the loop is Treg= 5 mS, I choose the sample time
of the loop to be Treg/10= 0.5 mS.
Then we can derive the transfer function of the open loop in S-plane as:
Using Matlab to get the transfer function of the loop in Z-plane assuming that we
use the ZOH and the sample time is Tsample= 0.5 mS we obtain:
Now we are designing-finding the transfer function-of the controller.
As mentioned above, the current loop must be very fast compared to the speed
loop. To obtain this small time constant, I choose Deadbeat method to meet the
requirement.
In the Deadbeat method, the objective of the design is to have the error between
the desired value, the reference, become zero after a number of cycles. Because
Block diagram of the current control loop
Zero-Order
Hold
1/Ra
Ta.s+1
Transfer Fcn1
Vtb
Ttb.s+1
Transfer Fcn
numGrz(z)
denGrz(z)
Discrete Filter
Then this can only achieved when GW(z) is a finite polynomial with coefficients
having sum equals 1.
We have
GW(z) is a finite polynomial only when GU(z) can cancel A(z-1), this means
GU(z)= L(z-1)A(z-1) where L(z-1) is a finite polynomial
Then we will have
With this assume, we can find the controller from Gu(z)
So the work now is to design L(z-1). We now list what we must consider when
designing L(z-1):
o The order of GR equals to the order of L times the order of A, for the
processing speed and the size of memory of the controller, the order of L
must be as low as possible
o The closed loop transfer function , as mentioned
above, must have its coefficients sum equals unity, this also means
or where bj is the jth coefficient of B(z-1)
o We also care about the control variable, u in this case; it must not be too
large so that the cost for the regulator can be reduced and its life will be as
long as possible.
With all these considerations, a first order of L(z-1) should be the bes, because
a zero order L(z-1)= l0 has no effect on the control variable and a order of two
may be too high. So we have:
Where
The control variable:
Thus
Where are the two coefficients of the denominator A(z-1).
In case we will choose and so that in the first two cycles, the
values of the control variable, u, are the same so that it is milder.
We obtain:
This yields:
Apply to this case we have:
Then the transfer function of the controller is:
The figure below is the simulation of the current control loop in Simulink
We found that in the simulation condition, the performance of the loop meets the
requirement that the time constant must be as small as possible. The output
keeps up with the input-set point-after three cycles.
Simulation of the current control loop
Zero-Order
Hold
24
5*10^-3s+1
Transfer Fcn1
4
16*10^-3s+1
Transfer FcnStep Scope
num(z)
den(z)
Discrete
Transfer Fcn
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x 10-3
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Time
Outp
ut
Mom
ent
Transient response of the moment loop
Designing speed control loop
Being satisfied with the performance of the current we now approach the
designing of the controller for the motor speed, which is the ultimate objective of
the work.
Block diagram:
The sample time in this loop is chosen to be ten times the sample time of the
current loop; Tw=10Ti= 5 ms. Since ten cycle in the current loop equals to one in
speed loop whereas the settling time of the current loop is only three cycle, the
current loop can be neglected when designing speed controller, in other word, we
can consider its transfer function to be unit.
The transfers function of the speed open loop in S-plane and in Z-plane:
T=Tw
Gri
T=Ti
Block Diagram for the DC motor speed controller
speedW*
W
Vtb
Ttb.s+1
rectifier
-K-
-K-
kM*PsiZero-Order
Hold1
Zero-Order
Hold
J.s
1Vr(z)
1
Grw
numGrz(z)
denGrz(z)
1/Ra
Ta.s+1
Now there are two options for designing the controller: to meet the set point
requirements, or to meet the noise cancelation requirements.
First, I design a controller for best response to the set point signal-the input
speed-trying two approaches and then I try designing for noise cancelation.
The first approach to designing the controller is using a PI controller with its
optimized parameters. The transfer function of the PI controller has the form:
My professor gave me a optimal value as:
and
Where VS and a1 are from the open loop transfer function we are designing
That is VS= 0, 6366 and a1= -1
Therefore we have
Thus
This method yields a result that the controller is a gain and the integration is
omitted, this happens because the plant itself has a integral part in it, therefore,
only a proportional term is need from the controller.
Apply the speed controller, which is actually a proportional with a gain of 1,5708,
to the loop and simulate in Simulink, I have the curves: