Quería construir una simulación de condensadores de bypass en Matlab, especialmente para jugar con pares de diferentes tapas de valor. Así que pensé que solo tomo un modelo de un condensador real como conexión en serie de un condensador con una resistencia (ESR) y un inductor (ESL) y obtengo la fórmula $$ Z = \ mathrm {ESR} + j2 \ pi f \ cdot \ mathrm {ESL} + \ frac {1} {j2 \ pi fC} $$ separando en parte real e imaginaria: $$ Z = \ mathrm {ESR} + j \ left (2 \ pi f \ cdot \ mathrm {ESL} - \ frac {1} {2 \ pi fC} \ right) $$ ahora toma la magnitud $$ | Z | = \ sqrt {\ mathrm {ESR} ^ 2 + \ left (2 \ pi f \ cdot \ mathrm {ESL} - \ frac {1} {2 \ pi fC} \ right) ^ 2} $ $
Ahora programé el Matlab. Primero, la función que calcula la impedancia del límite a una / s frecuencia / es determinada
function [ Z ] = calcCapImp( f,R, L,C )
Z=sqrt(R^2+(2*pi*f*L-1./(2*pi*C*f)).^2);
end
El código para calcular y trazar la impedancia de una combinación de dos condensadores en ohmios y dBs:
clear all;
f=10000:1000:1e9;
Z=(zeros(size(f)));
for i=1:size(f,2)
Z1=calcCapImp(f(i),10e-3,700e-12,100e-9);%calculate first cap
Z2=calcCapImp(f(i),10e-3,1250e-12,4.7e-6);%calculate second cap
Z(i)=(Z1*Z2)/(Z1+Z2);%Total impedance is parallel combination
end
loglog(f,Z);
ylabel('Resistance, Ohm');
xlabel('Frequency, Hz');
grid on;
figure;
Z=20*log10(Z);%convert to decibels
semilogx(f,Z);
xlabel('Frequency, Hz');
ylabel('Resistance, dB');
grid on;
Mientras que los resultados parecen plausibles,
Nopuedoreproducirelgráficoquehevistoenotroslugares.
Enparticular,elcódigoanteriorintentarecrear
Noestoytanlejoscomounpicodramáticoa~10MHzcomoenlafiguraexternamencionadaanteriormente(aproximadamente10veces/20dBmáspequeña)
¿Hehecholoscálculoscorrectamente?¿Hayalgúnerrorenmisimulación?
EDITAR:aquíestáelcódigoyelgráficocorregidossegúnlarespuestadeThePhotonacontinuación
function[Z]=calcCapImp(f,R,L,C)Z=R+1i*(2*pi*f*L-1./(2*pi*C*f));endclearall;f=10000:1000:1e9;Z=(zeros(size(f)));fori=1:size(f,2)Z1=calcCapImp(f(i),10e-3,700e-12,100e-9);%calculatefirstcapZ2=calcCapImp(f(i),10e-3,1250e-12,4.7e-6);%calculatesecondcapZ(i)=abs((Z1*Z2)/(Z1+Z2));%Totalimpedanceisparallelcombination,takethemagnitudeendloglog(f,Z);ylabel('Impedance,Ohm');xlabel('Frequency,Hz');title('ImpedanceinOhms');gridon;figure;Zdb=20*log10(Z);%converttodecibelssemilogx(f,Zdb);xlabel('Frequency,Hz');ylabel('Impedance,dB');title('Impedanceindecibels');gridon;