08 TIM输出PWM_PID控制算法

TIM输出PWM控制电机

PS:所有的芯片端口,最多耐压5V
打开PWM波,设定一个波形作为PWM波的输出。300设为100,转速从111将为30rpm

PID算法

为什么有PID算法?

  • 在电机体质不可能相同
  • 相同的pwm加在多个电机,怎么保持相同转速
  • 外力作用,负载变化问题
  • 闭环控制电机转速    测速->误差计算->pwm调整

缺点:没有明确的优化准则,基本用经验进行调试。

比例(P)控制:力度值
积分(I)控制:响应速度
微分(D)控制:达到目标值的时候,抑制惯性过调

例如:设定转速为50转,那么利用PID算法代码如下:

死区控制

Q1和Q2,或者Q3和Q4是不能直接导通的,不然就要烧掉了。
晶体管导通和截止是有一个反应时间的,这就导致了电机不能瞬间翻转。

  • 判断当前转速rpm_cur和传入的需求转速pwm符号相反,则说明需要有反转。
  • 先把pwm波关闭
  • 然后在把电机驱动芯片上的in1和in2引脚,线关闭再打开。
  • pwm波没有负值,所以需要有个 pwm = -pwm的操作

猜你喜欢

转载自blog.csdn.net/weixin_44937328/article/details/114443390
08