40、模糊逻辑相关模块介绍

模糊逻辑相关模块介绍

1. 差分S形隶属函数(Diff. Sigmoidal MF)

1.1 概述

差分S形隶属函数模块在Simulink中基于两个S形曲线的差值实现隶属函数。该模块位于模糊逻辑工具箱的隶属函数库中。

1.2 原理

S形曲线由以下方程定义:
[f(x; a_k, c_k) = \frac{1}{1 + e^{-a_k(x - c_k)}}]
其中 (k = 1,2)。参数 (a_1) 和 (a_2) 控制左右曲线的斜率,参数 (c_1) 和 (c_2) 控制左右曲线的拐点。若要定义一个最大值为1的单峰隶属函数,需为 (a_1) 和 (a_2) 指定相同的符号,并选择足够分开的 (c) 值,以使两个过渡区域都能达到1。

1.3 端口

端口类型 名称 描述 数据类型
输入 (x) 用于计算隶属度值的输入值,可指定为标量或向量 标量或向量
输出 (MF) 隶属度值,返回为标量或向量,其维度与 (x) 匹配 标量或向量

1.4 参数

参数名称 描述 默认值 编程使用类型
左曲线 (a_1) 控制左曲线过渡区域形状的参数,其大小控制过渡区域的宽度,符号决定曲线增减方向 3 字符串,字符向量
左曲线 (c_1) 左曲线过渡区域的中心 -5 字符串,字符向量
右曲线 (a_2) 控制右曲线过渡区域形状的参数,其大小控制过渡区域的宽度,符号决定曲线增减方向 1 字符串,字符向量
右曲线 (c_2) 右曲线过渡区域的中心 5 字符串,字符向量

1.5 扩展功能

  • C/C++代码生成 :使用Simulink® Coder™生成C和C++代码。
  • PLC代码生成 :使用Simulink® PLC Coder™生成结构化文本代码。

1.6 相关函数

  • dsigmf

1.7 流程说明

graph TD;
    A[输入x] --> B[计算左右S形曲线值];
    B --> C[计算差值得到隶属度值MF];
    C --> D[输出MF];

2. 模糊逻辑控制器(Fuzzy Logic Controller)

2.1 概述

模糊逻辑控制器模块在Simulink中实现模糊推理系统(FIS)。用户通过FIS名称参数指定要评估的FIS。

2.2 端口

2.2.1 输入
  • in :输入信号。对于单输入模糊推理系统,输入为标量信号;对于多输入模糊系统,可使用如Mux、Vector Concatenate、Bus Creator等模块将输入组合成向量信号。
2.2.2 输出
  • out :去模糊化后的输出信号。对于单输出FIS,输出为标量信号;对于多输出FIS,输出为向量信号,可使用Demux模块将系统输出拆分为标量信号。
  • fi :模糊化后的输入值,通过在当前输入值下评估每个规则的输入隶属函数获得。对于1型FIS, fi 是一个 (NR\times NU) 的矩阵信号;对于2型FIS, fi 是一个 (NR\times(2\times NU)) 的矩阵信号。启用该端口需选择“Fuzzified inputs (fi)”参数。
  • rfs :规则触发强度,通过评估每个规则的前提条件(即对模糊化输入值应用模糊算子)获得。对于1型FIS, rfs 是长度为 (NR) 的列向量信号;对于2型FIS, rfs 是一个 (NR\times 2) 的矩阵信号。启用该端口需选择“Rule firing strengths (rfs)”参数。
  • ro :规则输出,通过将规则触发强度应用于输出隶属函数(使用FIS中指定的蕴含方法)获得。不同类型的FIS对应的 ro 信号格式不同。启用该端口需选择“Rule outputs (ro)”参数,并使用“Number of samples for output discretization”参数指定 (NS)。
  • ao :聚合输出,通过使用FIS中指定的聚合方法组合所有规则的相应输出获得。不同类型的FIS对应的 ao 信号格式不同。启用该端口需选择“Aggregated outputs (ao)”参数,并使用“Number of samples for output discretization”参数指定 (NS)。

2.3 参数

2.3.1 常规参数
  • FIS名称 :要评估的模糊推理系统,可指定为以下之一:
  • mamfis sugfis 对象:指定MATLAB工作区中1型FIS对象的名称。
  • mamfistype2 sugfistype2 对象:指定MATLAB工作区中2型FIS对象的名称。
  • 文件名:指定当前工作文件夹或MATLAB路径中的 .fis 文件的名称,文件名中包含文件扩展名是可选的。
  • 输出离散化的样本点数 :离散化输出变量范围的样本点数,指定为大于1的整数。评估Mamdani FIS时,可通过指定较低的样本数减少内存使用,但会牺牲去模糊化输出值的准确性;评估Sugeno FIS时,该模块会忽略此参数。
  • 数据类型 :信号数据类型,可指定为 double (双精度信号)、 single (单精度信号)、固定点类型(如 fixdt(1,16,0) fixdt(1,16,2^0,0) )或表达式。对于固定点数据类型,可使用数据类型助手配置符号性、字长和缩放参数。
  • 模糊化输入(fi) :启用 fi 输出端口,默认关闭。
  • 规则触发强度(rfs) :启用 rfs 输出端口,默认关闭。
  • 规则输出(ro) :启用 ro 输出端口,默认关闭。
  • 聚合输出(ao) :启用 ao 输出端口,默认关闭。
  • 仿真模式 :可指定为“Interpreted execution”(使用预编译的MEX文件模拟单精度和双精度数据类型的模糊系统,减少模型的初始编译时间)或“Code generation”(不使用预编译的MEX文件模拟模糊系统,适用于代码生成应用)。对于固定点数据类型,模糊逻辑控制器模块始终使用代码生成模式进行仿真。
2.3.2 诊断参数
  • 输入值超出范围 :当输入超出范围时的诊断消息行为,可指定为 warning (报告为警告)、 error (报告为错误)或 none (不报告诊断消息)。仅当“Simulate using”参数为“Interpreted execution”时提供诊断消息。
  • 无规则触发 :当给定输出变量没有规则触发时的诊断消息行为,可指定为 warning (报告为警告)、 error (报告为错误)或 none (不报告诊断消息)。当设置为 warning none 且没有规则触发时,去模糊化输出值设置为其范围的平均值。仅当“Simulate using”参数为“Interpreted execution”时提供诊断消息。
  • 输出模糊集为空 :当输出模糊集为空时的诊断消息行为,可指定为 warning (报告为警告)、 error (报告为错误)或 none (不报告诊断消息)。此诊断消息仅适用于Mamdani系统,且仅当“Simulate using”参数为“Interpreted execution”时提供诊断消息。

2.4 兼容性考虑

从R2019b开始警告,未来版本将移除将模糊推理系统表示为结构的支持,建议使用 mamfis sugfis 对象代替。可使用 convertfis 函数将现有的模糊推理系统结构转换为对象。

2.5 扩展功能

  • C/C++代码生成 :使用Simulink® Coder™生成C和C++代码。
  • PLC代码生成 :使用Simulink® PLC Coder™生成结构化文本代码。
  • 定点转换 :使用Fixed-Point Designer™设计和仿真定点系统。

2.6 相关模块和函数

  • 相关模块 :Fuzzy Logic Controller with Ruleviewer
  • 相关应用 :Fuzzy Logic Designer、Neuro-Fuzzy Designer
  • 相关函数 mamfis sugfis mamfistype2 sugfistype2 readfis evalfis genfis writeFIS

2.7 流程说明

graph TD;
    A[输入in] --> B[模糊化输入值fi];
    B --> C[计算规则触发强度rfs];
    C --> D[计算规则输出ro];
    D --> E[聚合输出ao];
    E --> F[去模糊化得到out];
    F --> G[输出out];

3. 带规则查看器的模糊逻辑控制器(Fuzzy Logic Controller with Ruleviewer)

3.1 概述

带规则查看器的模糊逻辑控制器模块在Simulink中实现模糊推理系统(FIS),并在仿真期间于规则查看器中显示模糊推理过程。用户通过FIS矩阵参数指定要评估的FIS,并可通过指定“Refresh rate in seconds”来更改规则查看器的更新时间。

3.2 端口

3.2.1 输入
  • Port_1(In1) :输入信号。对于单输入模糊推理系统,输入为标量;对于多输入模糊系统,可使用如Mux、Vector Concatenate、Bus Creator等模块将输入组合成向量信号。
3.2.2 输出
  • Port_1(Out1) :去模糊化后的输出信号。对于单输出模糊推理系统,输出为标量;对于多输出模糊系统,输出为向量,可使用Demux模块将系统输出拆分为标量信号。

3.3 参数

参数名称 描述 默认值 编程使用类型
FIS结构 要评估的模糊推理系统,指定为 mamfis sugfis 对象,需指定MATLAB工作区中FIS对象的名称 “fis” 字符串,字符向量
刷新速率 规则查看器更新的时间间隔(秒),指定为标量。在仿真期间,规则查看器将按指定速率更新显示,以展示最新输入信号值的推理过程 “2” 字符串,字符向量

3.4 兼容性考虑

从R2019b开始警告,未来版本将移除将模糊推理系统表示为结构的支持,建议使用 mamfis sugfis 对象代替。可使用 convertfis 函数将现有的模糊推理系统结构转换为对象。

