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
|
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
%
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
C=10e-9; %valeur théorique de la capa
L=10e-4; %valeur théorique de la self
A=5; %valeur quelconque de l'amplitude de e(t)
compteW=1
for omega=2*pi*500000:2*pi*50000:2*pi*1000000; %Boucle sur omega
e(1)=0; %valeur de la tension e(t) en t0
e_prime(1)=A*omega; %définition de la dérivée de la tension e(t)
periode=2*pi/omega; %définition de la période
Tobs=15*periode; %intervalle de temps observé
pas=Tobs/3000; %définition du pas
v(1)=0; %condition initiale V(0)
y(1)=0; %condition initiale y(0)
B= max(v);
G=B/A; %définition du gain
comptet=1;
for t=0:pas:Tobs; %boucle sur t
%méthode d'euler
e(t+1)=A*sin(omega*t(t+1));
e_prime(t+1)=A*omega*cos(omega*t(t+1));
v(t+1)=v(t)+y(t)*pas;
y(t+1)= y(t)+pas*(-(y(t)/R/C)-(v(t)/L/C)+e_prime(t)/R/C);
comptet=comptet+1; %changement de valeur avant de refaire la boucle
end
compteW=compteW+1;
end
compteR=compteR+1;
end
hold on;
figure(1)
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
G(compteR,compteW)=G; %gain
for i=1:1:size(R); %boucle pour une courbe balayant les valeurs de R
plot(F,G(i,:)); %Graphe
end
hold off |
Partager