基于元胞遗传算法的PID控制器参数整定方法

阅读: 评论:0


基于元胞遗传算法的pid控制器参数整定方法
技术领域
1.本发明涉及一种基于元胞遗传算法的pid控制器参数整定方法,属于控制器参数整定方法技术领域。


背景技术:



2.pid控制器结构简单、鲁棒性好,是目前应用最为广泛的控制器。如图1所示,pid控制器控制输出u(t)表达为:,其中k
p
、、kd=k
p
·
td分别为比例环节、积分环节、微分环节的系数,适当增大比例环节系数能够提高系统快速性,并能减小稳态误差,积分环节能够提高系统稳态精度,提高系统抗干扰能力,微分环节能够预测误差变化,做到抑制阶跃响应的超调、缩短调节时间的作用。适当调整pid控制的比例系数、积分系数和微分系数能使系统在稳定性、快速性和准确性等方面达到更好的性能。
3.传统的pid控制器参数整定分为理论整定方法和工程经验方法,理论整定方法主要依据系统数学模型,经过理论计算确定控制器参数,工程经验方法主要有ziegler-nichols整定方法、临界振荡法、1/4衰减振荡法等,传统的pid控制器参数整定方法需要操作者具有良好的专家知识,且步骤繁琐、耗时长,不利于实际应用,因此,一种能够解决现有技术问题的pid控制器参数整定方法成为目前的迫切需求。


技术实现要素:



