Group 4 Pole

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

GROUP 4

S/No Names CA No

1 RADHIA KASSIM CA/BCE/22/


2 WILBERT MGAYA CA/BCE/22/
3 IMET KIHONGOLE CA/BCE/22/

4 ADRIANO ADRIANO CA/BCE/22/


5 STIGOSLAUS RENARD NNUNGU CA/BCE/22/

6 WRIGHT STANLEY SALEMA CA/BCE/22/


7 LAWI MTEPA CA/BCE/22/

8 EMANUEL TESHA CA/BCE/22/

9 CRISENT SAMBILA CA/BCE/22/

10 SHAFII HABIB CA/BCE/22/


CONTROL SYSTEM
DESING IN STATE SPACE
POLE PLACEMENT
Introduction

Pole placement is a control system design


technique used to place the poles of a system's
transfer function in desired locations in order
to achieve specific performance objectives.
The poles of a system are the values of the
complex variable(s) that make the system's
transfer function equal to zero.
By strategically placing the poles, control
engineers can shape the system's response to meet
desired specifications such as stability, transient
response, steady-state accuracy, and disturbance
rejection. The technique is widely used in control
system design and is applicable to both single-
input-single-output (SISO) and multi-input-multi-
output (MIMO) systems.
The basic idea behind pole placement is
to design a feedback controller that can
modify the system's poles. This is
typically done by adding a compensator
or a controller to the system. The
compensator introduces additional
dynamics that can be adjusted to achieve
the desired pole locations.
There are various methods for pole placement,
including state feedback, state estimation, and
observer-based control. In state feedback, the
system's state variables are directly measured or
estimated, and a control signal is generated
based on the estimated state. State feedback
can be used to assign arbitrary pole locations,
but it requires full state measurement or
estimation, which may not always be practical.
Alternatively, observer-based control uses
an observer to estimate the system's state
variables based on available measurements.
The estimated state is then used for
feedback control, allowing for pole
placement even without direct state
measurement. Observer-based control is
commonly used when only limited
measurements are available.
In both state feedback and observer-
based control, the desired pole locations
are typically determined based on the
desired system response specifications,
such as settling time, overshoot, and
damping ratio. These specifications guide
the selection of the pole locations to
achieve the desired performance.
SOLVING POLE-PROBLEM WITH MATLAB

Pole-placement problems can be solved easily with


MATLAB. MATLAB has two commands-acker and
place for the computation of feedback-gain matrix K.
The command-acker is based on Ackermann’s formula.
This command applies to single-input systems only.
The desired closed-loop poles can include multiple
poles (poles located at the same place).
If the system involves multiple inputs, for a specified set of
closed-loop poles the state-feedback gain matrix K is not
unique and we have an additional freedom (or freedoms) to
choose K. There are many approaches to constructively
utilize this additional freedom (or freedoms) to determine K.
One common use is to maximize the stability margin. The
pole placement based on this approach is called the robust
pole placement. The MATLAB command for the robust pole
placement is place.
Although the command place can be used
for both single-input and multiple-input
systems, this command requires that the
multiplicity of poles in the desired closed-loop
poles be no greater than the rank of B. That is,
if matrix B is an n*1 matrix, the command
place requires that there be no multiple poles
in the set of desired closed loop poles
For single-input systems, the commands acker
and place yield the same K. (But for multiple-input
systems, one must use the command place
instead of acker.) It is noted that when the single-
input system is barely controllable, some
computational problem may occur if the
command acker is used. In such a case the use of
the place command is preferred, provided that no
multiple poles are involved in the desired set of
closed-loop poles.
To use the command acker or place, we first enter the following matrices in the
program:
A matrix, B matrix, J matrix
where J matrix is the matrix consisting of the desired closed-loop poles such that
J=[]
Then we enter:
K=acker(A,B,J) or K=place(A,B,J)
This means the general Syntax used in MATLAB IS:
K=place/acker(matrix1,matrix2,poles)

*It is noted that the command eig (A-B*K) may be used to verify that K thus
obtained gives the desired eigenvalues.
EXAMPLE:

Consider the same system with the equation:

= Ax + Bu
Where:
A = and B=
By using state feedback control (u=-Kx), it is desired to have the closed-loop poles
at s= (i=1, 2, 3), where

Determine the state feedback-gain matrix K with MATLAB.


MATLAB programs that generate matrix K are shown in MATLAB Programs 10–1
and 10–2. MATLAB Program 10–1 uses command acker and MATLAB Program 10–
2 uses command place
EXAMPLE 2

Consider the same system as discussed in Example above. It is desired that this
regulator system have closed-loop poles at
s = -2 + j4, s = -2 - j4, s = -10
The necessary state feedback gain matrix K was obtained in Example above as
follows:
K = [199 55 8]
Using MATLAB, obtain the response of the system to the following initial condition:

Now lets find response at initial condition:


To obtain the response to the given initial condition x(0), we
substitute u=–Kx into the plant equation to get

We are required to Plot graph using MATLAB to show trajectory response of x1,x2,x3
Lets solve it using MATLAB:
Certainly! Let's go through the code step by step and explain the purpose of each
section:
Because we use as example before this we can show matrix we have on our system:
In MATLAB by using this codes
% Define the system matrices
A = [0 1 0; 0 0 1; -1 -5 -6];
B = [0; 0; 1];
C = [1 0 0];
D = 0;
In the section above , we define the system matrices: A, B, C, and D. These matrices represent
the state-space representation of the system. Matrix A represents the dynamics of the system,
matrix B represents the input to the system, matrix C represents the output of the system, and
matrix D represents the feedthrough term.
% Specify the desired pole locations
desired_poles = [-2+4j, -2-4j, -10];
Here, we specify the desired pole locations for the closed-loop system. These pole locations
determine the system's dynamic response. In this example, the desired poles are specified as
complex numbers -2+4j, -2-4j, and real number -10.
% Calculate the feedback gain matrix using the desired poles
K = acker(A, B, desired_poles);
In this step, the acker function is used to calculate the feedback gain matrix K based on the
desired pole locations. The acker function determines the appropriate feedback gain matrix to
achieve the desired pole locations, ensuring the desired system response.
And the K will be the same as mentioned in the Question above you can prefer to not go through
all this and instead you can just input all details as given in the question but we choose to start from
beginning to show how exactly this can be done
% Define the closed-loop system
sys_cl = ss(A - B*K, B, C, D);
Here, we define the closed-loop system by subtracting the product of matrices B
and K from matrix A. The resulting state-space model sys_cl represents the closed-
loop system with the calculated feedback gain matrix K. The closed-loop system is
defined using the ss function.
% Define the initial condition
x0 = [1; 0; 0];
In this step, we define the initial condition x0 for the state variables of the system.
The initial condition represents the initial values of the states x1, x2, and x3 at time
t=0. In this example, the initial condition is set to [1; 0; 0], which means x1(0) = 1,
x2(0) = 0, and x3(0) = 0.
% Simulate the system response
t = 0:0.01:10; % Time vector
[y, t, x] = lsim(sys_cl, zeros(size(t)), t, x0);
In that section in previous slide, we simulate the system response using the lsim
function. We specify the closed-loop system sys_cl, zero input (zeros(size(t))),
time vector t, and the initial condition x0. The lsim function computes the system
response and returns the output y, time vector t, and state trajectory x.
% Extract the states from the state trajectory
x1 = x(:, 1);
x2 = x(:, 2);
x3 = x(:, 3);
Here, we extract the individual states (x1, x2, x3) from the state trajectory x
obtained from the simulation. This allows us to plot each state separately.
% Plot the state responses
subplot(3, 1, 1);
plot(t, x1);
xlabel('Time');
ylabel('x1');
title('State x1 vs Time');

subplot(3, 1, 2);
plot(t, x2);
xlabel('Time');
ylabel('x2');
title('State x2 vs Time');

subplot(3, 1, 3);
plot(t, x3);
xlabel('Time');
ylabel('x3');
title('State x3 vs Time');
In that section in previous slide, we use the subplot function to create three
separate subplots for each state (x1, x2, x3). We plot each state response against
time using the plot function. The xlabel, ylabel, and title functions are used to label
the axes and provide titles for each subplot.
Result:

You might also like