La traccia è questa ( ho allegato il circuito in figura) :
Il circuito in figura è a regime per t<0.
1) Determinare i coefficienti della matrice ibrida del primo tipo del doppio bipolo resistivo compreso fra
le porte A-A' e B-B';
2) Determinare le correnti ik e iR3 per t appartenete a (-infinito,+infinito) e tracciarne il grafico;
DATI: R1=R2=R4=R5=1Ω; R2=0.5Ω; C=10mF; L=1mH; k=5;


Ecco il mio codice :
- Codice: Seleziona tutto
%% Pulizia
clear all
clc
close all
%%Dati
syms t
syms i1 iR3 i2 v1 v2 iK iR2 vL vJ2 vSw vJ1 iL iSw iC j1_s j2_s vC
R1=1;
R2=1;
R4=1;
R5=1;
R2=0.5;
R3=1;
milli=1e-3;
C=10 * milli;
L=1*milli;
k=5;
j1pos=10;
j1neg=-10;
j20=2;
w=10;
phi=pi/4;
j2=j20* cos(w*t+ phi);
R45=0.5 ; %R45=R4//R5=R4*R5/(R4+R5)
j2fas= j20* exp(j*phi);
Id=eye(2,2);
%% 1) Determinare i coefficienti della matrice ibrida del primo tipo del doppio bipolo resistivo compreso fra
%le porte A-A' e B-B'
lkt4db= -v1+ i1*R1-iR3 * R3;
lkt2db= -i2*R2+v2-i2*R45+iR3*R3;
lkc1db=i1+ i2+iR3;
sol_db= solve(lkt4db,lkt2db,lkc1db,'v1,i2,iR3');
H11=subs(sol_db.v1,v2,0)/i1
H22=subs(sol_db.i2,i1,0)/v2
H12=subs(sol_db.v1,i1,0)/v2
H21=subs(sol_db.i2,v2,0)/i1
% 2) Determinare le correnti ik e iR3 per t appartenente a (-infinito,+infinito) e tracciarne il grafico;
%%equazioni topologiche e caratteristiche
lkt1= -k*iR2-vC-vJ2;
lkt2=iR3*R3+iR2*R2+k*iR2-vL-iL*R45;
lkt3=iR2*R2-vSw+vC;
lkt4=-vJ1+j1_s*R1-iR3*R3;
lkc1=j1_s-iR2+iR3+iSw;
lkc2=iR2+iC+iK;
lkc3=iL-iK-j2_s;
lkc4=iC+iSw-j2_s;
%% per t<0 l'interruttore è aperto , quindi isw=0
sol_neg=solve(lkt1,lkt2,lkt3,lkt4,lkc1,lkc2,lkc3,lkc4,'iR3,iK,iR2,vL,vJ2,vSw,vJ1,iC');
dvC_dt_neg=subs(sol_neg.iC,iSw,0)/C
diL_dt_neg=subs(sol_neg.vL,iSw,0)/L
Aneg=zeros(2,2);
Bneg=zeros(2,2);
Aneg(1,1)=subs(dvC_dt_neg,[vC iL j2_s],[1 0 0]);
Aneg(1,2)=subs(dvC_dt_neg,[vC iL j2_s],[0 1 0]);
Aneg(2,1)=subs(diL_dt_neg,[vC iL j1_s],[1 0 0]);
Aneg(2,2)=subs(diL_dt_neg,[vC iL j1_s],[0 1 0]);
Bneg(1,1)=subs(dvC_dt_neg,[vC iL j1_s j2_s],[0 0 1 0]);
Bneg(1,2)=subs(dvC_dt_neg,[vC iL j1_s j2_s],[0 0 0 1]);
Bneg(2,1)=subs(diL_dt_neg,[vC iL j1_s j2_s],[0 0 1 0]);
Bneg(2,2)=subs(diL_dt_neg,[vC iL j1_s j2_s],[0 0 0 1]);
Aneg
Bneg
% soluzioni a regime costante per t<0
X_cost_neg=-pinv(Aneg)*Bneg*[j1neg;0];
vC_cost_neg=X_cost_neg(1);
iL_cost_neg=X_cost_neg(2);
% soluzioni a regime sinusoidale per t<0
X_sin_neg=inv(j*w*Id-Aneg)*Bneg*[0;j2fas];
vC_sin_neg=abs(X_sin_neg(1))*cos(w*t+angle(X_sin_neg(1)));
iL_sin_neg=abs(X_sin_neg(2))*cos(w*t+angle(X_sin_neg(2)));
% soluzioni complete per t<0
vCneg=vC_cost_neg+vC_sin_neg
iLneg=iL_cost_neg+iL_sin_neg
%% per t>0 l'interruttore è chiuso, quindi vsw=0
sol_pos=solve(lkt1,lkt2,lkt3,lkt4,lkc1,lkc2,lkc3,lkc4,'iR3,iK,iR2,vL,vJ2,iSw,vJ1,iC');
dvC_dt_pos=subs(sol_pos.iC,vSw,0)/C
diL_dt_pos=subs(sol_pos.vL,vSw,0)/L
Apos=zeros(2,2);
Bpos=zeros(2,2);
Apos(1,1)=subs(dvC_dt_pos,[vC iL j2_s],[1 0 0]);
Apos(1,2)=subs(dvC_dt_pos,[vC iL j2_s],[0 1 0]);
Apos(2,1)=subs(diL_dt_pos,[vC iL j1_s],[1 0 0]);
Apos(2,2)=subs(diL_dt_pos,[vC iL j1_s],[0 1 0]);
Bpos(1,1)=subs(dvC_dt_pos,[vC iL j1_s j2_s],[0 0 1 0]);
Bpos(1,2)=subs(dvC_dt_pos,[vC iL j1_s j2_s],[0 0 0 1]);
Bpos(2,1)=subs(diL_dt_pos,[vC iL j1_s j2_s],[0 0 1 0]);
Bpos(2,2)=subs(diL_dt_pos,[vC iL j1_s j2_s],[0 0 0 1]);
Apos
Bpos
% soluzioni a regime costante per t>0
X_cost_pos=-inv(Apos)*Bpos*[j1pos;0];
vC_cost_pos=X_cost_pos(1);
iL_cost_pos=X_cost_pos(2);
% soluzioni a regime sinusoidale per t>0
X_sin_pos=inv(j*w*Id-Apos)*Bpos*[0;j2fas];
vC_sin_pos=abs(X_sin_pos(1))*cos(w*t+angle(X_sin_pos(1)));
iL_sin_pos=abs(X_sin_pos(2))*cos(w*t+angle(X_sin_pos(2)));
% soluzioni complete per t>0
vCpos=vC_cost_pos+vC_sin_pos;
iLpos=iL_cost_pos+iL_sin_pos;
%%transitorio
% calcolo degli autovalori
lam=eig(Apos)
% calcolo di vC_t e iL_t
X0=[subs(vCneg,t,0);subs(iLneg,t,0)]
U0=[j1pos;subs(j2,t,0)]
X0p=Apos*X0+Bpos*U0
vCp0_p=subs(vCpos,t,0)
iLp0_p=subs(iLpos,t,0)
dvCp0_dt=subs(diff(vCpos),t,0)
diLp0_dt=subs(diff(iLpos),t,0)
lameq=(lam(1)==lam(2));
notlameq=not(lameq);
M=[lam(1) lameq+lam(2)*notlameq
1 notlameq];
Nc=[X0p(1)-dvCp0_dt;X0(1)-vCp0_p];
Ni=[X0p(2)*diLp0_dt;X0(2)-iLp0_p];
Kc=inv(M)*Nc
Ki=inv(M)*Ni
vC_t=vCpos+Kc(1)*exp(lam(1)*t)+Kc(2)*exp(lam(2)*t)
iL_t=iLpos+Ki(1)*exp(lam(1)*t)+Ki(2)*exp(lam(2)*t)
% calcolo iK e traccio il grafico
iK_neg=eval(subs(sol_neg.iK,[vC iL j1_s j2_s iSw],[vCneg iLneg j1neg j2 0]))
iK_t=eval(subs(sol_pos.iK,[vC iL j1_s j2_s vSw],[vC_t iL_t j1pos j2 0]))
iK_t=eval(iK_t)
iR3_neg=eval(subs(sol_neg.iR3,[vC iL j1_s j2_s iSw],[vCneg iLneg j1neg j2 0]))
iR3_t=eval(subs(sol_pos.iR3,[vC iL j1_s j2_s vSw],[vC_t iL_t j1pos j2 0]))
iR3_t=eval(iR3_t)
T=2*pi/w
Tt=4.05*T
figure(1)
subplot(211), ezplot(iK_neg,[-Tt,0]), hold on, ezplot(iK_t,[0,Tt]),xlim([-10,10]), grid on,
axis auto, hold on
title('Soluzione iK')
subplot(212), ezplot(iK_neg,[-Tt,0]), hold on, ezplot(iK_t,[0,Tt]), grid on,
axis auto
title('Soluzione iR3')

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


