论文阅读:铁路车辆跨临界 CO₂ 空调系统模型预测控制(MPC)策略

------《The model predictive control strategy of the transcritical CO₂ air conditioning system used in railway vehicles》

Zhang Teng, Feng Cao, Yulong Song†, Jiahang Ren, Gang Bai, Xuebo Pang, Yaling He Applied Thermal Engineering, 2023, 218: 119376

一、研究背景与动机

随着全球碳中和目标推进,铁路车辆热管理面临双重挑战:

环保法规:传统 HFCs 制冷剂被禁用,根据《蒙特利尔议定书》基加利修正案(2016年通过),发达国家自2019年起逐步削减HFCs,到2040年代减少80-85%;发展中国家自2024年起冻结生产,并逐步禁用GWP值高于2500的HFCs。需采用零 ODP、低 GWP 的天然工质 CO₂。

宽工况运行 :高铁环境温度、乘客负载、列车速度剧烈变化,传统控制难以兼顾能效舒适性

核心矛盾

传统经验公式仅优化排气压力局部最优

忽略蒸发器空气体积流量(EAVFR,简称qv)、压缩机转速与舱温耦合 → 能效损失、舒适性波动。例如,某高铁在夏季高温(40℃)、满载(80人)工况下,采用传统PID控制时,舱温波动达±2℃,COP较理论最大值低12%。

本文目标:提出多变量模型预测控制(MPC)策略,实现排气压力 + 蒸发器空气体积流量 + 压缩机转速 的全局协同优化,在保证乘客舒适前提下最大化系统 COP。为解决上述传统控制的局限性,本文首先亮出核心创新点与实际意义,继而详述方法与验证。

二、核心创新点(vs 传统控制)

|------|----------------|------------------------------------|
| | 传统控制(经验公式+PID) | MPC控制策略 |
| 优化变量 | 单变量(仅排气压力 pd) | 多变量(pd + qv + 压缩机转速 N) |
| 决策依据 | 离线标定公式 | 在线预测模型 + 滚动优化 |
| 优化目标 | 局部最优 | 全局最优(COP 最大 + 舒适稳定,平均 COP 提升 7.4%) |

三、研究方法

|-------|----------------|-------------|--------|
| 模块 | 输入参数 | 输出参数 | 建模方式 |
| 制冷单元 | 环境温度、送风温度、排气压力 | 制冷系数COP_r | BP神经网络 |
| 压缩机功耗 | 压缩机转速 | 压缩机功耗W_comp | 稳态线性化 |
| 冷量输出 | W_comp、COP_r | 制冷量Q_cool | 热力学计算 |
| 舱室动态 | 通风、透热、人体散热 | 舱温变化 | 物理热平衡 |

3.1 系统组成与信号

系统包括压缩机、气冷器、蒸发器、内部换热器(IHX)、电子膨胀阀(EEV)、分离器、离心风机与车厢热模型。

控制输入:u=[ N,  qv,  pd ]T(压缩机转速、蒸发器空气体积流量、排气压力)。

状态/输出:送风温度 ts、车厢温度 tc,以及能耗量 Wcomp、Wfan、制冷量 Qcool、能效 COPr。

扰动:d=[ ta,  Qrad,  vt,  n ]T(环境温度、太阳辐射、列车速度、乘客数)。

舒适约束:tc∈[tc,min⁡, tc,max⁡](不建模湿度)。

3.2 控制目标

在预测时域内,维持舱温舒适的同时最小化能耗/最大化能效,并限制执行器幅值与变化率。

3.3 灰箱模型

3.3.1 数据驱动子模型

跨临界能效对 呈近似单峰且受 显著影响。构建 BP-NN:

训练数据来自台架/高保真仿真(如 GT-SUITE)在可行域的 DOE 采样。为保证物理一致性,在训练中施加:

  • 正性约束:COP_r>0(输出激活或罚项);

  • 单峰/平滑先验(对 p_d 方向的二阶差分惩罚);

  • 边界趋势先验(高 t_a 时 p_d⋆ 上移的软约束);

  • 可行域屏蔽:对 (t_a,t_s,p_d) 的非法组合加大损失或剔除。

3.3.2 执行器功率与制冷量

压缩机与风机功率模型:

压缩机功:

风机功:

制冷量由能效与功耗耦合得到:

3.3.3 送风--舱室热耦合

空气侧换热近似:

变换得:

考虑换热与执行器滞后,给送风温一阶惯性:

车厢热平衡:

离散化(显式欧拉):

3.3.4 模型集成与可微性

离散灰箱预测器:

其中 x=[ts,tc]T。BP-NN 的可微性使得 ∇f,∇g 可由自动微分获得;若采用二次规划求解器,可对 f,g 在工作点局部线性化(SCP):

3.4.5 灰箱结构图解

3.4 MPC 问题表述

3.4.1 目标函数

在预测时域 Np 与控制时域 Nc 内优化:

3.4.2 约束

3.5 符号表(部分)

