Asked by azan
on 5 Dec 2012

I am having a transfer function having two zeros and four poles.

G(s)= (as^2+bs+c)/(s^4+ds^3+es^2 )

I need to convert TF to statespace such that it has two inputs i.e. matrix B has two columns.I know the commands tf2ss but it gives me statespace with one input.

Answer by Azzi Abdelmalek
on 5 Dec 2012

Accepted answer

Use **tf2ss** to find `A,B,C,D` , change B to add any inputs you want, then rebuilt a newmodel with **ss** function

a=1;b=2;c=1; d=1;e=1; N=[a b c]; D=[1 d e 0 0]; [A,B,C,D]=tf2ss(N,D) B=[B [1;0;0;0]] new_model=ss(A,B,C,D)

Answer by Teja Muppirala
on 5 Dec 2012

How about:

s = tf('s'); G= (s^2+s+1)/(s^4+s^3+s^2 );

Gss = ss([G G]);

Although I don't quite see the point in having two inputs to the same system (you could just add them together and get the same response).

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

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments