首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM电冰箱模糊控制系统的仿真与设计

基于ARM电冰箱模糊控制系统的仿真与设计

  本文主要介绍基于MATLAB的模糊控制系统设计、仿真以及模糊控制系统在ARM上的实现算法。MATLAB的模糊工具箱和simulink 提供了强大的功能,可以方便快速地设计模糊控制系统及其仿真。在ARM芯片上实现模糊控制算法,模糊控制表采用新方法二维矩阵存储,以便方便查询和管理,更好地满足温度调节的实时性。


      1 引 言

     模糊控制理论的提出,为我们提供了一种新的控制方法。这种方法以微处理器构成的模糊控制器为核心,以模拟人脑的思维方式为基本出发点,不需要我们对控制对象准确建模,就能很好的解决非线性、大滞后环节、变参数对象的控制问题[1]。依靠操作人员的经验来建立合理的模糊控制算法,就能使难控制的系统达到比较好的控制效果。

     在电冰箱的控制中,温度是主要的控制对象,控制的好就有显著的节能效果。影响温度变化的因素很多,如环境温度的高低,冰箱本身的容积,开冰箱门的次数,每次开门的时间,冰箱中食物的多少,以及食物的种类和性质等等。所以要想建立电冰箱温度变化的精确数学模型是很困难的。因此可采用模糊控制解决。

     在本设计中,模糊控制器输入量为系统的误差E和误差变化率DE、输出为系统的控制量U,因此模糊控制器的工作过程可以描述为:首先将模糊控制器的输入量转化为模糊量供模糊逻辑决策系统用,模糊逻辑决策器根据规则决定的模糊关系R,应用模糊逻辑推理算法得出控制器的模糊输出量。最后经精确化计算得到的控制值去控制被控对象。

     2 模糊控制系统的设计

     2.1输入输出

     将传感器测得的精确温度在各自的变化区间上分为几个档次,使每档对应一个模糊集。我们设定电冰箱温度升降范围-15℃~+15℃之间变化,而输入变化范围为-15℃~+15℃,输入变化率变化范围为-6~6之间。将它分为6档,并和模糊变量负大,负小,负零,正零,正小,正大一一对应,所以K1=6/15=0.24,K2=6/6=1,K3=15/6=2.5。

     在MATLAB环境下,键入Fuzzy命令,进入模糊逻辑上具箱[2],在屏幕上出现带有单输入、单输出、模糊规则的模块系统,用户双击输入、输出模块,可进行输入、输出变量的论域范围、各个语台变量的隶属函数形状等参数的编辑。并保存为wen.fis本例中3个变量的隶属函数,它们的语言量值分别为:

     E ={NB NS ZR PS PB}、DE={NB NS ZR PS PB}、U ={NB NS ZR PS PB}
输入偏差E论域:“正大”(PB)多数取在+6℃附近、“正小”(PS)多数取在+2℃附近、“正零”(ZR)多数取在零左右一点附近、“负小”(BS)多数取在-2℃附近、“负大”(NB)多数取在-6℃附近。输入变化率DE语言变量值和输出U的语言变量值同输入变量E;输入隶属度函数如图2.1所示 ,输出隶属度函数如图2.2所示

   

图2.4仿真框图

     2.2模糊规则

      本系统采用IF E and DE then U 为模糊规则。模糊关系为R=E X DE X U; 模糊推理采用U =(E X DE )o R;
改系统的模糊规则表如下表1

     2.3 解模糊

      本系统采用加权平均法(重心法)[1]来求的输出的精确量U 的值:
           (2.3.1)
其中  则
….      (2.3.2)                                               
其中,Ci为论域对应值

      图2.3是模糊控制系统输出曲面观测器的输出面。

     在MATLAB命令窗口中键入simulink 建立一 wen.mdl文件如图2.4,对模糊控制系统
进行仿真,得到曲线如图2.5。可以看出,仿真输出曲线超调量有点大,但系统反应较快即调节时间短,系统也比较稳定。单从仿真来看模糊控制切实可行。

     3 在ARM上实现模糊控制器

     3.1硬件设计

     本文采用的微处理器是PHILIPS公司出品的Lpc2214[3]。这是一款支持实时仿真、嵌入式跟踪、在系统编程和在应用编程的ARM7TDMI-STMCPU微处理器,ARM7TDMI是目前低端的ARM核。微处理器Lpc2214对代码规模有严格的控制,这种可以使用16位Thumb的模式将代码规模降低超过30%,而性能的损失却很小;由于这款微处理器具有很高的代码处理速度、极低的功耗、多个32 位定时器、8路10位的ADC、PWM输出以及多达9个外部中断等特点;微处理器芯片自带16K字节的片内静态RAM和256K字节的片内闪存Flash,都可以用来存储数据或代码;Lpc2214是144脚封装,是一款总线开放的微处理器,允许直接连接并行存储芯片;由于内置了串行通信接口,它也适合于通信和各种类型的应用。系统框图如图3.1所示。

     3.2软件设计

     当论域为离散时,经过量化后的输入量的个数是有限的。因此可以针对输入的不同组合离线计算出相应的控制量,从而组成一张控制表,实际控制时只要直接查这张控制表即可,在线的运算量是很少的。

     由于LPC2214内存足够大,无需考虑内存之忧。在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中,供在线查表。

     另外,本设计还有一优点,就是模糊控制结合传统控制方法PID控制,其中TP=6,TI=0.001,TD=1;软件判断E的大小范围。

     当E>+6℃或E<-6℃时,系统自动跳到PID控制程序段,使系统能快速响应;
     当-6℃<E<+6℃时,系统跳到模糊控制程序段,使系统达到更好的控制效果;
     在ARM中实现模糊控制时,模糊化采用单点模糊集合,如果输入量数据x0是准确的,则通常将其模糊化为单点模糊集合。设模糊集合用A表示,则有3.2.1
     (3.2.1)

     模糊集合的隶属度函数,根据论域为离散和连续的不同情况,隶属度函数也有离散和连续两种方法。本设计中隶属度函数采用离散方法,也就是连续隶属度简单离散化。解模糊用的仍然是重心法,只不过在求模糊控制规则表时,已用到这一步。控制主程序如图4.1所示,模糊控制程序如图4.2所示。

    4 结论

     模糊控制方法是一种的解决非线性、大滞后环节、变参数对象控制方法[4],对无法取得数学模型或数学模糊相对难求的系统可以取得比较满意的效果。而且借助于MATLAB的模糊工具箱(fuzzy logic)和simulink仿真可以快速方便地设计仿真模糊控制系统。尤其是在家用电器的控制中模糊控制取得了越来越来广泛的应用,具有重大的实用意义。
本文作者创新点为在ARM中用二维矩阵实现模糊控制表,简单易行、速度快、足以满足实时性要求。

     参考文献

     [1] 孙增圻等编著. 智能控制理论域技术[M] 清华大学出版社. 广西科学技术出版社,.1997
     [2] 楼顺天,胡昌华,张 伟等. 基于MATLAB的系统分析设计[M]. 西安电子科技大学出版社,2001
     [3] 周立功等编著. ARM嵌入式系统基础教程[M]. 北京航空航天大学出版社,2005
     [4] 尹 琦,曲 毅,模糊控制在单片机空调室温调节中的应用[J],微计算机信息,2005,第21卷,第7-2期


本文来源:微计算机信息    作者:张 顺 祝龙记 周香诊
返回列表