⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 这是一个简单基于VB程序电力系统计算的源代码
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   WindowState     =   2  'Maximized
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Declare Sub GetFNb Lib "FDLL" (ByRef FNumber As Integer)
Private Declare Sub SetNInfo Lib "FDLL" (ByVal nNode As Integer, ByVal nMaxNode As Integer, ByVal nBranch As Integer, ByVal nGen As Integer, _
                                    ByVal SB As Double)
Private Declare Sub SetBranch Lib "FDLL" (ByVal nIndex As Integer, ByVal btype As Integer, ByVal head As Integer, ByVal tail As Integer, _
                                                        ByVal r As Double, ByVal x As Double, ByVal k As Double, _
                                                        ByVal r0 As Double, ByVal x0 As Double, ByVal b0 As Double)
Private Declare Sub SetPhase Lib "FDLL" (ByVal nIndex As Integer, ByVal nNode As Integer, _
                                    ByVal Phase As Integer, ByVal AgeVB As Double)
Private Declare Sub SetGen Lib "FDLL" (ByVal nIndex As Integer, ByVal state As Integer, ByVal nNode As Integer, _
                                    ByVal x2 As Double, ByVal xd2 As Double)

Private Declare Function SetFInfo Lib "FDLL" ( _
                                   ByVal nIndex As Integer, ByVal FType As Integer, ByVal Fhead As Integer, _
                                   ByVal Ftail As Integer, ByVal Fr As Double, ByVal Fx As Double, ByVal Floc As Double, _
                                   ByVal FInfo As Integer) As Boolean
