999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CIM/E的電網模型解析①

2018-02-07 02:41:45王占國
計算機系統應用 2018年1期
關鍵詞:模型

崔 麗,王占國,吳 奕

1(中國科學院大學,北京 100049)2(中國科學院 沈陽計算技術研究所,沈陽 110168)

隨著現代經濟的高速發展,電力需求持續增加,電網的規模在不斷擴大,電網形態也在逐漸變化[1].目前電力系統已經不可否認的發展成世界上最復雜的人造工業網絡之一,大電網安全問題已經成為人們關注的熱點問題.保障電網經濟、穩定、安全的運行是電力行業工作者一直以來追求的宗旨.周孝信院士于2011年在國家電網報上提出了三代電網理論[2],將電網和電力系統的發展分為三個階段,即第一代小型電網,第二代大型互聯電網,以及第三代智能電網.關于電網的發展水平世界各國是有差異的,但總的來說,是處于第二代大型互聯電網過渡到第三代智能電網的階段.電網的穩定、安全、高校運行離不開電網模型數據和運行數據的支撐.應用系統之間的信息共享和應用集成逐漸成為迫切需要解決的問題.

電力系統的不斷發展和自動化技術的提高,使電網調度自動化系統得到廣泛的應用.出現了變電站自動化系統、電網能量管理系統(EMS)等各種自動化系統,涉及電力行業的各個環節.這些系統通常由不同的廠家提供,可能采用不同的開發平臺、數據庫技術和應用接口,應用間的信息共享成本很高,不能很好的實現系統之間的互聯互通.對此,美國電力科學研究院(EPRI)啟動了CCAPI項目[3],主要目標就是推動由不同廠商開發的EMS應用之間,獨立開發的完整EMS系統之間,以及EMS系統與有關電力系統運行的其他系統之間的集成,并為數據交換提供方便.目前電力系統中對于CIM/XML的研究和解析技術已比較成熟,但對于CIM/E,在研究的過程中發現很少有針對CIM/E解析的研究介紹,缺乏對CIM/E的解析過程的詳細說明,所以本文在研究CIM/E結構的基礎上,提出了一種CIM/E文件的解析方案并詳細介紹了具體的解析過程,彌補該部分的空白,為實際的應用提供一定的參考和指導價值.

1 公共信息模型(CIM)

1.1 IEC 61970簡介

美國電力科學研究院(EPRI)于1993年啟動了“控制中心應用接口”(Control Center Application Program Interface,CCAPI)研究項目(RP-3654-1),EPRI CCAPI項目的主要目標是:減少向EMS中增加新應用所需要的費用和時間;保護對EMS中正在有效工作的現有應用的投資.隨著各種組件軟件技術的出現,1999年開始確立了基于組件軟件的相對穩定的CCAPI解決方案.

基于EPRI CCAPI項目的工作,國際電工委員會57技術委員會與EPRI緊密合作,啟動IEC EMS-AIP項目[4],制定了IEC 61970系列標準,該系列標準定義了能量管理系統的應用程序接口(EMS-API),包括導則和總體要求、術語表、公共信息模型(CIM)[5]、組件接口規范(CIS)和組件接口規范映射5大部分內容.該協議提出為現有的應用系統提供一個基于公共信息模型、公共體系結構和組件技術的系統集成框架.各個EMS應用內部可以有各自的信息描述方式,但是只要在應用程序接口語義級上基于公共的信息模型,不同廠商開發的應用程序或不同系統的應用間就可以以同樣的方式訪問公共數據,實現應用間的相互操作和插件兼容.通過定義應用編程接口(API),使這些應用或系統可以訪問公共數據或進行信息交換,而不依賴于信息的內部表述形式.公共信息模型(CIM)規定了此信息交換內容的語義.組件接口規范(CIS)規定的消息交換的內容.

1.2 公共信息模型(CIM)

IEC 61970系列標準主要包括公共信息模型 (CIM)和組件接口規范 (CIS)兩方面內容,其中CIM是整個協議的核心.公共信息模型 (CIM)是一個抽象模型,它描述電力企業的所有主要對象,用對象類和屬性及他們之間的關系來表示電力系統資源.通過定義一種基于CIM的公共語言 (即語法和語義),使得應用或系統能夠不依賴于信息的內部表示而訪問公共數據和交換信息來實現系統間的集成.CIM中描述的對象類本質上是抽象的,可以用于各種應用.CIM的使用遠遠超出了它在EMS中應用的范圍.應當把本標準理解為一種能夠在任何一個領域實行集成的工具,只要該領域需要一種公共電力系統模型,使得應用和系統之間能夠實現互操作和插入兼容性,而與任何具體實現無關.

由于完整的CIM的規模較大,所以將包含在CIM中的對象類分成了幾個邏輯包,每個邏輯包代表整個電力系統模型的某個部分.CIM規范使用統一建模語言(UML)表達方法,它將CIM定義成一組包.CIM中的每一個包包含一個或多個類圖,用圖形方式展示該包中的所有類及它們的關系.然后根據類的屬性及與其它類的關系,用文字形式定義各個類.IEC 61970-301內容包括核心包、域包、發電包、發電動態包、負荷模型包、量測包、停運包、生產包、保護包、拓撲包和電線包.每一個CIM包的類圖展示了該包中的所有的類及它們的關系.在與其它包中的類存在關系時,這些類也展示出來,而且標以表明其所屬的包的符號.CIM 301部分的包圖如圖1所示.

2 電網模型交換標準

2.1 CIM/XML

通過CIM提出的電力系統信息交換標準可以實現不同系統間的互聯互通.但CIM模型是個抽象模型,它沒有定義模型數據庫的規范和數據交換格式,在具體的工程應用中,對CIM模型的實現方式需要有明確、可行的規定.XML語言解決了這個問題,CIM以XML語言為載體,使用CIM RDF模式作為元模型框架,并采用一個RDF語法的子集作為描述規則,描述電網靜態數據模型,構建電力系統信息模型的XML文檔[6].

圖1 IEC61970-301包結構

根據IEC 61970 501標準所描述的CIM RDF模式,一個EMS電力系統模型能被轉換導出為一個對應的CIM XML文檔,CIM RDF模式提供了CIM XML文檔所使用的資源描述格式,最終的CIM XML模型文件能夠被解析,將其中的信息導入到另一個外部系統.目前基于CIM/XML的數據導入導出是不同系統和軟件間進行數據交換和信息共享的主要方式.

2.2 CIM/E

為了提高電力系統模型數據的描述效率和大量數據的在線交換的效率,出現了電力系統數據模型描述語言E[7],E來源于3個英文單詞的首字母:easy(簡單)、efficiency(高效)、electric-power(電力).E 語言有XML的基本特點以和優點,使用它的特殊符號和描述語法,能實現電力系統中各種數據模型的高效描述,效率比XML高很多,而且更符合人類的表述習慣[8].

E語言使用幾個英文半角符號位于文件每行開頭的第1個與或第2個字符組合,表示不同的特定含義,比如:<,>,@,#,/等符號,E語言有三種數據描述方式:衡表式,單列式和多列式.E語言出了基本功能,還有擴展功能,可以用于表示類屬性的類型、單位、限值等.CIM/E文件的文件名格式為,區域_日期_時間.CIME,比如,馳宏站_20170330_141315.CIME.CIM/E文件按照E格式規范對電網物理模型的相關設備類屬性進行組織.為了使電網調度自動化系統的運行要求得到滿足,應對電網物理連接模型進行描述,包含區域、負荷、間隔、廠站、變壓器、基準電壓、母線段等各類對象,對各類對象包含的屬性項有相關的要求.

3 CIM/E文件解析

3.1 XML文檔解析分析

XML文檔的解析[9]主要有兩種方式:DOM和SAX.DOM是由W3C制定的一套編寫XML分析器的標準接口規范,SAX是XML_DEV郵件列表中的成員根據應用的需求自發的定義的對XML文檔進行操作的一套接口規范.這兩種接口規范各有長短,互有側重,都有著廣泛的應用.應用程序并不是直接對XML文檔進行操作的,先由XML分析器對XML文檔進行分析,而后,應用程序通過XML分析器所提供的DOM接口或SAX接口對分析結果進行操作,從而間接的實現了對XML文檔的訪問,DOM和SAX在應用程序開發過程中的作用,如圖2所示.

圖2 DOM和SAX在應用程序中的作用

文檔對象模型(DOM)的全稱為Document Object Model.DOM就是一個標準的對象化的接口規范,與具體語言和平臺無關.在程序中,基于DOM的XML分析器首先將一個XML文檔轉換成一個DOM樹(對象模型的集合)放在內存中,然后應用程序以通過對該對象模型的操作而實現對XML文檔中數據的操作.利用DOM接口的解析機制被稱作隨機訪問機制,因為通過DOM接口,應用程序可以在任何時候訪問XML文檔中的任何數據,這種隨機訪問方式對于應用程序來說是非常靈活的.

