Determine optimal available combinations for replacement value - HendriXML/KiCad-BOM-reporter GitHub Wiki

Default process of this task

  • Value= in section [ElectronicsTasks.CombinationTarget] supplies a target value
    • It's unit determines the class of available components
      • Ω: Resistors
      • F: Capacitors
      • H: Inductors
  • Available values are retrieved from stock components, using user defined specifications in the following config sections:
    • Resistors: [CombinationTarget.Input.Resistor]
    • Capacitors: [CombinationTarget.Input.Capacitor]
    • Inductors: [CombinationTarget.Input.Inductor]
  • The amount of simulated values may become limited using the Granularity=ExtraCoarse|Coarse|Fine|ExtraFine setting in section [ElectronicsTasks.CombinationParameters]
    • Negative values and zero are always excluded
    • Max amount of simululated combinations (also depends on configuration): ExtraCoarse: 5.000.000, Coarse: 50.000.000, Fine: 500.000.000, ExtraFine: 5.000.000.000
    • If limiting is needed, then values that are farthest from the target value are dropped first
  • The simulation is performed, for every unique combination of inputvalues a replacement value is calculated and compared to the target value
  • The best combination is refined using available values
    • This might introduce values that where dropped
    • Only when Refine=1 in section [ElectronicsTasks.CombinationParameters]
  • The best combination replacement value is recalculated with uncertainties and compared to the target value
    • Whether it is a good match (Matches specs=Yes) is determined by:
      • Requested precision of Value= in section [ElectronicsTasks.CombinationTarget]
        • 123.0 Ω ± 2%
        • 123.0 Ω ± 3.0 Ω
        • 0.12300 kΩ (significant figures),
      • Tolerances of input values: Tolerance=2% in section [ElectronicsTasks.CombinationParameters]
        • When not specified, its determined from the MaxESerie=E1|E3|E6|E12|E24|E48|E96|E192 in section [ElectronicsTasks.CombinationParameters]
  • The best combination is matched with stock components, also reporting their location and specifications
    • With UseStock=No|Source in section [ComponentCombinations.Stock] this can be skipped

The configurations that are simulated: Configurations

There're options that can alter the process:

  • With UseStock=No|MatchOnly in section [ComponentCombinations.Stock]
    • Selecting these options a different source of available values could be provided: Source=None|InputTab|TextFile in section [ElectronicsTasks.ComponentCombinations.Init]
      • None: simulation needs to be done using e-series
      • InputTab: available values are taken from the interpreters application input tabsheet
      • TextFile: available values are taken from the file: Filename= in section [ElectronicsTasks.AvailableValues.TextFile]
  • With UseESeries=1 in section [ElectronicsTasks.CombinationParameters] simulation is done with a several decades of e-serie values.
    • MaxESerie=E1|E3|E6|E12|E24|E48|E96|E192 in [ElectronicsTasks.CombinationParameters] can limit the max used e-serie
    • Available values (when supplied) are used to discard unavailable e-serie values