吃什么紧致皮肤抗衰老| 禄存是什么意思| 被银环蛇咬了有什么症状| 武松的性格特点是什么| 小儿多动症挂什么科| 什么是风热感冒| 狐狸和乌鸦告诉我们什么道理| 东坡肉属于什么菜系| 保险公司最怕什么投诉| 什么妖魔鬼怪什么美女画皮| 黑芝麻不能和什么一起吃| 冬枣不能和什么一起吃| cindy什么意思| 殿试第一名叫什么| 小缺血灶是什么意思| 支气管炎哮喘吃什么药| 尿很黄是什么原因| 不什么不什么的词语| 猫叫什么名字好听| 鱼香肉丝用什么肉| 网红是什么意思| 低gi什么意思| 间质瘤是什么病| 男的为什么喜欢男的| 缺硒吃什么| 腱鞘炎吃什么药| 玉屏风颗粒主治什么| 盆腔炎要做什么检查| 这叫什么| 喝陈皮有什么好处| 喝什么水最解渴| 1989年什么生肖| 发来贺电是什么意思| 日本豆腐是什么材料| gop是什么| 故作矜持的意思是什么| 什么铜钱最值钱| 摆地摊卖什么最赚钱而且很受欢迎| 同房后需要注意什么| 香蕉和什么一起吃能减肥| 小粉是什么粉| 眼睛疼吃什么药| 北京豆汁什么味道| 版图是什么意思| 祭是什么意思| 列文虎克发明了什么| bb霜是什么| 晚上睡觉口干是什么原因| 小肚子胀痛什么原因| 氯气什么味道| dsa检查是什么意思| 什么叫慢阻肺| 舌息心念什么| 射手座与什么星座最配| 室内传导延迟什么意思| 应激反应是什么意思| 肺阳虚吃什么中成药| 加特纳菌阳性是什么病| 钟爱一生是什么意思| 早饭吃什么| 皮肤变白是什么原因| 健脾祛湿吃什么中成药| 牙齿为什么会痛| 260是什么意思| 眼睛发炎用什么药效果好| 一度是什么意思| 假体是什么| 阴道息肉长什么样| 什么眉什么目| 骨关节炎吃什么药| 外贸原单是什么意思| 肛门是什么| 诛是什么意思| 消炎药吃多了有什么副作用| 全组副鼻窦炎什么意思| 乳腺结节什么症状表现| 京东白条什么时候还款| 三多一少指的是什么| 凉皮是什么做的| 脘痞什么意思| 见红的血是什么颜色| 晚上为什么睡不着| 欧芹在中国叫什么| 儿童哮喘挂什么科| 牙龈萎缩是什么原因造成的| 上海元宵节吃什么| 什么工作最赚钱| 人过留名雁过留声什么意思| 七月份有什么水果| 常见的贫血一般是缺什么| 梦见自己鞋子破了是什么意思| 睡觉多梦是什么原因引起的| 场记是做什么的| 肝回声密集是什么意思| 胃烧心吃什么能缓解| 什么水果养胃| 说话不清楚去医院挂什么科| 老年人吃什么钙片补钙好| 大便稀溏是什么意思| 结婚55周年是什么婚| 屌丝是什么| 五大仙家什么仙最厉害| 吃开心果有什么好处和坏处| 生理期什么意思| 口臭用什么牙膏| 九曲红梅是什么茶| 沙中土是什么生肖| lp0是什么意思| 肚子疼想吐是什么原因| 牙龈出血吃什么药| 脂肪肝吃什么药好| 办身份证需要什么| 今天什么生肖冲什么生肖| 氯雷他定有什么副作用| 什么是周记| 美团和美团外卖有什么区别| 参见是什么意思| 国家一级演员是什么级别| 时辰宜忌是什么意思| moco是什么牌子| 虬角为什么要染成绿色| 轻奢什么意思| 青蒿素是什么| 完了是什么意思| 贡缎是什么面料| 减脂吃什么| 六角龙鱼吃什么| 副产品是什么意思| 送老爸什么礼物| 瞌睡多什么原因| 猫咪为什么害怕黄瓜| 颜值爆表是什么意思| quilt什么意思| 螃蟹为什么吐泡泡| 什么的什么是什么的伞| 生的反义词是什么| 过敏性咳嗽用什么药效果好| 胳膊困疼是什么原因| 发小是什么意思| 1月7号什么星座| 早泄是什么症状| 梦见自己会开车了是什么意思| 沙僧属什么生肖| elle中文叫什么| g代表什么单位| 六七年属什么生肖| 甲醛超标有什么反应| 砂舞是什么意思| 孕检都检查什么项目| mandy英文名什么意思| 落枕吃什么药好得快| 后入什么意思| 干净的近义词是什么| 口腔溃疡是缺什么维生素| 什么地唱歌| pct是什么| 去医院打耳洞挂什么科| 带状疱疹用什么药好| 高血压吃什么药最好| gg是什么牌子的包包| 甲状腺在什么位置图片| cco是什么职位| 吃什么能解决便秘| 痔疮长什么样子的图片| 第一次见女方家长带什么礼物好| 气短气喘吃什么药| 脊椎炎有什么症状| 病毒由什么组成| 45属什么| 肾囊肿挂什么科| 二型血糖高吃什么药好| 巧克力有什么功效与作用| 血压低压高是什么原因造成的| 查肝胆胰脾肾挂什么科| 痉挛什么意思| 白介素8升高说明什么| 突然停经是什么原因| 重返20岁韩国版叫什么| 虎皮羊质是指什么生肖| 高密度脂蛋白低是什么原因| 肺结节看什么科| 吃丝瓜有什么好处| 刘禹锡是什么朝代的| 鸟死在家里是什么征兆| 草莓是什么植物| 最大的行星是什么| 青梅煮酒什么意思| 流光是什么意思| 3885是什么罩杯| 照身份证穿什么颜色的衣服| 红加黄等于什么颜色| 云南是什么民族| 谭字五行属什么| 芭菲是什么| 手脱皮什么原因| 第六感是什么意思| 五大仙家什么仙最厉害| 社康是什么意思| beaf什么意思| 乳房旁边疼是什么原因| 吹毛求疵什么意思| 囟门凹陷是什么原因| 湿热体质适合喝什么茶| 吃了发芽的土豆会有什么症状| 介石是什么意思| 下海是什么意思| 吃什么药可以推迟月经| 宰相相当于现在的什么官| 肌腱是什么| 结扎对男的有什么影响| 什么网站可以看三节片| 什么的光华| 感冒咳嗽一直不好是什么原因| b站的硬币有什么用| 角瓜是什么| 干净的近义词是什么| brush是什么意思| kids是什么牌子| 缺席是什么意思| 布洛芬的副作用是什么| 老夫聊发少年狂什么意思| 电动伐木锯什么牌子好| secret什么意思| 什么呀| 为什么会得飞蚊症| 下眼睑跳动是什么原因| 渡船是什么意思| 为什么身上会痒| 欲言又止是什么意思| 梦见石头是什么意思| 梦到认识的人死了是什么意思| 尿蛋白高是什么意思| 靓字五行属什么| 熟练的反义词是什么| 棕色裤子配什么颜色上衣| 大片是什么意思| 属猴配什么属相最好| 菠菜含什么元素最高| 吃环孢素有什么副作用| 戈谢病是什么病| 普渡众生是什么意思| 麦芯粉是什么面粉| 5月20号是什么星座| 皮肤干燥是什么原因| b什么意思| 甲亢是什么回事| 打三个喷嚏代表什么| 什么烟危害最小| 小孩下面痒用什么药| 破涕为笑什么意思| 肝损伤吃什么药| 公诉是什么意思| 肺胃热盛吃什么中成药| 地笼捕河虾用什么诱饵| 胳膊疼痛是什么原因| 胃酸烧心吃什么食物| 冲菜是什么菜| 花名册是什么意思| 喉咙突然哑了什么原因| 红细胞是什么意思| 药物过敏用什么药| hb指的是什么| 偷什么不犯法| 胃潴留是什么病| 百度
打印
[学习资料]

