用 Java 编写一个求饱和动力黏度的算法
时间: 2023-09-12 11:05:20 浏览: 48
好的,我会为您提供一个使用 Java 编写的求饱和动力黏度的算法。
在这个算法中,我采用了如下的公式:
$$\mu_s = \mu_{0,s} \exp\left(\frac{\Delta h}{R T}\right)$$
其中,$\mu_s$ 表示饱和动力黏度,$\mu_{0,s}$ 表示饱和摩尔动力黏度,$\Delta h$ 表示蒸发潜热,$R$ 表示气体常数,$T$ 表示温度。
下面是一个使用 Java 实现的饱和动力黏度计算方法:
```java
public class SatDynViscosity {
// 气体常数
private static final double R = 8.314472;
// 临界温度
private static final double Tc = 647.096;
// 临界密度
private static final double rhoc = 322;
// 临界压力
private static final double pc = 22.064;
//计算饱和动力黏度
public static double calc(double T, double P){
// 计算临界压力下的归一化温度和密度
double Tr = T / Tc;
double rhor = rhoc / P;
// 计算熵
double h0 = -0.6979656 * Tr - 0.3988427 * Math.log(Tr) + 1.26613 * Tr * Tr
+ Math.pow(rhor, 0.5) * (0.0601674 * Tr - 0.1189605 * Tr * Tr + 0.1019488 * Math.pow(rhor, 0.5) - 0.0578511 * Tr * Math.pow(rhor, 0.5));
double delta_h = R * T * h0;
// 计算摩尔动力黏度
double mu0 = 2.443221E-5 * Math.pow(T, 1.5) / (T + 120);
double delta_mu = mu0 * Math.pow(Tr, 0.5) / (1 + 3.828318 * (1 - Tr) * Math.exp(-4.5775 * (1 - Tr)));
// 计算饱和摩尔动力黏度
double delta_mu_sat = delta_mu * Math.exp(delta_h / R / T);
// 计算饱和动力黏度
double mu_sat = delta_mu_sat * 28.966 / 1000;
return mu_sat;
}
//测试
public static void main(String[] args) {
double T = 298; // 温度,单位:K
double P = 1.01325; // 压力,单位:MPa
double mu = calc(T, P); // 计算饱和动力黏度
System.out.println("饱和动力黏度为:" + mu + " mPa·s");
}
}
```
在这个算法中,我们首先计算出了临界压力下的归一化温度和密度,然后通过一些公式计算了熵、摩尔动力黏度和饱和摩尔动力黏度。最后,我们将计算出的饱和摩尔动力黏度转换为饱和动力黏度并返回。
其中,我们使用了摩尔质量为 28.966 g/mol 的干空气作为计算的对象,这个值是空气的平均摩尔质量。
在 `main` 方法中,我们给出了一个例子,计算出了在温度为 298 K,压力为 1.01325 MPa 时的饱和动力黏度。
注意:该算法仅适用于干空气的计算,对于其他物质,需要使用该物质的热力学性质进行计算。