0
\$\begingroup\$

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

Topology

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?

\$\endgroup\$
0

1 Answer 1

1
\$\begingroup\$

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. 
\$\endgroup\$
4
  • \$\begingroup\$ 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? \$\endgroup\$ Commented Feb 16, 2020 at 18:51
  • \$\begingroup\$ Ok, but shouldn’t be the A-Matrix an 2x2 and B also? Assuming 2 State-Variables and 2 Inputs? \$\endgroup\$ Commented Feb 16, 2020 at 21:05
  • \$\begingroup\$ 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. \$\endgroup\$ Commented Feb 17, 2020 at 3:58
  • \$\begingroup\$ I there any reason you have not up voted or closed this question? is this not the answer to your question? Any problems/suggestions? \$\endgroup\$ Commented Feb 18, 2020 at 0:10

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.