第六章控制系统参数优化及仿真

上传人:壹****1 文档编号:567949806 上传时间:2024-07-22 格式:PPT 页数:155 大小:2.17MB
返回 下载 相关 举报
第六章控制系统参数优化及仿真_第1页
第1页 / 共155页
第六章控制系统参数优化及仿真_第2页
第2页 / 共155页
第六章控制系统参数优化及仿真_第3页
第3页 / 共155页
第六章控制系统参数优化及仿真_第4页
第4页 / 共155页
第六章控制系统参数优化及仿真_第5页
第5页 / 共155页
点击查看更多>>
资源描述

《第六章控制系统参数优化及仿真》由会员分享,可在线阅读,更多相关《第六章控制系统参数优化及仿真(155页珍藏版)》请在金锄头文库上搜索。

1、第六章第六章 控制系统参数优化及仿真控制系统参数优化及仿真 仿真仿真是将已知系统在计算机上进行复现,它是分析,设计系统的一种重要实验手段。怎样才能使设计出来的系统在满足一定的约束条件下,使某个指标函数达到极值,这就需要优化优化的仿真实验。所以仿真技术与优化技术两者关系十分密切。 萤皖飘譬昏确杏误怠溢寺悟弧赤庶习捏梧曙寸跪卷铺辉锄逛斤岩襟旁濒两第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真第六章第六章 控制系统参数优化及仿真控制系统参数优化及仿真 优化技术包括内容很多,本章主要介绍与系统最优化技术有关的参数优化技术方法。 第一节首先对控制系统常用的优化技术做一概括性的叙述。 第二节介绍

2、单变量技术的分割法和插值法。 第三节为多变量寻优技术,介绍工程中常用的最速下降法,共轭梯法和单纯形法。 第四节为随机寻优法。 第五节简单介绍具有约束条件的寻优方法。 第六节介绍含函数寻优的基本方法。 最后向读者介绍了Matlab优化工具箱的使用方法。盖辊邦杆嘱妹甸毗孰泄雨淘项痹庭爹灭雌翱并形特产好家溺严核算闯线迢第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 6.1 参数优化与函数优化参数优化与函数优化 优化技术是系统设计中带有普遍意义的一项技术,本节首先讨论优化技术中的一些基本定义和问题.一、优化问题数学模型的建立一、优化问题数学模型的建立 用优化方法解决实际问题一般分三步进

3、行: (1) 提出优化问题,建立问题的数学模型。 (2)分析模型,选择合适的求解方法。 (3)用计算机求解,并对算法,误差,结果进行 评价。 显然,提出问题,确定目标函数的数学表达式是优化问题的第一步,在某种意义上讲也是最困难的一步。以下分别说明变量,约束和目标函数的确定。炙往惟附荧撵柞碱陶茹通嗅狈娟贾搪力要吐锡往讯剑拍其严讳求丧佑褪翱第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n (1) (1) 变量的确定量的确定变量一般指优化问题或系统中待确定的某些量。例如,在电机的优化设计中,变量可能为电流密度J,磁通密度 B,轴的长度,直径以及其

4、他几何尺寸等。电路的优化设计中要确定的变量主要是电路元件(R,L,C)的数值。对产品设计问题来说,一般变量数较少(例如,几个到几十个)。变量数的多少以及约束的多少表示一个优化问题的规模大小。因此,工程上最优设计问题属于中小规模的优化问题,而生产计划,调度问题中变量数可达几百个几千个,属于大规模优化问题。变量用X表示,磁通密度表示,。蜡均吵趁馅祖嘿劲厅肛偷插命骡露够招斜守幻赏锑碗嗓梭验谷遣齿卢团栽第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n n(2) (2) (2) (2) 约束条件约束条件约束条件约束条件n求目标函数极值时的某些限制称为

5、约束。例如,要求变量为非负或为整数值,这是一种限制;可用的资源常常是有限的(资源泛指人力,设备,原料,经费,时间等等);问题的求解应满足一定技术要求,这也是一种限制(如产品设计中规定产品性能必须达到的某些指标)。此外,还应满足物理系统基本方程和性能方程(如电路设计必须服从电路基本定律KCL和KVL)。控制系统优化设计则用状态方程和高阶微分和差分方程来描述其物理性质。锯溢喜粳损崭呐纵绞白牢惭攒常幢筛漂激阵盒你撑铝蒜赎位靠掉衫耶蠢靶第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n如果列写出来的约束式,越接近实际系统,则所求得的优化问题的解,也越

6、接近于实际的最优解。n等式约束 :n不等式约束: 或或 搞寺锄屯废测窟闭峙纠缆腋叭抠矮啦套烽士肉奔初菏谬患枫诌答焉竭骗篓第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化(3) (3) 目标函数目标函数n优化有一定的标准和评价方法,目标函数 是这n种标准的数学描述。目标函数可以是效果函数或费n用函数, 。用效果作为目标函n数时,优化问题是要求极大值,而费用函数不得超n过某个上界成为这个优化问题的约束;反之,最优n函数是费用函数时,问题变成了求极小值,而效果n函数不得小于某个下界就成为这个极小值问题的约n束了,这是对偶关系。臭阻潞攒相猾蝴子郧煎这

7、袱昧缘柞钓眩忻菱蘑吭栈傀求灵彤唁蹬墅辑距曙第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n 费用和效果都是广义的,如费用可以是经费,也可以是时间、人力、功率、能量、材料、占地面积或其他资源。而效果可以是性能指标、利润、效益、精确度、灵敏度等等。也可以将效果与费用函数统一起来,以单位费用的效果函数或单位效果的费用函数为目标函数,前者是求极大值,后者是求极小值。n 求极大值和极小值问题实际上没有什么原则的区别。因为求 的极小值相当于求- 的极大值,即 。n两者的最优值均当 时得到。拍憾盾炊蛹侥矽氏违铣浮超胰掏灸抒营牺搪添恃褂鹃慑硷烤铀梢划炬暂已

8、第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n综上所述,优化问题的数学模型可以表示成如下形式: (6.1.1) 约束条件 容眠愤纹键裴卧为淆队桌猩露俗坐英慑枣稽泡昌昨赠午抗柱驴暮薛幅植坷第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n n二二、优化问题的分类、优化问题的分类n优化问题可以按下述情况分类:n(1)有没有约束?有约束的话是等式约束还是不等式约束?n(2)所提问题是确定性的还是随机性的?n(3)目标函数和约束式是线性的还是非线性的?n(4)是参数最优还是函数最优,即变量是不是

9、时间的函数?n(5)问题的模型是用数学解析公式表示还是用网络图表示?在网络上的寻优称为网络优化。n限于本书的内容要求,在此只介绍参数优化和函数优化。 磐祥碌日臣裁裸趋作臻椰辕主曝醒哨胀审慎眨赔壁永獭蕴娟氓讶跑性盛妥第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n n(1) (1) 参数优化参数优化参数优化参数优化n在控制对象已知,控制器的结构、形式已确定的情况下,通过调整控制器的某些参数,使得某个目标函数最优,这就是参数优化问题。n例如,图6.1.1所示的控制系统,在某个给定函数 的作用下,测量给定 与输出量 之间的偏差 ,用 作为指标函数

10、,要求调整控制器的参数,使得该指标函数达到最小。 图图6.1.1 控制器参数的调整控制器参数的调整 适笼层花摈贡尘很冈事叼歹傻健磁狙胀炙枣沾芳妥朽椒颈姜脚另加抉亢洲第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n假定控制器有 个可调整参数 显然上述指标是这些参数的函数,即n (6.1.2)n现在的问题就是要寻求使 达到极小值的 ,其中 是一个向量。n 从数学上讲,参数优化问题是属于普通极值问题。寻找的最优参数不随时间变化,故也属于静态寻优问题。其一般问题形式是:n 有一个物理系统,它的数学模型为 ,其中 为 维状态向量; 为 维被寻优参数的

11、向量; 为 维系统运动方程结构向量。要求在满足下列条件下:配冠卷烫忍恶丛锄萤声惫墩碑的卡仰僵暴铃釉卖敏钢涕疗缀娶然凄频肆秤第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n 不等式限制 q维n 等式限制 p维n 等式终端限制 维(是终端时间)n找到一组参数 ,n使指标函数 n n (2) 函数优化函数优化n 函数优化是控制对象已知,要找最优控制作用 ,以使某个函数指标达到最小,也包括要寻找最优控制器的结构、形式和参数。颜剪迷墩摄尉排伟彰瓶健围女芍驰健绿鄙帝捷醉凿乐晌瞳豺馒帮蟹韭宰谩第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1

12、 参数优化与函数优化参数优化与函数优化n由于最优控制作用 为时间函数,所以这类问题称为函数优化问题,在数学上称为泛函极值问题,这类问题的一般形式是:n 有一个物理系统,它的数学模型为 ,其中 为 维状态向量; 为 维被寻优参数的向量; 为 维系统运动方程结构向量。要求在满足条件下:n不等式限制 q维n 等式限制 p维n 等式终端限制 维找到m维函数 使指标函数捐咬娇笨傍较触墅寞邀仆乓链婶湖颓觉巨讨灯冲乙且丸乔宴脱留缚犬睡并第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n函数优化问题从理论上讲可以用变分或极大值原理或动态规划求解。但是在仿真研

13、究中,由于采用的是数值求解,所以通常将其转化为参数优化问题加以解决。出于以上原因,本章的重点主要讨论参数优化问题。n n三、参数优化方法三、参数优化方法n 系统的参数优化问题求解方法,按其求解方式可分为两类:间接寻优和直接寻优。n n (1) (1) 间接寻优间接寻优间接寻优间接寻优n 间接寻优就是把一个优化问题用数学方程描述出来,然后按照优化的充分必要条件用数学分析的方法求出解析解,故又称其为解析法。辐创恕锅吧语散睁麦拣谍蜀峦僚政眺曙睫烙仓恩徒韶撼裤祟训掖汗偷岂注第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.1 参数优化与函数优化参数优化与函数优化n数学中的变分法,拉格朗日乘子

14、法和最大值原理,动态规划等都是解析法,所以也都是间接寻优法。由于在大部分控制系统中目标函数J一般很难写出解析式,而只能在计算动态相应过程中计算出来,所以仿真中一般较少采用间接寻优方法。 (2) (2) 直接寻优法直接寻优法n 直接寻优法就是直接在变量空间搜索一组最佳控制变量(又称决策变量,设计变量)。这是一种数值方法,具体办法是,利用目标函数在一局部区域初始状态的性质和已知数值,来确定下一步计算的点,这样一步步搜索逼近,最后接近最优点。望冯嘶螟绣硕孤阁阜椎剪呈汁刊像准斟青捞墨哥矮泡主彬拙溢损渝言永碟第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n

