第六章控制系统参数优化及仿真仿真是将已知系统在计算机上进行复现,它是分析,设计系统的一种重要实验手段。怎样才能使设计出来的系统在满足一定的约束条件下,使某个指标函数达到极值,这就需要优化的仿真实验。所以仿真技术与优化技术两者关系十分密切。第六章控制系统参数优化及仿真优化技术包括内容很多,本章主要介绍与系统最优化技术有关的参数优化技术方法。第一节首先对控制系统常用的优化技术做一概括性的叙述。第二节介绍单变量技术的分割法和插值法。第三节为多变量寻优技术,介绍工程中常用的最速下降法,共轭梯法和单纯形法。第四节为随机寻优法。第五节简单介绍具有约束条件的寻优方法。第六节介绍含函数寻优的基本方法。最后向读者介绍了Matlab优化工具箱的使用方法。6.1参数优化与函数优化优化技术是系统设计中带有普遍意义的一项技术,本节首先讨论优化技术中的一些基本定义和问题.一、优化问题数学模型的建立用优化方法解决实际问题一般分三步进行:(1)提出优化问题,建立问题的数学模型。(2)分析模型,选择合适的求解方法。(3)用计算机求解,并对算法,误差,结果进行评价。显然,提出问题,确定目标函数的数学表达式是优化问题的第一步,在某种意义上讲也是最困难的一步。以下分别说明变量,约束和目标函数的确定。6.1参数优化与函数优化JB),,(CLRxTnxxxx][21(1)变量的确定变量一般指优化问题或系统中待确定的某些量。例如,在电机的优化设计中,变量可能为电流密度J,磁通密度B,轴的长度,直径以及其他几何尺寸等。电路的优化设计中要确定的变量主要是电路元件(R,L,C)的数值。对产品设计问题来说,一般变量数较少(例如,几个到几十个)。变量数的多少以及约束的多少表示一个优化问题的规模大小。因此,工程上最优设计问题属于中小规模的优化问题,而生产计划,调度问题中变量数可达几百个几千个,属于大规模优化问题。变量用X表示,磁通密度表示,。Tnxxxx][216.1参数优化与函数优化(2)约束条件求目标函数极值时的某些限制称为约束。例如,要求变量为非负或为整数值,这是一种限制;可用的资源常常是有限的(资源泛指人力,设备,原料,经费,时间等等);问题的求解应满足一定技术要求,这也是一种限制(如产品设计中规定产品性能必须达到的某些指标)。此外,还应满足物理系统基本方程和性能方程(如电路设计必须服从电路基本定律KCL和KVL)。控制系统优化设计则用状态方程和高阶微分和差分方程来描述其物理性质。6.1参数优化与函数优化如果列写出来的约束式,越接近实际系统,则所求得的优化问题的解,也越接近于实际的最优解。等式约束:不等式约束:niExxg;0)(mi,,2,1nmrj,,2,10)(xhi0或6.1参数优化与函数优化(3)目标函数优化有一定的标准和评价方法,目标函数是这种标准的数学描述。目标函数可以是效果函数或费用函数,。用效果作为目标函数时,优化问题是要求极大值,而费用函数不得超过某个上界成为这个优化问题的约束;反之,最优函数是费用函数时,问题变成了求极小值,而效果函数不得小于某个下界就成为这个极小值问题的约束了,这是对偶关系。),,,()(21nxxxfxf)(xf6.1参数优化与函数优化费用和效果都是广义的,如费用可以是经费,也可以是时间、人力、功率、能量、材料、占地面积或其他资源。而效果可以是性能指标、利润、效益、精确度、灵敏度等等。也可以将效果与费用函数统一起来,以单位费用的效果函数或单位效果的费用函数为目标函数,前者是求极大值,后者是求极小值。求极大值和极小值问题实际上没有什么原则的区别。因为求的极小值相当于求-的极大值,即。两者的最优值均当时得到。)(xf)(xf*xx)](max[)(minxfxf6.1参数优化与函数优化综上所述,优化问题的数学模型可以表示成如下形式:)(minxf(6.1.1)nRx约束条件0)(xgimi,,2,16.1参数优化与函数优化二、优化问题的分类优化问题可以按下述情况分类:(1)有没有约束?有约束的话是等式约束还是不等式约束?(2)所提问题是确定性的还是随机性的?(3)目标函数和约束式是线性的还是非线性的?(4)是参数最优还是函数最优,即变量是不是时间的函数?(5)问题的模型是用数学解析公式表示还是用网络图表示?在网络上的寻优称为网络优化。限于本书的内容要求,在此只介绍参数优化和函数优化。6.1参数优化与函数优化(1)参数优化在控制对象已知,控制器的结构、形式已确定的情况下,通过调整控制器的某些参数,使得某个目标函数最优,这就是参数优化问题。例如,图6.1.1所示的控制系统,在某个给定函数的作用下,测量给定与输出量之间的偏差,用作为指标函数,要求调整控制器的参数,使得该指标函数达到最小。yEdteft02图6.1.1控制器参数的调整6.1参数优化与函数优化假定控制器有个可调整参数显然上述指标是这些参数的函数,即(6.1.2)现在的问题就是要寻求使达到极小值的,其中是一个向量。从数学上讲,参数优化问题是属于普通极值问题。寻找的最优参数不随时间变化,故也属于静态寻优问题。其一般问题形式是:有一个物理系统,它的数学模型为,其中为维状态向量;为维被寻优参数的向量;为维系统运动方程结构向量。要求在满足下列条件下:N,,,,32120()ftQedt)(Q*][21nT),,,(txfxxnmfn6.1参数优化与函数优化不等式限制q维等式限制p维等式终端限制维(是终端时间)找到一组参数,使指标函数(2)函数优化函数优化是控制对象已知,要找最优控制作用,以使某个函数指标达到最小,也包括要寻找最优控制器的结构、形式和参数。0)(H0)(G0),(ftS*min)()(*QQ)(*tu6.1参数优化与函数优化由于最优控制作用为时间函数,所以这类问题称为函数优化问题,在数学上称为泛函极值问题,这类问题的一般形式是:有一个物理系统,它的数学模型为,其中为维状态向量;为维被寻优参数的向量;为维系统运动方程结构向量。要求在满足条件下:不等式限制q维等式限制p维等式终端限制维找到m维函数使指标函数)(*tu),,(txfxxnmfn0)(H0)(G0),(ftSl),,(),(*xtxtmin)()(*QQ6.1参数优化与函数优化函数优化问题从理论上讲可以用变分或极大值原理或动态规划求解。但是在仿真研究中,由于采用的是数值求解,所以通常将其转化为参数优化问题加以解决。出于以上原因,本章的重点主要讨论参数优化问题。三、参数优化方法系统的参数优化问题求解方法,按其求解方式可分为两类:间接寻优和直接寻优。(1)间接寻优间接寻优就是把一个优化问题用数学方程描述出来,然后按照优化的充分必要条件用数学分析的方法求出解析解,故又称其为解析法。6.1参数优化与函数优化数学中的变分法,拉格朗日乘子法和最大值原理,动态规划等都是解析法,所以也都是间接寻优法。由于在大部分控制系统中目标函数J一般很难写出解析式,而只能在计算动态相应过程中计算出来,所以仿真中一般较少采用间接寻优方法。(2)直接寻优法直接寻优法就是直接在变量空间搜索一组最佳控制变量(又称决策变量,设计变量)。这是一种数值方法,具体办法是,利用目标函数在一局部区域初始状态的性质和已知数值,来确定下一步计算的点,这样一步步搜索逼近,最后接近最优点。6.2单变量寻优技术单变量寻优技术是多变量寻优技术的基础,多变量参数寻优的算法中常常要用到它,因此单变量的寻优方法是解决多变量优化问题的基本方法。本节主要介绍常用的两种单变量寻优方法:分割法和插值法。6.2单变量寻优技术6.2.1黄金分割法(法)分割法是单变量函数无约束极值较为有效的一种直接搜索法。这种方法实质上是在搜索过程中不断缩小最优点存在的区域,即通过搜索区间的逐步随小来确定最优点。对多变量函数来说,分割法不十分有效,因为这时消去的不是线段,而是平面、立体或多维空间的一部分。黄金分割法是分割法中的一种有效方法。假定目标函数,已知它在区间有一极小值存在,如图6.2.1(a)所示。为了找到这个极小点,可以在距各处找两点,然后比较它们的目标函数值,如果,则令,形成新区间,然后对这个新区间在距各处找两点。由于每次分割区间缩小为原来的倍(),若原来区间为,而经过n次分割后区间为。618.0)(xQ],[00bax00,ba)(00ab21,xx)()(21xQxQ1101,xbaa],[11ba11,ba)(21ab1],[00ba100ab],[nnba6.2单变量寻优技术那么。nnnab选多大适合呢?如果要求应该是的对称点,即,如图6.2.1(b)所示,则也可以写成下面关系式:2x1x0210bxxa)()(00020001abbxabax图6.2.1黄金分割图6.2单变量寻优技术且希望经过分割后其保留点仍处于留下区间的相应位置上,即在中的位置与在中相仿,且比值相等(6.2.2)故:,,因此可以得到:=(6.2.3)取正值=0.6180339这样,若计算分割后的函数值,则由计算两个点的函数值变为计算一个点的函数值,在一定分割次数内,减少了计算函数的次数。这种分割方法称为黄金分割法。1x],[00ba2x],[11ba010201axaxLaxLaxax20102)(LaLb200LLL20122516.2单变量寻优技术图6.2.2表示了黄金分割法程序框图。6.2单变量寻优技术例6.2.1求目标函数的最小值,区间缩短的精度。使用符号:A:初始区间的起点,;B:初始区间的终点,;E:允许的精度,用C语言编写的计算程序清单如下:#include“math.h”#include“stdio.h”main()3610)(2xxxQ00001.010A10B00001.0E6.2单变量寻优技术{floatx0,x1,x2,x3,x4,e1,e2,q1,q2,q3,q4,q5,m,h0,h,c1,c2;intn;printf(“intputx0,H0,E1,E2,M”);scanf(“%f,%f,%f,%f,%f”,&x0,&h0,&e1,&e2,&m);x1=x0,q1=x1*x1-10x1+36;p2:n=0;h=h0;x2=x1+h;q2=x2*x2-10x2+36;if(q1q2){h=h+h;n=n+1;}else{h=-h;x3=x1;q3=q1;6.2单变量寻优技术p1:x1=x2;q1=q2;x2=x3;q2=q3;}x3=x2+h;q3=x3*x3-10x3+36;if(q2q3){h=h+h;n=n+1;gotop1;}else{if(n0){x4=0.5*(x2+x3);q4=x4*x4–10*x4+36;if(q4q2){x3=x4;q3=q4;}else{x1=x2;q1=q2;x2=x4;q2=q4;}}c1=(q3-q1)/(x3-x1)c2=((q2-q1)/(x2-x1)-c1)/(x2-x3);6.2单变量寻优技术if(fabs(c2)e1){x1=x2;q1=q2;h0=m*h0;gotop2;}else{x4=0.5*(x1+x3-c1/c2);q4=x4*x4–10*x4+36;if(q2e2)q5=e2;elseq5=q2;if(fabs((q4–q2)/q5)e1){if(q4q2){x1=x2;q1=q2;}else{x1=x4;q1=q4;}h0=m*h0;gotop2;}6.2单变量寻优技术printf(“OPTIMX=%f\n”