基于人工蜂群算法的线性系统辨识

2020-09-01 08:35林振敏
仪器仪表用户 2020年9期
关键词:阶跃传递函数实例

林振敏

(中国能源建设集团 江苏省电力设计院有限公司,南京 211102)

0 引言

目前,以传递函数描述的线性系统建模经常采用的方法是:首先,根据系统特性确定模型的形式和阶次;然后,利用系统的阶跃响应曲线,根据不同的传递函数形式,确定相应的模型参数。这种方法实施起来,需要读取响应曲线,误差较大。一般得到参数以后,还需要进一步地调整来确定最终的参数。

群体智能优化算法基于物种的迁移或者进化特性,对需要解决的问题设定目标函数,通过全局搜索能力,得到目标函数的极值。使用较多的群体智能算法主要包括:遗传算法[1]、粒子群算法[2]、蚁群算法[3]等。随群体智能的进一步深入研究,一些其他的优化算法被提出,比如:细菌群体趋药性算法[4-5]、人工鱼群[6]、混合蛙跳算法[7]、狼群算法[8]、布谷鸟搜索算法[9]、人工蜂群算法[10]等。随着群体智能算法的发展,一些学者将智能优化算法应用于线性系统的模型辨识,比如基于粒子群算法的系统辨识[11]。

人 工 蜂 群 算 法(Artificial Bee Colony,ABC) 是 由Karaboga 提出的一种新颖的基于群智能的全局优化算法,其直观背景来源于蜂群的采蜜行为,蜜蜂根据各自的分工进行不同的活动,并实现蜂群信息的共享和交流,从而找到问题的最优解。人工蜂群算法实现简单、寻优能力较强,已经应用于多个领域,比如:故障诊断[12]、参数优化[13]、车间作业调度[14]、聚类[15]等。而在系统辨识领域,人工蜂群算法也有较多的应用,比如:非线性系统参数辨识[16-18]、机器人参数辨识[19]、潜器参数[20]等。

本文针对以传递函数描述的线性系统,提出了一种基于人工蜂群算法的系统辨识算法。该算法利用人工蜂群算法的全局搜索能力,根据给定的阶跃响应数据以及设计的寻优目标函数,得到一组合适的传递函数参数。仿真实验表明,本文提出的辨识方法具有较高的辨识精度。

1 人工蜂群算法

人工蜂群算法包括三种类型的蜜蜂:雇佣蜂、跟随蜂以及观察蜂。其中,雇佣蜂和跟随蜂的数量相同,并且分别占蜂群总数的1/2。每个雇佣蜂对应一个蜂蜜源,这些雇佣蜂的主要工作是寻找并记录与之对应的蜂蜜源。然后,将蜂蜜源的相关信息通过圆摆舞的方式传递给跟随蜂,跟随蜂就根据这些信息来选择蜂蜜源[21]。当雇佣蜂对应的蜂蜜源的位置多次未改变,雇佣蜂变为观察蜂,通过局部搜索确定新蜂蜜源的位置[22]。

在该算法中,每个蜂蜜源位置坐标表示一个可行解。在算法的每一次循环中,雇佣蜂都通过邻域搜索寻找每个蜂蜜源,并计算每个蜂蜜源对应的适应值。根据雇佣蜂传递的信息(即每个蜂蜜源的适应值),跟随蜂通过一定的概率来选择蜂蜜源,并在选择的蜂蜜源周围寻找新的蜂蜜源,并计算它们的适应值及目标函数值[23]。

雇佣蜂和跟随蜂寻找蜂蜜源的公式,如式(1):

其 中,j ∈{1,2,…,D},i ∈{1,2,…,N}。N 是 蜜 蜂 源 的个数,D 是每个蜜蜂源的维度,k 是不等于i 的随机索引值,φij是在[-1,1]区间的随机数,xij(n)是蜂群新的更新位置,xij(n-1)是当前位置。如果更新后的蜂蜜源的目标值优于当前蜂蜜源,则利用新的蜂蜜源更新当前的值,否则,保留当前的蜂蜜源值。

跟随蜂选择蜂蜜源的概率为[24]:

其中:Pi 表示跟随蜂选择蜂源i 的概率,fit(i)是选择蜂源i 所对应的目标函数值。

2 线性系统辨识模型

目前,比较常见的线性系统的辨识模型主要包括如下几类:

1)高阶对象

