空调机的温度控制系统设计
表3.1 △e的隶属度函数赋值表 论域 -4 -3 -2 -1 0 0 0 1 0 2 0 0 0 3 0 0 0 0 4 0 0 0 0 0 NB 1 NS 0 Z 0 PS 0 PM 0 PB 0 0.5 0 0 0 0 0 0 NM 0.2 0.6 1 0 0 0 0 0.6 0.2 0 0.5 0 0.5 1 0 0 0.5 1 0 0 0 0.5 1 0.5 0 0.5 0 0 0.2 0.6 1 0.6 0.2 0.5 1 控量的隶属函数形状可以是三角形、梯形、单点或其它形状。采用单点为控制量在实际处理时较为方便,因为这时只要知道控制量的模糊量也就知道了实际用于控制的论域元素。本系统控制量的模糊划分采用单点,分为7个模糊子集,分别为PB(正大),PM(正中),PS(正小),Z(零),NS(负小),NM(负中),NB(负大)。选取语言变量u的论域为:{-3,-2,-1, 0, 1, 2, 3}。控制量的隶属函数如图4.3所示。
图3.3 U的隶属度函数
(7)模糊控制规则
模糊控制规则实际上是总结有经验的操作者或专家的控制知识和经验制定出的一条条模糊条件语句的集合,通常简写成一个表,即模糊控制规则表。确定模糊控制规则的原则必须是系统输出响应的动静态特性达到最佳。当误差大或较大时,选择控制量以尽快消除误差为主;而当误差较小时,选择控制量要注意防止超调,以系统的稳定性为主要出
-29-
空调机的温度控制系统设计
发点。根据经验,经过总结和归纳可以得到温室温度的模糊控制规则如表3.2所示。
表3.2模糊控制规则
u △e
NB PB PB PB PN Z Z NB PB PB PB PB PB Z Z NM PB PB PB PB PB Z Z NS PM PM PM PM Z NS NS e Z PM PM PS Z NS NM NM PS PS PS Z NM NM NM NM PM Z Z NM NB NB NB NB PB Z Z NM NB NB NB NB (8)模糊控制算法设计
控制算法是模糊控制的关键,可根据不同的系统情况选用不同的控制算法,常用的有查表和公式法。本系统采用查表法实现模糊控制算法。查表法是根据模糊控制规则表,求出输入量论域元素和输出量论域元素之间的关系,形成一个表格,这个表格称为控制表。产生控制表的方法有两种,一种是间接法,首先求出模糊关系R,再根据输入的偏差和偏差变化率求出控制量,最后把控制量精确化,得到控制表;另一种是直接法,直接从控制规则即推理语句中求控制量,产生控制表。本文采用直接法。本系统中,由于偏差e和偏差变化率△e的离散论域都有9个元素{-4,-3,-2,一1, 0, 1, 2, 3, 4},在输入时,e或△e的精确值都会量化到9个元素之中的任何一个。这样,e和△e的输入组合就有9×9=81种。求这81种输入组合及其对应的输出控制量,即可形成相应的模糊控制表。实际控制过程中,可以对该表进行优化,根据查表结果求出控制量,去控制或驱动执行机构,实现对温室温度的智能控制。
-30-
空调机的温度控制系统设计
程序清单
主程序:
ORG 0000H ;DS18B20.ASM
DS18SL EQU 41H ;用于保存读出温度的低8位 DS18SH EQU 40H ;用于保存读出温度的高8位 DS18FIG EQU 8H ;是否检测到DS18B20标志位 A_BIT1 EQU 31H ;数码管个位数存放内存位置 B_BIT1 EQU 32H ;数码管十位数存放内存位置 D_BIT1 EQU 35H ;数码管百位数存放内存位置 DS18CD1 EQU 42H ;DS18CD1-DS18CD8暂存64位ROM DS18CD2 EQU 43H ;从低到高 DS18CD3 EQU 44H DS18CD4 EQU 45H DS18CD5 EQU 46H DS18CD6 EQU 47H DS18CD7 EQU 48H DS18CD8 EQU 49H DS1864B EQU 4AH DS18ADS EQU 4BH
DS18DQ EQU P1.0 ;30H,31H,32H,33H: X 个位 十位 X MOD7: MOV SP,#60H
LCALL GET_TEMPER ;调用读温度子程序
-31-
空调机的温度控制系统
LCALL READCODE AJMP MOD7
INIT_1820: ;DS18B20初始化 SETB DS18DQ
CLR DS18DQ ;延时,500US低MC MOV R7,#250 DJNZ R7,$ MOV R7,#150 DJNZ R7,$
SETB DS18DQ ;释放总线
LCALL DELAY60US ;15-60US的等待时间 MOV R6,#4 SETDSDQ: LCALL DELAY60US
JNB DS18DQ,SETDSDQFH ;60-240US内是否有返回信号,为0跳 DJNZ R6,SETDSDQ MOV R7,#250 DJNZ R7,$ CLR DS18FIG RET SETDSDQFH: SETB DS18FIG MOV R7,#250 DJNZ R7,$ MOV R7,#100
-30-
空调机的温度控制系统
DJNZ R7,$ RET;
数据处理程序: TEMP0: INC A AJMP TEMP1
TEMPCOV: MOV A,DS18SL ;数据处理子程序 TEMPCOV MOV B,#16 DIV AB JB B.3,TEMP0
TEMP1: MOV 34H,A ;将DS18SL的高四位右移四位,存入 34H中(温度值)
MOV A,B ;将DS18SL的低四位X10/16得小数后 一位数. MOV B,#10 MUL AB MOV B,#16 DIV AB
MOV 30H,A ;将小数后一位数.存入30H中 MOV A,DS18SH ;DS18SH中存放高8位数,权 重16 MOV B,#16 MUL AB
ADD A,34H ;34H中存入温度值的整数部分 MOV B,#10
-30-