找回密码
 立即注册
查看: 7962|回复: 75

PID 算法来了,视频讲解; PID温控;串口绘图;USB-CDC虚拟串口/就是串口

  [复制链接]

该用户从未签到

45

主题

2920

回帖

6564

积分

超级版主

积分
6564
发表于 2023-8-10 22:19:26 | 显示全部楼层 |阅读模式
PID 算法来了,PID温度控制, 有视频讲解
USB-CDC虚拟串口/就是串口
【D-/P3.0, D+/P3.1】直接接电脑返回数据
STC-ISP V6.94D 的 调试接口

串口绘图 工具】帮助 PID 开发调试

PID温控,STC8H8K64U-P1.3测温P1.0加热-PID温控-USB-CDC返回-1.png

STC8H8K64U-P1.3测温P1.0加热-PID温控-USB-CDC返回
/*************        功能说明        **************
本程序演示使用STC8H8K64U的P1.3做12位ADC输入测量温度, 经过PID处理后,从P1.0输出PWM控制MOSFET控制加热,达到恒温目的.
使用STC-ISP的串口助手调试, 可以使用STC-ISP里的串口绘图观察曲线 或 7段数码管观察温度.
程序默认串口绘图观察5条曲线:
1、目标温度(单位度)。
2、当前温度(单位度)。
3、垂直刻度150作为相对误差的0点。
4、当前温度相对目标温度的误差,误差值单位为0.1度,以150刻度为0点,比如140表示当前温度比目标温度低-1.0度,160表示当前温度比目标温度高1.0度。
5、输出PWM的值。

PID整定就是根据具体的项目中的温升速度、散热速度,调整PID采样周期、比例增益、积分增益、微分增益、积分上下限。
PID温控可以只用PI(微分增益设置为0)即可达到稳定,本利测试时微分增益为0.
PID整定是一件繁琐的事,要有耐心,并且要深入理解PID的行为表现。
特别提醒:想要升温快,则就会有过冲,升温越快过冲越大。

串口发送单字符命令:
b或B: 开启PID.
s或S: 停止PID.
0: 不打印信息.
1: 打印绘图曲线。
2: 打印7段数码管显示温度。

串口发送数字字符串设置采样时间、目标温度、pGain、iGain、dGain,数据之间逗号分隔:
200,60,20,10,100,
200: 采样时间, ms.
60: 目标温度, 单位度.
20:  pGain比例增益
10:  iGain积分增益, 1对应为0.001
100: dGain微分增益

//==================================================================================
NTC 热敏电阻温度计算公式:Rt = Ro *EXP(B/T-B/To),温度单位为绝对温度K,开尔文。
(1) Rt 是热敏电阻在温度T下的阻值。T是绝对温度。

(2) Ro是热敏电阻在To(25度)时的阻值。10K的热敏电阻25℃的值为10K(即Ro=10K)。To = (273.15+25)。
(3) EXP(n) 是 e 的 n 次方。
(4) B值是热敏电阻的材料系数。

通过转换可以得到温度T与电阻Rt的关系:T=1/(1/To+ln(Rt/Ro)/B)
对应的摄氏温度t=T-273.15。

电路连接: Vref -- 10K --ADC-- NTC -- GND, 12位ADC,计算出Rt/Ro的ADC值:
ADC = 4096*Rt/(Rt+Ro), 则
Rt/Ro = ADC/(4096-ADC), 从而
T = 1/(1/To+ln(ADC/(4096-ADC))/B)
******************************************/

例子打包:
15-STC8H8K64U-P1.3测温P1.0加热-PID温控-USB-CDC返回.rar (853.72 KB, 下载次数: 821)
15-STC32G12K128-P1.3测温P1.0加热-PID温控-USB-CDC返回.rar (853.44 KB, 下载次数: 537)
验证电路:
PID 算法来了,PID温控;USB-CDC虚拟串口/就是串口;串口绘图-1.png
上图中 VREF处的电容, C5实际焊 22uF,
TL431/CD431的输出处的电容焊22uF/10uF, 不要再小了
主MCU的电源去耦电容, C1实际焊22uF

PID 算法来了,PID温控;USB-CDC虚拟串口/就是串口;串口绘图-2.png
上图中 VREF处的电容, C5实际焊 22uF,
TL431/CD431的输出处的电容焊22uF/10uF, 不要再小了
主MCU的电源去耦电容, C1实际焊22uF

测试80度相应曲线:
测试80度曲线.png

测试80度数码管显示:
测试80度虚拟7段数码管显示.png

串口调试命令:
串口命令.png

相关的视频讲解已发布
视频回放,2023/8/21期,FFT频谱分析/PID算法实现/串口绘图,梁工主讲
【新提醒】视频回放,2023/8/21期,FFT频谱分析/PID算法实现/串口绘图,梁工主讲 - 《单片机原理及应用》教学改革及实践研讨会,实战技术交流会,会务通知,视频回放 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

延伸阅读:
三相无刷电机驱动-STC32G-无HALL-PID控制-OLED显示-串口绘图
三相无刷电机驱动-STC32G-无HALL-PID控制-OLED显示-串口绘图 - BLDC/144MHz时钟源PWM/45路PWM+3路CCP/7组不同周期的PWM/DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
截图202404040955347019.jpg

截图202404040955561128.jpg
回复 送花

使用道具 举报

  • TA的每日心情
    开心
    昨天 04:56
  • 签到天数: 125 天

    [LV.7]常住居民III

    5

    主题

    45

    回帖

    689

    积分

    高级会员

    积分
    689
    发表于 2023-8-16 08:54:59 | 显示全部楼层
    本帖最后由 ryhyc 于 2023-8-16 10:01 编辑

    梁老师:您好!
    我使用的是STC32G12K128芯片,改变芯片后编译错误太多,是哪里的问题?

    能否请梁老师转换到屠龙刀上供大家学习呢?

    点评

    已改好、测试好,放在主楼了。  详情 回复 发表于 2023-8-16 16:46
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    5

    主题

    18

    回帖

    148

    积分

    注册会员

    积分
    148
    发表于 2023-8-16 12:02:33 | 显示全部楼层
    梁工,你好。请问能否发一下温度探头和发热元件热耦合的照片。另外能否提供这两款物料的购买链接。谢谢

    点评

    我就是随便找一个大功率水泥电阻,8欧姆10瓦的,然后将0K@25度C、B=3950的NTC用胶带绑在一起即可。  详情 回复 发表于 2023-8-16 16:51
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:31
  • 签到天数: 39 天

    [LV.5]常住居民I

    1

    主题

    7

    回帖

    46

    积分

    新手上路

    积分
    46
    发表于 2023-8-16 12:02:53 | 显示全部楼层
    绝对牛叉,之前手工编写的PID调温,很心累,现在有官方例程,绝对靠谱

    点评

    我就是写一个最基本的PID,用于学习原理。  详情 回复 发表于 2023-8-16 16:53
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 07:44
  • 签到天数: 155 天

    [LV.7]常住居民III

    12

    主题

    338

    回帖

    1054

    积分

    金牌会员

    积分
    1054
    发表于 2023-8-16 14:46:19 | 显示全部楼层
    可以再超调点,速度更快,收藏备用

    点评

    用户根据自己的项目调整,升温快,则过冲大,只要项目允许,没有问题。  详情 回复 发表于 2023-8-16 16:52
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2920

    回帖

    6564

    积分

    超级版主

    积分
    6564
     楼主| 发表于 2023-8-16 16:46:08 | 显示全部楼层
    ryhyc 发表于 2023-8-16 08:54
    梁老师:您好!
    我使用的是STC32G12K128芯片,改变芯片后编译错误太多,是哪里的问题?

    已改好、测试好,放在主楼了。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2920

    回帖

    6564

    积分

    超级版主

    积分
    6564
     楼主| 发表于 2023-8-16 16:51:24 | 显示全部楼层
    奥古斯朱 发表于 2023-8-16 12:02
    梁工,你好。请问能否发一下温度探头和发热元件热耦合的照片。另外能否提供这两款物料的购买链接。谢谢 ...

    我就是随便找一个大功率水泥电阻,8欧姆10瓦的,然后将0K@25度C、B=3950的NTC用胶带绑在一起即可。

    1.png

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2920

    回帖

    6564

    积分

    超级版主

    积分
    6564
     楼主| 发表于 2023-8-16 16:52:43 | 显示全部楼层
    wangxiangtan 发表于 2023-8-16 14:46
    可以再超调点,速度更快,收藏备用

    用户根据自己的项目调整,升温快,则过冲大,只要项目允许,没有问题。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2920

    回帖

    6564

    积分

    超级版主

    积分
    6564
     楼主| 发表于 2023-8-16 16:53:31 | 显示全部楼层
    ezj2008 发表于 2023-8-16 12:02
    绝对牛叉,之前手工编写的PID调温,很心累,现在有官方例程,绝对靠谱

    我就是写一个最基本的PID,用于学习原理。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 04:56
  • 签到天数: 125 天

    [LV.7]常住居民III

    5

    主题

    45

    回帖

    689

    积分

    高级会员

    积分
    689
    发表于 2023-8-16 16:55:23 | 显示全部楼层
    梁工 发表于 2023-8-16 16:46
    已改好、测试好,放在主楼了。

    谢谢梁老师!
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-29 01:11 , Processed in 0.073278 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表