APP下载

基于FPGA的神经网络在非线性实时系统辨识中的应用

2022-11-23王晓华王有松

机床与液压 2022年20期
关键词:隐层伺服系统舵机

王晓华,王有松

(1.西门子(中国)有限公司西门子中国研究院,北京 100102;2.银河航天(北京)通信技术有限公司卫星研发部,北京 100085)

0 前言

非线性动态系统辨识在基于模型的控制中得到了广泛的应用。其中,神经网络具有良好的非线性映射能力、容错能力、自学习自适应能力和并行处理信息的能力[1],是非线性动态系统的一种有效辨识方法[2-5]。但很多实际应用的动态系统,比如电液伺服系统,存在阶数高、非线性特性强等特点,因此寻求适当的神经网络结构以解决高度复杂的动态系统辨识,是控制理论研究的一个重要分支,对控制系统设计具有重要作用[6-9]。

神经网络具有巨量信息并行处理和大规模平行计算的特点。FPGA是1980年代中期发展起来的新型高性能可编程逻辑器件,可以实现并行任务的同步执行,快速地决策以及精确地定时和同步,而且还可以在硬件上执行定制算法[10]。因此,在FPGA的环境下实现神经网络的系统辨识将极大缩短网络运行时间,提高系统辨识性能,具有传统方法不可比拟的优势[11-13]。但是通常开发FPGA需要掌握VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)等编程知识,开发神经网络应用具有较大的难度。NI公司将FPGA技术融入LabVIEW测试系统,可以使用LabVIEW图形化编程定义FPGA芯片上的逻辑功能,因此不需要任何有关底层硬件描述语言,就能够利用FPGA技术实现复杂的神经网络,降低系统开发难度[13-14]。

递归模糊神经网络引入了动态环节能够自动记忆部分历史信息,更适合非线性动态系统的辨识与控制[15-16]。但在实际应用中,发现它学习速度较慢,而且收敛到一定精度时就会停止收敛,甚至出现振荡。对于一个时变系统,系统在一个时刻的输出往往与它之前的输出相关,如果在递归模糊网络中引入输出层的递归信号与隐层的递归信号以及输入信号共同作为系统隐层的总输入,应该能取得更好的学习效果。基于以上想法,设计了一种新型的神经网络,称为输出反馈递归模糊神经网络(Output Feedback Recurrent Fuzzy Neural Network,OFRFNN)。本文作者利用该神经网络结合动态反向传播算法(动态BP算法),在数字系统FPGA中实现系统辨识模型,对舵机位置伺服系统进行在线模型辨识。实验证明了该系统满足工业应用中高精度、高实时、高确定性的要求。

1 输出反馈递归模糊神经网络

1.1 网络结构

OFRFNN结构如图1所示。第一层为输入层,该层的结点直接与输入量x连接,将输入值传送到下一层。

(1)

第三层的每个结点代表一条模糊规则,采用sum-product推理。规则层对应的输出为

(2)

第四层为归一化处理层,加快训练网络的收敛性,满足网络稳定性和鲁棒性要求。该层的输出为

(3)

第五层是输出层,实现清晰化计算。

(4)

1.2 动态BP算法

(5)

式中:yd(k)、y(k)和e(k)分别为k时刻被辨识系统的输出、递归模糊神经网络的输出和辨识误差。

由梯度下降法可得该递归模糊神经网络辨识器的自适应学习算法如下:

(6)

式中:η为学习速率,j=l=1,2,…,m。上式中具体推导如下:

(7)

结构单元到隐层的连接权ωjl的学习算法展开为

(8)

式中:

输出连接层到隐层权值ωyl的学习算法展开为

(9)

式中:

(10)

式中:

参数σj的学习算法展开为

(11)

式中:

2 基于FPGA的神经网络系统

FPGA的并行运行方式很好地满足了神经网络的并行计算需求,极大地缩短了网络的计算时间。此外,FPGA的可重复配置特性和灵活性能够满足神经网络反复学习、权值调整甚至结构变化的要求,因此基于FPGA的神经网络系统设计已经成为新的研究热点[11,14]。

此系统采用美国NI公司的高性能FPGA控制器,利用LabVIEW图形化语言实现OFRFNN辨识系统。在FPGA中各个网络层内的神经元数据同时计算并行处理,但在各个网络层之间则是串行计算。因此,在FPGA中可以保持神经网络中数据流的特定属性[14,17]。神经网络系统辨识在FPGA中的实现如图2所示。

在使用FPGA执行神经网络时应注意精度、并行性、可配置特性等。为了改进神经网络设计的通用性,将动态递归神经网络分为2个部分:前向单元和学习单元。前向单元完成信号处理和权值存储的功能,主要包括权值的计算、积累以及激活函数的实现等;反向学习单元完成信号传输功能,包括学习算法的实现以及程序的并行运算。

