159 lines
4.5 KiB
Plaintext
159 lines
4.5 KiB
Plaintext
Kalibrierung der zwei neuen EC Probes für NFT und Dutch Bucket 2024.
|
|
|
|
Probe A: Die Längere
|
|
Probe B: Die etwas kürzere
|
|
|
|
Lösung laut https://www.researchgate.net/profile/Sameer-Sayyad-2/post/How-is-it-possible-to-convert-conductivity-of-NaCl-solution-in-uS-to-its-salinity-NaCl-concentration-in-ppm/attachment/5abdeaedb53d2f63c3c2e08c/AS%3A609786693443585%401522395885345/download/conductivity+vs+concentration+NaCl+25+degress.pdf
|
|
3g NaCl auf 1L H2O sind 5690 uS/cm @ 25°C
|
|
Also 7,5g auf 0,25L H2O
|
|
Dann 50mL davon mit 450mL H2O auf 1L auffüllen.
|
|
|
|
|
|
Einige Messwerte genommen, ohne dass die EC Sensoren in Flüssigkeit sind.
|
|
|
|
time,tempReservoir,ECadcCalib,ECadc_A,ECadcAdjusted_A,ECadc_B,ECadcAdjusted_B
|
|
1524060,14.73,6021.09,729.21,728.70,729.16,728.65
|
|
1555158,14.69,6021.75,729.20,728.61,729.05,728.46
|
|
1577247,14.63,6021.88,728.94,728.33,728.96,728.35
|
|
1620362,14.56,6021.88,728.95,728.34,728.87,728.27
|
|
minimum adc rawA= 728.87
|
|
|
|
|
|
ca. 300mL dest. Wasser in 500mL Becherglas auf Magnetrührer
|
|
Wasser temperiert auf 25°C und durchgehend temperatur gehalten
|
|
Temperatursensor und DIY EC-Probe in Flüssigkeit platziert
|
|
Magnetrührer auf langsamer Stufe (keine Strudelbildung)
|
|
Messwert per Tastendruck erfasst (time,tempReservoir,ECadcCalib,ECadc,ECadcAdjusted)
|
|
zeit
|
|
temperatur d. flüssigkeit
|
|
referenz adc wert (geschalteter fester widerstand statt probe)
|
|
Roher ADC Messwert (Probe A)
|
|
angepasster ADC Messwert (linear gemappt nach abweichung vom referenz adc wert, referenz adc wert vorher ermittelt und eingegeben in code) (Probe A)
|
|
Roher ADC Messwert (Probe B)
|
|
angepasster ADC Messwert (Probe B)
|
|
|
|
manuell notiert und später der csv angefügt: "solutionAdded"
|
|
|
|
|
|
|
|
Erster Messwert nur dest. Wasser.
|
|
Weitere Messwerte jew. nach hinzufügen erst wenigen tropfen NaCl Lösung. Später mehr bis zu 10mL pro Messung.
|
|
|
|
|
|
time,mL added
|
|
4198000,0
|
|
4296000,0.1
|
|
4347000,0.2
|
|
4393000,0.3
|
|
4441000,0.4
|
|
4481000,0.5
|
|
4525000,0.6
|
|
4567000,0.7
|
|
4615000,0.8
|
|
4654000,0.9
|
|
4729000,1.0
|
|
4768000,1.1
|
|
4800000,1.2
|
|
4832000,1.3
|
|
4865000,1.4
|
|
4899000,1.5
|
|
4938000,1.6
|
|
4984000,1.7
|
|
5024000,1.8
|
|
5065000,1.9
|
|
5098000,2.0
|
|
5204000,2.5
|
|
5243000,3.0
|
|
5283000,3.5
|
|
5331000,4.0
|
|
5378000,4.5
|
|
5420000,5.0
|
|
5482000,5.5
|
|
5537000,6.1
|
|
5683000,7.0
|
|
5731000,8.0
|
|
5819000,9.0
|
|
5860000,10.0
|
|
5907000,11
|
|
5938000,12
|
|
5968000,13
|
|
6068000,14
|
|
6113000,15
|
|
6151000,16
|
|
6227000,17
|
|
6282000,18
|
|
6332000,19
|
|
6380000,20
|
|
6465000,25
|
|
6528000,30
|
|
6654000,35
|
|
6743000,40
|
|
6837000,45
|
|
6886000,50
|
|
6952000,60
|
|
6999000,70
|
|
7051000,80
|
|
7098000,90
|
|
7138000,100
|
|
7270000,120
|
|
7328000,140
|
|
7392000,160
|
|
7449000,180
|
|
7505000,200
|
|
|
|
|
|
|
|
|
|
Werte in 20240423_EC_Calibration_Raw.txt
|
|
Zusammengeführt in 20240423_EC_Calibration.csv
|
|
|
|
Auswertung in 20240423_EC_Calibration_with_graph.ods
|
|
|
|
Polynom x. Grades erstellt mit python approximate.py
|
|
für approximate.py numpy==1.22 notwendig. venv benutzen.
|
|
|
|
Probe A:
|
|
model order=4
|
|
+5.388914121653647e-13*x^4 -8.847448650204697e-09*x^3 +7.44612274805891e-05*x^2 -0.057529180570340156*x^1 +18.953002079376887*x^0
|
|
Excel:
|
|
5.388914121653647e-13
|
|
-8.847448650204697e-09
|
|
7.44612274805891e-05
|
|
-0.057529180570340156
|
|
18.953002079376887
|
|
Array:
|
|
{18.953002079376887,-0.057529180570340156,7.44612274805891e-05,-8.847448650204697e-09,5.388914121653647e-13}
|
|
|
|
|
|
Probe B:
|
|
model order=4
|
|
+5.529701600660142e-13*x^4 -9.161423581523883e-09*x^3 +7.671298605466989e-05*x^2 -0.08846039894456156*x^1 +40.838922264426685*x^0
|
|
Excel:
|
|
5.529701600660142e-13
|
|
-9.161423581523883e-09
|
|
7.671298605466989e-05
|
|
-0.08846039894456156
|
|
40.838922264426685
|
|
Array:
|
|
{40.838922264426685,-0.08846039894456156,7.671298605466989e-05,-9.161423581523883e-09,5.529701600660142e-13}
|
|
|
|
|
|
|
|
polynom in c++ code übernommen und punktuelle ergebnisse aus adc zu ec funktion ausgegeben und geplottet zur kontrolle, ob rechnung funktioniert.
|
|
bei lowADC den niedrigsten adc wert genommen in luft (siehe erste messungen).
|
|
|
|
float ec_calibration_polynom_A[]={18.953002079376887,-0.057529180570340156,7.44612274805891e-05,-8.847448650204697e-09,5.388914121653647e-13}; //20240423, graphite electrodes
|
|
float ec_calibration_linearize_below_adc_A=2000; //use linear approximation below this adc value. 0=disable
|
|
float ec_calibration_linear_lowADC_A=728; //x0
|
|
float ec_calibration_linear_lowEC_A=0; //y0
|
|
|
|
|
|
float ec_calibration_polynom_B[]={40.838922264426685,-0.08846039894456156,7.671298605466989e-05,-9.161423581523883e-09,5.529701600660142e-13}; //20240423, graphite electrodes
|
|
float ec_calibration_linearize_below_adc_B=2000; //use linear approximation below this adc value. 0=disable
|
|
float ec_calibration_linear_lowADC_B=728; //x0
|
|
float ec_calibration_linear_lowEC_B=0; //y0
|
|
|
|
Funktion getestet. Ergebnis in 20240423_FunctionTest.ods
|
|
|
|
|