Re: Peripetie s termočlánky (Vianocna list..

Daniel Valuch balu na k-net.fr
Čtvrtek Prosinec 26 15:51:49 CET 2024


> Prostě klasická zmatená dizkuze:-)
Lebo nechodis do krcmy. Tam by sme to mali vyriesene za 5 minut :-)

Preco tabulky? Mas tam polynom, ktoreho hodnotu si vyratas v bode, ktory 
ta zaujima. Ked je to na kontrolne/referencne ucely, tak si zadefinujes, 
ze to chces pocitat s vysokym rozlisenim aby hodnoty netrpeli stratou 
presnosti, pamat a rychlost v tomto pripade nie je dolezita. V kratkom 
floate to samozrejme nebude fungovat, ako uz bolo spomenute.

t = numpy.arange(0,1301,1,dtype=numpy.float64)

a0 = numpy.float64(-0.176004136860e-1);
a1 = numpy.float64(0.389212049750e-1);
a2 = numpy.float64(0.185587700320e-4);
a3 = numpy.float64(-0.994575928740e-7);
a4 = numpy.float64(0.318409457190e-9);
a5 = numpy.float64(-0.560728448890e-12);
a6 = numpy.float64(0.560750590590e-15);
a7 = numpy.float64(-0.320207200030e-18);
a8 = numpy.float64(0.971511471520e-22);
a9 = numpy.float64(-0.121047212750e-25);

c0 = numpy.float64( 0.118597600000E+00)
c1 = numpy.float64(-0.118343200000E-03)
c2 = numpy.float64( 0.126968600000E+03)

# cleny polynomu
Ep0 = a0
Ep1 = a1* numpy.power(t,1)
Ep2 = a2* numpy.power(t,2)
Ep3 = a3* numpy.power(t,3)
Ep4 = a4* numpy.power(t,4)
Ep5 = a5* numpy.power(t,5)
Ep6 = a6* numpy.power(t,6)
Ep7 = a7* numpy.power(t,7)
Ep8 = a8* numpy.power(t,8)
Ep9 = a9* numpy.power(t,9)

# polynom poskladany z clenov
Ep = Ep0+Ep1+Ep2+Ep3+Ep4+Ep5+Ep6+Ep7+Ep8+Ep9

# polynom priamo vypocitany
Epp = a0*t**0 + a1*t**1 + a2*t**2 + a3*t**3 + a4*t**4 + a5*t**5 + 
a6*t**6 + a7*t**7 + a8*t**8 + a9*t**9

# exponencialny clen
Ee = c0 * numpy.exp(c1*(t-c2)*(t-c2))




