基于CMAC神经网络的PID参数自整定方法的研究

发布时间:2010-12-7 21:55    发布者:designer
关键词: CMAC , PID , 参数自整定 , 神经网络
控制器的参数整定是通过对PID控制器参数(KP,KI,KD)的调整,使得系统的过渡过程达到满意的质量指标要求。PID参数的整定一般需要经验丰富的工程技术人员来完成,既耗时又耗力,加之实际系统千差万别,又有滞后非线性等因素,使PID参数的整定有一定的难度,致使许多PID控制器没能整定的很好;这样的系统自然无法工作在令人满意的状态,为此人们提出了自整定PID控制器。将过程动态性能的确定和PID控制器参数的计算方法结合起来就可实现PID控制器的自整定[1,2]。

笔者设计出一种基于CMAC小脑模型神经网络的PID参数自整定的控制系统,从而实现PID参数的快速整定,并且使得PID的参数整定达到一定的精度。

1 CMAC神经网络

CMAC(Cerebellarmodelarticulationcontroller)是J.S.Albus在1975年提出的一种模拟小脑功能的神经网络模型。CMAC是一种联想网络,对每一输出只有小部分神经元(由输入决定)与之相关,它的联想具有局部泛化能力,即相似的输入将产生相似的输出,而远离的输入产生几乎独立的输出。CMAC与感知器比较相似,虽然从每个神经元看其关系是一种线性关系,但从结果总体看,它适合一种非线性的映射,因而可以把CMAC看作一个用于表达非线性映射(函数)的表格系统。由于它的自适应调节(学习)是在线性映射部分,所以其学习算法是简单的算法,收敛速度比BP快得多,且不存在局部极小问题。CMAC神经网络结构如图1所示。





图1CMAC结构

2 系统原理

系统的工作原理为:当闭环控制系统受到扰动时,对系统误差的时间特性进行模式识别,首先得出系统误差曲线的峰值及时间,如图2所示。





图2给定值阶跃变化时的误差e(t)曲线

再根据以下公式得出该过程响应曲线的多个特征参数ei(i=1,2,3)分别为:超调量σ,阻尼比ζ和衰减振荡周期T。





将识别出的三个特征参数作为输入送入CMAC参数整定网络,经计算后得出相应的PID参数的变化量(

),再将所得参数送入PID控制器,从而实现PID参数的自整定。PID参数自整定系统如图3所示。





图3PID参数自整定控制系统

在本CMAC神经网络中,获取系统误差特性曲线中的三个特征参数,每个特征参数根据表的划分,成为一个特征参数等级。当每个区域的特征参数大小都确定时,就组成了一个特征参数模式。当获取的特征值发生变化时,相应的模式也发生变化。因而本文建立的CMAC网络的输入是一个3个分量组成的向量,即选取的三个特征值(阻尼比,超调量百分比,衰减振荡周期)也可称为特征参数模式。由于PID控制器需整定的参数为3个,所以,CMAC网络的输出为3个分量组成的向量。每一个元素与PID控制器中的一个待整定参数相对应。

3 CMAC神经网络的改进与实现

1)基函数的布置和总数








2)高阶基函数

当初始CMAC网络使用二值基函数时,它的输出是分段连续的,即在每个网格内是连续的,在输入轴节点处是间断的。要使网络有连续的输出,必须要求基函数的输出在其定义域的边界上为0。本设计中,用表示距离,表示单变量函数,采用无穷大泛数基函数实现连续输出。





并利用无穷大泛数计算距离时,可以使基函数在定义域边界的输出为0,在定义域中心的输出为1/ρ。在一维情况下,其他输出值是在这两个极值间的线性插值。在二维输入空间中,基函数输出呈“金字塔”型。

3)内存杂散技术