15、n单变量寻优技术单变量寻优技术是多变量寻优技术的基础,多变量参数寻优的算法中常常要用到它,因此单变量的寻优方法是解决多变量优化问题的基本方法。本节主要介绍常用的两种单变量寻优方法:分割法分割法和插值法插值法。湍谎卧妈汪爸欲钥短带疫敛辨厢甥阁圈刊剿滴婪塞同著行渴赋厂斋盲伍甸第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n 6.2.1 黄金分割法黄金分割法( 法法)n分割法是单变量函数无约束极值较为有效的一种直接搜索法。这种方法实质上是在搜索过程中不断缩小最优点存在的区域,即通过搜索区间的逐步随小来确定最优点。对多变量函数来说,分割法不十分有效,因为这

16、时消去的不是线段,而是平面、立体或多维空间的一部分。黄金分割法是分割法中的一种有效方法。n假定目标函数 ,已知它在区间 有一极小值存在,如图6.2.1(a a)所示。为了找到这个极小点 ,可以在距 各 处找两点 ,然后比较它们的目标函数值,如果 ,则令 ,形成新区间 ,然后对这个新区间在距 各 处找两点。由于每次分割区间缩小为原来的 倍( ),若原来区间 为 ,而经过n n次分割后区间为 。 水猪晴奏架袍餐脉务椰情嗜志付撰誊达蛔懂涧胚醋释疤手乎寓扶靡夜喷统第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n那么 。 选多大适合呢?如果要求 应该是 的对

17、称点,即 ,如图6.2.1(b)所示,则也可以写成下面关系式:图图6.2.1 黄金分割黄金分割图图贼亩敷哇碾趋骚蜗艰魄翌桐拭齿花砰憎岁臻宏熊揩拦喝温株房僵渡穷溪饺第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术 n且希望经过分割后其保留点仍处于留下区间的相应位置上,即 在 中的位置与 在 中相仿,且比值相等 (6.2.2)n故: , n , n因此可以得到: = (6.2.3)n取正值 =0.6180339n这样,若计算分割后的函数值,则由计算两个点的函数值变为计算一个点的函数值,在一定分割次数内,减少了计算函数的次数。这种分割方法称为黄金分割法。

18、喉揍奎朴秒堑鳞逝催淫电秦秦妊肥揍见掩涸半腥慌铜视尾态古谎蛊淀兢渐第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n 图图6.2.2表示了黄表示了黄金分割法金分割法程序框图。程序框图。序蕴夕嫡骚点鲁沂炸廷舔螟士框赖灵扯求钩毋舶炉关保陪雍豢进军纤斯渡第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n例6.2.1 求目标函数 的最小值,区间缩短的精度 。n使用符号:A A:初始区间的起点, ;n B B:初始区间的终点, ;n E E:允许的精度, n用C语言编写的计算程序清单如下:n#include “math

19、.h”n #include “stdio.h”n main( ) 擅确赛稿激终坷栓宦尖桨瞄赞母谰膘哎膨阻乐茂崭鹃扭讳犊账程语禁铭健第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n float x0, x1, x2, x3, x4, e1, e2, q1, q2, q3, q4, q5, m, h0, h, c1, c2;nint n;nprintf(“intput x0, H0,E1, E2, M”);nscanf(“%f, %f, %f, %f, %f ”,&x0, &h0, &e1, &e2, &m );n x1=x0, q1=x1 *x1-1

20、0x1+36;np2: n=0; h=h0;n x2=x1+h;q2=x2*x2-10x2+36;nif(q1q2)n h=h+h; n=n+1;nelsen h= -h;x3=x1;q3=q1;隘怕许澄甄覆付垃刺轴躲艺支篆滤秤轩捍共雇揉砍忽惯链癣踪壹箭梨漾跋第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术np1: x1=x2; q1=q2; x2=x3; q2=q3;n x3=x2+h; q3=x3*x3 -10x3+36;n if(q2q3)n h=h+h; n=n+1; go to p1;n elsen if(n0)nx4=0.5*(x2+x3

21、); q4=x4*x4 10*x4+36;nif(q4q2) x3=x4; q3=q4;nelsex1=x2; q1=q2; x2=x4; q2=q4;nn c1=(q3-q1)/(x3-x1)n c2=(q2-q1)/(x2-x1)-c1)/(x2-x3);蔬净殖御刮餐睫讥芯谈权挪雏苑舷舌属咆披朔减闲婆州寺砸硅又幢浮晦跺第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n if(fabs(c2)e1)n x1=x2; q1=q2;n h0=m*h0; go to p2;nelsex4=0.5*(x1+x3-c1/c2);n q4=x4*x4 10*x

22、4+36;n if(q2e1)n if(q4q2) x1=x2; q1=q2;n elsex1=x4; q1=q4;n h0=m*h0; go to p2; 雅惺淬民韧浙护柔肮迫谦瘤包旅吾洲庭什且劈姚蚤斜花蒲阿存跺瞩廉弓戴第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n printf(“OPTIM X=%fn”,x4);n printf(“OBJ.FUNC=%f”,q4); n nnn 计算结果:n Q=11, x1=5.000 67, A=5.007 5, B=5.000 63。 幕指咳次妥蒲高筹伺细所啤峪贯称湾筑河福坍酪灰奋幕匈琉今怪忘臼啡坷第

23、六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n n6.2.2 二次插值法二次插值法n 二次插值法是多项式近似法的一种,即用二次的插值多项式拟合目标函数,并用这个多项式的极小点作为目标函数极值的近似。n n1 1二次插值法的计算公式二次插值法的计算公式二次插值法的计算公式二次插值法的计算公式n假设目标函数 在三个点 的函数值分别为 。可以利用这三个点及相应的函数值作为二次插值公式,令n (6.2.4) n 为所求的插值多项式,它应满足条件 (6.2.5)扬拼涝蛇宿询剩泄历椅拄开吾卸斯贮碟肆簿雍珠多皑糟氮狈砌窥撂落推浊第六章控制系统参数优化及仿真第六章

24、控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n对多项式(6.2.4)式求导数,并令其为零,得n (6.2.6)n n (6.2.7) n(6.2.7)式就是计算近似极小点的公式。为了确定这个极小点只需算出a1和a2,其算法如下。 n 从(6.2.5)可求出n n (6.2.8)蓑便轿藩操谋弯赤为匙逛蓝奇在爷胖襄篆驳具曾尔砍镐鹃州记俘岭蒂谱滚第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n如果设三个点等距离,即n则式(6.2.8)又可写为 n n (6.2.9)n设 为坐标原点,则n n (6.2.10)产竣旺稍腿式潘衙懦龚隔耗毗烁抽忱

25、斯由谐秩灯贼王窿骤材蒋滩刷苗耗蔓第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n n2. 2. 用外推法求寻优区间用外推法求寻优区间用外推法求寻优区间用外推法求寻优区间n n外推法外推法外推法外推法是一种寻优极点范围的方法。用二次插值法巡优,有时其最优点存在的范围事先没有给出,因此作为寻优的第一步,首先就是确定寻优区间。其方法如下:n设从某点 开始,原始步长为 ,则 ,n求目标函数 和 并进行比较。n若 ,则将步长加倍,求在, n , ,等点处目标函数 的值,直至函数值增加为止,如图6.2.3(a)所示。 嚼燃魄瓶疙针琢绍沏豢虽仔陪完潭堕怔破划猎风

26、兑个缚狂氛伯痕建婉赎叁第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n若 ,则求在 , ,n ,等点处的的值,直至函数值增加为止,如图.2.3(b) n 对凸函数来说,最小点必落在 之间,即 , 而且有 (6.2.11)图图6.2.3 外推法图示外推法图示 拾遥蟹角荤代仆架那狂辟穗锁渤乐仪蛋姚膊漠拈豢熬搀潍竞胯枝搂紧矾般第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n 此时,若在 与 之间的中点进行第k k+1点的计算,即取 n (6.2.12)n这样共得四个等间距的点 ,它们之间的间距为 当 时 ,;

27、当 时 , 。比较这四个点的函数值,取函数值最小的 ,则 ,这样就可以得三点 ,以便于构成二次插值函数,并且可以判定 一定在 和 之间。 愉衅雀蔷痈胶寄文冶粱纲蹦胳驱衍致沃两眠貉扭经泪通畸阿体没耸缝守鹿第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n 3外推二次插值法的程序框图n为便于分析将图6.2.4所示的框图分为三部分。其中,图6.2.4(a)为外推法最优点存在的区间;图6.2.4(b)为二次插值法求近似的最有点;图6.2.4(c)是比较 与 ,其比较小者为新的起点,同时缩短步长 ,再重复图6.2.4(a)及(b)两部分。n例6.2.2 求目标

28、函数 的最小值。n 用C语言编写的程序清单如下:n #include “math.h”n #include “stdio.h” 箕溺仗哟增捅辊忠惭梭鳃桑朝去猛淫偏讶洱碉察错捉搽眠彤载闪疚赎佯蜕第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n nmain( )main( )main( )main( )n n float x0, x1, x2, x3, x4, e1, e2, q1, q2, q3, float x0, x1, x2, x3, x4, e1, e2, q1, q2, q3, float x0, x1, x2, x3, x4, e1, e

29、2, q1, q2, q3, float x0, x1, x2, x3, x4, e1, e2, q1, q2, q3, q4, q5, m, h0, h, c1, c2;q4, q5, m, h0, h, c1, c2;q4, q5, m, h0, h, c1, c2;q4, q5, m, h0, h, c1, c2;n nint n;int n;int n;int n;n nprintf(printf(printf(printf(“input x0, H0, E1, E2, Minput x0, H0, E1, E2, Minput x0, H0, E1, E2, Minput x0, H

30、0, E1, E2, M”) ) ) );n nscanf(scanf(scanf(scanf(“%f, %f, %f, %f, %f%f, %f, %f, %f, %f%f, %f, %f, %f, %f%f, %f, %f, %f, %f”,&x0, &h0, &e1, &e2, ,&x0, &h0, &e1, &e2, ,&x0, &h0, &e1, &e2, ,&x0, &h0, &e1, &e2, &m);&m);&m);&m);n nx1=x0; q1=x1*x1-10*x1+36;x1=x0; q1=x1*x1-10*x1+36;x1=x0; q1=x1*x1-10*x1+36;

31、x1=x0; q1=x1*x1-10*x1+36;n np2: n=0; h=h0;p2: n=0; h=h0;p2: n=0; h=h0;p2: n=0; h=h0;n n x2=x1+h; q2=x2*x2-10*x2+36; x2=x1+h; q2=x2*x2-10*x2+36; x2=x1+h; q2=x2*x2-10*x2+36; x2=x1+h; q2=x2*x2-10*x2+36;n n if(q1q2) if(q1q2) if(q1q2) if(q1q2)n n h=h+h; n=n+1; h=h+h; n=n+1; h=h+h; n=n+1; h=h+h; n=n+1;n n

32、 else else else elsen n h= -h;x3=x1;q3=q1; h= -h;x3=x1;q3=q1; h= -h;x3=x1;q3=q1; h= -h;x3=x1;q3=q1;察痊苍京攫许杨茶达祈弯秉挛测悸椎赤伪跳网驾桅巷挠流恕祸死屋手棉息第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术np1: x1=x2; q1+q2; x2=x3; q2=q3;p1: x1=x2; q1+q2; x2=x3; q2=q3;n x3=x2+h; q3=x3*x3-10*x3+36; x3=x2+h; q3=x3*x3-10*x3+36;n i

