由于模糊控制技术不需要建立被控对象的精确数学模型, 故其具有鲁棒性强、快速响应等优点,而且模糊控制可以大幅减弱干扰出现和参数变换时对控制效果的影响,从而被广泛应用于各种复杂工业控制系统中。由于模糊控制是通过人们对被控对象模糊信息的归纳和对操作经验的总结,在缺乏有效的指标体系的情况下,模糊控制规则和模糊变量的隶属度很难用试凑的方法来取得, 得到的模糊控制规则也并不完善, 进而影响整个模糊控制的效果。为了解决这个问题,研究者们提出了许多基于人工智能的优化解决方案,通过对系统进行参数识别,从而获得优化的系统参数,使系统输出和目标输出之间的差异达到最小。无导数、速度快的人工智能算法是找到最佳参数值的方法之一,如遗传算法[1-3],基于神经网络的方法[4-5]等。
近年来,采用群体启发式优化算法进行模糊参数识别的研究取得了一些初步的研究成果,比如可以利用粒子群优化算法对模糊控制规则和模糊混合控制器的隶属函数同时进行优化。文献[6]在模糊控制器设计过程中,提出一种利用蚁群算法来优化模糊控制规则的方法,利用蚂蚁行走的最优路径来寻找模糊控制系统的最优参数,最终的仿真结果也显示了该方法的有效性。文献[7]则提出一种基于免疫进化原理的模糊控制优化算法,对隶属函数参数和模糊控制规则分别编码, 之后逐步联合再进行优化,仿真结果表明利用基于免疫进化原理的模糊控制优化算法可以提升飞机防滑刹车效率。而在模糊系统使用的众多参数优化算法中,细菌觅食算法的研究和应用还鲜有文献报道。
细菌觅食优化算法(bacterial foraging optimization, BFO)是一种新的群体启发式算法,类似于粒子群算法(particle swarm optimization, PSO)识别理想方案的过程。但BFO算法增加了在搜索空间中特殊的移动特性,如对营养源的游动和翻滚特性,故能使它们更准确地向营养源游动。因此,在发现细菌离开养分时,它会朝存在更高概率的营养源的地方游动。目前常规的细菌觅食算法使用的是固定步长值方法来求解问题,这种方法不利于算法的收敛。因此,为了提高细菌觅食优化算法的性能,研究趋向性操作和其他混合算法的使用对拓展BFO算法的使用场景和领域具有十分重要的意义。
近年来,采用该算法进行应用研究已有一些相关报道,如Guzmán等[8]利用“大肠杆菌”的趋化行为,解决多目标优化问题。文献[9]结合细菌觅食算法和粒子群算法的优缺点,提出了一种混合细菌觅食优化算法,该算法拥有较强的全局搜索能力及收敛速度快等优点。仿真结果表明,与标准的粒子群及细菌觅食算法相比,混合细菌觅食算法虽然在一定范围内提高了收敛的速度,但在寻找全局最优解时仍然无法避免早熟的现象。因此,文中的研究重点是如何改进BFO算法的全局搜索能力。在全面分析了标准BFO算法的前提下,提出了一种新型的改进细菌觅食算法(IBFO),利用其算子来调节TSK模糊系统的关键参数,最后将仿真结果与现有的优化结果做出对比,从而检验改进细菌觅食算法的有效性。
1 改进型模糊控制系统描述结合粒子群模糊混合控制策略中隶属度函数的构建方法[10],现对改进型模糊系控制统进行描述,首先基本的TSK模糊系统的输出定义为
$ {Y_{{\rm{tsk}}}}\left( x \right) = \frac{{\sum\limits_{i = 1}^M {{\mu ^i}\left( x \right){g^i}} }}{{\sum\limits_{i = 1}^M {{\mu ^i}\left( x \right)} }}。$ | (1) |
在文献[11]中提出了上述TSK模糊系统设计的新方法。如果一个系统的输入输出关系服从高斯混合模型(Gussian mixture model, GMM),每个前项系数为1/M,其中M是模糊规则数,则GMM的条件均值可以减小到具有相同的权重,在TSK模型基础上加权,即
$ {Y_{{\rm{tsk}}}}\left( x \right) = \frac{{\sum\limits_{i = 1}^M {C{\mu ^i}\left( x \right){g^i}} }}{{\sum\limits_{i = 1}^M {{\mu ^i}\left( x \right)} }}。$ | (2) |
式中,对所有规则的隶属函数,输出具有相同的权值C=1/M。常数C决定了权重和输出之间的权衡,增加C值,可以增强模糊规则的相对重要性。而在C-ATSKFS中,C不是一个恒定常数,而是采用加权函数,为
$ {C_i} = w\left( i \right)C, $ | (3) |
式中,w(i)是权重函数,且满足w(i) > w(i-1),i = 2, …, M。权值Ci的大小由训练数据的远近决定,训练数据点由近至远,相应的权值会变得越来越大,故Ci被称为提升常数,会将离得远的训练数据点给予更多的权重。在本次实验中,对线性加权函数和指数加权函数2种加权函数进行了研究。具体描述如下:
A对于线性加权函数
$ w\left( i \right) = \frac{i}{{M\left( {M + 1} \right)/2}},\left( {i = 1, \cdots ,M} \right), $ | (4) |
$ 即:{C_i} = C\frac{i}{{M\left( {M + 1} \right)/2}},\left( {i = 1, \cdots ,M} \right)。$ | (5) |
B对于指数加权函数
$ w\left( i \right) = \frac{1}{{1 + \exp \left( {a - 2ai/M} \right)}},\left( {i = 1, \cdots ,M} \right), $ | (6) |
$ 即:{C_i} = C\frac{1}{{1 + \exp \left( {a - 2ai/M} \right)}},\left( {i = 1, \cdots ,M} \right), $ | (7) |
式中,参数a是控制提升时间。这个权重函数的行为可以概括如下:
1) 当a→0,
在这种情况下,所有的训练数据点有相同的权重,这使得C-ATSKFS变成不加权的TSK模型。
2) 当a→∞,
3) 当a∈[0, ∞)。这时,a的增加,使训练数据点的前半数的权重将变得越来越小,半数训练数据点的权重加大。
综上所述可知:在C-ATSKFS中,权函数Ci值决定了权重和输出之间的权衡,选择合适的Ci值,完善模糊控制规则,对提高模糊控制的效果具有很大的影响,因此,使用改进的细菌觅食优化算法来优化模糊控制器的参数Ci值,从而获得优化的系统参数,使系统输出和目标输出之间的差异达到最小。
2 改进细菌觅食优化算法(IBFO) 2.1 标准BFO算法细菌觅食优化算法求解优化问题的一般流程为:产生初始解群体、计算代价函数的值、利用群体的相互影响进行优化,如图 1所示。其中Nc, Nre, Ned,分别是最大趋化步长、繁殖步长、消除扩散步长[12]。BFO的4个基本步骤描述如下:
1) 趋向性操作:模拟细菌搜索空间交替使用的游动和翻转动作,当细菌完成每一次翻转之后,若能改善适应度,细菌则沿之前的方向进行若干步的移动,直到达到已设定的移动步数临界值或它的适应度不再改善,此过程被定义为前进,为
$ \begin{array}{*{20}{c}} {{\theta ^i}\left( {j + 1,k,l} \right) = {\theta ^i}\left( {j,k,l} \right) + C\left( i \right)\varphi \left( i \right);}\\ {\varphi \left( i \right) = \frac{{\Delta \left( i \right)}}{{\sqrt {{\Delta ^{\rm{T}}}\left( i \right)\Delta \left( i \right)} }},} \end{array} $ | (8) |
式中,θi、C(i)、Δ(i)、j、k、l分别代表位置、步长、随机方向、趋化步长、繁殖步长、细菌消除扩散步长。
2) 群游性操作:模拟信号在细胞间的转导,互相通报附近的营养源和有害原料信息,为
$ \begin{array}{*{20}{c}} {{J_{{\rm{cc}}}}\left( {\theta ,P\left( {j,k,l} \right)} \right) = \sum\limits_{i = 1}^S {{J_{{\rm{cc}}}}\left( {\theta ,{\theta ^i}\left( {j,k,l} \right)} \right)} }\\ \begin{array}{l} \sum\limits_{i = 1}^S {\left[ { - {d_{{\rm{attractant}}}}\exp \left( { - {w_{{\rm{attractant}}}}\left| {\sum\limits_{m = 1}^p {{{\left( {{\theta _m} - \theta _m^i} \right)}^2}} } \right.} \right)} \right]} + \\ \sum\limits_{i = 1}^S {\left[ { - {h_{{\rm{repelltant}}}}\exp \left( { - {w_{{\rm{repelltant}}}}\left| {\sum\limits_{m = 1}^p {{{\left( {{\theta _m} - \theta _m^i} \right)}^2}} } \right.} \right)} \right]} \end{array} \end{array} $ | (9) |
Jcc(θ, P(j, k, l))为附加在目标函数的数值,其中S,P,θ分别为群的大小、空间尺寸、空间位置。Dattractant和Wattractant为引力的深度和宽度系数;Hrepellant和Wrepellant为斥力的深度和宽度系数。
3) 繁殖性操作:通过基于食物获取能力的细菌健康值的测量方法模拟再现细菌的繁殖力。但为了避免膨胀的复杂性,使Sr(=S/2),细菌健康值排序在后一半的细菌死亡,剩余健康的细菌将进行繁殖,每个细菌分裂成2个,从而使得种群大小不变。
4) 迁徙性操作:该操作可消除扩散。由于本地环境的逐渐变化,细菌的寿命可能会受到影响。通过模拟环境约束条件对细菌变异的概率进行更深层的研究。
2.2 IBFO算法的构建假设在一个TSK模糊系统中有n个输入变量和r个规则,则在搜索空间中的细菌位置将由向量表示为:
$ \mathit{\boldsymbol{S = }}\left[ {{m_{11}},{\sigma _{11}}, \cdots ,{m_{1n}},{\sigma _{1n}},{m_{2n}},{\sigma _{2n}} \cdots ,{m_{rn}},{\sigma _{rn}},{a_1}, \cdots ,{a_r}} \right] \otimes r, $ | (10) |
式中:m和σ分别是隶属函数的中心和宽度;a是在模糊系统中规则的随机值;S的实际向量值等于(2n+1)⊗r。
2.2.1 粒子群算法的群游操作优化IPSO在BFO算法的基础上增加了搜索空间细菌的速度值。IPSO算法将PSO算法作为变异算子[13], 去除了速度更新算法中的个体认知部分, 仅使用社会认知部分,如式(11) 所示。同时, 将通过PSO变异算子得到的群体信息加入到位置更新方程中, 如式(12)。其目的是通过用PSO算法的记忆功能来提高BFO算法的搜索效率和全局搜索能力。
$ \mathit{\boldsymbol{V}}_{{\rm{id}}}^{{\rm{new}}} = w \cdot \mathit{\boldsymbol{V}}_{{\rm{id}}}^{{\rm{old}}} + {c_1}{\rm{ran}}{{\rm{d}}^k}\left( {{\mathit{\boldsymbol{\theta }}_{g - {\rm{bestd}}}} - \mathit{\boldsymbol{\theta }}_d^{{\rm{old}}}\left( {i,j + 1,k} \right)} \right)。$ | (11) |
假设待优化变量的每一维度相互独立,各维度间服从高斯分布, 按公式(13) 和(14) 进行复制
$ \mathit{\boldsymbol{\theta }}_d^{{\rm{new}}}\left( {i,j + 1,k} \right) = \mathit{\boldsymbol{\theta }}_d^{{\rm{old}}}\left( {i,j + 1,k} \right) + \mathit{\boldsymbol{V}}_{{\rm{id}}}^{{\rm{new}}}。$ | (12) |
式中:Vid是待淘汰害菌的死亡速度矢量;θ是位置向量;j,k分别是趋化和繁殖指数;w,c1是粒子群算法的系数。
2.2.2 复制性操作的分析与改进考虑到细菌觅食算法的复制操作, 细菌能量值Jhealth是根据在一次趋向性操作中细菌个体经过的所有位置的适应值的累积并从小到大来进行排序的(能量值越大则细菌越健康), 通过比对能量函数值的大小,淘汰掉Sr=S/2个中能量较小的细菌, 选择Sr个能量值较大的细菌进行相同复制[14]。但该方法也不能保证下一代中适应值最优的细菌完整的保留下来。故提出将嵌入分布估计算法应用在细菌觅食的复制操作中,对釆样空间和优秀个体的分布进情况行统计分析,建立对应的概率分布模型,以此概率模型产生下一代个体, 反复迭代, 来实现群体的进化。该过程的具体步骤如下所示:
Step1 每完成一个的趋向循环后, 通过能量值的大小对每个细菌进行排序。
Step2 把能量值排在后半数的细菌淘汰掉, 对于能量值较高的前半数细菌进行分布估计再生:
$ {X_{\mu ,\sigma }} = {r_{{\rm{norm}}}} * \sigma + \mu , $ | (13) |
$ {r_{{\rm{now}}}} = \sqrt { - 2\ln {r_1}} * \sin \left( {2{\rm{\pi }}{r_2}} \right), $ | (14) |
式中:r1和r2是均匀分布在区间[0, 1]中的随机数;σ是细菌较优位置的标准差向量;μ则是细菌较优位置的分维度均值。
2.2.3 BFO差分进化优化BFO算法的优化是通过细菌群体间的竞争和合作来实现的,它可以避免复杂优化的局部极小问题。然而,传统的BFO算法的优化过程比较缓慢[15],故可以利用差分进化算法,通过修正细菌趋化过程中的位置,来提高收敛精度,为
$ P = {\theta _{r1}} + F\left( {{\theta _{g{\rm{best}}}} - {\theta _{r2}}} \right) + {\rm{rand}}\left( {{\theta _{1{\rm{best}}}} - {\theta _{r3}}} \right), $ | (15) |
式中,F∈[0.5, 1],是放大因子;θr1, θr2, θr3是进化中种群的个体;θgbest是全局最优值;θ1best是当前位置;P是变异算子。
分类公式由公式(16) 来增加种群的多样性。
$ {\theta ^i} = \left\{ \begin{array}{l} {P_i},{\rm{if}}\;{\rm{rand}} < {\rm{CR}}\;{\rm{or}}\;i = i{\rm{rand,}}\\ {X_i},{\rm{otherwise}}, \end{array} \right. $ | (16) |
式中:CR是交叉因子;irand是随机的范围;rand是随机数,rand∈[0, 1]。
改进算法的流程如图 2所示。
为了验证文中提出的算法在一类非线性系统辨识中的有效性,非线性系统模型进行仿真验证为
$ y\left( {k + 1} \right) = \left( {y\left( k \right)/\left( {1 + {y^2}\left( k \right)} \right)} \right) + {u^3}\left( k \right). $ | (17) |
设系统的目标输入函数为
$ {y_d}\left( k \right) = 2{{\rm{e}}^{1 - \left( {k/100} \right)2}}\cos \left( {{\rm{\pi }}k/50} \right),k \in \left[ {1,400} \right]. $ | (18) |
采用均方根误差(root mean square error, RMSE)的功能计算模糊系统的性能。
$ {\rm{RMSE}} = {\rm{Sqrt}}\left( {\sum\limits_{k = 0}^{400} {{{\left( {{y_d}\left( {k + 1} \right) - y\left( {k + 1} \right)} \right)}^2}/400} } \right). $ | (19) |
适应度函数为
$ F = 1/\left( {{\rm{RMSE}} + \varepsilon } \right), $ | (20) |
式中,设置ε=10-10用于区别于0。
仿真过程中,有关算法的参数设定(选择)如下:
细菌空间尺寸P=75,总数S=50,趋向次数Nc=30,繁殖次数Nre=500,迁徙次数Ned=2, 游动次数Ns=5,游动步长C(i)=0.1,迁徙概率Ped=0.10。粒子群参数:C2=2,w从0.9到0.4线性递减,模糊系统的规则数选择为15。经过迭代运算,得到IBFO算法的适应度变化曲线如图 3所示,横轴为迭代次数,纵轴为RMSE适应值,为便于比较,图中还给出了PSO、BFO 2种算法的适应度曲线,可以看出IBFO算法相比其他2种算法初始的适应值更高,在多次迭代后适应值也高于另外2种算法。
采用这3种优化模糊控制规则库的算法,对控制对象进行设定值跟踪的仿真结果如图 4所示,由仿真曲线可知,IBFO算法相比粒子群和细菌觅食算法,收敛速度和精度明显提高,具有响应速度快、跟踪精度高的优点,输出曲线更加贴近给定轨迹,控制品质优于其他2种方法。
图 5是在t为0的时刻加入了一个扰动输入量f(k)=0.1e1-(k/100)2cos(πk/10))后,对控制对象进行相同设定值跟踪的仿真结果,由仿真曲线可知在施加扰动后IBFO算法仍具有上述优点,且抗干扰性能相比其他两种算法也更加优秀。
由于模糊控制需要去确定的参数很多,依据以往经验很难准确地得出各项参数和控制规则。针对细菌觅食算法易早熟、收敛速度慢等缺点,通过结合粒子群、蚁群等各种群集智能优化算法的优点,对标准的细菌觅食算法进行了如下3项改进:在群集操作中,利用粒子群迁徙的概率,增加了搜索空间中细菌的速度值;在复制操作中,通过分布估计思想,保留能量较高的半数细菌进行分布估计和再生;另外,在细菌的趋化过程中通过差分进化算法修改细菌当前位置来提高收敛速度。仿真实验结果表明:文中提出的方法对于模糊控制系统可达到比较理想的控制效果。
[1] | Chen H. Optimal fuzzy PID controller design for an active magnetic bearing system based on adaptive genetic algorithms[J]. Mathematical Structures in Computer Science, 2014, 24(5): 1–14. |
[2] | Hsu C H, Juang C F, Jhan Y H. Evolutionary fuzzy control using rule-based multi-objective genetic algorithms[C]//International Conference on Fuzzy Theory and Its Applications. IEEE, 2013:391-396. |
[3] |
李合生, 毛剑琴, 代冀阳.
基于遗传算法的广义Takagi-Sugeno模糊逻辑系统最优参数辨识[J]. 自动化学报, 2002, 28(4): 581–585.
LI Hesheng, MAO Jianqin, DAI Jiyang. Generalized takagi-sugeno fuzzy logical system optimal parameter identification based on genetic algorithm[J]. Acta Automatica Sinica, 2002, 28(4): 581–585. (in Chinese) |
[4] |
田毅, 张欣, 张良, 等.
神经网络工况识别的混合动力电动汽车模糊控制策略[J]. 控制理论与应用, 2011, 28(3): 363–369.
TIAN Yi, ZHANG Xin, ZHANG Liang, et al. Fuzzy control strategy for hybrid electric vehicle based on neural network identification of driving conditions[J]. Control Theory & Applications, 2011, 28(3): 363–369. (in Chinese) |
[5] |
洪昭斌, 陈力.
基于神经网络的漂浮基空间机械臂的自学习模糊控制[J]. 机械科学与技术, 2009, 28(7): 976–980.
HONG Zhaobin, CHEN Li. Self-learning fuzzy control of a space manipulator based on a neural network[J]. Mechanical Science and Technology for Aerospace Engineering, 2009, 28(7): 976–980. (in Chinese) |
[6] | Ganji M F, Abadeh M S. Rule based classification system for medical data mining using fuzzy ant colony optimization[J]. Lecture Notes in Engineering and Computer Science, 2010, 2186(1): 466. |
[7] |
刘泽华, 李振水, 贾爱绒.
免疫模糊控制算法在飞机防滑刹车系统中的应用研究[J]. 计算机测量与控制, 2009, 17(8): 1563–1565.
LIU Zehua, LI Zhenshui, JIA Airong. Study on aircraft anti-skid brake system based on immune fuzzy control algorithm[J]. Computer Measurement & Control, 2009, 17(8): 1563–1565. (in Chinese) |
[8] | Guzmán M A, Delgado A, Carvalho J D. A novel multiobjective optimization algorithm based on bacterial chemotaxis[J]. Engineering Applications of Artificial Intelligence, 2010, 23(3): 292–301. DOI:10.1016/j.engappai.2009.09.010 |
[9] | Pandi V R, Biswas A, Dasgupta S, et al. A hybrid bacterial foraging and differential evolution algorithm for congestion management[J]. European Transactions on Electrical Power, 2010, 20(7): 862–871. |
[10] |
严天一, 闫海敬, 侯兆萌, 等.
车辆半主动悬架粒子群模糊混合控制策略[J]. 农业机械学报, 2013, 44(8): 1–7.
YAN Tianyi, YAN Haijing, HOU Zhaomeng, et al. PSO-fuzzy-hybrid control strategy of semiactive suspensions[J]. Transactions of the Chinese Society for Agricultural Machinery, 2013, 44(8): 1–7. DOI:10.6041/j.issn.1000-1298.2013.08.001 (in Chinese) |
[11] | Liu X D. Modified TSK fuzzy system in stock price forecasting[C]//IEEE International Conference on Information and Financial Engineering. IEEE, 2013:621-624. |
[12] | Ray P K, Subudhi B. BFO optimized RLS algorithm for power system harmonics estimation[M]. Elsevier Science Publishers B. V. 2012. |
[13] |
范国英, 郭雷, 孙勇, 等.
BFO-PSO混合算法的PSS参数优化设计[J]. 电力系统及其自动化学报, 2010, 22(6): 28–31.
FAN Guoying, GUO Lei, SUN Yong, et al. Parameters optimize of PSS based on BFO-PSO hybrid algorithm[J]. Proceedings of the Chinese Society of Universities, 2010, 22(6): 28–31. (in Chinese) |
[14] |
曹天问, 雷秀娟.
改进BFO算法在函数优化问题上的应用[J]. 计算机工程与应用, 2013, 49(13): 175–179.
CAO Tianwen, LEI Xiujuan. Application of improved bacteria foraging optimization algorithm on function optimization[J]. Computer Engineering and Applications, 2013, 49(13): 175–179. DOI:10.3778/j.issn.1002-8331.1212-0095 (in Chinese) |
[15] | Passino K M. Biomimicry of bacterial foraging for distributed optimization and control[J]. IEEE Control Systems Magazine, 2002, 22(3): 52–67. DOI:10.1109/MCS.2002.1004010 |