Author Topic: Selecting cheap resistors for a precision voltage divider  (Read 1579 times)

0 Members and 1 Guest are viewing this topic.

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Selecting cheap resistors for a precision voltage divider
« on: May 21, 2022, 12:23:08 pm »
In this thread below I've explored component combination simulators: trying different combinations to get a desired target value.
https://www.eevblog.com/forum/projects/how-about-combining-some-components/

That thread was more about user interface implementations of these simulators, but initially they where ment to be used in scripts to get any (replacement) resistor value, with a decent precision of around 1%-%2.

There're simulators for 3 levels of availability:
  • Simulating E-Serie values - matching values on a spec level can be bought (easily)
  • Simulating resistors on stock - matching values on a spec level, that are available
  • Simulating measured resistors - matching values that actually exists

In this thread I'll be using a combination of Simulating resistors on stock and Simulating measured resistors using scripts, specifically to get an precise voltage divider.

The target was set to get an "circumference voltage divider": radius in, circumference / 10 out. Thus a ratio of 2/10 pi which I rounded to 0.628318.

For those who ask themselves why I would want to invest this much effort in this. Scripting around electronics is for me a hobby on itself. I like exploring, measuring and puzzle in this way.
« Last Edit: May 22, 2022, 09:11:50 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Selecting cheap resistors for a precision voltage divider - schematic
« Reply #1 on: May 21, 2022, 12:38:25 pm »
I choose 2x the resistor configuration 13 (the best performing configuration on precision when using e12 values). And place 2 of those in series.

Another option was to have one part (B) with only 3 resistors. In this way the power dissipation could be a bit more evenly spread.

This is important in the case of self heating. Where the resistance of the same material will relatively change differently when power ratio's are different and power is significant. This is a risk to take into account when combining resistors.

When choosing the resistor values I purposely choose values with significant power consumption at 10V.
« Last Edit: May 22, 2022, 10:34:41 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Online Kleinstein

  • Super Contributor
  • ***
  • Posts: 14072
  • Country: de
Re: Selecting cheap resistors for a precision voltage divider
« Reply #2 on: May 21, 2022, 12:51:18 pm »
An important principle in getting a reasonable stable divider from cheap resistors is using multiple equal resistors from the same batch to at least get the approximate value. The fine tuning is than the less critical part.  Using a few more resistors can also help in statistical avering way. So for the 0,628 example one could start with 4 and 7 resistors on each side (give a ratio of 0.636 and thus reasonable close). Even if the cheap reasistors have quite some TC, chances are much of it is correlated and the relatice TC can be considerably better. A similar effect applies to drift, at least as long as the porblem is steady drify and not a chance for sudden total failure.

The idea of using same value resistors also applies to ready made resistor arrays.
 
The following users thanked this post: HendriXML

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
The first simulations where used to get resistor values that:
  • Where on stock
  • Would dissipate less than 50% of their rated power at 10V

I solved this by calculating the resistance values (replacement A) in case of maximum allowed power, and in case of best power spread (25% x4).

Then repeatedly increasing the replacement values and simulating stock values targetting replacement A and replacement B.
Saving optimal combinations each time the actual power consumption (due to non-optimal ratio's) would be OK. After 5 successes this process would stop.

The best combinations score well on a metric that takes not only precision, but also power ratio's into account.


Provides calculated values - divider
consumes
Provides choosen values - divider
  Q_DividerRatioTarget                    : 0,628318
  V_DividerMax                            : 10,000 V
  Q_DividerResistorPowerRatioMax          : 50,000%
  Q_SimRelativeInputAccuracy              : 0,1%
  Q_SimRelativeTargetAccuracy             : 0,01%
Provides specified values - divider
  P_DividerResistorMax                    : 250,000 mW
ChoosenProcess_ComponentCombinationInfo
intermediate
  P_DividerResistorTargetMax              : 125,000 mW
  P_DividerReplacementResistorTargetMax   : 500,00 mW
  R_DividerTotalTargetMin                 : 125,66 Ω
Iteration 1
  P_DividerTotalMax                       : 795,8 mW
  P_ReplacementResistorMaxA               : 500,0 mW
  P_ReplacementResistorMaxB               : 295,8 mW
  Q_ReplacementResistorPowerRatioMaxA     : 25,000%
  Q_ReplacementResistorPowerRatioMaxB     : 42,26%
  R_ReplacementResistorTargetA            : 78,96 Ω
  R_ReplacementResistorTargetB            : 46,71 Ω
Target A
  Non conformity A                        : 5,11
  Relative weigth A                       : 24,17%
  Relative weigth B                       : 24,17%
  Relative weigth C                       : 31,42%
  Relative weigth D                       : 20,25%
..
Iteration 11
  P_DividerTotalMax                       : 488,5 mW
  P_ReplacementResistorMaxA               : 306,96 mW
  P_ReplacementResistorMaxB               : 181,6 mW
  Q_ReplacementResistorPowerRatioMaxA     : 40,72%
  Q_ReplacementResistorPowerRatioMaxB     : 68,84%
  R_ReplacementResistorTargetA            : 128,61 Ω
  R_ReplacementResistorTargetB            : 76,08 Ω
Target A
  Non conformity A                        : 5,489
  Relative weigth A                       : 19,11%
  Relative weigth B                       : 15,93%
  Relative weigth C                       : 29,23%
  Relative weigth D                       : 35,72%
Target B
  Non conformity B                        : 5,662
  Relative weigth A                       : 31,85%
  Relative weigth B                       : 5,41%
  Relative weigth C                       : 39,69%
  Relative weigth D                       : 23,05%
Iteration 12
  P_DividerTotalMax                       : 465,3 mW
  P_ReplacementResistorMaxA               : 292,34 mW
  P_ReplacementResistorMaxB               : 172,9 mW
  Q_ReplacementResistorPowerRatioMaxA     : 42,76%
  Q_ReplacementResistorPowerRatioMaxB     : 72,28%
  R_ReplacementResistorTargetA            : 135,04 Ω
  R_ReplacementResistorTargetB            : 79,88 Ω
Target A
  Non conformity A                        : 5,453
  Relative weigth A                       : 33,44%
  Relative weigth B                       : 20,07%
  Relative weigth C                       : 26,63%
  Relative weigth D                       : 19,86%
Target B
  Non conformity B                        : 5,039
  Relative weigth A                       : 28,07%
  Relative weigth B                       : 22,46%
  Relative weigth C                       : 27,28%
  Relative weigth D                       : 22,19%
Optimal
  Iteration                               : 12
  Nonconformity A                         : 5,453
  Nonconformity B                         : 5,039
provides
  R_R101_Optimal                          : 180 Ω
  R_R102_Optimal                          : 300 Ω
  R_R103_Optimal                          : 56 Ω
  R_R104_Optimal                          : 680 Ω
  R_R105_Optimal                          : 120 Ω
  R_R106_Optimal                          : 150 Ω
  R_R107_Optimal                          : 36 Ω
  R_R108_Optimal                          : 360 Ω
  Opti_TargetA                            : 135,04 Ω
  Opti_TargetB                            : 79,88 Ω
Task "Provides calculated values - divider" was successfully executed (50,75915 s)

« Last Edit: May 22, 2022, 04:20:31 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Selecting cheap resistors for a precision voltage divider
« Reply #4 on: May 21, 2022, 01:13:10 pm »
An important principle in getting a reasonable stable divider from cheap resistors is using multiple equal resistors from the same batch to at least get the approximate value. The fine tuning is than the less critical part.  Using a few more resistors can also help in statistical avering way. So for the 0,628 example one could start with 4 and 7 resistors on each side (give a ratio of 0.636 and thus reasonable close). Even if the cheap reasistors have quite some TC, chances are much of it is correlated and the relatice TC can be considerably better. A similar effect applies to drift, at least as long as the porblem is steady drify and not a chance for sudden total failure.

The idea of using same value resistors also applies to ready made resistor arrays.
That would be a more practical approach   ;D
Bypassing the "Simulating resistors on stock", the "Simulating measured resistors" fase would still be handy, but I implemented only a maximum of 4 resistors. However fixating 3 resistor values and calculating 4 variable ones, that could get good simulation results as well..
A side note:
One drawback of combing a equal resistors this way could be, that in case parameterizing the schematic calculations it can cause trouble. In this case the ratio is know, in other cases it might be subject to change.
One of the goals of the simulators is to tackle those cases, so that the schematic does not need to structurally change - only its values.
« Last Edit: May 21, 2022, 01:36:22 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline MasterT

  • Frequent Contributor
  • **
  • Posts: 783
  • Country: ca
 
The following users thanked this post: mycroft

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
After the first simulation it was known which resistor specs could be used.
Code: [Select]
  R_R101_Optimal                          : 180 Ω
  R_R102_Optimal                          : 300 Ω
  R_R103_Optimal                          : 56 Ω
  R_R104_Optimal                          : 680 Ω
  R_R105_Optimal                          : 120 Ω
  R_R106_Optimal                          : 150 Ω
  R_R107_Optimal                          : 36 Ω
  R_R108_Optimal                          : 360 Ω

Each of those specs needed around 10 measured values. Here I could use a "Workbench" script that can operate my devices via SCPI.
(PSU, AWG, DMM, Scope) This is mostly done by setting inifile style settings. In this case a DMM6500 with the following settings:
Code: [Select]
[VISA]
Dmm=TCPIP0::dmm::inst0::INSTR

[Dmm]
WaitBeforeMeasurement=0 s
CompareToValue=36 Ω
;SenseFunction=DCVoltage|Resistance|Temperature|DCVoltageRatio|ACVoltage|FourWireResistance|CONT|DigitizeVoltage|DCCurrent|Diode|ACFrequency|DigitizeCurrent|ACCurrent|Capacitance|ACPeriod
SenseFunction=FourWireResistance
AutoRange=0
Range=100 Ω
NPLCycles=12 cycle
LineSync=1
Average=0
AutoZero=1
AutoDelay=1
Only small changes for each new spec are needed (CompareToValue, Range). A single measurement is taken by pressing a single button BT keyboard. This can be done while also holding 2 Kelvin clips.

Measurements are reported: (Mistake: I used the dutch version of the script..)

Multimeter metingen
Meting 1
  Waarde                                  : 35,421 Ω ± 6 mΩ
  Verschil                                : -579 mΩ ± 6 mΩ
  Absoluut verschil                       : 579 mΩ ± 6 mΩ
  Relatief verschil                       : 1,634% ± 0,016%
Meting 2
  Waarde                                  : 34,972 Ω ± 5 mΩ
  Verschil                                : -1,028 Ω ± 5 mΩ
  Absoluut verschil                       : 1,028 Ω ± 5 mΩ
  Relatief verschil                       : 2,940% ± 0,016%
Meting 3
  Waarde                                  : 35,269 Ω ± 6 mΩ
  Verschil                                : -731 mΩ ± 6 mΩ
  Absoluut verschil                       : 731 mΩ ± 6 mΩ
  Relatief verschil                       : 2,072% ± 0,016%

But also saved in a xml-file.
Code: [Select]
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Measurements xsi:schemaLocation="urn:schemas-www-wisware.nl-data-visa-measurements Measurements.xsd" xmlns="urn:schemas-www-wisware.nl-data-visa-measurements" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Measurement Identifier="Meting 1" Value="35.421163145483392 Ω ± 5.542116314548339 mΩ"/>
<Measurement Identifier="Meting 2" Value="34.9717974791970176 Ω ± 5.497179747919702 mΩ"/>
<Measurement Identifier="Meting 3" Value="35.269157314204416 Ω ± 5.526915731420442 mΩ"/>
<Measurement Identifier="Meting 4" Value="35.348477335148992 Ω ± 5.534847733514899 mΩ"/>
<Measurement Identifier="Meting 5" Value="35.3744555930588608 Ω ± 5.537445559305887 mΩ"/>
<Measurement Identifier="Meting 6" Value="35.3959110878948672 Ω ± 5.539591108789487 mΩ"/>
<Measurement Identifier="Meting 7" Value="35.3302254434915776 Ω ± 5.533022544349158 mΩ"/>
<Measurement Identifier="Meting 8" Value="35.311559324765824 Ω ± 5.531155932476583 mΩ"/>
<Measurement Identifier="Meting 9" Value="35.7066487007243136 Ω ± 5.570664870072432 mΩ"/>
<Measurement Identifier="Meting 10" Value="35.576831095158464 Ω ± 5.557683109515847 mΩ"/>
<Measurement Identifier="Meting 11" Value="35.2708770017754368 Ω ± 5.527087700177544 mΩ"/>
<Measurement Identifier="Meting 12" Value="35.1665278161315264 Ω ± 5.516652781613153 mΩ"/>
<Measurement Identifier="Meting 13" Value="35.4263189318421824 Ω ± 5.542631893184218 mΩ"/>
<Measurement Identifier="Meting 14" Value="35.5015522500265664 Ω ± 5.550155225002657 mΩ"/>
<Measurement Identifier="Meting 15" Value="35.401218083143616 Ω ± 5.540121808314362 mΩ"/>
<Measurement Identifier="Meting 16" Value="35.3641791893184192 Ω ± 5.536417918931842 mΩ"/>
<Measurement Identifier="Meting 17" Value="35.315394593523584 Ω ± 5.531539459352358 mΩ"/>
</Measurements>
From the latter precise values can be read again and used in the simulations.
129 resistors where measured this way in about 20 min.
« Last Edit: May 22, 2022, 10:38:25 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
The following settings where used to import the measured values. More files can be added. Values can also be used for multiple inputs.
The "measured resistors" simulation discards values that already have been used.
Code: [Select]
[ElectronicsTasks.ComponentValuesManager.TargetB.Init]
Filename.1=..\004\Measurements.xml
Ref.1=120Ω
Inputs.1=A
Filename.2=..\005\Measurements.xml
Ref.2=150Ω
Inputs.2=B
Filename.3=..\002\Measurements.xml
Ref.3=36Ω
Inputs.3=C
Filename.4=..\008\Measurements.xml
Ref.4=360Ω
Inputs.4=D

[ElectronicsTasks.ComponentValuesManager.TargetA.Init]
Filename.1=..\006\Measurements.xml
Ref.1=180Ω
Inputs.1=A
Filename.2=..\007\Measurements.xml
Ref.2=300Ω
Inputs.2=B
Filename.3=..\003\Measurements.xml
Ref.3=56Ω
Inputs.3=C
Filename.4=..\009\Measurements.xml
Ref.4=680Ω
Inputs.4=D
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Online Zero999

  • Super Contributor
  • ***
  • Posts: 19343
  • Country: gb
  • 0999
Re: Selecting cheap resistors for a precision voltage divider
« Reply #8 on: May 21, 2022, 09:23:29 pm »
https://jansson.us/resistors.html
That's the site I use. There's no point in using more than three 1% tolerance resistors from the E24 series, in a potential divider. It will always give a value with a much closer tolerance than 1% and it's pointless to get much closer with 1% tolerance parts.

 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
After simulating those values I found out that about all values where lower than specified. This would mean all highest values would be optimal in reaching the target value and even then matching would be poor (resistance wise).

However ratio wise these (highest values) combinations where pretty close to the target ratio.
But not good enough and a bit to dependend on luck (after bad luck).

I could have solved this by introducing extra resistors of one e12 step away. But these would be probably a step to large.
This because the weight of the resistors, which are:
Code: [Select]
Target A
  Relative weigth A                       : 33,44%
  Relative weigth B                       : 20,07%
  Relative weigth C                       : 26,63%
  Relative weigth D                       : 19,86%
Target B
  Relative weigth A                       : 28,07%
  Relative weigth B                       : 22,46%
  Relative weigth C                       : 27,28%
  Relative weigth D                       : 22,19%
Which also mean how much small (relative) changes of each will contribute to the replacement value. The smallest single step change would be something like:
19,86% * 20% / 100 % = 3.972%

But because the true target is an precise ratio, there's nothing wrong with scaling the 2 resistance targets.

The script does that in small steps (1.001x and 1/1.001x) both ways (to make it usable in other situations as well).

After getting optimal targets, this is repeated around these optimal targets with even smaller steps.
This resulted in the following report (ratio diff = 1,00000003617322):

  Ratio diff                              : 1,00000003617322
  Target A                                : 132,405 Ω ± 13 mΩ
  Target B                                : 78,32 Ω ± 30 mΩ
Divider part A
  A                                       : 176,71 Ω ± 20 mΩ
  B                                       : 290,78 Ω ± 30 mΩ
  C                                       : 55,263 Ω ± 8 mΩ
  D                                       : 667,33 Ω ± 70 mΩ
  Relative weigth A                       : 33,178%
  Relative weigth B                       : 20,162%
  Relative weigth C                       : 26,819%
  Relative weigth D                       : 19,841%
  Source ref A                            : 180Ω:Meting 1
  Source ref B                            : 300Ω:Meting 8
  Source ref C                            : 56Ω:Meting 2
  Source ref D                            : 680Ω:Meting 14
Divider part B
  A                                       : 117,873 Ω ± 17 mΩ
  B                                       : 145,082 Ω ± 19 mΩ
  C                                       : 35,269 Ω ± 6 mΩ
  D                                       : 357,43 Ω ± 40 mΩ
  Relative weigth A                       : 27,934%
  Relative weigth B                       : 22,695%
  Relative weigth C                       : 27,457%
  Relative weigth D                       : 21,913%
  Source ref A                            : 120Ω:Meting 13
  Source ref B                            : 150Ω:Meting 1
  Source ref C                            : 36Ω:Meting 3
  Source ref D                            : 360Ω:Meting 14
provides
  Q_DividerRatio                          : 0,62832
  R_R101                                  : 176,71 Ω
  R_R102                                  : 290,78 Ω
  R_R103                                  : 55,26 Ω
  R_R104                                  : 667,3 Ω
  R_R105                                  : 117,87 Ω
  R_R106                                  : 145,08 Ω
  R_R107                                  : 35,27 Ω
  R_R108                                  : 357,43 Ω
Task "CalculatedValues_ComponentSimulation" was successfully executed (374,0387 ms)


With this the individual resistors can be found and used.
« Last Edit: May 22, 2022, 04:29:55 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Selecting cheap resistors for a precision voltage divider
« Reply #10 on: May 21, 2022, 09:57:58 pm »
https://jansson.us/resistors.html
That's the site I use. There's no point in using more than three 1% tolerance resistors from the E24 series, in a potential divider. It will always give a value with a much closer tolerance than 1% and it's pointless to get much closer with 1% tolerance parts.
I've done some precision benchmarking (10.000 simulations) using e12 values
https://www.eevblog.com/forum/projects/how-about-combining-some-components/msg4087474/#msg4087474

When cherry picking individual resistors, one could get very close. The problem is whether it's stable enough. I guess a voltage divider can get more precise/accurate even with TC included than the used components.
I was hoping for 0.1%, but it seems to be better. And that is with very cheap resistors.
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Online Zero999

  • Super Contributor
  • ***
  • Posts: 19343
  • Country: gb
  • 0999
Re: Selecting cheap resistors for a precision voltage divider
« Reply #11 on: May 21, 2022, 10:04:43 pm »
https://jansson.us/resistors.html
That's the site I use. There's no point in using more than three 1% tolerance resistors from the E24 series, in a potential divider. It will always give a value with a much closer tolerance than 1% and it's pointless to get much closer with 1% tolerance parts.
I've done some precision benchmarking (10.000 simulations) using e12 values
https://www.eevblog.com/forum/projects/how-about-combining-some-components/msg4087474/#msg4087474

When cherry picking individual resistors, one could get very close. The problem is whether it's stable enough. I guess a voltage divider can get more precise/accurate even with TC included than the used components.
I was hoping for 0.1%, but it seems to be better. And that is with very cheap resistors.
I would expect stability would be m more consent over the same resistance range. IF you've got a 1k and 100k resistor, then it probably won't act in your favour the way it would with two 10k resistors.

0.1% resistors are cheap, when you consider the time spent messing around,
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
After picking the individual resistors I remeasured them using the benchmark script with the following settings
Code: [Select]
[Dmm]
WaitBeforeMeasurement = 0 s
MatchWithESerie=E24
SenseFunction=FourWireResistance
AutoRange=1
NPLCycles=12 cycle
LineSync=1
Average=0
AutoZero=1
AutoDelay=1

With these settings the nearest e24 value is used to compare the measurement against. (Not needed for these measurements though)

Multimeter measurements
R101
  Value                                   : 176,82 Ω ± 20 mΩ
  Value E-serie                           : 180 Ω
  Difference E-serie                      : -3,18 Ω ± 20 mΩ
  Absolute difference E-serie             : 3,18 Ω ± 20 mΩ
  Relative difference E-serie             : 1,800% ± 0,012%
R102
  Value                                   : 290,93 Ω ± 30 mΩ
  Value E-serie                           : 300 Ω
  Difference E-serie                      : -9,07 Ω ± 30 mΩ
  Absolute difference E-serie             : 9,07 Ω ± 30 mΩ
  Relative difference E-serie             : 3,117% ± 0,011%
R103
  Value                                   : 55,293 Ω ± 8 mΩ
  Value E-serie                           : 56 Ω
  Difference E-serie                      : -707 mΩ ± 8 mΩ
  Absolute difference E-serie             : 707 mΩ ± 8 mΩ
  Relative difference E-serie             : 1,279% ± 0,014%
R104
  Value                                   : 667,72 Ω ± 70 mΩ
  Value E-serie                           : 680 Ω
  Difference E-serie                      : -12,28 Ω ± 70 mΩ
  Absolute difference E-serie             : 12,28 Ω ± 70 mΩ
  Relative difference E-serie             : 1,839% ± 0,010%
R105
  Value                                   : 117,931 Ω ± 17 mΩ
  Value E-serie                           : 120 Ω
  Difference E-serie                      : -2,069 Ω ± 17 mΩ
  Absolute difference E-serie             : 2,069 Ω ± 17 mΩ
  Relative difference E-serie             : 1,754% ± 0,014%
R106
  Value                                   : 145,152 Ω ± 19 mΩ
  Value E-serie                           : 150 Ω
  Difference E-serie                      : -4,848 Ω ± 19 mΩ
  Absolute difference E-serie             : 4,848 Ω ± 19 mΩ
  Relative difference E-serie             : 3,340% ± 0,013%
R107
  Value                                   : 35,280 Ω ± 6 mΩ
  Value E-serie                           : 36 Ω
  Difference E-serie                      : -720 mΩ ± 6 mΩ
  Absolute difference E-serie             : 720 mΩ ± 6 mΩ
  Relative difference E-serie             : 2,041% ± 0,016%
R108
  Value                                   : 357,63 Ω ± 40 mΩ
  Value E-serie                           : 360 Ω
  Difference E-serie                      : -2,37 Ω ± 40 mΩ
  Absolute difference E-serie             : 2,37 Ω ± 40 mΩ
  Relative difference E-serie             : 0,664% ± 0,011%


They where all a bit off from the initial measurement. Probably due to a temperature difference (1.2 K).
These resistors have a high TC.
« Last Edit: May 22, 2022, 08:39:03 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Selecting cheap resistors for a precision voltage divider - PCB
« Reply #13 on: May 21, 2022, 10:14:11 pm »
The PCB design was such that the resistors of part A and part B (of the divider) where mixed.

I had been thinking about thermo coupling them some more, but eventually didn't bother with that.
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Finally I could measure the ratio. For that the Workbench script was used with the following settings:
Code: [Select]
[Dmm]
WaitBeforeMeasurement=0 s
CompareToValue=0.628318
MatchWithESerie=E24
SenseFunction=DCVoltageRatio
AutoRange=1
NPLCycles=12 cycle
LineSync=1
Average=0
AutoZero = 1
AutoDelay = 1
Resulting in this report, measuring 1V increments on the input:

Multimeter measurements
1V
  Value                                   : 0,62839996295304550400000000000000 ± 0
  Difference                              : 0,000081962953045411340800000000000000 ± 0
  Absolute difference                     : 0,000081962953045411340800000000000000 ± 0
  Relative difference                     : 0,013043118694699171200000000000000% ± 0%
2V
  Value                                   : 0,62838020793605836800000000000000 ± 0
  Difference                              : 0,000062207936058378265600000000000000 ± 0
  Absolute difference                     : 0,000062207936058378265600000000000000 ± 0
  Relative difference                     : 0,0098997287426831718400000000000000% ± 0%
3V
  Value                                   : 0,62837080755629478400000000000000 ± 0
  Difference                              : 0,000052807556294776070400000000000000 ± 0
  Absolute difference                     : 0,000052807556294776070400000000000000 ± 0
  Relative difference                     : 0,0084038844038828326400000000000000% ± 0%
4V
  Value                                   : 0,62835496905920064000000000000000 ± 0
  Difference                              : 0,000036969059200586681600000000000000 ± 0
  Absolute difference                     : 0,000036969059200586681600000000000000 ± 0
  Relative difference                     : 0,0058834673108320140800000000000000% ± 0%
5V
  Value                                   : 0,62833842142405388800000000000000 ± 0
  Difference                              : 0,000020421424053784774400000000000000 ± 0
  Absolute difference                     : 0,000020421424053784774400000000000000 ± 0
  Relative difference                     : 0,0032500676956061446400000000000000% ± 0%
6V
  Value                                   : 0,62830822357674188800000000000000 ± 0
  Difference                              : -0,0000097764232581676326400000000000000 ± 0
  Absolute difference                     : 0,0000097764232581676326400000000000000 ± 0
  Relative difference                     : 0,0015559916122876492800000000000000% ± 0%
7V
  Value                                   : 0,62827671647082355200000000000000 ± 0
  Difference                              : -0,000041283529176427968000000000000000 ± 0
  Absolute difference                     : 0,000041283529176427968000000000000000 ± 0
  Relative difference                     : 0,0065709150274304524800000000000000% ± 0%
8V
  Value                                   : 0,62822916308786752000000000000000 ± 0
  Difference                              : -0,000088836912132461696000000000000000 ± 0
  Absolute difference                     : 0,000088836912132461696000000000000000 ± 0
  Relative difference                     : 0,014140844989718582400000000000000% ± 0%
9V
  Value                                   : 0,62818043776265536000000000000000 ± 0
  Difference                              : -0,00013756223734462392000000000000000 ± 0
  Absolute difference                     : 0,00013756223734462392000000000000000 ± 0
  Relative difference                     : 0,021898522952190192000000000000000% ± 0%
10V
  Value                                   : 0,62812450745954022400000000000000 ± 0
  Difference                              : -0,00019349254045986086400000000000000 ± 0
  Absolute difference                     : 0,00019349254045986086400000000000000 ± 0
  Relative difference                     : 0,030804806716178713600000000000000% ± 0%
11V
  Value                                   : 0,62806336209636569600000000000000 ± 0
  Difference                              : -0,00025463790363433603200000000000000 ± 0
  Absolute difference                     : 0,00025463790363433603200000000000000 ± 0
  Relative difference                     : 0,040543346261179641600000000000000% ± 0%


Sorry for all the digits. For the ratio function of the DMM I didn't implement uncertainties (lack of documentation if I remember correctly).
The performance is around 0.01%, worsening at higher voltages. This could be better when the resistors took the same amount of power.
Which where calculated for 10V:

CalculatedValues_ComponentSimulationPower
consumes
Choosen values - divider
  V_DividerMax                            : 10,000 V
intermediate
  R_Replacement_A                         : 132,41 Ω
  R_Replacement_B                         : 78,32 Ω
  R_Replacement_Tot                       : 210,73 Ω
  P_Replacement_Tot                       : 474,5 mW
  Q_R101                                  : 20,846%
  Q_R102                                  : 12,668%
  Q_R103                                  : 16,851%
  Q_R104                                  : 12,466%
  Q_R105                                  : 10,383%
  Q_R106                                  : 8,435%
  Q_R107                                  : 10,205%
  Q_R108                                  : 8,145%
provides
  P_R101                                  : 98,92 mW
  P_R102                                  : 60,12 mW
  P_R103                                  : 79,96 mW
  P_R104                                  : 59,16 mW
  P_R105                                  : 49,27 mW
  P_R106                                  : 40,03 mW
  P_R107                                  : 48,43 mW
  P_R108                                  : 38,65 mW
Task "CalculatedValues_ComponentSimulationPower" was successfully executed (122,3 μs)



« Last Edit: May 22, 2022, 10:45:28 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Selecting cheap resistors for a precision voltage divider
« Reply #15 on: May 21, 2022, 10:33:37 pm »
Values thats are calculated can be reported to a xml-file, which can be used by my BOM reporter script.
In the designator view these values can then be checked against what's in the KiCad schematics.
In this case resistance and power values. Normally resistance values are mapped to e-series, so a lot less digits...
« Last Edit: May 21, 2022, 10:36:21 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Selecting cheap resistors for a precision voltage divider
« Reply #16 on: May 22, 2022, 10:42:35 pm »
After doing this exercise I think simulations targetting a certain divider ratio are maybe more usefull than those targetting a single replacement resistor value.
I went through the configurations and transfered them to ratio configurations (leaving out those who don't make sense).

Programming wise these could be handled by sub-classes of the transferred configurations. This would make the replacement resistor value, resistor weights etc. also available to the sub-class.

The simulations would need the target ratio as a parameter. But IMO also the replacement resistor low/high bounds.
« Last Edit: May 23, 2022, 11:10:54 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Selecting cheap resistors for a precision voltage divider
« Reply #17 on: May 24, 2022, 10:37:19 am »
There were 2 duplicate configs and some naming inconsistencies.


P.S.
The way I create high res images out of KiCad svg plot files is via Krita (https://krita.org/en/).
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Selecting cheap resistors for a precision voltage divider
« Reply #18 on: May 24, 2022, 04:55:53 pm »
There's one app I'm really fond off on an Android tablet (with s-pen) and that is:
Concepts https://concepts.app/en/
Very usefull when sketching schematics or sketching on imported schematics or just visualizing ideas.
It's vector based which makes editing a lot easier. There's also support for layers.
Imported images keep their high res and exporting can be high res too.
It's very feature rich and is still getting better. Very affordable as well.
« Last Edit: May 25, 2022, 09:55:14 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf