实用数值方法(Matlab)
小论文题目: 基于Matlab 实现曲柄摇杆机构的运动设计
小组成员姓名: 毛晓雯 学号: [1**********]7 班级: 机自6 班
2014-2015(1)学期
提交日期:2014年12月29
日
基于Matlab 实现曲柄摇杆机构的运动设计
1 问题提出与数学模型的建立
曲柄摇杆机构是铰链四杆机构中的一种,在实际工程应用中,该机构应用广泛,如缝纫机踏板机构、搅拌机机构等。现要求设计一曲柄摇杆机构,能同时实现以下几个要素:
1)为提高机构的急回特性,极位夹角θ应尽可能大(0
2)为改善机构的传力性能,当该机构曲柄与连杆重叠共线时,最大压力角尽可能小(0
3)该摇杆摆角∆ψ=60︒。
1.1 设计变量的确定
设l 1, l 2, l 3, l 4分别为该四杆机构的杆长,考虑计算的方便性,令
T l 4
=x (3),于是设计变量为X=⎡x 1x 2x 3⎤()()()⎣⎦。 l 1
l 1l l
=1,2=x (1),3=x (2), l 1l 1l 1
图1-1 曲柄摇杆机构简图
1.2 目标函数的建立
当曲柄摇杆机构的各杆长度确定后,该机构的摇杆摆角、最大压力角及极位夹角都会确定下来,即该机构的各项性能也能确定下来。这里,将摇杆摆角∆ψ=60︒这个目标处理为无限接近60︒这个目标值,定义为一目标函数,求之同60︒之差的绝对值的最小值。由图1-1及设计要求,可列出该设计的分目标函数。
因为θ=∠C 2AD -∠C 3AD ,由余弦定理可得极位夹角的目标函数:
f 1(x ) =-⎡x (1)-1⎤⎦+x (3)-x (2)-arccos ⎡⎣x (1)+1⎤⎦+x (3)-x (2) =-
arccos ⎣
2x 3⎡2x 3⎡⎣x 1-1⎤⎦⎣x 1+1⎤⎦
2
2
2
2
2
2
对于曲柄摇杆机构来说,当主动曲柄与机架共线的两位置之一处,压力角达到最大。在这里,我们很容易知道当B 3点位于A 和D 之间的这种情况,压力角最大(如图1-2所示)。故最大压力角的目标函数:
f 2(x )=αmax
222
x 1+x 2-x 3-1⎡⎤()()()π⎣⎦=-arccos
22x 1x 2 摇杆的实际最大摆角为∆ψ=∠ADC 3-∠ADC 2,故
x (2)+x (3)-⎡⎣x (1)+1⎤⎦-arccos x (2)+x (3)-⎡⎣x (1)-1⎤⎦ ∆ψ=arccos
2x 2x 32x 2x 32
2
2
2
2
2
所以实际最大摆角与理论最大摆角60︒间偏差的目标函数:
f 3(x )=∆ψ-
π
3
图1-2 曲柄摇杆压力角达到最大位置
这里,根据设计要求,极位夹角θ尽可能大为好。为了能实现用Matlab 编程求解,做一下处理,定义f 1(x )=-。这样就实现了f 1(x ), f 2(x ), f 3(x )→min ,满足Matlab 优化工具箱对目标函数的统一要求。下面对各目标函数的范围做进一步明确:
1)为保证极位夹角尽可能大,确定极位夹角不小于10︒,即10︒≤θ≤17︒,于是转换成弧度,有
-0.2967≤f 1(x ) ≤-0.1745;
2)由设计要素的条件0
3)为保证摇杆的摆角∆ψ尽可能接近60︒,使-1︒≤f 3(x )≤1︒,转换成弧度,有:
0≤f 2(x ) ≤0.01745。
1.3 约束条件的确定
曲柄摇杆机构要满足曲柄存在的条件。其中最长杆与最短杆的长度之和应小于等于其它两杆长
度之和;最短杆为连架杆(此处为l 1) 。为了便于计算,这里取l 1=1,因此有:
g 1(x )=1-x (1)≤0 g 2(x )=1-x (2)≤0 g 3(x )=1-x (3)≤0 g 4(x )=1+x (3)-x (1)-x (2)≤0 g 5(x )=1+x (1)-x (2)-x (3)≤0
2 使用Matlab 进行优化求解
这里曲柄摇杆机构的数学模型属于一般非线性多目标规划问题。其基本模型
min F (x ) -weight . y ≤goal
x , y
[1]
st .. c (x ) ≤0
Ceq (x ) =0 Ax ≤b
Aeq . x =beq
调用Matlab 优化工具箱中非线性规划求解函数fgoalattain 来求解。其命令的基本格式:[X,fval,attainfactor,exitflag]=fgoalattain(@ObjFun,x0,goal,weight,A,b,Aeq,beq,lb,ub);其中各个参数的含义如下:ObjFun 为定义求解的多目标函数;x0为变量初值;A ,b 为约束函数中线性不等式约束的参数;Aeq,beq 为约束函数中线性等式约束的参数;c(x),ceq(x)均为非线性函数组成的向量;lb,ub 分别是变量X 的下限和上限值;goal 是目标函数边界组成的向量;Weight 是目标函数的权重值。对于判断求解是否有效可通过attainfactor 和exitflag 两个参数来确定:当exitflag>0时,表示目标值没有溢出goal 。本例求解最优解,分两个步骤进行:
1)先建立M 文件ObjFun.m, 定义各个目标函数 输入:
2) 根据非线性多目标规划求解函数fgoalattain 的形式,建立主程序 输入:
运算结果:
对于多目标优化设计,各个目标之间往往存在互相制约和矛盾的情况,因此其很难准确给出最优结果。在使用Matlab 优化工具箱求解时,只有在明确了各个目标函数的权重值前提下,才有可能。曲柄摇杆机构的优化设计含有三个目标函数,在满足不同目标函数权重值的前提下,理论上满足条件的解应该是无穷多个。综合考虑,上述程序是令各目标函数权重值Weight=0.3333,即在各目标函数同等重要的情况下,并且在杆长初始值为[3 3 3]的前提下,得出的优化解。为了得到较为可靠的优化解,带入不同的杆长初始值,将计算结果统计成表2-1如下:
表2-1 计算结果记录
从上表数据可以看出,满足该多目标优化解的结果很多。对比各组数据,综合考虑,第二组解是相对最优解,其中:l 1=1,l 2=2.9513,l 3=2.1433,l 4=2.8873,这组数据使得机构有良好的急回特性和传力特性。
3 结论
在进行曲柄摇杆机构及其他类型机构的多目标优化设计时,应对各个目标函数做统一边界处理,明确各目标函数在整个数学模型中的权重值和所设计的机械性能特性,使用Matlab 优化工具箱,进行程序编写,找出满足条件的各组解,在进行性能相对比较分析,从而找到最优解。这种方法方便、快捷、高效并且准确,为较好地解决连杆机构多目标优化设计问题提供了一个途径。
参考文献
[1] 阳明盛,熊西文. Matlab基础及数学软件[M]. 大连:大连理工大学出版社,2012 [2] 何正风. Matlab在数学方面的应用[M]. 北京:清华大学出版社,2012
实用数值方法(Matlab)
小论文题目: 基于Matlab 实现曲柄摇杆机构的运动设计
小组成员姓名: 毛晓雯 学号: [1**********]7 班级: 机自6 班
2014-2015(1)学期
提交日期:2014年12月29
日
基于Matlab 实现曲柄摇杆机构的运动设计
1 问题提出与数学模型的建立
曲柄摇杆机构是铰链四杆机构中的一种,在实际工程应用中,该机构应用广泛,如缝纫机踏板机构、搅拌机机构等。现要求设计一曲柄摇杆机构,能同时实现以下几个要素:
1)为提高机构的急回特性,极位夹角θ应尽可能大(0
2)为改善机构的传力性能,当该机构曲柄与连杆重叠共线时,最大压力角尽可能小(0
3)该摇杆摆角∆ψ=60︒。
1.1 设计变量的确定
设l 1, l 2, l 3, l 4分别为该四杆机构的杆长,考虑计算的方便性,令
T l 4
=x (3),于是设计变量为X=⎡x 1x 2x 3⎤()()()⎣⎦。 l 1
l 1l l
=1,2=x (1),3=x (2), l 1l 1l 1
图1-1 曲柄摇杆机构简图
1.2 目标函数的建立
当曲柄摇杆机构的各杆长度确定后,该机构的摇杆摆角、最大压力角及极位夹角都会确定下来,即该机构的各项性能也能确定下来。这里,将摇杆摆角∆ψ=60︒这个目标处理为无限接近60︒这个目标值,定义为一目标函数,求之同60︒之差的绝对值的最小值。由图1-1及设计要求,可列出该设计的分目标函数。
因为θ=∠C 2AD -∠C 3AD ,由余弦定理可得极位夹角的目标函数:
f 1(x ) =-⎡x (1)-1⎤⎦+x (3)-x (2)-arccos ⎡⎣x (1)+1⎤⎦+x (3)-x (2) =-
arccos ⎣
2x 3⎡2x 3⎡⎣x 1-1⎤⎦⎣x 1+1⎤⎦
2
2
2
2
2
2
对于曲柄摇杆机构来说,当主动曲柄与机架共线的两位置之一处,压力角达到最大。在这里,我们很容易知道当B 3点位于A 和D 之间的这种情况,压力角最大(如图1-2所示)。故最大压力角的目标函数:
f 2(x )=αmax
222
x 1+x 2-x 3-1⎡⎤()()()π⎣⎦=-arccos
22x 1x 2 摇杆的实际最大摆角为∆ψ=∠ADC 3-∠ADC 2,故
x (2)+x (3)-⎡⎣x (1)+1⎤⎦-arccos x (2)+x (3)-⎡⎣x (1)-1⎤⎦ ∆ψ=arccos
2x 2x 32x 2x 32
2
2
2
2
2
所以实际最大摆角与理论最大摆角60︒间偏差的目标函数:
f 3(x )=∆ψ-
π
3
图1-2 曲柄摇杆压力角达到最大位置
这里,根据设计要求,极位夹角θ尽可能大为好。为了能实现用Matlab 编程求解,做一下处理,定义f 1(x )=-。这样就实现了f 1(x ), f 2(x ), f 3(x )→min ,满足Matlab 优化工具箱对目标函数的统一要求。下面对各目标函数的范围做进一步明确:
1)为保证极位夹角尽可能大,确定极位夹角不小于10︒,即10︒≤θ≤17︒,于是转换成弧度,有
-0.2967≤f 1(x ) ≤-0.1745;
2)由设计要素的条件0
3)为保证摇杆的摆角∆ψ尽可能接近60︒,使-1︒≤f 3(x )≤1︒,转换成弧度,有:
0≤f 2(x ) ≤0.01745。
1.3 约束条件的确定
曲柄摇杆机构要满足曲柄存在的条件。其中最长杆与最短杆的长度之和应小于等于其它两杆长
度之和;最短杆为连架杆(此处为l 1) 。为了便于计算,这里取l 1=1,因此有:
g 1(x )=1-x (1)≤0 g 2(x )=1-x (2)≤0 g 3(x )=1-x (3)≤0 g 4(x )=1+x (3)-x (1)-x (2)≤0 g 5(x )=1+x (1)-x (2)-x (3)≤0
2 使用Matlab 进行优化求解
这里曲柄摇杆机构的数学模型属于一般非线性多目标规划问题。其基本模型
min F (x ) -weight . y ≤goal
x , y
[1]
st .. c (x ) ≤0
Ceq (x ) =0 Ax ≤b
Aeq . x =beq
调用Matlab 优化工具箱中非线性规划求解函数fgoalattain 来求解。其命令的基本格式:[X,fval,attainfactor,exitflag]=fgoalattain(@ObjFun,x0,goal,weight,A,b,Aeq,beq,lb,ub);其中各个参数的含义如下:ObjFun 为定义求解的多目标函数;x0为变量初值;A ,b 为约束函数中线性不等式约束的参数;Aeq,beq 为约束函数中线性等式约束的参数;c(x),ceq(x)均为非线性函数组成的向量;lb,ub 分别是变量X 的下限和上限值;goal 是目标函数边界组成的向量;Weight 是目标函数的权重值。对于判断求解是否有效可通过attainfactor 和exitflag 两个参数来确定:当exitflag>0时,表示目标值没有溢出goal 。本例求解最优解,分两个步骤进行:
1)先建立M 文件ObjFun.m, 定义各个目标函数 输入:
2) 根据非线性多目标规划求解函数fgoalattain 的形式,建立主程序 输入:
运算结果:
对于多目标优化设计,各个目标之间往往存在互相制约和矛盾的情况,因此其很难准确给出最优结果。在使用Matlab 优化工具箱求解时,只有在明确了各个目标函数的权重值前提下,才有可能。曲柄摇杆机构的优化设计含有三个目标函数,在满足不同目标函数权重值的前提下,理论上满足条件的解应该是无穷多个。综合考虑,上述程序是令各目标函数权重值Weight=0.3333,即在各目标函数同等重要的情况下,并且在杆长初始值为[3 3 3]的前提下,得出的优化解。为了得到较为可靠的优化解,带入不同的杆长初始值,将计算结果统计成表2-1如下:
表2-1 计算结果记录
从上表数据可以看出,满足该多目标优化解的结果很多。对比各组数据,综合考虑,第二组解是相对最优解,其中:l 1=1,l 2=2.9513,l 3=2.1433,l 4=2.8873,这组数据使得机构有良好的急回特性和传力特性。
3 结论
在进行曲柄摇杆机构及其他类型机构的多目标优化设计时,应对各个目标函数做统一边界处理,明确各目标函数在整个数学模型中的权重值和所设计的机械性能特性,使用Matlab 优化工具箱,进行程序编写,找出满足条件的各组解,在进行性能相对比较分析,从而找到最优解。这种方法方便、快捷、高效并且准确,为较好地解决连杆机构多目标优化设计问题提供了一个途径。
参考文献
[1] 阳明盛,熊西文. Matlab基础及数学软件[M]. 大连:大连理工大学出版社,2012 [2] 何正风. Matlab在数学方面的应用[M]. 北京:清华大学出版社,2012