[예측 모델] MATLAB BP 신경망 기반 모델 최적화 예측 [Matlab 소스 코드 221 포함]

1. 소개

1986 년 Rumelhart와 McCelland가 이끄는 과학자 그룹이 제안한 BP 네트워크 (Back Propagation)는 오류 역 전파 알고리즘으로 훈련 된 다층 피드 포워드 네트워크이며 현재 가장 널리 사용되는 신경망 모델 중 하나입니다. BP 네트워크는 사전에 매핑 관계를 설명하는 수학적 방정식을 공개하지 않고도 많은 입출력 패턴 매핑 관계를 학습하고 저장할 수 있습니다.
인공 신경망 개발 역사상 은닉층의 연결 가중치를 조정하는 효과적인 알고리즘은 오랫동안 발견되지 않았다. BP 알고리즘 (Error Back Propagation Algorithm)이 제안 될 때까지 비선형 연속 함수를 해결하기위한 다층 피드 포워드 신경망의 가중치 조정 문제가 성공적으로 해결되었습니다.

오류 역 전파 알고리즘의 학습 과정 인 BP (Back Propagation) 신경망은 정보의 순 전파와 오류의 역전 파라는 두 가지 프로세스로 구성됩니다. 입력 계층의 각 뉴런은 외부에서 입력 정보를 받아 중간 계층의 각 뉴런으로 전송하는 역할을하고, 중간 계층은 내부 정보 처리 계층이며 정보 변환을 담당합니다. 정보 변경 능력에 대한 요구에 따라 , 중간 계층은 단일 히든 계층 또는 다중 히든 계층 구조로 설계 될 수 있습니다. 마지막 히든 계층은 추가 처리 후 출력 계층에있는 각 뉴런의 정보를 전송하고 학습 순방향 전파 프로세스를 완료하고 출력 계층이 출력합니다. 정보 처리 결과를 외부 세계로 전달합니다. 실제 출력이 예상 출력과 일치하지 않으면 오류 역 전파 단계로 들어갑니다. 오류는 출력 계층을 통과하여 오류 경사 하강 법으로 각 계층의 가중치를 수정 한 다음 계층별로 은닉 계층과 입력 계층으로 다시 전송합니다. 정보의 순방향 전파와 오류의 역 전파가 반복되는 과정은 각 계층의 가중치를 지속적으로 조정하는 과정과 신경망 학습 및 훈련 과정입니다.이 과정은 네트워크 출력의 오류가 줄어들 때까지 계속됩니다. 허용 수준으로 또는 사전 설정되어 있습니다. 설정된 검사 수까지.

BP 신경망 모델 BP 네트워크 모델에는 입력 및 출력 모델, 행동 함수 모델, 오류 계산 모델 및자가 학습 모델이 포함됩니다.
여기에 사진 설명 삽입
여기에 사진 설명 삽입
2 BP 신경망 모델 및 기본 원리
여기에 사진 설명 삽입
3 BP_PID 알고리즘 흐름
여기에 사진 설명 삽입

둘째, 소스 코드

%BP based PID Control
clc,clear,close all
warning off
xite=0.25;  % 学习因子
alfa=0.05;  % 惯量因子
S=1; %Signal type
%NN Structure
IN=4;   % 输入层个数
H=5;    % 隐藏层个数
Out=3;  % 输出层个数
if S==1  %Step Signal
wi=[-0.6394   -0.2696   -0.3756   -0.7023;
    -0.8603   -0.2013   -0.5024   -0.2596;
    -1.0749    0.5543   -1.6820   -0.5437;
    -0.3625   -0.0724   -0.6463   -0.2859;
     0.1425    0.0279   -0.5406   -0.7660];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
   -0.1146 0.2949 0.8352  0.2205  0.4508;
    0.7201 0.4566 0.7672  0.4962  0.3632];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end
 
if S==2  %Sine Signal
wi=[-0.2846    0.2193   -0.5097   -1.0668;
    -0.7484   -0.1210   -0.4708    0.0988;
    -0.7176    0.8297   -1.6000    0.2049;
    -0.0858    0.1925   -0.6346    0.0347;
     0.4358    0.2369   -0.4564   -0.1324];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[1.0438    0.5478    0.8682    0.1446    0.1537;
    0.1716    0.5811    1.1214    0.5067    0.7370;
    1.0063    0.7428    1.0534    0.7824    0.6494];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end

