1 仿真技術(shù)在國內(nèi)電力系統(tǒng)的發(fā)展和應(yīng)用
80年代初,第一套大型火電機(jī)組仿真機(jī)在我國研制成功。1988年能源部發(fā)出“關(guān)于發(fā)展火電機(jī)組模擬培訓(xùn)裝置的通知”,此后電力系統(tǒng)仿真技術(shù)得到了迅猛發(fā)展,出現(xiàn)了大量的仿真公司和研究中心。1990年清華大學(xué)電機(jī)系完成了國內(nèi)第一套電網(wǎng)仿真系統(tǒng)即東北電網(wǎng)仿真系統(tǒng),1993年清華大學(xué)電機(jī)系廠站仿真室完成了國內(nèi)第一臺(tái)水電廠仿真器即吉林省豐滿水電廠仿真器。到1999年,大多數(shù)省網(wǎng)已使用了變電站仿真器、火電仿真器和電網(wǎng)調(diào)度仿真器。
[b]2 采用分布交互式仿真技術(shù)的優(yōu)越性
[/b] 分布交互式仿真(Distributed Interactive Simu-lation,DIS)是從美國SIMNET項(xiàng)目中發(fā)展起來的一種仿真技術(shù),它連接不同地理位置上的仿真應(yīng)用來創(chuàng)建一個(gè)逼真而復(fù)雜的虛擬世界,以進(jìn)行具有強(qiáng)交互作用的仿真,并允許各仿真應(yīng)用之間的互操作。DIS系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)遵循以下原則:
(1)對(duì)象/事件結(jié)構(gòu) 對(duì)象之間通過一系列的事件產(chǎn)生交互作用。
(2)仿真接點(diǎn)的自治性 所有事件通過仿真網(wǎng)絡(luò)進(jìn)行廣播式傳播,自治原則使仿真接點(diǎn)可以動(dòng)態(tài)地加入和脫離仿真運(yùn)行,而不會(huì)影響其他接點(diǎn)的交互。
?。?)傳遞真實(shí)信息 各仿真對(duì)象即時(shí)狀態(tài)的如實(shí)傳播。
(4)僅傳遞狀態(tài)變化信息 以減少不必要的數(shù)據(jù)傳輸和通信處理任務(wù)。
(5)采用預(yù)估算法和仿真時(shí)間約束 以降低網(wǎng)絡(luò)傳輸?shù)呢?fù)荷。
近幾年來,隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,仿真技術(shù)越來越廣泛地應(yīng)用于各個(gè)領(lǐng)域,使傳統(tǒng)意義上的PC能夠完成以前工作站才能完成的工作。由于PC的價(jià)格比工作站低很多,因此,如何充分利用PC的資源來完成傳統(tǒng)上由工作站完成的工作,從而達(dá)到更好的性能價(jià)格比,是仿真技術(shù)面臨的一個(gè)新問題。分布交互式仿真技術(shù)能充分利用計(jì)算機(jī)資源,從而使問題得到解決,仿真技術(shù)也從單機(jī)仿真發(fā)展到多機(jī)仿真。
變電站仿真器主要由教員臺(tái)、學(xué)員臺(tái)、計(jì)算臺(tái)和下位機(jī)組成。
基于單機(jī)的變電站仿真器以一高性能的工作站為主,運(yùn)行一種操作系統(tǒng),例如VMS或UNIX。工作站主機(jī)運(yùn)行教員臺(tái)和計(jì)算臺(tái),并負(fù)責(zé)和下位機(jī)的網(wǎng)絡(luò)通信任務(wù),因此其計(jì)算和網(wǎng)絡(luò)通信負(fù)荷很重,而學(xué)員臺(tái)運(yùn)行在工作站主機(jī)的Xterm上,因此可以認(rèn)為整個(gè)仿真器都運(yùn)行在單機(jī)上,如圖1所示。
[img=311,135]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/dwjs/2000-9/50-1.jpg[/img]
基于多機(jī)的分布交互式變電站仿真器一般是在一高性能的微機(jī)上運(yùn)行教員臺(tái),在另一微機(jī)上運(yùn)行計(jì)算臺(tái),其余的微機(jī)運(yùn)行學(xué)員臺(tái),具體的體系如圖2所示。
[img=297,192]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/dwjs/2000-9/50-2.jpg[/img]
在多機(jī)運(yùn)行模式中,教員臺(tái)和計(jì)算臺(tái)運(yùn)行在不同的微機(jī)上,計(jì)算臺(tái)負(fù)責(zé)計(jì)算每個(gè)仿真周期里的電壓、有功、無功等的變化量和保護(hù)動(dòng)作量,并把計(jì)算出的各量通過網(wǎng)絡(luò)廣播的方式發(fā)送給下位機(jī)、教員臺(tái)和學(xué)員臺(tái),而不管它們是否需要這些數(shù)據(jù)。
由圖2可以看到,整個(gè)仿真器之間的網(wǎng)絡(luò)通信是通過廣播的方式實(shí)現(xiàn)的,這種方式下的計(jì)算臺(tái)、學(xué)員臺(tái)、教員臺(tái)和下位機(jī)都向網(wǎng)絡(luò)發(fā)送數(shù)據(jù),而接受端只好被動(dòng)地接受數(shù)據(jù)并判斷其所感興趣的內(nèi)容。因此整個(gè)仿真器運(yùn)行時(shí)在網(wǎng)絡(luò)上充斥著大量冗余數(shù)據(jù),網(wǎng)絡(luò)通信是無序的,而且負(fù)荷比較重。
[b]3 基于高層體系結(jié)構(gòu)(HLA)的分布式變電站仿真器
[/b] 3.1 傳統(tǒng)DIS仿真模式的不足
?。?)基于廣播的通信方式,傳播的信息有大量的冗余
DIS的網(wǎng)絡(luò)通信采用廣播方式,這種通信機(jī)制不能保證通信數(shù)據(jù)的無誤傳輸,而廣播方式的通訊是面向整個(gè)網(wǎng)絡(luò)的,每個(gè)節(jié)點(diǎn)都向網(wǎng)絡(luò)上的其它節(jié)點(diǎn)廣播自身的狀態(tài)信息,而其它節(jié)點(diǎn)則不加區(qū)分地接收這些信息。隨著仿真應(yīng)用的擴(kuò)大,仿真節(jié)點(diǎn)的增多,必然要在網(wǎng)絡(luò)上傳遞大量的信息,然而各個(gè)仿真節(jié)點(diǎn)必須接受的信息卻不多。
(2)仿真支撐功能的不可重用
DIS中仿真應(yīng)用和仿真支撐功能(網(wǎng)絡(luò)通信)是集成在一起的,開發(fā)人員必須花費(fèi)大量的時(shí)間和精力去開發(fā)仿真支撐功能,而不同的仿真應(yīng)用的網(wǎng)絡(luò)通信功能是不可重用的,這就意味著網(wǎng)絡(luò)通信功能的重復(fù)開發(fā)。因此如何開發(fā)一個(gè)通用的仿真支撐功能,提高仿真效率,便成為迫切需要解決的問題。
(3)不能滿足仿真應(yīng)用的實(shí)時(shí)性
在采用動(dòng)態(tài)數(shù)學(xué)模型的變電站仿真器中,仿真的步長已縮短至0.02s,隨著仿真應(yīng)用范圍的擴(kuò)大(如果用戶要求同時(shí)仿真地區(qū)電網(wǎng)),則傳統(tǒng)的DIS仿真模式難以滿足仿真的實(shí)時(shí)性。
3.2 高層體系結(jié)構(gòu)
1996年8月美國國防建模與仿真辦公室制定了HLA技術(shù)框架,HLA主要由3部分組成[1-3]:
?。?)聯(lián)邦規(guī)則(RULES)
?。?)對(duì)象模型樣板(Object Model Template,OMT)
(3)運(yùn)行支撐系統(tǒng)(Run Time Infrastructure,RTI)
在HLA體系中,實(shí)現(xiàn)特定仿真目的的分布式 系統(tǒng)叫做聯(lián)邦,聯(lián)邦由仿真應(yīng)用、RTI、聯(lián)邦對(duì)象模型構(gòu)成,而RTI則起到支撐各種不同仿真應(yīng)用的作用。在HLA中對(duì)象模型是描述客觀事物的一組對(duì)象的集合,在對(duì)象模型中描述了這些對(duì)象的屬性、聯(lián)系、交互。對(duì)象模型在HLA中包括2類:聯(lián)邦對(duì)象模型(Federation Object Model,F(xiàn)OM),用于描述聯(lián)邦執(zhí)行過程中成員共享的信息;成員對(duì)象模型(Simu-lation Object Model,SOM),用于說明成員在參與聯(lián)邦時(shí)提供的能力。在HLA中規(guī)定了統(tǒng)一的表格OMT來規(guī)范對(duì)象模型的描述。OMT提供了一個(gè)可共同理解的機(jī)制來描述成員數(shù)據(jù)的交換。
聯(lián)邦規(guī)則有10條:
(1)必須有一個(gè)聯(lián)邦對(duì)象模型(FOM),用于記載運(yùn)行時(shí)成員交換數(shù)據(jù)的協(xié)議和條件;
?。?)FOM中所有對(duì)象屬于各個(gè)成員,而不在RTI中,使仿真應(yīng)用和通用的支撐服務(wù)分離;
?。?)所有數(shù)據(jù)的交換必須通過RTI,保持聯(lián)邦數(shù)據(jù)交換的一致性;
?。?)成員與RTI的交互遵循RTI接口規(guī)范,標(biāo)準(zhǔn)化的接口使得開發(fā)仿真應(yīng)用無需考慮RTI的實(shí)現(xiàn);
?。?)對(duì)象的屬性在任一時(shí)刻只能為1個(gè)成員所有,保證聯(lián)邦成員數(shù)據(jù)的一致性。HLA提供了將屬性動(dòng)態(tài)地從1個(gè)成員到另1個(gè)成員的機(jī)制;
?。?)必須有成員對(duì)象模型SOM,SOM充分描述了成員能向外提供的基本能力;
(7)必須能更新和使用內(nèi)部對(duì)象的屬性以及發(fā)送和接受對(duì)象的交互;
(8)必須能按SOM的規(guī)定遷移和接受屬性的使用權(quán);
(9)必須能改變屬性公布的條件;
?。?0)必須能管理局部時(shí)間,從而保證它能協(xié)調(diào)與聯(lián)邦中其它成員交換數(shù)據(jù)。
HLA的RTI提供了各種服務(wù)來處理聯(lián)邦運(yùn)行時(shí)成員間的互操作和管理聯(lián)邦的運(yùn)行:
?。?)聯(lián)邦管理服務(wù)(FM) 提供創(chuàng)建,刪除,加入,退出聯(lián)邦運(yùn)行等服務(wù);
?。?)聲明管理服務(wù)(DM) 成員可訂購它所需要的屬性值和公布它能提供給其它成員使用的屬性值;
?。?)對(duì)象管理服務(wù)(OM) 提供成員在聯(lián)邦運(yùn)行時(shí)創(chuàng)建和刪除對(duì)象以及屬性值的傳送;
?。?)所有權(quán)管理服務(wù)(OWM) 提供屬性所有權(quán)在成員間遷移和接受的服務(wù);
?。?)時(shí)間管理服務(wù)(TM) 用于控制聯(lián)邦仿真時(shí)間的推進(jìn);
?。?)數(shù)據(jù)管理服務(wù)(DDM) 提供對(duì)數(shù)據(jù)空間的管理,提供數(shù)據(jù)分發(fā)的服務(wù)。
相對(duì)于DIS模式,HLA模式通過引入RTI運(yùn)行支撐系統(tǒng),把仿真應(yīng)用和運(yùn)行支撐系統(tǒng)環(huán)境分離開來。比較好地解決了運(yùn)行支撐在仿真中的可重用性并有效地減少了網(wǎng)絡(luò)上大量冗余的數(shù)據(jù)量。其原理如圖3所示。
[img=256,186]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/dwjs/2000-9/51-1.jpg[/img]
在HLA中各個(gè)仿真應(yīng)用之間的交互通過HLA提供的接口來進(jìn)行。每個(gè)仿真應(yīng)用向RTI聲明其能“發(fā)布”和“訂購”的數(shù)據(jù),在仿真器運(yùn)行時(shí)由RTI運(yùn)行支撐系統(tǒng)來確定網(wǎng)絡(luò)的連接和數(shù)據(jù)的收發(fā),各個(gè)仿真應(yīng)用并不關(guān)心網(wǎng)絡(luò)數(shù)據(jù)的傳輸,而只關(guān)心其感興趣的數(shù)據(jù)。而且RTI中可以實(shí)現(xiàn)有連接和無連接的通信方式,有連接的方式是一種可靠的通信方式,在必須保證通信正確的要求下采用它,而無連接的方式相對(duì)于有連接的方式耗時(shí)要少。在HLA中可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、多播、廣播的通信方式,整個(gè)網(wǎng)絡(luò)的傳輸是有序的。
然而HLA的標(biāo)準(zhǔn)是美國軍方針對(duì)軍事領(lǐng)域的仿真應(yīng)用而提出、制定的,對(duì)于其它領(lǐng)域的仿真應(yīng)用顯得比較復(fù)雜和臃腫,因此吸收HLA標(biāo)準(zhǔn),采用其接口的標(biāo)準(zhǔn)性、仿真支撐重用性、應(yīng)用和支撐的分離性來重新設(shè)計(jì)了分布式變電站仿真器的體系結(jié)構(gòu),以期達(dá)到如下效果:
?。?)每個(gè)仿真節(jié)點(diǎn)能“發(fā)布”和“訂購”數(shù)據(jù);
?。?)每個(gè)仿真節(jié)點(diǎn)能動(dòng)態(tài)地“加入”和“退出”仿真運(yùn)行;
?。?)對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行過濾,減少通信量;
?。?)利用多線程來處理網(wǎng)絡(luò)數(shù)據(jù)的收發(fā);
?。?)采用面向?qū)ο蟮姆椒▉韺?shí)現(xiàn)提高模塊的可重用性。
3.3 基于HLA/RTI的RtiServ
RTI的運(yùn)行支撐程序RtiServ運(yùn)行在服務(wù)器(NT Server)上,并采用集中式的RTI。
在RtiServ程序中采用了一對(duì)一(單播)和一對(duì)多(多播)的傳輸方式。單播和廣播是編址方案的2個(gè)極端(一對(duì)一或全網(wǎng)),多播的目的在于提供一種折衷方案,多播數(shù)據(jù)僅由對(duì)該數(shù)據(jù)感興趣的接口接收,也就是說,由運(yùn)行希望參加多播會(huì)話應(yīng)用系統(tǒng)的主機(jī)上的接口接收。廣播一般局限于局域網(wǎng),而多播既可用于局域網(wǎng),也可跨越廣域網(wǎng)。
FedM是運(yùn)行的主線程,負(fù)責(zé)管理整個(gè)聯(lián)邦運(yùn)行,其它對(duì)象的實(shí)現(xiàn)由各個(gè)子線程來完成。FedM對(duì)象負(fù)責(zé)管理總的聯(lián)邦運(yùn)行:創(chuàng)建、控制、加入、刪除聯(lián)邦執(zhí)行。在一個(gè)成員加入到聯(lián)邦執(zhí)行前,聯(lián)邦執(zhí)行必須存在。成員加入聯(lián)邦執(zhí)行的順序是不定的,但刪除聯(lián)邦執(zhí)行必須在所有成員都退出聯(lián)邦執(zhí)行以后。聯(lián)邦執(zhí)行的創(chuàng)建和刪除的示意圖見圖4。
[img=294,194]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/dwjs/2000-9/52-1.jpg[/img]
RtiServ由不同的對(duì)象構(gòu)成RtiM,PubM,SubM,RtiR。
RtiR對(duì)象負(fù)責(zé)聯(lián)邦成員和RtiM的交互,包括屬性的更新和調(diào)度等。
PubM對(duì)象負(fù)責(zé)管理發(fā)布數(shù)據(jù)對(duì)象狀態(tài)的變化,并將這些變化傳遞給其他的對(duì)象。
SubM對(duì)象則把各個(gè)對(duì)象的定購區(qū)域和更新區(qū)域作比較,對(duì)滿足條件的對(duì)象發(fā)出定購信息。
RtiM對(duì)象由DM、OM、TM和OWM等不同對(duì)象構(gòu)成,它完成對(duì)象管理、聲明管理、所有權(quán)管理、時(shí)間管理,以保持一致性。RtiM還可聲明能發(fā)出的信息和希望接受的交互,給加入聯(lián)邦執(zhí)行的每個(gè)對(duì)象唯一的ID,對(duì)象的ID由RTI動(dòng)態(tài)地產(chǎn)生,當(dāng)對(duì)象被刪時(shí)RtiM應(yīng)該通知對(duì)該對(duì)象感興趣的各個(gè)成員,該對(duì)象已經(jīng)脫離聯(lián)邦運(yùn)行。所有權(quán)管理服務(wù)則提供了成員間屬性所有權(quán)的遷移和接受。在得到授權(quán)以后,一個(gè)成員有權(quán)力將另一個(gè)成員從聯(lián)邦運(yùn)行中刪除。TM對(duì)象負(fù)責(zé)計(jì)算時(shí)間量(Time Stamp,TS),使仿真世界中的事件發(fā)生的順序與真實(shí)世界中的事件發(fā)生的順序相一致,維護(hù)內(nèi)部的一致性和成員的相關(guān)信息。成員可以請(qǐng)求聯(lián)邦時(shí)間,當(dāng)前的(LowBound on The Time Stamp,LBTS)值和時(shí)間推進(jìn)量以滿足成員之間的交互。DM對(duì)象的主要功能是限制一個(gè)大規(guī)模范圍的數(shù)據(jù)分發(fā)和接受,減少網(wǎng)絡(luò)上的傳輸數(shù)據(jù)和成員處理的數(shù)據(jù)量。在HLA中數(shù)據(jù)分發(fā)的基本概念是路徑空間(Routing Space,RS),路徑空間是一個(gè)多維的關(guān)聯(lián)空間,成員可以用它來描述其希望接受和發(fā)送的數(shù)據(jù),它有3個(gè)要素:坐標(biāo)系統(tǒng)的維數(shù)、路徑變量(對(duì)應(yīng)于坐標(biāo)系統(tǒng)的每一維)和路徑變量在每維上的定義。成員指定一定購區(qū)域,意味著只有落入該區(qū)域的數(shù)據(jù)才被發(fā)送,而指定一更新區(qū)域并將該區(qū)域與一對(duì)象相聯(lián)系,成員將保證當(dāng)對(duì)象更新時(shí),如對(duì)象的屬性落入了更新域,則將發(fā)出更新值。聯(lián)邦成員先向RtiM對(duì)象說明其想定購或發(fā)送的數(shù)據(jù),由RtiM對(duì)象進(jìn)行匹配,選擇路由空間,并建立連接,最后發(fā)送數(shù)據(jù)。
如圖5所示,當(dāng)定購對(duì)象S1和發(fā)布對(duì)象P1重疊時(shí),與P1對(duì)象相關(guān)的屬性將由RitM對(duì)象傳遞給S1對(duì)象。對(duì)象P2的發(fā)布區(qū)域與其他定購區(qū)域不相交,因此將禁止發(fā)送對(duì)象P2的數(shù)據(jù)。通過對(duì)發(fā)
[img=213,140]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/dwjs/2000-9/52-2.jpg[/img]
布和定購區(qū)域的計(jì)算,可以確定發(fā)布方是否可以發(fā)布,以及定購方是否應(yīng)該接受,故稱區(qū)域的匹配為過濾計(jì)算。過濾信息的處理建立了數(shù)據(jù)源與一組目的地的對(duì)應(yīng)關(guān)系,數(shù)據(jù)只需1次多播即可,從而減少了網(wǎng)絡(luò)的流量。因此RtiServ實(shí)現(xiàn)了仿真應(yīng)用和仿真支撐功能的分離,并大幅度地減少了網(wǎng)絡(luò)的通信量。公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(Corba)是一基于分布式面向?qū)ο蟮挠?jì)算體系結(jié)構(gòu),可以隱藏底層通信協(xié)議和硬件的細(xì)節(jié),因此RTI的原型一般基于Corba來實(shí)現(xiàn)[4-5]。當(dāng)對(duì)象在另一機(jī)器上時(shí),客戶端和服務(wù)端必須分別通過一特殊層來管理網(wǎng)絡(luò)通信,在客戶端是存根(stub),在服務(wù)端是骨架(skeleton),對(duì)象請(qǐng)求代理(ORB)負(fù)責(zé)屏蔽網(wǎng)絡(luò)通信,而Stub類和Skeleton類則是在編譯Idl文件時(shí)生成的。Idl語言提供了一種類似于C++的語法[6],供Corba應(yīng)用的開發(fā)者描述服務(wù)對(duì)象的界面。
在具體實(shí)現(xiàn)中,采用了可視化編程工具C++Builder 4。在C++Builder 4中已經(jīng)方便地提供了可視化的Corba Server、Corba Client、Corba IDLFile、Corba Object Implementation對(duì)象和大量基于Corba的應(yīng)用例程,可以很方便地實(shí)現(xiàn)分布式計(jì)算。C++Builder 4還提供服務(wù)代理(smart agent)來實(shí)現(xiàn)動(dòng)態(tài),分布的目錄服務(wù)。在運(yùn)行時(shí),ORB通過廣播來建立和SmartAgent的聯(lián)系。一旦建立聯(lián)系,則采用基于UDP點(diǎn)對(duì)點(diǎn)的通信方式來傳遞數(shù)據(jù)。
[img=313,141]http://zszl.cepee.com/cepee_kjlw_pic/files/wx/dwjs/2000-9/53-1.jpg[/img]
3.4 分布式數(shù)據(jù)過濾機(jī)制的實(shí)現(xiàn)
在HLA下,數(shù)據(jù)過濾的實(shí)現(xiàn)是通過路徑空間(RS)來實(shí)現(xiàn)的,通過發(fā)布和定購區(qū)域的匹配計(jì)算,確定發(fā)布方是否可以發(fā)送數(shù)據(jù)和定購方是否可以接受數(shù)據(jù),并建立了數(shù)據(jù)源與一組目的地的對(duì)應(yīng)關(guān)系,在此基礎(chǔ)上通過底層網(wǎng)絡(luò)的多播功能,數(shù)據(jù)只需1次發(fā)送即可。如基于網(wǎng)格(grid-based)過濾機(jī)制把路徑空間劃分為粒度相等的網(wǎng)格,并為每個(gè)單元分配1個(gè)地址,發(fā)送者向與其公布區(qū)域相交的網(wǎng)格對(duì)應(yīng)的地址發(fā)送數(shù)據(jù)。但是這種方式的地址數(shù)量太大,網(wǎng)絡(luò)資源浪費(fèi)嚴(yán)重。因此必須尋找一種更好的過濾方法,如在RS的基礎(chǔ)上采用基于數(shù)據(jù)發(fā)送源的過濾機(jī)制(Send Based Filter,SBF)。
在分布式仿真中的數(shù)據(jù)過濾機(jī)制應(yīng)該是高效的,并不影響仿真器的實(shí)現(xiàn)效率。在各個(gè)仿真節(jié)點(diǎn)上,計(jì)算機(jī)CPU的開銷主要由3部分組成,即仿真模型計(jì)算、接受數(shù)據(jù)和過濾機(jī)制開銷。在每個(gè)仿真節(jié)點(diǎn)上由仿真主進(jìn)程派生一個(gè)過濾子進(jìn)程,該子進(jìn)程負(fù)責(zé)過濾由RtiServ發(fā)送的信息(定購信息,發(fā)布信息),定購區(qū)域信息和其它發(fā)布區(qū)域信息進(jìn)行匹配,根據(jù)匹配的結(jié)果指導(dǎo)相應(yīng)的節(jié)點(diǎn)開始或停止發(fā)送數(shù)據(jù),從而有效地減少了網(wǎng)絡(luò)數(shù)據(jù)的冗余量。
4 HLA/RTI實(shí)現(xiàn)中要注意的問題
4.1 多線程數(shù)據(jù)共享
多線程應(yīng)用程序與單線程應(yīng)用程序相比,有很大的差異。在單線程應(yīng)用程序中,進(jìn)程中的所有系統(tǒng)資源均由1個(gè)線程來使用,而在多線程中,進(jìn)程中的多個(gè)線程共存于進(jìn)程的虛擬空間,它們共享進(jìn)程所有資源。如果發(fā)生多個(gè)線程同時(shí)訪問或操作進(jìn)程中的某個(gè)變量時(shí),將會(huì)使應(yīng)用程序產(chǎn)生意想不到的錯(cuò)誤。因此對(duì)數(shù)據(jù)的讀、寫操作必須采用“數(shù)據(jù)鎖”來處理,當(dāng)某一線程對(duì)數(shù)據(jù)進(jìn)行讀寫操作時(shí),應(yīng)首先調(diào)用Lock方法將數(shù)據(jù)鎖定以阻止其它線程對(duì)它的訪問,操作結(jié)束再調(diào)用UnLock方法,釋放對(duì)數(shù)據(jù)的控制權(quán)。
4.2 異步傳輸?shù)牟捎?
在缺省狀態(tài)下,套口是阻塞方式的。當(dāng)一個(gè)套口調(diào)用不能立即完成,進(jìn)程進(jìn)入睡眠狀態(tài),等待操作的完成。為了提高網(wǎng)絡(luò)的傳輸速度,應(yīng)該采用非阻塞I/O套口。
[b]5 結(jié)語
[/b] 分布交互式仿真技術(shù)在不斷發(fā)展。本文把HLA規(guī)范應(yīng)用到變電站仿真中,是一個(gè)有益的嘗試。隨著CORBA技術(shù)的進(jìn)步,分布式仿真技術(shù)也日趨完善,這必然會(huì)推動(dòng)仿真技術(shù)在電力工業(yè)中的應(yīng)用。
[b]參考文獻(xiàn)
[/b] [1] 華東電力試驗(yàn)研究所.華東500kV電網(wǎng)諧波聯(lián)合測試報(bào)告[R].1994
[2] 馮寶憶.華東500kV電網(wǎng)諧波問題初探[J].華東電力,1992,(4)
[3] GB/T 14549-93.電能質(zhì)量公用電網(wǎng)諧波[S].
[4] 姚國燦,等.電力系統(tǒng)諧波程序(簡稱CHP程序)使用說明[R].電力部電力科學(xué)研究院技術(shù)報(bào)告,1991.