资源简介
内容包括:实例,文档分析,设计过程和MATLAB仿真程序。首先利用BP网络对以下非线性系统进行辨识,然后利用模型参考自适应方法,设计NNMARC控制器
代码片段和文件信息
% 2018年11月19日 by zhangyaokun
% BP identification
clear all;
close all;
%% BP网络参数初始化
xite=0.30; %学习速率
alfa=0.05; %动量因子
w2=rands(91); %随机初始化网络权值
w2_1=w2;w2_2=w2_1; %网络结构,4-9-1
w1=rands(49);
w1_1=w1;w1_2=w1;
dw1=0*w1;
I=[000000000]‘;
Iout=[000000000]‘;
FI=[000000000]‘;
%% 训练网络,对非线性系统进行辨识
for count=1:100
x=[0000]‘;%网络的初始输入为0
% x=[000]‘;%网络的初始输入为0
u_1=0;y_1=0;y_2=0;
for k=1:1:500 %使用500个样本点训练数据
time(k)=k;
u(k)=sin(2*pi/3*k) + 1/3*sin(2*pi/6*k);
y(k) = u_1+ y_1 * (2*y_2 + 1) / (1+ y_1^2 + y_2^2); %非线性系统
for j=1:1:9
I(j)=x‘*w1(:j);
% Iout(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));
Iout(j)=1/(1+exp(-I(j))); %网络隐含层输出,使用sigmod函数
end
yn(k)=w2‘*Iout; % 网络的输出层输出
e(k)=y(k)-yn(k); % 辨识误差
%网络权值修正
w2=w2_1+(xite*e(k))*Iout+alfa*(w2_1-w2_2); %反向传播,梯度法算输出层权值修正值
for j=1:1:9
FI(j)=exp(-I(j))/(1+exp(-I(j)))^2; %隐含层网络的导数
% FI(j)=4/((exp(I(j))+exp(-I(j)))^2);
end
for i=1:1:4
for j=1:1:9
dw1(ij)=xite*e(k)*FI(j)*w2(j)*x(i);
end
end
w1=w1_1+dw1+alfa*(w1_1-w1_2);
for j=1:1:9
yu=w2(j)*w1(1j)*FI(j); %Jacobian
end
dyu(k)=yu;
%各参数更新
x(1)=u(k);
x(2)=y(k);
x(3)=y_1;
x(4)=y_2;
w1_2=w1_1;w1_1=w1;
w2_2=w2_1;w2_1=w2;
u_1=u(k);
y_2=y_1;
y_1=y(k);
end
end
%% 网络训练情况曲线显示
figure(1);
plot(timey‘r‘timeyn‘b‘);
xlabel(‘times‘);ylabel(‘y and yn‘);
figure(2);
plot(timee‘r‘);
xlabel(‘times‘);ylabel(‘error‘);
figure(3);
plot(timedyu);
xlabel(‘times‘);ylabel(‘dyu‘);
%% 使用新的数据测试网络
x=[0000]‘; %网络初始输入为0
u_1=0;y_1=0;y_2=0; %系统初始输出输入重新初始化为0
I=[0000000]‘;
Iout=[0000000]‘;
for k=1:1:200 %使用200个样本点
time1(k)=k;
uc(k)=sin(2*pi/4*k) + 1/5*sin(2*pi/7*k); %新的测试函数
% uc(k)=sin(2*pi/3*k*ts) + 1/3*sin(2*pi/6*k*ts);
yc(k) = u_1+ y_1 * (2*y_2 + 1) / (1+ y_1^2 + y_2^2); %非线性系统
for j=1:1:9
I(j)=x‘*w1(:j);
% Iout(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));
Iout(j)=1/(1+exp(-I(j))); %网络隐含层输出,使用sigmod函数
end
ync(k)=w2‘*Iout; % 网络的输出层输出
ec(k)=yc(k)-ync(k); % 辨识误差
%各参数更新
x(1)=uc(k);
x(2)=yc(k);
x(3)=y_1;
x(4)=y_2;
u_1=uc(k);
y_2=y_1;
y_1=yc(k);
end
figure(4);
plot(time1yc‘r‘time1ync‘b‘);
xlabel(‘times‘);ylabel(‘y and yn‘);
figure(5);
plot(time1ec‘r‘);
xlabel(‘times‘);ylabel(‘error‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-04-25 02:21 BP_identification\
文件 7563 2018-12-10 21:35 BP_identification\aaa.mat
文件 41089 2018-12-11 15:40 BP_identification\BP_identification_MRAC.vsdx
文件 77484 2018-12-10 19:52 BP_identification\error.jpg
文件 2983 2018-12-10 17:01 BP_identification\Identification_BP.m
文件 2463 2018-12-11 15:33 BP_identification\Identification_BP_offline.m
文件 52318 2018-12-11 11:24 BP_identification\MRAC-E.jpg
文件 26199 2018-12-11 11:52 BP_identification\MRAC-E1.jpg
文件 53017 2018-12-11 11:24 BP_identification\MRAC-U.jpg
文件 28280 2018-12-11 11:52 BP_identification\MRAC-U1.jpg
文件 72799 2018-12-11 11:24 BP_identification\MRAC-Y.jpg
文件 36841 2018-12-11 11:51 BP_identification\MRAC-Y1.jpg
文件 2437 2018-12-11 14:34 BP_identification\MRAC_BP_offline.m
文件 105888 2018-12-10 19:51 BP_identification\output.jpg
文件 4039 2018-12-10 19:18 BP_identification\testdata.mat
文件 3891 2018-12-10 19:18 BP_identification\traindata.mat
文件 448203 2019-03-12 18:58 神经网络非线性系统辨识与模型参考自适应控制器设计.docx
相关资源
- 基于BP神经网络的语音情感识别系统
- BP神经网络解决手写数字识别问题 m
- rbf神经网络求解机器人的运动学逆解
- BP神经网络实现手写数字识别matlab实现
- matlab神经网络实现数字识别
- 基于MATLAB利用相关分析法辨识脉冲响
- matlab常用代码大全科研神器
- 应用BP神经网络逼近非线性函数
- 科研常用代码预测分类评价
- 基于BP神经网络的无线传感器定位算法
- BP神经网络在隧道基坑工程中的实际运
- RBF神经网络建模与预测(1)
- 利用BP神经网络实现手写体数字识别
- 利用BP神经网络对图像提取的MATLAB代码
- MATLAB神经网络43个案例分析源代码
- 《MATLAB 神经网络30个案例分析》源程
- 长江水质预测2005年数学建模+神经网络
- 基于遗传算法的小波神经网络在股票
-
基于SIMUli
nk的汽车发动机怠速模糊神 - 基于蚁群算法和神经网络匹配算法的
- 《MATLAB 神经网络30个案例分析》所有
- matlab神经网络30个案例分析278234
- 基于MATLAB的车牌识别算法
- 系统辨识大牛Ljung编写的MATLAB系统辨识
- 斯坦福机器学习编程作业machine-learn
- CNN卷积神经网络图像识别matlab
- 神经网络进行手写体验证码识别的代
- Matlab神经网络工具箱使用教程
- 卷积神经网络识别手写数字图像
- 陈继光《Matlab与自适应神经网络模糊
评论
共有 条评论