本发明属于电机控制领域,更具体地,涉及一种基于分段拟合神经网络激活函数的交流伺服控制方法。
背景技术:
1、电机是一个非线性系统,要从变化无穷的非线性关系中确定出合适的pid参数是一个巨大的挑战。传统电机控制器参数整定困难,当电机工作状态发生变化时控制器的控制效果变差。神经网络具有自学习、自适应、鲁棒性好等优势,具有很好地拟合非线性的能力。将神经网络和传统pid控制相结合,利用神经网络自动在线学习电机控制器中的速度pid参数,使得pid控制器达到最优性能。
2、相关技术中,将经典pid控制器和bp神经网络结合,利用激活函数的输入作为存储地址,并将对应的值写入ram或rom中,利用查找表可以输出存储的激活函数输入值。或者,相关技术中还有利用泰勒展开近似的方法实现神经网络激活函数。
3、但是,查找表激活函数精度高低受查找表大小的限制,实现高精度激活函数会占用较大的存储空间;而泰勒展开的拟合精度又会受到展开项最高阶次的影响,高的泰勒展开阶次会增加计算复杂度和时间成本,在大规模数据集的处理和神经网络的训练过程中,导致计算效率低下。
技术实现思路
1、针对现有技术的缺陷,本发明的目的在于实现神经网络和pid控制结合的同时,兼并计算精度和计算复杂度,旨在解决相关技术中计算精度和计算复杂度难以同时保证的问题。
2、为实现上述目的,本发明提供了一种基于分段拟合神经网络激活函数的交流伺服控制方法。
3、第一方面,本发明提供一种基于分段拟合神经网络激活函数的交流伺服控制方法,应用于基于fpga的交流伺服控制器,所述交流伺服控制器借助dsp builder编程实现,该方法包括:
4、执行bp神经网络的迭代训练过程,所述迭代训练过程包括:
5、将当前时刻的误差、期望转速和实际转速输入至bp神经网络进行前向传播计算,输出pid控制参数;
6、利用梯度下降原理进行误差反向传播来修正所述bp神经网络中隐含层和输出层神经元的连接权值;
7、在每次迭代训练过程中,基于增量式pid算法和所述bp神经网络输出的pid控制参数,控制交流伺服电机的速度;
8、其中,所述隐含层的激活函数为拟合relu激活函数,所述输出层的激活函数为分段拟合sigmoid激活函数。
9、在一些实施例中,所述拟合relu激活函数,满足:
10、
11、其中,x表示所述隐含层的输入值。
12、在一些实施例中,所述分段拟合sigmoid激活函数,满足:
13、
14、其中,x表示所述输出层的输入值。
15、在一些实施例中,所述分段拟合sigmoid激活函数通过一次乘法操作和两次移位操作实现。
16、在一些实施例中,所述利用梯度下降原理进行误差反向传播来修正所述bp神经网络中隐含层和输出层神经元的连接权值,满足如下计算公式:
17、
18、其中,w(k)为当前时刻神经元之间的连接权值,δw(k)为权值增量,w(k+1)为更新后的连接权值,η为学习率,为目标函数对于连接权值的梯度,所述目标函数为所述bp神经网络的给定输出值和实际输出值之间的均方误差。
19、第二方面,本发明提供一种用于交流伺服控制的fpga芯片,包括:
20、交流伺服控制单元,所述交流伺服控制单元包括顶层调用模块、编码器模块、电机电流获取模块、速度计算模块、神经网络pid控制器模块、坐标变换模块和svpwm模块;
21、所述顶层调用模块,用于调用除所述顶层调度模块之外的其它功能模块;
22、所述编码器模块,用于根据编码器协议解析交流伺服电机的位置信息;
23、所述电机电流获取模块,用于通过spi协议获取ad芯片转换的电机相电流数据;
24、所述速度计算模块,用于根据m法测速确定所述交流伺服电机的转速;
25、所述神经网络pid控制模块,包括pid控制器子模块和bp神经网络子模块,用于实现第一方面或第一方面的任一种可能的实现方式所描述的方法;
26、所述坐标变换模块,用于实现交流电流或交流电压的clark坐标变换、park坐标变换和ipark坐标变换
27、所述svpwm模块,用于输出pwm信号,所述pwm信号用于控制所述交流伺服电机的驱动电路。
28、在一些实施例中,所述坐标变换模块中的三角函数运算通过查找表的方式实现。
29、第三方面,本发明提供一种基于分段拟合神经网络激活函数的交流伺服控制装置,其特征在于,包括:
30、神经网络训练单元,用于执行bp神经网络的迭代训练过程,所述迭代训练过程包括:
31、将当前时刻的误差、期望转速和实际转速输入至bp神经网络进行前向传播计算,输出pid控制参数;
32、利用梯度下降原理进行误差反向传播来修正所述bp神经网络中隐含层和输出层神经元的连接权值;
33、速度控制单元,用于在每次迭代训练过程中,基于增量式pid算法和所述bp神经网络输出的pid控制参数,控制交流伺服电机的速度;
34、其中,所述隐含层的激活函数为拟合relu激活函数,所述输出层的激活函数为分段拟合sigmoid激活函数。
35、第四方面,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
36、第五方面,本发明提供一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
37、可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
38、总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
39、本发明实施例提供的基于分段拟合神经网络激活函数的交流伺服控制方法,将bp神经网络和传统pid控制相结合,基于fpga的并行处理能力,采用dsp builder辅助编程实现,通过可编程硬件来实现神经网络控制,激活函数采用分段拟合函数逼近,利用bp神经网络自动在线学习电机控制系统中的速度pid的参数,使得pid控制器性能达到最优,兼并计算精度和计算复杂度,可以满足控制过程对响应速度和稳定性的实际要求。
1.一种基于分段拟合神经网络激活函数的交流伺服控制方法,其特征在于,应用于基于fpga的交流伺服控制器,所述交流伺服控制器借助dsp builder编程实现,所述方法包括:
2.根据权利要求1所述的基于分段拟合神经网络激活函数的交流伺服控制方法,其特征在于,所述拟合relu激活函数,满足:
3.根据权利要求1所述的基于分段拟合神经网络激活函数的交流伺服控制方法,其特征在于,所述分段拟合sigmoid激活函数,满足:
4.根据权利要求3所述的基于分段拟合神经网络激活函数的交流伺服控制方法,其特征在于,所述分段拟合sigmoid激活函数通过一次乘法操作和两次移位操作实现。
5.根据权利要求1所述的基于分段拟合神经网络激活函数的交流伺服控制方法,其特征在于,所述利用梯度下降原理进行误差反向传播来修正所述bp神经网络中隐含层和输出层神经元的连接权值,满足如下计算公式:
6.一种用于交流伺服控制的fpga芯片,其特征在于,包括:
7.根据权利要求6所述的用于交流伺服控制的fpga芯片,其特征在于,所述坐标变换模块中的三角函数运算通过查找表的方式实现。
8.一种基于分段拟合神经网络激活函数的交流伺服控制装置,其特征在于,包括:
9.根据权利要求8所述的基于分段拟合神经网络激活函数的交流伺服控制装置,其特征在于,所述分段拟合sigmoid激活函数,满足:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序在处理器上运行时,使得所述处理器执行如权利要求1-5任一所述的方法。