LC circuit example, resonant tank or buck converter, state-space model

dimension parameters

In [1]:
nb = 4;
nnm1 = 2;
ns = 2;
ni = 2;
#
nt = 2 * nb + nnm1;
no = nt - ns;

circuit parameters

In [2]:
C = 10e-6;
L = 10e-6;

adjusted tableau matrix

In [3]:
T = [
 1  0  0  0  0  0  0  0  0  0 -1  0  0  0 
 0  1  1  0  0  0  0  0  0  0  1  0  0  0 
 0  0  0  1  0  0 -1  0  0  0  0  0  0  0 
 0  0  0  0  1  0 -1  1  0  0  0  0  0  0 
 0  0  0  0  0  0  0 -1  0  0  0 -1  0  0 
 0  0  0  0  0  1  0 -1  0  0  0  0  0  0 
 0  0  0  1  0  0  0  0  0  0  0  0  1  0 
 0  0  0  0 -1  0  0  0  L  0  0  0  0  0 
 0 -1  0  0  0  0  0  0  0  C  0  0  0  0 
 0  0  1  0  0  0  0  0  0  0  0  0  0  1
];

reduced row echelon form

In [4]:
Trref = rref(T)
Trref =

 Columns 1 through 5:

        1.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        1.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        1.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        1.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        1.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000

 Columns 6 through 10:

        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        0.00000        0.00000        0.00000        0.00000
        1.00000        0.00000        0.00000        0.00000        0.00000
        0.00000        1.00000        0.00000        0.00000       -0.00000
        0.00000        0.00000        1.00000       -0.00000       -0.00000
        0.00000        0.00000        0.00000        1.00000       -0.00000
        0.00000        0.00000        0.00000        0.00000        1.00000

 Columns 11 through 14:

       -1.00000        0.00000        0.00000        0.00000
        1.00000        0.00000        0.00000       -1.00000
        0.00000        0.00000        0.00000        1.00000
        0.00000        0.00000        1.00000        0.00000
        0.00000       -1.00000        1.00000        0.00000
        0.00000        1.00000        0.00000        0.00000
       -0.00000        0.00000        1.00000       -0.00000
       -0.00000        1.00000       -0.00000       -0.00000
       -0.00000  -100000.00000   100000.00000       -0.00000
   100000.00000       -0.00000       -0.00000  -100000.00000

extract state-space model matrices

In [5]:
if (Trref(nt, nt) == 1)
    A = Trref(no + 1 : nt, nt + 1 : nt + ns)
    B = Trref(no + 1 : nt, nt + ns + 1 : nt + ns + ni)
    C = Trref(1 : no, nt + 1 : nt + ns)
    D = Trref(1 : no, nt + ns + 1 : nt + ns + ni)
elseif
    disp('something wrong, possible algebraic degeneration')
endif
A =

       -0.00000  -100000.00000
   100000.00000       -0.00000

B =

   100000.00000       -0.00000
       -0.00000  -100000.00000

C =

  -1.00000   0.00000
   1.00000   0.00000
   0.00000   0.00000
   0.00000   0.00000
   0.00000  -1.00000
   0.00000   1.00000
  -0.00000   0.00000
  -0.00000   1.00000

D =

   0.00000   0.00000
   0.00000  -1.00000
   0.00000   1.00000
   1.00000   0.00000
   1.00000   0.00000
   0.00000   0.00000
   1.00000  -0.00000
  -0.00000  -0.00000

In [6]:
save Ap2 A
save Bp2 B
save Cp2 C
save Dp2 D

find eigenfrequencies of the state-space model

In [7]:
poles = eig(A)
poles =

       -0.00000 + 100000.00000i
       -0.00000 - 100000.00000i

In [8]:
save polesp2 poles