labview虚拟波形发生器讲解Word格式.docx

上传人:b****6 文档编号:20414762 上传时间:2023-01-22 格式:DOCX 页数:17 大小:424.49KB
下载 相关 举报
labview虚拟波形发生器讲解Word格式.docx_第1页
第1页 / 共17页
labview虚拟波形发生器讲解Word格式.docx_第2页
第2页 / 共17页
labview虚拟波形发生器讲解Word格式.docx_第3页
第3页 / 共17页
labview虚拟波形发生器讲解Word格式.docx_第4页
第4页 / 共17页
labview虚拟波形发生器讲解Word格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

labview虚拟波形发生器讲解Word格式.docx

《labview虚拟波形发生器讲解Word格式.docx》由会员分享,可在线阅读,更多相关《labview虚拟波形发生器讲解Word格式.docx(17页珍藏版)》请在冰豆网上搜索。

labview虚拟波形发生器讲解Word格式.docx

摄实现输出波形的采样点数据的存储。

软件设计是虚拟波形信号发生器设计的核心。

根据上述总体设计思想,将该系统软件设计分成属性设置信号产生、波形显示和数据存储四大模块。

在虚拟仪器的软件开发平台---LABVIEW上,根据设计要求,在VI程序的控制模板和波形模板上选择相应的控制件和显示件以及所涉及到的波形,利用所选定的目标项分别实现各子模块的功能,最终实现虚拟波形显示器。

3.软件设计

3.1LabVIEW开发平台

LabV1EW(laboratoryvirtualinstrumentengineeringworkbench)是

一种图形化的编程语言和开发环境,被公认为是标准的数据采集和仪器控制软件。

它为设计者提供了一个便捷、轻松的设计环境,利用它设计者可以象搭积木一样,轻松组建个测量系统或数据采集系统,并任意构造自己的仪器

面板,而无需进行任何繁琐的计算机程序代码的编写,从而可以大大简化程序的设计。

LabVIEW与VC++,VisualBasic,LabWindows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码,而LabVIEW则是使用图形化

程序设计语台-G,用对话框代替了传统的程序代码。

LabVIEW运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常相似。

用LabVIEW设计的虚拟仪器可以脱离LabVIEW开发环境,最终用户看见的是和实际的硬件仪器相似的操作面板。

LabVIEW包含有专门用于设计数据采集程序和仪器控制程序的功能库和开发工具库。

LabVIEW的程序设计实质上就是设计个个的“虚拟仪器”,“VIs(VirtualInstruments)"

在计算机显示屏幕上利用功能库和开发工具库产生一个前面板(frontpanel),在后台则利用图形化编程语言编制用于控制前面板的程序。

程序的前面板具有与传统仪器类似的界面,可接受用户的鼠标指令。

一般来说,每一个VI都可以作为其它VI的调用对象,其功能类似于文本语言的子程序。

LabVIEW是带有可扩展功能库和子程序库的通用程序设计系统。

它提供了用于GPIB设备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储的应用程序模块。

LabVIEW可调用Windows动态链接库和用户自定义的动态链接库中的函数。

LabVIEW的C1N节点使用户可以使用由其它语言,如ANSIC编译的程序模块,使LabVIEW成为一个开放的开发平台。

LabVIEW还直接支持动态数据交换(DDE)、结构化查询语言((SQL)、TCP和UDP网络协议等。

此外,LabVIEW还提供了专门用十程序开发的工具箱,使得用户能够设置断点,动态执行程序来观察数据的传输过程,以及进行方便的调试。

LabVIEW的运行机制就宏观上讲已经不再是传统上的冯•诺依曼计算机体系结构的执行方式。

传统的计算机语言(如C)中的顺序执行结构在LabVIEW中被并行机制所代替:

从本质上讲,它是一种带有图形控制流结构的数据流模式,这种方式确保程序中的节点只有在获得它的全部数据后才能执行。

也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响

LabVIEW程序是数据流驱动的。

数据流程序设计规定,一个目标只有当它的所有输入有效时才能执行;

而目标的输出,只有当它的功能完全时刁是有效的。

这样,LabVIEW中被连接的对话框之间的数据流控制着程序的执行次序,而小象文本程序受到行顺序执行的约束。

从而可以通过相互连接功能对话框快速简洁地开发应用程序,甚至还可以有多个数据通道同步运行。

LabVIEW的核心是VI}VI有一个人机对话的用户界面一前面板((frontpanel)以及类似于源代码功能的对话框(diagram)。

前面板接受来自对话框的指令。

在VI的前面板中,控制器(controls)模拟了仪器的输入装置并把数据提供给VI的对话框;

而指T器(indicators)则模拟了仪器的输

出装置并显T由对话框获得或产生的数据。

当把一个控件或指示器放置到前面板上时,LabVIEW在对话框中相应地放置了一个端口(terminals),这个从属于控件或指示器的端口不能随意删除,只有删除它对应的控件或指示器时它才随之一起被删除。

用LabVIEW编制对话框程序时,不必受常规程序设计语法细节的限制。

首先,从功能菜单中选择需要的功能方框,将之置于面板上适当的位置;

然后用导线(初res)连接各功能方框在对话框中的端口,用来在功能方框之间传输数据。

这些方框包括了简单的算术功能,高级的采集和分析VI以及用来存储和检索数据的文件输入输出功能和网络功能。

用LabVIEV编制出的图形化V1是分层次和模块化的「4]。

我们可以将之用于顶层((toplevel)程序,也可用作其它程序或子程序的子程序。

一个VI用在其它V工中,称之为subVI}subVI在调用它的程序中同样是以一个图标的形式出现的。

LabVIEW依附并发展了模块化程序设计的概念。

用户可以把一个应用题目分解为一系列的子任务,每个子任务还可以进一步分解成许多更低一级的子任务,直到把一个复杂的题日分解为许多子任务的组合。

首先设计subVI完成每个子仟务,然后将之逐步组合成能够解决最终问题的Vlo

归纳起来LabVIEW软件开发平台具有以下优点:

1图形化的编程方式,设计者无需写仟何文本格式的代码,是真正的工程师的语台‘。

2提供了丰富的数据采集、分析及存储的库函数。

3既提供了传统的程序调试手段,如设置断点、单步运行,同时提供有独到的高亮执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷。

432bit的编译器编译生成32bit的编译程序,保证用户数据采集、测试和测量力案的高速执行。

5囊括了DAQ,GPIB,PXI,VXI,RS-232/485在内的各种仪器通信总线标准

3.2Labview的主要功能和特点;

虚拟仪器的概念是美国N1公司(National1nstrument)在20世纪80

年代中期提出来的。

最有代表性的是其推出的Labview(LaboratoryVirtuallnstrumentEngineeringWorkhench)一实验室虚拟仪器工程平台。

它是世界上第一个采用图形化编程技术的而向仪器的32位编译型程序开发系统,它的目标就是简化程序的开发工作,提高编程效率。

虚拟仪器与传统仪器相比具有许多优点:

对测试量的处理和计算可史复杂日‘处理速度史快,测试结果的表达方式史加丰富多样,可以方便地存储和交换测试数据,价格低,技术史新快。

它的最大特点就是把山仪器生产厂家定义仪器功能的方式转变为山用户自己定义仪器功能,满足多种多样的应用需求。

山于虚拟仪器的测试功能、而板控件都实现了软件化,任何使用者都可通过修改虚拟仪器的软件来改变它的功能和规模,这充分体现了软件就是仪器的设计思想。

Labview使用可视化技术建立人机界而,提供了许多仪器而板中的控制对象,如表头、旋钮、开关及坐标平而图等。

用户可以通过使用编辑器将控制对象改变为适合自己工作领域的控制对象。