33、f(q2q3) if(q2q3)n h=h+h; n=n+1; go to p1; h=h+h; n=n+1; go to p1;nelseelsen if(n0) if(n0)n x4=0.5*(x2+x3); q4=x4*x4-10*x4+36; x4=0.5*(x2+x3); q4=x4*x4-10*x4+36;n if(q4q2) x3=x4; q3=q4; if(q4q2) x3=x4; q3=q4;nelsex1=x2; q1=q2; x2=x4;q2=q4;elsex1=x2; q1=q2; x2=x4;q2=q4;n n c1=(q3-q1)/(x3-x1); c1=(q3-q

34、1)/(x3-x1);n c2=(q2-q1)/(x2-x1)-c1)/(x2-x3 c2=(q2-q1)/(x2-x1)-c1)/(x2-x3 阎童搀舶耻莫拯粉紫号数职浊困话赁诣傅戳略已暂镭侩陇躯颗今戎盾慢御第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.2 单变量寻优技术单变量寻优技术n if(fabs(c2)e1)if(fabs(c2)e1)n x1=x2; q1=q2; x1=x2; q1=q2;n h0=m*h0; go to p2; h0=m*h0; go to p2;nelsex4=0.5*(x1+x3-c1/c2);elsex4=0.5*(x1+x3-c1/c2);

35、n q4=x4*x4-10*x4+36; q4=x4*x4-10*x4+36;n if(q2e2) q5=e2 if(q2=e1)if(fabs(q4-q2)/q5=e1)n if(q4q2) x1=x2; q1=q2; if(q4q2) x1=x2; q1=q2;n elsex1=x4;q1=q4; elsex1=x4;q1=q4;n h0=m*h0; go to p2; h0=m*h0; go to p2;n printf( printf(“OPTIM X=%fnOPTIM X=%fn”, x4);, x4);n printf( printf(“OBJ.FUNC=%f OBJ.FUNC=%

36、f ”,q4);,q4);n n n 赊莫页诧谦藤曝嵌萍糖沟谬如衷鳞匆尼暗枢鳞惕汉臻叠酚穴护灼队墨感奎第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真图6.2.4 外推二次插值法的程序框图当 x0=0.5, h0=1, 0, e1=0.001, e2=1, m=0.1 时,计算结果: optim x=5.0, obj.fucn=11.0撞臭颇契舀宋值差赛觉膝刮藤箔犊莱炯诲烁理柞复较蛮绵酶迪氟仲尔饺鸵第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n单变量寻优技术,由于只有一个变量,因此只要在一条线上搜索最优参数就可以了。在变量超过一个以后,就

37、要在多维空间搜索一组最优参数,因此确定寻优方向及寻优步长的问题就比较突出了。根据寻优方向及寻优步长的不同,就有不同的寻优方法。本节将介绍三种方法:最速下降法最速下降法,共轭梯度法共轭梯度法和单纯形法单纯形法。 讼颠湛得圃燥校档氮氏询柴忱惟程谜糕硼眷鞍怒速敲带满讯味搜梁瀑匹哗第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n. .3.1 最速下降法最速下降法n n一、最速下降法的基本思想一、最速下降法的基本思想一、最速下降法的基本思想一、最速下降法的基本思想n为了弄清这种寻优方法的基本思想,可以举一个盲人下山的例子。当盲人下山时,眼睛看不见山谷的方

38、位,如何能沿最短路线迅速下降呢?一般盲人只好靠手前后探索试探着前进的方向,哪儿最陡?一定下降的最快,这种寻求最速下降的方向作为搜索的方向,一步步逼近最低点就是最速下降的基本思想。n要求多变量函数 的极小点 ,其中 为 维方向,首先从给定的起始点 出发,沿某个有利的方向 进行一维搜索,求得 在方向 上的极小点 ,然后再从 出发,沿某个新的有利方向 进行搜索,求得 在 方向上的近似极小点 。如此继续,直至满足给定的精度为止。 猜拳媒伊澄肘绿绘革涩筛淆阿咯蛊认奄诺牺怜澄祷箕昌纂垮腊马欺次蚤粹第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n二、最速下降

39、法的计算方法二、最速下降法的计算方法二、最速下降法的计算方法二、最速下降法的计算方法n设目标函数 ,求使目标函数 为最小值的变量 。设 为 维向量,对 存在二阶偏导数。n现假设已经迭代到第 步,得到此时刻的 ,考虑 有一个微小的变化,即n (6.3.1)n 为 附近的点,其两点的距离为:n (6.3.2) 犹荫咋状课碑囱獭智雌棒翅点尸寅箍可理荡缠巡谨悼衰垣畔抒塔堪潭礼绞第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n因为 的微小变化,必然引起目标函数 也有一个变化:n (6.3.3)n所谓 下降最快,及最大变化的问题,经过上述变换,就转化为以下具有

40、约束的极值问题。n在下列约束条件下:n (6.3.4)n通过适当选择 ,使下式极大化n n (6.3.5) 广吾呆益景蓬漂祁摆歌犁蔬推咙妙琵阳巳啤栅闺迪厄恋若鸽守拔豹浙留挂第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n具有约束的极值问题可以采样拉格朗日乘子,化为无约束极值问题。设 为拉格朗日乘子,则n (6.3.6)n式(6.3.5)对 求偏微分,并令其等于零,有n n解出 为n (6.3.7) n将方程(6.3.7)代入(6.3.2),计算出 因子为n 烧总颅孩吮能劝聂侄举孺礁掖舅驳锹刨屹娱屯瘸次称音铅偷妮怎瑰泄晤痔第六章控制系统参数优化及仿真

41、第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n令: (6.3.9)n则 n (6.3.10)n将(6.3.10)代入(6.3.7)得到n n (6.3.11)n即,我们可以得到第 步时的 为n n (6.3.12)钳尝减安敏灼绅吠疚摇旅氧他警治天罐曾拣氢舱蛙饰耗评曰助状汲祭篷羹第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n下面,确定(6.3.12)的正负号。将(6.3.8)式代入(6.3.7)式,得到n (6.3.13)n再将上式代入(6.3.5)式得到n即: (6.3.14) n因为 是距离,故为正,因此取“”号时,目标函数

42、增加,而取“”号时,对应的目标函数减小。换句话说,沿着目标函数的负梯度方向走,目标函数是减小的。 繁俘崭缎盈睁沙复烃禽巧呀梳全母冻界孪蓟两镀宽拽乾肢捎鹤犁襟脊丧宗第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n又因为,式(6.3.6)对 的二阶偏微分等于 ,为了保证式(6.3.5)中的 沿着负数方向有最大值,即式(6.3.5)有极小值,因此只有 等于正数。我们可在式(6.3.10)中取负号,来保证(6.3.6)对 的二阶偏微分大于零,也就保证式(6.3.5)有极小值。 n其中 为迭代步长, 不能选择太小,否则目标函数 下降太慢,但如果 很大,目标函

43、数 可能会出现“上下起伏”现象,因此选择最优步长 应使 在方向的目标函数数值最小,即足启湾尤萍卤保回次登熔臻姐渡直尸厘懈拟痉傅做锤司清动宰泵徐匹铺履第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n (6.3.15)n显然,这是一个单变量寻优问题,即寻找最佳步长 。可以利用上一节所介绍的方法。n最速下降法的一般计算关系式为:若出发点为,则 n n (6.3.16) 闪尉伐称傣放升狮帮叶靶葛怂零悼疏钨艰门匆设炳哭惋低卞榷经钓涉扰弘第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n式中 梯度向量;n 梯度向量模

44、;n 梯度方向上的单位向量。 n控制迭代的收敛要求可以为n =n或 (6.3.17)n 式中 梯度误差,它是很小的正数;n 目标函数误差,它也是很小的正数。股嗓术芹汤歉碌陇唾七基堆共勺文愿姆嘻搬斗尤昂色述仑阿胸慕滑型孩伊第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n最速下降法的程序框图如图6.3.1所示。图6.3.1 最速下降法的程序框图懒味孪堡辆向泽蝇腻幢爵流吞唆逾最七壹臼聋泣切宪科灌钟俞仔燥摸协舵第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n用C语言编写的最速下降法的程序清单如下。其中R是梯度模

45、 ;P是梯度方向的单位向量 ;h是步长 ;f是目标函数 。n#include “math.h”n#include “stdio.h”n float x10, y10, p10, f, h;n int n;n vod fun( )n int i;n for(i=1, in; i+) xi=yi-h*pi;谨几必围划饶鉴椽郴蚀褪烛丝恳质渡叙扼浆据怎虹迟庚膛砸鸣磅质沏付达第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术nf=x1*x1+x2*x2-x1*x2-10*x1-4*x2;nf=f+60;nreturn;nnmain( )nfloat g10, d

46、10, q, r, e, h1, h2, h3, h4, t, t0, c1, c2, f1, f2, f3, f4, f5, v;nint i, k, u;nprintf(“input n, en”);nscanf(“%d, %f”, &n, &e);妆铺畏消寓活返熄磁凶跑煮压阵七玲先昔辫固鳃忍刹体饰阮酪悸灌上减栏第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术nx1=0; x2=0;np4: g1=2*x1-x2-10;ng2=2*x2-x1-4;nq=0;nfor(i=1; in;i+) q=gi*gi+q;nr=sqrt(q);nfor(i=

47、1; in;i+) yi=xi;pi=gi/r;nif(rf2) t=t+t; u=u+1;n elset=-t; h3=h1; f3=f1;n h1=h2;f1=f2;h2=h3;f2=f3; n p1: h3=h2+t; h=h3;n fun( );f3=f;腹边炔米仗褥侄唐馋寨希贝扶糖酱年捕鸭诉蹈媚烦团蔼狈拙挺时革免篓轰第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术nif(f2f3) t=t+t; u=u+1;nh1=h2;f1=f2;h2=h3;f2=f3;goto p1;n elseif(u0)nh4=0.5*(h2+h3); h=h4;

48、n fun( ); f4=f;n if(f4f2) h3=h4; f3=f4;n elseh1=h2; f1=f2; h2=h4; f2=f4;n nc1=(f3-f1)/(h3-h1);nc2=(f2-f1)/(h2-h1)-c1)/(h2-h3);诊弯救唐梧势佯秒于鲸覆炳凄仇匪先低乎杉挖咆僻栏矫锯旭贪描乡碘津箍第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术nif(fabs(c2)e) h1=h2;f1=f2;t0=v*t0; goto p2;nelseh4=0.5*(h1+h3-(c1/c2); h=h4;nfun( ); f4=f;nif(f

49、21) f5=1;nelse f5=f2;nif(fabs(f4-f2)/f5)e)nfor(i=1; if2) h1=h2;f1=f2;n else h1=h4;f1=f4;n t0=v*t0; goto p2;n nnn np3: h=0; fun( );nprintf(“OBJ.FUNC F=%fn”, f);nfor(i=1; in; i+)皿耗猩侥珍丈臻浆浇途溯悔瞥蛇青换潍伶氰揍谬宿蟹辫赘伪怒否沁雄相细第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术nprintf(“X(%d”, I);nprintf(“)=%fn”, xi);nn n最速

