基于 LabVIEW 的 PID 控制系统设计与实现

摘 要: 针对传统单片机PID控制在数据处理、显示、存储等方面的不足, 将虚拟仪器技术用于 PID 控制中, 设计了基于 LabVIEW 的单容水箱PID控制系统。系统通过传感器, 数据采集卡, 以及 LabVIEW的PID工具包, 对采集的数据进行实时地分析和处理, 最后达到对液位高度的控制。该系统具有人机交互性强, 控制精度高, 稳定性好, 使用方便等优点, 在教学及实验中已经得到使用。
关键词: LabVIEW 软件; 数据采集; PID 控制; 液位控制; 虚拟仪器

1 引言

LabVIEW 是 实 验 室 虚 拟 仪 器 集 成 环 境( Laboratory Virtual Instrument Engineering Warkbe nch) 的简称, 是美国 NI 公司推出的虚拟仪器开发平台软件, 具有简洁图形化编程环境和强大的功能。它广泛应用于数据采集与控制、信号处理、数据显示、数据分析等领域。采用虚拟仪器技术, 有以下优点:( 1) 突破了传统仪器在数据处理、显示、存储等方面的限制;( 2) 利用计算机丰富的软件资源, 增加了系统灵活性;( 3) 通过软件技术和相应数值算法,实时、直接地对测试数据进行各种分析和处理, 通过图形用户界面( GUI) 技术, 真正做到界面友好,人机交互。
在连续控制系统中, PID 控制算法得到了广泛的应用, 是技术最成熟的控制规律。它调节原理简单, 易于整定, 使用方便, 广泛地应用于机电、冶金、机械、化工等各个生产部门。当被控对象的结构和参数不能完全掌握, 或得不到精确的数学模型时, 控制理论的其它技术难以采用时, 系统控制器的结构和参数必须依靠经验和现场调试来确定, 这时应用PID 控制技术最为方便。

2 PID 原理介绍

PID 控制是从比例、积分和微分三个环节来实现对系统控制的。常规 PID 控制系统原理框图如图 1所示, 该系统由模拟 PID 控制器和被控对象组成。

3 控制系统的设计

3.1 系统原理

本文设计的单容水箱控制系统是采用 PIO- 821L/S 数据采集卡和美国 NI 公司的 LabVIEW8.2软件平台构建的, 其系统组成如图 2 所示。水箱中的液面受到重力作用产生压力, 并被压力传感器感知。
传感器将液位高度转换成电压信号, 作为数据采集卡的输入信号送入计算机, 经过线性比例换算, 可以得到电压与液位的关系。将实际液位高度与期望值进行比较获得偏差, 采用 LabVIEW 软件的 PID 工具包可得控制量, 该控制量经过数据采集卡输出, 经过放大器可以改变水泵电机的转速, 从而达到控制的目的。该系统的主要功能有: 实时数据采集和趋势图显示, 实时 PID 控制和数据存储。

3.2 系统硬件组成

本系统采用 PIO- 821L/S 数据采集卡, 它具有12 位采样精度, 最高采样速率可以达到 45 k/s, 它支持 16 路单端, 8 路差动模拟输入通道, 1 路独立的D/A 输出通道, 16 路标准 TTL 电平数字输入输出。传感器为压力传感器, 输出电压为- 5 V~+5 V。电机为 0 V~10 V 输入的直流电机。

3.3 系统软件组成

单容水箱控制系统是基于 LabVIEW8.2 版本进行设计的。该设计中前面板( 见图 3) 包括了控制件和显示件, 其中控制件主要包括采样设置( 采样通道、采样频率和增益) 、PID控制参数的设置, 目标液位值的设置, 保存按钮以及传感器标定过程中的电机电压控制。显示件包括液面显示、传感器电压趋势图和控制过程示意图。打开该系统, 先将采样设置参数设置完毕, 在实验进程中选择传感器标定。关闭排水阀, 记录液面为0时的传感器电压值。调整电机电压旋钮, 使液面上升至水箱顶部, 记录传感器电压值。液面高度与传感器电压存在的线性关系, 由此可以求出传感器电压系数。完成传感器标定之后, 选择单容水箱控制进程, 设定目标液面即可进行液位PID控制。打开保存开关就能够将采集到的液位数据进行保存。虚拟仪器的后面板即程序框图( 见图 4) 是整个系统的重要部分, 它由以下模块组成: 数据采集模块, 传感器系数标定模块, PID控制模块, 数据存储模块。由于本设计中采用的数据采集卡属于非NI公司的数据采集卡, 在 LabVIEW 中并不能直接使用,但是通过库函数的调用可以解决这一问题。图 5 给出了D/A 转换VI的库函数的调用。

3.3.1 数据采集模块

数据采集模块负责将液位压力产生的电压信号采集到计算机中, 在这个模块中可以设置采样频率, 采样通道及增益。采集到的传感器电 压 可 以 在 趋 势 图 中 直 接 显 示 出 来 。 其 中Active board.vi、setch config.vi、ads poll.vi 分 别用作数据采集卡的板卡号设置, 通道设置和 D/A 转换, 且都需要进行库函数调用。

3.3.2 传感器系数标定模块

为了提高控制精度, 采用了在每次控制开始前都重新标定传感器系数的方法, 这样可以避免温度、湿度、位置等随机因素的干扰。通过传感器系数标定模块, 可以在前面板上实时反映出水箱中的液位,而不仅仅是抽象的电压, 也为 PID 液位控制模块提供了实时输入, 更加方便得出偏差量。其中 D/A.vi、close board.vi 分别用作 D/A 转换和关闭板卡。

3.3.3 PID 控制模块

PID 控制模块采用的是 NI 公司的 PID 工具包的 PID.vi, 利用这个工具包, 不但可以在 LabVIEW环境下通过友好的人机交互界面直观方便地进行控制器的设计, 还能充分利用 LabVIEW 的各种强大功能, 特别是同数据采集板卡等硬件的良好结合, 迅速地搭建所需的自动控制系统, 进行仿真及实际应用。程序中通过一个条件结构避免了电机驱动电压小于2V时电机不能正常工作的情况。

3.3.4 数据存储模块

数据存储模块提供了数据保存的功能, 能够将水箱的液面数据保存在一个 txt 文档中, 供波形再现或者数据分析处理使用。

4 控制系统实际控制过程

设定控制参数, kp=100, Ti =20, Td=10, 通道设置为1 通道, 增益设置为 1, 目标控制液位设置为 300。由于过程控制对采样频率的要求不高, 设置为 10 Hz。从实际过程控制图( 见图 6) 中看出, 控制过程较好,稳定性能也较高, 通过改变 PID 控制参数, 能取得更好的控制效果。

5 结束语

本文设计的单容水箱 PID 控制系统采用的是LabVIEW 图形化编程语言, 其软件界面友好, 操作简单, 人机交互性强, 编程容易, 方便快捷, 扩展性好, 易于维护。所设计的系统具有稳定时间快, 稳定精度高等特点。同传统的单片机控制系统相比, 采用虚拟仪器的方法大幅地缩减了开发周期, 提高开发质量, 且性能好, 简单, 控制方便灵活。本文所设计的系统已经成功地应用于教学实验中。

相关推荐
weixin_456808382 小时前
【沁恒蓝牙开发】关闭独立看门狗
c语言·单片机·嵌入式硬件
weixin_456808382 小时前
【沁恒蓝牙开发】拓展广播 Code PHY-从机
c语言·嵌入式硬件
LCG元2 小时前
STM32实战:基于DHT11的智能温湿度监测与OLED显示
stm32·单片机·嵌入式硬件
qq_411262423 小时前
ESP32-C3 内置 USB Serial/JTAG 在 Windows下,不同板子不同端口
stm32·单片机·嵌入式硬件
最好有梦想~3 小时前
嵌入式Linux Lua使用ZeroBrane远程调试
linux·嵌入式硬件·lua
aini_lovee3 小时前
基于STM32的光电感烟火灾报警器设计
stm32·单片机·嵌入式硬件
拒朽3 小时前
51单片机学习(六)模块化编程和LCD调试工具
嵌入式硬件·学习·51单片机
somi74 小时前
ARM-09-I.MX6U-I2C
单片机·嵌入式硬件·i2c·自用
会编程的小孩4 小时前
stm32f103c8t6工程模板 配置成stm32f407zgt6工程模板
stm32·单片机·嵌入式硬件