Pagina 1 di 6

Serie di Fourier: problema termine A0 dell'uscita

MessaggioInviato: 28 ago 2013, 12:18
da 904
circuito.png
circuito.png (60.82 KiB) Osservato 6122 volte
Salve a tutti non riesco a capire nella soluzione del 5 quesito in allegato questo è il codice:
Codice: Seleziona tutto
%% Punto 4 % j1 ed j2 onda quadra % Calcolo la funzione di rete Hr3_j1=Ir3/J1 % vC=iC/(s*C) iL=vL/(s*L) j2=0 Hj1_1=vJ1-j1*R1+iR3*R3; Hj1_2=-R3*iR3-iR2*R2-k*iR2+vL+vL/(s*L)*R45; Hj1_3=k*iR2+iC/(s*C)-vJ2; Hj1_4=iR2*R2-iC/(s*C); Hj1_5=iSW+j1+iR3-iR2; Hj1_6=j1+iR3+vL/(s*L); Hj1_7=vL/(s*L)-iK; Hj1_8=iR2+iC+iK;   soluzione_funz_rete_j1=solve(Hj1_1,Hj1_2,Hj1_3,Hj1_4,Hj1_5,Hj1_6 ,Hj1_7,Hj1_8,'vJ1,iR3,iSW,iR2,vL,iC,iK,vJ2'); Ir3_j1=soluzione_funz_rete_j1.iR3; HiR3_j1=simplify(Ir3_j1/j1);   % Calcolo la funzione di rete Hr3_j2=Ir3/J2 % vC=iC/(s*C) iL=vL/(s*L) j1=0 Hj2_1=vJ1+iR3*R3; Hj2_2=-R3*iR3-iR2*R2-k*iR2+vL+vL/(s*L)*R45; Hj2_3=k*iR2+iC/(s*C)-vJ2; Hj2_4=iR2*R2-iC/(s*C); Hj2_5=iSW+iR3-iR2; Hj2_6=iR3+vL/(s*L); Hj2_7=vL/(s*L)-iK-j2; Hj2_8=iR2+iC+iK;   soluzione_funz_rete_j2=solve(Hj2_1,Hj2_2,Hj2_3,Hj2_4,Hj2_5,Hj2_6 ,Hj2_7,Hj2_8,'vJ1,iR3,iSW,iR2,vL,iC,iK,vJ2'); Ir3_j2=soluzione_funz_rete_j2.iR3; HiR3_j2=simplify(Ir3_j2/j2);   % Calcolo iR3 come somma del contributo di j1 e del contributo di j2 % Calcolo il contributo di j1 f_j1=100; w_j1=2*pi*f_j1; T_j1=1/f_j1; AH_j1=1; AL_j1=0; D_j1=0.25; th_j1=T_j1*D_j1; tl_j1=(1-D_j1)*T_j1;     a0_j1=AH_j1*D_j1; X_cost=-inv(A_po)*B_po*[a0_j1;0]; iL_cost=X_cost(2); a0_iR3_j1=-(a0_j1+iL_cost); %iR3=-(j1+iL)   iR3_j1_tt=a0_iR3_j1; j1_tt=a0_j1; Na=20; for k=1:Na    ak_j1=AH_j1/(k*pi)*sin(k*w_j1*th_j1);    bk_j1=AH_j1/(k*pi)*(1-cos(k*w_j1*th_j1)); %    ak_j1=double(2/T_j1*int(AH_j1*cos(k*w_j1*t),t,0,th_j1)); %    bk_j1=double(2/T_j1*int(AH_j1*sin(k*w_j1*t),t,0,th_j1));    temp_j1=ak_j1+1j*bk_j1;    ck_j1=abs(temp_j1);    phik_j1=-angle(temp_j1);        F_k_j1=ck_j1*exp(1j*phik_j1);    HiR3_k_j1=subs(HiR3_j1,s,1j*w_j1*k);    F_k_iR3_j1=HiR3_k_j1*F_k_j1;        iR3_j1_tt=iR3_j1_tt+abs(F_k_iR3_j1)*cos(k*w_j1*t+angle(F_k_iR3_j 1));    j1_tt=j1_tt+ck_j1*cos(k*w_j1*t+phik_j1); end h3=figure(3); subplot(211), ezplot(j1_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j1') subplot(212), ezplot(iR3_j1_tt,[0,2*T_j1]), axis('auto'), grid on, title('Risposta iR3 al solo forzamento di j1')   % Calcolo il contributo di j2 f_j2=200; w_j2=2*pi*f_j2; T_j2=1/f_j2; AH_j2=1; D_j2=0.75; th_j2=T_j2*D_j2; tl_j2=(1-D_j2)*T_j2;   a0_j2=AH_j2*D_j2; X_cost=-inv(A_po)*B_po*[0;a0_j2]; iL_cost=X_cost(2); a0_iR3_j2=-(a0_j2+iL_cost); %iR3=-(j1+iL)   iR3_j2_tt=a0_iR3_j2; j2_tt=a0_j2; Na=20; for k=1:Na    ak_j2=AH_j2/(k*pi)*sin(k*w_j2*th_j2);    bk_j2=AH_j2/(k*pi)*(1-cos(k*w_j2*th_j2));    temp_j2=ak_j2+1j*bk_j2;    ck_j2=abs(temp_j2);    phik_j2=-angle(temp_j2);        F_k_j2=ck_j2*exp(1j*phik_j2);    HiR3_k_j2=subs(HiR3_j2,s,1j*w_j2*k);    F_k_iR3_j2=HiR3_k_j2*F_k_j2;        iR3_j2_tt=iR3_j2_tt+abs(F_k_iR3_j2)*cos(k*w_j2*t+angle(F_k_iR3_j 2));    j2_tt=j2_tt+ck_j2*cos(k*w_j2*t+phik_j2); end h4=figure(4); subplot(211), ezplot(j2_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j2') subplot(212), ezplot(iR3_j2_tt,[0,2*T_j2]), axis('auto'), grid on, title('Risposta iR3 al solo forzamento di j2')   % Soluzione completa iR3 iR3_tt=iR3_j1_tt+iR3_j2_tt; h5=figure(5); subplot(311), ezplot(j1_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j1') subplot(312), ezplot(j2_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j2') subplot(313), ezplot(iR3_tt,[0,2*T_j1]), axis('auto'), grid on, title('Risposta iR3')

