目录

LabVIEW学习:例题与解答(2)

1 数学变换函数

问题
设计VI,产生三个频率不同的正弦波,并将三个信号叠加,再把叠加的信号进行傅里叶变换,显示变换前后的波形。

https://img.yuanze.wang/posts/labview-examples2/q1-1.png
前面板图

https://img.yuanze.wang/posts/labview-examples2/q1-2.png
程序框图

2 提取混合单频信号

问题
设计VI,实现信号的频率测量。

https://img.yuanze.wang/posts/labview-examples2/q2-1.png
前面板图

https://img.yuanze.wang/posts/labview-examples2/q2-2.png
程序框图

3 幅度谱与功率谱函数

问题
设计VI,计算一个方波信号的功率谱。

https://img.yuanze.wang/posts/labview-examples2/q3-1.png
前面板图

https://img.yuanze.wang/posts/labview-examples2/q3-2.png
程序框图

4 噪声与滤波器

问题
设计VI,对一个混有高频噪声的正弦信号实现低通滤波。

https://img.yuanze.wang/posts/labview-examples2/q4-1.png
前面板图

https://img.yuanze.wang/posts/labview-examples2/q4-2.png
程序框图

5 TCP通信

问题
设计VI,实现基于TCP协议的双机通信。发送端发出字符串,接收端接收字符串并进行显示。

https://img.yuanze.wang/posts/labview-examples2/q5-1.png
服务端前面板图

https://img.yuanze.wang/posts/labview-examples2/q5-2.png
服务端程序框图

https://img.yuanze.wang/posts/labview-examples2/q5-3.png
客户端前面板图

https://img.yuanze.wang/posts/labview-examples2/q5-4.png
客户端程序框图

6 UDP通信

问题
设计VI,实现基于UDP协议的双机通信。发送端发送一组随机数,接收端接收随机数并在波形图进行显示。

https://img.yuanze.wang/posts/labview-examples2/q6-1.png
服务端前面板图

https://img.yuanze.wang/posts/labview-examples2/q6-2.png
服务端程序框图

https://img.yuanze.wang/posts/labview-examples2/q6-3.png
客户端前面板图

https://img.yuanze.wang/posts/labview-examples2/q6-4.png
客户端程序框图

UDP通信
在UDP通信的时候,与TCP通信有所不同的是,UDP不区分服务器与客户端,只区分接收方与发送方,其中发送方需要设置本地端口与远程端口、远程地址。本地端口与远程连接无关,远程地址为需要发送的地址,若为本机回环则为127.0.0.1。在远程客户端连接时,需要输入与发送方远程端口相同的本地端口。

7 控制系统仿真

问题

已知一阶系统状态空间表达式:

$$ x’=-0.2x+2u $$

$$ y=x $$

编程时可采用4阶Runge-Kutta算法求解上述方程:

$$ K_{1} = -0.2X(k)+2u(k) $$

$$ K_{2} = -0.2[X(k)+0.5TK_{1}]+2u(k) $$

$$ K_{3} = -0.2[X(k)+0.5TK_{2}]+2u(k) $$

$$ K_{4} = -0.2[X(k)+TK_{3}]+2u(k) $$

$$ X(k+1) = X(k)+\frac{T}{6}(K_{1}+2K_{2}+2K_{3}+K_{4}) $$

$$ Y = X(k+1) $$

控制算法可采用增量式PID控制算法:

$$ du = K_{p}[e(k)-e(k-1)] + \frac{T}{T_{i}}e(k) + \frac{T_{d}}{T}[e(k)-2e(k-1)+e(k-2)] $$

$$ u(k) = u(k-1)+du $$

基于LabVIEW编程环境,对上述一阶系统进行控制仿真。

https://img.yuanze.wang/posts/labview-examples2/q7-1.png
前面板图

https://img.yuanze.wang/posts/labview-examples2/q7-2.png
程序框图

8 串口通信

问题
设计甲、乙两个VI,甲VI作为一个数据源,启动运行后产生500-10之间的随机数据,在本地显示数据波形。同时,通过串口发送给乙VI。乙VI接收到数据之后,在波形图表中显示接收到的数据的波形。

https://img.yuanze.wang/posts/labview-examples2/q8-1.png
发送端前面板图

https://img.yuanze.wang/posts/labview-examples2/q8-2.png
发送端程序框图

https://img.yuanze.wang/posts/labview-examples2/q8-3.png
接收端前面板图

https://img.yuanze.wang/posts/labview-examples2/q8-4.png
接收端程序框图

串口通信VI函数的使用方法
串口通信VI主要包括VISA配置串口VI、VISA读取、VISA发送、VISA关闭串口VI以及属性节点等。使用VISA配置串口VI时,需要注意各项输入参数的正确性,可以使用下拉列表类。VISA发送可以将一个字符串发送出去,其他类型的数据可以通过强制类型转换或平化为字符串函数来转换为字符串。接收函数与属性节点中的端口缓冲区剩余字符数配合,可以将串口接受缓冲区所有的字符接收,配合while循环与字符串移位寄存器,可以实现定长字符串数据的接收。当串口使用完毕之后,需要使用关闭串口函数关闭串口。

 本文所有VI文件