您现在的位置:首页 >> 智能控制 >> 内容

基于神经网络的传递函数控制器matlab实现,神经网络自己编程实现不使用matlab的工具箱

时间:2022/12/26 18:47:59 点击:

  核心提示:A150包括程序操作录像...

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

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168