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