您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页FCMAC的FPGA实现分析及其控制应用

FCMAC的FPGA实现分析及其控制应用

来源:爱go旅游网
维普资讯 http://www.cqvip.com

第26卷第8期 2006年8月 文章编号:1001—9081(2006)08—1990—03 计算机应用 Computer Applications Vo1.26 No.8 Aug.2006 FCMAC的FPGA实现分析及其控制应用 沈宪明,白瑞林,章智慧 (江南大学控制科学与工程研究中心,江苏无锡214122) (ofa—shenxianming@1 63.corn) 摘要:提出了FCMAC(Fuzzy CMAC)的一种基于FPGA的硬件实现方法,与其他FPGA实现神 经网络相比,它包含了可以用于在线学习的权学习算法。首先分析了FCMAC的模型结构及相应的 硬件模块,然后基于VHDL语言实现了各模块的功能描述,最后将FPGA实现的FCMAC用于控制应 用,并对控制器进行测试。实验结果表明,FCMAC的实现方案是可行的,控制器运算速度快、精度高, 且具有较强的抗干扰性,是实现IP控制模块或单片智能控制的一种新的有效途径。 关键词:模糊小脑神经网络;现场可编程门阵列;VHDL;比例一积分一微分控制器 中图分类号:TP332.3 文献标识码:A FPGA implementation analysis of Fuzzy CMAC and its control application SHEN Xian—ming,BAI Rui—lin,ZHANG Zhi—hui (Control Science and Engineering Research Center,Southern Yangtze University,Wuxi Jiangsu 214122,China) Abstract:An FPGA implementation structure of a FCMAC(Fuzzy CMAC)was proposed.Compared with other neural networks implemented by FPGA,it contains the learning algorithm that can be employed to realize the on—line learning.First, the model of FCMAC was given and the relevant hardware modules were analyzed.Second,these hardware modules were implemented with VHDL.At last,the implemented FCMAC Was used for control,and the corresponding controller Was tested. The experimentl resualts indicate that this method for hardware implementation of FCMAC is feasible,and the controller has llish computing sped,hiegIl precision and better abiilty of ntai—interfere. It is a new and eflqcient method tO implement IP control module or intelligent control based on a single chip. Key words:Fuzzy CMAC;Field Programmable Gate Array(FPGA);VHDL;Proportion—Interagiton—Diferentiation Controller(PID) 0 引言 基于局部学习的CMAC(Cerebellar Model Articulation Controller)网络…,具有很快的收敛速度和可观的精度,已广 这样,FCMAC的实现具有了更好的实用价值。 诸多学者通过软件仿真的形式验证了FCMAC控制的可 行性 j,但是通过串行编程方法来实现神经网络控制,应用 中存在运算速度低和系统容错性差等问题。与软件实现相 比,FPGA实现FCMAC可以保持网络自身的并行计算能力, 提高处理速度。同时,FPGA可以实现FCMAC的学习算法, 使得硬件化结构可以在线学习,这是BP网络等所不能比拟 的。为此本文提出了一种基于FPGA实现的FCMAC结构。 泛应用于机器人控制、信号处理和模式识别。但是,它的内在 缺陷影响了它的进一步应用:1)随着维数的增加,CMAC的权 空间大小将成几何级数增长,使用哈稀映射虽然在一定程度 上降低了权空间大小,但伴随而来的权碰撞,将会影响到权值 的收敛;2)在一些精度要求比较高的场合,CMAC的学习精度 难以满足要求。为提高精度,已有了一些改进型算法 j,但 并不能从根本上解决问题。这是由于CMAC的基等于1,当 CMAC的不同输入向量经量化后,可能映射到同一个box函 1 FCMAC的模型、学习算法及其仿真 1.1 FCMAC的模型结构 FCMAC本质上是一种类似于CMAC的查找表结构模型, 其隶属度函数保证了可以连续量输入,它通过查询权值表和 借助模糊推理,进行权值的存储与学习,以获得神经网络的 输出。FCMAC的结构如图1所示。 数中,输出值将相同,这样输出就不平滑,精度也就难以提高。 FCMAC(Fuzzy CMAC)的出现有助于解决以上两个问题。 它将模糊逻辑引入CMAC,结合了CMAC具有学习能力和模 糊逻辑善长表达近似与定性知识的优点 j,使之不仅具有 CMAC训练速度快的优点,而且存储空间小、可以连续量输 入、无需量化、避免了CMAC的哈稀映射对权值收敛的影响。 由于FCMAC使用的box函数是隶属度函数,因此不同的输入 映射到同一box函数后,其输出值是不同的,消除了CMAC输 出不平滑的缺陷;另外,FCMAC可以构造模糊推理规则,加入 了人的经验,从根本上解决了CMAC训练精度不高的问题。 收稿日期:2006-02—14;修订日期:2006一o4—26 1.2 FCMAC的学习算法 FCMAC的学习算法一般沿用CMAC的算法,如C—L、 LMS、GA和变学习率等。由于输出层神经元是线性的,根据 1.1节的FCMAC结构,本文采用LMS算法,如(1)式所示。 此学习算法简单,易于硬件实现。 : + , (1) 作者简介:沈宪明(1981一),男,江苏无锡人,硕士研究生,主要研究方向:嵌入式系统研究; 白瑞林(1955一),男,黑龙江双城人,教授,硕 士,主要研究方向:智能控制、嵌入式系统;章智慧(1983一),男,安徽池州人,硕士研究生,主要研究方向:嵌入式系统. 维普资讯 http://www.cqvip.com

