FOC学习笔记——闭环速度

        我今天编写并验证了在arduino上的无刷电机闭环速度代码能否在我的无刷电机上跑的起来,其中的知识点和碰到的问题用笔记的形式保存下来,防止以后会忘记。

        首先我们得知道foc闭环速度是什么,foc速度环通过闭环控制的方式,精确控制电机的转速,从而提高电机的性能和效率。

        速度闭环和位置闭环的最大区别就是,位置闭环的编码器的反馈量返回的是角度,而速度闭环的编码器反馈量是速度。

        编码器是怎么获得我们的转速的,首先速度的获取也是基于角度的获取的。是我们此时测出的角度与上次测得的角度来转换我们所得到的一个速度。我们来看看我们的SimpleFOC库中实现对速度的获取。先来看看在我们的loop代码中,获取角度是基于motor.loopFOC()这段函数。

我们可以在updata()中能可以直接得到我们的角度。我们可以点进去看一下。也是比较朴素的一段代码。这是通过IIC去读的角度值。

下面是获取角速度的代码,我也没仔细看,知道这是获取角速度的函数就行了。本质上就是(这次的角度值 - 上一次测得的角度值) / 这一段时间。

其实明白个原理就行了,接下来我们来看代码怎么写的,和其中的一些注意。虽然网上的代码有很多,可以直接复用一下,但是还是要根据我们硬件的情况来做一些修改。

 这些IIC和一些PWM引脚就按自己的硬件来。我用的是SimpleFOC库,好处就是对我这种新手挺友好。我接下来就对其中一些重要配置说一下。

首先注意的是,写的是闭环速度模式,所以我们要将运动控制模式设置成velocity。

再根据我们的硬件调试出我们合适的速度PID,让我们的电机在运动过程中不会产生剧烈的抖动。调PID的话我用的是simpleFOCStudio,网上有很多教程,调试代码也是用的灯哥的,开源的也是非常好用。

最后一点就是它的速度低通滤波,在调试过程中,当电机速度低的时候,电机会发出噪声,这时候就要用到我们的低通滤波了,可以通过调试我们的低通滤波可以改善这种情况。

差不多就这些点了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焦不得

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值