一种在线动态粒子群PID优化方法与流程

文档序号:11826822阅读:426来源:国知局
一种在线动态粒子群PID优化方法与流程

本发明涉及燃煤机组协调控制领域PID参数整定方法,具体涉及一种基于在线动态粒子群PID参数自整定优化方法。



背景技术:

我国以燃煤电站为主的电力供应格局在未来相当长的时间内不会发生根本性改变,而燃煤机组的协调优化控制一直以来是众多专家学者研究的重点问题。目前,协调优化控制手段还是以传统PID调节控制为主,而如何更快、更好的整定PID调节参数一直以来是一个重要的问题。

目前来说,PID整定的方法有很多,最传统的方法是齐格勒-道格拉斯整定方法,这种方法需要大量的阶跃扰动实验,并且整定的参数也并不是最优参数,而是较优参数。其他的一些自整定的方法,诸如神经元方法,存在自适应调节过快和搜索方向易受外界干扰等问题。如何发展一种稳定,有效的自整定方法一直以来是众多学者重点研究的问题之一。

为有效的解决这一问题,必须选择一种合适有效的算法,并对其进行有针对性的改造,使这种自整定的方法一方面具有较强的自适应调节功能,另外一方面具有较强的稳定性。



技术实现要素:

本发明的目的在于针对现有PID整定技术的不足,提供了一种在线动态粒子群PID优化控制方法。

为达到上述目的,本发明采用如下的技术方案予以实现:

一种在线动态粒子群PID优化方法,包括以下步骤:

1)建立实际控制过程的数学传递函数模型;

2)利用步骤1)所建立的数学传递函数模型建立控制模型;

3)利用步骤2)所建立的控制模型建立粒子群数据库更新机制。

本发明进一步的改进在于,步骤1)中,建立实际控制过程的数学传递函数模型,具体如下:

<mrow> <mi>G</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mi>k</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msub> <mi>T</mi> <mn>1</mn> </msub> <mi>s</mi> <mo>)</mo> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msub> <mi>T</mi> <mn>2</mn> </msub> <mi>s</mi> <mo>)</mo> </mrow> </mfrac> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>&tau;</mi> <mi>s</mi> </mrow> </msup> </mrow>

其中G(s)为数学传递函数;s为拉普拉斯算子;k为传递函数增益;T1为第一惯性时间;T2为第二惯性时间;τ为传递函数迟延时间。

本发明进一步的改进在于,步骤2)中,利用数学传递函数模型建立控制模型,并通过粒子群进行控制模型PID参数更新,其中,控制模型包括的参数有设定值YSP、被调量YPV、随机内扰量d、调节器传递函数及PID过程传递函数G0(s)。

本发明进一步的改进在于,步骤3)中,建立粒子群数据库更新机制,包括两部分内容,第一部分为动态粒子群算法,第二部分为粒子群库更新机制,PID调节器的控制参数利用粒子群库进行更新。

本发明进一步的改进在于,步骤3)中的动态粒子群算法,如下,

假设第i个粒子所携带的信息为Xi=(Kpi,Kii,Kdi),分别对应PID调节器的比例,积分和微分作用,其速度为Vi,在循环迭代计算一次后,利用适应度函数对所有的粒子进行评价,其中解算出来的最小值为个体所找到的最优解,这个解所对应的粒子被称为个体极值,记为Xp=(Kpp,Kip,Kdp),在进过若干次迭代计算以后,在所有的个体极值点中,最小的极值所对应的个体,被称为全局极值,其位置记为Xg=(Kpg,Kig,Kdg),那么在第j次迭代后,第i个粒子的速度和位置信息分别按照如下形式进行更新:

<mrow> <msubsup> <mi>V</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <mo>=</mo> <msubsup> <mi>WV</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>+</mo> <msub> <mi>c</mi> <mn>1</mn> </msub> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msubsup> <mi>P</mi> <mi>p</mi> <mi>j</mi> </msubsup> <mo>-</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>c</mi> <mn>2</mn> </msub> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msubsup> <mi>P</mi> <mi>g</mi> <mi>j</mi> </msubsup> <mo>-</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>X</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <mo>=</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>+</mo> <msubsup> <mi>V</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> </mrow>

