APP下载

一种嵌入式PID 恒温控制的教学实验设计

2020-12-16张加宏杨天民冒晓莉周炳宇

实验技术与管理 2020年10期
关键词:试验箱恒温控制算法

张加宏,杨天民,刘 恒,冒晓莉,周炳宇

(南京信息工程大学 电子与信息工程学院,江苏 南京 210044)

嵌入式系统是一门汇集计算机软硬件、模拟电子技术、数字电子技术、应用领域专业技术等各方面知识的综合性课程,需要学生拥有完整的理论知识、清晰的设计思路和较强的实际动手调试能力。而目前的嵌入式系统课程多以理论教学为主,缺乏实际操作和思维训练,学生不能获得参与感和知识获得感,因此很难切实提升学生的实践创新能力。如何进行嵌入式实验教学改革、设计与构建较好的嵌入式教学实验是一个值得探索的方向[1-2]。本文以恒温微电子机械系统(MEMS)传感器芯片为例,设计了一个较为完备的嵌入式系统教学实验。实验以嵌入式系统为平台,利用PID 控制算法、脉冲宽度调制(PWM)技术[3-4],实现MEMS 压力传感器芯片的恒温控制。通过这样有实际意义的嵌入式系统应用开发,提升了学生对嵌入式系统课程的学习兴趣和实践精神,有效地提高了教学水平和质量。

1 PID 控制算法原理

PID 控制算法是一种具有几十年应用经验的控制算法,在工业控制系统中已经得到了广泛的应用[5]。其原理如图1 所示,PID 控制器通过设定值rin(t)与实际值yout(t)的偏差e(t)进行控制,将偏差e(t)作为控制器输入,经过PID 控制器的比例(P)、积分(I)、微分(D)线性组合后构成控制器输出u(t)。当被控系统的输出与设定值有偏差时,通过对信号的检测采集可以把偏差回传到PID 控制系统。PID 控制器依据设定好的控制参数进行输出,从而改变被控系统的输出值,使其趋于设定值以达到稳定输出的目的[6]。

图1 PID 控制系统原理框图

本实验中采用增量式PID 控制算法,k时刻其离散化处理后的公式为[7]:

式中:KP是比例系数,KI是积分系数,KD是微分系数。由上式可见,只需得知当前时刻误差e(k)及前两个时刻误差e(k–1)与e(k–2)即可实现PID 控制。相比于常用的位置式PID 算法,该算法具有更小的累积误差、避免占用大量计算资源和内存空间,适合在ARM微处理器上运行。

2 嵌入式恒温控制系统硬件设计

如图2 所示,本文设计的嵌入式恒温控制系统包括:贴在MEMS 传感器芯片背面的聚酰亚胺加热片、粘附在加热片上面的温度传感器PT1000、加热片驱动芯片TB6612FNG、微处理器主控芯片S5PV210、采集温度信息并进行A/D 转换的AD7794 芯片以及电源模块。嵌入式恒温控制实验运用PID 控制算法,调节PWM 波形控制加热片驱动芯片,从而实现加热片温度(MEMS 传感器芯片温度)在目标温度值附近小幅度摆动,而人机交互主要通过串口通信与TCP 通信实现。通过这类具体的嵌入式实验案例,可以让学生了解工程项目规范化的软硬件设计及调试要求,熟悉嵌入式项目的应用开发流程,理解闭环电子控制系统的结构,掌握PID 控制和PWM 方法,并能够拓展应用到其他的场景中。

图2 嵌入式恒温控制系统框图

本文嵌入式恒温控制系统的硬件平台构建在三星公司生产的S5PV210 ARM 微处理器芯片上,系统功耗低、运算速度快,已经被广泛应用于电力设施、网络通信、医疗设备、工业控制等行业[8-9]。S5PV210芯片包括180 个引脚,有两组SPI 接口,本文使用SPI0接口进行实验,SPI0_CSn、SPI0_CLK、SPI0_MOSI、SPI0_MISO 分别与AD7794 芯片的CS、SCLK、DIN、DOUT 引脚相连接。微处理器的KP_ROW0、KP_ROW1、KP_ROW2 、 PWMTOUT0 引脚分别与驱动芯片TB6612FNG 的STBY、AIN1、AIN2、PWMA 引脚相连。芯片SP3232 的T2IN、R2OUT 与微处理器的TXD2、RXD2 引脚相连实现串口通信,可以方便快捷地进行调试。温度传感器采用四线制测量方法,通过AD7794 芯片的3、4 通道采集温度信息。驱动芯片为两通道输出,考虑到微处理器输出的PWM 信号与驱动芯片的PWMA 相连,因此加热片与驱动芯片的A通道相连,为保证驱动芯片正常工作,采用5 V 独立电源为其供电。电源包括+9 V、+5 V、+3.3 V 以及参考电压+4.096 V,分别为微处理器、驱动芯片、通信电路、AD7794 芯片等模块供电,不同的模块电源地连接公共地。整个嵌入式系统硬件实物图如图3 所示。

图3 嵌入式系统硬件电路实物图

3 实验开发环境及软件流程

嵌入式开发的初期阶段,为了运行开发工具和方便代码的调试,需要在宿主机上通过交叉编译、汇编、链接工具生成可在目标板上执行的二进制代码文件系统,然后将该文件系统下载到目标板运行[10]。为保证用户应用程序可以在嵌入式环境下运行,除了必要的上述硬件平台外,还必须建立与应用程序相关的软件平台。系统软件开发环境如下:

(1)宿主机:Ubuntu 14.04 操作系统。

(2)目标板:基于SAMSUNG S5PV210 的PID恒温控制系统。

(3)交叉编译工具:arm-linux-gcc-4.4.1。

(4)bootloader:u-boot-1.3.4。

(5)内核源码:linux-2.6.35.7。

本嵌入式恒温系统的软件系统移植步骤包括:

(1)移植bootloader;

(2)配置、移植linux 内核;

(3)构建根文件系统;

(4)交叉编译busybox,移植库文件到/lib 与/usr/lib目录;

(5)根据需要构建etc 目录,在/dev 目录下创建静态设备文件节点;

(6)创建proc,tmp,mnt,sys,root 文件;

(7)将库文件、应用程序以及动态设备驱动分别添加到对应的目录;

(8)制作根文件系统镜像并烧写。

在S5PV210 芯片上移植完操作系统后,用户编写的应用程序就可以通过调用Linux 系统提供的API 对硬件设备进行操作,实现程序对硬件设备的控制。如编写SPI 通信程序[11],则可实现对AD7794 芯片寄存器读写,获取温度信息。整个系统软件框架如图4 所示。

图4 系统软件框架图

整个恒温控制实验分为两步, 第一步, 利用AD7794 采集温度传感器PT1000 的温度信息,通过串口通信在PC 端实时显示;第二步,设定目标温度,观察输出的温度变化情况,调节PID 控制参数,使加热片可以快速升温至设定温度且保持稳定。

具体步骤如下:

步骤一,首先上电准备,输入init 命令对系统进行初始化,成功则返回信息 “initdone”,输入read_Temperature 获取温度信息并进行显示,如图5(a)所示。

步骤二,程序中预先设置了目标温度值与PID 的比例系数KP,积分系数KI,微分系数KD的值。首先重复实验步骤一,初始化成功后输入PID 控制命令pid_algorithm,启动PID 算法控制PWM 脉冲宽度,驱动加热片工作,根据返回的温度信息调节比例系数KP,积分系数KI,微分系数KD的值,使MEMS 传感器芯片处于设定温度,如图5(b)所示。具体调节过程为:初始设定KP为较大的值,KI、KD设置为0,观察温度变化情况,当出现振荡时,记录此时的系数值;接下来调节KI,设定一个初始值,当摆动在目标值附近单一轮回且恢复慢时,适当减小KI,当摆动在目标位置多次来回波动,加大KI;最后设置KD,偏离目标值大且恢复慢,加大KD,单位时间内偏离目标角度误差不大,但振荡频繁,则减小KD[12]。图中计算温度差并调整占空比的过程为程序自动计算,这里列出来是为方便更好地理解增量式PID 的过程。

图5 PID 恒温算法软件流程图

实验中,嵌入式端利用Linux 平台提供的Socket网络通信API,实现与PC 端的网络通信[13]。PC 端作为客户端,嵌入式端作为服务器。客户端首先需要与服务器建立主连接,并发送用户登录信息(包括用户名和密码);服务器接收到数据后校验用户登录信息,如果一致则表示登录成功,服务器就可以将实时温度数据和PWM 占空比等信息以数据包的形式发送给客户端;同时,客户端可通过向服务器发送命令控制和配置服务器,实现网络通信。网络通信框架及流程图如图6 所示。

图6 TCP 网络通信框架示意图

4 实验设计与分析

4.1 系统安全设计

实验设计搭建的实验平台包括中科赛凌高低温试验箱和嵌入式恒温控制系统测量电路,实验平台效果如图7 所示。为验证系统性能,将嵌入式恒温控制电路置于中科赛凌温度箱中进行实验,测试不同温度环境下系统恒温效果。该试验箱提供-90~150 ℃的温度调节范围,升降温速率为2~5 ℃/min,温度波动小于±0.5 ℃。试验箱性能指标优越、管理智能化、触摸屏界面易操作、数据接口丰富,可以与PC 机和其他设备组网,非常适用于恒温测试实验。

图7 实验平台效果图

开展实验时将测量电路放入温度试验箱内,设定试验箱温度,待试验箱温度稳定后测量温度并进行实验,实验完毕重新设定试验箱温度并重复以上步骤,直至完成全部实验。在系统安全设计方面,主要考虑以下几点:

(1)合理配置I/O 引脚,采用排线进行电气连接,避免误插线引起的故障。

(2)实验中,要求实验者牢记先断电再插线,检查正确后再上电进行测试,操作中不允许带电热插拔和接线。

(3)软件编程采用工程模块化方法,头文件里配置引脚及宏定义、函数声明,便于工程的硬件平台移植。

(4)系统调试时,根据模块功能进行单一模块的调试,子模块调试通过后再级联测试,避免将所有模块连一起再测试复杂的功能。

(5)实验过程中禁止长时间打开温度箱,实验完毕及时关闭电源。

4.2 实验步骤及现象分析

根据搭建的实验平台依次连接,将测量电路放入温度试验箱中并关紧箱门,设定试验箱温度,输入init命令对系统进行初始化,输入read_Temperature 可以获取当前MEMS 传感器芯片温度数据;待试验箱温度稳定后输入控制命令pid_algorithm,启动PID 算法控制PWM 脉冲宽度,驱动加热片工作,监测并记录传感器5 min 内温度变化情况,一组数据测量完成后,更改试验箱温度重复上述步骤直至测完所有数据。

恒温系统的目标温度设定要略高于最大工作温度,由于通常环境中压力传感器最高工作温度是50 ℃,因此加热目标温度设定为50 ℃。如图8 为传感器记录的恒温控制系统加热片温度变化情况,可以看出,在不同的温度环境下,加热片经过一段时间的波动,在150 s左右趋向于稳定,并且芯片温度保持在50 ℃左右。

图8 恒温控制系统温度变化曲线图

本实验使用了增量式PID 算法,它根据温度差可自动调节输出PWM 波形的占空比来恒温[14]。实验也可测试不同环境下加热片维持在 50 ℃时需要的PWM 波形占空比,如图9 所示。实验中由于PWM 占空比先增大后减小、再振荡、最后稳定,不方便记录,所以我们记录的是稳定后的PWM 占空比,即PWM波的稳定功率。根据测试结果,当环境温度为-40 ℃时,加热片维持恒温50 ℃所需要的占空比为44.7%,当环境温度为50 ℃时,加热片维持恒温50 ℃所需要的占空比为0.03%。由图9 可知,环境温度越低,加热片需要更大的功率才能达到50 ℃恒温,也即需要的PWM 波占空比更大。值得注意的是,不同的加热片因其形状、阻值不同,维持50 ℃需要的占空比并不相同,若更换加热片则需要重新标定PID 参数。

为了实时监测恒温控制电路的恒温情况,本实验在PC 端提供了基于QT 的图形显示界面[15],如图10所示,为试验箱不同温度情况下输出的温度变化信息。

根据图10 实验结果不难看出,在温度箱设定为-40 ℃时,芯片温度在50.2~49.95 ℃范围内波动;当温度箱设定为50 ℃时,压力传感器芯片温度基本保持在50.23 ℃;加热片稳定后不同温度条件下MEMS压力传感器芯片的温度误差范围小于±0.5 ℃,恒温系统温度控制效果明显,达到了设定要求。

图9 不同温度下恒温50 ℃所需的PWM 波占空比

图10 不同温度情况下试验箱输出的温度信息

5 结语

该实验设计提出了一种以PID 温度控制为主要功能的嵌入式系统综合设计实验,实验涉及的知识面广,软件包括传感器的SPI 通信时序、数字增量式PID 编程、基于定时器的脉冲宽度调制技术、微处理器的中断编程、Linux 应用及网络编程等,该实验设计的创新主要体现在:

(1)利用定时器输出PWM 波,调节PWM 波的占空比,即可实现加热片温度的增大或减小,实现恒温控制功能,扩充了PWM 波的应用场景;

(2)以增量式PID 控制算法为例,指导学生在实践过程中掌握PID 参数的调节方法,为后续更好更复杂的PID 算法在实践中的应用和调试打下坚实基础;

(3)实现多种通信接口(TCP/IP、串口),搭建了嵌入式端服务器与上位机客户端进行通信,实现多种方式的人机交互功能。

通过本次实践,学生不仅能够获取PID 控制算法在控制领域的具体方法,更能掌握嵌入式开发中的软硬件设计流程,提高学生对嵌入式系统这门课程的学习兴趣。理论结合实际应用的实验设计在教学实践中获得较好的效果。2012 年以来,笔者一直负责所在团队研究生电子设计大赛的赛前培训和竞赛指导工作。团队学生100%获奖,其中获国家总决赛一等奖2 项、二等奖2 项、三等奖1 项,华东赛区一等奖3 项、二等奖3 项。

猜你喜欢

试验箱恒温控制算法
环境试验箱温度偏差分析及修正探讨
基于PLC及组态技术的恒温控制系统开发探讨
纺织机械手专利瞄准控制算法
基于PID控制的一体化恒温激光器系统设计
基于ARM+FPGA的模块化同步控制算法研究
理想气体恒温可逆和绝热可逆过程功的比较与应用
基于单片机的恒温自动控制系统
变温过程试验箱温度特性分析
基于航迹差和航向差的航迹自动控制算法
一种非圆旋转工件支撑装置控制算法