PKêi‰LñB–Hmimetypetext/x-wxmathmlPKêi‰L†nŒªŒª content.xml Buck-Boost Converter, cmc state 1 matrices A1: matrix([0, 0], [0, 0]); (%o1) 0000 B1: matrix([1/L, 0], [0, -1/c]); (%o2) 1L00−1c C1: matrix([0, 1], [1, 0]); (%o3) 0110 D1: matrix([0, 0], [0, 0]); (%o4) 0000 state 2 matrices A2: matrix([0, 1/L], [-1/c, 0]); (%o5) 01L−1c0 B2: matrix([0, 0], [0, -1/c]); (%o6) 000−1c C2: matrix([0, 1], [0, 0]); (%o7) 0100 D2: matrix([0, 0], [0, 0]); (%o8) 0000 state variables, dc X0: matrix([Il], [Vc]); (%o9) IlVc input variables, dc U0: matrix([Vin], [Iout]); (%o10) VinIout basic computation; keep it as it is A: D0 * A1 + (1 - D0) * A2; (%o11) 01−D0L−1−D0c0 A: ratsimp(A); (%o12) 0−D0−1LD0−1c0 B: D0 * B1 + (1 - D0) * B2; (%o13) D0L00−D0c−1−D0c B: ratsimp(B); (%o14) D0L00−1c C: D0 * C1 + (1 - D0) * C2; (%o15) 01D00 C: ratsimp(C); (%o16) 01D00 D: D0 * D1 + (1 - D0) * D2; (%o17) 0000 D: ratsimp(D); (%o18) 0000 dc computation, still without d hat, keep it as it is iA: invert(A); (%o19) 0cD0−1−LD0−10 iA: ratsimp(iA); (%o20) 0cD0−1−LD0−10 x0: -iA . B . U0; (%o21) IoutD0−1Vin*D0D0−1 x0: ratsimp(x0); (%o22) IoutD0−1Vin*D0D0−1 y0: (D - C . iA . B) . U0; (%o23) Vin*D0D0−1Iout*D0D0−1 y0: ratsimp(y0); (%o24) Vin*D0D0−1Iout*D0D0−1 ac computation, keep it as it is E: (A1 - A2) . X0 + (B1 - B2) . U0; (%o25) VinL−VcLIlc E: ratsimp(E); (%o26) Vin−VcLIlc F: (C1 - C2) . X0 + (D1 - D2) . U0; (%o27) 0Il F: ratsimp(F); (%o28) 0Il merging E and F; keep it as it is B: addcol(B, E); (%o29) D0L0Vin−VcL0−1cIlc D: addcol(D, F); (%o30) 00000Il computing transfer functions; keep it as it is S0: s * diagmatrix(2, 1) - A; (%o31) sD0−1L−D0−1cs S: invert(S0); (%o32) s

D0−1

2
c*L
+s2
−D0−1

D0−1

2c*L
+s2

*L
D0−1c*

D0−1

2c*L
+s2

s

D0−1

2
c*L
+s2
S: ratsimp(S); (%o33) c*s*Lc*s2*L+D02−2*D0+1−c*D0−cc*s2*L+D02−2*D0+1

D0−1

*L
c*s2*L+D02−2*D0+1
c*s*Lc*s2*L+D02−2*D0+1
S: facsum(S, s); (%o34) c*s*Lc*s2*L+

D0−1

2
−c*

D0−1

c*s2*L+

D0−1

2

D0−1

*L
c*s2*L+

D0−1

2
c*s*Lc*s2*L+

D0−1

2
tox: S . B; (%o35) c*s*D0c*s2*L+

D0−1

2
D0−1c*s2*L+

D0−1

2
c*s*

Vin−Vc

c*s2*L+

D0−1

2
−Il*

D0−1

c*s2*L+

D0−1

2

D0−1

*D0
c*s2*L+

D0−1

2
−s*Lc*s2*L+

D0−1

2
Il*s*Lc*s2*L+

D0−1

2
+

Vin−Vc

*

D0−1

c*s2*L+

D0−1

2
tox: ratsimp(tox); (%o36) c*s*D0c*s2*L+D02−2*D0+1D0−1c*s2*L+D02−2*D0+1−−Il+c*s*Vc−c*s*Vin+Il*D0c*s2*L+D02−2*D0+1D02−D0c*s2*L+D02−2*D0+1−s*Lc*s2*L+D02−2*D0+1Vc−Vin+

Vin−Vc

*D0+Il*s*L
c*s2*L+D02−2*D0+1
tox: ev(tox, Il=x0[1, 1], Vc=x0[2, 1]); (%o37) c*s*D0c*s2*L+D02−2*D0+1D0−1c*s2*L+D02−2*D0+1−−c*s*Vin−IoutD0−1+Iout*D0D0−1+c*s*Vin*D0D0−1c*s2*L+D02−2*D0+1D02−D0c*s2*L+D02−2*D0+1−s*Lc*s2*L+D02−2*D0+1−Vin+Vin*D0D0−1+D0*

Vin−Vin*D0D0−1

+Iout*s*LD0−1
c*s2*L+D02−2*D0+1
tox: ratsimp(tox); (%o38) c*s*D0c*s2*L+D02−2*D0+1D0−1c*s2*L+D02−2*D0+1−−Iout+c*s*Vin+Iout*D0

c*s2*D0−c*s2

*L+D03−3*D02+3*D0−1
D02−D0c*s2*L+D02−2*D0+1−s*Lc*s2*L+D02−2*D0+1Vin−Vin*D0+Iout*s*L

c*s2*D0−c*s2

*L+D03−3*D02+3*D0−1
tox: facsum(tox, s); (%o39) c*s*D0c*s2*L+

D0−1

2
D0−1c*s2*L+

D0−1

2
−c*s*Vin−Iout*

D0−1

c*s2*

D0−1

*L+

D0−1

3

D0−1

*D0
c*s2*L+

D0−1

2
−s*Lc*s2*L+

D0−1

2
Iout*s*L−Vin*

D0−1

c*s2*

D0−1

*L+

D0−1

3
toy: C . S . B + D; (%o40)

D0−1

*D0
c*s2*L+

D0−1

2
−s*Lc*s2*L+

D0−1

2
Il*s*Lc*s2*L+

D0−1

2
+

Vin−Vc

*

D0−1

c*s2*L+

D0−1

2
c*s*D02c*s2*L+

D0−1

2

D0−1

*D0
c*s2*L+

D0−1

2
D0*

c*s*

Vin−Vc

c*s2*L+

D0−1

2
−Il*

D0−1

c*s2*L+

D0−1

2

+Il
toy: ratsimp(toy); (%o41) D02−D0c*s2*L+D02−2*D0+1−s*Lc*s2*L+D02−2*D0+1Vc−Vin+

Vin−Vc

*D0+Il*s*L
c*s2*L+D02−2*D0+1
c*s*D02c*s2*L+D02−2*D0+1D02−D0c*s2*L+D02−2*D0+1Il+

c*s*Vin−c*s*Vc−Il

*D0+c*Il*s2*L
c*s2*L+D02−2*D0+1
toy: ev(toy, Il=x0[1, 1], Vc=x0[2, 1]); (%o42) D02−D0c*s2*L+D02−2*D0+1−s*Lc*s2*L+D02−2*D0+1−Vin+Vin*D0D0−1+D0*

Vin−Vin*D0D0−1

+Iout*s*LD0−1
c*s2*L+D02−2*D0+1
c*s*D02c*s2*L+D02−2*D0+1D02−D0c*s2*L+D02−2*D0+1IoutD0−1+D0*

−c*s*Vin*D0D0−1−IoutD0−1+c*s*Vin

+c*Iout*s2*LD0−1
c*s2*L+D02−2*D0+1
toy: ratsimp(toy); (%o43) D02−D0c*s2*L+D02−2*D0+1−s*Lc*s2*L+D02−2*D0+1Vin−Vin*D0+Iout*s*L

c*s2*D0−c*s2

*L+D03−3*D02+3*D0−1
c*s*D02c*s2*L+D02−2*D0+1D02−D0c*s2*L+D02−2*D0+1Iout+

−c*s*Vin−Iout

*D0+c*Iout*s2*L

