搜索
bottom↓
回复: 61

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

  [复制链接]

出0入0汤圆

发表于 2012-7-30 11:40:46 | 显示全部楼层 |阅读模式
如题.....哪位大侠有啊?传来参考参考吧.最好是大家用过的..是对的资料.........

出0入0汤圆

发表于 2012-7-30 12:04:26 | 显示全部楼层
照着数组控制PWM脉宽就可以了,贴个用过的数组(增量式):
unsigned char const x400_step_Index[1446]= {  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};

出0入0汤圆

 楼主| 发表于 2012-7-30 12:06:57 | 显示全部楼层
coleyao 发表于 2012-7-30 12:04
照着数组控制PWM脉宽就可以了,贴个用过的数组(增量式):
unsigned char const x400_step_Index[1446]= { ...

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

出0入0汤圆

发表于 2012-7-30 12:10:26 | 显示全部楼层
自己琢磨的,数据是用EXcel计算的,算完后用数据形成一个速度曲线,确认是S型的就好了,实际使用确实比之前效果要好,都是临时花时间弄的,还真没啥拿的出手的

出0入0汤圆

 楼主| 发表于 2012-7-30 12:15:06 | 显示全部楼层
coleyao 发表于 2012-7-30 12:10
自己琢磨的,数据是用EXcel计算的,算完后用数据形成一个速度曲线,确认是S型的就好了,实际使用确实比之前 ...

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

出0入0汤圆

发表于 2012-7-30 12:44:32 | 显示全部楼层
参考附件所示表单:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-7-30 13:17:54 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-30 13:24 编辑
coleyao 发表于 2012-7-30 12:44
参考附件所示表单:


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

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

出0入0汤圆

发表于 2012-7-30 14:29:48 | 显示全部楼层
本帖最后由 coleyao 于 2012-7-30 14:36 编辑

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

出0入0汤圆

 楼主| 发表于 2012-7-30 14:47:11 | 显示全部楼层
coleyao 发表于 2012-7-30 14:29
从 a=kt和a=b-kt(加速度为等腰三角形或等腰梯形)逐步递推就好了,excel里面都有了,数据多,挺麻烦的,我 ...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-7-30 14:48:38 | 显示全部楼层
其实我最想知道得就是公式。。。这样我可以根据我的实际情况改动。。。。。

出0入0汤圆

发表于 2012-7-30 16:12:06 | 显示全部楼层
不是这样的,用步进电机的话,要一步一步的算,而步进电机每一步的速度、加速度、Delta(t)(每一步的时间)都是变量,要递推计算,点击excel相关位置就能看到该位置的值是如何计算出来的了

出0入0汤圆

 楼主| 发表于 2012-7-30 17:33:33 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-30 17:52 编辑
coleyao 发表于 2012-7-30 16:12
不是这样的,用步进电机的话,要一步一步的算,而步进电机每一步的速度、加速度、Delta(t)(每一步的时间) ...


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

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

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




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-7-30 18:39:35 来自手机 | 显示全部楼层
本帖最后由 coleyao 于 2012-7-30 18:52 编辑

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

出0入0汤圆

 楼主| 发表于 2012-7-30 20:32:02 | 显示全部楼层
coleyao 发表于 2012-7-30 18:39
G列是得到的Pwm周期,每个周期进pwm中断重设置一下周期(读整数数组)或加减周期增量(字节),就得到预定的 ...

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

出0入0汤圆

发表于 2012-7-30 20:36:19 | 显示全部楼层
本帖最后由 coleyao 于 2012-7-30 20:43 编辑

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

出0入0汤圆

发表于 2012-7-30 22:32:46 | 显示全部楼层
S曲线比直线加减速有什么好处?直线加减速就好处理多了

出0入0汤圆

 楼主| 发表于 2012-7-30 23:17:32 | 显示全部楼层
coleyao 发表于 2012-7-30 20:36
离散的是周期(机器周期T的整数倍),周期的倒数就是速度了,其实是一回事!那个excel在数据在一些数据处理 ...

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

出0入0汤圆

发表于 2012-7-31 07:53:30 | 显示全部楼层
myqiang1990 发表于 2012-7-30 23:17
我不知道你加速的时候会不会在每个频率点保持一定的步数.......比如在20HZ保持走几步...然后30保持走几步 ...

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

出0入0汤圆

发表于 2012-7-31 07:58:19 | 显示全部楼层
modbus 发表于 2012-7-30 22:32
S曲线比直线加减速有什么好处?直线加减速就好处理多了

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

出0入0汤圆

发表于 2012-7-31 08:13:24 | 显示全部楼层
学习,学习。

出0入0汤圆

发表于 2012-7-31 08:30:03 | 显示全部楼层
mark下,虽然对步进电机没什么研究

出0入0汤圆

 楼主| 发表于 2012-7-31 10:05:32 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-31 10:11 编辑
coleyao 发表于 2012-7-31 07:53
你说的似乎是分段式,不是平滑式控制,实际的S曲线平滑控制是根据需要来的,有些地方每一步都会换一个 ...


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

启动速度如何?快不快?

出0入0汤圆

 楼主| 发表于 2012-7-31 10:32:15 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-31 10:36 编辑
coleyao 发表于 2012-7-31 07:53
你说的似乎是分段式,不是平滑式控制,实际的S曲线平滑控制是根据需要来的,有些地方每一步都会换一个 ...


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

出0入0汤圆

发表于 2012-7-31 11:03:26 | 显示全部楼层
myqiang1990 发表于 2012-7-31 10:32
那按照你这样说....你从最低速加到最高速...也就是走了1446步?我是做舞台灯的..启动得快稳..平滑...我加 ...

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

出0入0汤圆

 楼主| 发表于 2012-7-31 11:53:39 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-31 11:59 编辑
coleyao 发表于 2012-7-30 18:39
G列是得到的Pwm周期,每个周期进pwm中断重设置一下周期(读整数数组)或加减周期增量(字节),就得到预定的 ...


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

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

我现在想用的之后的那些算法...我发现他生成的是3段类似抛物线的S曲线..启动应该很快...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-7-31 12:00:23 | 显示全部楼层
8000000(8M)是晶振频率,F列是每个细分脉冲(未细分时就是马达脉冲)的时间除以晶振周期,62300是个常数,用来改变加速度斜率的

出0入0汤圆

 楼主| 发表于 2012-7-31 12:08:21 | 显示全部楼层
coleyao 发表于 2012-7-31 12:00
8000000(8M)是晶振频率,F列是每个细分脉冲(未细分时就是马达脉冲)的时间除以晶振周期,62300是个常数 ...

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

出0入0汤圆

发表于 2012-7-31 12:16:07 | 显示全部楼层
本帖最后由 coleyao 于 2012-7-31 12:19 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-7-31 12:19:43 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-31 12:24 编辑
coleyao 发表于 2012-7-31 12:16
是有点慢,我都把加速时间控制在0.1秒左右,你那个有0.5秒了,再改改参数就好了,附张图,同一个颜色是用来 ...


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

出0入0汤圆

 楼主| 发表于 2012-7-31 16:43:26 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-31 16:47 编辑
coleyao 发表于 2012-7-31 12:16
是有点慢,我都把加速时间控制在0.1秒左右,你那个有0.5秒了,再改改参数就好了,附张图,同一个颜色是用来 ...


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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-7-31 16:53:43 | 显示全部楼层
8细分看看

出0入0汤圆

 楼主| 发表于 2012-7-31 17:11:20 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-7-31 17:12 编辑
coleyao 发表于 2012-7-31 16:53
8细分看看


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-7-31 18:04:47 来自手机 | 显示全部楼层
不要灰心,慢慢来,我当时写程序和调试也花了好久的。

出0入0汤圆

 楼主| 发表于 2012-7-31 18:07:36 | 显示全部楼层
coleyao 发表于 2012-7-31 18:04
不要灰心,慢慢来,我当时写程序和调试也花了好久的。


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

出0入0汤圆

发表于 2012-7-31 18:31:26 来自手机 | 显示全部楼层
本帖最后由 coleyao 于 2012-8-1 07:45 编辑

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

出0入0汤圆

发表于 2012-7-31 19:18:42 | 显示全部楼层
本帖最后由 coleyao 于 2012-8-1 07:45 编辑

  还是贴一点简化版的代码吧,有没有用就不晓得了!
           if (zz1_point != z1_cuttrn)   // //正反转位置判定
             {                                                   
                z1_step=x600_step_Index[z1_speed_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  该单片机差不多单周期指令执行,所以可以做到每一个周期脉冲比较的小
             }  

出0入0汤圆

发表于 2012-10-29 16:27:41 | 显示全部楼层
modbus 发表于 2012-7-30 22:32
S曲线比直线加减速有什么好处?直线加减速就好处理多了

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

出0入0汤圆

发表于 2012-11-26 11:24:02 | 显示全部楼层
周期递增量  是指什么,你改变占空比还是改变PWM周期,有没有一个小例子来说明下

出0入0汤圆

发表于 2012-11-26 11:26:23 | 显示全部楼层
有没有使走到终点,刚好速度为0,

出0入0汤圆

发表于 2012-11-26 11:27:31 | 显示全部楼层
如果我们的目标位置一直在改变,有没有办法使它达到目标位置,速度刚好为0

出0入0汤圆

发表于 2012-11-26 16:06:21 | 显示全部楼层
好象改变占空比也不能改定速度,PWM周期一定,改变占空比有什么意义

出0入0汤圆

发表于 2012-12-24 12:01:24 | 显示全部楼层
myqiang1990 发表于 2012-7-31 12:19
多谢你的解答。。。 你的sheet1的算法应该不可以控制加速时间..没发现又什么参数可以控制斜率的 ...

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

出0入0汤圆

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

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

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

出0入0汤圆

发表于 2013-3-10 22:58:05 | 显示全部楼层
myqiang1990 发表于 2013-3-10 21:35
http://www.amobbs.com/thread-5520529-1-1.html我发的S加速算法,你看看能用得上吗,你得灯做得怎么样了 ...

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

出0入0汤圆

发表于 2013-3-11 12:24:02 | 显示全部楼层
多謝分享

出0入0汤圆

发表于 2013-3-15 10:05:56 | 显示全部楼层
myqiang1990 发表于 2013-3-10 21:35
http://www.amobbs.com/thread-5520529-1-1.html我发的S加速算法,你看看能用得上吗,你得灯做得怎么样了 ...

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

出0入0汤圆

发表于 2013-4-8 15:50:23 | 显示全部楼层
myqiang1990 发表于 2012-7-31 11:53
FX/8000000这个8000000是不是你单片机的定时器频率?  然后F列的PWM周期乘以定时器周期就会等到什么? 还 ...

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

出0入0汤圆

发表于 2013-4-8 19:09:04 | 显示全部楼层
如果  只关心  步数  可以  做速度和步数 迭代 计算..

出0入0汤圆

发表于 2013-4-8 19:22:41 来自手机 | 显示全部楼层
不错         

出0入0汤圆

发表于 2013-5-7 16:03:48 | 显示全部楼层
coleyao 发表于 2012-7-30 12:04
照着数组控制PWM脉宽就可以了,贴个用过的数组(增量式):
unsigned char const x400_step_Index[1446]= { ...

谢了,拿来试试

出0入0汤圆

发表于 2013-5-7 16:24:48 | 显示全部楼层
lixingling 发表于 2012-11-26 16:06
好象改变占空比也不能改定速度,PWM周期一定,改变占空比有什么意义

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

出0入0汤圆

发表于 2013-5-7 19:52:44 | 显示全部楼层
xiaojuren 发表于 2013-5-7 16:24
改变占空比不能改变速度,步进电机是脉冲频率控制速度

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

出0入0汤圆

发表于 2013-5-7 20:42:34 | 显示全部楼层
关注关注中,正在学习步进电机

出0入0汤圆

发表于 2013-5-8 03:28:38 | 显示全部楼层
coleyao 发表于 2013-5-7 19:52
不是只改变高电平的脉宽,而是高、低电平的脉宽同时改变,并且高电平脉宽近似等于低电平脉宽,这样的话, ...

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

出0入0汤圆

发表于 2013-7-6 16:40:23 | 显示全部楼层
好好学习下

出0入0汤圆

发表于 2013-11-25 22:34:24 | 显示全部楼层
进来学习一下

出0入0汤圆

发表于 2013-11-26 09:56:42 | 显示全部楼层
我也在搞这方面的研究,我的是伺服电机控制,也是按楼主的思路来的,就是不稳定、

出0入0汤圆

发表于 2014-4-18 14:32:20 | 显示全部楼层
顶贴,把楼主顶上去

出0入0汤圆

发表于 2014-11-2 13:22:57 | 显示全部楼层
hyc07209 发表于 2013-3-10 21:29
根据2楼的数组在Excel里做了个图,是下面这个图那样子的,没看懂是什么意思。 ...

能认识下吗  我的QQ347828751

出0入0汤圆

发表于 2015-8-12 12:11:08 | 显示全部楼层
想下载附件,下不了啊

出0入0汤圆

发表于 2019-10-9 16:02:59 | 显示全部楼层
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 16:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表