基于SoPC的神经网络速度控制器的实现

出处:yeka086 发布于:2009-12-28 11:58:39

  摘 要: 一种基于SoPC的神经网络速度控制器的设计方案。速度控制器采用神经网络参数辨识自适应控制,以现场可编程门阵列(FPGA)为硬件平台,用Nios II软核处理器作为上位机,实现一个完整的速度控制器的片上可编程系统(SoPC)。实验结果表明,该控制系统能够满足现代速度控制系统高速度、高的要求。

  由于时变非线性和强耦合的控制系统还没有的数学模型,因而传统的依赖被控对象数学模型的控制策略及其控制系统的封闭式结构很难对其实施有效控制。神经网络控制能够很好地克服系统中模型参数的变化和非线性等不确定因素影响[1],并且随着可编程片上系统SoPC和大规模现场可编程门阵列FPGA的出现,为神经网络控制器的硬件实现提供了新的载体[2]。

  本文以Altera FPGA及内含的一个Nios II嵌入式软核处理器作为上位机来研究机械手臂直流电机速度控制器的片上可编程系统(SoPC)。根据模块化的设计思想,采用Verilog HDL语言,将神经网络控制器和其他电路模块在FPGA芯片内以硬件方式实现。

  1 系统总体结构

  系统控制部分采用Altera公司的CycloneII EP2C35芯片,取代了传统的单片机或DSP。FPGA与单片机的区别是它的并行性,FPGA能够并行地采集、处理和输出信号,是实现神经网络并行运算的关键,对提高系统的运行速度起了很大的作用。其FPGA芯片内集成的Nios II软核处理器作为上位机,根据末端执行器的速度,采用C++语言进行坐标变换和轨迹规划,定时向伺服控制系统发出控制命令和运行参数。系统总体框图如图1所示。

  2 神经网络速度控制器

  2.1 神经网络参数辨识自适应控制的基本原理

  用作自适应控制器的BPNNC,输入为电机给定转速y与实际转速yf相比较得到的转速误差e及其变化率ec,输出为PWM的控制信号Vp(k)。用作参数辨识的BPNNI的输入为驱动系统的实际输入(即BPNNC的输出值Vp)和电机实际转速yf,输出为辩识的系统输出y*,y*为预测转速,利用y*代替yf,用作RBFNNC的在线训练。图2为参数辨识自适应控制方框图。

  本文所用的两个BPNN都是双输入单输出网络,离线训练的样本均通过实验方法获得。NNC的输入样本向量为Xci={e(k),ec(k)},输出样本向量为Yci={Vp(k)};NNI的输入样本向量XIi={Vp(k-1),yf(k-1)},输出样本向量YIi={y*(k)}。网络参数的学习分两步进行:先在离线训练中确定隐层节点的个数及其各层的网络连接初始权值,再通过在线训练自适应地调整权值。

  两个BPNN都采用三层网络。输入层结点只起信号传输作用,隐含层和输出层神经元的激活函数采用Sigmoid函数:

  网络训练采用负梯度下降的误差反向传播算法。

  2.2 BPNN在FPGA中的硬件可重构实现

  目前基于SRAM工艺的FPGA具有易失性的特点,每次重新加电后FPGA都要重配置,才能使其进入工作状态。配置信息通常存放在片外存储器中,因此导致FPGA器件的资源配置可改变特性刚好可以满足由上述可知的BP网络的结构可重构、激活函数可重构和学习算法可重构的要求。

  从计算的角度考虑,BP网络的算法可以分为三个步骤,即前向传播、误差反向传播以及权值更新。但是考虑到神经网络的复杂性和设计文件的复用性,BP神经网络的硬件实现必须解决与算法有关的运算速度、计算、并行性和可存储性等问题。本文本着层次化、模块化的原则,采用由VerilogHDL硬件描述语言输入的自上而下的设计方法,把BP神经网络分为前向运算模块、误差反传及权值调整模块、权值存储模块、权值分配模块等几大功能模块。系统结构如图3。

  将上述各个BP网络运算模块组合后就可以实现一整套人工神经网络。但是仅仅将这些模块简单连在一起并不能让网络进行工作或训练,还必须设定在每一个时钟沿对每一个模块发出正确的使能信号,使每一个模块处在工作状态或者停滞状态,并且还必须有合适的地址信号发生器在正确的时间产生正确的地址信号,使每数据都能从正确位置读出并写入正确的位置。本文根据BP算法的运算规则设计控制模块,并且在整个系统中采用一个共用的地址发生器。控制模块有七个输出信号,分别是:前向模块使能信号、学习模块使能信号、片内RAM及地址产生模块使能信号、片内RAM写入控制信号wen、片内RAM读出控制信号ren、片外存储器写控制信号save、片外存储器读控制信号load。因此的控制器可以使网络进行离线训练时将前向模块、误差反传模块和相应的控制模块同时配置到FPGA中进行网络训练。当训练好的网络正常工作时,只要在FPGA中配置前向模块和相应的控制模块就可以高速运行该神经网络。逻辑工作流程如图4所示。

  2.3 BP网络控制器的仿真结果

  文献[6]中,通过对一些典型应用的研究和分析发现,16位定点数是不削弱神经网络能力的要求。为避免运算规模过于庞大和节约芯片资源,本设计对32位的输出数据进行了截尾操作,仅取32位中的前16位。

  源代码通过功能仿真和时序仿真测试后综合生成网表文件,在Altera公司的Cyclone II EP2C35器件中实现。BP网络控制器的QuartusⅡ仿真结果如图5所示。由图5可知经过多次训练后系统输出值f越来越接近于给定值t,误差err变小,小于给定误差。

  3 应用举例

  根据前面的仿真结果,把神经网络速度控制器应用在一个机械臂上,具体实验与结果如图6。

  如图6,运动控制系统模块接收到速度给定信号和命令后进行速度调节。速度调节器的输出就是PWM脉宽调制电路的控制信号,之后产生PWM信号传给伺服电机驱动器驱动电机。速度反馈信号由装在电机轴上的光电编码器产生。为了提高反馈信号的分辨率,对光电编码器的输出信号进行倍频,从而提高了编码器的分辨率,也就提高了速度反馈信号的分辨率。速度调节采用神经网络参数辨识自适应控制。

  驱动对象是一台直流力矩电机,输入电压为DC27V,额定电流2.5A,空载转速600r/min。图7为空载状态下转速指令由0上升到 110 r/min的阶跃输入时的系统跟踪结果。由图7可知,系统能快速响应给定转速的变化,有较好的跟踪能力和稳定性。

  本文运用神经网络控制方法并且通过FPGA中的硬件实现速度反馈调控电路,采用C++语言在FPGA片内集成的Nios Ⅱ软核处理器中进行坐标变换和轨迹规划,构成一个完整的机械臂关节速度控制器的SoPC系统。此方案使控制器系统的集成度变高,增加了系统的抗干扰性和稳定性,同时提高了系统调试效率和控制,是现代机器人伺服系统向模块化、智能化发展的方向。


  
关键词:控制器

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!