第8期 沈宪明等:FCMAC的FPGA实现分析及其控制应用 1991 其中,ai为归一化规则适用度, 为期望输出,y3/2实际输 ;效。当然,如果输入是一维的,地址生成模块可以省略,实际 出,口为学习率,m为模糊规则适用度不为零的个数。 输入层 模糊化层模糊相联层模糊后相联层输出层 图l FCMAC的结构 2 FCMAC的硬件结构分析及FPGA实现 图2为包含控制单元的FCMAC顶层模块图,包括以下 模块: 图2 FCMAC顶层模块 (1)模糊化模块:在该模块中,需根据输入状态空间来定 义模糊节点的隶属度函数。用信号o ̄jig来表示节点的位 置。对于某维输入,它所激活的模糊节点进行模糊运算,输出 隶属度值 (i=1,2,…,m,m为模糊化层节点的个数)和 ad_sig值;对于没有激活的节点,则输出的隶属度值保持为 0。在实际应用中,输入一般是的,权地址需要精确运算 或编码以避免地址碰撞。 (2)模糊运算模块:此处选择模糊乘作为模糊推理算法, 以各隶属度值 (i=1,2,…,m)作为模块输入,输出为模糊 规则适用度。对于硬件乘法器,必须在算法的精度和资源利 用率上做一个折中,如果芯片的乘法单元(如DSP block)比较 丰富,则可以适当的增加字长,否则只能减少,因为用LEs(逻 辑单元)实现乘法器会花费较大的芯片资源。 (3)归一化模块:如果每次计算所得的隶属度值之和是 1,那么本模块可以省略。但大多数情况下,如输入为或 隶属度函数较复杂,那隶属度值之和就不为1,需要用到除法 器,这时也需要考虑到算法的精度与硬件规模的关系。在选 择输入的模糊子集时,应尽量使隶属度值之和为2的幂 次,因为在综合过程中,软件会自动的将除数为2的幂次的运 算转化为移位运算,而移位运算不占用器件资源。 (4)地址生成模块:模糊化模块不仅产生隶属度值,而且 也产生ad_sig,ad_sig用于生成权地址。每次所需要的权地址 由ad_sig通过运算产生,而ad_sig的值由被激活的模糊节点 位置决定。权空间大小由各维的模糊子集决定,如输入为三 维,各模糊子集所含语言变量的个数分别为n,b和c,则权地 址空间的大小为n×b×c。需要注意的是,每次得到的权地址 应不存在碰撞的情况,否则会发生错误,甚至使整个网络失 的权地址就是模糊节点序号。 (5)解模糊化模块:此模块的任务是获得网络的实际输 出,它包含加法器和乘法器。RAM中的权与相应的归一化模 糊规则适用度的加权线性和即为FCMAC的实际输出。可以 用寄存器来累加这些乘积。当然,如果器件资源允许的话,可 以不用累加,而采用并行处理这些乘积,这样可以提高速度。 根据FPGA的内部结构特点,可以用三种资源来实现数 据的动态存储:Block RAM、LuT和Register。此处选择Block RAM来存储权值,因为使用Block RAM可以节省LEs资源, 是最大程度发挥所选器件效能、节约成本的一种体现;而且, Block RAM是一种可配置的硬件结构,其可靠性和速度与 LuT和Register构建的存贮器相比更有优势。 (6)权学习算法模块:不同的权学习算法对应不同的硬 件结构,本文采用(1)式。Y与 的差乘以学习率和归一化模 糊规则适用度,所得的乘积除以m,得到delta w,即权值修改 量。通过delta_w使权值得到更新。这部分包含乘法和除法, 将花费较大的器件资源。因此在运算过程中,要及时的截位, 以降低芯片的使用。 (7)控制单元:用于控制各模块的执行顺序,一般可以遵 循MaⅡab仿真时的顺序。 3基于FPGA实现的FCMAC控制实例 3.1控制器原理 在所研究的控制系统中,采用FCMAC.PID控制器代替常 规PID位置调节器。其中,FCMAC起前馈控制作用,确保系 统的控制响应速度,减少超调量;PID控制器起主要作用,使 系统稳定及提高系统的跟踪能力。FCMAC采用有导师的学 习算法,由PID控制器的输出 (k)=U(k)一 (k)作为网 络权值修正信号,经过学习使系统的总控制量主要由FCMAC 产生。系统开始运行时,FCMAC网络初值为零,于是 (k)=0,此时只有反馈控制,系统由PID控制。随着 FCMAC网络的训练,其输出不再为零,FCMAC逐渐取代PID 成为控制的主导。网络训练结束,反馈失去作用,这时由 FCMAC提供控制器的输出,系统变成单一前馈控制。此时从 R(k)经前馈通道至输出Y(k)增益为Z,表明FCMAC和被控 对象模型具有逆关系,即网络是学习对象的逆动态模型的。 当输入变化或有扰动时偏差不为零,PID再次起作用,并与启 动过程类似,所不同的是网络不必重新学习,已有记忆经验积 累,因此有一定的预测功能。采用FCMAC可以把复杂的逆 模型实现简单化。控制过程归结为少数权值的调整,而不要 求详实了解被控对象的全部动力学特性,而它却可以将复杂 难测的时变动力学行为及诸多不确定因素映射于网络之中, 并通过前向通道与被控对象对消 。 本文采用激励信号R作为FCMAC l的输入,其基本结构 如图3所示。该方案中,控制和学习同步进行。 图3 FCMAC—PID控制器结构 以某工业对象yout(k)=1.960 7 y(k一1)一0.960 8 y(k一2)+o.0049 u(k一2)为例,Matlab的仿真结果如图4 所示。 维普资讯 http://www.cqvip.com