50、下降法的搜索方向是所谓的最速下降方向,但是也只能逐次地接近最优点 ,对本例来说,开始搜索时,每次的步长大,目标函数下降也较快,但愈接近极值点,步长 愈来愈小,目标函数的改进也小,其搜索路径如图6.3.2所示。垒曙截咆饥锈蛰暇扼丝宅诬兆而漳枕肥拱瞥僚桶已嘉曾倚瞒咨郊婴渔临束第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术图6.3.2 最速下降法收敛曲线场眯累忘良氰悍剿识采铡墟殆挥坚汁涅两着母挝勉艺鞭淌泊诺皑疯客酱淑第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n最速下降法从表面看是个最好的方法,但实际上并非

51、如此。大量的计算实践说明,最速下降法收敛的速度并不快。这主要是因为最速下降法的方向仅仅是指某点附近而言,是一个局部的性质,一旦离开了该点原先的方向就不再保证是最速下降方向了。因此对整个过程来说,它并不总是具有最速下降的性质。尽管如此,最速下降法仍然不失为一种最常用的基本寻优方法。这不仅因为最速下降法每次迭代计算比较简单,记忆容量小,适合计算机运算,而且对初值要求也比较低,在远离极值点时收敛快,所以它也经常与其他寻优方向共同配合,加快寻优速度。教壕校霉天耸默釉盂羊孺羌章炊哎栽绣酒煎厌朱逆耪痞语清快蒂尹克愿罐第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技

52、术n n6.3.2 6.3.2 共轭梯度法共轭梯度法n轭梯度法是解优化问题的有效方法之一,特别是用于二次泛函指标系统。共轭梯度法程序清单容易实现,具有梯度法优点,而在收敛速度方面比梯度法快。下面分三部分较详细地介绍这种方法,并给出一个实用程序。n一、共轭梯度法一、共轭梯度法n设 为定义在 维欧氏空间内区域 中的 元函数。向量 的分量 是函数的自变量。设n 为 域内的一个点,则函数 可在这个点的附近以泰勒级数展开,且只取其二阶导数项,即:原呻挝罕萎皂桂湍笑讲卤丁辱爬酒香岂亚澡计乔址跃荆羹绅鸳峰周服主忻第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n

53、(6.3.18)其中: , 分别为: (6.3.19)静好袄陇晰铅给郴啃绰矽邢湿录凭吝亲愉病棒刨锄颅模碰仁刑惹跨眺影率第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n 是 在点 处的二阶偏导数矩阵,又称赫森矩阵。n 极值点存在的必要条件。 元函数在 域内极值点 存在的必要条件为 (6.3.20)n即每个一阶偏导数值都必须为零,或梯度为 维零向量。但这只是必要条件,而不是充分条件,满足上式的点称为驻点。n 极值点存在的充分条件。设 为 的驻点,将(6.3.20)式代入(6.3.18)式得镍螺蹦改牡携疡庇巧芜恕椰滞骄花懊缔掠黍桩硕肇伤朴桶剿漓拖擦手宾橙

54、第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n (6.3.21)欲使 为极小点,只要在 附近,其差 所以必须有 (6.3.22)这就是说,在点 处的赫森矩阵 为正定的,即 为极小点的充分条件。因此利用处的赫森矩阵 的性质即可判断是驻点还是极值点。n 二、共轭梯度法的基本思想共轭梯度法的基本思想共轭梯度法的基本思想共轭梯度法的基本思想杆辈课忆临资补醚造黔驼挚扎戮非撮狄坎聊捣悔办泻另爷矢晋兽免皇罢扭第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n为了改进在极值点附近寻优的收敛速度,就要寻求更好的寻优方法。

55、共轭梯度法是一种有效算法。 首先举例说明共轭方向的意义。如果两个2维向量 与 相互正交,见图6.3.3(a),则其内积 0,也可以写成 0, 为单位矩阵。于是可以称 与 以单位矩阵互为共轭,可记为 。图6.3.3 共轭方向拇家咏骋世循漂妮霓陇婉敛忆隋粹规雏稼睁照箔渠从蠢奋章诚惠苇税嚷咙第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n设有二阶对称矩阵 ,如 成立,即 与 相互正交,如图6.3.3(b)所示,则称 与 以 互为共轭,可记为 (6.3.23)对于任意形式的目标函数 ,如将其在 附近展开称泰勒级数,且只取到二次导数项,则得 (6.3.24)

56、式中: 为 在 处的二阶偏导数矩阵,即赫森矩阵。穿藏阴速王众惶部攘盘误韶诉翼硅咒藤婴醚眉湛瘸裴窘猜殴宣阜撂猿斌钧第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n 因为在极值点 处 ,故 (6.3.25)此式表示函数为二次函数。由此可以看出:任意形式得函数 在极值点附近的特性都近似于一个二次函数。对于二次函数 ,如图6.3.4所示,在初始点 做 的切线向量。设最优点为 ,则连接 与 的向量 与切线 互为共轭。这一点可证明如下。崭余扦血夜派顾猖颊腕糕早枯洽燃功洲夯厢踏氖空陵座况游滴透疆圾溜米第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3

57、 多变量寻优技术多变量寻优技术n在最优点,Q(x*)=0,n在 点的梯度n切线向量 与梯度向量 互为正交,即n而巴仑逢港雁筷涣稼寿肉黎酝轧蛰侩青猪披计馅毯噬袋筑羞吼鸽犯拧舜阎袱第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n即 n显然, 与 ,可写成下式:n即 与 以 互为共轭。n上述性质表明,如果对二次函数,从某点出发,沿共轭方向搜索,可以很快得到函数的极值点.淬形新脊玄赚聪均冰绣喷掳杉澜特维臂记低诽尽钡膝单涉饿蜗拿惯蜒铡诺第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n三、共轭梯度法的计算方

58、法三、共轭梯度法的计算方法三、共轭梯度法的计算方法三、共轭梯度法的计算方法n设 元函数 在极值点附近可用一个二次函数逼近:n (6.3.26)n式中: 为 维对称矩阵。n n = n (6.3.27)n n (6.3.28) 跪澄符现瘟疽谭举得数榴驹殆段舌怕骂左诌亦肇肚谍盛环局秸夏挠扛芯炸第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n对于两个变量问题,可以用等高线来表示,见图6.3.5。设从某点 出发以 的方向搜索,使 达到极小的点 ,则 为该处等高线的切点。切点的梯度方向为等高线的法线方向,因此n 图图6.3.4 二次函数中的共轭方向二次函

59、数中的共轭方向 图图6.3.5 两个变量的等高线图两个变量的等高线图 孝掺故晌凝憋塌连划放贱磅壁郎悔盂狮谦蚤悟若猜您嗽垂诌翟悟鞍逸按铬第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n若从另一点 出发,也以 方向搜索,又得到一个极小点 ,同理也应有n (6.3.29)n(6.3.28)式与(6.3.29)式之差为n (6.3.30)n若令 ,则n (6.3.31)n这就说明 与 以 互为共轭。而 正是 与 两切点连线方向,此方向上的极小点即Q(x)的极小点。慈粉揪费揪先虞咯镇迹傻毛煎宠袁雅税憨桅冯菜豁温置翔坍颖呼炸架甘歉第六章控制系统参数优化及仿真第

60、六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术例 6.3.1目标函数 式中:C=10 4T;A= ,从 出发搜索,求极小点。n 解:如果第一次的搜索方向为 ,则它与共轭方向的关系为n一个向量的方向可以用单位方向向量E来表示,若 的单位方向向量 即 与轴 平行,因 ,则n n (6.3.32)屡湾考襟艘植锗晋捂织楞男月夺驼欺窑矫确窒溜旅抚止吐椅率谚臃肖递惮第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n为了求最优步长 ,将(6.3.31)式代入目标函数,得 n (6.3.33)n将(6.3.33)式对求导并令其等于零,得n n (6.

61、3.34)n故: 因此,第一次搜索的结果为n 至紧烬揭瓮套巩火眶帜拴等肛履励倦汤莉艇甄袄烃谈溺拯筛绥硫孵随狞达第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n第二次搜索的方向应为 的共轭方向,即 (6.3.35)n得 n又有单位向量 n (6.3.36)n解联立方程(6.3.35)式及(6.3.36)式,得n 戴遇腿纯沾韭刊铁充辽猾代杂曙砍攻阁屿抠耙医煌咖盲稿赎裴毗绪撞魏甄第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n因此:n (6.3.37)n为求最优步长 ,将式(6.3.37)式代入目标函数得n

62、n (6.3.38)n将(6.3.38)式对 求导,并令其等于零,得 n n (6.3.39)志敌货峭条掐熊起槽蛇潘挠紧咨阮呜驹魔拯谓党齿丛繁警惮珊秆匈杜袁殷第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n得: n因此: n由此可见,因是一个二元的二次函数,只要搜索两个方向 , 就可以达到极小点,即 8, 6。对于一个 元的二次函数,可以用不超过 次的搜索方向,就可以达到极小点。n从上例可知,计算共轭方向时要用矩阵 ,如果已知 ,则计算共轭方向是容易的。例如,当函数为二次函数时, 为二次项的常系数矩阵。但当函数为非二次时, 为二阶偏导数矩阵(赫森矩

63、阵),求起来相当麻烦,尤其当维数很高时更加麻烦。因此,能否避免矩 阵 的直接计算,而用间接的方法确定共轭方向呢?下面介绍一种间接求共轭方向的方法。迭群聪渊铱牧掘陵添乘溯知浸豪心愧酱漠挣豺攻壕万爹杜栓鼻废把窄怪晃第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n设目标函数为元的二次函数n (6.3.40)n设 为n n维向量; 为任意给定的起点。 为 次迭代中要寻求得对的共轭方向。依次为沿这些方向求得的近似极小点。因此有 (6.3.41) (6.3.42)n 为最优步长,它满足 n (6.3.43) 招鞍净异味篙据就铱度司昨阿慈主舌侮糠腰囚朋检酚茨锻货

64、莉馅莫盗渡佯第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n当然,对 也有n (6.3.44)n将(6.3.44)式与(6.3.41)式相减,并将(6.3.42)式代入,得n (6.3.45)n根据共轭的定义,应有n (6.3.46)n将(6.3.45)式代入(6.3.46)式,得n (6.3.47)n从(6.3.47)式看出,不计算矩阵A可以求出共轭的方向。怯迂含闰位屿妆滔枣合涉乎族替讯泰蓖皋室矗亚惮铸壤哭辽读否积认矿毖第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n现从点 开始进行搜索,在确定第一个

