amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 626|回复: 11

新手求教PID控制加热器怎么计算啊?

[复制链接]
发表于 2015-2-9 13:43:32 | 显示全部楼层 |阅读模式
用了论坛里的STCunio 那个PID算法,我想用来控制加热器,实现恒温,我用ds18b20测温,stc12c5a60s2 PWM控制加热,PID算出controlOutput,该怎么用?begin里那3个参数该怎么设置?
发表于 2015-2-9 14:00:36 | 显示全部楼层
精度要求高吗?不高PI就可以了
发表于 2015-2-9 14:14:48 | 显示全部楼层
转化成pwm控制加热功率
 楼主| 发表于 2015-2-9 14:15:14 | 显示全部楼层
dongyulei 发表于 2015-2-9 14:00
精度要求高吗?不高PI就可以了

PI也可以,求大神指教一下!
 楼主| 发表于 2015-2-9 14:15:44 | 显示全部楼层
hanbing333444 发表于 2015-2-9 14:14
转化成pwm控制加热功率

怎么转化啊,我那单片机不能仿真。。。
发表于 2015-2-9 14:16:31 | 显示全部楼层
一个映射关系而已,至于怎么映射要看你的负载的响应而定
发表于 2015-2-9 14:23:07 | 显示全部楼层
本帖最后由 arm 于 2015-2-9 14:24 编辑

看这个帖子的66楼,http://www.amobbs.com/forum.php?mod=viewthread&tid=5509035
那本书第6章是关于PID加热控制的
发表于 2015-2-9 14:24:10 | 显示全部楼层
wt13568089592 发表于 2015-2-9 14:15
怎么转化啊,我那单片机不能仿真。。。

把你pid输出的值,设置好合适的范围,把这个值赋值给控制pwm的值,进而控制加热器等负载啊
 楼主| 发表于 2015-2-9 14:45:55 | 显示全部楼层
hanbing333444 发表于 2015-2-9 14:24
把你pid输出的值,设置好合适的范围,把这个值赋值给控制pwm的值,进而控制加热器等负载啊 ...

我pid计算出来的值都是controlOutput=0x0036FF92;改了参数还是一样的?求教,这是为什么啊?
发表于 2015-2-9 15:11:59 | 显示全部楼层
本帖最后由 STCunio 于 2015-2-9 15:18 编辑
wt13568089592 发表于 2015-2-9 14:45
我pid计算出来的值都是controlOutput=0x0036FF92;改了参数还是一样的?求教,这是为什么啊? ...


那3个参数必须是小于1的小数,Q15格式要还原,先前是左移15位,给PWM赋值前先把controlOutput还原,需右移15位,controlOutput=0x0036FF92,右移就是0x6d,把这个值就是PWM的高电平的值,可以适当处理一下四舍五入。
发表于 2015-2-9 15:18:28 | 显示全部楼层
有用,谢谢。
 楼主| 发表于 2015-2-9 15:48:15 | 显示全部楼层
STCunio 发表于 2015-2-9 15:11
那3个参数必须是小于1的小数,Q15格式要还原,先前是左移15位,给PWM赋值前先把controlOutput还原,需右 ...

谢谢你啊!!!
为什么我输入参考值不变,输入变化了,controlOutput=0x0036FF92,没有变化过啊?pid(350,350);结果还是controlOutput=0x0036FF92;
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-6-26 02:42

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表