2413|1

14

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

闭环控制 [复制链接]

这三天研究了一下PID闭环控制。想法的来源是上次找兼职被秒,所以觉得是得加强一下这方面的训练了。然后就想怎样能用尽可能的器件搭建出一个闭环系统来。后来想到一直在玩的LaunchPad,想用TA定时器产生的PWM来模拟DAC产生一个电压,经过RC滤波,然后再用ADC10采回去,根据测得的反馈电压,再去调节PWM的占空比,如果电压高于设定的值,减少占空比;如果电压低于设定值,提高占空比。这样一个闭环系统就搭建出来了。可以通过串口与电脑通信,用超级终端设定目标电压。话说滤波电路是振华做信号发生器时的实验板,偷了个懒。

程序的框架在回家前都完成了,后来由于别的事,就拖到了迷你假期结束。来后才开始调试,第一天把原来的程序运行了一下,结果出现莫名其妙的错误。试了不同的值还是不行。被折腾得精疲力竭,然后就偃旗息鼓了。后来又把谢大神的书拿来膜拜了,再深入研究一下PID算法。

第二天,调试才真正开始,因为我看到了自己的签名:想干的人永远在找方法,不想干的人永远在找理由。哥必须将其拿下。拿来示波器,从PWM波开始看,然后是滤波后的波形,才发现滤波出问题了,把方波滤成了三角波,怪不得AD采得的值是随机变化的。于是提高PWM波的频率,效果好多了,再增加滤波阶数,终于把纹波控制到20mV以内了。然后调ADC10,使它能正确测出实际电压。接下来突然发现串口不能正常工作了,原来还好好的呢。下午来后才猛然想起提高PWM频率的时候,改变SMCLK时钟频率了,于是串口问题也就顺利解决了。晚上开始调PID系数,按照书上说的,先调比例系数PID0,结果却总是在最大和最小之间徘徊。后来又调积分系数I,结果仍不对。后来干脆放弃人家和程序模板,根据自己的理解和实验数据表现出的规律,自己写,只用了一个比例调节OutPut=OutPut+P+I+D;就成功了。

第三天,昨天回去后想想,原来自己的方法不是不是比例算法,而是积分算法,因为我把比例环节的误差累加起来了,这原本是积分算法该干的事。于是今天把昨天那条山寨语句,换成正规的积分算法了。然后调节积分系数,发现只用积分就可以很快达到设定值,如果加上微分算法,速度反而更慢。因为微分是对有超调或者惯性的系统的。后来发现如果设定的值太大或太小,积分值会在有效范围之外徘徊很久才能进入有效范围。原来是积分限没有设置,后来又经过多次实验才确定了积分限。不过想起了大神的范例程序中积分限不是固定的,而是根据设定的目标值变化而变化。所以根据实验数据,计算出了本系统的积分上下限。果然逼近速度大大提高。下 1就是最后使用超级终端的调试界面。设定电压的时候,输入值是设定值×100.

1 超级终端调试界面

 

 

P.S.:在我落寞的岁月里,只有科研解脱我的孤寂。

 

最新回复

科研没有那么落寞,是很快乐的事情啊! 很好的第一步,不错,加油!  详情 回复 发表于 2012-8-19 11:09
 
点赞 关注

回复
举报

424

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
科研没有那么落寞,是很快乐的事情啊!
很好的第一步,不错,加油!
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表