通过LabVIEW FPGA模块创建FPGA VI,将神经网络的实时辨识程序在FPGA Target中实现。其中FPGA VI包括主VI和子VI,神经网络激活函数、相应导函数以及权值调整学习算法等在子VI中实现,通过主VI调用子VI。在创建RFNN的FPGA VI程序后,将代码编译成为可以在NI RIO硬件设备上运行的程序。另外LabVIEW FPGA平台提供了FPGA实时程序与Windows图形用户程序的交互功能,通过创建HOST VI实现在RIO设备的FPGA和主机处理引擎之间的数据传输。由于HOST VI与FPGA VI的运行方式是异步的,此系统采用DMA FIFOs的方法实现这2个VI间的信息交换和应用程序同步。图3所示是创建一个FPGA应用程序所经历的开发过程。

利用LabVIEW 2011的LabVIEW FPGA模块实现递归模糊神经网络的过程中,应当注意硬件资源的充分利用以及程序运行在设定的时间内。单周期定时环路(Single Cycle Timed Loop,SCTL)是LabVIEW FPGA中一个特殊结构,生成一个更为优化的电路图,以期望达到在一个时钟(脉冲)周期内执行完所有逻辑电路分支。因此利用SCTL可以优化程序降低FPGA中不必要资源的浪费并且缩短了程序的执行时间。此外,FPGA不支持浮点数,应将浮点数转换为定点数进行运算。

3 实验验证

实验以舵机位置伺服系统为辨识对象,其最大输出角位移是±45°。根据神经网络隐层神经元数量的选择规则和电液位置伺服系统的阶数及特点,选用基于FPGA的三层改进的递归模糊神经网络对舵机位置伺服系统进行在线辨识。以计算机控制系统的控制电压值作为神经网络的输入,舵机马达的输出作为神经网络的期望值。采用正向动力学辨识结构如图4所示。

文中数字系统采用NI PXIe系列控制器和板卡,其中的FPGA板卡为NI PXI-7852R,是Xilinx公司推出的Virtex-5 LX50系列。整套硬件辨识系统如图5所示。

Virtex-5LX50 FPGA性能优越,资源丰富,具有7 200个可编程逻辑模块,每个模块中具有4个查找表和4个触发器,并且使用双六输入查找表。但实现三层递归模糊神经网络仍需要对程序进行优化,减少硬件资源的使用,提高系统的辨识效率。其次,将编译成功的二进制文件下载到硬件7852R中,完成下位机程序的执行。最后,上下位机通过DMA FIFO进行通信,用户通过HOST VI实现人机交互、在线监测、数据记录等功能,从而完成整套系统的开发。

在舵机位置伺服系统输出方波和三角波的情况下分别进行模型辨识实验。图6所示为方波跟踪时的实验输出与辨识结果,图7所示为三角波跟踪时的实验输出与辨识结果。

由图7和图8可知:三层OFRFNN对位置伺服系统的学习速度快、辨识精度高、稳定性强。主要原因是模糊逻辑适于表达模糊和定性知识,推理方式类似于人的思维模式,神经网络具有自学习、自适应的能力,吸收二者的长处在模型辨识中具有更好的性能。并且在静态结构的基础上引入隐层和输出层的反馈结构,使得OFRFNN每一时刻系统的输出不仅与由当前时刻输入有关,还与过去的数值有关,反映了系统的动态过程,且运算速度较快,更适合于非线性动态系统的辩识。

实验中,测量基于FPGA的OFRFNN对舵机位置系统辨识过程的运行时间,即在数据采集之前和系统辨识输出之后分别加入定时器,测得从数据采集到系统辨识权值调整再到数据输出的执行时间仅为19 μs,并且辨识周期稳定无波动,完全满足在线系统辨识高实时性、高确定性的要求。

4 结论

文中研究了基于FPGA的递归模糊神经网络对舵机位置伺服系统的辨识。首先给出了一种递归模糊神经网络和动态BP学习算法,其次利用LabVIEW开发环境实现基于FPGA的非线性系统辨识以及运行在Windows上的人机交互数据管理等,最后将编译无误的FPGA程序下载到硬件PXI-7852R中完成整套在线辨识数字系统的开发。利用FPGA的灵活性、高可靠性和可定制性,结合LabVIEW图形化编程,使系统设计简单灵活、可靠性高、实用性强。通过实验证明,采用动态BP算法的RFNN具有辨识精度高、适应性强、网络学习算法收敛快等优点,而且OFRFNN在FPGA上实现完全并行的运行方式极大提高了系统辨识速度,满足高实时、高确定系统在线辨识的要求。因此,基于FPGA的递归模糊神经网络为非线性动态系统辨识的应用提供了一种新方向。

猜你喜欢

隐层伺服系统舵机
浅谈支撑轴力伺服系统在深基坑中的应用
基于RTD可编程逻辑门的n变量函数实现算法
基于ESO的电液位置伺服系统反步滑模控制
一种自适应确定隐层节点数的增量半监督超限学习机算法
直升机某型舵机自动测试系统设计分析
卷积神经网络模型信息的深层安全控制方法及其优化
液压伺服系统产品测试生产流程优化
基于速度观测的双余度电液舵机系统容错同步控制
基于改进烟花算法的ELM 分类模型*
超音速舵机保护器