资料下载地址相对湿度计算
新问题接着出现,如何在已知干球温度和相对湿度的情况下推算湿球温度,
饱和蒸汽压计算公式 1:Pws=A*10^(m*T/(T+Tn)) (T为温度)就是这个公式。
A=6.089613,m=7.33502,Tn=230.3921
绝对含湿量水蒸汽分压计算公式2: Pw=Pws(Twet)-Ptot*K*(Tdry-Twet)(Ptot常压1013hPa,K为干湿球系数0.000662,Tdry为干球温度,Twet就是要求解的值)
Pw= Pws(Twet)-1013*0.000662*(Tdry-Twet)
相对湿度计算公式3: RH=Pw/Pws(Tdry)*100%
将湿球温度设成x,得到一个超越方程:
f(x)= A*10^(m*x/(x+Tn))-1013*0.000662*(Tdry-T)-Pw
用二分法求解
#include<iostream> #include<cmath> double Pws(double T); double Fps(double T,double RH,const double Td); const double Accu=pow(10.0,-5.0); using namespace std; int main() { double a,b,R; double c=0.0; do { cout<<"输入干球温度:\n"; cin>>a; if(a<0||a>100) cout<<"干球应该在0到100之间,请重新输入:\n"; } while(!cin||a<0||a>100); do { cout<<"输入相对湿度:\n"; cin>>R; if(R<0||R>1) cout<<"相对湿度应该在0和1之间,请重新输入:\n"; } while(!cin||R<0||R>1); const double Td=a; do { b=(a+c)/2.0; if(Fps(a,R,Td)*Fps(b,R,Td)<0) c=b; else if(Fps(c,R,Td)*Fps(b,R,Td)<0) a=b; else break; } while (fabs(Fps(b,R,Td))>Accu); cout<<"湿球温度:"<<b; system("pause"); return 0; } double Pws(double T) { //Pws=A*10^(m*T/(T+Tn)) A=6.089613,m=7.33502,Tn=230.3921 return 6.089613*pow(10.0,7.33502*T/(T+230.3921)); } double Fps(double T,double RH,double Td) { //Pw= Pws(Twet)-1013*0.000662*(Tdry-Twet) return Pws(T)-1013*0.000662*(Td-T)-Pws(Td)*RH; }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/118930.html