其中rand()为[0,1]之间变化的随机数,W为速度更新的惯性权重,c1和c2分为正实数,称着加速因子,用来调节每一次迭代的步长,为了保证粒子寻优的稳定性,粒子的位置信息由边界限制,定义粒子的位置最大值为Xmax,最小值为Xmin,每一次粒子迭代寻优完毕以后,进行如下判断:

<mrow> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mi>min</mi> <mrow> <mo>(</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>X</mi> <mi>max</mi> </msub> <mo>)</mo> </mrow> <mo>&cup;</mo> <mi>max</mi> <mrow> <mo>(</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>X</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> </mrow>

且粒子更新速度也受到位置信息限制,即粒子更新的最大速度为:

Vmax=KV(Xmax-Xmin)

Kv为速度步长参数,粒子更新的最小速度为:

Vmin=-Vmax

每一次粒子迭代寻优完毕以后,进行如下判断:

<mrow> <msubsup> <mi>V</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mi>min</mi> <mrow> <mo>(</mo> <msubsup> <mi>V</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>)</mo> </mrow> <mo>&cup;</mo> <mi>max</mi> <mrow> <mo>(</mo> <msubsup> <mi>V</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>V</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> </mrow>

粒子群算法的初始化如下,第i个粒子初始化的位置和速度为:

<mrow> <msubsup> <mi>X</mi> <mi>i</mi> <mn>0</mn> </msubsup> <mo>=</mo> <msub> <mi>X</mi> <mi>min</mi> </msub> <mo>+</mo> <mi>rand</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>V</mi> <mi>i</mi> <mn>0</mn> </msubsup> <mo>=</mo> <msub> <mi>V</mi> <mi>min</mi> </msub> <mo>+</mo> <mi>rand</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

本发明进一步的改进在于,步骤3)中的粒子群库更新机制如下,

首先按照粒子群算法初始化粒子群库,共20个粒子,其次将粒子群库的每一个粒子包含的位置信息,即比例、积分、微分稀释传递给对应的粒子PID,每当控制程序计算一次时,对应的粒子群PID调节器的设定值为YSP DELAY+YSP–YPV,这其中YSP DELAY为控制程序上一控制周期的YSP,U为过程PID调节器输出,YPVi则是第i个粒子经过粒子PID调节器调节以后经传递函数G(s)所得的被调量,其代表的意义是虚拟出实际的被调量,由每个粒子的设定值和虚拟被调量进行适应度函数的计算,得到个体极值和全局极值,将全局极值点所携带的位置信息传递到实际的过程PID中,同时利用个体极值点和全局极值点进行速度更新和位置更新,同时更新粒子群库,为下一次的计算迭代作准备,每迭代一次,过程PID的参数更新机制如下,

Kp(k+1)=0.99Kp(k)+0.01Kpg(k)

Ki(k+1)=0.99Ki(k)+0.01Kig(k)

Kd(k+1)=0.99Kd(k)+0.01Kdg(k)

这其中Kp(k+1),Ki(k+1),Kd(k+1)为本次迭代计算后的比例、积分和微分参数,Kp(k),Ki(k),Kd(k)为本次迭代计算前的比例、积分、微分参数,Kpg(k),Kig(k),Kdg(k)为粒子群寻优的全局极值点的位置信息,

全局适应度函数S的计算公式为,

<mrow> <mi>S</mi> <mo>=</mo> <munderover> <mo>&Integral;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>T</mi> </munderover> <mrow> <mo>(</mo> <msub> <mi>W</mi> <mn>1</mn> </msub> <mo>|</mo> <msub> <mi>Y</mi> <mrow> <mi>S</mi> <mi>P</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mrow> <mi>P</mi> <mi>V</mi> </mrow> </msub> <mo>|</mo> <mo>+</mo> <msub> <mi>W</mi> <mn>2</mn> </msub> <msup> <mi>U</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> </mrow>

其中T为粒子群库更新时间。

相对于现有技术,本发明提出首先根据阶跃扰动实验建立机组数学传递模型,其次利用粒子群算法建立动态例子群数据库和适应度函数评价表,再次根据机组实际运行数据和粒子群模型输出数据寻找最小适应度函数,根据最小适应度函数进行粒子群数据库更新,最后将更新完之后的粒子群数据传递到PID参数地址中,完成一次PID参数的在线优化。

附图说明:

图1为控制模型示意图。

图2为粒子群库更新机制示意图。

图3为采用动态粒子群PID控制器方法前的机组负荷和主汽压力变化趋势图。

图4为采用动态粒子群PID控制器方法后的机组负荷和主汽压力变化趋势图。

具体实施方式:

以下结合附图和实施例对本发明作进一步的详细说明。

本发明提供的一种在线动态粒子群PID优化方法,包括以下步骤:

1、建立实际控制过程的数学传递函数模型,以燃煤机组锅炉为例,在传统的协调控制系统中,锅炉主要控制主蒸汽压力,其具体的手段就是通过加/减煤量的方式来调整燃烧的强度,进而调整主蒸汽压力,其常规的数学传递函数模型如下:

<mrow> <mi>G</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mi>k</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msub> <mi>T</mi> <mn>1</mn> </msub> <mi>s</mi> <mo>)</mo> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msub> <mi>T</mi> <mn>2</mn> </msub> <mi>s</mi> <mo>)</mo> </mrow> </mfrac> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>&tau;</mi> <mi>s</mi> </mrow> </msup> </mrow>

