《控制系统仿真课程设计单神经元PID控制系统仿真》.docx

上传人:b****1 文档编号:465017 上传时间:2022-10-10 格式:DOCX 页数:14 大小:127.75KB
下载 相关 举报
《控制系统仿真课程设计单神经元PID控制系统仿真》.docx_第1页
第1页 / 共14页
《控制系统仿真课程设计单神经元PID控制系统仿真》.docx_第2页
第2页 / 共14页
《控制系统仿真课程设计单神经元PID控制系统仿真》.docx_第3页
第3页 / 共14页
《控制系统仿真课程设计单神经元PID控制系统仿真》.docx_第4页
第4页 / 共14页
《控制系统仿真课程设计单神经元PID控制系统仿真》.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

《控制系统仿真课程设计单神经元PID控制系统仿真》.docx

《《控制系统仿真课程设计单神经元PID控制系统仿真》.docx》由会员分享,可在线阅读,更多相关《《控制系统仿真课程设计单神经元PID控制系统仿真》.docx(14页珍藏版)》请在冰豆网上搜索。

《控制系统仿真课程设计单神经元PID控制系统仿真》.docx

《控制系统仿真课程设计单神经元PID控制系统仿真》

内蒙古科技大学

控制系统仿真课程设计说明书

 

题目:

单神经元PID控制系统仿真

学生姓名:

学号:

专业:

测控技术与仪器

班级:

指导教师:

 

中文摘要

PID控制以其原理简单,可靠性高等优点被广泛应用在现代工业控制领域。

然而在工业实际控制中,被控对象往往还具有高度的非线性,不确定性和参数时变等特点,在这种情况下单纯依靠PID控制是不能达到要求的。

神经网络控制系统作为新兴发展的智能控制系统,能很好地解决上述问题,已经在很多领域得到应用,同时也显示了它的优越性。

单神经元作为构成神经网络的基本单元,具有自学习和自适应能力,且结构简单而易于计算。

基于以上分析,在PID控制中引入单神经元自适应算法,这样既可以解决传统PID控制器的不足,同时又能充分利用PID控制技术成熟的优势。

通过仿真对比发现单神经元自适应PID控制器比传统的PID控制器控制效果好。

 

关键词:

单神经元;自适应PID控制;神经网络;

 

 

第一章前言

1.1引言

人工神经网络ANN(artificialneuralnetwork)是最近发展起来的十分热门的交叉学科。

它涉及生物、电子计算机、数学、和物理等学科,有着非常广泛的应用背景,这门学科的发展对目前和未来的科学技术的发展将有着重要的影响。

以大规模并行处理为主要特征的神经网络具有学习、记忆、联想、容错、并行处理等能力,已在控制领域得到广泛的应用。

基于神经网络的PID控制,其结构方式有两类:

一类是单神经元控制,即神经元输入权值一一对应PID参数,神经元输入值为经过比例、积分、微分处理的偏差值,其主要局限性在于单神经元结构无任意函数逼近能力;另一类是在常规PID控制器的基础上增加一个神经网络模块,按照BP学习算法(如前向算法和反传算法)进行离线学习,实时调整出PID参数,同时还要继续学习不断地调整神经网络中各神经元间权系数,以适应被控对象的变化,因此,具有很强的适应性。

1.2单神经元模型

对人脑神经元进行抽象简化后得到一种称为McCulloch-Pitts模型的人工神经元,如图1.1所示。

图1.1单神经元模型示意图

对于第i个神经元,

是神经元接收到的信息,

为连接强度,称之为权。

利用某种运算把输入信号的作用结合起来,给它们的总效果,称之为“净输入”,用

来表示。

根据不同的运算方式,净输入的表达方式有多种类型,其中最简单的一种是线性加权求和,即式(1-1)。

(1-1)

此作用引起神经元i的状态变化,而神经元i的输出yi是其当前状态的函

数g(•),称之为活化函数(Stateofactivation)。

这样,上述模型的数学表达式为式(1-2)。

(1-2)

式中,

——神经元i的阈值。

1.3MATLAB及SIMULINK简介

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包.Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率.Simulink®是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。

对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。

1.5S函数

S-Function是一个动态系统的计算机语言描述,在MATLAB里,用户可以选择用m文件编写,也可以用c语言或mex文件编写,在这里只介绍如何用m文件编写S-Function。

S-function提供了扩展Simulink模块库的有力工具,它采用一种特定的调用语法,使函数和Simulink解法器进行交互。

S-function最广泛的用途是定制用户自己的Simulink模块。

它的形式十分通用,能够支持连续系统、离散系统和混合系统。

 

第2章控制系统的设计

2.1神经网络自适应控制系统

神经网络在自适应控制中具有突出的优势,它可以通过不断地学习获取有关对象的知识并适应过程的变化。

神经网络模型参考自适应控制和自校正控制在实际应用中均显示出突出的优点。

此外,神经网络的引入还是直接自适应控制得以实现。

图2.1为神经网络直接自适应控制系统框图。

此神经网络采用多层前向网络。

BP训练算法,即按信息正向传递,误差反向传播的学习算法。

这种算法在模式识别,智能控制等许多领域得到广泛应用。

图2.1神经网络直接自适应系统框图

2.2单神经元元自适应PID控制系统

神经元作为构成神经网络的基本单元,具有自学习和自适应的能力,而且结构简单易于计算。

传统的PID调节器也具有结构简单、调整方便和参数整定与工程指标联系密切等特点。

将两者结合,便可以在一定程度上解决传统PID调节器不易在线实时整定参数和难于对一些复杂过程和参数慢时变系统进行有效控的不足。