1992 z‘u 计算机应用 显加强。 2006血 抗干扰情况 1.5 。 m 仿真结果表明:FCMAC的加入使得该复合PID控制 器大大减少了被控对象输出的超调量,加快了控制响应速 度,充分体现了FCMAC的特点,即输出误差小、实时性 暑1.0 0.一Fc ,。 -5 FCMACPID 好、鲁棒性强。 3.2控制器的VHDL设计 时I司 时 】 控制器的设计采用自顶向下设计方法,在顶层进行系 (a)FCMAC—IPD控制器的输出曲线 (b)系统输出曲线 统方框图的划分和结构设计,在方框图一级用VHDL对电 路的行为进行描述,并进行仿真和纠错。然后,在系统一 图4控制系统Maflab仿真图 其中,图4(a)为FCMAC.PID控制器的输出曲线图,图4 (b)为系统输出曲线。从图中可以看出,FCMAC和PID并行 控制效果比单纯PID的控制效果要好的多,且抗干扰能力明 xite[7..0】 elk 级进行验证,最后,利用逻辑综合优化工具生成具体的门 级逻辑电路的网表,下载到具体的FPGA芯片上。控制器的 ∞u u 顶层电路结构如图5所示。 叫叫 rnodifydw —elk alfa I【7..01 rin【11..0】 rst rin[11—0】 rst W1【19..0】 W3【19..O】 W4【19一O1 alfa一2[7—0】 alfa 3【7..01 alfa一4[7..0】 W2【19..0】u fcmac[19..0】 xite[7..0】 alfa1【7..0】 alfa2[7..0】 alfa3[7..0】 alfa4【7.0】 Ufcmacout[19..0】 Uout[19—0】 一一———pid fcmacvalue【19.0】 —ek_ck【11..0】 l【11—0】 ck_2【11..0】 dvalue【19.fcmacpi.0】 —_pidvalue【19..0】 —图5控制器的VHDL顶层电路结构 d d d d 控制器主要由4个子模块组成,其中:pid模块完成PI一 一 D 一 一 l 2 3 4 运算;femac_operation模块完成FCMAC运算;mod 一dw模块 l l l l w w w w 4 结语 FCMAC降低了权空间的大小,解决了因权空间大而硬件 难以实现的问题;模糊推理和隶属度函数的存在,使网络输出 9 9 9 9 完成权值的在线调整;fcmac—pid模块完成FCMAC和PID的 O O O O 复合控制运算,xite信号为FCMAC网络的学习速率,该值的 范围在(0,1)之间。 为了得到精确结果,一方面应选用合适的运算结构,另一 方面要采用合适的字长。FPGA器件的字长可以根据需要任 更加平滑,从根本上解决了CMAC的精度问题,使其具有更 好的学习精度;在实现乘法和除法运算时,需要在算法的精度 和资源利用上找一个折中;在实现权存储单元时,以Block RAM为首选,因为它可以节省LEs,可靠性和速度与LUT和 Register相比更有优势。 意指定,字长越大,精度越高,但电路占用的片内资源就越多; 字长越小,运算过程中累积的偏差很大,难以保证设计的精 度。本次设计考虑到控制器的实际运算情况,采用带符号小 数的二进制补码表示方法,即数据格式采用 0表示, 表 示整数部分,0表示小数部分。通过分析Malfab的仿真数据, 智能算法多具有并行性,而FPGA具有的并行处理能力, 是实现智能控制器的较好载体。基于FPGA构建智能控制器 具有设计灵活、能在线调整、可靠性高,开发周期短等优点,同 采用大小合适的字长,既保证了设计的精度,又避免造成资源 的浪费。 3.3控制器的测试 时,设计好的智能模块可作为II)加入到SOPC中。 参考文献: 【1】 ALBUS JS.A new approach to manipulator control:The cercbellar model articulation controller(CMAC)【J】.Transactions of the ASME,Joumal of Dynamics Systems Measurement and Control, FCMAC-PID控制器的测试以Matlab仿真为依据,从 Maflab仿真可以获得控制时序,同样也可得到测试数据。以 1975,97(3):220—227. Maflab仿真时获得的系统给定和系统输出对(r,yout)作为控 制器测试的输入数据,来测试相应的控制器输出。 控制器模块先在Quartus中编译,此时选择“ModelSim 【2】LUO JX,SHAO HH.Improved Lemming Algorithm of Hyperball CMAC and Its Convergence Analysis[J】.Journal of Shanghai Jiao- tong University(Science),2004,9(3):21—24. (VHDL)”作为仿真工具,这样可以获得在ModelSim下仿真 需要的.vho网表文件和包含延迟信息的.sdo文件,再转入 ModelSim对测试文件进行测试,这样可以在ModelSim软件下 看到模拟波形。 测试结果如下:控制器的输出在ModelSim下的测试波形 【3】 WANG YP,SU SF,LEE z.J.Robust credit assigned CMAC【J】. IEEE Transactions on Systems,Man and Cybemetics,2003,5:4457 —4462. 【4】 邓志东,孙增圻,张再兴.一种FCMAC神经网络【J1.自动化学 报,1995,21(3):288—294. 【5】 王琳,郭晨,李晖.基于GA学习的模糊小脑模型控制器【J】.大 连海事大学学报,2000,26(1):65—69. 【6】 孙宜标,郭庆鼎,赵希梅.基于模糊小脑模型神经网络的直线伺 与Maflab仿真波形相吻合。其值随着系统实际输出值的变 化最后稳定在4JD,由于此值表示9位整数11位小数,所以实 际值为4JD/2”:0.0195,与Maflab仿真时获得的值0.0204接 近,由此可以证明此控制器的设计是正确的。 服跟踪控制研究【J】.组合机床与自动化加工技术,2005,(8): 5O一51.54. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务