Chapter 6 State-Space Design
Xmath Control Design Module 6-10 ni.com
Duality and Pole Placement
The new state-update equation in the Controllability section and the
Observability and Estimation section, the time-update equation in the
Observability and Estimation section, along with the corresponding block
diagrams in Figures 6-1 and 6-2, indicate how you can move the
eigenvalues, or poles, of a minimal system through the choice of a feedback
gain K (or L). Given the system’s state-space representation and any
desired set of closed-loop poles, you can solve an eigenvalue problem to
find the gain that yields these poles for the complete system. Although the
poles of a minimal system can be moved to any value, this approach does
not guarantee that the resulting gain is small or physically practical—just
that it is finite.
The similarity between the new state-update equation (Equation 6-1)
and the time-update equation (Equation 6-4) for controller and observer
feedback brings up the principle of duality with respect to the
controllability and observability of a system. Briefly, for a given state-space
system Sys1 with system matrices {A,B,C,D}, there exists a dual system
Sys2 described by {A*,C*,B*,D}, using * to denote a complex conjugate
transpose. If Sys1 is controllable, Sys2 will be observable, and vice versa.
This can be quickly verified by constructing the controllability and
observability matrices for both. Thus, the gain value that yields a set of
desired closed-loop poles for feedback control of a system also yields an
observer with the same pole locations for the system’s dual.

poleplace( )

K = poleplace(A,B,poles)
The poleplace( ) function solves the problem
eig(A–B*K)=poles for single-input systems. This is essentially
the problem posed in Figure 6-1 and the new state-update equation in the
Controllability section. If you know where you want the system poles to
be located, poleplace( ) returns the value of the gain vector K that will
move the closed-loop poles to the desired locations.
The syntax poleplace(A',C',poles) can be used for regulator
problems, or by duality, for estimator problems. In general, the system
{A,B} must be reachable (all unstable poles controllable) for controller
design and the system {A',C'} must be stabilizable (all unstable poles
observable) for estimator design. The current poleplace( )
implementation is limited to single-input systems.