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

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

  [复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 岁月如歌21 于 2023-8-16 10:20 编辑
8 e! t5 c: x: t! B; w4 H5 P$ n
" l) `6 u. V' p/ [- J- bPID 算法温度控制4 u& v4 B" `3 ?# d
USB-CDC虚拟串口/就是串口,
# E- c1 T7 f) m6 }( k【D-/P3.0, D+/P3.1】直接接电脑返回数据0 |% b* v7 k. o% j
4 _5 j# A8 A, O' N0 L! J' L8 w

8 z& |8 `& h% a7 Q3 p  W/ fSTC8H8K64U-P1.3测温P1.0加热-PID温控-USB-CDC返回
- E: k6 x/ W7 |" l0 {/*************        功能说明        **************
$ n2 D' B0 Q3 C/ d本程序演示使用STC8H8K64U的P1.3做12位ADC输入测量温度, 经过PID处理后,从P1.0输出PWM控制MOSFET控制加热,达到恒温目的.
; ]2 z8 v  {9 Y8 u4 t5 ^使用STC-ISP的串口助手调试, 可以使用STC-ISP里的串口绘图观察曲线 或 7段数码管观察温度.' [/ k* Y7 }: i
程序默认串口绘图观察5条曲线:
! ~8 E( N7 w" U3 T( u5 Y4 d5 C1、目标温度(单位度)
9 ~1 O( M1 @, a' t4 u+ v% d! z2、当前温度(单位度). h5 u" {+ e) U; ]& `
3、垂直刻度150作为相对误差的0点* A% ]) R& u9 [. g% d7 w& F
4、当前温度相对目标温度的误差,误差值单位为0.1度,以150刻度为0点,比如140表示当前温度比目标温度低-1.0度,160表示当前温度比目标温度高1.0度' J: {* l1 ]' W
5、输出PWM的值
- j+ V; Q0 v6 R( j- _3 Z6 A) r1 k, n6 r
PID整定就是根据具体的项目中的温升速度、散热速度,调整PID采样周期、比例增益、积分增益、微分增益、积分上下限
( `1 {1 J! A, P! C$ D' tPID温控可以只用PI(微分增益设置为0)即可达到稳定,本利测试时微分增益为05 @' G! A- s4 H& x/ s" K0 Q2 X* w! l
PID整定是一件繁琐的事,要有耐心,并且要深入理解PID的行为表现
) n# }0 K, o, v) p" O/ k6 s! u特别提醒:想要升温快,则就会有过冲,升温越快过冲越大& `- \( n  i& c
" y. v3 [+ x' F+ y
串口发送单字符命令:/ H7 P/ ]! B4 x# y% T" u& {
b或B: 开启PID
9 }+ }4 i( K# B- a2 K4 f) B8 ?/ js或S: 停止PID.3 z& S" c6 }3 c$ O; m
0: 不打印信息.7 q' o% L- g5 _4 g
1: 打印绘图曲线。$ z1 _' d$ J% R, ^, Q8 i' W% D
2: 打印7段数码管显示温度。% P) \, I, n) A  u

9 O' U! B0 C& q2 ?; _: R" K串口发送数字字符串设置采样时间、目标温度、pGain、iGain、dGain,数据之间逗号分隔:' ~! e/ w1 Y; I
200,60,20,10,100,
; f9 t" b2 I3 X3 p) S9 ~0 B3 C200: 采样时间, ms.
/ f% J$ O$ r' Z8 f6 t60: 目标温度, 单位度.7 c& k2 t5 _0 n( m
20:  pGain比例增益; @& p$ L' O0 ~3 G
10:  iGain积分增益, 1对应为0.001
! Y+ S! x" }5 l% \- `100: dGain微分增益
4 N5 A; \3 _; s( R
8 K; x* A' b8 E! ?//==================================================================================
1 d6 ]! y, S, g3 v9 vNTC 热敏电阻温度计算公式:Rt = Ro *EXP(B/T-B/To),温度单位为绝对温度K,开尔文。+ {2 P5 F& k+ L0 ^& o* [5 ~
(1) Rt 是热敏电阻在温度T下的阻值。T是绝对温度。
3 _+ A8 k( Q" |' R8 q1 d3 D2 X8 |0 K: P: s3 [
(2) Ro是热敏电阻在To(25度)时的阻值。10K的热敏电阻25℃的值为10K(即Ro=10K)。To = (273.15+25)。2 p: D! W7 B. o. f9 m( ]; l
(3) EXP(n) 是 e 的 n 次方。
8 ^9 [8 }1 f2 ?0 }$ {7 m+ ~(4) B值是热敏电阻的材料系数。+ `3 }: J' T% A  Q/ ^+ a
7 @7 a9 H+ u4 t, x% @! |8 j$ s
通过转换可以得到温度T与电阻Rt的关系:T=1/(1/To+ln(Rt/Ro)/B)
6 ]3 g! v1 w" T对应的摄氏温度t=T-273.15。
& ~3 O3 f# I$ o% N' ]7 x# D
- E" y, {7 _# j) S/ j6 d% r电路连接: Vref -- 10K --ADC-- NTC -- GND, 12位ADC,计算出Rt/Ro的ADC值:5 a2 X1 F( C; ?
ADC = 4096*Rt/(Rt+Ro), 则
7 |% g; X; }$ }" m  a, KRt/Ro = ADC/(4096-ADC), 从而  o4 X" z+ j* `/ ~
T = 1/(1/To+ln(ADC/(4096-ADC))/B)
: D( Q& A( N: U" q! Q******************************************/
$ M" H1 P' t9 R- l

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

串口绘图1.JPG

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

串口绘图2.JPG

该用户从未签到

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

    [LV.1]初来乍到

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

      i6 O( c7 D6 L- R  u" u& b0 d) f  ~2 {( a; X8 D
    2 @: t: M; x# b6 |7 h
    测试80度相应曲线:$ e% `: ^6 N6 w( u- [* J

      R! w8 Q% M8 i& E

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-8 01:58 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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