c*s2*D0−c*s2

*L+D03−3*D02+3*D0−1
toy: facsum(toy, s); (%o44)

D0−1

*D0
c*s2*L+

D0−1

2
−s*Lc*s2*L+

D0−1

2
Iout*s*L−Vin*

D0−1

c*s2*

D0−1

*L+

D0−1

3
c*s*D02c*s2*L+

D0−1

2

D0−1

*D0
c*s2*L+

D0−1

2
−Iout*

D0−1

−c*s*Vin*D0+c*Iout*s2*L
c*s2*

D0−1

*L+

D0−1

3
current mode control Hiv: tox[1, 1]; (%o45) c*s*D0c*s2*L+

D0−1

2
Hii: tox[1, 2]; (%o46) D0−1c*s2*L+

D0−1

2
Hid: tox[1, 3]; (%o47) −c*s*Vin−Iout*

D0−1

c*s2*

D0−1

*L+

D0−1

3
Hvv: toy[1, 1]; (%o48)

D0−1

*D0
c*s2*L+

D0−1

2
Hvi: toy[1, 2]; (%o49) −s*Lc*s2*L+

D0−1

2
Hvd: toy[1, 3]; (%o50) Iout*s*L−Vin*

D0−1

c*s2*

D0−1

*L+

D0−1

3
Gvv Gvv: Hvv - Hvd * Hiv / Hid; (%o51)

D0−1

*D0
c*s2*L+

D0−1

2
−c*s*D0*

Iout*s*L−Vin*

D0−1

−Iout*

D0−1

−c*s*Vin

*

c*s2*L+

D0−1

2

Gvv:ratsimp(Gvv); (%o52) Iout*D0Iout*D0+c*s*Vin−Iout Gvv: facsum(Gvv, s); (%o53) Iout*D0Iout*

D0−1

+c*s*Vin
Gvi Gvi: Hvi - Hvd * Hii / Hid; (%o54) −

D0−1

*

Iout*s*L−Vin*

D0−1

−Iout*

D0−1

−c*s*Vin

*

c*s2*L+

D0−1

2

−s*Lc*s2*L+

D0−1

2
Gvi: ratsimp(Gvi); (%o55) −VinIout*D0+c*s*Vin−Iout Gvi: facsum(Gvi, s); (%o56) −VinIout*

D0−1

+c*s*Vin
Gvc Gvc: Hvd / Hid; (%o57) Iout*s*L−Vin*

D0−1

−Iout*

D0−1

−c*s*Vin
Gvc: ratsimp(Gvc); (%o58) −Vin−Vin*D0+Iout*s*LIout*D0+c*s*Vin−Iout Gvc: facsum(Gvc, s); (%o59) Vin*

D0−1

−Iout*s*L
Iout*

D0−1

+c*s*Vin
numerical values Hvvn: ev(Hvv, Vin=10, Vout=-10, Iout=-1, D0=0.5, L=10e-6, c=0.5e-3); (%o60) −0.255.0*10−9*s2+0.25 Hvin: ev(Hvi, Vin=10, Vout=-10, Iout=-1, D0=0.5, L=10e-6, c=0.5e-3); (%o61) −1.0*10−5*s5.0*10−9*s2+0.25 Hvdn: ev(Hvd, Vin=10, Vout=-10, Iout=-1, D0=0.5, L=10e-6, c=0.5e-3); (%o62) 5.0−1.0*10−5*s−2.5*10−9*s2−0.125 Gvvn: ev(Gvv, Vin=10, Vout=-10, Iout=-1, D0=0.5, L=10e-6, c=0.5e-3); (%o63) −0.50.005*s+0.5 Gvin: ev(Gvi, Vin=10, Vout=-10, Iout=-1, D0=0.5, L=10e-6, c=0.5e-3); (%o64) −100.005*s+0.5 Gvcn: ev(Gvc, Vin=10, Vout=-10, Iout=-1, D0=0.5, L=10e-6, c=0.5e-3); (%o65) 1.0*10−5*s−5.00.005*s+0.5
PKêi‰LñB–HmimetypePKêi‰L†nŒªŒª 5content.xmlPKoêª