基于虚拟仪器带立方项的三维四翼混沌系统研究
软件LabVIEW(Laboratory Virtual Instrument EngineeringWorkbench,实验室虚拟仪器工程平台)是美国NI公司(National Instrumen-ts Company)研制的一种编程语言,由于LabVIEW采用基于流程图的图形化编程语言,因此也称为G语言(Graphics Language)。G语言编写的程序称为虚拟仪器VI(Virtual Instruments),其界面和功能与真实仪器十分相像,在LabVIEW环境下开发的应用程序都被冠以VI后缀,以表示虚拟仪器。VI由程序前面板(Front Panel)、数据流框图程序(Diagram Program)和图标/连接端口(Icon/Terminal)组成。
随着现代测试与仪器技术的发展,目前虚拟仪器概念已经发展成为一种创新的仪器设计思想,成为设计复杂测试仪器和测试系统的主要方法和手段。本文通过对一个三维四翼混沌系统的研究并利用LabVIEW设计一种虚拟仪器混沌信号产生器。由于此仪器易实现,可靠性高,实时性好,与传统的自治混沌系统相比,此仪器输出的混沌信号更适合于作为混沌保密通信系统的信息载体,提高通信系统的安全性。
l 三维四翼混沌系统的概述
混沌是非线性动力系统所特有的一种运动形式,它广泛地存在于自然界。一般而言,混沌现象隶属于确定性系统而难以预测,隐含于复杂系统但又不可分解以及呈现多种混沌无序却又颇有规则的图像。
在非线性电路中产生各种不同类型并适合保密通信的混沌与超混沌信号是近年来物理学和信息科学界所关注的一个热门课题,目前在国内外已取得了许多相关的研究成果,如三阶混沌电路、四阶变型混沌电路、四阶MCK超混沌电路、洛伦兹电路、蔡氏电路、超混沌电路等。本文将采用虚拟仪器技术产生三维四翼混沌吸引子以产生混沌信号,并用硬件实验结果证明是正确的。
本文讨论带立方项的非线性三维四翼混沌系统,其动力学方程为:
当a=50,b=13,c=13,e=6,选取初值(1,1,1)时,该系统产生混沌现象。
实际的硬件电路由运算放大器,模拟乘法器等组成,要考虑其饱和特性,所以首先对式(1)进行变量的比例压缩变换。
式中,k为变量的比例压缩因子,这里k=1/3。
将式(1)两边同时乘以k,将式(2)代入,再把u,v,w代换成x,y,z,得:
实际的硬件电路如图1所示,该电路由4部分组成:反相加法器模块,积分器模块,反相器模块和立方项产生器模块。其中运算放大器型号为LF356,电源电压为±15 V,线性动态范围为±13.5 V,乘法器采用AD633,在实验中应注意到AD633的增益为0.1。图中,R1,R2,R5,R6,R13,R14=10 kΩ;R4,R9,R16=l kΩ;R3,R8,R15=10 kΩ;R16,R11,R18=38.46 kΩ;R17=83.33 kΩ;R7,R12,R19=555 Ω,乘法器采用AD633,运算放大器为LF356。这里通过图形化设计语言LabVIEW 8.2设计三维四翼混沌信号产生器。
2 三维四翼混沌系统信号产生器的设计
2.1 设计原理
三维四翼混沌系统信号产生器采用美国NI公司开发的图形化设计语言LabVIEW 8.2进行设计,借助LabVIEW强大的数值计算功能,求解三阶微分方程(1),然后通过虚拟仪器观察并输出混沌信号。
2.2 基于LabVIEW的混沌系统具体编程
新建LabVIEW窗口,在前面板内进行前面板设计,在后面板内进行流程图设计。
2.2.1 前面板设计
1)6个图形控件 其中3个图形控件分别显示状态变量x、y和z的混沌时序图,另3个图形控件用来显示状态变量x、y和z相互的相平面图。操作Controls>>Graph>>Waveform Graph 3次,调入3个图形控件Graph,分别标记为“x时序图”、“y时序图”、“z时序图”:操作Contr-ols>>Graph>>XY Graph 3次,调入3个图形控件,分别标记为“xy相图”、“xz相图”和“yz相图”。
2)6个数字型控件 它们分别是:用来输入方程(1)的初值x0、y0、z0,操作Controls>>Numeric>>Dial 3次,得到3个输入型数字控件,标记为“x0”、“y0”、“z0”;用来输入dt及画图参数等,操作Controls>>Numefic>>Numeric Control 3次,得到3个输入型数字控件,分别标记为“dr'’、“画点的总数目”、“画一次的点的数目”。
3)1个布尔开关用来控制程序运行,操作Controls>>Boolean>>Stop Button。设置开关按钮“停止”。
图2为基于虚拟仪器三维四翼混沌信号产生器前面板。
2.2.2 流程图设计
在流程图窗口内执行Funetion>>Structures>>While LooD操作,建立一个循环。在While Loop左、右边框上,分别单击右键,操作Add Shift Register各6次;在While Loop边框外,执行Function>>Array>>Array constant操作,值设为0;在这个While循环内,执行Functi-on>>Structures>>Formula Node操作,在公式框内写入微分方程;在Formula Node的左边框上,单击右键,操作Add Input 4次。分别输入“x”、“y”、“z”、“dt”;在Formula Node的右边框上,单击右键,操作Add Output3次。分别输入“dx”、“dy”、“dz”;执行Function>>Array>>Build Array操作3次;执行Function>>Array>>Replace Arrav Subset操作3次;执行Function>>Array>>Array To Clust-er操作3次;执行Function>>Numeric>>C0nversion>>To Long Integer操作2次,分别输入“Number of Points”、“Points per Draw”;执行Function>>Numeric>>Quotient&Remainder操作;执行Function>>Time&Dialog>>Wait(ms)操作,输入0;执行Func.tion>>Boolean>>Tr-ue constant操作。
- 采用LabVIEW的近红外测量方案 (01-18)
- I/O接口设备驱动设计方案(12-21)
- 基于虚拟仪器的电网综合参数测控系统(06-21)
- 基于虚拟仪器技术设计馆藏室温湿度监控系统(10-11)
- 利用虚拟仪器设计的网络化温室测控系统(12-08)
- 基于虚拟仪器的CANopen协议监控面板设计(07-02)