智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 20761|回复: 27
打印 上一主题 下一主题

[电磁] 【控制心得】模糊pid使用后心得分享

    [复制链接]

13

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2331
威望
1223
贡献
598
兑换币
602
注册时间
2016-12-19
在线时间
255 小时
毕业学校
跳转到指定楼层
1#
发表于 2018-8-15 10:50:48 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
       即将国赛,我吧自己控制的最后一点东西:模糊pid简单谈谈分享给大家,建议大家在对pid有一定的理解之后再时候动态pid控制,否则会给自己埋下N个bug。进入正题:
      首先讨论一下,为什么会选择动态pid控制,从理论上来说,我对小车的输入,到小车的实际响应(比如我想让小车速度为1m/s,然后输入1m/s,但是小车可能要1s才能响应到1m/s,或者甚至都不会达这个速度),这之间是有一个传递函数的(自动控制原理的知识),把它称为系统传递函数(忘了叫啥名了,我暂时这么称呼吧),而我在它们之间嵌入了pid控制,pid控制自成一个传递函数,我称这为控制传递函数吧。因此,在我对小车输入到小车实际响应时,新的传递函数为   系统传递函数   与  控制传递函数 共同做用的结果,这个传递函数的指标直接对应输出对输入的响应。假设在某个时间点的某个环境下我调试出了一个极好的pid,但是这个pid对应的控制传递函数是与在这个环境下的系统传递函数相匹配的,后面环境再变化,系统传递函数变化,此时之前的pid就不再是极好的,新的传递函数就会变的不再很理想。是的,即使我用静态pid,依旧能跑一个很快的速度且感觉没啥区别,但是若要再提速,那从哪里下手呢?至少从原理分析上来说,动态pid调得合理后,是会使控制效果更好的。
       模糊pid本质上就是一个动态pid,既然要动,要变化,那就应该有依据。就像差速要给多大,需要电感算出的偏差作为反馈。在这里,我是用的  偏差,  偏差的微分  作为反馈,根据这2个参数,调整pid 的值。当读到这里,可能有些人会觉得很简单啊,拟合函数关系就行了啊,我最开始思考到这里的时候,也是这么想的: 自己拟合一个函数关系式   f(x,y) ,当我输入偏差,偏差的微分时,自动输出一个pid参数。其实这样是没问题的,说简单点这叫直白,说粗俗点粗暴。其实这么直接的拟合不太符合我们的感性思维,因为我们直接拟合的话,无非就是  偏差,  偏差的微分越大,然后pid就越大吧 然后就会出现一个函数模板 out = k*x + j*y,这时我只需要调出合适的k   ,j   就行了。单看这个式子,就毫无感觉,没有一丝的感性理解美感。。。。模糊pid本质上也是找一个函数关系式,只是形式上与前面的直接暴力拟合有着较大的差别,模糊pid的模糊化后的部分表达式更直观,更符合我们的直观认知。
       模糊pid的实现。先说一下实现的流程。
                   1、模糊化:输入,偏差、  偏差的微分这2个量,根据它们的大小,得出一个合理的模糊语句表示。假如我的偏差范围是1-100。根据你分的细致程度(我这里分为3层),我把它拆分成3类:1-33(小),34-66(中),67-100(大),这一步称为“确定各输入量的模糊语言”。 好,这时候我计入输入进来的偏差为33.从上面的分类上来看,它是属于   小,这个时候不能这么理解,。假如33这个偏差有60%的人认为是小,40%的人认为是中。0%的人认为是大。我就把60%称为   偏差对于小的隶属度,40%称为   偏差对于中的隶属度。至于这个隶属度如何得来,便是通过根据经验得出的隶属度函数算出来的。隶属度函数有多种,网上一查一大堆。
                   2、规则库的建立:规则库理论上就是关系式,只不过不像粗暴拟合那般让我们无法“大展拳脚”地拟合。说一个最简单的吧,通过上的模糊化后,我得知输入进来的偏差是小,偏差的微分是大,那么,我就让我的p  增大,d不变。这个时候,让p增大是一个p单独对应的规则库中得出的结果。同理,d也是。而这个规则库,就是通过上面自己的理解建立的,建立成功后,我向这个库中输入    偏差的大小,偏差的微分的大小。然后出来 对应的pid。

             3、模糊推理:根据规则库推理出对应结果。由于1那里是会解出多个不同隶属度的模糊化结果,所以每个模糊化结果都送入规则库得出推理结果。例子:此时偏差小:60%,偏差中:40%。偏差微分小:10%,偏差中:90%.那么 就能根据模糊推理得到四种结果(有些结果可能是相同的),在根据隶属度算出对应结果的比例。
             4、解模糊:这个步骤和1步骤相反,首先根据3得到的不同模糊推理结果和对应的比例,一般采用常用的三种方法之一(重心法,高度法,面积法),和输出的规则库,来得到最终的输出。假如我算出p为输出大的比例是20%,中%50,小%30,这时范模糊p的规则库的    大:p=2,中:p=1.5,小p=1。然后对应比例相乘就得到p的结果。整个模糊pid控制结束。


呼,本人贡献散完,因为最开始接触智能车的时间来论坛很少看到有用的帖子,那个时候什么也不懂,也没啥人在论坛交流,自己学的痛苦,又为论坛感觉很痛心,2年过去了还是如此,这算是尽我个人小力,希望大家能活跃交流吧。
以上心血来潮纯手打,如有说的不对的地方欢迎指正。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

13

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2331
威望
1223
贡献
598
兑换币
602
注册时间
2016-12-19
在线时间
255 小时
毕业学校
2#
 楼主| 发表于 2018-8-15 11:51:17 | 显示全部楼层
信号心 发表于 2018-8-15 11:36
关于速度模糊我觉得可以用编码器采集的值作为偏差和偏差变化率

这里主要是说明模糊如何实现的,在能实现的基础上当然就能任意扩展
回复 支持 反对

使用道具 举报

13

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2331
威望
1223
贡献
598
兑换币
602
注册时间
2016-12-19
在线时间
255 小时
毕业学校
3#
 楼主| 发表于 2018-8-15 15:54:59 | 显示全部楼层
李白不白 发表于 2018-8-15 11:17
顶顶顶顶顶顶  本人对模糊控制又有了进一步的了解  模糊pid 效果和加减速差不多 弯道速度会降下来 个人见解

不知你是差速还是舵机,如果是舵机的话,对方向偏差环用模糊pid其实和速度关系不大吧,只涉及转向。如果是差速的你,你在控制的时候能把差速转向的控制和前进速度的控制很好的分开,其实也不会太影响你转向的速度。模糊pid的话可以说是pid在适应环境变化时的微调,以降低环境变化带来的控制系统变差的影响吧
回复 支持 反对

使用道具 举报

13

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2331
威望
1223
贡献
598
兑换币
602
注册时间
2016-12-19
在线时间
255 小时
毕业学校
4#
 楼主| 发表于 2018-8-15 20:15:31 | 显示全部楼层
KIKACCC 发表于 2018-8-15 17:06
感觉建立隶属度函数,和规则表好难。。。如何将赛道元素贴合地映射到规则表是很艰辛了。。。。。。

模糊算法出现这么多年了,早就有经验规则和经验隶属函数了,你只需在网上找到并稍稍微改一下适应自己的就好了
回复 支持 反对

使用道具 举报

13

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2331
威望
1223
贡献
598
兑换币
602
注册时间
2016-12-19
在线时间
255 小时
毕业学校
5#
 楼主| 发表于 2018-8-15 20:18:22 | 显示全部楼层
yanxi00 发表于 2018-8-15 18:59
直立转向用了模糊,在s弯欧姆弯这些地方老是拐不好求指导

建议在你静态参数转向环调好了后,再上模糊。
不管是理论上还是实际上,静参pid转向的控制,在2.6,2.7速度下,你说的那些元素上都不会出现啥问题
我怀疑是你电感算偏差那里的算法存在问题
回复 支持 反对

使用道具 举报

13

主题

137

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2331
威望
1223
贡献
598
兑换币
602
注册时间
2016-12-19
在线时间
255 小时
毕业学校
6#
 楼主| 发表于 2018-8-16 12:38:32 | 显示全部楼层
yanxi00 发表于 2018-8-15 20:52
我就是一个根号偏差比和,求问大佬得偏差算法

同样是差比和   ,在你传感器的高低,左右之间的间隔,传感器的方向不同的情况下,效果都不一样。虽然表面上你只用了一个差比和,其实内含着其他的考量:即传感器的位置对我控制优化的影响。  这一块是非常值得分析考究的,它带来的控制影响可以说的巨大的
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-8 22:13 , Processed in 0.045863 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表