2-2 PID-代码部分

目录

1、位置式PID定速控制

(1)按键控制PWM驱动电机(在主程序中)

(2)编码器测速(定时器中断)

(3)加入PID闭环控制

1)主程序

2)定时器中断函数

3)调试Kp,Ki,Kd的值

4)通过串口观察波形来调参比较直观

2、增量式PID定速控制

3、位置式PID定位置控制

4、增量式PID定位置控制


1、位置式PID定速控制

(1)按键控制PWM驱动电机(在主程序中)

(2)编码器测速(定时器中断)

编码器的读取周期和PID调控周期最好保持一致,可做到最大化利用编码器的分辨率

(3)加入PID闭环控制

1)主程序

按键不再控制PWM,而是控制Target

2)定时器中断函数

3)调试Kp,Ki,Kd的值

调试过程中可能会出现按一下按键,电机满转的现象,原因是电机和编码器的极性相反(给电机一个正向驱动力,编码器测速的值却是负的,计算公式就会认为应该加大Out使速度为正,此时本来我们想要的负反馈就变成了正反馈,即误差变得更大了,最终电机满转),将它们都改成顺时针为正或者都为逆时针为正就行了

Kp的数量级由(输出范围/输入范围)确定,即Out/Actual,如100/180大概等于零点几,则K的数量级大概就是0.几

Target的值可适当加大一点范围[-100,100]设成[-150,150]:由于电位器显示的值有点抖动,因此没必要把范围设置的那么死

4)通过串口观察波形来调参比较直观

最后可根据波形考虑是否要加入Kd,下面的情况就需要加入Kd

Kp,Ki,Kd都为0时,Out为0,电机速度为0

2、增量式PID定速控制

Error2表示上上次误差

用PD控制

Kp,Ki,Kd都为0时,ΔOut为0,但Out不为0,电机速度不为0(维持在当前值)

增量式PID的输出限幅的同时,也同时对积分进行了限幅,因此不存在积分饱和的问题

增量式PID适合自动控制和手动控制切换的场景

3、位置式PID定位置控制

定速控制:Actual给的是实际速度;让转盘以指定速度转动

定位置控制:Actual给的是实际位置;让转盘转指定的角度

4、增量式PID定位置控制

在增量式PID定速控制代码基础上将=改成+=;

增量式PID的Out比较依赖上一次Out,如果上一次的Out是错误的,那么增量式PID后续的调节就会持续受到这个错误影响,没有积分项的增量式PID,容易出现实际值与目标值偏移的问题,增量式PID的Ki最好不要设为0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

循环过三天

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

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

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

打赏作者

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

抵扣说明:

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

余额充值