国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Excel VBA技術(shù)在船舶交流電力短路計算中的應(yīng)用

2016-01-13 09:05:23陶冶,楊文蓮,吳俊峰
大連海洋大學(xué)學(xué)報 2015年1期

Excel VBA技術(shù)在船舶交流電力短路計算中的應(yīng)用

陶冶1,楊文蓮1,吳俊峰1,楊松1,包琳2,王化群1,

(1.大連海洋大學(xué) 信息工程學(xué)院,遼寧 大連 116023; 2.大連海洋大學(xué) 教學(xué)質(zhì)量監(jiān)控與保障處,遼寧 大連 116023)

摘要:針對船舶交流電力短路計算中電機(jī)、配電板類型多,短路點計算公式復(fù)雜、數(shù)據(jù)量大,打印輸出要求高的問題,提出利用Excel VBA技術(shù)編寫短路計算模塊加以解決,主要包括等效設(shè)備參數(shù)、阻抗、短路電流和功率因數(shù)的計算等。結(jié)果表明:用本方法可將計算程序與顯示輸出進(jìn)行分離,使用Excel的Range對象訪問工作表單元格;數(shù)據(jù)計算由VBA程序單獨(dú)進(jìn)行處理,可自動生成短路計算各類表格,允許用戶對輸出結(jié)果進(jìn)行后期交互式處理,并滿足國家船舶交流電力短路計算標(biāo)準(zhǔn)規(guī)范要求。實例驗證表明,該方法可有效地提高船舶配電電器短路計算的效率。

關(guān)鍵詞:船舶交流電力;短路計算;Excel VBA;Range對象

DOI:10.3969/J.ISSN.2095-1388.2015.01.020

文章編號:2095-1388(2015)01-0107-06

中圖分類號:U662.6;TP273

文獻(xiàn)標(biāo)志碼:A

收稿日期:2014-05-06

基金項目:國家自然科學(xué)基金資助項目(61272522);大連海洋大學(xué)博士啟動基金資助項目(HDBS201402);遼寧省優(yōu)秀青年骨干教師資助計劃項目(2006)

作者簡介:陶冶(1974—), 男, 博士, 副教授。E-mail:taoye@dlou.edu.cn

Abstract:A module using Excel VBA technology for short circuit calculation is established to deal with problems including many types of motor and distribution board, the complexity of short-circuit point formula calculation, large amount of data, and the print output problem. The module is mainly composed of equivalent equipment parameter calculation, impedance calculation, short circuit current and power factor, etc. This method separates the calculation program from the output data display,and uses Excel Range Object to refer specifically to worksheet-cells. VBA program independently processes the data computing, and various kinds of worksheets for short circuit calculation are generated automatically, which allows the user to deal with the output results interactively. It also meets the electric short circuit calculation standard specification requirements of the ship. An example showed that the proposed method effectively improved the efficiency of electrical short circuit calculation for ship power distribution.

Visual Basic for Applications(VBA)是一種使用Visual Basic的宏語言,主要用于擴(kuò)展Windows的應(yīng)用程序功能。近年來,隨著微軟Office辦公軟件的廣泛應(yīng)用,利用VBA宏語言來實現(xiàn)Excel自動化技術(shù)已得到了人們的重視[1-2]。考慮到國內(nèi)Excel系統(tǒng)應(yīng)用具有極其龐大的客戶群,而大部分用戶均為業(yè)余程序員,他們僅需要解決面臨的專業(yè)問題,而不一定去開發(fā)單純的應(yīng)用軟件,因此,選擇VBA非常適合,因它兼具了易用性和高效性。

在船舶營運(yùn)中,電氣短路是常見的故障,過大的短路電流破壞了整個電力系統(tǒng)的穩(wěn)定性,甚至?xí)斐纱半姎庠O(shè)備過載損壞,引起火災(zāi)等嚴(yán)重后果,對船舶的安全具有重要影響,這也是船舶電氣系統(tǒng)設(shè)計的依據(jù)。船舶電力系統(tǒng)多為混合式供電,通常包括主配電板、電力分配電板、應(yīng)急配電板和照明配電板,電力系統(tǒng)可能涉及上述幾種不同的組合類型。此外,電力系統(tǒng)中的發(fā)電機(jī)組及變壓器類型豐富,短路點和開關(guān)數(shù)量多,進(jìn)一步增加了計算的復(fù)雜性。目前,根據(jù)中國《鋼質(zhì)海船入級規(guī)范》中的規(guī)定,相關(guān)部門制定了《中華人民共和國船舶交流電力系統(tǒng)的短路計算國家標(biāo)準(zhǔn)》(GB3321-82)[3],并將其計算結(jié)果作為船舶配電電器短路接通、分?jǐn)嗄芰Γ约靶r瀰R流排穩(wěn)定性的依據(jù)。

在實踐中,短路計算數(shù)學(xué)模型十分復(fù)雜,計算公式較多,主要包括發(fā)電機(jī)參數(shù)、電力變壓器參數(shù)、線路阻抗、變壓器阻抗、發(fā)電機(jī)饋送的短路電流、等效發(fā)電機(jī)參數(shù)的計算,以及流經(jīng)自動開關(guān)的短路電流和短路功率因數(shù)的計算等,計算量大,出錯率高,大多依靠計算機(jī)輔助計算(CAD)。在軟件系統(tǒng)設(shè)計方面,早期的船舶交流電力系統(tǒng)程序多采用基于DOS操作系統(tǒng)下的高級語言進(jìn)行設(shè)計,如BASIC語言[4]、QBASIC語言或FORTRAN語言[5];近幾年,基于Windows操作系統(tǒng)的代表性研究主要有王煥文等[6]利用Visual Basic語言以及趙巖等[7]使用VC++語言設(shè)計出的計算軟件。利用純高級程序語言設(shè)計對開發(fā)人員要求較高,各種輸入、輸出界面均需要由程序設(shè)計人員單獨(dú)設(shè)計,對普通用戶而言,需要進(jìn)一步熟悉和掌握。此外,由于各種待打印表格完全由程序控制輸出,用戶無法進(jìn)行后期交互修改,很難進(jìn)行后期處理,進(jìn)一步限制了其應(yīng)用效果。為此,本研究中提出利用VBA完成核心計算,由Excel負(fù)責(zé)界面輸出并實現(xiàn)用戶交互性,一次性解決了短路數(shù)據(jù)計算、表格排版和打印輸出等問題,提高了計算效率和后期編輯的靈活性。

1設(shè)計原理

《中華人民共和國船舶交流電力系統(tǒng)的短路計算國家標(biāo)準(zhǔn)》(GB3321-82)作為中國現(xiàn)行的船舶交流電力系統(tǒng)短路計算和短路功率因數(shù)計算的國家標(biāo)準(zhǔn),主要參照了國際電工委員會(IEC)第363號出版物《特別與船用設(shè)備中自動開關(guān)的額定短路容量有關(guān)的短路計算》,計算方法與該出版物中規(guī)定的方法是等效的,即利用發(fā)電機(jī)和電動機(jī)短路過程的迭加原理進(jìn)行計算。其基本思想是將整個交流電力系統(tǒng)分成發(fā)電機(jī)至匯流排和匯流排至變壓器的雙級側(cè)兩個部分。此外,在計算中還需要考慮發(fā)電機(jī)、電動機(jī)組饋送的短路電流,其中電動機(jī)組饋送的短路電流采用了等效電動機(jī)方法進(jìn)行計算,而等效電動機(jī)功率等于運(yùn)行中所有電動機(jī)功率之和,短路電流主要包括對稱和最大非對稱短路電流兩類。各部分短路電流計算主要公式如下[3]:

(1) 發(fā)電機(jī)饋送的短路電流

Iacg=1.1/Iacog,

(1)

(2)

(2) 電動機(jī)饋送的短路電流

(3)

或IacM=4INM,

(4)

或IpM=8INM;

(3) 鄰近主匯流排處短路時的短路電流

Iac=∑Iacg+IacM,

(5)

Ip=∑Ipg+IpM;

(6)

(4) 主匯流排外饋電線處短路時的短路電流

Iac=∑Iacg,

(7)

(8)

(9)

(10)

(5) 短路功率因數(shù)計算

(11)

(12)

