第3章基于Simulink的神经网络

  • 格式:ppt
  • 大小:596.50 KB
  • 文档页数:51

下载文档原格式

  / 51
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11
在系统辨识阶段,主要任务是对需要控制的系统建 立神经网络模型;在控制设计阶段,主要使用神经网 络模型来设计(训练)控制器。在本节将要介绍的三 种控制网络结构中,系统辨识阶段是相同的,而控制 设计阶段则各不相同。 对于模型预测控制,系统模型用于预测系统未来的 行为,并且找到最优的算法,用于选择控制输入,以 优化未来的性能。 对于NARMA-L2(反馈线性化)控制,控制器仅仅 是将系统模型进行重整。 对于模型参考控制,控制器是一个神经网络,它被 训练以用于控制系统,使得系统跟踪一个参考模型, 这个神经网络系统模型在控制器训练中起辅助作用。
1) 系统辨识 模型预测的第一步就是训练神经网络未来表示网络 的动态机制。模型输出与神经网络输出之间的预测误 差,用来作为神经网络的训练信号,该过程用图3-11 来表示。
图3-11 训练神经网络
14
神经网络模型利用当前输入和当前输出预测神经未 来输出值。神经网络模型结构如图3-12所示,该网络 可以以批量再线训练。
20
2).建立模型 在 MATLAB神经网络工具箱中提供了这个演示实 例。只需在MATLAB命令窗口中输入命令:predcstr。 就会自动地调用Simulink,并且产生如图3-15所示的 模型窗口。
图3-15 模型窗口
ห้องสมุดไป่ตู้21
其 中 神 经 网 络 预 测 控 制 模 块 ( NN Predctive Controller)和X(2Y) Graph 模块由神经网络模块集 ( Neurai Network Blockset) 中 的 控 制 系 统 模 块 库 (Control Systems)复制而来。 图3-20中的Plant(Continuous Stirred Tank Reactor) 模块包含了搅拌器系统的Simulink模型。双击这个模 块,可以得到具体的Simulink实现,此处将不加以深 入讨论。 NN Predictive Controller模块的Control Signal端连 接到搅拌器系统模型的输入端,同时搅拌器系统模型 的输出端连接到NN Predictive Controller模块的Plant Output端,参考信号连接到NN Predictive Controller模 块的Reference端。
3
1. 传输函数模块库(Transfer Functions) 用鼠标的左键双击Transfer Functions模块库的 图标,便可打开如图3-2所示的传输函数模块库窗 口。传输函数模块库中的任意一个模块都能够接受 一个网络输入向量,并且相应地产生一个输出向量, 这个输出向量的组数和输入向量相同。
y(k d ) N[ y(k ), y(k 1), , y(k n 1), u(k ), u(k 1), , u(k n 1)]
18
1).问题的描述
要讨论的问题基于 一个搅拌器(CSTR), 如图3-14所示。
图3-14 搅拌器
对于这个系统,其动力学模型为:
dh(t ) w1 (t ) w2 (t ) 0.2 h(t ) dt dCb (t ) k1C b (t ) w (t ) w (t ) (C b1 C b (t )) 1 (C b 2 C b (t )) 2 dt h(t ) h(t ) (1 k 2 C b (t )) 2
9
3.2 基于Simulink的神经网络控制系统 神经网络在系统辨识和动态系统控制中已经 得到了非常成功的使用。由于神经网络具有全局逼 近能力,使得其在对非线性系统建模和对一般情况 下的非线性控制器的实现等方而应用的比较普遍。 本节将介绍三种在神经网络工具箱的控制系统模块 (Control Systems)中利用Simulink实现的比较普遍的 神经网络结构,它们常用于预测和控制,并已在 MATLAB对应的神经网络工具箱中给出了实现。
10
这三种神经网络结构分别是: .神经网络模型预测控制(NN Predictive Controller) .反馈线性化控制(NARMA-L2 Controller) .模型参考控制(Model Reference Controller) 使用神经网络进行控制时,通常有两个步骤:系统 辨识和控制设计。
图3-13 预测模型控制的过程
17
2. 模型预测神经网络控制实例分析——搅拌器控 制系统 在 MATLAB神经网络工具箱中实现的神经网 络预测控制器使用了一个非线性系统模型,用于 预测系统未来的性能。接下来这个控制器将计算 控制输入,用于在某个未来的时间区间里优化系 统的性能。进行模型预测控制首先要建立系统的 模型,然后使用控制器来预测未来的性能。下面 将结合 MATLAB神经网络工具箱中提供的一个演 示实例,介绍Simulink中的实现过程。
24
3).系统辨识 在神经网络预测控 制器的窗口中单击 [Plant Identification] 按钮,将产生一个 模型辨识参数设置 窗口(Plant Identification), 用于设置系统辨识 的参数,如图3-17 所示。
图3-17 模型辨识参数设置窗口
25
4).系统仿真 在 Simulink 模 型 窗 口 图 3-15 中 , 首 先 选 择 【Simulation】菜单中的【parameter】命令设置相应 的仿真参数,然后从【Simulation】菜 单中单击【Start】命 令开始仿真。仿真的 过程需要一端时间。 当仿真结束时,将会 显示出系统的输出和 参考信号。如图3-21。
第3章 基于Simulink的 神经网络控制系统
3.1 基于Simulink的神经网络模块 3.2 基于Simulink的三种典型神经网络控制系统
1
3.1 基于Simulink的神经网络模块 神经网络工具箱中提供了一套可在Simulink 中用来建立神经网络的模块,对于在MATLAB工 作空间中建立的网络,也能够使用函数gensim( ) 生成一个相应的Simulink 网络模块。
图3-3 网络输入模块库窗口
5
3. 权值模块库(Weight Functions) 用鼠标的左键双击Weight Functions模块库的图标, 便可打开如图3-4所示的权值模块库窗口。权值模块库 中的每个模块都以一个神经元权值向量作为输入,并 将其与一个输入向量(或者是某一层的输出向量)进 行运算,得到神经元的加权输入值。
图3-5 控制系统模块库窗口
神经网络的控制系统模块库中包含三个控制器和一 个示波器。关于它们的使用方法将在下一节专门介绍。
7
3.1.2 模块的生成 在MATLAB工作空间中,利用函数gensim( ), 能够对一个神经网络生成其模块化描述,从而可 在Simulink中对其进行仿真。gensim( ) 函数的调用 格式为: gensim(net,st ) 其中 第一个参数指定了MATLAB工作空间中需要 生成模块化描述的网络,第二个参数指定了采样 时间,它通常情况下为一正数。如果网络没有与 输入权值或者层中权值相关的延迟,则指定第二 个参数为-1,那么函数gensim( )将生成一个连续采 样的网络。
19
其中 h(t)为液面高度,Cb(t)为产品输出浓度, w1(t)为浓缩液Cb1的输入流速,w2(t)为稀释液Cb2 的输入流速。输入浓度设定为:Cb1=24.9, Cb2=0.1。消耗常量设置为:k1=1,k2=1。 控制的目标是通过调节流速w2(t)来保持产品浓 度。为了简化演示过程,不妨设w1(t)=0.1。在本 例中不考虑液面高度h(t)。
图3-21 输出和参考信号
26
5).数据保存 在图3-17中,利用[Import Data]和[Export Data]命令, 可以将设计好的网络和训练数据保存到工作空间中或 是保存到磁盘文件中。 神经网络预测控制是使用神经网络系统模型来预 测系统未来的行为。优化算法用于确定控制输入,这 个控制输入优化了系统在一个有限时间段里的性能。 系统训练仅仅需要对于静态网络的成批训练算法,当 然,训练速度非常快。控制器不要在线的优化算法, 这就需要比其他控制器更多的计算。
2
3.1.1 模块的设置 在 Simulink 库 浏 览 窗 口 的 Neural Network Blockset节点上,通过单击鼠标右键后,便可打开如 图3-1所示的Neural Network Blockset模块集窗口。
图3-1 Neural Network Blockset模块集
在Neural Network Blockset模块集中包含了四个 模块库,用鼠标的左键双击各个模块库的图标,便可 打开相应的模块库。
图3-2 传输函数模块库窗口
4
2. 网络输入模块库(Net Input Functions) 用鼠标的左键双击Net Input Functions模块库的图标, 便可打开如图3-3所示的网络输入模块库窗口。 网络输入模块库中的每一个模块都能够接受任意数 目的加权输入向量、加权的层输出向量,以及偏值向 量,并且返回一个网络输入向量。
27
3.2.2 反馈线性化控制 1. 反馈线性化控制理论 反馈线性化(NARMA-L2)的中心思想是通过去 掉非线性,将一个非线性系统变换成线性系统。
28
1).辨识NARMA-L2模型 与模型预测控制一样,反馈线性化控制的第一步就是 辨识被控制的系统。通过训练一个神经网络来表示系统 的前向动态机制,在第一步中首先选择一个模型结构以 供使用。一个用来代表一般的离散非线性系统的标准模 型是:非线性自回归移动平均模型(NARMA),用下 式来表示:
8
例3-1 设计一个线性网络,并生成其模块化描述。 定义网络的输入为:X=[1 2 3 4 5],相应的目标为: T=[1 3 5 7 9]。 解 实现以上任务的MATLAB命令为: Ex3_1 结果显示: y= 1 3 5 7 9 可以看出,网络已经正确地解决了问题。 >>gensim(net,-1)
图3-12 神经网络模型结构
15
2) 模型预测 模型预测方法是基于水平后退的方法,神经网络 模型预测在指定时间内预测模型响应。预测使用数 字最优化程序来确定控制信号,通过最优化如下的 性能准则函数:
J [ y r (t j ) y m (t j )] 2 [u (t j 1) u (t j 2)] 2
12
3.2.1 神经网络模型预测控制 1. 模型预测控制理论 神经网络预测控制器是使用非线性神经网络模 型来预测未来模型性能。控制器计算控制输入, 而控制输入在未来一段指定的时间内将最优化模 型性能。模型预测第一步是要建立神经网络模型 (系统辨识);第二步,使用控制器来预测未来 神经网络性能。
13
22
双击NN Predctive Controller模块,将会产生一个神 经网络预测控制器参数设置窗口(Neural Network Predctive Control),如图3-16所示。这个窗口用于 设计模型预测控制器。
图3-16 神经网络模型预测控制器参数设置窗口
23
在这个窗口中,有多项参数可以调整,用于改变 预测控制算法中的有关参数。将鼠标移到相应的位 置,就会出现对这一参数的说明。
图3-4 权值模块库窗口
上面的这些模块需要的权值向量必须定义为列向量。 这是因为Simulink中的信号可以为列向量,但是不能 为矩阵或者行向量。 6
4. 控制系统模块库(Control Systems) 用鼠标的左键双击Control Systems模块库的图标, 便可打开如图3-5所示的控制系统模块库窗口。
j 1 j 1 N2 Nu
式中 N2为预测时域长度;Nu为控制时域长度;u(t) 为控制信号;yr为期望响应,ym为网络模型响应, 为控制量加权系数。
16
图3-13描述了模型预测控制的过程。控制器由神 经网络模型和最优化方块组成,最优化方块确定u (通过最小化J),最优u值作为神经网络模型的输 入,控制器方块可用Simulink实现。