连续时间混沌系统MATLAB程序和SIMULINK模型Word文档下载推荐.doc
《连续时间混沌系统MATLAB程序和SIMULINK模型Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《连续时间混沌系统MATLAB程序和SIMULINK模型Word文档下载推荐.doc(9页珍藏版)》请在冰豆网上搜索。
式中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'
figure
(2);
plot(x(n1:
n,3));
z'
%*******************************************************************
根据上述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;
%*******************************************
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);
%*****************************************************
[1e-61e-61e-6]);
t0=[05e+2];
x0=[0.010.020.03];
chua'
%****************************************************
%******************************************************
n),x(n1:
n,2));
y'
%********************************************************
根据上述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)
%*********************************************
FontAngle’,'
运行结果仍如图6-1所示。
图6-3Lorenz系统的SIMULINK仿真图
(2)已知Chua系统的状态方程仍如(6-2)式,得SIMULINK的仿真图如图6-4所示。
设其文件名为“simulink_chua”,再利用文件名为“y_simulink_chua”的程序运行“simulink_chua”。
%*******************************************
%globala;
a=10;
simulink_chua'
500);
%********************************************
figure
(1);
plot(t(n1:
FontAngel'
运行结果仍如图6-2所示。
(a)SIMULINK主框图 (b)三分段线性函数f的SIMULINK子框图
图6-4Chua系统的SIMULINK仿真图
3)连续混沌系统离散化的MATLAB数值仿真
当用DSP和FPGA等现代数字器件来产生混沌信号时,首先需要将连续混沌系统作离散化处理。
离散化和数字化处理方法主要有三种,利用这些离散化的方法,可将状态方程变成差分方程,这些方法将在后续章节中详细介绍。
这里采用了一种较简单的Euler算法。
(1)已知Lorenz系统的状态方程仍如(6-1)式,根据Euler算法
得对应的差分方程为