打印

PID的D=0时,实际值大于设定值,要怎么样能确保还是有输出

[复制链接]
6654|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pidnews|  楼主 | 2014-6-9 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pidnews 于 2014-6-9 12:11 编辑

如题,手上有个温控器,测试发现P设为100,D设为0,I设为3500的时候,当实际值一直大于设定值的时候,加热还是会有输出,且会根据实际值的大小不同而输出不同,请问这个是怎么实现的,正常这个时候P/I两部分相加不是负值而应该关闭输出的吗?还有问下,P与Kp的关系是什么样的,看有的地方说是Kp=100/P,但测这个温控器不是这样的,实际现象是P越大Kp也越大

相关帖子

沙发
pidnews|  楼主 | 2014-6-9 12:24 | 只看该作者
实验时先手工将实际温度加热到比设定温度高的,然后让温控器工作,发现实际温度一直是高于设定温度,按PID工式中I和P部分的两项相加,结果肯定是负值,这个时候输出正常应该为0或一个固定值,但实际温控器的却有加热输出,且输出随着温度的变化而不同,请大侠帮指点下是咋实现的

使用特权

评论回复
板凳
airwill| | 2014-6-9 19:47 | 只看该作者
可能是积分项太大了吧

使用特权

评论回复
地板
pidnews|  楼主 | 2014-6-10 16:20 | 只看该作者
可能是没说清,把I调为1也一样能正常工作,也就是在高于设定值的情况下进行加热是必须的,但我的程序计算的时候,由于实际值高于设定值,P/I项的值是小于0的,导致在高于设定值时就关闭了输出,引起温度波动大,现在是想知道他这个是怎么实现的

使用特权

评论回复
5
xjycug| | 2014-6-10 21:50 | 只看该作者
检查一下,你编程序中,计算结果变量是有符号的还是无符号的,就算是负数,你写成无符号的,则会变成很大的正数。除此之外,检查一下你的PI算法是否编写正确。好好检查吧,这个系统只要控制采样率一定高,则是稳定系统,出线错误,则是算法,程序的错误

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
pidnews + 1 神马都是浮云
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

56

帖子

0

粉丝