趙海濱 于清文 顏世玉



摘 ?要 采用Python語言建立簡化Lorenz混沌仿真和控制實驗平臺,能夠進行簡化Lorenz混沌的仿真和鎮定控制。采用Tkinter建立軟件的GUI界面,并采用Matplotlib進行圖形的繪制,可以修改混沌系統的參數和初始狀態以及控制器的參數。采用主動控制器進行簡化Lorenz混沌的鎮定控制,狀態變量漸進收斂到零。該實驗平臺可以進行簡化Lorenz混沌的仿真和鎮定控制,能夠提高學生創新實驗技能和工程實踐能力。
關鍵詞 簡化Lorenz混沌;實驗平臺;仿真實驗;Python語言
中圖分類號:TP391.9 ? ?文獻標識碼:B
文章編號:1671-489X(2020)06-0032-03
Experimental Platform Development of Simplified Lorenz Chao-
tic System Simulation and Control//ZHAO Haibin, YU Qingwen, YAN Shiyu
Abstract A simulation and control experiment platform of simplified Lorenz chaotic system is established by Python, which can simulate and stabilize Lorenz chaos. The GUI of the software is built by Tkinter, and the graph is drawn by Matplotlib. The parameters of chaos system, initial state and controller can be modified. The active controller is used to stabilize simplified Lorenz chaotic system, and the state variables converges to zero gradually. The experimental platform can simulate and stabilize simplified Lorenz chaotic system, and improve students innovative experimental skills and engineering practice ability.
Key words simplified Lorenz chaos; experimental platform; simula-tion experiment; Python language
1 引言
混沌是非線性動力系統的固有特性,對初始條件具有極端的敏感性,是非線性系統普遍存在的現象,廣泛存在于自然界和人類社會中。混沌理論研究的關鍵就在于混沌系統的控制和利用。混沌理論在保密通信和信息加密等眾多領域被廣泛研究和應用,具有重大的研究價值和誘人的應用前景,是目前研究的熱點[1]。1963年,氣象學家Lorenz發現第一個混沌吸引子。繼Lorenz混沌系統之后,Chen混沌和Liu混沌系統等相繼被提出,這些系統與Lorenz混沌系統相比具有不同的拓撲結構。
近年來,各種新混沌系統不斷被發現。孫克輝等對經典Lorenz混沌系統進行簡化,得到單參數混沌系統,即簡化Lorenz混沌系統[2-3]。簡化Lorenz混沌系統能夠通過硬件電路實現,具有豐富的動力學特性[4-5]。本文以簡化Lorenz混沌系統為研究對象,采用Python語言建立仿真和控制實驗平臺。
Python語言是一種跨平臺的解釋型、面向對象、動態的高級程序設計語言,具有簡潔性、易讀性和可擴展性,已經成為最受歡迎的程序設計語言之一,很多科研機構和大學都采用Python語言作為程序設計語言[6-7]。Python語言簡單易學,廣泛用于仿真實驗系統的設計中[8-10]。在實驗平臺設計中,采用Python語言自帶的Tkinter建立軟件的人機交互界面,并采用Matplotlib庫進行二維圖形的繪制,采用SciPy庫中的odeint函數求解常微分方程。根據簡化Lorenz混沌的狀態方程,設計主動控制器進行鎮定控制,狀態變量漸進收斂到零。該仿真實驗平臺具有良好的可控性、重復性和經濟性等優點,能夠激發學生的學習興趣,提高學生創新實驗技能和工程實踐能力。
2 簡化Lorenz混沌
混沌具有偽隨機性、對初始值非常敏感等特性,可以用于保密通信和信息加密等工程領域。經典Lorenz混沌系統具有三個參數。孫克輝等對經典Lorenz混沌系統進行簡化,得到單參數簡化Lorenz混沌系統。簡化Lorenz混沌系統的狀態方程表示為:
其中,x,y和z為簡化Lorenz混沌系統的狀態變量,c為系統參數。當c∈[-1.59,7.75]時,簡化Lorenz系統大部分處于混沌狀態。當c=-1時,簡化Lorenz混沌系統是經典的Lorenz混沌系統;當c=0時,簡化Lorenz混沌系統的第二個方程中不含y項;當c=6時,簡化Lorenz混沌系統的第二個方程中不含x項。
簡化Lorenz混沌系統具有豐富的動力學特性。簡化Lorenz混沌系統可以通過運算放大器、電阻、電容和乘法器等組成的模擬電路實現,通過調節電阻值來改變系統的參數,可以觀察到混沌現象。
3 主動控制器
主動控制方法具有設計簡單、收斂速度快等優點,廣泛用于混沌系統的鎮定控制。對于簡化Lorenz混沌系統,設計主動控制器進行系統的鎮定控制,狀態變量漸進收斂到零。帶有控制輸入的簡化Lorenz混沌系統表示為:
其中,ui為控制輸入,且i=1,2,3。通過控制輸入對簡化Lorenz混沌系統進行鎮定控制,狀態變量漸進收斂到零。采用主動控制方法進行控制器的設計,控制器設計為:
其中,參數ki為常數,且ki<0,i=1,2,3。ki的絕對值越大,對應簡化Lorenz混沌系統的狀態變量收斂速度越快。
將主動控制器帶入簡化Lorenz混沌系統,可以得到:
根據線性系統穩定性理論,簡化Lorenz混沌系統的狀態變量漸進收斂到零,主動控制器能夠進行簡化Lorenz混沌系統的鎮定控制。
4 仿真實驗平臺
在仿真實驗中,采用Python語言自帶的Tkinter建立軟件的人機交互界面。Tkinter是Python的標準人機交互界面庫。Tkinter是內置到Python的安裝包中,安裝好Python
后就可以加載Tkinter庫來進行人機交互界面的設計。在仿真實驗中,采用Matplotlib庫進行二維圖形的繪制。Matp-
lotlib是一個Python 2D繪圖庫。采用Matplotlib繪圖非常簡單和方便,只需要幾行代碼就可以生成直方圖、條形圖、誤差圖和散點圖等。采用Tkinter編寫人機交互界面,將Matplotlib繪制的二維圖形與Tkinter集成到一起進行顯示。SciPy庫在Numpy庫的基礎上增加了眾多的數學、科學以及工程計算中常用的庫函數,如線性代數、常微分方程數值求解、信號處理和圖像處理等。采用SciPy庫中的odeint函數求解常微分方程,進行簡化Lorenz混沌系統的仿真和鎮定控制。
簡化Lorenz混沌仿真和控制實驗平臺的GUI界面如圖1所示。在軟件的主界面中,左側進行參數的設置和控制,右側顯示仿真結果。對簡化Lorenz混沌系統的參數、初始狀態和仿真時間進行修改,然后單擊按鈕“簡化Lorenz混沌仿真”進行仿真。主動控制器的參數和仿真時間也可以進行修改,然后單擊按鈕“簡化Lorenz混沌的鎮定控制”進行簡化Lorenz混沌系統的鎮定控制。在圖1中,單擊左下角的按鈕“默認值”,所有的參數都恢復為系統的默認值;單擊左下角的按鈕“退出”,會出現退出對話框,可以退出軟件系統。
在簡化Lorenz混沌進行仿真和鎮定控制之前,需要對參數進行設置。簡化Lorenz混沌系統的參數設定為c=2.0,初始狀態設定為x(0)=2.0,y(0)=-3.0,z(0)=4.0,仿真時間設定為40.0秒。簡化Lorenz混沌仿真后,單擊按鈕“二維相圖”,可以繪制狀態變量的二維相圖;單擊按鈕“狀態變量”,可以繪制各個狀態變量的響應曲線。簡化Lorenz混沌系統仿真后,狀態變量x和z的二維相圖如圖2所示。在圖2中,簡化Lorenz系統出現混沌現象。
根據簡化Lorenz混沌系統的狀態方程,設計主動控制器進行系統的鎮定控制。在主動控制器中,參數設定為k1=-2.0,k2=-2.0,k3=-3.0。簡化Lorenz混沌鎮定控制的仿真時間設定為8.0秒。在主界面中,單擊按鈕“簡化Lorenz混沌的鎮定控制”,采用主動控制器進行簡化Lorenz混沌的鎮定控制。簡化Lorenz混沌鎮定控制后,可以顯示狀態變量的響應曲線和主動控制器的響應曲線,狀態變量的響應曲線如圖3所示。在圖3中,簡化Lorenz混沌的狀態變量收斂到零,收斂的速度比較快。仿真結果表明,主動控制器能夠進行簡化Lorenz混沌的鎮定控制,狀態變量快速收斂到零。
5 結語
Python語言作為一門新興的編程語言,在科學計算和計算機教育等方面具有較強的優勢,對于初學者也很容易入門。Python語言采用開源設計,具有眾多開源科學計算軟件包。本文采用Python語言建立簡化Lorenz混沌仿真和控制實驗平臺,能夠進行簡化Lorenz混沌的仿真和鎮定控制。簡化Lorenz混沌系統具有豐富的動力學特性,且只有一個參數,可以用硬件電路實現。根據簡化Lorenz混沌的狀態方程,設計主動控制器進行系統的鎮定控制,狀態變量漸進收斂到零,收斂的速度比較快。該仿真實驗平臺將理論學習和編程開發相結合,學生可以修改系統參數,然后進行仿真實驗,觀察仿真結果。該仿真實驗平臺具有良好的可控性、重復性和經濟性等優點,降低了實驗成本,能夠激發學生的學習興趣,提高學生創新實驗技能和工程實踐能力。
參考文獻
[1]孫克輝.混沌保密通信原理與技術[M].北京:清華大學出版社,2015.
[2]孫克輝,楊靜利,等.單參數Lorenz混沌系統的電路設計與實現[J].物理學報,2010,59(12):8385-8392.
[3]陳秋杰,楊其宇,鮑芳.基于簡化Lorenz混沌電路的頻率特性分析[J].電路與系統,2018,7(4):93-100.
[4]李澤彬,張剛,等.單參數Lorenz混沌系統及其保密通信[J].徐州工程學院學報:自然科學版,2016,31(4):70-75.
[5]秦進.簡化Lorenz混沌系統的非線性動力學分析[J].計算機工程與應用,2015,51(12):53-54,98.
[6]張若愚.Python科學計算[M].北京:清華大學出版社,2012.
[7]張健,張良均.Python編程基礎[M].北京:人民郵電出版社,2018.
[8]張俊生,郭彩萍,樓國紅,等.Python在數字信號處理中的應用[J].電氣電子教學學報,2015,37(4):115-117.
[9]嵩天,黃天羽.Python語言程序設計教學案例新思維[J].計算機教育,2017(12):11-14,19.
[10]馬天成,李全彬.基于Python的牛頓環實驗數據擬合及分析方法[J].大學物理實驗,2019,32(3):112-115.