《MATLAB优化工具箱.ppt》由会员分享,可在线阅读,更多相关《MATLAB优化工具箱.ppt(70页珍藏版)》请在三一办公上搜索。
1、MATLAB工具箱,Matlab工具箱已经成为一个系列产品,Matlab主工具箱和各种工具箱(toolbox)。,一、工具箱简介,功能型工具箱 通用型 功能型工具箱主要用来扩充Matlab的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能够用于多种学科。领域型工具箱 专用型 领域型工具箱是学科专用工具箱,其专业性很强,比如控制系统工具箱(Control System Toolbox);信号处理工具箱(Signal Processing Toolbox);财政金融工具箱(Financial Toolbox)等等。只适用于本专业。,Matlab常用工具箱,Matla
2、b Main Toolboxmatlab主工具箱Control System Toolbox控制系统工具箱Communication Toolbox通讯工具箱Financial Toolbox财政金融工具箱System Identification Toolbox系统辨识工具箱Fuzzy Logic Toolbox模糊逻辑工具箱Bioinformatics Toolbox生物分析工具箱,Image Processing Toolbox图象处理工具箱Database Toolbox数据库工具箱Model predictive Control Toolbox模型预测控制工具箱Neural Netw
3、ork Toolbox神经网络工具箱Optimization Toolbox优化工具箱Partial Differential Toolbox偏微分方程工具箱Robust Control Toolbox鲁棒控制工具箱,Signal Processing Toolbox信号处理工具箱Spline Toolbox样条工具箱Statistics Toolbox统计工具箱Symbolic Math Toolbox符号数学工具箱Simulink Toolbox动态仿真工具箱Virtual Reality Toolbox虚拟现实工具箱Wavelet Toolbox小波工具箱 等等.而且每个新出的版本都在增
4、加、更新完善。,控制系统工具箱 Control System Toolbox,连续系统设计和离散系统设计状态空间和传递函数以及模型转换时域响应(脉冲响应、阶跃响应、斜坡响应)频域响应(Bode图、Nyquist图)根轨迹、极点配置,遗传算法和直接搜索工具箱Genetic Algorithm and Direct Search Toolbox,是针对 MATLAB 优化处理算法的扩展,它在 MATLAB 和 Optimization Toolbox 的基础上,提供遗传算法和直接搜索的基本功能。使用遗传算法工具箱的两种方法:(1)直接在命令窗口使用函数。x fval=ga(fitnessfun,n
5、vars,options),(2)图形界面互动操作方法。可选内部函数ackleyfcn或者rastriginsfcn,Rastrigins Function,可以设置参数来调整显示结果,直接搜索算法,同样有两种类似的运行方法,优化工具箱Optimization Toolbox,线性规划和二次规划求函数的最大值和最小值多目标优化约束条件下的优化非线性方程求解Demo:toolbox/optimization,求解线性规划,线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解:,解:编写M文件小xxgh1.m如下:c=-0.4-0.28-0.32-0.
6、72-0.64-0.6;A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08;b=850;700;100;900;Aeq=;beq=;vlb=0;0;0;0;0;0;vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),解:编写M文件xxgh2.m如下:c=6 3 4;A=0 1 0;b=50;Aeq=1 1 1;beq=120;vlb=30,0,20;vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),信号处理
7、工具箱Signal Processing Toolbox数字和模拟滤波器设计、应用及仿真谱分析和估计FFT、DFT等变换参数化模型,学科前沿最新的工具箱,模糊控制逻辑工具箱 友好的交互设计界面,自适应神经-模糊学习、聚类以及Sugeno推理。神经网络工具箱 神经网络系统具有集体运算的能力和自适应的学习能力。具有很强的容错性和鲁棒性,善于联想、综合和推广。,工具箱的扩充功能:,用户可以修改工具箱中的函数,更为重要的是用户可以通过编制 m文件来任意地添加工具箱中原来没有的工具函数。此功能充分体现了matlab语言的开发性。,如何添加工具箱?,如果是Matlab安装光盘上的工具箱,重新执行安装程序,
8、选中即可。如果是单独下 载的工具箱,则需要把新的工具箱(以下假设工具箱名字为svm)解压到toolbox目录下,然后用addpath或者pathtool把该工具箱的路径 添加到matlab的搜索路径中,最后用which newtoolbox_command.m来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。具体请看工具箱自己带的 README文件。,举例:,要添加的工具箱为svm,则解压后,里边有一个目录svm,假设matlab安装在 D:MATLAB6.5,将svm目录拷贝至D:MATLAB6.5toolbox,然后运行matlab,在命令窗口输入addpath D:
9、MATLAB6.5toolboxsvm回车,来添加路径。然后在svm目录下,任意找一个m文件,以svcinfo.m为例,在命令窗口中输 入which svcinfo.m。如果显示出该文件路径,如 D:MATLAB6p5toolboxsvmsvcinfo.m,则安装成功,当然也可以在命令窗口输入path来查看。,二、通用工具箱,Matlab主工具箱数值计算、符号运算、绘图以及句柄绘图都是matlab主工具箱的内容,是matlab的基本部分。Matlab主工具箱位于:c:matlabtoolboxmatlab matlab主工具箱是任何版本的matlab都不可缺少的。,除toolboxmatlab
10、之外的工具箱,在比较完整的专业版matlab语言中有20多个工具箱。这些工具箱是需要单独选择购买的。matlab主工具箱共有31个函数库datafun 数据分析函数库sonnds 声音处理函数库dde 动态数据交换函数库elfun 初等数学函数库specmat 特殊矩阵函数库,elmat 初等矩阵和时间函数库funfun 函数功能和数学分析函数库general 通用命令函数库graphics 通用图形函数库iofun 底层输入输出函数库lang 语言结构函数库matfun 矩阵线性代数函数库ops 运算符和逻辑函数库plotxy 二维绘图函数库plotxyz 三维绘图函数库,color 颜色和
11、光照函数库polyfun 多项式函数库sparfun 稀疏矩阵函数库strfun 字符串函数库demos matlab演示函数库Matlab6 新增函数库:uitools 图形界面函数库datatypes 数据类型函数库graphics 句柄绘图函数库graph3d 三维绘图,各函数库中的函数可用help 函数库名查询,或type 函数名方法查询例:help plotxyTwo dimensional graphics.Elementary X-Y graphs.plot-Linear plot.loglog-Log-log scale plot.semilogx-Semi-log scale
12、 plot.semilogy-Semi-log scale plot.fill-Draw filled 2-D polygons.,Graph annotation.title-Graph title.xlabel-X-axis label.ylabel-Y-axis label.text-Text annotation.gtext-Mouse placement of text.grid-Grid lines.See also PLOTXYZ,GRAPHICS.,2.符号运算工具箱,主要功能以符号为对象的数学。在大学教学中,符号数学是各专业都能用到的。符号运算无须事先对独立变量赋值,运算结果
13、以标准的符号形式表达。特点:运算对象可以是没赋值的符号变量 可以获得任意精度的解,符号运算的功能,符号表达式、符号矩阵的创建符号可变精度求解符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程,例如:z=a*t2+b*t+c;r=solve(z,t)对缺省变量求解r=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2),对任意变量求解r=solve(z,b)r=-(a*t2+c)/tr=solve(z,c)r=-a*t2-b*tr=solve(z,a)r=-(b*t+c)/t2,3.Simulink动态仿真工具箱,simulin
14、k工具箱简介simulink 是实现动态系统建模、仿真和分析的一个集成环境,使得matlab的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。大部分专用工具箱只要以matlab主包为基础就能运行,有少数工具箱(通讯工具箱、信号处理工具箱等)则要求有simulink工具箱的支持。,由于matlab和simulink是集成在一起的,因此用户可以在两种环境下对自己的模型进行仿真、分析和修改。不用命令行编程,由方框图产生m文件(s函数)。当创建好的框图保存后,相应的m文件就自动生成,这个.m文件包含了该框图的所有图形及数学关系信息。框图表示比较直观,容易构造,
15、运行速度较快。,三、工具箱和工具箱函数的查询办法,matlab的目录结构目录树c:matlabbinc:matlabexternc:matlabsimulinkc:matlabtoolboxcommc:matlabtoolboxcontrolc:matlabtoolboxsymbolic,.,matlabbin 该目录包含matlab系统运行文件,matlab帮助文件及一些必需的二进制文件。matlabextern 包含MATLAB与 C,FORTRAN 语言的交互所需的函数定义和连接库。matlabsimulink 包含建立simulink MEX-文件所必需的函数定义及接口软件。matla
16、btoolbox 各种工具箱,Math Works公司提供的商品化matlab工具箱有30多种。toolbox目录下的子目录数量是随安装情况而变的。,2.工具箱matlab toolbox工具箱在windows下由目录检索得到。也可以在matlab下得到,启动matlab后 cd_.matlab缺省目录是bin,回到 matlab目录下 cd_toolbox,dir 工具箱清单.compiler fixpoint lmi nag qft.control fuzzy local ncd robust ada symbolic dspblks hosa matlab nnet signal uit
17、ools codegen fdident ident mpc optim simulink wavelet comm finance splines pde esmutools stats,3.工具箱函数清单的获得所有工具箱中都有函数清单文件contents.m,可用各种方法得到工具箱函数清单 执行在线帮助命令 help 工具箱名称 列出该工具箱中contents.m的内容,显示该工具箱中所有函数清单 例如:help symbolic help optim 函数的查询:help 函数名,使用type命令得到工具箱函数的清单 type signalcontents type optimconte
18、nts 如果在当前工具箱目录下可用 help contents type contents 得到该工具箱的函数清单 由于contents.m为文本文件,可以通过任何文本编辑器打开阅读 如:edit、word、写字板、记事本,4.matlab函数的查阅与定位,which 函数名 给函数定位例如:which laplaced:matlab42toolboxsymboliclaplace.mwhich fft2d:matlab42toolboxmatlabdatafunfft2.mwhich polyd:matlab42toolboxmatlabpolyfunpoly.m,which constrd
19、:matlab42toolboxoptimconstr.mwhich plotplot is a built-in function.which 命令只能定位matlab的外部命令,而对内部命令是无效的。matlab内部函数只能通过contents.m工具箱清单文件来查询,MATLAB优化工具箱,1 工具箱概述,1.1 功能(1)求解无约束条件非线性极小值;(2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题和半无限极小值问题;(3)求解二次规划和线性规划问题;(4)非线性最小二乘逼近和曲线拟合;(5)非线性系统的方程求解;(6)约束条件下的线性最小二乘优化;(7)求解复杂结构
20、的大规模优化问题。,1.2 工具箱的新特色,MATLAB R2008b使用的是4.1版本的优化工具箱,较3.x的变化在于:(1)fmincon、fminimax和fgoalattain中引入了并行机制,加快梯度计算速度;(2)函数gatool和pserchtool整合到优化工具箱GUI中;(3)函数fmincon的求解器中新增内点算法;(4)提供了KNITRO优化库的接口;(5)函数lsqcurvefit、lsqnonlin和fsolve的优化选项参数PrecondBandWinth默认值由0变为inf;(6)优化选项参数TolConSQP的默认值改为1e-6;(7)输出结构中引入了参数con
21、strviolation。,2 工具箱函数,输入参数中可以用options,用于所有函数,其中包括有以下参数。(1)Display:结果显示方式,off不显示,iter显示每次迭代的信息,final为最终结果,notify只有当求解不收敛的时候才显示结果。(2)MaxFunEvals:允许函数计算的最大次数,取值为正整数。(3)MaxIter:允许迭代的最大次数,正整数。(4)TolFun:函数值(计算结果)精度,正整数。(5)TolX:自变量的精度,正整数。而且可以用函数optimset创建和修改。模型输入时需要注意问题:(1)目标函数最小化;(2)约束非正;(3)避免使用全局变量。,3 G
22、UI优化工具,3.1 启动命令行输入optimtool;Start-Toolboxes-Optimization-Optimization tool(optimtool)。3.2 界面图一:GUI优化工具的界面,分为三块:最左边是优化问题的描述及计算结果显示,中间为优化选项的设置,右边是帮助(可隐藏,右上角的)。,3.3 使用步骤选择求解器solver和优化算法algorithm;选定目标函数(objective function);设定目标函数的相关参数;设置优化选项;单击“start”按钮,运行求解;查看求解器的状态和求解结果;将目标函数、选项和结果导入导出。具体的如图二所示:,图二:步骤
23、示意图,3.4 应用实例3.4.1 无约束优化(fminunc求解器)求f(x)=x2+4*x-6极小值,初始点取x=0。解:首先建立目标函数文件FunUnc.m文件:function y=FunUnc(x)y=x2+4*x-6;然后启动优化工具(如图):,Algorithm有两个选择:Large scale和Medium scale,设置完参数点击start即可得到如图中的结果。,3.4.2 无约束优化(fminsearch求解器)求f(x)=|x2-3*x+2|的极小值,初始点取x=-7,比较fminunc和fminsearch的差别。解:启动优化工具;用fminunc时设置参数如图:,点
24、击start得到结果。,用fminunc时结果是1.5,而用fminsearch时结果是2。计算原等式有极小值为2,由此有对于非光滑优化问题fminunc可能求不到正确的结果,而fminsearch却能很好地解决这类问题的求解。,用fminsearch时如下图:,3.4.3 约束优化(fmincon求解器)可用算法有Trust region reflective(信赖域反射算法)、Active set(有效集算法)、Interior point(内点算法)。求f(x)=-x1*x2*x3的极小值,约束条件是-x1-2*x2-2*x3=0且x1+2*x2+2*x3=72,初始点(10,10,10
25、)。解:首先见M文件,约定FunUnc(x)=-x(1)*x(2)*x(3):function y=FunUnc(x)y=-x(1)*x(2)*x(3);,启动优化工具,设置参数如图:,3.4.4 非线性最小二乘优化(lsqnonlin求解器)求minS=(x2+x-1)2+(2*x2-3)2,初始点为x=5。解:启动优化工具,设置参数,点start得结果如下图所示;,3.4.5 线性规划(linprog求解器)f处输入函数多项式的系数。基本方法如前面几类。3.4.6 智能优化算法(ga求解器)要输入变量的个数。基本方法如前面几类。,MATLAB模糊控制工具箱,Matlab模糊控制工具箱为模糊
26、控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。,首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口。,下面我们都是在这样一个窗口中进行模糊控制器的设计。1确定模糊控制器结构:即根据具体的系统确定输入、输出量。这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。注意这里的变量还都是精确量。相应的模糊量为E,EC和U,我们可以选择增加输入(Add Variable)来实现双入单出控制结构。,
27、2输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。首先我们要确定描述输入输出变量语言值的模糊子集,如NB,NM,NS,ZO,PS,PM,PB,并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为-3,-2,-1,0,1,2,3;然后我们为模糊语言变量选取相应的隶属度函数。在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。首先我们打开Member Function Edit窗口.,然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为-3 3,添加隶属函数的个数为7.,然
28、后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。,3模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。首先要确定模糊规则,即专家经验。对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(一般来说,这些规则都是现成的,很多教科书上都有),如图。,制定完之后,会形成一个模糊控制规则矩阵,然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量。,4对输出模糊量的解模糊:模糊控制器的输出量是一个模糊集合,通过反模糊化方法判决出一个确切的精确量,凡模糊化方法很多,我们这里选取重心法。,5然后Export to disk,即可得到一个.fis文件,这就是你所设计的模糊控制器。,