ora qui X_cost=-inv(A_po)*B_po*[a0_j1;0]; iL_cost=X_cost(2); a0_iR3_j1=-(a0_j1+iL_cost); %iR3=-(j1+iL) considera come ingresso il generatore a0_j1 e poiché è costante si calcola solo la soluzione stazionaria e ok si calcola l'uscita con la legge di Kirchhoff ma qui X_cost=-inv(A_po)*B_po*[0;a0_j2]; iL_cost=X_cost(2); a0_iR3_j2=-(a0_j2+iL_cost); %iR3=-(j1+iL) come fa a mettere j2 al posto di j1 ?

Grazie per il vostro aiuto

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 14:00
da mrc
Ciao Foto Utente904.

Per una maggiore chiarezza e per favorire le eventuali risposte, ti consiglio di usare LATEX per scrivere le formule matematiche.

Al seguente link trovi una piccola guida all' uso:

http://www.electroyou.it/mrc/wiki/intro ... o-di-latex

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 14:04
da RenzoDF
a) cosa c'entra Fourier con il quesito n°5?

b) chi ha scritto quel codice?

c) non si poteva postare più ordinato?

d) chiedi del punto 5 e posti il codice per il 4?

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 14:43
da 904
mrc ha scritto:Ciao Foto Utente904.

Per una maggiore chiarezza e per favorire le eventuali risposte, ti consiglio di usare LATEX per scrivere le formule matematiche.

Al seguente link trovi una piccola guida all' uso:

http://www.electroyou.it/mrc/wiki/intro ... o-di-latex


Non sono formule matematiche ma è matlab

RenzoDF ha scritto:a) cosa c'entra Fourier con il quesito n°5?
d) chiedi del punto 5 e posti il codice per il 4?


si parlavo del quesito 4 mi sono sbagliato

RenzoDF ha scritto:b) chi ha scritto quel codice?

Un ragazzo che ha risolto il quesito ho visto vedendo le soluzioni dei ragazzi che sono state tolte dal sito ufficiale.

