优越感是什么意思| 办理护照需要什么| homme是什么意思| 心脏病有什么症状| 脚趾骨折是什么感觉| 小白龙叫什么| 吃了龙虾后不能吃什么| 液基薄层细胞学检查是什么| ta是什么| 沙里瓦是什么意思| 太公是什么意思| 过誉是什么意思| 情分是什么意思| 多囊不能吃什么食物| 阳春三月是什么生肖| 奶芙是什么| 什么时候泡脚最好| 来曲唑片什么时候吃最好| 手指关节疼痛吃什么药| 局限性是什么意思| 腹胀吃什么药最有效| pi是什么意思| 维生素吃多了有什么副作用| 指甲软是什么原因| 刚怀孕有什么特征| 什么都| 手脚发热吃什么药| 荷叶泡水喝有什么作用| 香菇吃多了有什么危害| 梦到捡到钱是什么预兆| 灰飞烟灭是什么意思| 什么样的人不容易怀孕| 扁平足是什么| 肝损伤是怎么回事什么是肝损伤| 白羊女跟什么星座最配| 1978年是什么命| gi值是什么意思| 一个月一个非念什么| 诸葛亮儿子叫什么| 胃肠炎可以吃什么水果| 美的不可方物是什么意思| 锦五行属什么| 胳肢窝疼痛是什么原因| 大姨妈每个月提前来是什么原因| 史迪仔是什么动物| aldo是什么牌子| 369是什么意思啊| 匪夷所思是什么意思| 优甲乐什么时候吃最好| 天秤座女和什么星座最配| 猪头肉是什么意思| 嗓子疼吃什么水果| 同型半胱氨酸偏高吃什么药| 金银花什么时候开花| 孔雀鱼吃什么食物| 豆腐不能和什么一起吃| 梦见抓鱼是什么预兆| 男人吃叶酸片有什么好处| 返酸水吃什么药| 公务员是干什么工作的| 最大的行星是什么| pv值是什么意思| 嗓子有点疼吃什么药| 盆腔积液是什么原因造成的| 腿麻木是什么原因引起的| 孕妇梦见好多蛇是什么预兆| 什么鱼适合做酸菜鱼| 牙疼吃什么药止疼最快| 猴日冲虎是什么意思| 国防部部长什么级别| 待产是什么意思| 科班出身是什么意思| 颈椎病有什么特效药| 术后改变是什么意思| 猫发烧吃什么药| 明天什么日子| 什么然泪下| 卟是什么意思| 语素是什么| 九寨沟在四川什么地方| 打呼噜吃什么药最管用| 唇炎挂什么科| 摩羯座属于什么象星座| 眼睛痒吃什么药| 皮肤变黑是什么原因| 狗咬人后狗为什么会死| 山茱萸的功效与作用是什么| 传染源是什么| 王玉读什么| 什么能软化血管| 螺丝吃什么| 理疗和按摩有什么区别| 非萎缩性胃炎吃什么药效果好| 马失前蹄下一句是什么| 戌是什么意思| 政协主席是干什么的| 得意忘形什么意思| 儿童内热吃什么去内热| 猫咪黑下巴是什么原因| 记过属于什么处分| 难能可贵是什么意思| 71年属猪是什么命| 金匮肾气丸治什么病| pa是什么元素| 白羊座是什么星象| 为什么海水是咸的| psa是什么| 梦到墓地什么预兆| 8月23日是什么星座| 酸笋炒什么好吃| 墨绿色是什么颜色| 梦见下大雪是什么意思| 多囊有什么危害| 失眠用什么药好| 梦见一个人说明什么| 如果你是什么那快乐就是什么| naomi什么意思| crp高是什么感染| 36岁属什么| 痔疮是什么样子的图片大全| 韭菜什么人不能吃| 南红是什么| 乙肝表面抗原携带者什么意思| cho是什么意思| 农历10月22日是什么星座| 长得什么| 吃得苦中苦方为人上人是什么意思| 病字是什么结构| 1129是什么星座| 97年出生属什么| 砥砺前行什么意思| 鱼油什么时候吃最好| 火奥念什么| 白带拉丝是什么原因| 梦见蛀牙掉是什么预兆| 什么东西养胃又治胃病| 超市属于什么行业| 基围虾为什么叫基围虾| 同型半胱氨酸查什么| 艾绒是什么| 甲状腺功能亢进症是什么病| 颇负什么什么| 宫颈转化区三型是什么意思| 布偶猫长什么样| 车加昆念什么| 身首异处是什么意思| 结婚唱什么歌送给新人| 奶粉中的opo是什么| 梦见鱼是什么意思| 妇科炎症是什么原因引起的| 身上遇热就痒是什么病| 唵嘛呢叭咪吽什么意思| 喉咙痛上火吃什么药效果最好| 2016年是属什么年| 减肥什么东西不能吃| 西红柿有什么营养| 伤口吃什么消炎药| bw是什么意思| l代表什么单位| 石足念什么| 什么消炎药效果好| 黑色记号笔用什么能擦掉| 幽门杆菌的症状是什么| 阿莫西林治什么| e代表什么数字| 月经不调去医院要做什么检查| 瑾字属于五行属什么| 支气管舒张试验阳性是什么意思| 玖字五行属什么| 2004年属猴的是什么命| 椎体楔形变是什么意思| 贻笑大方是什么意思| 来来来喝完这杯还有三杯是什么歌| 什么什么不宁| 精液是什么味| 结婚长明灯有什么讲究| 掉头发是缺什么| 做梦吃饺子是什么意思| 什么颜色属木| 什么人适合吃西洋参| 胃肠造影主要检查什么| 为什么会打嗝| 吃什么补肺养肺比较好| 阴道痒是什么原因| 蜂窝网络是什么| 开业送什么礼物好| 风情万种的意思是什么| 处女座上升星座是什么| 恶寒发热是什么意思| 热菜是什么梗| 食铁兽是什么动物| cmb是什么意思| 辅料是什么意思| 纳米是什么东西| 木丹念什么| 嗓子哑了吃什么药| 宫颈纳氏囊肿什么意思| 什么是地中海饮食| 哮喘吃什么食物好| 去医院看心理挂什么科| 中统和军统有什么区别| 什么是国企| 慈禧姓什么| 爱理不理是什么意思| 男性性功能减退吃什么药| 什么水果是碱性的| 晚上八点半是什么时辰| 大便粘稠吃什么药| 血管检查什么方法最好| 男人出虚汗是什么原因引起的| 膀胱充盈欠佳是什么意思| rrl是什么牌子| 手掌心发红是什么原因| 男朋友发烧该说些什么| 左卵巢囊性回声什么意思| 62年属什么| 人为什么会突然晕倒| 当驾校教练需要什么条件| 胎盘做成胶囊吃有什么好处| 做梦梦到和别人吵架是什么意思| 什么叫丹凤眼| 梦见针是什么意思| 什么的大自然| 牙齿贴面是什么意思| 马为什么不怕蛇毒| ai是什么| 四维彩超是检查什么| 黄体期是什么| 颅骨早闭合有什么症状| 赫拉是什么神| etf是什么意思| 乙酰胆碱的作用是什么| 来褐色分泌物是什么原因| 单纯性肥胖是什么意思| 高字是什么结构| 空调漏水是什么原因| 老母鸡煲汤放什么食材补气补血| 什么时候怀孕几率最高| 元五行属什么| 胸片是什么| 溃疡用什么药| 渚是什么意思| 绣眼鸟吃什么| 子宫是什么| 怀孕拉肚子吃什么药| 医院查怀孕做什么检查| 圣诞节是什么时候| 梦见摘豆角是什么预兆| 舌头上有黑苔是什么原因| 痛风挂什么科室| 飞机上可以带什么吃的| 1938年属什么生肖| 后遗症是什么意思| 经常想睡觉是什么原因| 胃溃疡能吃什么| 英雄本色是什么意思| sv是什么意思| 脂肪液化是什么意思| 什么命的人会丧偶| 小孩积食发烧吃什么药| 拔完智齿能吃什么| 4是什么意思| 巨蟹男和什么星座最配| 善茬是什么意思| 百度
打印
[学习资料]