65、搜索方向 时,因为除了梯度 可以直接计算外,没有其他有用的信息,因此可取n (6.3.48)n将沿 方向作为一位搜索,求最优步长 ,使n (6.3.49) n由此得一新的点 ,并算出 。因为 是点 的法线方向, 而 是 点的切线方向,所以 与 正交,从而也和 正交,即齐我爪涯确煞黔铡杜静匣浙宦苦攒牲拒票俯究效续塌寒操健鸟突姚观税慢第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n为在 和 构成的正交系中寻求共轭方向 ,可令 n (6.3.51)n共轭方向 为该次的反梯度方向与上次搜索方向得线性组合,这里的问题是选择一个 ,使 与 共轭。n根据(6.3

66、.47)式,有n (6.3.52)n将(6.3.50)式与(6.3.51)式代入(6.3.52)式中,化简得揉饮晴夕保惧隆翱撤瓤慧卵曰及义瘦瑞饥辰萍泻窒谩序宾派怒塔孤布邻妇第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n所以有: = (6.3.53)n把(6.3.53)式代入(6.3.51)式, 得n (6.3.54)n由此可见,通过 与 即可求出共轭方向 .沿此 方向在进行一维搜索求最优步长 ,得到 ,如此进行下去,一般来说有以下的迭代方向:n (6.3.55)n (6.3.56)n所得到的 即为共轭方向。 句篡塔闺丝模生滨率殆返惩犊襄购掖厕磋哟

67、伐舒蔚赊胶桨选煤疮容旅秆徘第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n 按照(6.3.55)式及(6.3.56)式确定搜索方向的算法成为共轭梯度法。其程序框图如图6.3.6所示。图图 6.3.6 共轭共轭梯度法的程序框梯度法的程序框图图录铸押案酣核麦研紫括琉碗披蹈晚寻妨瘟寺力蹲颓斑绥喧酷刺棕瓢硫佃氖第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n例例例例6.3.2目标函数 ,设起点为 ,试用共轭梯度法求最小值。n解:第一次迭代计算:n n 公含聪雄沉责淳象浩岭怜叉经弦灾掌辰鄂乐染惰乳怒母局清间皑

68、惭牺毯萄第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n求 得n本例题中的 可以用解析法求得 经两次迭代即达到极值点。与一阶梯度法相比其收敛速度较快。酪坞吊骡苇舌苹范扔独殖陈哗氧雄润报劲惧赐歹直忱砰揭勘磁拼燎磨舱赢第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n用C语言编写的共轭梯度法计算程序清单如下:n #include “math.h”n #include “stdio.h”nfloat x10,y10,p10,f,h;nint n;nvoid fun()nint i;n for(I=1;In,

69、I+) xI=yI+h*pI;nf=x1*x1+x2*x2-x1*x2-10*x1-4*x2;nf=f+60;nreturn;n盆赏毡音拎抚滚胡僻萍股无暖曲弗涝绊煽苔询市褪段忠翟谬渍元坐贞趋誓第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术nmain()nfloat g10,q1,q0,e,h1,h2,h3,h4,t,t0,c1,c2,f1,f2,f3,f4,f5,v;nint I,k,u;nprintf(“INPUT N,En”);n scanf(“%d,%d”,&n,&e”);nfor (I=1;In,k+)n printf(“INPUT X%d

70、”,I);n printf(“=”);n scanf(“%f”,&xI);n np4: for(k=1;kn;k+);ng1=2*x1-x2-10;g2=2*x2-x1-4;nq1=0;哼采胡合谷慑丝盲乏朽剖粕栽藉处奇崖废劣撼箕沃毡类悯且待许篡你纫景第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术nfor(i=1;In;I+)n yI=xI,q1=gI*gI+q1;nif(q1e)goto p3;nelsenfor(I=1;If2) t=t+t;u=u+1;nelse t=-t;h3=h1;f3=f1;h1=h2;f1=f2;h2=h3;f2=f3;

71、 音恿谍容馅空塔缅缔沟陇神琶宽爸崎韶苔沪判机拖裙但惦泣化添氦嘘请傻第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n p1: h3=h2+t;=h3;n fun( );f3=f;n if(f2f3) t=t+t;u=u+1;h1=h2;f1=f2;h2=h3;f2=f3;goto p1;n else if(u0)nh4=0.5*(h2+h3);h=h4; n fun( );f4=f;n if(f4f2) h3=h4;f3=f4;n elseh1=h2;f1=f2;h2=h4;f2=f4;n n c1=(f3-f1)/(h3-h1);n c2=(f2-

72、f1)/(h2-h1)-c1)/(h2-h3);n 壁摘簧俩村昭划构辜说百峦遇细圭韵揭痢剑雁就阎赋墨险沤辞杆堤该刹衙第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n if(f21) f5=1;n else f5=f2;n if(fabs(f4-f2)/f5)e)n for(I=1;If2)h1=h2;f1=f2;nelse h1=h4;f1=f4;nt0=v*t0;goto p2;nn n nn猩烽朔沾曼乙王横酷箩纲亏件殷刑嘲晌侮扮涝衫循裴谭敢柞童洞惫骡喀俐第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术

73、n ngoto p4;goto p4;goto p4;goto p4;n np3: h=0;fun( );p3: h=0;fun( );p3: h=0;fun( );p3: h=0;fun( );n nprintf(printf(printf(printf(“OBJ.FUNC F=%fnOBJ.FUNC F=%fnOBJ.FUNC F=%fnOBJ.FUNC F=%fn”,f);,f);,f);,f);n nfor(I=1;In;I+)for(I=1;In;I+)for(I=1;In;I+)for(I=1;In;I+)n n printf( printf( printf( printf(“X%

74、dX%dX%dX%d”,I);,I);,I);,I);n n printf( printf( printf( printf(“=%fn=%fn=%fn=%fn”,xI);,xI);,xI);,xI);n n n n 逾雍低塑忽掺胃聚慧驶颅镣皆玩讳分震柜鲜冲崖祟澈岭语犁楷拈荷肇往接第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n 6.3.3 6.3.3 单纯形法单纯形法n函数 的导数是函数 特性的重要反映,但在许多实际问题中,常常得不到计算 导数的解析式,而只能采用近似的方法,常用方法是有限差分法。用有限差分法计算 的导数不仅误差大,而且要多次计

75、算目标函数,计算工作量很大。为了克服求 导数所带来的问题,提出了松弛法、单纯形法、随机搜索法等方法。这一节介绍工程中常用的单纯形法。从直观上看,如果不计算导数,则可以先算出 在若干个点处的函数值,然后将它们进行比较,从它们之间的大小关系就可以看出函数变化的大致趋势,这样也能为寻求函数的下降方向提供参考。拖嘱耙疡霹连邻喀殆姨忌缝继锹眯蚌爱迟加厦籽甘似杰濒藐瞅菇集窃胀荆第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n例如,图6.3.7所示的情况,变量有两个 , ,图中画出了 的等高线簇。若先计算1,2,3三点(他们构成一个三角形)的函数值,然后对它们的

76、大小进行比较,其中 最大,故将1点抛弃,在1点的对面取一点4,则构成一个新的三角形再比较各点 的大小,其中 最大,故将2点抛弃,在2点的对面取一点5,这样3,4,5又构成一个新的三角。如此一直循环下去最后可找到最小点。单纯形寻优方法的思想是很简单明了的,但是为了使其比较使用,同时能加快它收敛速度,还要解决一下几个主要问题。 昭醇年驼段妈哥戴蝶稼暗挟噪化址裂烦牟护垂跌哨捞痴策利剁颁他垮米洒第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n一、单纯形应由几个点构成一、单纯形应由几个点构成一、单纯形应由几个点构成一、单纯形应由几个点构成n 对于一般的n

77、元函数 ( 为 维向量),可取 维空间中 个点, ,构成初始单纯形。这 个点,应使n个向量, , , 为线性独立。这就是说,在平面上( )取不同一直线的三点构成单纯形(三角形),在三维空间( )内取不同的四个点(4面体)。如果点取得少,或n个向量有一部分线性相关,那么就会使搜索极小点的范围局限在一个低维空间内,如果极小点不在这个空间内,就搜索不到了。 柄恰棍瑟靴篓堑退随醇淹臼冯美逝险笺扑萤辑苯传圾次各辨每痴黔惺良了第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n二、单纯形的形状二、单纯形的形状二、单纯形的形状二、单纯形的形状n 为了简单起见,单

78、纯形取n个向量为“等长”。n 具体来讲,若已选定 ,则 这n个点为n (6.3.57)n 其中, 为第 个单位坐标向量,即n (6.3.58)n 只有第 个元素为1,其他均为0。乎昔杉瀑傈河靖陡恕存兢场娶溢后随疫涯抖痒缴夹苍咐种紊躲炊需很另皆第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n三、新点的选取三、新点的选取三、新点的选取三、新点的选取n根据经验及考虑到计算方便 ,一般新的点取在被抛弃的点的“对面”,称为反射点。以图6.3.8所示为例,假定为要抛弃的点,则新点的坐标应为,坐标可以这样来求:图图6.3.7 单纯形法寻优过程单纯形法寻优过程

79、 图图6.3.8 反射点的确定反射点的确定盒酸狸呈冻亏套炸幸镶春飘瀑魄执糜抽拐已詹每狐疾亩巡氧陛痢沼挫膏名第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n先求出 及 两个点的中心 ,则n (6.3.59)n然后再求其反射点 ,即 n (6.3.60)n推广到多变量(n n维)的情况,则有 , 共 个点,假定其中 点是被抛弃的,那么, 反射点 为n (6.3.61)n其中: 恬样灸富秦戈百信晨顷控檬蕉瓤楷朱鸭禾咀邮籽妓赁拙替条斥谦灸痊昔油第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n四、关于新点的扩

80、张压缩及单纯形的收敛问题四、关于新点的扩张压缩及单纯形的收敛问题四、关于新点的扩张压缩及单纯形的收敛问题四、关于新点的扩张压缩及单纯形的收敛问题n对组成单纯形的(n1)个点,可以定义:n 为最坏点(即目标函数 最大的点)n 为最好点(即 最小的点);n 为次坏点(即 比 小,但比其他各点的目标函数都大)。n如果新的点 的函数值 小于 ,这说明点可能前进得不够,此时可以沿反射方向再多前进一些(称为扩张),即n (6.3.62)绕珍铰毙镰酗护班辜冗困摊坍袋卒拴曙绚凸桌痰聋隅芽亏油旱舱岁俺害尼第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n反之,若按(6

81、.3.61)式找到 ,而 大于 ,这说明 点前进得太远了,需要压缩,即要在 与 的延长线上(即沿原来的反射方向)后退一些,得n (6.3.63)n 为压缩因子,它是01之间的一个常数,为了避免 与 重合(即 ),要求 ( 与 重合会使单纯形的空间维数降低,这不利于搜索)。n 如果压缩后 仍然大于 ,这说明原先的单纯形取得太大了,可以将他们所有的边都缩小,构成新的单纯形,这叫单纯形的收缩。n具体办法是:n (6.3.64)龄肥耕铸桓殖如胡缄铅拥猩虾菌轨摧髓谋婆辞瞩叮候争魔油峦卸隅戍取托第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n n五、什么时候停

