步进电机PID位置控制

2019-07-20 02:06发布

我现在用STM32F407做了一块运动控制卡,需要精确控制步进电机的位置,我采用的方法是用增量式PID算法控制步进电机,光栅尺做位置反馈。现在的问题是:多数情况下步进电机的位置控制精确,但是有时候步进电机到达位置后却停不住,这个问题困扰了好几天,恳请有这方面经验的大神们指点一下,多谢!下面是我的程序。
QQ截图20170316093306.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
kingnike
1楼-- · 2019-07-20 05:18
本帖最后由 kingnike 于 2017-3-16 09:52 编辑

PID要加死区控制,不然容易震荡。
在你的应用场景允许的误差范围内,设置一个死区不起控。判断条件:1.本次误差小于死区1,也就是离控制目标已经很接近了。
               2.本次误差和上次误差非常接近,相当于上一次的控制反馈效果很小,本次不需要再增加控制量了(这也是增量式PID的一个核心吧)
if ( ( fabs(this_error)<=dead_band1)  &&  ( fabs(this_error-last_error) <dead_band2)  )
{
      last_error=0;
      return;
}

songlaijun
2楼-- · 2019-07-20 09:29
 精彩回答 2  元偷偷看……
hapao
3楼-- · 2019-07-20 10:43
kingnike 发表于 2017-3-16 09:35
PID要加死区控制,不然容易震荡。
在你的应用场景允许的误差范围内,设置一个死区不起控。判断条件:1.本 ...

无刷电机呢,刚刚学,不会了。
llee
4楼-- · 2019-07-20 14:16
作者大大您好 请问您写的程序能发给我参考一下吗?最近在解决步进电机位移控制的问题 非常需要您的帮助 谢谢!
1576705909@qq.com
1504647209
5楼-- · 2019-07-20 15:45
 精彩回答 2  元偷偷看……
1504647209
6楼-- · 2019-07-20 17:27
您好 ,看到的我联系我可以吗,想购买您的代码 ,qq 1504647209

一周热门 更多>