趙海濱 于清文 顏世玉
摘 ?要 采用Python語(yǔ)言建立簡(jiǎn)化Lorenz混沌仿真和控制實(shí)驗(yàn)平臺(tái),能夠進(jìn)行簡(jiǎn)化Lorenz混沌的仿真和鎮(zhèn)定控制。采用Tkinter建立軟件的GUI界面,并采用Matplotlib進(jìn)行圖形的繪制,可以修改混沌系統(tǒng)的參數(shù)和初始狀態(tài)以及控制器的參數(shù)。采用主動(dòng)控制器進(jìn)行簡(jiǎn)化Lorenz混沌的鎮(zhèn)定控制,狀態(tài)變量漸進(jìn)收斂到零。該實(shí)驗(yàn)平臺(tái)可以進(jìn)行簡(jiǎn)化Lorenz混沌的仿真和鎮(zhèn)定控制,能夠提高學(xué)生創(chuàng)新實(shí)驗(yàn)技能和工程實(shí)踐能力。
關(guān)鍵詞 簡(jiǎn)化Lorenz混沌;實(shí)驗(yàn)平臺(tái);仿真實(shí)驗(yàn);Python語(yǔ)言
中圖分類(lèi)號(hào):TP391.9 ? ?文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):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 引言
混沌是非線性動(dòng)力系統(tǒng)的固有特性,對(duì)初始條件具有極端的敏感性,是非線性系統(tǒng)普遍存在的現(xiàn)象,廣泛存在于自然界和人類(lèi)社會(huì)中?;煦缋碚撗芯康年P(guān)鍵就在于混沌系統(tǒng)的控制和利用?;煦缋碚撛诒C芡ㄐ藕托畔⒓用艿缺姸囝I(lǐng)域被廣泛研究和應(yīng)用,具有重大的研究?jī)r(jià)值和誘人的應(yīng)用前景,是目前研究的熱點(diǎn)[1]。1963年,氣象學(xué)家Lorenz發(fā)現(xiàn)第一個(gè)混沌吸引子。繼Lorenz混沌系統(tǒng)之后,Chen混沌和Liu混沌系統(tǒng)等相繼被提出,這些系統(tǒng)與Lorenz混沌系統(tǒng)相比具有不同的拓?fù)浣Y(jié)構(gòu)。
近年來(lái),各種新混沌系統(tǒng)不斷被發(fā)現(xiàn)。孫克輝等對(duì)經(jīng)典Lorenz混沌系統(tǒng)進(jìn)行簡(jiǎn)化,得到單參數(shù)混沌系統(tǒng),即簡(jiǎn)化Lorenz混沌系統(tǒng)[2-3]。簡(jiǎn)化Lorenz混沌系統(tǒng)能夠通過(guò)硬件電路實(shí)現(xiàn),具有豐富的動(dòng)力學(xué)特性[4-5]。本文以簡(jiǎn)化Lorenz混沌系統(tǒng)為研究對(duì)象,采用Python語(yǔ)言建立仿真和控制實(shí)驗(yàn)平臺(tái)。
Python語(yǔ)言是一種跨平臺(tái)的解釋型、面向?qū)ο?、?dòng)態(tài)的高級(jí)程序設(shè)計(jì)語(yǔ)言,具有簡(jiǎn)潔性、易讀性和可擴(kuò)展性,已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一,很多科研機(jī)構(gòu)和大學(xué)都采用Python語(yǔ)言作為程序設(shè)計(jì)語(yǔ)言[6-7]。Python語(yǔ)言簡(jiǎn)單易學(xué),廣泛用于仿真實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)中[8-10]。在實(shí)驗(yàn)平臺(tái)設(shè)計(jì)中,采用Python語(yǔ)言自帶的Tkinter建立軟件的人機(jī)交互界面,并采用Matplotlib庫(kù)進(jìn)行二維圖形的繪制,采用SciPy庫(kù)中的odeint函數(shù)求解常微分方程。根據(jù)簡(jiǎn)化Lorenz混沌的狀態(tài)方程,設(shè)計(jì)主動(dòng)控制器進(jìn)行鎮(zhèn)定控制,狀態(tài)變量漸進(jìn)收斂到零。該仿真實(shí)驗(yàn)平臺(tái)具有良好的可控性、重復(fù)性和經(jīng)濟(jì)性等優(yōu)點(diǎn),能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生創(chuàng)新實(shí)驗(yàn)技能和工程實(shí)踐能力。
2 簡(jiǎn)化Lorenz混沌
混沌具有偽隨機(jī)性、對(duì)初始值非常敏感等特性,可以用于保密通信和信息加密等工程領(lǐng)域。經(jīng)典Lorenz混沌系統(tǒng)具有三個(gè)參數(shù)。孫克輝等對(duì)經(jīng)典Lorenz混沌系統(tǒng)進(jìn)行簡(jiǎn)化,得到單參數(shù)簡(jiǎn)化Lorenz混沌系統(tǒng)。簡(jiǎn)化Lorenz混沌系統(tǒng)的狀態(tài)方程表示為:
其中,x,y和z為簡(jiǎn)化Lorenz混沌系統(tǒng)的狀態(tài)變量,c為系統(tǒng)參數(shù)。當(dāng)c∈[-1.59,7.75]時(shí),簡(jiǎn)化Lorenz系統(tǒng)大部分處于混沌狀態(tài)。當(dāng)c=-1時(shí),簡(jiǎn)化Lorenz混沌系統(tǒng)是經(jīng)典的Lorenz混沌系統(tǒng);當(dāng)c=0時(shí),簡(jiǎn)化Lorenz混沌系統(tǒng)的第二個(gè)方程中不含y項(xiàng);當(dāng)c=6時(shí),簡(jiǎn)化Lorenz混沌系統(tǒng)的第二個(gè)方程中不含x項(xiàng)。
簡(jiǎn)化Lorenz混沌系統(tǒng)具有豐富的動(dòng)力學(xué)特性。簡(jiǎn)化Lorenz混沌系統(tǒng)可以通過(guò)運(yùn)算放大器、電阻、電容和乘法器等組成的模擬電路實(shí)現(xiàn),通過(guò)調(diào)節(jié)電阻值來(lái)改變系統(tǒng)的參數(shù),可以觀察到混沌現(xiàn)象。
3 主動(dòng)控制器
主動(dòng)控制方法具有設(shè)計(jì)簡(jiǎn)單、收斂速度快等優(yōu)點(diǎn),廣泛用于混沌系統(tǒng)的鎮(zhèn)定控制。對(duì)于簡(jiǎn)化Lorenz混沌系統(tǒng),設(shè)計(jì)主動(dòng)控制器進(jìn)行系統(tǒng)的鎮(zhèn)定控制,狀態(tài)變量漸進(jìn)收斂到零。帶有控制輸入的簡(jiǎn)化Lorenz混沌系統(tǒng)表示為:
其中,ui為控制輸入,且i=1,2,3。通過(guò)控制輸入對(duì)簡(jiǎn)化Lorenz混沌系統(tǒng)進(jìn)行鎮(zhèn)定控制,狀態(tài)變量漸進(jìn)收斂到零。采用主動(dòng)控制方法進(jìn)行控制器的設(shè)計(jì),控制器設(shè)計(jì)為:
其中,參數(shù)ki為常數(shù),且ki<0,i=1,2,3。ki的絕對(duì)值越大,對(duì)應(yīng)簡(jiǎn)化Lorenz混沌系統(tǒng)的狀態(tài)變量收斂速度越快。
將主動(dòng)控制器帶入簡(jiǎn)化Lorenz混沌系統(tǒng),可以得到:
根據(jù)線性系統(tǒng)穩(wěn)定性理論,簡(jiǎn)化Lorenz混沌系統(tǒng)的狀態(tài)變量漸進(jìn)收斂到零,主動(dòng)控制器能夠進(jìn)行簡(jiǎn)化Lorenz混沌系統(tǒng)的鎮(zhèn)定控制。
4 仿真實(shí)驗(yàn)平臺(tái)
在仿真實(shí)驗(yàn)中,采用Python語(yǔ)言自帶的Tkinter建立軟件的人機(jī)交互界面。Tkinter是Python的標(biāo)準(zhǔn)人機(jī)交互界面庫(kù)。Tkinter是內(nèi)置到Python的安裝包中,安裝好Python
后就可以加載Tkinter庫(kù)來(lái)進(jìn)行人機(jī)交互界面的設(shè)計(jì)。在仿真實(shí)驗(yàn)中,采用Matplotlib庫(kù)進(jìn)行二維圖形的繪制。Matp-
lotlib是一個(gè)Python 2D繪圖庫(kù)。采用Matplotlib繪圖非常簡(jiǎn)單和方便,只需要幾行代碼就可以生成直方圖、條形圖、誤差圖和散點(diǎn)圖等。采用Tkinter編寫(xiě)人機(jī)交互界面,將Matplotlib繪制的二維圖形與Tkinter集成到一起進(jìn)行顯示。SciPy庫(kù)在Numpy庫(kù)的基礎(chǔ)上增加了眾多的數(shù)學(xué)、科學(xué)以及工程計(jì)算中常用的庫(kù)函數(shù),如線性代數(shù)、常微分方程數(shù)值求解、信號(hào)處理和圖像處理等。采用SciPy庫(kù)中的odeint函數(shù)求解常微分方程,進(jìn)行簡(jiǎn)化Lorenz混沌系統(tǒng)的仿真和鎮(zhèn)定控制。
簡(jiǎn)化Lorenz混沌仿真和控制實(shí)驗(yàn)平臺(tái)的GUI界面如圖1所示。在軟件的主界面中,左側(cè)進(jìn)行參數(shù)的設(shè)置和控制,右側(cè)顯示仿真結(jié)果。對(duì)簡(jiǎn)化Lorenz混沌系統(tǒng)的參數(shù)、初始狀態(tài)和仿真時(shí)間進(jìn)行修改,然后單擊按鈕“簡(jiǎn)化Lorenz混沌仿真”進(jìn)行仿真。主動(dòng)控制器的參數(shù)和仿真時(shí)間也可以進(jìn)行修改,然后單擊按鈕“簡(jiǎn)化Lorenz混沌的鎮(zhèn)定控制”進(jìn)行簡(jiǎn)化Lorenz混沌系統(tǒng)的鎮(zhèn)定控制。在圖1中,單擊左下角的按鈕“默認(rèn)值”,所有的參數(shù)都恢復(fù)為系統(tǒng)的默認(rèn)值;單擊左下角的按鈕“退出”,會(huì)出現(xiàn)退出對(duì)話框,可以退出軟件系統(tǒng)。
在簡(jiǎn)化Lorenz混沌進(jìn)行仿真和鎮(zhèn)定控制之前,需要對(duì)參數(shù)進(jìn)行設(shè)置。簡(jiǎn)化Lorenz混沌系統(tǒng)的參數(shù)設(shè)定為c=2.0,初始狀態(tài)設(shè)定為x(0)=2.0,y(0)=-3.0,z(0)=4.0,仿真時(shí)間設(shè)定為40.0秒。簡(jiǎn)化Lorenz混沌仿真后,單擊按鈕“二維相圖”,可以繪制狀態(tài)變量的二維相圖;單擊按鈕“狀態(tài)變量”,可以繪制各個(gè)狀態(tài)變量的響應(yīng)曲線。簡(jiǎn)化Lorenz混沌系統(tǒng)仿真后,狀態(tài)變量x和z的二維相圖如圖2所示。在圖2中,簡(jiǎn)化Lorenz系統(tǒng)出現(xiàn)混沌現(xiàn)象。
根據(jù)簡(jiǎn)化Lorenz混沌系統(tǒng)的狀態(tài)方程,設(shè)計(jì)主動(dòng)控制器進(jìn)行系統(tǒng)的鎮(zhèn)定控制。在主動(dòng)控制器中,參數(shù)設(shè)定為k1=-2.0,k2=-2.0,k3=-3.0。簡(jiǎn)化Lorenz混沌鎮(zhèn)定控制的仿真時(shí)間設(shè)定為8.0秒。在主界面中,單擊按鈕“簡(jiǎn)化Lorenz混沌的鎮(zhèn)定控制”,采用主動(dòng)控制器進(jìn)行簡(jiǎn)化Lorenz混沌的鎮(zhèn)定控制。簡(jiǎn)化Lorenz混沌鎮(zhèn)定控制后,可以顯示狀態(tài)變量的響應(yīng)曲線和主動(dòng)控制器的響應(yīng)曲線,狀態(tài)變量的響應(yīng)曲線如圖3所示。在圖3中,簡(jiǎn)化Lorenz混沌的狀態(tài)變量收斂到零,收斂的速度比較快。仿真結(jié)果表明,主動(dòng)控制器能夠進(jìn)行簡(jiǎn)化Lorenz混沌的鎮(zhèn)定控制,狀態(tài)變量快速收斂到零。
5 結(jié)語(yǔ)
Python語(yǔ)言作為一門(mén)新興的編程語(yǔ)言,在科學(xué)計(jì)算和計(jì)算機(jī)教育等方面具有較強(qiáng)的優(yōu)勢(shì),對(duì)于初學(xué)者也很容易入門(mén)。Python語(yǔ)言采用開(kāi)源設(shè)計(jì),具有眾多開(kāi)源科學(xué)計(jì)算軟件包。本文采用Python語(yǔ)言建立簡(jiǎn)化Lorenz混沌仿真和控制實(shí)驗(yàn)平臺(tái),能夠進(jìn)行簡(jiǎn)化Lorenz混沌的仿真和鎮(zhèn)定控制。簡(jiǎn)化Lorenz混沌系統(tǒng)具有豐富的動(dòng)力學(xué)特性,且只有一個(gè)參數(shù),可以用硬件電路實(shí)現(xiàn)。根據(jù)簡(jiǎn)化Lorenz混沌的狀態(tài)方程,設(shè)計(jì)主動(dòng)控制器進(jìn)行系統(tǒng)的鎮(zhèn)定控制,狀態(tài)變量漸進(jìn)收斂到零,收斂的速度比較快。該仿真實(shí)驗(yàn)平臺(tái)將理論學(xué)習(xí)和編程開(kāi)發(fā)相結(jié)合,學(xué)生可以修改系統(tǒng)參數(shù),然后進(jìn)行仿真實(shí)驗(yàn),觀察仿真結(jié)果。該仿真實(shí)驗(yàn)平臺(tái)具有良好的可控性、重復(fù)性和經(jīng)濟(jì)性等優(yōu)點(diǎn),降低了實(shí)驗(yàn)成本,能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生創(chuàng)新實(shí)驗(yàn)技能和工程實(shí)踐能力。
參考文獻(xiàn)
[1]孫克輝.混沌保密通信原理與技術(shù)[M].北京:清華大學(xué)出版社,2015.
[2]孫克輝,楊靜利,等.單參數(shù)Lorenz混沌系統(tǒng)的電路設(shè)計(jì)與實(shí)現(xiàn)[J].物理學(xué)報(bào),2010,59(12):8385-8392.
[3]陳秋杰,楊其宇,鮑芳.基于簡(jiǎn)化Lorenz混沌電路的頻率特性分析[J].電路與系統(tǒng),2018,7(4):93-100.
[4]李澤彬,張剛,等.單參數(shù)Lorenz混沌系統(tǒng)及其保密通信[J].徐州工程學(xué)院學(xué)報(bào):自然科學(xué)版,2016,31(4):70-75.
[5]秦進(jìn).簡(jiǎn)化Lorenz混沌系統(tǒng)的非線性動(dòng)力學(xué)分析[J].計(jì)算機(jī)工程與應(yīng)用,2015,51(12):53-54,98.
[6]張若愚.Python科學(xué)計(jì)算[M].北京:清華大學(xué)出版社,2012.
[7]張健,張良均.Python編程基礎(chǔ)[M].北京:人民郵電出版社,2018.
[8]張俊生,郭彩萍,樓國(guó)紅,等.Python在數(shù)字信號(hào)處理中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào),2015,37(4):115-117.
[9]嵩天,黃天羽.Python語(yǔ)言程序設(shè)計(jì)教學(xué)案例新思維[J].計(jì)算機(jī)教育,2017(12):11-14,19.
[10]馬天成,李全彬.基于Python的牛頓環(huán)實(shí)驗(yàn)數(shù)據(jù)擬合及分析方法[J].大學(xué)物理實(shí)驗(yàn),2019,32(3):112-115.