机械振动设计计算与VB编程实例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

6.2 用重弦法求螺旋桨轴扭转振动固有频率计算程序的编制

设计一个具有保存计算结果功能的简化界面的程序,并将计算结果另存到文本文档中,这实际上是在数值计算程序常用界面的基础上,加上过滤器来建立保存计算的功能。这是在数值计算中用得最多的一种,如图6.4所示。

图6.4 窗体界面

常用窗体界面程序的编制见第3章,并编制计算程序。

单击标准工具栏上的按钮,立即弹出本程序界面,单击钮便弹出下拉菜单,如图6.5所示。

图6.5 下拉菜单

双击下拉菜单钮便弹出:

Private Sub项目计算_Click()
End Sub

在事件过程名中编制如下源程序代码:

Private Sub 项目计算_Click()
 wrap$ = Chr$(13) + Chr$(10)
vn1$ = " 版本号:用重弦法计算螺旋桨轴扭转振动固有频率\2014-11-1"
vn2$ = " 版本特征:对重弦法与瑞利法固有频率计算的结果进行对比"
 Print
 Print vn1$
 Print vn2$
 Print
 Text1.Text = " -----用重弦法计算螺旋桨轴扭转振动固有频率计算记录----"
 string20 = string20 + "    " + Text1.Text + vbCrLf + wrap$
 Text2.Text = "   " & vn1$
 string20 = string20 + "    " + Text2.Text + wrap$
 Text3.Text = "   " & vn2$
 string20 = string20 + "    " + Text3.Text + vbCrLf + wrap$
  i1 = i1!:  i = i!: i1l = i1l!: GIp = GIp!
  α = α!: i12f = i12f!
  'f = f!: f02 = f02!: ω2 = ω2!: ω02 = ω02!:
π = 3.1415926: xπ = π / 180: x180 = 180 / π
'用瑞利法求得的螺旋桨轴的扭转振动固有频f
g = 980                                       '重力加速度cms^2
r0 = 60                                        '简化螺旋桨的钢圆盘半径cm
b = 10                                         '简化螺旋桨的钢圆盘厚度cm
ρ = 0.008                                     '钢密度kg/cm3
m0 = (ρ / g) * b * π * r0 ^ 2            '简化螺旋桨的钢圆盘的质体 m0   kg·s^2 /cm
i = (1 / 2) * m0 * r0 ^ 2                  '螺旋桨的钢圆盘的惯性i, cm·kg·s^2
L01 = 50 * 10 ^ 2                            '螺旋桨轴长度l cm
d01 = 25                                       '螺旋桨轴直径cm
r01 = d01 / 2
m01 = (ρ / g) * L01 * π * r01 ^ 2       '螺旋桨轴的质体 m01   kg·s^2 /cm
i1l = (1 / 2) * m01 * (d01 ^ 2 / 4)       '螺旋桨轴的惯性i1l, cm·kg·s^2
Gjm = 80 * 10 ^ 4                             '钢的剪切模量80 GPa=80*10^4 MPa
GIp = (Gjm / L01) * (π / 2) * r01 ^ 4    '螺旋桨轴抗扭刚度 cm·kg
ω2 = GIp / (i + i1l / 3)                   '螺旋桨轴角速度平方弧度^2/s^2
f = (1 / (2 * π)) * Sqr(ω2)             '螺旋桨轴扭转振动固有频率 周/s
Print "        用瑞利法求得的螺旋桨轴的扭转振动固有频f如下"
Print "        螺旋桨轴的长度L01="; L01 * 10 ^ -2; "m"
Print "        简化螺旋桨的惯性i="; i; "cm·kg·s^2"
Print "        桨轴的惯性i1L="; i1l; "cm·kg·s^2"
Print "        桨轴抗扭刚度GIp="; GIp; " cm·kg"
Print "        桨轴角速度平方ω2="; ω2; "弧度^2/s^2"
Print "        桨轴扭转振动固有频率f="; f; "周/s"
Print
Text1.Text = "   用瑞利法计算螺旋桨轴固有频率"
string20 = string20 + "    " + Text1.Text + vbCrLf + wrap$
Text2.Text = "   螺旋桨轴的长度L01=" & L01 * 10 ^ -2
'其结果显示于文本文档
Text3.Text = "   m "
string20 = string20 + "    " + Text2.Text + "    " + Text3.Text + wrap$
Text4.Text = "   简化螺旋桨的钢圆盘的惯性i=" & i
'其结果显示于文本文档
Text5.Text = "   cm·kg·s^2"
string20 = string20 + "    " + Text4.Text + "    " + Text5.Text + wrap$
Text6.Text = "   螺旋桨轴的惯性i1L=" & i1l               '          其结果显示于文本文档
Text7.Text = "   cm·kg·s^2"
string20 = string20 + "    " + Text6.Text + "    " + Text7.Text + wrap$
Text8.Text = "   螺旋桨轴抗扭刚度GIp=" & GIp
'其结果显示于文本文档
Text9.Text = "   cm·kg"
string20 = string20 + "    " + Text8.Text + "    " + Text9.Text + wrap$
Text10.Text = "   螺旋桨轴角速度平方ω2==" & ω2
'其结果显示于文本文档
Text11.Text = "    弧度^2/s^2"
string20 = string20 + "    " + Text10.Text + "    " + Text11.Text + wrap$
Text12.Text = "   螺旋桨轴扭转振动固有频率f=" & f
'其结果显示于文本文档
Text13.Text = "    周/s"
string20 = string20 + "    " + Text12.Text + "    " + Text13.Text + vbCrLf + wrap$
'用重弦法求得的螺旋桨轴的扭转振动固有频f
Print "        用重弦法求螺旋桨轴的扭转振动固有频率"
Print "        采用迭代法取误差iab最小的α求出固有频率"
Text1.Text = "   用重弦法计算螺旋桨轴的扭转振动固有频率"
string20 = string20 + "    " + Text1.Text + wrap$
Text2.Text = "   采用迭代法取误差iab最小的α求出固有频率"
string20 = string20 + "    " + Text2.Text + vbCrLf + wrap$
'用瑞利法取得的数据反算未计算的每单位轴长的质量的惯性矩 i1 =5.67302313 * 10 ^ -4
sα = 0.841
sω = 2770
si1 = sα ^ 2 * (GIp / (i ^ 2 * sω))
si2 = ((π * d01 ^ 4) / 64) / (((1 * π * r01 ^ 2) * ρ) * 5000)     '按题意即每单位轴长的质量的惯性矩
syz = si2 / (5.67302313 * 10 ^ -4)
si3 = i1l / 5000
i1 = si1
jj = i1l / i
'采用迭代法求固有频率:
For qq = 1 To 5
α = 0.8415856 - qq * 10 ^ -8                '弦切线角α
aa = Tan(α)
bb = jj / α
iab = Abs(aa - bb)
'α = i * Sqr(i1 * ω2 / GIp)
ω02 = α ^ 2 * (GIp / (i ^ 2 * i1))
f02 = (1 / (2 * π)) * Sqr(ω02)
i12f = Abs(f - f02) / f
Print "        α ="; α; "aa="; aa; "bb="; bb; "迭代误差iab="; iab
Print "        迭代得的频率f02="; f02; "周/s"
Text10.Text = "   迭代误差iab=" & iab
'其结果显示于文本文档
Text11.Text = "    α =" & α
string20 = string20 + "    " + Text10.Text + "    " + Text11.Text + wrap$
Text12.Text = "   螺旋桨轴扭转振动固有频率f02=" & f02
'其结果显示于文本文档
Text13.Text = "    周/s"
string20 = string20 + "    " + Text12.Text + "    " + Text13.Text + vbCrLf + wrap$
Next qq
Print
Print "        重弦法与瑞利法计算固有频率误差i12f="; i12f * 100; "%"
Text12.Text = "   重弦法与瑞利法计算固有频率误差i12f=" & i12f * 100
'其结果显示于文本文档
Text13.Text = "%"
string20 = string20 + "    " + Text12.Text + "    " + Text13.Text + vbCrLf + wrap$
CommonDialog1.Filter = "Text Files(*.TXT)|*.txt"
CommonDialog1.ShowSave
If CommonDialog1.FileName <> "" Then
Open CommonDialog1.FileName For Output As #1
Print #1, string20
Close #1
End If
End Sub
Private Sub 退出_Click()
End
End Sub