第三讲 · 模糊逻辑:模糊控制

(updated 2026年8月23日)

对应 PPT:第三讲《模糊控制》 专家系统的规则是「非黑即白」的硬逻辑,但人脑经验常是「温度有点高就把阀门关小一点」这种模糊话。模糊控制就是把这种不精确的自然语言经验量化成机器能算的控制律。


1. 为什么需要模糊控制

几点睡算「熬夜」?23:00 几乎不算,00:00 有点熬,01:30 非常熬。但你定不出精确界线——难道 23:59 不算、00:01 就算?「熬夜」本身是个模糊概念:中间过渡时界限不明显、「亦此亦彼」。「老师 / 学生」是精确概念;「高个子 / 热天气 / 年轻人」是模糊概念。

采用模糊控制主要有三个原因:传统控制依赖精确模型;专家系统的 IF-THEN 规则界限分明;而人类经验常是定性的(「温度有点高就关小一点」)。模糊数学可以把这种不精确的自然语言经验定量化。它有五个特点:① 无模型控制;② 贴近人类认知;③ 易理解;④ 工程实现简单;⑤ 鲁棒性与适应性强。

2. 隶属度:从「非 0 即 1」到 [0,1] 连续

模糊数学由美国加州大学 Zadeh(扎德)教授提出,核心是用数学工具描述模糊现象,在经典集合论基础上引入隶属函数。

  • 经典集合:元素与集合的关系只有「属于(1)」或「不属于(0)」,分界线明确。
  • 模糊集合:用 隶属度(Degree of membership) μA(x)∈[0,1]\mu_A(x) \in [0,1] 描述从属程度,是连续变化的值。

为什么需要它?定义「舒适 = 15~25℃」。按经典集合,14.99℃ 属于「冷」、15.01℃ 属于「舒适」——差 0.02 度天壤之别?这跟人的真实感觉不符。模糊集合允许 15℃ 附近「既有点冷又有点舒适」。

经典案例(Zadeh 的「年轻」模糊集):0≤x≤250 \le x \le 25 时 μ=1\mu = 1;25<x≤10025 < x \le 100 时

μ年轻(x)=[ 1+(x−255)2 ]−1\mu_{\text{年轻}}(x)=\left[\,1+\left(\frac{x-25}{5}\right)^{2}\,\right]^{-1}

代入 x=30x=30:μ(30)=11+1=0.5\mu(30)=\frac{1}{1+1}=0.5,即「30 岁属于年轻人的程度是 0.5」——模糊集合给出了「半个年轻人」这种符合直觉的描述。

三种表示法(以 5 人对「高个子」隶属度为例):① Zadeh 法 A=∑μ(xi)/xiA=\sum \mu(x_i)/x_i(「+」「/」只是分隔符,不是加和除);② 序偶法 A={(xi,μ(xi))}A=\{(x_i,\mu(x_i))\};③ 隶属函数描述法(连续论域用,如上面「年轻」的分段函数)。

3. 模糊集合的交并补运算

设 A,BA,B 在同一论域,把「非此即彼」换成隶属度的逐点运算:

  • 交 A∩BA\cap B:逐点取小 min⁡\min,记 ∧\wedge;
  • 并 A∪BA\cup B:逐点取大 max⁡\max,记 ∨\vee;
  • 补 Aˉ\bar A:μAˉ(x)=1−μA(x)\mu_{\bar A}(x)=1-\mu_A(x)。

例:A=(0.5,0.3,0.4,0.2,0.1)A=(0.5,0.3,0.4,0.2,0.1)、B=(0.2,0.8,0.1,0.7,0.4)B=(0.2,0.8,0.1,0.7,0.4) → A∩B=(0.2,0.3,0.1,0.2,0.1)A\cap B=(0.2,0.3,0.1,0.2,0.1)、A∪B=(0.5,0.8,0.4,0.7,0.4)A\cup B=(0.5,0.8,0.4,0.7,0.4)、Aˉ=(0.5,0.7,0.6,0.8,0.9)\bar A=(0.5,0.7,0.6,0.8,0.9)。

直觉:模糊逻辑里 「且」= 取小(一串条件里最弱一环决定整体,木桶效应)、「或」= 取大、「非」= 1 减。这三个算子是后面所有模糊推理的基础。

4. 模糊关系与合成

模糊关系描述两个论域元素「多大程度相关」,用矩阵表示 rij=μR(xi,yj)∈[0,1]r_{ij}=\mu_R(x_i,y_j)\in[0,1]。例:子女与父母相貌相似度

子女
父0.80.3
母0.50.9

max-min 合成:算法像矩阵乘法,但**「乘」改取小 ∧\wedge、「加」改取大 ∨\vee**。某格例:(0.3∧0.1)∨(0.7∧0.8)∨(0.2∧0.0)=0.1∨0.7∨0.0=0.7(0.3\wedge0.1)\vee(0.7\wedge0.8)\vee(0.2\wedge0.0)=0.1\vee0.7\vee0.0=0.7。直觉:每条「通路」取最弱一环,多条通路取最强那条。

5. 模糊推理:让「IF A THEN B」能算

课件把「IF xx is AA THEN yy is BB」按完整逻辑蕴涵写成

R=(A×B)∪(Aˉ×V),R=(A\times B)\cup(\bar A\times V),

其中 VV 是输出论域上的全集。第一项表示前提与结论同时满足;第二项表示前提不成立时不约束结论。逐点隶属度为

μR(x,y)=[μA(x)∧μB(y)]∨[1−μA(x)].\mu_R(x,y)=\big[\mu_A(x)\wedge\mu_B(y)\big]\vee\big[1-\mu_A(x)\big].

若规则带有 ELSE:「IF xx is AA THEN yy is BB ELSE yy is CC」,则

R=(A×B)∪(Aˉ×C).R=(A\times B)\cup(\bar A\times C).

多条并列规则把各自关系取并集 R=⋃i(Ai×Bi)R=\bigcup_i(A_i\times B_i);多输入规则「x1x_1 is A1A_1 AND … AND xmx_m is AmA_m」则使用多维笛卡尔积 A1×⋯×Am×BA_1\times\cdots\times A_m\times B,各前件隶属度逐项取小。

工程上的 Mamdani 推理常把当前被触发规则的有效部分单独写成 A×BA\times B,再用实际输入做 B′=A′∘RB'=A'\circ R 的 max-min 合成。下面的数值例子展示的正是这个有效部分。

例(IF 温度低 THEN 开大阀门):温度低 A=(1.0,0.6,0.1)A=(1.0,0.6,0.1),阀门开大 B=(0.1,0.7,1.0)B=(0.1,0.7,1.0)。先求 R=A×BR=A\times B:

b1b2b3
a10.10.71.0
a20.10.60.6
a30.10.10.1

输入实际温度 A′=(0.8,0.5,0.2)A'=(0.8,0.5,0.2),则 B′=A′∘R=(0.1,0.7,0.8)B'=A'\circ R=(0.1,0.7,0.8)。模糊关系就是模糊推理的桥梁。

6. 模糊控制器:三件套 + 工作流程

精确量 →①模糊化→ 模糊量 →②知识库+推理→ 模糊控制量 →③解模糊→ 精确控制量

模糊控制器在闭环中的完整数据流

① 模糊化接口:精确量 → 模糊量。常用单点模糊集。典型语言变量(描述误差,三角隶属函数,论域 [−6,6][-6,6]):NB 负大 / NM 负中 / NS 负小 / ZO 零 / PS 正小 / PM 正中 / PB 正大。

② 知识库 = 数据库(存隶属函数)+ 规则库(存 IF-THEN 模糊规则)。

③ 推理与解模糊接口:推理求出模糊控制量,解模糊把它变回精确量。

6.1 二维模糊控制器的 7 步设计

工程最常用单变量二维模糊控制器:输入误差 EE 和误差变化 ECEC,输出控制量 uu(本质是「模糊版 PD 控制」)。7 步:① 定义控制器(选二维结构);② 定义模糊集与论域(都取 7 档 {NB,...,PB}\{NB,...,PB\});③ 定义隶属函数(常用三角形);④ 建立模糊规则;⑤ 建立模糊控制表(二维共 7×7=497\times7=49 条);⑥ 模糊推理;⑦ 反模糊化。

二维模糊控制表(行 EE、列 ECEC、格内 uu):

E\ECNBNMNSZOPSPMPB
NBNBNBNMNMNSNSZO
NMNBNMNMNSNSZOPS
NSNMNMNSNSZOPSPS
ZONMNSNSZOPSPSPM
PSNSNSZOPSPSPMPM
PMNSZOPSPSPMPMPB
PBZOPSPSPMPMPBPB

规律:对角对称,误差与误差变化越往一个方向偏,控制量越往对应方向给。

