文档库 最新最全的文档下载
当前位置:文档库 › MATLAB优化设计

MATLAB优化设计

MATLAB优化设计
MATLAB优化设计

MATLAB优化设计

学院:机电学院

专业:机械设计制造及其自动化

班级: 072&&&-**

学号: 20131******

姓名:大禹

指导老师:陈祯

2015年10月25日

题目 1 1、求解如下最优化问题

步骤一:对已有的数学模型matlab 编程

1. 编写.m 文件并保存:

h=[2 ,-2;-2, 4]; %实对称矩阵 f=[-2;-6]; %列向量

a=[1, 1;-1, 2]; %对应维数矩阵 b=[2;2]; %列向量 lb=zeros(2, 1);

[x,value]=quadprog(h, f, a ,b ,[] ,[], lb)

2. 运行.m 文件结果如图1.0所示:

图1.0题目一文件运行结果

subject to

2

21≤+x x 2

2-21≤+x x 0

21≥x x ,2

2

2121212262)(min x x x x x x x f +-+--=

步骤二:matlab 运行结果分析阶段

由图1.0知,当x1=0.8,x2=1.2时,min f (x)= -7.2。

题目 2

步骤一:题目分析阶段

设:圆筒的半径为R,圆筒的高度为H 。

谷仓的容积为300立方米,可得:

300

32

32=+R H R ππ

圆筒高度不得超过10米,可得:

100≤≤H

圆筒半径不得超过3米,可得:

30≤≤R

当造价最小时:

2225021202150),(min R H R R H R f πππ+?+?=

2、某农场拟修建一批半球壳顶的圆筒形谷仓,计划每座谷仓容积为300立方

米,圆筒半径不得超过3米,高度不得超过10米。半球壳顶的建筑造价为每平方米150元,圆筒仓壁的造价为每平方米120元,地坪造价为每平方米50元,求造价最小的谷仓尺寸为多少?

步骤二:数学模型建立阶段

2

225021202150),(min R H R R H R f πππ+?+?=

s.t. 300

3

2

32=+R H R ππ

100≤≤H

30≤≤R

步骤三:matlab 编程阶段

1.编写myfun3.m 文件并保存:

function f=myfun2(x)

f=350*3.14*x(1)^2+240*3.14*x(1)*x(2); %目标函数

2.编写mycon

3.m 文件并保存:

function[g,ceq]=mycon2(x)

q=[] ;

ceq=2*3.14*x(1)^3/3+3.14*x(1)^2*x(2)-300; %约束等式

3.编写文件final.m 保存:

X=fmincon(@myfun2,[3;3],[],[],[],[],[0;0],[3;10],@mycon2)

4.运行final.m 结果如图2.0所示:

图2.0题目二文件运行结果

步骤四:matlab运行结果分析阶段

由图2.0知,当圆筒的半径R为3m,高度H为8.6157m时,满足体积要求

的谷仓最小造价为29369元。

题目3

3、已知轴一端作用载荷P=1000N/cm,扭矩M=100Nm,轴长不小于8cm,材料的许用弯

曲应力为120MPa,许用扭剪应力为80MPa,许用挠度为0.01cm,密度为7.8t/m,弹性模量为200000MPa,设计该轴,使得满足上述条件,且重量最轻。

图3.0示意图

步骤一:受力分析阶段。

根据题意 轴端受力F=pd

轴受最大的弯矩M 弯=Fs=pdl=100000dl

轴的横截面对中性轴的惯性矩I z 为:I z =644

d π

轴的最大弯曲正应力σ须满足

σ=z I My =z I d M 2弯=π2

3200000d l

≤[σ]=120Mpa

轴受最大扭切应力须满足

τmax =p W

T =163d M

π=31600

d π≤[τ]=80M pa

轴的最大挠度w B 须满足

w B =EI Fl 33=

π4

3364Ed pdl =π33

63000000064d l ≤[f]=0.0001m 轴的质量m 为

M=ρV=ρA l=π

42

d l×7.8×103

步骤二:数学模型建立阶段

轴径记为x1米,轴长l 为x2米,建立数学模型:

min f(x1,x2)=π

412

x 2x ?×7.8×103

s.t. g1(x1,x2)= .π212

3200000x x -120000000≤0 g2(x1,x2)= 3

1x 1600π-80000000≤0

g3(x1,x2)=π33

1x 630000000

2x 64 -0.0001≤0 008.02x2)g5(x1, ,

01-x x2)g4(x1, ≤+-=≤=x

步骤三:matlab 编程阶段

1.编写myfun.m 文件并保存:

function f=myfun(x)

f=x(1)^2*x(2)*3.14*7800/4; %目标函数

2.编写mycon.m 文件并保存:

function[g,ceq]=mycon(x)

g(1)=3200000*x(2)/(x(1)^2*3.14)-120000000 ; %约束条件

g(2)=1600/(x(1)^3*3.14)-80000000; %约束条件

g(3)=64*x(2)^3/(x(1)^3*3.14159*630000000)-0.0001; %约束条件

g(4)=-x(1); %约束条件

g(5)=-x(2)+0.08; %约束条件

ceq=[];

3.编写文件final.m 保存:

x0=[0.002;0.009]; lb=[0.001;0.008];

ub=[1000;1000];

[x,fval]=fmincon(@myfun,x0,[],[],[],[],lb,ub,@mycon);

x1=x(1);

x2=x(2);

display(x(1));

display(x(2));

display(fval);

4.运行final.m结果如图3.1所示:

图3.1题目三文件运行结果

步骤四:matlab运行结果分析阶段

由图3.1知,当轴径d为26.1mm,轴长l为80mm时,轴的质量最轻为0.3328千克。

总结

优化设计是近年发展起来的一门新学科,它为工程领域提供了一种新的重要的科学设计方法。当然它在机械领域也是运用非常广泛。优化设计课程主要以Matlab软件作为运算处理工具,充分利用了Matlab交互式程序设计及强大的数值分析能力。学校给《优化设计》这门课程仅仅安排了五周的课时,我相信要深入学习这些课时是远远不够的,我们只有自己动手去写程序,自己去摸索公式,才能将优化设计这种方法运用在机械设计之中。五周的时间虽然很短,但在陈祯老师的悉心指导下,我们走进这门学科的大门,所谓师傅领进门修行靠个人,我还得不断地去摸索,我相信在以后从事机械行业后会不断运用到优化设计的思想,做出最好用的设计产品。之前在上学期通过《机械原理》课程设计的学习我就开始接触到Matlab软件,但是程度非常有限。这学期通过《优化设计》的学习,再次让我感到Matlab软件的强大计算功能,同样在这个过程中我的编程能力也得到提高,也能在马上就要学的《单片机》课程中大显身手。

在解答本次的大作业的时候,刚开始看到这三个工程实例我觉得好难,这下子该咋办,根本不知如何入手,于是我又重新去钻研《优化设计》课本,但是课本关于编程的知识很少,我去图书馆借了好几本关于Matlab编程的书本,苦心钻研,然后结合老师讲课的PPT和老师给的资料,发现好多东西都是相通的,马上找到方法,对症下药,很快也就得出结果了,终于满头的雾水烟消云散。

短短五周的《优化设计》课程结束了,但我相信在以后从事机械行业后会不断运用到优化设计的思想和方法。感谢陈祯悉心指导把我们带进了“优化设计”的大门,让我们能够通过优化的方法进行机械方面的研究。

参考资料

[1]陈继平,李元科.现代设计方法.武汉:华中科技大学出版社,1997.8.

[2]卓金武. MATLAB在数学中的应用.北京:北京航空航天大学出版社

社.[M].2011.4.

[3]谢进,李大美. MATLAB与计算机方法实验.武汉:武汉大学出版社.[M].2009.1.

[4]李明. 详解MATLAB在最优化计算中的应用.北京:电子工业出版社,2011.5.

matlab优化设计

MATLAB优化设计 学院:机电学院 专业:机械设计制造及其自动化 班级:072&&&-** 学号:20131****** 姓名:大禹 指导老师:祯 2015年10月25日

题目 1 1、求解如下最优化问题 步骤一:对已有的数学模型matlab 编程 1. 编写.m 文件并保存: h=[2 ,-2;-2, 4]; %实对称矩阵 f=[-2;-6]; %列向量 a=[1, 1;-1, 2]; %对应维数矩阵 b=[2;2]; %列向量 lb=zeros(2, 1); [x,value]=quadprog(h, f, a ,b ,[] ,[], lb) 2. 运行.m 文件结果如图1.0所示: subject to 2 21≤+x x 22-21≤+x x 0 21≥x x ,2 2 2121212262)(m in x x x x x x x f +-+--=

图1.0题目一文件运行结果 步骤二:matlab运行结果分析阶段 由图1.0知,当x1=0.8,x2=1.2时,min f (x)= -7.2。 题目 2 2、某农场拟修建一批半球壳顶的圆筒形谷仓,计划每座谷仓容积为300立方米,圆筒半径不得超过3米,高度不得超过10米。半球壳顶的建筑造价为每平方米150元,圆筒仓壁的造价为每平方米120元,地坪造价为每平方米50元,求造价最小的谷仓尺寸为多少?

步骤一:题目分析阶段 设:圆筒的半径为R,圆筒的高度为H 。 谷仓的容积为300立方米,可得: 3003 232=+R H R ππ 圆筒高度不得超过10米,可得: 100≤≤H 圆筒半径不得超过3米,可得: 30≤≤R 当造价最小时: 2225021202150),(m in R H R R H R f πππ+?+?= 步骤二:数学模型建立阶段 2 225021202150),(m in R H R R H R f πππ+?+?=

基于MATLAB的优化设计

基于MATLAB的曲柄摇杆机构优化设计 1.问题的提出 根据机械的用途和性能要求的不同,对连杆机构设计的要求是多种多样的,但这些设计要求可归纳为以下三种问题:(1)满足预定的运动规律要求;(2)满足预定的连杆位置要求;(3)满足预定的轨迹要求。在在第一个问题 里按照期望函数设计的思想,要求曲柄摇杆机构的曲柄与摇杆转角之间按照φ=f(?)(称为期望函数)的关系实现运动,由于机构的待定参数较少,故一 般不能准确实现该期望函数,设实际的函数为φ=F(?)(称为再现函数),而再 现函数一般是与期望函数不一致的,因此在设计时应使机构再现函数φ=F(?) 尽可能逼近所要求的期望函数φ=f(?)。这时需按机械优化设计方法来设计曲 柄连杆,建立优化数学模型,研究并提出其优化求解算法,并应用于优化模型的求解,求解得到更优的设计参数。 2.曲柄摇杆机构的设计 在图1所示的曲柄摇杆机构中,l1、l2、l3、l4分别是曲柄AB、连杆BC、摇杆CD和机架AD的长度。这里规定?0为摇杆在右极限位置φ0时的曲柄起始 位置角,它们由l1、l2、l3和l4确定。 图1曲柄摇杆机构简图 设计时,可在给定最大和最小传动角的前提下,当曲柄从?0转到?0+90?时,要求摇杆的输出角最优地实现一个给定的运动规律f(?)。这里假设要求: (?-?0)2(1)φE=f(?)=φ0+2 3π

s=30;qb=1;jj=5;fx=0; fa0=acos(((qb+x(1))^2-x(2)^2+jj^2)/(2*(qb+x(1))*jj)); %曲柄初始角 pu0=acos(((qb+x(1))^2-x(2)^2-jj^2)/(2*x(2)*jj));%摇杆初始角for i=1:s fai=fa0+0.5*pi*i/s; pui=pu0+2*(fai-fa0)^2?(3*pi); ri=sqrt(qb^2+jj^2-2*qb*jj*cos(fai)); alfi=acos((ri^2+x(2)^2-x(1)^2)/(2*ri*x(2))); bati=acos((ri^2+jj^2-qb^2)(/2*ri*jj)); if fai>0&fai<=pi psi=pi-alfi-bati; elseif fai>pi&fai<=2*pi psi=pi-alfi+bati; end fx=fx+(pui-psi)^2; end f=fx; (2)编写非线性约束函数M文件confun.m function[c,ceq]=confun(x); qb=1;jj=5;m=45*pi/180;n=135*pi/180; c(1)=x(1)^2+x(2)^2-(jj-qb)^2-2*x(1)*x(2)*cos(m); %最小传动角约束c(2)=-x(1)^2-x(2)^2+(jj+qb)^2+2*x(1)*x(2)*cos(n); %最大传动角约束ceq=[]; (3)在MATLAB命令窗口调用优化程序 x0=[6;4]; lb=[1;1]; ub=[]; %线性不等式约束 a=[-1-1;1-1;-11];b=[-6;4;4];[x,fn]=fmincon(@optimfun, x0,a,b,[],[],lb,ub,@confun); (4)运行结果

机械优化设计MATLAB程序文件

机械优化设计作业1.用二次插值法求函数()()()22 ?极小值,精度e=0.01。 t t =t 1- + 在MATLAB的M文件编辑器中编写的M文件,如下: f=inline('(t+1)*(t-2)^2','t') a=0;b=3;epsilon=0.01; t1=a;f1=f(t1); t3=b;f3=f(t3); t2=0.5*(t1+t3);f2=f(t2); c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=0; while(abs(t4-t2)>=epsilon) if t2f4 f1=f2;t1=t2; t2=t4;f2=f4; else f3=f4;t3=t4; end else if f2>f4 f3=f2;t3=t2; t2=t4;f2=f4; else f1=f4;t2=t4; end end c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=k+1; end %输出最优解 if f2>f4 t=t4;f=f(t4); else t=t2;f=f(t2); end fprintf(1,'迭代计算k=%3.0f\n',k) fprintf(1,'极小点坐标t=%3.0f\n',t) fprintf(1,'函数值f=%3.4f\n',f)

运行结果如下: 迭代计算k= 7 极小点坐标t= 2 函数值f=0.0001 2.用黄金分割法求函数()32321+-=t t t ?的极小值,精度e=0.01。 在MATLAB 的M 文件编辑器中编写的M 文件,如下: f=inline('t^(2/3)-(t^2+1)^(1/3)','t'); a=0;b=3;epsilon=0.01; t1=b-0.618*(b-a);f1=f(t1); t2=a+0.618*(b-a);f2=f(t2); k=1; while abs(b-a)>=epsilon if f1

基于MATLAB的生产过程中最大利润问题的优化设计

基于MATLAB的生产过程中最大利润问题的优化设计

2010-2011 学年一学期研究生课程考核 (读书报告、研究报告) 考核科目:现代设计理论与方法 学生所在院(系):机电工程学院 学生所在学科:车辆工程 姓名:陈松 学号:Y100201802 题目:基于MATLAB的生产过程中最大利润问题的优化设计

基于MATLAB的生产过程中最大利润问题的优化设计 在工厂编制生产计划中,使产品的计划利润最大是通常的目标。可是,在生产过程中,总是有种种条件的限制,使得我们的生产成本增多,从而导致利润并没有达到理想值。为了解决如何在有约束条件下解决最大利润的问题,我们通常将这些有约束的最优化问题转化为无约束最优化问题。而通过MATLAB现成的优化工具箱,我们可以通过调用最佳优化函数求解,从而更好的计算出生产产品所获得最大利润。 1.数学模型的建立

建立数学模型,即用数学语言来描述最优化问题,模型中的数学关系式反 映了最优化问题所要达到的目标和各种约束条件。而通过这些约束条件,我们能更好的制定新的生产计划,以便克服生产过程中的某些不利于生产的约束,从而更大的降低产品生产成本,使利润最大化。 1.1设计变量的确定 设计变量是指设计过程中可以进行调整和优选的独立参数,分为连续变量和离散变量。而本文主要用的是连续变量,设计变量一般表示为: 式中,X i 表示生产产品的台数,而当我们确定了生产每台的利润后,我们 就能知道X i 台的利润。 1.2目标函数的确定 已知某工厂能生产A、B、C三种产品,每月生产的数量分别为X 1,X 2 , X 3,产品每台利润分别为m 1 ,m 2 ,m 3 ,则可知该厂每月的利润为: Y= m 1 *X 1 + m 2 *X 2 + m 3 *X 3 即目标函数为: X * m + X * m + X * m ) ( 3 3 2 2 1 1 = X F 简化为: F(X)= i i X M*i=1,2,3 1.3约束条件的建立 生产A、B、C三种产品需用到四种机器V1、V2、V3、V4,每种机器的生产能力分别为K1、K2、K3、K4,所以有: 1)用V1每月生产的A、B、C三种部件分别为N1、N2、 N3,则:g 1(x)=N1*X 1 +N2*X 2 +N3*X 3 ≤K1 2)用V2每月生产的A、B、C三种部件分别为N11、N12、 N13,则:g 2(x)=N11*X 1 +N12*X 2 +N13*X 3 ≤K2 3)用V3每月生产的A、B、C三种部件分别为N21、N22、N23, 则:g 3(x)=N21*X 1 +N22*X 2 +N23*X 3 ≤K3