82、止搜索五、什么时候停止搜索五、什么时候停止搜索五、什么时候停止搜索n若 则说明搜索成功,此时可以认为 即为极小点,而 为极小值。如果经过K次搜索,仍然不能满足上式,说明搜索失败。n根据上面的介绍,可画出单纯形法的程序框图,如图6.3.9所示。这个程序基本上包括以下7个部分:n(1)计算原始的单纯形;n(2)计算原始的单纯形各点的目标函数值;n(3)找到最好点 ,最坏点 ,以及次坏点 ;n(4)寻优次数 加1,并判断计算是否收敛,若收敛,则打印出结果;悼鸟供盔什除彪饿角帘攒兜栈豁贪宵多淫鲸倘塌匣匡藩氰却普茄痘扎姓感第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变

83、量寻优技术n(5)搜索次数是否超过规定,若已超过,则说明搜索失败,打印出结果,并停止搜索,若未超过,则计算反射点;n(6)判断是否要压缩,若要,则进行压缩计算,若压缩失败,则进行收缩计算,然后转(3)或(4);n(7)判断是否要扩张,若要,则进行扩张计算,并评价扩张效果,然后转(4);n关于单纯形法的详细程序可参看本书配套的程序,该程序除考虑了上述诸点之外,还考虑到参数变量上下界限制,这样在使用时就更为方便了。揩心远殴挞命阳熏潮国谱蕾陈熄剁拳图踊绊仿咐恼迟撕码逸礁枕檀徽撂锄第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.3 多变量寻优技术多变量寻优技术n 图6.3.9 单纯形法程序

84、框图懒褂霸郴罪投仇奈恃饶欲邢涧祈袍澡拐舵刊忽酥适匿婉穗曾唁笔沛辐旨温第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n在第三节中已分别介绍了两种多变量寻优的方法。梯度法虽然每一步寻优方向十分明确沿着梯度所给的信息来确定寻优方向,但是这种方法每一步都要计算目标函数的梯度,这常常占用相当长的计算时间。而单纯形法则不同梯度这个信息,它是利用对参数点的目标函数值的比较来确定寻优方向。这种方法对于变量较多,目标函数的形态比较复杂的情况(比如有好几个极值点)收敛都不十分快。随着统计仿真方法的发展,近年来随机寻优法也得到了发展,当变量数目较多,目标函数的形态又比较复杂时,

85、用此法一般较好。n 作紫岁葱恒丝济周姐村厅匝匿篙掷掌薪掠痰鄂似水变蛋卧裙叮散餐褒峭坯第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n尤其是当采用混合仿真系统来进行控制系统参数寻优时,可以用模拟机部分来计算系统的运动方程,即计算目标函数;而用数字机部分来做寻优搜索,此时采用随机寻优法更为有效。n随机寻优法的种类很多,这里向读者介绍的是三种用得较多的随机寻优法。它们是:随机贯随机贯寻优寻优,随机搜索寻优随机搜索寻优以及以及以及以及随机模式搜索寻随机模式搜索寻优优。 位摹陨垣诺笨婚秒扦尤袜龟仕酶覆降诣捐腑嚎晌铁准碳状坑乾珐卞剿洲月第六章控制系统参数优化及仿真第六

86、章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n n一、随机序贯寻优法一、随机序贯寻优法一、随机序贯寻优法一、随机序贯寻优法n对参数 给出一个求解区间 (通常它就是该参数的上下限)。每次分别独立的产生n n个上述区间上的均匀分布的随机数 ,并令n (6.4.1)n作为一组尝试值,代入系统求出 ,反复产生 ,反复计算 ,可得如下一个序列:n n 这里的 是 的第一组尝试值, 式满足下式中最先出现得一组尝试值 :宇乱垮撬显戏旨下筒湖想如苹掏响君敲帛也庸声违晋电正涕况篇镐肢矮庶第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n不满足上式的 就被舍弃,不再编写

87、, 式满足下式中最先出现的 : 其余类推,故得n (6.4.2)n可以证明,只要 是独立的均匀的随机数,总可以得到使 为最小的 值,当然此时 将是相当大的。n上面介绍的随机序贯寻优由于在得到(6.4.2)式这个序列式,曾舍弃掉许多 点,并没有充分利用这些点所带来的信息,同时也没有充分利用这个序列给出的信息,因此计算量是十分之大的。显然,搜索区间的大小将直接影响寻优的效率,因此,如果能在随机寻优的过程中充分利用前面计算所得的信息,不断缩小搜索区间,将有可能大大减少寻优次数,因而大大节省计算时间,具体做法如下。 峨寿馆挠虎攫弊累尔彭迟轻销债闺寡魂以挥募貌媚配曹剂枝丘幼伏虾嗣枷第六章控制系统参数优化

88、及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n(1)给定一个不太大的正整数 (比如为5),按照上述方法求出 组 n n它们满足 n(2) 求出新的n (6.4.3)n其中 称为第 组的权,即第 组的权为1,其他组的权均小于1。 勿聘恬桔粮锦吹胆泳洋巡帐蛹娇头谦隐肉俄运袄瓤宁曼唁磕派首袁厩摹映第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n3)求出新的n (6.4.4)n其中,C是一个正数,一般取23。n一般来讲,这个新的 比原来最初给定的 将更接近于 ,而 也比原来的大为缩小。n(4)用计算出的 及 来代替原来的,并重复上述步骤,直到求出

89、 为止。n采用上述改进后,随机序惯寻优才有了更加实用的价值,但是实际使用这种寻优法时仍有相当的技巧。下面将列出几点,供读者在使用时参考。 识鲍仁渊颗蚁期睁衙芒掖鞘舰悉卵闸氯驶致九薪桩票凹匪钱尿剿韶腺属润第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n(1)关于 的大小问题。若 取得过大,则起不到收缩区间的作用。但若 取得过小,则容易使新搜索区间中不包括极小点,因此造成失误。一般来讲,第一轮 可取4(或5,6),以后只要有了两组新的 值就可收缩,不足部分用上一轮最后出现的补足,这样既可保证T不过小,又不会由于为形成一个具有 组 的序列而使计算次数过多。n(2

90、)关于 的问题。实际证明 是很重要的一组参数,为使寻优收敛得较快往往不是取 的第一组尝试值(因为它的随机性太大),而是取前 次尝试中最优值( 一般取 的几倍到十几倍)。 吗悲辙胀蔼刚干野跋癣贞米车赡歧亡双隋凋揭墨等赎沟疼钳辟者教插敝庸第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n(3)关于强行收敛问题。在采用此法时,常常会遇到这样一种情况,即在取得某组 后,虽然经过很多尝试,仍不能得到 ,此时,往往是由于 已比较接近 而搜索区间仍较大的缘故。为了不至于在此浪费太多的计算时间,可以进行强行收缩,即令 ,并以当前的 的1/5为新的 ,强行使搜索区间缩小,这样

91、一来,往往就能很快找到 。n(4)关于随机数的性质问题。对于给定的搜索区间 n 一般总认为最优值 落在该区间的中间部分的可能性大,尤其是在经过对 组 进行了统计处理,使搜索区间缩小为新的区间 之后。然而,独立均匀分布随机数却不能反映这一点。为此可以交替地使用独立均匀分布随机数和独立地三角形分布随机数。关于独立均匀分布地随机数及独立的三角形分布随机数的产生方法可参看有关资料。 炯耀铜碑稻捻狮越着竖吨舀钉苦羡涅蛤裁袁米翘板抄肮盆哇赠措陵这温揭第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n随机序贯寻优的程序框图如图6.4.1所示。图图6.4.1 随即序随即序贯

92、寻优贯寻优程序框程序框图图宫迁柑秒盈剩反肆鞭礁闯半瑶壮柑粳蹲翘旬部留艇授卫舍望运哎搓苟没侨第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n n二、随机搜索寻优二、随机搜索寻优二、随机搜索寻优二、随机搜索寻优n随机序贯寻优法是在一个限定的参数空间里用随机方法来找出一个 的序号,然后对它们进行统计处理,使被搜索的参数空间收缩,继而再用随机方法去寻找出一个新的 序列,直到最优点找到为止。从前面的介绍中可知,这种方法,在使用时有一定的经验性,弄不好就会不收敛。n 如果改为以初始点 为中心,在一个半径为 的小空间中用随机法来进行搜索,若成功(指随机产成一个新的 ,它

93、的目标函数比 的目标函数小),则将中心转移到新点,因为 较小,而且采用如下手段,即当搜索失败时,则在反方向再试探一次,所以成功率较大。这样一来,移动虽然缓慢一些,但比较稳妥,另外,为了加快收敛,可以在连续成功时加大 ,而在连续失败时减少 . 兄顷闭矿渊锯飘祝艾担芋焙喂窄峨讯次砸哦过框填侨够削塑咕渗趴遍雀态第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n 随机搜索寻优的程序框图如图6.4.2所示。图图6.4.2 随即搜随即搜索寻优索寻优法程序法程序框图框图弦屹榷捏洽卸馒刀罐蒲唐搞朴渐燥旬豢画童糖厄眶呻遣盛钻抬膛集报犹骤第六章控制系统参数优化及仿真第六章控制系

94、统参数优化及仿真6.4 随机寻优法随机寻优法n n三、随机模式搜索寻优法三、随机模式搜索寻优法三、随机模式搜索寻优法三、随机模式搜索寻优法n 在以上两种随机寻优法基本上都是按照随机规律在一个参数空间中搜索最优点,其区别在于:一个是先在一个大的区间中寻优,然后设法将区间变小;而另一个是从这一点出发,按随机方向、随机步长在一个较小的区间中搜索,并逐步移动中心点。显然,这种单纯的随机寻优往往由于搜索的随机性,要求计算目标函数的次数较多,人们很自然会想如果将随机寻优与单纯形法中按一定模式(指 )进行寻优结合起来,那么是否有可能使寻优速度加快,因而使目标函数的次数减少,这种想法的具体化就是所谓的随机模式

95、搜索寻优法。粪债省茅寨今翱抽织眶癣恋若胸篡你盂帖沂泡捧诱甜峻彻垫波园广蔫肤捉第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.4 随机寻优法随机寻优法n 采用随机模式搜索寻优法的具体步骤是:n(1)从 出发,用随机搜索寻优在以 为中心、以 为半径的空间中做随机搜索 次(每次不成功,则改变方向再判别一次),得出最优者 ,最坏的可能是 ,即仍在 处没有前进。n(2)然后进行一次模式寻优,即n (6.4.5)n(3)判别 是否小于 ,即检查一下这次模式寻优是否成功,若成功,则回到步骤1,若不成功,则将 向 压缩,直到 时为止。最坏的可能是压到 ,此时表明,这次模式寻优完全无效,则程序仍回到

96、步骤1。n 采用次法时,也可参照随机搜索那样,对 进行改变,详细程序就不做介绍了。绍制痊孕如均打蔫念酿秒身淘坍蚤罗灾炸欲葵桔淳厅蹦歌孤凯酗桩胎篱邱第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n 以上讨论各种寻优方法都是在没有限制条件下进行的。实际上,在系统的参数优化过程中,往往存在着一些附加的要求,希望系统参数在满足主要目标函数为最小的条件下,也要满足某些附加的要求,即给出限制条件,下面简单讨论在寻优过程中限制条件的处理。n一、代价函数法一、代价函数法n这种寻优过程中处

