1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| clear all
clc
%équation différentielle à résoudre: V''(t)+V'(t)/RC+V(t)/LC=e'(t)/RC
%où e(t)=A.sin(w.t) et w=2pi.f
%
C=10e-9; %valeur théorique de la capa
L=10e-4; %valeur théorique de la self
compteR=1; %choix de la valeur pour chaque boucle (idem pour omega et t)
for R=[1000 2000 5000 10000 20000 50000 100000] %boucle sur R
compteW=1;
for w=2*pi*500000:2*pi*50000:2*pi*1000000 %Boucle sur omega
A=5; %valeur quelconque de l'amplitude de e(t)
periode=2*pi/w; %définition de la période
Tobs=15*periode; %intervalle de temps observé
pas=Tobs/3000; %définition du pas
t=0:pas:Tobs;
e=A*sin(w*t);
e_prime=A*w*cos(w*t);
v(1)=0; %condition initiale V(0)
y(1)=0; %condition initiale y(0)
comptet=1;
for t=pas:pas:Tobs; %boucle sur t
%méthode d'euler
%explicite
v(comptet+1)=v(comptet)+y(comptet+1)*pas;
y(comptet+1)= y(comptet)+pas*(-(y(comptet)/R/C)-(v(comptet)/L/C)+e_prime/R/C);
comptet=comptet+1; %changement de valeur avant de refaire la boucle
end
B= max(v);
C=max(e)
G(compteR,compteW)=B/C; %définition du gain
compteW=compteW+1;
end
compteR=compteR+1;
end
F=500000:50000:1000000; %définition de la fréquence
R=[1000 2000 5000 10000 20000 50000 100000]; %redéfinition de la boucle sur R
figure(1)
hold on;
for i=1:lenght(R); %boucle pour une courbe balayant les valeurs de R
plot(F,G(i,:)); %Graphe
end
hold off |
Partager