找回密码
 立即注册

微信扫码登录

搜索
查看: 146|回复: 0

[技术讨论] 通过小米温湿度传感器控制暖气PID调节室内温度

[复制链接]

2

主题

24

回帖

363

积分

中级会员

积分
363
金钱
337
HASS币
0
发表于 前天 17:09 | 显示全部楼层 |阅读模式
本帖最后由 gao19970120 于 2025-12-9 17:49 编辑

设备情况:威能壁挂炉加vc100pcn网关,暖气片,传感器为小米温湿度传感器3
接入ha方式:威能壁挂炉通过论坛大佬的https://github.com/daxingplay/home-assistant-vaillant-plus集成接入,小米温湿度传感器3通过米家官方集成接入
背景:威能网关本身自带气候补偿功能,其原理是通过网络天气获取所在地温度,然后根据温度调整锅炉的设置水温,经过一段时间的使用发现,室内温度波动较大,虽然网关可以调节不同的补偿温度曲线,但仍然无法保证较好的恒温效果。且室温不仅受室外温度影响,受室内是否有人,阳光是否直射等因素影响也较大,波动情况如图



于是笔者产生了想法,通过温控器作为反馈,调节锅炉设定水温,实现PID控制。
设定水温 = 30+ 当前温度误差(即设定温度减传感器温度)*P系数+误差量积分值*I系数+室温微分值*D系数

30为暖气最低可设置的水温,最高可设置为75度。
我以两次锅炉燃烧状态开启(即壁挂炉开始点火)之间的时间为一个ΔT,即一个周期,这是考虑到设置好水温后,一个周期内释放的热量应该与设定水温正相关,因此ΔT是动态的,
同时检测到本轮周期时间达到15分钟时,结束本周期,这是为了防止在水温调节过低,两次燃烧时间间隔较长,无法及时调温。每个周期开始时设定新的温度
积分量为每个周期开始和结束时的温度的平均值乘周期时间(即ΔT)累积相加,积分量设置上下限,下限为0,上限为暖气片所能设置的最大设置水温减最低设置水温除以I系数,再适当减少,这样可以保证在采暖功率需求较高时,也能通过保证一个较高的稳态水温来保证稳态下的室温。
室温微分值,我踩了不少坑,最开始我考虑为周期温度变化量除以周期时间,但尝试后发现,在稳态下或者调节末期,温度变化量较小,有时两三个周期只波动0.1度,且有时波动来自于设备精度误差。

最终采用的微分值计算方法为:周期开始时的时间减去往前第三次室温变化的时间为单位时间,变化量也是当前温度减去往前第三次变化后的温度(当前温度应即为往前第一次变化后的温度)。
最近几天测试下来,恒温效果尚可,
如图
黄色线为设定温度,蓝色线为实际温度




屏幕截图(8).png
屏幕截图(9).png

评分

参与人数 1金钱 +12 收起 理由
隔壁的王叔叔 + 12 感谢楼主分享!

查看全部评分

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-12-11 08:41 , Processed in 0.964629 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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