首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于LabVIEW技术的Lorenz方程虚拟混沌信号发生器设计

基于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.

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
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方程的虚拟混沌信号发生器。由于此仪器参数调节方便、易实现、可靠性高,与传统的自治混沌系统相比,此仪器输出的混沌信号更适合于作为通信系统的信息载体,提高通信系统的安全性。



希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
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方程虚拟混沌信号发生器的设计

31 虚拟混沌信号发生器功能描述

(1) 可产生Lorenz方程的混沌信号,用来作为通信系统的信息载体,提高通信安全性;

(2) 可显示Lorenz方程状态变量X、Y和Z的混沌时序图以及XY、XZ和YZ的相平面图。

32 设计原理

本信号发生器采用美国NI公司开发的图形化设计语言LabVIEW 6i进行设计,借助LabVIEW强大的数值计算功能,求解三阶Lorenz微分方程,然后利用LabVIEW驱动数据采集卡输出混沌信号。

33 LabVIEW的虚拟混沌信号发生器的具体编程

新建LabVIEW窗口,在前面板内进行前面板设计,在后面板内进行流程图设计。

331前面板设计

(1) 六个图形控件

其中三个图形控件分别用来显示状态变量X、Y和Z的混沌时序图,另三个图形控件用来显示状态变量X、Y和Z相互的相平面图。

操作Controls》Graph》Waveform Graph三次,调入三个图形控Graph,分别标记为“变量X时序图”、“变量Y时序图”、“变量Z时序图”;操作Controls》Graph》XY Graph三次,调入三个图形控件,分别标记为“XY相平面图”、“XZ相平面图”和“YZ相平面图”



希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
(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所示。

332流程图设计

在流程图窗口内,执行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进行连线即可。


希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
返回列表