其中G(s)为数学传递函数;s为拉普拉斯算子;k为传递函数增益;T1为第一惯性时间;T2为第二惯性时间;τ为传递函数迟延时间;

2、利用数学传递函数模型建立控制模型,并利用粒子群进行控制模型PID参数更新,其控制模型示意图如图1所示:

在图中YSP—为控制模型的设定值,YPV—为控制模型的被调量,d—为随机内扰量,调节器传递函数,G0(s)—为PID过程传递函数,其中PID调节器的控制参数利用粒子群库进行更新:

3、建立粒子群数据库更新机制,其中主要包含两部分内容,第一部分为动态粒子群算法,第二部分为粒子群库更新机制,以下分别进行说明:

3.1动态粒子群算法,其说明如下:

粒子群算法是通过模拟鸟群不可预测的运动而开发的一种基于群体的迭代算法,所有粒子在解空间追随最优的粒子进行搜索,使粒子向适应度函数最优的方向群游。

假设第i个粒子所携带的信息为Xi=(Kpi,Kii,Kdi),分别对应PID调节器的比例,积分和微分作用,其速度为Vi,在循环迭代计算一次后,利用适应度函数对所有的粒子进行评价,其中解算出来的最小值为个体所找到的最优解,这个解所对应的粒子被称为个体极值,记为Xp=(Kpp,Kip,Kdp),在进过若干次迭代计算以后,在所有的个体极值点中,最小的极值所对应的个体,被称为全局极值,其位置记为Xg=(Kpg,Kig,Kdg),那么在第j次迭代后,第i个粒子的速度和位置信息分别按照如下形式进行更新:

<mrow> <msubsup> <mi>V</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <mo>=</mo> <msubsup> <mi>WV</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>+</mo> <msub> <mi>c</mi> <mn>1</mn> </msub> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msubsup> <mi>P</mi> <mi>p</mi> <mi>j</mi> </msubsup> <mo>-</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>c</mi> <mn>2</mn> </msub> <mi>r</mi> <mi>a</mi> <mi>n</mi> <mi>d</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msubsup> <mi>P</mi> <mi>g</mi> <mi>j</mi> </msubsup> <mo>-</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>X</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <mo>=</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>+</mo> <msubsup> <mi>V</mi> <mi>i</mi> <mrow> <mi>j</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> </mrow>

其中rand()为[0,1]之间变化的随机数,W为速度更新的惯性权重,c1和c2分为正实数,称着加速因子,用来调节每一次迭代的步长,为了保证粒子寻优的稳定性,粒子的位置信息由边界限制,定义粒子的位置最大值为Xmax,最小值为Xmin,每一次粒子迭代寻优完毕以后,进行如下判断,

