楼主 有具体PID、Fuzzy-pid和模糊PID或者其他温度控制的算法吗?
最近控制水温,采用PLC,PID控制效果不理想,超过温度值。 PWM继续输出微调。致使温度偏离设定值。
不知所措。
希望您看到回复。
针对你的问题,我可以给出一些温度控制算法的建议。
PID控制是温度控制中最常用的方法之一。它根据温度偏差的大小,调整控制输出来控制温度。但是,PID控制器可能会因为系统动态响应的延迟或不确定性而产生振荡或超调的情况,因此需要对PID控制器进行参数调整,以获得最佳的控制效果。
除了PID控制,您可以考虑一些其他的控制算法,例如:
模糊PID控制:该算法可以根据温度偏差的大小,自适应地调整PID参数。模糊PID控制器可以通过模糊化输入信号和输出信号来实现模糊控制,以便更好地应对不确定性和动态响应延迟。
模型预测控制:该算法使用数学模型来预测系统的响应,从而根据模型的输出进行控制。模型预测控制器通常需要系统模型的准确性,因此在应用时需要进行模型校准。
自适应控制:该算法可以自适应地调整控制器的参数,以适应不同的控制需求和系统变化。自适应控制器通常需要足够的系统稳定性和响应速度,以便在系统变化时能够快速调整。
以上算法均需要根据具体的应用场景和系统特性进行调整和优化。如果您的PID控制器效果不理想,您可以尝试使用模糊PID控制或其他算法来改进控制效果,同时需要对控制器参数进行优化和调整,以获得更好的控制效果。
不知道你这个问题是否已经解决, 如果还没有解决的话:
- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7679663
- 你也可以参考下这篇文章:PID算法控制PWM占空比的代码详解
- 除此之外, 这篇博客: PID算法与直流电机的PWM技术控制中的 什么是PID控制算法? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
PID控制算法即比例、积分、微分控制算法。PID控制分为两种:模拟PID和数字PID,前者处理的是连续信号,后者处理的是离散信号。因为单片机只能处理离散信号,本文主要谈后者。对于后者,又分为两种常用的算法即增量式数字PID和位置式数字PID,其中增量式用的更多,所以本文以增量式数字PID为例。PID控制的数学原理比较复杂,限于作者水平,大家可以点击
这里进一步了解其控制原理。另外,根据实际控制需求,PID控制算法不一定三个环节都要用,一般常用的还有PI控制、PD控制。
典型的闭环控制系统结构图
PID控制算法的典型的结构图 PID控制算法的设计过程中最重要的一个环节就是确定三个参数值的大小的确定,即PID参数整定。为了方便叙述,我们直接用上面的链接里的思路,即确定三个系数A、B、C的大小。其中 :A = Kp + Ki + Kd,B = Kp + 2 * Kd,C = Kd。 ------- (1)
Kp,Ki,Kd分别是PID控制器的三个参数。

注:上图直接从链接中截取
从本人实际的调试经历中,对于电机控制,我一般设置三个参数的大小关系为:Kp>>Kd,Ki,至于具体的数值以及Kp,Ki的相对大小需要根据控制需求和调试过程中输出的情况做一些调整,必要的话,还可能需要做一些算法上的调整,下面分情况详述:
- 先定性分析比例、积分、微分三个环节的控制作用:
比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用以减小误差。当偏差e=0时,控制作用也为0。因此,比例控制是基于偏差进行调节的,即有差调节。
积分环节:能对误差进行记忆,主要用于消除静差,提高系统的无差度,积分作用的强弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之则越强。值得注意的是,积分作用不宜设置过强,否则控制器输出振荡,会出现两个电机一个转另一个不转或转的慢并轮流交替循环这种极端现象,如果这两个电机是某个小车的两个转向轮,那么小车将会一直走“S”曲线。
微分环节:能反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。微分系数同样不能太大,否则会降低系统的稳定性。按照上面举的小车的例子,微分作用过大表现在处于稳定状态(即小车保持直线行驶)的小车受到一点点扰动就需要花很长的时间调整回来甚至再也调整不回来了。
从时间的角度讲,比例作用是针对系统当前误差进行控制,积分作用则针对系统误差的历史,而微分作用则反映了系统误差的变化趋势,这三者的组合是“过去、现在、未来”的完美结合。 - 根据上面的定性分析,可以把两个电机的转速差(有正负之分)以一定的频率记录下来并绘制响应曲线(即输出-时间曲线),这个过程可以在上位机上完成,只需要打开单片机的串口,把输出的数据发给上位机即可。然后根据响应曲线调节,三个环节的调节顺序是:先调Kp是输出曲线表现为等幅振荡或近似等幅振荡,然后加上Ki,使输出曲线收敛,最后加上Kd,使响应曲线完全达到控制要求(一般响应快、稳定时无误差、超调小为宜)。
- 讲一些特殊情况下的控制算法调整。
1)控制器的输出溢出,这种情况可能控制作用过强导致,这时要按Ki,Kd,Kp的顺序一个一个地适当减小三个系数,极端情况下可使Ki=0,Kd=0,Kp很小,然后 再看输出曲线。
2)输出一直在振荡,怎么调控制参数都没用,这时要考虑硬件的问题,或者其他软件问题。
3)除了上面两种常见的情况,也可以事先了解一下常用的PID控制器的改进方法,比如:死区控制法、遇限削弱积分法、积分分离法、有效偏差法、微分先行法等。再复杂的情况,比如大滞后,可以用串级PID控制算法,对于某一种强扰动也可加上前馈控制算法等。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^