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工具箱

怎样用matlab中画出模糊控制器2个输入,3个输出的隶属函数图

MATLAB模糊隶属函数怎么输出

模糊控制——理论基础(2隶属函数)

6.模糊推理方法: 提出, 模糊集合与隶属函数, 模糊关系及其合成, 模糊推理与决策, 模糊推理应用