Matlab软件在时滞混沌系统仿真实验中的应用

2022-02-17 00:29赵海滨,颜世玉
电脑知识与技术 2022年35期
关键词:数值仿真仿真实验

赵海滨,颜世玉

摘要:时滞混沌系统具有非常复杂的动力学行为,在保密通信和图像加密等领域具有广泛的应用前景。对于三种常见的时滞混沌系统:时滞Liu混沌系统、时滞Chen混沌系统和时滞Rössler混沌系统,采用Matlab软件进行数值仿真,给出了对应的脚本程序,并绘制状态变量的二维相图。通过数值仿真,可以使学生对时滞混沌系统有更加直观的认识,加深对时滞混沌系统的理论理解。

关键词:时滞混沌;数值仿真;Matlab;仿真实验

中图分类号:TP273        文献标识码:A

文章编号:1009-3044(2022)35-0096-03

1 概述

混沌是一种复杂的自然现象,对初始值非常敏感,并具有长期不可预测性和伪随机性等特点,可以用于保密通信和数据加密[1-2]。在实际的工程系统中,时滞现象是广泛存在的。在混沌系统的微分方程中,添加时滞项后得到的时滞混沌系统具有非常复杂的动力学行为。时滞混沌系统的维数是无穷维的,即具有无穷多个自由度,动力学行为比非时滞混沌系统更加复杂。时滞混沌系统的同步控制是非线性领域研究的热门课题之一[3-4]。时滞混沌系统提高了混沌系统的复杂度,在保密通信和图像加密等领域都具有广泛的应用前景[5]。

本文对三种常见的时滞混沌系统采用Matlab语言进行数值仿真。三种时滞混沌系统分别是时滞Liu混沌系统、时滞Chen混沌系统和时滞Rössler混沌系统。Matlab软件功能强大,应用广泛,非常适合进行混沌系统的数值仿真[6-7]。在Matlab软件中采用函数dde23进行时滞混沌的数值仿真[8],给出了对应的脚本程序,采用函数plot绘制状态变量的二维相图。本文将Matlab软件用于时滞混沌系统的实验教学,通过数值仿真,使学生对时滞混沌系统有更加直观的认识,加深对时滞混沌系统的理论理解。

2 时滞Liu混沌

时滞Liu混沌系统,可以表示为:

[x1(t)=x3(t)-ax1(t)+x1(t)x2(t-τ2)x2(t)=1-bx2(t)-x21(t-τ1)x3(t)=-x1(t-τ1)-cx3]      (1)

其中,[x1],[x2]和[x3]为时滞Liu混沌系统的状态变量,[t]为时间,[a],[b]和[c]为常数,[τ1]和[τ2]为延迟时间常数。

对于时滞Liu混沌系统,当参数设定为[a=0.2],[b=0.5],[c=0.1],[τ1=0.4]和[τ2=0.1]时,该系统处于混沌状态。当[τ1≤t≤0]时,初始值设定为[(x1(t),x2(t),x3(t))=(1.0,1.0,1.0)],采用函数dde23进行数值仿真。仿真时间设定为300秒,步长为0.001秒。时滞Liu混沌系统进行数值仿真时,Matlab脚本程序如下:

clear; clc; close all;

a=0.2; b=0.5; c=0.1;

tau=[0.4, 0.1]; history=[1; 1; 1]; tf=300;

Liu=@(t,x,Z) [x(3)-a*x(1)+x(1)*Z(2,2);

1-b*x(2)-Z(1,1)^2; -Z(1,1)-c*x(3)];

sol=dde23(Liu, tau, history, [0,tf]);

fs=1000; t=linspace(0,tf,tf*fs);

x=deval(sol,t);

figure; plot(x(1,:), x(2,:), 'b');

grid on; xlabel('x1(t)'); ylabel('x2(t)');

figure; plot(x(1,:), x(3,:), 'b');

grid on; xlabel('x1(t)'); ylabel('x3(t)');

