PKj‰LñB–Hmimetypetext/x-wxmathmlPKj‰LŽGuòµtµt content.xml Buck Converter, cmc state 1 matrices A1: matrix([0, -1/L], [1/c, 0]); (%o1) 0−1L1c0 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) 0−1L1c0 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) 0−D0L−1−D0LD0c+1−D0c0 A: ratsimp(A); (%o12) 0−1L1c0 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) 0c−L0 iA: ratsimp(iA); (%o20) 0c−L0 x0: -iA . B . U0; (%o21) IoutVin*D0 x0: ratsimp(x0); (%o22) IoutVin*D0 y0: (D - C . iA . B) . U0; (%o23) Vin*D0Iout*D0 y0: ratsimp(y0); (%o24) Vin*D0Iout*D0 ac computation, keep it as it is E: (A1 - A2) . X0 + (B1 - B2) . U0; (%o25) VinL0 E: ratsimp(E); (%o26) VinL0 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) D0L0VinL0−1c0 D: addcol(D, F); (%o30) 00000Il computing transfer functions; keep it as it is S0: s * diagmatrix(2, 1) - A; (%o31) s1L−1cs S: invert(S0); (%o32) s1c*L+s2−1

1c*L+s2

*L
1c*

1c*L+s2

s1c*L+s2
S: ratsimp(S); (%o33) c*s*Lc*s2*L+1−cc*s2*L+1Lc*s2*L+1c*s*Lc*s2*L+1 S: facsum(S, s); (%o34) c*s*Lc*s2*L+1−cc*s2*L+1Lc*s2*L+1c*s*Lc*s2*L+1 tox: S . B; (%o35) c*s*D0c*s2*L+11c*s2*L+1c*s*Vinc*s2*L+1D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1 tox: ratsimp(tox); (%o36) c*s*D0c*s2*L+11c*s2*L+1c*s*Vinc*s2*L+1D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1 tox: ev(tox, Il=x0[1, 1], Vc=x0[2, 1]); (%o37) c*s*D0c*s2*L+11c*s2*L+1c*s*Vinc*s2*L+1D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1 tox: ratsimp(tox); (%o38) c*s*D0c*s2*L+11c*s2*L+1c*s*Vinc*s2*L+1D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1 tox: facsum(tox, s); (%o39) c*s*D0c*s2*L+11c*s2*L+1c*s*Vinc*s2*L+1D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1 toy: C . S . B + D; (%o40) D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1c*s*D02c*s2*L+1D0c*s2*L+1c*s*Vin*D0c*s2*L+1+Il toy: ratsimp(toy); (%o41) D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1c*s*D02c*s2*L+1D0c*s2*L+1Il+c*s*Vin*D0+c*Il*s2*Lc*s2*L+1 toy: ev(toy, Il=x0[1, 1], Vc=x0[2, 1]); (%o42) D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1c*s*D02c*s2*L+1D0c*s2*L+1Iout+c*s*Vin*D0+c*Iout*s2*Lc*s2*L+1 toy: ratsimp(toy); (%o43) D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1c*s*D02c*s2*L+1D0c*s2*L+1Iout+c*s*Vin*D0+c*Iout*s2*Lc*s2*L+1 toy: facsum(toy, s); (%o44) D0c*s2*L+1−s*Lc*s2*L+1Vinc*s2*L+1c*s*D02c*s2*L+1D0c*s2*L+1Iout+c*s*Vin*D0+c*Iout*s2*Lc*s2*L+1 current mode control Hiv: tox[1, 1]; (%o45) c*s*D0c*s2*L+1 Hii: tox[1, 2]; (%o46) 1c*s2*L+1 Hid: tox[1, 3]; (%o47) c*s*Vinc*s2*L+1 Hvv: toy[1, 1]; (%o48) D0c*s2*L+1 Hvi: toy[1, 2]; (%o49) −s*Lc*s2*L+1 Hvd: toy[1, 3]; (%o50) Vinc*s2*L+1 Gvv Gvv: Hvv - Hvd * Hiv / Hid; (%o51) 0 Gvv:ratsimp(Gvv); (%o52) 0 Gvv: facsum(Gvv, s); (%o53) 0 Gvi Gvi: Hvi - Hvd * Hii / Hid; (%o54) −s*Lc*s2*L+1−1c*s*

c*s2*L+1

Gvi: ratsimp(Gvi); (%o55) −1c*s Gvi: facsum(Gvi, s); (%o56) −1c*s Gvc Gvc: Hvd / Hid; (%o57) 1c*s Gvc: ratsimp(Gvc); (%o58) 1c*s Gvc: facsum(Gvc, s); (%o59) 1c*s numerical values Hvvn: ev(Hvv, Vin=10, Vout=5, Iout=2, D0=0.5, L=10e-6, c=0.5e-3); (%o60) 0.55.0*10−9*s2+1 Hvin: ev(Hvi, Vin=10, Vout=5, Iout=2, D0=0.5, L=10e-6, c=0.5e-3); (%o61) −1.0*10−5*s5.0*10−9*s2+1 Hvdn: ev(Hvd, Vin=10, Vout=5, Iout=2, D0=0.5, L=10e-6, c=0.5e-3); (%o62) 105.0*10−9*s2+1 Gvvn: ev(Gvv, Vin=10, Vout=5, Iout=2, D0=0.5, L=10e-6, c=0.5e-3); (%o63) 0 Gvin: ev(Gvi, Vin=10, Vout=5, Iout=2, D0=0.5, L=10e-6, c=0.5e-3); (%o64) −2000.0s Gvcn: ev(Gvc, Vin=10, Vout=5, Iout=2, D0=0.5, L=10e-6, c=0.5e-3); (%o65) 2000.0s
PKj‰LñB–HmimetypePKj‰LŽGuòµtµt 5content.xmlPKou