RenzoDF ha scritto:c) non si poteva postare più ordinato?



ho fatto copia e incolla di come l'ha scritto lui se vuoi lo scrivo io in modo più ordinato :

Codice: Seleziona tutto
%% Punto 4
% j1 ed j2 onda quadra
% Calcolo la funzione di rete Hr3_j1=Ir3/J1
% vC=iC/(s*C) iL=vL/(s*L) j2=0
Hj1_1=vJ1-j1*R1+iR3*R3;
Hj1_2=-R3*iR3-iR2*R2-k*iR2+vL+vL/(s*L)*R45;
Hj1_3=k*iR2+iC/(s*C)-vJ2; Hj1_4=iR2*R2-iC/(s*C);
Hj1_5=iSW+j1+iR3-iR2;
Hj1_6=j1+iR3+vL/(s*L);
Hj1_7=vL/(s*L)-iK; Hj1_8=iR2+iC+iK;   
soluzione_funz_rete_j1=solve(Hj1_1,Hj1_2,Hj1_3,Hj1_4,Hj1_5,Hj1_6,Hj1_7,Hj1_8,'vJ1,iR3,iSW,iR2,vL,iC,iK,vJ2');
Ir3_j1=soluzione_funz_rete_j1.iR3; HiR3_j1=simplify(Ir3_j1/j1);
  % Calcolo la funzione di rete Hr3_j2=Ir3/J2 % vC=iC/(s*C) iL=vL/(s*L)
j1=0 Hj2_1=vJ1+iR3*R3;
Hj2_2=-R3*iR3-iR2*R2-k*iR2+vL+vL/(s*L)*R45;
Hj2_3=k*iR2+iC/(s*C)-vJ2;
Hj2_4=iR2*R2-iC/(s*C);
Hj2_5=iSW+iR3-iR2;
Hj2_6=iR3+vL/(s*L);
Hj2_7=vL/(s*L)-iK-j2;
Hj2_8=iR2+iC+iK;   
soluzione_funz_rete_j2=solve(Hj2_1,Hj2_2,Hj2_3,Hj2_4,Hj2_5,Hj2_6,Hj2_7,Hj2_8,'vJ1,iR3,iSW,iR2,vL,iC,iK,vJ2');
Ir3_j2=soluzione_funz_rete_j2.iR3;
HiR3_j2=simplify(Ir3_j2/j2); 
% Calcolo iR3 come somma del contributo di j1 e del contributo di j2
% Calcolo il contributo di j1
f_j1=100;
w_j1=2*pi*f_j1;
T_j1=1/f_j1;
AH_j1=1;
AL_j1=0;
D_j1=0.25;
th_j1=T_j1*D_j1;
tl_j1=(1-D_j1)*T_j1;   
  a0_j1=AH_j1*D_j1;
X_cost=-inv(A_po)*B_po*[a0_j1;0];
iL_cost=X_cost(2);
a0_iR3_j1=-(a0_j1+iL_cost); %iR3=-(j1+iL)   
iR3_j1_tt=a0_iR3_j1;
j1_tt=a0_j1;
Na=20;
for k=1:Na   
ak_j1=AH_j1/(k*pi)*sin(k*w_j1*th_j1);   
bk_j1=AH_j1/(k*pi)*(1-cos(k*w_j1*th_j1));
%    ak_j1=double(2/T_j1*int(AH_j1*cos(k*w_j1*t),t,0,th_j1));
%    bk_j1=double(2/T_j1*int(AH_j1*sin(k*w_j1*t),t,0,th_j1));   
temp_j1=ak_j1+1j*bk_j1;   
ck_j1=abs(temp_j1);   
phik_j1=-angle(temp_j1);     
  F_k_j1=ck_j1*exp(1j*phik_j1);   
HiR3_k_j1=subs(HiR3_j1,s,1j*w_j1*k);   
F_k_iR3_j1=HiR3_k_j1*F_k_j1;     
  iR3_j1_tt=iR3_j1_tt+abs(F_k_iR3_j1)*cos(k*w_j1*t+angle(F_k_iR3_j 1));    j1_tt=j1_tt+ck_j1*cos(k*w_j1*t+phik_j1);
