野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14982|回复: 17

关于野火的电机程序问题

[复制链接]
发表于 2020-11-18 20:22:03 | 显示全部楼层 |阅读模式
看到野火除了电机控制板,连忙买了1块回来,T型算法的,目前有2个疑惑,不晓得火哥是否发现
1: 精度有误差
      1圈 6400个脉冲,软件看变量是正常的,实际测量会发现脉冲多1-2个
     如果朝1个方向间断性转圈,就会发现累计误差越来越大

2:速度
      直接调用无法慢速  比如 1圈/每分钟,2圈/每分钟   都会异常


      XX表示 XX圈/分钟
      stepper_move_T(6400*10, accel_val, decel_val, (XX*2000)/955);  



PS: 其实野火的和硬石的程序 类似的参考资料,之前在硬石的程序中也发现了这2个问题,一直没有有效得到解决

回复

使用道具 举报

 楼主| 发表于 2020-11-19 09:12:17 | 显示全部楼层
自己先顶一下
回复 支持 反对

使用道具 举报

发表于 2020-11-19 09:13:32 | 显示全部楼层
精度问题我们排查一下
第二个速度问题,这个其实跟输出脉冲的定时器计数频率有关系,计数频率越低,定时器能够输出的最低脉冲频率就越低,相应的,最高频率也会越低。
目前例程里的定时器频率是28MHz,你可以试下调低这个频率看能不能满足要求,具体调整的是bsp_stepper_T_speed.h里的TIM_PRESCALER宏。不过这么低的速度应该可以不用加减速吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 10:41:55 | 显示全部楼层
ZZZ_XXJ 发表于 2020-11-19 09:13
精度问题我们排查一下
第二个速度问题,这个其实跟输出脉冲的定时器计数频率有关系,计数频率越低,定时器 ...

谢谢指导,如果是做产品,可能是希望速度可以灵活设置

如下又一个疑惑之处,电机运行一段时间会缓慢移动异常
如果产品中,灵活设定需要转动的目标值  和  电机转速,那么这个现象就不可避免会出现异常
比如我设定100圈,速度 500

accel_val = 1000;
decel_val = 1000;

        while(1)
        {     
                stepper_move_T(6400*100, accel_val, decel_val, (500*2000)/955);
                HAL_Delay(4000);
        }
       
}
回复 支持 反对

使用道具 举报

发表于 2020-11-19 14:19:39 | 显示全部楼层
yh_212121 发表于 2020-11-19 10:41
谢谢指导,如果是做产品,可能是希望速度可以灵活设置

如下又一个疑惑之处,电机运行一段时间会缓慢移动 ...

可以把指定配置下的定时器输出频率上下限算出来,去套产品预期的可灵活设置的速度范围,然后再调整定时器配置,如果怎么调整都不能满足,可以考虑换成定时器2或者5,这两个是32位的计数器,相同计数频率下可以输出更低的频率。或者在程序里根据设置的速度,动态调整定时器预分频值,不过这个不知道实际能不能实现。

整个运动过程的时间太长超过4秒延时,上一个加减速过程还没结束又开始新的加减速,导致原来的被打断,然后算法就乱掉了。
这个例程只是演示原理,没有考虑长距离加减速的情况,需要自己做些修改。
可以把延时换成使用while判断status.running的值,值为0说明加减速结束,然后再执行其他操作。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 16:27:39 | 显示全部楼层
ZZZ_XXJ 发表于 2020-11-19 14:19
可以把指定配置下的定时器输出频率上下限算出来,去套产品预期的可灵活设置的速度范围,然后再调整定时器 ...

谢谢指导
根据速度范围调整定时器配置,最慢目前是 3圈/每分钟 及以上是正常的
调用电机函数那加了判断确实没有那个现象了,谢谢

期待脉冲精度的解决,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 09:34:18 | 显示全部楼层
火哥团队的大佬,脉冲误差 问题 排查完后,如有最新消息,记得通告一下,有这一整套系类的教程,我以后电机开发背靠大树好乘凉
回复 支持 反对

