一種用於微型電網智能終端的實時資料庫實現方法
2023-06-14 09:50:11 1
專利名稱:一種用於微型電網智能終端的實時資料庫實現方法
技術領域:
本發明涉及一種實時資料庫實現方法,尤其涉及一種針對微型電網智能終端的技術特點,採用文件映射方式生成資料庫實體的實時資料庫實現方法,屬於智能電網技術領域。
背景技術:
微型電網(micro-grid)也稱微網,是指由分布式電源、儲能裝置、能量轉換裝置、 相關負荷和監控、保護裝置匯集而成的小型發配電系統,是一個能夠實現自我控制、保護和管理的自治系統。微型電網既可以與大電網併網運行,也可以孤立運行,是智能電網的重要組成部分。微型電網具有雙重角色。對於大電網而言,微型電網作為一個大小可以改變的智能負載,為本地電力系統提供了可調度負荷,可以在數秒內做出響應以滿足系統需要,適時向大電網提供有力支撐;可以在維修的同時不影響客戶的負荷;可以減輕(延長)配電網更新換代,採用IEE1M7. 4標準,指導分布式電源孤島運行,能夠消除某些特殊操作要求產生的技術阻礙。對於用戶而言,微型電網作為一個可定製的電源,可以滿足用戶多樣化的需求,例如增強局部供電可靠性,降低饋電損耗,支持當地電壓,通過利用廢熱提高效率,提供電壓下陷的校正,或作為不可中斷電源服務等。在微型電網系統中,包含了大量的分布式可再生能源作為電源。傳統的大電網 SCADA-EMS(配電網和調度自動化)技術並不適用於微型電網系統。但由於電網調度技術具有一定的相通性,微型電網能量管理系統又需要以大電網的SCADA-EMS平臺為基礎。而作為大電網SCADA-EMS平臺核心的實時資料庫技術,需要具有極高計算能力的伺服器級CPU、 海量內存以及伺服器級作業系統的支持。如何將實時資料庫移植到以嵌入式CPU、嵌入式實時作業系統並只有少量內存的微型電網智能終端中,是未來微型電網技術發展亟需解決的關鍵課題之一。另一方面,目前有四種較為流行的嵌入式實時作業系統VXWorks,QNX, ucLinux 和RTEMS。其中QNX是由加拿大QSSL公司開發的微內核實時作業系統,其核心僅提供4種服務進程調度、進程間通信、底層網絡通信和中斷處理,其進程在獨立的地址空間運行。因此,QNX的核心非常小巧且運行速度極快,非常適合在嵌入式設備中使用。在王鋒發表的碩士學位論文《基於QNX和內存嵌入式實時資料庫的現場控制站設計研究》(華北電力大學2006年授予)中,研究了分散控制系統現場控制站的軟硬體結構以及基於QNX和內存嵌入式實時資料庫的DCS現場控制站的設計,結合實際設計開發了 PAS300M分散控制系統。該論文重點對QNX實時作業系統和extreme DB內存嵌入式資料庫在現場控制站設計當中的應用進行了探討。以QNX實時作業系統為平臺的軟體系統,充分發揮了 extreme DB的優勢。軟體系統將eXtreme DB作為數據管理和交換的平臺,簡化了軟體設計邏輯,縮短了開發周期,提高了系統的穩定性和可靠性,在實際電廠運行中取得了很好的效果。
發明內容
本發明所要解決的技術問題在於提供一種用於微型電網智能終端的實時資料庫實現方法。採用該方法生成的實時資料庫可以滿足微型電網智能終端對實時資料庫穩定性、效率性及功能性的要求。為實現上述的發明目的,本發明採用下述的技術方案一種用於微型電網智能終端的實時資料庫實現方法,其特徵在於將組成實時資料庫的數據表、域和記錄通過文件映射方式映射到微型電網智能終端的內存中,形成資料庫實體; 將表空間首地址和記錄指針地址存儲在相應的B+樹中。其中較優地,在實時資料庫運行過程中,不同進程通過訪問同一塊內存實現進程間的數據共享。其中較優地,實時資料庫管理系統常駐於內存中,從My SQL參數資料庫中讀入表的描述信息,在內存中構造實時資料庫的數據表。其中較優地,在資料庫實體的形成過程中,每一個參數化文件映射一個表空間。其中較優地,所述數據表的每條記錄所佔的內存大小是固定的,每個域所佔的字節是固定的。其中較優地,每條記錄的關鍵字和該記錄基於表首指針的偏移量存儲在數據記錄 B+樹中。其中較優地,數據表名和數據表首指針之間的關係存儲在數據表名B+樹中。本發明所生成的實時資料庫可以運行在只有嵌入式處理器和少量內存的微型電網智能終端中,其數據訪問能夠保持微秒級的速度,並且可以存儲複雜和動態變化的數據。 它一方面通過內置基於B+樹的二分查找算法,保證了實時資料庫的查找效率;另一方面以內存數據集的方式實現數據共享存取,可以滿足任務處理的高時限要求。
下面結合附圖和具體實施方式
對本發明作進一步的詳細說明。圖1為微型電網智能終端與其他電網設備的連接示意圖;圖2為微型電網智能終端的整體結構示意圖;圖3為本發明所生成的微型電網智能終端實時資料庫的總體結構示意圖;圖4為上述實時資料庫中,資料庫實體的生成原理示意圖;圖5為上述實時資料庫中,資料庫實體的邏輯結構示意圖。
具體實施例方式圖1顯示了一個典型的微型電網中,微型電網智能終端與其他電網設備之間的連接關係。該微型電網智能終端可以與微型電網中的各類電網設備相連接,例如與光伏逆變器、風機逆變器、儲能系統、有源濾波器、智能電錶、母線保護器等進行連接,用於採集光伏逆變器、風機逆變器、儲能系統、有源濾波器、智能電錶、母線保護器等設備的實時數據信息。此外,該微型電網智能終端還可以與斷路器連接,通過採集開關輸入量來採集斷路器狀態,並通過輸出開關輸出量來控制斷路器的動作。圖2為微型電網智能終端的整體結構示意圖。在該微型電網智能終端的一個實施例中,包括主控模塊、通信模塊和數據採集控制模塊。其中,主控模塊分別與數據採集控制模塊和通信模塊雙向連接。該主控模塊用於控制整個智能終端的正常運行。它可以通過數據採集控制模塊來採集不同電網設備的數據信息,並通過通信模塊來實現與微型電網系統控制器之間的信息交換。數據採集控制模塊用於採集各種不同電網設備的數據信息並對這些不同電網設備進行控制。通信模塊用於與微型電網系統控制器進行通信,一方面將主控模塊中存放的數據信息通過乙太網上傳到微型電網系統控制器的資料庫中,另一方面接收微型電網系統控制器下發的微型電網控制策略指令信息,然後解析控制策略指令信息獲取控制指令,並將這些控制指令傳遞到主控模塊。上述的微型電網系統控制器是指各微型電網智能終端上級的系統控制器。它可以是指微型電網內部總的系統控制器,也可以是微型電網內局部區域的系統控制器。一個微型電網系統控制器可以與若干個微型電網智能終端相連接。通過微型電網系統控制器與微型電網智能終端的連接,可以實現對整個分布式發電區域乃至整個分布式發電網絡中分布式電源的控制。主控模塊中主要包括主控晶片和存儲單元,還可以包括用於用戶輸入操作控制的輸入單元和用於對外輸出運行狀態和運行過程的輸出單元。其中,輸入單元可採用鍵盤或滑鼠來實現,輸出單元可採用顯示器來實現。較優地,為了增強該微型電網智能終端與用戶的交互性,該主控模塊還包括用於視頻輸出的VGA接口和用於讀取外部存儲卡的CF卡接口。此外,該主控模塊還可以包括多個USB接口。數據採集控制模塊具有RS485接口、乙太網接口和數字輸入輸出接口三種接口。其中,乙太網接口用於將該微型電網智能終端接入乙太網,以便採集母線運行、二次保護設備等的實時數據信息;RS485接口用於連接智能電錶、光伏逆變器、儲能控制器、有源濾波控制器等,通過這些接口可以採集與之相連的電網設備的數據信息,也可以控制這些電網設備的參數設定和啟停等動作。此外,該數據採集控制模塊還具有用於連接斷路器的數字輸入輸出接口,通過採集該數字輸入輸出接口的開關輸入量可以採集斷路器的狀態,通過該數字輸入輸出接口對外輸出開關輸出量可以控制斷路器的動作,如開啟和關閉等。通信模塊具有乙太網接口,用於與微型電網系統控制器相連接,向該微型電網系統控制器上傳採集到的電網設備信息,並接收該微型電網系統控制器下發的控制策略指令信息。圖2所示的微型電網智能終端是一種典型的嵌入式設備,具有內存量較少、嵌入式處理器運算能力不強等特點。為了滿足在微型電網智能終端中用較小的內存來維護大量的、具有很強時間性的共享數據的要求,需要對現有的實時資料庫技術進行重大改造。為此,本發明首先採用文件映射方式將資料庫表映射成內存塊,形成資料庫實體;另一方面, 將內存塊共享,並啟動多個處理進程互相配合運行以實現各種實時數據管理功能,不同進程通過訪問同一塊物理內存實現進程間的數據共享。為了提高資料庫的索引效率,滿足實時資料庫API的性能要求,其表空間首地址(即文件映射的內存塊首地址)和記錄指針地址存儲在相應的B+樹中,通過調用實時資料庫接口函數在B+樹中查詢或更新所需的實時數據。通過上述的技術措施,使得本發明所生成的實時資料庫可以運行在只有嵌入式處理器和少量內存的微型電網智能終端上,其數據訪問能夠保持微秒級的速度,並且可以存儲複雜和動態變化的數據。圖3顯示了本發明所生成的微型電網智能終端實時資料庫的總體結構。該實時資料庫包括實時資料庫管理系統、若干個參數化文件和若干個資料庫實體,其中實時資料庫管理系統分為伺服器端和客戶端兩部分。在具體實施過程中,該實時資料庫管理系統是一個常駐內存的進程,與具體資料庫的模型無關。它可以從My SQL參數資料庫中讀入表的描述信息,在內存中構造實時資料庫的數據表。換句話說,數據表的結構和數據記錄根據My SQL參數資料庫生成。因此,通過修改My SQL參數資料庫的內容,可以改變實時資料庫的表結構、域結構和數據記錄。如圖3所示,分布在客戶端上的實時資料庫管理系統通過實時資料庫API訪問微型電網智能終端。該實時資料庫API可以選擇本地訪問或是網絡訪問。在其主機名參數設置為NULL的情況下,訪問本地內存;在其指定主機名的情況下,通過網絡客戶端訪問其他主機(即微型電網智能終端)的資料庫。考慮到微型電網智能終端所進行的任務處理都有很高的時限要求,本發明所生成的實時資料庫儘量避免磁碟文件操作,相關的數據存取都以內存數據集的方式實現。在這個過程中,由於資料庫調用進程和資料庫伺服器端進程不屬於一個進程空間,因此採用了共享內存塊的技術。因此,資料庫實體是採用文件映射方式生成的共享內存塊,其文件映射表的結構根據參數化文件生成。數據記錄從存儲表格數據的文件中讀入,每一個參數化文件映射一個表空間。在本發明的一個實施例中,所生成的實時資料庫在QNX實時作業系統的平臺基礎上運行,相關的內存管理、進程調度等操作都可以使用QNX實時作業系統中的現有技術實現,在此就不詳細說明了。在本發明所生成的實時資料庫中,參數化文件可以通過實時資料庫管理界面顯示其內容。有關維護工程師通過實時資料庫管理界面,進行參數化文件的查詢、增加、刪除、修改等操作。圖4顯示了本發明中,資料庫實體的生成原理。該資料庫實體是指實時資料庫中的數據表、域和記錄在內存中的存儲形式。參數化文件通過一定的映射操作可以轉化為資料庫實體。具體地說,參數化文件中的表參數通過數據表空間初始化處理映射到共享內存塊中,域參數通過數據表生成處理映射到共享內存塊中,而記錄參數通過數據表增加記錄處理映射到共享內存塊中。在本發明中,採用文件映射方式將資料庫中的數據映射到內存中,形成資料庫實體,其所佔內存的記錄數和數據通過讀取My SQL參數資料庫得到。數據表的域結構通過讀取My SQL參數資料庫得到,這樣數據表的每條記錄所佔的內存大小是固定的,每個域所佔的字節是固定的,通過記錄關鍵字可以很容易地得到記錄地址,查詢指定域的內存地址可以通過記錄地址進行計算偏移得到。為了提高本發明所生成的實時資料庫的索引效率,滿足實時資料庫API的性能要求,其表空間首地址和記錄指針地址存儲在相應的B+樹中。如圖5所示,文件映射的共享內存塊的首地址存儲在一個B+樹(數據表名B+樹)中,調用實時資料庫的接口函數可以在B+樹中可以訪問該實時資料庫。數據表的記錄可以通過讀取My SQL參數資料庫得到,每一條記錄具有嚴格固定的長度。其關鍵字和偏移量存儲在另一個B+樹(數據記錄B+樹)中,通過查詢該B+樹可以通過關鍵字得到其對應的偏移量。上述的B+樹是一種多路搜索樹,一般用於資料庫的索引,綜合效率非常高。B+樹的搜索從根結點開始,對結點內的關鍵字(有序)序列進行二分查找,如果命中則結束,否則進入查詢關鍵字所屬範圍的兒子結點;重複,直到所對應的兒子指針為空,或已經是葉子
結點ο在資料庫技術中,通常以查找成功時的平均查找長度(Average Search Length, 簡寫為ASL)作為衡量算法優劣的依據。所謂ASL是指在查找過程中,為確定記錄在查找表中的位置,需要與給定值進行比較的記錄關鍵字個數的平均值。下面以ASL為指標來比較 B+樹採用的二分查找算法和普通的順序查找算法之間的性能差距(1)順序查找算法順序查找成功時平均查找長度為ASL = (n+l)/2順序查找不成功時平均查找長度為ASL = n+1所以順序查找的平均查找長度為ASL = 3 (n+1) /4(2) 二分查找算法二分查找算法在查找成功和不成功時比較次數最多為(log2n)+l平均查找長度為ASL = ((n+1) /n) (log2 (n+1)) -I例如在一個有10000條記錄的實時表中,採用順序查找算法查找一條記錄的平均查找長度為ASL = 3(10000+1)/4 = 7500. 75,採用B+樹的二分查找算法查找一條記錄的平均查找長度為 ASL= ((10000+1)/10000) (log2 (10000+1))-1 = 12. 289。也就是說,在一個有10000條記錄(中等大小)的數據表裡,查找一條記錄,如果採用普通的順序存儲的話平均需要7500. 75次,而採用B+樹的話平均需要12. 289次,性能差距是很明顯的。基於B+樹的上述優點,在圖5所示的實時資料庫實體中,將實時資料庫實體存放在文件映射內存空間中,由數據表名B+樹(另外還需要數據表ID B+樹)存儲數據表名和數據表首指針之間的關係,以便查詢的時候迅速返回結果。數據記錄B+樹存儲該條記錄的關鍵字和該記錄基於表首指針的偏移量,根據表名(或表ID號)和記錄關鍵字可以迅速查詢到記錄指針地址,進行下一步的數據操作。本發明所生成的微型電網智能終端實時資料庫一方面通過內置基於B+樹的二分查找算法,保證了實時資料庫的查找效率;另一方面將內存塊共享,以內存數據集的方式實現數據存取,避免了磁碟文件操作,從而可以滿足微型電網智能終端對任務處理的高時限要求。以上對本發明所提供的微型電網智能終端實時資料庫實現方法進行了詳細的說明。對本領域的技術人員而言,在不背離本發明實質精神的前提下對它所做的任何顯而易見的改動,都將構成對本發明專利權的侵犯,將承擔相應的法律責任。
權利要求
1.一種用於微型電網智能終端的實時資料庫實現方法,其特徵在於將組成實時資料庫的數據表、域和記錄通過文件映射方式映射到微型電網智能終端的內存中,形成資料庫實體;將表空間首地址和記錄指針地址存儲在相應的B+樹中。
2.如權利要求1所述的用於微型電網智能終端的實時資料庫實現方法,其特徵在於 在實時資料庫運行過程中,不同進程通過訪問同一塊內存實現進程間的數據共享。
3.如權利要求1所述的用於微型電網智能終端的實時資料庫實現方法,其特徵在於 實時資料庫管理系統常駐於內存中,從My SQL參數資料庫中讀入表的描述信息,在內存中構造實時資料庫的數據表。
4.如權利要求1所述的用於微型電網智能終端的實時資料庫實現方法,其特徵在於 在資料庫實體的形成過程中,每一個參數化文件映射一個表空間。
5.如權利要求1所述的用於微型電網智能終端的實時資料庫實現方法,其特徵在於 所述數據表的每條記錄所佔的內存大小是固定的,每個域所佔的字節是固定的。
6.如權利要求1所述的用於微型電網智能終端的實時資料庫實現方法,其特徵在於 每條記錄的關鍵字和該記錄基於表首指針的偏移量存儲在數據記錄B+樹中。
7.如權利要求1所述的用於微型電網智能終端的實時資料庫實現方法,其特徵在於 數據表名和數據表首指針之間的關係存儲在數據表名B+樹中。
全文摘要
本發明公開了一種用於微型電網智能終端的實時資料庫實現方法。該方法中,將組成實時資料庫的數據表、域和記錄通過文件映射方式映射到微型電網智能終端的內存中,形成資料庫實體;將表空間首地址和記錄指針地址存儲在相應的B+樹中。本發明所生成的實時資料庫可以運行在只有嵌入式處理器和少量內存的微型電網智能終端中,其數據訪問能夠保持微秒級的速度,並且可以存儲複雜和動態變化的數據。
文檔編號G06F17/30GK102495891SQ201110408178
公開日2012年6月13日 申請日期2011年12月9日 優先權日2011年12月9日
發明者於亞偉, 馮斌, 張毅, 張鵬, 徐際強, 林昌年, 潘正魁, 王慶平, 馬曉偉 申請人:北京科東電力控制系統有限責任公司