Re: Circuito RLC sinusoidale
Inviato: 12 mar 2024, 12:01
Madara02 ha scritto:... Ho mantenuto questo schema, ho scelto e4=0 perché è uno dei due nodi che va a toccare il generatore controllato di corrente. ...
Ok, puoi scegliere il nodo di riferimento per i potenziali dove vuoi, ma non capisco la motivazione della scelta.
Madara02 ha scritto:... per t>0 pongo induttore, condensatore e generatore ind. di corrente, rispettivamente come Ils, Vcs, Igs
ho ottenuto queste equazioni:
...
Scusa ma non le capisco proprio; per una KCL devi sommare le correnti di tutti i rami che insistono sul nodo e quelle equazioni non mi sembrano rispettare questa regola base.
Vista la presenza del generatore Vcs, e che quindi posso scrivere
le KCL le scriverò solo per i nodi 2 e 4
Madara02 ha scritto:... In ogni caso ho ottenuto questa matrice:
MC=[G4+G2,-G4,0;
-G4+g, G3+G4-g, 0;
+1,0,-1];
i=[Ils-Igs;0;-Vcs];
PN=MC\i
Non vedo come questa matrice possa discendere da quelle tue tre equazioni.
PS ......
Giusto per non perdere entrambi altro tempo .... prezioso!
... dando una veloce "sistemata" al tuo codice (che senza dubbio potrebbe essere migliorato)
- Codice: Seleziona tutto
clear
close all
clc
R1=1;
R2=1;
R3=1;
R4=1;
L=1/5;
C=1/20;
g=2;
G1=1/R1;
G2=1/R2;
G3=1/R3;
G4=1/R4;
w=10;
fase=0;
Ig0=100;
ZL=1j*w*L;
ZC=(-1j)/(w*C);
YL=1/ZL;
YC=1/ZC;
% --- fasoriale t < 0
MZ=[YC+YL+G1+G2+G4,-YL-G4, -YC-G1;
-YL-G4, G3+YL+G4, 0;
-YC-G1, 0, YC+G1 ];
TN=[0; 0; -Ig0];
e=MZ\TN;
Vc0=e(1)-e(3)
Il0=(e(2)-e(1))*YL
V0=real(Vc0);
I0=real(Il0);
%---fasoriale t > 0
MZ=[YC+YL+G1+G2+G4,-YL-G4, -YC-G1;
YL+G4-g, -G3-YL-G4+g, 0;
-YC-G1, 0, YC+G1 ];
TN=[0; 0; -Ig0];
e=MZ\TN;
Vc0=e(1)-e(3)
Il0=(e(2)-e(1))*YL
%---- via CRA ----
syms Vcs Ils Igs
MC=[1,0,-1;
-G4+g,G4-g+G3,0;
g+G2,G3-g,0];
i=[Vcs; -Ils ;-Igs];
PN=MC\i
VR1=PN(1)-PN(3);
VR3=PN(2);
iR1=VR1*G1;
dvCdt=(-iR1+Igs)/C
dvLdt=(PN(2)-PN(1))/L
syms t x1(t) x2(t);
Ig = 100*cos(w*t);
x=[x1(t); x2(t)];
g=[Ig];
A = [-20,0; 0, -10];
B = [20; 5];
Dx = [diff(x1,t)== A(1,:)*x + B(1,:)*g,
diff(x2,t)== A(2,:)*x + B(2,:)*g];
cond_ini = [x1(0)==V0,x2(0)==I0];
S = dsolve(Dx,cond_ini);
vC = simplify(S.x1)
iL = simplify(S.x2)
% ----- The End -----