基于Python的二阶混沌比例投影同步控制实验
赵海滨 颜世玉
摘? 要 Duffing混沌和van der Pol混沌为常见的二阶混沌系统,采用Python语言进行建模和仿真,并通过matplotlib库绘制状态变量的二维相图。驱动系统为Duffing混沌系统,响应系统为van der Pol混沌系统,通过驱动系统和响应系统建立比例投影同步误差系统。采用线性滑模面和指数趋近律设计滑模控制器,进行驱动系统和响应系统的比例投影同步控制。仿真结果表明,滑模控制器能够进行二阶混沌的比例投影同步控制,比例投影同步误差渐进收敛到零。
关键词 比例投影同步;混沌系统;仿真实验;Python
中图分类号:G642.423? ? 文献标识码:B
文章编号:1671-489X(2020)10-0124-04
Abstract Duffing chaos and van der Pol chaos are common second-order chaotic systems, which are modeled and simulated based on Python, and the two-dimensional phase diagram of state variables is drawn based on matplotlib library. The drive system is Duffing chaos and the response system is van der Pol chaos. The proportional projective synchronization error system is established by the drive system and the response system. The sliding mode controller is designed by using linear sliding mode surface and exponential approach law. The proportional projective synchronization control of the drive system and the response system is carried out. The simulation results show that the sliding mode controller can control the second-order chaos in proportional projective synchronization, the proportional projective synchronization error converges to zero gradually.
Key words proportional projective synchronization; chaotic system; simulation experiment; Python
1 引言
混沌現象广泛存在于各种非线性系统中,对初始条件非常敏感,是非线性系统普遍存在的现象。1963年,气象学家Lorenz发现第一个混沌吸引子。混沌是连接确定性运动和随机性运动的纽带,广泛存在于自然界和人类社会中。自从Pecora和Carroll证明了两个混沌系统可以实现同步以来,越来越多的学者开始进行混沌同步的研究。Mainieri和Rehacek提出投影同步的概念,统一了不同类型的混沌同步现象[1-2]。完全同步和反相同步均是投影同步的特殊情况。滑模控制器能够克服系统建模不确定的影响,对建模误差和干扰信号具有很强的鲁棒性,并具有响应速度快和容易实现等优点,尤其是对非线性系统的控制具有很好的效果[3]。
Python是一种跨平台的解释型、面向对象、动态的高级程序设计语言,具有语法简洁、编程高效和应用领域广泛等优点[4]。采用Python可以非常方便灵活地建立复杂的系统,而且程序代码比较短,代码容易理解和实现。Python语言已经成为最受欢迎的程序设计语言之一,具有大量的第三方开源库可供调用,很多大学和科研机构都将Python作为首门程序设计课程的教学语言[5]。
Duffing混沌和van der Pol混沌都是二阶混沌系统[6]。通过Duffing混沌和van der Pol混沌建立比例投影同步误差系统,采用线性滑模面和指数趋近律设计滑模控制器,并采用滑模控制器进行比例投影同步误差系统的镇定控制,从而实现Duffing混沌和van der Pol混沌的比例投影同步控制。本文采用Python语言进行二阶混沌系统的建模和仿真,显示状态变量的二维相图。采用滑模控制器进行Duffing混沌和van der Pol混沌的比例投影同步控制,显示驱动系统和响应系统的二维相图,以及比例投影同步误差的响应曲线。在脚本程序中采用欧拉方法。欧拉方法以固定步长来计算微分方程的近似解,是非常简单的微分方程求解方法。
2 二阶混沌系统
Duffing混沌和van der Pol混沌是常见的二阶混沌系统。Duffing混沌系统的状态方程为:
其中,x1和x2为系统的状态变量,x=[x1,x2]T,t为时间,a1,b1和ω1为常数。当参数设定为a1=0.3,b1=0.4,ω1=1.2时,Duffing混沌系统会出现混沌现象。
van der Pol混沌也是二阶混沌系统。van der Pol混沌系统的状态方程表示为:
其中,y1和y2为系统的状态变量,y=[y1,y2]T,t为时间,a2,b2和ω2为常数。当参数设定为a2=5.0,b2=5.0,ω2=
2.467时,van der Pol混沌系统会出现混沌现象。
采用欧拉方法进行Duffing混沌和van der Pol混沌系统的建模和仿真,并采用Matplotlib库绘制状态变量的二维相图。欧拉方法是一种简单的数值积分方法,数值收敛性好。Matplotlib是Python的绘图库[7],类似于MATLAB软件中绘图函数的功能,只需要几行代码就可以生成绘图,非常简单和方便。二阶混沌系统仿真的脚本程序如下所示:
在脚本程序中,Duffing混沌系统的初始状态设定为x1(0)=0.2,x2(0)=0.3,van der Pol混沌系统的初始状态为y1(0)=0.5,y2(0)=0.5。在进行二阶混沌仿真时,步长设定为h=0.001,仿真时间设定为120秒。脚本程序运行后,Duffing混沌系统的二维相图如图1所示,van der Pol混沌系统的二维相图如图2所示。
3 比例投影同步系统
Duffing混沌和van der Pol混沌的比例投影同步误差定义为:
其中,e1和e2为比例投影同步误差,其中k为比例系数,且k≠0。
对比例投影同步误差进行求导,可以得到比例投影同步误差系统为:
带有控制输入的比例投影同步误差系统为:
其中,u为控制输入。通过单一的控制输入u对比例投影同步误差系统进行镇定控制,比例投影同步误差渐进收敛到零,从而实现Duffing混沌和van der Pol混沌的比例投影同步控制。
4 滑模控制器
滑模控制器对于建模不确定和外部干扰信号具有很强的鲁棒性,并具有响应速度快和容易实现等优点,广泛用于非线性系统的控制。通过线性滑模面和指数趋近律设计滑模控制器,进行比例投影同步误差系统的镇定控制,从而实现Duffing混沌和van der Pol混沌的比例投影同步控制。
在滑模控制器的设计中,采用的线性滑模面为:
在滑模控制器的设计中,采用的指数趋近律为:
其中,参数k2>0,k3>0。在双曲正切函数中,s为线性滑模面,a为非常小的正数,取a=0.01。指数趋近律中采用双曲正切函数,能够削弱抖振。
采用线性滑模面和指数趋近律设计滑模控制器,表示为:
采用滑模控制器对比例投影同步误差系统进行控制,比例投影同步误差渐进收敛到零,从而实现Duffing混沌和van der Pol混沌的比例投影同步控制。采用欧拉法进行二阶混沌比例投影同步控制時,表示为:
在欧拉法中,将时间区间[0,T]做N等分,小区间的长度h=T/N,称为步长;tn=nh为时间,其中n=0,1,2,…,N,且t0=0。采用滑模控制器进行Duffing混沌和van der Pol混沌比例投影同步控制的脚本程序如下:
在脚本程序中,Duffing混沌系统的初始状态设定为x1(0)=0.2,x2(0)=0.3,van der Pol混沌系统的初始状态为y1(0)=0.5,y2(0)=0.5。在比例投影同步误差中,比例系数设定为k=2。在线性滑模面中,参数设定为k1=2。在指数趋近律中,参数设定为k2=1,k3=0.5。在欧拉方法进行仿真时,步长设定为h=0.001,仿真时间设定为120秒。
在脚本程序中,通过Matplotlib库绘制驱动系统和响应系统的二维相图。脚本程序运行后,驱动系统和响应系统的二维相图如图3所示,比例投影同步误差的响应曲线如图4所示,只显示前五秒的响应曲线。比例投影同步误差快速收敛到零。仿真结果表明,滑模控制器能够进行驱动系统和响应系统的比例投影同步控制。
5 结论
Python语言不仅功能强大,而且具有开源和免费的优点,只需要很少的代码就能实现复杂的功能,具有非常高的编程效率。本文采用欧拉方法,首先进行二阶混沌的建模和仿真,然后进行二阶混沌的比例投影同步控制,能够快速实现驱动系统和响应系统的比例投影同步控制。在脚本程序中,采用Matplotlib进行数据的可视化。该仿真实验能够进行二阶混沌系统的仿真和比例投影同步控制,学生可以修改系统参数,然后进行仿真实验,观察仿真结果。
参考文献
[1]孙克辉.混沌保密通信原理与技术[M].北京:清华大学出版社,2015.
[2]任涛,井元伟,姜囡.混沌同步控制方法及在保密通信中的应用[M].北京:机械工业出版社,2015.
[3]刘金琨.滑模变结构控制MATLAB仿真:基本理论与设计方法[M].3版.北京:清华大学出版社,2015.
[4]张健,张良均.Python编程基础[M].北京:人民邮电出版社,2018.
[5]嵩天,黄天羽.Python语言程序设计教学案例新思维[J].计算机教育,2017(12):11-14,19.
[6]蔡萍.混沌Van der Pol-Duffing系统的线性状态反馈控制[J].湖南理工学院学报:自然科学版,2014,27(1):16-19.
[7]张若愚.Python科学计算[M].北京:清华大学出版社,2012.