end
h3=figure(3);
subplot(211), ezplot(j1_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j1') subplot(212), ezplot(iR3_j1_tt,[0,2*T_j1]), axis('auto'), grid on, title('Risposta iR3 al solo forzamento di j1') 
% Calcolo il contributo di j2
f_j2=200;
w_j2=2*pi*f_j2;
T_j2=1/f_j2;
AH_j2=1;
D_j2=0.75;
th_j2=T_j2*D_j2;
tl_j2=(1-D_j2)*T_j2; 
a0_j2=AH_j2*D_j2;
X_cost=-inv(A_po)*B_po*[0;a0_j2];
iL_cost=X_cost(2);
a0_iR3_j2=-(a0_j2+iL_cost); %iR3=-(j1+iL) 
iR3_j2_tt=a0_iR3_j2;
j2_tt=a0_j2;
Na=20;
for k=1:Na   
ak_j2=AH_j2/(k*pi)*sin(k*w_j2*th_j2);   
bk_j2=AH_j2/(k*pi)*(1-cos(k*w_j2*th_j2));   
temp_j2=ak_j2+1j*bk_j2;   
ck_j2=abs(temp_j2);   
phik_j2=-angle(temp_j2);   
    F_k_j2=ck_j2*exp(1j*phik_j2);   
HiR3_k_j2=subs(HiR3_j2,s,1j*w_j2*k);   
F_k_iR3_j2=HiR3_k_j2*F_k_j2;     
  iR3_j2_tt=iR3_j2_tt+abs(F_k_iR3_j2)*cos(k*w_j2*t+angle(F_k_iR3_j 2));    j2_tt=j2_tt+ck_j2*cos(k*w_j2*t+phik_j2);
end
h4=figure(4);
subplot(211),
ezplot(j2_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j2') subplot(212), ezplot(iR3_j2_tt,[0,2*T_j2]), axis('auto'), grid on, title('Risposta iR3 al solo forzamento di j2')   
% Soluzione completa iR3
iR3_tt=iR3_j1_tt+iR3_j2_tt;
h5=figure(5);
subplot(311), ezplot(j1_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j1') subplot(312), ezplot(j2_tt,[0,2*T_j1]), axis('auto'), grid on, title('Onda quadra j2') subplot(313), ezplot(iR3_tt,[0,2*T_j1]), axis('auto'), grid on, title('Risposta iR3')

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 15:12
da RenzoDF
904 ha scritto:...ora qui X_cost=-inv(A_po)*B_po*[a0_j1;0]; iL_cost=X_cost(2); a0_iR3_j1=-(a0_j1+iL_cost); %iR3=-(j1+iL) considera come ingresso il generatore a0_j1 e poiché è costante si calcola solo la soluzione stazionaria e ok si calcola l'uscita con la legge di Kirchhoff ma qui X_cost=-inv(A_po)*B_po*[0;a0_j2]; iL_cost=X_cost(2); a0_iR3_j2=-(a0_j2+iL_cost); %iR3=-(j1+iL) come fa a mettere j2 al posto di j1 ?

Adesso però, per aiutare chi vorrà risponderti, dovresti ordinare pure queste righe, aggiungendo un commento esplicativo dei vari passaggi.

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 15:17
da 904
ora qui
Codice: Seleziona tutto
X_cost=-inv(A_po)*B_po*[a0_j1;0]; % calcola la soluzione all'equilibrio col modello di stato
iL_cost=X_cost(2); % calcola la soluzione costante di iL
a0_iR3_j1=-(a0_j1+iL_cost); %iR3=-(j1+iL)

considera come ingresso il generatore a0_j1 e poiché è costante si calcola solo la soluzione stazionaria e ok si calcola l'uscita con la legge di Kirchhoff ma qui
Codice: Seleziona tutto
X_cost=-inv(A_po)*B_po*[0;a0_j2]; % questo è il secondo caso quello in cui deve calcolare il contributo di a0_j2
iL_cost=X_cost(2);
a0_iR3_j2=-(a0_j2+iL_cost); %iR3=-(j1+iL)
come fa a mettere j2 al posto di j1 ?
cosa devo aggiungere più di questo? non capisco come si calcola il termine a0 e come posso applicare questo procedimento nel mio caso , io sto facendo un'altra prova simile

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 15:35
da RenzoDF
904 ha scritto:... non capisco come si calcola il termine a0 e come posso applicare questo procedimento nel mio caso , io sto facendo un'altra prova simile

Non lo capisci, perché ha sbagliato! ;-)

Per il contributo del secondo GIC, una volta calcolata la corrente in L, avrebbe dovuto scrivere

Codice: Seleziona tutto
X_cost=-inv(A_po)*B_po*[0;a0_j2]; % questo è il secondo caso quello in cui deve calcolare il contributo di a0_j2
iL_cost=X_cost(2);
a0_iR3_j2=-(iL_cost); %iR3=-(iL)


in quanto, essendo il GIT sinistro "spento", la corrente in L è l'unico contributo a iR3.

BTW ... non avrà preso trenta e lode pure questo? :mrgreen:

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 15:42
da 904
ecco ora è tutto chiaro!! ma ora facciamo l'esempio del mio caso che voglio usare il suo stesso procedimento le mie equazioni di Kirchhoff sono queste :
Codice: Seleziona tutto
lkt1=iR6*R6-vJ2;
lkt2=-k*iR2*R2+vC-iR6*R6;
lkt3=iR5*R5+k*iR2*R2;
lkt4=iR3*R3+iR4*R4-iR5*R5;
lkt5=-vL+iR2*R2-iR3*R3+iR7*R7;
lkt6=-v1_s+iR1*R1+vL;
lkt7=vSw-vC-iR4*R4;
lkc1=iR6+iC+iSw+j2_s;
lkc2=iSw+iR4-iR2-iR3;
lkc3=iL+iR2-iR1;
lkc4=iK+iC;
lkc5=iL+iR7-iR1;

ora ho le due funzioni di rete H1=Vc/v1 e H2= Vc/j2 quale equazione di k scelgo? la 7 alle tensioni? ed in questo caso come dovrei procedere? o dovrei semplicemente calcolarmi la soluzione di vC costante?

BTW: si ha preso il max sennò non prendevo la sua prova come esempio

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 15:48
da RenzoDF
904 ha scritto: ... ora ho le due funzioni di rete H1=Vc/v1 e H2= Vc/j2 quale equazione di k scelgo? la 7 alle tensioni? ed in questo caso come dovrei procedere? o dovrei semplicemente calcolarmi la soluzione di vC costante?

Scusa ma se stai, come suppongo, parlando di un diverso problema, con diverse richieste e diversi generatori, come puoi pretendere che capisca quello che mi stai chiedendo? ... non sono mica il Divino Otelma io! :D

Puoi postare il testo del problema?

904 ha scritto:... si ha preso il max sennò non prendevo la sua prova come esempio

QED ... aridaje ! (:OOO:) (:OO:) (:OOO:) ... ma allora non era un caso, è un'abitudine! :mrgreen:

BTW sarebbe interessante, se risolvi questa o un'altra prova, fare il confronto dei risultati ottenuti, specie le forme d'onda l'uscita, con LTspice; se ne risolvi una completa e se posti l'intero procedimento con codice e grafici finali, e se trovo il tempo per fare la simulazione, poi potresti scrivere un bell'articoletto sul Forum; che ne dici?

BTW2 ... ma queste "soluzioni" da dove si possono scaricare?

Re: serie di fourier problema termine a0 dell'uscita

MessaggioInviato: 28 ago 2013, 16:08
da 904
RenzoDF ha scritto:BTW sarebbe interessante, se risolvi questa o un'altra prova, fare il confronto dei risultati ottenuti, specie le forme d'onda l'uscita, con LTspice; se ne risolvi una completa e se posti l'intero procedimento con codice e grafici finali, e se trovo il tempo per fare la simulazione, poi potresti scrivere un bell'articoletto sul Forum; che ne dici?

è una buona idea
RenzoDF ha scritto:Puoi postare il testo del problema?

ti posto il testo del problema e la mia risoluzione incompleta per ora
circuito.png
circuito.png (66.11 KiB) Osservato 6047 volte


invece la mia soluzione è questa :

Codice: Seleziona tutto
%Inizializzazione
%convenzione utilizzatore , verso orientamento delle maglie orario
clc
clear all
close all
%%Dati
syms t s
syms iR5 i1 i2 v1 v2 iR3 iR4 iR6 vJ2 iK vC iC iR2 vL iR7 v1_s iR1 iSw vSw j2_s iL
R1=1;
R2=1;
R3=1;
R4=2;
R5=2;
R6=2;
R7=2;
k=2;
milli=1e-3;
C=10*milli;
L=1*milli;
v1neg=-10;
v1pos=10;
j20=5;
w=1;
phi=pi/4;
j2=j20*cos(t+ phi);
id=eye(2);
j2fas=j20* exp(j*phi);
%%1) Determinare i coefficienti della matrice delle resistenze del doppio
%bipolo compreso fra le porte A-A' e B-B';Scrivo  5 equazioni di Kirchhoff tra cui 3 alle
%tensioni
edbt1=iR5*R5+v2;
edbt2=iR3*R3+iR4*R4-iR5*R5;
edbt3=-v1+i1*R2-iR3*R3+i1*R7;
edbc1=i2+iR4+iR5;
edbc2=iR3+i1-iR4;
sol_db=solve(edbt1,edbt2,edbt3,edbc1,edbc2,'iR5,v2,v1,iR3,iR4');
R=zeros(2,2);
R(1,1)=subs(sol_db.v1,i2,0)/i1;
R(1,2)=subs(sol_db.v1,i1,0)/i2;
R(2,1)=subs(sol_db.v2,i2,0)/i1;
R(2,2)=subs(sol_db.v2,i1,0)/i2;
R

%%2) Determinare le tensioni vL e vC per t compreso tra - infinito e +
%infinito e tracciarne il grafico;
%equazioni topologiche , ho 12 equazioni di Kirchhoff linearmente
%indipendenti dato che sono 12 i lati ed ho 7 anelli
lkt1=iR6*R6-vJ2;
lkt2=-k*iR2*R2+vC-iR6*R6;
lkt3=iR5*R5+k*iR2*R2;
lkt4=iR3*R3+iR4*R4-iR5*R5;
lkt5=-vL+iR2*R2-iR3*R3+iR7*R7;
lkt6=-v1_s+iR1*R1+vL;
lkt7=vSw-vC-iR4*R4;
lkc1=iR6+iC+iSw+j2_s;
lkc2=iSw+iR4-iR2-iR3;
lkc3=iL+iR2-iR1;
lkc4=iK+iC;
lkc5=iL+iR7-iR1;
%%soluzioni per t<0 vSw=0

