lnso 发表于 2020-7-28 22:48:16

有偿求助(42步进电机掉电重新上电的位置确认)

阿莫提醒:有偿求助”的帖子,请使用论坛的悬赏功能,禁止私下使用微信或支付宝转账【达到1000汤圆悬赏标题置红】
https://www.amobbs.com/forum.php?mod=viewthread&tid=5737448



咨询一个步进电机方案,100微信红包酬谢。项目背景:步进电机每隔不定时旋转67步,这个不定时时间客户可以调整。800步一圈。就是把一圈分为12个阶段,现在只有一个限位开关来决定步进电机的初始位置。我想要咨询的方案是系统掉电重新上电后要在掉电时候的阶段上。比如,步进电机走到62步,掉电了,我重新上的时候后需要在67步这个位置,也就是30°的位置,不知道有没有描述清楚,如有兴趣或者疑问,欢迎站内私信。因为结构受限,系统只有一个限位开关,不可以再加绝对值编码器和角度传感器。系统有一个法拉电容,单片机主电源已经和系统电源用二极管隔离作掉电保存数据用

eedesign 发表于 2020-7-28 23:02:24

看你的思路应该是掉电之前存储一下当前位置

myxiaonia 发表于 2020-7-28 23:06:40

不可能的兄弟,在掉电时步进电机如果没有走完,位置是不可预测的,掉电时候步进电机可能已经没力了,也可能过冲于你走的步数

jyrpxj 发表于 2020-7-28 23:07:01

没有编码器就无解。掉电之前无法正确保存当前位置,电压缓慢下降过程,电机可能会失步。

lnso 发表于 2020-7-28 23:10:42

eedesign 发表于 2020-7-28 23:02
看你的思路应该是掉电之前存储一下当前位置

我现在的思路是保存第几阶段,结果现在掉电重新上电后会在不同的阶段数。我把每转30°叫做一个阶段,总共12个阶段

lnso 发表于 2020-7-28 23:11:41

myxiaonia 发表于 2020-7-28 23:06
不可能的兄弟,在掉电时步进电机如果没有走完,位置是不可预测的,掉电时候步进电机可能已经没力了,也可能 ...

掉电的时候肯定没有力气了,但是我知道此时他在第几阶段吧?

mountainqy 发表于 2020-7-28 23:15:17

如步进电机速度不高,可直接停机而不失步的话,单片机检测到失步临界前的电压,马上停止运行,并保存当前步数。下次上电时,按保存的数据运行。

cne53102 发表于 2020-7-28 23:18:59

本帖最后由 cne53102 于 2020-7-28 23:21 编辑

正常42步进是一圈200步或400步。
楼主800步一圈,说明1步细分成了2或4。

在没有细分的情况下,存储掉电时已经走的步数即可(当然这并非绝对可靠因为可能受到机械外力的影响)

但若细分了,且没有在整步上掉电,那么掉电后电机会因为齿槽转矩而跳到最近的一个整步上(当然这也并非绝对可靠因为可能受到机械外力的影响)

楼主67/800*360=30.15度,0.15度误差是可以接受的

假设使用200步电机细分成800步一圈,那么非整步位置最少丢1步最多丢2步(受外力影响最多丢3步),1步即1/800*360=0.45度,一步的错误都是不可接受的。

那么就必须知道细分步丢了多少

机器开机时的位置肯定是整步,如果使用的电机驱动没有整步位置输出功能则按起始位置记,如果驱动器有则用驱动器的。

有了整步位置信息,就可以继续根据已经走的步数判断掉电后会落到什么位置

假设以下和是整步位置

,1,2,3,

掉电后
1落向
2落向还是取决于掉电时刻那一瞬间的运动方向,如果运动极慢没有惯性则无法判断只能听天由命
3落向

其他的细分数可以类推

这不是绝对可靠的判断,但不能再加传感器的话,似乎"正常“的软件操作也只能做到这些了

john78 发表于 2020-7-28 23:45:42

重新上电后,先转一周,通过限位开关推算位置

kinglin 发表于 2020-7-28 23:58:03

只能按掉电步进电机也不丢步来存储,不然只能回零操作。貌似要求是不能这么做。

wajlh 发表于 2020-7-29 00:26:57

有带绝对值编码器的步进电机,刚买了准备研究。

thyewfty 发表于 2020-7-29 00:31:47

有带闭环的步进

xuehu5808 发表于 2020-7-29 00:51:15

检测电源电压,电压低到一定值时马达停止转动记录当前坐标位置,上电后用限位开关做原点回原后再转到掉电前的位置。

iamseer 发表于 2020-7-29 02:41:28

本帖最后由 iamseer 于 2020-7-29 02:43 编辑

“因为结构受限,系统只有一个限位开关”
LZ是只能接受修改电路的方案还是只能接受修改程序的方案?只能修改程序的话楼上已经基本都说了。
如果可以修改电路,可以尝试在掉电后让芯片侦测步进电机的波形,来推算掉电后步进电机运动的步数。

NJ8888 发表于 2020-7-29 07:02:48

加備電到記錄位置停

lnso 发表于 2020-7-29 07:03:26

xuehu5808 发表于 2020-7-29 00:51
检测电源电压,电压低到一定值时马达停止转动记录当前坐标位置,上电后用限位开关做原点回原后再转到掉电前 ...

如何记录当前位置?我限位开关开始跑30°为第一阶段,假设20°位置掉电,我怎么知道电机是20°掉电了?

lnso 发表于 2020-7-29 07:07:55

john78 发表于 2020-7-28 23:45
重新上电后,先转一周,通过限位开关推算位置

你的方案好像可以,就是上电后让步进电机先跑到初始位置,然后根据掉电后的位置跑到初始位置的步数来推算掉电后的距离是吗?

john78 发表于 2020-7-29 07:38:54

如果不考虑掉电外力引起位移,直接让步进电机转一圈,在这过程记录限位在第几个脉冲,推算就可以。不需要掉电前的位置数据。

lnso 发表于 2020-7-29 07:41:33

john78 发表于 2020-7-29 07:38
如果不考虑掉电外力引起位移,直接让步进电机转一圈,在这过程记录限位在第几个脉冲,推算就可以。不需要掉 ...

你的微信多少?我+你,详聊

BOERLBH 发表于 2020-7-29 08:20:06

只有绝对值编码器最靠谱。不然累计误差会越来越大。

eyancool 发表于 2020-7-29 08:38:19

要加绝对值编码器......工业上的控制都这么用

asj1989 发表于 2020-7-29 08:55:28

不可靠的,断电了即使你记录下当前的位置,但是外力作用下,又转动了一些,你就歇菜了

唯一稳妥的办法就是换上带绝对值编码器的电机,增量编码器的电机都不行。

Error.Dan 发表于 2020-7-29 08:58:38

LZ一楼出的题目是不准加绝对值编码器,所以这道题常规思路是做不了的,而且你这里涉及到需要用真绝对值编码器,那些增量+电池的方案搞不好就要丢位置。

但是

谁说没有枪头就捅不死人,你这个问题分两步,第一步记住掉电前的位置,这个so easy;第二步,怎么搞定掉电情况下的位置探测,我的答案是探测个P,加个刹车掉电就锁死,我看你往哪跑,上电以后接着之前的数据跑就vans了~

ssaiwo 发表于 2020-7-29 09:05:14

加个存储芯片,保存电机想要到的位置,每次掉电回到限位开关的初始位置重新走

szman5108 发表于 2020-7-29 09:12:29

感觉掉电,上电这个个瞬间过程电机主轴都有可能挪动位置

jiulong855@.163 发表于 2020-7-29 09:13:52

lnso 发表于 2020-7-29 07:07
你的方案好像可以,就是上电后让步进电机先跑到初始位置,然后根据掉电后的位置跑到初始位置的步数来推算 ...

这个方案有戏,上电找零,利用级联或ETR数归零走了多少个脉冲,再走到那个位置就可以了

lnso 发表于 2020-7-29 09:34:14

如何上传视频,看一下视频应该会更好理解。我现在的程序是掉电重新上电后会跑偏,比如我掉电时候是第120度,那重新上电后可能是30度,再掉电上电一次可能是0°。步进电机掉电后位置确实会有微小变化,就是掉电那一刹那,步进电机有机械的声音出来。

zhwm_128 发表于 2020-7-29 09:43:39

