TB066

Análisis de Circuitos (TB066)
Index Commits Files Refs
tp/scripts/valores_normalizados_H1.py (2329B)
   1 import itertools
   2 
   3 # Capacitores
   4 E6_C = [1.0, 1.5, 2.2, 3.3, 4.7, 6.8]
   5 
   6 # resistencias de 5% de error
   7 E24_R = [
   8     1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0,
   9     3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1
  10 ]
  11 
  12 E24_R_custom = [
  13     1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0,
  14     3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2
  15 ]
  16 
  17 # resistencias de 2% de error
  18 E48_R = [
  19     1.00, 1.05, 1.10, 1.15, 1.21, 1.27, 1.33, 1.40, 1.47, 1.54, 1.62, 1.69,
  20     1.78, 1.87, 1.96, 2.05, 2.15, 2.26, 2.37, 2.49, 2.61, 2.74, 2.87, 3.01,
  21     3.16, 3.32, 3.48, 3.65, 3.83, 4.02, 4.22, 4.42, 4.64, 4.87, 5.11, 5.36,
  22     5.62, 5.90, 6.19, 6.49, 6.81, 7.15, 7.50, 7.87, 8.25, 8.66, 9.09, 9.53
  23 ]
  24 
  25 # resistencias de 1% de error
  26 E96_R = [
  27     1.00, 1.02, 1.05, 1.07, 1.10, 1.13, 1.15, 1.18, 1.21, 1.24, 1.27, 1.30,
  28     1.33, 1.37, 1.40, 1.43, 1.47, 1.50, 1.54, 1.58, 1.62, 1.65, 1.69, 1.74,
  29     1.78, 1.82, 1.87, 1.91, 1.96, 2.00, 2.05, 2.10, 2.15, 2.21, 2.26, 2.32,
  30     2.37, 2.43, 2.49, 2.55, 2.61, 2.67, 2.74, 2.80, 2.87, 2.94, 3.01, 3.09,
  31     3.16, 3.24, 3.32, 3.40, 3.48, 3.57, 3.65, 3.74, 3.83, 3.92, 4.02, 4.12,
  32     4.22, 4.32, 4.42, 4.53, 4.64, 4.75, 4.87, 4.99, 5.11, 5.23, 5.36, 5.49,
  33     5.62, 5.76, 5.90, 6.04, 6.19, 6.34, 6.49, 6.65, 6.81, 6.98, 7.15, 7.32,
  34     7.50, 7.68, 7.87, 8.06, 8.25, 8.45, 8.66, 8.87, 9.09, 9.31, 9.53, 9.76
  35 ]
  36 
  37 SERIE_R = E24_R_custom
  38 SERIE_C = E6_C
  39 
  40 # décadas
  41 DECADAS_R = [1, 10, 100, 1_000, 10_000, 100_000]
  42 DECADAS_C = [1e-9, 10e-9, 100e-9, 1e-6]  # pF–uF
  43 
  44 # lista de resistencias y capacitores disponibles
  45 resistencias = [v * d for v, d in itertools.product(SERIE_R, DECADAS_R)]
  46 capacitores  = [v * d for v, d in itertools.product(SERIE_C, DECADAS_C)]
  47 
  48 # a = 1/(RC)
  49 def find_lower_error(a, res_list=resistencias, cap_list=capacitores):
  50     resultados = []
  51 
  52     for R in resistencias:
  53         C_ideal = 1/(250*R)
  54 
  55         for C in capacitores:
  56             err = abs((C - C_ideal)/C_ideal)*100
  57             resultados.append((err, R, C, C_ideal))
  58 
  59     resultados.sort(key=lambda x: x[0])
  60 
  61     return resultados
  62 
  63 if __name__ == "__main__":
  64     resultados = find_lower_error(250)
  65 
  66     print("      R [Ω]      C [F]      Cideal [F]    Error [%]")
  67     for err, R, C, Cideal in resultados[:20]:
  68         print(f"{R:9.0f}   {C:9.2e}   {Cideal:9.2e}   {err:6.2f}")