找回密码
 注册
关于网站域名变更的通知
查看: 785|回复: 4
打印 上一主题 下一主题

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

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2023-8-16 09:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 岁月如歌21 于 2023-8-16 10:20 编辑
) j# Z9 ]* m' ?) R' d& V3 ?1 z* `9 H$ ^' U
PID 算法温度控制
6 P) r1 i$ t7 K8 dUSB-CDC虚拟串口/就是串口,6 v0 c8 P4 [) C9 Y5 y2 D
【D-/P3.0, D+/P3.1】直接接电脑返回数据
# r) x6 q3 p5 W  Q7 u4 \; G9 H2 E* Q. h9 j: y0 t7 Y" I
- G+ m- \* x/ \8 C: _! h: K
STC8H8K64U-P1.3测温P1.0加热-PID温控-USB-CDC返回
5 R; U: Z! g0 n% o& D) K# A3 e' I) Z/*************        功能说明        **************
$ _: l1 L+ }  R, r  e6 _8 Z本程序演示使用STC8H8K64U的P1.3做12位ADC输入测量温度, 经过PID处理后,从P1.0输出PWM控制MOSFET控制加热,达到恒温目的.  R3 Q& q1 v- j. M3 ?& d
使用STC-ISP的串口助手调试, 可以使用STC-ISP里的串口绘图观察曲线 或 7段数码管观察温度.
8 O# M- y% G) k程序默认串口绘图观察5条曲线:
5 D/ X1 h4 L, F* m7 ~( S; x- k1、目标温度(单位度)
* j7 q7 \) m7 p0 A9 m2、当前温度(单位度)6 D- X8 t/ q8 C8 d- j2 I
3、垂直刻度150作为相对误差的0点0 z& V& r9 w$ ]% d2 D2 P  n
4、当前温度相对目标温度的误差,误差值单位为0.1度,以150刻度为0点,比如140表示当前温度比目标温度低-1.0度,160表示当前温度比目标温度高1.0度6 c4 W% [2 E8 W' N" {9 T
5、输出PWM的值
7 j6 m9 w  ], s" K" m$ u5 ~! A% ^5 t+ z! B* B/ Z
PID整定就是根据具体的项目中的温升速度、散热速度,调整PID采样周期、比例增益、积分增益、微分增益、积分上下限
/ M7 @9 j. h" |" J# ]* TPID温控可以只用PI(微分增益设置为0)即可达到稳定,本利测试时微分增益为0( O/ U; V0 P& D
PID整定是一件繁琐的事,要有耐心,并且要深入理解PID的行为表现
9 J) x) k( R8 E1 n特别提醒:想要升温快,则就会有过冲,升温越快过冲越大- S/ G0 D" d$ ?7 H4 g  @8 y$ O1 N

; i, Z% c, [1 ^串口发送单字符命令:6 Z! _+ p: C5 z1 B9 z- t
b或B: 开启PID* \" a; I8 S# D! g
s或S: 停止PID.
( Z2 Q6 s  C/ ^$ L0: 不打印信息.
2 o5 Q  Y" d3 Q3 W! o( f0 Y' X& \1: 打印绘图曲线。
& `, {5 K5 f) G( v, u2: 打印7段数码管显示温度。
! y% J5 h4 a- K, ~7 H3 Z. m- @" t7 Q# S1 X- v: u
串口发送数字字符串设置采样时间、目标温度、pGain、iGain、dGain,数据之间逗号分隔:
: `+ Y8 x. H4 D3 ?% Q% B200,60,20,10,100,; F% D+ R2 h4 J
200: 采样时间, ms.7 @2 `9 t6 W7 A) x" b& k& p3 R% p
60: 目标温度, 单位度.
2 m& Q$ i* P6 p( w6 W20:  pGain比例增益
1 |8 J8 N0 e# F. H3 }" R10:  iGain积分增益, 1对应为0.0011 q. _7 Y$ e! v$ w1 H
100: dGain微分增益
0 z# C* l, P) k0 N' L! n: s( Z+ P: r4 F& M  t
//==================================================================================
: {" `; C% W- @" |. o9 LNTC 热敏电阻温度计算公式:Rt = Ro *EXP(B/T-B/To),温度单位为绝对温度K,开尔文。
5 K) u; \: {7 q% l(1) Rt 是热敏电阻在温度T下的阻值。T是绝对温度。7 G  ]9 J6 ^: O
  x/ j  L5 x% ]; `
(2) Ro是热敏电阻在To(25度)时的阻值。10K的热敏电阻25℃的值为10K(即Ro=10K)。To = (273.15+25)。# |3 y4 l& ^6 j& b2 M
(3) EXP(n) 是 e 的 n 次方。" G9 _+ w4 u' ?4 \" ]5 a
(4) B值是热敏电阻的材料系数。
! t; e7 u/ h( U
- Z' J1 C% [4 ~+ l9 U通过转换可以得到温度T与电阻Rt的关系:T=1/(1/To+ln(Rt/Ro)/B)4 Y) w: y, Q  o- \/ j" H
对应的摄氏温度t=T-273.15。/ X+ {# T" F$ m+ I

- }# r( B8 M1 l电路连接: Vref -- 10K --ADC-- NTC -- GND, 12位ADC,计算出Rt/Ro的ADC值:" n2 C" y- }4 `; b$ J" J
ADC = 4096*Rt/(Rt+Ro), 则
3 k* @+ N4 @, M& ~# O* @, y# k. oRt/Ro = ADC/(4096-ADC), 从而
! X- r! D, ~, x4 l# N2 j9 i9 ?T = 1/(1/To+ln(ADC/(4096-ADC))/B)" n) j3 I+ t  u: `9 s5 w( H
******************************************/! Z9 ]* F. `7 W+ q9 s

串口绘图1.JPG (46.84 KB, 下载次数: 131)

串口绘图1.JPG

串口绘图2.JPG (76.3 KB, 下载次数: 128)

串口绘图2.JPG

该用户从未签到

2#
发表于 2023-8-16 15:20 | 只看该作者
PID 算法在滤波方面就很重要。
  • TA的每日心情
    奋斗
    2023-8-17 15:02
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2023-8-16 17:21 | 只看该作者

    - v; l  K! ^' f0 m6 o7 e! p5 E' z3 {7 ^- [
    $ Q9 P- W& v) S0 z8 r. K
    测试80度相应曲线:
    % P9 E5 y3 G1 F! M- \/ X/ c
    4 l- |1 S  ~5 W4 U$ M

    该用户从未签到

    4#
    发表于 2024-9-20 14:28 | 只看该作者
    感谢分享!问下温控板开发的活接吗?
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-19 09:08 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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