打印
[技术讨论]

PID控制温控器必须要PWM吗?

[复制链接]
2374|42
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
showmyself|  楼主 | 2022-11-18 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,

最近在研究PID温控器,硬件软件都不懂,以前没做过,没经验,原理图都是网上研究很久后自己画出来的,不知道对不对。
板子现在已经做出来了,最近在研究PID算法,研究了几天,发现我的板子是不是做的有问题?

网上非常多的PID代码都是通过PID输出后,来控制PWM然后控制一个开关打开或关闭电热丝,来控制温度。我想问下必须通过PWM控制吗?

我的板子上现在是单片机通过一个普通GPIO口连接到三极管,然后三极管连接到继电器,通过GPIO口高低电平来控制继电器通断来打开或关闭电热丝。

而且电热丝也不在板子上,这个是给锅炉厂用的,板子上只有继电器,锅炉那边电热丝连接到继电器。
感觉这样不关PWM什么事啊,没理解。

我自己理解,控制PWM也就是控制占空比,也就是控制高电平打开的时间,和低电平打开的时间,我这个如果直接用GPIO输出电平来控制继电器,控制满足相应的高低电平时间是不是就可以了?

但是又碰到一个问题是,PID输出如何和控制继电器通断的时间发生关联呢?我用的是增量式PID算法。

使用特权

评论回复
评论
CLQCOM 2022-11-21 14:11 回复TA
学习 
沙发
饭蛋云清| | 2022-11-18 16:54 | 只看该作者

使用特权

评论回复
板凳
dalarang| | 2022-11-18 17:20 | 只看该作者
通过继电器来控制电热丝不需要PWM,你只要控制IO口的输出,在指定循环周期内使继电器导通和断开的时间符合PID算出的比例即可。

使用特权

评论回复
地板
xch| | 2022-11-18 18:09 | 只看该作者
用继电器控制温度的方法精度要求不高。

随便控制一下即可。要求高了继电器就短命了,活不了一天。

使用特权

评论回复
5
showmyself|  楼主 | 2022-11-18 19:27 | 只看该作者
xch 发表于 2022-11-18 18:09
用继电器控制温度的方法精度要求不高。

随便控制一下即可。要求高了继电器就短命了,活不了一天。 ...

我这个确实对精度要求不高,是工业上锅炉用的,锅炉那边加热就是断电通电控制的,根本没什么PWM,想用也用不了。所以我这边只能用继电器了。

使用特权

评论回复
评论
zlf1208 2022-11-23 10:41 回复TA
锅炉控制对可靠性要求很高,如果电路出故障导致长期加热,有可能引起爆炸的。锅炉上需要有安全阀,电路上对安全阀的信号也必须有反应。 
zlf1208 2022-11-23 10:35 回复TA
锅炉的控制有现成的系统,非常成熟了,成本也不高,为什么要自己做呢? 
王栋春 2022-11-18 22:20 回复TA
不妨试试固态继电器或者晶闸管,无触点使用寿命较长。 
6
showmyself|  楼主 | 2022-11-18 19:28 | 只看该作者
本帖最后由 showmyself 于 2022-11-18 19:30 编辑
dalarang 发表于 2022-11-18 17:20
通过继电器来控制电热丝不需要PWM,你只要控制IO口的输出,在指定循环周期内使继电器导通和断开的时间符合P ...

这个我倒是理解,关键是PID输出的结果是温度的偏差量,而控制继电器需要的是打开关闭的时间,关键是这个偏差量怎么转换为时间去控制继电器

使用特权

评论回复
7
lsddata| | 2022-11-18 20:30 | 只看该作者
PWM的周期放长一点就可以了。

使用特权

评论回复
8
sunenough| | 2022-11-18 21:17 | 只看该作者
8楼
lsddata|中级技术员 | 2022-11-18 20:30 | 只看该作者
PWM的周期放长一点就可以了。正解

使用特权

评论回复
9
R2D2| | 2022-11-18 22:04 | 只看该作者
根本就不是PID控制器,如果是继电器就10万次咔哒寿命,几天就完蛋了。明显是个bang-bang滞回比较式温控器,低于下限开始加热,高于上限停止加热。

使用特权