要進一步加深對監督對象的了解。中央紀委要求各級紀委要全面掌握“森林”情況,正確處理好“森林”和“樹木”的關系。但當前恰恰缺乏的是“森林”信息來源,了解監督對象情況大多是從人事、稽核等相關部門間接獲得,缺少動態化、實時的監督數據支撐,特別在用人監督方面,由于缺乏對其社會關系、思想變化、家庭生活等情況的及時掌握,難以有效發現和杜絕少數干部“帶病”上崗現象的發生。

XML實際上是一種分層的結構,DOM使用樹模型來描述XML文檔信息非常有效,DOM接口提供通過分層對象模型的方式來訪問XML文檔中的信息,根據XML文檔的結構,分層對象模型形成一顆節點樹的形式.解析形成的DOM樹是存儲在內存中的,當XML文檔比較復雜龐大時,DOM解析器對內存的要求就比較高.圖3描述了DOM解析器解析XML文檔形成內存中的節點樹的過程.DOM首先將文檔加載進內存里,然后再內存中構造出一個與文檔對應的一棵樹,樹上的每個節點都是一個對象(Node類型),放在內存里,訪問是隨機的.

圖3 DOM解析器功能

XML簡單應用程序接口(SAX),全稱為Simple APIs for XML.支持DOM的解析器是W3C的官方標準,而支持SAX的解析器是事實上的工業標準.SAX不同于DOM,SAX不必將整個XML文檔事先加載到內存當中,它快速讀寫XML數據,是一種基于事件驅動的順序的訪問模式,不能重新訪問已經分析過的內容.對XML文檔進行分析的時候,會觸發一系列的事件,并激發相應的事先定義好的事件處理回調函數,應用程序通過事件函數從而實現對XML文檔的處理和訪問.SAX只做了一些簡單的工作,應用程序要自己去做大部分的工作,SAX適用于只需要訪問不要更改的XML文檔數據的應用程序.文檔的讀入過程就對應著SAX解析器的解析過程,圖4描述了SAX解析器解析XML文檔的過程.

圖4 SAX解析器功能

3.2 CIM/E文件解析方案

XML文檔解析器實際上就是一段程序代碼,同樣CIM/E文檔的解析器在本文中也是一段Java程序代碼,它讀入一個CIM/E文件并分析其結構,在分析文檔的同時,采用基于事件的方法在內存中構造出一個對應的自定的文檔類型對象,該文檔類型實現了W3C標準中的Document接口.然后程序可以對該文檔對象進行操作,將文檔中的元素的不同信息分別提取出來存儲到集合(ArrayList類型)中元素(TableEClass類型)的不同數據結構中.

其中TableEClass類型是構造出的一個數據結構,用來存放從CIM/E文件解析出的元素數據內容,該類包含 tableName、columnNames、columnTypes、columnUnits、columnLimitValues、rowsData等屬性,分別存儲CIME文件中對應的的類名、屬性名,與橫表式CIM/E文件中對應的屬性類型、屬性單位、屬性限值和數據行的內容.上述集合對象封裝了CIM/E文檔中的數據信息,有了該集合對象之后,就可以在該對象的基礎上進行數據的入庫等操作,為后續的應用做好準備,List集合中的每個元素(TableE類型)對應于數據庫中的一張表,并包含了表中的數據.

本解析方案根據CIM/E文件結構特點,在W3C提供的DOM接口和SAX接口的基礎上,針對CIM/E文件解析定義了一系列的節點類型等數據結構,文件中一個類對應為一個元素,將類起始符合類結束符中間的內容設置為該元素的內容,在封裝數據的時候在具體分析取出.該解析方案主要分為基于事件的文檔對象的構建與操作文檔進行數據的封裝兩個功能,涉及到的主要類和方法如圖5所示.

圖5 解析方案中的部分主要類和方法

3.2.1 基于事件的文檔對象的構建過程

首先定義MainParseEFile類Document documentBuildRead (String pathStr)方法,通過CIM/E文件名來構建一個與之對應的自定義文檔對象Document.該方法的實現依賴于TheEDomSAXReader類型對象的documentBuildRead()方法,該類有個XMLReader類型的引用,該引用指向的對象的void parse(InputSource input)方法完成底層的文件的具體分析操作.

