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

Learn moreOpportunities for recent engineering grads.

Apply TodayTo resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

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).

## 0 Comments