当前位置:首页 > 电源 > 数字电源
[导读]引言 迄今为止,PID控制器因其具有结构简单、容易实现等特点,仍是实际工业过程中广泛采用的一种比较有效的控制方法。但当被控对象存在非线性和时变特性时,传统的PID 控制器往往难以获得满意的控制效果。神经网络以

引言
迄今为止,PID控制器因其具有结构简单、容易实现等特点,仍是实际工业过程中广泛采用的一种比较有效的控制方法。但当被控对象存在非线性和时变特性时,传统的PID 控制器往往难以获得满意的控制效果。神经网络以其强大的信息综合能力为解决复杂控制系统问题提供了理论基础,许多学者也通过软件仿真的形式验证了神经网络控制的可行性并提出了一些新的算法,但由于目前没有相应的硬件支持,只通过软件编程,利用串行方法来实现神经网络控制必然导致运算速度低,难以保证实时控制。FPGA结构灵活、通用性强、速度快、功耗低,用它来构造神经网络,可以灵活地实现各种运算功能和学习规则,并且设计周期短、系统速度快、可靠性高。
本文主要介绍了用FPGA实现单神经元自适应PID控制器的方法,并对基于BP神经网络整定的PID控制器的FPGA设计做了概述。
神经元自适应PID控制器
基本原理和算法
单神经元PID控制器的结构
三输入单神经元模型如图1所示。其中x1,x2,x3是输入量,w1、w2、w3是对应的权值,K为比例系数。

与传统PID控制器经离散处理后的增量表达式
苪(k)=kie(k)+kp(e(k)-e(k-1)+kd(e(k)-2e(k-1)+e(k-2))
比较而知,图1是用单神经元实现了自适应PID控制,权值w1、w2、w3分别对应于传统PID控制器的ki,kp和kd。
学习算法
经过大量的实际应用,实践表明PID参数的在线学习修正主要与芿(k)和e(k)有关。因此可将单神经元自适应PID控制算法中的加权系数学习修正部分进行修改
本文里用FPGA实现的单神经元学习算法就采用了这种基于改进规则的方法。

神经元算法在FPGA
上的实现
FPGA上浮点数的运算
浮点加、减、乘、除运算单元
的设计
神经元PID算法离不开浮点运算,浮点运算在高级语言中使用很方便,但是通过硬件来实现就比较复杂,所以大多数的EDA软件目前还不支持浮点运算,浮点运算器件只能自行设计,其中主要考虑的是运算精度、运算速度、资源占用以及设计复杂度。
浮点数的加法和减法需要经过对阶、尾数运算、规格化、舍入操作和判断结果正确性5个步骤,其设计原理图如图2所示,整个运算过程由op_state状态机控制,op输入端决定运算法则(0为加法,1为减法),a、b两端分别输入24位浮点数格式的加数和被加数,经过float_add_minus模块的对阶、尾数加(减)、舍入操作和判断结果正确性四步运算,再由result_ normalization模块规格化处理后输出。
浮点乘法相对比较简单,两个浮点数相乘,其乘积的阶码是两个数的阶码之和,乘积的尾数是两个数尾数的乘积,符号是相乘数符号的异或,结果一样需要规格化。[!--empirenews.page--]
同理,浮点除法运算中,商的阶码是两个数的阶码之差(被除数减除数),商的尾数是两个数尾数的商,符号是两个数符号的异或,注意这里结果的规格化与以往不同,是向右规格化操作。
由于篇幅所限,本文在此不再给出乘法器和除法器的详细设计图,在具体实现中,乘法器的尾数乘积运算采用了booth算法,除法器的尾数相除运算采用了移位相减的方法。
二进制与十进制浮点数相互
转换电路的设计
系统输入值、从传感器反馈回来的系统输出值以及送给DAC的输出控制量都不是上述二进制的浮点数类型,因此就需要能够将两种类型的数据进行相互转换的电路。完成二进制浮点数转换成十进制浮点数的全部操作所需要的时钟数取决于二进制浮点数的大小,最少232个,最多1069个;而十进制浮点数转换成二进制浮点数时,不论浮点数的大小,都只需要194个时钟周期。
神经元算法在FPGA上的实现
有了以上加、减、乘、除浮点运算模块以及进制转换模块,要实现神经元算法只需合理地把他们组织到一起。在FPGA里,是通过一个状态机来完成这一功能的。状态转换图如图3所示,在图中每个标有计算字样的状态里,所有运算都是并行完成的,大大节省了运算时间。图中的START信号可以由微控制器给出,需要注意的是,并不只是在最后的状态里START=0才使状态机复原到IDLE状态,实际情况是,任意时刻只要START=0,状态机都会复原。这一点由于篇幅所限没能在图上标示出来,在此做一简要说明。
使用 Synplify Pro 7.1在Xilinx Virtex2 XC2V1500fg676-4上实现了该系统的综合,时钟频率为98.4MHz,LUT资源占用率为76%。

基于BP神经网络整定的PID
控制器的FPGA设计概述
基于BP(Back Propagation)网络的PID控制系统参数整定结构如图4所示,控制器由两部分构成:
(1) 经典的PID控制器:直接对被控对象进行闭环控制,三个参数kp、ki、kd为在线调整方式;
(2)神经网络:根据系统的运行状态,调节PID控制器的参数,以期达到某种性能指标的最优化。即使输出层神经元的输出状态对应于PID控制器的三个可调参数kp、ki、kd,通过神经网络的自学习、加权系数调整,使神经网络的输出对应于某种最优控制率下的PID控制器参数。
用FPGA实现BP神经网络,除了各个浮点运算模块之外,还需要实现隐层神经元的活化函数——正负对称的Sigmoid函数:

和输出层神经元的活化函数——非负的Sigmoid函数:

其中超越函数ex的实现,常用的有两大类:一是多项式迭代,该方法实现速度快,但需要乘法器,当计算精度较高时,硬件成本大;二是移位加迭代,此方法只需加法器,结构简单易于实现,但实现速度慢。参考文献2中还提到了一种采用分段线性化的方法,虽然实现容易,但是精度较低。笔者拟在现有浮点四则运算模块的基础上,采用指数函数幂级数展开式前n项和的形式实现超越函数ex。这虽然也是采用了多项式迭代的方式,但采用FPGA实现,可以在保证精度的前提下,减少硬件成本。有了这一模块后,经过合理安排BP算法的运算顺序,就可以在FPGA上实现基于BP神经网络整定的PID控制器了。

结语
当今神经网络的应用大多以软件方式完成核心算法,但受限于微处理器(或DSP)工作频率太慢或PC机体积较大的弱点,难以大规模应用。鉴于此,本文提出了一种基于FPGA、以硬件方式完成神经网络算法的方案,在保证运算精度的前提下,运算速度可比同频率的处理器以软件方式实现快上百倍。另外,文中各个浮点运算模块的实现还有一些有待优化的地方,因此可以在硬件资源上更为节省。由此可见,硬神经网络是解决其学习速度慢、满足实时控制需要的必由之路。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