MATLAB系统仿真其三:Lorenz和Rossler系统混沌同步
文章目錄
- 前言
- 一、非線性系統的擴散耦合
- 二、不同系統間的混沌同步
- 三、混沌同步結果
前言
混沌是確定性系統中,有限相空間內的高度不穩定運動。自1963年Lorenz證明大氣對流模型中存在混沌,非線性系統的混沌被廣泛研究。人們一方面希望電路產生混沌,另一方面又希望混沌是可控的,以此來達到混沌通信或者混沌控制的目的,因此混沌同步是必不可少的。1991年,美國海軍實驗室的Pecora和Carroll研究 𝑛 維動態系統驅動同步問題時,得出了子系統同步的必要條件:子系統分量的李亞普諾夫指數全為負。本文是非線性系統混沌同步的MATLAB仿真。
一、非線性系統的擴散耦合
首先考慮典型參數的Lorenz系統和Rossler系統,系統設置詳見以往的文章MATLAB混沌系統仿真其一:Lorenz系統和Rossler系統。根據文章的研究結果,典型參數下,相同系統主從式驅動時,其響應系統的三個分量的李亞普諾夫指數分別如下:
因此使用yyy分量驅動的Rossler系統、使用xxx或zzz分量驅動的Lorenz系統可以混沌同步。利用混沌同步進行電路通信的仿真與實驗也早已做出。
二、不同系統間的混沌同步
在他們后續的研究中,混沌的同步可以拓展到更大范圍,比如完全不同的兩個非線性系統,在合適的條件下驅動也可以達成混沌同步(可見其97年的相關專著),當然,通常是增加注入強度。
這就非常有意思了,不妨仿真其在文章中證明可以同步的系統:這里采用擴散耦合的方式使用Rossler系統的yyy分量驅動Lorenz系統:
| dx1=?(y1+z1)dx_1=-\left(y_1+z_1\right)dx1?=?(y1?+z1?) | dx2=?σ(x2?y2)dx_2\mathrm{=}-\sigma\left(x_2-y_2\right)dx2?=?σ(x2??y2?) |
| dy1=x1+ay1dy_1=x_1+ay_1dy1?=x1?+ay1? | dy2=rx2?y2?x2z2+K(y2?y1)dy_2\mathrm{=}rx_2-y_2-x_2z_2+K(y_2-y_1)dy2?=rx2??y2??x2?z2?+K(y2??y1?) |
| dz1=b+z(x1?c)dz_1=b+z\left(x_1-c\right)dz1?=b+z(x1??c) | dz2=?βz2+x2y2dz_2\mathrm{=}-\beta\ z_2+x_2y_2dz2?=?β?z2?+x2?y2? |
其中KKK是耦合強度。
驅動的Rossler系統直接使用定步長的ode45函數計算,方便簡潔,可參考以下程序:
Rossler的吸引子如下,可以看出,與Lorenz的蝴蝶型吸引子完全不相同。
而對于從系統,只需要在之前文章MATLAB混沌系統仿真其一:Lorenz系統和Rossler系統的基礎上,修改Lorenz系統公式,加入上述Rossler系統yyy分量的擴散耦合項,然后進行正常迭代求解即可。
同時,為了追求更直觀地顯示結果,這里修改了以前其一中寫的rk4函數(使用ode也可以完成),將注入時間設定為100,然后不斷增加注入強度,觀察兩個系統輸出的yyy分量波形的比較。
修改后的完整程序已經上傳,可以直接下載運行對應程序
三、混沌同步結果
可以看出,在非線性系統中,使用子系統驅動另一個非線性系統(就像此處的使用Rossler系統的yyy分量驅動Lorenz的yyy分量),在耦合強度KKK足夠大,超過臨界耦合條件,可以達成兩系統的同步。
不同的驅動方式和不同的系統在混沌同步中具有不同的表現,耦合方式也不僅有擴散耦合,如Deniz Eroglu在17年的論文里直接使用兩個初值不同的Lorenz系統,但兩個系統的xxx分量相同。本文的混沌同步是不完全的同步(因為驅動-響應并非相同的系統),屬于廣義同步,但是這樣的同步已經足夠用于通信。在一些文章的理論分析與實驗結果中,驅動-響應系統越接近,則同步效果越好。電路系統可以輕易達成混沌同步,但由于帶寬限制和衰減,電路的混沌通信受到嚴重限制,全光混沌通信雖然對器件的要求更高,但是其通信的高速率與高帶寬,使其在未來更具有潛力。
總結
以上是生活随笔為你收集整理的MATLAB系统仿真其三:Lorenz和Rossler系统混沌同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PTA练习题错题归纳
- 下一篇: 手撕 Golang 高性能内存缓存库 b