Tutorial I Basics of State Variable Modeling
Tutorial I Basics of State Variable Modeling
a
L a1 a0 y u (t )
n 1
n
n 1
dt
dt
dt
where y (t ) is the plant output and u (t ) is the plant input. A state model for this system is
not unique but depends on the choice of a set of state variables. A useful set of state
variables, referred to as phase variables, is defined as
x1 y , x2 y&, x3 &
y&, L , xn y n 1
Taking the derivatives, we have
x&
x&2 x3 , x&3 x4 , L , and x&n is given by (2).
(3)
1 x2 ,
x&n a0 x1 a1 x2 L an 1 xn u (t )
or in matrix form
0
x&
1
x&
0
2
M
0
x&n1
x&n a0
1
0 L
0
x1
0
0
0
1 L
0
x2
M M
u (t )
M
M M
M
0
0
M
1
xn1 0
xn
1
a1 a2
a n1
(4)
(5)
Example A.1
Obtain the state equation in phase variable form for the following differential equation.
3A.1
d3y
d2y
dy
4
6 8 y 10u (t )
3
2
dt
dt
dt
The differential equation is third order, thus there are three state variables as follows
x1 y , x2 y&, x3 &
y&
and the derivatives are
x&
x&2 x3 , and x&3 4 x1 3 x2 2 x3 5u (t )
1 x2 ,
Or in matrix form
2
x&
0 1 0
1
x& 0 0 1
2
x&3
4 3 2
x1
y 1 0 0 x2
x3
x1 0
x 0 5u (t )
2
x3 1
0.25 F
0.5 F
is
0
Figure A.1 Circuit of Example 2
Define the state variables as current through the inductor and voltage across the
capacitors. Write two node equations containing capacitors and a loop equation
containing the inductor. The state variables are vc1 , vc2 , and iL .
Node equations are
dv
v v
0.25 c1 iL c1 i 0
i&
L 0.5vc1 0.5vc 2
dt
or
0
v&c1 1
4 v c1 1 0
v&
2 v
0 2 vi
0
c
2
c
2
i
&
iL 0.5 0.5 0 i L 0 0 s
Simulation Diagram
Equation (3) indicates that state variables are determined by integrating the
corresponding state equation. A diagram known as the simulation diagram can be
constructed to model the given differential equations. The basic element of the simulation
diagram is the integrator. The first equation in (3) is
x&
1 x2
Integrating, we have
x1 x2 dx
3A.3
The above integral is represented by the time-domain diagram shown in Figure 2 (a)
similar to the block diagram or the time-domain diagram shown in Figure 2 (b) similar to
the signal flow graph.
x2 (t )
x1 (t )
1
s
s 1
x2 (t )
x1 (t )
(b)
(a)
Figure A.2 Simulation diagram for integrator
It is important to know that although the symbol 1/ s is used for integration, the
simulation diagram is a time domain representation. The number of integrators is
equal to the number of state variables. For example, for the state equation in
Example 1 we have three integrators in cascade, the three state variables are assigned
to the output of each integrator as shown in Figure 3. The last equation in (3) is
represented via a summing point and feedback paths. Completing the output
equation, the simulation diagram known as phase-variable control canonical form is
obtained.
5u (t )
- -
x 3
1
s
2
x3
1
s
x2
1
s
x1
5u (t )
1
x 3
s 1
s 1
s 1 1
x1
x2
-2 x3
-3
OR
-4
4
(a)
(b)
(7)
U ( s ) s3 a2 s 2 a1s a0
where the numerator degree is lower than that of the denominator. The above transfer
function is decomposed into two blocks as shown in Figure 4.
U (s)
1
s a2 s a1s a0
3
W (s)
b2 s 2 b1s b0
Y (s)
or
s 3W ( s ) a2 s 2W ( s ) a1sW ( s ) a0W ( s ) U ( s )
This results in the following time-domain equation
&
& a2 w
&
& a1w& a0 w u (t ) and
&
& b1w& b0 w
w&
y (t ) b2 w
&has to go through three integrators to get w as
w&
From the above expression we see that &
shown in Figure 5. Completing the above equations results in the phase-variable control
canonical simulation diagram.
b2
b1
+ +
u (t )
y
1 w
1 w
1 w
w
+
b0
x
x3 s
x2 s
1
s
- a2
a1
a0
Figure A.5 Phase variable control canonical simulation diagram.
The above simulation in block diagram form is suitable for SIMULINK diagram
construction. You may find it easier to construct the simulation diagram similar to the
signal flow graph as shown in Figure 6.
b2
b1
u (t )
s 1 w b0
s 1 w
s 1 w
x2
a2 x3
x1
a1
a0
3A.5
x&
1
x&
2
x&3
a0
1
0
1
0
a1 a 2
x1
y 1 0 0 x2
x3
x1
x2
x3
0
0 u (t )
1
(8)
It is important to note that the Masons gain formula can be applied to the simulation
diagram in Figure 6 to obtain the original transfer function. Indeed of Masons gain
formula is the characteristic equation. Also, the determinant of sI A matrix in (8),
results in the characteristics equation. Keep in mind that there is not a unique state space
representation for a given transfer function.
The Control System Toolbox contains a set of functions for model conversion.
[A, B, C, D] = tf2ss(num, den) converts the system in transfer function from to statespace phase variable control canonical form.
Example A.3
For the following transfer function
Y (s)
s2 7s 2
G(s)
3
U ( s ) s 9 s 2 26 s 24
(a) Draw the simulation diagram and find the state-space representation of the above
transfer function.
(b) Use MATLAB Control System Toolbox [A, B, C, D] = tf2ss(num, den) to find the
state model.
(a) Draw the transfer function block diagram in cascade form
U (s)
W (s) 2
1
s 7s 2
3
2
s 9s 26 s 24
&
Y ( s)
Y ( s) s 2W ( s) 7 sW ( s ) 2W ( s)
&
& 9w
&
& 26 w& 24w u & y w
&
& 7 w& 2 w
w&
The above time-domain equations yield the following simulation diagram
3A.6
1
7
1
u (t )
s 1 w 2
s 1 w
s 1 w
x2
x1
9 x3
26
24
To obtain the state equation, the state variables x1 (t ) , x2 (t ) , and x3 (t ) are assigned to the
output of each integrator from the right to the left. Next an equation is written for the
input of each integrator. The results are
x&
1 x2
x&2 x3
x&3 24 x1 26 x2 9 x1 u (t )
and the output equation is
y 2 x1 7 x2 x3
or in matrix form
1
0
x&
0
1
x& 0
0
1
2
x&3
24 26 9
x1
y 2 7 1 x2
x3
x1 0
x 0 u (t )
2
x3 1
24];
The result is
A=
B=
-9
1
0
-26
0
1
-24
0
0
C=
1
0
0
D=
1
Note that MATLAB assigns x1 to the output of the first integrator, and x2 , and x3 to the
output of the second and third integrators.
3A.7
[sI A] X ( s ) BU ( s )
Y ( s ) CX ( s ) DU ( s )
Substituting for X ( s ) in the second equation above, we get
Y ( s ) C[ SI A]1 BU ( s ) DU ( s )
or
Y (s)
C[ SI A]1 B D
U (s)
In MATLAB [num, den] = ss2tf(A, B, C, D, i) converts the state equation to a transfer
function for the ith input.
Example A.4
A system is described by the following state-space equations
x1
&
0 1 x1 0
&
x 6 5 x 1 u (t )
2
2
x
&
y [8 1] 1
x2
&
Obtain the system transfer function using the formula in (3.18)
s 1
6 s 5
[ SI A]
s 5 1
6
s
( s) [ SI A]1 2
s 5s 6
s 5 1 0
1
[8
6
1] s
s 1
8 s
1
G ( s ) C[ SI A] B [8 1] 2
2
2
s 5s 6
s 5s 6 s 5s 6
Therefore
s 8
G( s) 2
s 5s 6
In MATLAB [num, den] = ss2tf(A, B, C, D, i) converts the state equation to a transfer
function for the ith input.
3A.8
Example A.5
A system is described by the following state-space equations
x&
0 1 0 x1 10
1
x& 0 0 1 x 0 u (t )
2
2
x&3
1 2 3 x3 0
(8)
x1
y 1 0 0 x2
x3
Y (s)
. The following statements:
U (s)
A = [0 1 0; 0 0 1; -1 -2 -3]; B = [10; 0; 0];
C = [1 0 0]; D = [0];
[num, den] = ss2tf(A, B, C, D, 1)
G = tf(num, den)
results in
num =
0.0000 10.0000 30.0000 20.0000
den =
1.0000 3.0000 2.0000 1.0000
Transfer function:
10 s^2 + 30 s + 20
--------------------s^3 + 3 s^2 + 2 s + 1
Find the transfer function, G ( s )
The Control System Toolbox supports four commonly used representations of linear
time-invariant (LTI) systems: tf, zpk, and ss objects. To create an LTI model or object,
use the corresponding constructor tf, zpk, or ss. For example,
sys = tf(1,[1 0]) .
creates the transfer function H(s) = 1/s. The result sys is a tf object containing the
numerator and denominator data. You can then manipulate the entire model as the single
MATLAB variable sys. For more details and examples on how to specify the various
types of LTI models, type ltimodels followed by tf, zpk, or ss.
The functions tfdata, zpkdata, and ssdata are provided for extracting the parameters of
the tf, zpk and ss objects. For example the command [num, den] = tfdata(T, 'v') returns
the numerator and denominator of the tf object. The argument v returns the numerator
and denominator as row vectors rather than cell arrays. The Control System Toolbox
contains seven more functions, which are useful for creating a single model out of its
components.
Example A.6
Use feedback function to obtain the closed-loop transfer function and the tf2ss function
to obtain the closed-loop state-space model
R( s)
5( s 1.4)
s7
1
s( s 1)( s 4)
G p (s)
Gc ( s )
C ( s)
H ( s)
10
The following commands
Gc = tf(5*[1 1.4], [1 7])
% transfer function Gc
Gp = tf([1], [1 5 4 0]);
% transfer function Gp
H = 10;
G = series(Gc, Gp)
% connects Gc & Gp in cascade
T = feedback(G, H)
% obtains the closed loop transfer function
[num, den] = tfdata(T, 'v'); % returns num & den as row arrays
[A, B, C, D]=tf2ss(num, den) % returns the A,B, C, D matrices
% of the state space model
result in
Transfer function:
5s+7
--------------------------------s^4 + 12 s^3 + 39 s^2 + 78 s + 70
3A.10
A=
B=
-12
1
0
0
-39
0
1
0
-78
0
0
1
-70
0
0
0
C=
1
0
0
0
D=
[0 0 5 7]
For analytical solution of state equation refer to the lecture notes on Chapter 3.
3A.11