基于ARM电冰箱模糊控制系统仿真设计
发布时间:2008/6/3 0:00:00 访问次数:434
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; 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查表时只需查con
|