matlab在优化设计中的应用.docx
- 文档编号:469555
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:13
- 大小:528.66KB
matlab在优化设计中的应用.docx
《matlab在优化设计中的应用.docx》由会员分享,可在线阅读,更多相关《matlab在优化设计中的应用.docx(13页珍藏版)》请在冰豆网上搜索。
matlab在优化设计中的应用
matlab在优化设计中的应用
Matlab在优化设计中的应用
摘要
常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。
本文研究了matlab在这些常见优化问题中的应用及求解。
在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab工具箱的功能强大,是处理优化问题的非常方便的编程工具。
关键词:
matlab优化问题
二、基本概念
线性规划
线性规划是优化的一个重要分支。
它在理论和算法上都比较成熟,在实际中有广泛的应用。
例如数学表达形式:
在MTLAB提供的优化工具箱中,解决规划的命令是,它的调用格式如下,
求解下列形式的线性规划:
求解下面形式的线性规划:
若没有不等式约束,则只需命令
。
求解下面形式的线性规划:
若没有不等式约束,则只需令;若只有下界约束,则可以不用输入。
无约束优化算法
对于无约束优化问题,已经有许多有效的算法。
这些算法基本都是迭代法,它们都遵循下面的步骤:
1选取初始点x0,一般来说初始点越靠近最优解越好;
2如果当前迭代点xk不是原问题的最优解,那么就需要找一个搜索方向pk,使得目标函数f(x)从xk出发,沿方向pk有所下降;
3用适当的方法选择步长ak(≥0),得到下一个迭代点xk+1=xk+akpk;
4检验新的迭代点xk+1是否为原问题的最优解,或者是否与最优解的近似误差满足预先给定的容忍度。
单变量约束优化问题
单变量约束优化问题的标准形式为
即为求目标函数在区间(a,b)上的极小点。
最小二乘法优化
最小二乘优化时一类非常特殊的优化问题,它在实际中,尤其是在处理一些曲线拟合问题、线性方程组无解时的近似解等问题,用的非常多。
最小二乘优化问题的目标函数一般为若干个函数的平方和,即:
多目标规划问题
在大多数的优化、中,都将多目标规划的一般形式表述为:
其中,、、既可以为线性函数,也可以为非线性函数。
三、基本方法
对于解决那些常见优化问题,基本思路将在解题过程中得到体现。
我们给出具体一些建模实例来体现基本算法:
就下列命令求下面分段函数的极小值点。
解:
首先编写目标函数的M文件如下:
然后为了分析直观,利用MTLAB画出目标函数的图像,步骤如下:
>>x=-5:
:
5;
>>n=length(x)
n=
1001
>>fori=1:
1001
y(i)=example8_7(x(i));
end
对于下面的线性规划问题:
min–x1-3x2
.
先利用图解法求其最优解,然后利用优化工具箱中的linprog命令求解。
解〈图解法〉
先利用MATLAB画出该线性规划的可行集及目标函数等值线:
>>clear
>>symsx1x2
>>f=-x1-3*x2;
>>c1=x1+x2-6;
>>c2=-x1+2*x2-8;
>>ezcontourf(f)
>>axis([0606])
>>holdon
>>ezplot(c1)
>>ezplot(c2)
>>legend('f等值线','x1+x2-6=0','-x1+2*x2-8=0')
>>title('利用图解法求线性规划问题')
>>gtext('x')
运行结果如下图:
从上图中可以看出可行集的顶点x(4/3,14/3)即为线性规划的最优解,它也是两个线性约束的交点。
求解下面的最小二乘优化问题:
其中
程序输入及结果
>>clear
A=[121;-213];
b=[11]';
C=[0-12;10-1;-320];
d=[101]';
lb=[-5-5-2]';
ub=[552]';
Aeq=[];beq=[];
[x,resnorm,residual,exitflag,output,lambda]=lsqlin(C,d,A,b,Aeq,beq,lb,ub)
Warning:
Large-scalemethodcanhandleboundconstraintsonly;
switchingtomedium-scalemethod.
Warning:
Large-scalemethodcanhandleboundconstraintsonly;
usingmedium-scalemethodinstead.
>Inlsqlinat249
Optimizationterminated.
x=%最优解
resnorm=%残差向量2-范数的平方,即reanorm=norm(residual)^2
residual=%残差向量
exitflag=
1%函数收敛到最优解
output=
iterations:
4%迭代4次
algorithm:
'medium-scale:
active-set'%调用的积极集算法
firstorderopt:
[]
cgiterations:
[]
message:
'Optimizationterminated.'
lambda=%Lagrange乘子
lower:
[3x1double]
upper:
[3x1double]
eqlin:
[0x1double]
ineqlin:
[2x1double]
ineqlin:
[2xldouble]
求下面优化问题的最优解,并求出相应的梯度、Hessian矩阵以及Lagrang乘子。
解现将该优化问题转化为下面的标准形式:
编写目标函数的M文件如下:
functiony=example8_9(x)
y=(x
(1)-2)^2+(x
(2)-1)^2;
function[c1,c2]=nonlin(x)
c1=x
(1)^2-x
(2);
c2=[];
clear
A=[11];
b=2;
Aeq=[];beq=[];lb=[];ub=[];
x0=[00]';
[x,fval,exitflag,output,lambda,g,H]=fmincon(@example8_9,x0,Aeq,beq,lb,ub,@nonlin)
Warning£ºLarge-scale£¨trustregion£©methoddoesnotcurrentlysolvethistypeofproblem£¬
switchingtomedium-scale£¨linesearch£©¡£
四、实际应用
V带轮优化设计
提出问题:
设计带式输送机传动装置上的普通V带传动,已知电动机额定功率P=4Kw,转速n1=1440r/min,传动比i=3,采用A型V带,每天工作不超过10小时,设计带根数尽量少,带轮直径和中心距尽量小的方案。
数学模型建立
(1)设计变量:
V带传动的独立设计变量是小带轮直径和带的基准长度
即X=[,=[,
(2)目标函数包括三个分目标:
a.小带轮直径min(X)==
b.中心距min(X)=a=+
其中,=/4-(i+1)/8,=(i-1/8
c.带的根数min(X)=z=P/(+)
(3)约束条件
小带轮直径不小于推荐的A型带轮最小直径即
0
带速不超过最大带速
即
小带轮包角大于
即
中心距大于,即
小带轮基准直径在80—100mm之间,中心距在320—400mm之间,带的根数为1—4。
编制MATLAB优化设计
%V带传动多目标优化设计
P=4;i=3;n1=1440;KA=;%已知条件
x0=[100;1250];%初始点(小带轮直径,V带基准长度)
lb=[80;630];%最小带轮直径和A型V带基准长度
ub=[100;4000];%最大带轮直径和A型V带基准长度
goal=[75,280,2];%分目标
w=[10^-2,40^-2,^-2];%分目标加权系数
[xopt,fopt]=fgoalattain(@VDCD_3mb_MB,x0,goal,w,[],[],[],[],lb,ub,@VDCD_3mb_YS)
functionf=VDCD_3mb_MB(x)
P=4;i=3;KA=;
f
(1)=x
(1);%f1小带轮基准直径
a1=x
(2)/4-pi*x
(1)*(i+1)/8;
a2=x
(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
f
(2)=a;%f2中心距
P0=*x
(1);%单根带额定功率
DP0=;%功率增量
alpha=180-180*x
(1)*(i-1)/pi/a;%小带轮包角
Kalp=alpha/*alpha+;%包角系数
KL=*x
(2)^;%长度系数
f(3)=KA*P/(P0+DP0)/Kalp/KL;%V带根数
function[g,ceq]=VDCD_3mb_YS(x)
i=3;n1=1440;
g
(1)=100-x
(1);
g
(2)=pi*x
(1)*n1/6e4-25;
a1=x
(2)/4-pi*x
(1)*(i+1)/8;
a2=x
(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
g(3)=120-180*(1-x
(1)*(i-1)/a/pi);
g(4)=*x
(1)*(i+1)-a;
ceq=[];
运行结果:
Optimizationterminatedsuccessfully:
Searchdirectionlessthan2*and
maximumconstraintviolationislessthan
ActiveConstraints:
5
9
xopt=
+003*
fopt=
表面最优方案为设计带根数为5或9,带轮直径和中心分别为(+003,)、(,)、(,)的方
MATLAB优化设计在机件模型中的应用
提出问题:
有一圆形等截面的销轴.一端固定在机架上.另一端作用着集中载荷P;50kN和扭矩M=400Nm,其简化模型如图l所示.由于结构的需要,轴的长度l不得小于10cm,已知锖轴的材料的弯曲应力=120MPa;扭剪应力=80MPa;允许挠度f=o.01cm;密度p=7800kg/m3:
弹性模量E=2.1×105MPa.现要求设计这根销轴,在满足使用要求下使其质量为最轻.
建立数学模型:
通过分析,我们得知性能约束条件为:
1、弯曲强度要求悬臂粱的最大弯曲应力不得超过允许值,即代人数据并整理;
2、扭转强度要求悬梁的最大弯曲应力不得超过允许值,即,代人数据并整理;
3、刚度要求最大挠度不得超过允许值,代人数据并整理得边界约束条件:
这样就可建立数学模型:
二、调用MATLAB函数进行优化
采用MATLAB可以简化编程.NATLAB程序语言简单,也可采用交互式界面.
本例要MATLAB命令窗口输入如下命令即可:
fu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 优化 设计 中的 应用