<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    No já to beru tak, že polynom je paroximace s nějakou přesností a
    referenční je ta tabulka, tedy chci porovnávat s ní. A chci s ní
    samozřejmě porovnat i ten polynom, čistě ze zvědavosti, k počítání
    samozřejmě použiju long double alias extended, ten má 64 bitů jenom
    mantisu. Když se tady potkávaj e-1 až e-25, tak se mi i těch 19 míst
    zdá málo:-)<br>
    <br>
    Je paradoxní, že se moc nepoužívá, přestože je to nativní formát FPU
    v PC, tedy všechny floaty a doubly se na nej konvertěj a pak zas
    zpátky. Třeba C# ho vůbec nemá. Nevím jak numpy, jestli má i
    float80?<br>
    <br>
    PH<br>
    <br>
    <div class="moz-cite-prefix">Dne 26.12.2024 v 15:51 Daniel Valuch
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:6df2ae02-78e8-44f1-8bfb-f1821fe11e44@k-net.fr">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p> </p>
      <blockquote type="cite">Prostě klasická zmatená dizkuze:-)<br>
      </blockquote>
      Lebo nechodis do krcmy. Tam by sme to mali vyriesene za 5 minut
      :-)<br>
      <p>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.<br>
      </p>
      <p>t = numpy.arange(0,1301,1,dtype=numpy.float64)<br>
        <br>
        a0 = numpy.float64(-0.176004136860e-1);<br>
        a1 = numpy.float64(0.389212049750e-1);<br>
        a2 = numpy.float64(0.185587700320e-4);<br>
        a3 = numpy.float64(-0.994575928740e-7);<br>
        a4 = numpy.float64(0.318409457190e-9);<br>
        a5 = numpy.float64(-0.560728448890e-12);<br>
        a6 = numpy.float64(0.560750590590e-15);<br>
        a7 = numpy.float64(-0.320207200030e-18);<br>
        a8 = numpy.float64(0.971511471520e-22);<br>
        a9 = numpy.float64(-0.121047212750e-25);<br>
        <br>
        c0 = numpy.float64( 0.118597600000E+00)<br>
        c1 = numpy.float64(-0.118343200000E-03)<br>
        c2 = numpy.float64( 0.126968600000E+03)<br>
      </p>
      <p># cleny polynomu <br>
        Ep0 = a0<br>
        Ep1 = a1* numpy.power(t,1)<br>
        Ep2 = a2* numpy.power(t,2)<br>
        Ep3 = a3* numpy.power(t,3)<br>
        Ep4 = a4* numpy.power(t,4)<br>
        Ep5 = a5* numpy.power(t,5)<br>
        Ep6 = a6* numpy.power(t,6)<br>
        Ep7 = a7* numpy.power(t,7)<br>
        Ep8 = a8* numpy.power(t,8)<br>
        Ep9 = a9* numpy.power(t,9)<br>
        <br>
        # polynom poskladany z clenov<br>
        Ep = Ep0+Ep1+Ep2+Ep3+Ep4+Ep5+Ep6+Ep7+Ep8+Ep9<br>
        <br>
        # polynom priamo vypocitany<br>
        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 <br>
        <br>
        # exponencialny clen<br>
        Ee = c0 * numpy.exp(c1*(t-c2)*(t-c2))</p>
      <p><br>
      </p>
      <p><br>
      </p>
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 26/12/2024 15:36, Pavel Hudeček
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:e1e9e49b-90f5-42ff-8adb-2d237470f659@seznam.cz">
        <meta http-equiv="Content-Type"
          content="text/html; charset=UTF-8">
        Takže jsem to měl správně, v bodě 3 je hodnota vůči 0.<br>
        <br>
        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.<br>
        <br>
        PH<br>
        <br>
        <div class="moz-cite-prefix">Dne 26.12.2024 v 15:08 Daniel
          Valuch napsal(a):<br>
        </div>
        <blockquote type="cite"
          cite="mid:1a526f11-2963-44de-a21f-1876f0461920@k-net.fr">
          <meta http-equiv="Content-Type"
            content="text/html; charset=UTF-8">
          <p>Asi si nerozumieme. Nerozumiem kde je problem ani s
            meranim, ani s koeficientami polynomov. <br>
          </p>
          <p>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. <br>
          </p>
          <p>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.<br>
          </p>
          <p>Uryvok z dokumentu <a class="moz-txt-link-freetext"
              href="https://its90.nist.gov/downloadFiles/type_k.tab.txt"
              moz-do-not-send="true">https://its90.nist.gov/downloadFiles/type_k.tab.txt</a>
          </p>
          <pre
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; white-space: pre-wrap;">************************************
* 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
 </pre>
          <p><br>
          </p>
          <div class="moz-cite-prefix">On 26/12/2024 14:49, Pavel
            Hudeček wrote:<br>
          </div>
          <blockquote type="cite"
            cite="mid:0eaaf26e-5949-4d15-8a33-ced0b65ed9ba@seznam.cz">Pokud
            v kroku 3 věta nemá pokračovat .. proti 0°C, tak přeci může
            bej výsledek jakejkoli. <br>
            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? <br>
            <br>
            Žá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. <br>
            Nejblíž je asi tohle: <br>
            <a class="moz-txt-link-freetext"
              href="https://its90.nist.gov/downloadFiles/type_k.tab.txt"
              moz-do-not-send="true">https://its90.nist.gov/downloadFiles/type_k.tab.txt</a>
            <br>
            k tomu se dá proklikat z linku v programu. <br>
            <br>
            Ale pořád to znamená prohnat to nějakým py skriptem, co
            vyhází všechny záhlaví + teploty a doplní čárky. <br>
            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. <br>
            <br>
            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:-) <br>
          </blockquote>
        </blockquote>
      </blockquote>
    </blockquote>
  </body>
</html>