sol_neg=solve(lkt1,lkt2,lkt3,lkt4,lkt5,lkt6,lkt7,lkc1,lkc2,lkc3,lkc4,lkc5,'iR6,vJ2,iR2,iK,iR5,iR3,iR4,vL,iR7,iR1,iC,iSw');
dvCneg=subs(sol_neg.iC,vSw,0)/C
diLneg=subs(sol_neg.vL,vSw,0)/L
Aneg=zeros(2,2);
Bneg=zeros(2,2);
Aneg(1,1)=subs(dvCneg,[v1_s j2_s vC iL],[0 0 1 0]);
Aneg(1,2)=subs(dvCneg,[v1_s j2_s vC iL],[0 0 0 1]);
Aneg(2,1)=subs(diLneg,[v1_s iL vC],[0 0 1]);
Aneg(2,2)=subs(diLneg,[v1_s iL vC],[0 1 0]);
Bneg(1,1)=subs(dvCneg,[v1_s j2_s vC iL],[1 0 0 0]);
Bneg(1,2)=subs(dvCneg,[v1_s j2_s vC iL],[0 1 0 0]);
Bneg(2,1)=subs(diLneg,[v1_s j2_s vC iL],[1 0 0 0]);
Bneg(2,2)=subs(diLneg,[v1_s j2_s vC iL],[0 1 0 0]);
Aneg
Bneg