非正常掉电自己找回一下零点

lnso 发表于 2020-7-29 10:08:25

zhwm_128 发表于 2020-7-29 09:43
非正常掉电自己找回一下零点

回零点是最基本的,已经实现了,限位开关就是零点

lnso 发表于 2020-7-29 10:28:12

john78 发表于 2020-7-29 07:38
如果不考虑掉电外力引起位移,直接让步进电机转一圈,在这过程记录限位在第几个脉冲,推算就可以。不需要掉 ...

如何记录步进电机跑到限位开关的脉冲数?

whatcanitbe 发表于 2020-7-29 11:12:25

lnso 发表于 2020-7-29 07:07
你的方案好像可以,就是上电后让步进电机先跑到初始位置,然后根据掉电后的位置跑到初始位置的步数来推算 ...

既然可以回转,还不如开机重新找原点,然后根据记录到存储器的当前阶段重新走一次

hdxet 发表于 2020-7-29 11:45:50

如果精度要求不是特别高,用个铁电存储器随时存储电机位置,重新上电后继续走,当然可能会有一定的误差,在下一次过限位时校准即可

lnso 发表于 2020-7-29 12:25:23

hdxet 发表于 2020-7-29 11:45
如果精度要求不是特别高,用个铁电存储器随时存储电机位置,重新上电后继续走,当然可能会有一定的误差,在 ...

铁电是说可以无限制存储吗?我系统跑一圈运行12个角度,也就是需要保存12个位置。一天跑下来可能需要保存上百次

hello2020 发表于 2020-7-29 12:29:55

铁电实时存储

icherry 发表于 2020-7-29 12:37:15

你等转完再掉电不行吗?程序加判断用软件控制掉电。

PPS 发表于 2020-7-29 12:48:17

这种东西不用太复杂,复杂了可靠性不好。简单又可靠的方法是,每次转动时记录目标位置。然后无论因为什么情况导致重新上电,都先回到原点,回到原点后读取当前的目标位置,并转到目标位置即可。

lnso 发表于 2020-7-29 14:58:23

icherry 发表于 2020-7-29 12:37
你等转完再掉电不行吗?程序加判断用软件控制掉电。

你可能没有研究过步进电机。

hdxet 发表于 2020-7-29 15:46:52

lnso 发表于 2020-7-29 12:25
铁电是说可以无限制存储吗?我系统跑一圈运行12个角度,也就是需要保存12个位置。一天跑下来可能需要保存 ...

好像铁电在很多年前就能达到10的12-13次方写寿命,一般应用可以认为这就是无限次写入的,所以现在能达到多少寿命基本不需要关心了,就当无限的用,没问题

Jason_1943 发表于 2020-7-29 16:31:25

想到如下可以尝试的方式:
1、在硬件上找到断电后步进会丢几部的时间,在单片机供电上增加电容值维持这个时间,并可以保存数据的时间;
2、单片机实时读取电流值,也就是负载情况,当判定系统掉电后(设定一个供电电压ADC值,低于该值就认定断电了),存储做虚拟补偿(根据负载情况推断);
3、做硬件电路供电自锁,但是估计效果一般(本人只有想法);

simplorer 发表于 2020-7-29 17:09:22

我觉得没有编码器或者其它位置反馈,这个功能基本无法实现。
停电之前有段时间,步进电机的工作状态是不稳定的,有可能失步也可能正常。
这样后续就没法稳定判断位置。

Jason022 发表于 2020-7-29 17:17:43

PPS 发表于 2020-7-29 12:48
这种东西不用太复杂,复杂了可靠性不好。简单又可靠的方法是,每次转动时记录目标位置。然后无论因为什么情 ...

我觉得这方法最可行

lnso 发表于 2020-7-29 17:20:05

simplorer 发表于 2020-7-29 17:09
我觉得没有编码器或者其它位置反馈,这个功能基本无法实现。
停电之前有段时间,步进电机的工作状态是不稳 ...

停电之前有段时间我让单片机执行其他程序,一直死等,硬件有复位芯片,就是监测到低于2.63v,单片机不停地复位

Zwiic 发表于 2020-7-29 19:49:40

要靠谱,还得绝对值编码器