4.针对现有技术的不足,本发明的目的在于提供一种基于元胞遗传算法的pid控制器参数整定方法,解决了现有技术中出现的问题。
5.本发明所述的基于元胞遗传算法的pid控制器参数整定方法,包括以下步骤:
6.s1:确定元胞遗传算法参数;
7.确定元胞遗传算法中种数量size、进化代数n、编码形式、编码长度l参数,确定pid控制器k
p
、ki、kd参数的取值范围;
8.s2:生成初始种;
9.按既定的编码形式,在k
p
、ki、kd参数的取值范围内随机地生成size个个体,生成的初始种按照既定的元胞空间结构分布;
10.s3:计算个体适应度;
11.对每个元胞对应的编码进行解码计算得到k
p
、ki、kd参数,并将其赋予pid控制器并得到输出响应,按照目标函数和适应度函数的公式求取个体适应度;
12.s4:进行遗传操作;
13.对元胞进行选择、交叉和变异遗传操作,所有遗传操作均不得改变当代最佳个体,即保留最佳个体;
14.s5:通过步骤s4生成新一代种,重复执行步骤s3-s4直至达到最大进化代数,保
存并输出最佳个体的相关数据。
15.所述的步骤s1中pid控制器输出u(t)为:
[0016][0017]
其中k
p
、、kd=k
p
·
td分别为比例环节、积分环节、微分环节的系数。
[0018]
进一步的,步骤s3中选取函数作为元胞遗传算法的目标函数,其中e(t)为系统误差,u(t)为控制器输出,ey(t)如下式所示表征超调量,tu为系统上升时间;
[0019]
ey(t)=y(t)-y(t-1),当y(t)-y(t-1)》0,否则为0;
[0020]
其中:e(t)为系统误差;u(t)为控制器输出;ey(t)如下式所示表征超调量;tu为系统上升时间;w1代表系统误差e(t)在目标函数中所占的比例;w2代表控制器输出u(t)在目标函中所占的比例;w3代表超调量ey(t)在目标函数中所占的比例;w4表示系统上升时间tu在目标函数中所占比例;ey(t)=y(t)-y(t-1),当y(t)-y(t-1)》0,否则为0;e(t)为系统误差,对其绝对值进行积分反映了系统跟踪输入信号的能力,其在目标函数中所占权重最大,当目标函数j为最小值时对应系统性能最佳。
[0021]
进一步的,目标函数j的倒数为适应度函数f,即:
[0022]
,适应度函数f值越大,系统性能越好。
[0023]
进一步的,步骤s2中生成初始种具体包括以下操作:随机生成m*n的二维矩阵,矩阵元素为元胞,元胞是长度为l的二进制序列,其中前面1/3l、中间1/3l、后面1/3l分别对应pid控制器比例环节、积分环节和微分环节的系数k
p
、ki和kd,在k
p
、ki和kd值的合理范围内对m*n元胞进行随机化赋值,得到初代种。
[0024]
进一步的,步骤s3中计算个体适应度具体包括以下:
[0025]
s11:将每一个元胞对应的k
p
、ki和kd解码,并送至pid控制器,计算系统响应,得到系统误差e(t)、控制输出u(t)和系统输出y(t);
[0026]
s12:根据得到的系统响应,计算每一个元胞对应的目标函数,对目标函数求倒数得到相应的适应度函数;
[0027]
s13:对元胞按适应度函数值排序,适应度函数值最大的元胞,即为当代种中的最佳个体,其对应的k
p
、ki和kd的组合即为当前优选出的最佳pid控制器参数组合。
[0028]
进一步的,步骤s4中遗传操作包括选择、交叉和变异遗传操作;
[0029]
选择遗传操作:对适应度函数值高的元胞进行复制,并取代其某一邻居;
[0030]
交叉遗传操作:适应度函数值高的元胞与其邻居发生交叉操作,交叉后的后代之一与该元胞比较,若后代的适应度值高于该元胞,则取代该元胞;交叉后的后代之二取代该元胞邻居中适应度值较小的个体;
[0031]
变异遗传操作:对每一个元胞按照一定的比率进行变异操作,即对元胞中某些二进制位进行翻转操作。
[0032]
进一步的,步骤s1中元胞遗传算法选用von neumann型邻居结构,一个元胞的上、
下、左、右四个元胞为该元胞的邻居,即neighbor={c
x,y
||x-i|+|y-j|≤1},式中,i、j表示该元胞在四方形网络中的位置,x、y表示邻居元胞在四方形网络中的位置。
[0033]
本发明与现有技术相比,具有如下有益效果:
[0034]
本发明所述的基于元胞遗传算法的pid控制器参数整定方法,元胞遗传算子根据经验随机生成合理范围内的k
p
、ki和kd参数,并送至pid控制器,然后系统根据输入信号、控制器参数和控制对象计算输出,并得到偏差e,元胞遗传算子根据计算得到的数据经遗传操作得到新一代的控制器参数。重复执行以上操作直至到达最大进化代数或达到指标要求。
[0035]
元胞遗传算法将元胞自动机的元胞空间概念及局部演化规则与遗传算法结合而成,将遗传算法种中的每个个体视为一个元胞,元胞映射到一维、二维或多维网格中,将元胞自动机演化规则与遗传算法中的选择、交叉和变异操作相结合,使遗传操作发生在元胞邻域范围。元胞遗传算法是多峰搜索算法,具有隐并行性,能充分保持体的多样性,有效地避免搜索陷入局部最优。解决了现有技术中存在的问题。
附图说明
[0036]
图1为本发明中pid控制器的结构图;
[0037]
图2为本发明中pid控制器在simulink的仿真模型图;
[0038]
图3为本发明基于元胞遗传算法对pid控制器参数进行整定的原理图;
[0039]
图4为本发明元胞遗传算法工作流程图;
[0040]
图5为本发明实施例中vonneumann元胞型邻居结构图;
[0041]
图6为本发明实施例中最佳个体目标函数变化曲线图;
[0042]
图7为本发明实施例中pid控制器的单位阶跃响应图。
具体实施方式
[0043]
下面结合附图和实施例对本发明作进一步的说明:
[0044]
实施例1:
[0045]
如图4所示,本发明所述的基于元胞遗传算法的pid控制器参数整定方法,包括以下步骤:
[0046]
s1:确定元胞遗传算法参数;
[0047]
确定元胞遗传算法中种数量size、进化代数n、编码形式、编码长度l参数,确定pid控制器k
p
、ki、kd参数的取值范围;
[0048]
s2:生成初始种;
[0049]
按既定的编码形式,在k
p
、ki、kd参数的取值范围内随机地生成size个个体,生成的初始种按照既定的元胞空间结构分布;
[0050]
s3:计算个体适应度;
[0051]
对每个元胞对应的编码进行解码计算得到k
p
、ki、kd参数,并将其赋予pid控制器并得到输出响应,按照适应度函数求取个体适应度;
[0052]
s4:进行遗传操作;
[0053]
对元胞进行选择、交叉和变异遗传操作,所有遗传操作均不得改变当代最佳个体,即保留最佳个体;
[0054]
s5:通过步骤s4生成新一代种,重复执行步骤s3-s4直至达到最大进化代数,保存并输出最佳个体的相关数据。
[0055]
步骤s3中pid控制器输出u(t)为:
[0056][0057]
其中k
p
、、kd=k
p
·
td分别为比例环节、积分环节、微分环节的系数。
[0058]
步骤s3中选取函数作为元胞遗传算法的目标函数,其中e(t)为系统误差,u(t)为控制器输出,ey(t)如下式所示表征超调量,tu为系统上升时间;
[0059]
ey(t)=y(t)-y(t-1),当y(t)-y(t-1)》0,否则为0;
[0060]
e(t)为系统误差,对其绝对值进行积分反映了系统跟踪输入信号的能力,其在目标函数中所占权重最大,当目标函数j为最小值时对应系统性能最佳。
[0061]
目标函数j的倒数为适应度函数f,即:
[0062]
,适应度函数f值越大,系统性能越好。
[0063]
步骤s2中生成初始种具体包括以下操作:随机生成m*n的二维矩阵,矩阵元素为元胞,元胞是长度为l的二进制序列,其中前面1/3l、中间1/3l、后面1/3l分别对应pid控制器比例环节、积分环节和微分环节的系数k
p
、ki和kd,在k
p
、ki和kd值的合理范围内对m*n元胞进行随机化赋值,得到初代种。
[0064]
步骤s3中计算个体适应度具体包括以下:
[0065]
s11:将每一个元胞对应的k
p
、ki和kd解码,并送至pid控制器,计算系统响应,得到系统误差e(t)、控制输出u(t)和系统输出y(t);
[0066]
s12:根据得到的系统响应,计算每一个元胞对应的目标函数,对目标函数求倒数得到相应的适应度函数;
[0067]
s13:对元胞按适应度函数值排序,适应度函数值最大的元胞,即为当代种中的最佳个体,其对应的k
p
、ki和kd的组合即为当前优选出的最佳pid控制器参数组合。
[0068]
步骤s4中遗传操作包括选择、交叉和变异遗传操作;
[0069]
选择遗传操作:对适应度函数值高的元胞进行复制,并取代其某一邻居;
[0070]
交叉遗传操作:适应度函数值高的元胞与其邻居发生交叉操作,交叉后的后代之一与该元胞比较,若后代的适应度值高于该元胞,则取代该元胞;交叉后的后代之二取代该元胞邻居中适应度值较小的个体;
[0071]
变异遗传操作:对每一个元胞按照一定的比率进行变异操作,即对元胞中某些二进制位进行翻转操作。
[0072]
如图2-3所示,simulink中设置pid控制器的仿真模型,在仿真模型中in和pid(s)的参数需要m程序传递;simulink的运行结果通过out模块传送至程序空间。在matlab软件m程序中运行元胞遗传算法,生成初代种,计算初代种每个个体对应的k
p
、ki、kd的值,将k
p
、ki、kd的值传递给simulink仿真模型,通过“sim”函数调用并运行simulink仿真模型,simulink仿真模型运行结束后将e(t)、u(t)、y(t)的数据送至程序空间供元胞遗传算法程
序使用。
[0073]
为验证算法的有效性,此处被控对象选择的为具有一般意义的负载。被控对象,又称控制对象,是控制系统所要操纵的对象,即负载。本实施例中被控对象为,目标函数选择w1=0.99、w2=0.01,w3=0.01,w4=0.01。此处系数越大,代表各自代表的部分在目标函数中所占比例就大。此处各系数相对大小决定各自代表的部分在目标函数中所占的比例,与绝对大小无关。遗传算法参数选择种数量size=30,进化代数n=100,采用二进制编码,编码长度l=10。进化结束条件为达到最大进化代数。
[0074]
元胞遗传算法程序根据simulink仿真模型传递回的数据信息计算初代个体的目标函数和适应度函数,优选出初代种最佳个体,并按前述规则对初代种进行选择、交叉和变异操作,生成新一代种。重复以上过程直至达到最大进化代数。
[0075]
如图5所示,本发明采用二维元胞自动机,元胞之间采用四边形网格排列,构建如下图5所示四边形网格,每个网格代表一个元胞,即种中的一个个体。按照元胞自动机的演化规则,元胞自动机的演化均发生在局部,指定元胞的状态更新仅与其邻域空间有关,其邻域空间称作该元胞的邻居。步骤s1中元胞遗传算法选用von neumann型邻居结构,一个元胞的上、下、左、右四个元胞为该元胞的邻居,即neighbor={c
x,y
||x-i|+|y-j|≤1},式中,i、j表示该元胞在四方形网络中的位置,x、y表示邻居元胞在四方形网络中的位置。
[0076]
如图4所示,元胞遗传算法的程序流程:
[0077]
1.随机生成5*6的二维矩阵,矩阵元素(即元胞,后面称作元胞)是长度为30bit的二进制序列,其中前面10bit、中间10bit、后面10bit分别对应pid控制器比例环节、积分环节和微分环节的系数k
p
、ki和kd。在k
p
、ki和kd值的合理范围内对5*6元胞进行随机化赋值,得到初代种。
[0078]
2.将每一个元胞对应的k
p
、ki和kd解码,并送至simulink控制系统模型中的pid控制器,simulink控制系统模型运行结束后将系统误差e(t)、控制输出u(t)和系统输出y(t)返回调用程序。系统输出在图1中的系统输出y(t)所示。
[0079]
3.控制系统接收到k
p
、ki和kd参数,运行控制系统仿真模型,记录并保存系统误差e(t)、控制输出u(t)和系统输出y(t),然后将上述数据送至元胞遗传算法程序,元胞遗传算法程序根据目标函数公式和适应度函数公式计算得到该组参数对应的目标函数值和适应度函数值。
[0080]
4.对元胞按适应度函数值排序,适应度函数值最大的元胞,即为当代种中的最佳个体,其对应的k
p
、ki和kd的组合即为当前优选出的最佳pid控制器参数组合。
[0081]
5.对所有元胞进行遗传操作,遗传操作包括选择、交叉和变异操作。遗传算法是一种进化搜索算法,遗传算法中选择操作能够保留本代适应度高的个体,适应度高的个体具有较大的存活纪律;交叉操作保证个体之间进行基因交换,能够产生适应度更高的后代;变异操作则是给进化过程增加一些变量,有机会产生适应度更高的个体,且能够避免遗传算法早熟。
[0082]
选择操作:对适应度函数值高的元胞进行复制,并取代其某一邻居。
[0083]
交叉操作:适应度函数值高的元胞与其邻居发生交叉操作,交叉后的后代之一与该元胞比较,若后代的适应度值高于该元胞,则取代该元胞;交叉后的后代之二取代该元胞
邻居中适应度值较小(表现较差)的个体。
[0084]
变异操作:对每一个元胞按照一定的比率(0.1%)进行变异操作。(即对某些二进制位进行翻转)
[0085]
所有遗传操作均不得改变当代最佳个体。(即保留最佳个体)
[0086]
通过步骤5生成新一代种,重复执行步骤2直至达到最大进化代数,保存并输出最佳个体的相关数据。
[0087]
如图6所示,最佳个体目标函数变化曲线图,目标函数值不断下降,说明算法正在按照我们的目标函数设计优选出更好的个体。基于元胞遗传算法的pid控制器参数整定过程,由于每个元胞的影响范围仅限于其邻居,每个元胞在与其邻居形成的小的生态系统中进化,每一个小的生态系统通过边界影响其他小的生态系统,保证了种的多样性,使得算法形成多峰搜索,该算法前期目标函数值下降较慢,但在进化过程中其不断出现新的最佳个体,目标函数值持续下降,最终获取到全局最优结果。
[0088]
表1第1代、第10代、第100代最佳参数值和其对应的目标函数j的值
[0089][0090]
如表1所示,第1代、第10代、第100代达到最佳参数值,其对应的目标函数j的值获取到全局最优结果。
[0091]
如图7所示,其中进化过程中,第1代、第10代和第100代中最佳个体对应的pid控制器的单位阶跃响应,其中包括第1代最佳个体对应的单位阶跃响应曲线,第10代最佳个体对应的单位阶跃响应曲线,第100代最佳个体对应的单位阶跃响应曲线。第1代最佳个体对应的单位阶跃响应曲线,系统超调σ=1.30%,上升时间t
p
=30ms,调整时间(输出达到1
±
2%范围内)ts=123.1ms。第10代最佳个体对应的单位阶跃响应曲线,系统超调σ=4.80%,上升时间t
p
=27.2ms,调整时间ts=102.9ms。第100代最佳个体对应的单位阶跃响应曲线,系统超调σ=4.00%,上升时间t
p
=29.7ms,调整时间ts=101.2ms。由以上数据可知,经过100代不断进化,元胞遗传算子最终组合并优选出了一种各项指标都较为均衡的参数组合。
[0092]
本实施例中,元胞遗传算子以函数作为目标函数,且由于w1=0.99、w2=0.01,w3=0.01,w4=0.01,所以|e(t)|项起了决定性作用。从图7系统单位阶跃响应曲线也可以看出,末代最佳个体对应的系统响应与阶跃输入之间所包围的面积是三条曲线中最小的。若想提高系统某一指标,将该指标加入到目标函数中或将目标函数中该指标对应项的系数加大即可。
[0093]
采用以上结合附图描述的本发明的实施例的基于元胞遗传算法的pid控制器参数整定方法,元胞遗传算法将元胞自动机的元胞空间概念及局部演化规则与遗传算法结合而成,将遗传算法种中的每个个体视为一个元胞,元胞映射到一维、二维或多维网格中,将
元胞自动机演化规则与遗传算法中的选择、交叉和变异操作相结合,使遗传操作发生在元胞邻域范围。元胞遗传算法是多峰搜索算法,具有隐并行性,能充分保持体的多样性,有效地避免搜索陷入局部最优。解决了现有技术中存在的问题。但本发明不局限于所描述的实施方式,在不脱离本发明的原理和精神的情况下这些对实施方式进行的变化、修改、替换和变形仍落入本发明的保护范围内。