3.5 扩展功能

  • C/C++代码生成 :使用Simulink® Coder™生成C和C++代码。
    • 使用说明 :使用该模块生成代码与使用模糊逻辑控制器模块生成的代码相同,但该模块不支持为单点或定点数据生成代码,也不支持更改输出变量范围离散化的样本数。

3.6 相关模块和函数

  • 相关模块 :Fuzzy Logic Controller
  • 相关应用 :Fuzzy Logic Designer、Neuro-Fuzzy Designer
  • 相关函数 mamfis sugfis readfis evalfis

3.7 流程说明

graph TD;
    A[输入Port_1(In1)] --> B[模糊推理系统处理];
    B --> C[规则查看器显示推理过程];
    B --> D[去模糊化得到Port_1(Out1)];
    D --> E[输出Port_1(Out1)];

4. 模糊逻辑相关模块对比总结

模块名称 功能概述 支持数据类型 仿真模式 输出端口 代码生成特点
差分S形隶属函数(Diff. Sigmoidal MF) 基于两个S形曲线的差值实现隶属函数 无特殊限制 无特殊说明 隶属度值MF 支持C/C++和PLC代码生成
模糊逻辑控制器(Fuzzy Logic Controller) 实现模糊推理系统,可输出中间结果 双精度、单精度、定点等 解释执行、代码生成 out、fi、rfs、ro、ao 支持C/C++、PLC代码生成和定点转换
带规则查看器的模糊逻辑控制器(Fuzzy Logic Controller with Ruleviewer) 实现模糊推理系统并显示推理过程 仅支持双精度 仅支持解释执行 Port_1(Out1) 支持C/C++代码生成,但有一定限制

综上所述,不同的模糊逻辑相关模块适用于不同的应用场景。差分S形隶属函数模块主要用于构建特定的隶属函数;模糊逻辑控制器模块功能强大,可灵活配置各种参数并输出中间推理结果,适用于复杂的模糊推理系统设计;带规则查看器的模糊逻辑控制器模块则更侧重于在仿真过程中直观展示推理过程,方便用户调试和分析。在实际应用中,可根据具体需求选择合适的模块。

同步定位与地图构建(SLAM)技术为移动机器人或自主载具在未知空间中的导航提供了核心支撑。借助该技术,机器人能够在探索过程中实时构建环境地图并确定自身位置。典型的SLAM流程涵盖传感器数据采集、数据处理、状态估计及地图生成等环节,其核心挑战在于有效处理定位与环境建模中的各类不确定性。 Matlab作为工程计算与数据可视化领域广泛应用的数学软件,具备丰富的内置函数与专用工具箱,尤其适用于算法开发与仿真验证。在SLAM研究方面,Matlab可用于模拟传感器输出、实现定位建图算法,并进行系统性能评估。其仿真环境能显著降低实验成本,加速算法开发与验证周期。 本次“SLAM-基于Matlab的同步定位与建图仿真实践项目”通过Matlab平台完整再现了SLAM的关键流程,包括数据采集、滤波估计、特征提取、数据关联与地图更新等核心模块。该项目不仅呈现了SLAM技术的实际应用场景,更为机器人导航与自主移动领域的研究人员提供了系统的实践参考。 项目涉及的核心技术要点主要包括:传感器模型(如激光雷达与视觉传感器)的建立与应用、特征匹配与数据关联方法、滤波器设计(如扩展卡尔曼滤波与粒子滤波)、图优化框架(如GTSAM与Ceres Solver)以及路径规划与避障策略。通过项目实践,参与者可深入掌握SLAM算法的实现原理,并提升相关算法的设计与调试能力。 该项目同时注重理论向工程实践的转化,为机器人技术领域的学习者提供了宝贵的实操经验。Matlab仿真环境将复杂的技术问题可视化与可操作化,显著降低了学习门槛,提升了学习效率与质量。 实践过程中,学习者将直面SLAM技术在实际应用中遇到的典型问题,包括传感器误差补偿、动态环境下的建图定位挑战以及计算资源优化等。这些问题的解决对推动SLAM技术的产业化应用具有重要价值。 SLAM技术在工业自动化、服务机器人、自动驾驶及无人机等领域的应用前景广阔。掌握该项技术不仅有助于提升个人专业能力,也为相关行业的技术发展提供了重要支撑。随着技术进步与应用场景的持续拓展,SLAM技术的重要性将日益凸显。 本实践项目作为综合性学习资源,为机器人技术领域的专业人员提供了深入研习SLAM技术的实践平台。通过Matlab这一高效工具,参与者能够直观理解SLAM的实现过程,掌握关键算法,并将理论知识系统应用于实际工程问题的解决之中。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值