Labview的高级软件库具有强大的数据处理能力,包括信号的产生、数据信号处理、测量、数据滤波、概率统计、线性代数、曲线拟合、数值分析等多种软件分析功能。

应用Labview直观的图形化开发环境和功能强大的数据分析库函数,可以非常灵活地为教学中的测量原理设计各种虚拟仪器,进行直观的演示,教学效果明显改善,使理论教学与实践史好的紧密结合,教学史生动、史形象、史直观,达到事半功倍的效果。

Labview支持多种操作系统平台,在任何一个平台上开发的Labview应用程序可直接移植到其它平台上。

3.3控制软件的功能

1.对每路信号的波形进行选择,并输入波形特征(包括幅值、频率、相位以及谐波次数、频率、幅值);

2.根据相应的波形以及所输入的特征,生成原始的波形数据;

3.将原始的波形数据用波形显示出来,供用户进行参考;

波形呈示九模块

波带选择和持tiE

亠渡册爺据产「生犠块

1

槌快

图1:

软件的模块图

按照软件的功能,可将程序划分成几大模块:

1.波形选择和特征输入模块;

2,波形数据产生模块;

3.数据处理模块;

4.显示模块;

3.4程序设计

作为实例,木文中的多路信号发生器产生4种常用的波形:

正弦波(带任意次谐波)、方波、三角波、锯齿波,下面将分别阐述波形数据产生模块的设计方法:

(1)前面版的设计

属性设置模块}要是为信号产生模块服务的。

根据设计要求在控制模板上选择相应的控件放在前面板上,按规定设置性能指标,完成属性设置。

属性设置前面板如图2所小。

其}要属性设置有:

信弓-类烈切换、信号的输出频率、幅度、偏移量、初相角、占空比等参量的控制。

这些属性通过仪器前面板实现参数选定。

(2)根据传统信号发生器而板控键的功能,利用Labview中的控制模板,分别在设计而板上放入模拟实际信号发生器控键的数据输入控键、显示器、数据输出控件、开关、选择器•显示器用于显示输出的信号波形,数据输入控键用于输出信号的信号频率、采样频率、采样数、振幅和相位,数据输出控键则用于选择信号类型。

图2:

前面板的数值控制键

打开Labview前面板编辑窗口,点击鼠标右键,显示控制模板,选择G

raph>

>

Wavefovmgraph,作为信号发生器的显示器.在显示器模板上点击鼠标右键,对其进行属性设置,如根据被显示波形的频率与幅度值的变化,利用工具模板中的文字工具,对显示器横(时间)、纵(幅度)坐标的刻度重新设置.用Graph控键设计的显示器是完全同步的,波形稳定。

3.4.1参数设置控件

(1)在前而板的设计窗口中,打开控制模块执行Allcontrols>

Numeric>

Knob操作,得到幅值等控制旋钮.

