基于单片机的模糊控制系统的设计与实现

发布者:science56最新更新时间:2009-12-28 来源: 单片机信息网关键字:模糊控制  单片机  模糊推理  A/D 手机看文章 扫描二维码
随时随地手机看文章

1 引言

     模糊控制(Fuzzy Control)是目前自动控制研究中活跃而富有成果的领域之一,模糊理论是当前能用来对信息进行软处理的最新技术,可以将人的定性思维和判断方法定量化 为适合计算机处理的过程,使计算机能判断像“大概”、“轻”这样的模糊信息。采用传统控制理论,不管是用经典控制理论还是用现代控制理论来设计一个控制系 统,都需要事先知道被控对象的精确数学模型。然而,在许多情况下被控对象(或生产过程)的精确数学模型很难建立;像建材工业生产中的水泥窑、玻璃窑,化学 生产中的化学反应过程,食品生产中的发酵过程,还有众多炉类的热处理过程。诸如此类过程具有变量多,各种参数存在不同程度的时变性;且过程具有非线性,强 耦合,较大的随机干扰、过程机理错终复杂、存在各种不确定性以及现场测量手段不完善等特点。这些特点使得建立这一类过程的精确数学模型的难度很大,或甚至 根本办不到。

      模糊控制是基于规则的智能控制方式,它不依赖于被控对象的精确数学模型,特别适合对具有多输入一多输出的强耦合性、参数的时变性、严 重非线性与不确定性的复杂系统或过程的控制,且控制方法简单,鲁棒性好[1][2]。将模糊控制技术应用于一般的电子产品在国外已是很普遍的现象,单片机 常用的控制器件,把二者结合起来,可使控制器的性能指标达到最优的目的。本文就是通过利用单片机作为平台,围绕模糊控制规则,以模糊推理算法作为控制系统 核心,开发出具有自校正能力的通用的模糊控制器。最后以一个温度监控系统为实例介绍了系统的软硬件设计。

2 模糊控制系统的组成及原理

2.1模糊控制系统的基本组成与原理

 

图1 模糊控制器原理图

     如图1所示,模糊控制器是模糊控制系统的核心部分,也是和其它控制器最大区别环节。模糊控制器有四个基本部分组成:

    (1)模糊化。把输入信号映射到相应域上的一个点后,将其转化为该论域上的一个模糊子集,即把输入的精确量转化为模糊量。

    (2)知识库。知识库包含了具体应用领域中的知识和要求的目标,通常由数据库和模糊规则库两部分组成。数据库主要包含各语言变量的隶属函数,尺度变换因子和模糊空间的分级数等;规则库包含了用模糊语言变量表示的一系列控制规则,他们反映了控制专家的知识和经验。

    (3)模糊推理。模糊推理是模糊控制的核心,它具有模拟人的模糊推理的能力。该推理过程是基于模糊逻辑中的蕴含关系及推理规则来进行的。

    (4)清晰化。清晰化又称为解模糊化,作用是将模糊推理得到的控制量(模糊量)变换为实际的可用于被控对象的精确量。它包括两部分的内容:一是将模糊的控制量经解模糊化变换变成表示在论域范围的精确量;二是将表示在论域范围的精确量转换成实际的控制量。

2.2 模糊控制系统的基本工作原理

    模糊控制系统通常由计算机实现(包括PC机、单片机、单板机以及DSP等),一般设计思想是:

    1.以误差e和误差变化率ec作为模糊控制器输入量,u为输出控制量。定义误差e和误差变化率ec及输出变量u的模糊集及论域。

    例如:

    e和ec的模糊集为{NB,NM,NS,O,PS,PM,PB}
    u的模糊集为{NB,NM,NS,NO,O,PO,PS,PM,PB}
    e的论域{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}
    ec的论域{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}
    u的论域{-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7}

    其中:NB,NM,NS,NO,O,PO,PS,PM,PB分别代表负大,负中,负小,负零,零,正零,正小,正中, 正大这样的模糊语言变量。

    2.确定模糊规则R(模糊关系)。

    例如:

if  e=NB  or  NM  and   △e=NB  or  NM,then   u=PB
or
if  e=NB  or  NM  and   △e=NS  or  O,  then   u=PB

    3.模糊语言变量确定隶属函数,即对模糊变量进行赋值。

    4.计算机经过采样和A/D转换获得被控量的精确值,然后将此量与给定值比较得到误差信号e和ec。把e和ec模糊量化,得到e和ec的模糊子集(实际是模糊向量e和ec)。
5.根据模糊向量e、ec和模糊控制规则R,按推理合成规则进行模
糊决策,得到控制量(模糊向量u)。

3 基于单片机的温控系统

3.1 系统原理

      本系统有温度传感器DS18B20 , ATmega8单片机、执行机构,外围电路包括键盘,LED显示以及保护电路构成的闭环控制回路,控制对象为水温。系统的原理框图如图1所示。

  

3.2 硬件设计

1、ATmega8是采用低功耗CMOS工艺生产的基于AVR RISC结构的8位单片机。工作电压4. 5-5.5 V,芯片内部集成A/D转换功能。通过编写程序,可将芯片的PC0至PC6口从普通的I/O口功能用作8位或10位A/D转换,从而省去外围的A/D转换 电路。ATmega8内部有3个定时器T0,T1和T2,本系统使用2个,分别用作Ss的温度数据采集和5 NS的LED刷新显示。

2、 DS18B20支持“一线总线”接口,从而提高了系统的抗干扰性。温度测量范围从-55℃~+ 125℃,在-10℃~+85℃时测量精度为0. 5℃。DS18B20采用3脚TO-92封装。分别为GND电源地,DQ数据输人/输出端(单线总线),VDD外接供电电源输人端(3.0~5. 5 V) 。DS18B20内部主要由寄生电源、温度传感器、64位激光ROM单线接口和配置寄存器等组成。在本系统中,将DQ接ATmega8的PC4口,VDD 与单片机Vcc同接+5V电源,并在DQ和VDD之间接一个4. 7 kΩ的上拉电阻,即可完成温度的采集部分的硬件电路。

        DS18 B20规定了自己的通信协议,在每一次的温度采集转换时必须要经过以下的步骤:每一次读写之前都要进行复位;复位后发送一条ROM指令;发送RAM指令。 复位要求ATmega8将数据线下拉500μs,然后抬至高电平,DS18B20收到信号后等待16~60μs后发出60~240μs的低脉 冲,ATmega8收到此信号后表示复位成功。

3、键盘用作上位机对下位机的通信控制。显示电路采用10位共阴极LED,通过3片Max595芯片与单片机相连,同时显示当前温度值和设定值。外围电路同时有4个按键,可进行温度逐次加减、功能切换以及保存等功能。

3.3 软件设计

    整个系统的硬件电路设计相对简单。在本系统中采用增量型PID控制算法,即:

    △u(k)=u(k)-u(k-1)=KP[e(k)一e(k-1)]+Ki(k)+Kd[e(k)一2e(k-1) +e(k-2)]

式中,△u(k)为控制增量;KP为比例参数;Ki为积分参数;Kd为微分参数;e(k)为系统偏差。先根据KP、 Ki 、Kd的值,计算出输出U的初值,再根据操作人员的给定值得到偏差e和偏差变化率ec,然后通过模糊规则表推导出KP'、 Ki' 、Kd'的值,再计算出△u。

      由于增量型的算法不需要累加量,控制增量△u仅仅与最近的采样次数有关,所以误动作时的影响小,而且比较容易通过加权处理获得比较好的控制效果。这也是本系统采用增量型的PID控制算法作为Fuzzy PID控制器中的PID调节器部分算法的原因。

       模糊控制器的关键是总结操作人员和技术人员的实际操作经验和技术知识,并建立合适的模糊规则表,并将模糊规则表通过程序编写人单片机ATmega8中的EEPROM中去,在线时通过查询得到合适的PID参数。控制器的控制范围为整个测量系统的测量范围,各个隶属函数的论域范围既要满足覆盖的原则,又不要使规则过多。根据多次实验,在本系统中,偏差e和偏差变化率 ec的变化范围为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。其模糊子集为e、ec= {NB,NM,NS,O,PS,PM,PB},分别代表负大,负中,负小,零,正小,正中,正大。在本系统中,所设定的偏差e和偏差变化率ec以及KP、 Ki 、Kd的各个子集均采用正态分布。

 