北京将在七方面加大对雄安新区建设支持

[复制链接]
17605|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

粉丝
6.25什么星座 病理是什么意思 宝宝打嗝是什么原因引起的 脱头发严重是什么原因引起的 梦到死人是什么预兆
1946属什么生肖 众生是什么意思 虚恋是什么意思 尿素氮偏低是什么原因 地笼捕河虾用什么诱饵
什么叫地包天 什么是假性近视 拉泡沫稀便什么原因 捡漏什么意思 维生素d3什么牌子好
fpd是什么意思 马齿苋与什么食物相克 为什么尿是黄的 看中医挂什么科 鼻炎不能吃什么
zing是什么意思hcv9jop3ns4r.cn 肝不好挂什么科室hcv8jop1ns0r.cn 什么头蛇尾hcv9jop1ns7r.cn 鲤鱼旗的含义是什么hcv9jop4ns1r.cn 梦见自己怀孕大肚子是什么预兆hcv8jop8ns1r.cn
口臭挂什么科hcv9jop5ns1r.cn 过敏性咳嗽有什么症状hcv9jop6ns9r.cn mtt什么意思jingluanji.com 晚上喝什么有助于睡眠hlguo.com 黄历破屋是什么意思hcv7jop6ns0r.cn
广西是什么族onlinewuye.com 吐黑水是什么原因hcv7jop9ns0r.cn 早上起来不晨勃是什么原因jingluanji.com 吃葡萄干有什么好处hcv9jop3ns1r.cn 桃园三结义是什么生肖hcv8jop2ns1r.cn
荷尔蒙什么意思hcv9jop0ns7r.cn fk是什么意思hcv8jop4ns9r.cn 中药木香的功效与作用是什么hcv8jop1ns8r.cn mr检查是什么意思hcv8jop4ns5r.cn 梅毒会通过什么传染hcv8jop7ns6r.cn
百度