904 ha scritto:http://www.elettrotecnica.unisa.it/et_femia/did_crs_inf_et
sono stato bocciato come è possibile 4 persone su 30 sono state promosse ???
Mi dispiace
Moderatori:
g.schgor,
IsidoroKZ
904 ha scritto:http://www.elettrotecnica.unisa.it/et_femia/did_crs_inf_et
sono stato bocciato come è possibile 4 persone su 30 sono state promosse ???
%% Inizializzazione , convenzione di percorrenza delle maglie
%%oraria,convenzione dell'utilizzatore clc close all clear all %% Dati syms t s k syms iR2 vC2 vSw vJS iR3 iR2 vC1 iR1 jS_s iSw iC2 iK lambda1 lambda2
R1=1;
R2=4;
R3=4; milli=1e-3; C1=1*milli; C2=2*milli; vS=k*iR2; jSpos=-10; jSneg0=10; w_jSneg=1000; phi_jS=pi/4;
jSneg=jSneg0*cos(w_jSneg*t+phi_jS); jSnegfas=jSneg0* exp(j*phi_jS); id=eye(2,2);
%% equazioni topologiche e caratteristiche ho 7 lati e 4 anelli lkt1=-vC2+vSw-vJS; lkt2=-iR3*R3-vSw-iR2*R2; lkt3=-vS+iR2*R2+vC2; lkt4=-vC1-iR1*R1+vS; lkc1=-iR3+jS_s+iSw; lkc2=iR2-iC2-iSw; lkc3=-iR1+iR3-iR2-iK;
%% 1) Determinare un valore del coefficiente K che assicuri la stabilità
%%del circuito sia per t<0 che per t>0
% per t<0 ho che l'interruttore è chiuso quindi vSw=0
sol_neg=solve(lkt1,lkt2,lkt3,lkt4,lkc1,lkc2,lkc3,'vJS,iR3,iR2,iR1,iSw,iC2,iK'); dvC1_neg=subs(sol_neg.iR1,vSw,0)/C1 dvC2_neg=subs(sol_neg.iC2,vSw,0)/C2 Aneg11=subs(dvC1_neg,[vC1 vC2],[1 0]);
Aneg12=subs(dvC1_neg,[vC1 vC2],[0 1]);
Aneg21=subs(dvC2_neg,[vC1 vC2 jS_s],[1 0 0]);
Aneg22=subs(dvC2_neg,[vC1 vC2 jS_s],[0 1 0]);
%% ricavo gli autovalori col k simbolico e impongo che gli autovalori se
%%reali debbano essere minori di 0 affinchè sia stabile il circuito e
%%ricavo k eqaut1=lambda1-Aneg11; eqaut2=lambda2-Aneg22; sol_aut_neg=solve(eqaut1,eqaut2,'lambda1,lambda2'); sol_aut_neg.lambda1 sol_aut_neg.lambda2
%% per t>0 ho che l'interruttore è aperto quindi iSw=0
sol_pos=solve(lkt1,lkt2,lkt3,lkt4,lkc1,lkc2,lkc3,'vJS,iR3,iR2,iR1,vSw,iC2,iK'); dvC1_pos=subs(sol_pos.iR1,iSw,0)/C1 dvC2_pos=subs(sol_pos.iC2,iSw,0)/C2 Apos11=subs(dvC1_pos,[vC1 vC2],[1 0]);
Apos12=subs(dvC1_pos,[vC1 vC2],[0 1]);
Apos21=subs(dvC2_pos,[vC1 vC2],[1 0]);
Apos22=subs(dvC2_pos,[vC1 vC2],[0 1]);
eqaut1=lambda1-Apos11; eqaut2=lambda2-Apos22; sol_aut_neg=solve(eqaut1,eqaut2,'lambda1,lambda2'); sol_aut_neg.lambda1 sol_aut_neg.lambda2
%% ok quindi devi risolvere il sistema con 1000/(-4+k)<0 e 500/(-4+k)<0 e
%%ricavare k questo implica che basta scegliere un valore di k<4 affinchè
%%il circuito sia stabile scelgo k=1
Risultati :
dvC1_neg =
1000*(4*vC1-vC1*k+k*vC2)/(-4+k)
dvC2_neg =
125*(4*jS_s*k-16*jS_s+8*vC2)/(-4+k)
ans =
-1000
ans =
1000/(-4+k)
dvC1_pos =
1000*(4*vC1-vC1*k+k*vC2)/(-4+k)
dvC2_pos =
500*vC2/(-4+k)
ans =
-1000
ans =
500/(-4+k)
dvC1_neg =
-1000*vC1-1000/3*vC2
dvC2_neg =
500*jS_s-1000/3*vC2
%% 2) Determinare le espressioni analitiche delle correnti iR1 e iR2 e
%%tracciarne il grafico per t appartenente a -oo,+oo % per t<0 ho che l'interruttore è chiuso quindi vSw=0
sol_neg=solve(lkt1,lkt2,lkt3,lkt4,lkc1,lkc2,lkc3,'vJS,iR3,iR2,iR1,iSw,iC2,iK'); dvC1_neg=subs(sol_neg.iR1,[vSw k],[0 1])/C1 dvC2_neg=subs(sol_neg.iC2,[vSw k],[0 1])/C2
Aneg=zeros(2,2);
Aneg(1,1)=subs(dvC1_neg,[vC1 vC2],[1 0]);
Aneg(1,2)=subs(dvC1_neg,[vC1 vC2],[0 1]);
Aneg(2,1)=subs(dvC2_neg,[vC1 vC2 jS_s],[1 0 0]); Aneg(2,2)=subs(dvC2_neg,[vC1 vC2 jS_s],[0 1 0]);
Aneg lam=eig(Aneg) Bneg=zeros(2,2)
Bneg(1,1)=0;
Bneg(1,2)=0;
Bneg(2,1)=subs(dvC2_neg,[vC1 vC2 jS_s],[0 0 0]);
Bneg(2,2)=subs(dvC2_neg,[vC1 vC2 jS_s],[0 0 1]);
Bneg
%% soluzioni per t<0
X_sin_neg=inv(id*j*w_jSneg-Aneg)*Bneg*[0;jSnegfas]; ??
vC1_neg=abs(X_sin_neg(1))*cos(w_jSneg*t+angle(X_sin_neg(1))) vC2_neg=abs(X_sin_neg(2))*cos(w_jSneg*t+angle(X_sin_neg(2)))
%% per t>0 ho che l'interruttore è aperto quindi iSw=0
sol_pos=solve(lkt1,lkt2,lkt3,lkt4,lkc1,lkc2,lkc3,'vJS,iR3,iR2,iR1,vSw,iC2,iK'); dvC1_pos=subs(sol_pos.iR1,[iSw k],[0 1])/C1 dvC2_pos=subs(sol_pos.iC2,[iSw k],[0 1])/C2 Apos(1,1)=subs(dvC1_pos,[vC1 vC2],[1 0]);
Apos(1,2)=subs(dvC1_pos,[vC1 vC2],[0 1]);
Apos(2,1)=subs(dvC2_pos,[vC1 vC2],[1 0]); Apos(2,2)=subs(dvC2_pos,[vC1 vC2],[0 1]); lam=eig(Apos)
% dvC1_pos =-1000*vC1-1000/3*vC2,dvC2_pos =-500/3*vC2 risolvo le equazioni
% differenziali risolvendole ho che vC2=e^(-500/3*t)+k2 ??; e
% vC1=k1*e^(-1000*t)-1/3*vC2 ??;
% ora dobbiamo solo ricavare le costanti imponendo le condizioni iniziali e
% cioè vC2(0-) syms k1 k2
eq1=-subs(vC2_neg,t,0)+1+k2; eq2=-subs(vC1_neg,t,0)+k1-1/3*(1+k2); sol_costanti=solve(eq1,eq2,'k1,k2'); sol_costanti.k1; sol_costanti.k2;
vC1_t=sol_costanti.k1*exp(-1000*t)-1/3*(sol_costanti.k2+exp(-500/3*t))
vC2_t=sol_costanti.k2+exp(-500/3*t)
da queste espressioni risulta che a regime entrambe le tensioni dei condensatori raggiungono un valore stazionario, mentre a regime le tensioni dei condensatori sono nulle.
%% determinio iR1 e iR2 e traccio il grafico iR1 iR1_neg=subs(sol_neg.iR1,[vC1 vC2 k],[vC1_neg vC2_neg 1]) iR1_t=subs(sol_pos.iR1,[vC1 vC2 k],[vC1_t vC2_t 1]) iR2_neg=subs(sol_neg.iR2,[vC1 vC2 k],[vC1_neg vC2_neg 1]) iR2_t=subs(sol_pos.iR2,[vC1 vC2 k],[vC1_t vC2_t 1]) figure(1) subplot(211)
ezplot(iR1_neg,[-10,0]),hold on , ezplot(iR1_t,[0,2]),xlim([-0.1,2]),grid on, axis auto subplot(212)
ezplot(iR2_neg,[-10,0]),hold on , ezplot(iR2_t,[0,2]),xlim([-0.1,2]),grid on, axis auto
Risultati:
Aneg =
1.0e+003 *
-1.0000 -0.3333
0 -0.3333
lam =
1.0e+003 *
-1.0000
-0.3333
Bneg =
0 0
0 0
Bneg =
0 0
0 500
vC1_neg =
1/2*5^(1/2)*cos(1000*t+532704589307213/281474976710656)
vC2_neg =
3/2*10^(1/2)*cos(1000*t-8352332796509007/18014398509481984)
dvC1_pos =
-1000*vC1-1000/3*vC2
dvC2_pos =
-500/3*vC2
lam =
1.0e+003 *
-1.0000
-0.1667
vC1_t =
(-1/4*2^(1/2)+1592262918131443/1125899906842624)*exp(-1000*t)-
3650888847551705/3377699720527872-1/3*exp(-500/3*t)
vC2_t =
3650888847551705/1125899906842624+exp(-500/3*t)
iR1_neg =
-1/2*5^(1/2)*cos(1000*t+532704589307213/281474976710656)-1/2*10^(1/2)*cos(1000*t-
8352332796509007/18014398509481984)
iR1_t =
-(-1/4*2^(1/2)+1592262918131443/1125899906842624)*exp(-1000*t)
iR2_neg =
-1/2*10^(1/2)*cos(1000*t-8352332796509007/18014398509481984)
iR2_t =
-3650888847551705/3377699720527872-1/3*exp(-500/3*t)
questi grafici mostrano un andamento non sinusoidale per t<0: come si spiega? è questo l'andamento atteso? come ha scelto la finestra di visualizzazione?
%% 3)determinare l'ampiezza della discontinuità delle correnti iR1 iR2
%%nell'istante t0. Ok troviamo iR2(0+), iR2(0-), stessa cosa con iR1 e poi
%%facciamo iR2(0+)-iR2(0-) ampiezza_disc_iR2=subs(iR2_t,t,0)-subs(iR2_neg,t,0) ampiezza_disc_iR1=subs(iR1_t,t,0)-subs(iR1_neg,t,0)
Risultati :
ampiezza_disc_iR2 =
2.2204e-016
ampiezza_disc_iR1 =
2.2204e-016
%% 4) Determinare l'energia assorbita dal generatore pilotato
%%nell'intervallo di tempo [-10s,10s]
% trovo l'energia per t<0 energia_negativa=int(subs(sol_neg.iK,[k vC1 vC2 vSw],[1 vC1_neg vC2_neg
0])*subs(sol_neg.iR2,[vC2 k],[vC2_neg 1]),t,-10,0)
% trovo l'energia per t>0
energia_positiva=int(subs(sol_pos.iK,[k vC1 vC2 iSw jS_s],[1 vC1_t vC2_t 0 jSpos])*subs(sol_pos.iR2,[vC2 k],[vC2_t 1]),t,0,10) energia_totale=energia_negativa+energia_positiva
Risultati:
energia_negativa =
-
-
1/3200*2^(1/2)*sin(360262229428720527375/18014398509481984)-
75/2+3/1600*sin(8352332796509007/9007199254740992)1/3200*2^(1/2)*sin(25740760919152625/18014398509481984)
in MATLAB e' disponibile il comando EVAL
energia_positiva =
32311621373917679/94575592174780416000*2^(1/2)+7700166099964529990890715616879859193/
730177769510341/2702159776422297600*exp(-
-
in MATLAB e' disponibile il comando EVAL
energia_totale =
in MATLAB e' disponibile il comando EVAL
%% 5) Determinare la funzione di rete H=iR2/jS con l'interruttore chiuso e
%%tracciare il grafico della corrente iR2 nell'ipotesi che il generatore %%di corrente sia caratterizzato da un andamento ad inbda quadra, con
%%frequenza fondamentale pari a 100 Hz,ampiezza picco-picco pari a 1A, %%valor medio nullo, duty cycle pari a 0.33
%Determino la funzione di rete per t<0 in cui vSw=0 pongo vC1=iR1/(s*C1) e
%vC2=iC2/(s*C2) fdr1=-iC2/(s*C2)+vSw-vJS; fdr2=-iR3*R3-vSw-iR2*R2; fdr3=-vS+iR2*R2+iC2/(s*C2); fdr4=-iR1/(s*C1)-iR1*R1+vS; fdr5=-iR3+jS_s+iSw; fdr6=iR2-iC2-iSw; fdr7=-iR1+iR3-iR2-iK; sol_fdr=solve(fdr1,fdr2,fdr3,fdr4,fdr5,fdr6,fdr7,'vJS,iR3,iR2,iR1,iSw,iC2,iK');
HiR2_jS=subs(sol_fdr.iR2,[vSw k],[0 1])/jS_s num=-500; den=[-3 -1000]; tf(num,den) f_j2=100; App=1;
DC=0.33; T=1/f_j2; w=2*pi*f_j2;
TH=DC*T;
TL=(1-DC)*T;
%troviamo valore massimo e valore minimo syms A a eq1=-App+A-a; eq2=A*DC+a*(1-DC); sol_v=solve(eq1,eq2,'A,a'); A=sol_v.A a=sol_v.a a0_jS=A*TH+a*TL; a0_iR2= a0_jS*HiR2_jS; fsk_jS_t=a0_jS; fsk_iR2_t=a0_iR2; for k=1:10
ak_jS=int(A*cos(w*k*t),t,0,TH)+int(a*cos(w*k*t),t,TH,TL); bk_jS=int(A*sin(w*k*t),t,0,TH)+int(a*sin(w*k*t),t,TH,TL);
T T
manca il prodotto per 2/T ck_jS=ak_jS+j*bk_jS; phi_ck=-atan(bk_jS,ak_jS); fs_ck=abs(ck_jS)*cos(w*t*k+phi_ck); fs_fas_ck= abs(ck_jS)*exp(j*phi_ck); fsk_iR2_fas=subs(fs_fas_ck*HiR2_jS,s,j*w*k);
fsk_iR2_tt=fsk_iR2_t+abs(fsk_iR2_fas)*cos(w*t*k+angle(fsk_iR2_fas));
in questo modo si ottiene come risultato finale una sola armonica, come evodenziato dal grafico
fsk_jS_tt=fsk_jS_t+fs_ck;
in questo modo si ottiene come risultato finale una sola armonica, come evodenziato dal grafico end figure(2) subplot(211)
ezplot(fsk_jS_tt,[-10,0]),grid on, axis auto,title('Ingresso onda quadra jS') subplot(212) ezplot(fsk_iR2_tt,[-10,0]),grid on, axis auto,title('Risposta di iR2')
risultati:
HiR2_jS =
500/(-3*s-1000)
Transfer function:
500
---------- 3 s + 1000
A =
67/100
a =
-33/100
-4 Ingresso onda quadra jS
x 10
-5 Risposta di iR2
x 10
t
Torna a Elettrotecnica generale
Visitano il forum: Nessuno e 38 ospiti