基于单片机的模糊控制系统简介

发布者:电子设计探索者最新更新时间:2012-08-01 来源: 单片机信息网 关键字:单片机  模糊控制系统 手机看文章 扫描二维码
随时随地手机看文章

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所示。


 

  [page]

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控制的效果具有动态效果好,上升时间快,超调小的优越性,在本系统中也取得了很好的控制效果。另外可以发现,传统控制与模 糊控制是可以协同工作、相互补充的。
      本文作者创新点为:将模糊控制系统应用于水温的监控中,打破了传统的控制思路。另外将单片机应用于控制系统中,使控制系统更加简洁,更容易控制,为工业控制系统提供了另外一条更好的思路。

关键字:单片机  模糊控制系统 引用地址:基于单片机的模糊控制系统简介

上一篇:基于AVR微控制器的电力机车智能辅保系统的实现
下一篇:用AVR单片机创造机器生命

推荐阅读最新更新时间:2024-03-16 13:04

51单片机基础(1)
1. 什么是单片机?其主要特点有那些? 单片微型计算机(Single-Chip Microcomputer),简称单片机。就是将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)和其它多种功能器件集成在一块芯片上的微型计算机。 单片机的主要特点有:(1)可靠性高(2)便于扩展(3)控制功能强(4)低电压、低功耗(5)片内存储容量较小,除此之外,单片机还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点。 2. MCS-51系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么? MCS-51单片机在片内集成了中央处理器(CPU)、程
[单片机]
分时操作系统思想在单片机中的具体应用
随着单片机技术的发展,单片机开发的理念也在不断更新:逐步采用高性能的16/32位单片机,采用C、JAVA等高级语言编程,采用RTOS及其平台进行开发已经成为一种趋势。 分时操作系统概述 分时操作系统把CPU的时间划分成长短基本相同的时间区间,即"时间片",操作系统轮流分配给各个作业使用。某个作业在时间片结束完成,该作业将被挂起,等待下一轮循环再继续做。分时操作系统主要具有以下3个特点:多路性,用户通过各自的终端,可以同时使用一个系统。及时性,用户提出的各种要求,能在较短或可容忍的时间内得到响应和处理。独占性,在分时系统中,虽然允许多个用户同时使用一个 CPU,但用户之间操作独立,互不干涉。 分时操作系统主要是针对小型机以上的
[单片机]
分时操作系统思想在<font color='red'>单片机</font>中的具体应用
PIC16F72单片机控制HT1621B驱动LCD
//P IC 16C72 单片机 控制HT1621B驱动 LCD #include pic.h #define BIAS 0X50 //1/2偏压,4背极 #define RC256 0X30 //系统时钟选择为片内RC 振荡器 #define WDTDIS1 0X0A //禁止WDT溢出标志输出 #define TIMERDIS 0X08 //时基输出禁能 #define SYSEN 0X02 //打开系统时钟 #define LCDON 0X06 //打开偏压发生器 #define SY SDI S 0
[单片机]
统计单片机引脚输入脉冲个数,边沿触发编程
题目:已知负跳边脉冲从51单片机P3.3引脚输入,且该脉冲数少于65535个,试利用/INT1中断,统计输入脉冲个数。脉冲数存内RAM30H(低位)31H(高位),并调用数据处理子程序WORK和显示子程序DIR(已知,可直接调用)显示,要求用边沿触发方式。 参考MCS-51单片机程序: org 000h ljmp main org 013h ljmp i_int1 org 050h main: mov sp,#60h mov tcon,#00000100b mov ie,#10000100b mov 3
[单片机]
基于单片机的特殊功能寄存器结构原理分析
我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧! 下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。 单片机内部结构图 对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于定时/计数器,串行I
[单片机]
基于<font color='red'>单片机</font>的特殊功能寄存器结构原理分析
PIC单片机之定时器(TMR0)
什么是定时器? 定时器顾名思义就是用来定时的。在单片机应用中常常用于各种各样的定时。比如让LED灯每隔 1S 亮一次。 这个1S 就是由定时器做到的。 指令周期 指令周期就是单片机执行一个指令所花费的时间。这也是定时器定时的最小时间单位。时钟频率/4=指令频率。1/指令频率=指令周期。 假设现在的时钟是4MHZ ,4MHz的时钟经过4分频后变成了 1MHz 其周期为0.0000001s也就是1us,这个1us就是指令周期,这1us也就是定时器定时的最小单位。 定时器与预分频器 假设在没有预分频器情况下。开启定时器 每隔一个指令周期定时器就加一。假设时钟是4MHz 也就是每隔 1us 定时器加一。 如果有
[单片机]
PIC<font color='red'>单片机</font>之定时器(TMR0)
基于ATmega8 单片机控制的正弦波逆变电源
  在风电行业中,经常需要在野外对风机进行维修,这时必须为各类维修工具和仪器进行供电。因此,设计一种便携式。低功耗。智能化的正弦 逆变电源 来为这些设备供电是十分必要的,可大大提高维修风机的效率。   本文正是基于这种情况下而设计的一种基于单片机的智能化正弦 逆变电源 。   1正弦 逆变电源 的设计方案   本文所设计的逆变器是一种能够将DC 12 V直流电转换成220 V正弦交流电压,并可以提供给一般电器使用的便携式电源转换器。目前,低压小功率逆变电源已经被广泛应用于工业和民用领域。特别是在交通运输。野外测控作业。机电工程修理等无法直接使用市电之处,低压小功率逆变电源便成为必备的工具之一,它只需要具有一块功率足够的电池与它连接
[电源管理]
基于ATmega8 <font color='red'>单片机</font>控制的正弦波逆变电源
51单片机 (6)串口中断通信+定时器2串口中断
51单片机默认使用定时器1作为串口通信的波特率发生器、定时器1中断通信,串口与定时器1冲突,在遇到定时器不够用的时候可以用定时器2 #include reg52.h void DelayMs(unsigned int i); void SerialInit(); void SendByte(unsigned char sbyte); void SendString(unsigned char *pstr); void main(void) { SerialInit(); while(1); //注:必需要无限循环 } /* //单片
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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