符号 含义 单位
ta 环境温度 °C
ts 送风温度 °C
tc 车厢温度 °C
pd 排气压力(高侧) MPa
N 压缩机转速 r/min
qv 蒸发器空气体积流量 m³/s
Wcomp 压缩机功率 kW
Wfan 风机功率 kW
Qcool 制冷量 kW
COPr 制冷模式能效(COP) --
Cc 车厢等效热容 kJ/K
U0 围护传热系数 kW/K
kv 渗透/随速换热系数 kW/K
ηrad 太阳得热折减系数 --
ρ,cp 空气密度/定压比热 kg/m³,kJ/(kg·K)
τs 送风一阶时间常数 s

4.代码

复制代码
import numpy as np

def sigmoid(x):
    """Sigmoid激活函数,如Eq. (23)中定义。"""
    return 1 / (1 + np.exp(-x))

def predict_COPr(ta, tsupply, pd, wij, b1, wjm, b2):
    """
    使用BP神经网络预测制冷单元性能系数COPr。
    
    参数:
    - ta: 环境温度 (°C)
    - tsupply: 蒸发器出口空气温度 (°C)
    - pd: 排气压力 (bar)
    - wij: 输入层到隐藏层权重矩阵 (hidden_nodes x 3)
    - b1: 隐藏层偏置向量 (hidden_nodes x 1)
    - wjm: 隐藏层到输出层权重矩阵 (1 x hidden_nodes)
    - b2: 输出层偏置 (标量)
    
    返回:
    - COPr: 预测的制冷单元性能系数
    
    基于Eq. (22): COPr = wjm • f(wij • [ta, tsupply, pd]^T - b1) - b2
    """
    # 输入向量
    inputs = np.array([[ta, tsupply, pd]]).T  # (3 x 1)
    
    # 隐藏层计算
    hidden_input = np.dot(wij, inputs) - b1  # (hidden_nodes x 1)
    hidden_output = sigmoid(hidden_input)    # (hidden_nodes x 1)
    
    # 输出层
    COPr = np.dot(wjm, hidden_output) - b2   # 标量
    
    return COPr.item()  # 返回标量

# 示例使用,占位权重(用论文Appendix C中的实际值替换)
# 注意:论文指出神经网络连接矩阵wjm, wij和阈值b1, b2在Appendix C中。
# 由于文档中未提供Appendix C,我们使用随机占位符进行演示。
# 实际使用时,从论文加载训练好的权重。

hidden_nodes = 5  # 示例;实际数量应匹配训练模型
wij = np.random.randn(hidden_nodes, 3)   # 输入权重 (hidden x 3)
b1 = np.random.randn(hidden_nodes, 1)    # 隐藏偏置
wjm = np.random.randn(1, hidden_nodes)   # 输出权重 (1 x hidden)
b2 = np.array([[0.0]])                   # 输出偏置

# 使用样本工况测试
ta = 35.0        # 环境温度 (°C)
tsupply = 25.0   # 送风温度 (°C)
pd = 100.0       # 排气压力 (bar)

predicted_COPr = predict_COPr(ta, tsupply, pd, wij, b1, wjm, b2)
print(f"预测的COPr (制冷单元): {predicted_COPr:.4f}")

# 可选:批量预测多个工况
def batch_predict_COPr(inputs_array, wij, b1, wjm, b2):
    """
    为多个工况预测COPr。
    inputs_array: (N x 3) 数组,包含[ta, tsupply, pd]
    """
    inputs = inputs_array.T  # (3 x N)
    hidden_input = np.dot(wij, inputs) - b1  # (hidden x N)
    hidden_output = sigmoid(hidden_input)
    COPr_values = np.dot(wjm, hidden_output) - b2  # (1 x N)
    return COPr_values.flatten()

# 示例批量
conditions = np.array([
    [30.0, 24.0, 90.0],
    [35.0, 26.0, 100.0],
    [40.0, 28.0, 110.0]
])
COPr_batch = batch_predict_COPr(conditions, wij, b1, wjm, b2)
print("批量COPr预测:", COPr_batch)

该 BP 神经网络是灰箱模型的核心黑箱部分,负责将复杂非线性制冷过程简化为快速可调用的输入-输出映射,为 MPC 提供实时、准确的未来性能预测。

相关推荐
B站_计算机毕业设计之家2 小时前
深度学习:Yolo水果检测识别系统 深度学习算法 pyqt界面 训练集测试集 深度学习 数据库 大数据 (建议收藏)✅
数据库·人工智能·python·深度学习·算法·yolo·pyqt
骑自行车的码农2 小时前
React SSR 技术实现原理
算法·react.js
盘古开天16662 小时前
深度强化学习算法详解:从理论到实践
算法
Mr.H01273 小时前
快速排序的常见构思
数据结构·算法
mit6.8243 小时前
背包dp|格雷码
算法
rit84324993 小时前
基于MATLAB的PCA+SVM人脸识别系统实现
人工智能·算法
RTC老炮3 小时前
webrtc降噪-NoiseEstimator类源码分析与算法原理
算法·webrtc
不当菜鸡的程序媛5 小时前
Flow Matching|什么是“预测速度场 vt=ε−x”?
人工智能·算法·机器学习
sali-tec5 小时前
C# 基于halcon的视觉工作流-章58-输出点云图
开发语言·人工智能·算法·计算机视觉·c#