【Lorenz混沌】基于FPGA的Lorenz混沌系统verilog实现

1.软件版本

matlab2021a,quartusii

2.本算法理论知识

Lorenz在1963年洛伦兹在研究大气对流现象时,发现了第一个结构简单的三维自治混沌系统,这就是著名的“蝴蝶效应”模型,其数学模型为:

    

 

当r≤1时,对所有的x,y,z都成立,等式仅在r<1,x=y=z=0和r=1,x=y,z=0时才成立。

当r>1时,系统开始出现不稳定性,当r增加至rc时,有一个亚临界的Hopf分岔。

当r>rc时,在吸引子附近相邻的轨道平均来说是以指数分离的,所以两条开始在一起非常接近的轨道很快丧失所有的相关性,呈现混沌状。

3.核心代码


% Dx=(25a+10)(y-x)
% Dy=(28-35a)x-xz+(29a-1)y
% Dz=xy-(a+8)z/3
% 当0<=a<0.8,广义Lorenz系统
% 当a=0.8,广义吕系统
% 当0.8<a<=1,广义陈系统
clear;clc


 x=1.2;y=1.3;z=1.6;
%x=1 ;y=1 ;z=1 ;

dt=0.005;
a=10.0;c=28.0;b=2.666667;
figure;
for i=1:10000
    newx=x+a*(y-x)*dt;
    newy=y+(c*x-y-x*z)*dt;
    newz=z+(x*y-b*z)*dt;
    if i>1000
 %   plot(x,y)
    % plot(x,z)
    % plot(y,z)
     plot3(x,y,z)
    hold on
    end
    x=newx;y=newy;z=newz;
end

figure;
for i=1:10000
    newx=x+a*(y-x)*dt;
    newy=y+(c*x-y-x*z)*dt;
    newz=z+(x*y-b*z)*dt;
    if i>1000
    plot(x,y)
    % plot(x,z)
    % plot(y,z)
     %plot3(x,y,z)
    hold on
    end
    x=newx;y=newy;z=newz;
end


figure;
for i=1:10000
    newx=x+a*(y-x)*dt;
    newy=y+(c*x-y-x*z)*dt;
    newz=z+(x*y-b*z)*dt;
    if i>1000
   % plot(x,y)
     plot(x,z)
    % plot(y,z)
     %plot3(x,y,z)
    hold on
    end
    x=newx;y=newy;z=newz;
end


figure;
for i=1:10000
    newx=x+a*(y-x)*dt;
    newy=y+(c*x-y-x*z)*dt;
    newz=z+(x*y-b*z)*dt;
    if i>1000
    %plot(x,y)
    % plot(x,z)
     plot(y,z)
     %plot3(x,y,z)
    hold on
    end
    x=newx;y=newy;z=newz;
end

 4.操作步骤与仿真结论

    对系统进行功能仿真:得到如下的结果:

图1 系统总体仿真结果

图2 系统总体仿真局部结果

5.参考文献

[01]洛伦兹EN.混沌的本质.刘式达等译.气象出版社,1997

[02]刘秉正.非线性动力学与混沌基础.长春:东北师范大学出版社,1994

[03]吴祥兴,陈忠.混沌学导论.上海:上海科学技术出版社,1996

[04]李小春,朱双鹤等.混沌信号产生电路的研究.空军工程大学学报,2001

A07-04

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/124395914
今日推荐