温控系统设计——过冲问题解决方案

背景:近来,厂家想要定做研发一款温度控制器,为了实现更加精确的温度控制,企业想要在温控算法方面进行优化改进;其中,产品的具体要求有:1、恒温控制:能够支持k、e、 j热电偶测量,触点输出;2、定时通断:触点短路启动定时器工作,同时一组继电器输出;另外,支持定时功能,实践到蜂鸣器响并且继电器复位;3、计数:每次计时器运行一次复位时,自动加一个数。其中,厂家特意要求:温控算法需要采用模糊pid控制;具体如下图所示:

从图中可以看出,基于pid算法设计实现的温控器,在初始阶段存在明显的过冲现象,在保证响应速度的前提下,不管如何修改比例、积分、微分参数,波动情况依然存在;并且实验中发现,响应速度越快,波动越大;因此,针对该问题,近来编写了模糊pid算法,具体的解决方案如下所示: 模糊pid实现过程: 模糊算法及解模糊;利用matlab中的 Fuzzy Logic工具箱进行控制系统进行设计,后续利用Simulink进行仿真。模拟中把偏差E和偏差变化率EC确定为模糊推理器的输入量,PID控制参数的增量系数∆KP,∆ KI,∆KD为输出量,具体过程为: 1、建立双输入三输出模糊系统,建立隶属度函数;

2、规则表编辑:一般可以制定49条模糊控制规则(大多数教科书上可以找到),后续将相应的规则编辑到matlab Fuzzy Logic工具箱内部,具体如下图所示:

将相应的规则输入到matlab 工具箱内,具体如下图所示:

采用matlab对模糊控制器进行仿真,具体程序代码如附件所示:下图展示了具体的结果,从图中可以看出,采用模糊pid控制算法后,温控精度大大提高,大大减弱了初始阶段的过冲问题,具体效果如下图所示:

采用传统pid算法的控制效果为:

附:过程中出现的问题以及解决办法:1、采用传统pid控制算法过程中,当参数选取不合理时,系统不能达到稳定状态,调试花费了较长时间依然不能达到预期要求,具体如下所示;

经验分享 程序员 微信小程序 职场和发展