matlab(四连杆优化设计)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机械优化设计在matlab中的应用

东南大学机械工程学院**

一优化设计目的:

在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。

"

二优化设计步骤:

1.机械优化设计的全过程一般可以分为如下几个步骤:

1)建立优化设计的数学模型;

2)选择适当的优化方法;

3)编写计算机程序;

:

4)准备必要的初始数据并伤及计算;

5)对计算机求得的结果进行必要的分析。

其中建立优化设计数学模型是首要的和关键的一步,它是取得正确结果的前提。优化方法的选取取决于数学模型的特点,例如优化问题规模的大小,目标函数和约束函数的性态以及计算精度等。在比较各种可供选用的优化方法时,需要考虑的一个重要因素是计算机执行这些程序所花费的时间和费用,也即计算效率。

2.建立数学模型的基本原则与步骤

①设计变量的确定;

设计变量是指在优化设计的过程中,不断进行修改,调整,一直处于变化的参数称为设计变量。设计变量的全体实际上是一组变量,可用一个列向量表示:

x=。

②目标函数的建立;

选择目标函数是整个优化设计过程中最重要的决策之一。当对某以设计性能有特定的要求,而这个要求有很难满足时,则针对这一性能进行优化会得到满意的效果。目标函数是设计变量的函数,是一项设计所追求的指标的数学反映,因此它能够用来评价设计的优劣。

目标函数的一般表达式为:

f(x)=,要根据实际的设计要求来设计目标函数。

③约束条件的确定。

一个可行性设计必须满足某些设计限制条件,这些限制条件称为约束条件,简称约束。

由若干个约束条件构成目标函数的可行域,而可行域内的所有设计点都是满足设计要求的,一般情况下,其设计可行域可表示为

在可行域中,任意设计点满足全部约束条件,称为可行解,但不是最优解,而优化设计就是要求出目标函数在可行域的最优解。

三实例分析(机械优化设计P241页例8-5)

设计一曲柄摇杆机构如图,要求:

曲柄从

"

且已知范围内

变化。

分析:

1)设计变量的确定决定机构尺寸的各杆长度,以及当摇杆按已知运动规律开始运行时,曲柄所载的位置角应列为设计变量,即:

X==

$

考虑到机构的杆长按比例变化时,不会改变其运动规律,因此在计算时常取

,而其他杆长则按比例取为的倍数。若取曲柄的初始位置角为极位角,则及相应摇杆位置角均为杆长的函数,几何图形关系如右图,其关系式为:

=arcos[] (1)

=arcos[] (2)

将的长度代入上式(1),(2)得到:

=arcos[]

=arcos[]

因此,只有为独立变量,设计变量减少,故最后的设计变量为:

X==

2) 目标函数的建立

目标函数可根据已知的运动规律与机构实际运动规律之间的偏差最小为指标来建立,即f(x)=→min

式中—期望输出角,;

m —输入角等分数;

—实际输出角,由下图得:

{

a)0≤

(3)

式中

将输入角分成30等分,并用近似公式计算,可得目标函数的表达式:

f(x)=

由题意知,传动角的变化范围是,则上式中变量的最后形式可以写成:

!

将带入(4)(5)得:

,

为当时的理想输出角,其值在题目中已经给出:

3)约束条件的确定

①曲柄摇杆机构应满足曲柄存在条件,可得

]

②曲柄摇杆机构的传动角可得

}

把约束条件简化(=5 ==,)

\

其中满足条件,故最后一共有两个设计变量(),7个约束条件。

4)优化计算

①此问题的图解见上图,有7个约束条件构成了改优化模型的可行域,而最优解在可行域内。

②优化方法选择:

该问题属于一般的约束非线性最优化类型,可以使用matlab优化工具箱里面的‘fmincon’函数进行求解。

⑴fmincon里面算法的选择:fmincon里面一共提供了‘largescale’,‘'medium-scale’两种算法,由于此问题只有两个设计变量,维数较低,故采用‘medium-scale’算法。‘medium-scale’算法是采用SQP,算法中Hessian阵可以通过BFGS迭代,初始Hessian阵任给。注意BFGS公式中q项是需要计算目标函数梯度得到的。所以Hessian矩阵的近似计算是需要用到有限差分法。在采用‘'medium-scale’算法时,需提供其设计变量的初始点

的信息,而初始点的选择也将影响计算得收敛性和收敛速度,如果初始点选择得不恰当,可能最后函数不能收敛,得不到计算结果。

⑵精度的控制:为了得到更加精确地解,需要设置优化函数的控制精度,函数本身默认精度为1e-4,精度比较低,通过options的设置将精度提高到1e-9,这样得到的结果更精确。以上两点通过设置options参数即可:

options=optimset('largescale','off','display','off','Algorithm','active-set','TolFun',1e-9);

相关文档
最新文档