在DSP上实现实时模糊逻辑(图)
发布时间:2007/8/28 0:00:00 访问次数:426
作者:Byron Miller 独立固件工程师
模糊逻辑并不需要特别的硬件或新的编程语言,只是要求有一种不同的设置隶属关系(membership)的方法。从电梯到电饭煲,大量的物理系统都可受益于模糊逻辑编程。本文探讨了对一个商用DSP芯片编程来创建一个基本的模糊逻辑控制器。
你可以采用现成的标准微处理器来构建模糊逻辑系统。传统的微处理器对于大多数应用来说是足够的,即使是模糊逻辑,但对于需要可预测且非常快速响应时间的高安全性系统来说则未必。当传统处理器不够快时,数字信号处理器(DSP)可能正是你的系统所需要的。
图1:“高”的布尔变量。
DSP是具有指令集和面向算术运算特性的专用微处理器,其最初只是用在信号处理应用。现在,随着DSP软件开发工具种类的增加和质量的提升,这种处理器变得越来越流行。DSP如今在成本上与通用微处理器也能竞争。今天,任何可以受益于高速乘法/累加 (MAC)运算的应用都可以考虑采用DSP。
本文将阐述模糊逻辑系统的组成部分,并给出如何采用DSP来实现的实例。
模糊逻辑基础
Lotfi Zadeh被认为是模糊逻辑的创立者,他在1965年的一篇文章中提出了布尔数学体系集合论的扩展,将二元扩展到多值。他的模糊逻辑集合论是一种广义的经典集合论,是对非精确性的极好表述。模糊逻辑的优势在于它可以在不采用数学方法的情况下使你能准确地描述一个过程或行为。
图2:“高”的模糊变量。
布尔数学体系集合既可以是真,也可以是假,而模糊集合可以具有部分的这种隶属关系。例如,图1给出了一个布尔变量。在布尔表中,对于6英尺来说“高”是真,而低于6英尺则为假,但在图2中,模糊变量的高既不是真也不是假,它具有可变的真假隶属关系。布尔变量通常被称为明确的集合(crisp set),模糊变量成为模糊集合。模糊集合行为类似于其对应的明确集合。举例来说,模糊逻辑采用“与”、“或”、“非”以及补数运算。“与”处理是取输入量中的小者,“或”处理是取输入量的较大者,补数运算是用1减去输入值。
控制器的组件
任何基于模糊逻辑的控制器具有三个组件:模糊化器(fuzzifier)、规则库和去模糊化器。在将一个明确(数字)输入转变成模糊值并对该值进行处理,然后再将模糊值转变成明确值输出的过程中,每个组件扮演着重要的角色。尽管模糊控制器的实现不尽相同,他们都具有这三个基本部分。
模糊化器获取一个明确输入值,并根据是否需要将其进行缩放来转换成模糊值,并转变为多值实体(entity)。缩放处理将输入域映射到所有变量都采用的一些内部格式。该多值实体是将输入值与其对应的输入集合进行比较的结果,并对该值进行映射处理以反应出其隶属关系特性。
列表1:去模糊化器:主函数的C代码。
规则库从前一级取得输入值,并将其与每个相关语句的区间相加。规则库由一系列一个或多个IF-THEN语句组成。每个语句依次组成了两个部分:条件(antecedent),在关键字then的左边;结果(consequent),在then的右边。一个语句可能具有一个或更多的antecedent和consequent。典型的规则语句看起来就像这样:
IF antecedent1 . . . antecedentN THEN
consequence1 . . . consequenceN
条件和结果都采用条件形式变量,这里的变量是条件的输入变量或结果的输出变量。结果的条件部分是一个模糊隶属函数,如“冷”、“暖和”、“热”。规则库对来自模糊化器的数
作者:Byron Miller 独立固件工程师
模糊逻辑并不需要特别的硬件或新的编程语言,只是要求有一种不同的设置隶属关系(membership)的方法。从电梯到电饭煲,大量的物理系统都可受益于模糊逻辑编程。本文探讨了对一个商用DSP芯片编程来创建一个基本的模糊逻辑控制器。
你可以采用现成的标准微处理器来构建模糊逻辑系统。传统的微处理器对于大多数应用来说是足够的,即使是模糊逻辑,但对于需要可预测且非常快速响应时间的高安全性系统来说则未必。当传统处理器不够快时,数字信号处理器(DSP)可能正是你的系统所需要的。
图1:“高”的布尔变量。
DSP是具有指令集和面向算术运算特性的专用微处理器,其最初只是用在信号处理应用。现在,随着DSP软件开发工具种类的增加和质量的提升,这种处理器变得越来越流行。DSP如今在成本上与通用微处理器也能竞争。今天,任何可以受益于高速乘法/累加 (MAC)运算的应用都可以考虑采用DSP。
本文将阐述模糊逻辑系统的组成部分,并给出如何采用DSP来实现的实例。
模糊逻辑基础
Lotfi Zadeh被认为是模糊逻辑的创立者,他在1965年的一篇文章中提出了布尔数学体系集合论的扩展,将二元扩展到多值。他的模糊逻辑集合论是一种广义的经典集合论,是对非精确性的极好表述。模糊逻辑的优势在于它可以在不采用数学方法的情况下使你能准确地描述一个过程或行为。
图2:“高”的模糊变量。
布尔数学体系集合既可以是真,也可以是假,而模糊集合可以具有部分的这种隶属关系。例如,图1给出了一个布尔变量。在布尔表中,对于6英尺来说“高”是真,而低于6英尺则为假,但在图2中,模糊变量的高既不是真也不是假,它具有可变的真假隶属关系。布尔变量通常被称为明确的集合(crisp set),模糊变量成为模糊集合。模糊集合行为类似于其对应的明确集合。举例来说,模糊逻辑采用“与”、“或”、“非”以及补数运算。“与”处理是取输入量中的小者,“或”处理是取输入量的较大者,补数运算是用1减去输入值。
控制器的组件
任何基于模糊逻辑的控制器具有三个组件:模糊化器(fuzzifier)、规则库和去模糊化器。在将一个明确(数字)输入转变成模糊值并对该值进行处理,然后再将模糊值转变成明确值输出的过程中,每个组件扮演着重要的角色。尽管模糊控制器的实现不尽相同,他们都具有这三个基本部分。
模糊化器获取一个明确输入值,并根据是否需要将其进行缩放来转换成模糊值,并转变为多值实体(entity)。缩放处理将输入域映射到所有变量都采用的一些内部格式。该多值实体是将输入值与其对应的输入集合进行比较的结果,并对该值进行映射处理以反应出其隶属关系特性。
列表1:去模糊化器:主函数的C代码。
规则库从前一级取得输入值,并将其与每个相关语句的区间相加。规则库由一系列一个或多个IF-THEN语句组成。每个语句依次组成了两个部分:条件(antecedent),在关键字then的左边;结果(consequent),在then的右边。一个语句可能具有一个或更多的antecedent和consequent。典型的规则语句看起来就像这样:
IF antecedent1 . . . antecedentN THEN
consequence1 . . . consequenceN
条件和结果都采用条件形式变量,这里的变量是条件的输入变量或结果的输出变量。结果的条件部分是一个模糊隶属函数,如“冷”、“暖和”、“热”。规则库对来自模糊化器的数
上一篇:DSP在无线传感系统中的应用
上一篇:智能光网络及其规划设计