Chapter 1 Introduction
© National Instruments Corporation 1-15 Xmath Control Design Module
Specify the observer poles at [–3 + 3j, –4] and call poleplace( ) again:
op = [-3+3*jay, -4];
L = poleplace(A',C',op)
L (a row vector) = 5.46645 4.67623 9.58
You connect the controller to the observer using lqgcomp( ). L needs to
be a column vector, so you transpose it.
sys_obc = lqgcomp(ssys, Kfsb, L');
You can use names( ) to modify the names of the state estimates to be
more descriptive. To distinguish the estimated states from the “true” states,
you can use the + operator to append the string est to the estimated state
names, as shown in this example.
[,,osNames] = names(sys_obc);
estNames = osNames + [" (est)"," (est)"," (est)"];
estNames'?
ans (a column vector of strings) =
Pitch Rate (est)
Pitch Angle (est)
Horizontal v (est)
You can append these modified names to sys_obc:
sys_obc = system(sys_obc,{stateNames=estNames});
Then you close the loop and verify that the closed-loop poles are all in the
left-half plane.
sys_cl = feedback(ssys, sys_obc);
poles(sys_cl)
ans (a column vector) =
-1 + 1 j
-1 - 1 j
-2
-4
-3 + 3 j
-3 - 3 j