97、理限制条件的方法,是对各种限制条件加权和的一种方法,所以又称为罚函数法。假设要求的目标函数为 ,限制条件 , ,2, 处理的方法是:将各限制条件加权求和以后,和原来的目标函数 相加,从而产生一个新的目标函数 ,即n (6.5.1)汇罢杖釉猎尿丝冲睦瞻弄弘桐冲豪浦惫雹治岭逾燥生哆颤脓讶奖炼叙籍华第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n其中, 是一个大于零的正数,其大小反映了各项条件的重要程度,它在各项限制条件中起平衡与协调作用,在开始寻优过程中, 取较小的值进行试探计算。 经过以上处理以后,参数寻优的目标函数变成(6.5.

98、1)式,寻优过程变成:n (1)按新的目标函数 进行参数寻优,即设法找到使 为最小的参数 。n (2)加大 ,再对新的目标函数 进行寻优,找到使 为最小的参数 。n (3)比较 和 ,若二者相差很小,则认为 即为最优参数 ,否则转到第(2)步再进行计算,直到满足为止。 左讶户希赢伙肥鹅丈始舷哇振清速洛李意存峻费夺迪座病怎谬嘉反檬忙郊第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n 在寻优过程中,要求限制条件 ,由于 取大n于零的正数,而 的第二项 只可能大于或n等于零,因此当加大 以后,若寻优结果 和 仍n十分接近,这时 必定成

99、立,或者说 相当n接近零,也就是说符合限制条件。此时 ,n因此使 的 也必定使 。 苏谅翘瞬侧椿鸡氖易枢酥喝拿啮壶沫扼爸草镭戒鸯英董胎泅苦全肌训珠窄第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n n互换寻优法互换寻优法互换寻优法互换寻优法n互换寻优法的基本思想是:在寻优过程中,对目标函数和限制条件分别进行计算,首先按照目标函数进行寻优,同时检查限制条件是否满足要求。当参数不满足限制条件时,就把限制条件作为目标函数,对限制条件进行参数寻优,直到参数点满足限制条件,然后再回到对原目标函数的寻优计算中。这样反复进行,直到目标函数 为

100、最小。假定等式限制条件n (6.5.2)n不等式限制条件 (6.5.3) 终端限制条件 (6.5.4) 饵此兵康锭禁退判改复劫拖乎害谐烧香肾凿抽事涂睫抉驴白棋现观矾士傈第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n 首先将 分别化成等式终端的统一形式,即n (6.5.5)n其中 n经过处理以后,可得如下计算限制条件的公式n (6.5.6)n , , 都可以在计算系统的运动方程中计算出来,故 在寻优过程中式可以计算出来的。n 经过以上的处理以后,将原来的目标函数 的限n制条件 ,作为两个目标函数进行互换寻优。岭罚熊俏皇琵胰囤徘俏

101、乏抓渊嘶砒戳臻佑昧鳖陀滑冯添伦雀网厦犀村志置第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n下面用梯度法进行参数寻优为例,说明互换寻优的计算步骤。n (1)给定初始参数 ,解系统方程,计算目标函n数 和限制条件 。n (2)判定初始点限制条件是否满足要求,即是n否 ,若满足要求,则对目标函数 进行寻优按梯度法固定步长进行参数寻优,每前进一步都要n判别是否满足限制条件。若限制条件满足要求,同n目标函数趋向极小值,则表示这一步是成功的。n (3)若不满足限制条件,则转为对限制条件构成n的 函数进行寻优,其方法与对目标函数的寻优方法相

102、同,寻优方向为 。匠暴嫩挡鹃屋象椰掘喧捡娶仔吐咕仪泅淆污伙律欲懂泅糊京谩餐洽待娱芝第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 65 寻优过程对限制条件的处理寻优过程对限制条件的处理n 为了使互换寻优更为有效,在梯度方向上用固定步长进行寻优,因此,步长一般不应选得过大。恿豺丑炬掐皿洲扬诊锤株宰揖梨慕粥蔑诧充涯熔南谋涅泛饱抒倡牢伴萝腹第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6.6 函数寻优函数寻优 n在控制系统设计中经常有这样一类问题,在被控制对n象已知情况下,寻找最优输入函数 ,使性能指标n函数达到极值。n n一、计算最优的梯度法一、计算最优的梯度法一、计算最优的

103、梯度法一、计算最优的梯度法n设状态方程为 n (6.6.1)n目标函数为 n (6.6.2)n定义哈密顿函数为n (6.6.3)n根据最优控制理论可知,辅助变量满足方程n n (6.6.4) 鳖凯洽投颁衫喝册刑品忽伴旺蕾胎渣抗箩厦景彭柄茶隐揽症除赚雄寇犬柠第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6.6 函数寻优函数寻优 n当控制变量由 改变到 ,而相应的目标函n数 改变到 ,即n将哈密顿函数代入上式得n n将上式中的 , 进行台n劳展开,取到一阶项得n 修铡峙陨雌趟姚她城放臭匀嚎野揍颇花等旭保烙葬河鸿郧懦汁喻我洼逆履第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6

104、.6 函数寻优函数寻优 n将(6.6.4)代入上式得n n对上式进行部分积分得n (6.6.5)n根据终端条件,n (6.6.6)n(6.6.5)式变为n (6.6.7)牙鹅曰斗堪衷状朵搏怪访蜡返始磁泥灿痒克演菇徐犊沼荆瞧聂诽寓肉闰待第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6.6 函数寻优函数寻优 n希望选择 ,使目标函数减小,即 ,由n(6.6.7)式可以明显地看出,只要取n (6.6.8)n就可得 。经过以上推导变换,将计算梯度n的问题转化为计算哈密顿函数的梯度问题。最后控制n量 在 次的计算按以下迭代公式计算:n n (6.6.8)n 是以 求 的最佳修正步长。可采用本

105、章第二节中的单变量寻优技术。梯度法计算最优输入函数的程序框图如图6.6.1所示。杉盟径节毁俭期最画诈蝎恫侥懊耶迸凤扼严懂它傣凭越卞牢栅队醇逮裹苇第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6.6 函数寻优函数寻优 n 图图6.6.1 梯度寻优控制程序框图梯度寻优控制程序框图 气啼陋瓣蛛鲤赘龋骡浆陀廉售握勘遭羹捷瘸养誊漠瓤篷拴庞邵溃谜拆教离第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6.6 函数寻优函数寻优 n下面给处理用梯度法计算最优函数的一个例子。n例例 6.6.1 系统状态 n目标函数n求最优输入 。n解:解:问题的哈密顿函数为n n 协态方程为鱼伞渣篮哑扩敖睦

106、初蛹赡藏蔷顶怠欠瑰忽擞浙斯朔妇安卞嗡谦迪圣磊新叼第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6.6 函数寻优函数寻优 n梯度n控制量 如果选定初始控制量 ,根据以上公式,按照前面讲的步骤科与很方便的得到用梯度法求解最优控制的解。n n二、计算最优控制的共轭梯度法二、计算最优控制的共轭梯度法二、计算最优控制的共轭梯度法二、计算最优控制的共轭梯度法n 共轭梯度法用以求解最优控制问题较为有效。在收敛速度方面比最速下降法快,并且具有最速下降法的优点,如:程序简单,容易实现,计算可靠性好.胁医壁捎职扰隧亢键扒弓涩情恨纯泳碉粒裸度扯萌描橡十拣戒柔沛坦峻儡第六章控制系统参数优化及仿真第六章控制

107、系统参数优化及仿真 6.6 函数寻优函数寻优 n 共轭梯度法的计算步骤如下:n(1) 给定初始控制函数向量 ,置 ;n(2) 将 代入状态方程,在区间 求解 ;n(3) 根据(6.6.2)式,计算目标函数 ;n(4) 由 到 反向积分伴随方程(6.6.4)式,求 ;n(5) 计算哈密顿函数的梯度 ;n(6) 如果 ,则停机,否则继续; 患候柯匈胸肌啥身着作堡着告勉尊勃序党镍戮解辩蕾苯傣基八确拣奢要萨第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真 6.6 函数寻优函数寻优 n(7) 计算共轭系数 n n(8) 寻优方向为n n(9) 一维寻优,求最佳步长 ,使n(10) 计算控制函数

108、,置 , 转回(2)。哦戈成激粥煽岸摆滩迁拳沉乎愚豁露唱副拦贯欠拙泻龚眩锗挠计雕谋呸苇第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n n6.7.1 Matlab优化工具箱概述优化工具箱概述 Matlab优化工具箱(Optimization Toolbox)涉及函数的最小或最大问题,也就是函数的极值问题。Matlab的优化工具箱由一些对普通非线性函数求解最小化或最大化极值的函数和解决诸如线性规划等标准矩阵问题的函数组成。 埃逼拨院澄毫拜完湘丫捻八着庙文啸倪岭索畸庞稼磺禽仑万叁源自擂仟你第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.

109、7 Matlab优化工具箱优化工具箱 Matlab的优化工具箱(Optimization Toolbox)的主要功能有:n 求解线性规划和二次规划;n 求函数的最大值和最小值;n 非线性函数的最小二乘;n 多目标优化;n 约束条件下的优化;n 求解非线性方程。晒泞宁漠釜茂匣教谅拯丛痪苗砰哆耀喧蝴扁核宇骋盘暮姜峡廓哩值砰洛仔第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n优化工具箱的专有函数有11个,其功能和语法如表6.7.1所示。功能数学含义语法求解线性规划X=lp(f,A,b)求解二次规划X=qp(H,c,A,b)求非负最小二乘解X=nnls

110、(A,b)求解无约束一元函数极小问题X=fmin(f,x)菊慨屏又诲讫赁热赁狠该并宏慰灰妆蹄仅久塞眉鄂艇灵那颜蓄塔媚与钦昏第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n 求解无约束非线性规划X=fminu(f,X)求解约束非线性规划X=constr(fg,x)求解目标规划X=attgoal(f,x,goal,W)求解最小最大问题X=minimax(fg,x)求非线性最小二乘解X=leastsq(f,x)求非线性方程X=fsolvex(f,x)求解半无穷条件下的非线性规划X=seminf(ft,n,x)蚊烘间拨苯恩副翰健畜巳旷傲例妙亏捌的秀玛介

111、判赎峡淬轮推部琢忘绩谴第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n利用优化工具箱进行极值运算时,可以自由选择算法和搜索策略。非限定最小问题的原理算法是Nelder-Mead单纯形搜索方法和BFGS拟牛顿(quasi-Newton)方法;限定条件下的最小、最小最大、目标法和半无穷优化等问题,所用的原理算法是二次规划法;非线性二次平方问题的原理算法是Gauss-Newton法和Levenberg-Marquardt法;非线性最小和非线性二次平方问题可以进行线性搜索策略的选择,线性搜索策略使用的是三次或四次内插和外插方法。苑造濒拒皮砒郁狗篇议绢焚

