引言
软件LabVIEW(Laboratory Virtual Instru-ment Engineering Workbench,实验室虚拟仪器工程平台)是美国NI公司( National Instruments Company)研制的一种编程语言,由于LabVIEW采用基于流程图的图形化编程语言,因此也被称为G语言(Graphics Language)。G语言编写的程序称为虚拟仪器VI(Virtual Instruments),它的界面和功能与真实仪器十分相象,在LabVIEW环境下开发的应用程序都被冠以VI后缀,以表示虚拟仪器的含义。一个VI由三部分组成:程序前面板(Front Panel)、数据流框图程序(Diagram Program)和图标/连接端口(Icon/Terminal)。
随着现代测试与仪器技术的发展,目前虚拟仪器概念已经发展成为一种创新的仪器设计思想,成为设计复杂测试仪器和测试系统的主要方法和手段。本文通过广义Lorenz系统族[1,2,3]所构造的一个新的三维自治混沌统一系统来设计一个基于虚拟仪器混沌信号发生器,其中参数α∈[0,1],当α取0,0.8 ,1时,分别是Lorenz 系统、Lü系统和Chen系统,此系统只有一个参数α,随α的演化,系统产生复杂的动力学特性。
我们首先分析了随参数α∈[0,1]的演化时,求出了系统的三个平衡点以及每个平衡点的特征值实部的变化,可以看出各平衡点处在整个演化过程中是满足Shil’nikov不等式的,在全域内是保持混沌状态的。然后利用LabVIEW设计这个广义Lorenz系统族混沌吸引子信号产生器,通过调节参数α系统族连续地过渡到各个系统。由于此仪器参数调节方便,易实现,可靠性高,实时性好,与传统的自治混沌系统相比,此仪器输出的混沌吸引子信号,更适合于作为混沌保密通信系统的信息载体,提高通信系统的安全性。
1、广义Lorenz系统族的分析
由于Lorenz,Lü,Chen系统间有很多类似的定性特征,在2002年,一个广义Lorenz系统族被构造出来[1,2,3],其三维自治混沌系统的数学模型为
其中,参数α∈[0,1]。当α=0时,它是Lorenz系统;当α=1时,它是Chen系统;当α在0与1之间变化时,所有的系统均保持混沌状态,当α=0.8时,即是Lü系统。
在系统(1)中, 系统状态变量分别为x , y , z。为了求解系统(1)的平衡点,我们令
求解(2)式可得系统三个平衡点O(0 ,0 ,0),在平衡点O(0 ,0 ,0) ,对系统(1)进行线性化得其Jacobian矩阵为[4]
求平衡点O(0 ,0 ,0)相应的特征值,令
得相应的特征根
图1是平衡点O(0 ,0 ,0)时的三个特征值随α∈[0,1]的演化
由图1可以看出随α∈[0,1]的演化,λ1,λ3为负,λ2为正,此平衡点O(0 ,0 ,0)是指标为1的鞍焦点,因此,在此点处系统(1)是不稳定的。
在另两个平衡点
同样对系统(1)进行线性化得其Jacobian矩阵,求平衡点E1,2相应的特征根,其三个特征根实部随α∈[0,1]的演化如图2所示。
由图2可以看出随α∈[0,1]的演化两个平衡点的特征值λ1为负实根,λ2,λ3为正实部复根,此平衡点E1,2是指标为2的鞍焦点,由此可见,在此点处系统(1)也是不稳定的。
此广义Lorenz系统族(1)的三个平衡点,一个是指标为1的鞍焦点,另两个是指标为2的鞍焦点,在α∈[0,1]的演化过程中,满足Shil’nikov不等式,都表现出混沌动力学行为。
2、基于虚拟仪器广义Lorenz系统族的设计
2.1设计原理
广义Lorenz系统族混沌信号产生器采用美国NI公司开发的图形化设计语言LabVIEW 8.2进行设计[5],借助LabVIEW强大的数值计算功能,求解微分方程(1),通过调节旋钮α的值,即可通过虚拟仪器观察并输出广义Lorenz系统族各系统的混沌信号。
2.2 基于LabVIEW的混沌信号产生器具体编程[6,7]
新建LabVIEW窗口,在前面板内进行前面板设计,在后面板内进行流程图设计。
2.2.1 前面板设计
(1)六个图形控件
其中三个图形控件分别用来显示状态变量X、Y、Z的混沌时序图,另三个图形控件用来显示状态变量X-Y、X-Z和Y-Z的相平面图。
操作“控件>>图形>>波形图”三次,调入三个图形控件,分别标记为“X时序图”、 “Y时序图”和“Z时序图”;操作“控件>>图形>>XY图形”三次,调入三个图形控件,分别标记为“X-Y相图”、“X-Z相图” 和“Y-Z相图”。
(2)七个数字型控件
它们分别是:用来输入方程(1)的初值x0、y0、z0,操作“控件>>数值>>数值输入控件”三次,得到三个输入型数字控件,标记为“x0初值”、“y0初值”、“z0初值”;用来输入方程(1)计算步长dt及画图参数等,操作“控件>>数值>>数值输入控件”四次,得到四个输入型数字控件,分别标记为 “dt计算步长”、“画点的总数目”、“画一次的点的数目”和“参数α的值”。
(3)一个布尔开关
它用来控制程序运行,操作“控件>>布尔>>停止按钮”。设置开关按钮“停止”。
2.2.2 流程图设计[8]
在流程图窗口内执行“函数>>结构>> While循环”操作,建立一个循环。
在“While循环”左、右边框上,分别单击右键,操作“添加移位寄存器”各六次。
在“While循环”框外,执行“函数>>数组>>数组常量”操作,值设为0。
在这个While循环内,执行“函数>>结构>>公式节点”操作,在公式框内写入微分方程。
在“公式节点”的左边框上,单击右键,操作“添加输入”五次。分别输入“x”、“y”、“z”、 “α”、“dt”
在“公式节点”的右边框上,单击右键,操作“添加输出”三次。分别输入“dx”、“dy”、“dz” 。
执行“函数>>数组>>创建数组”,并“添加输入”操作三次。
执行“函数>>数组>>数组子集”操作三次。
执行“函数>>族与变体>>捆绑”操作三次。
执行“函数>>数值>>转换>>转换长整型”操作两次,分别输入“画点的总数目”、“画一次的点的数目”。
执行“函数>>数值>>商与余数”操作。
执行“函数>>定时>>等待(ms)”操作,输入0。
执行“函数>>布尔>>真常量”操作。
基于虚拟仪器广义Lorenz系统族混沌信号产生器后面板流程图按照图3进行连线即可。
2.3 广义Lorenz系统族混沌信号产生器的输出
安装NI公司的PCI6014数据采集卡并设置参数,操作Function>>Data Acquisition>>Analog Output>>AO Update Channel.vi一次,形成一个图标,图标的仪器号设为1,通道号设置为0。将图标的输入与状态变量X相连,这样就可由数据采集卡输出状态变量X的混沌信号。
2.4 LabVIEW实验结果
当调节参数α,取不同的值时,各状态变量的时序图和相图如图4所示。
a. 参数α=0时系统族(1)处于Lorenz系统
b. 参数α=0.8时系统族(1)处于Lü系统
c. 参数α=1时系统族(1)处于Chen系统
图4 基于虚拟仪器广义Lorenz系统族时序图和相图
3、结束语
本文应用美国NI公司的LabVIEW虚拟仪器技术结合混沌理论设计并制造了基于虚拟仪器广义Lorenz系统族混沌吸引子信号产生器,LabVIEW友好的可视化图形界面,使用户在操作时感觉同操作真实的仪器设备一样。利用此仪器可很方便地实时地演示混沌信号产生器的各种混沌系统,并且可由数据采集卡采集混沌信号输出。由于此仪器参数调节方便,易实现,可靠性高,实时性好,与传统的自治混沌系统相比,此仪器输出的广义Lorenz系统族混沌信号,更适合于作为加密混沌通信系统的信息载体,提高通信系统的安全性。也提供了一种研究非线性混沌系统的新途径。