You are on page 1of 13

“Pole placement by state feedback in DC

motor By Matlab”
PROJECT REPORT
Submitted for the course: Advanced Control Theory
By
Atul Priya Pandey 17BEE0097
TIPU 17BEE0059
Slot: F1
Name of faculty:
MEDARAMETLA PRAVEENKUMAR
School of Electrical Engineering(SELECT)
Table of Contents
1. Abstract
2. Introduction
3. Literature Review
4. DC Motor Modelling
5. Designing the full state-feedback controller
6. Adding Integral action
7. Simulation
8. Conclusion
9. References
Abstract
This paper presents the generalized dynamic modeling of dc motor using state space approach.
The performance of dc motor under various conditions is simulated using MATLAB
environment and simulation result demonstrates the feasibility of the proposed system.
A state feedback gain matrix is designed for the dc motor with the help of pole-placement
technique. Direct substitution method is used to design state observer matrix for the motor. Both
designs are verified by Ackerman’s formula in MATLAB environment.
Using this approach, the poles or eigen values of the closed loop system can be placed at the
desired location. Thus, the aim is to design a feedback controller that will move some or all of
the open-loop poles of the measured system to the desired closed-loop pole location as specified.

Key words: State space, State feedback, pole-placement,


MATLAB
INTRODUCTION
DC motor is always been an important instrument in industry and controlling of dc
motor is a great challenge for control engineers. Dc motor have been using in
various application as it has simple mechanical structure and offers simple
mechanism for accurate control of speed and position. But still today it has been an
issue for proper controlling of Dc motor. The control of the angular position of
these motors is an important challenge and requires accuracy.
The method of feed-backing all the state variables to the input of the system
through a suitable feedback matrix in the control strategy is known as the full-state
variable feedback control technique. In this project, DC motor with armature
control and a fixed field is considered as a third order system. This project is
focused on studying State-Feedback Controller in controlling the DC motor at
desired position. The State-Feedback controller is designed based on the state
space model. After that, State-Feedback controller with integral control is designed
to overcome the problem faced in achieving desired response by State-Feedback
controller. Pole-Placement design technique is used for the state feedback
controller since it has the best performance compared to other controllers in terms
of oscillation and settling time.
Literature Review
Different controllers for angular position control in continuous-time have been proposed, for
example sliding mode controllers, fuzzy sliding mode controllers, PID combined with fuzzy
sliding mode controllers; in discrete time, for example the classic PID controllers, neural
networks (NN) controllers, among others. Few authors made a comparison between a
proportional control and the fuzzy control on a laser beam alignment system. It was shown that
the fuzzy controller significantly reduced the overshoot and virtually eliminated limit cycling. Li
and Lau investigated the possibility of applying fuzzy algorithm in a microprocessor-based
servomotor controller, which requires faster and more accurate response compared with other
industrial processes.
It was concluded after simulation results by Li and Lau that the fuzzy controller is better than the
PI controller. Smith and Comer compared a fuzzy position controller with a PD controller using
only the simulation result. Many of the applied controllers were successful to control dc motor.
But one control technique may not be applicable for all application. Same control technique may
have different performance in various applications. So controlling Dc motor remains a challenge.
PID controller is widely used in many control applications because of its implicitly and
effectiveness. Though the use of PID control has been a long history in the field of control
engineering, the three controller gain parameters are usually fixed. The disadvantage of PID
controller is poor capability of dealing with system uncertainty, i.e. parameter variations and
external disturbance. In this paper a state feedback controller is proposed for position control of
Dc motor.
Mathematically modelling of DC Motor
Ex-

Where 𝑒𝑎(t) = armature voltage, 𝑒𝑚 (t) = back emf, 𝑖𝑎(t) = armature current, 𝑇(𝑡) =developed
torque, Ɵ𝛳(𝑡) = motor shaft angle, 𝑑𝛳(𝑡) 𝑑𝑡 = ω(t) Ɵ= shaft speed, J= moment of inertia of the
rotor, B = viscous frictional constant, 𝐿𝑚= inductance of armature windings, 𝑅𝑚= armature
winding resistance, 𝐾𝑡= motor torque constant, 𝐾𝑚= motor constant.
Here the motor speed ω(t) is controlled by varying the armature voltage 𝑒𝑎(t). Hence 𝑒𝑎(t) is the
input variable and ω(t) is the output variable.
We chose as the state variables:

& (5)
The state equations will now be derived by using above equations.

Hence state model of dc motor is derived from equations (6), (7) and (8) as follows
Designing the full state-feedback controller
Since all of the state variables in our problem are very easy to measure (simply add an ammeter
for current, a tachometer for speed, and a potentiometer for position), we can design a full-state
feedback controller for the system without worrying about having to add an observer. The control
law for a full-state feedback system has the form .
The associated block diagram is given below.

