运用BP神经网络预测柴油机的比油耗
2016-02-23周昇
周昇
(南通职业大学机械工程学院,江苏南通226007)
运用BP神经网络预测柴油机的比油耗
周昇
(南通职业大学机械工程学院,江苏南通226007)
比油耗是衡量柴油发动机本身燃油经济性的最重要的指标。对于特定的柴油机,相应的转速、功率、增压器前/后温度、中冷器气压等参数和比油耗是一种输入-输出模式映射关系,这个映射关系很难建立相应的数学模型。而神经网络是一个具有普遍适应性的函数逼近器,所以建立合适的BP神经网络,用已知的样本数据训练此网络,就可以预测柴油机的比油耗。
柴油机;比油耗;MATLAB;BP神经网络;预测
1问题描述[1][2]
柴油机的比油耗,即柴油机燃油消耗率,指柴油发动机每发出1 kW有效功率,在1 h内所消耗的燃油质量(以g为单位),单位为g/(kW·h)。比油耗是衡量柴油机发动机本身燃油经济性的最重要的指标。很明显,比油耗越低,经济性越好。对于特定的柴油机,如表1所示,相应的转速、功率、增压器前/后温度、中冷器气压等参数和比油耗是一种输入-输出模式映射关系,这个映射关系很难建立相应的数学模型。而神经网络是一个具有普遍适应性的函数逼近器,本文通过建立合适的BP神经网络,用已知的样本数据训练此网络,运用此网络来预测柴油机的比油耗。
表1 柴油机性能参数
2运用BP神经网络预测柴油机的比油耗的原理和步骤[3][4]
BP(Back Propagation)神经网络算法的主要原理是,对于n个输入学习样本[p1,p2,…,xn],已知与其对应的m个输出样本为[t1,t2,…,tm]。用网络的实际输出值[z1,z2,…,zm]与已知的输出样本[t1,t2,…,tm]之间的误差来不断调整网络的权值和阈值,使网络的误差平方和最小。最后使得[z1,z2,…,zm]和[t1,t2,…,tm]的值尽量接近,直到它们之间的差值小于允许的数。然后就可以使用此网络预测未知的输出。
可以用表1中的转速、功率、增压器前/后温度、中冷器气压作为输入学习样本,比油耗作为输出学习样本。预测首尾数据时,误差比较大,中间数据比较准确。把表1中序号为6的一行数据不放到学习样本中。构建一个3层BP神经网络预测柴油机的比油耗,输入层的结点数为3个,隐含层结点数为8,隐含层的激活函数为“tansig”,输出层节点数为2个,输出层的激活函数为“purelin”。神经网络模型如图1所示。
图1 神经网络模型
3运用MATLAB求解的程序[3]
%%运用BP网络预测柴油机的比油耗
%%清空环境变量
clear all;%清除所有变量
close all;%清图
clc;%清屏
%%训练集/测试集产生
%导入柴油机数据
load Dieselenginedata.mat
%输入数据矩阵
P=Dieselenginedata(:,1:end-1)';
%目标数据矩阵
T=Dieselenginedata(:,end)';
TEMP=T;
%原始样本归一化
[P,minp,maxp,T,mint,maxt]=premnmx(P,T);
%用矩阵的10个数据作为训练样本
TT=[1;2;3;4;5;7;8;9;10;11];%排除6
P_train=P(:,TT);
T_train=T(:,TT);
%用矩阵的全部数据作为测试样本
P_test=P;
T_test=T;
N=size(P_test,2);
%%BP神经网络创建、训练及仿真测试
%创建一个新的前向神经网络
net=newff(minmax(P),[8,1],{'tansig','purelin'},'traingdx');
%设置训练参数
net.trainParam.lr=0.03;%学习率
net.trainParam.epochs=500;%最大迭代次数
net.trainParam.goal=1e-3;%目标误差
%调用TRAINGDM算法训练BP网络
[net,tr]=train(net,P_train,T_train);
%仿真测试
A=sim(net,P_test);
T_sim_bp=postmnmx(A,mint,maxt);
%%绘图
figure
plot(1:N,TEMP,'b:*',1:N,T_sim_bp,'r-o')
legend('真实值','预测值')
xlabel('预测样本')
ylabel('比油耗')
string={'比油耗预测结果对比'};
title(string)
4运行结果和分析
如图2可见,运行源程序后得到第6点的预测比油耗为226.4,真实值为228.1,误差为(228.1-226.4)/228.1=0.0075,预测还是非常准确的,其余各点的偏差也较小。以上所述表明运用BP神经网络预测柴油机的比油耗是比较适宜的。
图2 比油耗预测结果
[1]包子阳.智能优化算法及其MATLAB实例[M].北京:电子工业出版社,2016:165-177.
[2]秦大同.柴油发动机系统设计[M].上海:上海科学技术文献出版社,2015:61-70.
[3]陈明.MATLAB神经网络与实例精解[M].北京:清华大学出版社,2016:156-191.
[4]郁磊.MATLAB智能算法30个案例分析[M].北京:北京航空航天大学出版社,2015:237-246.
MultiObjective Optim ization Design of SmallPlaner Mechanism Based on MATLAB
ZHOU Sheng
(School of Mechanical Engineering,Nantong Vocational College,Nantong Jiangsu 226007,China)
Fuel consumption is one of the most important indicators to measure the fuel economy of diesel engine itself.Specific to the diesel engine,the corresponding speed,power,turbocharger before/after cooler temperature,pressure and other parameters and specific fuel consumption is an input-outputmodelmapping,thismapping is difficult to establish the corresponding mathematical model.The neural network is a universal adaptive function approximation,so the establishment of a suitable BP neural network,with the known sample data to train the network,you can predict the diesel engine than the fuel consumption.
diesel engine;fuel consumption;MATLAB;BP neural network;prediction
TP183
A
1672-545X(2016)12-0192-02
2016-09-27
南通市科技公共服务平台“数字化设计与制造技术服务平台”(CP22013002)
周昇(1964-),男,江苏南通人,本科,讲师,主要研究方向为机械CAD/CAM/CAE。