模糊控制这部分没什么好写的,就是根据经验通过比较target和purpose的值,大的话就减,小的话就加,基本比较固定,主要是pid部分,其变种较多,代码固定但参数需要多次调节,常见的有增量式和位置式
<---------补充--------->
今天在做项目用模糊控制控制电机转速,由于整个电机模组是供应商的,所以其控制速度不确定,例如由0转到10000转大约需要8s左右,但是我的控制算法对速度的控制是300ms的周期,所以出现了速度还没到就开始控制,使得在降档时出现还没降到就继续减pwm导致出发电机死区,最终导致转速无法稳定;这个现象理论上可以通过修改控制周期来改变,但是事实上主要还是算法中没有对死区做控制,理论上要写这个算法的时候应该先限幅,对最高和最低进行限制,然后再去控制,但是可能先前使用的供应商的电机没有出现这个问题,所以就还按照这样写;最终在修改diff的最小值后电机在低档位可以保持稳定。
<---------------------->
增量式PID
增量式PID代码 后续补充
位置式PID
位置式PID代码 后续补充