基于Matlab的水箱液位控制系统实验设计及教学实践
2020-03-18王佳庆肖忠王晓刚张杰
王佳庆 肖忠 王晓刚 张杰
摘 要:“计算机控制技术”课程是电气信息类专业的主干课程之一,实验教学是该课程教学的重要组成部分。本实验项目以水箱液位为控制参量,设计了包括系统硬件、基于Matlab的控制界面、PID控制程序等内容的“计算机控制技术”实验方案。通过教学实践,培养了学生的综合能力,达到了预期的教学目的。
关键词:计算机控制技术;液位;实验教学
中图分类号:G642 文献标识码:A 文章编号:2096-000X(2020)08-0095-03
Abstract: "Computer Control Technology" course is the main course of electrical information specialty, and experimental teaching is the important part of its teaching. Taking the level of water tank as the control parameter, the experimental scheme of "computer control technology" including system hardware, control interface and PID control program based on MATLAB was designed. Through teaching practice, the students' comprehensive ability has been trained, and the expected teaching purpose has been achieved.
Keywords: computer control technology; liquid level; experimental teaching
引言
“计算机控制技术”课程是自动化、机器人工程等电气信息类专业的主干课程之一,课程理论知识内容较多,实践性较强。该课程主要讲解计算机控制系统的基本理论、计算机控制系统的设计方法及系统的实现等教学内容。实验教学环节是“计算机控制技术”课程教学的重要部分,它能够巩固理论知识的学习,培养学生对计算机控制系统的分析能力和设计能力。为此,各高校教师根据实验条件,开发了不同的实验项目,各有特点,能够满足本科教学的需要[1-3]。近年来,我校要求进行工程教育认证的专业的主干课程必须有综合性/设计性实验项目,实验项目应与专业毕业要求有较强的对应关系[4]。“计算机控制技术”课程教师根据实验室的现有条件,开发了基于Matlab的水箱液位控制系统实验方案并进行了教学实践。
一、实验项目教学目标和内容
我校的“计算机控制技术”课程内容包含离散控制系统理论、计算机控制系统的输入/输出通道、程序控制原理和设计、数字PID控制、最少拍控制、计算机控制系统实现等[5]。为确保一个实验项目涵盖较多的教学知识点,我们对本实验项目提出了较高的教学目标:(1)掌握一种控制算法的编程语言和人机交互接口的编程语言;(2)掌握试凑法确定PID参数的方法;(3)掌握至少两种PID控制算法并实现;(4)掌握控制系统的硬件设计和数据处理方法;(5)培养学生在计算机控制技术方面分析问题和解决问题的能力。针对提出的教学要求,需要完成的主要实验内容包括:(1)按照设计搭建水箱液位控制系统硬件;(2)数据的采集和处理;(3)设计控制系统人机交互界面和至少两种数字PID控制程序;(4)调试系统硬件和软件。
二、实验方案的硬件设计
计算机控制系统的硬件主要包括控制对象和计算机系统两大部分。根据实验室现有条件,设计的控制对象选择采用实验室的单容水箱或者双容水箱,控制参量为单个水柱的液位高度,采用带变送器的压力传感器检测液位,输出0-5V的电压信号。模拟量的输入/输出通道选了可用Matlab编程控制的数据采集卡,型号为iDAQ-USB-6009,该卡是一种混合型多通道USB数据采集卡,可以同时处理8路的模拟量输入信号和2路模拟量输出信号,采样精度高达14位,性价比高。执行机构为微型直流水泵,控制电压为0-5V。由于数据采集卡的编程语言为Matlab,所以控制器选用了通用的计算机,计算机与数据采集卡采用USB接口通信。图1为水箱液位控制系统的硬件原理图。
三、数据采集及处理设计
iDAQ-USB-6009数据采集卡在Matlab中使用函数function [Error, Value] = iDAQ_eGet(Handle, IOType, Channel, Value, x1)采集数据,使用函数function [Error] = iDAQ_ePut(Handle, IOType, Channel, Value, x1)输出数据。输入的数据为0-5V的模拟量,而水箱液位的高度是采用长度单位厘米来标识的,因而需要把采样得到的0-5V的电压信号转换成液位高度,也就是要进行标度变换。通过使用iDAQ_eGet函数采集到的数据,经过标度变换的结果如图2所示。从图2中可以发现,在某些时间点上采集的数据上下波动幅度较大,说明液位传感变送环节带来了较大的测量误差,需要进行数字滤波。
由图2可知,未进行数字滤波的数据波动幅度较大,不能直接作为液位的采样值给控制系统。如果采用算术平均值滤波,效果不明显。由于水箱的液位升降速度是有一个限度的,如果检测的数据反映的升降速度超过了这个限度,说明这个采用的数据就是个被干扰的信号,因此可以采用限幅数字滤波。限幅数字滤波需要把液位升降的最大幅度测量出来,这个幅度可以事先告诉实验的學生或者让学生自行设计实验得到结果。
数据的标度变换需要采集多个液位数据,先对采样数据进行数字滤波,然后用Matlab的曲线拟合工具完成实际液位跟采集的电压数据的关系式,利用Matlab的GUI设计了液位数据标度变换的交互界面[6],可以在界面中填入标度变换数据,验证标度变换的正确性。图3为液位数据标度变换的界面。
四、人机交互界面和控制程序设计
(一)控制系统界面设计
一个好的实验系统必须具备完善的人机交互界面。根据实验要求设计至少两种PID控制算法以及试凑法确定PID参数,利用Matlab的GUI设计如图4所示的控制系统人机交互界面,在界面上可以选择不同的控制算法,改变PID参数值,还可修改给定液位、采样周期和控制总时间。如果发现标度变换不准确,还可以在界面中修改。另外还设计了控制系统的启动按钮和出现特殊情况的终止按钮。根据输入/输出通道的改变,也可以在界面设置。当选择不同的PID控制时,交互界面也会所有不同。
(二) PID控制程序设计
PID控制是工业生产中应用最广泛的一种控制算法,控制系统实现简单,控制效果好。实验要求学生通过试凑法确定PID参数,目的就是使学生在试凑的过程中掌握PID参数的变化对控制效果的影响。通过试凑,得到了一组较好的PID参数:Kp=1、Ki=25、Kd=1,图5是这组PID参数控制下的液位实时曲线图,调节时间较长,系统稳定后有些波动。
实验内容还要求学生设计改进的PID控制算法,改进算法有不完全微分的PID控制、积分分离的PID控制、变速积分的PID控制、时间最优PID控制,等等。设计的实验系统选择了积分分离的PID控制和变速积分的PID控制,通过实时曲线可以比较两种控制算法的控制效果。图6为积分分离的PID控制实时曲线图,调节时间较长。图7为变速积分的PID控制实时曲线图,调节时间短,稳定后波动小。
五、教学实践
我校“计算机控制技术”课程实验为课内实验,教学课时为12学时,设置了计算机控制系统演示实验、步进电机控制实验、水箱液位控制系统设计实验。三个实验的学时数分别为2学时、2学时和6学时。水箱液位控制系统设计实验采用了“基于Matlab的水箱液位控制系统实验”方案,在6个学时内要完成这一实验是不可能的,因此我们采取了以下实验教学策略:
(1)在理论课环节把实验中的重点、难点问题讲清楚,并提前告诉学生所用设备的相关参数和采集卡的输入/输出函数。
(2)用Matlab语言编写PID控制算法不难,但要用Matlab的GUI编写人机交互界面有一定难度,需要花费一定的时间,所以要让学生提前做好准备,在上课之前一定把控制界面和PID控制程序编写好。
(3)引导学生合理使用实验时间。第一大节课要完成系统硬件的搭建、数据的采集,标度变换、数字滤波;第二大节课要完成人机交互界面和PID控制程序的调试;第三大节课要完成试凑法确定的PID参数并记录相关实验数据和图标,以备教师验收。
(4)對实验的每个环节均要严格考核,避免学生不好好做实验而抄袭别人实验报告交差的现象。实验项目的考核包括:实验前准备情况(占考核成绩比重的10%)、人机交互界面的设计(占考核成绩比重的15%)、实验调试过程中操作熟练程度(占考核比重的15%)、控制效果和回答问题(占考核成绩比重的20%)、实验报告(占考核成绩比重的25%)。
(5)教师利用实验后的理论课环节进行总结,让学生认识到自己的差距。如果学生有兴趣,还可以利用实验室的开放时间,进一步完善实验中的不足。
六、结束语
利用实验室的现有条件开发的“水箱液位控制系统”实验项目能够满足“计算机控制技术”课程对设计性实验项目的要求,涵盖的知识点较广,达到了巩固理论知识的目的,提高了学生的硬件集成和软件开发能力,能够较好地培养学生的创新创业素养。今后,我们将发动相关教师从自己的科研项目中提炼适合本科生实验的项目,进一步丰富“计算机控制技术”课程的设计性实验项目。
参考文献:
[1]余雷,张茂青,费树岷.“计算机控制技术”课程PID控制部分的教学[J].电气电子教学学报,2012,34(2):104-106.
[2]程海燕,李大中,张妍.计算机控制技术实验教学改革与实践[J].实验室科学,2014,4(17):129-131.
[3]李玉荣,穆秀峰,胡逸文.面向MCGS的“计算机控制技术”课程实验研究[J].实验科学与技术,2017,1(15):134-136.
[4]王晓刚,王清,王佳庆.基于工程教育认证的电气工程专业综合改革[J].高教学刊,2016,5:155-156.
[5]于海生.微型计算机控制技术(第二版)[M].北京:清华大学出版社,2009.
[6]薛定宇,陈阳泉.基于MATLAB/Simulink的系统仿真技术与应用[M].北京:清华大学出版社,2002.