基于LabVIEW和单片机的自动控制系统综合实验

2019-01-30 02:22高宏岩王誉钱
实验技术与管理 2019年1期
关键词:控制算法模糊控制串口

高宏岩, 王誉钱

(山东科技大学 电气与自动化工程学院, 山东 青岛 266590)

自动控制系统综合实验是山东科技大学为自动化专业设置的一门专业综合实践课程。该实践课程在学生学完自动化专业基础课程和核心课程后开设,学时为3周。课程要求学生综合运用所学理论知识和方法,完成自动控制系统设计、实验、调试等工作,得到理论应用和实践技能的全面训练[1-4]。该实验涉及电子技术、单片机技术、传感器技术、控制理论、软件技术等相关课程知识,要求学生利用较为低廉的单片机等元器件和LabVIEW软件,完成硬件电路设计、串口通信设计、基于LabVIEW的控制算法设计和监控界面设计等内容。

1 系统组成及工作原理

1.1 实验系统组成

实验系统由温度传感器、单片机、D/A转换模块、调压模块、电烤箱和上位机组成,其结构框图见图1。由于数据采集卡价格较高,本系统选用单片机STC89C58RD实现温度的采集和处理,并利用串口通信和上位机LabVIEW进行数据传输,以较低成本达到综合实验设计要求。

图1 系统结构框图

在硬件电路设计中,温度传感器DS18B20的DQ管脚与单片机的P1.6管脚相连[5],D/A转换模块的SCLK、CS和DOUT管脚分别与单片机的P1.3、P1.4 和P1.5管脚相连,D/A转换模块的OUT管脚与调压模块的U端子相连,硬件部分实物图如图2所示。

1.2 控制系统工作原理

该控制系统工作原理如下:温度传感器实时采集电烤箱温度,通过其自带的A/D转换器件将连续的温度信号转换成数字信号并传输给单片机,上位机LabVIEW通过USB-TTL串口读取单片机中存储的实时采集的电烤箱温度信号,并按照控制算法计算得到控制量,通过串口通信将控制量传输给单片机执行控制命令,控制量再经过D/A转换模块转换成模拟量给调压模块,通过调压模块调节电阻丝发热功率达到控制烤箱温度的目的。

图2 硬件部分实物图

2 单片机与LabVIEW串口通信设计

上位机LabVIEW利用其已经封装好的VISA配置串口,VISA写入、VISA读取、VISA关闭等模块搭建串口通信程序,如图3所示。利用VISA串口配置模块设置与单片机相同通信配置,如波特率9 600 bit/s和8 bit数据等,VISA读取模块设置4字节总数[6],在VISA写入模块中,写入数据时加上数据指令的起止校验位如#**$,便于单片机程序进行数据处理。下位机(单片机)串口通信程序采用C语言编写[7],执行温度的读取发送、数据的解析及执行控制指令。单片机端的串口通信程序设计框图见图4。上位机LabVIEW程序运行时,先向下位机发送一个控制指令0,当下位机单片机接收控制指令时,单片机将温度传感器传输的数据发送给LabVIEW,LabVIEW接收到温度数据,经过控制算法计算得到控制量,并将控制量通过串口发送给单片机。由于上位机LabVIEW每向单片机写一次数据,单片机才会上传一次数据,因此单片机接收到控制指令后开始数据解析,并将温度传感器上传的温度信号发送给上位机LabVIEW,单片机解析完数据再经过D/A转换后执行控制命令达到控制要求。

图3 LabVIEW串口通信程序设计

图4 单片机端串口通信程序设计框图

3 控制算法设计

3.1 PID控制算法设计

PID是目前应用最为广泛的控制算法。LabVIEW中已经有封装好的PID程序模块,为了加深学生对PID控制算法的理解,以位置式PID控制算法为例,给出自行编写的PID算法的程序。位置式PID控制算法的表达式为[8]

(1)

其中e(k)为k时刻给定量和反馈量之误差,u(k)为k时刻控制量,Kp、Ki、Kd分别为比例增益、积分增益和微分增益。

根据式(1),在LabVIEW中编写位置式PID算法程序[9],并对其进行封装得到PID.vi程序模块,如图5所示。

图5 PID算法程序

3.2 模糊PID控制算法设计

模糊PID控制算法是在PID算法基础上,通过模糊推理在线调整式(1)中的Kp、Ki、Kd3个参数。模糊推理系统的输入为误差e(k)和误差变化量ec(k),输出为Kp、Ki、Kd的增量Kp、Ki、Kd。经过模糊推理得的模糊PID算法中的比例增益Kp=Kp0+Kp,积分增益Ki=Ki0+Ki,微分增益Kd=Kd0+Kd,其中Kp0、Ki0、Kd0分别为Kp、Ki、Kd的初始值[10]。根据实际情况,实验得到模糊输入量误差e(k)和误差变化量ec(k)的基本论域为[5 ℃, 5 ℃]和[-0.6 ℃, 0.6 ℃],语言变量均选取7个语言值:负大(NL)、负中(NM)、负小(NS)、零(0)、正小(PS)、正中(PM)和正大(PL),量化等级均为{-3,-2,-1,0,1,2,3}。模糊输出量Kp、Ki、Kd基本论域分别为为[-3,3]、[-0.6,0.6]、[-0.3,0.3],语言变量Kp、Ki、Kd均选取7个语言值:{NL,NM,NS,0,PS,PM,PL}[11],量化等级均为{-3,-2,-1,0,1,2,3}。模糊PID控制算法在线调整参数的基本原理[12]:(1)当e(k)较大时,取较大的Kp和较小的Kd,并且令Ki=0,以实现快速跟踪和抑制超调的作用;(2)当e(k)中等时,为使系统具有较小超调,Kp的取值应该较小,此时Kd取值对系统影响比较大,取值应适中,而Ki也要取适当值;(3)当e(k)较小时,为了保证系统良好的稳定性能,Kp和Ki取大一些,以避免系统在目标值附近出现振荡,并考虑抗干扰性能,一般情况下Kd取值为适中,但若|ec(k)|较大,Kd可以取小些。根据上述基本原理及实际系统实验得到Kp、Ki、Kd的模糊控制规则表,限于篇幅,只列出Kp的模糊控制规则表,如表1所示[13]。

表1 Kp模糊控制规则表

表1 Kp模糊控制规则表

ec(k)e(k)NLNMNS0PSPMPLNLNLNLNLNSNMPSPLNMNLNMNMNSNSPSPLNSNLNMNM0NSPSPL0NMNSNS0PMPMPMPSNMNSNS0PMPLPMPLNSNSNSPSPSPMPMPLNSNSNSPSPSPMPS

利用LabVIEW的模糊逻辑工具箱“Fuzzy System Designer”设计一个二维模糊控制推理系统,在“Variables”编辑器中,确定系统的输入、输出变量的论域及隶属度函数,如图6所示[14]。

图6 输入、输出变量的隶属度函数

在“Rules”编辑器中,将模糊控制规则表1中的规则写成IF-THEN形式的模糊控制规则。完成上述模糊编辑器工作后,在LabVIEW中编写模糊PID算法程序,如图7所示。LabVIEW将串口读出的实时温度值与设定值进行比较得到e(k)和ec(k),经过模糊逻辑加载模块将预先设计好的后缀为fuzzy2.fs的模糊控制系统文件加载到系统中,利用模糊控制器模块推理得到3个参数增量Kp、Ki、Kd,分别与对应的初始值Kp0、Ki0、Kd0求和得到Kp、Ki、Kd,通过封装生成的PID子程序模块计算得到控制量u,最后经过串口通信将控制量传给单片机执行从而实现电烤箱的温度控制。此外,设计了温度超限报警程序,当温度超过上限或者低于下限时进行报警。

图7 模糊PID算法程序

4 监控界面设计与实验测试

利用LabVIEW在上位机上设计了PID控制和模糊PID控制实验监控界面,如图8所示。监控界面的左上部分为串口通信部分,设置串口通信相关参数如波特率、数据比特、字节总数等[15]。监控界面的左下半部分为控制参数设置部分,可以设置PID的3个参数。在监控界面的右下半部分,可以设定期望温度、上限温度和下限温度值。当电烤箱温度超过设定的上限值或低于设定的下限值时,相应的指示灯变亮、发出警告。中间部分为实时曲线显示部分,能够实时地监测电烤箱的温度变化情况,也可以在当前温度处查看实时温度。在模糊PID控制监控界面中,可以监测模糊推理结果即3个参数的增量变化情况。

图8 监控界面

在完成硬件设计、串口通信设计、控制算法设计和监控界面设计之后,进行测试。在监控界面上,分别执行PID控制算法和模糊PID控制算法,可以得到两种算法作用下的温度响应曲线,如图8所示。比较温度PID控制与模糊PID控制效果可知:PID控制初期响应速度较快,但是超调较大,过渡过程振荡较大,调节时间较长。模糊PID控制的初期响应速度比PID控制慢,温度上升较为平缓,但由于模糊PID的3个参数能根据误差和误差变化量进行在线调整,所以模糊PID具有较小的超调,过渡过程较平稳,整体调节时间比PID控制短,控制效果优于PID控制。

5 结语

利用低成本的单片机等元器件和LabVIEW软件开发了温度自动控制系统综合实验项目,学生可以在此实验项目基础上对实验内容进行拓展,例如开发先进控制算法等实验内容。此外,学生也可以根据实验室现有设备,按照文中的设计方法自行开发其他综合实验项目,例如将被控对象更换为电动机或水箱等设备,开发调速控制系统、液位控制系统等综合实验项目,从而达到对学生理论应用、系统设计、实验调试等综合能力训练的目的。

猜你喜欢
控制算法模糊控制串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于ARM+FPGA的模块化同步控制算法研究
高精度位置跟踪自适应增益调度滑模控制算法
T-S模糊控制综述与展望
基于模糊控制的PLC在温度控制中的应用
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于模糊控制的恒压供水系统的研究
基于模糊控制的无人机滑跑起飞控制方法研究
串口技术的实物调试和虚拟仿真联合教学模式