当前位置: 首页 > news >正文

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

目录

1.算法概述

2.部分程序

3.算法部分仿真结果图

4.完整程序获取


1.算法概述

      神经控制器在在实时控制系统中起着“大脑”的作用。神经网络具有自学习和自适应等智能特点,因而非常适用于控制器设计。对于复杂非线性系统,神经控制器所取得的控制效果往往明显优于常规控制器。近年来,神经控制器在工业、航空及机器人等领域控制系统的应用中已经取得许多成就。

       神经控制器与古典控制器和现代控制器相比,有优点也有缺点。
       优点是神经控制器的设计与被控制对象的数学模型无关,这是神经控制器的最大优点,也是神经网络能够在自动控制中立足的根本原因。
       缺点是神经网络需要在线或离线开展学习训练,并利用训练结果进行系统设计。这种训练在很大程度上依赖训练样本的准确性,而训练样本的选取依旧带有人为的因素。

      模型预测控制的第一阶段是训练神经网络来表示被控对象的前向动态。被控对象输出和神经网络输出之间的预测误差用作神经网络训练信号。该过程如下图所示:

      神经网络被控对象模型使用先前的输入和先前的被控对象输出来预测被控对象输出的将来值。下图给出了神经网络被控对象模型的结构。 

2.部分程序

..................................................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; .......................................

3.算法部分仿真结果图

 

 A150

4.完整程序获取

使用版本matlab2022a

解压密码:C+123456

获得方式1(面包多下载):

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

获取方式2:

如果下载链接失效,加博主微信,或私信。

相关文章:

  • 我们简单的new了一个对象,JVM都做了哪些贡献?
  • 大学排行榜 : qs全球世界 大学排行榜
  • 解决使用`npm install`或`npm i`命令之后报`Unexpected token in JSON at position`错误的问题
  • v4l2解码调用流程
  • 【算法】妙不可言---贪心算法
  • linux下使用apache+svn+ssl配置安全版本控制平台
  • JVM-内存结构