基于FreeRTOS和增量式PID的实时温度控制系统优化设计

徐贺杨 ,  洪应平 ,  杨松霖 ,  张旭博 ,  邓慧慧

测试技术学报 ›› 2025, Vol. 39 ›› Issue (03) : 346 -353.

PDF (2195KB)
测试技术学报 ›› 2025, Vol. 39 ›› Issue (03) : 346 -353. DOI: 10.62756/csjs.1671-7449.2025043
传感技术与应用

基于FreeRTOS和增量式PID的实时温度控制系统优化设计

作者信息 +

Optimized Design of Real-Time Temperature Control System Based on FreeRTOS and Incremental PID

Author information +
文章历史 +
PDF (2247K)

摘要

针对传统温度控制系统在实时性、 精度和噪声处理方面存在的局限性, 提出采用开源实时操作系统(Free Real Time Operating System, FreeRTOS)对任务调度优化的设计方案。通过引入增量比例积分微分控制(Proportional-Integral-Derivative Control, PID)算法、 滑动均值滤波器和牛顿-拉夫逊法, 提升采集温度的准确性和系统的响应速度, 提高温度控制的精确度和实时响应能力, 以满足相关行业对温度条件的严格需求。通过优化任务调度、 控制算法和数据处理方法, 本系统有效降低了温度波动和控制误差, 且采集到的温度精度高达±0.005, 有效提高了系统的实时性, 温度稳定时间提升超过300%, 适用于需要高精度和快速响应的现代无人机温度控制应用场景。

Abstract

To solve the limitations of traditional temperature control systems in terms of real-time performance, accuracy, and noise handling, an optimized design using FreeRTOS real-time operating system (RTOS) is proposed. The accuracy of temperature acquisition and the response speed of this system are improved by combining the incremental PID algorithm, moving average filter, and Newton-Raphson method. This optimization is designed to achieve precise temperature control and fast response capabilities to meet the stringent temperature requirements of a variety of industries. Temperature fluctuations and control errors are effectively reduced by optimizing task scheduling, control algorithms, and data processing methods, achieving a temperature acquisition accuracy of up to ±0.005. Output stability and system real-time performance are significantly improved, and the temperature stabilization time increased by over 300%. The system is suited for modern drone temperature control application scenarios where high accuracy and fast response are required.

Graphical abstract

关键词

温度控制 / 开源实时操作系统 / 增量式比例积分微分控制 / 滑动均值滤波 / 牛顿迭代法

Key words

temperature control / free real time operating system(FreeRTOS) / incremental proportional-integral-devivative(PID) / slippery mean filtering / Newton’s iterative method

引用本文

引用格式 ▾
徐贺杨,洪应平,杨松霖,张旭博,邓慧慧. 基于FreeRTOS和增量式PID的实时温度控制系统优化设计[J]. 测试技术学报, 2025, 39(03): 346-353 DOI:10.62756/csjs.1671-7449.2025043

登录浏览全文

4963

注册一个新账户 忘记密码

0 引 言

无人机在高海拔、 极寒等复杂的飞行环境中, 要求精确高且快速的温度控制。然而, 传统温度控制系统由于传感器精度较低、 控制算法不足或解析算法采用线性拟合方式, 导致系统在实时性和精度上存在不足, 难以满足无人机对关键电子元件的精确温控需求[1]。祖一康等[2]基于位置式比例积分微分(Proportional-Integral-Derivative Control, PID)设计了一种智能温度控制系统, 并通过液晶显示屏实现人机交互, 但该系统受限于位置式PID的控制算法, 难以满足高精度和实时响应的要求。格日乐朝鲁等[3]采用增量式PID设计了温控系统, 但由于缺乏对噪声的有效处理, 导致系统的控制精度不足, 从而可能使温度波动大或控制误差偏高。为解决这些问题, 本文提出了基于开源实时操作系统(Free Real Time Operatin System, FreeRTOS)的优化温度控制系统。通过引入增量PID算法、 滑动均值滤波器以及牛顿迭代法, 可在半分钟内把温度稳定到目标值, 测温精度达到±0.005, 可更好地满足无人机在复杂环境中的应用需求。

1 系统总体设计

常规位置式PID控制算法由于其原理简单、 适应性强, 在温度控制系统中得到了广泛应用。然而, 在实际应用中, 温度控制系统通常受到外界因素的影响, 表现出非线性、 时变性和随机性等特性。这使得传统的位置式PID控制在具有高精度和实时性要求的应用场景中难以满足需求[4]。因此, 本研究的主要目标是针对常规温度控制系统进行改进和优化, 以提升其性能。通过引入先进的控制策略和实时操作系统, 解决传统PID控制在复杂环境下的局限性, 从而实现实时性更好和精度更高的温度控制。

如图 1 所示, 该系统由热电偶采集模块、 模拟到数字转换器(Analog-to-Digital Converter, ADC)采样模块、 滑动均值滤波模块、 PID控制模块、 脉冲宽度调制输出模块和加热器模块组成。

该系统区别于传统的实时性不高的裸机, 模块之间通过FreeRTOS任务调度、 消息队列、 传递数据、 信号量、 事件控制对共享资源访问和任务同步[5]。不同于传统裸机延时高, 响应时间长的缺点, 该系统实时性较好, 热电偶选型为PT1000[6], 其电压特性随温度变化较好, 由RS485实现和上位机的指令间的交互。

FreeRTOS是一种广泛使用的实时操作系统, 为嵌入式系统设计。它是一个开源项目, 具有多任务处理能力, 使得开发人员能够在有限的资源环境中高效地管理多个任务。为了满足飞行控制软件对高实时性的要求, 选用FreeRTOS 作为操作系统平台用于实时调度各个周期任务。如图 2 所示, FreeRTOS 的任务调度依赖 STM32F4 处理器内置的系统定时器(Systick), 其通过触发可挂起的系统调用(PendSV)异常来实现。

当系统定时器发生一次中断时, FreeRTOS 会检查当前运行任务的状态, 判断是否需要任务切换。如果需要, 系统将触发 PendSV, 通过在 PendSV 中断中执行上下文切换以完成任务的调度。

2 关键电路设计

温度传感器为PT1000, 采用了白银电极和铂电极, 具有极高的精度和稳定性[7]。通过人为标定后, 精度可达到±0.001, 可测量的温度范围通常为-200~600 ℃, 这个范围远大于其他类型的温度传感器。该温度传感器输出信号与电源电压变化无关, 抗干扰能力强, 能够适应复杂的工业环境。如图 3 所示, 通过桥式电路分压计算出PT1000远离地端的电位值, 运放同相端采集到电位, 反相端通过分压电路采集到固定的参考值1.024 V的电压, 并与同向端进行比较。差分输入信号通过AD623运算放大器进行精准放大[8], 其工作原理是对同相输入端与反相输入端的电压差值增益处理。在此基础上, 系统采用AD8091高速运算放大器构建电压跟随电路, 该拓扑结构理论上具有趋近于零的输出阻抗特性。在实际应用场景中, 尽管运算放大器的非理想特性会导致输出阻抗有所增加, 但通过AD8091的合理配置仍能显著降低输出阻抗, 确保信号在温度控制系统的传输过程中具有足够的驱动能力。计算公式为

Vout=VrefR63R63+R64-PT3PT3+R671+100Rref,

式中: R63, R64, R67, PT3为图3 中各电阻的电阻值; Rref为参考增益电阻值, 为20 kΩ; Vref为2.048 V; Vout为运放输出电压。如图 4 所示, 最终通过AD7793采集到输出电压, AD7793为24位分辨率ADC, 最高位为符号位。AD7793为适合高精度测量应用的低功耗、 低噪声的模数转换器, 其含有3个差分模拟输入, 还集成了片内低噪声仪表放大器, 因此可直接输入小信号。

Vout=V0/223。

由式(1), 式(2)得出PT3=0.000 03 ℃。当ADC采集到的电压变化一个分辨率时, 温度变化0.000 03 ℃, 综合热电阻人为标定后精度可达到±0.001, 理论上采集的温度精度可以达到±0.005, 故本文后续计算保留了4位小数。

如图 5 所示, 加热器驱动电路, 使用栅极驱动器增加STM32的IO口驱动能力。UCC27517单通道高速低侧栅极驱动器是一款高效驱动器件, 专用于绝缘栅双极型晶体管(IGBT)电源开关[9]。

在脉冲宽度调制(Pulse Width Modulation, PWM)调节过程中, 通过调节占空比来控制CTRL_OUT1的输出。当OUT引脚为高电平时, UCC27517驱动NMOS管的栅极电压上升至高电平, 导致MOSFET的漏极和源极导通, 驱动加热器的输出。使用MOSFET驱动器可以有效解决芯片IO管脚驱动能力弱的问题。

3 软件设计

3.1 总体设计

如图 6 所示, 利用PT1000温度传感器采集电压值, 接着对采集到的电压值应用滑动均值滤波算法滤除噪声, 使电压数据曲线更加平滑。根据设定的目标温度值和实际测得的温度值, 计算出比例系数Kp, 通过增量PID算法处理。若数据在测量范围内, 则根据处理后的数据生成PWM信号, 通过开关MOS管来驱动加热器, 以实现温度的精确控制。这一设计充分利用了实时操作系统FreeRTOS的优势, 提高了系统的实时性和控制精度[10]。

3.2 FreeRTOS任务调度

时间片轮转算法的基本思想是[11]: 系统将所有的就绪进程按先来先服务算法的原则排成一个队列, 每次调度时, 系统把处理机分配给队列首进程, 并让其执行一个时间片; 当执行时间片耗尽时, 系统通过计时器发出时钟中断请求, 调度程序接收到该请求后, 会立即暂停当前进程的运行, 并将其移至就绪队列的末尾; 然后, 调度程序会将处理器资源分配给就绪队列中的下一个进程, 即队列首进程, 并为其分配一个新的时间片以进行执行。通过这种机制, 系统能够实现对多个进程的有效管理和调度, 确保资源的公平分配和系统的高效运行。如图 7 所示, 时间片轮调度的消息队列可以直接接收数据, STM32通过温度传感器采集, 保存到消息队列里, 链接模块接收消息队列的数据, 打包成通信协议的特定协议包, 上报温度。

通过互斥信号量和事件通知的方式, 给看门狗上报各个任务的状态, 防止系统出故障, 并且可以有效减少优先级翻转问题, 提高系统实时性。

3.3 增量式PID控制

如图 8 所示, PID控制采用增量式PID[12], 首先设定一个需要的温度, 与反馈来的温度进行比较, 得到温度误差(e)。该误差经过比例(P)、 积分(I)和微分(D)环节的处理, 所计算出的数据Δu(k)与u(k-1)进行和运算。而控制增量Δu(k)的确定仅与最近3次的采样值有关, 所以增量式PID不会累加前面多次的误差, 从而得出更精确的控温输出值。通过程序设定与控温输出值相匹配的PWM值, 进而调节加热器的输出功率, 达到精确调节温度的目的。

∆uk=KpEk-Ek-1+KiEk +
Kd(Ek-2Ek-1+Ek-2),

式中: Kp为比例增益; Ki为积分增益; Kd为微分增益; Ek 为当前时刻的误差, 即期望值与实际值之间的差异, Ek-1和Ek-2分别为上一时刻和上两个时刻的误差。位置式PID算法需要对历次的偏移量进行累加和计算, 而增量式 PID 算法只需要计算最近3次的偏移量。二者相比较, 增量式 PID 算法的计算量更小、 稳定性更强, 更适用于实时性和稳定性的温度控制系统。

3.4 滑动均值滤波

滑动均值滤波器是一种在数字信号处理中广泛应用的简单且有效的滤波器[13]。它通过对一组连续样本的数据点进行平均值计算来减少随机噪声, 从而使采集到的信号更平滑。在温度控制系统中, 通过采集温度传感器的电压信号, 滑动均值滤波器可以在预设数量的样本窗口内计算平均值, 并将该平均值作为当前数据点的输出。跟随窗口沿着信号逐点移动, 不断计算窗口内数据的新平均值, 从而生成平滑后的信号。在温度控制系统中, 滑动均值滤波的应用具有显著优势。首先, 它能有效减小电压信号中的随机噪声, 提高温度测量的稳定性和准确性; 其次, 通过平滑处理, 系统能够更准确地反映温度变化趋势, 减少由瞬时波动导致的误差, 进而优化控制算法的性能; 最终, 这种滤波方法提高了温度控制系统的整体可靠性和响应速度, 满足对高精度和高实时性要求的应用场景。

y(n)=1N∑K=0N-1x[N-K],

式中: n为采样点; K为从0到n-1的计数。

3.5 牛顿-拉夫逊法计算阻值

传统方法通常采用线性拟合, 通过最小二乘法计算, 公式为Rline=3.787 4T+986.4, R2 =0.999 3。这种方法实际误差较大, 有时会产生几摄氏度的偏差, 为了提高精度, 本系统采用牛顿拉-夫逊法, 其能够有效应对温度与电压之间的非线性关系, 适用于复杂工业环境下的精确温度测量和控制。通过求解二次或三次方程获得结果, 显著提升了计算精度能够满足高精度和快速响应的应用需求[14]。

φx=x1-f'x1fx1,
R=R01+AT+BT2+CT-100T3,
R=R0(1+AT+BT2),

式中: R为铂电阻阻值; T为需要计算的温度; R0为1 000 Ω; A为3.908×10-3/℃, B=-5.775×10-7/℃2, C=-4.183×10-12/℃。

4 实验结果

如图 9 所示, 该系统的物理实验采用密封盒子以提高稳定性和可靠性。在密封盒子内部, PT1000温度传感器被牢固地安装并连接到系统电路中。通过盒子外部的端子引出, 可以方便地与PT1000传感器进行接口。这些端子确保了稳固可靠的连接, 同时将信号干扰和损耗降至最低。

实验温度测试采用计算机平台仿真和硬件嵌入式平台同时验证。嵌入式平台以STM32F407为主控芯片, 其软件系统版本为FreeRTOSv9.0系统。另外, 温度测控装置的外部环境为高低温箱, 能长时间保持一个温度值水平。测试时, 将温度测控装置放置高低温箱里, 通过高精度智能多通道测温仪采集准确的温度。

为了验证牛顿-拉夫逊法测试效果, 通过计算机平台仿真验证了4组从-50~200 ℃的温度值, 并分别对线性拟合法和牛顿拉夫逊法进行模拟计算分析。具体的实验数据和计算结果如表 1 所示。

由表 1 可知, 牛顿-拉夫逊法在各个温度点的计算结果更接近实际温度值, 绝对误差和相对误差显著低于线性拟合法。线性拟合法的绝对误差最高达4.9 ℃左右, 而牛顿-拉夫逊法应用在本系统时, 温度值的绝对误差小于±0.004。牛顿-拉夫逊法在整个测试温度范围内均表现出高度一致性和可靠性, 因此, 可用于具有高精度和快速响应温度控制需求的应用。

然后, 使用滑动均值滤波器处理PT1000温度传感器的测试数据, 滤波前后温度曲线如图 10(a) 和 10(b) 所示。通过滑动均值滤波器可以使温度曲线变得平滑, 确保温度变化趋势更加连续和清晰。平滑且连续温度变化的曲线表明测试噪声显著减少, 以及测试温度数据更加稳定和可靠, 有助于更加准确地控制温度变化过程。本系统的滑动均值滤波算法能有效降低电磁干扰、 传感器本身噪声以及环境变化对数据的影响。因此, 将牛顿-拉夫逊法和滑动均值滤波器分别对PT1000温度传感器采集的温度数值和曲线进行优化处理。

采用嵌入式平台验证温度在升高过程中, 外界环境的变化可能会导致测试所得的原始数据波动较大。为探究使用嵌入式平台测试时, 不同温度测试系统的优劣性, 本文通过实验对比了位置式PID、 增量式PID、 增量式PID+FreeRTOS温度测试系统。

如图 11 所示, 为了验证增量式PID温度控制系统的控温效果, 在外界环境温度、 系统温度起始点和设定点等相同条件下且不使用任何操作系统(裸机)的方式进行实验, 分别采用增量式PID和位置式PID算法进行温度测试实验。实验测试前, 采用试凑法进行PID的调参: 环境温度设定为20 ℃, 按照先比例后积分最后微分的顺序进行经典PID控制参数调试, 直至温度测控装置内温度稳定在实验测试的设定点。

分别使用位置式PID算法和增量式PID算法将温度控制设定为60 ℃。如图 11 所示, 测试温度从20 ℃上升并稳定至60 ℃时, 位置式PID算法需对历次的偏移量进行累加和计算, 导致误差的累积, 使温控曲线呈现出较大的波动。而采用增量式PID算法时, 温度上升至60 ℃后, 经过短时间波动即可稳定, 且稳定效果优于采用位置式PID算法时的温度控制过程。

将FreeRTOS引入至基于增量式PID算法的温度控制系统。FreeRTOS的任务调度机制可保证PID控制任务的及时执行, 能显著减少系统延迟并提升了响应速度。此外, 通过FreeRTOS的任务管理, 可以有效地分配系统资源, 避免资源争夺引起的系统不稳定现象。增量式PID算法具有计算量小、 响应快速的优势, 与FreeRTOS的实时调度结合,可以提高系统的实时性。本文对比了位置式PID、 增量式PID、 增量式PID+FreeRTOS温度测试系统的温度控制效果, 如图 12所示。

如图 12(a) 所示, 采用增量式PID算法和增量式PID+FreeRTOS的温控系统能够在数秒内将温度从20 ℃迅速提升至60 ℃, 并在17 s左右时趋于稳定, 相比于位置式PID算法的系统60 s稳定的速度, 提升了超过300%。FreeRTOS的引入可以缩短采用增量式PID算法的系统达到温度设定值的所需时间。从-20 ℃上升到20 ℃时, 3种温控系统的温度变化曲线如图12(b)所示。增量式PID算法引入FreeRTOS后, 温度在16 s后稳定不变, 而普通的位置式PID, 65 s后才达到稳定值。

另外, 表 2 为位置式PID、 增量式PID、 增量式PID+FreeRTOS温度测试系统的温度稳定调整时间均值和平均测温精度。增量式PID+FreeRTOS测温系统的温度稳定调整时间均值为17 s,测温精度为±0.005。因此, 增量式PID+FreeRTOS温度测试系统为实现更精细的温度控制提供了可能性。通过这些优化措施(牛顿-拉夫逊法、 滑动均值滤波器、 增量式PID和FreeRTOS系统), 温度控制系统具备了更高的实时性和响应速度, 使其更易满足其在实际应用场景的需求。

5 结 论

综上所述, 本系统通过引入FreeRTOS实时操作系统, 采用增量PID算法、 滑动均值滤波和牛顿迭代法, 对传统温度控制系统进行了全面优化。这些改进旨在解决传统系统在实时性、 精度等方面的局限性, 从而实现高精度、 实时响应较好的温度控制[15-16]。通过这些技术手段的应用, 该温度控制系统能够在无人机应用中提供更加精确和实时的温度测量与控制。

参考文献

[1]

景蕾. 电阻炉温度控制系统优化[J]. 工业加热, 2024, 53(5): 16-19.

[2]

JING Lei. Optimization of resistance furnace temperature control system[J]. Industrial Heating, 2024, 53(5): 16-19. (in Chinese)

[3]

祖一康, 徐妙婧. 基于单片机和PID算法的温度智能控制系统设计[J]. 现代电子技术, 2024, 47(8): 83-89.

[4]

ZU Yikang, XU Miaojing. Design of temperature intelligent control system based on single-chip microcontroller and PID algorithm[J]. Modern Electronics Technique, 2024, 47(8): 83-89. (in Chinese)

[5]

格日乐朝鲁, 徐雷钧, 白雪. 基于物联网云平台智能开关与温控系统设计[J]. 自动化与仪器仪表, 2024, 37(5): 83-87.

[6]

Gerelchuluun, XU Leijun, BAI Xue. Intelligent switch and temperature control system based on Internet of Things cloud platform[J]. Automation & Instrumentation, 2024, 37(5): 83-87. (in Chinese)

[7]

荆中亚, 陈为. 基于STM32的密炼机自整定PID温控系统设计[J]. 电子设计工程, 2024, 32(5): 51-55.

[8]

JING Zhongya, CHEN Wei. Design of internal mixer self-tuning PID temperature control system based on STM32[J]. Electronic Design Engineering, 2024, 32(5): 51-55. (in Chinese)

[9]

陈杉. 基于FreeRTOS的旋转导向系统主控器设计[D]. 西安: 西安石油大学, 2023.

[10]

杨毅. 用于温度测量的热电阻数据采集系统设计[D]. 成都: 电子科技大学, 2022.

[11]

景俊民. 海洋温盐深流时空同步化测量系统设计与实现 [D]. 太原: 中北大学, 2023.

[12]

陆鑫涛, 陶洪峰, 杨慧中, 等. 基于温湿度补偿的低功耗燃气井监测系统设计[J]. 仪表技术与传感器, 2021(10): 80-84.

[13]

LU Xintao, TAO Hongfeng, YANG Huizhong, et al. Design of low power consumption gas well monitoring system based on temperature and humidity compensation[J]. Instrument Technique and Sensor, 2021(10): 80-84. (in Chinese)

[14]

殷龙凯. 基于STM32的自助鲜啤售卖机控制系统设计 [D]. 淮南: 安徽理工大学, 2020.

[15]

田野. STM32F407和FreeRTOS的嵌入式测试系统设计[J]. 单片机与嵌入式系统应用, 2023, 23(11): 54-58.

[16]

TIAN Ye. Design of embedded testing system based on STM32F407 and FreeRTOS [J]. Microcontrollers & Embedded Systems, 2023, 23(11): 54-58. (in Chinese)

[17]

薛永安. 基于STM32的批量自动测试系统的设计与实现[D]. 天津: 天津科技大学, 2022.

[18]

张继成, 严士超, 纪文义, 等. 基于增量式PID算法的多种固体肥精确施控系统研究[J]. 农业机械学报, 2021, 52(3): 99-106.

[19]

ZHANG Jicheng, YAN Shichao, JI Wenyi, et al. Precision fertilization control system research for solid fertilizers based on incremental PID control algorithm[J]. Transactions of the Chinese Society for Agricultural Machinery, 2021, 52(3): 99-106. (in Chinese)

[20]

吴颜生. 基于表面肌电信号的力解析及应用研究[D]. 长春: 东北师范大学, 2023.

[21]

周亦尧, 王强钢, 匡江锋, 等. 基于功率注入潮流模型的双极直流配电网的电压不平衡分析及传递计算[J]. 电工技术学报, 2024, 39(6): 1-12.

[22]

ZHOU Yiyao, WANG Qiangang, KUANG Jiangfeng, et al. Voltage unbalance analysis and transfer calculation of bipolar DC distribution network based on power injection power flow model[J]. Journal of Electrical Engineering, 2024, 39(6): 1-12. (in Chinese)

[23]

蔺红彦, 尚禹, 韩建宁, 等. 基于AD7616的16通道数据采集系统设计[J]. 测试技术学报, 2024, 38(2): 147-153.

[24]

LIN Hongyan, SHANG Yu, HAN Jianning, et al. Design of 16-channel data acquisition system based on AD7616[J].Journal of Test and Measurement Technology, 2024, 38(2): 147-153. (in Chinese)

[25]

邹伟, 王云峰, 景金荣, 等. 无人机多通道实时测温系统设计[J]. 测试技术学报, 2021, 35(4): 310-316.

[26]

ZOU wei, WANG Yunfeng, JING Jinrong, et al. Design of multi-channel real-time temperature measurement system for unmanned aerial vehicle[J]. Journal of Test and Measurement Technology, 2021, 35(4): 310-316. (in Chinese)

AI Summary AI Mindmap
PDF (2195KB)

1008

访问

0

被引

详细

导航
相关文章

AI思维导图

/

〈 〉