—Matlab解决悬置多目标解耦的非线性优化问题.doc_第1页
—Matlab解决悬置多目标解耦的非线性优化问题.doc_第2页
—Matlab解决悬置多目标解耦的非线性优化问题.doc_第3页
—Matlab解决悬置多目标解耦的非线性优化问题.doc_第4页
—Matlab解决悬置多目标解耦的非线性优化问题.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

悬置系统的多方向解耦率优化可以简化为一个多目标非线性优化问题。解决多目标的非线性优化问题,此问题可以归结为如下模型: min (x) 使得:F(x) weight * goal A*x b,Aeq *x = beq c(x) 0, ceq(x) = 0 lb x ub 其中x、weight、goal、b、beq、lb和ub是向量,A和Aeq是矩阵;c(x)、ceq(x)和F(x)是返回向量的函数,他们可以是非线性函数。F(x)是目标函数,goal是欲达到的目标。 调用形式x = fgoalattain(fun,x0,goal,weight) x = fgoalattain(fun,x0,goal,weight,A,b) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,.lb,ub,nonlcon,options) x,fval = fgoalattain(.) x,fval,attainfactor = fgoalattain(.) x,fval,attainfactor,exitflag = fgoalattain(.) book.iLoveM x,fval,attainfactor,exitflag,output = fgoalattain(.) x,fval,attainfactor,exitflag,output,lambda = fgoalattain(.) 调用说明fgoalattain函数用于获得目标函数fun中设置的参数x(x可为向量)的值,使得fun的值接近于目标值goal,达到优化fun函数的目的。x = fgoalattain(fun,x0,goal,weight);x0是为fun中未知参数x设置的初始值,x的取值将从x0开始搜索,goal为欲达到的目标值,weight为模型中所加的权重。 x = fgoalattain(fun,x0,goal,weight,A,b);增加了线性约束条件A*x = b,缩小了参数x的取值范围。 x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq); 使得x的取值必须满足线性方程组Aeq*x = beq,当无约束条件A*x = b。时应将A和b置为:A=,b=。 x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub);为x设定了上限ub和下限lb,使得lb = x = ub。 x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon); nonlcon为关于x的非线性函数ceq(x) = 0,增加了参数x的非线性约束条件;当x不需设定上下限时,设置:lb=,ub=。 x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,. options) ;options为fgoalattain可选的优化选项,可通过函数optimset来设置。 x,fval = fgoalattain(.); fval为目标函数fun中设定的参数值取x时获得的结果。 x,fval,attainfactor = fgoalattain(.); attainfactor返回代表fval与goal逼近程度的数字。x,fval,attainfactor,exitflag = fgoalattain(.) ; exitflag的值用于描述fgoalattain获得结果的状态。 x,fval,attainfactor,exitflag,output= fgoalattain(.); output返回一个结构体,描述fgoalattain在计算过程中用到的优化算法及其计算情况。 x,fval,attainfactor,exitflag,output,lambda = fgoalattain(.) ; lambda返回一个结构体,它的域中包含了参数x的拉格朗日乘子。 参数说明nonlcon参数: 该函数计算非线性不等式约束c(x) 2 被调用的nonlcon函数,有4个输出。 GC = . 不等式的梯度。 GCeq = . b 等式的梯度。 end 若nonlcon函数返回m元素的向量c和长度为n的x,则c(x)的梯度GC是一个n*m的矩阵,其中GC(i,j)是c(j)对x(i)的偏导数。同样,若ceq是一个p元素的向量,则ceq(x)的梯度Gceq是一个n*p的矩阵,其中Gceq(i,j)是ceq(j)对x(i)的偏导数。options变量 :优化参数选项。你可以用optimset函数设置或改变这些参数的值。 DerivativeCheck 比较用户提供的导数(目标函数或约束函数的梯度)和有限差分导数。 Diagnostics 打印将要最小化或求解的函数的诊断信息。 Matlab中文论坛 DiffMaxChange 变量中有限差分梯度的最大变化。 DiffMinChange - 变量中有限差分梯度的最小变化。 Display 显示水平。设置为off时不显示输出;设置为iter时显示每一次迭代的输出;设置为final时只显示最终结果。 GoalExactAchieve 使得目标个数刚好达到,不多也不少。 GradConstr 用户定义的约束函数的梯度。 GradObj 用户定义的目标函数的梯度。使用大型方法时必须使用梯度,对于中型方法则是可选项。 Simulink与信号处理 MaxFunEvals 函数评价的允许最大次数。 MaxIter 函数迭代的允许最大次数。 MeritFunction 如果设为multiobj,则使用目标达到或最大最小化目标函数的方法。若设置为singleobj,则使用fmincon 函数计算目标函数。 TolCon 约束矛盾的终止容限。 TolFun 函数值处的终止容限。 TolX x处的终止容限。 weight变量 :为权重向量,可以控制低于或超过fgoalattain函数指定目标的相对程度。当goal的值都是非零值时,为了保证活动对象超过或低于的比例相当,将权重函数设置为abs(goal) (活动对象为阻止解处目标改善的对象集合)。 实例分析:某轿车上采用三点悬置,悬置的初始参数已给定,需要对悬置参数进行优化从而提高悬置系统的解耦率,初始参数为x0。首先编写通过初始参数计算出悬置系统解耦率函数:Energy.m然后找出解耦率矩阵中需要优化的目标,垂向和侧倾解耦率,设为目标函数:Objfun.m编写优化函数MutliObjOpti.m优化函数中主要设置参数:Options = optimset (Display,final, MaxFunEvals,100000, MaxIter,5000,)Options中可设置更多参数。x,fval,attainfactor,exitflag = fgoalattain (Objfun, x0, goal, weight, A, b, Aeq, beq,.lb,ub,nonlcon,options)Goal为100,100A, b, Aeq, beq均为 ,表示不起约束作用lb,ub主要设置为悬置参数中位置、刚度、角度所允许变化的范围。Nonlcon为非线性约束,其中Ceq = ,主要利用不等式约束C来对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论