VB程序设计报告
l11ie i (1 2 ) l22ie i (2 2 ) l33ie i (3 2 )
按欧拉公式展开,取实部相等,得
3 1
同样可求得
l1 sin(1 2 ) l3 sin(3 2 ) l1 sin(1 3 ) l2 sin( 2 3 )
' 定义原动件角速度变量 ' 定义关于转向的变量 ' 定义关于 BCD 排列方向的变量
' 定义数组来储存摆角
label11 中进行机构说明 Call ddraw Call draw(0, 360) End If If lMin = l4 Then Label11.Caption = "双曲柄机构" Call ddraw Call draw(0, 360) End If If lMin = l3 Then Label11.Caption = " 曲柄摇杆机构(原动件为摇杆) " label11 中进行机构说明 s1() = bj(l1, l2, l3, l4) Call ddraw Call draw(s1(0), s1(1)) End If If lMin = l2 Then Label11.Caption = "双摇杆机构" s2 = bjd(l1, l2, l3, l4) Call ddraw Call draw(s2(0), s2(1)) End If Else Label11.Caption = "双摇杆机构" s3 = bjd(l1, l2, l3, l4) Call ddraw Call draw(s3(0), s3(1)) End If If 2 * lMax >= s Then MsgBox "无法构成四杆机构", 16, "Error" Exit Sub End If End Sub Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text6.Text = ""
消去 2 得
A sin 3 B cos 3 C 0
(3)
(4)
式中: A 2l1l3 sin 1
B 2l3 (l1 c o s 1 l4 )
2 2 C l2 l12 l32 l4 2l1l4 c o s1
解之得
tan(
3
2
) ( A A 2 B 2 C 2 ) /( B C )
l1e i1 l 2 e i2 l 4 l3 e i3
(2)
利用欧拉公式展开得:
l1 (cos 1 i sin 1 ) l2 (cos 2 i sin 2 ) l4 l3 (cos 3 i sin 3 )
将实部和虚部分离得:
l1 sin 1 l2 sin 2 l3 sin 3 l1 cos 1 l2 cos 2 l4 l3 cos 3
2.程序代码
Const pi As Double = 3.1415926 Dim l1 As Double Dim l2 As Double Dim l3 As Double Dim l4 As Double Dim w1 As Double Dim n As Integer Dim m As Integer Private Sub Command1_Click() On Error Resume Next l1 = Val(Text1.Text) l2 = Val(Text2.Text) l3 = Val(Text3.Text) l4 = Val(Text4.Text) w1 = Abs(Val(Text6.Text)) Dim s1() As Double Dim s2() As Double Dim s3() As Double。 Rem 判断是否输入全部数据 If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" _ Or Text4.Text = "" Or Text6.Text = "" Then MsgBox "请输入全部数据", 16, "Error" Exit Sub End If If Option1.Value = True Then '确定转向变量是顺时针还是逆时针 n = -1 Else n=1 End If If Option3.Value = True Then '确定 BCD 排列方向是顺时针还是逆时针 m = -1 Else m=1 End If lMax = Max(l1, l2, l3, l4) '取四杆中的最大值 lMin = Min(l1, l2, l3, l4) '取四杆中的最小值 s = l1 + l2 + l3 + l4 ' 求四杆长度和 If lMax + lMin <= 2 * s Then If lMin = l1 Then Label11.Caption = "曲柄摇杆机构(原动件为曲柄)" ' 满足杆长条件时 '最短杆为 l1 '在 ' 输入数据 '定义四杆的长度变量
基于 VB 的平面铰链四杆机构运动曲线绘制程序设计
设计任务
利用 VB 编写程序, 要求所编程序可以任一平面铰链四杆机构 (双曲柄机构、 曲柄摇杆机构、双摇杆机构) ,绘制出连杆和连架杆转角、角速度、角加速度随 原动件转角变化而变化的曲线。
已知条件
用户输入原动件杆长及角速度、连杆杆长、连架杆杆长、机架杆长作为已知 条件。
2 l12 (l 4 l3 ) 2 l 2 最小摆角: cos a0 2l1 (l 4 l3 ) 2 l12 (l 4 l3 ) 2 l 2 2l1 (l 4 l3 )
最大摆角: cos a1
在双摇杆机构中,当 l1 和 l2 共线时,l1 与水平( l4 )方向的夹角为最大和最小 摆角。如图四和图五所示。
程序编写
1.界面设计 界面中有“初始数据输入”部分, “BCD 排列方式和转动方向选择”部分, “结构示意图”区域和三个图线显示区域。用户输入全部数据后,点击“运行” , 将在界面下部三个图线显示区域中看到运动变化曲线。 界面中的一些控件说明见 下表。 。
默认控件 Textbox Textbox Textbox Textbox Textbox OptionButton OptionButton OptionButton OptionButton Label Image PictureBox PictureBox PictureBox 控件名称 Text1 Text2 Text3 Text4 Text5 Option1 Option2 Option3 Option4 Label11 Image1 Picture1 Picture2 Picture3 含义或内容 原动件 AB 的长度 连杆 BC 的长度 连架杆 CD 的长度 机架 AD 的长度 原动件的角速度 变量:n 曲柄转向选择 变量:m BCD 排列方向选择 显示机构类型 显示结构示意图 显示转角图线 显示角速度图线 显示角加速度图线
' 绘制运动变化曲线
'最短杆为 l4 ' 在 label11 中进行机构说明 ' 绘制运动变化曲线
'最短杆为 l3 '在 ' 计算确定运动始末角度 ' 绘制运动变化曲线
' 最短杆为 l3 ' 在 label11 中进行机构说明 '计算确定运动始末角度 ' 绘制运动变化曲线
' 其他情况 '在 label11 中进行机构说明 '计算确定运动始末角度 '绘制运动变化曲线
方程推导
1. 位置分析 建立如图一的坐标系。设构件 1 的长度 为 l1 ,其方位角为 1 , l1 为构件的杆矢量,
即 l1 =
→ AB
。 机构中其余构件均可表示为相应
的杆矢量,这样就构成了一个封闭矢量多边 形,即 ABCDA。据此得: (1) l1 l2 l4 l3 改写为复数形式得:
(11)
2 2 l33 l112 cos( 2 3 )
(12)
4. 最大和最小摆角分析 原动件是曲柄的四杆机构, 原动件做圆周转动, 而原动件是摇杆的四杆机构, 原动件做往复摆动运动。 所以对于双摇杆机构和原动件为摇杆的曲柄摇杆机构需 要确定其最大和最小摆角。 在原动件为摇杆的曲柄摇杆机构中,当 l4 与 l3 共线时, l1 与水平( l4 )方向 的夹角为最大和最小摆角。如图二和图三所示。
x 1 x2
) 2 arctan(1)
算法及流程图
1.算法说明 首先根据用户输入的杆长数据判断出最长感和最短杆。 如果四杆的长度满足 杆长条件(最长感和最短杆杆长之和杆长之小于等于其余两杆长度之和) ,再根 据最短杆分别是 l1 , l2 , l3 , l4 时,从而确定机构分别是原动件为曲柄的曲柄摇 杆机构,双摇杆机构,原动件为摇杆的曲柄摇杆机构,双曲柄机构。如果不满足 杆长条件,则机构是双摇杆机构。如果最长杆的长度大于其余三杆长度之和,则 输入的杆长无法构成四杆机构。 通过确定的机构类型,可以求得机构原动件在一 个周期内的摆角范围(原动件为曲柄的四杆机构,其转角从 0~360°,原动件为 摇杆的四杆机构可以通过几何关系求解) 。接着由绘图区域大小和转角,角速度, 角加速度间的关系大致确定相应坐标系的范围并绘制坐标系。 再使 1 从初始摆角 开始,每一次循环给以一个微小增量,分别求出 2 , 3 , 2 , 3 , 2 , 3 , 描点,就形成了运动曲线。 2.流程图