Hello! Welcome back to our course on multivariable control.
In the last lesson, we established our design targets. We learned how to translate performance specifications like settling time and percent overshoot into a set of desired closed-loop pole locations. We now know where we want our system's poles to be.
Today, we address the next logical question: how do we get them there? This lesson is all about the mechanics of pole placement. We will focus on the learning outcome: Calculate the state feedback gain matrix (K) for a controllable MIMO system using pole placement. By the end of this lesson, you'll understand the theory behind state feedback and be able to compute the gain matrix K that moves the system's poles to your chosen locations.
The Core Idea: Modifying System Dynamics with Feedback
The fundamental principle of state feedback control is surprisingly simple. We take all the state variables of our system, contained in the state vector , multiply them by a matrix of gains , and feed this result back to the system's input.
The video below provides an excellent introduction to this concept.
What is Pole Placement (Full State Feedback) | State Space, Part 2
This clip from MATLAB's channel introduces the structure of a full-state feedback controller and how it modifies the system's state equation.
Please watch from the beginning to 02:17, and then from 06:36 to 07:32. Focus on the block diagram of the full-state feedback system and the derivation of the closed-loop 'A' matrix.
As the video explained, our open-loop system is described by the state equation:
We introduce a control law where the input is a linear function of the states:
(For now, we'll ignore the reference input, as our focus is on placing the poles, which determines stability and transient response.)
Substituting this control law back into the state equation gives us the closed-loop system:
Let's define a new matrix, . This is our closed-loop system matrix. The equation becomes:
This is a powerful result. By choosing the gain matrix , we are directly changing the system's dynamics from to . The eigenvalues of , which are the poles of our closed-loop system, now depend on our choice of . The entire goal of pole placement is to find a that places these eigenvalues precisely where we want them.
The Condition for Pole Placement: Controllability
Can we always find a matrix to place the poles anywhere we want? The answer is no. This is only possible if the system is controllable.
As you learned in a previous module, controllability means that we can steer the system's states to any desired value in a finite amount of time using the input . It turns out there is a direct and beautiful equivalence between controllability and pole placement.
Controllability, Reachability, and Eigenvalue Placement [Control Bootcamp]
Dr. Steve Brunton succinctly explains the fundamental link between controllability and the ability to perform pole placement.
Watch from 02:13 to 04:10. Absorb the key equivalence he presents: a system is controllable if and only if you can arbitrarily place its closed-loop eigenvalues.
This is the theoretical guarantee that underpins our entire method. Because we've already learned how to test for controllability (by checking the rank of the controllability matrix), we can know upfront whether pole placement is even a feasible strategy for our system.
Calculating K: From SISO to MIMO
Let's start with a simple Single-Input Single-Output (SISO) example to build intuition. Your experience with single-variable control will be helpful here. For simple systems, we can calculate K by hand.
A Simple SISO Example
The most direct method is to compare the characteristic equation of the closed-loop system with our desired characteristic equation.
What is Pole Placement (Full State Feedback) | State Space, Part 2
Let's return to the MATLAB video for a clear, step-by-step calculation of K for a 2nd-order system.
Watch from 07:32 to 08:58. Follow the process of finding the characteristic equation of A-BK and equating its coefficients to the desired polynomial's coefficients.
The steps are:
- Define the system matrices and and the gain matrix with unknown gains .
- Form the closed-loop matrix .
- Calculate the characteristic equation, . The coefficients of this polynomial will be functions of the unknown gains.
- From your desired pole locations , form the desired characteristic polynomial: .
- Equate the coefficients of the two polynomials to get a system of linear equations and solve for the gains in .
For a controllable SISO system with states, this process yields equations for unknown gains, giving a unique solution for .
The MIMO Challenge: Non-Uniqueness
What happens when we move to a Multi-Input Multi-Output (MIMO) system? Let's say we have a system with states and inputs. Our gain matrix will be of size :
We have 6 unknown gains to find, but the characteristic polynomial is of degree 3, giving us only 3 coefficients to match. This mismatch means we have more "degrees of freedom" than constraints. The consequence is profound: for a controllable MIMO system, there is no unique gain matrix K that achieves a desired set of pole locations. There are infinite solutions.
This is a fundamental difference between SISO and MIMO control. This "design freedom" can be used to optimize for other criteria (like minimizing control effort), but it also complicates the calculation. Manual methods exist, but they are complex and require making arbitrary choices.
The most practical approach is to use numerical software.
The Practical Solution: place in MATLAB
Software packages like MATLAB have built-in functions that handle the complex mathematics of pole placement for us. The most common command is place.
Full-State Feedback Design for a Multi-Input System
This document provides a worked example of designing a state-feedback controller for a 3-state, 2-input MIMO system. It demonstrates several calculation methods, including the practical place function.
Please read the following sections: Section A, 'Introduction' (Page 1): Note the system matrices A and B, and the desired closed-loop eigenvalues \lambda_{CL} = \{-2, -3, -4\}. Section E, 'MATLAB Place Function' (Page 4): See how the place command is used and the resulting K matrix it computes. Section F, 'Comparison of Designs' (Page 5): Read the first paragraph. This is the crucial takeaway: different design methods produce different K matrices, even though they all place the poles correctly.
As you saw in the document, the process in practice is straightforward. For a system with matrices A and B, and a vector of desired pole locations p, the command is simply:
K = place(A, B, p)
The algorithm behind the place function is designed to find a "good" solution for K from the infinite possibilities, often one that results in a more robust system or avoids excessively large gain values.
The key insight from the comparison section of the document is that while different methods (RRE, SVD, place) yield different K matrices, they all correctly place the eigenvalues. However, the resulting system behavior (transient response, control effort) can be very different. The place function provides an excellent starting point for design.
Test your understanding!
You are given a 2-input, 2-state MIMO system:
Your performance specifications from the last lesson have led you to choose desired closed-loop poles at .
- Write the MATLAB command to calculate the state feedback gain matrix
K. - Your colleague claims to have solved for
Kusing a different method and got a different numerical answer than the one MATLAB provides. Could your colleague's answer also be correct? Why or why not?
Show answer
-
MATLAB Command:
First, you would define your matrices and desired poles in MATLAB:A = [0 1; -2 -3]; B = [0 1; 1 0]; p = [-4; -5];Then, the command to calculate
Kis:K = place(A, B, p)(This would compute
K = [17, 3; 2, -2]). -
Colleague's Answer:
Yes, your colleague's answer could also be correct. For a MIMO system (where the number of inputsr> 1), there are infinite possible gain matricesKthat will place the closed-loop poles at the desired locations. Theplacefunction in MATLAB uses a specific algorithm to find one of these solutions, but other valid methods might arrive at a different validKmatrix.
Conclusion
In this lesson, we've moved from the "what" of pole placement to the "how." You now have a complete procedure: start with performance specs, determine desired pole locations, and then calculate the gain matrix K to achieve them.
Key Takeaways:
- The state feedback control law results in a closed-loop system .
- Pole placement is the process of choosing to place the eigenvalues of the matrix at desired locations.
- This is only possible if the pair is controllable.
- For SISO systems, the solution for is unique. For MIMO systems, there are infinite solutions for .
- In practice, we use numerical software like MATLAB and its
placecommand to find a suitable gain matrix .
Preview of the Next Lesson:
We have now designed our controller by calculating . But does it actually work? Does the system's response meet the settling time and overshoot goals we started with? In the next lesson, we will close the loop on our design process by learning how to simulate the closed-loop response of our MIMO system to verify its performance.