(2)将光标移至旋钮单击右键选择属性(Yroper-ties)选项,在随后弹出的对话框中的外观(Appear-an州选项的标签中将这些旋钮分别命名为“频率调节”“幅度调节”和“相位调节”等。

(3)最后定义精度.根据频率和幅度的数值范围,我们将其精度定义为双度浮点型(DBL).具体操作仍然是在属性(Properties)选项的数据范围(Datarange)选项中的Representation内完成。

3.4.2输出波形选择按钮

用一个while结构来控制波形的产生。

可以选择输出为正弦信号或是方波信号、三角波、调制信号等。

具体操作为:

在前而板的设计窗口中,打开控制模块,执行AllControl-ring&

Enum-Textring,修改名称为Waveselect(波形选择).然后右键点击Properties

选择EditItems项,在表格中添加和编辑sinewavetriangel、squarewave等,并设置其先后顺序。

343波形显示控件

这个控件用来显示所产生的波形。

执行Controls>

Graph>

Waveform

Chart操作,调入所选图标。

其横轴为时间轴,纵轴为电压轴。

注意:

控件参数设置应考虑到采样频率f,信号频率f一个周期采样点n。

与总点数N=Samples的关系:

f=nfx,所以办的最大值应该是被测信号频率井的最大值,且N>

r。

图3:

程序的前面板

 

图4:

波形的选择

3.5程序框图图的设计对于虚拟信号发生器而言,它的主要功能就是为我们提供激励信号,所以在流程图设计中,我们首先要选择产生信号的图标以及用于产生信号的case结构和循环控制的while循环.

3.5.1程序图标的调入

(l)在流程图设计窗口中打开(Function)模块,执行Allfunctions>

structures>

Whileloop调入Whileloop循环,控制程序的运行.

(2)执行structures>

casestructures调入case循环,用于控制产生不同信号的运行.

(3)执行Allfunctions>

Analyze>

SignalProcessing>

SignalGeneration操作,分别调入TriangleWave.vi(三角波).SineWave.vi(正弦波)、SquareWave.vi(方波).BasicFunctionGenerator等图标.

(4)执行AllFunctions>

Multiple/Add分别调入乘法器和加法器.

3.5.2程序设计

(1)频率设置.在模拟电路范围,信号频率以Hz或周期来测量,但是在数字系统中我们使用数字频率,它是模拟频率和采样频率之比,如卜所示:

数字频率=模拟频率/采样频率

采样间隔也是信号产生的必要条件,在遵循抽样定理的基础上,我们需要给出采样频率和采样点数,用以产生信号.数字频率山除法器的输出提供,该除法器完成了信号频率和采样频率之比的运算,将所需要的数字频率输出送给信号发生图标.同时,我们还要用一个乘法器将常数10和Wbile循环的循环记数器进行乘法运算用于给出波形的采样间隔,便于显示.

(2)信号产生.在不同的case结构中,编写相应的信号产生程序

(3)

信号的输出.采用YC1-6014型卡,信号采用中一端输出万式,山模拟输出通道0输出.

图5:

软件的程序框图

图6:

选择波形的CASE吉构

3.5.3波形数据产生和处理模块设计

正弦波(带任意次谐波)、方波、三角波、锯齿波,下面将分别阐述这儿种波形数据产生模块的设计方法。

3.5.4正弦波形数据产生模块

正弦波形是电力系统最常见的、仿真和实验中最常用到的波形,针对实际系统中可能存在的多次谐波,设计中添加了产生任意次谐波,以便实验及仿真中使用。

1.单一波形数据的产生

在LabVIEW环境下,产生正弦波的方法有很多,包括使用Simulate

SignalExpressVI,SineVI、公式节点等,考虑到数据的精确性和控制方便,设计中使用了公式节点。

LabVIEW的程序描述能力虽然足够强大,但对于一些复杂算法完全依赖图形代码来实现会过于繁琐,而公式节点(FormulaNode)正好可以补充这个缺点3]。

公式节点是一种结构,允许用户使用类似于多数文本编程语言的句法,所使用的语句类似于C语言代码「钊,提供参数的输入和输出接口,输入或者输出的参数必须是数值型数据。

在LabVIEW的对话框中,放置公式节点,在节点中间的代码输入框中输入如下代码:

y=sin(a*t+b)+e*sin(d*a*t);

其中参数a代表角频率,由频率乘以2:

得来;

参数b代表相位,由用户输入的相位(0360)除以180并乘以二得来;

参数d代表谐波次数;

参数e代表谐波分量;

参数f代表谐波相位,采用与相位相同的处理方法;

参数t代表时间参量,由频率的倒数除以循环总次数并乘以循环因子。

这样产生的波形数据幅值为1,这样做是为了方便数据进行进一步处理。

2.波形点数组的产生

首先要初始化一个一维包含360个元素的数组,数组所有元素为0,将数组引入到循环次数为360次的For循环中。

For循环有种特殊的功能,称为白动索引(Auto-Indexing)功能。