工程中常用查询表(Look-up Table):把 49 条规则离线完成推理和解模糊,算成一张「E×EC→uE\times EC\to u 的数值表」;在线时直接查表,不再实时推理,因此也适合算力有限的单片机。

7. 解模糊的三种方法

  • 最大隶属度法:取隶属度最大的输出,并列取平均。简单但丢分布信息、易跳变。
  • 重心法(最常用):取隶属度曲线与横轴围成面积的质心。离散式:

v0=∑kvk μ(vk)∑kμ(vk)v_0=\frac{\sum_{k} v_k\,\mu(v_k)}{\sum_{k}\mu(v_k)}

输出平滑,输入微变输出也平滑变。

  • 加权平均法:v0=∑ikivi∑ikiv_0=\frac{\sum_i k_i v_i}{\sum_i k_i},工业常用;权 kik_i 取 μ(vi)\mu(v_i) 时退化为重心法。

8. 模糊自适应整定 PID

思想:把「什么误差状况下 PID 三参数该怎么调」的经验写成模糊规则;运行时实时检测 e,ece,ec,用模糊推理在线整定 kp,ki,kdk_p,k_i,k_d:

kp=kp0+Δkp,ki=ki0+Δki,kd=kd0+Δkdk_p=k_{p0}+\Delta k_p,\quad k_i=k_{i0}+\Delta k_i,\quad k_d=k_{d0}+\Delta k_d

课件重点分析了三个参数的作用:

参数作用过大过小
kpk_p 比例加快响应、提高精度超调、易不稳定响应慢、精度低
kik_i 积分消除稳态误差积分饱和、超调大静差难消除
kdk_d 微分改善动态、提前预报偏差提前制动、抗干扰差动态改善不足

对比专家 PID(都不要精确模型):专家 PID 用规则切换控制策略(5 种情况);模糊 PID 用模糊推理在线调 PID 三个参数旋钮。前者调「怎么打」,后者调「力度」。

课件先用三档语言值 {N,Z,P}\{N,Z,P\} 演示模糊 PI。输入是误差 ee 与误差变化 ecec,输出分别是 Δkp\Delta k_p、Δki\Delta k_i。两张规则表为:

Δkp\Delta k_p:e\ece\backslash ecNZP
NNNN
ZNPP
PPPP
Δki\Delta k_i:e\ece\backslash ecNZP
NZZZ
ZPPP
PZZZ

在线闭环每个采样周期依次执行:读取 r(k),y(k)r(k),y(k) → 计算 e(k)=r(k)−y(k)e(k)=r(k)-y(k) 与 ec(k)=e(k)−e(k−1)ec(k)=e(k)-e(k-1) → 模糊化 → 查规则表得到 Δkp,Δki,Δkd\Delta k_p,\Delta k_i,\Delta k_d → 更新当前 PID 参数 → 计算控制输出 → 保存本次误差。由此把模糊推理实现成实时运行的参数自校正器。

9. 应用、发展与这套方法的边界

模糊控制并不只存在于课堂例题里。家电中的空调、洗衣机与微波炉,机电系统中的电梯群控、无刷电机和空间机械臂,以及水泥窑、蒸馏塔、pH 调节等过程控制,都曾大量使用模糊控制。它们的共同点是:对象非线性、工况变化大,但操作员又能说出一套定性经验。

发展主线可以压成四个节点:1965 年 Zadeh 提出模糊集,1972 年形成模糊控制原理,1980 年代开始走向预测与稳定性分析,1992 年 L. X. Wang 证明模糊系统是万能逼近器。此后研究逐渐走向 Fuzzy-PID、自适应模糊控制、专家模糊控制、神经模糊控制和多变量模糊控制。

它的强项是不依赖精确模型、规则可解释、工程实现简单;代价是规则数量会随输入维度迅速膨胀,而且规则和隶属函数仍需要人设计。下一讲的 TSK 与 ANFIS,就是为了让规则系统能从数据里自己调参数。

10. 本讲小结

人的定性经验
  → 隶属度把「有点」变成 [0,1]
  → max-min 合成把规则变成可计算推理
  → 模糊化 + 知识库 + 解模糊形成控制器
  → 二维 E/EC 规则表解决动态控制
  → 模糊自整定 PID 在线调整 kp/ki/kd

下一讲:把规则后件换成函数,得到可微、可训练的 TSK 模糊系统,再沿着 ANFIS 与状态空间模型走到 Mamba。

评论