CMAC网络对内存的需求量正比于的指数倍,所以它是很大的。对高维输入,基函数的数量可以由公式(5)近似地计算出来。由于要求基函数的数量要小于网格的数量(p<<p‘,p‘是CMAC网络中网格的数量),所以一般的算法只适用于维数较低或者适中的网络输入,如果维数较高,就要使用内存杂散技术。内存杂散技术是将分布稀疏、占用较大存储空间的数据作为一个伪随机发生器的变量,产生一个占用空间较小的随机地址,而在这个随机地址内就存放着占用大量内存空间地址内的数据,这就完成了由多到少的映射。

4)CMAC神经网络的编程实现

CMAC神经网络的算法主要函数是由C语言编程实现的。本设计中的代码是在VisualC++平台上调试实现的。intallocate_cmac(intnum_state,int*qnt_state,intnum_cell,intmemory,intfield_shape,intcollision_flag);allocate函数用指定的参数为CMAC网络在内存中分配空间。num_state是输入向量的维数;*qnt_state是指向维数组的指针,这个数组定义了每一维输入向量的量化精度;num_cell是泛化系数ρ;memory占用内存空间的数量;field_shape设置基函数的类型;collision_flag训练冲突标记,若冲突发生返回TRUE,反之为FALSE。

MATLAB中的编译与调用时,采用MEX技术来完成MATLAB中调用CMAC网络算法的C语言代码

4 CMAC神经网络训练

CMAC神经网络的主要参数有:输入变量的量化精度、泛化参数以及基函数的种类。对CMAC神经网络的三个输入分别进行量化,阻尼比ζ分为23级,超调量百分比σ分为12个等级,衰减振荡周期Tc分为20个等级,共有23*12*20=5520种训练模式。

在所有5520种训练模式中选取2000种,作为CMAC参数整定网络的选练样本。再在2000组特征参数模式中选取1620组特征参数模式作为训练集对网络进行训练。

建立输入到物理存储空间的映射,同时建立了物理存储空间与输出的关系。泛化参数选为32,学习算法采用了误差纠正算法。学习率β为0.6,采用样条函数SPLINE替代传统的ALBUS函数作为CMAC神经网络的基函数。ALBUS函数的输出只有0和1,因此输出的曲线分段连续,仅在内节点之间连续,在内节点的分界处往往是不连续的。而样条函数则可以较好的解决这个问题。相应的内存使用量为300。

训练收敛后,权值体现了特征参数与PID控制器的待整定参数的关系。图4所示为CMAC神经网络对1620组特征参数模式的训练误差曲线。



图4CMAC训练误差曲线

图5所示为1620组训练数据送入CMAC神经网络训练后,训练数据在各个误差区间中的个数,可看出超过90%的训练数据具有较高的误差精度,即误差精度<0.1。





图5训练数据在各误差区间中的个数

把选取的2000种特征参数模块中剩下的380组作为测试集,对训练后的CMAC参数整定网络进行测试。输出的控制参数变化值与学习样本期望结果进行对比,错误率为7.8%,说明CMAC网络训练比较成功,具有一定的泛化能力。图6所示为CMAC神经网络的测试误差曲线。图7所示为测试数据在各误差区间中的个数。





图6CMAC测试误差曲线



图7测试数据在各误差区间中的个数

5 仿真结果

选取被控对象为:

,原控制器对此对象的控制性能达到要求,阶跃扰动曲线如图8中线1所示。当进行PID参数自整定,整定后的响应曲线为图8中线2,把特征参量送入CMAC参数整定网络,整定后参数为

。从仿真图中,我们可以看出PID参数的整定效果比较理想,且CMAC神经网络的达到稳定的训练时间也比较短。





图8整定前后的响应曲线

6结论

仿真结果表明,CMAC神经网络的特性使其适合在PID参数自整定中使用。CMAC神经网络权值的调整是局部的,学习速度快,收敛性好,而且PID参数的整定效果也满足整定要求。文章的创新点:在基于模式识别的PID参数自整定系统中,直接利用CMAC网络获取整定规则,避免了传统的大量专家整定经验的建立。
本文地址:https://www.eechina.com/thread-44887-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表