平面四杆机构的运动分析

发布时间:2014-10-14   来源:文档文库   
字号:

优秀设计
平面四杆机构的运动性能研究


摘要:平面四杆机构是主要的常用基本机构之一,应用十分广泛,也是其他多杆机构的基础。由于连杆机构的性能受机构上繁多的几何参数的影响,呈复杂的非线性关系,无论从性能分析上还是性能综合上都是一个比较困难的工作,尚需作进一步深入研究。本文基于平面四杆机构的空间模型,将机构实际尺寸转化为相对尺寸,在有限的空间内表示出无限多的机构尺寸类型,从而建立起全部机构尺寸类型和空间点位的一一对应关系,为深入研究平面四杆机构的运动性能与构件尺寸之间的关系提供了基础。根据曲柄摇杆机构、双曲柄机构、双摇杆机构、单滑块四杆机构的不同特点,详细分析各类机构的运动性能参数与构件尺寸之间的关系,指出构件尺寸的变化对机构运动性能的影响,并绘制相关的运动性能图谱。针对具有急回特性的Ⅰ、Ⅱ型曲柄摇杆机构,通过深入分析极位夹角与构件尺寸之间的内在关系,获得了Ⅰ型曲柄摇杆机构极位夹角分别小于、等于或大于90°的几何条件以及Ⅱ型曲柄摇杆机构极位夹角一定小于90°的结论,揭示了曲柄摇杆机构设计时作为已知条件的极位夹角和摇杆摆角之间应满足的要求。本文得出的图谱和相关结论,为工程应用中机构性能分析和机构综合提供了理论依据。

关键词 平面四杆机构 空间模型 运动性能




Plane four clubs institutions of
Sports performance research Abstract:The planar four-bar linkages are one type of basic mechanisms, and they are applied very extensively. The performances of the linkages depend on their geometrical parameters and present the complicated non-linear relations. It is necessary to make the further research on them for analysis, synthesis and application of linkages.By using of the three-dimensional models of the planar four-bar mechanisms, the actual sizes of mechanisms are transformed relative ones, and all size types of mechanisms can be figured by spatial coordinates. It is the foundation for research on the relations between the link dimensions and kinematic capability parameters.Aimed at the different characteristics of crank-rocker mechanism, double-crank mechanism, double-rocker mechanism and single-slider mechanism, some inherent relations between the link dimensions and the kinematic capability parameters are deeply analyzed, then the relative kinematic capability diagrams are obtained.Based on deeply analysis of inherent relations between the extreme position angle and the link dimensions of typeand typecrank-rocker mechanisms with quick return characteristics, the geometrical conditions are put forward in this paper, by which we can judge whether the extreme position angle of typecrank-rocker mechanisms is less than, equal to or lager than 90°. It is proved that the extreme position angle of typecrank-rocker mechanism is certainly less than 90°. The relations between the extreme position angle and the angular stroke of the rocker are brought to light, which should be satisfied during the kinematic design of crank-rocker mechanisms.The diagrams and conclusions obtained in this paper provide theoretic foundation for the capability analysis and synthesis of mechanisms.
Keyword: Planar four-bar linkage Space model Sports Performance
如需源程序联系扣扣 194535455




