智能电饭煲毕业设计.doc 36页

  • 571.00 KB
  • 2022-04-22 11:23:27 发布

智能电饭煲毕业设计.doc

  • 36页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于51单片机实现智能电饭煲功能的设计与实现目录前言3第1章绪论4第1.1节智能家电概述4第1.2节本课题主要任务5第2章智能电饭煲整体设计6第2.1节硬件整体框架6第2.2节软件整体框架7第3章智能电饭煲硬件部分的详细设计9第3.1节单片机外围电路设计9第3.2节时钟电路设计11第3.3节复位电路设计11第3.4节EEPROM扩展电路设计12第3.5节显示电路设计12第3.6节蜂鸣器电路设计13第3.7节键盘接口电路设计13第3.8节温度传感器电路设计14第4章智能电饭煲软件部分的详细设计15第4.1节理想的最佳煮饭方法15第4.2节煮饭功能模糊控制器16第4.3节米量的模糊推理18第4.4节副加热盘的模糊控制20第4.5节整体软件流程图25结论32参考文献33致谢34附录35整体电路图35部分源程序36-i- 基于51单片机实现智能电饭煲功能的设计与实现【摘要】:电饭煲是人们日常生活中最普遍的家用电器,随着人们生活水平的提到,电饭煲也日趋智能化,本课题主要基于家电智能化的背景下,根据智能电饭煲的发展和现状,探讨智能电饭煲如何实现智能化的煮饭、预约、再加热等功能。本文参考的是美的电饭煲,在本设计中实现了其控制面板上的大部分功能,在讨论炊煮时温度控制方面,本文主要采用模糊控制技术实现其加热温度的控制。在硬件设计上,论文设计了以INTEL公司的8052单片机为核心的控制电路,包括复位电路、振荡电路、LCD显示电路、按键扫描电路、数字温度传感器电路、EEPROM扩展电路和时钟电路。在软件设计上,首先根据各个功能的典型最佳炊煮温度曲线编写出调试(测试)程序,通过调试程序找出针对产品的对应各个功能的最佳炊煮温度曲线。针对煮饭功能,提出了易于实现并且有效的米量与实时温度控制的模糊控制理论,制定了不同的煮饭功能对应的炊煮模糊控制方案。【关键词】:电饭煲;单片机;炊煮曲线;模糊控制;[Abstract]:Ricecookeristhemostcommonhouseholdelectricalappliancesindailylife.Aspeoplelifestandardmotioned,ricecookerhasbecomemoreandmoreintelligent.Thistopicisbasedonthebackgroundofhomeapplianceintelligent,accordingtothedevelopmentandstatusofintelligentricecooker.Discussinghowtorealizetheintelligencefunctionofcookingrice,bookingandreheating.ThistopicreferenceofMidearicecooker.Realizingmostoffunctionfromthecontrolpanel.Whenthediscussionoftemperaturecontrolofboils.Thistopicmainlyadoptsthefuzzycontroltechnologytoachieveitsheatingtemperaturecontrol.Aboutthehardware.itisdesignedindetailthatincludesthecontrollingcircuitsthatarebasedonMCU.8052.whichismadeinUSA.Theperipheralcircuitsincluderesetcircuit,oscillationcircuit,keyscanningcircuit,LCDdrivecircuitandINTlcircuit(powerdetectingcircuit).Aboutthesoftware.accordingtothetypicalandbestcookingcurvesofeachfunction,thedebuggingprogramisprogrammedfirstly.Then,thebestcookingcurves,thatareapplicabletothericecooker,arefoundoutbythedebuggingprogram.Accordingtocookingricemethod.aone-dimensionfuzzycontrollerthatcancalculatetheweightofriceandtheheatingpowermoreeasilyisdesigned.DifferentkindsoffuzzycontrolwaysthatcorrespondtodifferentcookingfunctionsareprovidedinthePaper.第35页 [Keywords]:Ricecooker;MCU;Cookingcurves;Fuzzycontroller;第35页 前言电饭煲因其安全、简便、实用而普及到千家万户。随着科技的不断发展,这类小家电也在不断的完善和提升自己,并向着智能化、节能化、网络化的方向发展。本课题研究的是智能电饭煲的硬件和软件的设计以及煮饭功能的实现过程。智能家用电器不仅仅实现了产品的原始属性,更融入了我们人类的智慧结晶。随着以计算机技术为核心的信息技术,特别是数字化技术、多媒体技术和网络技术的飞速发展,智能家电产业也在迅速崛起。世界著名的电脑和家电企业如IBM、夏普、微软、英特尔、松下、NEC、东芝等都大力开发研制自己的智能家电产品,我国的许多公司如联想、长虹、海信、TCL、海尔等也都投入到智能家电的开发工作。作为传统家电代表,电饭煲也已融入到系统化的信息家电系统中,它的功能已不再只是单纯的煮饭,功能齐全、操作简便、人性化的界面,烹调过程自动化,甚至是网络控制的信息化电饭煲已成为现代人的新需求。伴随着生活水平的提高,电饭煲的智能化和网络化将成为一种趋势,机械式饭煲必将退出市场舞台。第35页 第1章绪论第1.1节智能家电概述所谓智能化家电,是指运用现代最新科技研制开发的新一代具有智能功能的家用电器。它所涉及的高新技术领域十分广泛,其中包括:多媒体技术、数字技术、模糊控制技术、太阳能技术、专家系统、人工智能、生物技术等。而人工智能的载体通过传统的逻辑电路实现显然是不现实的,而通过嵌入式系统就能轻松实现。嵌入式系统是将计算机硬件和软件结合起来,构成一个专门的计算装置,完成特定的功能和任务。在嵌入式系统中,单片机是最重要也是应用最多的智能核心器件。从结构的角度讲,由于单片机是嵌入家用电器内部并作为核心部件,故智能家用电器的结构体系很明显就是一个嵌入式系统[4]。1.1.1.嵌入式家电的发展现状嵌入式系统应用到家用电器中,并作为核心控制部件,早已成为了一种历史趋势。在中国市场上销售的家用电器,应用了嵌入式微控系统的智能产品层出不穷。正是基于这一美好的前景,本课题将嵌入式微控制系统应用到很常见的小家电——电饭煲之中。嵌入式系统在小家电上的应用远晚于其在黑色家电及其他大型家电上的应用。日本、台湾等地区对嵌入式小家电的研究及生产要早于其他地区。比较出色的公司主要集中在日本。虽然各个公司的产品各有特色,但是从产品的电器性能来说,都是应用了嵌入式系统,使产品的功能智能化、人性化、小型化、节能化等。当今社会科技发展迅速,人们生活水平迅速提高,家用电器越来越受到人们的重视,许多家用电器制造商都投入大量的人力、资金进行家电的升级和智能化。现在,欧洲、美国、日本和国内的一些家电公司都已提出了智能家电的解决方案,并已实现成品化,尽管各方提出的方案不同,但都本着标准化、开放性、面向未来的宗旨,体现以人为本的设计思路,让消费者全方位的感受数字生活。1.1.2.家电中的模糊控制技术为了探索人工智能,使电脑模仿人脑,进行更多的智力劳动,模糊数学便应运而生,1965年美因著名系统及控制论专家、加州大学教授Zandeh创立的模糊集合论,在电脑与人脑之间架起了一座桥梁[14]。与经典控制技术、现代控制理论相比,模糊控制具有以下特点:(1)、模糊控制是模拟人的直觉或经验,用自然语言描写被控对象的输入、输出关系以及凋节规则,避开了对被控对象建立数学模型的困难。(2)、对一些很难或根本无法建立数学模型的复杂系统和长时滞、非线性、多因素交互影响的时变系统,应用模糊控制技术可对其实施有效的闭环控制。(3)、第35页 模糊控制具有很好的鲁棒性,对参数的变化适应性强,具有较好的抗干扰能力,消除了常规控制系统常存在的鲁棒性与灵敏度之间的矛盾,提高了系统的可靠性。(1)、模糊控制器的设计相对较简单,开发周期短、成本低,用传统控制方法需PC机才能完成的,控制目标用一个8位单片机就可实现,因此它具有很强的渗透性,应用前景十分广泛。当前,模糊技术还处在发展阶段,有待进一步完善。但可以相信,它是一项控制工程领域的高新技术,有着诱人的发展前景和广阔的应用天地。第1.2节本课题主要任务本课题主要阐述模糊控制在电饭煲中的具体实现,在硬件电路设计的基础上,通过对各功能模块的软件设计,实现对温度的检测和分析,从而得到控制可控硅的导通时间的精确量来控制加热盘功率以实现电饭煲通过模糊控制技术来煮饭的目的,使其达到智能化。本课题主要任务及相关问题:¨在硬件上的设计主要以8052单片机为主要控制芯片的功能电路,以模块化的设计理念分别设计温度传感器电路、时钟电路、LCD显示电路、EEPROM扩展电路、蜂鸣器电路、按键电路和温度采集电路。使其具备智能电饭煲基本功能。¨在软件上的实现预约、保温、米量推算、智能炊煮和冷饭加热等功能。其中智能炊煮、米量推算和保温功能采用模糊控制技术实现智能化煮饭,外加一些预约、声音、灯光提示等附加功能。¨根据人们生活经验中得到的最佳炊煮曲线中的温度信息值与实际采集温度进行对比,经过单片机的模糊推理后来控制可控硅的导通时间,从而实现煮饭的模糊化控制。¨主要遇到问题是要实现智能电饭煲预约、炊煮功能所对应的硬件电路该如何选择,在整个炊煮过程中如何进行相应的模糊化控制。其中包括用何种方法进行米量推算。在确定米量后如何进行实时的温度模糊化控制,此问题还包含有如何划分模糊控制器输入的量的隶属度函数,采用何种方法计算控制量,这些问题也是本课题所要解决的。第35页 第1章智能电饭煲整体设计智能电饭煲整体设计包含两部分:硬件的整体设计和软件的整体设计,硬件的整体框架主要是以单片机为核心集合了显示,提示音,温控等功能的外围模块电路。软件整体框架主要是以单片机实施模糊控制为主,实现此功能必需的温度采集模块、时钟定时模块、数据存储模块等[1]。第1.1节硬件整体框架硬件的整体框架包括MCU、电源、温度传感器、LCD显示、EEPROM、RTC、加热盘以及按键[9]。如图2-1所示。按键温度传感器DS18B20EEPROMLCD显示加热盘RTC电源蜂鸣器MCU图2-1硬件结构框图1.1.1.各模块介绍(1)、电源模块电源分为为加热盘模块提供电的220V电源,和为温度传感器模块、按键模块、显示模块和EEPROM模块等提供电的5V电源。(2)、按键模块按键采用独立式按键接口,分为6个按键,分别对应确认、取消、预约、功能、时间加、时间减的功能。(3)、显示模块采用LCD1602实现时间显示,功能选择,是此电饭煲的人机对话界面。(4)、温度传感器模块利用温度传感器DS18B20来检测温度的变化从而使单片机进行模糊控制。(5)、加热盘模块第35页 与220V市电直接相连,分为主、副加热盘,并且分别对其采用继电器和可控硅来控制功率。(1)、时钟模块提供单片机的工作时序,控制炊煮时间和预约功能的实现。(2)、EEPROM模块利用EEPROMAT24C16扩展实现对系统断电后的数据存储。(3)、蜂鸣器模块炊煮结束后能提供音乐和灯光提示。第1.2节软件整体框架软件整体框架包括温度采集程序模块、RTC时钟程序模块、MCU的模糊控制程序模块、LCD显示程序模块、蜂鸣器程序模块和EEPROM存储程序模块。温度传感器模块时钟程序显示程序MCU模糊控制控制对象附加功能图2-2软件结构框图1.2.1.各模块主要功能(1)、温度采集模块分为采集子程序和控制子程序,前者涉及定时器的定时、温度对照等环节。后者是当温度采集值与设定值产生偏差时需要对加热盘功率进行控制[2]。(2)、时钟模块利用单片机内部定时器0作为时钟定时,按键方式1,每隔100ms溢出中断一次。(3)、MCU模糊控制模块此模块是系统主要功能程序模块,其中把上、下温度传感器的信号作为模糊推理米饭量的两个输入量,根据上、下两温度传感器达到所设定温度的时间差来进行推算。锅身传感器的温度与预设温度之间的偏差及其导数作为温度模糊控制的两个输入量,通过温控子程序进行煮饭的各阶段控制,每阶段都有计时[3]。(4)、附加功能第35页 附加功能有冷饭再加热、炊煮完成后的保温子程序,这些功能用了简单的加热器通断功能实现,根据生活经验,冷饭再加热要求的是快,因为需要再加热的东西往往是熟的,且量也不会太多,只要达到适合使用的温度即可,保温功能也与其类似。(1)、其他程序模块蜂鸣器程序主要功能是判断煮饭过程是否结束,如结束,则发出声音来提醒使用者煮饭过程已结束,同时小灯点亮进入保温状态。EEPROM存储程序作用是当接收到中断信号后立即把单片机所执行的所有数据存入存储器内。第35页 第1章智能电饭煲硬件部分的详细设计第1.1节单片机外围电路设计本课题所设计的智能电饭煲是以美的FS406为参照,如图3-1所示,实现其大部分功能,包括了开始、关、预约、功能、时、分功能。图3-1美的FS406面板1.1.1.电源电路该单元为本系统的其他电路提供工作所需要的电源。如图3-2,它由变压器降压后得到20V的交流电压经过全波整流电路和滤波电路变成15V左右的直流电压,再经过三固定输出电压的集成稳压电路的稳压输出5V的稳恒直流电源,为单片机及其周围电路提供工作需要的电源[5]。图3-2电源电路图(1)、抗浪涌电路压敏电阻和PCB电流熔断丝(长约l5mm很细的PCB铜箔)共同组成了抗浪涌电路当有异常高电压输入时,压敏电阻瞬间短路,这样电源、压敏电阻和PCB电流熔断丝(PARTTERN--FUSE)构成的回路电流瞬间增大,当电流尖峰值瞬间超过PCB电流熔断丝的电流容量,PCB电流熔断丝立即熔断,从而保护了后面电路元件的安全。电容C1又称安规电容或者静噪电容,一方面能够抑制电网向电源电路传导的骚扰,另一方面也降低了自身电路向电网传导的骚扰。第35页 1.1.1.过零检测电路可控硅及继电器的触发信号需要对市电进行过零检测,以实现触发脉冲的相位延时,该电路的目的是检测交流220V电源信号,也可称之为交流电过零点检测电路。如图3-3所示,当交流220VAC电源开始工作时,由C点产生基本上与交流电源同步的方波,这样INTl就能产生周期性的中断,从而在中断程序中就可以处理一些与交流信号有关的控制,控制可控硅的触发。图3-3过零检测电路图1.1.2.加热盘电路图3-4所示是加热盘电路,主加热器是电饭煲的基本加热单元,是实现各种加热功能的基础,采用盘状的外观所以也被称为加热盘。加热盘与电饭煲的内胆(内锅)底部紧密接触以便更高的利用加热所产生的热能,其中继电器功能是在其选定工作模式或冷饭再加热时控制其加热功率,单片机通过P2.1口对继电器进行控制。副加热盘电热丝的加热功率由双向可控硅控制[6],单片机通过引脚P2.2口给可控硅发信号,控制可控硅的导通角,从而控制电热丝的有效加热功率。其中串联在继电器回路的熔点为160℃的热保险丝,当温度达到160℃时,热保险丝会熔断,防止加热盘干烧。第35页 图3-4加热盘电路第1.1节时钟电路设计时钟电路如图3-5所示,采用的是系统振荡为外部RC振荡方式,单片机内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和TXAL2分别是次放大器的输入端和输出端,把这两个引脚与作为反馈元件的晶体谐振器连接。一般采用12MHZ的石英晶体和30PF的电容作为系统时钟,以减少寄生电容,更好保证振荡器的稳定性[11]。图3-5时钟电路第1.2节复位电路设计第35页 系统要能长时间可靠工作就离不开复位电路,复位电路可在单片机运行出错或进入死循环时,通过复位使系统重新运行。对于51单片机而言,只要REST端保持二个机器周期(24个时钟振荡周期)的高电平即可硬件复位。考虑到从电源接通到电源电压稳定需要一定的时间,故图3-6所示RC复位时间一般均应大于10ms,图示复位电路是广泛应用的上电复位电路[12],典型取值为R=1kC=22PF。图3-6复位电路第1.1节EEPROM扩展电路设计本课题采用AT24C16的EEPROM扩展,如图3-7所示,用8052的P2口模拟I2C总线与EEPROM通信连接电路图,由于AT24C16是漏极开路,图中R1,R2为上拉电阻(10K),A0~A2和VCC地址引脚均接地。串行时钟SCC接P2.4串行数据,地址线SDA接P2.3引脚。AT24C16的特性有:单电源供电,工作电压范围宽(1.8~5.5V),低功耗CMOS技术100KHZ(2.5V)和400KHZ(5V)兼容,自定时写周期(包含自动擦除)、页面写周期的典型值为2ns,具有硬件保护[18]。图3-7EEPROM扩展电路第1.2节显示电路设计显示器件采用LCD1602液晶显示器,是目前最常用的显示器件,其显示容量为16×2个字符,尺度为2.95×4.35mm,适合电饭煲时间和功能的字符显示,如图3-8,前三个引脚分别为电源地、电源正极和液晶显示偏压。RS和R/W为数据/命令选择和读/写选择,引脚15和16分别是背光源正、负极。单片机P0口用于对LCD的数据传输,P2.5~P2.7都是作为控制端对LCD输入读/写数据信号,选择数据寄存器或指令寄存器,以及是否进行显示[19]。第35页 图3-8LCD显示电路第1.1节蜂鸣器电路设计蜂鸣器电路要求在炊煮结束时“奏出”出悦耳的提示音给使用者。选择PFD驱动蜂鸣器,并且只用P2.2一个引脚就可以了,这样可以节省一个I/O引脚,同时PFD输出的信号频率可以采用一个内部定时计数器控制[17],如图3-9所示。图3-9蜂鸣器电路第1.2节键盘接口电路设计独立式键盘是直接用I/O口构成的单个按键电路,如图3-10所示,每根I/O口线上按键的工作状态不会影响其他I/O口的工作状态,该电路属于查询方式电路,当按键没有按下时,CPU对应的I/O口由于有上拉电阻,其输入为高电平;当某按键按下后,对应I/O口变低电平,同时在VCC=5V的情况下,I/O输出灌电流在5mA左右[16]。第35页 图3-10按键电路第1.1节温度传感器电路设计本课题中温度传感器DS18B20采用数据线供电方式,其工作电压范围在3~5.5V,温度测量范围在-55℃~125℃精度为±2℃,在-10℃~85℃范围内,其精度为±0.5℃,可编程为9~12位A/D转换精度[10]。测温分辨率可达0.0625摄氏度,如图3-11所示,为了保证DS18B20温度变换的精确性,当温度转换时,数据线必须提供足够功率,此时必须提供一个强上拉。该电路通常要求外接一个4.7K的上拉电阻至电源[8]。图3-11温度传感器电路第35页 第1章智能电饭煲软件部分的详细设计电饭煲的基本功能就是煮饭,如何将米煮成香喷喷的米饭是电饭煲需要解决的主要问题。为了得到最佳的煮饭效果,可通过传统的和科学的煮饭方法确定最佳的煮饭工艺流程即煮饭的过程控制,最后根据确定的煮饭流程编写参数调试程序,从而得到最终的最佳煮饭流程和温度控制曲线。第1.1节理想的最佳煮饭方法生米煮成熟饭的过程是相当复杂的生化转化过程。在这一过程中,大米中的淀粉、葡萄糖等成份进行一系列的转化。影响转化的最主要因素是温度及温度的变化。铁锅柴灶煮饭时,有经验的“巧妇”,在小知不觉中,运用灶膛中火力大小,使饭锅的温度发生变化,满足了大米的最佳转化条件,从而蒸煮出香喷喷的米饭。这种温度发生变化大致分为5个阶段:(1)、低温吸水:让大米在30~40℃的温水中浸泡足够时间,使米粒充分吸水膨胀,米粒内外随水温慢慢升高至60℃~70℃。(2)、快速升温:当米粒内外温度达到70℃时,米粒将开始糊化,糊化首先发生在米粒表面。为了避免米粒表面糊化后不向内部传热,这时应快速升温,使米粒内外在极短时问内,同时达到高温,有利于米粒内外同时糊化、熟化。(3)、高温沸腾:促使米粒内外同时熟透,并蒸发掉锅内多余水分,避免米粒含水过多而稀化,也就是常说的“烂饭”。(4)、烘饭:在高温沸腾停止后,锅内的水蒸汽将冷却液化,滴回米饭表面。为继续蒸发掉表面多余水分,同时使米粒内部水分进一步排出,使米饭更松软。(5)、焖饭:在熟饭后维持一定温度,使米粒进一步释水松软,靠锅的米粒得热较多而出现少许焦黄,整锅米饭浸透烧香味。日常使用的机械式电饭煲,利用磁钢受热后磁性减弱来控制加热丝的通断。电源一旦接通,就持续加热。达到最高温度后,开关自动断开,煮饭结束。这种电饭煲的煮饭过程中没有也难以实现吸水和焖饭过程,同时也不能准确的控制各个阶段的温度以及温度变化。因而米饭的口感和质量较差,同时无法实现和用户之间的交互以完成各种附加功能。如图4-2所示为煮饭最佳曲线图。第35页 烘饭t/min吸水快速升温高温沸腾焖饭保温米饭温度℃120100704030图4-1煮饭最佳曲线吸水阶段使大米在一定的温度下充分吸水,使大米含水率从14%上升到25%左右,以保证米粒在加热过程中内外均匀受热,热量透到大米的芯部,从而使之烧成柔软鼓胀状,但是,一旦水温超过70℃,米将变成糊状。所以,一般将水温控制在60℃以下。快速升温阶段把已吸足水分的米采用大功率进行加热,迅速达到糊化温度,如果不继续迅速升温的话,米粒将在此温度下吸入大量水分并且米粒会达到半熟的状态,此后无论采取何种措施,米饭都不会达到理想的炊煮效果。沸腾阶段是将米中不易溶于水、难以消化的淀粉转变为易溶于水、易于消化的淀粉,应保持一定的时间。沸腾阶段电饭煲内的温度保持在100℃的水平。大米充分吸水后,锅内的水逐渐减少,锅底趋于干燥,当锅底的水分减少到一定程度后,米饭的温度迅速上升进入图4-1中的烘饭阶段,在该曲线图中,烘饭包含在高温沸腾的阶段中。沸腾结束后,进入焖饭阶段,在焖饭阶段,使米粒充分受热而内外质量趋于一致,焖饭阶段还使大米外部的水分一部分渗透入米芯,促使内部的成熟变化,另一部分蒸发掉,这样就使得整粒米饭内外一致。一般焖饭之后的米饭含水率在69%左右。在焖饭阶段有一个间歇加热的阶段,目的是使煮熟的米饭产生少许的锅巴,使整锅的米饭更具米饭的香味,同时焖饭阶段使得米饭无论在硬度上或黏度上都会另人满意。第1.1节煮饭功能模糊控制器1.1.1.模糊控制基本思想第35页 模糊控制是一种计算机数字控制,所以其控制系统框架同一般的数字控制系统一样,只不过它的控制器是模糊控制器。模糊控制器的控制规律由程序实现,在实现的过程中要经过以下三个步骤:输入量的模糊化、模糊推理和输出量的解模糊。在模糊控制过程中,将测到的过程精确量转化为模糊量,再经过根据经验总结成的若干模糊规则和必要的模糊处理后,模糊判断系统根据输入的模糊信息按照控制规则和推理法则,做出模糊决策,然后输出解模糊后的控制量并作用于执行系统,完成控制动作,且这种动作足以精确量表现出来的[13]。(1)、模糊化模糊化是将模糊控制器输入量的确切值转换为相应模糊语言变量值的过程,此相应语苦变量值均由对应的隶属度来定义。在实际应用中,常常选择三角形作为语言变量的隶属度曲线。在模糊化的过程中,一般利用最大隶属度原则,即在语言集中选择该元素对应的隶属度最大的语言变量,作为该项确切值的模糊子集。(2)、模糊推理模糊推理包括三个组成部分:大前提、小前提和结论。大前提是多个模糊条件语句,构成规则库:小前提是一个模糊判断句,又称事实。模糊推理就是以已知的规则库和输入变量为依据,基于模糊变换推出新的模糊命题作为结论的过程。(3)、解模糊解模糊是将模糊推理后得到的模糊集转换为用作控制的数字值的过程。它的目标是产化确切的控制动作,应该能够最好的反映出推理出的模糊控制动作分配的可能性。常用的方法有最大隶属度法、加权平均法和重心法。如图4-2所示的模糊控制框架图。uzyxe+r-MCUK1量化控制表K3控制对象d/dtK2量化图4-2模糊控制框图第35页 目前,实用模糊逻辑控制常用的方法有查表法和软件模糊推理等。查表法是将输入的隶属度函数、模糊控制规则和输出隶属度函数都用表格来表示,从输入量的模糊化、模糊推理和模糊判决都通过查表来实现。软件模糊推理的模糊化、模糊推理和模糊判决三个过程都用软件来实现。对于本文研究的米量和加热功率模糊推理机来说,其推理过程是开环的,模糊推理机只包含输入量的模糊化、利用规则的模糊推理及输出量的解模糊,隶属度函数、模糊控制规则可以用表格来表示,模糊推理机的最终输出量为具体米量的值和加热功率的值。1.1.1.参数标识煮饭模糊控制器包括饭量的模糊推理,温度的模糊控制量部分,为了便于接下来的模糊控制设计,故列出一系列相关标识量。(1)、Warmup:下传感器预约温度初始值:30~80℃(2)、Steam:上传感器检测到的蒸汽温度初始值:60~90℃(3)、Qtystart:下传感器米量判断开始温度初始值:50~70℃(4)、Hightem:上传感器防凝露控制温度初始值:95~115℃第1.2节米量的模糊推理电饭煲的结构不允许采用重量传感器等可以直接测量的方法,根据多年的设计经验,采用上、下温度传感器配合测出饭温信号,利用模糊推理,组成测定饭量的软传感器,最后通过模糊决策来判断米量的值是一种十分有效的、可行的方法。模糊电饭煲实行模糊控制的关键是煮饭量的模糊测定,这一工作是在吸水阶段进行的。米量判断过程是通过下传感器达到统一的温度值(qtystart)开始计时,采用大功率持续加热,直到上传感器检测到蒸汽温度为止,根据多年的电饭煲开发经验,这是一种非常可靠的米量检测方法,不同米量的值,这个过程所需的时间不等,具有明显的梯度,所以可以比较准确的判断出米量。米量的区分以电饭煲产品附带的量杯为单位。本项课题采用的方法是通过设定底部传感器温度值,当底部温值与设定值(qtystart)相等时,取上传感器一个适当的固定的温度“steam”,不同的米量加热到电饭煲上传感器达到这个温度“steam”的时间Trx是不同的。这样,米量模糊控制器就可以看成输入量为时间Trx,输出量为米量Q的一维模糊控制器。表4-1为1.0L产品的煮饭模式下,米量判断时间Trx对应的米量判断值Q。通过米量Q的值来判断煮饭时各时间段的合理时间区间,得到相应饭量的煮饭最佳曲线,表格中Trx为时间段,比如美的FS460的精煮功能,Trx的值在0~5"30"时间段内,得到的Q值为0;Trx的值在5"31"~6"10"时间段内,得到的Q值为1,依次类推,表中列出各个时间段的上限值。第35页 表4-1FS460的米量判断对应表精煮Trx快煮Trx对应米量少量米Trx对应米量判定值~5"00"~5"20"1杯~3"40"0.5杯0~5"50"~6"00"1.5杯~4"20"1杯1~7"20"~7"30"2杯~5"00"1.5杯2~8"10"~8"30"2.5杯~6"40"2杯3~9"50"~10"00"3杯~7"30"3.5杯4~10"50"~10"50"3.5杯~9"00"3杯5~12"00"~12"20"4杯~9"50"3.5杯6~12"50"~13"20"4.5杯~11"20"4杯7~20"00"~20"00"5杯以上~20"00"5杯以上81.1.1.加热功率的模糊控制通过以上米量的模糊推算,我们就可根据判定值Q来推断主加热盘应该用何种加热模式来进行炊煮过程,这里利用加热时间占空比参数TP来替代PW,通过改变TP从而改变加热盘的加热功率PW这里取32s一个周期,通过调节这32s中主加热盘的通断来控制加热功率PW,在保证可以实现最佳加热曲线的前提下,以简化算法,易于实现为原则,按下表4-2可根据Q值推算TP的值。表4-2主加热盘加热模式表模式TP(s)Q精煮快煮少量米01113811214102131612314181541620175182219620242172326238252825通过控制主加热盘的通断,保证基本的煮饭功率,如表所示,之所以不能让TP完全导通,一方面为了不让锅底过热,导致锅里的饭下面焦而上面未熟透,另一方面也为副加热盘进行模糊温度控制从而更逼近最佳炊煮曲线提供了必要的初始、稳定的温度保障。第35页 第1.1节副加热盘的模糊控制经过先前的米量推算后,得到应选用的煮饭模式,从而开始进行煮饭温度的模糊控制,这种控制主要的实施器件是与加热盘串连的可控硅,通过控制其导通时间来实现对温度的控制[21],具体方法:(1)、根据锅身温度传感器传给单片机的实时的温度信号,再对比同一时间最佳煮饭曲线所对应的温度值,得到传感器现测温度信号与预设温度之间的误差值E以及误差值变化率△E,误差E的范围规定我±2℃。(2)、分别对E和△E进行量化,并描述其隶属度,列出隶属度表,制定模糊控制规则表。(3)、进行模糊推理,根据E和△E量化后的模糊集合A和B得出每条规则的模糊算子进而求的输出量的模糊集合C。(4)、用所求得的输出模糊集合进行清晰化计算(用加权平均法)得到清晰的控制量。基于模糊控制步骤:模糊化、规则库建立、模糊推理、解模糊,对加热盘的温度模糊控制采用锅身温度传感器的温度信号作为系统输入,晶闸管控制量作为系统输出,采用二维模糊控制器进行模糊算法的设计。1.1.2.输入输出的量化对实际输入量,第一步首先需要进行尺度变换,将其变换到要求的论域范围。本课题采用线性的变换方法,实际输入量为E变化范围为[-2,2],要求的论域为[-6,6],则量化因子为:(1)量化公式为:(2)同理,也可以得到△E的量化值。表4-4表示了偏差值E、偏差变化率△E的连续域的量化。通过量化,我们可以方便计算,方便理解,也方便划分论域及模糊集合。第35页 表4-4误差值E的量化和误差变化率△E的量化E量化等级变化范围/℃△E量化等级变化范围/s6>2.06>0.0625(1.64~2.0]5(0.052~0.062]4(1.28~1.64]4(0.042~0.052]3(0.86~1.28]3(0.032~0.042]2(0.5~0.86]2(0.022~0.032]1(0.14~0.5]1(0.012~0.022]0(-0.22~0.14]0(-0.012~0.012]-1(-0.58~-0.22]-1(-0.022~-0.012]-2(-0.94~-0.58]-2(-0.032~-0.022]-3(-1.3~-0.94]-3(-0.042~-0.032]-4(-1.68~-1.3]-4(-0.052~-0.042]-5(-2.0~-1.68]-5(-0.062~-0.052]-6<-2.0-6<-0.0621.1.1.知识库与规则库根据量化后的E"和△E"作为模糊推理的输入条件,Z作为其模糊输出,E"、△E"和Z的模糊子集合的划分如下所示。其中T(E")={NB(负大),NM(负中),NS(负小),NZ(负零),PZ(正零),PS(正小),PM(正中),PB(正大)}T(△E")={NB(负大),NM(负中),NS(负小),ZE(零),PS(正小),PM(正中),PB(正大)}T(Z)={BB(大大),BM(大中),BS(大小),M(中),SB(小大),SM(小中),SS(小小)}每个模糊集合可以用不同形状表示,如梯形、钟形等,本课题采用三角形、高斯型和型隶属度函数公式表示各模糊集合,并计算得到数据三角形隶属度函数公式:(3)其中a和c为对应隶属度值为0的点,b为三角形的顶点。高斯型隶属度函数公式:(4)其中c为顶点值,为图形宽度。第35页 经过以上公式计算后得到下表4-5到表4-7中数据。表4-5E"的隶属度函数e隶属值E"-6-5-4-3-2-10123456NB1.00.80.70.40.10.00.00.00.00.00.00.00.0NM0.20.71.00.70.30.00.00.00.00.00.00.00.0NS0.00.10.30.71.00.70.20.00.00.00.00.00.0NZ0.00.00.00.00.10.61.00.00.00.00.00.00.0PZ0.00.00.00.00.00.01.00.60.10.00.00.00.0PS0.00.00.00.00.00.00.20.71.00.70.30.10.0PM0.00.00.00.00.00.00.00.00.20.71.00.70.3PB0.00.00.00.00.00.00.00.00.00.10.40.71.0表4-6△E"隶属度函数△e隶属值△E"-6-5-4-3-2-10123456NB1.00.70.30.00.00.00.00.00.00.00.00.00.0NM0.30.71.00.70.30.00.00.00.00.00.00.00.0NS0.00.00.30.71.00.70.30.00.00.00.00.00.0ZE0.00.00.00.00.30.71.00.70.30.00.00.00.0PS0.00.00.00.00.00.00.30.71.00.70.30.00.0PM0.00.00.00.00.00.00.00.00.30.71.00.70.3PB0.00.00.00.00.00.00.00.00.00.00.30.71.0表4-7Z"隶属度函数z隶属值Z"-6-5-4-3-2-10123456BB1.00.70.30.00.00.00.00.00.00.00.00.00.0BM0.30.71.00.70.30.00.00.00.00.00.00.00.0BS0.00.00.30.71.00.70.30.00.00.00.00.00.0M0.00.00.00.00.30.71.00.70.30.00.00.00.0SB0.00.00.00.00.00.00.30.71.00.70.30.00.0SM0.00.00.00.00.00.00.00.00.30.71.00.70.3SS0.00.00.00.00.00.00.00.00.00.00.30.71.0分别列出隶属度函数后,再根据以往人们生活中所得到第35页 的经验,建立模糊控制规则,表4-8是模糊控制规则表。表4-8模糊控制规则表△E"Z"E"NBNMNSZEPSPMPBNBBBBBBBBBBMMMNMBBBBBBBBBMMMNSBMBMBMBMMSBSBNZBMBMBSMSBSMSMPZBMBMBSMSBSMSMPSBSBSMSMSMSMSMPMMMSMSSSSSSSSPBMMSMSSSSSSSS表中表示的规则依次为:R1:ifE"=NBand△E"=NBthenZ"是BBR2:ifE"=NBand△E"=NSthenZ"是BB……R56:ifE"=PBand△E"=PBthenZ"是SS已知输入e0和△e0模糊化运算采用单点模糊集合,则相应的输入量模糊集合A"和B"分别为:运用合成运算法可求得输出量的模糊集合C"为:(5)其中,合成运算符“”为最大-最小运算方法,Ri是模糊隐函数,如:(6)运算方法为取小运算。1.1.1.解模糊运算第35页 通过模糊推理得到的控制量的模糊集合C",根据加权平均法进行清晰化计算得到精确控制量(7)为了减少运算,可事先计算出不同e0和△e0不同组合时的输出控制量z0做成控制表,这样就可以用查表的方法快速地找到需要的控制量。以下是将e0和△e0数值代入计算得出控制量表。表4-9控制量表△e0z0e0-6-5-4-3-2-10123456-6-5.4-5.2-5.3-5.2-5.3-5.2-4.6-4.2-2.7-2.0-1.20.00.0-5-5.0-4.9-5.0-4.9-5.0-4.9-3.8-3.7-2.3-1.7-1.10.20.2-4-4.6-4.5-4.6-4.5-4.6-4.5-3.0-2.9-1.9-1.4-0.60.60.6-3-4.2-4.2-4.2-4.2-4.2-4.2-2.9-2.2-1.4-0.9-0.31.01.0-2-4.0-4.0-3.7-3.7-3.4-3.4-2.4-1.7-0.4-0.10.21.61.6-1-4.0-4.0-3.3-3.0-2.4-2.1-1.5-1.00.21.92.32.92.90-3.5-3.5-2.9-2.6-0.9-0.50.00.50.92.62.93.53.61-2.9-2.9-2.3-1.9-0.21.01.52.12.43.03.34.04.02-1.8-1.7-0.5-0.30.41.72.43.43.43.73.84.04.03-1.0-1.00.20.91.42.22.94.24.24.24.24.34.34-0.5-0.60.61.41.92.93.04.54.64.54.64.54.75-0.2-0.21.11.72.33.73.84.95.04.95.04.95.060.00.01.22.02.74.24.65.25.35.25.35.25.4得到控制量后经过尺度变换计算出晶闸管导通时间值,晶闸管导通时间范围[0.00,0.02],控制量变化范围为[-6,6],则:(8)根据量化公式反推的:(9)即可得出可控硅导通时间。根据以上的论述,通过MATLAB绘制出相应的曲线图和输入/输出曲面如图4-3所示。第35页 图4-3曲线图和输入/输出曲面图第1.1节整体软件流程图整体程序执行进程:初始化后判断是否在2s内有动作,如果没有,表明进入冷饭再加热过程,如有动作,则进行煮饭过程,经过LCD,EEPROM等初始化后,选择模式和是否需要预约,此后通过选定的煮饭模式进行米量推测,选择煮饭对策,从而进入温度控制阶段,在煮饭的各阶段都有时间限定,到时间便进入下一阶段,直至煮饭过程结束。蜂鸣器和LED灯通电,提示煮饭过程结束,然后进入自动保温阶段[20]。如图4-4所示第35页 图4-4整体软件流程图1.1.1.按键功能程图程序进程:进入子程序后首先默认精煮模式,如需要改动,按功能键,处理器根据功能键按下次数来轮流显示功能直到停止选择,即为最后确定的煮饭模式。第二个功能是设定预约时间,精确到分,预约设定完成后,等到预约时间到,即开始煮饭阶段,如不选预约功能,就直接进入煮饭阶段。如图4-5所示第35页 图4-5按键功能子程序图1.1.1.显示程序流程图程序进程:初始化后发出信号检测LCD是否进行工作,如没有“忙”信号,LCD进入显示阶段。如图4-6所示图4-6显示子程序图第35页 1.1.1.温度控制程序流程图程序进程:温度控制程序需要定时处理,每隔30s时间温度传感器采集一次温度,其中图4-6表示的是锅身温度传感器进行实时温度控制的流程图,通过采集的温度和预设的最佳曲线温度对比的偏差进行判断,从而控制可控硅导通时间,每个煮饭阶段也有不同的定时,时间一到,便进入下一个定时周期。图4-7是通过上、下温度传感器分别到达预设温度的时间差来推测米量。其中下传感器设定值为60℃,上传感器设定值为80℃。如图4-7和如图4-8所示图4-7实时温度控制子程序图图4-8米量推测子程序图第35页 1.1.1.冷饭再加热程序流程图程序进程:设定时间为25分钟,采用检测上、下传感器是否达到设定值来确保再加热食物温度适宜,如没达到设定温度,就开启加热盘,达到了,就减小加热盘的导通时间。其中沸腾值为98℃,蒸汽值为107℃,设定植为50℃。如图4-9所示图4-9冷饭再加热子程序图1.1.2.保温程序流程图程序进程:在煮饭过程结束后,进入该程序,所以还是保持原有的主加热盘功率不变的前提下,实行与实时温度控制类似的方法进行温度的控制。其中设定植为70℃。如图4-10所示第35页 图4-10保温子程序图1.1.1.时钟程序流程图程序进程:分别对秒、分、时进行记数,满60次进位。预约功能是对设定时间与当前时间对比,吻合了即开始煮饭程序。如图4-11和图4-12所示。图4-11时钟子程序图第35页 图4-12预约子程序图1.1.1.其他程序流程图图4-13所示为EEPROM读写程序和蜂鸣器程序,前者通过判断中断信号来进行写操作,通过处理器发送读信号来进行读操作。后者煮饭过程一结束,便进入此程序。图4-13EEROM和蜂鸣器程序图第35页 结论家用电器的智能化极大的方便了人们的日常生活,本文从硬件设计上,阐述了电路设计的原理以及连接。在软件设计上阐述了各个功能的程序流程。在煮饭的软件实现当中,引入了模糊控制器的理论,实现了米量判断时间来判定米量值,并且着重写了如何进行温度的实时控制,本文中列举了大量的数据和图片,作为支持理论的依据。本文所阐述的功能并不是很全,只是实现目前电饭煲普遍能实现的功能,其他功能有待今后进一步开发实现。21世纪是一个信息化、节能化和环保化的时代。基于此背景,我们还可以在此智能电饭煲的基础上填加一些更新的功能,比如物联网功能,能够通过使用者的意愿随时通过短信,邮件等媒介向电饭煲进行控制,更大程度上方便人们的生活。目前国内的电脑电饭煲大部分都是使用模糊控制理论来控制加热系统,模糊控制的优点在于它可以模拟人的思维,用推理的方式进行饭量的检测和加热的控制,这种控制技术在国内已经开始普及和成熟。但模糊控制也有它的缺点,就是没有学习能力。在电饭煲的使用过程中存在外部环境差异、内部零件损耗及用户使用习惯的问题。这就需要电饭煲在使用过程中通过工作的积累对这些状态进行学习。但如果是带有学习功能的电饭煲,它可以根据用户使用功能菜单的次数进行计算,将默认功能设定在用户使用最多的菜单上,这样用户就可以省却繁琐的操作,轻轻一按就可以实现想要的功能。因此,人工智能模糊控制技术将是今后电饭煲控制技术的一个发展方向。第35页 参考文献[1].邹丽新翁桂荣,单片微型计算机原理(第二版).苏州大学出版社,2009.1(2)P3-10.[2].黄虎奚大顺,电子系统设计(专题篇).北京航空航天大学出版社,2009.2P154P120.[3].余子平奚大顺,电子系统设计(基础篇).北京航空航天大学出版社,2010.9P42.[4].朱欣华姚天忠邹丽新,智能仪器原理与设计.中国计量出版社,2010.7P2-3P67.[5].陆应华,电子系统设计教程.国防工业出版社,2009.1P89.[6].康华光,电子技术基础(模拟部分第五版).高等教育出版社,2006.1P199.[7].阎石,数字电子技术基础(第四版).高等教育出版社,1983.4P44.[8].刘俊伏宗云.,DS18B20与单片机的借口及编程技术.河北工业技术出版社,2007.4P227-229.[9].求是科技,单片机典型模块设计实例导航,人民邮电,2004.5P50.[10].赵卿赵刚,基于51单片机的温度测量系统.微计算机信息,2007.2P154-156.[11].李光飞楼然菊,单片机课程设计指导,北京航空航天大学出版社,2008.3P155P284.[12].张欣孙宏昌尹霞,单片机原理与C51程序设计基础教程,清华大学出版社,2008.7P244P349.[13].孙增祈,智能控制理论与技术,清华大学出版社广西科学技术出版社,1997.4P16-120.[14].李人厚,智能控制理论与方法,西安电子科技大学出版社,2007.7P39-100.[15].边春元李文涛江杰杜平,C51单片机典型模块设计与应用,机械工业出版社,2008.4P155-158.[16].李海滨片春媛许瑞雪,单片机技术课程设计与项目实例,中国电力出版社,2009.10P58-77P117-138.[17].张景璐于京马泽民,51单片机项目教程,人民邮电出版社,2010.3P43-77P87-118.[18].田立马鸣鹤,51系列单片机开发实例精解,中国电力出版社,2009.8P200.[19].陈志旺陈志茹阎巍山,51系列单片机系统设计与实践,电子工业出版社,2010.7P109-111P269-293.[20].邓红曾屺王嘉伟,单片机实验与应用设计教程,冶金工业出版社,2004.5P139-167.[21].李国勇,神经模糊控制理论及应用,电子工业出版社,2009.1P211-246第35页 附录整体电路图第35页 部分源程序fisMat=newfis("A");fisMat=addvar(fisMat,"input","e",[-6,6]);fisMat=addvar(fisMat,"input","de",[-6,6]);fisMat=addvar(fisMat,"output","u",[-6,6]);fisMat=addmf(fisMat,"input",1,"NB","gaussmf",[1.8-6]);fisMat=addmf(fisMat,"input",1,"NM","pimf",[-7-4-4-1]);fisMat=addmf(fisMat,"input",1,"NS","pimf",[-6-2-21]);fisMat=addmf(fisMat,"input",1,"NZ","trimf",[-300]);fisMat=addmf(fisMat,"input",1,"PZ","trimf",[003]);fisMat=addmf(fisMat,"input",1,"PS","pimf",[-1226]);fisMat=addmf(fisMat,"input",1,"PM","pimf",[1447]);fisMat=addmf(fisMat,"input",1,"PB","gaussmf",[1.86]);fisMat=addmf(fisMat,"input",2,"NB","gaussmf",[0.9-6]);fisMat=addmf(fisMat,"input",2,"NM","gaussmf",[0.9-4]);fisMat=addmf(fisMat,"input",2,"NS","gaussmf",[0.9-2]);fisMat=addmf(fisMat,"input",2,"ZE","gaussmf",[0.90]);fisMat=addmf(fisMat,"input",2,"PS","gaussmf",[0.92]);fisMat=addmf(fisMat,"input",2,"PM","gaussmf",[0.94]);fisMat=addmf(fisMat,"input",2,"PB","gaussmf",[0.96]);fisMat=addmf(fisMat,"output",1,"BB","gaussmf",[0.9-6]);fisMat=addmf(fisMat,"output",1,"BM","gaussmf",[0.9-4]);fisMat=addmf(fisMat,"output",1,"BS","gaussmf",[0.9-2]);fisMat=addmf(fisMat,"output",1,"M","gaussmf",[0.90]);fisMat=addmf(fisMat,"output",1,"SB","gaussmf",[0.92]);fisMat=addmf(fisMat,"output",1,"SM","gaussmf",[0.94]);fisMat=addmf(fisMat,"output",1,"SS","gaussmf",[0.96]);rulelist=[11111;12111;13111;14111;15211;16411;17411;21111;22111;23111;24111;25211;26411;27411;31211;32211;33211;34211;35411;36511;37511;41211;42211;43311;44411;45511;46611;47611;51211;52211;53311;54411;55511;56611;57611;61311;62311;63411;64611;65611;66611;67611;71411;72411;73611;74711;75711;76711;77711;81411;82411;83611;84711;85711;86711;87711];fisMat=addrule(fisMat,rulelist);subplot(4,1,1);plotmf(fisMat,"input",1);xlabel("e");ylabel("输入隶属度");subplot(4,1,2);plotmf(fisMat,"input",2);xlabel("de");ylabel("输入隶属度");subplot(4,1,3);plotmf(fisMat,"output",1);xlabel("u");ylabel("输出隶属度");subplot(4,1,4);gensurf(fisMat);第35页'