本程序利用MATLAB环境实现模糊控制算法,适用于各类控制系统仿真。通过自定义规则库优化系统性能,提供清晰编程接口与可视化调试工具。
用MATLAB编写的离散模糊控制程序有助于更快更好地理解模糊控制算法。该程序在MATLAB Version: 7.14.0.739 (R2012a)上运行无误。
函数 [FCU_T1, FCU_T2, FCU_T3, FCU_T4] = fuzzy_table(Me,Mec,Mu,UC)
- Me:隶属度表1
- Mec:隶属度表2
- Mu:隶属度表3
- UC:模糊规则
- FCU_T1: 重心加权法,输出精确值
- FCU_T2: 重心加权法,输出离散值
- FCU_T3: 重心加权法(对隶属度平方),输出离散值
- FCU_T4: 最大隶属度法
函数 [R,n,nE,nEC,nU,nfe,nfec,nfu]=fuzzy_relation(Me,Mec,Mu,UC)
- Me:隶属度表1
- Mec:隶属度表2
- Mu:隶属度表3
- UC:模糊规则
- R: 表示全体规则构成的模糊关系
- n=nfe×nfec
- nE: 模糊变量E的语言值个数
- nEC: 表示模糊变量EC的语言值个数
- nU :表示模糊变量U的语言值个数
- nfe:表示E的等级量个数,例如论域为{-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6}
- nfec: 表示EC的等级量个数,例如论域为{-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6}
- nfu :表示U的等级量个数,例如论域为{-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6}
- Me:表示E的隶属度表
- Mec:表示EC的隶属度表
- Mu: 表示U的隶属度表
- UC: 表示规则表