In this control engineering tutorial, we explain how to design a state feedback control law such that the poles of the closed-loop system are placed at the appropriate locations that guarantee that the step response meets the desired specifications. The important technique presented in this tutorial is widely used in the control system engineering practice. The YouTube tutorial accompanying this post is given below.
Problem Formulation and Solution
We explain this technique by using a particular example that is presented in the sequel. Consider the following open-loop transfer function:
(1)
We need to design a state feedback control system such that the following requirements are satisfied
1.) The rise time should not be larger than 1 second.
2.) The overshoot should not be larger than 10 percent.
Solution:
The first step is to develop a state-space model corresponding to the system (1). To develop the state-space model, we use the controllable canonical form explained in our previous tutorial. We use this approach since the controllable canonical form enables us to quickly compute the characteristic polynomial of the closed-loop system. We can also use other methods for pole placement, such as MATLAB’s function place().
First, we expand the transfer function:
(2)
We can observe that the polynomials in the numerator and denominator are
(3)
Then, the controllable canonical form is given below
(4)
Our goal is to design a feedback control law
(5)
such that the poles of the closed-loop system are placed at proper locations that we need to determine in the sequel. Later on, we will modify this control law to introduce a reference signal and an additional gain to ensure that step responses are properly tracked.
To determine the pole locations, we need to recall the basic pole parametrization in terms of the damping ratio
The poles are parametrized by
(6)
Although our system is of the third order, for selection of the parameters
(7)
For such a system, we can relate overshoot and rise time with the damping ratio
(8)
where
(9)
From (8), we can find
From (8), we have
(10)
By substituting the desired
(11)
Since for larger values of
(12)
On the other hand, from (9), we have
(13)
By substituting this value in (12), we obtain the value of
(14)
Since larger values of
(15)
Having these values, and by using (6) we can design the closed loop poles:
(16)
We place the third pole relatively far away from these poles. We choose a real third pole
(17)
The desired closed-loop characteristic polynomial has the following form
(18)
This is our target characteristic polynomial that will guarantee the desired system transient behavior. On the other hand, let us consider the feedback control system obtained by substituting the feedback (5) in (4):
(19)
We have
(20)
We can observe that the closed-loop matrix
(21)
This parametrized polynomial should be equal to (18), that is,
(22)
Two polynomials are equal if their coefficients are equal, consequently, we have
(23)
That is,
(24)
These coefficients of the feedback control matrix should guarantee the desired transient response characteristics. The final step is to add a reference signal to the control input.
To add the reference signal, we need to make the following analysis. Consider the system
(25)
Let us assume that there exist a constant
(26)
where
(27)
where
(28)
We have that (27) can be written as follows
(29)
Here it should be noted that this system has the same state-space matrices as the original system (25). That is the
(30)
By expanding the last equation, we obtain
(31)
Now, let us assume that the reference signal
(32)
where
(33)
These equations are obtained by substituting (32) and
(34)
or
(35)
We can solve these equations to compute the gains
(36)
By using the computed values and by substituting (32) in (31), we obtain the final control law
(37)
By substituting this control law in the state-space model (25), we obtain the final regulated system with the reference input
(38)
The system (38) is regulated in the sense that it satisfies the desired transient characteristics and it follows the step signal
The MATLAB code is shown below.
clear
% overshoot
Mos=10
MlogSq=(log(Mos/100))^2
% damping ratio
zeta=sqrt(MlogSq/(pi^2+MlogSq))
% rise time
tr=1;
% natural undamped frequency
omegaN=(1-0.4167*zeta+2.917*zeta^2)/tr;
% real part
realPart=omegaN*zeta;
% imaginary part
imaginaryPart=omegaN*sqrt(1-zeta^2);
% third pole
c=-6;
% closed loop polynomial
fcl=[1 -(c+2*(-realPart)) (2*(-realPart)*c+(-realPart)^2+(-imaginaryPart)^2) -c*((-imaginaryPart)^2+(-realPart)^2)]
roots(fcl)
realPart
imaginaryPart
A=[-4 0 0; 1 0 0; 0 1 0]; B=[1; 0; 0]; C=[0 0 1];
matrix1=[A, B; C, 0]; leftSide=[0;0;0; 1];
gainMatrix=inv(matrix1)*leftSide;
% this the feedback gain matrix
Kmatrix=[4.0963, 15.7215, 18.8623];
% closed loop matrix
Acl=A-B*Kmatrix;
% check the eigenvalues
eig(Acl)
% B matrix for the reference signal
Br=gainMatrix(4)+Kmatrix*gainMatrix(1:3);
Bcl=B*Br;
ssCl=ss(Acl,Bcl,C,[]);
step(ssCl)
tf(ssCl)
The computed closed-loop transfer function is
(39)
The step response of the closed-loop function (step reference signal
Figure 3 below shows the overshoot value of the same step response.
From figures 2 and 3, we can observe that the desired transient response specifications are achieved by placing the poles at the proper locations.