%soluzione stazionaria per t<0
X_staz_neg=-inv(Aneg)*Bneg*[v1neg;0];
vC_cost_neg=X_staz_neg(1);
iL_cost_neg=X_staz_neg(2);
%soluzione 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))* sin(w*t+ angle(X_sin_neg(2)));

%soluzioni complete per t<0
sol_neg_vC=vC_cost_neg+ vC_sin_neg
sol_neg_iL=iL_cost_neg+ iL_sin_neg

%% soluzioni per t>0 l'interruttore è chiuso quindi iSw=0
sol_pos=solve(lkt1,lkt2,lkt3,lkt4,lkt5,lkt6,lkt7,lkc1,lkc2,lkc3,lkc4,lkc5,'iR6,vJ2,iR2,iK,iR5,iR3,iR4,vL,iR7,iR1,iC,vSw');
dvCpos=subs(sol_pos.iC,iSw,0)/C
diLpos=subs(sol_pos.vL,iSw,0)/L
Apos=zeros(2,2);
Bpos=zeros(2,2);
Apos(1,1)=subs(dvCpos,[v1_s j2_s vC iL],[0 0 1 0]);
Apos(1,2)=subs(dvCpos,[v1_s j2_s vC iL],[0 0 0 1]);
Apos(2,1)=subs(diLpos,[v1_s iL vC],[0 0 1]);
Apos(2,2)=subs(diLpos,[v1_s iL vC],[0 1 0]);
Bpos(1,1)=subs(dvCpos,[v1_s j2_s vC iL],[1 0 0 0]);
Bpos(1,2)=subs(dvCpos,[v1_s j2_s vC iL],[0 1 0 0]);
Bpos(2,1)=subs(diLpos,[v1_s j2_s vC iL],[1 0 0 0]);
Bpos(2,2)=subs(diLpos,[v1_s j2_s vC iL],[0 1 0 0]);
Apos
Bpos
% soluzioni stazionarie per t>0
X_staz_pos=-inv(Apos)* Bpos * [v1pos;0];
vC_staz_pos=X_staz_pos(1);
iL_staz_pos=X_staz_pos(2);
%soluzioni sinusoidali 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))* sin(w*t+ angle(X_sin_pos(2)));
%soluzioni complete per t>0
sol_pos_vC=vC_staz_pos+ vC_sin_pos
sol_pos_iL=iL_staz_pos+ iL_sin_pos