用神经元实现的自适应PID控制器结构框图如图2.2所示

图2.2单神经元自适应PID控制框图

2.3单神经元PID控制算法

如图2.1,状态转换器的输入反映被控对象及控制设定的状态。

转换器的输出为神经面学习控制所需的状态量,控制信号

由神经元通过关联搜索和自学习产生。

设定输入

为给定值,

为输出值,经状态变换器转换后成为神经元学习控制所需的状态量

这里:

反映了系统误差变化的积累(相当于积分项)

反映了误差的变化(相当于比例项)

反映了误差变化的一阶差分(相当于微分项)

为性能指标或递进信号,为一个教师信号;

为对应于

的加权系数;

为神经元的比例系数,

为大于0的数。

那么有:

(2.1)

即有:

=

(2.2)

试比较(3.4)与(3.9)可以看出PID参数分别为

(积分系数),

(比例系数),

(微分系数)。

故该神经元控制器具有PID控制器的特性,它通过对加权系数的调整来实现自适应,自组织功能。

所以该神经元PID控制器是一类在线自适应PID控制器。

这种自适应能力是通过一定的学习规则进行的,而学习规则可以通过计算算法实现,因此神经元PID控制器的性能取决于学习算法的收敛性和自学习能力。

如何获得更完善的自学习能力、联想能力的算法是关键。

解决好学习算法的快速性和收敛性,便可以大大推进神经网络控制在工业生产过程中的实用化进程。

本文中采用Delta学习规则。

(2.3)

(2.4)

式中,

——学习(或强化)信号,它随着过程的进行缓慢地衰减。

——学习速率,

该学习规则表示对一个动态特性未知的环境,自适应神经元在教师信号

作用下进行强制学习,从而对外界作用作出反映和作用。

神经元权系数的学习确保系统的跟踪误差收敛于零。

只要跟踪误差存在,学习过程就会使权值变化,从而使误差以最快的速度趋于零。

这样就通过关联搜索保证了系统的无静差。

只要保证学习算法的收敛性,调节系统就可以实现无静差和快速响应的控制效果。

通常学习速率对保证学习的收敛性有很大的关系,要由仿真分析来选择适当的学习速率。

为了加快神经元PID控制器的学习速率,通常希望学习速率

的取值大一些。

值选择较大时,为保证上述单神经元P1D控制学习算法的收敛性与鲁棒性,对学习算法进行规范化处理:

(2.5)

=

(2.6)

(2.7)

(2.8)

(2.9)

式中,

为积分、比例、微分的学习速率;

=

(2.10)

=

(2.11)

=

=

(2.12)

这里对积分(I)、比例(P)、微分(D)分别采用不同的学习速率

,以便对它们各自的权系数能根据需要分别进行调整。

采用不同的学习速率进行学习,可以防止某些项因为相差太大而被淹没,其取值可先由现场实验或仿真来确定。

这里选取的一般规则如下:

①对于阶跃响应,若输出有大的超调,且多次出现正弦衰减现象,应减少

维持

不变;若上升时间长,无超调,应增大

,保持

不变。

②对于阶跃输入,若被控对象产生多次正弦衰减现象,应减少

,其他参数不变。

③若被控对象响应特件出现上升时间短、超调过大现象,应减少

,,其他参数不变。

④若被控对象上升时间长,增大

又导致超调过大,可适当增加

,,其他参数不变。

⑤在开始调整时,

选择较小值,当调整

,使被控对象具有良好特性时,再逐渐增大

,而其他参数不变,使系统输出基本无波纹。

⑥K是系统最敏感的参数。

值的变化,相当于

三项同时变化,应在第一步先调整

,然后根据“②~⑤”项调整规则调整

2.4被控对象的设定

受控对象由差分方程给出

y(k)=0.368y(k-1)+0.26y(k-2)+0.10u(k-1)+0.632u(k-2)(2.13)

两端取Z变换,并加以整理得:

G(z)=

(2.14)

采样周期为T=0.001s,输人为一阶跃信号rin(k)=1,分别用单神经元PID和常规PID进行控制,并进行比较。

 

第3章单神经元PID系统仿真研究

3.1建立m文件S-Function

3.1. 1使用模板文件:

sfuntmp1.m格式:

[sys,x0]=function(t,x,u,flag)

该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下。

模板文件里S-Function的结构十分简单,它只为不同的flag的值指定要相应调用的m文件子函数。

比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为sys=mdloutputs(t,x,u)。

模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用if语句来完成同样的功能。

而且在实际运用时,可以根据实际需要来去掉某些值,因为并不是每个模块都需要经过所有的子函数调用。

模板文件只是Simulink为方便用户而提供的一种参考格式,并不是编写S-Function的语法要求,用户完全可以改变子函数的名称,或者直接把代码写在主函数里,但使用模板文件的好处是,比较方便,而且条理清晰。

使用模板编写S-Function,用户只需把s-函数名换成期望的函数名称,如果需要额外的输入参量,还需在输入参数列表的后面增加这些参数,因为前面的4个参数是Simulink调用S-Function时自动传入的。

对于输出参数,最好不做修改。

接下去的工作就是根据所编S-Function要完成的任务,用相应的代码去替代模板里各个子函数的代码即可。

Simulink在每个仿真阶段都会对S-Function进行调用,在调用时,Simulink会根据所处的仿真阶段为flag传入不同的值,而且还会为sys这个返回参数指定不同的角色,也就是说尽管是相同的sys变量,但在不同的仿真阶段其意义却不相同,这种变化由Simulink自动完成。

m文件S-Function可用的子函数说明如下:

mdlInitializeSizes(flag=0):

定义S-Fun

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1