1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y5qbmZxw
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
神经控制器在在实时控制系统中起着“大脑”的作用。神经网络具有自学习和自适应等智能特点,因而非常适用于控制器设计。对于复杂非线性系统,神经控制器所取得的控制效果往往明显优于常规控制器。近年来,神经控制器在工业、航空及机器人等领域控制系统的应用中已经取得许多成就。
神经控制器与古典控制器和现代控制器相比,有优点也有缺点。优点是神经控制器的设计与被控制对象的数学模型无关,这是神经控制器的最大优点,也是神经网络能够在自动控制中立足的根本原因。缺点是神经网络需要在线或离线开展学习训练,并利用训练结果进行系统设计。这种训练在很大程度上依赖训练样本的准确性,而训练样本的选取依旧带有人为的因素。
模型预测控制的第一阶段是训练神经网络来表示被控对象的前向动态。被控对象输出和神经网络输出之间的预测误差用作神经网络训练信号。
4.部分源码
..................................................
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;
.......................................
A150