[51单片机] PID恒温控制 频率输出

[复制链接]
 楼主| embassy 发表于 2016-12-22 11:34 | 显示全部楼层 |阅读模式
本帖最后由 embassy 于 2016-12-22 14:58 编辑

单独使用比例控制, 被调量出现振荡, 怎么处理?我给一个固定值输出,还是会出现振荡
JY-DX-JY 发表于 2016-12-22 11:54 | 显示全部楼层
感觉不能单独使用比例控制吧,至少加上积分。
 楼主| embassy 发表于 2016-12-22 12:13 | 显示全部楼层
JY-DX-JY 发表于 2016-12-22 11:54
感觉不能单独使用比例控制吧,至少加上积分。

那 怎么样才能 消除 pid频率输出控制产生的 振荡
JY-DX-JY 发表于 2016-12-22 12:15 | 显示全部楼层
embassy 发表于 2016-12-22 12:13
那 怎么样才能 消除 pid频率输出控制产生的 振荡

其实我也不太懂,项目中没用到PID,只有个简单的概念。
你可以加上积分环节试试。实在不行,再加微分
694844985 发表于 2016-12-22 12:37 | 显示全部楼层
控制器至少是pi或者pd,没有纯比例控制的
dzguang 发表于 2016-12-22 14:07 | 显示全部楼层
P调节不出震荡就见鬼了~
xuyaqi 发表于 2016-12-22 14:12 | 显示全部楼层
有纯比例调节,如果纯比例调节出现震荡说明比例度(放大倍数大了),减少放大倍数就行。
 楼主| embassy 发表于 2016-12-22 14:35 | 显示全部楼层
xuyaqi 发表于 2016-12-22 14:12
有纯比例调节,如果纯比例调节出现震荡说明比例度(放大倍数大了),减少放大倍数就行。 ...

还是一样会振荡, 加了积分也没用
 楼主| embassy 发表于 2016-12-22 14:36 | 显示全部楼层
pid控制频率输出给固态继电器加热 加热棒, 怎么调 pid
xuyaqi 发表于 2016-12-22 15:33 | 显示全部楼层
embassy 发表于 2016-12-22 14:36
pid控制频率输出给固态继电器加热 加热棒, 怎么调 pid

频率输出给固态继电器加热 加热棒,什么样的频率?
cauhorse 发表于 2016-12-22 19:42 | 显示全部楼层
比例值太大,先调小;
如果振荡缓解,则加积分,只为获得稳态控制性能,单积分控制很多时候也能办到;
什么都不动,可以先查查测温传感器、控制电路硬件有无异常;
还要考虑控制对象的问题:
是否存在较大的纯延迟?——温度开始上升的时刻通常会滞后于开始加热的时刻,如果被控对象热容大,这个延迟不能忽略,因为可能会使被控对象出现振荡;
外部是否存在扰动?——被控对象是否受周期性的工作模式或外部环境变化的影响,温度出现变化;
如果设计电路,可以首先尝试死区控制,拿温度采样值与给定值做滞回比较;
如果写代码,要查的地方就比较多,搞不清楚的可以买一块温控仪表,比较学习它的控制策略和参数整定方法。
pywmiss 发表于 2016-12-23 11:39 | 显示全部楼层
我做过一个调温的...当时还不知道什么进PID.
就自己调试..结合实际....在线仿真....也只有比例..
1,振荡大的时候...应该是比例大了...就调小些...===这里就慢慢的调节比例直到最合适
2.还有就是很关键的要与实际结合...有时候可能是你自己调太快了..后面的实物还没有来得及反应..****这里要加入等待时间
3.或者你的检测点不对没办法实际反馈要调试的参数!!!-------这里要确认检测点的位置是不是合适
xuyaqi 发表于 2016-12-24 11:04 | 显示全部楼层
你的实验环境都没交待清楚别人怎么帮你。
cuya 发表于 2016-12-24 11:44 | 显示全部楼层
估计是由于你的加热系统滞后(热惯量等)造成的。这种情况, 减小比例系数, 会让震荡减轻, 但并不能完全消除, 而且会使系统响应时间加大。
一个简单的解决办法是给反馈控制上也加一个延时滞后, 以抵消加热系统滞后的影响。所以, 你需要先测出滞后的时间, 这可以通过阶跃响应得到。
 楼主| embassy 发表于 2017-2-16 15:50 | 显示全部楼层
cuya 发表于 2016-12-24 11:44
估计是由于你的加热系统滞后(热惯量等)造成的。这种情况, 减小比例系数, 会让震荡减轻, 但并不能完全 ...

我发现,难的不是pid,难的是如何将pid转换成频率输出控制加热器,  我现在用的pid转频率 只有在pid=0时,频率全亮, pid=0xffff时 频率全灭, pid=50000左右, 温度才会上升, 这明显频率输出没弄好
 楼主| embassy 发表于 2017-2-16 16:44 | 显示全部楼层
本帖最后由 embassy 于 2017-2-16 16:48 编辑

大部分 资料都只讲pid, 怎么将pid输出根本没人讲
目前,控制方式只有两种: 1. 频率; 2. 脉宽  
得出来的pid值必须要转换成频率或脉宽去控制
大部分没人讲pid转换输出,那是因为他们都是用的脉宽, 还是单片机里面的脉宽功能, 这样就导致芯片没脉宽的 做不了pid控制
实际上, 可以通过代码实现 将pid转脉宽 转频率的方式去恒温控制
目前,我只会 pid用脉宽方式去恒温控制, 至于 通过定时器编码实现 pid转换产生频率输出去控制  很难 到现在没弄懂看见的高手们, 帮帮忙
xiaomi999999 发表于 2017-2-17 12:37 | 显示全部楼层
embassy 发表于 2017-2-16 16:44
大部分 资料都只讲pid, 怎么将pid输出根本没人讲
目前,控制方式只有两种: 1. 频率; 2. 脉宽  
得出来的pid ...

我有恒温控制的一套程序,比较好的。
xiaomi999999 发表于 2017-2-17 12:41 | 显示全部楼层
PWM占空比去控制比较合理,如果输出50%的可调频率,控制的没用过。你可以试试
创隆电子 发表于 2017-2-17 21:57 来自手机 | 显示全部楼层
JY-DX-JY 发表于 2016-12-22 11:54
感觉不能单独使用比例控制吧,至少加上积分。

首先确保硬件没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

31

帖子

2

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