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

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

1.算法描述

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

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

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

image.png

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

2.仿真效果预览
matlab2022a仿真结果如下:

image.png
image.png
image.png

3.MATLAB核心程序

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; 
相关文章
|
4天前
|
机器学习/深度学习 并行计算 算法
MATLAB|【免费】概率神经网络的分类预测--基于PNN的变压器故障诊断
MATLAB|【免费】概率神经网络的分类预测--基于PNN的变压器故障诊断
|
4天前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
12 0
|
7天前
|
机器学习/深度学习 存储 算法
m基于Yolov2深度学习网络的螺丝检测系统matlab仿真,带GUI界面
MATLAB 2022a中展示了YOLOv2算法的螺丝检测仿真结果,该系统基于深度学习的YOLOv2网络,有效检测和定位图像中的螺丝。YOLOv2通过批标准化、高分辨率分类器等优化实现速度和精度提升。核心代码部分涉及设置训练和测试数据,调整图像大小,加载预训练模型,构建YOLOv2网络并进行训练,最终保存检测器模型。
23 3
|
8天前
|
机器学习/深度学习 算法 数据可视化
基于深度学习网络的鞋子种类识别matlab仿真
使用GoogLeNet深度学习模型在matlab2022a中进行鞋子种类识别,利用Inception模块捕捉多尺度特征,提升分类精度。程序加载预训练模型`gnet.mat`,计算验证集的准确性并随机显示32个样本的预测结果及置信度。
|
8天前
|
机器学习/深度学习 算法
基于深度学习网络的十二生肖图像分类matlab仿真
该内容是关于使用GoogLeNet算法进行十二生肖图像分类的总结。在MATLAB2022a环境下,GoogLeNet通过Inception模块学习高层语义特征,处理不同尺寸的输入。核心程序展示了验证集上部分图像的预测标签和置信度,以4x4网格显示16张图像,每张附带预测类别和概率。
|
9天前
|
机器学习/深度学习 人工智能 算法
【AI 初识】激活函数在神经网络中的作用是什么?
【5月更文挑战第2天】【AI 初识】激活函数在神经网络中的作用是什么?
|
3月前
|
机器学习/深度学习 算法 PyTorch
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
48 0
|
7月前
|
机器学习/深度学习 监控 算法
【tensorflow】连续输入的神经网络模型训练代码
【tensorflow】连续输入的神经网络模型训练代码
|
7月前
|
机器学习/深度学习 存储 自然语言处理
|
3月前
|
机器学习/深度学习 存储 算法
【轻量化:实操】动手实现神经网络中的裁枝操作(附演示代码&yolo系列)
【轻量化:实操】动手实现神经网络中的裁枝操作(附演示代码&yolo系列)
95 1