Selaa lähdekoodia

反推含水量

pjf 1 kuukausi sitten
vanhempi
commit
34e0052d93
1 muutettua tiedostoa jossa 38 lisäystä ja 3 poistoa
  1. 38 3
      反推含水量.py

+ 38 - 3
参考.py → 反推含水量.py

@@ -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