1.软件版本

matlab2013b

2.本算法理论知识

【模糊控制器】基于simulink的模糊控制器设计_条件语句

 

    这里按模糊控制器的基本工作原来进行距离说明,这里假设这个系统是一个温度控制系统。

第一:模糊化过程

表1 模糊集的隶属度函数

误差e

-50

-30

-15

-5

0

5

15

30

50

误差率de

-150

-90

-30

-10

0

10

30

90

150

控制u

-64

-16

-4

-2

0

2

4

16

64

量化等级

-4

-3

-2

-1

0

1

2

3

4

状态变量

相关的隶属度函数

PB

0

0

0

0

0

0

0

0.35

1

PS

0

0

0

0

0

0.4

1

0.4

0

ZE

0

0

0

0.2

1

0.2

0

0

0

NS

0

0.4

1

0.4

0

0

0

0

0

NB

1

0.35

0

0

0

0

0

0

0

模糊规则:

模糊控制规则实质上是将操作员的控制经验加以总结而得出一条条模糊条件语句的集合。确定模糊控制规则的原则是必须保证控制器的输出能够使系统输出响应的动静态特性达到最佳。

这里举的例子,所满足的规则为:

规则1:如果误差e是NB、且误差变化de是PB,则控制U为PB;

规则2:如果误差e是NB、且误差变化de是PS,则控制U为PB;

规则3:如果误差e是NB、且误差变化de是ZE;则控制U为PB;

规则4:如果误差e是NB、且误差变化de是NS,则控制U为PB;

规则5:如果误差e是NS、且误差变化de是ZE,则控制U为PS;

规则6:如果误差e是NS、且误差变化de是PS,则控制U为ZE;

规则7:如果误差e是NS、且误差变化de是PB,则控制U为NS;

规则8:如果误差e是ZE、且误差变化de是ZE,则控制U为ZE;

规则9: 如果误差e是ZE、且误差变化de是PS,则控制U为NS;

规则10:如果误差e是ZE、且误差变化de是PB,则控制U为NB。

规则 11:如果误差e是 NS、且误差变化 de是 NS,则控制 U为 PS;

规则 12:如果误差e是 NS、且误差变化 de是 NB,则控制 U为 PB;

规则 13:如果误差e是 ZE、且误差变化 de是 NS,则控制 U为 PS;

规则 14:如果误差e是 ZE、且误差变化 de是 NB,则控制 U为 PB。

从而得到模糊规则表为:

U


NB

NS

ZE

PS

PB

NB

PB

PB

PB

PS

NB

NS

PB

PS

PS

ZE

NB

ZE

PB

PS

ZE

NS

NB

PS

PB

ZE

NS

NS

NB

PB

PB

NS

NB

NB

NB

第二:模糊推理过程

设系统误差e的量化值为l、误差变化de的量化值为-2 。

可得非零的隶属度函数为:

误差e      :μZE(1)= 0.2      μps(1)= 0.4;

误差变化de :    μNS(-2)= 1

只有以下两条规则有效

如果误差e是ZE、且误差变化de是NS,则控制U为PS;

如果误差e是PS、且误差变化de是NS,则控制U为ZE;

第三:清晰化过程

由极大极小推理法可得控制量的输出模糊集为

μps(1,-2)=min(0.2,1)= 0.2

μZE(1,-2)=min(0.4,1)= 0.4

以上就是模糊控制系统的工作过程。

3.部分源码

这里,根据课题中的对输入和输出的要求,均为定义NB,NS,Z,PS,PB,这里我们将使用的隶属函数为trimf类型的函数。 隶属函数如下所示:

【模糊控制器】基于simulink的模糊控制器设计_linq_02

即这里选择的是NB,NS,Z,PS,PB这五个类型的隶属函数。

    这里规则表为:


NB

NS

Z

PS

PB

NB

NB

NB

NB

NS

Z

NS

NB

NB

NS

Z

PS

Z

NB

NS

Z

PS

PB

PS

NS

Z

PS

PB

PB

PB

Z

PS

PB

PB

PB

根据倒立摆的基本结构:

 

【模糊控制器】基于simulink的模糊控制器设计_c#_03

在实际中工作中,角度1会来回抖动进行调整,角度2则相对稳定在一个位置。从而达到平衡。

    我们建立如下的模型:

【模糊控制器】基于simulink的模糊控制器设计_模糊控制器_04

4.仿真结论

通过仿真可以看到,其模糊控制的误差和误差变化率为:

【模糊控制器】基于simulink的模糊控制器设计_c#_05

角度1和角度2的仿真如下所示:

【模糊控制器】基于simulink的模糊控制器设计_控制系统_06

隶属函数如下所示:

【模糊控制器】基于simulink的模糊控制器设计_控制系统_07

Surface如下所示:

【模糊控制器】基于simulink的模糊控制器设计_linq_08

仿真结果如下所示:

【模糊控制器】基于simulink的模糊控制器设计_控制系统_09

通过仿真,最后可以看到本系统最后的误差为-0.33,误差的变化率为0。

【模糊控制器】基于simulink的模糊控制器设计_条件语句_10

通过仿真,可以得到对比控制器的输出结果如下所示:

【模糊控制器】基于simulink的模糊控制器设计_模糊控制器_11

从上面的仿真结果可知,通过模糊控制器之后的信号的收敛速度快,且几乎没有超调量。

A28-04