图3 程序设计流程图

   应用模糊合成推理使在线运行的过程中完成对PID参数的自行调整,具体步骤为:(1)采样获取当前温度数据。(2)获 取偏差和偏差变化率:e(k)=R(k)-Y(k);ec(k)=e(k)-e(k-1)。(3) e(k)和ec ( k)模糊化。(4)计算当前KP、 Ki 、Kd。(5)PID控制器输出。

     在编写程序时,考虑到由于温度系统变化化缓慢,所以采样周期用软件和硬件相结合的方法,即用ATmega8的T1和软件计时相结合的方法。在等待采样周期到达的期间内不断进行扫描和显示过程,通过LED显示给定温度和采样的温度,通过ATmega8的T0进行5 ms的定时刷新LED。模型控制子程序是根据采样值和给定值求得温度的偏差和偏差变化率,将KP、 Ki 、Kd三个参数的模糊规则表写人单片机的EEPROM中,通过在线查表获得控制。具体流程图如上图3所示。

4 结论

     本文首先介绍了模糊控制理论的基本原理,在此基础上将模糊控制理论与常规PID控制相结合,在以单片机ATmega8为系统核心部件对温度进行控制。相较单 一的PID控制来说,模糊PID控制的效果具有动态效果好,上升时间快,超调小的优越性,在本系统中也取得了很好的控制效果。另外可以发现,传统控制与模 糊控制是可以协同工作、相互补充的。

      本文作者创新点为:将模糊控制系统应用于水温的监控中,打破了传统的控制思路。另外将单片机应用于控制系统中,使控制系统更加简洁,更容易控制,为工业控制系统提供了另外一条更好的思路。

关键字:模糊控制  单片机  模糊推理  A/D 引用地址:基于单片机的模糊控制系统的设计与实现

上一篇:S3C44B0X+μcLinux的嵌入式以太网设计与分析
下一篇:飞思卡尔 i.MX 平台支持 Flash Player 10.1

推荐阅读最新更新时间:2024-05-02 20:57

