本发明涉及一种电机调速控制算法,特别是一种基于模糊控制的bp神经网络pid调速控制算法。
背景技术
目前工业合成炉通常采用常规pid控制,但工业合成炉的温度控制存在着非线性、大惯性、大滞后性等特点,难以建立精确的数学模型,因此常规pid控制难以取得良好效果。
bp神经网络作为改进pid算法的人工智能算法之一,受到广泛的应用。bp算法的基本思想是:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐藏层处理后,传向输出层,若输出层的实际输出与期望的输出不符合要求,则转入误差的反向传播阶段。误差的反向传播是将输出误差以某种形式通过隐藏层向输入层逐层反向传播,并将误差分摊给各个层的所有单元,从而获得各个单元的误差信号,以此作为个单元的修正依据。由于bp神经网络有逼近任意非线性函数的能量,因此适合采用此网络结构来建立pid控制器,但传统的bp神经网络存在静态误差,收敛速度慢,鲁棒性不强等缺点从而达不到精确速控的要求。因此,如何精准得实现速度控制问题,成为研究的热点问题。
技术实现要素:
为了解决上述问题,本发明提供了一种能够稳定控制被控对象的算法:一种基于模糊控制的bp神经网络pid调速控制算法。
本发明提供的一种基于模糊控制的bp神经网络pid调速控制算法,包括如下两个部分:建立模型及调速控制算法。建立模型主要是建立bp神经网络pid控制模块和模糊控制模块,首先确定bp网络的结构,然后计算网络各层的输入和输出,再根据增量式pid控制算法计算控制器的输出,利用bp网络的自学习能力对pid控制器的参数实时在线调整,获得最佳的pid控制参数。调速控制算法是在所建立的模型基础上,进行理论分析,利用模糊控制消除系统静态误差,从而实现直流电机转速的调节,得到控制算法。
进一步的,所述的bp神经网络pid控制模块步骤如下:
(1)确定bp神经网络的结构,即确定输入节点数m和隐含层节点数q,并给各层加权系数的初值
(2)采样得到rin(k)和yout(k),计算该时刻误差error(k)=rin(k)-yout(k);
(3)计算神经网络nn各层神经元的输入、输出,nn输出层的输出即为pid控制器的三个可调参数kp、ki、kd;
(4)根据经典增量数字pid的控制算法计算pid控制器的输出u(k),即u(k)=u(k-1)+kp(error(k)-error(k-1)+kierror(k)+kd(error(k)-2error(k-1))+error(k-2));
(5)进行神经网络学习,在线调整加权系数
(6)置k=k+1,返回到(1)。
进一步的,所述的模糊控制模块,其具体步骤如下:
(1)建立一个模糊控制器,定义所述模糊控制器的输入值及输出值的模糊子集;
(2)建立所述模糊子集的隶属度函数及模糊控制器的模糊控制模型;
(3)根据所述模糊子集的隶属度函数及模糊控制器的模糊控制模型,应用模糊合成推理得到模糊矩阵表;
(4)采用重心法对所述模糊子集进行反模糊化,得到用于控制的清晰量。
本发明一种基于模糊控制的bp神经网络pid调速控制算法。相比于现有技术,其有益效果在于本发明采用基于模糊控制的bp神经网络pid控制,使其在控制状态中更加稳定,并且可以有效地抑制被控对象的非线性的情况;在控制过程中,bp神经网络pid控制模块的自整定可以不断地监控参数的变化以及参数的实时反馈,模糊控制模块可以不断检测误差的变化以及误差的实时反馈,使控制效果达到理想化。
附图说明
图1是本发明的bp神经网络的结构示意图。
图2是本发明的结构原理示意图。
具体实施方式
下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。
本发明一种基于模糊控制的bp神经网络pid调速控制算法,包括如下两个部分:建立模型及调速控制算法。建立模型主要是建立bp神经网络pid控制模块和模糊控制模块,首先确定bp网络的结构,然后计算网络各层的输入和输出,再根据增量式pid控制算法计算控制器的输出,利用bp网络的自学习能力对pid控制器的参数实时在线调整,获得最佳的pid控制参数。调速控制算法是在所建立的模型基础上,进行理论分析,利用模糊控制消除系统静态误差,从而实现直流电机转速的调节,得到控制算法。
本发明中的bp神经网络结构如图1所示,采用三层结构:一个输出层、一个隐含层、一个输入层,j表示输入层节点,i表示隐含层节点,l表示输出层节点。输入层有m个输入节点,隐含层有q个隐含节点,输出层有3个输出节点。输入节点对应所选的系统运行状态量,如系统不同时刻的输入量和输出量、偏差量等。输出节点分别对应pid控制器的三个参数kp、ki、kd,由于kp、ki、kd不能为负,所以输出层神经元活化函数取非负的sigmoid函数。
由图1可见,此处bp神经网络的输入层输出为:
隐层输入为:
隐层输出为:
式中,
网络中输出层三个节点的输入为:
则输出层的三个输出为:
即:
式中,
取性能指标函数:
用梯度下降法修正网络的权系数,并附加一使搜索快速收敛全局极小的惯性项,则有:
式中,η为学习率,α为惯性系数。
其中:
这里需要用到变量
由此带来计算上的不精确,可以通过调整学习率η来补偿,这样做一方面可以简化运算。另一方面避免了当u(k),u(k-1)很接近时导致式(11)趋于无穷,这种替代在算法上是可以的,因为
由式
这样可得,bp神经网络输出层权计算公式为
可令
同理可得隐含层权计算公式为:
令
本发明提供的一种基于模糊控制的bp神经网络pid调速控制算法,其结构图如图2所示,包括:bp神经网络pid控制模块和模糊控制模块两个模块:
进一步的,bp神经网络pid控制模块的算法步骤如下:
(1)确定bp神经网络的结构,即确定输入节点数m和隐含层节点数q,并给各层加权系数的初值
(2)采样得到rin(k)和yout(k),计算该时刻误差error(k)=rin(k)-yout(k);
(3)计算神经网络nn各层神经元的输入、输出,nn输出层的输出即为pid控制器的三个可调参数kp、ki、kd;
(5)根据经典增量数字pid的控制算法计算pid控制器的输出u(k),即u(k)=u(k-1)+kp(error(k)-error(k-1)+kierror(k)+kd(error(k)-2error(k-1))+error(k-2));
(5)进行神经网络学习,在线调整加权系数
(6)置k=k+1,返回到(1)。
进一步的,所述的模糊控制模块的算法步骤如下:
(1)建立一个模糊控制器,定义所述模糊控制器的输入值及输出值的模糊子集;
(2)建立所述模糊子集的隶属度函数及模糊控制器的模糊控制模型;
(3)根据所述模糊子集的隶属度函数及模糊控制器的模糊控制模型,应用模糊合成推理得到模糊矩阵表;
(4)采用重心法对所述模糊子集进行反模糊化,得到用于控制的清晰量。
所述步骤(1)建立一个模糊控制器,定义所述模糊控制器的输入值及输出值的模糊子集中,还包括:
以转速偏差及偏差变化率作为所述模糊控制器的输入值,定义所述转速偏差和偏差变化率的模糊子集{nb,nm,ns,zo,ps,pm,pb},并将所述转速偏差和偏差变化率的模糊子集映射到论域[-6,6]上;
将所述模糊控制器的输出值作为被控制对象输入值的修正值,定义所述模糊控制器输出值的模糊子集{nb,nm,ns,zo,ps,pm,pb},并将所述模糊控制器输出值的模糊子集映射到论域[-10,10]上。
反模糊化就是将输出的语言变量转化为精确的数值,本发明的模糊控制器采用重心法对模糊子集反模糊化。以控制作用论域上的点对控制作用模糊子集隶属度函数为权系数进行加权平均求得反模糊化结果。
本发明一种基于模糊控制的bp神经网络pid调速控制算法,采用基于模糊控制的bp神经网络pid控制,使其在控制状态中更加稳定,并且可以有效地抑制被控对象的非线性的情况;在控制过程中,bp神经网络pid控制模块的自整定可以不断地监控参数的变化以及参数的实时反馈,模糊控制模块可以不断检测误差的变化以及误差的实时反馈,使控制效果达到理想化。
本文虽然已经给出了本发明的一些实施例,但是本领域的技术人员应当理解,在不脱离本发明精神的情况下,可以对本文的实施例进行改变。上述实施例只是示例性的,不应以本文的实施例作为本发明权利范围的限定。