使用道具 举报

发表于 2020-11-25 14:53:28 | 显示全部楼层
问一下这个测到实际输出脉冲多了,这个具体是怎么测出来的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-25 15:39:37 | 显示全部楼层
ZZZ_XXJ 发表于 2020-11-25 14:53
问一下这个测到实际输出脉冲多了,这个具体是怎么测出来的?

您好 有3个途径
1: 用信号发生器,有一个接口可以外部脉冲计数的,这个可以精确测量,直接转1圈
2:目测,只能测量有误差(确保不是惯性的原因,把ENA- 不接,时刻自锁)   直接比如 间隔XX秒转1圈,重复,一段时间后  位置越来越偏移
3:示波器抓取,直接设定目标如 5步,那么示波器全部正确看波形,直接数下即可
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-25 16:38:43 | 显示全部楼层
ZZZ_XXJ 发表于 2020-11-25 14:53
问一下这个测到实际输出脉冲多了,这个具体是怎么测出来的?

不好意思,我之前偷懒,直接第2点的方法目测 和第1中的方法简单测试,,刚才示波器抓去了下,波形直接固定的误差,可以修正的,以前参考硬石的程序波形误差是不固定的,不好意思,我待会儿晚上发您波形图
回复 支持 反对

使用道具 举报

发表于 2020-11-25 17:08:14 | 显示全部楼层
yh_212121 发表于 2020-11-25 16:38
不好意思,我之前偷懒,直接第2点的方法目测 和第1中的方法简单测试,,刚才示波器抓去了下,波形直接固 ...

好的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-25 18:34:25 | 显示全部楼层

如下是发送10步的抓取

MAP001.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-26 10:40:24 | 显示全部楼层
前面的图片没讲清楚  可能会误导,重发下

1: 参数如下

accel_val = 1000;
decel_val = 1000;

stepper_move_T(10, accel_val, decel_val, (100*2000)/955);       // 100圈/分钟 转速

2:图片如下
MAP002.JPG
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-11-26 16:27:04 | 显示全部楼层
找到问题了,中断中,步数到了后,应该及时关闭通道输出;程序中没有及时关闭,是等待2次中断后处理关闭

如下是改过的  10步的 MAP003.JPG
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-26 19:34:23 | 显示全部楼层
yh_212121 发表于 2020-11-26 16:27
找到问题了,中断中,步数到了后,应该及时关闭通道输出;程序中没有及时关闭,是等待2次中断后处理关闭

...

这边调了下,也定位到类似的问题,不过实际发现是算法在进入加速状态之前就已经开始输出脉冲了。
目前找的解决办法是:在stepper_move_T函数中,启动定时器之前调用TIM_CCxChannelCmd关闭输出比较通道,然后在speed_decision函数的ACCEL状态一开始打开输出比较通道,STOP状态中使用HAL_TIM_OC_Stop_IT关闭中断和输出通道,就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-27 10:13:03 | 显示全部楼层
ZZZ_XXJ 发表于 2020-11-26 19:34
这边调了下,也定位到类似的问题,不过实际发现是算法在进入加速状态之前就已经开始输出脉冲了。
目前找 ...

明白了,谢谢指导
回复 支持 反对

使用道具 举报

发表于 2021-1-14 11:50:04 | 显示全部楼层
楼主,你的电机运行温度怎么样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-18 13:48:29 | 显示全部楼层
XYYLLCK 发表于 2021-1-14 11:50
楼主,你的电机运行温度怎么样

电机问题发热是正常的,如下几点可参考
1:设置好细分和电流通道
2: 是否控制 停止的时候电机自锁与否
3:设定的速度是够需要过慢
一般而言,自锁的,电流时刻大,发热多;电机转速慢,发热也多
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-2 15:30 , Processed in 0.037715 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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