TheEDomXMLReader類實現了XMLReader接口,而XMLReader接口的作用就是用于使用回調讀取XML文檔,所以定義了TheEDomSAXContentHandler類并在類中提供了各種回調函數.parse()方法根據CIM/E文件中的標識符號分析到文件的不同位置時會調用處理器類中定義的各種回調方法.這些回調方法在處理過程中借助于棧類型成員變量的進棧、出棧、取棧頂元素操作來實現自定義文檔對象的構建.

最后在TheEDomSAXReader類型對象的documentBuildRead()方法中通過處理器類型引用的getThe-Document()方法返回自定義的文檔對象,如圖6所示.

圖6 documentBuildRead()方法的片段代碼

3.2.2 操作文檔進行數據封裝

MainParseEFile 類中的 List<TableEClass>documentOperate(Document document)方法實現了將由documentBuildRead()方法得到的文檔對象中的信息存儲到集合變量list中的操作.該方法首先取出文檔對象下的所有子元素,遍歷每個元素,生成一個TableEClass對象,將元素名對應的類名設置為對象的tableName屬性值,并將該對象添加到ArrayList<TableEClass>類型變量中,同時,根據元素內容的的首行初始符號判斷元素的類型(即元素所屬CIM/E文件的結構類型,是單列式、多列式、還是橫標式),針對不同的文件結構使用不同的解析方法將元素內容填充到TableEClass對象中的不同屬性上.

比如橫表式文件的解析,使用void parseHorizontalTableType(TableEClass classTable,String[]contentLines)方法.遍歷元素內容的各行,將屬性引導符@引導的元素內容第一行的各個屬性,設置到TableEClass對象的columnNames屬性上,針對其余的內容行,若是以類型引導符“%”開頭,則將該行的各個類型保存到TableEClass對象的columnTypes屬性上;若是以量綱引導符“$”開頭,則將該行的各個單位保存到TableEClass對象的columnUnits屬性上;若是以限值引導符“:”開頭,則將該行的各個限值保存到TableEClass對象的columnLimitValues屬性上;若是以數據引導符“#”開頭,則將該行的各個數據追加到TableEClass對象的rowsData集合屬性中.

documentOperate()遍歷完文檔中的每個子元素后,在方法的最后返回已填充數據的ArrayList<TableEClass>類型的對象,之后應用程序即可在該對象基礎上進行數據入庫等操作.

4 實例解析測試

下面以一個變電站的電網模型文件為例(CIM/E文件)進行解析方案的實驗驗證,如圖7所示是導出的電網模型文件(CIM/E文件)的模擬片段.

圖7 CIM/E文件片段

XML文檔對象模型有根節點(Document)和根元素節點root,但電網模型文件CIM/E文件對應的文檔模型是沒有根元素節點的,Document節點下就是各個并列的子元素.若將CIM/E文件導入關系型數據庫中,文件中的類名如ControlArea、BaseVoltage、Substation等應該作為表存在,類中的屬性作為表的字段、數據作為表中記錄的相應字段值.

圖8和圖9是該CIM/E文件應用該解析方案過程中在內存中形成的自定義文檔對象和對應的存儲數據的ArrayList集合對象.

得到ArrayList形式的信息后,就可以對這個信息進行操作和處理了,比如將其存儲到關系型數據庫[10].使用的是Java進行數據庫操作,Java提供的單純的使用sql語句方式進行編程的機制,即JDBC(Java Database Connectivity)技術.使用純的Java代碼來去實現對應的數據庫的編程,寫相應的SQL語句,調用相應的語句把SQL代碼進行執行,把語句發送到數據庫端,讓數據庫端去執行SQL代碼.比如執行一條插入語句,數據庫中就具備了插入進去的內容.實際的大型應用中后端一般會使用框架,比如Hibernate、MyBatis等.在程序中取得數據庫的連接,調用建表的方法,并填充字段的值,形成數據表結構和數據.如圖10所示為形成的ControlArea表結構數據.

圖8 構建的自定義Document文檔

圖9 存儲數據的ArrayList集合對象

5 結束語

本文首先介紹了公共信息模型(CIM)和兩種電網模型交換標準,然后分析了XML文件解析的方法及電網模型文件CIM/E的文件結構,之后描述了一種解析CIM/E文件方法的具體過程及將解析的數據入庫,并通過電網模型數據文件CIM/E進行了驗證,該解析方法對電力系統中模型數據的解析具有一定的指導和參考意義,可以在此方案的基礎上完善各種擴展形式的文件的解析、設計數據結構,提高解析效率等工作.

圖10 ControlArea表結構數據

2 周孝信.第三代電網技術正在向我們走來.國家電網報,2011-05-05(005).

3 王民昆.電力系統CIM模型描述及數據交換實現的研究[碩士學位論文].成都:四川大學,2004.

4 Draft IEC61970 Energy management system application program interface (EMS-API)-Part I:Guidelines and general requirements.Revision 5,2002.

5 Draft IEC61970 Energy management system application program interface (EMS-API)-Part 301:Common information model (CIM)base.Revision 3,2004.

6 謝淑菁.基于CIM的電力系統模型拼接的研究和設計[碩士學位論文].濟南:山東大學,2010.

7 辛耀中,陶洪鑄,李毅松,等.電力系統數據模型描述語言E.電力系統自動化,2006,30(10):48–51,92.[doi:10.3321/j.issn:1000-1026.2006.10.010]

8 米為民,辛耀中,蔣國棟,等.電網模型交換標準CIM/E和CIM/XML的比對分析.電網技術,2013,37(4):936–941.

9 劉芳,肖鐵軍.XML應用的基石:XML解析技術.計算機工程與設計,2005,26(10):2823–2824,2839.[doi:10.3969/j.issn.1000-7024.2005.10.083]

10 朱曉娟.基于關系的XML數據存儲技術研究.計算機與現代化,2009,(12):51–54.

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 色屁屁一区二区三区视频国产| 黄网站欧美内射| 成人午夜久久| 欧美日韩国产综合视频在线观看 | 人妻一区二区三区无码精品一区 | 中文精品久久久久国产网址| 青青草国产在线视频| 国产鲁鲁视频在线观看| 美女一区二区在线观看| 一级毛片免费不卡在线| 国产女人综合久久精品视| 国产乱子伦手机在线| 日本AⅤ精品一区二区三区日| 亚洲精品免费网站| 久久精品国产精品青草app| 一级毛片a女人刺激视频免费| 91麻豆国产视频| 色偷偷一区| 亚洲成人在线免费观看| 亚洲国产看片基地久久1024 | 国产精品一线天| 99视频在线免费观看| 欧美综合成人| 国产综合精品日本亚洲777| 日韩久久精品无码aV| 91网站国产| 巨熟乳波霸若妻中文观看免费| 激情国产精品一区| 熟妇人妻无乱码中文字幕真矢织江| 狠狠综合久久久久综| 国产综合网站| 国产91在线|中文| yjizz视频最新网站在线| 免费看黄片一区二区三区| 国产免费a级片| 亚洲永久色| 欧美精品亚洲精品日韩专| 亚洲欧洲日韩久久狠狠爱| 色偷偷男人的天堂亚洲av| 国产乱子伦一区二区=| 国产精品亚洲а∨天堂免下载| 日本午夜三级| 青青草国产精品久久久久| 中文一区二区视频| 偷拍久久网| 国产jizz| 三上悠亚精品二区在线观看| 欧美视频免费一区二区三区| 狼友视频一区二区三区| 国产永久免费视频m3u8| 免费三A级毛片视频| 国产精品露脸视频| 欧美精品在线视频观看| 免费无遮挡AV| 91精品网站| 精品国产自在在线在线观看| 国产成人毛片| 国产美女视频黄a视频全免费网站| 国产午夜福利亚洲第一| 国产成人无码综合亚洲日韩不卡| 91麻豆精品国产高清在线| 国产精品成人免费综合| 在线看AV天堂| 无码一区中文字幕| 国产91丝袜在线播放动漫 | 国产女主播一区| 99视频在线观看免费| 欧美在线综合视频| 伊人久久婷婷五月综合97色 | 首页亚洲国产丝袜长腿综合| 久久窝窝国产精品午夜看片| 色网站在线视频| 色有码无码视频| 亚洲国产亚洲综合在线尤物| 精品人妻系列无码专区久久| 手机在线国产精品| 亚洲成人高清在线观看| 亚欧成人无码AV在线播放| 久久网欧美| 午夜国产小视频| 999精品在线视频| 全午夜免费一级毛片|