matlab(四连杆优化设计)

机械优化设计在matlab中的应用 东南大学机械工程学院** 一优化设计目的: 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。 " 二优化设计步骤: 1.机械优化设计的全过程一般可以分为如下几个步骤: 1)建立优化设计的数学模型; 2)选择适当的优化方法; 3)编写计算机程序; : 4)准备必要的初始数据并伤及计算; 5)对计算机求得的结果进行必要的分析。 其中建立优化设计数学模型是首要的和关键的一步,它是取得正确结果的前提。优化方法的选取取决于数学模型的特点,例如优化问题规模的大小,目标函数和约束函数的性态以及计算精度等。在比较各种可供选用的优化方法时,需要考虑的一个重要因素是计算机执行这些程序所花费的时间和费用,也即计算效率。 2.建立数学模型的基本原则与步骤 ①设计变量的确定; — 设计变量是指在优化设计的过程中,不断进行修改,调整,一直处于变化的参数称为设计变量。设计变量的全体实际上是一组变量,可用一个列向量表示: x=。 ②目标函数的建立; 选择目标函数是整个优化设计过程中最重要的决策之一。当对某以设计性能有特定的要求,而这个要求有很难满足时,则针对这一性能进行优化会得到满意的效果。目标函数是设计变量的函数,是一项设计所追求的指标的数学反映,因此它能够用来评价设计的优劣。 目标函数的一般表达式为: 。 f(x)=,要根据实际的设计要求来设计目标函数。 ③约束条件的确定。 一个可行性设计必须满足某些设计限制条件,这些限制条件称为约束条件,简称约束。 由若干个约束条件构成目标函数的可行域,而可行域内的所有设计点都是满足设计要求的,一般情况下,其设计可行域可表示为

