Chapter 6 State-Space Design
© National Instruments Corporation 6-11 Xmath Control Design Module
poleplace( ) is unusual among Xmath’s modern control design
functions in that only the A and B matrix variables are used as input,
rather than a complete system variable. This is done because the other
state-space matrices are not needed in the computation, and in many cases
it is desirable to change or perturb the elements of the A and B matrices
slightly to simulate actual conditions, without having to reformat the entire
system. For an example of an arbitrary pole placement for a controllable
system, refer to Example 6-4.
Example 6-4 Arbitrary Pole Placement for a Controllable System
A = [0,1,0,0;21,0,0,0.8;0,0,0,1;0,0,0,-4];
B = [0,-2,0,1]';
C = eye(4,4);
D = zeros(4,1);
ipsys = system(A,B,C,D);
If you want to place the system poles in a Butterworth pattern:
Kc = poleplace(A,B,[-5+8.66*jay, -8.66+5*jay]);
You then can use this new gain vector as a feedback gain to create a new
system,
ipsysfb = feedback(ipsys, system([],[],[],Kc));
and verify that the poles of this new system are at the designated locations:
poles(ipsysfb)
ans (a column vector) =
-8.66 + 5 j
-8.66 - 5 j
-5 + 8.66 j
-5 - 8.66 j
You need specify only one complex pole in a conjugate pair of desired pole
locations. poleplace( ) checks for conjugate pairs and adds conjugates
as necessary to the input poles( ) vector.
Then the system matrix S is created:
r is a random row vector with as many rows as A has columns. You then
create a random complex row vector with as many elements and conjugate
SAB
r0
=