溫溼度計算露點函式
float calc_dewpoint(float t,float h){
double logex;
double dew;
logex=0.66077+7.5*t/(237.3+t)+ (log10(h)-2);
dew=(logex-0.66077)*237.3/(0.66077+7.5-logex);
return (float)dew;
}
計算出來的值:
溫度:5°,溼度:10%RH, 露點:-24.2,
與專業軟體VAISALA Humidity Calculator的結果:-21.7有一定的差距,原因是沒有進行分段修正。
修正方式方式:可惜我JS不行,不知道怎麼轉換成C的,遺憾
var minT = 173; // -100 Deg. C.
var maxT = 678;
/*
* Saturation Vapor Pressure formula for range -100..0 Deg. C.
* This is taken from
* ITS-90 Formulations for Vapor Pressure, Frostpoint Temperature,
* Dewpoint Temperature, and Enhancement Factors in the Range 100 to +100 C
* by Bob Hardy
* as published in "The Proceedings of the Third International Symposium on Humidity & Moisture",
* Teddington, London, England, April 1998
*/
var k0 = -5.8666426e3;
var k1 = 2.232870244e1;
var k2 = 1.39387003e-2;
var k3 = -3.4262402e-5;
var k4 = 2.7040955e-8;
var k5 = 6.7063522e-1;
function pvsIce(T) {
lnP = k0/T + k1 + (k2 + (k3 + (k4*T))*T)*T + k5*Math.log(T);
return Math.exp(lnP);
}
/**
* Saturation Vapor Pressure formula for range 273..678 Deg. K.
* This is taken from the
* Release on the IAPWS Industrial Formulation 1997
* for the Thermodynamic Properties of Water and Steam
* by IAPWS (International Association for the Properties of Water and Steam),
* Erlangen, Germany, September 1997.
*
* This is Equation (30) in Section 8.1 "The Saturation-Pressure Equation (Basic Equation)"
*/
var n1 = 0.11670521452767e4;
var n6 = 0.14915108613530e2;
var n2 = -0.72421316703206e6;
var n7 = -0.48232657361591e4;
var n3 = -0.17073846940092e2;
var n8 = 0.40511340542057e6;
var n4 = 0.12020824702470e5;
var n9 = -0.23855557567849;
var n5 = -0.32325550322333e7;
var n10 = 0.65017534844798e3;
function pvsWater(T) {
var th = T+n9/(T-n10);
var A = (th+n1)*th+n2;
var B = (n3*th+n4)*th+n5;
var C = (n6*th+n7)*th+n8;
var p = 2*C/(-B+Math.sqrt(B*B-4*A*C));
p *= p;
p *= p;
return p*1e6;
}
/**
* Compute Saturation Vapor Pressure for minT<T[Deg.K]<maxT.
*/
function PVS(T) {
if (T<minT || T>maxT) return NaN;
else if (T<C_OFFSET)
return pvsIce(T);
else
return pvsWater(T);
}
/**
* Compute dewPoint for given relative humidity RH[%] and temperature T[Deg.K].
*/
function dewPoint(RH,T) {
return solve(PVS, RH/100*PVS(T), T);
}
/**
* Newton's Method to solve f(x)=y for x with an initial guess of x0.
*/
function solve(f,y,x0) {
var x = x0;
var maxCount = 10;
var count = 0;
do {
var xNew;
var dx = x/1000;
var z=f(x);
xNew = x + dx*(y-z)/(f(x+dx)-z);
if (Math.abs((xNew-x)/xNew)<0.0001)
return xNew;
else if (count>maxCount) {
xnew=NaN;
throw new Error(1, "Solver does not converge.");
break;
}
x = xNew;
count ++;
} while (true);
}
相關文章
- AHT20溫溼度採集
- 函式計算——應用初探函式
- C語言:使用函式計算兩點間的距離C語言函式
- 從雲端計算到函式計算函式
- 遷移 Express 到函式計算Express函式
- ESP8266 鼓搗記 - 從零製作一個溫溼度計
- DHT11溫溼度感測器原理剖析
- 【重溫基礎】4.函式函式
- pycuda-一些計算函式函式
- 遷移 Spring Boot 到函式計算Spring Boot函式
- 函式計算-HelloWorld應用開發函式
- 計算 CRC32 的逆函式函式
- 外層函式的變數直接被巢狀函式引用計算函式變數巢狀
- 函式計算Python連線SQLServer小結函式PythonSQLServer
- 阿里雲 函式計算 域名配置問題阿里函式
- Serverless 實戰 —— 函式計算 + Typescript 實踐Server函式TypeScript
- 函式計算支援 MySQL 例項繫結函式MySql
- Serverless 解惑——函式計算如何安裝字型Server函式
- 基於函式計算的 BFF 架構函式架構
- 筆記:PostgreSQL 、Node.js 、函式計算筆記SQLNode.js函式
- matchTemplate函式各個方法的計算公式函式公式
- C語言程式設計>第八週 ② 編寫函式fun,函式的功能是:根據以下公式計算,計算結果作為函式值返回。C語言程式設計函式公式
- 【知識點】inline函式、回撥函式、普通函式inline函式
- 【重溫基礎】21.高階函式函式
- MySql中SUM函式計算錯誤問題MySql函式
- 阿里雲函式計算 VSCode 使用,及部署 Docusaurus阿里函式VSCode
- 函式計算實踐——一個應用案例函式
- ICEE-Sensor-Temperature+Humidity:溫度溼度感測器: TI + Sensiron
- 基於SPI的0.96OLED資料顯示溫溼度
- 製作表格統計函式計算Excel 2021簡體中文函式Excel
- 【.NET 與樹莓派】溫度/溼度感測器——SHT30樹莓派
- 51微控制器彙編程式,溫溼度報警專案
- STM32之IIC通訊-SHT30溫溼度採集
- 部署基於pythonwsgiweb框架的工程到函式計算PythonWeb框架函式
- GO語言————6.11 計算函式執行時間Go函式
- 函式計算安裝依賴庫方法小結函式
- 快速遷移 Next.js 應用到函式計算JS函式
- 基於阿里雲函式計算實現AI推理阿里函式AI