简化Lorenz混沌仿真和控制实验平台开发

2020-07-04 02:39赵海滨于清文颜世玉
中国教育技术装备 2020年6期
关键词:Python语言实验平台仿真实验

赵海滨 于清文 颜世玉

摘  要 采用Python语言建立简化Lorenz混沌仿真和控制实验平台,能够进行简化Lorenz混沌的仿真和镇定控制。采用Tkinter建立軟件的GUI界面,并采用Matplotlib进行图形的绘制,可以修改混沌系统的参数和初始状态以及控制器的参数。采用主动控制器进行简化Lorenz混沌的镇定控制,状态变量渐进收敛到零。该实验平台可以进行简化Lorenz混沌的仿真和镇定控制,能够提高学生创新实验技能和工程实践能力。

关键词 简化Lorenz混沌;实验平台;仿真实验;Python语言

中图分类号:TP391.9    文献标识码:B

文章编号:1671-489X(2020)06-0032-03

Experimental Platform Development of Simplified Lorenz Chao-

tic System Simulation and Control//ZHAO Haibin, YU Qingwen, YAN Shiyu

Abstract A simulation and control experiment platform of simplified Lorenz chaotic system is established by Python, which can simulate and stabilize Lorenz chaos. The GUI of the software is built by Tkinter, and the graph is drawn by Matplotlib. The parameters of chaos system, initial state and controller can be modified. The active controller is used to stabilize simplified Lorenz chaotic system, and the state variables converges to zero gradually. The experimental platform can simulate and stabilize simplified Lorenz chaotic system, and improve students innovative experimental skills and engineering practice ability.

Key words simplified Lorenz chaos; experimental platform; simula-tion experiment; Python language

1 引言

混沌是非线性动力系统的固有特性,对初始条件具有极端的敏感性,是非线性系统普遍存在的现象,广泛存在于自然界和人类社会中。混沌理论研究的关键就在于混沌系统的控制和利用。混沌理论在保密通信和信息加密等众多领域被广泛研究和应用,具有重大的研究价值和诱人的应用前景,是目前研究的热点[1]。1963年,气象学家Lorenz发现第一个混沌吸引子。继Lorenz混沌系统之后,Chen混沌和Liu混沌系统等相继被提出,这些系统与Lorenz混沌系统相比具有不同的拓扑结构。

近年来,各种新混沌系统不断被发现。孙克辉等对经典Lorenz混沌系统进行简化,得到单参数混沌系统,即简化Lorenz混沌系统[2-3]。简化Lorenz混沌系统能够通过硬件电路实现,具有丰富的动力学特性[4-5]。本文以简化Lorenz混沌系统为研究对象,采用Python语言建立仿真和控制实验平台。

Python语言是一种跨平台的解释型、面向对象、动态的高级程序设计语言,具有简洁性、易读性和可扩展性,已经成为最受欢迎的程序设计语言之一,很多科研机构和大学都采用Python语言作为程序设计语言[6-7]。Python语言简单易学,广泛用于仿真实验系统的设计中[8-10]。在实验平台设计中,采用Python语言自带的Tkinter建立软件的人机交互界面,并采用Matplotlib库进行二维图形的绘制,采用SciPy库中的odeint函数求解常微分方程。根据简化Lorenz混沌的状态方程,设计主动控制器进行镇定控制,状态变量渐进收敛到零。该仿真实验平台具有良好的可控性、重复性和经济性等优点,能够激发学生的学习兴趣,提高学生创新实验技能和工程实践能力。

2 简化Lorenz混沌

混沌具有伪随机性、对初始值非常敏感等特性,可以用于保密通信和信息加密等工程领域。经典Lorenz混沌系统具有三个参数。孙克辉等对经典Lorenz混沌系统进行简化,得到单参数简化Lorenz混沌系统。简化Lorenz混沌系统的状态方程表示为:

其中,x,y和z为简化Lorenz混沌系统的状态变量,c为系统参数。当c∈[-1.59,7.75]时,简化Lorenz系统大部分处于混沌状态。当c=-1时,简化Lorenz混沌系统是经典的Lorenz混沌系统;当c=0时,简化Lorenz混沌系统的第二个方程中不含y项;当c=6时,简化Lorenz混沌系统的第二个方程中不含x项。

简化Lorenz混沌系统具有丰富的动力学特性。简化Lorenz混沌系统可以通过运算放大器、电阻、电容和乘法器等组成的模拟电路实现,通过调节电阻值来改变系统的参数,可以观察到混沌现象。

3 主动控制器

主动控制方法具有设计简单、收敛速度快等优点,广泛用于混沌系统的镇定控制。对于简化Lorenz混沌系统,设计主动控制器进行系统的镇定控制,状态变量渐进收敛到零。带有控制输入的简化Lorenz混沌系统表示为:

其中,ui为控制输入,且i=1,2,3。通过控制输入对简化Lorenz混沌系统进行镇定控制,状态变量渐进收敛到零。采用主动控制方法进行控制器的设计,控制器设计为:

其中,参数ki为常数,且ki<0,i=1,2,3。ki的绝对值越大,对应简化Lorenz混沌系统的状态变量收敛速度越快。

将主动控制器带入简化Lorenz混沌系统,可以得到:

根据线性系统稳定性理论,简化Lorenz混沌系统的状态变量渐进收敛到零,主动控制器能够进行简化Lorenz混沌系统的镇定控制。

4 仿真实验平台

