自己写的一个力学计算的类,分享下,请高手指点
'力学计算类
Public Class lixue
'***************类成员变量声明***************************
Private m_wire As wire '电线成员
Private m_weather As weather '气象成员
Private averageHeight As Integer '导线平均高度
Private Ldistance As Integer '水平档距
Private maxwind As Double '折算到平均高时的风速
Private windPa As Double '风压高度系数
Private winda As Double '风速不均系数
Private mK As Double '风载体型系数
Private flag As Integer '比载类型,1代表应力比载,2代表机械比载,3代表间隙比载
Private m_dMaxStress As Double '最大使用应力
Private m_dAverageStress As Double '年平均运行应力
Private m_dAnQuanXishu As Double '电线安全系数
Private m_iAverageBaifenbi As Integer '年平均运行应力百分比,如25%
Private ctrlwork() As String '控制工况
Private linjieL() As Double '临界档距
Private B1 As Double '覆冰风荷载增大系数
Private windbc As Double '风荷载调整系数
Private s5 As Double '导线大风垂直档距增大系数
Private s3 As Double '导线覆冰垂直档距增大系数
Private xt, xv, xb As Double '任意工况
Private wirenewk '新线系数
'***************类成员变量声明***************************
'类构造函数
Public Sub New()
End Sub
Public Sub New(ByVal awire As wire, ByVal aweather As weather, ByVal avH As Integer, ByVal LH As Integer)
m_wire = awire
m_weather = aweather
averageHeight = avH
Ldistance = LH
m_dAnQuanXishu = 2.5
m_iAverageBaifenbi = 25
flag = 1
wirenewk = 0.95
End Sub
'属性
Public Sub setwirenewk(ByVal k As Double)
wirenewk = k
End Sub
Public ReadOnly Property getxt() As Double
Get
Return xt
End Get
End Property
Public ReadOnly Property getxv() As Double
Get
Return xv
End Get
End Property
Public ReadOnly Property getxb() As Double
Get
Return xb
End Get
End Property
Public ReadOnly Property getB1() As Double
Get
Return B1
End Get
End Property
Public ReadOnly Property gets5() As Double
Get
Return s5
End Get
End Property
Public ReadOnly Property gets3() As Double
Get
Return s3
End Get
End Property
Public ReadOnly Property getwindbc() As Double
Get
Return windbc
End Get
End Property
Public ReadOnly Property ctlwork() As Array
Get
Return ctrlwork
End Get
End Property
Public ReadOnly Property linjL() As Array
Get
Return linjieL
End Get
End Property
Public ReadOnly Property maxstress() As Double
Get
Return m_dMaxStress
End Get
End Property
Public ReadOnly Property averagestress() As Double
Get
Return m_dAverageStress
End Get
End Property
Public ReadOnly Property wire() As wire
Get
Return m_wire
End Get
End Property
Public ReadOnly Property weather() As weather
Get
Return m_weather
End Get
End Property
Public ReadOnly Property averageH() As Integer
Get
Return averageHeight
End Get
End Property
Public ReadOnly Property distanceL() As Integer
Get
Return Ldistance
End Get
End Property
Public ReadOnly Property mwind() As Integer
Get
Return maxwind
End Get
End Property
Public ReadOnly Property pawind() As Integer
Get
Return windPa
End Get
End Property
Public ReadOnly Property awind() As Integer
Get
Return winda
End Get
End Property
Public ReadOnly Property k() As Integer
Get
Return mK
End Get
End Property
Public ReadOnly Property flagofbizai() As Integer
Get
Return flag
End Get
End Property
Public Sub setB1(ByVal ice As Double)
If ice = 0 Then
B1 = 1.0
ElseIf ice = 5 Then
B1 = 1.1
ElseIf ice = 10 Then
B1 = 1.2
ElseIf ice = 15 Then
B1 = 1.3
ElseIf ice = 20 Then
B1 = 1.5
ElseIf ice = 25 Then
B1 = 1.6
ElseIf ice = 30 Then
B1 = 1.7
ElseIf ice = 35 Then
B1 = 1.8
ElseIf ice = 40 Then
B1 = 1.9
Else
B1 = 2.0
End If
End Sub
Public Sub sets5(ByVal ss5 As Double)
s5 = ss5
End Sub
Public Sub sets3(ByVal ss3 As Double)
s3 = ss3
End Sub
Public Sub setanquanxishu(ByVal anquan As Double)
m_dAnQuanXishu = anquan
End Sub
Public Sub setaveragebaifenbi(ByVal averbaifenbi As Integer)
m_iAverageBaifenbi = averbaifenbi
End Sub
Public Sub CalMaxStress()
m_dMaxStress = m_wire.breakingforce / m_wire.totalarea / m_dAnQuanXishu * wirenewk '这里0.95为新线系数
End Sub
Public Sub CalAverageStress()
m_dAverageStress = m_wire.breakingforce / m_wire.totalarea * wirenewk * m_iAverageBaifenbi / 100
End Sub
Public Sub setmwire(ByVal mwire As wire)
m_wire = mwire
End Sub
Public Sub setmweather(ByVal mweather As weather)
m_weather = mweather
End Sub
Public Sub setaverageH(ByVal averageH As Integer)
averageHeight = averageH
End Sub
Public Sub setxtvb(ByVal t As Double, ByVal v As Double, ByVal b As Double)
xt = t
xv = v
xb = b
End Sub
Public Sub setLdistance(ByVal distanceL As Integer)
Ldistance = distanceL
End Sub
Public Sub CalMaxWind()
maxwind = m_weather.rv1 * (averageHeight / 10) ^ 0.16
End Sub
Public Sub CalwindHpa()
windPa = (averageHeight / 10) ^ 0.32
End Sub
'计算体型系数
Public Sub CalK(ByVal ice As Double)
If ice > 0 Then
mK = 1.2
ElseIf m_wire.outsidediameter < 17 Then
mK = 1.2
Else
mK = 1.1
End If
End Sub
Public Sub setflag(ByVal nflag As Integer)
flag = nflag
End Sub
End Class
--------------------编程问答--------------------
--------------------编程问答--------------------
电力高架线路维护?
--------------------编程问答--------------------
架空输电线路方面的力学计算
--------------------编程问答--------------------
--------------------编程问答--------------------
补充:.NET技术 , VB.NET