matlab与优化设计

机械优化设计课程设计 题目:齿轮减速器最优化设计班级:机械班 成员

2013年6月19日 一.设计题目:二级斜齿圆柱减速器的最优化设计二.设计要求:要求减速器有最小的体积和最紧凑的结

构 三.原始数据: 四.设计内容 1.设计方案的拟定及说明 2.电动机的选择及参数计算 3.带轮的初选与计算 4.计算圆柱斜齿轮的输入转矩、传动比、转速,然 后建立数学模型编写matlab语言程序,运行 程序包括geardesign. m 齿轮系统设计主程序 Gearobjfun. m目标函数子程序 Gearconstr. m 约束条件子程序 Gearparameter.m许用应力计算子程序 5.输出结果

1.该减速器为二级斜齿圆柱减速器,低速级采用二级斜齿圆 柱齿轮传动,选择三相交流异步电动机,v带传动 2.确定电动机的容量: 选择电动机的容量应保证电动机的额定功率大于等于工作机所需要的功率 电动机参数t=60/40=1.5s v=s/t=6.0*10^-3m/s P=0.5FV=0.5*110*60*0.001=3.3kw 1.η=η1* η32*η23*η4*η5 其中齿轮传动η1=0.96滚动轴承η2=0.98齿轮传动η3=0.97联轴器η4=0.99卷筒η5=1.0 η=0.96*0.98^3*0.97^2*0.99*1.00=0.84 P d=3.3\0.84=2.93kw 三,确定电动机的转速 已知压片机的转速40piece/min带传动的传动比i1=2~4 二级齿轮减速器的传动比i2=8~40,所以电动机的转动范围n=i1i2n=640~6400r/min 可行方案如下 确定电动机的转速具体数据如下 计算减速器输入转矩T1,输入转速n,总传动比i

转向梯形优化设计matlab程序

优化计算MATLAB程序 首先,将目标函数写成M文件,其程序语句如下; function f = fun (x) global K L thetamax alpha for i=1:61 f = 0 betae = atan(tan(alpha(i)/(1-(K/L)*tan(alpha(i)))); A(i)=2*x(1).^2*sin(x(2)+alpha(i)); B(i)=2*K*x(1)-2*x(1).^2*cos(x(2)+alpha(i)); C(i)=2*x(1).^2-4*x(1).^2*(cos(x(2)).^2+4*K*x(1)*cos(x(2))-2*K*x(1)* cos(x(2)+alpha(i)); theta3(i)= 2*acot((A(i)+sqrt(A(i).^2+B(i).^2-C(i).^2))/(B(i)+C(i))); beta(i)=x(2)+theta3(i)-pi; if alpha(i)<=pi/18 f(i)=1.5*abs(beta(i)-betae3(i)); elseif alpha>=pi/18,alpha(i)<=pi/9;f(i)=abs(betaa(i)-betae3(i)); elsef(i)=0.5*abs(beta(i)-betae3(i)); global K L thetamax alpha K=input L=input thetamax=input x0(1)=input

x0(2)=input thetamax = thetamax*pi/180; x0(2)=x0(2)*pi/180;lb(1)=0.17K; lb(2)=0.17*K; ub(1)=acot(K/(1.2*L))ub(2)=pi/2; alpha=linspace (0, theamax ,61); lb=[lb(1),lb(2)]; ub=[ub(1),ub(2)];x(0)=[x0(1),x0(2)]; options = optimset ( ‘TolFun’,‘le-10’,‘TolCon’,‘le-6’) [x,resnorm] = lsqnonlin(‘fun’,x0,lb,ub,options) g lobal K L thetamax alpha K = input L= input thetamax= input x ( 1) = input x ( 2) = input thetamax = thetamax * pi/ 180; x ( 2) = x ( 2) * pi/ 180; alpha= linspace( 0, thetamax , 61) ; fo r i= 1∶61 betae= atan( tan( alpha( i) ) / (( 1- K/ L) * tan( alpha( i) ) ) ) ; A ( i) = 2* ( x ( 1) ) .∧2* sin ( x ( 2) + alpha( i) ) ; B( i) = 2* K* x( 1) - 2* ( x ( 1) ) . ∧2* cos( x( 2) + alpha( i) ) ) ;

(完整word版)优化设计Matlab编程作业

优化设计

无约束优化 min f(x)= 21x +22x -21x 2x -41x 初选x0=[1,1] 程序: Step 1: Write an M-file objfun1.m. function f1=objfun1(x) f1=x(1)^2+2*x(2)^2-2*x(1)*x(2)-4*x(1); Step 2: Invoke one of the unconstrained optimization routines x0=[1,1]; >> options = optimset('LargeScale','off'); >> [x,fval,exitflag,output] = fminunc(@objfun1,x0,options) 运行结果: x = 4.0000 2.0000 fval = -8.0000 exitflag = 1 output = iterations: 3 funcCount: 12 stepsize: 1 firstorderopt: 2.3842e-007 algorithm: 'medium-scale: Quasi-Newton line search' message: [1x85 char] 非线性有约束优化 1. Min f(x)=321x +2 2x +21x -32x +5

Subject to: 1g (x)=1x +2x +18≤0 2g (x)=51x -32x -25≤0 3g (x)=131x -412 2x 0≤ 4g (x)=14≤1x 130≤ 5g (x)=2≤2x 57≤ 初选x0=[10,10] Step 1: Write an M-file objfun2.m function f2=objfun2(x) f2=3*x(1)^2+x(2)^2+2*x(1)-3*x(2)+5; Step 2: Write an M-file confun1.m for the constraints. function [c,ceq]=confun1(x) % Nonlinear inequality constraints c=[x(1)+x(2)+18; 5*x(1)-3*x(2)-25; 13*x(1)-41*x(2)^2; 14-x(1); x(1)-130; 2-x(2); x(2)-57]; % Nonlinear inequality constraints ceq=[]; Step 3: Invoke constrained optimization routine x0=[10,10]; % Make a starting guess at the solution >> options = optimset('LargeScale','off'); >> [x, fval] = ... fmincon(@objfun2,x0,[],[],[],[],[],[],@confun1,options) 运行结果: x = 3.6755 -7.0744 fval = 124.1495

MATLAB第12章工程优化设计实例

MATLAB第12章工程优化设计实例 第12章工程优化设讣实例优化设讣的数学模型 优化设讣的数学模型是描述实际优化问题的设计内容、变量关系、有关设计条件和意图的数学表达式,它反映了物理现象各主要因素的内在联系,是进行优化设计的基础。优化设计数学模型的三大要素: ?设计变量 ?约束条件 ? LI标函数 1.设计变量 一个设计方案可以用一组基本参数的数值来表示,这些基本参数可以是构件尺寸等儿何量,也可以是质量等物理量,还可以是应力、变形等表示丄作性能的导出量。设计变量:在设讣过程中进行选择并最终必须确定的各项独立的基本参数,乂叫做优化参数。 设计变量的全体实际上是一组变量,可用一个列向量表示 2.约束条件 设计空间是所有设计方案的集合,但这些设计方案有些是工程上所不能接受 的。如一个设计满足所有对它提出的要求,就称为可行设计。 一个可行设讣必须满足某些设讣限制条件,这些限制条件称作约束条件,简称约 束。3.目标函数 为了对设计进行定量评价,必须构造包含设讣变量的评价函数,它是优化的口标, 称为LI标函数,以F(X)表示。

FxFxxx ()(),, , , 12n 在优化过程中,通过设计变量的不断向F(X)值改善的方向自动调整,最后求得 F(X)值最好或最满意的X值。在构造LI标函数时,应注意:訂标函数必须包含全部设计变量,所有的设计变量必须包含在约束函数中。 模型输入时需要注意的问题 使用优化工具箱时,山于优化函数要求口标函数和约束条件满足一定的格式,所以需要用户在进行模型输入时注意以下儿个问题: 1.目标函数最小化 优化函数 fminbnd、fminsearchx fminunc、fmincon、fgoalattdin、fminmax 和1 sqnonlin都要求LI标函数最小化,如果优化问题要求LI标函数最大化,可以通过使该LI标函数的负值最小化即-f(x)最小化来实现。近似地,对于quadprog函数提供-H 和-f,对于1 inprog函数提供-f。 2.约束非正 优化工具箱要求非线性不等式约束的形式为Ci(x)?0,通过对不等式取负可以达到使大于零的约束形式变为小于零的不等式约束形式的U的,如Ci (x)?0形式的约束等价于- Ci(x)?0;Ci(x)?b形式的约束等价于- Ci(x)+b?0。 3.避免使用全局变量 Fmincon是mat lab最主要内置的求解约束最优化的函数,该函数的优化问题的标准形式为:1.数学模型标准形式: min f , X, s. t. AX?b ,线性不等式约束, AeqX二beq ,线性等式约束, C(X)?0 ,非线性不等式约束条件,

简述基于MATLAB的优化设计

基于MATLAB 的曲柄摇杆机构优化设计 1. 问题的提出 根据机械的用途和性能要求的不同,对连杆机构设计的要求是多种多样的,但这些设计要求可归纳为以下三种问题:(1)满足预定的运动规律要求;(2)满足预定的连杆位置要求;(3)满足预定的轨迹要求。在在第一个问题里按照期望函数设计的思想,要求曲柄摇杆机构的曲柄与摇杆转角之间按照()f φ?=(称为期望函数)的关系实现运动,由于机构的待定参数较少,故一般不能准确实现该期望函数,设实际的函数为()F φ?=(称为再现函数),而再现函数一般是与期望函数不一致的,因此在设计时应使机构再现函数()F φ?=尽可能逼近所要求的期望函数()f φ?=。这时需按机械优化设计方法来设计曲柄连杆,建立优化数学模型,研究并提出其优化求解算法,并应用于优化模型的求解,求解得到更优的设计参数。 2. 曲柄摇杆机构的设计 在图 1 所示的曲柄摇杆机构中,1l 、2l 、3l 、 4l 分别是曲柄AB 、连杆BC 、摇杆CD 和机架AD 的长度。这里规定0?为摇杆在右极限位置0φ时的曲柄起始位置角,它们由1l 、2l 、3l 和4l 确定。 图1 曲柄摇杆机构简图 设计时,可在给定最大和最小传动角的前提下,当曲柄从0?转到090??+时,要求摇杆的输出角最优地实现一个给定的运动规律()f ?。这里假设要求: ()()2 0023E f φ?φ??π ==+ - (1)

对于这样的设计问题,可以取机构的期望输出角()E f φ?=和实际输出角 ()F φ?=的平方误差之和作为目标函数,使得它的值达到最小。 2.1 设计变量的确定 决定机构尺寸的各杆长度1l 、2l 、3l 和4l ,以及当摇杆按已知运动规律开始运行时,曲柄所处的位置角0?应列为设计变量,即: []12340T x l l l l ?= (2) 考虑到机构的杆长按比例变化时,不会改变其运动规律,通常设定曲柄长度 1l =1.0,在这里可给定4l =5.0,其他杆长则按比例取为1l 的倍数。若取曲柄的初始 位置角为极位角,则?及相应的摇杆l 位置角φ均为杆长的函数,其关系式为: ()()()()222221243230124225arccos 210l l l l l l l l l l l l ?????++-+-+==????++???????? (3) ()()22222124323034325arccos 210l l l l l l l l l l ????? +--+--==???????????? (4) 因此,只有2l 、3l 为独立变量,则设计变量为[][]2312T T x l l x x ==。 2.2目标函数的建立 目标函数可根据已知的运动规律与机构实际运动规律之间的偏差最小为指标来建立,即: ()()2 1min m Ei i i f x φφ==-→∑ (5) 式中,Ei φ-期望输出角;m -输出角的等分数;i φ-实际输出角,由图 1 可知: ()()02i i i i i i i παβ?πφπαβπ?π--≤≤??=?-+≤≤?? (6) 式中,222222322132arccos arccos 22i i i i i r l l r x x rl r x α???? +-+-== ? ????? (7) 222241424arccos arccos 210i i i i i r l l r rl r β???? +-+== ? ????? (8) i r == (9) 2.3约束条件

matlab在优化设计中的应用

m a t l a b在优化设计中的 应用 The Standardization Office was revised on the afternoon of December 13, 2020

Matlab 在优化设计中的应用 摘 要 常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。本文研究了matlab 在这些常见优化问题中的应用及求解。 在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab 进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab 编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab 工具箱的功能强大,是处理优化问题的非常方便的编程工具。 关键词:matlab 优化问题 二、基本概念 线性规划 线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例如数学表达形式: ???? ? ??? ?=≥=+++=+++=++++++n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c i m n mn m m n n n n n n ,,2,1,0..min 221 122222121112121112211

在MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下, ),,(b A c linprog x = 求解下列形式的线性规划: ?? ?≤b Ax t s x c T ..min ),,,,(beq Aeq b A c linprog x = 求解下面形式的线性规划: ?? ? ? ????=?≤beq x Aeq b Ax t s x c T ..min 若没有不等式约束b Ax ≤,则只需命令 [][],==b A 。 ),,,,,,(ub lb beq Aeq b A c linprog x = 求解下面形式的线性规划: ??? ?????? ? ??≤≤=?≤ub x lb beq x Aeq b Ax t s x c T ..min 若没有不等式约束b Ax ≤,则只需令[][],==b A ;若只有下界约束,则可以不用输入 ub 。 无约束优化算法 对于无约束优化问题,已经有许多有效的算法。这些算法基本都是迭代法,它们都遵循下面的步骤: ① 选取初始点x 0 ,一般来说初始点越靠近最优解越好;

matlab在优化设计中的应用

Matlab 在优化设计中的应用 摘 要 常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。本文研究了matlab 在这些常见优化问题中的应用及求解。 在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab 进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab 编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab 工具箱的功能强大,是处理优化问题的非常方便的编程工具。 关键词:matlab 优化问题 二、基本概念 2.1.1 线性规划 线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例如数学表达形式: ???? ? ??? ?=≥=+++=+++=++++++n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c i m n mn m m n n n n n n ,,2,1,0..min 221 122222121112121112211 在MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下, ),,(b A c linprog x = 求解下列形式的线性规划: ?? ?≤b Ax t s x c T ..min ),,,,(beq Aeq b A c linprog x = 求解下面形式的线性规划:

机械优化设计MATLAB程序

t t t 机械优化设计作业 1.用二次插值法求函数?( )= ( +1)( - 2)2 极小值,精度 e=0.01。 在 MA TLAB 的 M 文件编辑器中编写的 M 文件,如下: f=inline('(t+1)*(t -2)^2','t') a=0;b=3;epsilon=0.01; t1=a;f1=f(t1); t3=b;f3=f(t3); t2=0.5*(t1+t3);f2=f(t2); c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=0; while(abs(t4-t2)>=epsilon) if t2f4 f1=f2;t1=t2; t2=t4;f2=f4; else f3=f4;t3=t4; end else if f2>f4 f3=f2;t3=t2; t2=t4;f2=f4; else f1=f4;t2=t4; end end c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=k+1; end %输出最优解 if f2>f4 t=t4;f=f(t4); else t=t2;f=f(t2); end fprintf(1,'迭代计算 k=%3.0f\n',k) fprintf(1,'极小点坐标 t=%3.0f\n',t) fprintf(1,'函数值 f=%3.4f\n',f)

3.用牛顿法、阻尼牛顿法及变尺度法求函数 的极小点。( ) ( ) ( )21121 22, xxxxxf -+-= 4 2 (1)在用牛顿法在 MATLAB 的 M 文件编辑器中编写的 M 文件,如下: function [x,fx,k]=niudunfa(x0) syms x1 x2 f=(x1-2)^4+(x1-2*x2)^2; fx=0; v=[x1,x2]; df=jacobian(f,v); df=df.'; G=jacobian(df,v); epson=1e -12; g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)}); G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)}); k=0; p=-G1\g1; x0=x0+p; while(norm(g1)>epson) p=-G1\g1; x0=x0+p; g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)}); G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)}); k=k+1; end x=x0; fx=subs(f,{x1,x2},{x(1,1),x(2,1)}); 运行结果如下: >> [x,fx,k]=niudunfa([1;1]) x =1.9999554476059523381489991377897 0.99997772380297616907449956889483 fx =0.0000000000000000039398907941382470301534502947647 k =23 (2)用阻尼牛顿法在 MA TLAB 的 M 文件编辑器中编写的 M 文件,如下: function [x,fx,k]=zuniniudunfa(x0)%阻尼牛顿法 syms x1 x2 f=(x1-2)^4+(x1-2*x2)^2; fx=0; v=[x1,x2]; df=jacobian(f,v); df=df.'; G=jacobian(df,v); epson=1e -12;%停机原则

实验一利用matlab进行优化设计

实验1 优化设计方法——线性规划 一、实验目的 1)熟悉优化设计方法的基本原理及步骤; 2)掌握利用辅助工程计算软件MATLAB进行优化设计的基本操作。 二、实验内容 利用优化设计方法解下面线性规划问题,给出命令代码和优化结果。 某车间有两台机床甲和乙,可用于加工三种工件。假定这两台机床的可用台时数分别为700和800,三种工件的数量分别为300、500和400,且已知用三种不同机床加工单位数量的不同工件所需的台时数和加工费用(如表1所示),问怎样分配机床的加工任务,才能既满足加工工件的要求,又使总加工费用最低? 表1 机床加工情况表 机床类型 单位工作所需加工台时数单位工件的加工费用可用台时 数 工件1工件2工件3工件1工件2工件3 甲0.4 1.1 1.013910700 乙0.5 1.2 1.311128800 三、实验结果(matlab代码及结果) 提示:设在甲机床上加工工件1、2和3的数量分别为x1、x2和x3,在乙机床上加工工件1、2和3的数量分别为x4、x5和x6。根据教材13页优化设计步骤: 1)建立数学模型,即根据问题选取设计变量、建立目标函数、列出约束条件; 2)在matlab中编写程序,即利用线性规划优化函数linprog求解; 3)给出最优解。 [函数] linprog 以下为此函数的几种应用格式: [格式] x = linprog(f,A,b)求解问题 min f'*x,x为要求的解,约束条件为A*x <= b。 x = linprog(f,A,b,Aeq,beq)求解上面的问题,但增加等式约束,即Aeq*x = beq。若没有不等式存在,则令A=[]、b=[]。 x = linprog(f,A,b,Aeq,beq,lb,ub)定义设计变量x的下界lb和上界ub,使得x 始终在该范围内。若没有等式约束,令Aeq=[]、beq=[]。 x = linprog(f,A,b,Aeq,beq,lb,ub,x0)设置初值为x0。该选项只适用于中型问题,缺省时大型算法将忽略初值。 x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)用options指定的优化参数进行最小化。 [x,fval] = linprog(...) 返回解x处的目标函数值fval。 [x,lambda,exitflag] = linprog(...)返回exitflag值,描述函数计算的退出条件。 [x,lambda,exitflag,output] = linprog(...) 返回包含优化信息的输出变量ou tput。 [x,fval,exitflag,output,lambda] = linprog(...) 将解x处的拉格朗日乘子返回到lambda参数中。

