Matlab机械优化设计实例教程_图文.ppt
机械优化实例及matlab工具箱共56页
6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。——斯宾诺莎 7、自知之明是最难得的知识。——西班牙 8、勇气通往天堂,怯懦通往地狱。——塞内加 9、有时候读书是一种巧妙地避开思考的方法。——赫尔普斯 10、阅读一切好书如同和过去最杰出的人谈话。——笛卡儿
机械优化实例及matlab工具箱
1、合法而稳定的权力在使用得当时很 少遇到 抵抗。 ——塞 ·约翰 逊 2、权力会使人渐渐失去温厚善良的美 德。— —伯克
3、最大限度地行使权力总是令人反感 ;权力 不易确 定之处 始终存 在着危 险。— —塞·约翰逊 4、权力会奴化一切。——塔西佗
5、虽然权力是一头固执的熊,可是金 子可以 拉着它 的鼻子 走。— —莎士 比
Thank youຫໍສະໝຸດ
MATLAB在力学机械中的应用举例(课件PPT)
wx=diff(vx)./dt(1:Ldt-1);wy=diff(vy)./dt(1:Ldt-1); %二次导数
[t(2:Ldt),x(2:Ldt),y(2:Ldt),wx,wy]
%显示数据
10
子程序ex713f
函数程序应另存成一个文件ex713f.m function zprime=ex713f(t,z) global vt vm zprime=[0;0]; % 给出t0之前zprime初值 zprime(1)=-vt-vm*z(1)/sqrt(z(1)^2+z(2)^2); zprime(2)=-vm*z(2)/sqrt(z(1)^2+z(2)^2); %上面两句可换成一个矩阵语句: zprime=-vt*[1;0]-vm*z/sqrt(z(1)^2+z(2)^2);
5
线性数学模型
对杆件1:ΣX=0 Nax + Ncx = 0 ΣY=0 Nay + Ncy - G1 = 0; ΣM=0 Ncy*L1*cos(theta1)-Ncx*L1*sin(theta1)-…
G1*L1/2*cos(theta1)=0; 对杆件2: ΣX=0 Nbx - Ncx = 0; ΣY=0 Nby - Ncy - G2 = 0; ΣM=0 Ncy*L2*cos(theta2)+ …
从而 w3 = L1w1cos(π/2-θ1+θ2)/ (L3cos(θ3-π/2-θ2)) 由杆2两端点a和b的速度沿杆长垂直方向的分量之差,可以求
出杆2的角速度. w2 = (-(L3sin(θ3-π/2-θ2))- L1w1sin(π/2-θ1+θ2))/L2 2. 求运动全过程的角位置,角速度,角加速度曲线,这只有借助 于计算工具才能做到,因为用手工算一个点就不胜其烦, 算 几十个点是很难想象的.而由MATLAB编程调用fzero函数时, 要求给出一个近似猜测值,若连续算几十点,前一个解就可 作为后一个解的猜测值,所以反而带来了方便. 这样,本书将提供两个程序ex714a.m和ex714b.m来表述这两种 方法,它们所要调用的函数程序命名为ex714f.m.
matlab机械优化设计应用实例
调用方式一: 在命令窗口中输入: [x,fval]=fminsearch('demfun1',[0,0])
调用方式二: 在命令窗口中输入: [x,fval]=fminsearch(@demfun1,[0,0])
得到的结果 X= 1.0016 0.8335
Fval= -3.3241
约束优化问题 1.线性规划
一维优化问题
一维优化问题的数学模型为:
min f (x) x1 x x2
在matlab中,一维优化问题,也就是一维搜索问题的实现是由函数fminbnd 来实现的。
具体的调用格式如下:
调用格式1:
X= fminbnd(FUN,x1,x2)
这种格式的功能是:返回在区间(x1,x2)中函数FUN最小值对应的X值。
f=[-7;-5]; A=[3,2;4,6;0,7]; b=[90;200;210]; lb=zeros(2,1);
调用linprog函数
[x,fval]=linprog(f,A,b,[],[],lb)
2 一般的约束非线性最优化问题
约束非线性最优化是指目标函数和约束函数都是定义在n维欧 几里得空间上的实值连续函数,并且至少有一个是非线性的。
X=fmincon(fun,x0,A,B,Aeq,Beq,LB,UB,NONLCON)
这个函数格式同上,同时,约束中增加由函数NONLCON定义的非线性约束条件, 在函数NONLCON的返回值中包含非线性等式约束Ceq(X)=0和非线性不等式 C(X)<=0。其中,C(X)和Ceq(X)均为向量。
这种格式的功能是:给定起始点X0,求函数FUN的局 部极小点X。其中,X0可以是一个标量、向量或者矩 阵。
调用格式2: [X,FVAL]=fminsearch (FUN,X0)
机械优化设计实例.pptx
• 编写计算机程序对于使用者来说,已经没 有多少工作要做了,因为已有许多成熟的 优化方法程序可供选择。使用者只需要将 数学模型按要求编写成子程序嵌入已有的 优化程序即可。
• 对于一般的机械,可按重量最轻或体积最小的要 求建立目标函数;对应力集中现象尤其突出的构件, 则以应力集中系数最小作为追求的目标,对于精 密仪器,应按其精度最高或误差最小的要求建立 目标函数。在机构设计中,当对所设计的机构的 运动规律有明确的要求时,可针对其运动学参数 建立目标函数;若对机构的动态特性有专门要求, 则应针对其动力学参数建立目标函数;而对于要求 再现运动轨迹的机构设计,则应根据机构的轨迹 误差最小的要求建立目标函数。
第一节 应用技巧
• 一、机械优化设计的一般过程 • 机械优化设计的全过程一般可分为如下几个步骤: • 1)建立优化设计的数学模型。 • 2)选择适当的优化方法。 • 3)编写计算机程序。 • 4)准备必要的初始数据并上机计算。 • 5)对计算机求得的结果进行必要的分析。 • 其中建立优化设计数学模型是首要的和关键的一
• 例如一架好的飞机,应该具有自重轻、净 载重量大,航程长,使用经济,价格便宜, 跑道长度合理等性能,显然这些都是设计 时追求的指标。但并不需要把它们都列为 目标函数,在这些指标中最重要的指标是 飞机的自重。因为采用轻的零部件建造的 自身重量最轻的飞机只会促进其它几项指 标,而不会损害其中任何一项。因此选择 飞机自重作为优化设计的目标函数应该是 最合适的了。
机械优化设计的MATLAB实现课件
[x,fval] = linprog(…) % 返回目标函数最优值,即fval= f (x)。 [x,fval,lambda,exitflag] = linprog(…) % lambda为解x的Lagrange乘子。 [x, favl,lambda,fval,exitflag] = linprog(…) % exitflag为终止迭代的错误条件。 [x,fval, lambda,exitflag,output] = linprog(…) % output为关于优化的一些信息 说明 若exitflag>0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最 大数字,exitflag<0表示函数不收敛于解x;若lambda=lower 表示下界lb, lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示 等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表 示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示 PCG迭代次数。
MATLAB求解程序清单为:
首先输入下列系数 f=[-60;-120]; A=[9,4;3,10;4,5]; b=[360,300,200]; lb=zeros(2,1); ub=[];
然后调用linprog函数:
[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb,ub) 计算结果为: x = 20.0000 24.0000 fval = -4.0800e+003 exitflag = 1 output = iterations: 5 algorithm: 'large-scale: interior point‘ cgiterations: 0 message: 'Optimization terminated.' lambda = ineqlin: [3x1 double] eqlin: [0x1 double] upper: [2x1 double] lower: [2x1 double]
机械优化设计经典实例PPT课件
x1
x2 x1
3/ 2
0
g3 (X ) 3 l 3 x3 0
g4 (X ) d x2 0
g5 ( X ) D d x1 x2 0
设计实例2: 平面连杆机构优化设计
一曲柄摇杆机构, M为连秆BC上一点, mm为预期的运动 轨迹,要求设计该 曲柄摇杆机构的有 关参数,使连杆上 点M在曲柄转动一 周中,其运动轨迹 (即连杆曲线)MM 最佳地逼近预期轨 迹mm。
6.12(x12 x22 )x3 106
设计实例1:
g1 ( X ) d 4 D 4 1.27 D 10 5 x2 4 x14 1.27 10 5 0
g2 ()
154.34D D4 d 4
Dd D
3/ 2
154.34x1 x14 x2 4
设计实例2:
设计一再现预期轨迹mm的曲柄摇杆机构。已知xA= 67mm,yA=10mm,等分数s=12,对应的轨迹mm 上12个点的坐标值见表,许用传动角[γ]=300。
设计实例2:
一、建立优化设计的数学模型
点M的坐标: xM xA l1 cos( ) l5 cos( ) yM yA l1 sin( ) l5 sin( )
( ) arccosl12 l22 l32 l42 2l1l4 cos
2l2 l12 l42 2l1l4 cos arctg l1 sin
l4 l1 cos
设计实例2:
点M的坐标: xM xA l1 cos( ) l5 cos( ) yM yA l1 sin( ) l5 sin( )
MATLAB在优化中的应用课件
x
为解;否则,x不是最终解,它只是迭代制止
时优化过程的值
fval
解x处的目标函数值
exitflag output
描述退出条件: exitflag>0,表目标函数收敛于解x处 exitflag=0,表已达到函数评价或迭代
的最大次数 exitflag<0,表目标函数不收敛
包含优化结果信息的输出结构. Iterations:迭代次数
质量问题 50%由于设
计不周
成本 70%设计阶
段决定
总周期 40%设计周
期 占据
学习交流PPT
8
优化设计的概念
•优化设计是借助最优化数值计算方法和计算机技术, 求取工程问题的最优设计方案。 •即:进行最优化设计时,必须首先将实际问题加以 数学描述,形成一组由数学表达式组成的数学模型, 然后选择一种最优化数值计算方法和计算机程序, 在计算机上运算求解,得到一组最优的设计参数。
• MATLAB由主包和功能各异的工具箱组成,其基本 数据结构是矩阵。
• MATLAB具有非常强大的计算功能,其已成为世界 上应用最广泛的工程计算应用软件之一。 (Mathematica、Maple)
学习交流PPT
3
MATLAB主要功能和特点
•主要功能
1,数字计算功能
2,符号计算功能
3,数据分析和可视化分析 功能
数X’*H*X+f*X 中线性项的系数向量
非 线 性 优 化 的 目 标 函 数 .fun必 须 为 行 命 令 对 象 或 M文 件 、 嵌 入 函 数 、 或 MEX文 件 的 名 称
二次规划的目标函数X’*H*X+f*X 中二次项的系 数矩阵
A矩阵和b向量分别为线性不等式约束:
Matlab与机械优化设计(1
MATLAB语言基础西安交通大学润滑理论及轴承研究所朱永生2006年9月第节MATLAB语言概述第一节一、MATLAB语言的发展•MATLAB名字是由MATrix和LABoratory 两个词的前三个字母组合而成的。
它是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。
被誉为“巨人肩上的工具”。
由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言--如Basic、Fortran和C 等那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。
¾MATLAB 语言是当今国际上科学界最具影响力、也是最有活力的软件。
它起源于矩阵运算,力也是最有活力的软件它起源于矩阵运算并已经发展成一种高度集成的计算机语言。
它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其高质量的图形可视化与界面设计便捷的与其他程序和语言接口的功能。
MATLAB 语言在各国高校与研究单位起着重大的作用。
概括地讲整个系统由两部分组成即•概括地讲,整个MATLAB系统由两部分组成,即MATLAB内核及辅助工具箱,两者的调用构成了MATLAB的强大功能。
MATLAB语言以数组为基的强大功能本数据单位,包括控制流语句、函数、数据结构、输入输出及面向对象等特点的高级语言,它具有以下主要特点:•1)运算符和库函数极其丰富,语言简洁,编程效率高,MATLAB除了提供和C语言一样的运算符号外,还提供广泛的矩阵和向量运算符。
利用其运算符号和库函数可使其程序相当简短,两三行语句就可实现几十行甚至几百行C或FORTRAN的程序功能。
程序功能•2)既具有结构化的控制语句(如for循环、while 循环、break语句、if语句和switch语句),又有面循环b k语句it h语句)又有面向对象的编程特性。
Matlab 机械优化设计
x= 1.0000 2.0007
fval = 10.0000
exigflag = 1
hessian = iterations: 6 funcCount: 21 stepsize: 1
firstorderopt: 0.0013 algorithm: 'medium-scale: Quasi-
Newton line search'
l Hessian – 用户定义的目标函数的Hessian矩阵。 l HessPattern – 用于有限差分的Hessian矩阵的 稀疏形式。若不方便求fun函数的稀疏Hessian矩阵 H,可以通过用梯度的有限差分获得的H的稀疏结 构(如非零值的位置等)来得到近似的Hessian矩 阵H。若连矩阵的稀疏结构都不知道,则可以将 HessPattern设为密集矩阵,在每一次迭代过程中, 都将进行密集矩阵的有限差分近似(这是缺省设
无约束非线性规划问题 相关函数
fminunc函数 fminsearch函数
fminunc函数 功能: 给定初值,求多变量标量函数的最小值。 常用于无约束非线性最优化问题。 数学模型:
min f (x) x
其中,x为一向量,f(x)为一函数,返回标量。
语法格式及描述
x = fminunc(fun,x0)给定初值x0,求fun函数的局 部极小点x。x0可以是标量、向量或矩阵。 x = fminunc(fun,x0,options)用options参数中指 定的优化参数进行最小化。 x = fminunc(fun,x0,options,P1,P2,...)将问题参 数p1、p2等直接输给目标函数fun,将options参 数设置为空矩阵,作为options参数的缺省值。