基于bp神经网络汽车自动变速器最佳挡位判断(Matlab代码实现)
1 文獻(xiàn)來源
2 運(yùn)行結(jié)果
將1,2,3,4擋的輸出信號(hào)設(shè)為數(shù)字1,2,3,4取l的范圍為[0,5]取alpha的范圍為[0.2] 創(chuàng)建的神經(jīng)網(wǎng)絡(luò)為雙隱層第一層隱含層的神經(jīng)元數(shù)目設(shè)為5第二層隱含層的神經(jīng)元的數(shù)目設(shè)為10訓(xùn)練函數(shù)(學(xué)習(xí)規(guī)則)設(shè)為traingda所有隱含層和輸出層的激活函數(shù)都設(shè)為purelin每次循環(huán)50次,最大循環(huán)次數(shù)500次期望目標(biāo)誤差最小值為0.01 訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)為net.mat 從10.5]×[0.2]中隨機(jī)選取500個(gè)點(diǎn)和其對應(yīng)作為樣本屬性值,再通過函數(shù)fun.m來求出其對應(yīng)的目標(biāo)值用這些樣本點(diǎn)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)
3 參數(shù)設(shè)置
% 網(wǎng)絡(luò)參數(shù)設(shè)置net.layers{1}.transferFcn = 'purelin'; % 第一層隱含層的激活函數(shù)net.layers{2}.transferFcn='purelin';%第二層隱含層的激活函數(shù)net.layers{3}.transferFcn = 'purelin'; % 輸出層的激活函數(shù)net.trainparam.show = 50; % 每次循環(huán)50次net.trainParam.epochs = 500; % 最大循環(huán)500次net.trainparam.goal = 0.01; % 期望目標(biāo)誤差最小值function [target]= fun(input)
%換擋之間的函數(shù)
b=[1 2 3 4];
y=@(x)(x.^3+1);
a=size(input);
target=zeros(1,a(2));
for i=1:a(2)
? ? if input(2,i)>=y((input(1,i))-2)
? ? ? ? target(i)=b(1);
? ? else?
? ? ? ? if input(2,i)>=y((input(1,i))-3)
? ? ? ? ? ? target(i)=b(2);
? ? ? ? else
? ? ? ? ? ? if input(2,i)>=y((input(1,i))-4)
? ? ? ? ? ? ? ? target(i)=b(3);
? ? ? ? ? ? else
? ? ? ? ? ? ? ? target(i)=b(4);
? ? ? ? ? ? end
? ? ? ? end
? ? end
end
end
4 Matlab代碼實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的基于bp神经网络汽车自动变速器最佳挡位判断(Matlab代码实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Coretz可爱手写趣味俏皮字体 for
- 下一篇: java计算机毕业设计酒店订房系统源程序