✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
汽油燃烧尾气中含有的硫,烯烃等混合物对环境造成了极大的污染,但企业脱硫降烯的过程也会降低代表企业利润的辛烷值含量.通过数据关联或机理建模,可以刻画化工过程与辛烷值含量的关系,为解决传统的数据关联模型中变量相对较少,机理建模对原料的分析要求高,对过程优化的响应不及时等问题,本文利用Matlab软件,基于粒子群优化算法,通过BP神经网络模型对工厂生产过程中收集的数据进行数据挖掘,建立了辛烷值损失预测模型.最后选择了225个数据样本进行了辛烷值损失预测模型的训练,100个样本用于对辛烷值损失模型进行验证.所构建的模型对目标值的预测具有高度拟合性,较好地解决了相关问题.
⛄ 完整代码
clc;clear all;
% II. 训练集/测试集产生
clc;
clear;
close all;
%产生400个数据的输入与输出
ld=400;
x=rand(2,ld); %0-1
x=(x-0.5)*1.5*2; %-1.5, 1.5
x1=x(1,:);
x2=x(2,:);
F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
%创建RBF径向基网络
net=newrb(x,F);
%产生测试数据
interval=0.1; %步长
[i, j]=meshgrid(-1.5:interval:1.5,-1.5:interval:1.5);%定义i、j的值域
row=size(i); %返回size的尺寸31行31列
%将i,j转换为行向量作为输入数据
tx1=i(:);%将i矩阵转换为列向量
tx1=tx1';
tx2=j(:);%将j矩阵转换为列向量
tx2=tx2';
tx=[tx1;tx2];
%testing
ty=sim(net,tx); %开始测试 测试数据需要是行向量 得到测试结果ty
v=reshape(ty,row); %将输出数据转换为31*31向量 以绘制三维图形
figure
subplot(1,3,2) %一行3列图 的第二个位置
mesh(i,j,v);
zlim([0,60]) %限制Z轴的范围
%plot the original function
interval=0.1;
[x1, x2]=meshgrid(-1.5:interval:1.5);
F = 20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
subplot(1,3,1)
mesh(x1,x2,F);
zlim([0,60])
%plot the error
subplot(1,3,3)
mesh(x1,x2,F-v); %误差图
zlim([0,60])
⛄ 运行结果
⛄ 参考文献
[1]李为民, 邬国英, 林西平. 基于近红外光谱的汽油辛烷值神经网络模型研究[J]. 常州大学学报(自然科学版), 2005, 17(003):16-18.
[2]许美贤, 郑琰, 周若兰,等. 基于BP神经网络和多元线性回归的辛烷值预测.