x=[0,0,0];
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
y_1=0;y_2=0;y_3=0;
% 初始化
Oh=zeros(H,1);    %从隐藏层到输出层
I=Oh;             %从输入层到隐藏层
error_2=0;
error_1=0;
 
ts=0.001;
for k=1:1:500
time(k)=k*ts;
if S==1
   rin(k)=1.0;
elseif S==2
   rin(k)=sin(1*2*pi*k*ts);
end
%非线性模型
a(k)=1.2*(1-0.8*exp(-0.1*k));
yout(k)=a(k)*y_1/(1+y_1^2)+u_1;  % 输出

error(k)=rin(k)-yout(k);  % 误差
xi=[rin(k),yout(k),error(k),1];
 
x(1)=error(k)-error_1;
x(2)=error(k);
x(3)=error(k)-2*error_1+error_2;
 
epid=[x(1);x(2);x(3)];
I=xi*wi';
for j=1:1:H
    Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))); %Middle Layer
end
K=wo*Oh;             %Output Layer
for l=1:1:Out
    K(l)=exp(K(l))/(exp(K(l))+exp(-K(l)));        %Getting kp,ki,kd
end
kp(k)=K(1);ki(k)=K(2);kd(k)=K(3);
Kpid=[kp(k),ki(k),kd(k)];
 
du(k)=Kpid*epid;
u(k)=u_1+du(k);
% 饱和限制
if u(k)>=10
   u(k)=10;
end
if u(k)<=-10
   u(k)=-10;
end
 
dyu(k)=sign((yout(k)-y_1)/(u(k)-u_1+0.0000001));
 
%Output layer
for j=1:1:Out
    dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
end
for l=1:1:Out
    delta3(l)=error(k)*dyu(k)*epid(l)*dK(l);
end

세, 실행 결과

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

네, 비고

완전한 코드 또는 쓰기 추가 QQ1564658423 과거 검토
>>>>>>
[예측 모델] matlab 입자 군집을 기반으로 한 lssvm 예측 [Matlab 소스 코드 103 포함]
[lSSVM 예측] matlab 고래 최적화 알고리즘을 기반으로 한 lSSVM 데이터 예측 [Matlab 소스 코드 포함] 104]
[lstm 예측] matlab 고래 최적화 알고리즘 기반 lstm 예측 개선 [Matlab 소스 코드 105 포함]
[SVM 예측] matlab bat 알고리즘 기반 SVM 예측 개선 (1) [Matlab 소스 코드 106 포함]
[ SVM 예측】 matlab grey wolf 알고리즘은 svm 지원 벡터 머신 예측을 최적화하기 위해 [Matlab 소스 코드 107 포함]
[예측 모델] matlab BP 신경망 예측 기반 [Matlab 소스 코드 108 포함]
[lssvm 예측 모델] 박쥐 알고리즘을 기반으로 개선 된 최소 제곱 지원 벡터 머신 lssvm 예측 [Matlab 109 이슈]
[lssvm 예측] 나방 소화 알고리즘 기반의 최소 제곱 지원 벡터 머신 lssvm 예측 개선 [Matlab 110]
[SVM 예측] matlab bat 알고리즘 기반 SVM 예측 개선 (2 개) [Matlab 소스 코드 141 포함 기간]

[Lssvm 예측] matlab 나방 소방 알고리즘을 기반으로하는 벡터 머신 lssvm 예측 개선 [Matlab 소스 코드 142 포함]
[ANN 예측 모델] matlab 차이 알고리즘 기반으로 ANN 네트워크 예측 개선 [Matlab 소스 코드 151 포함]
[예측 모델] matlab RBF 신경망 예측 모델 기반 [Matlab 소스 코드 177주기 포함]
[예측 모델] matlab SVM 회귀 예측 알고리즘 기반으로 주식 동향을 예측 [Matlab 소스 코드 180주기 포함]

추천

출처blog.csdn.net/TIQCmatlab/article/details/113692008