clc;
clear;
close all;
K=1;
T=10;
Ts=2;
ks=0.707;
num=K;
den=[T^2,2*ks*T,1];
G=tf(num,den)
Gd=c2d(G,Ts)
[numd,dend]=c2dm(num,den,Ts)
alldatanum=1000;
traindatanum=500;
testdatanum=500;
u=rands(1,alldatanum+10);
y=zeros(1,alldatanum+10);
for i=3:alldatanum+2
y=dlsim(numd,dend,u);
end
alldatain=[];
alldataout=[];
for i=3:alldatanum+2
newin=[u(i-1);y(i-1);u(i-2);y(i-2)];
alldatain=[alldatain newin];
alldataout=[alldataout y(i)];
end
traindatain=alldatain(:,1:traindatanum);
traindataout=alldataout(:,1:traindatanum);
testdatain=alldatain(:,traindatanum+1:alldatanum);
testdataout=alldataout(:,traindatanum+1:alldatanum);
figure
hold on
grid
j=traindatanum+1:alldatanum
plot(j,testdatain,'k-')
xlabel('input t');
ylabel('output u');
figure
hold on
grid
j=traindatanum+1:alldatanum
plot(j,testdataout,'b-')
xlabel('input t');
ylabel('output y');
indim=4;
outdim=1;
hiddenunitnum=10;
maxepochs=10000;
E0=0.000001;
center=1*rand(indim,hiddenunitnum)-0.5;
sp=0.2*rand(1,hiddenunitnum)+0.1;
w=0.2*rand(1,hiddenunitnum)-0.1;
lrcent=0.001;
lrsp=0.001;
lrw=0.001;
errorhistory=[];
for epoch=1:maxepochs
alldist=dist(center',traindatain);
spmat=repmat(sp',1,traindatanum);
unitout=radbas(alldist./spmat);
netout=w*unitout;
error=traindataout-netout;
SSE=sumsqr(error)
errorhistory=[errorhistory SSE];
if SSE<E0,break,end
for k=1:hiddenunitnum
centgrad=(traindatain-repmat(center(:,k),1,traindatanum))...
*(error.*unitout(k,:)*w(k)/(sp(k)^2))';
spgrad=alldist(k,:).^2*(error.*unitout(k,:)*w(k)/(sp(k)^3))';
wgrad=error*unitout(k,:)';
center(:,k)=center(:,k)+lrcent*centgrad;
sp(k)=sp(k)+lrsp*spgrad;
w(k)=w(k)+lrw*wgrad;
end
end
epoch
testdistance=dist(center',testdatain);
testspreadsmat=repmat(sp',1,testdatanum);
testhiddenunitout=radbas(testdistance./testspreadsmat);
testnnout=w*testhiddenunitout;
plot(j,testnnout,'r-')
figure
hold on
grid
[xx,num]=size(errorhistory);
plot(1:num,errorhistory,'r-');
没有合适的资源?快使用搜索试试~ 我知道了~
可动态调整的神经网络控制器matlab仿真,含仿真操作录像
共5个文件
jpg:3个
m:1个
avi:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 137 浏览量
2022-04-15
19:18:52
上传
评论
收藏 649KB RAR 举报
温馨提示
1.版本:matlab2021a,包含仿真操作录像,操作录像使用windows media player播放。 2.领域:神经网络控制器。 3.内容:可动态调整的神经网络控制器matlab仿真。 spgrad=alldist(k,:).^2*(error.*unitout(k,:)*w(k)/(sp(k)^3))'; wgrad=error*unitout(k,:)'; center(:,k)=center(:,k)+lrcent*centgrad; sp(k)=sp(k)+lrsp*spgrad; w(k)=w(k)+lrw*wgrad; 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
可动态调整的神经网络控制器matlab仿真.rar (5个子文件)
2.jpg 46KB
仿真操作录像0004.avi 43.93MB
1.jpg 66KB
可动态调整的神经网络
Runme.m 2KB
3.jpg 27KB
共 5 条
- 1
资源评论
fpga和matlab
- 粉丝: 15w+
- 资源: 2548
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- Docker在Ubuntu16.04上安装和部署Apache Storm
- test_kong.zip
- springboot权限验证学习-下
- SeetaFace6人脸质量评估C++代码实现Demo
- OCAuxiliaryTools
- 制药公司QC顶岗实习专题报告
- Rust 全面指南:从基础到高级,一网打尽 Rust 的编程知识
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功