%transitorio
lam=eig(Apos);
lameq=(lam(1)==lam(2));
notlameq=not(lameq);
M=[lam(1) lameq+ notlameq*lam(2);1 notlameq];
X0=[subs(sol_neg_vC,t,0);subs(sol_neg_iL,t,0)];
U0=[v1pos;subs(j2,t,0)];
X0p=Apos*X0+Bpos*U0;
vCp0=subs(sol_pos_vC,t,0);
iLp0=subs(sol_pos_iL,t,0);
dvCp0=subs(diff(sol_pos_vC),t,0)
diLp0=subs(diff(sol_pos_iL),t,0)
Nc=[X0p(1)-dvCp0;X0(1)-vCp0];
Ni=[X0p(2)-diLp0;X0(2)-iLp0];
Kc=inv(M)*Nc;
Ki=inv(M)*Ni;
vC_t=sol_pos_vC+ Kc(1) * exp(lam(1)*t)+ Kc(1)*exp(lam(2)*t);
iL_t=sol_pos_iL+ Ki(1) * exp(lam(1)*t)+ Ki(1)*exp(lam(2)*t);
%%trovo le tensioni e traccio il grafico
vLneg=subs(sol_neg.vL,[vC iL vSw],[sol_neg_vC sol_neg_iL 0]);
vLpos=subs(sol_pos.vL,[v1_s iL iSw],[v1pos iL_t 0]);

T=2*pi/w;
Tt=50*T;
figure(1)
subplot(211) , ezplot(vLneg,[-Tt,0]),hold on, ezplot(vLpos,[0,Tt]), axis auto, grid on,xlim([-50,50]),hold on
subplot(212), ezplot(sol_neg_vC,[-Tt,0]),hold on, ezplot(vC_t,[0,Tt]), axis auto, grid on

%%3) Determinare l'energia assorbita dall'induttore nell'intervallo di
%tempo [2,10s]
vL_sol=subs(sol_pos.vL,[v1_s iSw iL],[v1pos 0 iL_t]);
energia_assorbita=int(vL_sol*iL_t,t,2,10)

