基于Jess的HVAC系统模拟与控制开发
1. HVAC模拟器的温度模拟
在模拟HVAC(供热、通风与空气调节)系统时, getTemperature
方法是核心。每次调用该方法,根据系统的完整状态,可能会得到不同的温度值。因为温度会受多种因素不断变化,计算建筑物每层温度时,至少要考虑以下四个因素:
- 当前楼层的温度
- 该楼层是否正在加热或冷却
- 通过墙壁从室外泄漏的热量
- 从其他楼层泄漏的热量
为了实现实时模拟,采用一个单独的线程运行循环,持续重新计算温度。利用牛顿冷却定律,即两物体间温差越大,热流越快。计算每层每秒温度变化的合理方法是,计算该楼层当前温度与其他物体(如室外空气或热泵的热空气)的温差,再乘以一个表示实际热传递率的常数(这里选择 0.01)。
以下是具体的代码实现:
package control;
import java.util.Arrays;
public class Simulator implements Hardware {
private final double RATE = 0.01;
private final double HOT = 100, COLD=50;
private double[] m_temperature;
double m_outdoor = 90;
public Simulator(int numberOfFloors) {
//...
m_temperature = new double[num