混沌是确定性系统中,有限相空间内的高度不稳定运动。自1963年Lorenz证明大气对流模型中存在混沌,非线性系统的混沌被广泛研究。人们一方面希望电路产生混沌,另一方面又希望混沌是可控的,以此来达到混沌通信或者混沌控制的目的,因此混沌同步是必不可少的。1991年,美国海军实验室的Pecora和Carroll研究 维动态系统驱动同步问题时,得出了子系统同步的必要条件:子系统分量的李亚普诺夫指数全为负。本文是非线性系统混沌同步的MATLAB仿真。
首先考虑典型参数的Lorenz系统和Rossler系统,系统设置详见以往的文章MATLAB混沌系统仿真其一:Lorenz系统和Rossler系统。根据文章的研究结果,典型参数下,相同系统主从式驱动时,其响应系统的三个分量的李亚普诺夫指数分别如下:
因此使用 y y y分量驱动的Rossler系统、使用 x x x或 z z z分量驱动的Lorenz系统可以混沌同步。利用混沌同步进行电路通信的仿真与实验也早已做出。
在他们后续的研究中,混沌的同步可以拓展到更大范围,比如完全不同的两个非线性系统,在合适的条件下驱动也可以达成混沌同步(可见其97年的相关专著),当然,通常是增加注入强度。
这就非常有意思了,不妨仿真其在文章中证明可以同步的系统:这里采用扩散耦合的方式使用Rossler系统的 y y y分量驱动Lorenz系统:
Rossler系统 | Lorenz系统 |
---|---|
d x 1 = − ( y 1 + z 1 ) dx_1=-\left(y_1+z_1\right) dx1=−(y1+z1) | d x 2 = − σ ( x 2 − y 2 ) dx_2\mathrm{=}-\sigma\left(x_2-y_2\right) dx2=−σ(x2−y2) |
d y 1 = x 1 + a y 1 dy_1=x_1+ay_1 dy1=x1+ay1 | d y 2 = r x 2 − y 2 − x 2 z 2 + K ( y 2 − y 1 ) dy_2\mathrm{=}rx_2-y_2-x_2z_2+K(y_2-y_1) dy2=rx2−y2−x2z2+K(y2−y1) |
d z 1 = b + z ( x 1 − c ) dz_1=b+z\left(x_1-c\right) dz1=b+z(x1−c) | d z 2 = − β z 2 + x 2 y 2 dz_2\mathrm{=}-\beta\ z_2+x_2y_2 dz2=−β z2+x2y2 |
其中 K K K是耦合强度。
驱动的Rossler系统直接使用定步长的ode45函数计算,方便简洁,可参考以下程序:
y0=[1;0;1];%初值矩阵
tspan=0:0.001:200;
k=40;%耦合强度
t0=100;%注入时间
[t,y]=ode45(@rossler,tspan,y0);
Rossler的吸引子如下,可以看出,与Lorenz的蝴蝶型吸引子完全不相同。
而对于从系统,只需要在之前文章MATLAB混沌系统仿真其一:Lorenz系统和Rossler系统的基础上,修改Lorenz系统公式,加入上述Rossler系统 y y y分量的扩散耦合项,然后进行正常迭代求解即可。
同时,为了追求更直观地显示结果,这里修改了以前其一中写的rk4函数(使用ode也可以完成),将注入时间设定为100,然后不断增加注入强度,观察两个系统输出的 y y y分量波形的比较。
修改后的完整程序已经上传,可以直接下载运行对应程序
可以看出,在非线性系统中,使用子系统驱动另一个非线性系统(就像此处的使用Rossler系统的 y y y分量驱动Lorenz的 y y y分量),在耦合强度 K K K足够大,超过临界耦合条件,可以达成两系统的同步。
不同的驱动方式和不同的系统在混沌同步中具有不同的表现,耦合方式也不仅有扩散耦合,如Deniz Eroglu在17年的论文里直接使用两个初值不同的Lorenz系统,但两个系统的 x x x分量相同。本文的混沌同步是不完全的同步(因为驱动-响应并非相同的系统),属于广义同步,但是这样的同步已经足够用于通信。在一些文章的理论分析与实验结果中,驱动-响应系统越接近,则同步效果越好。电路系统可以轻易达成混沌同步,但由于带宽限制和衰减,电路的混沌通信受到严重限制,全光混沌通信虽然对器件的要求更高,但是其通信的高速率与高带宽,使其在未来更具有潜力。