智能算法在系统辨识中应用
智能方法在辨识系统中的应用
无论是最小二乘法还是极大似然法,它们在精确辨识线性模型上的成功是毋庸置疑的;但是对生产过程中更多非线性模型的辨识,显然有些束手无策。在最近的几十年中,计算机技术的高速发展和优化计算方法的进步,各种辨识问题的理论研究发展迅速,新方法不断出现,实际应用日益广泛。
近年来,随着智能控制理论研究的不断深入及其在控制领域的广泛应用,神经网络、遗传算法、蚁群算法、小波网络、模糊理论等知识被应用于系统辨识中,发展为很多新的系统辨识方法。它们可以用于线性、非线性的在线辨识。
它的基本过程是:首先通过系统仿真,求出与实际系统在相同外界扰动下的模型输出,然后比较模型输出与系统的实际输出这两者之间的差异,构成误差函数,利用误差函数来不断修正数学模型中的未知参数。当误差函数取极小值时,就认为此时数学模型的参数就是待辨识系统的参数。
一、常用系统辨识的智能算法简介
1. 蚁群算法
蚁群算法的主要特点是算法利用正反馈的原理使得该方法能很快发现较好解;分布式计算使得该方法易于并行实现,与启发式算法相结合,使得该方法易于发现较好解。研究结果表明,蚁群算法具有较强的鲁棒性。目前,该算法的优越性已经得到一定的体现,初步的研究结果已显示出该算法在求解复杂优化问题(特别是离散优化问题)方面的优越性.但是该算法也存在一些缺点,如需要较长的搜索时间,容易出现停滞现象等。 但从当前的应用效果来看,这种模仿自然生物的新型系统寻优思想无疑具有十分光明的前景。
2. 神经网络算法
人们对神经网络是从 20 世纪 40 年代开始。1943 年首先提出了人工神经网络的模型,迈出了人类研究神经网络的第一步。之后神经网络经历了发展阶段和低潮阶段。直到 80 年代,随着 Hopfield 神经网络模型和 BP 神经网络模型的理论的提出,神经网络理论逐渐引起各国科学研究工作者的关注。 目前,自动控制领域面临着控制对象的复杂程度、非线性程度愈加严重,这样,对控制系统的要求更加提高。人工神经网络有很强的适应于复杂环境能力和对多目标控制自学能力,并可以任意精度逼近任意非线性连续函数。正好解决控制领域的许多难题。
3. 遗传算法
遗传算法是一种建立在生物界自然选择原理和自然遗传机制的随机搜索法,
采纳了自然进化模型,将“优胜劣汰,适者生存”的生物进化原理引入到人工系统中实现特定目标的优化。
在过去十年,随着工业生产规模的不断扩大,最优化的重要性不断提高,许多重要的大规模组合优化问题及具有复杂约束条件的工程设计问题只能用现代的计算机获得近似解。遗传算法能够在对象数学模型上不十分明确,且存在大量约束条件的情况下,更好地排除局部最优解的干扰,达到全局最优解,因而它被用于与复杂或未知对象相关的参数优化过程中。遗传算法属于概率型搜索算法的一种,但是与直接的随机搜索方法不同的是它在搜索过程中始终保持一个可行解的群体,因此该算法比一般的直接搜索算法更强大。
4. 退火算法
1982 年,Kirkpatrick 等首先意识到固体退火过程与组合优化问题之间存在的类似性,Metropolis 等对固体在恒定温度下达到热平衡过程的模拟也给他们以启迪:应该把Metropolis 准则引入到优化过程中来。最终他们得到一种对Metropolis 算法进行迭代的组合优化算法,这种算法模拟了固体的退火过程,因此称之为“模拟退火算法”。
当模拟退火算法最初被引入时,这个算法主要应用于集成电路芯片的设计。现在则已经被各个领域所应用,如模糊模式识别、城市土地布局以及配电网络优化等。
随着研究的不断进展,人们对原始的模拟退火算法不断的改进,逐渐形成了如:加温退火法,有记忆的模拟退火算法、多次寻找法、回火退火法以及并行模拟退火算法以及将模拟退火算法与基因算法混和的算法等等。这些算法极大的提高了模拟退火算法的优化能力。
二、蚁群算法用于系统辨识的研究
1. 蚁群算法的基础
人工蚂蚁“寻找食物”群体行为模型如图所示。假设蚂蚁以 l 单位长度/单位时间的爬行速度往返于蚁巢 E 和食物源 A 之间,并且沿途释放的信息素浓度为1。
图 (a )中 d 表示距离,每过 1 个单位时间各有 30 只蚂蚁离开 E 和 A 。图(b )中时间 T=0 时,第一代 30 只蚂蚁分别从A 和 E 出发到达 B 和 D ,此时路径上无信息素,蚂蚁将以相同的概率选择两条路径中的一条行进,即有 15 只蚂蚁选择通向 C 的路径,15 只选择通往 H 的路径。 图 (c )中 T=l 时,BCD 上留有 30 只蚂蚁的信息素,路径 BHD 上留有15 只蚂蚁的信息素,即 BCD 上信息素的浓度为 BHD 上的 2 倍。此时第二代 30只蚂蚁分别从 A 和 E
出发到达 B 和 D 时按概率选择,将有 20 只蚂蚁选择 C ,10 只蚂蚁选择 H 。于是 BCD 上将遗留更多的信息素,这个过程反复进行,则BCD 上的信息素浓度以更快的速度增长,之后越来越多的蚂蚁选择短路径,最终整个系统收敛到此路径。
蚁群优化算法还是一种随机搜索算法,它通过侯选解组成的群体的进化过程来寻求最优解,这个过程包含两个阶段:适应阶段和合作阶段。适应阶段中,各侯选解根据积累的信息不断调整自身结构;合作阶段中,侯选解之间相互交流,以产生性能更优的解。
2. 蚁群算法的数学模型
蚁群算法最初应用于旅行商问题,指定n 个城市,和两两城市之间的距离,要求确定一条经过各个城市当且仅当一次的最短路线。旅行商问题只是蚁群算法中最基本、最典型的一个,对于其它方面的问题,可以依据旅行商问题模型加以修改即可应用。虽然从形式上看二次分配问题、车辆路由问题等其它优化从形式上看不同,但基本原理相同,都是通过模拟蚁群行为达到最优化的目的。当然,系统辨识也包括在内,它同样是利用蚁群搜索找到最优模型。
为模拟实际蚂蚁行为,引入下列符号:
m ——蚁群中蚂蚁数量
bi (t) ——t 时刻位于城市i 的蚂蚁个数, m = n i=1b i (t)
bij ——两城市 i 和 j 之间的距离
ηij ——边(i,j) 的能见度,反应由城市i 转移到城市 j 的启发程度,这个量在蚂蚁系统的运行中保持不变
τij ——边( I,j)上的信息素轨迹强度
Δτij ——蚂蚁k 在边( I,j)上留下的单位长度轨迹信息素量
k Pij ——蚂蚁 k 的转移概率, j 是尚未访问的城市
每只蚂蚁具有如下特征:
(1)在从城市i 到城市 j 的运动过程中或者是在完成一次循环后,蚂蚁在边( I,j)上释放信息素轨迹;
(2)蚂蚁概率的选择下一个将要访问的城市,这个概率是两城市间距离和连接两城市路径上存有信息量的函数;
(3)在完成一次循环以前,不允许蚂蚁选择已访问过的城市。
在初始时刻,各条路径上的信息素量相等。蚂蚁k 在运动过程中根据各条路径上的信息素决定转移方向。蚂蚁系统所使用的状态转移规则被称为随机比例规则,它给出位于城市i 上的蚂蚁k 选择移动到城市 j 的概率。在t 时刻,蚂蚁k
k 在城市i 上选择移动到城市 j 的概率 Pij 为:
其中,allowed k 表示蚂蚁 k 下一步允许选择的城市。α 和 β 为两个参数,分别反映了蚂蚁在运动过程中所积累的信息和启发信息在蚂蚁选择路径中的相对重要性。为了满足蚂蚁必须经过所有n 个不同的城市,在这个约束条件下,为每只蚂蚁都设计了一个数据结构,称为禁忌表。禁忌表中记录了在t 时刻蚂蚁k 已经走过的城市,不允许蚂蚁k 在本次循环中再次经过这些城市,当蚂蚁走完之后,禁忌表被用来计算蚂蚁k 当前所建立的解决方案。之后,禁忌表被清空,该蚂蚁又可自由进行选择。
经过n 个时刻,蚂蚁完成一次循环,各路径上的信息素将进行调整:
Δτk ij (t,t +n) 表示第k 只蚂蚁在时刻( t,t+n)留在路径( I,j)上的信息素量,路径越短释放信息素量越多; Δτij (t,t +n) 表示本次循环中路径( I,j)的信息素的增量;ρ表示轨迹的持久性,而(1-ρ) 为信息素轨迹的衰减系数,设置ρ
简单的蚁群算法过程如下:
(1)初始化 Αt ——初始化蚁群。
(2)评价 Αt ——根据目标函数对每一只蚂蚁的适应度做评价。
(3)释放信息素——根据适应度,对蚂蚁所经过的路径按照一定的比例释放信息素。适应度越高,所释放信息素越多。
(4)蚂蚁移动 ——每一只蚂蚁依据前面蚂蚁所留下的信息素,和自己的判断选择路径。
(5)信息素挥发——信息素会随着时间不断的消散。
根据具体算法不同,Δτij (t,t +1) 的表达形式有所不同可以分为蚁量系统、蚁密系统和蚁周系统。
在蚁量系统中,一只蚂蚁在经过路径( i,j) 上释放的信息素量为每单位长度 Q ,即:
在蚁密系统中,一只蚂蚁在经过路径( i,j) 上释放的信息素量为每单位长度,即:
蚁周系统与蚁量、蚁密系统区别在于蚂蚁建立完整的方案后才释放信息素,利用的是整体信息;而蚁量、蚁密系统则是建立局部( i ,j) 城市的方案后释放信息素。Δt 的更新策略是蚂蚁 k 在走过 n 步完成一次循环后进行信息素释放,如下式:
3. 蚁群算法的描述
蚁群优化是一种基于信息素的搜索算法。蚁群中的蚂蚁智能个体在问题空间内搜索产生优化目标的可行解,并在问题空间内以某种方式遗留信息素。
随着迭
代次数的增加,信息素会依据之前产生的可行解进行更新,从而使得蚁群在之后的搜索中能更多的集中在已找到的较优解的附近。简言之,蚁群算法的基本思想是基于以下两步迭代来解决优化问题:
(1)在问题空间内搜索产生可行解,搜索时在一定程度上参照信息素;
(2)用第(1)步产生的解来更新信息素,使得新搜索能更多的集中在高质量的搜索空间内。
初始化:设置参数并初始化信息素
while (直至满足迭代截止条件再结束此循环)do
for 每个蚂蚁智能个体(直到蚁群中所有蚂蚁完成下一层操作再结束此循环) for 每行进一步(直到构造出完整的可行解再结束此循环)
1) 蚂蚁智能个体基于信息素以及具体问题的先验信息构造一步解;
2) 进行信息素局部更新。(可选步骤)
end for
end for 进行信息素全局更新。
end while
end
在上述算法中,蚂蚁是以逐步行进的方式构造问题的可行解,并且蚂蚁每行进一步,是以一定的概率选择信息素较浓同时启发式信息高的弧,直到已遍历所有的节点,此时便得到了一个可行解。蚂蚁每行进一步要进行局部信息素更新,即局部更新针对当前走过的一步路径,当蚁群中所有的蚂蚁均得到可行解之后要进行全局信息素更新,全局更新通常是对当前找到的最好解对应路径进行。其中迭代截止条件针对具体问题可选择期望的最优值或者单一的循环次数。
三、实例验证(利用蚁群算法辨识热工系统)
将蚁群算法引入热工对象模型辨识,设计了一种快速的蚁群算法,并在MATLAB 平台上设计了一种通用的热工对象模型辨识算法。仿真研究表明,本文提出的改进蚁群算法是一种简单易行的辨识方法,在各种输入信号下,都能得到了令人满意的辨识结果。
1. 辨识的函数
3
下面辨识实例中各参数取值如下:
蚂蚁种群数目:MY=40
城市数目:CITY=20
更新的种群代数目:NC=20
选择概率:使用轮盘赌法作为选择概率,比较当前路径所占总比重和随机产生的0~1间的数,根据比较结果选择下一城市。
2. 仿真结果
选定仿真时间为1000秒,步距为1秒,运算结束条件为达到循环次数20次。 循环结束后得到一组参数平均值: K =3;T1 =8s;T2 =19s;T3 =33s 辨识曲线如下:
输入为白噪声 所产生白噪声为-1~1 得到一组参数平均值:
由此可见,在两种给定输入下,均可得到较理想的辨识结果,且蚁群算法辨识不仅可应用于线性系统辨识,也可应用于非线性系统辨识过程。不同于如最小二乘、相关分析等方法,
采用蚁群算法进行参数辨识对信号和系统要求相对较低,
具有应用价值。
采用蚁群算法进行典型线性系统参数辨识,试验结果表明,辨识精度较高。但是由于参数范围约束对蚁群算法辨识精度有很大影响,在今后对蚁群算法的研究还需要针对这一问题进行进一步改进。