|
@@ -49,11 +49,44 @@ def calculate_defrost_time(w, data):
|
|
|
return t_total
|
|
|
|
|
|
|
|
|
+def calculate_jt_time(w, data):
|
|
|
+ # 提取参数
|
|
|
+ m_ice = data.get("m_coal") * w # 冰的质量 (kg)
|
|
|
+ c_ice = data.get("C_ice") # 冰的比热容 (J/kg·K)
|
|
|
+ delta_T_initial = data.get("delta_T_initial") # 初始温差 (K)
|
|
|
+ L = data.get("L") # 冰的熔化潜热 (J/kg)
|
|
|
+ m_coke = data.get("m_coal") - m_ice # 焦炭质量 (kg)
|
|
|
+ c_coke = data.get("C_coal") # 焦炭的比热容 (J/kg·K)
|
|
|
+ h = data.get("h") # 对流换热系数 (W/m²·K)
|
|
|
+ a, b, c = data['a'], data['b'], data['c'] # 车厢的尺寸(长、宽、高)
|
|
|
+ A = 2 * (a * b) + 2 * (b * c) + 2 * (a * c) # 有效传热面积 (m²)
|
|
|
+ delta_T_heat = data.get("delta_T_heat") # 热风温差 (K)
|
|
|
+
|
|
|
+ # 计算总热量需求
|
|
|
+ Q_ice = m_ice * (c_ice * delta_T_initial + L)
|
|
|
+ Q_coke = m_coke * c_coke * delta_T_initial
|
|
|
+ Q_total = Q_ice + Q_coke
|
|
|
+
|
|
|
+ # 计算总热传递能力
|
|
|
+ Q_transfer = h * A * delta_T_heat
|
|
|
+
|
|
|
+ # 计算时间 (秒)
|
|
|
+ t_seconds = Q_total / Q_transfer
|
|
|
+
|
|
|
+ # 转换为小时
|
|
|
+ t_hours = t_seconds / 3600
|
|
|
+
|
|
|
+ return t_hours
|
|
|
+
|
|
|
+
|
|
|
# 反推函数
|
|
|
def reverse_calculate(time, data):
|
|
|
def objective_function(vars):
|
|
|
w = vars
|
|
|
- calculated_time = calculate_defrost_time(w, data)
|
|
|
+ if data.get("meterial_type") == 1:
|
|
|
+ calculated_time = calculate_defrost_time(w, data)
|
|
|
+ else:
|
|
|
+ calculated_time = calculate_jt_time(w, data)
|
|
|
return abs(calculated_time - time)
|
|
|
|
|
|
bounds = [(0.1, 0.5)] # 含水量和初始温度的范围
|
|
@@ -76,12 +109,14 @@ def reverse_calculate(time, data):
|
|
|
def handle_request():
|
|
|
try:
|
|
|
data = request.get_json()
|
|
|
+ qq = data.get("meterial_type");
|
|
|
+ print(f"算法区分{qq}")
|
|
|
time = float(data['realThawTime'])
|
|
|
w_result = reverse_calculate(time, data)
|
|
|
print(f"实际用时{time}")
|
|
|
- print(f"含水量{round(w_result, 4) * 100}")
|
|
|
+ print(f"含水量{round(w_result * 100, 2)}")
|
|
|
return jsonify({
|
|
|
- "water_content": round(w_result, 4) * 100
|
|
|
+ "water_content": round(w_result * 100, 2)
|
|
|
})
|
|
|
except Exception as e:
|
|
|
return jsonify({"error": str(e)}), 400
|