上述公式各項含義可參見中華人民共和國國家標(biāo)準(zhǔn)GB3321-82中的相關(guān)定義和說明。

2設(shè)計目標(biāo)及組成模型

本研究中提出的軟件系統(tǒng)總體設(shè)計目標(biāo)為:對于由不同容量、任意多臺發(fā)電機(jī)組構(gòu)成的三相交流電力系統(tǒng),利用VBA程序計算鄰近主匯流排處和主匯流排外饋電線處發(fā)生短路時的短路電流和功率因數(shù),并自動生成所有Excel計算工作表,允許用戶進(jìn)行交互輸入、格式化、輸出等后期處理。該短路計算系統(tǒng)的組成模塊如圖1所示。

圖1 短路計算系統(tǒng)的組成模塊 Fig.1 Modules of a short circuit calculation system

從圖1可見,基于Excel VBA的短路計算系統(tǒng)主要包括4個組成模塊:數(shù)據(jù)輸入、Excel、VBA主程序和系統(tǒng)圖模塊。數(shù)據(jù)輸入模塊主要由用戶完成發(fā)電機(jī)、變壓器參數(shù)、線路和變壓器阻抗初始數(shù)據(jù)的錄入,其中,線路和變壓器阻抗計算需要由Excel負(fù)責(zé)處理;Excel模塊主要對前述兩個對象進(jìn)行公式計算,并參與等效電動機(jī)參數(shù)計算;VBA主程序模塊是本系統(tǒng)的核心,它負(fù)責(zé)等效發(fā)電機(jī)參數(shù)、等效電動機(jī)參數(shù)、A~D點發(fā)電機(jī)饋送的短路電流及功率因素的計算;系統(tǒng)圖模塊用于輸出電力系統(tǒng)示意圖。圖1中根據(jù)模塊的不同功能使用了兩種線的箭頭??刂屏魇褂锰摼€箭頭,表示該模塊并不進(jìn)行計算,只是對相應(yīng)的目標(biāo)模塊進(jìn)行控制。例如,Excel文件處理、Excel打印處理控制流分別指向了計算結(jié)果和系統(tǒng)圖,它們可對系統(tǒng)輸出的數(shù)據(jù)工作表和示意圖進(jìn)行保存、格式處理和打印操作。計算流使用實線箭頭,表示該模塊要進(jìn)行數(shù)值計算,并將計算結(jié)果傳輸?shù)侥繕?biāo)模塊中。

3應(yīng)用實例

本研究中采用GB3321-82的計算示例,其電力系統(tǒng)示意圖如圖2所示。從圖2可見,該電力系統(tǒng)由3臺不同容量并聯(lián)運(yùn)行的發(fā)動機(jī)組組成,系統(tǒng)為混合供電方式,包含有電力分配電板、應(yīng)急配電板、照明配電板和變壓器T1等。選定了8個短路點,其編號為A1、A2、B1、B2、C1、C2、D1、D2。

圖2 電力系統(tǒng)示意圖 Fig.2 Schematic diagram of a power system

設(shè)計模型采用圖1所示方法,首頁在Excel中啟動,為了能夠執(zhí)行VBA程序,需要選擇啟動“宏”命令,其界面如圖3所示。

圖3 短路計算系統(tǒng)的啟動界面 Fig.3 Startup interface of a short circuit calculation system

在該界面中,用戶可以選擇分項數(shù)據(jù)輸入,點擊1、2選項將彈出數(shù)據(jù)表單窗口,主要完成發(fā)電機(jī)和變壓器參數(shù)的錄入;點擊3~6項將自動生成Excel工作表,用戶可采用交互方式和Excel自動方式完成對變壓器和等效電動機(jī)的計算;“短路電路和功率因數(shù)計算”按鈕可在VBA主程序的控制下一次計算所有短路點的短路功率因數(shù),并自動生成全部工作表。

3.1 數(shù)據(jù)表單

數(shù)據(jù)表單主要用于輸入發(fā)電機(jī)和變壓器初始參數(shù),并將用戶輸入的數(shù)值存入到相應(yīng)的Excel工作表中,其界面如圖4所示。

圖4 發(fā)電機(jī)和變壓器初始參數(shù)數(shù)據(jù)輸入表單 Fig.4 Initial parameters of generator and transformer data input form

