—Matlab解决悬置多目标解耦的非线性优化问题

上传人:豆浆 文档编号:37437008 上传时间:2018-04-16 格式:DOC 页数:5 大小:42.50KB
返回 下载 相关 举报
—Matlab解决悬置多目标解耦的非线性优化问题_第1页
第1页 / 共5页
—Matlab解决悬置多目标解耦的非线性优化问题_第2页
第2页 / 共5页
—Matlab解决悬置多目标解耦的非线性优化问题_第3页
第3页 / 共5页
—Matlab解决悬置多目标解耦的非线性优化问题_第4页
第4页 / 共5页
—Matlab解决悬置多目标解耦的非线性优化问题_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《—Matlab解决悬置多目标解耦的非线性优化问题》由会员分享,可在线阅读,更多相关《—Matlab解决悬置多目标解耦的非线性优化问题(5页珍藏版)》请在金锄头文库上搜索。

1、悬置系统的多方向解耦率优化可以简化为一个多目标非线性优化问题。解决多目标的非线性优化问题,此问题可以归结为如下模型: min (x) 使得:F(x) weight * goalA*x b ,Aeq *x = beq c(x) 0, ceq(x) = 0lb 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 = fgoalattai

2、n(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,attainfa

3、ctor = 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(f

4、un,x0,goal,weight); x0 是为 fun 中未知参数 x 设置的初始值,x 的取值将从 x0 开始搜索,goal 为欲达到的目标值,weight 为模型中所加的权重。 x = fgoalattain(fun,x0,goal,weight,A,b); 增加了线性约束条件 A*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)的偏导数。同

5、样,若 ceq 是一个 p 元素的向量,则 ceq(x)的梯度 Gceq 是一个 n*p 的矩阵,其中 Gceq(i,j)是 ceq(j)对 x(i)的偏导数。options 变量变量 :优化参数选项。你可以用 optimset 函数设置或改变这些参数的值。 DerivativeCheck 比较用户提供的导数(目标函数或约束函数的梯度)和有限差分导数。 Diagnostics 打印将要最小化或求解的函数的诊断信息。 Matlab 中文论坛 DiffMaxChange 变量中有限差分梯度的最大变化。 DiffMinChange - 变量中有限差分梯度的最小变化。 Display 显示水平。设置为

6、off时不显示输出;设置为iter时显示每一次迭代的输出;设置为final时只显示最终结果。 GoalExactAchieve 使得目标个数刚好达到,不多也不少。 GradConstr 用户定义的约束函数的梯度。 GradObj 用户定义的目标函数的梯度。使用大型方法时必须使用梯度,对于中型方法则是可选项。 Simulink 与信号处理 MaxFunEvals 函数评价的允许最大次数。 MaxIter 函数迭代的允许最大次数。 MeritFunction 如果设为multiobj,则使用目标达到或最大最小化目标函数的方法。若设置为singleobj,则使用 fmincon 函数计算目标函数。

7、TolCon 约束矛盾的终止容限。 TolFun 函数值处的终止容限。 TolX x 处的终止容限。 weight 变量变量 :为权重向量,可以控制低于或超过 fgoalattain 函数指定目标的相对程度。当 goal 的值都是非零值时,为了保证活动对象超过或低于的比例相当,将权重函数设置为 abs(goal) (活动对象为阻止解处目标改善的对象集合)。 实例分析实例分析:某轿车上采用三点悬置,悬置的初始参数已给定,需要对悬置参数进行优化从而提高悬置系统的解耦率,初始参数为 x0。首先编写通过初始参数计算出悬置系统解耦率函数:Energy.m然后找出解耦率矩阵中需要优化的目标,垂向和侧倾解耦

8、率,设为目标函数: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 来对刚度间的关系进行约束,对频率进行约束。例:一号悬置刚度 k1/k23,第一阶频率 10Hzf(1)15Hz,设置为C(1)=x(4,1) - 3*x(5,1) %表示一号悬置刚度关系C(2)=10- f(1) %一阶频率大于 10HzC(3)= f(1)-15 %一阶频率小于 15Hz由于本地电脑上没有完整程序,没有完整程序运行结果,对此深表歉意。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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