【笔记】智能控制笔记 - 模糊控制部分

智能控制的背景

智能控制的研究对象

  1. 不确定性的模型:智能控制适合于不确定性对象的控制,其不确定性包括模型的未知性和模型结构和参数变化的不确定性。
  2. 高度的非线性:采用智能控制的方法可以较好地解决非线性系统的控制问题。
  3. 复杂的任务要求:相对于传统控制能实现更复杂的任务。

智能控制的概念

美籍华人学者傅京逊提出了二元论:

$$ IC=AC{\cap}AI $$

G.N.Saridis提出了三元论,即:

$$ IC=AC{\cap}AI{\cap}OR $$

其中IC为智能控制(Intelligent Control);AI为人工智能(Artificial Intelligence);AC为自动控制(Automatic Control)

智能控制的发展:

1-2.jpg

智能控制的重要分支:

模糊控制神经网络以及遗传算法

智能控制的特点:

  1. 学习功能:智能控制器通过从外界环境所获得的信息进行学习,不断地积累知识,使系统的控制性能得到改善。
  2. 适应功能:智能控制器具有从输入到输出的映射关系,可实现不依赖于模型的自适应控制,当系统某一部分出现故障时,也能进行控制。
  3. 自组织功能:智能控制器对复杂的分布式信息具有自组织和协调的功能,当出现多目标冲突时,它可以在任务要求的范围内自行决策,主动采取行动。
  4. 优化能力:只能控制器能够通过不断优化控制参数和寻找控制器的最佳结构形式获得整体最优的控制性能。

智能控制的应用:

  1. 在机器人控制中的应用
  2. 在过程控制中的应用
    (考试考的话自行补充)

模糊控制理论基础

模糊控制是以模糊集合理论、模糊语言变量及模糊推力为基础的一类控制方法。其具有如下特点:

  1. 模糊控制不需要被控对象的数学模型。模糊控制是以人对被控对象的控制经验为依据而设计的控制器,无需知道被控对象的数学模型。
  2. 模糊控制是一种反映人类智慧的职能控制方法。模糊控制采用人类思维中的模糊量,如“高”、“低”、“大”、“小”,控制量由模糊推力导出。
  3. 模糊控制易于被人类接受。模糊控制的核心控制规则是用语言来表示的,容易理解。
  4. 鲁棒性和适应性好。通过专家经验设计的模糊规则可以对复杂的对象进行有效的控制。

模糊集合

模糊集合的三要素:论域元素隶属函数

特征函数和隶属函数
对于一个由0到1之间连续实数组成的集合:

$$ A={x,x{\in}R,0{\leq}x{\leq}1.0} $$

对于以上集合只有两种可能:属于A或者不属于A,它是非模糊的,即:

$$ \mu}_A}(x)= \begin{equation} \left\{ \begin{aligned} 1{\qquad}x{\in}A\\ 0{\qquad}x{\notin}A \end{aligned} \right. \end{equation} $$

为了表示模糊概念,需要引入模糊集合和隶属度函数的概念,将隶属度函数定义为:

$$ {{\mu}_A}(x)= \begin{equation} \left\{ \begin{aligned} 1{\qquad}x{\in}A\\ (0,1){\qquad}x{\in}A的程度\\ 0{\qquad}x{\notin}A \end{aligned} \right. \end{equation} $$

式中$A$为模糊集合,${{\mu}_A}(x)$表示元素$x$属于模糊集合$A$的程度,称其为$A$的隶属度。

模糊集合的表示
模糊集合$A$由离散元素构成,表示为:
Zedeh表示法

$$ A={{\mu}_1}/{x_1}+{{\mu}_2}/{x_2}+{\ldots}+{{\mu}_i}/{x_i}+{\ldots} $$

序偶表示法

$$ A={({{\mu}_1}/{x_1}),({{\mu}_2}/{x_2}),{\ldots},({{\mu}_i}/{x_i}),{\ldots}} $$

模糊集合$A$由连续函数构成,此时$A$表示为:

$$ A=\int {{\mu}_A}(x)/x $$

模糊集合的运算

模糊集合的基本运算
空集:模糊集合$A$的空集${\varnothing}$为普通集,它的隶属度为0,即$A={\varnothing}{\Leftrightarrow}{{\mu}_A}(u)=0$
(注:模糊集合的空集不是非空集合,只是对应的隶属度为0)
全集:模糊集合$A$的全集$E$为普通集,它的隶属度为1,即$A=E{\Leftrightarrow}{{\mu}_A}(u)=1$
等集:两个模糊集$A$和$B$,若对于所有元素$u$,它们的隶属度函数相等,则$A$和$B$也相等,即$A=B{\Leftrightarrow}{{\mu}_A}(u)={{\mu}_B}(u)$
补集:若$\overline{A}$为$A$的补集,则$\overline{A}{\Leftrightarrow}{{\mu}_{\overline{A}}}(u)=1-{{\mu}_A}(u)$
子集:若$B$为$A$的子集,则$B{\subseteq}A{\Leftrightarrow}{{\mu}_B}(u){\leq}{{\mu}_A}(u)$
并集:若$C$为$B$为$A$的并集,则$C=A{\cup}B$
一般地,有$A{\cup}B{\Leftrightarrow}{{\mu}_{A{\cup}B}}(u)=max({{\mu}_A}(u),{{\mu}_B}(u))={{\mu}_A}(u){\wedge}{{\mu}_B}(u)$
交集:若$C$为$B$为$A$的交集,则$C=A{\cap}B$
一般地,有$A{\cap}B{\Leftrightarrow}{{\mu}_{A{\cap}B}}(u)=min({{\mu}_A}(u),{{\mu}_B}(u))={{\mu}_A}(u){\vee}{{\mu}_B}(u)$
模糊运算的基本性质
3-1.jpg
模糊算子
交运算算子3个:

$$ {{\mu}_C}(x)=min\{{{\mu}_A}(x),{{\mu}_B}(x)\}\\ {{\mu}_C}(x)={{\mu}_A}(x){\cdot}{{\mu}_B}(x)\\ {{\mu}_C}(x)=max\{0,{{\mu}_A}(x),{{\mu}_B}(x)-1\} $$

并运算算子3个:

$$ {{\mu}_C}(x)=max\{{{\mu}_A}(x),{{\mu}_B}(x)\}\\ {{\mu}_C}(x)={{\mu}_A}(x)+{{\mu}_B}(x)-{{\mu}_A}(x){\cdot}{{\mu}_B}(x)\\ {{\mu}_C}(x)=min\{1,{{\mu}_A}(x)+{{\mu}_B}(x)\} $$

平衡算子不会考,自行了解。

隶属函数

典型的隶属函数
典型的隶属函数有11种,在模糊控制中常用的有以下6种:
高斯(Guass)型

$$ f(x,{\sigma},c)=exp(\frac{(x-c)^2}{2{\sigma}^{2b)) $$

广义钟型

$$ f(x,a,b,c)=\cfrac{1}{1 + \left|\frac{x-c}{a}\right|^{2b}} $$

S型

$$ f(x,a,c)=\frac{1}{1+exp(-a(x-c))} $$

梯形型

$$ f(x,a,b,c,d) = \begin{cases} 0, & x{\leq}a \\ \frac{x-a}{b-a}, & a{\leq}x{\leq}b \\ 1, & b{\leq}x{\leq}c \\ \frac{d-x}{d-c}, & c{\leq}x{\leq}d \\ 0, & x{\ge}d \\ \end{cases} $$

三角形型

$$ f(x,a,b,c,d) = \begin{cases} 0, & x{\leq}a \\ \frac{x-a}{b-a}, & a{\leq}x{\leq}b \\ \frac{c-x}{c-b}, & b{\leq}x{\leq}c \\ 0, & x{\ge}c \\ \end{cases} $$

Z型
不是单值函数,所以没有给出函数表达式,形状如“Z”
3-2.jpg
最常用的是三角形、Sigmoid和Z三种,三角形用于中间,Sigmoid和Z用于两端。

模糊关系及其运算

模糊矩阵的运算与模糊关系
相等:若$a_{ij}=b_{ij}$,则$A=B$
包含:若$a_{ij}{\leq}b_{ij}$,则$A{\subseteq}B$
并运算:若$a_{ij}=a_{ij}{\vee}b_{ij}$,则$C=(c_{ij})$为$A$和$B$的并,记为$C=A{\cup}B$
交运算:若$a_{ij}=a_{ij}{\wedge}b_{ij}$,则$C=(c_{ij})$为$A$和$B$的交,记为$C=A{\cap}B$
补运算:若$c_{ij}=1-a_{ij}$,则$C=(c_{ij})$为$A$的补,记为$C=\overline{A}$

模糊关系的合成
$R$和$S$分别为$U{\times}V$和$V{\times}W$上的模糊关系,而$R$和$S$的合成是$U{\times}W$上的模糊关系,记为$R{\circ}S$,其隶属度函数为:

$$ {\mu}_{R{\circ}S}={\vee}_{v{\in}V}\{{\mu}_R(u,v) \wedge {\mu}_S(v,w)\},u{\in}U,w{\in}W $$

举个栗子:
$Given\ two\ fuzzy\ matrix$

$$ \begin{aligned} A=\begin{bmatrix} 0.8 & 0.7\\ 0.5 & 0.3 \end{bmatrix}{\qquad}and{\qquad} B=\begin{bmatrix} 0.2 & 0.4\\ 0.6 & 0.9 \end{bmatrix}\\ \end{aligned} $$

$Then$

$$ \begin{aligned} A{\circ}B=\begin{bmatrix} 0.6 & 0.7\\ 0.3 & 0.4 \end{bmatrix} \end{aligned}\\ $$

模糊推理

常用的有两种模糊推理语句:

$$ If\ A\ then\ B\ else\ C\\ If\ A\ and\ B\ then\ C $$

常用的推理方法有Zadeh法Mamdani法两种。
模糊推理语句“$If\ A\ and\ B\ then\ C$”蕴含的关系为($A {\wedge} B {\rightarrow} C$),根据Mamdani推理法其关系矩阵为:

$$ R=(A{\times}B)^{T1} {\circ} C $$

据此可以求得给定输入$A_1$和$B_1$对应的输出$C_1$,即

$$ C_1=(A_1{\times}B_1)^{T2} {\circ} R $$

以下的例题有助于理解:
3-10.jpg

模糊控制

模糊控制的基本原理

模糊控制原理
微机经中断采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号$E$作为一个输入量,将其模糊化为一个模糊向量$e$,再由模糊关系$R$根据合成规则进行决策,得到模糊控制量$u$,即

$$ u=e{\circ}R $$

4-1.jpg
对于一个模糊输入变量$e$,其模糊子集通常可以按一下方式划分:
$e=\{负大,负小,零,正小,正大\}={NB,NS,ZO,PS,PB}$
$e=\{负大,负中,负小,零,正小,正中,正大\}={NB,NM,NS,ZO,PS,PM,PB}$

$$ e=\{负大,负中,负小,零负,零,零正,正小,正中,正大\}=\\ {NB,NM,NS,NZ,ZO,PZ,PS,PM,PB} $$

最后一种划分用三角形隶属函数表示如下:
4-3.jpg
规则库(rule Base,RB)是基于专家知识和经验的一种语言表达形式,如果某控制系统的输入变量有e(误差)和ec(误差变化),他们对应的语言变量为E和EC,可以给出一组模糊规则:

$$ R_1:\ IF\ E\ is\ NB\ and\ EC\ is\ NB\ then\ U\ is\ PB $$

即误差e为负大,误差变化ec为负大时,输出为正大
决策表可表示为

$$ C=(A{\times}B){\circ}R $$

模糊控制器的结构
(此处会考概念题)
4-5.jpg

模糊控制系统的设计

1.确定模糊控制器的结构,最常用的是二维,即e和ec作为输入量
2.定义输入、输出模糊集。对于输入和控制量的模糊集及其论域定义。
3.定义输入、输出的隶属函数。对模糊变量赋值,确定论域内元素对模糊变量的隶属度。
4.建立模糊控制规则
5.建立模糊规则控制表。即对模糊控制规则的组合,常见的格式如下:
4-5-t.jpg
6.模糊推理。通过模糊推理得出控制量。
7.反模糊化。常见的反模糊化方法有最大隶属度重心法加权平均法。考试只考最大隶属度法。顾名思义,在规则组合中选择隶属度最大的一项作为输出结果。
详细的建模过程可以参照 刘金琨-智能控制(第4版)Chapter4.4中对于洗衣机模糊控制的应用实例。
关于仿真,在Matlab的command里键入“fuzzy”可打开模糊工具箱
4-6.jpg
4-7.jpg
规则的添加在 Edit -> Rules 里
隶属度函数的修改双击右边的函数图像即可。
如果不用工具箱,也可以自己自行编写,下面是一个典型的编写例子:

a=newfis('new_fuzzy_control_project');

%误差e
a=addvar(a,'input','e',[-3,3]);            
a=addmf(a,'input',1,'NB','zmf',[-3,-1]);
a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]);
a=addmf(a,'input',1,'Z','trimf',[-2,0,2]);
a=addmf(a,'input',1,'PS','trimf',[-1,1,3]);
a=addmf(a,'input',1,'PB','smf',[1,3]);

%控制量u
a=addvar(a,'output','u',[-4,4]);          
a=addmf(a,'output',1,'NB','zmf',[-4,-1]);
a=addmf(a,'output',1,'NS','trimf',[-4,-2,1]);
a=addmf(a,'output',1,'Z','trimf',[-2,0,2]);
a=addmf(a,'output',1,'PS','trimf',[-1,2,4]);
a=addmf(a,'output',1,'PB','smf',[1,4]);

%模糊规则
rulelist=[1 1 1 1;         
          2 2 1 1;
          3 3 1 1;
          4 4 1 1;
          5 5 1 1];
          
a=addrule(a,rulelist);

%反模糊化,此处用的是最大隶属度平均法
a1=setfis(a,'DefuzzMethod','mom');

%计算输出结果
for i=1:1:7
    e(i)=i-4;
    Ulist(i)=evalfis([e(i)],a2);
end
Ulist=round(Ulist)

u=evalfis([e],a2)

自适应模糊控制

自适应模糊控制是指具有自适应学习算法的模糊逻辑系统,其学习算法是依靠数据信息来调整模糊逻辑系统的参数,且可以保证控制系统的稳定性。
自适应模糊控制有两种不同的形式:一种是直接自适应模糊控制,即根据实际系统性能与理想性能之间的偏差直接涉及模糊控制器;另一种是间接自适应模糊控制,即通过在线模糊逼近获得控制对象的模型,然后根据所得模型在线设计控制器。

万能逼近定理

令$f(x)$为一二维模糊系统,$g(x)$为待逼近的未知函数,如果$g(x)$在$U=[{\alpha}_1,{\beta}_1]{\times}[{\alpha}_2,{\beta}_2]$上是连续可微的,模糊系统的逼近精度为:

$$ \lVert{g-f}\rVert_{\infty}\ {\leq}\ \lVert\frac{\partial g}{\partial x_1}\rVert_{\infty}\ h_1\ +\ \lVert\frac{\partial g}{\partial x_2}\rVert_{\infty}\ h_2 $$

其中

$$ h_i=max_{1{\leq}j{\leq}N_i-1} \left|e^{j+1}_i-e^j_i \right|\ (i=1,2) $$

由上式可知:假设$x_i$的模糊集的个数为$N$,其变化范围的长度为$L_i$,则模糊系统的逼近精度满足$h_i=\frac{L_i}{N_i-1}$,即$N_i=\frac{L_i}{N_i}+1$。

为了方便理解,举以下的一个栗子:
针对一维函数$g(x)$,设计一个模糊系统$f(x)$,使之一致的逼近定义在$U=[-3,3]$上的连续函数$g(x)=sin(x)$,所需精度为${\epsilon}=0.2$,即$sup_{x{\in}U}\left|g(X)-f(X)\right|<{\epsilon}$。
由定义可知$\lVert\frac{\partial g}{\partial x}\rVert_{\infty}\ =\lVert{cos(x)}\rVert_{\infty}\ =1$,而$\lVert{g-f}\rVert_{\infty}\ {\leq}\ \lVert\frac{\partial g}{\partial x}\rVert_{\infty}\ h_\ =h$,故取$h{\leq}0.2$满足精度需求。取$h=0.2$,则模糊集的个数为$N=\frac{L}{h}+1=31$。
在$U=[-3,3]$上定义31个具有三角形隶属度的模糊集$A^j$,所涉及的模糊系统为:

$$ f(x)=\frac{\sum_{j=1}^{31} sin(e^j){\mu}^j_A(x)}{\sum_{j=1}^{31} {\mu}^j_A(x)} $$

Matlab实现如下:

%模糊逼近
clear all;
close all;

L1=-3;L2=3;
L=L2-L1;

h=0.2;
N=L/h+1;
T=0.01;

x=L1:T:L2;
for i=1:N
    e(i)=L1+L/(N-1)*(i-1);
end

c=0;d=0;
for j=1:N
   if j==1
        u=trimf(x,[e(1),e(1),e(2)]);      %The first MF
   elseif j==N
        u=trimf(x,[e(N-1),e(N),e(N)]);  %The last MF
    else
       u=trimf(x,[e(j-1),e(j),e(j+1)]);
   end
   hold on;
   plot(x,u);
   c=c+sin(e(j))*u;
   d=d+u;
end
xlabel('x');ylabel('Membership function');

for k=1:L/T+1
    f(k)=c(k)/d(k);
end
    
y=sin(x);
figure(2);
plot(x,f,'b',x,y,'r');
xlabel('x');ylabel('Approaching');
figure(3);
plot(x,f-y,'r'); 
xlabel('x');ylabel('Approaching error');

隶属函数、模糊逼近以及逼近误差如下:
5-1.jpg
5-2.jpg
5-3.jpg

简单的自适应模糊控制

这一块很难理解,但为了考试尝试着边背变理解吧。
假设有一个机械系统,动力学方程如下:

$$ \ddot{\theta}=f({\theta},\dot{\theta})+u $$

式中${\theta}$为角度,$u$为控制输入。
取$f(x)=f(x_1,x_2)=f({\theta},\dot{\theta})$,写成状态方程的形式为

$$ \dot{x_1}=x_2\\ \dot{x_2}=f(x)+u $$

式中,$f(x)$为未知函数。
位置指令为$x_d$,则误差及其变化率为

$$ e=x_1-x_d,\ \dot{e}=x_2-\dot{x_d} $$

定义误差函数为

$$ s=ce+\dot{e},\ c>0 $$

$$ \dot{s}=c\dot{e}+\ddot{e}=c\dot{e}+\dot{x_2}-\ddot{x_d}=c\dot{e}+f(x)+u-\ddot{x_d} $$

可见,如果$s{\rightarrow}0$,则$e{\rightarrow}0$且$\dot{e}{\rightarrow}0$。
由于模糊系统具有万能逼近特性,以$\hat{f}(x|{\theta})$来逼近$f(x)$,针对模糊系统系统输入$x_1$和$x_2$分别设计5个模糊集,共25条模糊规则。
对变量$x_i(i=1,2)$定义$p_i$个模糊集合$A^{l_i}_i(l_i=1,2,3,4,5)$
采用$\prod_{i=1}^N p_i=p_1{\times}p_2=25$条模糊规则来构造模糊系统$\hat{f}(x|{\theta})$,则第$j$条模糊规则为

$$ R^{(j)}:\ IF\ x_1\ is\ A^{l_1}_1\ and\ x_2\ is\ A^{l_2}_1\ THEN\ \hat{f}\ is\ B^{l_1l_2} $$

采用乘积推理机实现前提推理,得到结果$\prod_{i=1}^2 {\mu}_{A^{l_i}_i}(x_i)$
采用单值模糊器求$y^{-l_1l_2}_f$,即隶属函数最大值$1.0$对应的横坐标值$(x_1,x_2)$的函数值$f(x_1,x_2)$
采用乘积推理机实现前提与结论的推理,结果为$y^{-l_1l_2}_f(\prod_{i=1}^2 {\mu}_{A^{l_i}_i}(x_i))$
对所有的模糊规则进行并运算,则模糊系统的输出为

$$ \sum_{l_1=1}^5\sum_{l_2=1}^5\ y^{-l_1l_2}_f(\prod_{i=1}^2 {\mu}_{A^{l_i}_i}(x_i)) $$

采用平均解模糊器,得到输出为

$$ \hat{f}(x|q)=\frac{\sum_{l_1=1}^5\sum_{l_2=1}^5\ y^{-l_1l_2}_f(\prod_{i=1}^2 {\mu}_{A^{l_i}_i}(x_i))}{\sum_{l_1=1}^5\sum_{l_2=1}^5\ (\prod_{i=1}^2 {\mu}_{A^{l_i}_i}(x_i))} $$

Tags:考试智能控制
上一篇
下一篇
留言请到 主站