>> sys1 = minreal(ss(zpk([tf(1,[1 1]);tf(1,conv([1 1],[1 2]));tf(1,conv([1 1],[1 3]))])))
sys1 =
A =
x1 x2 x3
x1 -2.067 -0.2775 -0.1388
x2 0.2401 -1.212 0.894
x3 0.03861 0.5588 -2.721
B =
u1
x1 0.9679
x2 0.6052
x3 1.303
C =
x1 x2 x3
y1 0.1629 0.6703 0.3352
y2 -0.6095 0.4695 0.2348
y3 0.06517 0.4681 -0.2659
D =
u1
y1 0
y2 0
y3 0
Continuous-time state-space model.
Let's look at its transfer function matrix in zpk form (note the cancellations in the individual elements):
>> zpk(sys1)
ans =
From input to output...
(s+2) (s+3)
1: -----------------
(s+2) (s+3) (s+1)
(s+3)
2: -----------------
(s+2) (s+3) (s+1)
(s+2)
3: -----------------
(s+2) (s+3) (s+1)
Continuous-time zero/pole/gain model.
Now defne a new state space realization using the augmented state vector and check its transfer function in zpk form:
>> sys2=ss([[sys1.a ; sys1.c(1:2,:)*sys1.a] zeros(5,2)],[sys1.b;sys1.c(1:2,:)*sys1.b],[zeros(2,3) eye(2);sys1.c(3,:) zeros(1,2)],[zeros(2,1);sys1.d(3,:)]);
>> zpk(sys2)
ans =
From input to output...
s (s+2) (s+3)
1: -------------------
s (s+3) (s+2) (s+1)
s (s+3)
2: -------------------
s (s+3) (s+2) (s+1)
(s+2)
3: -----------------
(s+3) (s+2) (s+1)
Continuous-time zero/pole/gain model.
The transfer function matrices are the same (after cancellation), but additional poles at the origin show up because of the non-minimal realization. As must be the case, the first two outputs are state variables.
>> sys2.c
ans =
0 0 0 1.0000e+00 0
0 0 0 0 1.0000e+00
6.5167e-02 4.6814e-01 -2.6593e-01 0 0
>> T=[sys1.c(1:2,:);[0 0 1]]
T =
1.6292e-01 6.7034e-01 3.3517e-01
-6.0951e-01 4.6951e-01 2.3476e-01
0 0 1.0000e+00
>> rank(T)
ans =
3
This tansformation T is called a similarity transformation and can used to define a new realization in terms of z (instead of x)
>> sys3=ss2ss(sys1,T)
sys3 =
A =
x1 x2 x3
x1 -1 -4.857e-17 -4.441e-16
x2 1 -2 -4.441e-16
x3 0.7396 0.1343 -3
B =
u1
x1 1
x2 2.116e-16
x3 1.303
C =
x1 x2 x3
y1 1 0 -5.551e-17
y2 0 1 0
y3 0.6513 0.06717 -0.5
D =
u1
y1 0
y2 0
y3 0
Continuous-time state-space model.
>> zpk(sys3)
ans =
From input to output...
(s+2) (s+3)
1: -----------------
(s+1) (s+2) (s+3)
(s+3)
2: -----------------
(s+1) (s+2) (s+3)
(s+2)
3: -----------------
(s+1) (s+2) (s+3)
Continuous-time zero/pole/gain model.
As expected, the first two outputs of sys3 are now state variables and the transfer function matrix of sys3 is the same as that of sys1.
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Explore similar technical troubleshooting questions and verified MATLAB solutions: