0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用PID算法的智能温度控制器

芯航路IOT 来源:LONGSHEN1 作者:LONGSHEN1 2023-12-08 13:57 次阅读

一、功能说明

采用PT100精密测温电阻作为温度传感器,将其采集到的温度数据传输至单片机进行转换,再由单片机进行PID控制,生成相应的PWM信号,该信号被SSR接收并转换为对发热片的输出。该系统通过PID输出的PWM信号来精确控制发热片的温度,同时通过控制加热频率来实现与发热片环境的热平衡,确保系统温度的稳定性。此外,还配备了一个环境温度传感器,以便在PT100温度受环境影响而发生变化时进行相应的补偿。

二、硬件设计

2.1 原理框图

wKgaomVpdhGAZR_GAAJ0hmJqAQQ212.png

2.2 各功能框图说明

2.2.1 MCU最小系统

该MCU采用了宏晶科技的STC8A8K64D4 LQFP64封装,以下是其主要特点:

wKgZomVpdlaARk74AAD4kFK7TNk037.png

STC8A8K64D4具备内置的高精度时钟单元和硬件复位电路,因此在使用时无需外部时钟电路和复位电路,有助于降低成本。

在单片机电源输入部分增加一个100nF的旁路电容,其主要功能包括:

1、滤除电源上的高频噪声。

2、储能,当负载需要瞬时电流时,电容率先为其提供电流,减小电源产生的波动。

3、给高频信号提供最近的低阻抗回流路径,减少对其他芯片电源的干扰。

wKgZomVpdquARXyHAAGXfBumIWY795.png

2.2.2 电源电路

电源电路采用220V交流电转5V直流电的电源模块,或者可以通过外部适配器直接提供5V直流电。该电源模块具有低纹波噪声、过载保护、短路保护以及过热保护等功能,以确保系统的稳定性和可靠性。电路图描述如下:

wKgaomVpdtGARgF9AADjeQSk_hA554.png

R8 - 压敏电阻,主要用在电路承受过压时进行电压钳位,吸收多余的电流以保护后级敏感元件。

P2 - 220V交流输入。

P1 - 保险丝的作用是过载保护,当电流异常升高到一定程度时,保险丝会熔断切断电流,从而保护电路中的电线或防止短路引起火灾。

U8 - 220V交流电转5V直流电的电源模块。

TV1 - 通过利用该器件的非线性特性,将过电压钳制到一个较低的电压值,实现对后级电路的保护。

C5/C6 - 主要用于滤除由电源输出的直流电压中所含的杂波和噪声,并将其平滑处理为一个稳定的直流电压输出。

F1 - 可以使用0欧姆电阻进行短接,或者采用自恢复保险丝,这是一种具有自恢复特性、可反复使用的非线性过流保护器件。

2.2.3 按键电路

按键电路采用点触按键,当用户按下按键时,电路会检测到按键的接触,并产生低电平信号,从而触发相应的操作。电路图描述如下:

wKgaomVpduWAIhXSAAB-7iEZsI4588.png

KEY1/KEY2/KEY3 - 点触按键,点触按键的工作原理:按钮与触点机械作用,按下按钮,弹簧收缩,触点接触导电条,电路接通;松开按钮,弹簧恢复原状,触点离开导电条,电路断开。

C7/C8/C9 - 在点触按键上连接一个下拉电容,其主要作用是消除按键抖动。当按键被按下时,电容会首先充电,从而抑制了按键的机械性抖动,这样就能够确保单片机程序正确地识别和分辨当前的电平状态。

2.2.4 PT100采集电路

PT100铂电阻温度传感器,其阻值随着温度的变化而呈现相应的变化。为了准确测量PT100的阻值,电桥采集电路是必不可少的工具。该电路由四个电阻组成,其中一个是PT100,其他三个电阻则为已知固定电阻。当PT100的温度发生改变时,其阻值也会随之改变,从而打破了电桥的平衡状态,导致电桥输出一个微小的电压信号。这个电压信号经过放大电路的放大后,将被转换成数字信号并传递给单片机进行处理。电路图描述如下:

wKgZomVpdviAUBCEAADPg-u0u_U730.pngwKgaomVpdwSAT-S6AAE-a3E6x14588.png

2.2.5 DS18B20电路

DS18B20电路主要采集环境温度,在PT100温度控制中,环境温度的变化会对温度测量产生影响,因此需要进行温度补偿。有效地消除环境温度对温度测量的影响,提高温度测量的精度。DS18B20是一种数字温度传感器,它可以通过1-Wire协议与单片机通信,实现温度的测量。在电路设计中,需要将DS18B20连接到单片机的IO口,并使用电桥采集电路来测量温度电路图描述如下:

wKgaomVpdxqALtqHAABQYv2C8bI303.png

R3 - DS18B20是一款单总线温度传感器,其数据线采用漏极开路方式,因此它只能输出低电平而无法输出高电平。为了保持信号的稳定性,需要借助外部强上拉电阻来拉高电平。

C4 - 滤波电容

2.2.6 继电器控制电路

单片机智能调控PWM信号,精细控制发热片温度,同时自动调节加热频率,与环境温度完美匹配,实现智能热平衡。

wKgaomVpdy-ARlIVAACcmhYQS4Y684.png

R1 - 串联电阻的作用是限制电流,使得电路中的元器件不会因为电流过大而被损坏。

R5 - 三极管下拉电阻的作用是为了保证三极管在初始状态下处于稳定关断的状态。

Q1 - 单片机GPIO驱动能力有限,继电器和电磁阀等大功率负载超出其IO驱动能力。继电器控制端为电磁线圈(电感),关断时产生自感电压易烧坏单片机,因此需通过三极管控制继电器。

D1 - 二极管的作用是吸收继电器线圈断电时产生的自感电压,防止三极管被高电压损坏。

C2 -电容在电路中的作用是缓解继电器线圈电流的突变,避免产生过高的感应电动势,从而保护电路中的其他元器件免受电压冲击。

2.2.7 蜂鸣器电路

蜂鸣器是一种可以发出声音的电子元件,通过PWM(脉冲宽度调制)控制技术来调节声音的大小。为了实现对蜂鸣器的控制,我们需要使用三极管。三极管是一种半导体器件,具有电流放大作用,可以将微弱的信号放大成较大的电流,从而实现对蜂鸣器的有效控制。

wKgaomVpd0mAd0kNAACgKCRMTQs852.png

R2 - 串联电阻的作用是限制电流,使得电路中的元器件不会因为电流过大而被损坏。

R7 - 三极管下拉电阻的作用是为了保证三极管在初始状态下处于稳定关断的状态。

Q2 - 蜂鸣器的工作电流通常较大,单片机的I/O口无法直接驱动,但AVR可以驱动小功率蜂鸣器。因此,需要使用三极管来控制蜂鸣器的通断。

D1 - 二极管的作用是吸收蜂鸣器断电时产生的自感电压,防止三极管被高电压损坏。

C2 -蜂鸣器回路上并联电容的作用是为了保护蜂鸣器,让其两端的电压不能突变,吸收浪涌电压。

2.2.8 LED电路

wKgaomVpd1eAbdr1AABbIuzJlmM440.png

R9/R12/R14 - 限流电阻的作用是限制电流,保护LED不被过电流损坏。

2.2.9 数码管显示电路

TM1640是一种专门用于驱动控制LED(发光二极管显示器)的电路,其内部集成了MCU数字接口、数据锁存器以及LED驱动等电路。该电路主要应用于电子产品LED显示屏的驱动。从硬件角度来看,单片机的GPIO驱动能力相对有限,而数码管需要的驱动电流较大,基本达到了单片机驱动电流的极限。在软件方面,数码管的驱动需要实时扫描,如果直接使用单片机进行驱动,需要编写较为复杂的程序,如果程序任务较多,其他任务占用时间较长,数码管不能实时扫描,数码管容易闪烁。因此,使用TM1640电路可以有效地解决这些问题,使得LED显示屏的驱动更加简单、稳定和可靠。

wKgZomVpd3GAM5YTAAE7O9xyb-k612.pngwKgZomVpd32AZwd4AAEsm_Xvxd0173.png

R10/R11 - 使用TM1640芯片时,需要连接CLK和DIN引脚到单片机的GPIO口,并加上上拉电阻,以确保数据传输稳定。

C10/C11 - 在TM1640芯片的电源处加上滤波电容,是为了让电路中的元器件不会受到电源噪音的影响,这样可以让电路更加稳定。

三、软件设计

3.1 程序框图

wKgZomVpd5qAMkJFAAOmmIrihRo453.png

3.2 各功能模块说明

3.2.1 主函数

主函数采用单片机时间片轮询法的程序架构,用于在不使用操作系统的情况下实现多任务的并发执行。它的基本原理是利用定时器中断来划分时间片,每个时间片对应一个任务,通过任务标志和任务函数来控制任务的运行和切换。

单片机时间片轮询法的主要步骤有:

定义任务结构体,包含任务函数、任务运行标志、任务计时器和任务计时器初值等成员。

定义任务数组,初始化各个任务的结构体,并指定任务的运行间隔时间。

编写定时器中断服务函数,用于实现时间轮片的功能。在每个时钟节拍中,逐个检查任务的计时器是否为零,如果为零,则置任务运行标志为1,同时恢复计时器初值;如果不为零,则计时器减一。

编写任务处理函数,用于在主循环中执行各个任务。在每个循环中,逐个检查任务的运行标志是否为1,如果为1,则调用任务函数,并清除运行标志。

编写主函数,进行系统的初始化和任务的处理。

时间片轮询法流程图

wKgZomVpd66ARrJ1AACEvrXI8cs555.png

定时中断服务函数每间隔1ms中断一次,在中断中判断各个任务的时间是否到0,如果定时值不为0,定时器减一,直到为零。为0后定时器重新赋值间隔时间,并置任务执行标志。

wKgZomVpd8aAbp5tAACLfmbbHbA661.png

在main函数里面判断任务执行标志,并执行响应函数。

wKgaomVpd96ATyaIAABofa6wYYA647.png

3.2.2 按键模块

机械式按键在按下或释放时,会因机械弹性作用产生抖动,持续时间约为5-10ms。在此期间检测按键的通与断可能导致判断出错,需要采取消抖措施。如下图,消抖方法分为硬件消抖和软件消抖,硬件消抖就是在按键上并联一个电容,利用电容的充放电特性对抖动过程中产生的电压毛刺进行平滑处理,从而实现消抖。软件消抖可以采用延时或者循环检测的方式去掉后沿抖动。

wKgZomVpd_GAH-9SAAK8_pqsHC8533.png

该程序采用状态机方式处理点触按键,根据不同按键状态执行不同操作,实现更灵活高效的控制方式。状态机设计可精确处理每个按键动作,确保操作准确可靠。

状态机的四要素

现态:状态机当前状态。

触发条件:改变当前状态的发生条件。

动作:状态改变产生相应的动作。

次态:状态机激活触发条件后跳转到的下一状态。

wKgaomVpeAaAB9E3AAIJXJZ0WM8722.pngwKgZomVpeBiAfD2MAAMCi7xJj4M148.png

3.2.3 PT100采集模块

PT100采集模块使用了一种高效且可靠的方法来获取温度值。该模块通过查表的方式得到实际温度值,将采集到的电压信号转换成电阻值,然后根据这个电阻值查询预先设定的表格,从而得到准确的温度读数。这种方法不仅简化了处理过程,而且提高了测温的精度和响应速度。

wKgZomVpeCuAMbULAADJRQR0uH0591.png

3.2.4 PID算法

该程序采用了增量式PID算法进行控制。增量式PID算法是一种常用的控制算法,其显著特点在于将积分环节的累积作用进行了替换,从而避免了积分环节对计算性能和存储空间的过多占用。该算法根据当前误差和上一次误差的差值来计算控制量的增量。该算法由三个组成部分:比例环节、积分环节和微分环节。比例环节根据当前误差计算出比例输出,积分环节根据当前误差和历史误差的累加值计算出积分输出,微分环节根据当前误差和历史误差的差值计算出微分输出。虽然增量式PID算法具有响应速度快的优点,但需要保存上一次的误差值,因此容易受到累计误差的影响。

wKgaomVpeG6AbH2hAABtX0UYwoo869.pngwKgaomVpeE2AGj3nAADtQHr29fY858.png

工业控制领域,PID参数的调试是非常重要的。PID控制器是一种常用的控制算法,它根据误差信号和过去的状态来调整控制输出,以实现对于特定过程的精确控制。

通过串口调试PID参数,可以实现对控制系统的精细调整,以达到更好的控制效果。在进行串口调试时,需要使用特定的工具或软件,以便向控制系统发送命令并接收反馈信息

wKgaomVpeIaAXElcAAKtobHBBqM649.png

四、资料获取

具体源代码和原理图可以前往嘉立创-硬创社搜索“智能温控器”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620871
  • PID算法
    +关注

    关注

    2

    文章

    169

    浏览量

    24116
  • PID
    PID
    +关注

    关注

    35

    文章

    1446

    浏览量

    83819
  • 温度控制器
    +关注

    关注

    1

    文章

    171

    浏览量

    33559
  • Pt100
    +关注

    关注

    9

    文章

    166

    浏览量

    68392
收藏 人收藏

    评论

    相关推荐

    基于PID算法温度控制

    利用安芯一号单片机控制温度加热,软件实现PID算法,利用温度传感
    发表于 11-04 15:34

    温度控制器

    `51温度控制器题目要求: 1.基本要求 A.温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。 B.环境温度降低时(例如用电
    发表于 05-25 22:31

    PID控制器开发笔记之一:PID算法原理及基本实现

    ,却也需要下一定功夫。首先我们从PID算法最基本的原理开始分析和设计这一经典命题。PID算法的执行流程是非常简单的,即利用反馈来检测偏差信号,并通过偏差信号来
    发表于 04-21 16:58

    模糊PID控制算法如何控制匀速升温

    ,误差较小时采用模糊PID控制,实现了2种控制方法的优势互补。 同时在此基础上,给出了Fuzzy PID
    发表于 05-30 10:38

    如何设计基于FPGA的温度模糊自适应PID控制器

    温度是工业生产过程中一个主要的被控参数。目前,大多采用常规PID控制器实现对温度控制
    发表于 11-04 06:01

    采用PID控制器的闭环控制策略

    一、理论下图是采用PID控制器的闭环控制策略。 PID控制器的传递函数: 上式中,Y是
    发表于 08-23 07:07

    FOA优化算法整定PID控制器参数

    【Simulink】FOA优化算法整定PID控制器参数(五)—— 一阶带时延的被控对象目录【Simulink】FOA优化算法整定PID
    发表于 08-30 06:46

    PID控制器的作用到底是什么

    文章目录PID控制器1. 控制器1.1 电机速度控制系统1.2 温度或水位控制系统1.3 小小总
    发表于 09-07 07:39

    基于单片机PID算法温度控制系统设计资料分享

    恒温控制器广泛应用于工业需要温度控制的地方,电子产品出货前也要进行恒温老化测试,温度控制器必不可少,而
    发表于 11-10 07:30

    基于MBP算法PID控制器设计

    针对一般BP 算法存在的不足,提出一种改进的BP 算法,并将其应用于PID 控制器的参数设计中,并且克服了常规的PID
    发表于 08-07 09:42 18次下载

    pid算法_什么是pid算法

    PID控制器是一种最优控制。本文讲述了增量式PID算法原理与数字PID
    发表于 01-01 11:58 1.1w次阅读
    <b class='flag-5'>pid</b><b class='flag-5'>算法</b>_什么是<b class='flag-5'>pid</b><b class='flag-5'>算法</b>

    PID控制器PID算法的研究

    PID 算法 在过程控制中,PID 控制器,一直是应用最为广泛的一种自动控制器
    发表于 11-21 17:03 28次下载

    采用基于BP神经网络的PID控制方法实现反应釜温度控制系统的设计

    常规PID控制算法对于大部分工业过程的被控对象控制效果良好,但是对于反应釜温度的时间滞后问题,PID
    的头像 发表于 06-18 08:14 4744次阅读
    <b class='flag-5'>采用</b>基于BP神经网络的<b class='flag-5'>PID</b><b class='flag-5'>控制</b>方法实现反应釜<b class='flag-5'>温度</b><b class='flag-5'>控制</b>系统的设计

    温度控制PID算法及C程序实现

    温度控制PID算法j较为复杂,下面结合实际浅显易懂的阐述一下PID控制理论,将
    发表于 05-31 16:31 101次下载

    基于单片机PID算法温度控制系统设计(毕设)

    恒温控制器广泛应用于工业需要温度控制的地方,电子产品出货前也要进行恒温老化测试,温度控制器必不可少,而
    发表于 11-05 09:35 38次下载
    基于单片机<b class='flag-5'>PID</b><b class='flag-5'>算法</b><b class='flag-5'>温度</b><b class='flag-5'>控制</b>系统设计(毕设)