当前位置:文档之家› 连续时间混沌系统MATLAB程序和SIMULINK模型

连续时间混沌系统MATLAB程序和SIMULINK模型

第6章连续时间混沌系统本章讨论连续时间混沌系统的基本特点与分析方法,主要包括混沌数值仿真和硬件实验方法简介、混沌系数平衡点的计算、平衡点的分类与性质、相空间中的轨道、几类典型连续混沌系统的介绍、混沌机理的分析方法、用特征向量空间法寻找异宿轨道、Lorenz系统及混沌机理定性分析、Lorenz映射、Poincare截面、Chua系统及其混沌机理定性分析、时间序列与相空间重构等内容。

6.1 混沌数值仿真和硬件实验方法简介混沌的数值仿真主要包括MA TLAB编程、SIMULINK模块构建、EWB仿真以及其他一些相关的软件仿真或数值计算等方法,从而获取混沌吸引子的相图、时域波形图、李氏指数、分叉图和功率谱等。

混沌的硬件实验主要包括模拟/数字电路设计与硬件实验、现场可编程门阵列器件(FPGA)、数字信号处理器(DSP)等硬件实现方法来产生混沌信号。

本节仅对各种数值仿真方法作简单介绍。

1)混沌系统的MA TLAB数值仿真该方法主要根据混沌系统的状态方程来编写MA TLAB程序。

现举二例来说明这种编程方法。

(1)已知Lorenz系统的状态方程为dx/dt=-a(x-y)dy/dt=bx-xz-ydz/dt=-cz+xy式中a=10,b=30,c=8/3。

MA TLAB仿真程序如下:>> %**************************************************Function dxdt=lorenz(t,x)%除符号dxdt外,还可用其他编程者习惯的有意义的符号A=10;B=30;C=8/3;dxdt=zeros(3,1);dxdt(1)=-A*(x(1)-x(2));dxdt(2)=B*x(1)-x(1).*x(3)-x(2);dxdt(3)=x(1)*x(2)-C*x(3);%*************************************************options=odeset('RelTol',1e-6,'AbsTol',[ 1e-6 1e-6 1e-6]);t0=[0 200];x0=[0.02,0.01,0.03];[t,x]=ode45('lorenz',t0,x0,options);%**************************************************n=length(t)n1=round(n/2)%n1=1;%**************************************************figure(1);plot(t(n1:n,1),x(n1:n,1));xlabel('t','fontsize',20,'fontname','times new roman','FontAngle','italic');ylabel('x','fontsize',20,'fontname','times new roman','FontAngle','italic');figure(2);plot(x(n1:n,1),x(n1:n,3));xlabel('x','fontsize',20,'fontname','times new roman','FontAngle','italic');ylabel('z','fontsize',20,'fontname','times new roman','FontAngle','italic');%*******************************************************************根据上述MA TLAB程序,得Lorenz系统的时域波形图和混沌吸引子相图的数值仿真结果如图6-1所示。

图6-1 Lorenz系统的时域波形图和混沌吸引子相图的MATLAB数值仿真结果(2)已知Chua系统的状态方程为dx=a[y-f(x)]dy=x-y+zdz=-by式中a=10,b=15,m0=-1/7,m1=2/7,f(x)=m1*x+0.5(m0-m1)[|x+1|-|x-1|]为三分段非线性函数MA TLAB仿真如下:function dxdt=chua(t,x)m0=-1/7;m1=2/7;a=10;b=15;%*******************************************dxdt=zeros(3,1);f=m1*x(1)+0.5*(m0-m1)*(abs(x(1)+1)-abs(x(1)-1));dxdt(1)=a*(x(2)-f);dxdt(2)=x(1)-x(2)+x(3);dxdt(3)=-b*x(2);%*****************************************************options=odeset('RelTol',1e-6,'AbsTol',[1e-6 1e-6 1e-6]);t0=[0 5e+2];x0=[0.01 0.02 0.03];[t,x]=ode45('chua',t0,x0,options);%****************************************************n=length(t)n1=round(n/2)%****************************************************** figure(1);plot(t(n1:n),x(n1:n,1));xlabel('t','fontsize',20,'fontname','times new roman','FontAngle','italic'); ylabel('x','fontsize',20,'fontname','times new roman','FontAngle','italic'); figure(2);plot(x(n1:n,1),x(n1:n,2));xlabel('x','fontsize',20,'fontname','times new roman','FontAngle','italic'); ylabel('y','fontsize',20,'fontname','times new roman','FontAngle','italic'); %********************************************************根据上述MA TLAB 程序,得Chua 系统的时域波形图和混沌吸引子相图的数值仿真结果如图6-2所示。

图6-2 Chua 系统的时域波形图和混沌吸引子相图的MATLAB 数值仿真结果2) 混沌系统的SIMULINK 仿真该方法主要是根据混沌系统的状态方程,将其转换成积分方程,利用模块和积分算子画出SIMULINK 的模块化仿真图。

为保证计算的精确度,又不使仿真时间过长,应对仿真图中几个重要参数进行设置。

第一个参数是仿真时间:第二个参数是相对误差,通常设为1010-;第三个参数是绝对误差,通常设为1310-,现举二例来说明这种编程方法。

(1) 已知Lorenz 系统的状态方程仍如(6-1)式,将其转换成积分方程:dx/dt=-a(x-y) ⎰--=dt y x a x )]([dy/dt=bx-xz-y ⎰--=dty xz bxy ][ dz/dt=-cz+xy⎰+-=dtxy czz ][注意 ,SIMULINK 仿真中的微分子算子为S ,积分算子为S1,故得SIMULINK 的仿真如图6-3所示,设其文件名为“simulink_lorenz ”,再利用文件名为“y_simulink_lorenz ”的程序运行“simulink_lorenz ”。

程序如下:[t,x]=sim('simulink_lorenz',200);n=length(t)n1=round(n/2)%*********************************************figure(1);plot(t(n1:n,1),x(n1:n,1));xlabel('t','fontsize',20,'fontname','times new roman','FontAngle','italic');ylabel('x','fontsize',20,'fontname','times new roman','FontAngle’,'italic');figure(2);plot(x(n1:n,1),x(n1:n,3));xlabel('x','fontsize',20,'fontname','times new roman','FontAngle','italic');ylabel('z','fontsize',20,'fontname','times new roman','FontAngle','italic');%********************************************************运行结果仍如图6-1所示。

相关主题