Chapter 1 Introduction
Xmath Control Design Module 1-14 ni.com
You can verify that your system is controllable, then define the closed-loop
poles you want and use poleplace( ) to find the feedback gains required
given the system A and B matrices.
[,,nuc] = controllable(Gs)
nuc (a scalar) = 0
Because the number of uncontrollable states is zero, Gs is controllable. This
means that you can use feedback through appropriately-sized gains to
position the system’s closed-loop poles anywhere you want. If you choose
the three poles to be moved to –1 ±j and –2, you get the following set of
gains:
clp = [-1+jay, -2];
Kfsb = poleplace(A,B,clp)
Kfsb (a row vector) = 0.470648 1.00004 0.062747
Note poleplace( ) does not require you to list both poles in a conjugate pair.
If you assume that the outputs of the system are just the values of all the
states, you can draw the open-loop system block diagram as shown in
Figure 1-7. In this figure, the feedback path is shown in dotted lines and the
open-loop system in solid lines.
Figure 1-7. Full-State Feedback Regulator
Because you do not have access to all three states—only one, the horizontal
velocity, is returned as an output—you need to estimate the other states,
thus implementing an observer-based controller. The block diagram for the
observer and controller together is shown in Figure 1-8.
Figure 1-8. Complete Controller and Estimator
ru x
x = Ax + Bu K
fsb
+
–⋅
x
x = (A
–
LC
)
x + Bu
+
Ly K
fsb
x = Ax + Bu
y = Cx + Du
⋅
uy
Estimator Control Plant