在腳本程序中,建立匿名函数Liu,然后采用函数dde23进行数值仿真,通过函数plot绘制状态变量的二维相图。时滞Liu混沌系统中,状态变量[x1]和[x2]的二维相图,如图1所示,状态变量[x1]和[x3]的二维相图如图2所示。由图1和图2可以看到该系统处于混沌状态。

3 时滞Chen混沌

三维Chen混沌系统,状态方程表示为:

[x1(t)=a(x2(t)-x1(t))x2(t)=(c-a)x1(t)-x1(t)x3(t)+cx2(t)x3(t)=x1(t)x2(t)-bx3(t)]      (2)

其中,[x1],[x2]和[x3]为Chen混沌系统的状态变量, [a],[b]和[c]为常数,[t]为时间。

在Chen混沌系统的第三个微分方程中,添加时滞控制项,得到时滞Chen混沌系统,表示为:

[x1(t)=a(x2(t)-x1(t))x2(t)=(c-a)x1(t)-x1(t)x3(t)+cx2(t)x3(t)=x1(t)x2(t)-bx3(t)+k(x3(t)-x3(t-τ))]   (3)

其中,[x1],[x2]和[x3]为时滞Chen混沌系统的状态变量,[t]为时间,[a],[b],[c]和[k]为常数,[τ]为延迟时间常数。

对于时滞Chen混沌系统,当参数设定为[a=35],[b=3.0],[c=18.5],[k=3.8]和[τ=0.3]时,该系统处于混沌状态。对于时滞Chen混沌系统,当[τ≤t≤0]时,系统的初始值设定为[(x1(t),x2(t),x3(t))=(1.5,1.5,2.0)],采用函数dde23进行数值仿真。仿真时间设定为40秒,步长为0.001秒。时滞Chen混沌系统的MATLAB脚本程序如下:

clear; clc; close all;

a=35; b=3; c=18.5; k=3.8;

tau=0.3; history=[1.5; 1.5; 2]; tf=40;

Chen=@(t,x,Z)[a*(x(2)-x(1));(c-a)*x(1)-x(1)*x(3)

+c*x(2); x(1)*x(2)-b*x(3)+k*(x(3)-Z(3,1))];

sol=dde23(Chen, tau, history, [0,tf]);

fs=1000; t=linspace(0,tf,tf*fs);

x=deval(sol,t);

figure; plot(x(1,:), x(2,:), 'b');

grid on; xlabel('x1(t)'); ylabel('x2(t)');

figure; plot(x(1,:), x(3,:), 'b');

grid on; xlabel('x1(t)'); ylabel('x3(t)');

在脚本程序中,建立匿名函数Chen,然后采用函数dde23进行数值仿真,通过函数plot绘制状态变量的二维相图。时滞Chen混沌系统中,状态变量[x1]和[x2]的二维相图如图3所示,状态变量[x1]和[x3]的二维相图如图4所示,系统处于混沌状态。

4 时滞Rössler混沌

三维Rössler混沌系统的状态方程为:

[x1(t)=-x2(t)-x3(t)x2(t)=x1(t)+bx2(t)x3(t)=b+x1(t)x3(t)-cx3(t)]            (4)

其中,[x1],[x2]和[x3]为状态变量,[t]为时间,[b]和[c]为常数。当[b=0.2],[c=5.7]时,Rössler系统处于混沌状态。

在Rössler混沌的第一个微分方程中添加两个时滞项,可以得到时滞Rössler混沌系统,表示为:

[x1(t)=-x2(t)-x3(t)+a1x1(t-τ1)+a2x1(t-τ2)x2(t)=x1(t)+bx2(t)x3(t)=b+x1(t)x3(t)-cx3(t)]    (5)

其中,[x1],[x2]和[x3]为时滞Rössler混沌系统的状态变量,[t]为时间,[a1],[a2],[b]和[c]为常数,[τ1]和[τ2]为延迟时间常数。

