当前位置: 首页 > 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:

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

相关文章:

  • 超声波测距(避障)材质检测
  • GPIO 模拟SPI
  • 【云原生 · Kubernetes】Taint和Toleration(污点和容忍)
  • 10.20复习
  • 自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
  • Pygame实战(一):随机抽位置
  • vue支付项目-APP微信支付功能
  • 新手如何自学python?
  • Java的日期与时间之java.time.ZonedDateTime简介说明
  • Vue整合Markdown组件+SpringBoot文件上传+代码差异对比
  • MySQL高级篇——索引简介
  • C-内存函数(大量图解,函数实现)
  • 【STM32】MDK下的C语言基础
  • web前端面试题附答案041 - 曾经一个百度面试官问我,localStorage可以存对象吗?
  • 【Linux学习】权限
  • 深入了解以太坊
  • CSS实用技巧干货
  • Hexo+码云+git快速搭建免费的静态Blog
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Java多态
  • Laravel核心解读--Facades
  • Median of Two Sorted Arrays
  • react-native 安卓真机环境搭建
  • Redash本地开发环境搭建
  • sessionStorage和localStorage
  • Twitter赢在开放,三年创造奇迹
  • Vue2 SSR 的优化之旅
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 聊聊sentinel的DegradeSlot
  • 入口文件开始,分析Vue源码实现
  • 用Python写一份独特的元宵节祝福
  • 鱼骨图 - 如何绘制?
  • 再次简单明了总结flex布局,一看就懂...
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #微信小程序:微信小程序常见的配置传值
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (NSDate) 时间 (time )比较
  • (zt)最盛行的警世狂言(爆笑)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二十四)Flask之flask-session组件
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (蓝桥杯每日一题)love
  • (四)鸿鹄云架构一服务注册中心
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)Oracle存储过程编写经验和优化措施
  • (转)人的集合论——移山之道
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET使用存储过程实现对数据库的增删改查
  • .NET项目中存在多个web.config文件时的加载顺序
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?