1
摘要:本文詳細介紹了采用牛頓迭代數(shù)學方法及VBA語言在Excel電子表格中快速計算扇形/瓦形導(dǎo)體尺寸及不等芯成纜工藝參數(shù)。
關(guān)鍵詞:Excel 牛頓迭代 VBA語言
1
電纜制造工藝設(shè)計和計算是一項很繁瑣的工作,特別是有許多工藝設(shè)計和計算(如:扇形/
2
在設(shè)計本程序時考慮到它的實用性和使用的簡單性,采用Visual Basic For Applications (VBA)
3
3.1
3.1.1 扇形線芯參數(shù)計算模型
式中:S
緊壓扇形導(dǎo)體其它尺寸,可根據(jù)圓弧半徑R
扇高:
扇寬:
線芯周長:
3.1.2
式中:R
;g1
線芯高度:
線芯寬度:
線芯周長:
3.1.3 不等芯電纜成纜外徑
對不等截面圓形2+1、3+1、3+2、4+1芯電纜的成纜外徑計算,首先假設(shè)
式中:
(1)不等截面圓形2+1芯電纜
(2)不等截面圓形3+1芯電纜
(3)不等截面圓形3+2芯電纜
(4
3.2
從以上數(shù)學模型可以看出,以上方程都是一元高次方程,直接求解比較困難,利用VBA語言,通過“牛頓迭代法”計算。迭代公式為:
利用“牛頓迭代法”解方程得思路為先給未知數(shù)設(shè)定一個值,解關(guān)于該未知數(shù)的函數(shù)并得出函數(shù)最后的值,再將該值代入未知數(shù)繼續(xù)重復(fù)計算,直到兩次函數(shù)值的差的絕對值小于0.00001
3.2
3.3
(1
計算各參數(shù)
函數(shù)宏
π值
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
計算各參數(shù)
函數(shù)宏
π值
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
計算各參數(shù)
函數(shù)宏
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語言進行編程,可以解決繁雜的工藝設(shè)計和計算,結(jié)果準確。另外該程序可以在Excel電子表格中運行。一方面操作簡單易學,另一方面可以進行大批量的數(shù)據(jù)處理,而且將來數(shù)據(jù)如需改動,一旦改動一已知數(shù)據(jù),結(jié)果立即隨之而變。故通過VBA語言與Excel電子表格相結(jié)合,可以將電纜工藝設(shè)計和計算實現(xiàn)電算化、標準化。
參考文獻:
[1 ] 周世華 , 電力電纜緊壓扇形導(dǎo)體電纜結(jié)構(gòu)設(shè)計 ,成纜信息,1991
[2 ] 趙長令 , 塑力纜瓦形線芯結(jié)構(gòu)和壓輥設(shè)計數(shù)學模型 ,電纜電纜 , 2002
[3 ] 韓中洗 , 電纜工藝原理,上海電纜研究所信息中心
[4 ] 劉子玉 , 電力電纜結(jié)構(gòu)設(shè)計原理,西安交大出版社,1995
2
3
樓主套用別人的資料