Private Declare Sub FDecomp Lib "FDLL" (ByRef nBranch As Integer, ByRef FCom As Integer)
Private Declare Sub NodeOp Lib "FDLL" (ByRef NewNode As Integer)
Private Declare Sub OldToNew Lib "FDLL" (ByRef FNode As Integer)
Private Declare Sub ConMtrx Lib "FDLL" ()
Private Declare Sub ConMtrx0 Lib "FDLL" ()
Private Declare Sub BgnValCpt Lib "FDLL" ()
Private Declare Sub CretBMtrx Lib "FDLL" ()
Private Declare Sub DoNetEqt Lib "FDLL" ()
Private Declare Function FCrnt120 Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function PFCrt120 Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function FCrtABC Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function NodeV120 Lib "FDLL" (ByVal nIndex As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
                                    
Private Declare Function PNodeV120 Lib "FDLL" (ByVal nIndex As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function NodeVABC Lib "FDLL" (ByVal nIndex As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function BHCrnt120 Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function PBHCrnt120 Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function BHCrntABC Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function BTCrnt120 Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function PBTCrnt120 Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function BTCrntABC Lib "FDLL" (ByVal nIndex As Integer, ByRef head As Integer, ByRef tail As Integer, _
                                    ByRef ReC1 As Double, ByRef ImC1 As Double, ByRef ReC2 As Double, ByRef ImC2 As Double, ByRef ReC0 As Double, _
                                    ByRef ImC0 As Double) As Boolean
Private Declare Function GetnBranch Lib "FDLL" () As Integer
Private Declare Function GetnNode Lib "FDLL" () As Integer


                                                        
Private Sub Form_Click()
 Dim bl As Boolean
 Dim nNode As Integer, nBranch As Integer
 Dim nGen As Integer, nMaxNode As Integer
 Dim nIndex As Integer
 Dim state As Integer, btype As Integer
 Dim head As Integer, tail As Integer
 'Dim wP As Double, wQ As Double
 Dim ReV1 As Double, ReC1 As Double
 Dim ImV1 As Double, ImC1 As Double
 Dim ReV2 As Double, ReC2 As Double
 Dim ImV2 As Double, ImC2 As Double
 Dim ReV0 As Double, ReC0 As Double
 Dim ImV0 As Double, ImC0 As Double
 Dim Floc As Double
 Dim FInfo As Integer
 Dim nPhase As Integer, AvgeVB As Double
 Dim r As Double, x As Double, SB As Double
 Dim k As Double, b0 As Double
 Dim r0 As Double, x0 As Double
 Dim x2 As Double, xd2 As Double
 Dim Node As Integer
 Dim FNumber As Integer
 Dim NewNode(1 To 500) As Integer
 Dim FNode(1 To 20, 1 To 2) As Integer
 Dim FCom(1 To 20, 1 To 2) As Integer
 
 
 
 Dim nFBranch(1 To 10) As Integer
 Open App.Path & "\Branch.txt" For Input As #1
     Input #1, nNode, nMaxNode, nBranch, nGen, SB
     Call SetNInfo(nNode, nMaxNode, nBranch, nGen, SB)
 Do While Not EOF(1)
     Input #1, nIndex, btype, head, tail, r, x, k, r0, x0, b0
     Call SetBranch(nIndex, btype, head, tail, r, x, k, r0, x0, b0)
Loop
    Close #1
 Open App.Path & "\Phase.txt" For Input As #1
 Do While Not EOF(1)
     Input #1, nIndex, Node, nPhase, AvgeVB
     Call SetPhase(nIndex, Node, nPhase, AvgeVB)
Loop
    Close #1

 Open App.Path & "\Gen.txt" For Input As #1
 Do While Not EOF(1)
     Input #1, nIndex, state, Node, x2, xd2
     Call SetGen(nIndex, state, Node, x2, xd2)
Loop
    Close #1
 Open App.Path & "\FInfo.txt" For Input As #1
 Do While Not EOF(1)
     Input #1, nIndex, btype, head, tail, r, x, Floc, FInfo
     bl = SetFInfo(nIndex, btype, head, tail, r, x, Floc, FInfo)
Loop
    Close #1
Call FDecomp(nFBranch(1), FCom(1, 1))
Call NodeOp(NewNode(1))
Call OldToNew(FNode(1, 1))
Call ConMtrx
Call ConMtrx0
Call BgnValCpt
Call CretBMtrx
Call DoNetEqt
Call GetFNb(FNumber)
Open App.Path & "\FCrnt120.txt" For Output As #1
For nIndex = 1 To FNumber
    bl = FCrnt120(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
Open App.Path & "\PFCrnt120.txt" For Output As #1
For nIndex = 1 To FNumber
    bl = PFCrt120(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
Open App.Path & "\FCrntABC.txt" For Output As #1
For nIndex = 1 To FNumber
    bl = FCrtABC(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
nNode = GetnNode()
Open App.Path & "\NodeV120.txt" For Output As #1
For nIndex = 1 To nNode
    bl = NodeV120(nIndex, ReV1, ImV1, ReV2, ImV2, ReV0, ImV0)
    If bl Then
        Write #1, nIndex, ReV1, ImV1, ReV2, ImV2, ReV0, ImV0
    End If
Next nIndex
Close #1
Open App.Path & "\PNodeV120.txt" For Output As #1
For nIndex = 1 To nNode
    bl = PNodeV120(nIndex, ReV1, ImV1, ReV2, ImV2, ReV0, ImV0)
    If bl Then
        Write #1, nIndex, ReV1, ImV1, ReV2, ImV2, ReV0, ImV0
    End If
Next nIndex
Close #1
Open App.Path & "\NodeVABC.txt" For Output As #1
For nIndex = 1 To nNode
    bl = NodeVABC(nIndex, ReV1, ImV1, ReV2, ImV2, ReV0, ImV0)
    If bl Then
        Write #1, nIndex, ReV1, ImV1, ReV2, ImV2, ReV0, ImV0
    End If
Next nIndex
Close #1
nBranch = GetnBranch()
Open App.Path & "\BHCrnt120.txt" For Output As #1
For nIndex = 1 To nBranch
    bl = BHCrnt120(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
Open App.Path & "\PBHCrnt120.txt" For Output As #1
For nIndex = 1 To nBranch
    bl = PBHCrnt120(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
Open App.Path & "\BHCrntABC.txt" For Output As #1
For nIndex = 1 To nBranch
    bl = BHCrntABC(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
Open App.Path & "\BTCrnt120.txt" For Output As #1
For nIndex = 1 To nBranch
    bl = BTCrnt120(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
Open App.Path & "\PBTCrnt120.txt" For Output As #1
For nIndex = 1 To nBranch
    bl = PBTCrnt120(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1
Open App.Path & "\BTCrntABC.txt" For Output As #1
For nIndex = 1 To nBranch
    bl = BTCrntABC(nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0)
    If bl Then
        Write #1, nIndex, head, tail, ReC1, ImC1, ReC2, ImC2, ReC0, ImC0
    End If
Next nIndex
Close #1

MsgBox FNumber, vbInformation
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -