第12章数字仿真在控制系统参数优化中的应用12.1系统仿真与参数优化在控制系统的设计过程中,通常需要考虑最优化的问题,也就是如何使控制系统在满足一定约束条件下使得某些指标达到最优值。一类是控制系统参数优化;另一类是控制系统函数优化,也就是控制器优化。控制系统参数最优化一般是指,控制对象是已知的,控制器的结构、形式也已确定,需要通过调整或找出控制器的某些参数,使得系统的性能在某种性能指标意义下达到最佳。这一章我们主要来研究控制系统的参数优化问题。12.1.1目标函数衡量控制系统调节品质的指标一般概括为:稳定性、准确性、快速性。但是通常情况下,这三种调节品质指标是互相矛盾的,譬如,为了提高系统的稳定性,往往会引起被调量的动态及静态偏差加大。在保证调节系统具有一定的稳定裕度的情况下,应尽量提高系统的准确性和快速性。控制系统参数优化需要解决两方面的问题:怎样把上述的三个指标归结为一个目标函数:在目标函数确定后如何通过改变系统参数来使其达到最小值(最大值)。若目标函数用Q来表示,需要寻优的参数用a来表示,则对于数学模型的控制系统(x为n维状态矢量,f为n维系统运动方程的结构矢量),要求满足下列约束条件:不等式约束H(a)≤0(q维)等式约束G(a)=0(p维)等式终端约束S(a,tf)=0(m维,tf为终端时间)寻找一组参数a=a*,使目标函数Q(a*)=minQ(ai)(ai≠a)),,(taxfx1.目标函数的选取基于不同的目的,可以构造多种不同的目标函数,使它既能比较确切地反映系统的品质,又能比较方便的计算。显然,当选择不同的目标函数时,对同一系统,使这些目标函数达到最优时参数将是不同的。在工程上,一般有两种选择目标函数的方法。第一类目标函数是直接按系统的调节品质提出的。由于衡量调节品质的指标一般有三个,而目标函数一般只有一个。所以,一般是根据实际系统的要求,取上述三个特征数值中的一个作为目标函数,而另外两个作为检验条件,或者由经验估计系统的某些参数可能对某个特征数值影响较大,则相应取目标函数并对不同参数讲行寻优计算。当然这样并不一定是总体最优。第二类目标函数是所谓误差目标函数,即采用期望的系统响应(应该是阶跃响应)和实际系统响应之差的某个函数作为目标函数,这实际上是对第一类目标函数的几个特征数值做某种数学上的处理,设法将它们统一地包含在一个数学表达式中。在实际使用中,积分的上限一般取系统过渡过程时间的1.5~2倍即可。同时,还考虑控制量或控制量变化速率作为积分项引入目标函数,表示对控制量的限制。2.目标函数的程序设计与实现前面提到的目标函数都可以在计算机上实现。第一类目标函数需要求系统的调节品质,第二类目标函数是需要求出系统的阶跃输入响应。无论使用哪类目标函数,最后归结为先对控制系统进行仿真,然后根据仿真结果求出目标函数值。(1)控制系统调节品质指标的计算。计算控制系统调节品质指标的程序框图如图12.1和图12.2所示。12.1.2目标函数的寻优方法控制系统的参数优化问题的解决途径一般有两种:间接寻优法和直接寻优法。1.间接寻优法2.直接寻优法直接寻优法就是直接计算目标函数Q(a)之值。按一定规律改变a,从而得到相应的Q(a),然后判断是否达到最小,若是则停止搜索;否则再改变a,直到满足为止。一般地,目标函数的寻优往往不是经过几次搜索就能实现的,至少要经过几十次甚至上百次的搜索,而每次搜索都要对系统进行一次仿真计算。因此,必须选择收敛性好,收敛速度快的寻优方法,尽量减少计算目标函数值的次数;另外,还要选择快速数字仿真方法或并行处理技术进行仿真以提高寻优速度。12.2单变量寻优技术单变量寻优法是最基本的直接寻优法。上一节中我们提到参数寻优过程中需要按照一定的规律确定寻优步长hk及寻优方向pk,其中hk的最优选择是一维寻优问题,即通过在搜索过程中不断缩小区间后达到最优值。单变量寻优法主要有两类:区间消去法和插值法。12.2.1区间消去法区间消去法的基本思想就是逐步缩小搜索区间,直至最小点存在的范围达到允许的误差范围为止。根据确定a1、a2方法的不同,单变量寻优一般有Fibonacci法、黄金分割法。1.Fibonacci法该方法是按Fibonacci数列的规律进行的区间缩减的一种搜索方法。Fibonacci数列是由以下差分方程递推产生的:2.黄金分割法我们已知,如果每次缩短的区间均均为0.618,既每次迭代[an,bn]的长度与[an+1,bn+1]的长度之比均为0.618,这种方法称为黄金分割法。618.0lim1kkkFF12.2.2差值法差值法的基本思想就是先按照某种规律确定若干点并计算出这些点的目标函数值,然后通过这些点的某一类型曲线来近似目标函数的曲线,最后消去不需要的区间,在新的区间继续进行搜索。二次差值法是最为常用的差值法,该方法是用二次多项式来逼近Q(a)的。12.3多变量寻优技术多变量寻优就是在多维空间寻优,即搜索a*=(a1*,a2*,…,an*),其中n为被寻参数的维数。首先需要确定寻优方向P(k)(其中k表示第k步搜索),然后确定在该方向上的步长h(k)。12.3.1单纯形法1.单纯形法的基本思想上面介绍的最速下降法和共扼梯度法都是以梯度为基础的多变量寻优方法,均需计算目标函数的梯度。但在实际问题中目标函数的梯度往往很难求得,而且误差比较大。为了避免计算目标函数的梯度,产生了许多只计算目标函数的寻优方法,就是直接依据目标函数的信息来确定寻优方向的方法,即模式寻优法。单纯形法是使用最为广泛的模式寻优法。单纯形法多维寻优是利用单纯形的顶点计算目标函数的值,按一定的规则进行探索性搜索,并对搜索区单纯形顶点的函数值进行比较,判断目标函数的变化趋势,确定有利的搜索方向和步长。2.单纯形法的步骤3.应用单纯形法需要解决的问题4.单纯形法应用举例单纯形法寻优过程不必计算梯度,只需不断地进行顶点函数值的计算比较。因而算法简单,易于编程实现。下面用单纯形法对火力发电机组主汽温串级控制系统进行PID参数寻优。主汽温串级控制系统工艺流程图如图12.9所示。12.3.2遗传算法1.遗传算法的基本思想1975年Holland受生物进化论的启发提出了遗传算法(geneticalgorithms,简称GA),GA是基于“适者生存”的一种高度并行、随机和自适应的优化算法,它将问题的求解表示成“染色体”的适者生存过程,通过“染色体”群的一代代不断进化,包括复制、交叉和变异等操作,最终收敛到“最适应环境”的个体,从而求得问题的最优解。GA是一种通用的优化算法,其编码技术和遗传操作比较简单,优化不受限制性条件的约束。2.遗传算法的基本步骤遗传算法是一类随机优化算法,但它不是简单的随机比较搜索而是通过对染色体的评价和对染色体中基因的作用,有效的利用已有信息来指导搜索有希望改善优化质量的状态。标准遗传算法的主要步骤如下:(1)随机产生一组初始个体构成初始种群,评价每一个体的适配值。(2)判断算法收敛准则是否满足,若满足,则输出搜索结果;否则,执行下一步。(3)根据适配值的大小以一定方式执行复制操作。(4)按交叉概率执行交叉操作,生成新个体。(5)按变异概率执行变异操作,生成新个体。(6)由交叉和变异产生新一代的种群,返回步骤(2)。标准遗传算法的流程图如图12.13所示。3.遗传算法的设计与实现(1)编码。遗传算法寻优首先要确定问题的编码方案。所谓编码就是将问题的解用一种码来表示,从而将问题的状态空间与GA的码空间相对应。不同的码长和码制,对问题求解的精度与效率有很大影响,常用的编码形式为二进制编码。(2)初始种群的产生。初始种群的产生一般有两种方法。一种是完全随机的方法产生的,它适合于对问题的解无任何先验知识的情况;另一种就是加入先验知识,在满足先验知识转变的必要条件的解中随机选取样本。(3)适配值函数。适配值函数用于对个体进行评价,也是优化发展的依据。简单问题的优化,通常采用将目标函数直接变换成适配值函数的方法。复杂问题的优化往往需要根据实际问题及经验构造合适的适配值函数。(4)算法参数。在运行遗传算法程序时,需要对种群大小、染色体长度、交叉率、变异率、最大进化代数等参数进行预先选择,这些参数对遗传算法的性能有很重要的影响。12.3.3蚁群算法觅食行为是蚁群一个重要而有趣的行为。根据昆虫学家的观察和研究发现,生物世界中的蚂蚁有能力在没有任何可见提示下找出从蚁穴到食物源的最短路径,并且能随环境的变化而变化适应性地搜索新的路径,产生新的选择。在从食物源到蚁穴并返回的过程中,蚂蚁能在其走过的路径上分泌一种化学物质-信息激素,通过这种方式形成信息激素轨迹。蚂蚁在运动过程中能够感知这种物质的存在及其强度,并以此指引自己的运动方向,使蚂蚁倾向于朝着该物质强度高的方向移动。信息激素轨迹可以使蚂蚁找到它们返回食物源(或蚁穴)的路径,其他蚂蚁也可以利用该轨迹找到由同伴发现的食物源的位置。意大利学者M.Dorigo等人通过模拟蚂蚁觅食行为与TSP(旅行商问题)的相似性提出了蚁群算法。我们就以TSP问题来说明蚂蚁系统模型,对于其他问题,可以对此模型稍作修改便可应用。虽然它们从形式上看略有不同,但基本原理是相同的,都是通过模拟蚁群行为达到优化的目的。M.Dorigo曾给出蚁群算法的三种不同模型,分别称为Ant-cyclesystem、Ant-quantitysystem、Ant-densitysystem。在一系列标准测试问题上运行的实验表明,Ant-cycle算法的性能优于其他两种算法。因此,对蚂蚁系统的研究朝着更好的了解Ant-cycle系统特征的方向发展。现在,Ant-cycle算法模型通常被称作蚂蚁系统,而另外两种算法模型被放弃了,这里也将根据Ant-cycle模型来介绍蚁群算法。作为一种带有构造性特征的随机搜索优化方法,蚁群算法的应用前景和影响将会越来越广泛和深远。但是蚁群算法的研究时间毕竟不长,有许多课题尚待研究和解决。它的发展还远没有像遗传算法、模拟退火算法等那样形成系统的分析方法和坚实的数学基础,多数研究成果都只是基于大量实验的数据分析,其中各种算法参数的选取也比较复杂,需要从算法理论方面予以解决。因而,怎样利用蚁群算法来更为有效地解决其他领域的实际优化问题(如连续空间优化问题等),怎样形成一个较为完备的改善蚁群算法优化性能的技术方法等,都是今后值得进一步研究的重要内容。在工程优化中,所遇到的大都是连续优化问题,即函数优化问题。传统的优化方法对于目标函数的要求条件较多,例如可微、可导、凸函数等,在实际的工程优化问题中这些条件的要求就很苛刻了,而蚁群算法没有对于函数的上述要求,因此蚁群算法在连续优化问题中的应用具有重要的研究价值。