模糊推理系统在DSP上的实现和优化
更新时间:2023-05-15 17:33:01 阅读量: 实用文档 文档下载
您的论文得到两院院士关注
文章编号:1008-0570(2007)03-2-0177-03
DSP开发与应用
模糊推理系统在DSP上的实现和优化
RealizationandoptimizationofFuzzyInferencesysteminDSP
(吉林大学)武星星
朱喜林李晓梅
WUXINGXINGZHUXILINLIXIAOMEI
摘要:提出了一种便捷的模糊推理系统在DSP(数字信号处理器)上的实现方法,详述了利用MATLAB的模糊逻辑工具箱对模糊系统建模、算法模拟及在TMS320VC5509系统上的实现过程,对实现中遇到的问题给出了相应的解决方法。结合程序特点和硬件结构对代码进行了优化。通过实例证明,按此方法在DSP上实现的模糊推理系统和在MATLAB中算法模拟的输出一致,优化后代码的运行时间减少了约四分之一。
关键词:模糊推理系统;数字信号处理器;MATLAB;代码优化
文献标识码:A中图分类号:TP273
Abstract:AnimblemethodtorealizefuzzyinferencesysteminDSPwasadvanced.Wholeprocessofmodelingfuzzyinferencesystem
withfuzzylogictoolboxofMATLAB,arithmeticsimulationandrealizationinTMS320VC5509systemweredwelledon.Solutionstoproblemsencounteredintheprocessweregiven.Programcodewasoptimizedaccordingtotraitsoftheprogramandspecifichardwarestructure.ItwasprovedbyexamplesthatoutputoffuzzyinferencesystemrealizedinDSPwiththismethodcoincidewithoutputofarithmeticsimulationinMATLABandruntimeofoptimizedprogramcodewasreducedabout25percent.Keywords:fuzzyinferencesystem,DSP,MATLAB,codeoptimization.
首先通过菜单File—NewFIS—Mamdani或Sugeno设定模糊系统的类型,然后通过菜单Edit—AddVariable—Input和
1引言
由于可以系统有效地利用语言形式的专家经验,模糊推理系统已在诸多工程领域获得了应用,并且在复杂非线性问题的解决上具有独到的优势。从20世纪90年代以来,随着数字信号处理器DSP(DigitalSignalProcessor)功能和性价比的不断提升,已成为众多电子产品的核心部件,DSP系统被广泛应用于信号处理、自动控制、航空航天、家用电器等各个领域。本文结合MATLAB的模糊逻辑工具箱,以TI公司的主流低功耗处理器TMS320VC5509为例,详述了一种便捷地构建模糊推理系统、算法模拟、在DSP上实现和代码优化的方法。
Output为系统增加输入和输出,选定某个输入或输出,在Name
文本框中修改输入或输出的名称。双击某个输入/输出或通过菜单Edit—MembershipFunctions修改输入/输出的隶属度函数类型、参数或增减隶属度函数。通过菜单Edit—Rules启动规则编
辑器,添加模糊推理规则。最后分别选择模糊推理中的与、或、蕴涵和合成运算及解模糊方法的类型即可完成模糊系统的构建。建立后的模糊系统保存成为.fis格式文件,包含系统类型、模糊推理规则表等信息。
要测试建立后的模糊推理系统是否满足要求,首先调用read-
技
术创新
2模糊推理系统的构建和算法模拟
模糊推理系统在DSP上实现之前,先要进行系统构建和算法模拟,利用MATLAB的模糊逻辑工具箱可以方便地完成这一过程。在MATLAB的命令行输入fuzzy启动FISEditor,如图1所示:
fis函数将.fis格式文件中读入到FIS结构体变量中,然后调用e-valfis函数可以求出给定输入对应的模糊推理系统输出,从而实现
算法的模拟验证。在模拟验证中如果系统的输出不满足要求,可以反复修改系统的参数和结构直到得到理想的输出为止。
3在DSP上的实现
本文所用的数字信号处理器为TMS320VC5509,它基于代表TI公司最新一代C5000系列DSP的TMS320C55x处理器核,主要面向对低功耗、高性能要求严格的应用。同C54x系列相比,
C55x只用六分之一的功耗就可以达到5倍于C54X系列的性
能。它的核心功耗在电压0.9V时只有0.05mW/MIPS,这源自集中的低功耗设计和高级的电源管理技术。双乘法累加器(MAC)、可变长指令、增强的总线结构和算术逻辑单元(ALU)使得单周期内可以完成更多的数据读写、运算,可以更好地利用流水线结
图1模糊推理系统编辑器
武星星:博士研究生
基金项目:吉林省科技发展计划资助项目(20040333)PLC技术应用200例》
构,在提高性能的同时减少代码长度和功耗。本文所用的评估板上扩展了1M*16位的SDRAM和512K*16位的Flash。
在C55x中采用统一的数据/地址空间,其中程序空间采用
邮局订阅号:82-946360元/年-
177-
DSP开发与应用
中文核心期刊《微计算机信息》(嵌入式与SOC)2007年第23卷第3-2期
后再根据编译和运行结果调整,用-m生成的内存映像文件描述了程序和数据所占用的实际尺寸和地址,对这些参数的调整很有帮助。这里给出的参数已通过运行验证并加了一定的余量,可以满足一般模糊系统应用的需要。注意在C55x的链接命令文件中长度都以字节为单位。
所有的TMS320C55xC/C++程序在链接时都需要加入运行时支持库rts55.lib或rts55x.lib。C55x编译器支持两种存储器模式-小存储器模式和大存储器模式,在小存储器模式下程序必须满足一定的大小和存储器内位置的限制,在链接命令文件中用-l指定rts55.lib为运行时支持库。实验中发现,在编译通过后运行时出现“的Couldnotallocatememoryincallocfunctioncall”错误提示通常是因为使用了小存储器模式所致。使用大存储器模式时指定rts55x.lib为运行时支持库,并在CCS中通过菜单
字节寻址而数据空间采用字寻址。C55x的集成开发环境Code
ComposerStudio(简称CCS)支持C/C++和汇编语言的开发调
试。在此使用DSP仿真器、评估板和CCS进行程序开发和调试,首先连接仿真器和评估板的JTAG口,接着给评估板上电,最后连接仿真器和计算机的USB口。
TMS320C55xC语言在ANSIC的基础上增加了ioport、in-terrupt等关键字和CODE_SECTION等命令来实现硬件资源的调用和编译预处理。在MATLAB的toolbox\fuzzy\fuzzy目录中提供的fis.c和fismain.c中包含了可以独立运行的模糊推理引擎所需的各种函数源代码,它可以读入.fis文件和输入数据文件
并计算出系统输出,这使得利用第一步系统构建和算法模拟后得到的模糊推理系统变得简便可行。然而在DSP中不支持文件系统,这一问题可以采用如下方法解决:
(1)建立fisinout.c,在其main函数中调用returnFismatrix和returnDataMatrix函数从FIS文件和数据文件读出推理系统和输
入数据到数组中,然后逐行输出,同时输出推理系统矩阵和输入数据矩阵的行列数。
Project—BuildOptions在编译器选项对话框中添加-ml选项,本
文使用的就是大存储器模式。
技术创新
(2)在MATLAB的命令行下调用mbuild命令将fisinout.c编译成fisinout.exe。在windows的命令行下按“fisinout数据文件
的格式运行,FIS文件>输出文件”
(3)在CCS中创建Target为TMS320C55xx的工程,添加fuzzymain.c,用2中输出文件中的数据对fisMatrix矩阵和data-Matrix矩阵进行初始化。这里需要注意的是fisMatrix必须采用这种方法而不能直接用FIS文件初始化,这是因为蕴涵函数类型等信息在fisMatrix中存储的是数值形式的ASCII码值,而FIS文件中存储的是字符。在main函数中调用fisBuildFisNode函数生成fisMatrix对应的模糊推理系统结构变量fis,最后调用getFisOutput函数计算出系统输出。
链接命令文件(*.cmd)的编写在DSP系统开发中十分重要,
它不仅能以文件的形式表达链接选项设置、输入输出文件等,而且可以用MEMORY和SECTIONS指令来定制某个应用。例如在该应用中数据和程序空间的大小和位置,堆栈的大小等。本文所用的链接命令文件部分内容如下:
图2DSP中运算结果
以MATLAB自带的解决小费问题的模糊推理系统tipper.fis为例,系统的8组输入(服务和食物)分别为[3.05.0]、[2.07.0]、[1.0
-heap0x5000
-stack0x1000-sysstack0x500-mstar.map-lrts55x.libMEMORY{
DATA(RWI):origin=0x10500,len=0x15000PROG:origin=0x500,len=0x10000}
SECTIONS
{.text:{}>PROG
……
4.0]、[6.01.0]、[9.04.0]、[5.06.0]、[8.03.0]、[4.02.0]时,DSP的运行结果如图2所示,其中左下方的Stdout栏中为程序运行输出结果,右下方watch栏中可以观察程序中局部和全局变量运行中值的变化,从图中可以看到推理系统结构体变量fis各个成员的取值及系统输出outputMatrix指针对应的内存单元的值。
比较DSP中模糊系统的输出和MATLAB中算法模拟的结果后发现,两者的运行结果完全一致,这说明虽然TMS320VC5509是16位定点DSP,利用TMS320C55xC语言仍可以实
现复杂的高精度浮点算法。
4代码的优化
DSP中代码的优化包括代码长度上的优化和代码执行速
度上的优化,而且两者往往互相制约。在实际的应用中,尤其在对实时性要求比较高的控制过程中,算法速度的提高对整个系统性能的提高有较大的影响,而模糊推理系统算法所占空间较小,因此这里主要讨论在代码执行速度上的优化方法。
利用CCS中的优化器可以对代码进行优化,优化的等级由低到高分为寄存器级、本地级、函数级和文件级四个等级,可以在编译器选项中用-on(n=0、1、2、3)指定,也可通过CCS中的菜
现场总线技术应用200例》
MEMORY指令定义了DATA和PROG两块存储区,origin
和len分别设置它们的首地址和长度,其中.text、.cinit等段存放在程序空间PROG中,.bss、.stack等段存放在数据空间DATA中。-heap设定内存池的大小,调用malloc、calloc和realloc函数时生成的.sysmem段从内存池中动态分配内存。-stack和-
向sysstack设定堆栈和辅助堆栈的大小,堆栈保存处理器信息、
函数传递参数并分配局部变量。这些参数先通过预估选取,然
-
178-360元/年邮局订阅号:82-946
您的论文得到两院院士关注
单Project—BuildOptions在optlevel中选择。这些等级中上一级包含下一级的优化内容,文件级优化包含去除所有未被调用函数、用内联函数代替小函数等最多的优化内容。除此以外,还可以在编译器选项中用-pm指定程序级的优化,这时所有的源文件被编译成一个模块进行更进一步的优化。除了利用优化器外,还可以针对程序和硬件的特点进行更细的优化。由于DSP的硬件循环要求循环至少被执行一次,对于执行次数可能为0的循环需要额外增加判断代码,所以在已知至少执行一次的循环前用#pragmaMUST_ITERATE(1)可以减少判断、提高速度。用onchip关键字修饰公共操作数以确保其分配在片上存储器上,可以充分地使用C55x的双乘法累加器。
本文综合应用上述方法对代码进行优化,优化前后代码的运行结果比较如图3所示:
DSP开发与应用
egyforControlofNonlinearDynamicalSystems[J],LectureNotes
inComputerScience,2005,3613:882-885
[2]何银水,张华.DSP在机器人焊接中应用系统的开发[J]微计算机信息,2006,22(5):215-218
[3]TMS320C55xTechnicaloverview,LiteratureNumber:SPRU393,TexasInstruments,2000
[4]HowardDemuth,Markbeale,MartinHagan.NeuralNetwork
sGuide.version4.MA:TheToolboxforusewithMATLABUser’
MathWorksInc,2005
[5]TMS320C55xOptimizingC/C++CompilerUser’sGuide,,TexasInstruments,2001
作者简介:武星星,男,1980年12月生,吉林大学机械电子工程专
业博士研究生,研究方向为人工智能、机电传动与自动化,发表论文5篇,E-mail:starglare@126.com。朱喜林,男,1959年4月生,吉林大学机械学院教授,博士生导师,研究方向为智能制造等。
Biography:Wu,Xingxing(1980-),acandidatefordoctor'sde-greeinmechatronicsatJilinuniversity.Theresearchaspectisartificialintelligenceandautomation.E-mail:starglare@126.com.Zhu,Xilin(1959-),prof.andtutorofPh.D.students.Theresearchaspectisintelligentmanufacturing,etc.
(130025吉林吉林大学机械科学与工程学院)武星星朱喜林
李晓梅
(CollegeofMechanicalScienceandEngineering,JilinUni-versity,130025)WuXingxingZhuXilinLIXiaomei
通讯地址:(130025吉林吉林大学机械科学与工程学院)武星星
(收稿日期:2007.1.23)(修稿日期:2007.2.25)
(上接第197页)
图3优化前后运行结果比较
利用CCS的profiler统计代码的执行性能,其中上、下窗口的分别是未优化代码和优化后代码的执行性能统计,其中Code
可按用户需求灵活改变,且易升级的振动模拟器的设计方案;且对有特殊要求的信号发生器的设计有一定借鉴意义。参考文献:
技
术创新
Size为被统计目标段的代码长度,Inc.Total为执行此代码段所
占用的所有指令周期数,包括执行此代码中所有被调用子函数的指令周期数。从图中可以看出,优化后代码长度从465减少到405,略有减少,而占用的总指令周期数从3949678减少到
3053936,执行时间减少了四分之一,代码速度得到了大幅提
升,说明算法的优化是很有效的。
5结语
本文给出了一种便捷的模糊系统建模、算法模拟及在DSP上实现的方法,详述了模糊系统在DSP上的实现过程及遇到的问题和解决方法。在DSP上实现的模糊系统与MATLAB中算法模拟的输出结果完全一致。综合运用用-o3编译选项及
MUST_ITERATE命令等方法对代码进行优化,有效地提高了代
码的执行速度。这使得模糊推理系统在电子设备上的实现变得简单易行,有力地推动模糊系统在更多领域得到应用。
本文作者创新点:提出了一种便捷的模糊系统建模、算法模拟及在DSP上的方法。综合运用多种方法对代码进行了优化。通过实例证明,按此方法在DSP上实现的模糊推理系统和在MATLAB中算法模拟的输出一致,优化后代码的运行时间减少了约四分之一。参考文献:
[1]BinYe,ChengzhiZhu,ChuangxinGuo.FuzzyModelingStrat-
PLC技术应用200例》
[1]ADS1100Datasheet.TexasInstruments,2002.5
[2]DAC8581Datasheet.TexasInstruments,2005.8[3]DAC8820Datasheet.TexasInstruments,2005.8
[4]任爱锋,初秀琴等编著.基于FPGA的嵌入式系统设计西安电子科技大学出版社,2004.
[5]徐惠民,安德宁编著.数字逻辑设计与VHDL描述机械工业出版社,2002.
宋跃、李琳.基于FPGA的DDS调频信号的研究与实现[6]石伟、
[J]微计算机信息,2005.21,5:179-180
作者简介:顾海燕(1982-),女,汉族,上海人,上海交通大学硕士研究生,自动化专业,主要研究方向:FPGA在自动控制领域的应用;陈黎平(1951-),男,汉族,上海人,上海交通大学高级工程师,自动化专业,主要研究方向:自动控制与检测。
Biography:GuHaiyan(1982-),female,theHannationality,ShanghaiJiaotongUniversity,DepartmentofAutomation,inthesecondyeartoobtainMasterDegree,studyingtheapplicationofFPGAinthefieldofautomaticcontrolling.ChenLiping(1951-),male,theHannationality,ShanghaiJiaotongUniversi-ty,DepartmentofAutomation,SeniorEngineer,studyingtheau-tomaticcontrollinganddetection.
(200240上海上海交通大学自动化系)顾海燕陈黎平
通讯地址:(200240上海市闵行区东川路800号上海交通大学B0403294班)顾海燕
(收稿日期:2007.1.23)(修稿日期:2007.2.25)
邮局订阅号:82-946360元/年-
179-
正在阅读:
模糊推理系统在DSP上的实现和优化05-15
《机械设计基础》第1章:绪论05-16
小学三年级语文练习与测试答案03-10
建筑设计实践中相关元素的有机融合与运用03-08
2018-2023年中国家具机械行业市场发展动向调查与未来发展方向研究报告(目录)08-31
教你做好小升初衔接的方法03-30
第十九届“希望杯”全国数学邀请赛(初一、二)厦门市获奖情况通07-10
“‘两学一做’话家风” 主题征文活动启事05-27
12月食堂盘点表08-28
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 推理
- 模糊
- 优化
- 实现
- 系统
- DSP
- 长城公司财务战略的有效性
- Outlook 2010 同时管理多个电子邮件账户
- 立志高远与始于足下
- 黑龙江省绥化市重点中学2015届高三第一次模拟考试数学理试题
- 环境工程中微生物分析方法研究进展
- 钓鱼城导游词 自写
- 三门县打造风情蛇蟠岛外宣品牌
- 中医药治疗药物流产后阴道出血的研究进展
- 成功人士不说的15句话
- 基于DSP生物医学信号处理论文
- 机器人弧焊说明书
- 事业单位聘用人员违反服务期约定的责任
- 2002考研英语黄皮书
- 新版部编人教版五年级语文下册期末达标试卷
- 2数学思想方法的几次突破
- 2018年6月英语四级真题及答案汇总(文都回忆版)
- 党校培训心得体会
- 膨胀土地基基础设计分析
- 厂长在2018年HSE质量节能工作讲话
- 吉祥宝餐饮软件操作手册