1、 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 NoII目 录1 引言12 虚拟仪器开发软件 Labview 入门22.1 Labview 介绍22.2 利用 Labview 编程完成习题设计33 利用 Labview 实现任意波形发生器的设计213.1 任意波形发生器的基本原理213.2 任意波形发生器的编程设计及实现213.3 运行结果及分析224 总结255 参考文献26沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No111 引言波形发生器是一种常用的信号源,广泛应用于通信、雷达、测控、电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格技术要求的电信号设备。
2、随着现代电子技术的飞速发展,现代电子测量工作对波形发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波形,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度及分辨率高,频率转换速度快且频率转换时输出波形相位连续等。可见,为适应现代电子技术的不断发展和市场需求,研究制作高性能的任意波形发生器十分有必要,而且意义重大。波形发生器的核心技术是频率合成技术,主要方法有:直接模拟频率合成、锁相环频率合成(PLL),直接数字合成技术(DDS)。传统的波形发生器一般基于模拟技术。它首先生成一定频率的正弦信号,然后再对这个正弦信号进行处理,从而输出其他波形
3、信号。早期的信号发生器大都采用谐振法,后来出现采用锁相环等频率合成技术的波形发生器。但基于模拟技术的传统波形发生器能生成的信号类型比较有限,一般只能生成正弦波、方波、三角波等少数的规则波形信号。随着待测设备的种类越来越丰富,测试用的激励信号也越来越复杂,传统波形发生器已经不能满足这些测试需要,任意波形发生器(AWG)就是在这种情况下,为满足众多领域对于复杂的、可由用户自定义波形的测试信号的日益增长的需要而诞生的。随着微处理器性能的提高,出现了由微处理器、DA以及相关硬件、软件构成的波形发生器。它扩展了波形发生器的功能,产生的波形也比以往复杂。实质上它采用了软件控制,利用微处理器控制DA,就可以
4、得到各种简单波形。但由于微处理器的速度限制,这种方式的波形发生器输出频率较低。目前的任意波形发生器普遍采用DDS(直接数字频率合成)技术。基于DDS技术的任意波形发生器(AWG)利用高速存储器作为查找表,通过高速DA转换器对存储器的波形进行合成。它不仅可以产生正弦波、方波、三角波和锯齿波等规则波形,而且还可以通过上位机编辑,产生真正意义上的任意波形。沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No222 虚拟仪器开发软件 Labview 入门2.1 Labview 介绍LabVIEW (Laboratory Virtual Instrument EngineeringWorkbench
5、,实验室虚拟仪器集成环境)是一个基于 G(Graphic)语言的图形编程开发环境,在工业界和学术界中广泛用作开发数据采集系统、仪器控制软件和分析软件的标准语言,对于科学研究和工程应用来说是很理想的语言。它含有种类丰富的函数库,科学家和工程师们利用它可以方便灵活地搭建功能强大的测试系统。LabVIEW 编程语言最主要的两个特点是图形化编程和数据流驱动:(1)图形化编程LabVIEW 与 Visual C+、Visual Basic、LabWindows/CVI 等编程语言不同,后几种都是基于文本的语言,而 LabVIEW 则是使用图形化程序设计语言 G 语言,用框图代替了传统的程序代码,编程的过
6、程即是使用图形符号表达程序行为的过程,源代码不是文本而是框图。一个 VI 有三个主要部分组成:框图、前面板和图标连接器。框图是程序代码的图形表示。 LabVIEW 的框图中使用了丰富的设备和模块图标,与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常的相似。多样化的图标和丰富的色彩也给用户带来不一样的体验和乐趣。前面板是 VI 的交互式用户界面,外观和功能都类似于传统仪器面板,用户的输入数据通过前面板传递给框图,计算和分析结果也在前面板上以数字、图形、表格等各种不同方式显示出来。图标是 VI 的图形符号,连接器则用来定义输入和输出,每一个 VI 都有图标和连接器。用户要做
7、的工作就是恰当地设置参数,并连接各个子 VI。编程一般步骤就是使用鼠标选取合适的模块、连线和设置参数的过程,与烦琐枯燥的文本编程相比更为简单、生动和直观。 如果将虚拟仪器与传统仪器作一类比,前面板就像是仪器的操作和显示面板,提供各种参数的设置和数据的显示,框图就像是仪器内部的印刷电路板,是仪器的核心部分,对用户来讲是透明的,而图标和连接器可以比作电路板上的电子元器件和集成电路,保证了仪器正常的逻辑和运算功能。沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No33(2)数据流驱动宏观上讲,LabVIEW 的运行机制已不再是传统上的冯诺伊曼式计算机体系结构的执行方式了。传统计算机语言(如 C
8、 语言)中的顺序执行结构在 LabVIEW中被并行机制所代替。本质上讲它是一种带有图形控制流结构的数据流模式,程序中的每一个函数节点只有在获得它的全部输入数据后才能够被执行。既然LabVIEW 程序是数据流驱动的,数据流程序设计规定,一个目标只有当它的所有输入有效时才能够被执行;而目标的输出只有当它的功能完全时才是有效的。于是 LabVIEW 中被连接的函数节点之间的数据流控制着程序的执行次序,而不像文本程序那样受到行顺序执行的约束。我们可以通过相互连接函数节点简洁高效地开发应用程序,还可以有多个数据通道同步运行,即所谓的多线程。2.2 利用 Labview 编程完成习题设计习题 2.1 写一
9、个类正弦波发生器,要求频率和幅度可调图 1 2.1 前面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No44图 2 2.1 程序面板图习题 3,1 新建一个 VI,进行如下练习:任意放置几个控件在前面板,改变它们的位置、名称、大小、颜色等等。在 VI 前面板和后面板之间进行切换并排排列前面板和后面板窗口图 3 3.1 前后面板对照图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No55习题 3.2 编写一个 VI 求三个数的平均值,如右图所示。要求对三个输入控件等间隔并右对齐,对应的程序框图控件对象也要求如此对齐。添加注释 分别用普通方式和高亮方式运行程序,体会数据流向。单步
10、执行一遍图 4 3.2 前面板图图 5 3.2 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No66习题 4.1 写一个 VI 判断两个数的大小,如右图所示:当 AB 时,指示灯亮图 6 4.1 前面板图图 7 4.1 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No77习题 4.2 写一个 VI 获取当前系统时间,并将其转换为字符串和浮点数。这在实际编程中会经常遇到图 8 4.2 前面板图图 9 4.2 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No88习题 4.3 写一个温度监测器,如右图所示,当温度超过报警上限,而且开启报警时,报警
11、灯点亮。温度值可以由随即数发生器产生。图 10 4.3 前面板图图 11 4.3 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No99习题 4.5 给定任意 x, 求如下表达式的值图 12 4.5 前面板图图 13 4.5 程序面板图xexycos5沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1010习题 5.1 利用顺序结构和 timing 面板下的 tick count VI,计算 for 循环产生一个长度为 20000 点的随机波形所需的时间图 14 5.1 前面板图图 15 5.1 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1111
12、习题 5.2 为第 4 章习题 4 添加一个 While 循环和定时器,实现连续的温度采集监测图 16 5.2 前面板图图 17 5.2 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1212习题 5.3 计算学生三门课(语文,数学,英语)的平均分,并根据平均分划分成绩等级。要求输出等级 A,B,C,D,E。90 分以上为 A,8089 为 B,7079 为C,6069 为 D,60 分以下为 E图 18 5.3 前面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1313图 19 5.3 程序面板图习题 6.1 为第 5 章的习题 2 连续温度采集监测添加报警
13、信息,如下图所示,当报警发生时输出报警信息,例如“温度超限!当前温度 78.23” ,正常情况下输出空字符串。图 20 6.1 前面板图图 21 6.1 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1414习题 6.2 将一些字符串和数值转换成一个新的字符串输出的字符串是 GPIB 命令字符串,它可以用来进行串行通信图 22 6.2 前面板图图 23 6.2 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1515习题 6.3 用 FOR 循环创建一个数组,并用图形显示输出的数组。图 24 6.3 前面板图沈 阳 理 工 大 学 课 程 设 计 专 用
14、纸 No1616图 25 6.3 程序面板图习题 6.4 利用簇模拟汽车控制,如右图所示,控制面板可以对显示面板中的参量进行控制。油门控制转速,转速油门*100,档位控制时速,时速档位*40,油量随 VI 运行时间减少沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1717图 26 6.4 前面板图图 27 6.4 程序面板图习题 7.1 利用随机数发生器仿真一个 0 到 5V 的采样信号,每 200ms 采一个点,利用实时趋势曲线实时显示采样结果。图 28 7.1 前面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1818图 29 7.1 程序面板图习题 7.2 在习题
15、 1 的基础上再增加 1 路电压信号采集,此路电压信号的范围为 5到 10V图 30 7.2 前面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1919图 31 7.2 程序面板图习题 7.3 利用随机数发生器仿真一个 0 到 5V 的采样信号,每 200ms 采一个点,共采集 50 个点,采集完后一次性显示在 Waveform Graph 上图 32 7.3 前面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No2020图 33 7.3 程序面板图习题 7.4 在习题 3 的基础上再增加 1 路电压信号采集,此路电压信号的范围为 5到 10V,采样间隔是 50ms,共
16、采 100 个点。采样完成后,将两路采样信号显示在同一个 Waveform Graph 中图 34 7.4 前面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No2121图 35 7.4 程序面板图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No22223 利用 Labview 实现任意波形信号发生器的设计3.1 任意波形信号发生器的基本原理任意信号发生器用来产生频率为 20Hz200kHz 的正弦信号(低频) 。除具有电压输出外,有的还有功率输出。所以用途十分广泛,可用于测试或检修各种电子仪器设备中的低频放大器的频率特性、增益、通频带,也可用作高频信号发生器的外调制信号源。
17、另外,在校准电子电压表时,它可提供交流信号电压。低频信号发生器的原理:系统包括主振级、主振输出调节电位器、电压放大器、输出衰减器、功率放大器、阻抗变换器(输出变压器)和指示电压表。主振级产生低频正弦振荡信号,经电压放大器放大,达到电压输出幅度的要求,经输出衰减器可直接输出电压,用主振输出调节电位器调节输出电压的大小。3.2 xxxxxxxx(课题名)的编程设计及实现3.2.1 编程设计图 36 前面板设计图前面板中细分的话可以按照一般波形输出和公式波形输出,一般波形包括正弦波,锯齿波、方波,公式波形指的是在公式栏中输入公式能画出公式的波形。沈 阳 理 工 大 学 课 程 设 计 专 用 纸 N
18、o2323图 37 程序设计图3.3 运行结果及分析图 37 方波输出图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No2424图 38 正弦波输出图图 39 锯齿波输出图沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No2525图 40 公式波形输出沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No26264 总结我觉得自己这学期学习虚拟仪器这门课设还是收获颇丰的。作为一名测控技术专业的学生,我觉得自己十分有必要了解并熟练地掌握用虚拟仪器来解决实际问题。在做大作业的过程当中,我对前半学期学到的理论知识有了更深的理解,但我也明显感觉到自己还是需要更多的实战练习。同时,这次选
19、作任意波形发生器这一题目只用到了部分功能,LabVIEW 还是非常强大的,我计划在暑假中用一部分时间继续做一些相关应用,也希望在遇到问题的时候能和老师继续沟通。这次虚拟仪器课程设计的题目是实现基于 LabVIEW 的任意波形发生器。此次课程设计是我在继课堂学习书本上的虚拟仪器知识后,再一次并且更加深入的了解到虚拟仪器的基本使用方法和运用原理,检测我们学习成果的综合性应用能力,它不仅要求我们有扎实的专业理论知识和实践操作能力,更要求我们有严谨治学、团结协作的精神。通过自己的动手和思考,感觉获益良多。在设计中我就更切身体会到虚拟仪器这种仪器的高效、开放、易用灵活、功能强大、性价比高、可操作性好等明
20、显优点。 设计过程中,也会遇到很多困难,但是学习一门知识就是不断战胜自己,不断探索挑战的过程。所以不管过程有多么困难,能最后完成的话还是非常有成就感的。LabVIEW 确实非常强大,在不断找控件和函数的过程中,能接触到很多我们已经学过的原件,比如模电中的各种管子,数电中的各种芯片等等,是我们学习的好助手。另外,这项设计还能再次丰富扩充,比如增加手绘波形的呈现,或者其他更复杂波形。总之还是要不断思考不断创新的。最后,感谢老师课上的认真讲解和课后的耐心辅导!沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No27275 参考文献1 龙华光 顾永刚 .LabVIEW 8.2.2 与 DAQ 数据采集.清华大学出版社,2008.08. 2 杨乐平 李海涛 杨磊.LabVIEW 程序设计与应用.电子工业出版社,2002.01. 3 杨乐平 肖相生.LabVIEW 程序设计与应用.电子工业出版社,2001.09.