首页 > 范文大全 > 正文

PID神经网络的VHDL实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇PID神经网络的VHDL实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:pid神经网络模块是单变量或多变量非线性PID神经网络控制器的核心部分。从分析PID神经网络的设计原理入手,给出了PID神经网络实现的环形电路结构,采用自顶向下的设计方法,利用vhdl语言设计和实现了3层PID神经网络模块。仿真结果表明该模块功能完全正确。综合结果表明,该网络的实现仅使用了175个LE和9个嵌入式硬件乘法器,最高时钟频率可达116 MHz。

关键词:PID;神经网络;VHDL;FPGA

中图分类号:TP18 文献标识码:B

文章编号:1004-373X(2009)01-101-03

Realization of PID Neural Network Based on VHDL

WANG Zhongliang,XIAO Hua

(Tongling University,Tongling,244000,China)

Abstract:The core of nonlinear PID neural network controller with one variable and multi- variable is PID neural network module.The paper analyses the design theory of PID neural network,provids a ring circuit configuration to realize PID neural network module,designs and realizes 3-layer PID neural network module with top-down design methodology based on VHDL.The simulation suggests the module operates well.The synthesizing result shows that the realization of network only uses 175 LEs and 9 embedded hardware multipliers,the maximal frequency can reach 116 MHz.

Keywords:PID;neural network;VHDL;FPGA

0 引 言

数字PID控制是在生产过程中被普遍采用的控制方法,具有结构简单、容易控制、参数能够灵活整定的特点。但当被控对象存在非线性和时变特性时,传统的PID控制器往往难以获得满意的控制效果。神经网络以其强大的信息综合能力为解决复杂控制系统问题提供了理论基础,许多学者也通过软件仿真的形式验证了神经网络控制的可行性并提出了一些新的算法,但由于没有相应的硬件支持,只通过软件编程,利用串行方法来实现神经网络控制必然导致运算速度低,难以保证实时控制。为此,研究人员提出了多种神经网络专用硬件实现的方法和技术,包括FPGA(Field Programmable Gate Array)实现[1,2]、神经芯片[3-6]以及DSP加速板等。近年来,随着工艺的进步,数字FPGA结构灵活、通用性强、速度快、功耗低,用它来构造神经网络,可以灵活地实现各种运算功能和学习规则,并且设计周期短、系统速度快、可靠性高。

随着FPGA技术的不断发展,各种智能控制策略的FPGA固核实现的研究随之活跃。同时,FPGA技术不但可作为ASIC的快速原型样机验证,而且其低成本大容量的FPGA用于实现控制器已有可能与传统的MCU相抗衡。FPGA的大容量、并行性、快速性、灵活性及可重配置性,将使它成为一种新型而有效的单片控制器。PID神经网络控制器的核心部件是PID神经网络[7,8],这里基于硬件描述语言(VHDL)描述PID神经网络并综合成硬件电路,借助

FPGA现场可编程的特点完成PID神经网络的FPGA设计。

1 PID神经网络算法原理

PID神经网络是具有非线性特性的3层前向网络。隐层节点分别为比例(P)、积分(I)、微分(D)单元,因此是动态前馈网络。PID神经网络结构如图1所示,输入层、隐层、输出层节点为2,3,1个[9]。

其中,输入层神经元的输入:

u(k)=[u1(k),u2(k)]

其输出与输入相等。

隐层第i个神经元的输入:

xi(k)=∑2j=1w ijuj(k), i=1,2,3

式中,w ij是输入层第j个节点至隐层第i个节点的权值。

隐层比例、积分、微分神经元的输出qi(k),i=1,2,3,计算如下:

比例:q1(k)=x1(k);

积分:q2(k)=q2(k-1)+x2(k);

微分:q3(k)=x3(k)-x3(k-1)。

图1 PID神经网络结构

输出层神经元的输入是隐层各节点输出的加权和:

x′(k)=∑3i=1hiqi(k)

式中,hi是隐层节点i至输出节点的权值。

输出层神经元的输出,即网络的输出:

y(k)=x′(k)

式中,k为时钟信号。

PID神经网络是神经PID控制的核心部分,网络的输入与输出的函数关系为单调上升的非线性关系,它们之间的连接采用权的办法实现,每层网络的输入是其他神经元输出的加权和,因此在电路实现中需要完成:

(1) 实现两个信号的相乘。在神经网络中权的数量很多,加权的计算都用乘法完成,因此对应于两个信号相乘的电路必不可少。

(2) 实现加权后脉冲累加。

(3) 实现比例、积分、微分运算。

2 PID神经网络电路模型

PID神经网络中,乘法是利用与门进行的。两个脉冲序列通过“与”以后的输出即为二者的乘积;两个脉冲序列的占空比为1/2和1/3相“与”后,脉冲序列的占空比为1/6,从而达到相乘的目的。

权值存储在寄存器中,寄存器可以与外界的计算机内存或EPROM相联,因而权值可从外面写入。这意味着权值的存储和权值的改变没有什么困难,可以设计出可重构的神经网络模型。

