Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

ss2tf and tf2ss function

Asked by David on 14 Jun 2011

Dear sir, I use ss2tf function in matlab. Its output values input to tf2ss function. But the result is not equal to the original input. (A1,B1,C1,D1) IS NOT EQUAL TO (A,B,C,D.)

What wrong is it?

clear;

A=[0 1 0;0 0 1;-9 -8 -7];

B=[7;8;9];

C=[2 3 4];

D=[0];

[num, den]=ss2tf(A,B,C,D,1);

[a1,b1,c1,d1]=tf2ss(num,den);

a1 =

   -7.0000   -8.0000   -9.0000
    1.0000         0         0
         0    1.0000         0

b1 =

     1
     0
     0

c1 =

   74.0000 -199.0000 -235.0000

d1 =

     0

0 Comments

David

Tags

2 Answers

Answer by Fangjun Jiang on 14 Jun 2011

The tf2ss() returns A,B,C,D matrices in controller (or controllable) canonical form. There is also observable canonical form. Bottom line, the A, B, C, D returned by tf2ss() may not match your original state space matrix. See state space controls

0 Comments

Fangjun Jiang
Answer by mohammad asasi on 23 Nov 2012

Hi dear david

keep in mind that representation of a system in frequency domain is unique

but we can convert it to state space form in many many ways...

so representation in state space form is not uniqe...

best regards

0 Comments

mohammad asasi

Contact us