孩子你再哭一会儿 爸妈先拍个视频发朋友圈

[复制链接]
17550|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 dongnanxibei 于 2025-6-24 14:14 编辑

使用PID算法控制占空比(0-100%)来实现热水恒温加热是一个非常经典且有效的应用。

系统核心组件:
  • 温度传感器: 测量当前水温(PV - Process Variable)。
  • 控制器(运行PID算法): 可以是微控制器(如Arduino, STM32, Raspberry Pi Pico)、PLC或工业控制器。
  • 执行器: 通常是固态继电器(SSR) 或功率MOSFET/IGBT模块,用于根据控制器的指令(占空比)快速开关加热元件(电热棒、PTC加热器等)。
  • 加热元件: 将电能转化为热能。
  • 设定点(SP - SetPoint): 你想要保持的目标水温(例如,45°C)。

PID控制占空比的实现步骤:
  • 读取当前温度(PV):

    • 通过ADC(模数转换器)读取温度传感器的信号(如热电偶、热敏电阻、DS18B20数字传感器)。
    • 将ADC值转换为实际的温度值(PV)。

  • 计算误差(e(t)):

    • e(t) = SP - PV
    • 这是当前目标温度与实际温度之间的差值。如果PV低于SP(水太冷),误差为正,需要加热。如果PV高于SP(水太热),误差为负,需要停止或减少加热。

  • 计算PID输出(u(t)):

    • 这是PID算法的核心。标准位置式PID公式为:
      u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt
    • 比例项 (Kp * e(t)):对当前误差做出即时反应。误差越大,输出变化越大。Kp过大会导致系统震荡;过小会使响应迟钝。
    • 积分项 (Ki * ∫e(t)dt):累积历史误差。消除稳态误差(当PV稳定在接近但不等于SP时)。Ki过大容易导致超调和震荡;过小则消除稳态误差慢。
    • 微分项 (Kd * de(t)/dt):预测未来误差趋势(基于误差变化率)。有助于抑制超调、增加稳定性。Kd过大对噪声敏感;过小抑制超调效果差。
    • 离散化: 微控制器是离散系统,需将连续公式离散化。常用方法:

      • u[k] = Kp * e[k] + Ki * sum(e[j] for j=0 to k) * dt + Kd * (e[k] - e[k-1]) / dt
      • 其中:

        • u[k]:当前时刻k的PID计算输出值。
        • e[k]:当前时刻k的误差。
        • e[k-1]:上一时刻k-1的误差。
        • sum(e[j]):从起始时刻到当前时刻k的误差累积和(即积分项的近似)。
        • dt:采样时间(控制周期)。非常重要! 需要根据系统特性(热惯性)合理选择(通常1-10秒对热水系统较合适)。



  • 将PID输出映射到占空比(0-100%):

    • PID计算出的u[k]是一个理论上的控制量,需要映射到实际可用的占空比范围。
    • 输出限幅(Output Clamping): 这是关键一步!必须将u[k]限制在[0, 100](或[0, MaxOutput])范围内。

      • duty_cycle[k] = constrain(u[k], 0, 100);

    • 为什么重要?

      • 防止积分项累积过大(积分饱和),导致系统长时间饱和输出,产生严重超调。
      • 确保输出符合执行器(占空比)的物理限制。


  • 抗积分饱和(Anti-Windup):

    • 当PID输出被限幅(饱和)时(例如u[k]计算值大于100,但被限制在100),积分项仍在持续累积误差(即使输出已经最大),这称为“积分饱和”。当系统需要反向调节时(如水温接近设定点需要减小加热),积分项的巨大累积值会导致输出无法及时减小,造成严重超调和震荡。
    • 解决方法:

      • 积分分离: 当误差e(t)很大时(例如|e(t)| > Threshold),只使用P或PD控制,禁用积分项(I),防止初始升温阶段积分项过度累积。当误差减小到阈值以下时,再启用积分项消除稳态误差。
      • 积分限幅: 直接限制积分项累积值的范围(min_integral 到 max_integral)。
      • 回算(Back Calculation): 当输出饱和时,根据饱和程度按比例减小实际的积分累积值(sum(e[j]))。这是效果较好的常用方法。
      • 条件积分: 仅在满足特定条件(如误差符号不变或输出未饱和)时才累加积分项。


  • 输出占空比信号:

    • 将计算得到的duty_cycle[k](0-100)值,通过控制器的PWM(脉宽调制)输出引脚输出。
    • PWM信号驱动固态继电器(SSR)或功率开关管(MOSFET/IGBT)。
    • PWM的频率需要根据加热元件和SSR的特性选择:

      • 电阻丝加热:较低频率(如1-10 Hz)即可,热惯性大。
      • 半导体加热(PTC):可能需要稍高频率(如10-100 Hz)。
      • 避免使用过高频率(如kHz以上),SSR的开关损耗会增加,且对温度控制无明显益处(热惯性太大)。

    • PWM占空比直接决定了在一个PWM周期内,加热元件通电时间的比例(duty_cycle %),从而控制平均加热功率。

  • 等待下一个采样周期:

    • 在精确的dt时间间隔后(使用定时器中断实现最准确),回到步骤1,开始新一轮的控制循环。



