1.演算法執行效果圖預覽
(完整程式執行後無水印)
T表示溫度,v表示風速,h表示模型厚度
2.演算法執行軟體版本
matlab2022a
3.部分核心程式
(完整版程式碼包含詳細中文註釋和操作步驟影片)
for i = 1:13; figure; subplot(211); plot(y1{i},'ro'); hold on plot(Train_output1{i},'b'); xlabel('times'); ylabel('水分比'); legend('BP神經網路輸出水分比','實際測量水分比'); title(NAME{i}); grid on subplot(212); plot(y1{i}-Train_output1{i}' ,'b-*'); xlabel('times'); ylabel('水分比誤差'); grid on ylim([-1,1]); end %風速變化顯示 figure; subplot(121); plot(y1{1},'r-o'); hold on plot(y1{2},'b-s'); hold on plot(y1{3},'k-*'); hold on plot(y1{4},'m-^'); hold on xlabel('times'); ylabel('水分比'); legend('T=55,v=0.3,h=3','T=55,v=0.6,h=3','T=55,v=0.9,h=3','T=55,v=1.2,h=3'); grid on title('BP神經網路輸出'); ylim([0,1.2]); subplot(122); plot(Train_output1{1},'r-o'); hold on plot(Train_output1{2},'b-s'); hold on plot(Train_output1{3},'k-*'); hold on plot(Train_output1{4},'m-^'); hold on xlabel('times'); ylabel('水分比'); legend('T=55,v=0.3,h=3','T=55,v=0.6,h=3','T=55,v=0.9,h=3','T=55,v=1.2,h=3'); grid on title('測量值'); grid on ylim([0,1.2]); %厚度變化顯示 figure; subplot(121); plot(y1{5},'r-o'); hold on plot(y1{6},'b-s'); hold on plot(y1{7},'k-*'); hold on plot(y1{8},'m-^'); hold on xlabel('times'); ylabel('水分比'); legend('h=3,T=55,v=0.9','h=6,T=55,v=0.9','h=9,T=55,v=0.9','h=12,T=55,v=0.9'); grid on title('BP神經網路輸出'); ylim([0,1.2]); subplot(122); plot(Train_output1{5},'r-o'); hold on plot(Train_output1{6},'b-s'); hold on plot(Train_output1{7},'k-*'); hold on plot(Train_output1{8},'m-^'); hold on xlabel('times'); ylabel('水分比'); legend('h=3,T=55,v=0.9','h=6,T=55,v=0.9','h=9,T=55,v=0.9','h=12,T=55,v=0.9'); grid on title('測量值'); grid on ylim([0,1.2]); %溫度變化顯示 figure; subplot(121); plot(y1{9},'r-o'); hold on plot(y1{10},'b-s'); hold on plot(y1{11},'k-*'); hold on plot(y1{12},'m-^'); hold on plot(y1{13},'c->'); hold on xlabel('times'); ylabel('水分比'); legend('T=45,v=0.9,h=3','T=55,v=0.9,h=3','T=65,v=0.9,h=3','T=60,v=0.9,h=3','T=50,v=0.9,h=3'); grid on title('BP神經網路輸出'); ylim([0,1.2]); subplot(122); plot(Train_output1{9},'r-o'); hold on plot(Train_output1{10},'b-s'); hold on plot(Train_output1{11},'k-*'); hold on plot(Train_output1{12},'m-^'); hold on plot(Train_output1{13},'c->'); hold on xlabel('times'); ylabel('水分比'); legend('T=45,v=0.9,h=3','T=55,v=0.9,h=3','T=65,v=0.9,h=3','T=60,v=0.9,h=3','T=50,v=0.9,h=3'); grid on title('測量值'); grid on ylim([0,1.2]); 05_060m
4.演算法理論概述
BP(Back Propagation)神經網路是一種常用的前饋神經網路,廣泛應用於模式識別、資料擬合、分類等領域。其核心思想是利用梯度下降法調整網路權值,最小化預測輸出與實際輸出之間的誤差。BP神經網路通常由輸入層、一個或多個隱藏層和輸出層組成。假設有一個單隱藏層的BP神經網路,其結構可以用以下公式表示:
啟用函式用於引入非線性特性,常見的啟用函式包括Sigmoid函式、ReLU函式等。這裡我們以Sigmoid函式為例:
水分含量是農產品出售、貯藏及加工中考慮的重要因素。乾燥是一個複雜的過程,通常涉及到熱量和水分的轉移,即是傳熱傳質。為了對花椒的真空乾燥過程進行直觀的分析,透過繪製乾燥曲線對乾燥過程進行描述,能夠較準確地預測乾燥過程中水分變化規律,國內外學者對物料的乾燥過程進行了建模分析,最先由Lewis在1921年提出了乾燥理論,並建立了Lewis模型,後來的學者在此乾燥理論基礎上衍生了更多的乾燥理論及模型,為實際生產提供理論基礎。
引用BP神經網路對試驗樣本資料對機器進行訓練,能夠對未知的樣本的變化規律進行預測,避免了繁瑣的數學建模。為了探究BP神經網路在花椒真空乾燥過程中的應用效果,使用BP神經網路對花椒真空乾燥過程中物料的水分比變化規律進行預測和模型的建立,驗證BP神經網路模型的應用效果,為乾燥理論的研究提供可靠的依據。
苦瓜生長含水量預測模型
輸入特徵:溫度T、風速V、厚度H等。
輸出:苦瓜的預測含水量。