【技术实现步骤摘要】
一种神经网络PID闭环控制的FPGA实现方法
[0001]本专利技术涉及运动控制领域,具体涉及一种神经网络PID闭环控制的FPGA实现方法。
技术介绍
[0002]随着人工智能的快速发展,智能化设备迅速普及。神经网络的模型和学习算法在软件实现上已经取得了巨大成就,但因CPU自身的局限性,只能顺序读取执行命令,无法解决神经网络并行运算的特点,并且随着人工智能的不断快速发展,神经网络算法越来越复杂,在实时性要求比较高的许多场合,比如自动驾驶,数据分析,工业控制等,顺序执行指令大大限制了神经网络的能力。软件串行指令实现BP神经网络一直存在网络收敛速度过慢、实时性差的问题,而可编程逻辑器件FPGA的出现给神经网络提供了一种有效的硬件实现方式。可通FPGA过并行计算的方式,在一个周期内完成多个运算,且其可编程以及可重构能力大大缩短了神经网络的设计周期,这使得利用硬件实现大型神经网络成为可能。
技术实现思路
[0003]本专利技术的目的在于提供一种神经网络PID闭环控制的FPGA实现方法,该方法有利于提高电机速度控制的准
【技术保护点】
【技术特征摘要】
1.一种神经网络PID闭环控制的FPGA实现方法,其特征在于,包括如下步骤:步骤S1、通过外部设备获取期望的转速,通过计算得到误差、期望转速和实际转速之后进入步骤S2;步骤S2、利用BP神经网络算法进行前向传播计算,计算性能指标函数后进入步骤S3;步骤S3、利用梯度下降原理进行误差的反向传播来修正各层神经元的权重,然后进入步骤S4;步骤S4、在每次训练后,利用闭环PID算法计算并通过PWM技术和四倍频脉冲计数进行控制与测速。2.根据权利要求1所述的一种神经网络PID闭环控制的FPGA实现方法,其特征在于,步骤S1中,通过公式e(k)=r(k)
‑
y(k)进行误差计算,其中e(k)、r(k)和y(k)分别代表k时刻的当前误差、期望转速和实际转速,并作为BP神经网络的输入。3.根据权利要求1所述的一种神经网络PID闭环控制的FPGA实现方法,其特征在于,步骤S2中,通过步骤S1得到的神经网络输入,再经过输入层、隐含层和输出层的神经元,神经元包括乘法器、累加器、权值寄存器、激活函数,结果为PID控制器的Kp、Ki和Kd控制参数;式中的和分别代表隐含层的输入和输出层的输入;和分别代表输入层的输出、隐含层的输出和输出层的输出;g(x)和f(x)分别代表隐含层的激活函数和输出层的激活函数;w
ij
和w
jl
分别代表隐含层的各层神经元的权重和输出层的各层神经元的权重;∑代表累加符号,累加符号是当前层第i个神经元的权重与上层所有神经元的输出相乘后的累加。4.根据权利要求1所述的一种神经网络PID闭环控制的FPGA实现方法,其特征在于,步骤S3,采用梯度下降原理来修正隐含层和输出层的各个神经元的权重,在训练过程中通过多次迭代改变各层神经元权重,最终通过大量的迭代找到函数极小值点,如公式(2)所示进行权重计算:式中的η为学习率且大于0,γ为惯性系数且大于0,和分别代表上次训练的隐含层的权重和输出层的权重,o
(1)
(i)、分别代表输入层的输出、隐含层的输出,和分别是输出层的当前权重与上层权重的差值和隐含层的当前权重与上层权重的差值,和分别代表输出层各神经元的局部梯度值和隐含层各神经元的局部梯度值,其公式(3)和公式(4)如下所示:
在公式(3)和公式(4)中...
【专利技术属性】
技术研发人员:王俊,李谋道,林瑞全,程长春,谢鑫,林剑峰,谢欢,章敏,
申请(专利权)人:福州大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。