RC Circuit
Contents
symbolic
R1 = sym('R1');
C1 = sym('C1');
Vs = sym('Vs');
V1 = sym('V1');
V2 = sym('V2');
Iv = sym('Iv');
y = sym([ V1; V2; Iv;]);
Gm = nmAcc(1,2,1/R1,sym(zeros(3,3)));
Cm = nmAcc(2,0,C1,sym(zeros(3,3)));
Is = sym(zeros(3,1));
m = 3;
Gm = mnaVsrc(m,1,0,Gm);
Is(m) = Vs;
disp('y (unknowns)');
pretty(y);
disp('Gm');
pretty(Gm);
disp('Cm');
pretty(Cm);
disp('Is (rhs)');
pretty(Is);
y (unknowns)
+- -+
| V1 |
| |
| V2 |
| |
| Iv |
+- -+
Gm
+- -+
| 1 1 |
| --, - --, 1 |
| R1 R1 |
| |
| 1 1 |
| - --, --, 0 |
| R1 R1 |
| |
| 1, 0, 0 |
+- -+
Cm
+- -+
| 0, 0, 0 |
| |
| 0, C1, 0 |
| |
| 0, 0, 0 |
+- -+
Is (rhs)
+- -+
| 0 |
| |
| 0 |
| |
| Vs |
+- -+
state equations
[V S] = eig(Cm);
r = int32(rank(Cm));
d = diag(S);
n = size(Cm,1);
idx = n-r + (1:r);
Vr = V(:,idx);
srr = diag(d(idx));
ys = Gm\Is;
Cmr = (Gm\Vr)*srr;
x = Vr'*y;
A = -inv(Vr'*Cmr);
B = -A*(Vr'*ys);
C = -Cmr*A;
D = ys-Cmr*B;
disp('x (state variable)');
pretty(x);
disp('A');
pretty(A);
disp('B');
pretty(B);
disp('C');
pretty(C);
disp('D');
pretty(D);
disp('y');
pretty(y);
disp('C*x+D');
pretty(C*x+D);
x (state variable)
V2
A
1
- -----
C1 R1
B
Vs
-----
C1 R1
C
+- -+
| 0 |
| |
| 1 |
| |
| 1 |
| -- |
| R1 |
+- -+
D
+- -+
| Vs |
| |
| 0 |
| |
| Vs |
| - -- |
| R1 |
+- -+
y
+- -+
| V1 |
| |
| V2 |
| |
| Iv |
+- -+
C*x+D
+- -+
| Vs |
| |
| V2 |
| |
| V2 Vs |
| -- - -- |
| R1 R1 |
+- -+