玩转单片机,你我都是菜鸟(续1)
回想这一个月,我独自一人一路走来真的走了不少的弯路,走过太多误区:1.先打好理论基础,再实践;2.想直接做项目,忽略大项目是由小工程堆积而成的等等。接下来我继续回想我的经历。。。 在这一个月以前我的机械本体已经做好了,其实机械本体并非我自己完全设计制作,只是我感觉我的搭档做的极既难看又笨重,更何况机械本体的设计必须和电路设计相符,不会存在干涉。为此我不得不返工。 由于我和你的心情一样,做智能车肯定是想让它先动起来。所以,我的第一个电路是电机驱动电路,为此我筹备了很长时间:1.我没钱买不起电机,实验室有现成的就直接用;2.实验室的电机没有参数,不知如何选择驱动芯片;3.实验室的电机自带加速箱、很笨重,要考虑功耗问题。4.由于机械已经
[单片机]
51单片机IO口直接驱动LED数码管方法
1.实验任务   如图13所示,利用AT89S51 单片机 的P0端口的P0.0-P0.7连接到一个共阴 数码管 的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。 2. 电路 原理图             图4.7.1 3.系统板上硬件连线   把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连,……,P0.7/AD7与h相连。 4. 程序设计内容 (1). LED 数码显示原理   七段LED显示器内部由七个条形 发光
[单片机]
51<font color='red'>单片机</font>IO口直接驱动LED数码管方法
单片机汇编语言调用C语言的方法
在keil中新建工程,先用汇编编写主体程序,在主体程序中要对要调用的子程序进行声明,如EXTRN CODE (function) EXTRN DATA (DATT0,DATT1,DATT2) ,然后,另建立一个c语言的文件,(千万不要把汇编和c放到一个文件中)并加入到新的工程中,进行编译。下面给一个在网上搜的,有空我编一个例子。 汇编语言调用C语言    这是我刚开始学硬件时做过的一个项目,刚开始是从汇编开始的,从下位机采集上来的数据是浮点数(4字节)我要用接收下来,然后再送到数码管去显示这个浮点数,这首先要把接收到的数(4字节数)再变成浮点数,虽然有浮点数的变换原理但要是用汇编程序来实现非常的繁琐,我想到用C语言来自动实现
[单片机]
PIC单片机模拟读写24C01 EEPROM
//************************************************** //实验目的: //熟悉使用单片机模拟读写24C01 EEPROM //1、首先向24C01 EEPROM写入数据 //2、在从24C01 EEPROM中读取数据,并用LED显示 //************************************************** //************************************************** //硬件设置: //1、SW4开关全部闭合 //2、SW2开关1闭合,其它断开 //3、SW3开关7和8闭合,其它断开 //*******
[单片机]
LCD驱动芯片HT1622 MCU源码
单片机源程序如下: #include LCD.h #include LCD_LIST.h #define delay_ns(m) {u8 i;for(i=(m);i 0;i--);} static u8 lcdImg ; static u8 discnt; //-----------硬件驱动部分--------------------------------------------------------------------------------------------- void
[单片机]
单片机如何检测高电平?
IO口检测高点平的问题,曾经而困扰我不少时间。 这几天做一个项目,又有点晕呼了,查了不少资料,做了一个总结,和大家分享: 1、51单片机的I/O 口检测高低电平是需要首先让该端口置为1的。此时这个引脚才被设置为输入。 2、如果是avr单片机,可以通过设置DDRx的值来设置输入输出(详见数据手册~~) 3、切忌要将单片机的检测端口设置为输入,否则可能影响被检测模块端口的电压(如:被拉低电平至0v,或被拉高) 4、注意单片机一般是TTL电平模式的,因此高电平的最低应该是2V,低电平的最高应该是0.8V。(具体还是见数据手册比较保险一点)
[单片机]
单片机测控系统中的抗干扰技术
摘 要:本文针对单片机测控系统中的干扰因素,并结合实际应用系统给出了采取软、硬件两种方法抗干扰的具体措施。 关键词:单片机测控系统抗干扰 概述 干扰是造成单片机测控系统故障的主要原因之一。干扰对系统的影响轻则影响测量与控制精度,重则使工作系统完全失常。要消除干扰必须抓住形成干扰的三要素,即:干扰源、耦合通道和接收设备。 1干扰因素 在单片机测控系统中,主要存在空间辐射干扰、信号通道干扰、电源干扰和数字电路引起的干扰。 抗干扰就是针对干扰的产生性质、传播途径、侵入的位置和侵入的形式,采取适当的方法消除干扰源,抑制耦合通道,减弱电路对噪声干扰的敏感性,通常需要采取“综合治理”的措施。
[应用]
英飞凌,凭什么成为汽车MCU老大?
全球汽车芯片“顶流”英飞凌再度迎来高光时刻。 TechInsights的最新研究显示,2023年全球汽车半导体市场规模增长16.5%,创下692亿美元的纪录。其中,英飞凌总市场份额增长了一个百分点,从2022年的近13%增长至2023年的约14%,巩固了公司在全球汽车半导体市场的领先地位。 同时,英飞凌在汽车MCU领域的份额终于做到无人能敌,把先前第一名的日本瑞萨甩在身后,MCU首次问鼎全球第一。英飞凌在FY24Q1业绩说明会中表示,过去两年里,客户下了比实际需要更多的订单,最大增长驱动因素来自汽车MCU,甚至比碳化硅部分还要大。 一向低调,给人“闷声发大财”印象的英飞凌再次秀肌肉,英飞凌怎么做到的?借此我们将回顾近一
[汽车电子]
英飞凌,凭什么成为汽车<font color='red'>MCU</font>老大?
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved