打印
[STC单片机]

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

[复制链接]
1400|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 STCMCUNT015 于 2023-8-16 10:26 编辑

PID 算法来了,PID温度控制
USB-CDC虚拟串口/就是串口

【D-/P3.0, D+/P3.1】直接接电脑返回数据
串口绘图





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)
******************************************/

例子打包:www.stcaimcu.com/forum.php?mod=viewthread&tid=3720&page=1&extra=#pid24630


验证电路:


测试80度相应曲线:


测试80度数码管显示:


串口调试命令:


使用特权

评论回复

相关帖子

沙发
52wm| | 2023-9-24 22:52 | 只看该作者
记号学习

使用特权

评论回复
板凳
tty1| | 2023-9-25 10:07 | 只看该作者
本帖最后由 tty1 于 2023-9-25 10:17 编辑

正好用STC+18B20做温度控制,用得到。谢谢。先研究一下。老师用过18B20吗?18B20与热敏电阻哪个控制得更精确?

使用特权

评论回复
地板
rgjinxuan| | 2023-9-25 11:48 | 只看该作者
有用到

使用特权

评论回复
5
STCMCUNT015|  楼主 | 2023-9-26 10:22 | 只看该作者
tty1 发表于 2023-9-25 10:07
正好用STC+18B20做温度控制,用得到。谢谢。先研究一下。老师用过18B20吗?18B20与热敏电阻哪个控制得更精 ...

正好用STC+18B20做温度控制===可能 STC8H8K64U+NTC 测温更好些,有完整的讲解




www.stcaimcu.com/forum.php?mod=viewthread&tid=3184&extra=page%3D1

STC8H8K64U+NTC 测温更好些,完整的讲解

使用特权

评论回复
评论
tty1 2023-9-26 12:00 回复TA
好的,谢谢。有空看看。 
6
tty1| | 2023-9-28 16:38 | 只看该作者
没看懂 pGain、iGain、dGain 是怎么确定的,不停地盲试?

使用特权

评论回复
7
coody| | 2023-10-7 10:07 | 只看该作者
tty1 发表于 2023-9-28 16:38
没看懂 pGain、iGain、dGain 是怎么确定的,不停地盲试?

一般步骤:
1、先让iGain=0,dGain=0,根据升温速度(此时经验很重要)给pGain确定一个,然后测试,如果当温度出现震荡时,pGain值减半。
2、慢慢加大iGain值,直至出现震荡,iGain值减半。
3、慢慢加大dGain值,直至出现震荡,dGain值减半。
然后再微调pGain、iGain,升温尽量快,又不过冲(或很小的过冲),则为最佳。
PID调试,经验很重要。

使用特权

评论回复
评论
tty1 2023-10-7 15:50 回复TA
谢谢,对PID不熟。 
8
gx_huang| | 2023-10-8 13:33 | 只看该作者
PID的基本算法,用MCU实现,还是比较简单的。
但是要在实际各种控制场合实现温度控制,还是比较难的。
举例如下:
1、热容量很大,保温很好,很容易过冲。开始一直加热,温升很慢,等温度上升后,维持的加热功率又很小。
2、加热和测温之间的延迟很大的。
3、加热方式是继电器触点的,输出周期不能太短,但是温度变化又比较快的。

使用特权

评论回复
9
STCMCUNT015|  楼主 | 2023-10-8 15:10 | 只看该作者
USB / CAN 专题免费教学会议通知:
【USB 原理及实战,16课时】10月/9号, 10月/11号; 10/16, 10/18;
【CAN 原理及实战,12课时】10月/23号, 10月/25号; 10月/30号;
线上视频授课:周一下午/周三下午,14:00 ~ 17:00;  
腾讯会议号:885-5858-2739; (安装腾讯会议软件后,输入会议号即可)
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4526&page=1&extra=#pid30477

请帮忙转发给可能需要:从0开始了解USB和CAN的 同学/同事/老师/研发人员

使用特权

评论回复
10
STCMCUNT015|  楼主 | 2023-10-10 13:54 | 只看该作者
本帖最后由 STCMCUNT015 于 2023-10-10 17:23 编辑


www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=4526&pid=30749


【USB 原理及实战,16课时】10月/9号, 10月/11号; 10/16, 10/18;
【CAN 原理及实战,12课时】10月/23号, 10月/25号; 10月/30号;
线上视频授课:周一下午/周三下午,14:00 ~ 17:00;  
腾讯会议号:885-5858-2739; (安装腾讯会议软件后,输入会议号即可)
参会学习立即【免费+包邮送】USB核心功能实验板
参会学习立即【免费+包邮送】CAN核心功能实验板,模拟的CAN收发器您自己补上
请帮忙转发给可能需要:从0开始了解USB和CAN的 同学/同事/老师/研发人员

使用特权

评论回复
11
STCMCUNT015|  楼主 | 2023-10-16 15:44 | 只看该作者
本帖最后由 STCMCUNT015 于 2023-10-16 15:45 编辑


STC下午也不休息,视频讲解 USB 中,腾讯会议号885-5858-2739; (安装腾讯会议软件后,输入会议号即可)腾讯会议号885-5858-2739; (安装腾讯会议软件后,输入会议号即可)

使用特权

评论回复
12
STCMCUNT015|  楼主 | 2023-10-18 08:51 | 只看该作者
这几天早起后的习惯就是听下 STC8H8K64U的 PWM 播放的 【奢香夫人】

www.stcaimcu.com/forum.php?mod=viewthread&tid=4547&page=1&extra=#pid30626

使用特权

评论回复
13
STCMCUNT015|  楼主 | 2023-10-27 17:26 | 只看该作者
本帖最后由 STCMCUNT015 于 2023-10-27 17:28 编辑

USB 原理实战16课时】,视频教学已完美完成 ,大学标准课程
【10月/9号,10月/11号】USB基本原理教学视频, 已上传
10月/16号USB-HID 通信 实战】教学视频超级完美, 已上传
             是对着协议代码一行一行的讲解,认真听的都说会了
10月/18号下午USB-CDC虚拟串口 实战】教学视频, 已上传
             USB-CDC虚拟串口 / 就是最简单最强大的串口
             是对着协议代码一行一行的讲解,认真听的都说会了

请帮忙转发给可能需要:从0开始了解 USB 同学/同事/老师/研发人员USB 原理实战,教学视频回放右击【下面视频画面】| 选择【将视频另存为】存到您电脑看
认真学习 STC USB 教学视频,发表学习心得,均可【免费+包邮送】USB实验设备
www.stcaimcu.com/forum.php?mod=viewthread&tid=4526&extra=&page=1
=========================================
CAN 原理实战8课时】,教学视频,制作中,后续直接看视频回放



使用特权

评论回复
14
zwsam| | 2023-10-30 17:17 | 只看该作者

使用特权

评论回复
15
wtyiyou| | 2023-11-4 17:52 | 只看该作者
谢谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

176

帖子

1

粉丝