malking 发表于 2004-12-19 23:06:12

如何用M16来构成控制步进电机的饲服系统?

步进电机常用于开环控制,但在一些需要精确控制和重要系统中,需要对步进电机进行饲服控制。

本饲服控制主要是根据位置输入,要求步进电机快速到位,实际上是步进电机的位置控制问题,传统的开环控制是在知道步进位移后,拟合加减速曲线,实现启动,匀速,减速,停止到达。但是现在需要步进电机能够根据不断变化的位置要求快速反应到位,初拟定方案如下:忘大家多提意见。

1.用增量式编码器作位置反馈

常用方法,将编码器的输出脉冲经一定变换后,变为两路正反转脉冲,且正转脉冲出现时,无反转脉冲,反之亦然。将这两路脉冲接入T0,T1口,进行计数,溢出中断作累加。这样只要知道正反转的圈数,和当前TCNT0,TCNT1的值,即可求出当前步进电机的实际位置。

2.根据实际位置和期望位置的偏差,再进行比例放大,得出一个频率。

该频率脉冲是输给后面的驱动器的,脉冲由T2定时器的溢出中断程序产生,中断程序中对高低电平进行倒置,即可产生50%占空比的脉冲。定时常数为脉冲周期的一半。一个脉冲后再计算新的频率。

不知道这样是否可以构成饲服控制。一般资料上介绍的好像不是这样控制,而是用转向角作为输入的,但是,搞不明白的是转向角如何转换成脉冲输给驱动器,驱动器只接受步进频率的。



不知道如何贴图,否则可以帖个控制框图。



不知道我用T0,T1,T2这样来做合适不合适?

armok 发表于 2004-12-19 23:22:05

malking 发表于 2004-12-20 10:50:30

不会吧,这么快就要沉了。有知道的兄弟忘多指教指教啊,特别是有这方面设计经验的,可以过来谈谈。

zjihtt 发表于 2004-12-25 11:43:16

就我看来,基本上可以了,不管是步进电机还是其他自带光电编码盘的电机,一般都采用这样闭环控制方式,至于你选择的T0和T1,也应该没什么问题,但是要注意,你还要使用PWM,不知道你的定时器是不是够用哈!,具体的你可以看一下AVR的PWM那一章,我觉得首先满足PWM吧,然后对码盘计数进行考虑,其中一路脉冲应该可以使用ICP引脚,在中断中对其进行处理。

  现在主要在做DSP,已经有很长一段时间没摸过AVR了,而且实践的也不够,以上意见仅供参考,有错的话还请原谅!
页: [1]
查看完整版本: 如何用M16来构成控制步进电机的饲服系统?