# wien bridge oscillator, state space model



# empty workspace
clear all
close all

# parameters

C1 = 10e-9;
C2 = 10e-9;

R1 = 10e3;
R2 = 10e3;

A = 3;



# initialization
s = zeros(15, 17);

# KCL

s(1, 3) = 1;
s(1, 4) = 1;
s(1, 5) = 1;
s(1, 6) = - 1;

s(2, 6) = 1;
s(2, 7) = - 1;

s(3, 7) = 1;
s(3, 8) = 1;



# KVL

s(4, 13) = - 1;
s(4, 16) = 1;

s(5, 9) = 1;
s(5, 13) = - 1;

s(6, 10) = 1;
s(6, 13) = - 1;

s(7, 11) = 1;
s(7, 13) = 1;
s(7, 14) = - 1;

s(8, 14) = 1;
s(8, 15) = - 1;
s(8, 17) = 1;

s(9, 12) = 1;
s(9, 15) = - 1;



# CE

s(10, 1) = C1;
s(10, 3) = - 1;

s(11, 4) = - R1;
s(11, 9) = 1;

s(12, 5) = 1;

s(13, 6) = - R2;
s(13, 11) = 1;

s(14, 2) = C2;
s(14, 7) = - 1;

s(15, 10) = - A;
s(15, 12) = 1;



# reduce to the standard state space model

sred = rref(s);

A = - sred(1:2, 16:17);
B = - sred(3:15, 16:17);



# check

lambda = eig(A)