当求取出的n 不是整数时,用近似的整数代替。

2)多容惯性对象

3)具有纯迟延的高阶惯性对象

4)无自平衡对象

5)零稳态对象

6)逆响应对象

该对象的特点是:在阶跃扰动情况下,系统的输出先朝着与最终趋势相反的方向变化,然后在朝着最终的趋势变化。比较典型的,比如汽包炉的蒸汽量扰动引起的汽包水位的变化、循环流化床锅炉一次风阶跃扰动引起的床温变化等。除了式(8)以外,逆响应系统的传递函数还可描述为:

7)高阶有理对象

该对象描述的参数较多,一般不采用这种辨识模型。

3 本文算法

本文提出的辨识算法具体描述如下:

1)选择辨识模型,根据对象特性确定待辨识模型参数的变化区间。

2)确定人工蜂群优化算法的目标函数,一般选择为:

其中,yi为实际输出,为辨识模型输出。

3)初始化蜂群算法的种群个数、蜂源开采次数以及初始种群值,并计算初始种群的适应度(目标函数值)。

4)根据式(1)更新雇佣蜂的值,计算新的适应度值并选择最佳值。

5)判断同一蜂源利用的次数是否超过设定值,如果没有,则根据式(2)计算蜜源被选择的概率,舍弃该蜂源变为侦查蜂并重新初始化蜂源。

6)根据式(1)更新雇佣蜂的值,计算新的适应度值并选择最佳值。

7)判断同一蜂源利用的次数是否超过设定值,如果超过,则舍弃该蜂源变为侦查蜂并重新初始化蜂源。

8)判断人工蜂群算法是否达到了结束条件,如果没有达到结束条件,则转步骤(4)。

9)算法结束后,验证得到的辨识模型是否满足辨识精度要求,如果不满足,则重新进行寻优或者选择新的传递函数形式。

4 仿真实例

4.1 仿真实例1

待辨识模型为:

本例采用第一种传递函数形式,原始的数据通过该对象的阶跃响应得到,并在输出的时候,增加了随机分布的白噪声,以模拟现场的测量误差[11]。辨识出的传递函数如下:

图1 显示了实际输出和辨识模型输出曲线。

4.2 仿真实例2

待辨识模型为:

本例采用第二种传递函数形式,原始的数据通过该对象的阶跃响应得到,并在输出的时候,增加了随机分布的白噪声,以模拟现场的测量误差。辨识出的传递函数如下:

图1 实际输出和辨识模型输出曲线(仿真实例1)Fig.1 Actual output and identification model output curve(Simulation 1)

图2 实际输出和辨识模型输出曲线(仿真实例2)Fig.2 Actual output and identification model output curve(Simulation 2)

图2 显示了实际输出和辨识模型输出曲线。

4.3 仿真实例3

待辨识模型为:

本例采用第三种传递函数形式,原始的数据通过该对象的阶跃响应得到,并在输出的时候,增加了随机分布的白噪声,以模拟现场的测量误差。辨识出的传递函数如下:

图3 显示了实际输出和辨识模型输出曲线。

图3 实际输出和辨识模型输出曲线(仿真实例3)Fig.3 Actual output and identification model output curve(Simulation 3)

5 结论

本文提出了一种基于人工蜂群算法的线性系统辨识方法,线性系统通过传递函数来描述。人工蜂群算法是近些年发展起来的一种群体智能优化算法,其全局寻优能力强、效率较高,得到了广泛应用。常见的线性传递函数的辨识模型有7 类,在辨识中使用较多的是前3 种,本文通过3个仿真实例,分别验证了前3 种辨识模型。通过比较实际输出和辨识模型输出曲线,本文提出的辨识算法具有较高辨识精度,而模型1 和模型3 的辨识精度更高,在实际中应用也较多。

猜你喜欢
阶跃传递函数实例
多尺度土壤入渗特性的变异特征和传递函数构建
长江上游低山丘陵区土壤水分特征曲线传递函数研究
PSS2A模型在水泥余热机组励磁中的实现与应用
探讨单位阶跃信号的教学
LCSR法响应时间原位测量装置的设计与实现
完形填空Ⅱ
完形填空Ⅰ
无超调不限阶数的M型次多容惯性标准传递函数
晶体管驱动的阶跃二极管大幅度窄脉冲源
CO2阶跃变化对茄子动态光合特征参数的影响