C中的模糊逻辑隶属函数
Posted
技术标签:
【中文标题】C中的模糊逻辑隶属函数【英文标题】:Fuzzy logic membership function in C 【发布时间】:2010-12-19 08:13:31 【问题描述】:我正在尝试在 C 语言中为一个爱好机器人项目实现模糊逻辑隶属函数,但我不太确定如何开始。
我有关于某个点附近对象的输入,例如距离或哪些方向清晰/受阻,我想映射这些输入属于非常近、近、远、非常远等集合的强度。有人对如何开始有提示吗?谢谢。
【问题讨论】:
【参考方案1】:免责声明:我从未实现过模糊控制器(我只在现实生活中使用过 PI 或 PID),并且控制类是 10 年前的。
这是一个演示文稿,演示如何使用距离和角度作为输入,将功率作为输出,向目标移动。 FuzzyTech's Example positioning a crane 这只是介绍主题和理论,即没有代码。
最好的来源可能是机器人组之一 例如西雅图机器人协会fuzzy logic tutorial 它是技术性的......而且很长。
如果您可以访问技术期刊,请在 Google 学者中搜索 "fuzzy logic" "path planning" robotics
如果您正在寻找有关如何实现模糊逻辑的一些想法,那么来自微芯片制造商之一的应用说明可能会帮助您入门,例如 Microchip 关于Airflow control 或servo control 的论文。我知道这不是 Arduino,但 Microchips 的论文通常非常清楚地呈现。
最后是 c++ 中的一个示例,它可能比您正在寻找的更复杂。 Free fuzzy logic library 祝你好运。
【讨论】:
【参考方案2】:我不是模糊逻辑专家,但根据我的基本理解,您可以先确定近(例如 10 厘米)远(例如 1m)的距离,然后使用概率来填写范围之间(所以 55 厘米可能是 50% 近,50% 远)。然后,您对其他属性执行类似操作,并将与每个属性关联的概率与更多概率结合起来。
你对设计模糊控制有很好的参考吗?
我想你可以开始here。我认为他们至少描述了简单的模糊化和去模糊化例程。
【讨论】:
模糊集成员资格不是概率。【参考方案3】:MakeProto 的人为模糊系统创建了一个自动代码生成器,它从 Matlab 模糊系统或手动定义的模糊系统输出 C 代码。
可能值得一看。
http://makeproto.com/blog/?p=35
【讨论】:
【参考方案4】:模糊推理系统可以在 C 和 C++ 中实现。学习How to frame fuzzy logic in c
【讨论】:
以上是关于C中的模糊逻辑隶属函数的主要内容,如果未能解决你的问题,请参考以下文章
基于matlab实现生成模糊fis文件,包括模糊隶属函数和模糊规则等,不使用fuzzy工具箱