myqiang1990 发表于 2012-7-30 11:40:46

谁有步进电机S加速曲线,能用的好点的资料....

如题.....哪位大侠有啊?传来参考参考吧.最好是大家用过的..是对的资料.........

coleyao 发表于 2012-7-30 12:04:26

照着数组控制PWM脉宽就可以了,贴个用过的数组(增量式):
unsigned char const x400_step_Index= {0, 1,10,21,30,40,48,56,64,70,75,81,84,86,90,90,92,92,92,91,91,89,88,86,84,83,81,78,77,74,72,70,
                                       69,66,64,62,61,58,57,55,53,52,50,49,47,46,44,44,42,40,40,38,38,36,35,35,33,33,31,31,30,30,28,28,
                                       27,27,26,25,25,24,23,23,23,22,21,21,21,20,19,19,19,19,18,17,18,17,16,17,16,15,16,15,15,14,15,14,
                                       13,14,13,13,13,13,12,12,12,12,12,11,11,11,11,11,10,11,10,10,10,10, 9,10, 9, 9, 9, 9, 9, 9, 8, 9,
                                          8, 8, 8, 8, 8, 8, 8, 7, 8, 7, 7, 8, 7, 7, 7, 6, 7, 7, 6, 7, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5,
                                          6, 5, 6, 5, 6, 5, 5, 5, 5, 6, 5, 4, 5, 5, 5, 5, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 4, 5, 4, 4, 4, 4,
                                          4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 3, 4, 3, 4, 4, 3, 4, 3, 3, 4, 3, 3, 4, 3, 3, 3, 4, 3, 3, 3, 3,
                                          3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 2, 3, 3, 2, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
                                          2, 3, 2, 2, 3, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,
                                          2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1,
                                          2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1,
                                          2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                                          1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,
                                          1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
                                          1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1,
                                          0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
                                          0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1,
                                          0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1,
                                          0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0,
                                          0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,
                                          0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
                                          0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0,
                                          0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,
                                          0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
                                          0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
                                          0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
                                          0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
                                          0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
                                          0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
                                          0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
                                          0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
                                          0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
                                          0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                          0, 0, 0, 0, 0};

myqiang1990 发表于 2012-7-30 12:06:57