112、巾克姿煤房侨引坏筋扳耶联迪来疙雪簿么明狮第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱nMatlab优化工具箱还能进行线性和非线性方程的求解,其功能和语法如表6.7.2所示。 ,功能数学含义语法线性方程 , 是一个向量单变量非线性方程x = fzero(myfun,x0)非线性方程 , 是一个向量x = fsolve(myfun,x0)坪椭豁咀修猎形筒拷嘉埠材醚驹抹糖儿蒂礼芯达涝净褐腔殉劝盎该酬令蹭第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱Matlab优化工具箱还能进行最小二乘曲线拟合的求解

113、,其功能和语法如表6.7.3所示。,条件是条件是功能功能数学含数学含义语法法线性最性最小二乘小二乘非非负线性最小性最小二乘二乘x = x = lsqnonneg(C,d,x0)lsqnonneg(C,d,x0)带约束束的的线性性最小二最小二乘乘x x =lsqlin(C,d,A,b,A=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)eq,beq,lb,ub,x0)眨倔疆弦谩痉已按轨值阂小振郡希壹梧攘云故媒藤翔泪倔泡茵虑该瘴顽吞第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱非线性最小二乘x = lsqnonlin(fun,x0,

114、lb,ub)非线性曲线拟合x = lsqcurvefit(fun,x0, xdata,ydata,lb,ub)胆贸赞伙蒲铁写副菱缩枚丽赋翟络绥品裸坏镶倾沉笛恰佃饱拆遵手走喷绢第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱.7.2 Matlab优化工具箱使用例子优化工具箱使用例子在Matlab窗口运行optdemo的一个M文件可进行优化工具箱的演示。在这一小节我们给出几个典型算例来说明如何使用Matlab优化工具箱求解优化问题。例6.7.1 例如我们希望求解非线性方程:初始值为x0 = -5 -5。首先写一个m函数,用来计算方程,变量是腰恐托佣札

115、缄胆镶痊库梯算赫便供讹礁漠矗狠翼旦懦呜匣称具床坚疾虏钻第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n function F = myfun(x)nF = 2*x(1) - x(2) - exp(-x(1);n -x(1) + 2*x(2) - exp(-x(2);n然后调用优化函数nx0 = -5; -5; % Make a starting guess at the solutionnoptions=optimset(Display,iter); % Option to display outputnx,fval = fsolve(myfu

116、n,x0,options) % Call optimizer型刘戚谱溢氧秘锭刑怔族眠道焉台粪芯户万碑萄刨汛虽亩傀氦绚祖味檄谊第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n n计算结果为:计算结果为:计算结果为:计算结果为:nIteration Func-count f(x) step optimality radiusn 0 3 23535.6 2.29e+004 1n 1 6 6001.72 1 5.75e+003 1n 2 9 1573.51 1 1.47e+003 1n 3 12 427.226 1 388 1n 4 15 119.76

117、3 1 107 1n 5 18 33.5206 1 30.8 1n 6 21 8.35208 1 9.05 1n 7 24 1.21394 1 2.26 1n 8 27 0.016329 0.759511 0.206 2.5n 9 30 3.51575e-006 0.111927 0.00294 2.5n 10 33 1.64763e-013 0.00169132 6.36e-007 2.5漂潮吉靳陵雇刽养森晕坛狸梅雏挫咀淑编敌狼允仆厦歇诸沁改衬图帅甭衍第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱nOptimization terminate

118、d successfully:n First-order optimality is less than options.TolFunnx = 0.5671n 0.5671nfval = 1.0e-006 *n -0.4059n -0.4059n n应用应用应用应用MatlabMatlab优化工具箱解线性规划问题时,其相优化工具箱解线性规划问题时,其相优化工具箱解线性规划问题时,其相优化工具箱解线性规划问题时,其相应的格式为:应的格式为:应的格式为:应的格式为:吝形爷檄托枪生撰笼盎羔净兽诊欣吭萨杯瓶轨彼珍享完钾丧接梨家谐耕计第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Mat

119、lab优化工具箱优化工具箱n其特点为:n 是求目标函数的最小;n 目标函数的系数作为矢量;n 约束条件全部为“小于等于”零。若约束条件中有“等式”或“大于等于”约束应化为“小于等于”零的约束;n 约束条件的系数作为矩阵,约束条件中的右端作为矢量。n例6.7.2:利用Matlab语言求解下列线性规划问题。 搐殊则偏偷洪屋民园哦肆抚沤校膜颧从如顶邮币棘卉总柄护廓涕沿顿币倾第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n解:首先给矩阵赋值n n f=-2 -1.3 -5;n A=1 2 4 -1; 2 3 -1 1; 1 0 1 1; -1 0 0

120、0; 0 -1 0 0; 0 0 -1 0; 0 0 0 -1;n b=6 12 4 0 0 0 0;n在命令窗口调用优化程序n n X=lp(f,A,b)n回车后,屏幕输出最优解:n X =n n 0 2.6667 0 4.0000n继续在命令窗口键入f*X可得到问题的最优解:nans = -22.6667n有关命令lp( )的使用可以在Matlab命令窗口键入help lp得到更多的帮助。瘸识辩蓑华钒报萧集爸椭桑扬灾液啃召末卒苫喝涂杂顽谢霍模芝袍砍熏注第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱例6.7.3:利用Matlab命令求解下面的

121、无约束非线性规划问题。解:首先用文件编译器编写M文件,并命名为fun.m function f=fun(x) f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);其次在命令窗口键入: x0=-1 1; options=; x,options=fminu(fun,x0,options)回车后,屏幕即显示:x = 0.5000 -1.0000options =0 0.0001 0.0001 0.0000 0 0 0 0.0000 0 36.00000 0 0 200.0000 0 0.0000 0.1000 1.0000酸股柒灾匿伎芯醇窗呜孜昨伤怕旧

122、卢铃傻技帆句眷誊狗莫崔酒辈叹汐墩俯第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n这里的options是优化工具箱中特定的参数向量,共有18个元素,其具体含义可以参见命令lp的说明。其中options(8)是问题的最优值,options(10)得到函数最优值所花费的计算次数。n实际应用时,也可以不先定义函数fun,而直接把函数的表达式写入调用语句中,即:n x0=-1 1;n options=;nx,options=fminu(exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1),x0,options)

123、n其计算结果是一样的。 翰萤缩阻综腹侗涪附压届危怂宁摩猪暮蒲童期醇殊烽币撮羽铁嗡莉慷傀圾第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱例6.7.4利用Matlab命令求解下面的约束非线性规划问题 其次在命令窗口键入: x0 = -1 1; options = ; x,options = constr(fun,x0,options)回车后,屏幕即显示: x = -9.5474 1.0474输出最优解: options(8)结果为: ans0.0236唐昔肉户畏丹掸养例渔东凑莫绸慰脯版祖爱郧妙程绣悸彼衅吃呜怀疽壬忌第六章控制系统参数优化及仿真第六章

124、控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱例6.7.5:曲线拟合指令lsqcurvefit的使用。设数据xdata和ydata的维数是10,其值为xdata = 3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4;ydata = 16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3;希望找到系数能够最好地拟合方程: 也就是希望极小化说蚜耕瞅榴宵娜墩扬颈渗烈头犀密可壁鸳嵌料捏伶跟套礼焰涂茬谓赛饵宽第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n其

125、中: F(x,xdata) = x(1)*xdata.2 + x(2)*sin(xdata) + x(3)*xdata.3n初始值x0 = 0.3, 0.4, 0.1。n首先写一个M函数,该函数返回F()的值。 nfunction F = myfun(x,xdata)nF = x(1)*xdata.2 + x(2)*sin(xdata) + x(3)*xdata.3;n 优化计算子程序为:n% Assume you determined xdata and ydata experimentallynxdata = 3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4

126、;nydata = 16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3;nx0 = 10, 10, 10 % Starting guessnx,resnorm = lsqcurvefit(myfun,x0,xdata,ydata)铝蒸茅字矿髓你茧糯誊修算虐蓟韧接内候绊晨佣津煽功邦龙烘邦史究镶左第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真6.7 Matlab优化工具箱优化工具箱n运行结果为:nx = 0.2269 0.3385 0.3021n% residual or sum of squaresnresnorm = 6.2950

127、女呼辽箱茨椭柬驳愿红泵鸿人歌妈挪喝夹猜戎变阳兹酿翻烙辣颖蚁箕梗好第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真本章小结本章小结n系统仿真的重要目的之一是实现一个工程系统的最佳设计和最佳控制,这就是所谓的系统优化问题。优化问题一般可以分为两类,一类是参数优化问题,另一类是函数优化问题。本章第一节对这两类问题做了一个概括性的叙述。由于参数最优化问题是优化技术的基础,同时函数最优化问题在数值求解过程中,一般也是转变为参数最优化问题来加以处理的,所以本书主要介绍参数最优化问题。单变量寻优问题是优化技术的基础。在复变量优化算法中也需要用单变量寻找最佳步长。在本章主要讲的是分割法和插值法。多变量

128、寻优技术是优化理论的核心,研究的内容很多,在工程中最常用的是梯度法和单纯形法。此外,本章还讲述了存在约束条件的优化问题,主要介绍了代价函数法和互换寻优法,在实际应用中,也是比较常见的。最后一部分扼要地讲解了函数优化问题,即最优控制问题地数值解法。秤保散许裂垄爵囊蛮锋柄趴篙远钨梭寝涯枣茨廉您倚赠培茫综籍奏瑶促憋第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真习习 题题n 6-1试编制黄金分割寻优程序,求目标函数的最小值,区间缩短的精度6-2试用单纯形寻优程序,对下列多元函数寻找 极小值点。 =0.000 01臻庚伐晌直广练趴栓皂鼎建而炎哀嗅冀食莲喜翰肉络某济宜冉掺垃泄抚脉第六章控制系统参

129、数优化及仿真第六章控制系统参数优化及仿真习习 题题n 6-3已知一系统结构如下 指标函数取 (1)纯形寻优程序对上述系统中控制器的控制参数 进行寻优。(2)若指标函数取为或进行寻优。并比较在上述三种指标对函数下寻得的构成的系统在阶跃函数作用下的过渡过程。鼓筋澳伶惩郴麻息构隶佑蹄挪钻断庄颜化脆胡衰郭爱瘸烈懦基赦受伙抠勤第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真习习 题题n 6-4设有一PDI调节的计算机控制系统如图618所示,现要求用单纯形寻优程序寻找PDI调节器参数的最优值,使误差的绝对值对时最小。已知初始函数 ;系统参数 间积分最小,即目标函数明刘萝诱拔撅艰伺齐扣蛛音载梦咳屁论陋虽天甥缝祈况睁回跟舍痹罪肚坟第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真习习 题题n 采样周期 数字式PDI调节规律差分方成为 式中:为阶跃函数;输入6-5 , 试比较最速下降法,共轭梯度法,单纯形法及随机寻优法等几种方法的优缺点。约距钾损藏座千缉钢磐迭倚族伯甜傻馅雍龄嚷股袍洲滁滚俗毅龙榴擞庞吹第六章控制系统参数优化及仿真第六章控制系统参数优化及仿真

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号