1 序言 1.1 连杆机构„„„„„„„„„„„„„„„„„„„„„„„„„„(1 1.2 平面连杆机构运动学分析„„„„„„„„„„„„„„„„„„„(2 1.3 本论文所作的主要工作„„„„„„„„„„„„„„„„„„„„(3 2 平面四连杆机构的类型
2.1 分类概念 „„„„„„„„„„„„„„„„„„„„„„„„„„(3 2.2 分类„„„„„„ „„„„„„„„„„„„„„„„„„„„„„(4 3 平面四杆机构运动分析
3.1.1 连杆上任意点的轨迹分析„„„„„„„„„„„„„„„„„„„(6 3.1.2 Non-grashof机构的运动分析„„„„„„„„„„„„„„„„„(8 3.2 速度分析„„„„„„„„„„„„„„„„„„„„„„„„„ (9 3.3 加速度分析„„„„„„„„„„„„„„„„„„„„„„„„ (10 4 平面连杆机构曲线分类基准及分类
4.1 曲率„„„„„„„„„„„„„„„„„„„„„„„„„„„„(11 4.2 弧长„„„„„„„„„„„„„„„„„„„„„„„„„„„„(12 4.3 回转数„„„„„„„„„„„„„„„„„„„„„„„„„„„(12 4.4 结点„„„„„„„„„„„„„„„„„„„„„„„„„„„„(13 4.5 变曲点、曲率极大点与极小点„„„„„„„„„„„„„„„„„(19 4.6 机构数据库的建立„„„„„„„„„„„„„„„„„„„„„„(20 4.7 连杆曲线的分类结果„„„„„„„„„„„„„„„„„„„„„(20 5 平面连杆机构的仿真设计
5.1 初始运行界面及程序„„„„„„„„„„„„„„„„„„„„„(23 5.2 部分仿真结果„„„„„„„„„„„„„„„„„„„„„„„ (42 结论„„„„„„„„„„„„„„„„„„„„„„„„(49 参考文献„„„„„„„„„„„„„„„„„„„„„„(51 致谢„„„„„„„„„„„„„„„„„„„„„„„„(52



1
连杆机构,是由许多刚性构件通过低副联结而成,也称低副机构。它是由机构原动件与从动件之间都要通过连杆联结和机架一起构成传动装置,因此称为连杆机构。
低副面接触的结构使连杆机构具有以下一些优点:运动副单位面积所受压力较小,且面接触便于润滑,故磨损减小;制造方便,易获得较高的精度;两构件之间的接触是靠本身的几何封闭来维系的,它不像凸轮机构有时需利用弹簧等力封闭来保持接触。同时,平面连杆机构也有以下缺点:一般情况下,只能近似实现给定的运动规律或运动轨迹,且设计较为复杂;当给定的运动要求较多或较复杂时,需要的构件数和运动副个数往往较多,这样就使机构结构复杂,工作效率降低,不仅发生自锁的可能性增加,而且机构运动规律对制造、安装误差的敏感性增加;机构中作复杂运动和作往复运动的构件所产生的惯性力难以平衡,在高速时将引起较大的振动和动载荷,故连杆机构常用于速度较低的场合。以四杆机构为例,四杆机构根据其两个连架杆的运动形式的不同,可以分为曲柄摇杆机构、双曲柄机构和双摇杆机构三种基本形式,应用实例如下:[1]

1-1 雷达天线调整机构 1-2 汽车雨刮器 1-3 搅拌机
以上图1-13为曲柄摇杆机构;

1-4 惯性筛工作机构 1-5 起重机吊臂结构原理


以上图1-4为双曲柄机构;图1-5 为双摇杆机构



连杆机构根据不同的分类标准由不同的分类方法。
(一) 可根据各构件之间的相对运动为平面运动或空间运动,将其分为平面连杆机构与空间连杆机构(单闭环的平面连杆机构的构件数至少为4,单闭环的空间连杆机构的构件数至少为3);
(二) 可根据机构中构件数目的多少主要分为两大类:四杆机构,由五杆及五杆以上组成的多杆机构。连杆机构中最基本、应用最广泛的机构为平面四杆机构,它是构成和研究多杆机构(如六杆机构)的基础。
连杆机构是常用的主要机构之一,它在一些机械的工作机构和操纵装置中得到了广泛的应用。连杆机构能够实现多种运动形式的转换,例如它可把原动件的转动转换成从动件某种规律的往复移动或摆动,反之也可把往复移动或摆动转换成连续运动;此外,应用在连杆上点的轨迹可以完成工程上特殊的曲线运动要求. 因此,选取连杆机构中平面四杆机构进行研究是有必要的。
1.1 选题的依据及意义
选题目的
1.建立研究新机构,新机器发明创造的普遍规律及实用方法的实用基础理论。 2.加速吸收发达工业化国家的先进技术,为本国新机构,新机器的二次设计,二次开发提供理论基础。
3提出在技术革新和设备改造中提出的新机构,新机器的独特结构和创新构思,其成为成熟的先进技术。
4简介一些新机构,新机器实用性结构及技术的应用实例,说明理论对实践的指导作用。
5为从事机械设计,制造的工程技术人员的知识,技术更新开阔视野提供参考资料。 6.探索平面连杆机构研究的新方法,新思路。
1.2平面连杆机构的运动学分析
平面连杆机构运动分析的方法有很多,主要有图解法、解析法和实验法三种。其中,图解法包括速度瞬心法和相对速度图解法,形象直观,对构件少的简单的平面连杆机构,一般情况下用图解法比较简单。解析法直接用机构已知参数和要求的未知量建立的数学模型进行求解,也是一种比较好的方法。作图法和实验法工作量大,设计精度低,仅适用于对机构精度要求不高的场合。
平面连杆机构的运动学分析的过程包括建立运动约束方程和解方程两部分。面连杆机构的运动学分析,就是对机构的位移、轨迹、速度、加速度进行分析。[3]


这里研究的内容是不考虑机构的外力及构件的弹性变形等影响,仅仅研究在已知原动件的运动规律的条件下,分析机构中其余构件上各点的位移、轨迹、速度、加速度,有了这些运动参数,才能分析、评价现有机械的工作性能。
1.3 本论文所作的主要工作:
此课题的主要目标是系统地对平面四杆机构进行研究,从而来获得连杆机构运动学性能和动力学性能,以便在实际中得到应用。主要特点是在各个设计进度中将会大量应用计算机高级语言编程来辅助设计和仿真平面四杆机构,主要体现在四个方面:
1 平面四杆机构连杆点的轨迹坐标 2 连杆轨迹曲线分类基准的确定 3 轨迹曲线的分类及运动领域识别 4 运动学仿真软件编制
具体来说,在本论文中,将在第三章平面四杆机构的分类里主要是进行连杆基股上任意点的轨迹计算。在第四章连杆曲线的几何特征及其分类一章里,主要是对连杆曲线的几何特征(包括曲率、弧长、回转数、结点、变曲点等)进行分析,并根据分析结果对连杆曲线进行分类,建立机构数据库。在第五章平面连杆机构的运动仿真一章中,主要是运用矢量算法对连杆的速度和加速度进行计算,并根据结果对四杆机构进行VB运动模拟。
2 平面四杆机构的类型
2.1分类概念
在平面机构的范畴,最简单的低配对机构是四连杆。 四连杆包含四个杆件及四个接合配对,如图2.1[4]

2.1. 四连杆机构



如前所言,机构中应有固定杆,此杆通常与地相连,或代表地的状态。在固定杆之相对杆称为联结杆(coupler link;与其两端相连的则称为侧连杆(side links 一个相对于第二杆可以自由回转360度之连杆,称为对第二杆(不一定固定杆旋转(revolve。而若所有四连杆能变成联机时,此称为变异点(change point。有关连杆之重要观念有:1.曲柄(Crank 相对于固定杆作旋转之侧杆称为曲柄。2.摇杆(Rocker 任何连杆不作旋转之连杆称为摇杆。3.曲柄摇杆机构(Crank-rocker mechanism 在四连杆系统中,若较短的侧杆旋转,另一侧杆摆动时,此称为曲柄摇杆机构。4.双曲柄机构(Double-crank mechanism:在四连杆系统中,若两侧连杆均作回转时,称为双曲柄机构。5.双摇杆机构(Double-rocker mechanism 在四连杆系统中,若两侧连杆均为摆动状况时,此称为双摇杆机构。
2-1 铰链四杆机构及其演化主要形式对比
固定构件
曲柄摇 杆机构

双曲柄 机构

摇块 机构
2 曲柄摇 杆机构
摆动导 杆机构

转动导 杆机构


四杆机构
含一个移动副的四杆机构(e=0 曲柄滑 块机构

4
1
3 双摇杆 机构

定块 机构

2.2 分类
在将四连杆机构作分类前,需先介绍几个基本语法。在四连杆系统中,连杆之定义为两接合间之线段,而其特性可用文字表示如下:




s = 最长杆之长度

l = 最短杆之长度

p, q = 中间长度杆之长度
葛拉索定理(Grashof's theorem 1. 在四连杆机构中若下述为真则至少有一杆为旋转杆:
s + l <= p + q (2-1
2. 若下述为真,则所有三个活动连杆必属摇杆:
s + l > p + q (2-2
2-1不等式即为葛拉索准则( Grashof's criterion.
有四连杆所可能发生的情形可参考表2.2之分类。

2-2 四连杆机构之分类
Case 1 2 3 4 5
l + s vers. p + q
< < < = >
Shortest Bar Frame Side Coupler Any Any
Type
Double-crank Rocker-crank Double rocker Change point Double-rocker
由表1可知,一个机构若含有曲柄结构,则其最长杆与最短杆之和必须小于或等于其它两杆之和。但是这仅是必要条件,而非充分条件。能够符合这项条件之连杆可能有三类:1.当最短连杆为侧杆时,此机构为曲柄摇杆机构,而最短连杆将成为曲柄。2.当最短连杆成为固定杆时,此系统变成为双摇杆机构。3.当最短连杆为联结杆时,此机构为双摇杆机构。



四连杆组类型:
葛氏机构(Grashof mechanism
对于一个四连杆运动链,令最短杆的杆长为rs,最长杆的杆长为rl,其余两杆的杆长为rprq。若杆长的关系满足下式:
rs+rl<=rp+rq 则至少有一杆能做360的旋转,此即为葛氏法则 (Grashof law。该机构称为葛氏机构(Grashof mechanism,否则称为非葛氏机构(Non-Grashof mechanism
o3 平面四杆机构运动分析
3 .1. 1 连杆上任意点的轨迹分析
如图所示,在直角坐标系XOY内,平面四杆机构ABCD的机架DA、原动件AB连杆BC及从动件CD的长度分别为a0a1a2a3,原动件、连杆及从动件的角位移分别为123

θ2
@θ1θ3 3-1
此平面四杆机构的环方程为:OAABOCCB

a0a1a3a 2

也可写成矢量方程:



a0a1ei1a3ei3a2ei2 3.1.0
改写为两坐标轴的投影方程式为:
a0a1cos1a3cos3a2cos2 3.1.1 a1sin1a3sin3a2sin2 3.1.2 由以上两式,利用sin22cos221消去2得到3与输入变量1之间的关系式Asin1Bcos1C (3.1.3 式中:
Asin3 Bcos3a0 a3222a3a2a12a0aC0cos3
2a1a3a1 为了用代数方法解式(3.1.3,设x=tan(3/2按照三角学公式可以写出
sin32x
1x21x2cos3
1x2代入式(3.1.3)后可化成如下的二次代数方程式:
(BCx22Ax(BC0 3.1.4 因而由上式x的两个解可以得出:
32tanx2tan(式中:
11yBq2xBq1 3.1.5
xBa0a1cos1 yBa1sin1
2222xByBa3a2 q12a3


22q2xByBq12
式(3.1.5)中应该取“+”号;当机构的初始位置为ABC/D时,式(3.1.5中应该取“-”号。
因此,C点的坐标就可以表示为:
xCa3cos3 3.1.6 yCa3sin3 3.1.7 所以,2就可以表示为:
2tan1(yByC 3.1.8
xBxC因此,连杆上任一点(K点)的坐标就可以表示为:
xxCa4cos(2 3.1.9 yyCa4sin(2 3.1.10
或者,OK矢量写为:Ka3ei3a4ei2 (3.1.11
3.1.2 Non-grashof机构的运动分析
Grashof机构不同, Non-grashof机构的原动件存在着摆角范围,以下对其进行分析:
C
Cba
d
c
a
b
c
B
B
3.1.1
d
A
D
A
D

adcb AB杆逆时针旋转条件 3.4 adcb AB杆顺时针旋转条件
对图3.1.1由三角形原理,AB的转动上逆时针旋转受到限制,则转角范围为
a2d2cb cos
2ab
2



原动件AB的转动范围:2
对图3.1.1由三角形原理,AB的转动上逆时针旋转受到限制,则转角范围为
a2d2cb cos 2ab2原动件AB的转动范围22
3.2速度分析
将(3.1.0)对时间取导数可得:
d1i3d3i2d2a1iea3iea2ie
(3.2.1 dtdtdti1w1d1d2w2dtdtw3d3dt
(3.2.2 则有:

a1iei1w1a2iei2w2a3iei3w3 3.2.3
i2为了消去w2 ,将(3.1.11)式每项各乘e 得到:
a1ie1i2w1a3iei32w3a2iw2 3.2.4

取(3.2.3)式实部得:w1w3a3sin32a1sin12同理,为了消去w1,将(3.1.11)式每项各乘e

a1iw1aie3i31i1 得到:
waie32i21w 2 3.2.5


取(3.2.4)式实部得:w2w3a3sin31a2sin21a4 K点的速度wk可通过将式(3.1.11)对时间取导数求得:
-wka3w3iei3a4w2iei2 3.2.6



分别取式(3.2.6)的实部和虚部可得:

wkxa3w3sin3aw4wkya3w3cos3aw422sin2
cos2 所以杆a4 K点的速度大小为:
wkwkx2wky2
3.3 加速度分析
将式(3.2.3)对时间取导数得:
dw3i3i2dw22a3iea3ew3a2iedtdt i2i1dw12a2ew2a1iea1ei1w12dti3dw1dw2令:12dtdtdw33dt 可得到:
a3iei33a3ei3w32a2iei22a2ew2a1ie1a1ew1i22i1i12--------------3.3.1
i2e为了消去2,将(3.3.1)式各项乘以,可得:
a33iei322a3w32ei12i32a22i2i121a2w2a11ie取其实部得:
a1we
1a2w2a33sin32a3w3cos32awcos12a1sin1222112
同理,为了消去1,将(3.3.1)式各项乘以ei1得:



a33iei31a3w32ei31a22ie21i21a2w2e取其实部得:
2i21a11ia1w
22aw11a33sin31
22a3w3cos31a2w2cos21a2sin21将式(3.2.6)对时间取导数可以确定K点的加速度k得;
ka33iw32eia42iw22ei 3.3.2
3
2分别取式(3.3.2)的实部和虚部可得:
kxa33sin3w32cos3a42sin2w2cos22

kya33cos3w23sin3a42w2cos22sin2
所以杆a4 K点的加速度大小为:kkx2ky2
4 平面四杆机构连杆曲线分类
平面四杆机构是连杆机构的基本形式,因此四杆机构连杆曲线的研究就具有普遍的意义。根据相邻两杆之间能否作整周转动,平面四杆机构分为grashofNon-grashof机构。Grashof机构研究已经较为成熟,以下主要就Non-grashof机构进行研究分析。

Non-grashof机构的连杆曲线的形状丰富多样,以Non-grashof机构连杆曲线的几何特征,如结点、回转数、变曲点、曲率极大点等作为分类基准,对它进行自动分类。
4.1曲率K
根据Bobilliers作图法算得曲率半径的倒数,并考虑了连杆曲线上点移动方向的量作为曲线上一点曲率
。用曲率的绝对值极大点作为曲率极大点,曲率为零的点



作为变曲点
y
Q
C
B
K
G
F
DAP4-1作图法
x

根据Bobillier’s作图法算出的曲率半径的倒数。对于原动件角位移1的增加,考虑到K的移动方向与曲率中心G的位置关系,并得到了带有正负号的曲率
作图法具体步骤如下:
1)、作直线DA,与直线CB相交于点P;作直线AB,与直线CD相交于点Q
2)、使QPQA,连接QK,作直线QFQK的夹角等于 3)、连接DF并与QK的延长线相交与点G,则点G即为所求的曲率中心,因此曲率半径KG,曲率则为1
4.2 弧长S 当原动件的原动角θ1=θ10时的从连杆曲线上的x0,y0点开始量得的曲线的弧长,由下列数值积分求得:
S1n10dxdyddd1 4.1 11224.3 回转数(m
用曲率的变化量分割弧长所得的比率作为曲线的回转数(m,用012来表示。


1m21n10ksds



(am=14.4 结点
4.4.1 二重点的计算
(bm=04-2
平面四杆机构ABCD的机构参数及角位移如图4.7所示。连杆上的任意点K
θ2
@θ1θ3

4-3 x,y可用下列式子求出:
xa0a1cos1a5cos2 4.11 ya1sin1a5sin2 4.12 或者: xa3cos1a4cos2 4.13



ya3sin1a4sin2 4.14 从式(4.114.12)和式(4.134.14)中消去1后整理得下式: xacosysincos2xasinycossin2x2y22axa0a1a62a62222
0 4.15
xcosysincos2xsinycossin24.16

x
2y2a3a52a5220 在连杆曲线的二重点处,有两个角位移与之对应。所以,由上两式可得成为二重点的必要条件式如下: xa0cosysinxcosysin 整理后得到下式: xa0sinycosxsinycos0 x2y2axacoty0 4.17 连杆曲线的二重点是由式 (4.17和曲线的交点共同决定的。在连杆曲线的二重点处,原动件的角位移1和连杆的角位移2还必须满足下列关系式(4.18和(4.19
R1cos1S1sin2T1 4.18 式中:
R1a0sin2a1cos1
sina0cos2a1sin1
sin21S1aT1a5a52aaa501cos1cotsin1
R2cos2S2sin2T2 4.19 式中:


R2a0a1cos1 S2a1sin1
T2a20a1a2a32a22222aa01a2cos1
对于平面四杆机构来说,满足式(4.18)和(4.19)是二重点位置关系的必要条件。
4.4.2 结点的计算
grashof 机构的连杆曲线由两条闭曲线构成,因此,二重点是两条曲线的交点(单纯交点),还是一条曲线自身的交点(结点),需要进行判断,而Non-grashof机构的连杆曲线是一条闭曲线,因此,二重点全部是结点。原动件的角位移的函数式用下式来考虑:
R1cos2S1sin2T1 4.20

式中:R1a0sin2a1cos1
sinS1a0cos2a1sin1 4.21
sina12a52a0a1cos1cotsin1 T1a5a5F=0的情况下,角位移1的值即为二重点的位置。11变化到133变化到3在变化时F值的符号变化的次数F0F0或者F0F0变化的次数为结点的个数。因此,F01的值为结点的位置。
根据式(4.20,四杆机构的连杆的角位移可表示如下:
R2cos2S2sin2T2 4.22 式中:R2a0a1cos1
S2a1sin1 4.23
a02a12a22a32a0a1T2cos1
2a2a2


满足式(4.20)和(4.22)是四杆机构二重点位置的必要条件。 由式(4.20)和(4.22ocs2sin2可以分别表示为:
TST2S1 4.24 cos212R1S2R2S1RTR2T1sin212

R1S2R2S14.25
将式(4.24)和(4.25)同时消去2可以得到下式:
T1S2T2S12R1T2R2T12R1S2R2S12 再将式(4.21)和(4.23)代入上式,整理得:
h1cos31h2cos21sin1h3cos21h4cos1sin1hsin 5cos1h61h70式中:
h1p1p3q1q4r1r4r2r3 h2p1p4q2q4r1r5r2r4
h3p1p5p2p3q1q5q3q4r1r6r2r7r3r4s12s22
h4p1p6p2p4q2q5r1r7r2r6r3r52s1s2 h5p1p7p2p5q1q6q3q5r1r8r2r5r3r62s1s3 h6p2p6q2q6r2r8r3r72s2s3
h7p2p7q3q6r2r7r3r8s22s32
p12a0a1
p2a02a12
a2a12p30a1cot2
52pa2a24201cot
a52
4.26
4.27

aap52a1a5201
a2522a0a1p62a1a5cota252
2a2a2a12a52p701cot2
a52a25q14a0a1
q24a0a1cot
q3a02sin24a12
q4a02a12a22
q5a0a1a2222aaa3201
a222a02a12a22a32 q64a22sinr1a0a12cos
sincosr2a0a12sin
sina02sinr32a12cos
sin2a02a12r4
a2a5a2a2r5201cot
a2a5a0a1r6a023a12a22a322a52aa
25


a0a1r7a02a12a22a32aacot
25r8a0a1a2a32222a12a52
a2a5coss1a0a12sin
sinsins2a0a12cos
sina02coss32a12sin
sin 在式(4.27)中,令ttan1,该方程就变成六次方程式,将该方程的实根,代2入式(4.24)和(4.25)中就可以求得在二重点位置时连杆上的角位移,然后从下式就可以确定二重点的坐标。
xa0a1cos1a5cos2 4.28 ya1sin1a5sin2 4.29 因为一个二重点处的1值有两个,条件式(4.27)具有246个实根,二重点分别有123个存在,这个条件式可用数学的方法求得实际的实根值。 4.4.3 结点的识别
式(4.17)的实根为偶数时,给定同一个二重点的两个值1i,1i'i1,23此对应的12的值分别为2i,2i'四杆机构的连杆和从动件转向是否相反,用它们之间的夹角的正弦符号来考察,即相对于二重点的机构的两个位置。
sin2i1isin2i'1i'0 4.30
当上式成立时,这时二重点是一个闭合曲线自身的交点(即结点)
sin2i1isin2i'1i'0 4.31
则当上式成立时,相对于二重点机构有不同的两个位置。这时二重点是两个闭合曲线的交点(单纯交点)




4.5 变曲点、曲率极大点与极小点
4.5.1 变曲点
连杆曲线上曲率为零的点为变曲点,变曲点由曲率曲线fStan1S1轴的交点来决定,在实际计算中,使1的值在其变化范围内变化,求出曲率的符号变化区间,根据区间缩小法来确定变曲点的位置。
tank-1ki-1ki-2kikj-1ki+1
0kj
0

4.5 曲率曲线与变曲点
4.5.2 曲率极大点与极小点
连杆曲线上曲率的绝对值最大的点为曲率极大点,绝对值最小的点为曲率极小点。
原动件角位移11l1u按设定的步长变化时,1ii1n对应的连杆上的K点的曲率用Bobillier’s定理求出,曲率曲线与1轴相交的位置,形成的微小区间1i1,1i,用下面函数式(4.32)来判别其符号:
h11i1i 4.32
h110时的区间内的变区点是存在的。
曲率曲线就极值位置是在微小区间1i2,12利用下式来判别符号: h21ii1i1i2 4.33
h210时区间内存在曲率极大点或曲率极小点。
h210时的区间内把曲率极大点或曲率极小点用式(4.34)来进行符号判别:
h31i1ii1 4.34 h310时是曲率极大点,当h310时为曲率极小点。




4.6 机构数据库的建立
利用随机函数发生法,使随机数uii13在区间0,1内取值,用下式4.35在区间0,2.5确定连杆机构的杆长ann03 1.6ui0.2 0ui0.5
an i13 4.35
8ui3 0.5ui1
表示连杆上任意点的位置的参数a4在以10a0a1a2a34为边的正方形内确定,机构参数a4,a用下式(4.36)和(4.37)决定。
a422 4.36
atan12 4.37 通过上述方法建立连杆机构数据库。
4.7 连杆曲线的分类结果
对数据库中的10万个Non-grashof机构的连杆曲线,用本文提出的分类基准进行了识别,图4.9举例说明了曲线分类代号的意义,顺序依次为:表示Non-grashof机构的编号、结点数、曲线的回转数、变曲点数、曲率极大点数,其下面的值表示该曲线中出现
机构类型(双摇杆机构)
结点数N30.37%出现率回转数变曲点数曲率极大点数052
4.6 连杆曲线的分类代号
的百分率,曲线出现的百分率是根据该种曲线在10万个连杆曲线中出现的概率计算的,分类结果如表4.1所示,分类后的部分Non-grashof机构的连杆曲线如图4.10所示。




出现率 N0120 N0130 N1022 N1032 N1042 N1052 N1062 N1072 N0132 N0142 N0152 N0162 N2132 N2142 N2152 N2162 N2172 N3042 1.28 0.52 5.01 10.97 14.50 5.63 3.27 0.05 18.93 9.32 1.93 0.08 0.53 0.72 1.86 0.67 0.14 2.24 类型代号 出现率 类型代号 出现率
N1054 N1064 N1074 N1044 N1054 N1064 N0174 N2154 N2162 N2174 N2184 N3054 N3064 N1066 N1076 N1086 N1096 N0166 0.74 1.62 0.89 0.71 5.50 2.63 5.50 0.17 0.70 0.35 0.06 0.26 0.51 0.42 0.73 2.25 0.13 0.17 N2166 N2176 N2186 N2196 N3266 N3276 N3286 N3296 N3076 N1088 N1098 N0188 N2188 N2198 N3052 N0176 N10A8 N21A8 0.17 0.58 0.60 0.27 0.06 0.26 0.38 0.49 0.04 0.16 0.09 0.16 0.10 0.11 0.37 0.16 0.05 0.07 4.1 Non-grashof机构的连杆曲线的分类结果
通过对双摇杆机构的连杆曲线的自动分类问题的研究,可以得到以下结论: 1Non-grashof机构的连杆曲线可分为56种类型。
2、连杆曲线中N1022是基本曲线,随着基本曲线变化阶段的增加,曲线的出现率降低。
3Non-grashof机构的连杆曲线的形态丰富,结点的个数最多为3个,回转数最多为2 4、分类结果图:



91.876

a0=100 a1=91.885a2=84.285 a3=88.515a4=172.098 α=-43.94889.791-50.877N30540.26%N10660.42%N10760.75%N10862.25%N10960.13%N30760.04%N30640.51%N10880.18%N10980.09%N10A80.05%
N10440.27%N10540.74%N10641.62%N10740.89%
a1=91.876a0=100 a1=91.876a2=85.575 a3=89.791a4=152.326 α=-50.87775 a3=89.791326 α=-50.877
a0=100 a1=91.885a2=84.285 a3=88.515a4=172.098 α=-43.9481.28%N0120N01300.52%N01521.93%N01620.08%N013218.93%N01429.32%N01642.63%N01745.50%εd=14.02N01440.71%N01545.50%N01760.16%N01860.07%εd=6.89N01660.17%N10880.16%εd=11.74



5 平面连杆机构的运动仿真
在连杆机构中,当原动件以同样的运动规律运动时,如果改变各构件的相对长度关系,便可使从动件得到不同的运动规律。在连杆机构中,连杆上的各不同点的轨迹是各不同形状的曲线,而且随着各构件的相对长度关系的改变,这些连杆曲线的形状也将改变,从而可以得到各种不同形状的曲线,我们可以利用这些曲线来满足不同轨迹的要求。
从研究方法来说,优化方法和计算机辅助设计方法的应用已成为研究连杆机构的重要方法,并已相应地编制出大量的适用范围广、计算机时少、使用方便的通用软件。随着计算技术的提高和现代数学工具的日益完善,很多用一般常规方法不易解决甚至无法解决的复杂的平面连杆机构设计问题可能会逐步得到解决。因而平面连杆机构的应用一定会更为广泛。以下主要介绍仿真软件的编程及应用。
5.1程序运行界面及仿真程序

5-1 Form1运行界面
说明:
控件类型
Label 控件名称
Label1 属性名称 Caption Caption Caption 属性值
平面四杆机构运动仿真与分析
仿真与分析&a 使用说明&e CommandButton CommandButton1 CommandButton CommandButton2


CommandButton CommandButton3 Private Sub Command1_Click( Form1.Hide Form2.Show End Sub Private Sub Command2_Click( Form1.Hide Form3.Show End Sub Private Sub Command3_Click( End Caption 退出(Esc


5-2 Form2运行界面
说明:
控件类型 OptionButton OptionButton OptionButton OptionButton SSTab Label CommandButton 控件名称 OptionButton1 OptionButton2 OptionButton3 OptionButton4 SSTab1 LabNAME Command1 功能 原动件顺时针转动 原动件逆时针转动 铰接点BCD顺时针排列 铰接点BCD逆时针排列
运动分析结果选项卡 显示平面连杆机构的分类结果
开始



CommandButton CommandButton CommandButton Command2 Command4 Command5 说明 返回上一个界面
退出
备注:文本框控件及标签数量较多,不一一列举。 主要程序:
Const PI = 3.1415926535 Const DTR = PI / 180 '定义单位弧度 VB三角函数均以弧度计算 Dim a0 As Single: Dim a1 As Single '杆长定义 Dim a2 As Single: Dim a3 As Single Dim a4 As Single: Dim a5 As Single Dim V1 As Single: Dim V2 As Single 'V1 V2V3 为各杆角度,VV为定位K点的夹角,属输入值,单位 :
Dim V3 As Single: Dim VV As Single Dim XA As Single: Dim YA As Single 'XA A点横坐标,YAA点纵坐标,依次类推 Dim XB As Single: Dim YB As Single Dim XC As Single: Dim YC As Single Dim XD As Single: Dim YD As Single Dim XK As Single: Dim YK As Single Dim MM As Single: Dim NN As Single 'Non-grashof 机构 的向外和向里的摆动范围余弦 Dim VV1 As Single: Dim VV2 As Single '为连杆的转动(摆动范围角
Dim XXK(1000 As Single: Dim YYK(1000 As Single Dim V1_STEP As Single '原动件转动的转角步长 Dim ZX As Integer '转向
Dim BCD As Integer 'BCD排列方式
Dim K_Num As Integer Dim BiLi As Integer '比例
Dim SJ As Single: Dim SJF As Single: Dim ARC As Integer '迭代法计算弧长的参数 Dim ADAC, ADAS, ADA1, ADR1, ADS1, ADT1, ADA2, FC1, GA, PHT, XBT, YBT, THT, XCT, YCT, PST, AT, BT, CTFC2, GCI, FCMM, GCMM As Single Dim XO, YP, XQ, YQ, XF, YF, QLA4, QLA3, QLA2, QL3, QL2, QL1, QLR, QLQ2, QLQ1, SZ, QLKM, PPP As Single Dim ND As Integer


Dim QLK(5000 As Single: Dim C2(5000 As Single Dim HZM, HZM1, HZM11, HZM12, HZMF As Single '回转数 Dim dX_dV1, dY_dV1 As Single '微分表示形式 Dim FG0, H1, QLK1, QLK2, QLK3, HKT, KKD, KKS As Single

Private Sub Form_Load( '加载,初始化
V1_STEP = 1 Picture1.ScaleTop = 4000 Picture1.ScaleLeft = -3200 Picture1.ScaleHeight = -6735 Picture1.ScaleWidth = 8775 Picture2.ScaleTop = 4000 Picture2.ScaleLeft = -4387.5 Picture2.ScaleHeight = -6735 Picture2.ScaleWidth = 8775 Picture3.ScaleTop = 1500 Picture3.ScaleLeft = -300 Picture3.ScaleHeight = -3000 Picture3.ScaleWidth = 4150 Option1.Value = True Option4.Value = True End Sub
Private Sub Command1_Click( '开始按纽
SJ = 0: ND = 0: HZM = 0: HKT = 0: KKD = 0: KKS = 0: K_Num = 0: List.Clear '各特征参数初始化为0 '进入仿真后 由于输入尺寸各不同的关系,图形可能会与各标签相重叠,故隐藏杆标签 Laba0.Visible = False Laba1.Visible = False Laba2.Visible = False


Laba3.Visible = False Laba4.Visible = False Laba5.Visible = False LabA.Visible = False LabB.Visible = False LabC.Visible = False LabD.Visible = False LabK.Visible = False a0 = Val(InputBox("请输入a0杆长", "输入参数", 0 a1 = Val(InputBox("请输入a1杆长", "输入参数", 0 a2 = Val(InputBox("请输入a2杆长", "输入参数", 0 a3 = Val(InputBox("请输入a3杆长", "输入参数", 0 a4 = Val(InputBox("请输入a4杆长", "输入参数", 0 VV = Val(InputBox("请输入连杆夹角", "输入参数", 0 Label1.Caption = "a0=" & Format(a0, "######.###" & " " & "a1=" & Format(a1, "######.###" & " " & "a2=" & Format(a2, "######.###" & " " & "a3=" & Format(a3, "######.###" & " " & "a4=" & Format(a4, "######.###" & " " & "VV=" & Format(VV, "######.###" Picture1.Cls Picture2.Cls Picture3.Cls msg = MsgBox("请检查输入参数是否正确!", 3 + 48 + 0, "数据检查" If msg = vbYes Then MsgBox "请点确定继续" End If If msg = vbNo Then msg = MsgBox("转入重输程序", 0, "注意只有一次重输可能" a0 = Val(InputBox("请输入a0杆长", "输入数值参数", 0 a1 = Val(InputBox("请输入a1杆长", "输入数值参数", 0 a2 = Val(InputBox("请输入a2杆长", "输入数值参数", 0 a3 = Val(InputBox("请输入a3杆长", "输入数值参数", 0 a4 = Val(InputBox("请输入a4杆长", "输入数值参数", 0


VV = Val(InputBox("请输入夹角", "输入参数", 0 End If Label1.Caption = "a0=" & Format(a0, "######.###" & " " & "a1=" & Format(a1, "######.###" & " " & "a2=" & Format(a2, "######.###" & " " & "a3=" & Format(a3, "######.###" & " " & "a4=" & Format(a4, "######.###" & " " & "VV=" & Format(VV, "######.###" BiLi = Val(Form2.TextBiLi.Text '判断最长杆和最短杆
If a0 < a1 Then min1 = a0: max1 = a1 Else min1 = a1: max1 = a0 If a2 < a3 Then min2 = a2: max2 = a3 Else min2 = a3: max2 = a2 If min1 < min2 Then mina = min1 Else mina = min2 If max1 > max2 Then maxa = max1 Else maxa = max2 '判断机构是否存在和类型
suma = a0 + a1 + a2 + a3 If a0 + a1 + a2 <= a3 Or a0 + a1 + a3 <= a2 Or a0 + a2 + a3 <= a1 Or a1 + a2 + a3 <= a0 Then LabNAME.Caption = "机构不存在,无法进行运动仿真及特征识别!" Laba0.Visible = True Laba1.Visible = True Laba2.Visible = True Laba3.Visible = True Laba4.Visible = True Laba5.Visible = True LabA.Visible = True LabB.Visible = True LabC.Visible = True LabD.Visible = True LabK.Visible = True Form2.Option1.Value = False Form2.Option2.Value = False Form2.Option3.Value = False
Form2.Option4.Value = False
ElseIf mina + maxa < suma / 2 And (a1 = mina Or a3 = mina Then



LabNAME.Caption = "Grashof曲柄摇杆机构": G_N = 1: VV1 = 0: VV2 = 360 ElseIf mina + maxa < suma / 2 And a0 = mina Then LabNAME.Caption = "Grashof双曲柄机构": G_N = 1: VV1 = 0: VV2 = 360 ElseIf mina + maxa < suma / 2 And a2 = mina Then LabNAME.Caption = "Grashof双摇杆机构": G_N = 1: VV1 = 0: VV2 = 360 ElseIf mina + maxa > suma / 2 And 2 * maxa < suma And (maxa = a1 Or maxa = a3 Then LabNAME.Caption = "Non-Grashof内外摇杆机构": G_N = 2 ElseIf mina + maxa > suma / 2 And 2 * maxa < suma And maxa = a2 Then LabNAME.Caption = "Non-Grashof双外摇杆机构": G_N = 2 ElseIf mina + maxa > suma / 2 And 2 * maxa < suma And maxa = a0 Then LabNAME.Caption = "Non-Grashof双内摇杆机构": G_N = 2 ElseIf mina + maxa = suma / 2 And a1 = a3 And a0 = a2 Then LabNAME.Caption = "平行四边形机构": G_N = 1: VV1 = 0: VV2 = 360 ElseIf mina + maxa = suma / 2 And a1 = mina And (a1 + a0 = a2 + a3 Or a1 + a2 = a0 + a3 Or a1 + a3 = a0 + a2 Then LabNAME.Caption = "特殊曲柄摇杆机构": G_N = 1: VV1 = 0: VV2 = 360 ElseIf mina + maxa = suma / 2 And a0 = mina And (a0 + a1 = a2 + a3 Or a0 + a2 = a1 + a3 Or a0 + a3 = a1 + a2 Then LabNAME.Caption = "特殊双曲柄机构": G_N = 1: VV1 = 0: VV2 = 360 End If If Option1.Value = True Then ZX = -1 '转向系数 If Option2.Value = True Then ZX = 1 '转向系数 If Option3.Value = True Then BCD = -1 'BCD排列系数 If Option4.Value = True Then BCD = 1 'BCD排列系数

Select Case G_N 'G_N : grashof 机构判断参数,1是;2不是
Case 1 TextF_W.Text = "0°----------- 360°" If Option1.Value = True Then ZX = -1 '转向系数 If Option2.Value = True Then ZX = 1 '转向系数
For V1 = 0 To 360 Step V1_STEP




SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" '输出连杆曲线坐标 Next V1 Case 2 MM = ((a2 - a3 ^ 2 - a0 ^ 2 - a1 ^ 2 / (2 * a0 * a1
NN = ((a2 + a3 ^ 2 - a0 ^ 2 - a1 ^ 2 / (2 * a0 * a1 If (1 - MM ^ 2 > 0 Then VV1 = Int((Atn((-MM / Sqr(1 - MM ^ 2 / PI * 180 + 0.5 + 90 If (1 - NN ^ 2 > 0 Then VV2 = Int((Atn((-NN / Sqr(1 - NN ^ 2 / PI * 180 + 0.5 + 90 Frame2.Enabled = True Option1.Enabled = True Option2.Enabled = True Option3.Enabled = True Option4.Enabled = True


If MM > -1 And NN < 1 Then TextF_W.Text = Format$(VV1 & "°----------- " & Format$(VV2 & "°" For V1 = VV2 To VV1 Step V1_STEP '初始加载时已设定 V1_STEP
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls '可以在"运动仿真"选项卡中显示运动轨迹 ; 接下语句为在"特征"选项卡中列表框显示随原动件转动时(整数度K点轨迹坐
If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00"
Next V1
For V1 = VV1 To VV2 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" '输出连杆曲线坐

Next V1



For V1 = 360 - VV1 To 360 - VV2 Step V1_STEP
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" '输出连杆曲线坐

Next V1 For V1 = 360 - VV2 To 360 - VV1 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" '输出连杆曲线坐

Next V1 ElseIf MM <= -1 And NN < 1 Then
If MM = -1 Then TextF_W.Text = Format$(VV2 & "°----------- " & Format$(360 - VV2 & "°"
For V1 = VV2 To 180 Step V1_STEP
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" '输出连杆曲线坐

Next V1 For V1 = 180 To 360 - VV2 Step V1_STEP
BCD = -1: SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00"
Next V1 For V1 = 360 - VV2 To 180 Step -V1_STEP
BCD = 1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00"
Next V1




For V1 = 180 To VV2 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" Next V1
Else TextF_W.Text = Format$(VV2 & "°----------- " & Format$(360 - VV2 & "°" For V1 = VV2 To 360 - VV2 Step V1_STEP
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" Next V1 For V1 = 360 - VV2 To VV2 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" Next V1
End If ElseIf MM > -1 And NN >= 1 Then
If NN > 1 Then TextF_W.Text = Format$(VV1 & "°----------- " & Format$(-VV1 & "°" For V1 = -VV1 To VV1 Step V1_STEP
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00"
Next V1
For V1 = VV1 To -VV1 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00"
Next V1




Else TextF_W.Text = Format$(VV1 & "°----------- " & Format$(360 - VV1 & "°" For V1 = 360 - VV1 To 360 Step V1_STEP
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00"
Next V1
For V1 = 0 To VV1 Step V1_STEP
BCD = -1: SZ = 1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00"
Next V1
For V1 = VV1 To 0 Step -V1_STEP
BCD = 1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" '输出连杆曲线坐

Next V1 For V1 = 360 To 360 - VV1 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls If V1 = Int(V1 Then Form2.List.AddItem "θ1=" & Format$(V1 & "°" & " : " & "XK=" & Format$(XK, "###.00" & " : " & "YK=" & Format$(YK, "###.00" '输出连杆曲线坐
Next V1 End If End If End Select For i = 0 To 1000 Picture1.PSet (XXK(i * 10, YYK(i * 10, vbBlue Next i



Form2.TextH_C.Text = Format$(SJ, "####.00" Form2.TextJ_D.Text = Format$(Int(ND / 2 & "" Form2.TextH_Z.Text = Format$(Abs(Int(HZM & "" Form2.TextB_Q.Text = Format$(HKT & "" Form2.TextD_D.Text = Format$(KKD & "" Form2.TextX_D.Text = Format$(KKS & "" End Sub Private Sub Command4_Click( '说明按纽 Form4.Show End Sub Private Sub Command2_Click( '返回按纽 Form1.Show Form2.Hide End Sub Private Sub Command5_Click( '退出按纽 End End Sub Private Sub Picture2_Click( Picture2.Cls End Sub Private Sub fangzhen( '求各铰接点坐标
XB = a0 + a1 * Cos(V1 * DTR: YB = a1 * Sin(V1 * DTR XD = 0: YD = 0 XA = a0: YA = 0 q1 = (XB ^ 2 + YB ^ 2 - a2 ^ 2 + a3 ^ 2 / (2 * a3 q2 = XB ^ 2 + YB ^ 2 - q1 ^ 2 If q2 > 0 And (XB + q1 0 Then V3 = 2 * Atn((YB + BCD * Sqr(q2 / (XB + q1 If V3 < 0 Then V3 = V3 + 2 * PI XC = a3 * Cos(V3: YC = a3 * Sin(V3 V2 = Atn((YB - YC / (XB - XC


If (XB - XC < 0 Then V2 = V2 + PI If V2 < 0 Then V2 = V2 + 2 * PI XK = XC + a4 * Cos(V2 + VV: YK = YC + a4 * Sin(V2 + VV XXK(K_Num = XK: YYK(K_Num = YK: K_Num = K_Num + 1 Picture2.PSet (XK * BiLi, YK * BiLi, vbGreen 'K点轨迹”选项卡中图片框显示K点轨迹,有缩放
Call Draw_GroundLine '画机架线 Call Draw_LinkLine '画连杆线

PPP = PPP + 1: If PPP < 2 Then Exit Sub
Call HuChang '计算弧长 Call JieDian '计算结点 Call Qulv '计算曲率
Call HuiZhuanShu '计算回转数
Call QiTa '计算变曲点、曲率极大点、曲率极小点及曲率曲线 End Sub
Private Sub Draw_LinkLine( '画连杆线 Form2.Line0.X1 = XD * 10 + 50 Form2.Line0.Y1 = YD * 10 Form2.Line0.X2 = XA * 10 - 50 Form2.Line0.Y2 = YA * 10 Form2.Line0.BorderWidth = 2 Form2.Line1.X1 = XA * 10 Form2.Line1.Y1 = YA * 10 + 50 Form2.Line1.X2 = XB * 10 Form2.Line1.Y2 = YB * 10 - 50 Form2.Line1.BorderWidth = 2 Form2.Line2.X1 = XB * 10 - 50 Form2.Line2.Y1 = YB * 10


Form2.Line2.X2 = XC * 10 + 50 Form2.Line2.Y2 = YC * 10 Form2.Line2.BorderWidth = 2 Form2.Line3.X1 = XC * 10 Form2.Line3.Y1 = YC * 10 - 50 Form2.Line3.X2 = XD * 10 Form2.Line3.Y2 = YD * 10 + 50 Form2.Line3.BorderWidth = 2 Form2.Line4.X1 = XC * 10 Form2.Line4.Y1 = YC * 10 Form2.Line4.X2 = XK * 10 Form2.Line4.Y2 = YK * 10 Form2.Line4.BorderWidth = 2 Form2.Line5.X1 = XK * 10 Form2.Line5.Y1 = YK * 10 Form2.Line5.X2 = XB * 10 Form2.Line5.Y2 = YB * 10 Form2.Line5.BorderWidth = 2 ShapeA.Left = XA * 10 - 50: ShapeA.Top = YA * 10 + 50 '以图形圆代替点以实现点线连接,可无视点阵误差
ShapeB.Left = XB * 10 - 50: ShapeB.Top = YB * 10 + 50 ShapeC.Left = XC * 10 - 50: ShapeC.Top = YC * 10 + 50 End Sub
Private Sub Draw_GroundLine( '随输入杆长不同,机架线位置也应随之变化 Form2.Line6.X1 = a0 * 5 - 200 Form2.Line6.Y1 = 0 Form2.Line6.X2 = a0 * 5 - 400 Form2.Line6.Y2 = -200 Form2.Line6.BorderWidth = 2 Form2.Line7.X1 = a0 * 5


Form2.Line7.Y1 = 0 Form2.Line7.X2 = a0 * 5 - 200 Form2.Line7.Y2 = -200 Form2.Line7.BorderWidth = 2 Form2.Line8.X1 = a0 * 5 + 200 Form2.Line8.Y1 = 0 Form2.Line8.X2 = a0 * 5 Form2.Line8.Y2 = -200 Form2.Line8.BorderWidth = 2 End Sub
Private Sub HuChang( '弧长的计算
dV1 = a2 * (a0 * Sin(V2 + a1 * Sin(V2 - V1 * DTR dV2 = a1 * (a0 * Sin(V1 * DTR + a2 * Sin(V2 - V1 * DTR dV2_dV1 = dV2 / dV1 dX_dV1 = -a1 * Sin(V1 * DTR + (a2 * Sin(V2 - a4 * Sin(V2 + VV * dV2_dV1 dY_dV1 = a1 * Cos(V1 * DTR - (a2 * Cos(V2 - a4 * Cos(V2 + VV * dV2_dV1 dS1 = dS2 dS2 = Sqr(dX_dV1 ^ 2 + dY_dV1 ^ 2 If ARC = 0 Then ARC = 1 Else SJF = PI * (dS1 + dS2 / 360 SJ = SJ + SJF End If End Sub
Private Sub Qulv( '曲率的计算 XB = XB: YB = YB XC = XC: YC = YC XK = XK: YK = YK


XA = a0 YP = 0: XP = XC - YC * (XC - XB / (YC - YB If YB * XC = 0 Then Exit Sub XQ = XA / (1 - (XB - XA * YC / (YB * XC: YQ = XQ * YC / XC QLA4 = Atn(Abs((XA - XQ / (YQ If (XA - XQ >= 0 Then If YQ > 0 Then QLA4 = QLA4 If (XA - XQ >= 0 Then If YQ < 0 Then QLA4 = PI - QLA4 If (XA - XQ < 0 Then If YQ < 0 Then QLA4 = PI + QLA4 If (XA - XQ < 0 Then If YQ > 0 Then QLA4 = 2 * PI - QLA4 QLA3 = Atn(Abs((XP - XQ / (YQ - YP If (XP - XQ >= 0 Then If (YQ - YP > 0 Then QLA3 = QLA3 If (XP - XQ >= 0 Then If (YQ - YP < 0 Then QLA3 = PI - QLA3 If (XP - XQ < 0 Then If (YQ - YP < 0 Then QLA3 = PI + QLA3 If (XP - XQ < 0 Then If (YQ - YP > 0 Then QLA3 = 2 * PI - QLA3 If YQ - YK = 0 Then Exit Sub QLA2 = Atn(Abs((XK - XQ / (YQ - YK If (XK - XQ >= 0 Then If (YQ - YK > 0 Then QLA2 = QLA2 If (XK - XQ >= 0 Then If (YQ - YK < 0 Then QLA2 = PI - QLA2 If (XK - XQ < 0 Then If (YQ - YK < 0 Then QLA2 = PI + QLA2 If (XK - XQ < 0 Then If (YQ - YK > 0 Then QLA2 = 2 * PI - QLA2 QL1 = (XC - XK / (YC - YK QL2 = Tan(QLA2 + QLA3 - QLA4 YF = (XC - XQ - QL2 * YQ - QL1 * YC / (-QL2 - QL1 XF = XQ + QL2 * (YQ - YF QL3 = (XQ - XK / (YQ - YK XG = (XQ - YQ * QL3 / (1 - YF * QL3 / XF YG = XG * YF / XF QLR = Sqr((XK - XG * (XK - XG + (YK - YG * (YK - YG '曲率半径
QLQ1 = Atn(Abs((YK - YG / (XK - XG If (YK - YG >= 0 Then If (XK - XG > 0 Then QLQ1 = QLQ1 If (YK - YG >= 0 Then If (XK - XG < 0 Then QLQ1 = PI - QLQ1



If (YK - YG < 0 Then If (XK - XG < 0 Then QLQ1 = PI + QLQ1 If (YK - YG < 0 Then If (XK - XG > 0 Then QLQ1 = 2 * PI - QLQ1 QLQ2 = Atn(Abs(dY_dV1 / dX_dV1 If dY_dV1 >= 0 Then If dX_dV1 > 0 Then QLQ2 = QLQ2 If dY_dV1 >= 0 Then If dX_dV1 < 0 Then QLQ2 = PI - QLQ2 If dY_dV1 < 0 Then If dX_dV1 < 0 Then QLQ2 = PI + QLQ2 If dY_dV1 < 0 Then If dX_dV1 > O Then QLQ2 = 2 * PI - QLQ2 If V1 = 520 Then QLK(PPP = QLK(PPP - 1 If V1 360 And V1 180 Then If Sin(QLQ2 - QLQ1 * SZ < 0 Then QLK(PPP = -1 / QLR '曲率
Else QLK(PPP = 1 / QLR '曲率 End If Else QLK(PPP = QLK(PPP - 1 End If If PPP = 1 Then Exit Sub If QLK(PPP = 0 Then QLK(PPP = QLK(PPP - 1 If QLK(PPP - 1 * QLK(PPP > 0 Then Exit Sub QLKM = QLKM + 1 End Sub
Private Sub HuiZhuanShu( '回转数的计算 HZM = 0 HZM11 = HZM12 HZM12 = (Sqr(dY_dV1 ^ 2 + dX_dV1 ^ 2 * QLK(PPP If Abs(HZM12 >= 50 Then HZM12 = 50 * HZM12 / Abs(HZM12 Else
If HZMF 0 Then



HZM1 = (HZM12 + HZM11 * DTR / (4 * PI HZM = HZM + HZM1 HZMF = 1
Else HZMF = 1 End If End If End Sub
Private Sub JieDian( '结点的计算
a5 = Sqr(a2 ^ 2 + a4 ^ 2 - 2 * a2 * a4 * Cos(VV ADAC = (a5 ^ 2 + a2 ^ 2 - a4 ^ 2 / (2 * a5 * a2 ADAS = Sqr(1 - ADAC ^ 2 ADA1 = Atn(ADAS / ADAC: If ADAC < 0 Then ADA1 = PI - ADA1
ADR1 = (a0 * Sin(VV / Sin(VV + ADA1 + 2 * a1 * Cos(V1 * DTR + ADA1 ADS1 = (a0 * Cos(VV / Sin(VV + ADA1 + 2 * a1 * Sin(V1 * DTR + ADA1 ADT1 = (-(a1 ^ 2 + a5 ^ 2 - a0 * a1 * (Cos(V1 * DTR + Sin(V1 * DTR / Tan(VV + ADA1 / a5
ADA2 = Atn(Abs(YK - YB / (XK - XB If (YK - YB >= 0 Then If (XK - XB > 0 Then ADA2 = ADA2 If (YK - YB >= 0 Then If (XK - XB < 0 Then ADA2 = PI - ADA2 If (YK - YB < 0 Then If (XK - XB < 0 Then ADA2 = PI + ADA2 If (YK - YB < 0 Then If (XK - XB > 0 Then ADA2 = 2 * PI - ADA2 ADA2 = ADA2 + ADA1 FC1 = ADR1 * Cos(ADA2 + ADS1 * Sin(ADA2 - ADT1 GA = Atn(YK / (XK - XA: If (XK - XA < 0 Then GA = GA + PI PHT = 2 * GA - V1 * DTR
XBT = a0 + a1 * Cos(PHT: YBT = a1 * Sin(PHT
THT = Atn((YK - YBT / (XK - XBT + ADA1: If (XK - XBT < 0 Then THT = THT + PI



XCT = XBT + a2 * Cos(THT: YCT = YBT + a2 * Sin(THT PST = Atn(YCT / XCT: If XCT < 0 Then PST = PST + PI AT = XK * Cos(VV + YK * Sin(VV BT = -XK * Sin(VV + YK * Cos(VV CT = -(XK ^ 2 + YK ^ 2 - a3 ^ 2 + a4 ^ 2 / (2 * a4 FC2 = AT * Cos(THT + BT * Sin(THT - CT GCI = Sin(V2 - PI - ADA1 - V1 * DTR

If V1 = VV1 Or V1 = VV2 Then FCMM = FC2: GCMM = GCI: Exit Sub If FC2 * FCMM > 0 Then FCMM = FC2: GCMM = GCI: Exit Sub If GCI * GCMM < 0 Then FCMM = FC2: GCMM = GCI: Exit Sub ND = ND + 1 '结点数 FCMM = FC2: GCMM = GCI End Sub Private Sub QiTa( '变曲点、曲率极大点、曲率极小点及曲率曲线 FG0 = Sin(QLQ2 - QLQ1 * SZ H1 = QLK1 * QLK(PPP If H1 <= 0 Then HKT = HKT + 1 '存在变曲点 If (QLK3 - QLK2 * (QLK2 - QLK1 < 0 Then If QLK3 * (QLK1 - QLK2 < 0 Then KKD = KKD + 1 '存在极大点
Else KKS = KKS + 1 '存在极小点 End If End If QLK3 = QLK2: QLK2 = QLK1: QLK1 = QLK(PPP C2(PPP = -20 * Atn(QLK(PPP * SJ / (2 * PI Picture3.PSet (V1 * 10, C2(PPP * 40, vbRed End Sub Private Sub Picture3_Click( Picture3.Cls


End Sub

5-3 Form3运行界面
Private Sub Command1_Click( 窗体3中的Command1 Form3.Hide End Sub
5.2部分仿真结果





1 组机构仿真





2组机构仿真





3组机构仿真
注意:不选择单选框时,程序默认值为上图所示。






4组机构仿真







5组机构仿真




本文来源:https://www.2haoxitong.net/k/doc/bf3faec9d1f34693dbef3e31.html

《平面四杆机构的运动分析.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式