电线电缆网 > 线缆设计|参数计算 > 用VBA在Excel中快速计算瓦形导体尺寸以及圆形不等芯电缆外径(完整版)
用VBA在Excel中快速计算瓦形导体尺寸以及圆形不等芯电缆外径 - 无图版
mxsf1984 --- 2010-07-27 09:33:15
1
用VBA在Excel中快速计算瓦形导体尺寸以及圆形不等芯电缆外径
<DIV class="bct fc05 fc11 nbw-blog ztag js-fs2">摘要:本文详细介绍了采用牛顿迭代数学方法及VBA语言在Excel电子表格中快速计算扇形/瓦形导体尺寸及不等芯成缆工艺参数。
关键词:Excel 牛顿迭代 VBA语言
1
电缆制造工艺设计和计算是一项很繁琐的工作,特别是有许多工艺设计和计算(如:扇形/
2
在设计本程序时考虑到它的实用性和使用的简单性,采用Visual Basic For Applications (VBA)
3
3.1
3.1.1 扇形线芯参数计算模型
式中:S
紧压扇形导体其它尺寸,可根据圆弧半径R
扇高:
扇宽:
线芯周长:
3.1.2
式中:R
;g1
线芯高度:
线芯宽度:
线芯周长:
3.1.3 不等芯电缆成缆外径
对不等截面圆形2+1、3+1、3+2、4+1芯电缆的成缆外径计算,首先假设
式中:
(1)不等截面圆形2+1芯电缆
(2)不等截面圆形3+1芯电缆
(3)不等截面圆形3+2芯电缆
(4
3.2
从以上数学模型可以看出,以上方程都是一元高次方程,直接求解比较困难,利用VBA语言,通过“牛顿迭代法”计算。迭代公式为:
利用“牛顿迭代法”解方程得思路为先给未知数设定一个值,解关于该未知数的函数并得出函数最后的值,再将该值代入未知数继续重复计算,直到两次函数值的差的绝对值小于0.00001
3.2
3.3
(1
计算各参数
函数宏
π值
Pi( )
计算截面
Area(g1,g2,d,yt,nu)
大圆弧半径R
扇形—R(g1.g2,d,yt,nu,r1,r2,R0
扇形高H
扇形—H(t.R, bata)
扇形宽B
扇形—B(t,R, bata)
扇形周长L
扇形—L(t,R, bata)
‘
Function pi()
pi = 3.14159265358979
End Function
'
Function rad(value)
rad = value * pi() / 180
End Function
'
Function Area(g1,g2,d,yt,nu)
area = pi() / 4 * (g1 + g2) * d ^ 2 / yt / nu
End Function
‘
Function
s = area(g1, g2, d, yt, nu)
half = Application.Radians(bata / 2)
R = (t + Sqr(t ^ 2 * (1 - half / Tan(half)) + half * s + half * (half - sta1) * (r0 + t) ^ 2)) / half
Do
sta = asin((r2+t)/(R-r2))
fx = (R^2-r1^2)*half-(R^2-r2^2)*sta+(r2^2-t^2)/tan(sta)+3.14/2*(r1^2+r2^2)_
+(t^2-r1^2)/tan(half)-s
fxn = 2*R*half-2*R*sta
Rn = R - fx / fxn
If Abs(Rn - R) <= 0.000001 Then
扇形—R = Rn
Exit Function
End If
R = Rn
Loop
End Function
‘
Function
half = Application.Radians(bata / 2)
r1=R*0.15
扇形—H=R-(r1-t)/sin(half)+r1
End Function
‘
Function
half = Application.Radians(bata / 2)
r1=R*0.15
r2=0.12*R
xt=arcsin((r2+t)/(R-r2))
扇形—B=2*(r2+(r-r2)*sin(half-xt))
End Function
‘
Function
half = Application.Radians(bata / 2)
r1=R*0.15
r2=0.12*R
xt=arcsin((r2+t)/(R-r2))
扇形—L=(half-xt)*R+r1*(3.14/2-half)+r2*(3.14/2+xt)+(R-r2)_
*sin(3.14/2-xt)/sin(half)-(r1-r2)/tan(half)
End Function
(2
计算各参数
函数宏
π值
Pi( )
计算截面
Area(g1,g2,d,yt,nu)
大圆弧半径R
瓦形—R(g1.g2,d,yt,nu,r1,r2,R0
瓦形高H
瓦形—H(t.R, bata)
瓦形宽B
瓦形—B(t,R, bata)
瓦形周长L
瓦形—L(t,R, bata)
‘
Function pi()
pi = 3.14159265358979
End Function
'
Function rad(value)
rad = value * pi() / 180
End Function
'
Function area(g1, g2, d, yt, nu)
area = pi() / 4 * (g1 + g2) * d ^ 2 / yt / nu
End Function
‘
Function
s = area(g1, g2, d, yt, nu)
half = Application.Radians(bata / 2)
sta1 = Atn((r1 + t) / Sqr((r0 + t + r1) ^ 2 - (r1 + t) ^ 2))
R = (t + Sqr(t ^ 2 * (1 - half / Tan(half)) + half * s + half * (half - sta1) * (r0 + t) ^ 2)) / half
Do
sta2 = Atn((t + r2) / Sqr((R - r2) ^ 2 - (r2 + t) ^ 2))
fx = R ^ 2 * (half - sta2) + r1 ^ 2 * (pi() / 2 - sta1) + r2 ^ 2 * (pi() / 2 + sta2)_ + (r2 ^ 2 - t ^ 2) / Tan(sta2) + (t ^ 2 - r1 ^ 2) / Tan(sta1) - (r0 + t) ^ 2 * (half - sta1) - s
fxn = 2 * R * (half - sta2) + 2 * r2 * Sqr((R + t) / (R - 2 * r2 - t))
Rn = R - fx / fxn
If Abs(Rn - R) <= 0.000001 Then
瓦形—R = Rn
Exit Function
End If
R = Rn
Loop
End Function
‘
Function
瓦形—H=R-2*t-r0
End Function
‘
Function
half = Application.Radians(bata / 2)
sta2 = Atn((r2 + t) / Sqr((R - r2) ^ 2 - (r2 + t) ^ 2))
瓦形—B= 2 * (r2 + (R - r2) * Sin(half - sta2))
End Function
‘
Function
half = Application.Radians(bata / 2)
If r1 = 0 Then
sta1 = half
Else
sta1 = Atn((r1 + t) / Sqr((r0 + r1 + t) ^ 2 - (r1 + t) ^ 2))
End If
sta2 = Atn((r2 + t) / Sqr((R - r2) ^ 2 - (r2 + t) ^ 2))
瓦形—L = 2 * (R * (half - sta2) + (r0 + t) * (half - sta1) + r1 * (pi() / 2 - sta1)_
+ r2 * (pi() / 2 + sta2) + (r2 + t) / Tan(sta2) - (r1 + t) / Tan(sta1))
End Function
(3
计算各参数
函数宏
2+1
2+1
3+1
3+1
3+2
3+2
4+1
4+1
‘2+1
Function 2+1
b = D
an = (b * (b + 1 + (b ^ 2 + 2 * b) ^ 0.5)) / (b - 1 + (b ^ 2 + 2 * b) ^ 0.5)
2+1
End Function
‘3+1
Function 3+1
b = D
a = 6
Do
fx = a ^ 3 - 2 * a ^ 2 - (a ^ 2 - a - 1) * b
fxn = 3 * a ^ 2 - 4 * a - 2 * a * b + b
an = a - fx / fxn
If Abs(an - a) <= 0.000001 Then
3+1
Exit Function
End If
a = an
Loop
End Function
‘3+2
Function 3+2
b = D
a = 6
Do
fx = 2 * b * (a ^ 2 - 2 * a) ^ 0.5 + (1 + 2 * a - a ^ 2) * (a ^ 2 - 2 * a * b) ^ 0.5 _
- (a - 1) * (a ^ 2 - a - b - a * b)
fxn = 2 * b * (a - 1) / (a ^ 2 - 2 * a) ^ 0.5 + ((2 - 2 * a) * (a ^ 2 - 2 * a * b) _
+ (1 + 2 * a - a ^ 2) * (a - b)) / (a ^ 2 - 2 * a * b) ^ 0.5 - (a ^ 2 - a _
- b - a * b) - (a - 1) * (2 * a - 1 - b)
an = a - fx / fxn
If Abs(an - a) <= 0.000001 Then
3+2
Exit Function
End If
a = an
Loop
End Function
‘4+1
Function 4+1
b = D
a = 6
Do
fx = ((3 * a ^ 2 - 6 * a - 1) ^ 2 * (a - b) ^ 2) / (a - 1) ^ 4 - 4 * a * b * (a - b - 1)
fxn = (2 / (a - 1) ^ 5) * (3 * a ^ 2 - 6 * a - 1) * (a - b) * (3 * a ^ 3 - 9 * a ^ 2 _
+ 13 * a - 8 * b + 1) - 8 * a * b + 4 * b ^ 2 + 4 * b
an = a - fx / fxn
If Abs(an - a) <= 0.000001 Then
4+1
Exit Function
End If
a = an
Loop
End Function
4
采用VBA语言进行编程,可以解决繁杂的工艺设计和计算,结果准确。另外该程序可以在Excel电子表格中运行。一方面操作简单易学,另一方面可以进行大批量的数据处理,而且将来数据如需改动,一旦改动一已知数据,结果立即随之而变。故通过VBA语言与Excel电子表格相结合,可以将电缆工艺设计和计算实现电算化、标准化。
参考文献:
[1 ] 周世华 , 电力电缆紧压扇形导体电缆结构设计 ,成缆信息,1991
[2 ] 赵长令 , 塑力缆瓦形线芯结构和压辊设计数学模型 ,电缆电缆 , 2002
[3 ] 韩中洗 , 电缆工艺原理,上海电缆研究所信息中心
[4 ] 刘子玉 , 电力电缆结构设计原理,西安交大出版社,1995
ljn9876 --- 2010-07-27 10:04:00
2
YZS --- 2010-07-28 10:56:07
3
楼主套用别人的资料