ylei12 发表于 2020-7-29 21:18:16

既然可以回零,又不能加装东西,那么上电回零是最佳方案,回到零点再走“阶段数*67”步

lostid 发表于 2020-7-29 21:45:59

典型的上电回零操作,不仅步进,非绝对值伺服只要有定位要求,都需要又上电回零。

sanwa 发表于 2020-7-31 07:53:23

掉电检测,同时加个电池供电,掉电时电源切换到电池供电,检测到电池供电后,再该存储存储,记录位置记录位置,操作完后,停电机,给电池掉电

armok. 发表于 2020-8-6 16:27:53

有偿求助”的帖子,请使用论坛的悬赏功能,禁止私下使用微信或支付宝转账【达到1000汤圆悬赏标题置红】
https://www.amobbs.com/forum.php?mod=viewthread&tid=5737448

winsunhy 发表于 2020-8-8 22:15:56

带磁编码器的闭环步进是最靠谱的方案。
磁编码器具有单圈绝对值功能,闭环步进可以提高带载能力,同长度的步进加磁编码器组成闭环步进可以达到同长度的开环步进性能,意思是减小之前开环步进电机的长度,在后端增加磁编码器。采用这个方案还可以省掉限位开关。

colinzhao 发表于 2020-8-9 12:34:47

cne53102 发表于 2020-7-28 23:18
正常42步进是一圈200步或400步。
楼主800步一圈,说明1步细分成了2或4。



仔细看完你写的,实际等于没说,16细分,电机跑到第8步,此时断电重上电,是往左还是往右跑呢? 不加传感器根本误解,别异想天开了

cne53102 发表于 2020-8-9 13:17:00

colinzhao 发表于 2020-8-9 12:34
仔细看完你写的,实际等于没说,16细分,电机跑到第8步,此时断电重上电,是往左还是往右跑呢? 不加传感 ...

向断电时刻的运动方向,断电时刻往左就是往左,往右就是往右,齿槽转矩与细分数没有关系,楼主不愿意加传感器再次上电不允许回原位的话,纯靠软件就只能做到这些了,我也说了,这不是绝对可靠的判断,但起码概率是这样

colinzhao 发表于 2020-8-9 16:26:13

cne53102 发表于 2020-8-9 13:17
向断电时刻的运动方向,断电时刻往左就是往左,往右就是往右,齿槽转矩与细分数没有关系,楼主不愿意加传 ...

你没明白我的意思,细分跑到第8步,重上电会回到整步,此时会有1个整步的不确定性

cne53102 发表于 2020-8-9 17:20:08

本帖最后由 cne53102 于 2020-8-9 17:26 编辑

colinzhao 发表于 2020-8-9 16:26
你没明白我的意思,细分跑到第8步,重上电会回到整步,此时会有1个整步的不确定性 ...

没错,说的就是这个问题,恰好在中心位置时如果不是静止状态,回到左右哪一边的整步的概率是不一样的,由于惯性的原因,到运动方向那一侧的整步的概率更高,如果掉电时是静止则无法预测。

你的意思是驱动器芯片上电时会初始化到整步,其实这个没有影响,因为掉电的时候已经因为电机齿槽转矩回到整步了,上电时不会发生额外的位移,除非机械部分阻力特别的大,这个一般不会的

不过说到底,无传感器还不能归零的话,纯靠软件没法可靠,这只是赌而已

Grant 发表于 2020-8-12 16:41:26

相对位置没有参考基准,无解啊。

xuehu5808 发表于 2020-10-21 00:43:56

lnso 发表于 2020-7-29 07:03
如何记录当前位置?我限位开关开始跑30°为第一阶段,假设20°位置掉电,我怎么知道电机是20°掉电了? ...

不好意识,这段时间忙没登陆刚看到信息,不知道你是用什么控制器来控制,你在发脉冲的时侯应该知道你当前发了多少脉冲吧?当掉电检测信号触发时你进入掉电处理程序,处理完成时记住你发了多少脉冲就知道转到什么位置了.

fsclub 发表于 2020-10-21 07:05:40

每次运动保存到月初你的阶段,上电检查归零后,再回去那个阶段即可
页: [1]
查看完整版本: 有偿求助(42步进电机掉电重新上电的位置确认)