當(dāng)用戶單擊圖4(a)發(fā)動機(jī)參數(shù)設(shè)置窗口中的“添加”按鈕時,VBA程序代碼如下:

If TextBoxID.Value = "" Then‘輸入數(shù)據(jù)正確性校驗

MsgBox "發(fā)動機(jī)型號不允許為空,請重新填入正確類型!", vbCritical, "填入數(shù)值錯誤"

Exit Sub

Else

……

p = Worksheets("發(fā)電機(jī)參數(shù)").Range("A65536").End(xlUp).Row‘設(shè)置單元格范圍

‘VBA程序控制發(fā)電機(jī)參數(shù)工作簿單元格填充

Range("c" & p + 1).Value = TextBoxpng.Value‘設(shè)置PNg單元格的值

Range("d" & p + 1).Value = TextBoxun.Value‘設(shè)置UN單元格的值

Range("e" & p + 1).Value = TextBoxing.Value‘設(shè)置INg單元格的值

Range("f" & p + 1).Value = TextBoxf.Value‘設(shè)置f單元格的值

Range("h" & p + 1).Value = TextBoxxd1.Value‘設(shè)置xd′單元格的值

Range("j" & p + 1).Value = TextBoxtd2.Value‘設(shè)置xd″單元格的值

……

上述程序代碼中的Range對象用于描述單個或多個Excel單元格構(gòu)成的區(qū)域,文本框?qū)ο骉extBoxpng到TextBoxtd2代表發(fā)電機(jī)表單中各項參數(shù)對應(yīng)的文本框。變壓器參數(shù)設(shè)置窗體程序代碼與上述程序代碼類似,只是將Worksheets名改為“變壓器參數(shù)”即可。

3.2 阻抗計算

阻抗計算主要分成兩類:線路阻抗計算和變壓器阻抗計算。其中“線路阻抗計算”工作表需要用戶先錄入數(shù)據(jù),與傳統(tǒng)的Excel應(yīng)用不同,用戶僅需要在工作表中按順序填入電纜的l1、S1、x1、r1參數(shù),而VBA負(fù)責(zé)創(chuàng)建所有工作表、格式化單元格,并控制Excel自動計算線路阻抗,其計算情況如圖5(a)所示;點擊變壓器阻抗(T)按鈕后,出現(xiàn)圖5(b)所示“變壓器阻抗計算”工作表數(shù)據(jù)錄入窗口,其計算過程與線路阻抗計算類似,VBA程序計算公式為

3.3 發(fā)電機(jī)饋送的短路電流

計算發(fā)動機(jī)饋送的短路電流需要調(diào)用發(fā)電機(jī)參數(shù)、線路阻抗計算工作表中的相關(guān)數(shù)據(jù),因此,需要使用Excel工作表集合對象Worksheets,并利用Range對象訪問兩個工作表的對應(yīng)單元格,以實現(xiàn)對上述兩項參數(shù)的引用。圖6給出了B2點短路發(fā)電機(jī)G1饋送的短路電流計算結(jié)果工作表。該工作表中的所有公式均由VBA負(fù)責(zé)計算,其主要VBA程序代碼如下:

With ActiveSheet‘當(dāng)前活動輸出工作表

.Range("D3") = Worksheets("發(fā)電機(jī)參數(shù)").Range("D" & i).Value / Sqr(3)‘計算VN

圖5 線路阻撓和變壓器阻抗計算 Fig.5 Impedance and transformer calculation

圖6 B 2點短路發(fā)電機(jī)G 1饋送的短路電流計算 Fig.6 Current calculation of feedback from generator G 1 with B 2 short circuits

.Range("D4") =Worksheets("發(fā)電機(jī)參數(shù)").Range("G" &i).Value* .Range("D3") /Worksheets("發(fā)電機(jī)參數(shù)").Range("E" &i).Value‘計算xd″

.Range("D5") = .Range("D4") +Worksheets("線路阻抗的計算").Range("N" & 4 + 2 * (i- 4)).Value‘計算xg″

.Range("D6") =Worksheets("發(fā)電機(jī)參數(shù)").Range("I" &i) +Worksheets("線路阻抗的計算").Range("N" & 5 + 2 * (i- 4)).Value‘計算Rg

