Averaged Models

Enter state-space model matrices for both of the states

(%i1) A1 : matrix([ 0, 1 / L],[ 1 / C, 0]) ;
(A1) ( 0 1 L 1 C 0 )
(%i2) B1 : matrix([ 1 / L, 0],[ 0, 1 / C]) ;
(B1) ( 1 L 0 0 1 C )
(%i3) C1 : matrix([ 0, 1],[ 1, 0]) ;
(C1) ( 0 1 1 0 )
(%i4) D1 : matrix([ 0, 0],[ 0, 0]) ;
(D1) ( 0 0 0 0 )
(%i5) A2 : matrix([ 0, 1 / L],[ 1 / C, 0]) ;
(A2) ( 0 1 L 1 C 0 )
(%i6) B2 : matrix([ 0, 0],[ 0, 1 / C]) ;
(B2) ( 0 0 0 1 C )
(%i7) C2 : matrix([ 0, 1],[ 0, 0]) ;
(C2) ( 0 1 0 0 )
(%i8) D2 : matrix([ 0, 0],[ 0, 0]) ;
(D2) ( 0 0 0 0 )

Averaged model matrices

(%i9) a : ratsimp( A1· D0 + A2·( 1 D0)) ;
(a) ( 0 1 L 1 C 0 )
(%i10) b : ratsimp( B1· D0 + B2·( 1 D0)) ;
(b) ( D0 L 0 0 1 C )
(%i11) c : ratsimp( C1· D0 + C2·( 1 D0)) ;
(c) ( 0 1 D0 0 )
(%i12) d : ratsimp( D1· D0 + D2·( 1 D0)) ;
(d) ( 0 0 0 0 )

DC model, needs to be done first

(%i13) U0 : matrix([ Vin],[ Iout]) ;
(U0) ( Vin Iout )
(%i14) X0 : invert( a). b. U0 ;
(X0) ( Iout D0 Vin )
(%i15) Y0 :( d c. invert( a). b). U0 ;
(Y0) ( D0 Vin D0 Iout )

Remaining AC model vectors

(%i16) e :( A1 A2). X0 +( B1 B2). U0 ;
(e) ( Vin L 0 )
(%i17) f :( C1 C2). X0 +( D1 D2). U0 ;
(f) ( 0 Iout )

AC model, just define the input vector and expand B and D

(%i18) u : matrix([ vin],[ iout],[ dhat]) ;
(u) ( vin iout dhat )
(%i19) b : addcol( b, e) ;
(b) ( D0 L 0 Vin L 0 1 C 0 )
(%i20) d : addcol( d, f) ;
(d) ( 0 0 0 0 0 Iout )

Transfer functions

(%i21) S : s· diagmatrix( 2, 1) a ;
(S) ( s 1 L 1 C s )
(%i22) Si : ratsimp( invert( S)) ;
(Si) ( C L s C L s 2 + 1 C C L s 2 + 1 L C L s 2 + 1 C L s C L s 2 + 1 )
(%i23) x : ratsimp( Si. b. u) ;
(x) ( C D0 s vin + C Vin dhat s + iout C L s 2 + 1 D0 vin L iout s + Vin dhat C L s 2 + 1 )
(%i24) x : expand( x) ;
(x) ( C D0 s vin C L s 2 + 1 + C Vin dhat s C L s 2 + 1 + iout C L s 2 + 1 D0 vin C L s 2 + 1 L iout s C L s 2 + 1 + Vin dhat C L s 2 + 1 )
(%i25) x : collectterms( x, vin, iout, dhat) ;
(x) ( C D0 s vin C L s 2 + 1 + C Vin dhat s C L s 2 + 1 + iout C L s 2 + 1 D0 vin C L s 2 + 1 L iout s C L s 2 + 1 + Vin dhat C L s 2 + 1 )
(%i26) y : collectterms( expand( ratsimp( c. Si. b + d). u), vin, iout, dhat) ;
(y) ( D0 vin C L s 2 + 1 L iout s C L s 2 + 1 + Vin dhat C L s 2 + 1 C D0 2 s vin C L s 2 + 1 + C Iout L dhat s 2 C L s 2 + 1 + C D0 Vin dhat s C L s 2 + 1 + D0 iout C L s 2 + 1 + Iout dhat C L s 2 + 1 )
(%i27) tf : y[ 1][ 1] ;
(tf) D0 vin C L s 2 + 1 L iout s C L s 2 + 1 + Vin dhat C L s 2 + 1
(%i28) Hvv : coeff( tf, vin) ;
(Hvv) D0 C L s 2 + 1
(%i29) Hvi : coeff( tf, iout) ;
(Hvi) L s C L s 2 + 1
(%i30) Hvd : coeff( tf, dhat) ;
(Hvd) Vin C L s 2 + 1

Created with wxMaxima.