历史上的今天
今天是:2024年10月20日(星期日)
2018年10月20日 | 用STM32F407玩控制—自适应模糊PID控制
2018-10-20 来源:eefocus
自适应模糊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的问题,得不偿失,打住就到此为止了。




史海拾趣
|
郑铁职院无线电协会09年全国大学生电子设计竞赛全纪录——《破茧成蝶》 本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 郑州铁路职业技术学院无线电协会在07年“全国大学生电子设计竞赛”中获得最高奖“索尼杯”、 “全国一等奖”后,在09年度“全国大学生电子设计竞赛”中再创佳绩:荣获全国一等奖一个、全国二等奖一个 ...… 查看全部问答> |
|
函数原型 DWORD RasSetEntryProperties( LPWSTR lpszPhoneBook, LPWSTR szEntry, LPRASENTRY lpbEntry, DWORD dwEntrySize, LPBYTE lpb, DWORD dwSize ); ...… 查看全部问答> |
|
小弟做毕设遇到个棘手问题,望各位好心人帮助小弟用的arm开发板是友坚恒天的S3C6410,将GPIO的GPK的15-8位和GPL的7-0位从高到低组合成16位数据,但在编写驱动时报错,可能是XXX_read函数有问题,代码如下:驱动部分代码:DWORD GIO_Init(LPCTSTR PC ...… 查看全部问答> |
|
我试的是CCS6.1,MSP430ware版本1.40.00.26之前好像没升级过(之前点过help里的chack for updates,忘了升级没有了),我上次参加研讨会发的是MSPWare_2_21_00_39,也就还一个比较新版本(不知道是不是最新的),为什么我现在点help里的chack for u ...… 查看全部问答> |