.Range("D7") = .Range("D3") /Sqr(.Range("D6")^2 + .Range("D5")^2)‘計算Ig

.Range("D8") =Worksheets("發(fā)電機(jī)參數(shù)").Range("H" &i) * .Range("D3") /Worksheets("發(fā)電機(jī)參數(shù)").Range("E" &i)‘計算xd′

……

.Range("D14") =Sqr(2) * .Range("D7") * 2.71828^(-20 / (2 * .Range("D13")))‘計算Idcg

.Range("D15") =Sqr(2) * .Range("D11") + .Range("D14")‘計算Ipg

3.4 流經(jīng)自動開關(guān)短路電流的計算

流經(jīng)自動開關(guān)短路電流的計算需要訪問“等效電動機(jī)參數(shù)”工作表,與“3.3”節(jié)類似,可使用集合對象Worksheets(“等效發(fā)電機(jī)參數(shù)計算”)引用該工作表,并利用Range對象應(yīng)用單元格數(shù)據(jù)。圖7給出B2點短路流經(jīng)2CB1的短路電路及短路功率因數(shù)計算結(jié)果。

圖7 B2點短路流經(jīng)2CB1的短路電流及短路功率因數(shù)計算 Fig.7 Calculation of current and short circuit power factor through 2CB1 at B 2 short circuits

其主要VBA程序代碼如下:

WithActiveSheet

Forj=pTo4Step-1

Sum1 =Sum1 +GolbalEngineNum(j- 3) *Worksheets("B2" & "點短路發(fā)電機(jī)" &str1 & "饋送的短路電流").Range("D12")

Sum2 =Sum2 +GolbalEngineNum(j- 3) *Worksheets("B2" & "點短路發(fā)電機(jī)" &str1 & "饋送的短路電流").Range("D15")‘工作表標(biāo)簽命名

Nextj

.Range("D3") =Sum1‘計算∑Iacg

.Range("D4") =Sum2‘計算∑Ipg

.Range("D5") =Sum3‘計算IacM

.Range("D6") =Sum4‘計算IpM

……

.Range("D11") = ((Worksheets("等效電動機(jī)參數(shù)").Range("D15") * ((Worksheets("等效發(fā)電機(jī)參數(shù)計算").Range("D16"))^2 + (Worksheets("等效發(fā)電機(jī)參數(shù)計算").Range("D14"))^2) +Worksheets("等效發(fā)電機(jī)參數(shù)計算").Range("D16") * ((Worksheets("等效電動機(jī)參數(shù)").Range("D15"))^2 + (Worksheets("等效電動機(jī)參數(shù)").Range("D14"))^2))) / ((Worksheets("等效發(fā)電機(jī)參數(shù)計算").Range("D16") +Worksheets("等效電動機(jī)參數(shù)").Range("D15"))^2 + (Worksheets("等效發(fā)電機(jī)參數(shù)計算").Range("D14") +Worksheets("等效電動機(jī)參數(shù)").Range("D14"))^2)‘計算RKb

.Range("D12")=.Range("D11")/Sqr((.Range("D11"))^2+(.Range("D10"))^2)‘計算cosφK

……

EndWith

3.5 計算結(jié)果及選用配電器匯總

“短路計算結(jié)果和選用的配電電器數(shù)據(jù)匯總表”工作表可對各個短路點計算的功率因數(shù)進(jìn)行匯總并顯示給用戶,用戶可根據(jù)計算結(jié)果選用合適的配電電器。各個短路點短路功率因數(shù)即可由VBA程序統(tǒng)一進(jìn)行匯總,也可按短路點分別處理。例如,對B2短路點的對稱短路電流、最大非對稱短路電流和電路功率因數(shù)單獨(dú)匯總的VBA程序代碼如下:

Worksheets("短路計算結(jié)果和選用的配電電器數(shù)據(jù)匯總表").Range("D" &p+ 1 + 1) = .Range("D8")‘對稱短路電流

Worksheets("短路計算結(jié)果和選用的配電電器數(shù)據(jù)匯總表").Range("E" &p+ 1 + 1) = .Range("D9")‘最大非對稱短路電流

