基于粒子群算法的增压柴油机神经网络模型

2021-06-30 02:15陈昊天王玥曹晶张继忠邓康耀崔毅
车用发动机 2021年3期
关键词:瞬态稳态粒子

陈昊天,王玥,曹晶,张继忠,邓康耀,崔毅

(1.上海交通大学动力机械与工程教育部重点实验室,上海 200240;2.上海核工程研究设计院有限公司,上海 200233;3.中国北方发动机研究所(天津),天津 300400)

随着计算机水平的提升,硬件在环技术(HIL)在发动机控制系统的开发中得到广泛地应用。在HIL系统中,发动机仿真模型是一个重要的组成部分。为了能够有效地实现HIL仿真,发动机仿真模型不仅需要满足一定的精度,还需要满足面向控制的要求,也就是要实现快速计算,满足实时性约束[1-2]。

当前,应用于HIL系统的性能预测模型主要分为以下几种:平均参数模型、曲轴转角精度模型以及基于神经网络的仿真模型[3]。Hendricks首次提出了平均值模型这一概念,不考虑参数在循环内的变化,只考虑循环间的变化,避免了十分复杂的工作过程[4]。虽然平均参数模型计算效率高,但是模型的精度不高,并且需要大量的数据进行标定[5]。曲轴转角精度模型利用微分方程计算参数随曲轴转角的变化,因此精度较高[6]。虽然曲轴转角模型预测能力较强,但是不能完全满足计算速度的要求,尤其是对于高转速的机型[7]。平均参数模型和曲轴转角精度模型无论是基于Simulink建立或者是利用某种编程语言编写,都需要较为复杂的前期开发工作。人工神经网络在处理非线性问题上具有优势,近年来在柴油机动力性、排放性以及性能模型建立等研究中得到广泛的应用[8-10]。神经网络模型是针对具体的发动机对象建立的,其通用性较差,但是在样本满足要求的情况下,神经网络模型的建立和训练较为简单,使用方便。离线模型的计算速度很快,并且方便与Simulink中搭建的或者自主编程开发的控制系统耦合,在面向控制的模型建立问题上可以得到很好的应用。

BP神经网络(Back-Propagation Neural Network)是一种按照误差逆向传播算法训练的多层前馈神经网络[11],在柴油机研究中应用广泛,但是其无法保证得到全局最优解,收敛速度和泛化能力较差,很难满足精度上的需求[12]。因此,近年来对神经网络开展了很多优化算法的研究,比如遗传算法和群体智能算法等[13-14]。群体智能算法鲁棒性较强,并且全局收敛能力好,与BP神经网络结合,可以充分发挥双方的优势。

现有的发动机神经网络模型主要用于分析稳态工况,对瞬态性能的预测精度、训练速度以及泛化能力较差。因此,本研究选择群体智能算法中的粒子群算法(PSO算法),提出了预测柴油机全工况稳态及瞬态性能的通用神经网络模型构建方法,并与传统的BP神经网络方法进行了全面的比较。

1 柴油机神经网络模型的搭建

1.1 训练样本获取

本研究所针对的柴油机为某型涡轮增压中速柴油机,柴油机的具体参数如表1所示。

表1 柴油机主要参数

为了获取神经网络模型的训练样本,在该柴油机上开展了稳态和瞬态试验。稳态试验包括25%,50%,75%,90%,100%,110%六个稳态工况点的柴油机性能数据。瞬态试验主要是变负荷试验,当负荷变化时,转速通过电子调速器进行PID调节。

由于稳态试验下获取的样本数不足以对神经网络模型进行充分的训练,因此基于一维非定常流动计算方法,在发动机性能仿真软件SPEED中建立柴油机计算模型(见图1),并利用试验数据进行校核,结果见图2。

图1 柴油机仿真模型

图2 仿真模型精度校核结果

利用仿真模型进行不同转速、负荷、喷油参数下的计算,变量范围如表2所示,总共获取稳态训练样本300组。瞬态训练样本主要包括定转速下增减负荷导致的参数变动,考虑不同的负荷初值、负荷终值以及变化速率。为了尽可能使得训练样本覆盖运行工况,本研究中瞬态样本负荷变化范围为10%~100%,选择50%负荷作为起始值,变动时间范围为2~30 s,如表3所示,总计42组样本曲线。各个工况的计算时间均为75 s,负荷变化起始时刻均为30 s。

表2 稳态工况变量取值范围

表3 瞬态工况负荷变化范围

1.2 神经网络结构

本研究建立的神经网络模型输入包括转速、喷油量、喷油时刻、喷油量随时间的变化率。前面三个输入可以用于稳态性能模型的建立[14-16],但是为了建立能够对稳态和瞬态性能均可以有效预测的通用神经网络模型,需要将喷油量变化率作为输入,因为在瞬态工况下,负荷的变化加上调速器的PID调节导致喷油的变化,而喷油量变化率对输出参数的变化趋势有重要的影响。稳态工况的训练不考虑喷油量随时间的变化,因此样本中喷油量的变化率为0。瞬态工况的训练主要考虑定转速变负荷,输入参数中主要是喷油量及其变化率在起作用,样本中转速值设为标定转速。

