【开源电机驱动】如何整定PID的参数

Abstract

引言

在这篇文章里。我主要介绍一些经典的PID参数整定方法。也会努力查找文献给大家介绍一些参数整定方面的最新研究,这次文章可能会分批次完善,请大家谅解。

从构思到拖更,过了一两月,请大家见谅,这个部分稍微比较复杂,需要大量的文献调研。想坚持给大家写一些真实有用的东西。

这篇文章会逐步完善。


手动调参

不管喜不喜欢,这大概是最直接的方法了吧。😄

一个榔头敲一个钉子,请时刻记住,我们现在要整定的参数,是电机闭环控制的参数。先来说一说电流环,我们从电流环的参数整定开始讲起。这里要事先了解一些参数,我做实验用的电机是24V的,假设现在有负载,工作电流最大为0.5A。而我们的PWM是的比较值为-65535到655535(正反转)。我们知道,0.1A对于我当前的电机而言,是一个很大的输入电流。回到闭环控制上来,我们用误差(测量值-期望值)来控制输出,PID控制器在其中充当了调节器的作用。再回到PID的公式:

Out = Err*Kp + ∑Err*Ki + (Err-Last_Err)*Kd

先假设我们只使用Kp来控制输出,即我们的输出电流是得到的电流误差乘上一个比例因子,实际测量(用手干扰电机,看电流变化)我们可以知道电流变化范围大概在0.01~0.1这个数量级。另一方面,我们的比较值是65536,也就是我们的

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在STM32中使用PID控制来输出PWM信号控制电机的速度是一种常见的方法。首先,需要设定目标速度,并将位置控制器的输出进行限幅。这可以通过编写一个函数来实现,如引用\[1\]中所示的PWM_Restrict函数。该函数将输入的PWM值与目标速度进行比较,并根据比较结果进行限幅处理,最后返回限幅后的PWM值。 在串级PID控制中,将两个或多个PID控制器按照串联的方式连接起来,其中外环控制位置,内环控制速度。对于直流电机速度位置闭环控制来说,外环输入为电机旋转的目标圈数,输出为速度;内环输入为速度,输出为PWM增量。这种串级PID控制的思想可以实现对电机速度的精准控制。具体实现时,前一个PID程序输出的是圈数,而后级PID将其作为速度处理。这是因为后级PID的期望值就是前级PID的输出值,经过PID计算得出的是电机需要的旋转速度。为了让电机按照期望速度旋转,我们需要对前级PID的输出进行限幅处理,将其限制在期望速度范围内。这样可以避免电机超速旋转或速度不达标的情况发生。具体的限幅幅值就是期望速度。这个限幅操作可以在实际的程序中实现。引用\[2\]中提供了一个例子来解释这个过程。 在STM32中,可以使用PID算法来实现对电机速度的控制。PID算法的控制框图如引用\[3\]所示。在控制电机速度时,期望输入即为电机的期望速度值。将期望输入与由编码器测得的实际速度进行差值计算,得到误差值,然后将该误差值传递给PID控制部分,计算出需要输出的控制信号。最后,将该控制信号传递给控制器,即输出给电机驱动板,从而实现对电机速度的精准控制。 综上所述,使用STM32的PID控制来输出PWM信号控制电机的速度可以通过设定目标速度并进行限幅处理来实现。同时,可以采用串级PID控制的思想,将位置控制和速度控制相结合,实现对电机速度的精准控制。 #### 引用[.reference_title] - *1* *2* [基于stm32的直流电机串级PID控制(代码开源)](https://blog.csdn.net/weixin_45720060/article/details/129947250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【STM32】STM32F103C8T6实现直流电机速度PID控制](https://blog.csdn.net/qq_52785580/article/details/123002248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Vicssic

与你一起成长

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

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

打赏作者

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

抵扣说明:

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

余额充值