coleyao 发表于 2012-7-30 12:04 static/image/common/back.gif
照着数组控制PWM脉宽就可以了,贴个用过的数组(增量式):
unsigned char const x400_step_Index= { ...

谢谢....不过您有资料吗?我要资料就可以了....

coleyao 发表于 2012-7-30 12:10:26

自己琢磨的,数据是用EXcel计算的,算完后用数据形成一个速度曲线,确认是S型的就好了,实际使用确实比之前效果要好,都是临时花时间弄的,还真没啥拿的出手的{:sweat:}

myqiang1990 发表于 2012-7-30 12:15:06

coleyao 发表于 2012-7-30 12:10 static/image/common/back.gif
自己琢磨的,数据是用EXcel计算的,算完后用数据形成一个速度曲线,确认是S型的就好了,实际使用确实比之前 ...

没事。。。您就贴上来吧,,,吧你用过的资料传上来吧,,,{:smile:}

coleyao 发表于 2012-7-30 12:44:32

参考附件所示表单:

myqiang1990 发表于 2012-7-30 13:17:54

本帖最后由 myqiang1990 于 2012-7-30 13:24 编辑

coleyao 发表于 2012-7-30 12:44 static/image/common/back.gif
参考附件所示表单:

谢谢啦。。我研究一下下。。。。还真的是S曲线啊。。谢谢啦。。excel不太懂。。我来研究研究....发现时5段S曲线.....没有匀加速过程......

我还想问问你。。。你是从哪些资料弄出这些公式的?我想要的是那个资料。。就是你推导出来公式的那些资料。。。我想自己研究研究....{:smile:} 不想不劳而获.....{:lol:}

coleyao 发表于 2012-7-30 14:29:48

本帖最后由 coleyao 于 2012-7-30 14:36 编辑

从 a=kt和a=b-kt(加速度为等腰三角形或等腰梯形)逐步递推就好了,excel里面都有了,数据多,挺麻烦的,我基本上是拷贝出来改数据,回头再理一遍也很伤神的,尽管东西都是自己弄的。。。

myqiang1990 发表于 2012-7-30 14:47:11

coleyao 发表于 2012-7-30 14:29 static/image/common/back.gif
从 a=kt和a=b-kt(加速度为等腰三角形或等腰梯形)逐步递推就好了,excel里面都有了,数据多,挺麻烦的,我 ...

我很想知道您的公式是如何的。。我看了一下的excel...我基本推导出了您用公式.....但是我不知道对不对....我在这里写不出来....我贴一下图。。您用到的就是这两个公式是吗?

myqiang1990 发表于 2012-7-30 14:48:38

其实我最想知道得就是公式。。。这样我可以根据我的实际情况改动。。。。。

coleyao 发表于 2012-7-30 16:12:06

不是这样的,用步进电机的话,要一步一步的算,而步进电机每一步的速度、加速度、Delta(t)(每一步的时间)都是变量,要递推计算,点击excel相关位置就能看到该位置的值是如何计算出来的了

myqiang1990 发表于 2012-7-30 17:33:33

本帖最后由 myqiang1990 于 2012-7-30 17:52 编辑

coleyao 发表于 2012-7-30 16:12 static/image/common/back.gif
不是这样的,用步进电机的话,要一步一步的算,而步进电机每一步的速度、加速度、Delta(t)(每一步的时间) ...

你做这个表需要的参数又哪些?

你这个表确实生成了类似S型曲线。。。但是怎么用呢?

我截了个图。。。图上从左到由表示什么参数??
如何控制最高速度?
如何控制曲线升降快慢?




coleyao 发表于 2012-7-30 18:39:35

本帖最后由 coleyao 于 2012-7-30 18:52 编辑

G列是得到的Pwm周期,每个周期进pwm中断重设置一下周期(读整数数组)或加减周期增量(字节),就得到预定的s曲线了,那个最终速度取决于加速度上升斜率和上升时间,我只能做定速的s曲线,变速的还没想到怎么做呢,如果你整出来了,别忘了告诉我。Δt是每一步时间,t是连续性时间,后面的依次是理论的 pwm周期,取整后的 pwm周期,Δpwm周期。不同的速度我目前是通过不同的数组来实现的,就是说要两个速度就算出两组数组。

myqiang1990 发表于 2012-7-30 20:32:02

coleyao 发表于 2012-7-30 18:39 static/image/common/back.gif
G列是得到的Pwm周期,每个周期进pwm中断重设置一下周期(读整数数组)或加减周期增量(字节),就得到预定的 ...

你加速的时候...不在每个频点多走几步吗?如果每个频点就走一步...会不会失步呢?还有一般做加速的话.....会把启动速度---->最高运行速度之间的速度进行等级离散化...比如从20HZ----->100HZ按照S曲线加速...会将20HZ---->100HZl离散为一定数量的速度台阶... 比如量化为255个速度台阶...每个台阶里面又保持几步..防止丢不...然后通过这255个台阶让启动20HZ以S曲线逼近100HZ.....但是我没发现你这样做....你是怎么加速的?

coleyao 发表于 2012-7-30 20:36:19

本帖最后由 coleyao 于 2012-7-30 20:43 编辑

离散的是周期(机器周期T的整数倍),周期的倒数就是速度了,其实是一回事!那个excel在数据在一些数据处理和分析的时候还是很有用的,如果不做宏定义的话,其实并不复杂。

modbus 发表于 2012-7-30 22:32:46

S曲线比直线加减速有什么好处?直线加减速就好处理多了

myqiang1990 发表于 2012-7-30 23:17:32

coleyao 发表于 2012-7-30 20:36 static/image/common/back.gif
离散的是周期(机器周期T的整数倍),周期的倒数就是速度了,其实是一回事!那个excel在数据在一些数据处理 ...

我不知道你加速的时候会不会在每个频率点保持一定的步数.......比如在20HZ保持走几步...然后30保持走几步...以此类推....防止电机关心而丢步?....

coleyao 发表于 2012-7-31 07:53:30

myqiang1990 发表于 2012-7-30 23:17 static/image/common/back.gif
我不知道你加速的时候会不会在每个频率点保持一定的步数.......比如在20HZ保持走几步...然后30保持走几步 ...

你说的似乎是分段式,不是平滑式控制,实际的S曲线平滑控制是根据需要来的,有些地方每一步都会换一个频率(当然变动不会很大并且是平滑的),有些地方则好多步都是同一个频率(一开始贴的数组中为零的地方就是增量为零,周期不变,也即频率维持在某个值不变)。

coleyao 发表于 2012-7-31 07:58:19

modbus 发表于 2012-7-30 22:32 static/image/common/back.gif
S曲线比直线加减速有什么好处?直线加减速就好处理多了

没啥大的好处,我以前的同事做的机器,XY双轴联动,采用分段式控制,我改成S型速度曲线控制后,同等条件下(运行时振荡幅度)速度提高了50%以上,如果机械条件允许,应该可以再高一些(单片机软件伺服,受晶振频率等条件限制)。

bsz84 发表于 2012-7-31 08:13:24

学习,学习。

283868130 发表于 2012-7-31 08:30:03

mark下,虽然对步进电机没什么研究

myqiang1990 发表于 2012-7-31 10:05:32

本帖最后由 myqiang1990 于 2012-7-31 10:11 编辑

coleyao 发表于 2012-7-31 07:53 static/image/common/back.gif
你说的似乎是分段式,不是平滑式控制,实际的S曲线平滑控制是根据需要来的,有些地方每一步都会换一个 ...

貌似我明白点您的意思了...你上面那个表是前后频率之间的差值..一个起点频率...然后按照这个表依次推出每个点的频率.... 如果两个差值越大...频率变化越快....如果连续出现0...意思是在这几个点保存同一频率....其实和分段貌似应该差不多.....不知道两个会有何区别?是不是平滑控制会比分段式。。。电机更加平滑?

启动速度如何?快不快?

myqiang1990 发表于 2012-7-31 10:32:15

本帖最后由 myqiang1990 于 2012-7-31 10:36 编辑

coleyao 发表于 2012-7-31 07:53 static/image/common/back.gif
你说的似乎是分段式,不是平滑式控制,实际的S曲线平滑控制是根据需要来的,有些地方每一步都会换一个 ...

那按照你这样说....你从最低速加到最高速...也就是走了1446步?我是做舞台灯的..启动得快稳..平滑...我加速是用定时器来不断改变脉冲频率来加速的....不是跳PWM脉宽...跳PWM脉宽我们是用来细分的....

coleyao 发表于 2012-7-31 11:03:26

myqiang1990 发表于 2012-7-31 10:32 static/image/common/back.gif
那按照你这样说....你从最低速加到最高速...也就是走了1446步?我是做舞台灯的..启动得快稳..平滑...我加 ...

PWM(脉宽调制)是个名称而已,实际上可以通过定时器来实现,大多单片机是把pwm作为定时器的一种模式。。。

myqiang1990 发表于 2012-7-31 11:53:39

本帖最后由 myqiang1990 于 2012-7-31 11:59 编辑

coleyao 发表于 2012-7-30 18:39 static/image/common/back.gif
G列是得到的Pwm周期,每个周期进pwm中断重设置一下周期(读整数数组)或加减周期增量(字节),就得到预定的 ...

FX/8000000这个8000000是不是你单片机的定时器频率?然后F列的PWM周期乘以定时器周期就会等到什么? 还有G列开头那个62300.....

我用你的excle的sheet1的算法算了一个标准的S曲线...发现启动特别慢...我想现在用你之后的那些算法的曲线...就是3段的S曲线..类似抛物线那种...应该启动会很快.....
我现在想用的之后的那些算法...我发现他生成的是3段类似抛物线的S曲线..启动应该很快...

这个是标准的S曲线...发现启动太慢了...

coleyao 发表于 2012-7-31 12:00:23

8000000(8M)是晶振频率,F列是每个细分脉冲(未细分时就是马达脉冲)的时间除以晶振周期,62300是个常数,用来改变加速度斜率的

myqiang1990 发表于 2012-7-31 12:08:21

coleyao 发表于 2012-7-31 12:00 static/image/common/back.gif
8000000(8M)是晶振频率,F列是每个细分脉冲(未细分时就是马达脉冲)的时间除以晶振周期,62300是个常数 ...

有时我被你的这些数据搞得头晕。。。就是不知道是谁先计算出谁.......{:cry:}

coleyao 发表于 2012-7-31 12:16:07

本帖最后由 coleyao 于 2012-7-31 12:19 编辑

是有点慢,我都把加速时间控制在0.1秒左右,你那个有0.5秒了,再改改参数就好了,附张图,同一个颜色是用来算某个参数的,注意有些是从上一行(n-1)的参数推出来的,有的是从同一行(n)推出来的,第一行是初始值,有些是凑出来的。

myqiang1990 发表于 2012-7-31 12:19:43

本帖最后由 myqiang1990 于 2012-7-31 12:24 编辑

coleyao 发表于 2012-7-31 12:16 static/image/common/back.gif
是有点慢,我都把加速时间控制在0.1秒左右,你那个有0.5秒了,再改改参数就好了,附张图,同一个颜色是用来 ...

多谢你的解答。。。{:smile:} 你的sheet1的算法应该不可以控制加速时间..没发现又什么参数可以控制斜率的....后面的算法就是调节那个常数..也就是F列那个62300那个就可以调节加速时间了...是吧??

myqiang1990 发表于 2012-7-31 16:43:26

本帖最后由 myqiang1990 于 2012-7-31 16:47 编辑

coleyao 发表于 2012-7-31 12:16 static/image/common/back.gif
是有点慢,我都把加速时间控制在0.1秒左右,你那个有0.5秒了,再改改参数就好了,附张图,同一个颜色是用来 ...

哎,,,弄了半天....图倒是画出来了。。。但是最终结果不是我想要的定时器初值表.......我要让每一步的频率映射到定时器初值....但是....哎。。。说不清楚....搞了2天...这个S曲线没啥进展...又一条倒是生成出来了...但是不完善...没法控制最高速...也没法控制加速时间...如果只是按照生成出来的表走一遍...根本启动不了...丢不严重....每一步必须给他多走几步...才行....伤心啊....{:cry:} 有谁能够直接提供公式...一算就出来的那种....最好是能够控制启动速度...最高速度..加速时间的

coleyao 发表于 2012-7-31 16:53:43

8细分看看

myqiang1990 发表于 2012-7-31 17:11:20

本帖最后由 myqiang1990 于 2012-7-31 17:12 编辑

coleyao 发表于 2012-7-31 16:53 static/image/common/back.gif
8细分看看

好伤心.{:cry:} ..哎.....好不容易找到一个可以设置启动速度和最大速度和加速时间的..而且是直接给出公式的...但是按照他的公式...第一个公式是对的...但是换到第二公式...生成出来的曲线就不太对了..和第一个公式生成的数据跳变很大...

coleyao 发表于 2012-7-31 18:04:47

不要灰心,慢慢来,我当时写程序和调试也花了好久的。

myqiang1990 发表于 2012-7-31 18:07:36

coleyao 发表于 2012-7-31 18:04 static/image/common/back.gif
不要灰心,慢慢来,我当时写程序和调试也花了好久的。

我现在的加减速代码只适合我那种指数型的分段控制的...就是那种每个频点保持走几步那种...走完然后再到下一频点...现在想研究研究S曲线....让启动和停止更加平滑...

coleyao 发表于 2012-7-31 18:31:26

本帖最后由 coleyao 于 2012-8-1 07:45 编辑

不会是你的马达先天不足,最大 pps数值太小吧 {8细分时平均(1800/(2*0.12))/8=900pps,如果马达不行就需要16细分或更多}!要不就是定时器资源不足(2-3uS定时中断内要处理一遍,否则无法保证脉冲在10us内)?

coleyao 发表于 2012-7-31 19:18:42

本帖最后由 coleyao 于 2012-8-1 07:45 编辑

还是贴一点简化版的代码吧,有没有用就不晓得了!
         if (zz1_point != z1_cuttrn)   // //正反转位置判定
             {                                                   
                z1_step=x600_step_Index;      
                                       
                if (zz1_point > z1_cuttrn)   //正反转位置判定
                  {
                           if ((zz1_point - z1_cuttrn) > z1_count)    // ccw/cw speed
                           { if (z1_speed > z1_speed_max){ z1_speed -= z1_step;} }//speed_max but T min
                           else                                                      // ccw/cw speed
                              {
                                 if (z1_speed <= z1_speed_start)    z1_speed += z1_step;      
                              }      
                              
                           plus_out ^= z1_bit;//步进电机脉冲
                        
                   }   
               TBCCR3 += z1_speed;    //周期递增量 ,使用atmel mega128 PWM的CCR3该单片机差不多单周期指令执行,所以可以做到每一个周期脉冲比较的小
             }

xxoo14 发表于 2012-10-29 16:27:41

modbus 发表于 2012-7-30 22:32 static/image/common/back.gif
S曲线比直线加减速有什么好处?直线加减速就好处理多了

想请教一下直线加减速怎么做,我想实时计算,留个思路吧

lixingling 发表于 2012-11-26 11:24:02

周期递增量是指什么,你改变占空比还是改变PWM周期,有没有一个小例子来说明下

lixingling 发表于 2012-11-26 11:26:23

有没有使走到终点,刚好速度为0,

lixingling 发表于 2012-11-26 11:27:31

如果我们的目标位置一直在改变,有没有办法使它达到目标位置,速度刚好为0

lixingling 发表于 2012-11-26 16:06:21

好象改变占空比也不能改定速度,PWM周期一定,改变占空比有什么意义

xujianglun1 发表于 2012-12-24 12:01:24

myqiang1990 发表于 2012-7-31 12:19 static/image/common/back.gif
多谢你的解答。。。 你的sheet1的算法应该不可以控制加速时间..没发现又什么参数可以控制斜率的 ...

你说的那值怎么调用加速时间的,
没看明白,能不能再详细说下,谢谢,,

hyc07209 发表于 2013-3-10 21:29:37

根据2楼的数组在Excel里做了个图,是下面这个图那样子的,没看懂是什么意思。

myqiang1990 发表于 2013-3-10 21:35:21

hyc07209 发表于 2013-3-10 21:29 static/image/common/back.gif
根据2楼的数组在Excel里做了个图,是下面这个图那样子的,没看懂是什么意思。 ...

http://www.amobbs.com/thread-5520529-1-1.html我发的S加速算法,你看看能用得上吗,你得灯做得怎么样了~~你加我QQ,我们聊聊,上次我不知道吧你QQ弄哪里了,可能是清理闲杂人等给无意踢掉了~~不好意思,,,{:sweat:} 因为太多人来问问题了~~

hyc07209 发表于 2013-3-10 22:58:05

myqiang1990 发表于 2013-3-10 21:35 static/image/common/back.gif
http://www.amobbs.com/thread-5520529-1-1.html我发的S加速算法,你看看能用得上吗,你得灯做得怎么样了 ...

灯做了几个,不过都是用直线型加速(也可能是阶梯型,),现在急需用S型加速,。联系方式你看网页的右上方。

1501697860 发表于 2013-3-11 12:24:02

多謝分享

maimaige 发表于 2013-3-15 10:05:56

myqiang1990 发表于 2013-3-10 21:35 static/image/common/back.gif
http://www.amobbs.com/thread-5520529-1-1.html我发的S加速算法,你看看能用得上吗,你得灯做得怎么样了 ...

你好,我想研究一下这个s型变速方法,你们那里有二手的舞台灯之类的卖不,只是想找一个研究平台

lu976046395 发表于 2013-4-8 15:50:23

myqiang1990 发表于 2012-7-31 11:53 static/image/common/back.gif
FX/8000000这个8000000是不是你单片机的定时器频率?然后F列的PWM周期乘以定时器周期就会等到什么? 还 ...

请问一下,你的那个加速度曲线生成器还在吗,麻烦你上传一个!谢谢

im叶飞 发表于 2013-4-8 19:09:04

如果只关心步数可以做速度和步数 迭代 计算..

zhzj2007 发表于 2013-4-8 19:22:41

不错         

xiaojuren 发表于 2013-5-7 16:03:48

coleyao 发表于 2012-7-30 12:04 static/image/common/back.gif
照着数组控制PWM脉宽就可以了,贴个用过的数组(增量式):
unsigned char const x400_step_Index= { ...

谢了,拿来试试

xiaojuren 发表于 2013-5-7 16:24:48

lixingling 发表于 2012-11-26 16:06 static/image/common/back.gif
好象改变占空比也不能改定速度,PWM周期一定,改变占空比有什么意义

改变占空比不能改变速度,步进电机是脉冲频率控制速度

coleyao 发表于 2013-5-7 19:52:44

xiaojuren 发表于 2013-5-7 16:24 static/image/common/back.gif
改变占空比不能改变速度,步进电机是脉冲频率控制速度

不是只改变高电平的脉宽,而是高、低电平的脉宽同时改变,并且高电平脉宽近似等于低电平脉宽,这样的话,改变脉宽也就等于是改变频率了!

tcw_xny 发表于 2013-5-7 20:42:34

关注关注中,正在学习步进电机

xiaojuren 发表于 2013-5-8 03:28:38

coleyao 发表于 2013-5-7 19:52 static/image/common/back.gif
不是只改变高电平的脉宽,而是高、低电平的脉宽同时改变,并且高电平脉宽近似等于低电平脉宽,这样的话, ...

是的,那就是改变频率,高低电平的比值可以灵活选择,不同占空比控制效果好像没有差别

milo112 发表于 2013-7-6 16:40:23

好好学习下

Eric321 发表于 2013-11-25 22:34:24

进来学习一下

nishuizhou 发表于 2013-11-26 09:56:42

我也在搞这方面的研究,我的是伺服电机控制,也是按楼主的思路来的,就是不稳定、

zzc298 发表于 2014-4-18 14:32:20

顶贴,把楼主顶上去

shinemotou 发表于 2014-11-2 13:22:57

hyc07209 发表于 2013-3-10 21:29
根据2楼的数组在Excel里做了个图,是下面这个图那样子的,没看懂是什么意思。 ...

能认识下吗我的QQ347828751

gaohuihui258 发表于 2015-8-12 12:11:08

想下载附件,下不了啊

raohuayun11 发表于 2019-10-9 16:02:59

{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}
页: [1]
查看完整版本: 谁有步进电机S加速曲线,能用的好点的资料....