On 26/12/2024 15:36, Pavel Hudeček wrote:
> Takže jsem to měl správně, v bodě 3 je hodnota vůči 0.
>
> A tohle taky. Těch několik sad koeficientů je vyjmenováno asi na 100 
> místech po netu a tak na 10 jsou ve formě rovnou do programu, je to 
> jen pár desítek čísel. Mě ale zajímá primární tabukla hodnot, těch je 
> asi 1500, to je ta větší část uvedeného txt. A s nima chci porovnat 
> výsledky různých způsobů výpočtu.
>
> PH
>
> Dne 26.12.2024 v 15:08 Daniel Valuch napsal(a):
>>
>> Asi si nerozumieme. Nerozumiem kde je problem ani s meranim, ani s 
>> koeficientami polynomov.
>>
>> Meranie: Ak mas k dispozicii/chces pouzit 0 °C, tak je jeden koniec 
>> termoclanku na tejto teplote. Odmeras napatie na druhej strane a 
>> rovno prepocitas na teplotu. Ak nepouzivas referenciu 0 °C, ale inu 
>> (napriklad izbovu teplotu svoriek multimetra) tak odmeras teplotu 
>> svoriek, prevedies na ekvivalentne napatie (voci 0 °C), odmeras 
>> napatie z termoclanku, napatie svoriek pouzijes ako offset. Vysledne 
>> napatie prevedies na teplotu.
>>
>> Koeficienty: V dokumentoch, ktore som posielal mas koeficienty 
>> polynomov. Netreba ziaden script ani odstranovat hlavicky. Aj na tej 
>> linke co si prave poslal ich mas uplne na konci. Priame aj inverzne. 
>> Pouzivas obidva. Priame na vypocet offsetu z teploty svoriek a 
>> inverzne na vypocet teploty zo ziskaneho napatia.
>>
>> Uryvok z dokumentu https://its90.nist.gov/downloadFiles/type_k.tab.txt
>>
>> ************************************
>> * This section contains coefficients for type K thermocouples for
>> * the two subranges of temperature listed below.  The coefficients
>> * are in units of °C and mV and are listed in the order of constant
>> * term up to the highest order.  The equation below 0 °C is of the form
>> * E = sum(i=0 to n) c_i t^i.
>> *
>> * The equation above 0 °C is of the form
>> * E = sum(i=0 to n) c_i t^i + a0 exp(a1 (t - a2)^2).
>> *
>> *     Temperature Range (°C)
>> *        -270.000 to 0.000
>> *         0.000 to 1372.000
>> ************************************
>> name: reference function on ITS-90
>> type: K
>> temperature units: °C
>> emf units: mV
>> range: -270.000, 0.000, 10
>>    0.000000000000E+00
>>    0.394501280250E-01
>>    0.236223735980E-04
>>   -0.328589067840E-06
>>   -0.499048287770E-08
>>   -0.675090591730E-10
>>   -0.574103274280E-12
>>   -0.310888728940E-14
>>   -0.104516093650E-16
>>   -0.198892668780E-19
>>   -0.163226974860E-22
>> range: 0.000, 1372.000, 9
>>   -0.176004136860E-01
>>    0.389212049750E-01
>>    0.185587700320E-04
>>   -0.994575928740E-07
>>    0.318409457190E-09
>>   -0.560728448890E-12
>>    0.560750590590E-15
>>   -0.320207200030E-18
>>    0.971511471520E-22
>>   -0.121047212750E-25
>> exponential:
>>   a0 =  0.118597600000E+00
>>   a1 = -0.118343200000E-03
>>   a2 =  0.126968600000E+03
>>
>>
>>
>> ************************************
>> * This section contains coefficients of approximate inverse
>> * functions for type K thermocouples for the subranges of
>> * temperature and voltage listed below. The range of errors of
>> * the approximate inverse function for each subrange is also given.
>> * The coefficients are in units of °C and mV and are listed in
>> * the order of constant term up to the highest order.
>> * The equation is of the form t_90 = d_0 + d_1*E + d_2*E^2 + ...
>> *     + d_n*E^n,
>> * where E is in mV and t_90 is in °C.
>> *
>> *    Temperature        Voltage            Error
>> *      range              range            range
>> *      (°C)               (mV)             (° C)
>> *    -200. to 0.      -5.891 to 0.000    -0.02 to 0.04
>> *     0. to 500.      0.000 to 20.644    -0.05 to 0.04
>> *     500. to 1372.   20.644 to 54.886   -0.05 to 0.06
>> ********************************************************
>> Inverse coefficients for type K:
>>   
>> Temperature  -200.             0.           500.
>>    Range:        0.           500.          1372.
>>   
>>    Voltage   -5.891          0.000         20.644
>>    Range:     0.000         20.644         54.886
>>   
>>           0.0000000E+00  0.000000E+00 -1.318058E+02
>>           2.5173462E+01  2.508355E+01  4.830222E+01
>>          -1.1662878E+00  7.860106E-02 -1.646031E+00
>>          -1.0833638E+00 -2.503131E-01  5.464731E-02
>>          -8.9773540E-01  8.315270E-02 -9.650715E-04
>>          -3.7342377E-01 -1.228034E-02  8.802193E-06
>>          -8.6632643E-02  9.804036E-04 -3.110810E-08
>>          -1.0450598E-02 -4.413030E-05  0.000000E+00
>>          -5.1920577E-04  1.057734E-06  0.000000E+00
>>           0.0000000E+00 -1.052755E-08  0.000000E+00
>>   
>>    Error      -0.02          -0.05          -0.05
>>    Range:      0.04           0.04           0.06
>>   
>>
>>
>> On 26/12/2024 14:49, Pavel Hudeček wrote:
>>> Pokud v kroku 3 věta nemá pokračovat .. proti 0°C, tak přeci může 
>>> bej výsledek jakejkoli.
>>> Naopak, pokud jednoduše vezmu změřenou T2, najdu jí v tabulce na 
>>> NIST, tak dostanu U který by TČ umístěný na tom místě dával vůči 0, 
>>> nebo ne?
>>>
>>> Žádný z linků související se Zenitem nevede na stránku, kde by byla 
>>> tabulka hodnot v nějakém formátu, aby šla copy-paste hodit do 
>>> programu, nebo binárně přilinkovat.
>>> Nejblíž je asi tohle:
>>> https://its90.nist.gov/downloadFiles/type_k.tab.txt
>>> k tomu se dá proklikat z linku v programu.
>>>
>>> Ale pořád to znamená prohnat to nějakým py skriptem, co vyhází 
>>> všechny záhlaví + teploty a doplní čárky.
>>> A potom teprve můžu třeba zkusit, co se stane když nechám totéž 
>>> napočítat originálními polynomy kolem 9. řádu, ale za použití floatu 
>>> v MCU.
>>>
>>> A tak nějak předpokládám, že když jste sem dávali ty grafy odchylek, 
>>> tak už takouvou tabulku odněkud máte:-)
>>>
>>> PH
>>>
>>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored bywww.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20241226/98265b30/attachment-0001.htm>


Další informace o konferenci Hw-list