Skip to content

Pole Placement

antonays edited this page Feb 10, 2016 · 1 revision

The Target is to design a Controller for a transfer function, when given as requirements the Transfer Function Poles.

  • this is the easiest case for a controller design, since we are required only to manage required poles, without any cancellation and\or addition of poles.

Starting with the transfer function we are given G(Z) = B(z)/A(z) and with the transfer function of the required Denominators (with the required poles) Am(z), we target to design the controlling functions S(z) and R(z), and finally finding the gain correction alpha, to achieve the system specifications.

To achieve the required Transfer function we need to solve the vector equation of the denominators: Am(z) = A(z) x R(z) + B(z) x S(z).

  1. First step would be to defined the degrees of the controller terms R(z) and S(z) which are chosen according to the system required specifications and the given Plant Transfer Function. For this case, and with some loss of generality: deg(R) = deg(Am)-deg(A) {in this case -> deg(R) = 1 }, and deg(S) = deg(A) - 1.

    • S is a not monic function (coefficient of the biggest degree term is not 1, so S = s1*z + s0 )
    • R is a monic fucntion ( coefficient of the biggest degree term is 1, so R = z + r0 )
  2. Second step would be to actually solve the equation Am(z) = A(z) x R(z) + B(z) x S(z). At this point, all information should be known so we should be able to solve this system of equations. In the example i uploaded this is done in matlab with the help of a matrix, but the same thing can be achieved manually (with some difficulty - algebra...)

  3. At this point we can apply all we found and know and find the closed loop transfer function W(z), this should already five a stable step response in discrete time.

  1. If a steady state Gain requirement is present, we can easily apply a gain correction by finding the ration between the given and required.

At this point, our Controller is Ready

I attach the step response samples for the example i uploaded, the first one is for the uncontrolled transfer function, clearly unstable, the second one is for the controller function.

Clone this wiki locally