NLX230型模糊控制器及其嵌入式应用研究
扫描二维码
随时随地手机看文章
摘要:美国NeuraLogix公司的单片集成NLX230型模糊控制器是一种可编程的超大规模模糊逻辑处理器,处理速度高达30M规则/秒,可广泛应用于过程嵌入式控制、模式匹配、人工智能、机器人及专家系统等。文中介绍NLX230的逻辑设计特点、工作原理、内部结构特性、工作模式和应用接口设计,最后举例说明了NLX230的应用。关键词:模糊逻辑;模糊控制器;NLX230;接口设计;嵌入式应用
1 引言
在自动控制领域,模糊控制理论及其应用的研究取得了很大的进展,美国NeuraLogix公司推出的NLX230型单片模糊控制器是一种可编程的超大规模集成模糊逻辑微处理器FMC(Fuzzy Micro Controller),根据模糊逻辑原理对输入条件进行模糊逻辑运算,得到最优的动作,通过执行并行操作控制输出,其处理速度高达30M规则/秒,具有与计算机的接口电路、与外接EEPROM的接口电路和晶体振荡器接口电路,可广泛应用于过程嵌入式控制、模式匹配,人工智能,机器人及专家系统。
2 NLX230的设计特点与工作原理
模糊逻辑在控制领域的应用原理是利用模糊逻辑器件通过"项"和"规则"去构造任意复杂的线性和非线性函数,再根据输入状态经过模糊推理,找到最佳的输出动作值并应用于控制过程,从而使模糊逻辑获得类似于人类专家似然推理的能力。
NLX230基于条件用模糊逻辑规则计算出优化的输出操作。输入值在用户定义的隶属函数中按适合的程度排序。为了实施有效的数字化,采用1个线性对称隶属函数或最简单的最大/最小模糊参考方法,规则决定了在输入时所需的状态集,每一规则至多包含16个项,每1个项与1个"清晰"输入/模糊隶属函数配对。1个当前值是对用户在某一规则下的输出值合计的修改。对于所有的输入和输出,输入排序与规则处理是并行的。单片式24位宽的规则存储器最多可存64个规则,所有输入都可共享这些规则。根据需要每个输出可以被编程为最多用64个规则,任一个输出所用的规则个数是其他规则所用的规则的剩余数。模糊逻辑原理的高效数字化实现使NLX230在低价格下获得高处理速度(30M规则/秒)。
2.1 距离测量的相似判决原理
NLX230型单片模糊集成控制器利用模糊逻辑元件将输入与隶属度函数结合起来,确定输入对于被选定的隶属函数中心值的距离,通过距离测量进行相似决策。由于最佳隶属函数的形状与系统中传感器特性、控制响应及其他动态特性有关,因而确定最佳隶属函数形状往往是很困难的(当然,在某些情况下可以根据经验确定)。NLX230型单片模糊控制器在设计上采取了一种新的方法,不依赖隶属函数的形状和确值输入与隶属函数的交点,而且测算出输入与选定的隶属函数的中心点的距离,其原理如图1所示。不考虑隶属函数的区间和输入的单调,而测量输出与中间位置的距离,距离用中心位置减去输入,忽略符号。确值输入Xa离中心点越远,其隶属值越低,反之,其隶属值越高。当确值输入Xa正好位于中心点位置时,则隶属值最大。
有二种不同类型的隶属函数,对于第一种隶属函数,确值输入离中心点愈近,隶属值愈大,如果确值输入落入隶属函数的宽度范围之外,那么隶属值最小。对于第二隶属函数,当确值输入落入隶属函数的宽度范围之内时隶属值最小。距离测量的优点有二:其一是使设计者在保留重要信息的同时不必决定复杂隶属函数的形状;其二是这种方法提供了相似判决的简单途径。
2.2 确值输入向模糊逻辑量的转换
确值输入向模糊逻辑量的转换是通过测量距离的相似判决模糊逻辑单元实现的,在相似判决模糊逻辑单元内求取隶属值的电路结构如图2所示。模糊逻辑单元内被选定的隶属函数中心点值和确值输入送进减法器计算出差值ac,该差值与隶属函数宽度值相比较,只有当差值在宽度范围内时,隶属值计算器才输出结果(该结果等于从允许的最大隶属值中减去差值ac,如图1所示),否则,隶属值计算器输出将被置零或置最小值。隶属值实际上是1个模糊逻辑量,用μ(或d)表示。
3 NLX230的内部结构和引脚功能
NLX230型模糊控制器的内部结构如图3所示,它由模糊输入选择器,16个模糊单元、最小和最大比较器、规则寄存器、输出寄存器和定时控制等部分组成,完成模糊推理运算并作出控制决策。
3.1 模糊输入选择器和模糊单元
8选1多路选择器控制N LX230中16个模糊单元的每个单元的输入。模糊单元求取输入量对用户所定义的隶属函数的隶属度。每个模糊单元从8个外部输入中任选1个作为输入数据(1个模糊单元只能访问1个输入数据)。把模糊单元组态构成输出反馈到输入的形式,可不处理外部输入。把一个输入同1个隶属函数联系起来构成1个项,NLX230最多可支持16个项。每个模糊单元的结构如图2所示,含有1个16位的项寄存器,包括8位的中心值、5位的宽度值及3位的输入选择组态(完成对8个外部输入中任1个输入的选择)。每个模糊单元计算输入值与用户定义的中心点的距离,完成输入确值量到模糊逻辑量的转换。这样,每1个模糊单元与1个8位中心位置相联,计算出距离后,其结果与用户定义的宽度相比较,5位的宽度值代表输入离中心位置的最远距离,如果输入的距离小于或等于此宽度,那么输入被认为是隶属函数的一部分,距离的求补得到隶属函数度。求补就是30减去距离(30是最大宽度,)输入离中心越近,隶属值越高,落在宽度内的隶属值被传到最小比较器来进行规则处理。
当输入等于中心值时,模糊单元输出最大值31;当输入落在宽度范围以外时,模糊输出值为0,表示完全没有关系。
3.2 最小值比较器和最大值比较器
NLX230的最小值比较器是由高流通量的神经元网路执行的,以适合高速的数据量。64条规则分别存储在64个规则寄存器中,每个规则寄存器字有24位,其前16位分别用来完成每个模糊单元的输出对最小比较器的使能。每个规则位固定对应1个模糊单元。当1个规则位被置1,则此规则包含该项,相应的模糊单元输出可与其他置1的规则位相比较以找出最小项。
某个规则的最小项一旦被找到,就储存在NLX230最大值比较器的暂存寄存器中,对应被处理的每一规则经处理所得最小项与暂存于最大值寄存器中的值进行比较,去小存大;当处理完所有规则,最大值寄存器中的结果是所有最小项中的最大值,该值对应的规则为取胜规则,代表1个"模糊"逻辑各结果的和。取胜规则的当前值(动作值)送到模糊量与确值量的转换单元(输出寄存器),经转换处理后进行模糊控制。
当前值定义在每个规则寄存器字的8个保留位,代表输出动作值所需的修正量,动作修正值是1个8位二进制补码值为-128~127。从规则寄存器字来的8位动作修正值与用户定义的初值相加。例如,初始值为100,动作修正值为-5,则输出为95。
3.3 规则寄存器和输出寄存器
规则寄存器用于存放控制规则,NLX230最多可存放64条规则。输出寄存器为总线使能方式,只要处理了所有的规则,规则寄存器的8位补码修正值与初始值之和,饱和算数运算使输出位取模128(当前值使输出高于或低于界限-128和127),输出即由模糊量转换为确值量,模糊控制器在输入下一组数据的同时输出结果数据。
3.4 NLX230的引脚功能
NLX230采用40引脚双列直插式封装,如图4所示。RST是系统复位脚,低电平有效。DI0-DI7是8位数据输入口。VSS是地。SK是串行时钟脚,用于将组态数据打入FMC(M/S=0时,该脚输出)。CS是片选,与M/S和R/W联用使能串行数据输入/输出(M/S=1时输出,M/S=0时输入)。DI是串行数据输入脚。DO是串行数据输出脚。M/S是主/从模式选择(M/S=1时为主动模式;M/S=0时为伺服模式)。R/W是读/写输入脚,仅用于伺服模式(R=1为读;W=0为写)。NC是空脚,必须接地。XI为晶体振荡器输入脚。XO为晶体振荡器输出脚。CLK是缓冲系统时钟输出脚。STB是选通脚,与MA0-MA2联用以选通输入/输出数据。MA2是输入/输出多路传输地址2输出脚。MA1是输入/输出多路传输地址位1输出脚。MA0是输入/输出多路传输地址位0输出脚。DO7-DO0为数据输出脚。VDD是+5V电源脚。
4 NLX230模糊控制器的工作模式
NLX230模糊控制器的工作模式有模糊单元模式、输入模式、输出模式及输入输出扩展应用。
4.1 模糊单元模式
在模糊单元模式下有二种方式,典型应用为模糊单元的输出表示每一个输入接近中心位置的程度;另一种方式是将NLX230组态成为不包含模糊单元,通过使用不包含模糊单元的工作方式可用输入与中心位置的距离来加权规则项。
4.2 输入模式
NLX230的输入即可以是来自8个分时多路输入引脚的信号又可以是输出的内部反馈信号,二种输入模式通过输入组态寄存器选择。
4.3 输出模式
NLX230的每个输出可以配置为立即输出和累加输出二种组态。在立即输出模式中,由取胜规则(该规则带有最大的最小项)所特指的动作值加上初始值。对NLX230的工作周期,原始的初始值都被用来计算输出。在累加输出模式中,1个输出的新值是加了新动作值(此动作值由获胜规则所决定)的现在值。在这个模式中,新输入值被保留作为初始我用于下1个输出值的计算。用户定义的原始初始值仅在复位后计算第一个输出值时被使用。
4.4 扩展
多个NLX230级联使用能够扩展输入、输出、模糊单元和规则的数目。
4.5 时钟
1个外部时钟源从XI引脚输入可直接驱动NLX230。NLX230也包含了1个有源振荡器电路用于时钟的发生。CLK提供了所需的时钟输出。
5 NLX230的操作方式
NLX230的操作模式通过初始化完成。复位引脚M/S可设置2种不同结构的操作方式:主动方式(NLX230自动从外部EEPROM中读取数据)和从动方式(NLX230等待外部逻辑电路读写数据)。
5.1 主动方式
主动方式是在复位引脚由"1"变为"0"和M/S为"1"时使NLX230开始1个自动卸载周期。NLX230通过时钟SK的发生、片选使能和地址(DO)的发生来寻址2048位的串行EEPROM。NLX230输出串行时钟(SK)并维持片选(CS),接着出现"读标志",7位地址在DO输出引脚出现,NLX230立即开始在DI引脚输入16位数据,该过程持续进行到NLX230已经输入128个数据字(16×28=2048),之后片选失效。这个组态周期的下1个工作是由NLX230处理出现在输入引脚(DI0-DI7)上的数据。
5.2 从动(伺服)方式
M/S为"0"时,NLX230处于从动(伺服)模式,由外部控制逻辑提供SK、CS、R/W等信号。在SK上升沿之前,维持R/W为低电平和CS为高电平以触发卸载过程。然后,在SK的上升沿由DI引脚输入数据。所有数据位(2048)顺序写入后,CS变为低电平;在SK的上升沿之前,保持R/W和CS信号为高电平以触发加载过程。然后,在SK的上升沿由DO引脚输出数据。所有数据位(2048)被顺序读出后,CS变为低电平。在串行卸载或加载周期之后,需要一个复位信号(保持为低电平)以清除内部数据通道。
6 应用接口
6.1 NLX230接口功能
NLX230有8个时分多路复用输入脚和8个多路复用输出脚。内部连接输出到输入可以得到反馈路径、外部晶体振荡器或PC电路;输入和输出计数的1个时钟输出;为使外部数据输入信号同步的1个帧信号;串行EEPROM接口由数据输入(DI)、片选(CS)、时钟(SK)和读写(R/W)引脚组成。当NLX230与微机接口时,只需DI、CS、DO、SK和R/W引脚即可。
6.2 数据接口电路
NLX230与微处理器(或单片机)接口只需5个引脚信号:DI、CS、DO、SK、R/W。图5所示为典型的控制系统数据接口,74373作为输入/输出数据锁存器,其个数与输入/输出个数相同。NLX230用于典型的输入/输出为8个8位数值的多路复用控制系统。MUX地址脚MA(2:0)、选通脚STB及动态输入或输出通道的译码由NLX230提供。NLX230提供所有必要的信号,由典型帧时序图可显示时间关系。输入值从DI(7:0)输入的同时输出也在DO(7:0)进行。
7 应用实例
应用实例是玩具电动汽车自动驾驶控制系统。根据输入由NLX230提供决策输出,由控制规则控制不同路面环境下的速度与方向。NLX230的开发系统ADS230由软、硬件二部分组成,主要功能是将应用系统的控制规则写成控制规则文件,并转换为有关寄存器的内容写入NLX230的规则寄存器。
7.1 标号定义
DF:前方;DR:右方;DL:左方;VE:速度;RO:路面;DI:方向;FT:油门;BR:刹车;LE:左;EI:右;ST:直;DF-CL:接近前方;DF-FA:远离前方;DR-FA:远离右方;DL-FA:远离左方;VE-SL:低速;VE-ME:中速;VE-FA:高速;RA-WE:路面滑;RO-ME:路面适度;TH-SL:抵挡;TH-ME:中挡;TH-FA:高挡;BR-OF:不刹车;AL-A:提示躲避;AL-V:提示速度;SI-R:右信号;SI-L:左信号;BR-LT:关油门;SP-I:速度变高;AC:累加;IM:立即;YES:是;NO:不是;IS:是;IN:包含;EX:不包含;THEN:则;AND:并且;LB:反馈。
输入/输出定义如表1所示。项的定义如表2所示。7.2 规则定义
7.2 规则定义
8 结束语
在模糊控制方面,NLX230型模糊控制器与单片机相比,具有推理速度快、功能强大、应用灵活和控制效果好等特点,因此,可广泛应用于过程嵌入式控制、模式匹配、人工智能、机器人及专家系统。