matlab在优化设计中的应用

Matlab在优化设计中的应用 摘要 常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。本文研究了matlab在这些常见优化问题中的应用及求解。 在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab工具箱的功能强大,是处理优化问题的非常方便的编程工具。 关键词:matlab 优化问题 二、基本概念 2.1.1 线性规划 线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例如数学表达形式:

???? ? ??? ?=≥=+++=+++=++++++n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c i m n mn m m n n n n n n ,,2,1,0..min 221 122222121112121112211 在MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下, ),,(b A c linprog x = 求解下列形式的线性规划: ?? ?≤b Ax t s x c T ..min ),,,,(beq Aeq b A c linprog x = 求解下面形式的线性规划: ?? ? ? ????=?≤beq x Aeq b Ax t s x c T ..min 若没有不等式约束b Ax ≤,则只需命令 [][],==b A 。 ),,,,,,(ub lb beq Aeq b A c linprog x = 求解下面形式的线性规划: ??? ?????? ? ? ?≤≤=?≤ub x lb beq x Aeq b Ax t s x c T ..min 若没有不等式约束b Ax ≤,则只需令[][],==b A ;若只有下界约束,则可以不用输入ub 。 2.1.2 无约束优化算法 对于无约束优化问题,已经有许多有效的算法。这些算法基本都是迭代法,它们都遵循下面的步骤: ① 选取初始点x 0 ,一般来说初始点越靠近最优解越好; ② 如果当前迭代点x k 不是原问题的最优解,那么就需要找一个搜索方向p k ,使得目标函数f (x ) 从x k 出发,沿方向p k 有所下降;

机械优化设计MATLAB程序

机械优化设计作业 1.用二次插值法求函数()()()22 ?极小值,精度e=0.01。 t t =t 1- + 在MATLAB的M文件编辑器中编写的M文件,如下: f=inline('(t+1)*(t-2)^2','t') a=0;b=3;epsilon=0.01; t1=a;f1=f(t1); t3=b;f3=f(t3); t2=0.5*(t1+t3);f2=f(t2); c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=0; while(abs(t4-t2)>=epsilon) if t2f4 f1=f2;t1=t2; t2=t4;f2=f4; else f3=f4;t3=t4; end else if f2>f4 f3=f2;t3=t2; t2=t4;f2=f4; else f1=f4;t2=t4; end end c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=k+1; end %输出最优解 if f2>f4 t=t4;f=f(t4); else t=t2;f=f(t2); end fprintf(1,'迭代计算k=%3.0f\n',k) fprintf(1,'极小点坐标t=%3.0f\n',t) fprintf(1,'函数值f=%3.4f\n',f)

运行结果如下: 迭代计算k= 7 极小点坐标t= 2 函数值f=0.0001 2.用黄金分割法求函数()32321+-=t t t ?的极小值,精度e=0.01。 在MATLAB 的M 文件编辑器中编写的M 文件,如下: f=inline('t^(2/3)-(t^2+1)^(1/3)','t'); a=0;b=3;epsilon=0.01; t1=b-0.618*(b-a);f1=f(t1); t2=a+0.618*(b-a);f2=f(t2); k=1; while abs(b-a)>=epsilon if f1

相关文档