一种步进电机的S曲线控制系统及方法与流程

文档序号:38378169发布日期:2024-06-19 12:34阅读:8来源:国知局
一种步进电机的S曲线控制系统及方法与流程

本发明属于步进电机的控制领域,具体涉及一种步进电机的s曲线控制系统及方法。


背景技术:

1、步进电机因为其矩频曲线的原因,适合用s曲线的方式进行驱动,而fpga(fieldprogrammable gate array,现场可编程门阵列)因为其并行逻辑处理的优势,可作为一个多步进电机系统中的驱动逻辑芯片,减轻系统其它处理机构的压力,目前基于fpga的步进电机s曲线控制大致有两种方法;第一是使用查找表的方法,也就是需要事先计算生成步进电机运行的s曲线,再经过密集采样将主曲线以离散点数据的方式存在fpga的ram(random-access memory,随机存储器)或者rom(read-only memory,只读存储器)中,按需求从ram或者rom读取曲线数据,fpga本身不涉及曲线本身计算并且需要消耗ram或者rom资源;第二是使用数学模型进行计算,在不同工况应用不同数学模型,需要预设多钟数学模型,并且有些数学模型需要用到三角函数或者浮点运算,相对会消耗较多的fpga内部资源。

2、专利号为“cn202210350895.6”的专利公开了一种步进电机的加减速曲线优化方法、控制方法及系统,利用优化的加减速曲线驱动步进电机从一定速度启动,但是这种优化方法不涉及对步进电机的s曲线控制的优化,还是会存在消耗较多的fpga内部资源的问题。


技术实现思路

1、本发明的目的在于提供一种步进电机的s曲线控制系统及方法,通过该控制系统及方法,使步进电机的s曲线控制只跟输入参数和系统常量有关,减少fpga的内部资源消耗。

2、为实现上述发明目的,本发明采取的技术方案如下:

3、一种步进电机的s曲线控制系统,包括控制中心、外部控制机构;所述控制中心包括通信模块、s曲线参数计算模块、pwm信号生成模块;所述外部控制机构通过步进电机控制参数控制所述步进电机;

4、所述控制中心,用于通过s曲线的方式驱动所述步进电机;

5、所述通信模块,用于获取所述外部控制机构的步进电机控制参数,并输入所述s曲线参数计算模块;

6、所述s曲线参数计算模块,用于根据所述步进电机控制参数,计算出步进电机的s曲线控制参数,并输入至所述pwm信号生成模块;

7、所述pwm信号生成模块,用于根据所述步进电机控制参数和所述s曲线控制参数,开始产生对应s曲线的pwm信号驱动所述步进电机运动。

8、本发明的一种步进电机的s曲线控制系统,通过通信模块获取外部控制机构的步进电机控制参数,再通过s曲线参数计算模块计算出步进电机的s曲线控制参数,最终实现通过pwm信号生成模块开始产生对应s曲线的pwm信号驱动步进电机运动,该控制系统结合控制方法,能使步进电机的s曲线控制只跟输入参数和系统常量有关,简化对步进电机运动控制过程,减少fpga的内部资源消耗。

9、优选的,所述s曲线参数计算模块包括f_half计算模块、j计算模块;所述步进电机控制参数包括起始速度f_init、运行步数step_num、运行时间t_req、加减速时间比例系数t、加减速步数比例系数s;

10、所述f_half计算模块用于计算步进电机的s曲线对应中间速度;

11、所述j计算模块用于计算步进电机的加速度的加速度。

12、本发明还提供一种步进电机的s曲线控制方法,应用于上述的一种步进电机的s曲线控制系统,所述步进电机的s曲线控制方法包括以下步骤:

13、步骤s1.通信模块获取外部控制机构的步进电机控制参数并输入s曲线参数计算模块;

14、步骤s2.s曲线参数计算模块根据步进电机控制参数,计算出步进电机的s曲线控制参数,并输入至pwm信号生成模块;

15、步骤s3.pwm信号生成模块根据步进电机控制参数和s曲线控制参数,开始产生对应s曲线的pwm信号;

16、步骤s4.控制中心根据pwm信号驱动步进电机运动,步进电机进入s曲线运动阶段。

17、优选的,4.根据权利要求1所述的步进电机的s曲线控制方法,其特征在于,所述步骤s2中的s曲线控制参数包括s曲线加加速度j、s曲线对应中间速度f_half;所述控制中心为fpga。

18、优选的,所述步骤s2包括以下步骤:

19、步骤s2.1.fpga对应的系统时钟周期sys_clk_cycle为常量,“运行时间t_req”和“加减速时间比例系数t”用于计算“s曲线加减速时间对应系统周期数t_req_cycle_num”如下:

20、t_req_cycle_num=t_req/t/sys_clk_cycle;

21、“运行步数step_num”和“加减速步数比例系数s”用于计算“s曲线加减速所需电机步数step_ad_num”如下:

22、step_ad_num=step_num/s;

23、“s曲线加减速所需电机步数step_ad_num”和“s曲线加减速时间对应系统周期数t_req_cycle_num”计算用于计算“s曲线加减速平均一步对应系统周期数

24、half_step_cycle_num”如下:

25、half_step_cycle_num=t_req_cycle_num/step_ad_num;

26、下面写为只跟模块输入参数和系统常量有关:

27、half_step_cycle_num=(t_req×sys_clk_cycle×s)/(t×step_num);

28、步骤s2.2.fpga对应的系统时钟频率为sys_clk,“s曲线加减速平均一步对应系统周期数half_step_cycle_num”计算得出“s曲线对应中间速度f_half”如下:

29、f_half=sys_clk/half_step_cycle_num;

30、下面写为只跟模块输入参数和系统常量有关,也就是“s曲线参数计算模块”中的“f_half计算模块”计算过程:

31、f_half=(sys_clk×t×step_num)/(t_req×sys_clk_cycle×s);

32、步骤s2.3.“s曲线对应中间速度f_half”和参数“起始速度f_init”得出“s曲线最高速度f_high”如下:

33、f_high=(f_half-f_init)×2+f_init。

34、优选的,所述步骤s2还包括以下步骤:

35、步骤s2.4.设步进电机在s曲线加速阶段的加速度为a,则加速度a的加加速度j的刷新周期为acc_cycle_num,即acc_cycle_num个系统时钟周期sys_clk_cycle;

36、步骤s2.5.j计算模块计算s曲线加加速度j如下:

37、加速度a达到最大时经过的刷新周期数t_req_cycle_num/2/acc_cycle_num,并且速度频率变化为(f_high-f_init)/2,所以a从初始值a0到最大值有以下计算:

38、((f_high-f_init)/2)=a0×(t_req_cycle_num/2/acc_cycle_num)+j×

39、(t_req_cycle_num/2/acc_cycle_num)2/2;

40、因为a0是0,所以有:

41、((f_high-f_init)/2)=j×(t_req_cycle_num/2/acc_cycle_num)2/2;

42、结合“s曲线最高速度f_high”和“s曲线加减速时间对应系统周期数t_req_cycle_num”计算得到“s曲线加加速度j”如下:

43、j=((f_high-f_init)/2)/((t_req_cycle_num/2/acc_cycle_num)2/2);

44、下面写为只跟模块输入参数和系统常量有关,也就是“s曲线参数计算模块”中的“j计算模块”计算过程:

45、j=(8×sys_clk×step_num×t3)/(t_req3×sys_clk_cycle3×s×acc_cycle_num2)-(8×f_init×t2)/(t_req2×sys_clk_cycle2×acc_cycle_num2)。

46、优选的,所述步骤s3包括:pwm信号生成模块通过s曲线加加速度j、s曲线对应中间速度f_half、起始速度f_init,开始产生对应s曲线的pwm信号驱动。

47、优选的,设所述s曲线加速阶段的持续时间为t,且由多个持续时间相同的时间片段组成;所述pwm信号生成模块包括:在步进电机的s曲线加速阶段,获取s曲线对应中间速度f_half,判断出加速度a是增加还是减小;

48、若判断出加速度a是增加,则在s曲线加速阶段,加速度a在步进电机的速度达到f_half之前每过一个时间片段,加速度a会叠加s曲线加加速度j,即

49、a=a+j;

50、若判断出加速度a是减小,则在s曲线加速阶段,加速度a在步进电机的速度达到f_half之后每过一个时间片段,加速度a会减去s曲线加加速度j,即

51、a=a-j。

52、优选的,所述pwm信号生成模块还包括:输出脉冲,且输出脉冲的频率从步进电机的起始速度f_init开始,每输出完一个完整周期脉冲频率,记为fcu,则输出的下一个脉冲频率fne会叠加上加速度a,即fne=fcu+a。

53、优选的,所述步进电机的s曲线控制方法还包括:

54、步骤s5.当步进电机在s曲线加速阶段的加速度a等于0时,fcu达到最高频率,结合加减速步数比例系数s,控制中心驱动步进电机进入减速阶段,直至pwm信号生成模块输出的脉冲数量达到运行步数step_num。

55、有益效果:

56、本发明的一种步进电机的s曲线控制系统及方法,控制系统通过通信模块获取外部控制机构的步进电机控制参数,再通过s曲线参数计算模块计算出步进电机的s曲线控制参数,最终实现通过pwm信号生成模块开始产生对应s曲线的pwm信号驱动步进电机运动,该控制系统结合控制方法,能使步进电机的s曲线控制只跟输入参数和系统常量有关,简化对步进电机运动控制过程,减少fpga的内部资源消耗。

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