1.前言
大家好,今天我要用三菱PLC和温控器来完成烧水壶的PID温度控制。
很多人只是刚了解PID,一听到微积分就开始害怕了。我其实也一样,在刚接触PID的时候也抱怨
过,微积分这种高数知识怎么想都很难嘛,难道一定要学会微积分才能实现PID的温度控制吗?不
用担心,其实不是这样的, 就算你是第一次听说微积分这个词也不会影响到你的学习,只要跟着
我的步骤来,你的疑惑一定会迎刃而解。下面就然我们开始吧。
2.何为PID
想要学会PID的温度控制,首先要明白什么是PID控制。
PID控制(比例-积分-微分控制)是一种广泛应用于工业控制系统中的反馈回路机制。它根据
系统的误差(即设定值与实际值之间的差)来调整控制输入,目的是减少误差并使系统输出稳
定在设定值上。PID控制器由三个基本控制动作组成,分别是比例(P),积分(I)和微分(D)。
1. 比例(P):
比例控制的作用是根据当前误差的大小来调整控制输入。误差越大,控制作用越强。
比例增益 Kp
决定了比例作用的强度。比例控制可以快速减少误差,但通常不能完全消除稳态误差
(即系统稳定后仍然存在的误差)。
(以下表格 横坐标均为时间 纵坐标均为温度 蓝线表示当前温度 灰线表示设定温度)
如图所示,将比例增益设成5时,设定值与当前值之间始终存在稳态误差。可能有人会问为什么不
把比例增益 **Kp
**再调大一点?
可以看到,将比例增益设成10时,设定值与当前值之间始终存在稳态误差虽然变小了,但温度在稳
定之前产生了一个大约4度的超调。可以预见,如是继续将比例增益 Kp调大,超调会更为明显,甚
至
会直接产生震荡。
实时也趋确实如此,将比例增益设成20时,曲线产生较为严重的震荡。所以想只通过调整比例
增益来达到温控效果是很难的。
2:积分(I):
积分控制的作用是将过去的误差累积起来,用来调整控制输入。积分作用对于消除稳态误差非常有
效,因为它会随着时间的推移不断积累误差并产生控制作用,直到误差为零。积分时间 Ti
越短,
积分作用越强。
如图所示,将积分时间设成700时,虽然还是存在一定量的超调,但稳态误差已经为0了。
3:微分(D):
微分控制的作用是根据误差的变化率来调整控制输入。微分作用可以预测误差的未来趋势,并在误
差变大之前减小控制输入,从而减少或防止过冲和振荡。微分时间 **Td
**越长,微分作用越强。
如图所示,将积分时间设成27时,基本已经将温度曲线稳定了,没有出现稳态误差也没有超调。
*****当然这只是用excel表格来进行PID测算仿真,实际调试时并不一定是三个数值都要进行调整,也
可能只设置比例增益与积分时间就能够达到想要的效果,还是要根据实际情况来看。
3.控制器输出U(t) 的计算以及输出整形
PID控制实际上就是通过调节PID值后实时调整输出占空比来改变控制器输出,从而达到温度控制
的效果。
而上图就是控制器输出U(t)的计算公式,下面我会引用PLC内的PID程序来解释一下这个公式的具体含义。
U(t): 控制器输出
e(t): 当前误差
: 累计误差
de(t): 这一时刻误差(当前误差)
dt: 上一时刻误差
Kp: 比例增益
Ti: 积分时间 Td:微分时间
Ki: 积分系数 Kd:微分系数
Ti=1/Ki Td=1/Kd
1.比例运算结果:
小提示: 在三菱PLC中 DESUB 为浮点数减法运算指令;DEADD为浮点数加减法运算指令;
DEMUL 为浮点数乘法运算指令;DEDIV为浮点数除法运算指令;
INT用于将其他数据类型(如浮点数)转换为整数类型;
第一行:设定值SV - 当前采样值PV=当前误差e(t)
第二行:比例增益Kp × 当前误差e(t)=比例运算结果U(p)
2.积分运算结果:
第一行:当前误差e(t) + 累计误差= 新的累计误差
第二行:E1 ÷ 积分时间Ti=积分系数Ki
第三行: 累计误差 × 积分系数Ki=积分运算中间量
第四行:积分运算中间量 × 比例增益Kp=积分运算结果U(i)
3.微分运算结果:
第一行: 将当前误差e(t)) 给到 上一时刻误差dt
第二行: 当前误差e(t) ÷ 上一时刻误差dt=误差变化率
第三行: 误差变化率 × 微分时间Td=微分运算中间量
第四行: 微分运算中间量 × 比例增益Kp=微分运算结果U(d)
4.输出运算结果:U(t)=U(p)+U(i)+U(d)
第一行: 比例运算结果U(p)+积分运算结果U(i)=输出值中间量
第二行:输出值中间量+微分运算结果U(d)= 输出值U(t)
第三行:将浮点数的输出值转变为整数的输出值
5.输出结果整形:
本条指令中"K1000"代表输出上限整形 "K0"代表输出下限整形
6.PWM输出:
PWM指令通常代表"脉宽调制",通过调节脉冲信号的宽度(即高电平和低电平的时间比例)来控制电力电子器件(如电机、加热器、LED等)的功率输出
本条指令中"K1000"代表一整个周期的长度 "Y0"代表输出线圈。
*****以上我大致讲解了一下PID的相关知识和输出值的计算公式,如果还有不理解的可以前往此处
PID到底是什么?【目前最简单最实用的PID教程】前言_哔哩哔哩_bilibili 学习,up主叫"等角螺
线",个人认为他讲的已经是细致入微的了。感兴趣的可以去看一下。
4.温控电路连接
直通过理论来学习的理解程度肯定时有限的,只能算是纸上谈兵,以下是我为了实际操作而搭建的
由PIC控制的温控电路的实物图和电气接线图。
我所用到的电子及机械元器件见下表:
|------------|--------|-------------------|
| 元件名称 | 数量 | 型号 |
| 空气开关 | 1 | NXBLE-32 2P 63A |
| 开关电源 | 1 | MDR-60-24A |
| PLC | 1 | 艾莫讯EX3U-26MT(仿三菱) |
| 温控器 | 1 | XMTA-9 |
| 固态继电器 | 1 | SSR-15A |
| 触摸屏 | 1 | SUP043-A 工控串口屏 |
| 电热水壶 | 1 | 1400W 4L |
| 温度传感器 | 1 | Pt100 |
| PLC与触摸屏通讯线 | 1 | |
| 红,蓝,黑,绿导线 | 若干 | 0.5平方毫米 |
元件型号并非要与我完全一致,只要适合即可。
5. 实操视频
温控系统实操视频
6.结束语
本文章为个人学习心得,如有不足,请指出,一定及时纠正,还望海涵。