úterý 3. února 2015

Počítání teploty v Revitu (°C vs. Kelviny)

V projektu nebo při tvorbě knihovního prvku v Revitu můžeme zadat jako projektové jednotky pro práci s teplotami obvyklé jednotky stupňů Celsia - °C. Následně si lze vytvářet i nové parametry pro teplotu a můžeme zadávat požadované hodnoty přímo ve °C.


Pokud se ale rozhodneme provádět v parametrech teplot nějaké výpočty, narazíme na špatný výsledek výpočtu ve °C.

Proč? Revit interně provádí všechny teplotní výpočty v Kelvinech. Vytvoříme-li si více parametrů využívajících jednotky teploty a chceme je např. sečíst, Revit převede zadané hodnoty ve vzorci na Kelviny, provede součet a výsledek v Kelvinech převede na °C a ten nám prezentuje jako vypočtenou hodnotu, která ale samozřejmě není správná. Viz příklad na obrázku:


Pro pochopení si ukažme, jak Revit toto spočítal:
Nejprve fakta:

0°C = 273.15K
1°C = 274.15K
2°C = 275.15K
atd.

V projektu máme parametry s těmito hodnotami:

teplota = 20°C = 293.15K
teplota1 = 40°C = 313.15K

A samotný výpočet provedený Revitem:

teplota2 = teplota + teplota1
teplota2 = 293.15K + 313.15K
teplota2 = 606.3K = 333.15°C

V případě, že nastavíme teplotní jednotky projektu na Kelviny, pak je v parametrech zápis tento:


Chceme-li získat správný výsledek ve °C, musíme do vzorce doplnit odečtení 273.15K. U projektů/rodin s jednotkami nastavenými na °C zapíšeme -0°C (můžeme do vzorce napsat i -273.15K, Revit sám upraví na -0°C):

teplota2 = teplota + teplota1 - 0°C


Výpočet bude proveden takto:

teplota2 = 293.15K + 313.15K - 273.15K
teplota2 = 333.15K převedeno na °C = 60°C

Stejný "trik" použijeme i při odečítání teplot.

teplota2 = teplota1 - teplota + 0°C


A co když budeme chtít ve vzorcích násobit, nebo dělit? Tady už nám nestačí ono kouzelné +/-0°C. Jak donutit Revit ke správnému výsledku?

Asi nejjednodušší bude použití dalšího parametru, abychom nemuseli stále složitě upravovat vzorec, pokud se změní některá vstupní hodnota do výpočtu. Například pro násobení si vytvoříme nový parametr (číslo) "násobení teploty". A pokud parametr "teplota" chceme vynásobit čtyřmi. Nemůžeme tedy zapsat:

teplota4 = teplota * 4

Revit by opět počítal v Kelvinech:

teplota4 = 293.15K * 4 = 1172.6K = 899.45°C = ŠPATNĚ

Abychom získali správný výsledek použijeme do vzorce náš nový pomocný parametr "násobení teploty", do kterého jsme doplnili hodnotu 4:

teplota4 = teplota * násobení teploty - (násobení teploty - 1) * 0°C
teplota4 = 293.15K * 4 - (4-1) * 273.15K = 353.15K = 80°C


Obdobně můžeme zadat i nový parametr pro dělení, který nám umožní do teplotního vzorce zadat správnou hodnotu pro dělení teploty:


A výpočet průměrné teploty? Musíme vzorec upravit podle toho, z kolika položek děláme průměr. Na obrázku výše vidíte příklad výpočtu ze dvou teplot. V případě průměru tří teplot, bude vzorec vypadat takto:



1 komentář:

  1. Dobrý den,
    děkuji Vám za vysvětlení této problematiky. Velice oceňuji snahu CAD Studia řešit podobné problémy, i když řešit by to měli hlavně programátoři Autodesku. Nepředpokládám, že se jedná o nějaký programátorský oříšek, takže nechápu, proč to tak i v Revitu 2015 stále funguje. Předáváte informace o podobných "vlastnostech" Revitu Autodesku?

    OdpovědětVymazat