在 Simulink 中设计神经网络预测控制器

在 Deep Learning Toolbox™ 软件中实现的神经网络预测控制器使用非线性被控对象的神经网络模型来预测被控对象将来的性能。然后,控制器计算控制输入,该控制输入将在指定的将来时间范围内优化被控对象性能。模型预测控制的第一步是确定神经网络被控对象模型(系统识别)。接下来,控制器使用被控对象模型来预测将来的性能。(请参阅 Model Predictive Control Toolbox™ 文档,了解各种模型预测控制策略在线性系统中的应用的完整内容。)

下一节说明系统识别过程。接下来是对优化过程的说明。最后,讨论如何使用在 Simulink® 环境中实现的模型预测控制器模块。系统识别

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

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

该网络可以在批量模式下使用从被控对象运行中采集的数据进行离线训练。您可以使用在多层浅层神经网络与反向传播训练中讨论的任何训练算法进行网络训练。此过程将在以下各节中详细讨论。预测控制

模型预测控制方法基于滚动时域法 [SoHa96]。神经网络模型预测在指定时域内的被控对象响应。数值优化程序使用预测来确定控制信号,该控制信号最小化在指定时域内的以下性能条件

J=∑j=N1N2(yr(t+j)−ym(t+j))2+ρ∑j=1Nu(u′(t+j−1)−u′(t+j−2))2

其中,N1、N2 和 Nu 定义计算跟踪误差和控制增量的时域。u′ 变量是暂定控制信号,yr 是期望响应,ym 是网络模型响应。ρ 值决定控制增量的平方和对性能指数的贡献。

以下模块图说明模型预测控制过程。控制器由神经网络被控对象模型和优化模块组成。优化模块确定最小化 J 的 u′ 的值,然后将最佳 u 值输入被控对象。控制器模块在 Simulink 中实现,如下节中所述。

使用神经网络预测控制器模块

本节说明如何使用 NN Predictive Controller 模块。第一步是将 Deep Learning Toolbox 模块库中的 NN Predictive Controller 模块复制到 Simulink Editor 中。如果您不确定如何操作,请参阅 Simulink 文档。在以下示例中跳过此步骤。

Deep Learning Toolbox 软件附带示例模型,以说明如何使用预测控制器。此示例使用具有催化作用的连续搅拌釜反应器 (CSTR)。下图显示过程图。

系统的动态模型是

dh(t)dt=w1(t)+w2(t)−0.2h(t)dCb(t)dt=(Cb1−Cb(t))w1(t)h(t)+(Cb2−Cb(t))w2(t)h(t)−k1Cb(t)(1+k2Cb(t))2

其中,h(t) 是液面,Cb(t) 是处理过程输出的产品浓度,w1(t) 是浓缩进料 Cb1 的流速,w2(t) 是稀释进料 Cb2 的流速。输入浓度设置为 Cb1 = 24.9,Cb2 = 0.1。与消耗速率相关联的常量是 k1 = 1 和 k2 = 1。

控制器的目标是通过调节流量 w1(t) 来保持产品浓度。为了简化示例,请将 w2(t) 设置为 0.1。在本试验中,水箱 h(t) 的液位不受控制。

要运行此示例,请执行下列步骤:

启动 MATLAB®。

在 MATLAB 命令行窗口中键入 predcstr。该命令打开 Simulink Editor 并显示以下模型。

Plant 模块包含 Simulink CSTR 被控对象模型。NN Predictive Controller 模块信号的连接如下:

Control Signal 连接到 Plant 模型的输入。

Plant Output 信号连接到 Plant 模块输出。

Reference 连接到 Random Reference 信号。

双击 NN Predictive Controller 模块。这将打开以下用于设计模型预测控制器的窗口。此窗口使您能够更改控制器时域 N2 和 Nu。(N1 固定为 1。)前面所述的加权参数 ρ 也在此窗口中定义。参数 α 用于控制优化。它决定性能降低多少才算一个成功的优化步。您可以选择优化算法使用哪个线性最小化例程,还可以决定在每个采样时间内执行优化算法的迭代次数。这些线性最小化例程是基于多层浅层神经网络与反向传播训练中所述的那些例程进行了稍微修改的版本。

选择 Plant Identification。这将打开以下窗口。您必须开发神经网络被控对象模型,才能使用控制器。被控对象模型预测将来的被控对象输出。优化算法使用这些预测来确定用于优化将来性能的控制输入。如前所示,被控对象模型神经网络有一个隐含层。您可以在此窗口中选择该层的大小、延迟输入和延迟输出的数目以及训练函数。您可以选择多层浅层神经网络与反向传播训练中所述的任何训练函数来训练神经网络被控对象模型。

点击 Generate Training Data。 该计划通过将一系列随机阶跃输入应用于 Simulink 被控对象模型来生成训练数据。然后,潜在的训练数据将显示在与以下类似的图窗中。

点击 Accept Data,然后点击 Plant Identification 窗口中的 Train Network。被控对象模型训练开始。训练将根据您选择的训练算法(在本例中为 trainlm)进行。这是批量训练的简单应用,如多层浅层神经网络与反向传播训练中所述。训练完成后,将显示生成的被控对象模型的响应,如以下图窗中所示。(如果存在验证数据和测试数据,也会分别有单独的图。)

然后,您可以通过再次选择 Train Network 继续使用相同的数据集进行训练,您可以选择 Erase Generated Data 并生成新数据集,也可以接受当前被控对象模型并开始仿真闭环系统。对于此示例,开始仿真,如以下步骤所示。

在 Plant Identification 窗口中选择 OK。这会将经过训练的神经网络被控对象模型加载到 NN Predictive Controller 模块中。

