第六章 控制系统参数优化及仿真课件.ppt
优化技术包括内容很多,本章主要介绍与系统最优化技术有关的参数优化技术方法。 第一节首先对控制系统常用的优化技术做一概括性的叙述。 第二节介绍单变量技术的分割法和插值法。 第三节为多变量寻优技术,介绍工程中常用的最速下降法,共轭梯法和单纯形法。 第四节为随机寻优法。 第五节简单介绍具有约束条件的寻优方法。 第六节介绍含函数寻优的基本方法。 最后向读者介绍了Matlab优化工具箱的使用方法。 优化技术是系统设计中带有普遍意义的一项技术,本节首先讨论优化技术中的一些基本定义和问题.一、优化问题数学模型的建立一、优化问题数学模型的建立 用优化方法解决实际问题一般分三步进行: (1) 提出优化问题,建立问题的数学模型。 (2)分析模型,选择合适的求解方法。 (3)用计算机求解,并对算法,误差,结果进行 评价。 显然,提出问题,确定目标函数的数学表达式是优化问题的第一步,在某种意义上讲也是最困难的一步。以下分别说明变量,约束和目标函数的确定。(1) (1) 变量的确定变量的确定变量一般指优化问题或系统中待确定的某些量。例如,在电机的优化设计中,变量可能为电流密度J,磁通密度 B,轴的长度,直径以及其他几何尺寸等。电路的优化设计中要确定的变量主要是电路元件(R,L,C)的数值。对产品设计问题来说,一般变量数较少(例如,几个到几十个)。变量数的多少以及约束的多少表示一个优化问题的规模大小。因此,工程上最优设计问题属于中小规模的优化问题,而生产计划,调度问题中变量数可达几百个几千个,属于大规模优化问题。变量用X表示Tnxxxx21niExxg;0)(mi,2,1 nm rj,2,10)(xhi0或或 ),()(21nxxxfxf)(xf)(xf)(xf*xx)(max)(minxfxf)(minxf(6.1.1)nRx 约束条件 0)(xgimi, 2 , 1yEdteft02 图图6.1.1 控制器参数的调整控制器参数的调整 N,32120()ftQe d t)(Q*21nT),(txfxxnmfn0)(H0)(G0),(ftS*min)()(*QQ) (*tu) (*tu),(txfxxnmfn0)(H0)(G0),(ftSl),(),(*xtxtmin)()(*QQ618. 0)(xQ,00bax 00, ba)(00ab 21, xx)()(21xQxQ1101,xbaa,11ba11,ba)(21ab 1,00ba100 ab,nnbannnab 选多大适合呢?如果要求 应该是 的对称点,即 ,如图6.2.1(b)所示,则也可以写成下面关系式:2x1x0210bxxa)()(00020001abbxabax图图6.2.1 黄金分割黄金分割图图1x,00ba2x,11ba010201axaxLaxLaxax20102)(LaLb200LLL2012251图表示了图表示了黄金分割黄金分割法程序框法程序框图。图。3610)(2xxxQ00001. 010A10B00001. 0E)(xQ)(,321321xxxxxx321,QQQ2210)(xaxaaxP232310322221022121101)()()(xaxaaxPxaxaaxPxaxaaxP (6.2.5)02)( 21xaaxP21min2aax)(1)(1)(1)(1)(1)(15.0332211233222211minxPxxPxxPxxxPxxPxxPxhxxxx1223)2(2)(321212minQQQQQhxx1x)2(2)(32121minQQQQQhhx1xhhxx12)(1xQ)(2xQ)()(21xQxQhxx223hxx434hxxkkk212)(kxQ图图6.2.3 外推法图示外推法图示 )()(21xQxQhxx13hxx234hxxkkk312kkxx2kkxxx2)(2211kkkkxxxx1kxkx2/)(11kkkxxx112,kkkkxxxxd)()(21xQxQhdk32)()(21xQxQhdk 42bxdxxdxxbcba,cbaxxx,*xaxcx2Q4Q0mhh 3610)(2xxxQ图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)(xQ*xxn0 x0P1x)(xQ0P1x1P)(xQ1P2x)(xQ)(xQxxnxkkxkxkkxxdx11kxkxdxdxdxdsTni)()(2/112kx)(xQdxxQdxxxQxQdxxQdQkTniiikkk)()()()(1)(xQ0)()()(212dxdxdsdxdxdsNTniiidxdxxQdQkT)()()(2dxdxdsdxxQQdTkTdx02)(dxxQkdx)(21kxQdx)()(21kkTxQxQds21)()(kkTkxQxQdshkh21)(kkxQhdx1kx)(1kkkkxQhxxdsxQxQxQdxkkTk21)()()(dsxQxQxQxQdQkkTkkT21)()()()(21)()(kkTxQxQdsdQdsdx2dQdx), 2 , 1 , 0(0khkkh)(xQkh)(xQkh)(kxQ)(min)(kkhkkkxQhxQxQhxQhkkkkkkhkkkkkkkkkEhxxhExQEhxQxQGGExQG11)(min)()()(GGkEG121)()(kkxQxQ12GkEkhQx kh( )Q xnRnx12,.,nx xx0 xR( )Q xxAxxxQxQxxxxxQxxxQxQxQTTjixxnjijiixxnii21)()()(21)()()(01,010000)(0 xQAnxxQxxQxQ)(.)()(0100.)(.)(.)(.)(2021021022102nnnxxQxxxQxxxQxxQAA( )Q x0 xnRx0*)()(*TxxQxQnx( )Q xxAxxQxQT21)()(*xx( )()0Q xQ x0 xAxTxAxA1x 0yTx yTx IyIxy( , )0 x y A0Tx Ay xAyxyA( ,)0 x Ay ( )Q xxxAxxxQxQxQTT21)()()(*A( )Q x*x*x0)(*TxQxAxxQxQT21)()(*( )Q x1( )2TTQ xKC xx Ax0 x( )Q xx0 xx0 xxyCAxAxC1*00 x00)(AxCxQy)(0 xQ0)(0 xQyTCAxxx10*0)()(00*0 xQCAxxxAy)(*0 xxA0)(*0 xxAyTy*0 xx An)(xQAxxxCKxQTT21)(AnnxxQ)(TTAxCxQ)()(0101)()(PAxCPxQTT 图图6.3.4 二次函数中的共轭方向二次函数中的共轭方向 图图6.3.5 两个变量的等高线图两个变量的等高线图 0 x0p( )Q x1x1x0101)()(PAxCPxQTT0 x0P2x0)()2(020PAxCPxQTT0)(021APxxT211xxP001APPT1P0PA1P1x2xAxxxCxxxxxxxQTT216041060)(2122212112210PTx000010APPT0PTTeeE01 0 , 20 , 100P1xTx00000 , 200 , 21 , 200 , 100 , 11 , 1ehxxhehxx0h0102)(00 hdhxdQ0, 51 ,21 , 1xx2001060)(hhxQ50h0P1 , 21 , 110211201eeAPPT021 , 21 , 1ee021 ,21 , 1 ee511,1e521,2e11 ,211 ,22,211 , 111 , 12, 1520515hehxxhehxx1h2115351835)(hhxQ1h051856)(11hdhxdQ531h652,85512,212,1hxhx0p1p1,2x2,2xnnAAAAAAxxxCKxQTT21)(x0 xiPPP,10iiiiAxCxQG)(iiiiPhxx1ih)(min)()(1iihiiiihPxQPhxQxQ11iiAxCG1ixiiiiiiAPhxxAGG)(1101iTiAPP0)(11iiTiGGP0 x0P0G)(000AxCGP0P0h)(min)()(000001hPxQPhxQxQh1x)(11xQG1G1x01010GGGPTT0P1x1G0P0G0011PGP0G1G1P1P01P0P0)(011GGPT000)(0)(0001100011000011001111001GGGGGPGGGPGGGPGGGGPGTTTTTTTTT00011GGGGTT0001111PGGGGGPTT1G0G1P1P1h,2x, 2 , 1 , 0,11iPGPiiii, 2 , 1 , 0,11iGGGGiTiiTii1iP按照(6.3.55)式及(6.3.56)式确定搜索方向的算法成为共轭梯度法。其程序框图如图所示。图图 6.3.6 共轭共轭梯度法的程序框梯度法的程序框图图2122212141060)(xxxxxxxQTx00042102)(122121xxxxggxQGTTPhxxhxQGP052631578. 357894631. 7763157894. 0410)(00010000305401. 01114265927.35)()(2120,2121 ,00110iiiiTTggGGGGTPGP747922437. 684349308. 000111h1h)(min)(10111hPxQPhxQhTPhxxh999999. 5999999. 7436781609. 011121( )Q x( )Q x( )Q x( )Q x( )Q x( )Q x1x2x1Q( )Q x( )Q x2Q( )Q xnxn1n01,.,nxxx1n10 xx20 xx0nxx2n 3n 0 xnxxx,21nihexxii, 2 , 10iei00100iei图图6.3.7 单纯形法寻优过程单纯形法寻优过程 图图6.3.8 反射点的确定反射点的确定1x2xcx)(5.0)(5.02221212111xxxxxxcc3x202231011322xxxxxxccnxxx,101nHxHxRxHcRxxx 2Hniicxxnx01Hx( )QxLxGQ( )QxGxHQRxRQGQ1)1 (RHExxxRxRxRQGQHxRxRHSxxx)1 (SxCxSxCx0.5SxCxSQGQnixxxiLi, 2 , 12()/HLLQQQLxLQLxHxGx1k图6.3.9 单纯形法程序框图), 2 , 1(nixiiiiiiix),(),(2121nnxxxx)(xQx)(xQ)()3()2()1(,Txxxx)1(xx)2(x)()()1(xQxQx)3(xx)()()2(xQxQ)()()()() 2 () 1 (TxQxQxQiQ*xTxTTx)()3()2()1(,Txxxx)()()()()2()1(TxQxQxQiniWxWTitTttiti, 2 , 11)(1)()()()()()()(tTtxQxQWtTTttTtititiWxWC1)(12)()(ii*ixiii*xTTTTXTx1x( )1x()xKKn1x( )(1)tx( ) tx*x( ) tiixii*x()iiii,*xTX()iiii,图图6.4.1 随即序随即序贯寻优贯寻优程序框程序框图图XX0 x0Ax0 x0A0A0A图图6.4.2 随即搜随即搜索寻优索寻优法程序法程序框图框图2RCHxxx0 x0 x0An1x10 xx0 x012xxx( )Q x1()Q xx1x1( )()Q xQ x1x0A( )0kgx 1k p( )Q x( )Q x( )R xpkkkxgCxQxR12)()()(kCkC( )R x( )R x1nxnxkC( )R x( )R xnx1nx1nx*x( )0kg x kC( )R x21( )pkkkC gxkC1nxnx( )0kgx ( )kgx( )( )R xQ x( )minR x 1nx( )minQ x ( )Q xpkxgk, 2 , 10)(qixhi, 2 , 10)(ljtxSfj, 2 , 10),()(),(xhxgikqidtuxhtxSpkdtxgtxSfftiifhitkfgk, 2 , 1)(),(, 2 , 1)(),(000100iiihhuljfjqifhipkfgkftxStxStxStxS111),(),(),(),(),(fgktxS),(fhitxS),(fjtxS),(ftxS( )Q x()fS xt,( )Q x()0fS xt,0 x( )Q x()fS x t,()fS x t,()fS xt,*( )u t),(tuxfx fttfdttuxLtxKuJ0),()()(),(),(),(tuxftuxLtuxHTxH)(tu)()(tutu)(uJ)(uuJfttfffdttuxLtuuxxLtxKtxtxKuJuuJJ0),(),()()()()()(dttxtuxHtuuxxHtxKtxtxKJTttffff)(),(),()()()(0)()(fftxtxK),(tuuxxHdttxtuuHxxHtxtxKJfttTTTfTf0)()()()(dtuuHtxtxtxtxKJfttTTTfTf0)()()()(ffttTttTfTfudtuHtxttxtxKJ00)()()()()()(fftxKt0)(0txfttTudtuHJ0u)()(uJuuJ0auHau0Ju1iuHauuii1aiu1iu图图6.6.1 梯度寻优控制程序框图梯度寻优控制程序框图 0 .10)0(,2xuxdtdx0122)(21)(dtuxuJ)(tu)()(21),(222uxuxtuxH0) 1 (,2xxxHdtduuHiiiiiauauHauu)1(10)(0tu0i)(0tuiu0ftt)(txi)(iuJft0t)(tiiiuHg0ig0)()(011iTiiTiigggg11iiiiSgS0ia)(min)(iiiiiiSauJSauJiiiiSatutu)()(11 iixfTbAx minxcHxxTTbAx21min20minbAxx)(minxfxwwxtsxfx,0),(.)(min0)(xF)(*)(minxFxFx)(maxmin0)(xFxGgoalWxFx)(,min)(min0)(xfxG)(minXfXbAx x0)(xf0)(xFx,Matlab优化工具箱还能进行最小二乘曲线拟合的求解,其功能和语法如表所示。2mindCxx2221mindCxx0 x2221mindCxxubxlbbegxAeqbAxts.,条件是条件是iixxfxF)(21)(21min222iiixydataxdataxFydataxdataxF222), (21), (21min.7.2 Matlab优化工具箱使用例子优化工具箱使用例子在Matlab窗口运行optdemo的一个M文件可进行优化工具箱的演示。在这一小节我们给出几个典型算例来说明如何使用Matlab优化工具箱求解优化问题。例6.7.1 例如我们希望求解非线性方程:21212122xxexxexx)(xFx初始值为x0 = -5 -5。首先写一个m函数,用来计算方程,变量是bAxtsxfT.min0,41232642. .532min4321431432143214321xxxxxxxxxxxxxxxtsxxxx例:利用Matlab命令求解下面的无约束非线性规划问题。) 12424()(min221222112xxxxxexfxRx解:首先用文件编译器编写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例利用Matlab命令求解下面的约束非线性规划问题 01005 . 1. .) 12424()(min21212122122211xxxxxxtsxxxxxexfx其次在命令窗口键入: x0 = -1 1; options = ; x,options = constr(fun,x0,options)回车后,屏幕即显示: x = -9.5474 1.0474输出最优解: options(8)结果为: ans0.0236x32)() 3 ()sin() 2 ()() 1 ()(ixdataxxdataxixdataxiydata例:曲线拟合指令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;希望找到系数能够最好地拟合方程: 也就是希望极小化iiixydataxdataxF2),(21min1065)(2xxxQ205332153010),(102),(321313221322213212212221211xxxxxxxxxxxxxxxfxxxxxxf6-1试编制黄金分割寻优程序,求目标函数的最小值,区间缩短的精度6-2试用单纯形寻优程序,对下列多元函数寻找 极小值点。 =0.000 016-3已知一系统结构如下 指标函数取 0tdteQ11,KTdteQ0dteQ0211, KT11,KT(1)纯形寻优程序对上述系统中控制器的控制参数 进行寻优。(2)若指标函数取为或进行寻优。并比较在上述三种指标对函数下寻得的11,KT构成的系统在阶跃函数作用下的过渡过程。dipTTK,)(1tedtteJT01)(sTsTKdip11. 0,88. 0, 5 . 1ssTT12. 0,44. 0216-4设有一PDI调节的计算机控制系统如图618所示,现要求用单纯形寻优程序寻找PDI调节器参数的最优值,使误差的绝对值对时最小。已知初始函数 ;系统参数 间积分最小,即目标函数sT1.0采样周期 数字式PDI调节规律差分方成为 )2()1()()1()(11122nCEnBEnAEnEnE式中:TTKCTTKBTTTTKAdpdpdip),21(),1(为阶跃函数;R输入6-5 , 试比较最速下降法,共轭梯度法,单纯形法及随机寻优法等几种方法的优缺点。