评论回复
10
lvyunhua| | 2022-11-18 22:07 | 只看该作者
我没有用PWM,直接控制IO口

使用特权

评论回复
11
xys9190| | 2022-11-19 10:17 | 只看该作者
gpio模拟pWM就可以了呀

使用特权

评论回复
12
专注于嵌入式| | 2022-11-19 11:33 | 只看该作者
看来你对PID的理解很狭隘了。简单来说。PID是个输入反馈系统。根据反馈,然后进行动作。这个动作可以是改变PWM也可以是改变其他变量。

使用特权

评论回复
13
coody| | 2022-11-19 11:51 | 只看该作者
PWM不是必须的,比如用继电器,但是原理一样,相当于一个很慢的PWM而已。

使用特权

评论回复
14
tianxj01| | 2022-11-19 12:34 | 只看该作者
本帖最后由 tianxj01 于 2022-11-19 12:37 编辑

所谓PID,就是比例、积分、微分运算,结果就是一串数据,和输出变量采用什么类型没什么必要关联,这数据最终是根据被控制对象和PID运算目的来定的。像如果是一个直流供电的电阻加热器或者是直流电机啥的等可以直接由输出等效电压电流控制的,你当然可以转换为PWM控制信号来控制这些对象的功率或者转速,但是,我们也许是可控硅控制的一个交流加热器呢?那就必须转换为一个相位数据,根据可控硅过零脉冲调整延时,来控制可控硅导通角,实现调功,当然也有选择导通周波数的,反正这是看你控制对象和具体需求来定的。
你这里目标是一个继电器,则可以控制可以把PID结果转换为继电器导通和关闭时间的比值,当然,为了继电器寿命,你这个继电器动作开关周期必须有个合适的控制。如果嫌继电器寿命有限,你还完全可以用一个固态继电器代替,反正从寿命来说,固态继电器几乎是无限的,相对继电器还不是很贵。

使用特权

评论回复
15
showmyself|  楼主 | 2022-11-19 21:05 | 只看该作者
R2D2 发表于 2022-11-18 22:04
根本就不是PID控制器,如果是继电器就10万次咔哒寿命,几天就完蛋了。明显是个bang-bang滞回比较式温控器, ...

你这种控制会出现温度在设定值上下反复震荡,永远达不到设定值

使用特权

评论回复
16
showmyself|  楼主 | 2022-11-19 21:07 | 只看该作者
coody 发表于 2022-11-19 11:51
PWM不是必须的,比如用继电器,但是原理一样,相当于一个很慢的PWM而已。

没错,之前没理解,我现在理解了,这里的PWM应该是广义的PWM,比如用机械式继电器的话,我可以用GPIO在定时器翻转来模拟PWM,周期放长一些,比如几分钟的周期

使用特权

评论回复
17
天意无罪| | 2022-11-19 23:16 | 只看该作者
本帖最后由 天意无罪 于 2022-11-19 23:18 编辑

不一定是PWM,只是用PWM控制更简单,另外在你这个应用里面,继电器来控制不是合理的方案,用MOS管。

使用特权

评论回复
18
hjl2832| | 2022-11-21 08:54 | 只看该作者
R2D2 发表于 2022-11-18 22:04
根本就不是PID控制器,如果是继电器就10万次咔哒寿命,几天就完蛋了。明显是个bang-bang滞回比较式温控器, ...

用继电器的,楼上才是正解,说什么PID都是扯。。。。继电器你还指望像MOSFET管一样任意开关啊,先不说它开关时的滞后时间,就说PID调整时的控制频率,它的寿命真的可能只有一天。

使用特权

评论回复
19
Theron450457939| | 2022-11-21 09:18 | 只看该作者
路过,看看,了解一下

使用特权

评论回复
20
xch| | 2022-11-21 09:53 | 只看该作者
你这种设计离考虑PID还差得很远。

先得证明用继电器控制方法满足控制精度和MTTF 要求。

假设继电器无故障祈望开关次数是10万,控制器无故障时间是3年。
得出单继电器的开关周期是930秒.
系统温度是否能在停止加热930秒后跌落值满足要求?
如果不能,要考虑变更单继电器为多继电器方案,或者使用其他控制方法。

验证后,才考虑软件使得控制达到预期设计。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

123

帖子

1

粉丝