技术特征:


1.一种基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的方法包括以下步骤:s1:确定元胞遗传算法参数;确定元胞遗传算法中种数量size、进化代数n、编码形式、编码长度l参数,确定pid控制器k
p
、k
i
、k
d
参数的取值范围;s2:生成初始种;按既定的编码形式,在k
p
、k
i
、k
d
参数的取值范围内随机地生成size个个体,生成的初始种按照既定的元胞空间结构分布;s3:计算个体适应度;对每个元胞对应的编码进行解码计算得到k
p
、k
i
、k
d
参数,并将其赋予pid控制器并得到输出响应,按照目标函数和适应度函数公式求取个体适应度;s4:进行遗传操作;对元胞进行选择、交叉和变异遗传操作,所有遗传操作均不得改变当代最佳个体,即保留最佳个体;s5:通过步骤s4生成新一代种,重复执行步骤s3-s4直至达到最大进化代数,保存并输出最佳个体的相关数据。2.根据权利要求1所述的基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的步骤s1中pid控制器输出u(t)为:其中k
p
、、k
d
=k
p
·
t
d
分别为比例环节、积分环节、微分环节的系数。3.根据权利要求2所述的基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的步骤s3中选取作为元胞遗传算法的目标函数;其中:e(t)为系统误差;u(t)为控制器输出;ey(t)如下式所示表征超调量;t
u
为系统上升时间;w1代表系统误差e(t)在目标函数中所占的比例;w2代表控制器输出u(t)在目标函中所占的比例;w3代表超调量ey(t)在目标函数中所占的比例;w4表示系统上升时间t
u
在目标函数中所占比例;ey(t)=y(t)-y(t-1),当y(t)-y(t-1)>0,否则为0;e(t)为系统误差,对其绝对值进行积分反映了系统跟踪输入信号的能力,其在目标函数中所占权重最大,当目标函数j为最小值时对应系统性能最佳。4.根据权利要求3所述的基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的目标函数j的倒数为适应度函数f,即:适应度函数f值越大,系统性能越好。5.根据权利要求1所述的基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的步骤s2中生成初始种具体包括以下操作:随机生成m*n的二维矩阵,矩阵元素为元
胞,元胞是长度为l的二进制序列,其中前面1/3l、中间1/3l、后面1/3l分别对应pid控制器比例环节、积分环节和微分环节的系数k
p
、k
i
和k
d
,在k
p
、k
i
和k
d
值的合理范围内对m*n元胞进行随机化赋值,得到初代种。6.根据权利要求1所述的基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的步骤s3中计算个体适应度具体包括以下:s11:将每一个元胞对应的k
p
、k
i
和k
d
解码,并送至pid控制器,然后系统根据输入信号、k
p
、k
i
和k
d
参数和控制对象计算系统响应,得到系统误差e(t)、控制输出u(t)和系统输出y(t);s12:根据得到的系统响应,计算每一个元胞对应的目标函数,对目标函数求倒数得到相应的适应度函数;s13:对元胞按适应度函数值排序,适应度函数值最大的元胞,即为当代种中的最佳个体,其对应的k
p
、k
i
和k
d
的组合即为当前优选出的最佳pid控制器参数组合。7.根据权利要求1所述的基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的步骤s4中遗传操作包括选择、交叉和变异遗传操作;选择遗传操作:对适应度函数值高的元胞进行复制,并取代其某一邻居;交叉遗传操作:适应度函数值高的元胞与其邻居发生交叉操作,交叉后的后代之一与该元胞比较,若后代的适应度值高于该元胞,则取代该元胞;交叉后的后代之二取代该元胞邻居中适应度值较小的个体;变异遗传操作:对每一个元胞按照一定的比率进行变异操作,即对元胞中某些二进制位进行翻转操作。8.根据权利要求1所述的基于元胞遗传算法的pid控制器参数整定方法,其特征在于:所述的步骤s1中元胞遗传算法选用vonneumann型邻居结构,一个元胞的上、下、左、右四个元胞为该元胞的邻居,即neighbor={c
x,y
||x-i|+|y-j|≤1},式中,i、j表示该元胞在四方形网络中的位置,x、y表示邻居元胞在四方形网络中的位置。

技术总结


本发明公开一种基于元胞遗传算法的PID控制器参数整定方法,属于控制器参数整定方法技术领域,元胞遗传算子根据经验随机生成合理范围内的Kp、Ki、Kd参数,并送至PID控制器,然后系统根据输入信号、控制器参数和控制对象计算输出,并得到偏差e,元胞遗传算子根据计算得到的数据经遗传操作得到新一代的控制器参数。重复执行以上操作直至到达最大进化代数或达到指标要求。本发明的技术方案能充分保持体的多样性,有效地避免搜索陷入局部最优。解决了现有技术中存在的问题。有技术中存在的问题。有技术中存在的问题。


技术研发人员:

陈立锋

受保护的技术使用者:

济宁学院

技术研发日:

2022.10.17

技术公布日:

2023/1/31

本文发布于:2023-03-31 01:20:44,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/83605.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   控制器   算法   种群
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图