当数组连接到循环结构的边框时,将默认打开自动索引功能,数组将在每次循环中顺序输入一个值,该值在原数组中索引与当次循环的重复端子值相同,也就是说数组在循环内部将变为标量兀素〔气将标量兀素与上面生成的y值相加,所得的值将按照索引值顺序保存在自动索引中,当循环结束,即可生成新的、幅值为1的波形数据数组,从自动索引的输出端子引出。

所得到的数组,根据DSP处理数据的需要,将数组元素控制在07500之间。

首先采用ArrayMax&

Min函数,提取数组元素中的最大值,引入一个新的360次的循环,用数组元索逐一除以最大值后,乘以3750再加上3750并取整,输出循环后就生成新的波形数值数组。

用InsertIntoArray函数分别将幅值和频率分别添加到数组的前两个位置,数组元素变成362个。

由于频率需要进行除法运算,如果为0,将会产生程序错误。

同时,由于在产生单一波形数据时没有引入幅值,这样即使幅值为0同样会产生相应的数据。

为确保数组元素产生的可靠性,避免误输入引起的错误数据,程序中使用了选择结构(CaseStructure),对幅值和频率是否等于0做出判断,只有当幅值和频率同时不为0时,数组将被按照上述方法进行处理;

如果幅值或频率为0时,数组将不被处理。

从而有效地保证了数据的准确性。

由于产生正弦波形的VI在主程序中将被做为子VI使用,因此有必要创建相应的接口。

LabVIEW提供了连接器来帮助创建了VI,将前面板控制器和指示器都配置好,将对话框按照上面所述连接好,保存为sine.vi。

右键点击前面板右上角的小图标,在卜拉菜单中选择showconnector,如图2-4,分别按照输入和输出端子,用鼠标对控制器和指示器与。

onnector的端了进行连接。

然后右键点击图标,再下拉菜单中选择editicon,在图框中编辑图标,如图2-5,然后保存文件。

这样在主程序中就口」以调用了sine子VI了。

3.5.5波形数据产生模块方波、三角波、锯齿波的波形数据处理方式与正弦波相同,所不同的正

弦波是

用公式计算而来,而这三种波形采用是在公式节点内采用编程语言描述波形特征。

1.方波公式节点中的程序代码如下:

floatd;

d=t+c;

if(d>

=a)

d=d-a;

if(d}=a/2)

y=1;

elsei坟d>

a/2)

丫》1;

参数t为输入时间因子,c为输入偏移量,参数a为周期,丫为输出波形点数值,d为定义的浮点变量。

考虑到时间因子t加上偏移量c,可能会大于a,因此如果大于a,将用d减去a}保证d小于a0

2.三角波

公式节点中的程序代码:

floatd;

d=t+c;

if(d>

y=((4*d)/a-1);

elseif(d>

丫一(1一(4*(d—a/2))/a);

参数与力一波参数相同,不再赘述。

]

3.锯齿波

y=((2*d)/a-1);

参数与方波参数相同,不再赘述。

2.5.6波形显示模块设计

波形显示模块,是按照所输入的波形特征将波形按照时间t和波形点丫值显示出来,供用户参考。

课题中采用XYGraphExpressVI来显示完整的曲线数据。

XYGraph不要求水平坐标等问隔分布,并且可以描述一对多的映射关系。

在绘制单曲线时,可以接受两种数据组织格式:

(1)由x数组和丫数组打包生成的簇(LabVIEW中一种数据格式,和C++的

结构类似)。

绘制曲线时把相同索引的x和y数组元素值作为一个点,按索引顺序连接所有的点,生成波形图。

(2)由簇组成的数组,每个数组元素都是由一个x坐标值和一个丫坐标

值打

包生成。

绘制曲线时,按照数组索引顺序连接数组元素解包后组合而成的数据坐标•点}J1。

图7:

正弦波的绘制

设计中将采用第一种方案。

在循环中波形点数据y将

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1