謝永興 胡云安 林 濤 秦 亮
(1.海軍航空工程學院控制工程系 煙臺 264001)(2.海軍航空工程學院科研部 煙臺 264001)
?
Lorenz混沌同步系統(tǒng)虛擬儀器網(wǎng)絡化實現(xiàn)*
謝永興1胡云安1林濤2秦亮1
(1.海軍航空工程學院控制工程系煙臺264001)(2.海軍航空工程學院科研部煙臺264001)
摘要研究了Lorenz系統(tǒng)同步原理,并在LabVIEW中實現(xiàn)四階Runge-Kutta算法仿真。比較和總結了LabVIEW中多種網(wǎng)絡通信方式的應用場合和優(yōu)缺點,并選用基于DataSocket的網(wǎng)絡通信方法實現(xiàn)主機端和客戶端VI設計。VI界面友好、操作簡單。經(jīng)過Matlab仿真發(fā)現(xiàn)兩者的結果高度一致,說明LabVIEW不僅具備優(yōu)秀的圖形圖像處理能力,還具備強大的信號數(shù)據(jù)處理功能。
關鍵詞Lorenz系統(tǒng); 混沌同步; LabVIEW; Runge-Kutta; DataSocket網(wǎng)絡通信
Class NumberO415.5
1963年氣象學家E. N. Lorenz在研究大氣熱對流時發(fā)現(xiàn)了一種特殊的現(xiàn)象,即著名的蝴蝶效應[1]。經(jīng)研究發(fā)現(xiàn),某些確定性系統(tǒng)對初值特別敏感,初值稍有變化,經(jīng)長時間演化后系統(tǒng)狀態(tài)將截然不同,這就是所謂的混沌。混沌學在科學界享有很高的評價,被稱為物理學發(fā)生的第三次革命,它與相對論、量子力學同被列為20世紀的最偉大發(fā)現(xiàn)之一。目前,混沌理論與其它學科相互滲透,在圖像、視頻、語音等信號加密中應用廣泛[2~4],混沌同步在保密通信方面的應用則是近幾十年來研究的熱點。
混沌保密通信和混沌同步電路的研究是緊密相關的。Chua構造了一種結構非常簡單但是動力學行為非常豐富的非自治混沌電路,成為混沌電路研究的范例[5]。Carroll和Pecora研究了Newcomb電路的混沌同步現(xiàn)象,證明了被同一信號聯(lián)結的某些混沌系統(tǒng)能夠實現(xiàn)穩(wěn)定同步[6]。Cuomo等研究了Lorenz系統(tǒng)電路混沌同步,并將其應用在通信中[7],證實了混沌同步過程具有一定的魯棒性,能在連續(xù)攝動的作用下保持穩(wěn)定。
LabVIEW是虛擬儀器開發(fā)的引領者,是未來開發(fā)測試軟件的總體趨勢。LabVIEW使用模塊化的圖形函數(shù),只需簡單地拖動圖標和連線即可實現(xiàn)編程,其特有的加亮執(zhí)行功能使調試變得異常容易,利用LabVIEW相關工具包還能進行數(shù)據(jù)庫的連接、控制設計與仿真、運動檢測等功能。LabVIEW兼?zhèn)涓鞣N優(yōu)點,使其在測試和仿真領域得到廣泛應用[8~9]。而將網(wǎng)絡技術和虛擬儀器相結合,不僅可以完成信號處理、圖形顯示等功能,還擺脫了地域上的限制,實現(xiàn)測試或仿真過程的遠程控制。
本文首先研究了Lorenz系統(tǒng)混沌同步原理,然后介紹了LabVIEW中多種網(wǎng)絡通信方式。在LabVIEW中通過四階Runge-Kutta算法求解Lorenz混沌同步系統(tǒng),并選用基于DataSocket的網(wǎng)絡通信方法實現(xiàn)對虛擬儀器VI的遠程控制。
Lorenz系統(tǒng)[1]表示為
(1)
其中σ、r和b為參數(shù)。Pecora和Carroll已經(jīng)證明Lorenz系統(tǒng)可分解為兩個穩(wěn)定子系統(tǒng)。特別地,穩(wěn)定響應子系統(tǒng)(x1,z1)可定義為
(2)
另一個穩(wěn)定響應子系統(tǒng)(y2,z2)定義為
(3)
式(1)的動力學行為不依賴響應子系統(tǒng),可視為驅動系統(tǒng)。式(2)和(3)分別表示由驅動信號y(t)和x(t)驅動的動力響應系統(tǒng)。(x1,z1)子系統(tǒng)Jacobian矩陣特征值都為負值,表明當t→∞時|x1-x|及|z1-z|→0。還能通過數(shù)值方法證明(y2,z2)子系統(tǒng)的Lyapunov指數(shù)都為負,因此,當t→∞時有|y2-y|及|z2-z|→0。
兩個響應子系統(tǒng)也可以一同使用,復現(xiàn)出驅動系統(tǒng)演化的全維動力學。特別地,如果(y2,z2)子系統(tǒng)輸入是x(t),則其輸出y2(t)可用來驅動(x1,z1)子系統(tǒng),并產(chǎn)生一個新的x(t),加上通過同步獲得的y(t)和z(t)。兩個響應子系統(tǒng)可以合成一個具有三維狀態(tài)空間的系統(tǒng),產(chǎn)生的全維響應系統(tǒng)在結構上與驅動系統(tǒng)(1)類似。
在LabVIEW中有多種方法實現(xiàn)網(wǎng)絡通信,歸納起來主要分為以下四種: 1) TCP與UDP通信; 2) DataSocket技術; 3) 共享變量; 4) 遠程VI面板連接。
3.1TCP與UDP通信
TCP/IP是一個由不同層次上的多個協(xié)議組合而成的協(xié)議族,包括網(wǎng)絡接口層、Internet層、傳輸層和應用層[10]。TCP和UDP是TCP/IP協(xié)議族中使用最廣泛、最重要的傳輸層協(xié)議,都使用IP作為網(wǎng)絡層協(xié)議。
TCP通信方式在通信前必須在服務器和客戶端之間先建立起可靠連接,因此能夠保證數(shù)據(jù)的無差錯傳輸。其通信過程為:在服務器端指定主機名或IP地址、端口號,通過偵聽函數(shù)建立偵聽,然后等待客戶端建立連接??蛻舳税l(fā)出連接請求,注意請求時配置的主機名或IP地址、端口號必須與服務器端配置相同。連接成功后,通過讀寫函數(shù)完成TCP數(shù)據(jù)通信。
與TCP相比,UDP采用廣播方式進行通信,通信前無需建立可靠連接,因而會有一定量的數(shù)據(jù)丟失。但是UDP響應速度快,對于某些有實時需求但對數(shù)據(jù)傳輸要求不高的應用程序來說更為便利。
TCP與UDP通信方式從編程流程上看較為復雜,但是考慮到大部分計算機都支持這兩種協(xié)議,在一些特定場合它們?nèi)匀皇俏ㄒ坏倪x擇,如實現(xiàn)與C語言所編寫程序之間的通信。
3.2DataSocket
DataSocket技術建立在TCP/IP基礎之上,是一種專為測控領域設計的網(wǎng)絡編程技術,其數(shù)據(jù)交換具有較好的實時性[11]。通過屏蔽各種網(wǎng)絡通信細節(jié),使整個編程過程大大簡化。DataSocket不僅支持包括FTP、OPC、HTTP等Windows標準協(xié)議,而且專門開發(fā)了FILE、PSP、DSTP等LabVIEW專用協(xié)議,用以提高通信的可靠性。網(wǎng)絡通信中,使用統(tǒng)一資源標識符(Uniform Resource Locator,URL)標識網(wǎng)絡資源的地址,并根據(jù)不同的通信協(xié)議采取不同的格式。
DataSocket網(wǎng)絡通信包括DataSocket服務器和DataSocket API,其中DataSocket服務器主要負責底層通信的所有細節(jié),DataSocket API則負責URL所連接資源的打開、讀寫及關閉操作[12]。
使用DataSocket實現(xiàn)通信時必須先運行服務器,其具體位置為“開始|程序|National Instruments|Datasocket|DataSocket Server”。位于相同位置的DataSocket Server Manager可完成對服務器參數(shù)的配置、預定義數(shù)據(jù)項目的創(chuàng)建及配置等。啟動DataSocket服務器后,將自動創(chuàng)建預定義數(shù)據(jù)項目。事實上,在實際編程過程中,并不需要將所有要使用的數(shù)據(jù)項目都預先定義,打開或讀寫操作時會自動創(chuàng)建,極大地簡化了編程。
DataSocket通信分無緩沖和有緩沖兩種方式。無緩沖方式在讀寫DataSocket時會自動打開數(shù)據(jù)連接,不必另外使用打開DataSocket函數(shù)。值得注意的是,讀取DataSocket函數(shù)的“等待更新值”輸入端為真時,數(shù)據(jù)項目更新后立即返回更新值,類似于中斷式事件觸發(fā);輸入端為假時,返回的是當前值,此時如果數(shù)據(jù)讀取速度低于數(shù)據(jù)發(fā)布速度,將存在數(shù)據(jù)漏讀。有緩沖方式通過緩沖機制,能夠解決讀取速度偶爾偏慢造成的數(shù)據(jù)丟失問題。
3.3共享變量
共享變量是出現(xiàn)于DataSocket之后的一種網(wǎng)絡通信方式,通過特殊的內(nèi)部緩沖機制,有效避免了全局變量的數(shù)據(jù)競爭問題。共享變量的讀寫操作可通過DataSocket函數(shù)實現(xiàn),而創(chuàng)建和發(fā)布共享變量則需要LabVIEW實時模塊的額外支持。共享變量支持包含I/O點在內(nèi)的所有LabVIEW數(shù)據(jù)類型,使網(wǎng)絡數(shù)據(jù)如本地數(shù)據(jù)一樣便于獲取。共享變量引擎使用PSP協(xié)議,完成對共享變量使用、連接的發(fā)布及管理。共享變量采用的網(wǎng)絡地址格式為:psp://計算機名/項目庫名/變量名。
創(chuàng)建共享變量前需要在項目中新建項目庫,然后通過項目庫的快捷菜單新建變量。變量的類型必須設置為網(wǎng)絡發(fā)布型,才能使網(wǎng)絡上其它節(jié)點訪問該變量。共享變量可以綁定到項目中或網(wǎng)絡上已有的共享變量上,也可以通過控件屬性對話框中的“數(shù)據(jù)綁定”選項卡和控件建立連接。執(zhí)行調用共享變量VI前應手動或自動布署共享變量。
3.4遠程VI面板連接
諸如實際工程應用中的監(jiān)控類程序,絕大多數(shù)時間僅需要瀏覽遠程計算機上的VI前面板,而操作量相對較少,此時可通過Web服務器技術實現(xiàn)此功能。其實現(xiàn)過程非常簡單,首先需要在服務器端配置并啟動LabVIEW Web服務器,然后在客戶端通過網(wǎng)頁或LabVIEW Run-Time引擎兩種方式連接遠程面板[13]。遠程VI面板連接過程中,也是使用URL進行網(wǎng)絡資源定位的,如使用網(wǎng)頁方式瀏覽遠程VI時,在瀏覽器地址欄填寫的就是之前配置服務器時填入的VI URL地址。
虛擬儀器實現(xiàn)主要包括兩個VI的設計:實現(xiàn)Lorenz系統(tǒng)的主機端VI和接收Lorenz系統(tǒng)變量網(wǎng)絡數(shù)據(jù)的客戶端VI。下面分別介紹其具體設計細節(jié)。
4.1主機端VI
考慮由x作為驅動信號的驅動響應系統(tǒng),結合式(1)和式(3)組成一個五維方程組:
(4)
其中σ=10,r=28,b=8/3,初值(x,y,z,y2,z2)t=0=(1,1,1,3,2),仿真區(qū)間為[0,100],步長h=0.01。
在程序框圖中,通過選取函數(shù)選板中的“數(shù)學|微分方程|常微分方程”中的“ODE庫塔四階方法”函數(shù)實現(xiàn)式(4)的求解。必須設置好該函數(shù)的常微分方程的右側、變量、起始時間、終止時間、步長等參數(shù),才能保證運行后輸出正確的時間及解數(shù)據(jù)。注意,輸出的時間為一維數(shù)組,解為二維數(shù)組,一列對應一個變量,行數(shù)取決于Runge-Kutta算法的迭代次數(shù)。通常需要對解數(shù)據(jù)進行轉置,以便于信號的處理和顯示。
通過“索引數(shù)組”函數(shù)分離五個變量,前三個對應驅動系統(tǒng)變量,后兩個對應響應系統(tǒng)變量。在前面板添加位于“新式|圖形|三維圖形”的“三維線條圖形”控件,并切換至程序框圖中將剛提取出的驅動系統(tǒng)的3個變量依次連接到其輸入端,完成驅動系統(tǒng)3D相圖的顯示。
圖1 主機端VI前面板
圖3所示為實現(xiàn)網(wǎng)絡通信時用到的兩個核心函數(shù),分別完成DataSocket的讀取和寫入?!斑B接輸入”接線端所接數(shù)據(jù)類型為字符串類型,用于指定要讀取的數(shù)據(jù)源或要寫入的數(shù)據(jù)終端,其格式為:dstp://主機名稱/變量名,如主機端VI中的dstp://localhost/datat。值得注意的是,本文設計的主機端VI和客戶端VI位于同一臺計算機上,所以主機名稱是localhost;如果是兩臺計算機進行通信,此處應用主機計算機的IP地址替換。程序框圖中用了5個寫入DataSocket函數(shù),使x,y,z,y2,z2等變量可通過網(wǎng)絡進行訪問;還用了2個讀取DataSocket,用于從客戶端VI讀取對響應子系統(tǒng)變量初值的設置。
圖2 主機端VI程序框圖
圖3 讀取與寫入DataSocket函數(shù)
合理地編輯前面板上“選擇要顯示的變量”枚舉控件,使枚舉項的值對應變量在數(shù)組中的行索引值,從而控制對應的變量顯示于XY圖中,圖1中選擇顯示的變量是x。
程序的主體部分放置在一個While循環(huán)內(nèi),改變初值的設置,將自動重新進行計算,繪制更新后的信號曲線。
4.2客戶端VI
客戶端VI的前面板和程序框圖分別如圖4、圖5所示。與主機端VI相對應,在程序框圖中主要使用了五個讀取DataSocket函數(shù),獲取Lorenz驅動響應系統(tǒng)的變量數(shù)據(jù);另外利用兩個數(shù)值控件及兩個寫入DataSocket函數(shù),用于控制主機端VI中響應子系統(tǒng)初值。前面板中XY圖顯示了驅動系統(tǒng)和響應系統(tǒng)y,z兩個分量的誤差曲線,由圖可以看出,響應系統(tǒng)與驅動系統(tǒng)之間的誤差很快便收斂到零,即達到同步。
圖4 客戶端VI前面板
運行此VI前,先運行主機端VI和DataSocket Server。調整兩個數(shù)值輸入控件中的數(shù)值后,數(shù)值通過網(wǎng)絡傳輸由主機端VI讀取,將值設置給初值對應的局部變量,執(zhí)行Runge-Kutta算法后產(chǎn)生新的解數(shù)據(jù),解數(shù)據(jù)再經(jīng)網(wǎng)絡傳輸由客戶端VI讀取,產(chǎn)生新的誤差曲線。
圖5 客戶端VI程序框圖
4.3仿真結果對比
圖6 Lorenz吸引子
圖7 x-t波形圖
圖8 同步誤差
為了驗證仿真結果的可靠性,在Matlab中對式(4)進行仿真,參數(shù)設置與4.1節(jié)相同,仿真結果如圖6~圖8所示。經(jīng)過對比可以發(fā)現(xiàn),LabVIEW和Matlab兩者的仿真結果是非常一致的,這說明LabVIEW不僅擅長于圖形圖像的顯示,還能勝任求解微分方程一類的高級數(shù)據(jù)處理。
本文首先研究了Lorenz系統(tǒng)同步原理,并在LabVIEW中實現(xiàn)了四階Runge-Kutta算法仿真。針對虛擬儀器網(wǎng)絡化趨勢,比較和總結了LabVIEW中多種網(wǎng)絡通信方式的應用場合和優(yōu)缺點,最終選用基于DataSocket的網(wǎng)絡通信方法實現(xiàn)主機端和客戶端VI設計。VI界面友好、操作簡單,通過更改相應的數(shù)值控件輸入值可以方便地改變Lorenz系統(tǒng)的初值,從而觀察不同初值時系統(tǒng)變量的變化,進一步掌握混沌系統(tǒng)同步的動力學特性;從客戶端VI也可以隨時通過DataSocket寫入操作改變主機端VI響應子系統(tǒng)的初值,隨后可觀察相應誤差信號的變化情況。經(jīng)過與Matlab仿真結果的對比可以發(fā)現(xiàn),LabVIEW除了優(yōu)秀的圖形圖像處理能力外,也具備良好的信號數(shù)據(jù)處理功能,仿真結果準確、可靠。
參 考 文 獻
[1] Lorenz. Deterministic Nonperiodic Flow[J]. Journal of the Atmospheric Sciences,1963,20(2):130-141.
[2] 陳仕坤,禹思敏.視頻混沌加密及其FPGA實現(xiàn)[J].電子技術應用,2015,41(1):111-114.
CHEN Shikun, YU Simin. Video chaotic encryption and its FPGA implementation[J]. Application of Electronic Technique,2015,41(1):111-114.
[3] 鄧曉衡,廖春龍,朱從旭,等.像素位置與比特雙重置亂的圖像混沌加密算法[J].通信學報,2014,35(3):216-223.
DENG Xiaoheng, LIAO Chunlong, ZHU Congxu, et al. Image encryption algorithms based on chaos through dual scrambling of pixel position and bit[J]. Journal on Communications,2014,35(3):216-223.
[4] 薛勝男,陳秀宏.基于混沌加密和SVD的數(shù)字圖像水印算法[J].計算機工程,2012,38(19):107-110.XUE Shengnan, CHEN Xiuhong. Digital Image Watermarking Algorithm Based on Chaos Encryption and SVD[J]. Computer Engineering,2012,38(19):107-110.
[5] Matsumoto T, Chua L O, Tanaka S. Simplest chaotic nonautonomous circuit[J]. Physical Review A,1984,30(2):1155-1157.
[6] Pecora L M, Carroll T L. Driving systems with chaotic signals[J]. Phys Rev A,1991,44(4):2374-2383.
[7] Cuomo K M, Oppenheim A V, Strogatz S H. Synchronization of Lorenz-based chaotic circuits with applications to communications[J]. IEEE Transactions on Circuits and Systems Ⅱ: Analog and Digital Signal Processing,1993,40(10):626-633.
[8] 楊宏.一種基于LabVIEW的微弱信號混沌檢測方法[J].西安郵電學院學報,2013,18(1):70-73.YANG Hong. A method of weak signal chaotic detection based on LabVIEW[J]. Journal of Xi’an University of Posts and Telecommunications,2013,18(1):70-73.
[9] 蔡光斌,胡昌華,蔡曦.基于虛擬檢測技術的導彈武器系統(tǒng)維修平臺研究[J].電光與控制,2007,14(2):150-153.
CAI Guangbin, HU Changhua, CAI Xi. Study on maintenance platform for missile weapon system based on virtual test technique[J]. Electronics Optics & Control,2007,14(2):150-153.
[10] 黃國興.基于LabVIEW的網(wǎng)絡通信方法[J].新技術新工藝,2008(10):40-42.
HUANG Guoxing. Network communication method based on LabVIEW[J]. New Technology & New Process,2008(10):40-42.
[11] 廖劍,史賢俊,張戎.在LABVIEW中實現(xiàn)網(wǎng)絡通信的幾種方法[J].儀器儀表學報,2008,29(8):573-576.
LIAO Jian, SHI Xianjun, ZHANG Rong. Methods of achieving network communication in LabVIEW[J]. Chinese Journal of Scientific Instrument,2008,29(8):573-576.
[12] 陳樹學,劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
CHEN Shuxue, LIU Xuan. LabVIEW bible[M]. Beijing: Publishing House of Electronics Industry,2011.
[13] 陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007.
CHEN Xihui, ZHANG Yinhong. LabVIEW 8.20 program designing: From novice to professional[M]. Beijing: Tsinghua University Press,2007.
收稿日期:2015年10月7日,修回日期:2015年11月22日
作者簡介:謝永興,男,博士研究生,講師,研究方向:混沌信號處理。胡云安,男,教授,博士生導師,研究方向:模式識別與智能系統(tǒng)。林濤,男,碩士,副教授,研究方向:SAR成像。秦亮,男,博士,講師,研究方向:導彈測試。
中圖分類號O415.5
DOI:10.3969/j.issn.1672-9722.2016.04.044
Virtual Instrument Networking Implementation of Lorenz Chaotic Synchronizing System
XIE Yongxing1HU Yun’an1LIN Tao2QIN Liang1
(1. Department of Control Engineering, Naval Aeronautical and Astronautical University, Yantai264001)(2. Department of Scientific Research, Naval Aeronautical and Astronautical University, Yantai264001)
AbstractThe synchronization principle of Lorenz system is studied, and the forth-order Runge-Kutta algorithm is implemented in LabVIEW. After comparing several network communication methods in LabVIEW, their application sceneries, pros and cons are concluded. Both the Server VI and Client VI use DataSocket technology to achieve network communication. The interfaces are friendly and easy to operate. The results in LabVIEW are in high accordance with those in Matlab, which shows that LabVIEW is not only capable of graphical processing, but also good at advanced data processing.
Key WordsLorenz system, chaos synchronization, LabVIEW, Runge-Kutta, DataSocket network communication