沙发
dongnanxibei|  楼主 | 2025-6-24 14:14 | 只看该作者
关键考虑点和优化:

PID参数整定(Tuning): 这是最具挑战性也最重要的步骤。Kp, Ki, Kd的值需要根据你的具体系统(水箱大小、加热功率、保温性能、散热情况、传感器位置)进行调整。

方法:

手动试凑法: 先设Ki=0, Kd=0,增大Kp直到系统开始等幅振荡。记录此时的临界增益Kc和振荡周期Pc。然后根据经验公式(如Ziegler-Nichols法)设置初始Kp, Ki, Kd(例如 Kp = 0.6*Kc, Ki = Kp / (0.5*Pc), Kd = Kp * 0.125*Pc),再微调。

软件自整定: 一些高级控制器或库提供自动整定功能(如阶跃响应分析)。

经验值: 对于热水系统,通常Kp在1-20范围内,Ki在0.001-0.1范围内(取决于dt),Kd在0-5范围内是比较常见的起点。务必从较小的值开始逐步增加!

目标: 响应快速、超调小、稳态误差小、抗干扰能力强。

采样时间(dt):

必须远小于系统的主要时间常数(热惯性)。对于家用热水器,1-10秒通常是合适的。

太短:计算开销大,对噪声更敏感,微分项可能不稳定。

太长:控制不及时,可能导致超调或振荡。

保持恒定! 使用硬件定时器中断来保证精确的采样间隔。

传感器精度、位置和滤波:

使用精度和响应速度合适的温度传感器。

传感器安装位置要能代表水体的平均温度(避免靠近加热器或出水口)。

对传感器读数进行适当滤波(如移动平均、低通滤波)以减少噪声对微分项的影响(噪声会被微分放大)。

执行器特性:

SSR或MOSFET的开关速度要足够快,确保能精确实现要求的占空比。

考虑最小导通时间限制。

设定点变化处理:

当设定点SP大幅改变(如从25°C调到50°C)时,积分项可能需要复位或限幅,防止初始阶段过度积分导致严重超调。积分分离法对此很有帮助。

安全机制:

温度上限保护: 绝对限制最高水温(如硬件或软件限制SP最大值,或在PV超过安全值时强制duty_cycle=0)。

传感器故障检测: 检测传感器是否开路、短路或读数超出合理范围,并采取安全措施(如关闭加热)。

看门狗定时器: 防止控制器程序跑飞导致持续加热。

板凳
dongnanxibei|  楼主 | 2025-6-24 14:16 | 只看该作者

代码示例框架
// 定义PID参数和变量
float Kp = 10.0;   // 比例系数 - 需调整
float Ki = 0.05;   // 积分系数 - 需调整
float Kd = 2.0;    // 微分系数 - 需调整
float dt = 1.0;    // 采样时间 (秒) - 需调整

float setpoint = 45.0;  // 目标水温 (°C)
float prev_error = 0.0;
float integral = 0.0;
float max_integral = 100.0; // 积分限幅值 - 需调整
float min_integral = -100.0; // 积分限幅值 - 需调整

// 主循环 (由定时器中断触发,间隔 dt 秒)
void controlLoop() {
    // 1. 读取当前温度 PV
    float pv = readTemperatureSensor(); // 实现此函数

    // 2. 计算误差
    float error = setpoint - pv;

    // 3. 计算积分项 (带限幅)
    integral += error * dt;
    // 抗积分饱和 - 方法1: 积分限幅
    if (integral > max_integral) integral = max_integral;
    if (integral < min_integral) integral = min_integral;
    // 可选:方法2 - 积分分离 (当|error|很大时,integral保持不变)

    // 4. 计算微分项 (近似)
    float derivative = (error - prev_error) / dt;
    prev_error = error; // 保存本次误差用于下次微分

    // 5. 计算PID输出
    float output = Kp * error + Ki * integral + Kd * derivative;

    // 6. 输出限幅 (0 - 100)
    float duty_cycle = output;
    if (duty_cycle > 100.0) duty_cycle = 100.0;
    if (duty_cycle < 0.0) duty_cycle = 0.0;

    // 7. 设置PWM占空比 (假设有 setPWM(duty) 函数)
    setPWM(duty_cycle); // 实现此函数,将duty_cycle(0-100)映射到实际的PWM寄存器值

    // (可选:更高级的抗饱和 - 回算法,当输出饱和时修正integral)
}
开始实施建议:

搭建好硬件(传感器、控制器、SSR、加热器、电源)。

实现基本的数据读取(PV)和PWM输出功能。

先实现简单的P控制(Ki=0, Kd=0)。调整Kp,观察系统响应(上升速度、是否有稳态误差、是否震荡)。

加入积分控制I(Ki > 0)。务必同时加入积分限幅(max_integral, min_integral)。调整Ki消除稳态误差,注意观察是否会引入超调和震荡。

如果需要抑制超调或增加稳定性,再加入微分控制D(Kd > 0)。调整Kd,注意传感器噪声会被放大,可能需要滤波。

在整个过程中,密切关注安全保护机制!

地板
zcyxh12345| | 2025-7-8 10:21 | 只看该作者
good  
5
dongnanxibei|  楼主 | 2025-7-8 11:35 | 只看该作者
感谢认可。这贴是我总结的,都是实际操作获得的经验。
6
GIVN| | 2025-7-8 17:43 | 只看该作者
感谢分享,学习了
7
zjsx8192| | 2025-7-9 09:11 | 只看该作者
感谢分享pid
8
kissdb| | 2025-7-9 11:02 | 只看该作者
感谢分享pid
9
似清风| | 2025-7-15 16:28 | 只看该作者
去年自己DIY加热台,也是用PID调温,不过没调好PID
10
时光迷宫| | 2025-7-20 20:12 | 只看该作者
问下这个PID算法是开源的吗
11
R2D2| | 2025-7-22 14:57 | 只看该作者
时光迷宫 发表于 2025-7-20 20:12
问下这个PID算法是开源的吗

PID算法超级简单,网上随便一搜就大把,几行程序的事儿,用模拟电路实现也不到20个元件。

PID的难度在于如何确定P、I、D三个参数的值,楼主显然还没有入门,这种没营养的口水贴也能推荐真是B了狗了。建议你搜“Ziegler-Nichols method”,有first和second两种。
12
leoeric| | 2025-7-23 13:51 | 只看该作者
感谢分享,学习了
13
cooldog123pp| | 2025-7-24 17:28 | 只看该作者
R2D2 发表于 2025-7-22 14:57
PID算法超级简单,网上随便一搜就大把,几行程序的事儿,用模拟电路实现也不到20个元件。

PID的难度在于 ...

也不能这么说吧,还是需要实际调试的,几个参数调优的话还是需要时间的。
14
GlenX| | 2025-7-25 18:25 | 只看该作者
本帖最后由 GlenX 于 2025-7-28 09:17 编辑

方法、过程都不错!感谢楼主的细心和分享!
---------------------------------------   带好安全帽,安全第一预防为主,可能有板砖飞过来  -----------------------------------------
但我反对很多对PID的“理解”,包括楼主对“积分增益”“微分增益”的理解和应用,当然不是你个人的错误,毕竟很多这么复制粘贴的。
积分和微分是有实际“单位”和“意义”的,不是一个用“增益系数”描述的“参数”,
我有员工也是这么理解,被我“纠正”了一番,希望大家正确理解积分和微分的实际意义,
也就是你提到的“采样周期”,和这个是有直接关系的,这个关系:采样周期和“一秒”之间的比例关系才叫系数。
自从没有电子管的时候就有了“气动仪表”的PID,到了现在的微处理器时代,
PID有微妙级的快速应用,也有常规的秒级应用,但始终都是和“时间”紧密相连的,积分、微分就是时间的概念,
在控制原理中有准确的定义和定量,不是一个没有单位的“系数”。
希望控制行业的同行不要延续这样的概念COPY。

15
幸福小强| | 2025-7-29 19:28 | 只看该作者
采用阈值法更合适。
16
zhuotuzi| | 2025-7-29 22:55 | 只看该作者
真不错,看看如何用的。
17
破晓战神| | 2025-7-30 17:10 | 只看该作者
这个帖子非常详细,提供了PID算法在水温控制中的应用步骤,对于学习PID控制很有帮助。
18
cmyldd| | 2025-7-30 19:20 | 只看该作者
实际调整的,
19
暖茶轻语| | 2025-7-31 12:53 | 只看该作者
这个PID控制流程描述得很详细,对于实现恒温加热系统来说非常有帮助。你提到了离散化处理和输出限幅,这些都是实际应用中的关键点。
20
暖茶轻语| | 2025-7-31 22:34 | 只看该作者
这个方法很实用,我之前用Arduino做过类似的项目,PID算法确实能够很好地控制水温。
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

3842

帖子

18

粉丝
阴虚吃什么食物补得快 为什么夏天容易掉头发 胺碘酮又叫什么名字 疾病是什么意思 猎奇什么意思
超声介入是什么意思 红颜知己的意思是什么 上海元宵节吃什么 无纺布是什么材料做的 满月送孩子什么礼物好
什么花好养 文替是什么意思 红红的眼睛是什么生肖 gucci是什么意思 相处是什么意思
燃面为什么叫燃面 吃石斛有什么功效 意守丹田是什么意思 农历和阳历有什么区别 茄子和什么不能一起吃
什么是避孕套hcv9jop6ns6r.cn 耳朵会动的人说明什么0735v.com 有什么好用的vpnhcv9jop5ns7r.cn 疹子长什么样hcv8jop5ns2r.cn 甲功三项查的是什么zhiyanzhang.com
竹子可以做什么玩具cl108k.com 夕阳西下是什么意思hcv9jop3ns4r.cn 菠菜是什么季节的菜hcv9jop2ns7r.cn 第一次做什么感觉hcv8jop0ns1r.cn ader是什么牌子hcv8jop5ns0r.cn
湿气重吃什么药helloaicloud.com 红红的苹果像什么句子wmyky.com 风湿是什么原因引起的hcv9jop5ns6r.cn 尖嘴猴腮什么意思sanhestory.com 噗是什么意思hcv8jop4ns9r.cn
阳虚是什么原因引起的hcv8jop4ns7r.cn 为什么总是犯困hcv9jop2ns2r.cn 子宫小结节是什么意思wmyky.com 白狗子是什么意思hcv8jop5ns4r.cn 经常闪腰是什么原因引起的hcv8jop4ns7r.cn
百度