11. State Feedback
Feedback is at the heart of closed-loop design. This chapter asks how much freedom state-space methods give over closed-loop pole placement, compared to classical transfer-function techniques, and how to implement it.
Lecture videos
Section titled “Lecture videos”Slides
Section titled “Slides”PowerPoint handouts: Dark · Light
Interactive example
Section titled “Interactive example”Eigenvalue placement via state feedback
Section titled “Eigenvalue placement via state feedback”For a controllable discrete-time system, ct.place(A, B, p) finds the state-feedback gain K in u = -Kx + v that puts the closed-loop eigenvalues of A - BK exactly at the desired locations p — here [0, 0.1, 0.2], all close to the origin of the z-plane.
This computes K and then verifies it directly by recomputing the eigenvalues of A - BK, confirming they land exactly at the requested p, matching K = [0.72, 3.86, 1.98] from the text.
import control as ctimport numpy as np
A = np.array([[1, 1, -2], [0, 1, 1], [0, 0, 1]])B = np.array([[1], [0], [1]])p = [0, 0.1, 0.2] # desired closed-loop eigenvalues, all close to z = 0
K = ct.place(A, B, p)print("State feedback gain K =", K)
closed_loop_eig = np.linalg.eigvals(A - B @ K)print("Eigenvalues of A - B*K:", closed_loop_eig)print("(should match the requested p =", p, ")")Eigenvalue placement via state feedback (mcimp/codes/state_feedback/dtn3_example.py)
Click "Run" to execute.
Beyond this chapter
Section titled “Beyond this chapter”- MIMO feedback design graduate / optional