这种方法以微处理器构成的模糊控制器为核心,以模拟人脑的思维方式为基本出发点,不需要我们对控制对象准确建模,就能很好的解决非线性、大滞后环节、变参数对象的控制问题[1]
依靠操作人员的经验来建立合适的模糊控制算法,就能使难控制的系统达到比较好的控制效果
影响温度变化的因素很多,如环境温度的高低,冰箱本身的容积,开冰箱门的次数,每次开门的时间,冰箱中食物的多少,以及食物的种类和性质等等
所以要想建立电冰箱温度变化的精确数学模型是很困难的
因此可采用模糊控制解决
最后经精确化计算得到的控制值去控制被控对象
我们设定电冰箱温度升降范围-15℃~+15℃之间变化,而输入变化范围为-15℃~+15℃,输入变化率变化范围为-6~6之间
将它分为6档,并和模糊变量负大,负小,负零,正零,正小,正大一一对应,所以K1=6/15=0.24,K2=6/6=1,K3=15/6=2.5
并保存为wen.fis本例中3个变量的隶属函数,它们的语言量值分别为:
输入变化率DE语言变量值和输出U的语言变量值同输入变量E;输入隶属度函数如图2.1所示 ,输出隶属度函数如图2.2所示

图2.4仿真框图
模糊关系为R=E X DE X U; 模糊推理采用U =(E X DE )o R;
可以看出,仿真输出曲线超调量有点大,但系统反应较快即调节时间短,系统也比较稳定
单从仿真来看模糊控制切实可行
这是一款支持实时仿真、嵌入式跟踪、在系统编程和在应用编程的ARM7TDMI-STMCPU微处理器,ARM7TDMI是目前低端的ARM核
微处理器Lpc2214对代码规模有严格的控制,这种可以使用16位Thumb的模式将代码规模降低超过30%,而性能的损失却很小;由于这款微处理器具有很高的代码处理速度、极低的功耗、多个32 位定时器、8路10位的ADC、PWM输出以及多达9个外部中断等特点;微处理器芯片自带16K字节的片内静态RAM和256K字节的片内闪存Flash,都可以用来存储数据或代码;Lpc2214是144脚封装,是一款总线开放的微处理器,允许直接连接并行存储芯片;由于内置了串行通信接口,它也适合于通信和各种类型的应用
系统框图如图3.1所示
因此可以针对输入的不同组合离线计算出相应的控制量,从而组成一张控制表,实际控制时只要直接查这张控制表即可,在线的运算量是很少的
在LPC中如何实现控制规则表是整个系统的关键所在,本系统采用二维矩阵形式存储控制规则表,假设二维矩阵为control[13][13]
在LPC2214只能存储数字量,故在内存中模糊语言用十六进制表示:输入量E
DE量化后分别为x
y
且x
y={-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6}
在ARMz中则对应a
b={0
1
2
3
4
5
6
7
8
9
10
11
12}
假设E量化后x=-5
y=2
在ARM中对应a=1
b=8查表时只需查control[1][8]则这样表示无论从数据管理还是从查表方便而言,都具有极大的优势
这种离线计算采用MATLAB计算出控制表,然后以二维矩阵形式存储在ROM中,供在线查表

设模糊集合用A表示,则有3.2.1
本设计中隶属度函数采用离散方法,也就是连续隶属度简单离散化
解模糊用的仍然是重心法,只不过在求模糊控制规则表时,已用到这一步
控制主程序如图4.1所示,模糊控制程序如图4.2所示
而且借助于MATLAB的模糊工具箱(fuzzy logic)和simulink仿真可以快速方便地设计仿真模糊控制系统
尤其是在家用电器的控制中模糊控制取得了越来越来广泛的应用,具有重大的实用意义