在仿真实验中,采用Python语言自带的Tkinter建立软件的人机交互界面。Tkinter是Python的标准人机交互界面库。Tkinter是内置到Python的安装包中,安装好Python

后就可以加载Tkinter库来进行人机交互界面的设计。在仿真实验中,采用Matplotlib库进行二维图形的绘制。Matp-

lotlib是一个Python 2D绘图库。采用Matplotlib绘图非常简单和方便,只需要几行代码就可以生成直方图、条形图、误差图和散点图等。采用Tkinter编写人机交互界面,将Matplotlib绘制的二维图形与Tkinter集成到一起进行显示。SciPy库在Numpy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数,如线性代数、常微分方程数值求解、信号处理和图像处理等。采用SciPy库中的odeint函数求解常微分方程,进行简化Lorenz混沌系统的仿真和镇定控制。

简化Lorenz混沌仿真和控制实验平台的GUI界面如图1所示。在软件的主界面中,左侧进行参数的设置和控制,右侧显示仿真结果。对简化Lorenz混沌系统的参数、初始状态和仿真时间进行修改,然后单击按钮“简化Lorenz混沌仿真”进行仿真。主动控制器的参数和仿真时间也可以进行修改,然后单击按钮“简化Lorenz混沌的镇定控制”进行简化Lorenz混沌系统的镇定控制。在图1中,单击左下角的按钮“默认值”,所有的参数都恢复为系统的默认值;单击左下角的按钮“退出”,会出现退出对话框,可以退出软件系统。

在简化Lorenz混沌進行仿真和镇定控制之前,需要对参数进行设置。简化Lorenz混沌系统的参数设定为c=2.0,初始状态设定为x(0)=2.0,y(0)=-3.0,z(0)=4.0,仿真时间设定为40.0秒。简化Lorenz混沌仿真后,单击按钮“二维相图”,可以绘制状态变量的二维相图;单击按钮“状态变量”,可以绘制各个状态变量的响应曲线。简化Lorenz混沌系统仿真后,状态变量x和z的二维相图如图2所示。在图2中,简化Lorenz系统出现混沌现象。

根据简化Lorenz混沌系统的状态方程,设计主动控制器进行系统的镇定控制。在主动控制器中,参数设定为k1=-2.0,k2=-2.0,k3=-3.0。简化Lorenz混沌镇定控制的仿真时间设定为8.0秒。在主界面中,单击按钮“简化Lorenz混沌的镇定控制”,采用主动控制器进行简化Lorenz混沌的镇定控制。简化Lorenz混沌镇定控制后,可以显示状态变量的响应曲线和主动控制器的响应曲线,状态变量的响应曲线如图3所示。在图3中,简化Lorenz混沌的状态变量收敛到零,收敛的速度比较快。仿真结果表明,主动控制器能够进行简化Lorenz混沌的镇定控制,状态变量快速收敛到零。

5 结语

Python语言作为一门新兴的编程语言,在科学计算和计算机教育等方面具有较强的优势,对于初学者也很容易入门。Python语言采用开源设计,具有众多开源科学计算软件包。本文采用Python语言建立简化Lorenz混沌仿真和控制实验平台,能够进行简化Lorenz混沌的仿真和镇定控制。简化Lorenz混沌系统具有丰富的动力学特性,且只有一个参数,可以用硬件电路实现。根据简化Lorenz混沌的状态方程,设计主动控制器进行系统的镇定控制,状态变量渐进收敛到零,收敛的速度比较快。该仿真实验平台将理论学习和编程开发相结合,学生可以修改系统参数,然后进行仿真实验,观察仿真结果。该仿真实验平台具有良好的可控性、重复性和经济性等优点,降低了实验成本,能够激发学生的学习兴趣,提高学生创新实验技能和工程实践能力。

参考文献

[1]孙克辉.混沌保密通信原理与技术[M].北京:清华大学出版社,2015.

[2]孙克辉,杨静利,等.单参数Lorenz混沌系统的电路设计与实现[J].物理学报,2010,59(12):8385-8392.

[3]陈秋杰,杨其宇,鲍芳.基于简化Lorenz混沌电路的频率特性分析[J].电路与系统,2018,7(4):93-100.

[4]李泽彬,张刚,等.单参数Lorenz混沌系统及其保密通信[J].徐州工程学院学报:自然科学版,2016,31(4):70-75.

[5]秦进.简化Lorenz混沌系统的非线性动力学分析[J].计算机工程与应用,2015,51(12):53-54,98.

[6]张若愚.Python科学计算[M].北京:清华大学出版社,2012.

[7]张健,张良均.Python编程基础[M].北京:人民邮电出版社,2018.

[8]张俊生,郭彩萍,楼国红,等.Python在数字信号处理中的应用[J].电气电子教学学报,2015,37(4):115-117.

[9]嵩天,黄天羽.Python语言程序设计教学案例新思维[J].计算机教育,2017(12):11-14,19.

[10]马天成,李全彬.基于Python的牛顿环实验数据拟合及分析方法[J].大学物理实验,2019,32(3):112-115.

猜你喜欢
Python语言实验平台仿真实验
基于Python语言和支持向量机的字符验证码识别
论Python程序设计语言
基于Python语言的面向对象课程实践教学探讨
云计算在职业院校中的应用与思考
基于Android的Python语言英汉维电子词典设计与实现
基于ETAP的电气设计仿真实验
基于LabVIEW的虚拟实验平台设计
计算数据中心的动态数据聚集算法研究