基于神经网络的实时模型主要是面向控制的,输出量主要考虑控制系统需要的主要性能参数,因此本研究选择的模型输出参数为增压压力、缸内最高燃烧压力、排气温度和燃油消耗率。本研究所采用的神经网络为BP神经网络,网络结构见图3。

图3 神经网络结构

除了输入层和输出层外,该网络还包含一层隐藏层,隐藏层的节点数对整个网络的预测效果有十分重要的影响[17]。网络的预测性能主要包括两个指标,训练样本的学习效果以及测试样本的泛化效果,这两个指标是一对矛盾体。隐藏层节点数越多,学习效果越好,但是隐藏层节点过多,容易出现过拟合的现象,导致泛化效果较差[16]。因此,节点数的选取要适当。本研究采用试错法来选择隐藏层的节点数,通过均方误差(MSE)来表征网络的预测效果,不同个数的隐藏层节点下的MSE对比如图4所示(取50次测试结果的平均值)。因此,本研究中选择的模型隐藏层节点个数为10。

图4 不同隐藏层节点下的均方误差对比

1.3 网络训练

本研究使用Matlab中的神经网络工具进行建模,由于输入输出数据在数量级上会有较大的差别,数量级较小的参数对网络权值的影响有可能会被忽略,从而影响网络的训练和预测精度,因此要对样本进行归一化处理。

样本主要分为两部分,训练集和测试集,训练集用于网络的学习,测试集用于验证网络的预测精度。在对本研究建好的网络进行训练时,为了尽可能使样本充分覆盖全工况范围,因此随机取240组稳态试验样本作为训练集,剩下60组作为测试集。

由于瞬态工况关注参数随时间的变化规律,因此网络输入输出均应为连续变化的曲线,如图5所示。在对网络进行训练时,取一定的时间间隔,然后对样本曲线进行取点,输入输出要一一对应,对于每一种工况,输入的排列是有序的,这样可以将模型的输入看作是一条一条的曲线,得到的输出也是曲线。在本研究中,取42组瞬态试验样本作为训练集,测试集选择起点为40%负荷、终点为100%负荷、两阶段增加的瞬态工况样本,如图6所示,第一段经过10 s提升到75%负荷,第二段经过15 s提升到100%负荷。

图5 瞬态工况输入和输出形式

图6 测试集负荷变动

1.4 普通BP网络存在的问题

用上述结构的网络先对训练样本进行学习,然后用测试样本来验证网络的泛化效果。由于BP网络初始权值具有随机性,使得预测效果有所波动,因此取多次训练的最优结果。瞬态和稳态的预测值和样本值的误差如图7和图8所示。在图7中,增压压力瞬态训练的最大误差达到7.89%;在图8中,缸内燃烧压力稳态训练的最大误差达到7.62%。预测效果不佳可能是因为使用简单的BP神经网络会陷入局部最优,导致泛化效果比较差,无法满足精度要求。因此,需要选择合适的算法来对神经网络进行优化。

图7 瞬态训练结果对比

图8 稳态训练结果对比

2 粒子群算法

2.1 基本原理

粒子群算法是一种群智能优化算法,思想来源于对鸟类觅食行为的研究。鸟群在觅食过程中,初始状态下每个个体的位置和方向是随机的,但是在搜寻的过程中,通过个体之间信息的交互,大大提升搜寻的速度和效率[19]。基于此,粒子群算法的思想可以总结为粒子群体以一种随机的初始状态飞行,在每个时刻,每个粒子单独搜寻的最优值称为个体极值,个体极值中的最优值称为全局最优值。通过总结迭代过程中群体的最优值来修正自身的飞行状态,最终搜索到全局的最优解。

2.2 网络优化过程

使用粒子群算法优化BP神经网络(PSO-BP神经网络)就要建立二者之间的关联。优化的目的就在于寻找一组最优的网络权值以及最佳的网络结构,因此用粒子群中每个粒子的位置来表示当前的权值集合,粒子的维度与BP网络的连接权值的数量相对应,通过反复的粒子搜索过程来确定最优权值。

粒子群算法优化BP神经网络主要包括以下几个步骤:

1) 构建粒子群,给各个粒子赋予随机初始速度和位置。

2) 利用当前粒子群各个粒子的位置生成一组权值,构成网络。在网络的训练空间中随机抽取样本作为训练集,然后对网络进行训练。

3) 根据适应度函数计算各个粒子的适应度。适应度用来表征网络的训练误差,然后根据适应度确定本次训练的个体最优值和全局最优值。

4) 如果已经达到最大的训练次数或者全局最优值满足误差界限,则将最优的权值赋予网络,否则更新粒子的状态然后继续全局寻优,粒子状态更新的表达式如下:

Vi(t+1)=ωVi(t)+C1r1(Pi(t)-Xi(t))+
C2r2(Pg(t)-Xi(t)),
Xi(t+1)=Xi(t)+Vi(t+1),
r1=random(0,1),
r2=random(0,1)。

式中:Vi为粒子的速度;Xi为粒子的位置;C1,C2为学习因子;ω为惯性权重;Pi为粒子个体极值;Pg为全局最优值。

优化算法的计算流程如图9所示。

图9 粒子群优化算法计算流程

2.3 PSO-BP神经网络参数选择

对于本研究所构建的PSO-BP神经网络,网络结构保持不变,输入层节点个数为4,隐藏层节点个数为10,输出层节点个数为4。隐藏层选择Sigmoid函数,输出层选择线性函数,最大迭代次数为1 000。

对于粒子群的规模,即粒子群中粒子的个数,如果选取数值过大会导致学习效率降低,因此本研究中粒子群规模为50,粒子群算法的最大迭代次数选择150,粒子的维数为94,学习因子C1,C2取1.5,惯性权重ω取1。

3 PSO-BP神经网络与普通BP神经网络对比

利用粒子群算法对本研究所构建的神经网络模型进行优化,将稳态和瞬态训练样本输入到网络中进行学习,得到具有最优参数的网络结构。用训练好的网络对稳态和瞬态测试样本进行计算,验证PSO-BP神经网络是否能实现更好的预测效果。

本研究中选择决定系数(R2)来表征预测值和试验值之间的相关性[20],从而体现模型的预测性能。决定系数的表达式如下:

式中:X和Y分别对应预测值和训练值。决定系数越大,表示预测值和试验值之间的相关性越好,模型的预测性能越好。

用PSO-BP网络对稳态测试样本进行预测,分别计算增压压力、缸内最高燃烧压力、涡前排温、有效燃油消耗率的决定系数,得到普通BP神经网络和PSO-BP神经网络的预测效果对比,如图10至图13所示。

图10 稳态最高燃烧压力对比

图11 稳态涡前排温对比

图12 稳态增压压力对比

图13 稳态燃油消耗率对比

对于稳态工况,PSO-BP神经网络所有输出变量的预测结果最大误差为4.54%,而普通BP神经网络所有输出变量的预测结果最大误差为8.78%。

对于瞬态工况的预测,输出结果是参数随时间变化的曲线,因此用每一时刻预测结果和训练样本的误差曲线可以较为直观地进行对比。瞬态工况下普通BP神经网络和PSO-BP神经网络的预测效果对比如图14至图17所示。

对于瞬态工况的预测,主要关注的是负荷变化阶段的预测精度。从图中可以看出,PSO-BP神经网络和普通BP神经网络在负荷稳定阶段的预测精度基本相当,但是在负荷变化阶段,普通BP神经网络的预测误差较大,尤其是在负荷变动的时间段,而PSO-BP神经网络的预测精度有较为明显的提升。

图14 瞬态最高燃烧压力对比

图15 瞬态涡前排温对比

图16 瞬态增压压力对比

图17 瞬态燃油消耗率对比

根据上面的分析可知,对于模型的输出(最高燃烧压力、涡前排温、增压压力以及有效燃油消耗率),在稳态工况和瞬态工况下,PSO-BP神经网络模型均可以有效地进行预测,并且与试验数据的相关性要明显优于普通BP神经网络,说明使用粒子群算法可以得到最优的权值和网络结构,避免了局部陷阱。模型多次训练的预测结果波动不明显,说明PSO-BP网络的预测稳定性更好,不需要进行多次训练即可达到最优效果,训练效率更好。

4 结束语

神经网络是建立面向控制模型的一种有效的方法,可以应用在基于模型的控制系统标定工作中,后续可以将本研究的建模方法在实际控制系统的开发中应用。本研究所搭建的通用神经网络结构不仅可以预测发动机的稳态性能,还可以有效预测发动机的瞬态性能,稳态工况最大误差为4.54%,瞬态工况最大误差为4.93%。普通BP神经网络由于不能保证全局最优导致预测精度较差,利用粒子群算法对BP神经网络进行优化,可以得到更优的网络结构,模型的泛化能力可以得到提升,预测结果更加稳定,训练效率更好;对于瞬态样本的预测,PSO-BP神经网络预测精度明显优于普通BP网络。

猜你喜欢
瞬态稳态粒子
组蛋白甲基化修饰复合物COMPASS成员Ash2l通过调控神经祖细胞稳态影响小鼠大脑皮层发育
隔舌安放角对旋流泵内非稳态流动特性的影响
周向拉杆转子瞬态应力分析与启动曲线优化
一维有界区域上单稳态方程多重正解的存在性
一维有界区域上双稳态方程多重正解的存在性
基于开放边界条件的离心泵自吸过程瞬态流动数值模拟
虚拟校园漫游中粒子特效的技术实现
一种用于抗体快速分离的嗜硫纳米粒子的制备及表征
百万千瓦核电机组瞬态工况除氧器压力和水位控制
惯性权重动态调整的混沌粒子群算法