×
单片机 > 单片机程序设计 > 详情

用STM32F407玩控制—自适应模糊PID控制

发布时间:2020-05-29 发布时间:
|

自适应模糊PID控制的原理如图1所示,从图中可以看出对偏差和偏差变化率进行模糊推理,获得Δkp、Δki、Δkd,模糊控制器的PID参数实际值为:kp=kp0+qp*Δkp、ki=ki0+qi*Δki、kd=kd0+qd*Δkd,其中qp、qi、qd为比例因子,这是比较常见的一种计算方式,但在薛定宇的《控制数学问题的MATLAB求解》一书中讲了另外一种计算方式:kp(k)=kp(k-1)+γ(k)*Δkp、ki(k)=ki(k-1))+γ(k)*Δki、kd(k)=kd(k-1)+γ(k)*Δkd,显然这种计算方式更复杂,我们这里采用前者,为了进行模糊推理,需要确定模糊规则表和各个模糊变量的隶属度函数,常见的模糊规则表如图2所示,我们采用的隶属度函数如图3所示,然后在此基础上进行模糊推理,通常这一步由MATLAB的M代码实现,由此获得Δkp、Δki、Δkd的查询表如4所示,其曲面输出图见图3,在C语言中,查询表用两维数组来实现,将偏差e和偏差变化率ec分别乘上比例因子ke、kec就可得到数组下标,从而可以进行两维数组的引用,因此在C语言中的编程可以说是非常简单的,复杂的是前面那部分,我们在STM32F407中实现的自适应模糊PID控制器,其控制效果如5所示,从图中可以看出这是一个大纯滞后系统,控制效果还相当好,实际上要用好自适应模糊PID控制器,还不是一件容易的事,首先的要确定合适的初始PID值,这一点,如果人工整定手气不佳,可以用自动整定来帮忙,其次得调整qp、qi、qd、ke、kec等比例因子至合适值,显然这不容易,那如果仅仅是作理论研究,则可以用最优化来搜索合适的各个比例因子,如果是实战,那你需要知道系统的传递函数,为此的进行系统辨识,但那样就变成为了解决一个难度系数为2的问题,结果却引进了一个难度系数为5的问题,得不偿失,打住就到此为止了。

















『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析