标题: 基于LabVIEW技术的Lorenz方程虚拟混沌信号发生器设计 [打印本页]
作者: chenchao8848 时间: 2006-7-28 18:06 标题: 基于LabVIEW技术的Lorenz方程虚拟混沌信号发生器设计
摘要: 利用美国NI公司的虚拟仪器软件LabVIEW设计混沌信号发生器。本文结合三阶非线性Lorenz方程理论用LabVIEW强大的数学分析功能编写混沌信号生成程序,进而由LabVIEW驱动数据采集卡输出混沌信号。与传统的自治混沌系统相比,此发生器具有参数调节方便、易实现、可靠度高等优点。fficeffice" />
关键词: 虚拟仪器LabVIEWLorenz方程混沌
Based on LabVIEW Technology
Du YuelinCheng YunfeiWang Yong
Abstract: LabVIEW is used to design chaotic signal generator. The program of chaotic signal generation is redacted by LabVIEW software in combination with Lorenz equation theory .By means of the function of LabVIEW's mathematical tools, we can embed the program of chaotic signal generation into LabVIEW . Finally chaotic signal is generated by LabVIEW driving Data Acquisition . To compare traditional chaotic system, this chaotic signal generator has some property including a convenient parameter changing, easy gaining, high accuracy.
Keywords: Virtual instrument, LabVIEW, Lorenz equation, chaos.
作者: chenchao8848 时间: 2006-7-28 18:06
1引言
软件LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器工程平台)是美国NI公司(National Instruments Company)研制的一种编程语言,由于LabVIEW采用基于流程图的图形化编程语言,因此也被称为G语言(Graphics Language)。与其他编程语言相同,G语言既定义了数据类型、结构类型、语法规则等编程语言基本要素,也提供了包括断点设置,单步调试和数据探针在内的程序调试工具,在功能完整性和应用灵活性上不逊于任何高级语言。LabVIEW最大的优势表现在两个方面:一是编程简单,易于理解;另一方面LabVIEW针对数据采集、仪器控制、信号分析和数据处理等任务,设计提供了丰富完善的功能图标,用户只需直接调用,就可免去自己编写程序的繁琐,而且LabVIEW作为开放的工业标准,提供了各种接口总线和常用仪器的驱动程序,是一个通用的软件开发平台。
G语言编写的程序称为虚拟仪器VI(Virtual Instruments),它的界面和功能与真实仪器十分相像,在LabVIEW环境下开发的应用程序都被冠以VI后缀,以表示虚拟仪器的含义。一个VI由三部分组成:程序前面板(Front Panel)、数据流框图程序(Diagram program)和图标/连接端口(Icon/Terminal)。前面板相当于真实物理仪器的操作面板,在前面板中用户可以使用各种图标,如旋钮、按钮、开关、实时趋势图和记录图等,就像真实仪器面板一样。在后台则利用图形化编程语言编制框图程序,每一个前面板都有一个框图程序与之对应。框图程序由节点(Node)和数据连线(Wire)组成,节点是VI程序的执行元素,数据连线则表示程序执行过程中的数据流。节点之间由数据连线按照一定的逻辑关系相互连接,并通过数据连线进行数据传递。节点和前面板对象之间是通过数据端口传递数据的。LabVIEW的VI是层次化和模块化的,可以作为其他程序的子程序,被其他程序调用。
随着现代测试与仪器技术的发展,目前虚拟仪器概念已经发展成为一种创新的仪器设计思想,成为设计复杂测试仪器和测试系统的主要方法和手段。本文利用LabVIEW设计一种基于Lorenz方程的虚拟混沌信号发生器。由于此仪器参数调节方便、易实现、可靠性高,与传统的自治混沌系统相比,此仪器输出的混沌信号更适合于作为通信系统的信息载体,提高通信系统的安全性。
作者: chenchao8848 时间: 2006-7-28 18:06
2Lorenz方程混沌系统概述
混沌是非线性动力系统所特有的一种运动形式,它广泛地存在于自然界。一般而言,混沌现象隶属于确定性系统而难以预测,隐含于复杂系统但又不可分解以及呈现多种混沌无序却又颇有规则的图像。
从数学上讲,对于确定的初始值,由动力系统就可以推知该系统长期行为甚至追溯其过去形态。但在20世纪60年代,美国气象学家Lorenz在研究大气时发现,当选取一定参数的时候,一个由确定的三阶常微分方程组描述的大气对流模型,变得不可预测了。如果模拟大气动力学特性的微分方程的解确定是混沌的,那么就不可能进行长时期的天气预报。因为一个任意小的扰动,如蝴蝶翅膀的振动都有可能在将来某个时候改变地球另一边的天气。这就是著名的蝴蝶效应。Lorenz在耗散系统中首先发现了混沌运动,这为以后的混沌研究开辟了道路。
Lorenz混沌系统方程如下:
dx1dt=c1*(x2-x1)
dx2dt=c2*x1-x2-x1*x3
dx3dt=x1*x2-c3*x3
当c1=10,c2=28,c3=8/3,x1(0)=1,x2(0)=1,x3(0)=1时Lorenz系统具有典型的混沌性态。
本文通过图形化设计语言LabVIEW 6i来设计Lorenz虚拟混沌信号发生器。
3 Lorenz方程虚拟混沌信号发生器的设计
31 虚拟混沌信号发生器功能描述
(1) 可产生Lorenz方程的混沌信号,用来作为通信系统的信息载体,提高通信安全性;
(2) 可显示Lorenz方程状态变量X、Y和Z的混沌时序图以及XY、XZ和YZ的相平面图。
32 设计原理
本信号发生器采用美国NI公司开发的图形化设计语言LabVIEW 6i进行设计,借助LabVIEW强大的数值计算功能,求解三阶Lorenz微分方程,然后利用LabVIEW驱动数据采集卡输出混沌信号。
33 LabVIEW的虚拟混沌信号发生器的具体编程
新建LabVIEW窗口,在前面板内进行前面板设计,在后面板内进行流程图设计。
331前面板设计
(1) 六个图形控件
其中三个图形控件分别用来显示状态变量X、Y和Z的混沌时序图,另三个图形控件用来显示状态变量X、Y和Z相互的相平面图。
操作Controls》Graph》Waveform Graph三次,调入三个图形控Graph,分别标记为“变量X时序图”、“变量Y时序图”、“变量Z时序图”;操作Controls》Graph》XY Graph三次,调入三个图形控件,分别标记为“XY相平面图”、“XZ相平面图”和“YZ相平面图”
作者: chenchao8848 时间: 2006-7-28 18:07
(2) 九个数字型控件
它们分别是:用来输入Lorenz方程的初值x0、y0、z0。
操作Controls》Numeric》Dial三次,得到三个输入型数字控件,标记为“x0”、“y0”“z0”;用来输入Lorenz方程的参数a、b、c和dt及画图参数等。
操作Controls》Numeric》Numeric Control六次,得到六个输入型数字控件,分别标记为“a”、“b”、“c”、“dt”、“Number of Points”、“Points per Draw”。
(3) 一个布尔开关
它用来控制程序运行,操作Controls》Boolean》stop Button,设置开关按钮“STOP”。
设计完后的仪器前面板如图1所示。
332流程图设计
在流程图窗口内,执行Function》Structures》While Loop操作,建立一个循环。
在While Loop左、右边框上,分别单击右键,操作Add Shift Register各六次。
在While Loop边框外,执行Function》Array》Array constant操作,值设为0。
在这个While循环内,执行Function》Structures》Formula Node操作,在公式框内写入三阶Lorenz微分方程。
在Formula Node的左边框上,单击右键,操作Add Input七次,分别输入“x”、“y”、“z”、“a”、“b”、“c”、“dt”
在Formula Node的右边框上,单击右键,操作Add Output三次,分别输入“dx”、“dy”、“dz”。
执行Function》Array》Build Array操作三次。
执行Function》Array》Replace Array Subset操作三次。
执行Function》Array》Array To Cluster操作三次。
执行Function》Numeric》Conversion》To Long Interger操作二次,分别输入“Number of Points”、“Points per Draw”。
执行Function》Numeric》Quotient&Remainder操作。
执行Function》Time&Dialog》Wait(ms)操作,输入10。
执行Function》Bollean》True constant操作。
虚拟混沌信号发生器后面板流程图按照图2进行连线即可。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |