输入语言变量e的取值:{负大,负中,负小,零,正小,正中, 正大},表示符号 {NB,NM,NS,ZE,PS,PM,PB}。语言值隶属度函数选择三角形,如图2(a)所示。
图2 a
输入语言变量de/dt的取值:{负大,负中,负小,零,正小,正中,正大},表示符号{NB,NM,NS,ZE,PS,PM,PB}。语言值隶属度函数选择三角如图2(b)所示。
图2 b
输出变量u的取值:{关闭,微开,小开,半开,小半开,大半开,全开},表示符号{CB,CM,CS,M,OS,OM,OB}。语言值隶属度函数选择梯形,如图2(c)所示。
图2 c
每个语言变量所取的语言值,所对应的语言值隶属函数都是交叉重叠的。初始设定时,可采用均匀等分的方式布置,然后再根据系统仿真或实际的控制结果进行合理的调整。
设计模糊控制器的第二步是引入模糊推断、逻辑实现和控制决策推断。而推断逻辑是由一组IF-THEN的控制规则组成的。这一组控制规则的形成于实际经验的总结。
从经验出发,用语言形式表达表达推理控制决策过程如下:
IF{温度设定值和回风温度偏差过大AND偏差有变大的趋势}THEN{电动水阀全开};
IF{温度设定值和回风温度偏差过小AND偏差有变小的趋势}THEN{电动水阀全闭};
类似于上述的一系列控制规则集中在控制规则表中。
在应用模糊控制器实际进行实时控制时,一定的偏差e和偏差变化率de/dt,对应的就有某一些IF-THEN控制规则生效,而这些生效的控制规则产生一个综合推断结论,并通过解模糊过程转换为一个确定的输出值,从而给定电动水阀的控制电压,对应于电动水阀的开度。
系统仿真
MATLAB中的模糊逻辑工具箱提供了大量的对输入、输出变量进行模糊化(隶属度函数)的函数(总共提供了11种隶属度函数),可以很方便的完成对变量的模糊化。
1 输入、输出变量的模糊化
图3所示的模糊控制系统为双输入单输出系统,输入为偏差e和偏差的变化率,输出为u,我们可根据前边给定的输入、输出变量的隶属度函数,在模糊逻辑控制箱添加隶属度函数就可以完成模糊变量的模糊化过程。
2 模糊控制规则
MATLAB中的模糊逻辑工具箱提供了规则库,将模糊控制规则添加到规则库即可。模糊控制规则是设计一个模糊控制器的关键,该规则给定的好坏将直接影响到所设计的模糊控制器的性能好坏。
3 反模糊化
MATLAB中的模糊逻辑工具箱提供反模糊化方法,我们选用其中的mom法,即可对所设计的模糊控制系统进行仿真。
4 仿真结果