超临界机组协调控制系统建模项目开发笔记
项目概述
本项目基于两篇论文的方法,对超临界机组协调控制系统进行数据驱动建模。主要使用LSTM+Transformer混合架构,实现对主蒸汽压力(Pst)、分离器蒸汽焓值(hm)和机组负荷(Ne)的预测。同时,通过消融实验比较不同模型架构的性能,并使用领域自适应方法解决不同季节数据之间的差异问题。
数据集分析
数据集来源于论文"A dynamic nonlinear model for a wide-load range operation of ultra-supercritical once-through boiler-turbine units"的补充材料,包含三组不同工况下的机组运行数据:
- 常规升负荷
- 常规降负荷
- 快速降负荷
数据集中的主要变量包括:
- 输入变量:燃料流量(uB)、给水流量(Dfw)、汽轮机阀门开度(ut)
- 输出变量:主蒸汽压力(Pst)、分离器蒸汽焓值(hm)、机组负荷(Ne)
注意:原始论文中使用的是分离器蒸汽温度(T),但在本数据集中使用分离器蒸汽焓值(hm)代替。
开发过程
1. 数据处理
- 读取Excel文件中的三组数据
- 数据清洗:处理缺失值、异常值
- 数据归一化:使用MinMaxScaler将数据缩放到[0,1]区间
- 时间序列数据准备:使用滑动窗口方法创建序列数据
- 训练集和测试集分割:按80%/20%比例分割
2. 模型设计
设计了LSTM+Transformer混合模型架构:
- LSTM部分:捕捉时间序列的长期依赖关系
- Transformer部分:通过自注意力机制捕捉变量间的复杂关系
- 输出层:分别预测三个输出变量
模型架构的主要特点:
- 多输入多输出结构
- 残差连接和层归一化
- 多头自注意力机制
- 分离的输出预测头
3. 消融实验
设计了三种模型配置进行比较:
- 仅使用LSTM
- 仅使用Transformer
- LSTM+Transformer混合模型
比较指标:
- 均方误差(MSE)
- 平均绝对误差(MAE)
- 训练时间
4. 领域自适应
为解决不同季节数据之间的差异问题,实现了领域自适应方法:
- 使用第一组数据作为源域训练基础模型
- 使用其他组数据作为目标域进行模型微调
- 比较适应前后的模型性能
调试笔记
数据处理阶段
-
问题:Excel文件读取缓慢
解决方案:使用pandas的chunk读取方式,分批次处理大型Excel文件 -
问题:数据中存在异常值和缺失值
解决方案:使用统计方法检测异常值,对缺失值进行插值处理 -
问题:时间序列数据准备时内存占用过大
解决方案:优化滑动窗口实现,减少中间数据的存储
模型训练阶段
-
问题:模型训练时出现梯度爆炸
解决方案:- 使用梯度裁剪
- 降低学习率
- 添加BatchNormalization层
-
问题:模型容易过拟合
解决方案:- 增加Dropout层
- 使用早停策略
- 添加L2正则化
-
问题:多输出模型的损失函数选择
解决方案:对每个输出使用单独的MSE损失,然后求和作为总损失 -
问题:Transformer部分参数调优困难
解决方案:- 从较小的头数和维度开始
- 逐步增加复杂度
- 使用学习率调度器
领域自适应阶段
-
问题:源域和目标域数据分布差异较大
解决方案:- 使用较小的学习率进行微调
- 引入伪标签方法
- 混合源域和目标域数据进行训练
-
问题:适应过程中出现灾难性遗忘
解决方案:- 保留部分源域数据进行混合训练
- 使用弹性权重整合(EWC)方法保留关键参数
-
问题:不同季节数据的特征重要性不同
解决方案:- 实现特征重要性分析
- 对重要特征赋予更高的权重
性能优化
-
内存优化:
- 使用生成器处理大型数据集
- 及时释放不再使用的中间变量
-
计算优化:
- 使用tf.function装饰器加速训练
- 批处理数据预处理操作
- 使用混合精度训练
-
模型优化:
- 模型剪枝减少参数量
- 知识蒸馏压缩模型
项目总结
符合要求的部分
- 三个单输出预测对比图:成功实现了主蒸汽压力(Pst)、分离器蒸汽焓值(hm)和机组负荷(Ne)三个输出变量的预测值与真实值对比图,以及误差分析图。
- LSTM+Transformer混合架构:按照要求实现了LSTM+Transformer混合模型架构,充分利用了LSTM捕捉时序依赖和Transformer捕捉变量间关系的优势。
- 消融实验:完成了LSTM+Transformer混合模型、仅LSTM模型和仅Transformer模型的对比实验,生成了MAE、MSE和训练时间的比较图表,验证了混合模型的优越性。
- 领域自适应:针对不同季节(不同工况)的数据,实现了领域自适应方法,作为创新点提高了模型在不同工况下的泛化能力。
- 模型框架文字叙述:提供详细的模型架构文档,包括模型设计思路、参数选择和实现细节。
- 开发笔记和调试笔记:记录开发过程中的关键决策、问题解决方案和调试过程。
不符合要求的部分
- 领域自适应效果不均衡:领域自适应方法对分离器蒸汽焓值(hm)的预测有显著改善(MSE改进82.91%),但对主蒸汽压力(Pst)和机组负荷(Ne)的预测效果反而变差(MSE分别增加111.85%和316.59%)。这表明当前的领域自适应方法对不同变量的适应能力存在差异。
- 模型训练时间较长:完整的模型训练和评估过程耗时较长,特别是在进行消融实验和领域自适应时,可能影响实际应用中的迭代效率。
实际离谱的部分
- 领域自适应负向效果:在Case 1 -> Case 3的领域自适应实验中,主蒸汽压力和机组负荷的预测性能显著下降,MSE增加了100%以上,这与预期的适应效果相反。这可能是因为不同工况下这些变量的变化模式差异过大,简单的领域自适应方法无法有效处理。
- 数据集划分可能存在问题:当前的数据集划分方式可能没有充分考虑时序数据的特性,导致模型在某些工况下的泛化能力有限。
- 模型复杂度与数据规模不匹配:Transformer模型在小数据集上可能存在过拟合风险,这可能是导致某些预测结果不理想的原因之一。
改进建议
- 优化领域自适应方法:考虑为不同输出变量设计专门的适应策略,或采用更复杂的迁移学习方法。
- 数据增强:通过合成数据或数据变换技术扩充训练集,提高模型的泛化能力。
- 模型简化:针对数据规模较小的情况,考虑简化模型结构或采用更适合小数据集的模型架构。
- 特征工程:深入分析不同工况下变量的变化规律,提取更有代表性的特征,提高模型的预测准确性。
- 集成学习:考虑结合多个模型的预测结果,可能会获得更稳定的预测性能。
结论
本项目成功实现了基于LSTM+Transformer混合架构的超临界机组控制系统建模,并通过消融实验验证了混合模型的有效性。领域自适应方法作为创新点,在某些变量的预测上取得了显著效果,但也暴露出了一些问题。这些问题为未来的研究提供了方向,如何在不同工况间实现更有效的知识迁移将是一个值得深入研究的课题。