Worksheets("短路計算結(jié)果和選用的配電電器數(shù)據(jù)匯總表").Range("F" &p+ 1 + 1) = .Range("D12")‘電路功率因數(shù)

其他各個短路點原理與B2點類似,所有短路點匯總結(jié)果如圖8所示。

圖8 所有短路點計算結(jié)果匯總 Fig.8 Summary at all short circuit points

4結(jié)語

本研究中結(jié)合《中華人民共和國船舶交流電力系統(tǒng)的短路計算國家標(biāo)準(zhǔn)》(GB3321-82)中的相關(guān)規(guī)定,考慮到短路計算涉及表格眾多、計算復(fù)雜、耦合度高的缺陷,研究了ExcelVBA技術(shù)在短路計算中的應(yīng)用,其主要優(yōu)勢可將短路計算程序和用戶輸出顯示進(jìn)行分離,前者由VBA主程序負(fù)責(zé),以完成短路電流和電路功率因數(shù)的復(fù)雜計算,并自動生成所有的數(shù)據(jù)表(工作表);后者允許用戶利用Excel強(qiáng)大的單元格格式化和打印輸出功能對系統(tǒng)輸入輸出進(jìn)行后期處理。Excel本身具有易用性和廣泛性,大大提高了系統(tǒng)應(yīng)用的效率,非常適合中小船舶設(shè)計建造企業(yè)在成本受限的情況下,快速進(jìn)行電力系統(tǒng)設(shè)計的要求。另外,短路點計算結(jié)果匯總表中尚缺乏配電電器數(shù)據(jù)庫的支持,不利于用戶對可行方案進(jìn)行備選,這也是后續(xù)研究的重點。

參考文獻(xiàn):

[1]張光發(fā),劉玉君,紀(jì)卓尚.基于Excel-VBA的大型船舶縱向下水計算通用程序設(shè)計[J].大連理工大學(xué)學(xué)報,2012,52(1):47-53.

[2]劉寅東,鄧波.VBA技術(shù)在船舶結(jié)構(gòu)規(guī)范法設(shè)計軟件中的應(yīng)用[J].船舶,2007(4):61-63.

[3]中華人民共和國國家標(biāo)準(zhǔn)局.中華人民共和國國家標(biāo)準(zhǔn)——船舶交流電力系統(tǒng)的短路計算GB3321-82[M].北京:中國標(biāo)準(zhǔn)出版社, 1982:719-734.

[4]楊國清.船舶交流電力系統(tǒng)短路計算程序[J].船海工程,1985(1):32-37.

[5]楊月容.船舶交流電力系統(tǒng)短路計算程序[J].江蘇船舶,2001,18(5):27-31.

[6]王煥文,劉土光.船舶交流電力系統(tǒng)短路計算軟件開發(fā)[J].船舶工程,2004,26(4):61-63.

[7]趙巖.船舶電力系統(tǒng)短路電流計算方法研究[D].哈爾濱:哈爾濱工程大學(xué),2009.

ApplicationofExcelVBAtechnologyinshort

circuitcalculationofshippower

TAOYe1, YANG Wen-lian1, WU Jun-feng1, YANG Song1, BAO Lin2, WANG Hua-qun1

(1.CollegeofInformationEngineering,DalianOceanUniversity,Dalian116023,China; 2.DepartmentofTeachingQualityMonitoringandAssurance,DalianOceanUniversity,Dalian116023,China)

Keywords:marinealternatingcurrentpower;shortcircuitcalculation;ExcelVBA;RangeObject

交口县| 湘西| 南京市| 十堰市| 绥棱县| 凤庆县| 武陟县| 阿图什市| 湄潭县| 昌乐县| 巴马| 秦皇岛市| 耒阳市| 永善县| 抚宁县| 鸡泽县| 红桥区| 兴城市| 全南县| 磐石市| 肥乡县| 宾川县| 黔西县| 黄梅县| 吉林省| 哈巴河县| 沁阳市| 侯马市| 涪陵区| 肃南| 抚州市| 湾仔区| 武宁县| 丰顺县| 金阳县| 饶阳县| 景德镇市| 易门县| 江油市| 荆门市| 高青县|