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

上传人:b****3 文档编号:2497322 上传时间:2022-10-30 格式:DOC 页数:9 大小:229.50KB
下载 相关 举报
连续时间混沌系统MATLAB程序和SIMULINK模型.doc_第1页
第1页 / 共9页
连续时间混沌系统MATLAB程序和SIMULINK模型.doc_第2页
第2页 / 共9页
连续时间混沌系统MATLAB程序和SIMULINK模型.doc_第3页
第3页 / 共9页
连续时间混沌系统MATLAB程序和SIMULINK模型.doc_第4页
第4页 / 共9页
连续时间混沌系统MATLAB程序和SIMULINK模型.doc_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

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

《连续时间混沌系统MATLAB程序和SIMULINK模型.doc》由会员分享,可在线阅读,更多相关《连续时间混沌系统MATLAB程序和SIMULINK模型.doc(9页珍藏版)》请在冰豆网上搜索。

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

第6章连续时间混沌系统

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

6.1混沌数值仿真和硬件实验方法简介

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

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

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

1)混沌系统的MATLAB数值仿真

该方法主要根据混沌系统的状态方程来编写MATLAB程序。

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

(1)已知Lorenz系统的状态方程为

dx/dt=-a(x-y)

dy/dt=bx-xz-y

dz/dt=-cz+xy

式中a=10,b=30,c=8/3。

MATLAB仿真程序如下:

>>%**************************************************

Functiondxdt=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-61e-61e-6]);

t0=[0200];

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','timesnewroman','FontAngle','italic');

ylabel('x','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

figure

(2);

plot(x(n1:

n,1),x(n1:

n,3));

xlabel('x','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

ylabel('z','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

%*******************************************************************

根据上述MATLAB程序,得Lorenz系统的时域波形图和混沌吸引子相图的数值仿真结果如图6-1所示。

图6-1Lorenz系统的时域波形图和混沌吸引子相图的MATLAB数值仿真结果

(2)已知Chua系统的状态方程为

dx=a[y-f(x)]

dy=x-y+z

dz=-by

式中a=10,b=15,m0=-1/7,m1=2/7,f(x)=m1*x+0.5(m0-m1)[|x+1|-|x-1|]为三分段非线性函数

MATLAB仿真如下:

functiondxdt=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-61e-61e-6]);

t0=[05e+2];

x0=[0.010.020.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','timesnewroman','FontAngle','italic');

ylabel('x','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

figure

(2);

plot(x(n1:

n,1),x(n1:

n,2));

xlabel('x','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

ylabel('y','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

%********************************************************

根据上述MATLAB程序,得Chua系统的时域波形图和混沌吸引子相图的数值仿真结果如图6-2所示。

图6-2Chua系统的时域波形图和混沌吸引子相图的MATLAB数值仿真结果

2)混沌系统的SIMULINK仿真

该方法主要是根据混沌系统的状态方程,将其转换成积分方程,利用模块和积分算子画出SIMULINK的模块化仿真图。

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

第一个参数是仿真时间:

第二个参数是相对误差,通常设为;第三个参数是绝对误差,通常设为,现举二例来说明这种编程方法。

(1)已知Lorenz系统的状态方程仍如(6-1)式,将其转换成积分方程:

dx/dt=-a(x-y)

dy/dt=bx-xz-y

dz/dt=-cz+xy

注意,SIMULINK仿真中的微分子算子为S,积分算子为,故得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','timesnewroman','FontAngle','italic');

ylabel('x','fontsize',20,'fontname','timesnewroman','FontAngle’,'italic');

figure

(2);

plot(x(n1:

n,1),x(n1:

n,3));

xlabel('x','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

ylabel('z','fontsize',20,'fontname','timesnewroman','FontAngle','italic');

%********************************************************

运行结果仍如图6-1所示。

图6-3Lorenz系统的SIMULINK仿真图

(2)已知Chua系统的状态方程仍如(6-2)式,得SIMULINK的仿真图如图6-4所示。

设其文件名为“simulink_chua”,再利用文件名为“y_simulink_chua”的程序运行“simulink_chua”。

程序如下:

%*******************************************

%globala;

a=10;

[t,x]=sim('simulink_chua',500);

n=length(t)

n1=round(n/2)

%********************************************

figure

(1);

plot(t(n1:

n,1),x(n1:

n,1));

xlabel('t','fontsize',20,'fontname','timesnewroman','FontAngel','italic');

ylabel('x','fontsize',20,'fontname','timesnewroman','FontAngel','italic');

figure

(2);

plot(x(n1:

n,1),x(n1:

n,2));

xlabel('x','fontsize',20,'fontname','timesnewroman','FontAngel','italic');

ylabel('y','fontsize',20,'fontname','timesnewroman','FontAngel','italic');

运行结果仍如图6-2所示。

(a)SIMULINK主框图 (b)三分段线性函数f的SIMULINK子框图

图6-4Chua系统的SIMULINK仿真图

3)连续混沌系统离散化的MATLAB数值仿真

当用DSP和FPGA等现代数字器件来产生混沌信号时,首先需要将连续混沌系统作离散化处理。

离散化和数字化处理方法主要有三种,利用这些离散化的方法,可将状态方程变成差分方程,这些方法将在后续章节中详细介绍。

这里采用了一种较简单的Euler算法。

(1)已知Lorenz系统的状态方程仍如(6-1)式,根据Euler算法

得对应的差分方程为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1