一种基于FPGA和单片机的电机位置校准方法和系统与流程

文档序号:37428114发布日期:2024-03-25 19:17阅读:11来源:国知局
一种基于FPGA和单片机的电机位置校准方法和系统与流程

本发明属于自动化,特别涉及一种基于fpga和单片机的电机位置校准方法和系统,用于电机动子位置的校准。


背景技术:

1、在交流伺服控制系统中,电机(动子)的位置反馈信号对控制性能和定位精度起着至关重要的作用。为了满足测量精度与系统成本之间的平衡,增量式正交脉冲编码器被广泛应用于电机的位置检测中。由于增量式正交脉冲编码器无记忆功能,在现场环境恶劣和电磁干扰严重的应用场合中,编码器的位置检测结果往往会产生偏差,长时间会造成位置信号的误差累积,影响电机位置精度,因此常采用z相脉冲信号对a相和b相正交信号进行校正。

2、目前常采用hall元件搭配磁铁形成磁传感器来实现z相信号的产生,不过因磁传感器有迟滞效应,响应速度有限,使得编码器输出的z相信号与a相信号、b相信号的相位一致性较差,从而使得校正存在一定误差。另外,常规的z脉冲校准方法采用单片机外部中断触发的方式进行,这种方式由于z相信号在电机正向运动和反向运动时的对应的零点位置不同,从而导致触发外部中断的位置也不同,因此单片机解算出的电机(动子)位置的定位精度差,同时校准后电机正反运动时存在回差,降低了重复定位的精度,故该方法无法在高精度场合使用。


技术实现思路

1、为解决现有技术中存在的问题,本发明提供一种基于fpga和单片机的电机位置校准方法和系统。

2、本发明的技术方案如下:

3、一种基于fpga和单片机的电机位置校准方法,所述单片机根据电机编码器的输出信号解算电机动子的位置,所述方法包括:

4、通过fpga捕获电机编码器的输出信号及其对应的上升沿和下降沿;所述电机编码器的输出信号包括a相信号、b相信号和z相信号;

5、根据捕获的a相信号和b相信号及其对应的上升沿和下降沿,进行电机运动方向的判断并对a相信号和b相信号的脉冲数进行计数;

6、根据捕获的z相信号及其对应的上升沿和下降沿和判断出的电机运动方向,确定校准触发信号;

7、根据首次触发校准触发信号与再次触发校准触发信号之间的脉冲数差值计算出z脉冲补偿值,对单片机解算电机动子的位置进行补偿校准。

8、进一步地,所述通过fpga捕获电机编码器的输出信号及其对应的上升沿和下降沿的具体方法包括:

9、通过fpga的io引脚获取电机编码器的输出信号,利用fpga内部时钟检测io信号,比较相邻两时钟周期io信号的高低电平变化,以此捕获所述编码器输出信号的上升沿和下降沿的到来。

10、进一步地,所述根据所捕获的a相信号和b相信号的上升沿和下降沿,进行电机运动方向的判断的具体方法包括:

11、当a相信号上升沿到来时,若b相信号为1,则电机运动方向为正向,若b相信号为0,则电机运动方向为反向;

12、当a相信号下降沿到来时,若b相信号为0,则电机运动方向为正向,若b相信号为1,则电机运动方向为反向;

13、当b相信号上升沿到来时,若a相信号为0,则电机运动方向为正向,若a相信号为1,则电机运动方向为反向;

14、当b相信号下降沿到来时,若a相信号为1,则电机运动方向为正向,若a相信号为0,则电机运动方向为反向。

15、进一步地,所述根据捕获的z相信号及其对应的上升沿和下降沿和判断出的电机运动方向,确定校准触发信号的具体方法包括:

16、当电机运动方向为正向时,以z相信号的上升沿为校准触发信号;当电机运动方向为反向时,以z相信号的下降沿为校准触发信号。

17、进一步地,所述首次触发校准触发信号与再次触发校准触发信号之间的脉冲数差值,计算出z脉冲补偿值的具体方法包括:

18、首次触发校准触发信号时,记录首次触发时刻对应的fpga时钟周期下的脉冲数,并将该脉冲数传递给单片机,单片机将该脉冲数作为z脉冲校准零点值count0;

19、再次触发校准触发信号时,记录再次触发时刻对应的fpga时钟周期下的脉冲数,并将z脉冲触发标志位置为1,且将该脉冲数以及z脉冲触发标志位传递给单片机,单片机读取到标志位后计算z脉冲补偿值,并将清零信号发送给fpga,fpga收到清零信号后将z脉冲触发标志位清0。

20、进一步地,所述z脉冲补偿值的计算公式为:

21、

22、式中,n为中间变量,用于衡量当前再次触发时刻对应的fpga时钟周期内z相信号位于z脉冲校准零点值左侧或右侧相隔位置数;count为再次触发时刻对应的fpga时钟周期下的脉冲数;count0为z脉冲校准零点值;l为z相信号脉冲间隔距离;δx为位置信号补偿值。

23、进一步地,单片机读取到标志位置1的控制周期以上一控制周期的速度作为反馈速度,根据计算出的z脉冲补偿值计算速度作为下一控制周期的反馈速度。

24、进一步地,所述电机为直线电机或旋转电机。

25、进一步地,所述电机编码器为增量式正交脉冲编码器。

26、一种基于fpga和单片机的电机位置校准系统,所述单片机根据电机编码器的输出信号解算电机动子的位置,所述系统包括双边沿捕获模块、运动方向判断模块、校准触发信号确定模块和补偿校准模块;

27、所述双边沿捕获模块,用于通过fpga捕获电机编码器的输出信号及其对应的上升沿和下降沿;所述电机编码器的输出信号包括a相信号、b相信号和z相信号;

28、所述运动方向判断模块,用于根据捕获的a相信号和b相信号及其对应的上升沿和下降沿,进行电机运动方向的判断并对a相信号和b相信号的脉冲数进行计数;

29、所述校准触发信号确定模块,用于根据捕获的z相信号及其对应的上升沿和下降沿和判断出的电机运动方向,确定校准触发信号;

30、所述补偿校准模块,用于根据首次触发校准触发信号与再次触发校准触发信号之间的脉冲数差值计算出z脉冲补偿值,对单片机解算电机动子的位置进行补偿校准。

31、本发明相比于现有技术具有如下有益效果:

32、本发明提出一种基于fpga和单片机的电机位置校准方法,该方法利用fpga实现对电机编码器输出信号的双边沿捕获,并基于捕获的双边沿对电机运动方向进行判断,再分别对正向和反向运动的电机进行对应的补偿校准,由此可以减少因电机正向运动与反向运动时z相信号的产生位置不同而产生的误差,提高了定位精度和重复定位精度,使本发明校准方法的校准准确性提高,使本发明适用于环境恶劣以及电磁干扰严重的场合。

33、本发明方法利用fpga内部时钟的高频特性,捕获电机编码器的输出信号及其对应的上升沿和下降沿,由此使得编码器输出的z相信号与a相信号、b相信号具有较好的相位一致性,还通过首次触发校准触发信号时与再次触发校准触发信号时之间的脉冲数差值计算出z脉冲补偿值,进而可对单片机的位置进行精确的补偿校准。

34、本发明方法在计算z脉冲补偿值时,先计算出用于衡量当前再次触发时刻对应的fpga时钟周期内z相信号位于z脉冲校准零点值左侧或右侧相隔位置数的中间变量n,基于此再进行z脉冲补偿值的计算,由此可以避免补偿值计算中由于z相信号丢失导致补偿值计算错误。

35、本发明方法还对单片机控制周期的反馈速度进行设计,将单片机读取到标志位置1的控制周期以上一控制周期的速度作为反馈速度,根据计算出的z脉冲补偿值计算速度作为下一控制周期的反馈速度,该速度解算优化设计可防止z脉冲补偿后解算位置突变造成速度反馈波动过大引起电流尖峰,解决速度波动问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1