# State-Space-Model from more dimensional Transfer-Function

Im trying to extract the State-Space-Model for an cascaded Buck/Boost-Converter from an set of Transfer-functions $$\ G(s)\$$ (which I generated with Plecs/Matlab).

First of all I want to analyse the Buck-Modus (Sboost=0).

The State-Space-Model should look like this:

\ \begin{align} \dot{\vec{\Delta\mathrm{x}}} = \begin{bmatrix} \dot{\Delta \mathrm{uC1}} \\[0.5em] \dot{\Delta\mathrm{iL}} \\[0.5em] \dot{\Delta\mathrm{uC2}}\\ \end{bmatrix} = \begin{bmatrix} \mathrm{A_{11}} & \mathrm{A_{12}} & \mathrm{A_{13}} \\[0.5em] \mathrm{A_{21}} & \mathrm{A_{22}} & \mathrm{A_{23}} \\[0.5em] \mathrm{A_{31}} & \mathrm{A_{32}} & \mathrm{A_{33}} \\ \end{bmatrix} \cdot \begin{bmatrix} \Delta\mathrm{uC1} \\[0.5em] \Delta\mathrm{iL} \\[0.5em] \Delta\mathrm{uC2} \\ \end{bmatrix} + \begin{bmatrix} \mathrm{B_{11}} & \mathrm{B_{12}} & \mathrm{B_{13}} \\[0.5em] \mathrm{B_{21}} & \mathrm{B_{22}} & \mathrm{B_{23}} \\[0.5em] \mathrm{B_{31}} & \mathrm{B_{32}} & \mathrm{B_{33}} \\ \end{bmatrix} \cdot \begin{bmatrix} \Delta\mathrm{Uin} \\[0.5em] \Delta\mathrm{Uac} \\[0.5em] \Delta\delta \end{bmatrix} \end{align}\

As you can see, my Buck/Boost-Converter contains 3 State-Variables. I did an Impulse-Response Analysis in PLECS (Simulation) to obtain the Bode-Plot from the perturbation in an equilibrium Point.

After that I used $$\\mathrm{tfest}()\$$ in Matlab to generate $$\G(s)\$$ for the Bode-Plot.

I have following Transfer-Functions:

For $$\\mathrm{uC1}\$$: $$\ \dfrac{\mathrm{uC1}}{\mathrm{Uin}}(s),\dfrac{\mathrm{uC1}}{\mathrm{Uac}}(s),\dfrac{\mathrm{uC1}}{\delta}(s) \$$

For $$\\mathrm{iL}\$$: $$\ \dfrac{\mathrm{iL}}{\mathrm{Uin}}(s),\dfrac{\mathrm{iL}}{\mathrm{Uac}}(s),\dfrac{\mathrm{iL}}{\delta}(s) \$$

For $$\\mathrm{uC2}\$$: $$\ \dfrac{\mathrm{uC2}}{\mathrm{Uin}}(s),\dfrac{\mathrm{uC2}}{\mathrm{Uac}}(s),\dfrac{\mathrm{uC1}}{\delta}(s) \$$

and want to convert them into an State-Space-Model. How can I achieve that?

In Matlab, you could just apply ss() to your matrix of Transfer-functions and that should do it.

For example,

G = [tf(rand(1,1),rand(1,2)), tf(rand(1,1),rand(1,2)); tf(rand(1,1),rand(1,2)), tf(rand(1,1),rand(1,2))];

ss(G)


and you get

G

Transfer function 'G' from input 'u1' to output ...

0.1182
y1:  -----------------
0.1398 s + 0.1585

0.2366
y2:  -----------------
0.4479 s + 0.7206

Transfer function 'G' from input 'u2' to output ...

0.8437
y1:  ----------------
0.446 s + 0.4288

0.8192
y2:  -----------------
0.7782 s + 0.0429

ss(G)

ans.a =
x1          x2          x3          x4
x1   3.781e-17   5.228e-17  -6.661e-16     0.08869
x2   6.074e-16   3.508e-16        1.09   9.021e-17
x3           0          -1      -2.095   9.714e-17
x4          -1  -5.551e-16           0      -1.664

ans.b =
u1        u2
x1  -0.01015   -0.5903
x2   -0.5066    -1.337
x3     0.527      1.18
x4    0.1841    0.3669

ans.c =
x1     x2     x3     x4
y1      0      0  1.604      0
y2      0      0      0  2.869

ans.d =
u1  u2
y1   0   0
y2   0   0

Continuous-time model.


• I already thought of that and tried it out, but i dont know how to arrange the tf-Matrix to achieve exactly that State-Space form like i need it. I also got an very high-order state-space Model instead of an 3x3.. maybe you can provide an example? – adaptive Feb 16 '20 at 18:51
• Ok, but shouldn’t be the A-Matrix an 2x2 and B also? Assuming 2 State-Variables and 2 Inputs? – adaptive Feb 16 '20 at 21:05
• No, that is not how it goes. If we have $p$ output and $m$ inputs we can say $C \in \mathbb{R}^{p \times n}$ and $B \in \mathbb{R}^{n \times m}$. But the dimentions of $A \in \mathbb{R}^{n \times n}$ are not so easy to determine, it depends on how many (different valued) poles the transfer functions have and how each inputs affects each state. I suggest you look for it online or ask a new question just on how to write MIMO Transfer function matrices into state space equations. – jDAQ Feb 17 '20 at 3:58
• I there any reason you have not up voted or closed this question? is this not the answer to your question? Any problems/suggestions? – jDAQ Feb 18 '20 at 0:10