1 简介
溶解氧浓度是渔业养殖水质安全的重要指标,也是影响养殖水产品健康的关键因素,对其进行实时监测和预测具有重要意义.溶解氧受环境中pH值等参数影响,针对溶解氧的变化情况该文采用MI_PSO_RBF(互信息_粒子群_RBF神经网络)算法对渔业养殖环境溶解氧含量进行预测,首先采用互信息理论MI降低两个随机变量统计的相关性;然后采用径向基函数RBF神经网络算法对渔业养殖水环境中溶解氧变化趋势进行预测;最后采用粒子群算法PSO对RBF神经网络的模型参数进行优化,并利用该模型对渔业养殖溶解氧变化趋势进行预测.经实验验证表明,多参数远程监测系统稳定性好,基于MI_PSO_RBF的溶解氧预测算法预测效果良好,为渔业养殖提供了良好的参考价值.
2 部分代码
clc;
clear;
tic;
SamNum=100; %训练样本数
TargetSamNum=100; %测试样本数
InDim=1; %样本输入维数
UnitNum=2; %隐节点数
MaxEpoch=1200; %最大训练次数
%E0=0.2; %目标误差
gbesthistory=[];
% 根据目标函数获得样本输入输出(训练样本)
rand('state',sum(100*clock));
%NoiseVar=0.0005;
%Noise=NoiseVar*randn(1,SamNum);
load data1
SamIn=c1';
%SamIn=8*rand(1,SamNum)-4;
SamOutNoNoise=1.1*(1-SamIn+2*SamIn.^2).*exp(-SamIn.^2/2);
%SamOut=SamOutNoNoise+Noise;
end
toc;
% 测试
Center=gbest(1,1:3);
SP=gbest(1,4:6);
W=gbest(1,7:9);
TestDistance=dist(Center',TargetIn);
TesatSpreadsMat=repmat(SP',1,TargetSamNum);
TestHiddenUnitOut=radbas(TestDistance./TesatSpreadsMat);
TestNNOut=W*TestHiddenUnitOut;
Error=TargetOut-TestNNOut;%网络误差
MSE=(sumsqr(Error)/TargetSamNum);
plot(TargetIn,TestNNOut,'r-','linewidth',3)
legend('Real output','APSO-RBF output')
figure
hold on
grid
plot(Error,'k-')
legend('Error')
% 绘制学习误差曲线
figure
hold on
grid
%[xx,Num]=size(errhistory);
plot(mse,'k-');
legend('mse')
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
3 仿真结果
4 参考文献
[1]魏小敏, 张宝峰, 朱均超,等. 基于PSO优化RBF神经网络的溶解氧预测算法研究[J]. 自动化与仪表, 2018, 33(5):4.