<mrow> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mi>min</mi> <mrow> <mo>(</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>X</mi> <mi>max</mi> </msub> <mo>)</mo> </mrow> <mo>&cup;</mo> <mi>max</mi> <mrow> <mo>(</mo> <msubsup> <mi>X</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>X</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> </mrow>

且粒子更新速度也受到位置信息限制,即粒子更新的最大速度为:

Vmax=KV(Xmax-Xmin)

Kv为速度步长参数,粒子更新的最小速度为:

Vmin=-Vmax

每一次粒子迭代寻优完毕以后,进行如下判断:

<mrow> <msubsup> <mi>V</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mi>min</mi> <mrow> <mo>(</mo> <msubsup> <mi>V</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>)</mo> </mrow> <mo>&cup;</mo> <mi>max</mi> <mrow> <mo>(</mo> <msubsup> <mi>V</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>,</mo> <msub> <mi>V</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> </mrow>

粒子群算法的初始化如下,第i个粒子初始化的位置和速度为:

<mrow> <msubsup> <mi>X</mi> <mi>i</mi> <mn>0</mn> </msubsup> <mo>=</mo> <msub> <mi>X</mi> <mi>min</mi> </msub> <mo>+</mo> <mi>rand</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>V</mi> <mi>i</mi> <mn>0</mn> </msubsup> <mo>=</mo> <msub> <mi>V</mi> <mi>min</mi> </msub> <mo>+</mo> <mi>rand</mi> <mrow> <mo>(</mo> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mi>min</mi> </msub> <mo>)</mo> </mrow> </mrow>

3.2粒子群库更新机制说明如下,

如图2所示,首先按照粒子群算法初始化粒子群库,共20个粒子,其次将粒子群库的每一个粒子包含的位置信息,即比例、积分、微分稀释传递给对应的粒子PID,在实际的工业工程中,每当控制程序计算一次时,对应的粒子群PID调节器的设定值为YSP DELAY+YSP–YPV,这其中YSP DELAY为控制程序上一控制周期的YSP,U为过程PID调节器输出,YPVi则是第i个粒子经过粒子PID调节器调节以后经传递函数G(s)所得的被调量,其代表的意义是虚拟出实际的被调量,由每个粒子的设定值和虚拟被调量进行适应度函数的计算,得到个体极值和全局极值,将全局极值点所携带的位置信息传递到实际的过程PID中,同时利用个体极值点和全局极值点进行速度更新和位置更新,同时更新粒子群库,为下一次的计算迭代作准备;

每迭代一次,过程PID的参数更新机制如下,

Kp(k+1)=0.99Kp(k)+0.01Kpg(k)

Ki(k+1)=0.99Ki(k)+0.01Kig(k)

Kd(k+1)=0.99Kd(k)+0.01Kdg(k)

这其中Kp(k+1),Ki(k+1),Kd(k+1)为本次迭代计算后的比例、积分和微分参数,Kp(k),Ki(k),Kd(k)为本次迭代计算前的比例、积分、微分参数,Kpg(k),Kig(k),Kdg(k)为粒子群寻优的全局极值点的位置信息,

全局适应度函数S的计算公式为:

<mrow> <mi>S</mi> <mo>=</mo> <munderover> <mo>&Integral;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>T</mi> </munderover> <mrow> <mo>(</mo> <msub> <mi>W</mi> <mn>1</mn> </msub> <mo>|</mo> <msub> <mi>Y</mi> <mrow> <mi>S</mi> <mi>P</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mrow> <mi>P</mi> <mi>V</mi> </mrow> </msub> <mo>|</mo> <mo>+</mo> <msub> <mi>W</mi> <mn>2</mn> </msub> <msup> <mi>U</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> </mrow>

其中T为粒子群库更新时间。

采用本优化控制方法之前、之后的发电机组主汽机组负荷和主汽压力的变化趋势如图3、图4所示,由图3和图4可以看出,本发明具有明显的控制调节优势。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1