智能控制——模糊控制
⭐⭐⭐⭐✰
1 问题描述
一、(1) 证明模糊集合运算满足对偶律$\overline{A\cup B}=\overline A\cap \overline B$,$\overline{A\cap B}=\overline A\cup \overline B$
(2)说明模糊集合运算不满足经典集合中的排中律$A\cup\overline A=X$,$A\cap\overline A=\varnothing$
二、考虑与专家控制作业中相同的无人水面艇(USV)航向跟踪控制系统,通过调节舵角$\delta$,使船舶航向 𝜓 能够跟踪时变的参考航向 $𝜓_{𝑟𝑒𝑓}(t)$,参考信号为以下两种:
1、阶跃响应:$\psi_{ref}=0.5\times 1(t)$
2、正弦跟踪:$\psi_{ref}=0.2sin(0.1t)$
(1)设计常规模糊控制器。
(2)将原系统模型转化为仿射非线性形式,设计针对仿射非线性系统的自适应模糊控制器。
(3)仿真与对比分析:在MATLAB/Simulink中仿真实现上述两个控制器,考虑以下三种扰动场景
a)无扰动:𝑑(𝑡)=0
b)存在确定性时变扰动:𝑑(𝑡)=0.1𝑠𝑖𝑛(0.1𝑡)
c)存在随机噪声:𝑑(𝑡)=𝑛(𝑡)(均值为0,方差为0.01的白噪声)
并比较两种控制器在不同场景下的跟踪精度和鲁棒性,讨论优势和局限性。
2 证明题
2.1 证明模糊集合运算满足对偶律
证明:$\overline{A\cup B}=\overline A\cap \overline B$
$$ \mu_{\overline{A\cup B}}=1-\mu_{A\cup B}=1-max\{\mu_A,\mu_B\}\\ \mu_{{\overline A}\cap \overline B}=min\{\mu_{\overline A},\mu_{\overline B}\}=min\{1-\mu_A,1-\mu_B\}=1+min\{-\mu_A,-\mu_B\}=1-max\{\mu_A,\mu_B\}=\mu_{\overline{A\cup B}}\\ $$证明:$\overline{A\cap B}=\overline A\cup \overline B$
$$ \mu_{\overline{A\cap B}}=1-\mu_{A\cap B}=1-min\{\mu_A,\mu_B\}\\ \mu_{{\overline A}\cup \overline B}=max\{\mu_{\overline A},\mu_{\overline B}\}=max\{1-\mu_A,1-\mu_B\}=1+max\{-\mu_A,-\mu_B\}=1-min\{\mu_A,\mu_B\}=\mu_{\overline{A\cap B}}\\ $$2.2 证明模糊集合运算不满足排中律、矛盾律
证明:不满足$A\cup\overline A=X$
$$ \mu_{A\cup\overline{A}}=max\{\mu_A,\mu_{\overline{A}}\}=max\{\mu_A,1-\mu_A\}=\mu_A\ or\ 1-\mu_A\neq1=\mu_X $$证明:不满足$A\cap\overline A=\varnothing$
$$ \mu_{A\cap\overline{A}}=min\{\mu_A,\mu_{\overline{A}}\}=min\{\mu_A,1-\mu_A\}=\mu_A\ or\ 1-\mu_A\neq0=\mu_{\varnothing} $$3 控制器设计
由上次专家控制得到的建模:$T\ddot{\psi}+KH(\dot{\psi})=K\delta+d(t)$,$H(\dot{\psi})=\alpha\dot{\psi}+\beta\dot{\psi}^3$ ,$T=2.0s,K=0.8s^{-1}、\alpha=1.0、\beta=0.5$

3.1 常规模糊控制器
控制器输出δ范围限制在$\delta\leq|0.5|$
由上次专家控制的规则有:
- 饱和控制:偏差很大时,打满舵,以求最快速度纠正。
- 增强控制:偏差中等且仍在变大,用中等舵角抑制其增长。
- 保守控制:偏差中等但已在缩小,用小舵角柔和纠正,防止超调。
- 精细控制:接近目标,启用类似PID的精细控制,平滑稳定。
- 微调控制:默认情况,施加一个微小恒定的纠正力。
分别定义三个变量的模糊子集:
- e={LP(偏差大且为正),MP(偏差中等且为负),SP(接近目标且为正),UN(默认情况),SP(接近目标且为负),MN(偏差中等且为负),LN(偏差大且为正)}
- ec={P(误差求导为正,N(误差求导为负)}
- u={LP(正方向满舵),MP(正方向中等舵角),SP(正方向小舵角),SSP(正方向精细控制),UN(默认情况),SSN(负方向精细控制),SP(负方向小舵角),MN(负方向中等舵角),LN(负方向大舵角)
首先设置u,范围[-0.5,0.5]。当满舵时结果尽量大概率地落在两端极限点处,可用gbellmf函数;其余都可用trimf函数,其中[-0.02,0.02]为默认情况,[0,0.1]为精细控制,[0.05,0.3]为小舵角,[0.15,0.5]为大舵角,0.5为满舵

然后设置e,范围[-1,1] 。参考专家控制的数据>0.5为大偏差,0.5<e<0.2为中等偏差,0.2<e<0.05为小偏差,e<0.05为默认情况

ec使用时重点是区分正负,因此设置为:

然后按照专家控制的规则制定模糊规则,共有14条
| ec\e | LN | MN | SN | UN | SP | MP | LP |
|---|---|---|---|---|---|---|---|
| P | LN | SN | SSN | UN | SSP | MP | LP |
| N | LN | MN | SSN | UN | SSP | SP | LP |

然后导出为fis文件,并且将模型中的控制器改为此控制器。常规模糊控制器建立完毕。
3.2 自适应模糊控制器
先转化为仿射非线性形式,令$x_1=\psi$,$\dot{x_1}=x_2=\dot{\psi}$,$\dot{x_2}=0.4x_2+0.2x_2^3+0.4u$
$$ \ddot{\psi}=0.4\dot{\psi}+0.2\dot{\psi}^3+0.4\delta\\ \begin{cases} \dot{x}_1 = x_2 \\ \dot{x}_2 = 0.4x_2 + 0.2x_2^3 + 0.4u \end{cases} $$- 状态向量$x=[x_1,x_2]^T$
- $f(x)=[x_2,0.4x_2+0.2x_2^3]^T$
- $g(x)=[0,0.4]^T$
- $e=[x_1-y_m,x_2-\dot{y_m}]^T$
接下来需要用模糊系统逼近$\hat f(x)$和$\hat g(x)$,其中$\hat f(x|\theta_f)=\theta_f^T\xi(x)$,$\hat g(x|\theta_g)=\theta_g^T\eta(x)$
两个参数由自适应律$\dot{\theta_f}=-\gamma_1e^TPb\xi(x)$,$\dot{\theta_g}=-\gamma_2e^TPb\eta(x)u$实时更新
控制律为$u=\frac{1}{\hat g(x|\theta_g)}[-\hat f(x|\theta_f)+\ddot{y_m}+K^Te]$
先求K:
对误差矩阵有$\dot{e}=Ae$,$A=\begin{bmatrix} 0 & 1 \ -k_1 & -k_2 \end{bmatrix}$,为让误差最终稳定,A的极点都应该在复平面左侧,A的特征方程$s^2+k_2s+k_1=0$,假设期望极点为$-1,-2$,有$k_2=3,k_1=2$
再设γ:$\gamma_1=10,\gamma_2=5$
再解P:
$\Lambda=\begin{bmatrix} 0 & 1 \ -3 & -2 \end{bmatrix},b=\begin{bmatrix} 0 \ 1 \end{bmatrix}$,P为一个正定矩阵满足$\Lambda^TP+P\Lambda=-Q$,Q也是一个正定矩阵,令$Q=\begin{bmatrix} 12 & 0 \ 0 & 4 \end{bmatrix}$
解出$P=\begin{bmatrix} 10 & 2 \ 2 & 2 \end{bmatrix}$,$Pb=\begin{bmatrix} 2 \ 2 \end{bmatrix}$
令$\theta_f$和$\theta_g$中初始值都为0.1 ,两个模糊基函数$\xi(x)=\eta(x)$。由下图构建自适应控制器

首先确定各个模块的输入输出:
- 自适应律:输入为e,ec,$\xi(x)$,$\eta(x)$,u;输出为$\dot{\theta_f}$,$\dot{\theta_g}$
- 模糊基函数:输入为$x_1$,$x_2$;输出为$\xi(x)$,$\eta(x)$
- 积分器:给$\dot{\theta_f}$,$\dot{\theta_g}$积分,初始值设定均为0.1
- 模糊控制器:输入为${\theta_f}$,${\theta_g}$,$\xi(x)$,$\eta(x)$,e,ec,$\ddot{ym}$;输出为u
均选择用matlab function模块
模糊集函数:$\xi(x)=\eta(x)$,e和ec均选择范围为[-1,1],隶属函数如图所示,模块代码如下,输出的$\xi(x)$是个25×1的列向量。

1 | |
自适应律模块:将$Pb=\begin{bmatrix} 2 \ 2 \end{bmatrix}$,$\gamma_1=10,\gamma_2=5$都代入
1 | |
控制律模块:将$k_2=3,k_1=2$代入
1 | |
积分器模块:针对$\dot{\theta_f}$,$\dot{\theta_g}$

然后将各输入输出连接起来有

其中右上角的Fuzzy_Basis是模糊基函数,左上角adapted是自适应律,左下角controller是控制律
4 控制器响应
设置ψ初值为0,分别给不同的跟踪信号和扰动信号
4.1 常规模糊控制器
4.1.1 $\psi_{ref}=0.5\times 1(t)$
当无扰动:

当扰动为𝑑(𝑡)=0.1𝑠𝑖𝑛(0.1𝑡)

当扰动为𝑑(𝑡)=𝑛(𝑡)(均值为0,方差为0.01的白噪声)

4.1.2 $\psi_{ref}=0.2sin(0.1t)$
当无扰动:

当扰动为𝑑(𝑡)=0.1𝑠𝑖𝑛(0.1𝑡)

当扰动为𝑑(𝑡)=𝑛(𝑡)(均值为0,方差为0.01的白噪声)

4.2 自适应模糊控制器
4.1.1 $\psi_{ref}=0.5\times 1(t)$
当无扰动

当扰动为𝑑(𝑡)=0.1𝑠𝑖𝑛(0.1𝑡)

当扰动为𝑑(𝑡)=𝑛(𝑡)(均值为0,方差为0.01的白噪声)

4.1.2 $\psi_{ref}=0.2sin(0.1t)$
当无扰动

当扰动为𝑑(𝑡)=0.1𝑠𝑖𝑛(0.1𝑡)

当扰动为𝑑(𝑡)=𝑛(𝑡)(均值为0,方差为0.01的白噪声)

5 两者对比
对常规模糊控制器,其在无干扰时对阶跃和正弦参考信号都能实现较好的追踪效果,追踪精度都较高,但是鲁棒性差,无论是确定的正弦扰动还是随机的噪声扰动,其响应均出现了振荡情况,对阶跃信号尤为强烈,虽然响应均值大概在0.5处,但是振荡相当剧烈,对正弦干扰几乎完全受其影响。
对自适应模糊控制器,对阶跃和正弦参考信号追踪精度都相当高,两种干扰类型都没能使其产生振荡。对阶跃信号不同的干扰类型的影响的只有超调量,对正弦信号噪声干扰的影响只是使其略微不平滑,大致上响应结果是精度非常高的,鲁棒性非常强。
常规模糊控制器的优势是结构简单,精无扰动时精度较高,通过修改不同的隶属函数和规则来调整控制的效果,但是控制鲁棒性很差,而且由于定义隶属函数时需要事先确定好输入和输出量的范围,否则超出范围会出现失控的情况,并且还需要确定什么样的范围对于什么样的模糊子集,这种具体数值的对应关系是要实现研究被控对象得到的,如果对于一个输入输出量范围不清楚的系统,不适合用此控制器。
自适应模糊控制器,精度高,鲁棒性极强,但是缺点是结构非常复杂,其模糊基处理也需要事先了解输入的范围,但是模糊子集对应关系不必了解,通过调整相关参数如$K,\gamma,P,Q,b$等来调整控制效果,而且运算时还需要注意$\hat g(x|\theta_g)$不能为0,u不能为负等情况,需要进行一定的限幅或者滤波处理。适用于大部分系统,无论是线性还是非线性,无论系统的$f,g$是否已知,都可以直接使用,因为其可以根据被控对象自适应调节参数。