在 Neural Network Predictive Control 窗口中选择 OK。这会将控制器参数加载到 NN Predictive Controller 模块中。

返回 Simulink Editor,选择菜单选项 Simulation > Run 开始仿真。当仿真运行时,显示被控对象输出和参考信号,如以下图窗中所示。

滚动时域控制 matlab,在 Simulink 中设计神经网络预测控制器相关推荐

  1. 滚动时域控制 matlab,面向动态避障的智能汽车滚动时域路径规划

    [1] 乔维高,徐学进.无人驾驶汽车的发展现状及方向[J].上海汽车,2007(7):40-43.QIAO Wei-gao, XU Xue-jin. Development Status and Di ...

  2. matlab 向量_COMSOL与MATLAB联合仿真+RBF神经网络预测输出

    数值仿真软件 COMSOL 一是款功能强大的多物理场仿真软件,包含电磁学.流体流动等领域,可以解决电阻抗成像的正问题.这里简单给大家介绍一个电阻抗成像数值仿真的案例: 1. 首先,打开软件新建一个空白 ...

  3. bp神经网络pid控制_文章推荐 | BP神经网络PID控制器在无人机编队飞行中的应用...

    中文摘要: 无人机编队飞行可以大幅提高作战效率,因而受到了越来越多的关注.从近距离编队出发,采用长机-僚机编队结构,设计一种基于BP神经网络参数整定的PID控制器,并以双机菱形编队为基础,对其进行仿真 ...

  4. 神经网络pid控制器MATLAB,BP神经网络PID控制器的Simulink 仿真模型搭建教程

    BP网络在人工神经网络中应用最为广泛,文中给出基于MATLAB语言的BP神经网络PID控制器的S函数实现,在此基础上建立BP神经网络PID控制器的Simulink 仿真模型,最后给出了该仿真模型应用在 ...

  5. 倒立摆的数学模型,matlab程序,simulink,c语言控制,一级倒立摆的控制设计

    本论文主要研究内容 倒立摆装置被公认为自动控制理论中的典型试验设备,也是控制理论教学和科研中不可多得的典型物理模型.本论文的研究旨在完成这样一系列工作: 介绍倒立摆系统控制的研究发展过程和现状:研究单 ...

  6. 空间机械臂Matlab/Simulink仿真程序自由漂浮空间机械臂(双臂)轨迹跟踪控制matlab仿真程序

    空间机械臂Matlab/Simulink仿真程序自由漂浮空间机械臂(双臂)轨迹跟踪控制matlab仿真程序,含空间机器人动力学模型,PD控制程序,带仿真结果,可供二次开发学习 ID:672006146 ...

  7. 光伏发电极其并网控制matlab simulink仿真文件,最大功率点跟踪采用扰动观察法

    光伏发电极其并网控制matlab simulink仿真文件,最大功率点跟踪采用扰动观察法,有定步长和变步长两种,调节boost电路占空比控制输出电压,电压电流双闭环控制,控制方式采用spwm控制,能很 ...

  8. 两级三相光伏并网逆变器控制Matlab/Simulink仿真模型,逆变器为基于母线电压双闭环控制

    两级三相光伏并网逆变器控制Matlab/Simulink仿真模型,逆变器为基于母线电压双闭环控制,采用 lcl滤波,spwm控制,mppt控制有扰动观察法和电导增量法 ID:2230671904463 ...

  9. 如何在matlab中建立pid神经网络,神经网络PID控制及其Matlab仿真

    神经网络P ID 控制及其Ma tlab 仿真 曾 军, 方厚辉 (湖南大学电气与信息工程学院 湖南长沙 410082) 摘 要: 讨论了基于神经网络的P ID 控制, 并将其作用于工业控制, 利用神 ...

最新文章

  1. 2016阅读总结——我的问题就是读书太少
  2. Oracle-数据泵expdp/impdp实操
  3. oracle10g rman备份有效性,验证RMAN备份的有效性
  4. php中MySQL数据库导入与导出_Mysql数据库导出和导入
  5. as本地仓库更改_将gitee仓库连接GitHub Desktop。新建更改仓库并上传至gitee。
  6. s5pv210——时钟系统
  7. ICML2020 | 一行代码就能实现的测试集上分技巧
  8. 全面深入介绍C++字符串:string类
  9. tomcat端口被占用了怎么办
  10. 〖Demo〗-- 模拟登录
  11. 下列哪个工具可以编译java_SUN-Java认证考试题库
  12. Oracle P6培训系列:12进度计算
  13. 元宇宙8大创业方向:虚拟偶像、数字孪生…
  14. c语言用switch计算税收,求助。。关于用switch编写简易计算器
  15. 正确地使用“respectively“
  16. Ubuntu系统如何屏幕截图
  17. 解密阿里云安全女程序员维棠 、牵尘代码诗! 1
  18. 【2018年的最佳固态硬盘】最好的固态硬盘可以增强你的电脑
  19. 淘宝下单时出现关单提醒
  20. CGAL Cookbook --CGAL简介

热门文章

  1. 在UE5创造一个多山的松树森林场景学习教程
  2. Revit结构2021-2022从零到精通
  3. malloc(0)-malloc 0 字节
  4. Andorid自定义attr的各种坑
  5. 前端js判断上传是否为EXCEL表格问题
  6. Apache转发到Tomcat
  7. 使用logrotate管理nginx日志文件
  8. Request Connection: Remote Server @ 192.229.145.200:80
  9. android Viewpager取消预加载及Fragment方法的学习
  10. 【转】《iOS7 by Tutorials》系列:iOS7的设计精髓(上)