Fig.1
Recall that the characteristic polynomial for this closed-loop system is the determinant of where is
the Laplace variable. Since the matrices and are both 3x3 matrices, there should be 3 poles for the system.
This fact can be verified with the MATLAB command order. If the given system is controllable, then by designing a
full state-feedback controller we can move these three poles anywhere we'd like. Whether the given system is
controllable or not can be determined by checking the rank of the controllability matrix . The
MATLAB command ctrb constructs the controllability matrix given and . Additionally, the
command rank determines the rank of a given matrix, though it can be numerically unreliable. Therefore, we will use
the command det to calculate the determinant of the controllability matrix where a full rank matrix has a non-zero
determinant. The following commands executed at the command line will verify the system's order and whether or not
it is controllable.
Adding integral action
From prior examples, we know that if we put an extra integrator in series with the plant it can remove the steady-state
error due to a step reference. If the integrator comes before the injection of the disturbance, it will also cancel a step
disturbance input in steady state. This changes our control structure so that it now resembles the block diagram shown
in the following figure.

Fig 2
We can model the addition of this integrator by augmenting our state equations with an extra state for the integral of
the error which we will identify with the variable . This adds an extra state equation, where the derivative of this state
is then just the error, where . This equation will be placed at the bottom of our matrices. The
reference , therefore, now appears as an additional input to our system. The output of the system remains the same.
These equations represent the dynamics of the system before the loop is closed. We will refer to the system matrices
in this equation that are augmented with the additional integrator state as , , , and . The vector multiplying
the reference input will be referred to as . We will refer to the state vector of the augmented system as . Note
that the reference, , does not affect the states (except the integrator state) or the output of the plant. This is expected
since there is no path from the reference to the plant input, , without implementing the state-feedback gain matrix
.
In order to find the closed-loop equations, we have to look at how the input, , affects the plant. In this case, it affects
the system in exactly the same manner as in the unaugmented equations except now . We can
also rewrite this in terms of our augmented state as where . Substituting this into the
equations above provides the following closed-loop equations.

(10)
(11)
In the above, the integral of the error will be fed back, and will result in the steady-state error being reduced to zero.
Now we must redesign our controller to account for the augmented state vector. Since we need to place each pole of
the system, we will place the pole associated with the additional integrator state at -300, which will be faster than the
other poles.
Add the following lines to your m-file which reflect the closed-loop equations presented above. Note that since the
closed-loop transition matrix depends on , it will be used in the place command rather than .

Conclusions
The PARAMETERS used for DC motor is given as
Motor resistance (ohm) Rm = 2.06
Motor inductance (Henrys) Lm = 0.000238;
Back EMF constant (Volt-sec/Rad) Kb = 1/((406*2*pi)/60)
Torque constand (Nm/A) Kt = 0.0235;
Rotor inertia (Kg m^2) Jm = 1.07e-6;
Mechanical damping (linear model of friction: bm * dth) bm = 12e-7;

SYSTEM MATRICES
States: [i dth th]'
Input: Vin the motor voltage
Outputs: same as states
Matlab code(.m file):
A = [-Rm/Lm -Kb/Lm 0;
Kt/Jm -bm/Jm 0;
0 1 0];

B = [1/Lm 0 0]';

C = [1 0 0; 0 1 0; 0 0 1];

D = [0 0 0]';

% Create a ss object of the model


sys = ss(A, B, C, D);

[num den] = ss2tf(sys.a, sys.b, sys.c, sys.d, 1);

% dth = G(s) Vin


G = tf(num(2,:), den)

Fig.3
Fig.4(After using Full state-Feedback)
From the above, we know that our system is controllable since the determinant of the controllability matrix is not zero
and hence we can place the system's closed-loop poles anywhere in the s-plane. We will first place the poles at -200,
-100+100i and -100-100i. Once we have determined the pole locations we desire, we can use the MATLAB
commands place or acker to determine the controller gain matrix, , to achieve these poles. We will use the
command place since it is numerically better conditioned than acker. However, if we wished to place a pole with
multiplicity greater than the rank of the matrix , then we would have to use the command acker.
Add the following code to the end of your m-file.

p1 = -100+100i;

p2 = -100-100i;

p3 = -200;

Kc = place(A,B,[p1, p2, p3])

Result-

Referring back to the equations and schematic at the top of the page, we see that employing a state-feedback
law , the state-space equations become the following.

(5)
(6)
We can generate the closed-loop response to a step reference by adding the following lines to the end of your m-file.
Run your m-file in the command window and you should generate a plot like the one shown below.

t = 0:0.001:0.05;

sys_cl = ss(A-B*Kc,B,C,D);

step(sys_cl,t)

Result-
References
• IEEE journal ISSN 2348-5426 DC Motor Position Control using State Space Technique
by A. Chowdhury and D.Debnath
• https://in.mathworks.com/matlabcentral/fileexchange/11829-dc-motor-model DC
Motor model by Roger Aarenstrup
• Dr. P.S. Bimbhra, ‘Electrical Machines’, KHANNA PUBLSHER
• Katsuhiko Ogata, ‘Modern Control Engineering’, PEARSON PUBLISHER.
• Charles L. Philips & Royce D. Harbor, ‘Feedback Control Systems’, PRENTICE HALL
PUBLISHER

You might also like