收藏 分销(赏)

matlab在优化设计中的应用.doc

上传人:丰**** 文档编号:4527767 上传时间:2024-09-26 格式:DOC 页数:8 大小:68KB 下载积分:6 金币
下载 相关 举报
matlab在优化设计中的应用.doc_第1页
第1页 / 共8页
matlab在优化设计中的应用.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
Matlab在优化设计中得应用 摘 要 常见得优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。本文研究了matlab在这些常见优化问题中得应用及求解。 在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题得具体特点及性质后,我们给出了关于如何用matlab进行多类优化问题得求解基本方法,在此前提下,为了体现该软件在这些优化领域得实际应用效果,我们结合若干个优化问题得实例进行分析、建模、以及运用matlab编程求解,在求解过程中,通过得到得精确数据与反应结果得图例,我们了解到matlab工具箱得功能强大,就是处理优化问题得非常方便得编程工具。 关键词:matlab 优化问题 二、基本概念 2、1、1 线性规划 线性规划就是优化得一个重要分支。它在理论与算法上都比较成熟,在实际中有广泛得应用。例如数学表达形式: 在MTLAB提供得优化工具箱中,解决规划得命令就是,它得调用格式如下, 求解下列形式得线性规划: 求解下面形式得线性规划: 若没有不等式约束,则只需命令 。 求解下面形式得线性规划: 若没有不等式约束,则只需令;若只有下界约束,则可以不用输入。 2、1、2 无约束优化算法 对于无约束优化问题,已经有许多有效得算法。这些算法基本都就是迭代法,它们都遵循下面得步骤: ① 选取初始点x0 ,一般来说初始点越靠近最优解越好; ② 如果当前迭代点xk不就是原问题得最优解,那么就需要找一个搜索方向pk,使得目标函数f(x)从xk出发,沿方向pk有所下降; ③ 用适当得方法选择步长ak(≥0),得到下一个迭代点xk+1=xk+akpk; ④ 检验新得迭代点xk+1就是否为原问题得最优解,或者就是否与最优解得近似误差满足预先给定得容忍度。 2、1、3单变量约束优化问题 单变量约束优化问题得标准形式为 即为求目标函数在区间(a,b)上得极小点。 2、1、4 最小二乘法优化 最小二乘优化时一类非常特殊得优化问题,它在实际中,尤其就是在处理一些曲线拟合问题、线性方程组无解时得近似解等问题,用得非常多。 最小二乘优化问题得目标函数一般为若干个函数得平方与,即: 2、1、5多目标规划问题 在大多数得优化、中,都将多目标规划得一般形式表述为: 其中,、、既可以为线性函数,也可以为非线性函数。 三、基本方法 对于解决那些常见优化问题,基本思路将在解题得过程中得到体现。我们给出具体一些建模实例来体现基本算法: 3、1就下列命令求下面分段函数得极小值点。 解:首先编写目标函数得M文件如下: 然后为了分析直观,利用MTLAB画出目标函数得图像,步骤如下: >> x=5:0、01:5; >> n=length(x) n = 1001 >> for i=1:1001 y(i)=example8_7(x(i)); end 3、2 对于下面得线性规划问题: min –x13x2 s、t、 先利用图解法求其最优解,然后利用优化工具箱中得linprog命令求解。 解 〈图解法〉 先利用MATLAB 画出该线性规划得可行集及目标函数等值线: >>clear >>syms x1 x2 >>f=x13*x2; >>c1=x1+x26; >>c2=x1+2*x28; >>ezcontourf(f) >>axis([0 6 0 6]) >>hold on >>ezplot(c1) >>ezplot(c2) >>legend('f等值线','x1+x26=0','x1+2*x28=0') >>title('利用图解法求线性规划问题') >>gtext('x') 运行结果如下图: 从上图中可以瞧出可行集得顶点x(4/3,14/3)即为线性规划得最优解,它也就是两个线性约束得交点。 3、3求解下面得最小二乘优化问题: 其中 程序输入及结果 >> clear A=[1 2 1;2 1 3]; b=[1 1]'; C=[0 1 2;1 0 1;3 2 0]; d=[1 0 1]'; lb=[5 5 2]'; ub=[5 5 2]'; Aeq=[];beq=[]; [x,resnorm,residual,exitflag,output,lambda]=lsqlin(C,d,A,b,Aeq,beq,lb,ub) Warning:Largescale method can handle bound constraints only; switching to mediumscale method、 Warning: Largescale method can handle bound constraints only; using mediumscale method instead、 > In lsqlin at 249 Optimization terminated、 x = %最优解 0、4578 0、3133 0、1325 resnorm = %残差向量2范数得平方,即reanorm=norm(residual)^2 0、5904 residual = %残差向量 0、4217 0、5904 0、2530 exitflag = 1 %函数收敛到最优解 output = iterations: 4 %迭代4次 algorithm: 'mediumscale: activeset' %调用得积极集算法 firstorderopt: [] cgiterations: [] message: 'Optimization terminated、' lambda = %Lagrange 乘子 lower: [3x1 double] upper: [3x1 double] eqlin: [0x1 double] ineqlin: [2x1 double] ineqlin:[2xl double] 3、4求下面优化问题得最优解,并求出相应得梯度、Hessian矩阵以及Lagrang乘子。 解 现将该优化问题转化为下面得标准形式: 编写目标函数得M文件如下: function y=example8_9(x) y=(x(1)2)^2+(x(2)1)^2; function [c1,c2]=nonlin(x) c1=x(1)^2x(2); c2=[]; clear A=[1 1]; b=2; Aeq=[];beq=[];lb=[];ub=[]; x0=[0 0]'; [x,fval,exitflag,output,lambda,g,H]=fmincon(example8_9,x0,Aeq,beq,lb,ub,nonlin) Warning£ºLargescale£¨trust region£©method does not currently solve this type of problem£¬ switching to mediumscale£¨line search£©¡£ 四、实际应用 4、1 V带轮优化设计 提出问题:设计带式输送机传动装置上得普通V带传动,已知电动机额定功率P=4Kw,转速n1=1440r/min,传动比i=3,采用A型V带,每天工作不超过10小时,设计带根数尽量少,带轮直径与中心距尽量小得方案。 4、1、1 数学模型建立 (1)设计变量:V带传动得独立设计变量就是小带轮直径与带得基准长度 即X=[,=[ , (2)目标函数包括三个分目标: a.小带轮直径 min(X)== b.中心距 min(X)=a=+ 其中,=/4(i+1)/8,=(i1/8 c.带得根数 min(X)=z=P/(+) (3)约束条件 小带轮直径不小于推荐得A型带轮最小直径 即 0 带速不超过最大带速 即 小带轮包角大于 即 中心距大于, 即 小带轮基准直径在80—100mm之间,中心距在320—400mm之间,带得根数为1—4。 4、1、2编制MATLAB优化设计 % V带传动多目标优化设计 P=4;i=3;n1=1440;KA=1、1; %已知条件 x0=[100;1250]; %初始点(小带轮直径,V带基准长度) lb=[80;630]; %最小带轮直径与A型V带基准长度 ub=[100;4000]; %最大带轮直径与A型V带基准长度 goal=[75,280,2]; %分目标 w=[10^2,40^2,1、5^2]; %分目标加权系数 [xopt,fopt]=fgoalattain(VDCD_3mb_MB,x0,goal,w,[],[],[],[],lb,ub,VDCD_3mb_YS) function f=VDCD_3mb_MB(x) P=4;i=3;KA=1、1; f(1)=x(1); %f1小带轮基准直径 a1=x(2)/4pi*x(1)*(i+1)/8; a2=x(1)^2*(i1)^2/8; a=a1+sqrt(a1^2a2); f(2)=a; %f2中心距 P0=0、02424*x(1)1、112879; %单根带额定功率 DP0=0、17; %功率增量 alpha=180180*x(1)*(i1)/pi/a; %小带轮包角 Kalp=alpha/(0、549636*alpha+80、396114); %包角系数 KL=0、20639*x(2)^0、211806; %长度系数 f(3)=KA*P/(P0+DP0)/Kalp/KL; %V带根数 function[g,ceq]=VDCD_3mb_YS(x) i=3;n1=1440; g(1)=100x(1); g(2)=pi*x(1)*n1/6e425; a1=x(2)/4pi*x(1)*(i+1)/8; a2=x(1)^2*(i1)^2/8; a=a1+sqrt(a1^2a2); g(3)=120180*(1x(1)*(i1)/a/pi); g(4)=0、7*x(1)*(i+1)a; ceq=[]; 4、1、3运行结果: Optimization terminated successfully: Search direction less than 2*options、TolX and maximum constraint violation is less than options、TolCon Active Constraints: 5 9 xopt = 1、0e+003 * 0、1000 1、2269 fopt = 100、0000 281、5293 3、5958 表面最优方案为设计带根数为5或9,带轮直径与中心分别为(1、0e+003,100、0000)、(0、1000,281、5293)、(1、2269,3、5958)得方 4、2 MATLAB优化设计在机件模型中得应用 提出问题:有一圆形等截面得销轴.一端固定在机架上.另一端作用着集中载荷P;50kN与扭矩M=400Nm,其简化模型如图l所示.由于结构得需要,轴得长度l不得小于10cm,已知锖轴得材料得弯曲应力=120MPa;扭剪应力=80MPa;允许挠度f=o.01cm;密度p=7800kg/m3:弹性模量E=2.1×105MPa.现要求设计这根销轴,在满足使用要求下使其质量为最轻. 4、2、1建立数学模型: 通过分析,我们得知性能约束条件为: 1、弯曲强度要求悬臂粱得最大弯曲应力不得超过允许值,即代人数据并整理; 2、扭转强度要求悬梁得最大弯曲应力不得超过允许值,即,代人数据并整理; 3、刚度要求最大挠度不得超过允许值,代人数据并整理得边界约束条件: 这样就可建立数学模型: 二、调用MATLAB函数进行优化 采用MATLAB可以简化编程.NATLAB程序语言简单,也可采用交互式界面. 本例要MATLAB命令窗口输入如下命令即可: funf=’f=0.0061 3x(1)‘x(2)’;%目标函数 funf=’g=[41.67’x(2)/x(1)“3一l;I.62+x(2)‘3/x(1)‘4—1;25/x(1)‘3—1;’];%约束函数 fun=[funf furig]; x0=[8,10];%给出d、I得初始值 options=[];%参数向量取缺省值 vlb=[0,10];%设计变量d,1得下限值 vub=[];%设计变量无上限值 [X,option]constr(fun,x0,options,vcb,vub);%调用有约束优化函数 这时,就会输出优化结果如下: x=7.4692 10.0000 options=0 0.000l 0.0001 0,0000 0 0 0 3.4199 0 20.0000 7.0000 7.0000 0 200,0000 0 0.0000 0.1000 1.000 表明最优方案为d=7.4692cm,1=lOcm,Q=options(8)=3.14199kg. 五、参考文献 六、任务清单 6、1本组任务分配清单 资料查找 胡双 母桑妮 资料整理 朱小英 马娟 算法统计 肖锐 张海旭 结果处理 彭艺 朱小英 内容编排 胡双 母桑妮 课程设计总结 马娟 肖锐 七、课题研究总结 母桑妮: 胡双: 肖锐: 朱小英: 马娟: 张海旭: 彭艺:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服