PID算法疑问

[复制链接]
7105|13
 楼主| zjucsd 发表于 2010-5-27 15:16 | 显示全部楼层 |阅读模式
请问一下,在对当前温度进行PID算法之后,得到的输出值如何转换为时间占空比PWM。(PWM = 200 最大)
jack_shine 发表于 2010-5-27 15:32 | 显示全部楼层
将输出值设定为一个变量,小于此值的输出高电平,大于此值的输出低电平,便可实现PWM~~~
 楼主| zjucsd 发表于 2010-5-27 15:57 | 显示全部楼层
输出量的最大值如何获得?这样输出值/最大输出量 = PWM。
 楼主| zjucsd 发表于 2010-5-27 16:47 | 显示全部楼层
本人对最大输出量随意取了800 和 10000 这两个数,发现PWM的输出值中0和200占了绝对多数,很少出现之间数据。而且,控制的温度的范围从小上一两度,如设定为100℃的话,却在108℃左右徘徊?
  请各位老大帮帮忙咯,本人感激不尽呀!!!
zjp8683463 发表于 2010-5-27 18:37 | 显示全部楼层
本帖最后由 zjp8683463 于 2010-5-27 20:36 编辑

看你PWM是多少位的.搞个带PWM输出的MCU,把PWM那段手册读10遍

从4楼现象来看,很可能是变正反馈了.哪里极性搞反了吧
huangbb 发表于 2010-5-27 21:31 | 显示全部楼层
pid的sv pv值得量纲统一了吗(所谓控制理论里的归一化处理是否正确)?pwm=200的话,输出精度对于温控来说是够了,另外pid的三个参数整定是否合适?
huangbb 发表于 2010-5-27 21:37 | 显示全部楼层
看了lz在4楼的说明,感觉lz对pid运算的做法有误:设定值sv,过程测量值pv,输出值mv的量程必须统一,比如lz设定最大输出是1000,则在进行pid运算时,sv,pv的最大量程范围也必须换算成1000。
原野之狼 发表于 2010-5-27 22:55 | 显示全部楼层
1 对SV PV的量纲要求一致
2 归一化处理,意思就是把pid的计算值限制在一定范围内。
3 pid输出值再映射到实际的控制参数,比如PWM的占空比。假设PID输出范围是0到100,PWM的占空比范围是0到1000,那么对应过去就是了,即PID:0对应PWM:0,PID:100对应PWM:1000。
4 PID参数要设置合理
5 防止积分过饱和
6 正向PID和反向PID不要搞反了
 楼主| zjucsd 发表于 2010-5-28 08:10 | 显示全部楼层
请问一下,如何确认PID算法的输出值的范围?
algr 发表于 2010-5-28 09:44 | 显示全部楼层
楼主你先要明白什么是负反馈,什么是比例,积分和微分。。。
那样才能算PID的输出值的范围

如果你不想弄懂其中原理,那么PID输出设置门槛,然后PID三个参数慢慢调就是了。。。
emailli 发表于 2010-5-28 11:00 | 显示全部楼层
可以去我的博客看看

有一个说的很清楚的转换方案
 楼主| zjucsd 发表于 2010-5-28 12:48 | 显示全部楼层
PWM方波,不是电压,是时间
zjp8683463 发表于 2010-5-28 14:05 | 显示全部楼层
PMW不是时间,是占空比
chunyang 发表于 2010-5-28 14:05 | 显示全部楼层
PID输出对应一个数值量,然后要考虑执行元件的特性,比如加热元件得考虑其功率、热传导系数和被加热系统的热容积,然后才能换算。工程上可以用试验凑数的办法来整定,将系统温度人工调节到被控目标点,然后试PWM占空比恰好可以稳定温度,这时无需控制算法的介入,仅仅通过人工寻找转换系数,然后切自动后根据响应曲线微调即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

351

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部