%%4) Valutare la funzione di rete H(w)= vC/vL per t>0 e tracciarne i
%relativi diagrammi di Bode
%devo porre j2=0 iSw=0 vC=iC/(s*C) iL=vL/(s*L)
fdr1=iR6*R6-vJ2;
fdr2=-k*iR2*R2+iC/(s*C)-iR6*R6;
fdr3=iR5*R5+k*iR2*R2;
fdr4=iR3*R3+iR4*R4-iR5*R5;
fdr5=-vL+iR2*R2-iR3*R3+iR7*R7;
fdr6=-v1_s+iR1*R1+vL;
fdr7=vSw-iC/(s*C)-iR4*R4;
fdr8=iR6+iC;
fdr9=iR4-iR2-iR3;
fdr10=vL/(s*L)+iR2-iR1;
fdr11=iK+iC;
fdr12=vL/(s*L)+iR7-iR1;
sol_fdr=solve(fdr1,fdr2,fdr3,fdr4,fdr5,fdr6,fdr7,fdr8,fdr9,fdr10,fdr11,fdr12,'iR6,vJ2,iR2,iK,iR5,iR3,iR4,vL,iR7,iR1,iC,vSw');
HvCv1=simplify((sol_fdr.iC/(s*C))/v1_s)
num=[75 0];
den=2*conv([2 1625],[1 50]);
tf(num,den)
figure(2)
bode(num,den)
%%5)Tracciare il grafico della tensione vC per t>0 nell'ipotesi che i due generatori siano caratterizzati da un andamento
%ad onda quadra , con frequenza fondamentale pari a 200Hz per v1 400hz per
%j2 ampiezza picco-picco pari rispettivamente a 2V e 2A e duty-cicle pari a
%1/2 per v1 ed a 3/4 per j2; ipotizzo il valore minimo essere 0
%Calcolo la funzione di rete H = vC/j2
%devo porre v1_s=0 iSw=0 vC=iC/(s*C) iL=vL/(s*L)
fdr1=iR6*R6-vJ2;
fdr2=-k*iR2*R2+iC/(s*C)-iR6*R6;
fdr3=iR5*R5+k*iR2*R2;
fdr4=iR3*R3+iR4*R4-iR5*R5;
fdr5=-vL+iR2*R2-iR3*R3+iR7*R7;
fdr6=+iR1*R1+vL;
fdr7=vSw-iC/(s*C)-iR4*R4;
fdr8=iR6+iC+j2_s;
fdr9=iR4-iR2-iR3;
fdr10=vL/(s*L)+iR2-iR1;
fdr11=iK+iC;
fdr12=vL/(s*L)+iR7-iR1;
sol_fdr=solve(fdr1,fdr2,fdr3,fdr4,fdr5,fdr6,fdr7,fdr8,fdr9,fdr10,fdr11,fdr12,'iR6,vJ2,iR2,iK,iR5,iR3,iR4,vL,iR7,iR1,iC,vSw');
HvCj2=simplify((sol_fdr.iC/(s*C))/j2_s)
%% Calcolo contributo di v1
fv1=200;
fj2=400;
Tv1=1/fv1;
Tj2=1/fj2;
wv1=2*pi*fv1;
wj2=2*pi*fj2;
AHv1=2;
AHj2=2;
DCv1=1/2;
DCj2=3/4;
ALv1=0;
ALj2=0;
syms k
THv1=DCv1*Tv1;
THj2=DCj2*Tj2;
a0v1= AHv1*DCv1;
a0j2=AHj2*DCj2;
v1_tt=a0v1;
for k=1:20
    akv1=2/Tv1 * AHv1/(k*wv1)* sin(k*wv1*AHv1);
    bkv1=2/Tv1* AHv1/(k*wv1)* (1-cos(k*wv1*THv1));
    temp_v1= akv1+ j*bkv1;
    ckv1=abs(temp_v1);
    phik=-angle(temp_v1);
    v1_tt=v1_tt+ckv1;
    Fckv1= ckv1* exp(j*phik);
   
   
end
   
%%6)Illustrare la condizione di massimo trasferimento di potenza in un
%circuito resistivo.


questo ragazzo non è stato promosso quindi non posto la sua soluzione ne tantomeno l'ho guardata