累加器是用计数器完成的,从乘法器输出的脉冲串经过计数器实现累加,当累加到达阈值时即作为神经元的一个状态输出。

比例、积分、微分运算可利用寄存器的延迟特性来完成。

图2给出了PID神经网络的环形电路结构示意图[10]。图中自下而上把网络分成3层结构,输入层xi值的确定,隐层比例、积分、微分运算,输出层y值的确定。输入层在水平方向上有个大的环形移位寄存器结构,只使用一个输入端口加载所有的权值,权值按照顺序移位,直到每个寄存器都存储相应的权值,然后权值与输入相乘并累加。输出层也用环形移位寄存器来加载权值hi。

图2 PID神经网络的环形电路结构示意图

3 PID神经网络FPGA实现

应用Altera公司的Quartus Ⅱ工具和目标芯片EP2C8Q208C7设计PID神经网络模块。采用电路图与 VHDL相结合、自上而下、分层次的方法设计,其顶层原理图如图3所示。在顶层将PID神经网络模块分四个功能模块,然后再用VHDL语言实现各功能模块,并对其进行仿真验证。

图3 PID神经网络顶层原理图

图3中pid_1,pid_2,pid_3分别实现xi,qi和y的计算,由于pid_3实现y输出计算时,采用环形移位寄存器实现h值的输入需要3个时钟周期,所以采用clk_3实现3分频。主时钟信号直接送给pid_3,分频后的时钟信号clkout送给pid_1和pid_2。

采用Quartus Ⅱ集成开发环境,PID神经网络的综合结果如图4所示。clk的最高频率为116 MHz。

图4 PID神经网络综合结果

4 仿 真

PID神经网络运算的仿真波形如图5所示,为了观测方便,在仿真时把输入信号固定为 u1=

3,u2=4,clk时钟周期为1 μs,分频后的时钟信号clkout为3 μs。程序中利用clkout来对权值w的移入,完成输入层的计算需要6个clkout,隐层的PID运算需要1个clkout。所以在图5中,当第7个clkout上升沿到来时, q值由第6个clkout上升沿到来后x的情况确定,此时的计算x值对应的权值w[1..6]分别为[6,5,4,3,2,1],计算得q1=38,q2=54,q3=7。权值h的移入通过clk来完成,在第7个clkout上升沿后,权值h的输入有3种:当h[1,2,3]分别为[10,9,8]时,计算出y=922,当h[1,2,3]分别为[1,10,9]时,计算出y=641;当h[1,2,3]分别为[2,1,10]时,计算出y=200。

图5 PID神经网络仿真波形

5 结 语

神经网络随着神经元的增多,其在线计算量增大,硬件实现是最理想的方式,研究中采用VHDL语言在RTL级描述神经网络,层次化设计,时序验证方便,易于FPGA实现。在此利用VHDL语言设计和实现了PID神经网络模块,此模块可以应用到单变量或多变量

非线性PID神经网络控制器上。

当对神经网络的速度有较高要求时,可利用FPGA的可编程特点进行面积和速度的折衷考虑,适当增加面积占用率来相应提高芯片运动速度。这在串行时序机应用系统中是难以实现的,也是FPGA实现智能算法的优势所在。同时由于PID神经网络具有3层结构,利用FPGA芯片的可重构特点可以进一步降低芯片规模。

参考文献

[1]Wang Q,Yi B,XIE Y,et al.The Hardware Structure Design of Perceptron with FPGA Implementation\.Proceedings of IEEE International Conference on Systems,Man and Cybernetics\.Washington D.C.,2003.

[2]Ferreira P,R

[3]Hammerstrom D.A VLSI Architecture for Hign Perfor-mance,Low-cost,On-chip Learning\.Proceedings of International Joint Conference on Neural Networks\.San Diego,1990.

[4]Murtagh P J,Tsoi A C.A Reconfigurable bit-serial VLSI Systolic Array Neuro-chip\.Parallel Distrib Comput,1997,44(1):53-70.

[5]Hikawa H.A New Digital pulse-mode Neuron with Adjustable Transfer Function\.IEEE Trans.Neural Networks,2003,14(1):236-242.

[6]Faiedh H,Gafsi Z,Torki K,et al.Digital Hardware are Implementation of a Neural Network Used for Classification\.Proceeding of the 16th International Conference on Microelectronics\.Tunis,2004.

[7]付学志,姚旺生,苟伟,等.基于FPGA的高速PID控制器设计与仿真\.电子技术应用,2007,33(1):87-89.

[8]戢方,雷勇,王俊.自顶向下基于DSP Builder的PID控制系统开发\.现代电子技术,2007,30(9):127-129.

[9]徐丽娜.神经网络控制\.北京:电子工业出版社,2003.

[10]Volnei A Pedroni.VHDL数字电路设计教程\.北京:电子工业出版社,2005.

作者简介王忠良 男,1980年出生,安徽省舒城县人,铜陵学院电气工程系教师,硕士。主要从事FPGA应用研究。

肖 华 女,1977年出生,山东省沂水县人,铜陵学院计算机系教师,硕士。主要进行算法研究。