对于时滞Rössler混沌系统,参数设定为[a1=0.2],[a2=0.5],[b=0.2],[c=5.7],[τ1=1.0],[τ2=2.0]时,系统处于混沌状态。当[τ2≤t≤0]时,初始值设定为[(x1(t),x2(t),x3(t))=(3.0,0.3,5.0)]时,采用函数dde23进行数值仿真。仿真时间为300秒,步长为0.001秒。时滞Rössler混沌数值仿真的Matlab脚本程序如下:

clear; clc; close all;

a1=0.2; a2=0.5; b=0.2; c=5.7;

tau=[1, 2]; history=[3; 0.3; 5]; tf=300;

Rossler=@(t,x,Z) [-x(2)-x(3)+a1*Z(1,1)+a2*Z(1,2);

x(1)+b*x(2); b+x(1)*x(3)-c*x(3)];

sol=dde23(Rossler, tau, history, [0,tf]);

fs=1000; t=linspace(0,tf,tf*fs);

x=deval(sol,t);

figure; plot(x(1,:), x(2,:), 'b');

grid on; xlabel('x1(t)'); ylabel('x2(t)');

figure; plot(x(2,:), x(3,:), 'b');

grid on; xlabel('x2(t)'); ylabel('x3(t)');

在腳本程序中,根据时滞Rössler混沌的状态方程建立匿名函数,然后采用函数dde23进行数值仿真,通过函数plot绘制状态变量的二维相图。时滞Rössler混沌系统中,状态变量[x1]和[x2]的二维相图如图5所示,状态变量[x2]和[x3]的二维相图如图6所示。由图5和图6可以看到时滞Rössler系统处于混沌状态。

5 结论

时滞混沌系统具有复杂的动力学行为,在保密通信和图像加密等领域有广泛的应用前景。本文对三种常见的时滞混沌系统采用Matlab软件进行数值仿真。通过Matlab软件的函数dde23进行时滞微分方程的求解,并采用函数plot绘制状态变量的二维相图,给出了对应的脚本程序。时滞混沌系统比较抽象不容易理解。本文将Matlab软件用于时滞混沌系统的实验教学,通过该仿真实验使学生对时滞混沌系统有更加直观的认识,加深对时滞混沌系统的理论理解。

参考文献:

[1] 杨文涛,叶欢,李子龙,等.基于一类复混沌系统的图像加密研究[J].齐鲁工业大学学报,2021,35(6):73-80.

[2] 方鹏飞,黄陆光,娄苗苗,等.基于四维超混沌系统的彩色图像加密算法[J].计算机工程与设计,2022,43(2):361-369.

[3] 陈亚英,姚凤麒.混沌时变时滞系统的有限时间脉冲同步[J].湖北民族大学学报(自然科学版),2020,38(4):446-452.

[4] 高俊山,张玉双,邓立为.时滞混沌系统的鲁棒自适应容错同步控制[J].计算机仿真,2020,37(6):247-251,261.

[5] 林周彬,罗松江,高俊杰.一种基于忆阻时滞混沌系统的图像加密方法[J].仲恺农业工程学院学报,2021,34(2):60-63.

[6] 赵海滨,于清文,刘冲,等.基于Matlab/Simulink的混沌同步控制实验[J].实验室研究与探索,2019,38(1):16-19.

[7] 赵海滨,于清文,颜世玉.混沌系统的有限时间投影同步控制仿真实验[J].中国现代教育装备,2020(3):15-17.

[8] 吐克孜·艾肯,阿布都热西提·阿布都外力.一类具有时滞的微分代数系统解的数值算法实现[J].山西师范大学学报(自然科学版),2013,27(3):11-16.

【通联编辑:王力】

猜你喜欢
数值仿真仿真实验
多自由度本船操纵运动仿真
开展体验式教学创新研究 提高化学课堂有效性
基于VOF方法小型赛车燃油晃动数值仿真
基于多重视阈下的《电子控制技术》课程的教学探讨
计算数据中心的动态数据聚集算法研究