16位单片机C语言实现PID调速心得

本文分享了16位单片机MC9S12EP100使用C语言实现PID调速的心得,探讨了位置式与增量式PID的区别,重点介绍了增量式PID在整形工程中的实现细节,包括采样周期、防止除以0的问题以及PID系数整定的方法。通过实验发现,积分环节对于稳定速度至关重要,而微分环节可能并不必要。
摘要由CSDN通过智能技术生成

PID作为一种线性控制器在各领域得到广泛使用,具体原理就不细说了,本人其实也是一知半解就不班门弄斧了。

以下仅就这两天对于PID实现电机调速的一些心得跟大家分享一下。

PID主要的实现方式有两种 ,位置式和增量式,公式就不列了,其实核心思想个人认为就是时刻检测误差,再乘一定系数,再用此值修正。

位置式PID计算出的就是控制量u(k),电机控制中此值就是PWM的占空比。

增量式PID计算出的值是△u(k),还需要加上u(k-1)才是控制量 即 u(k)=△u(k)+u(k-1)。

用C语言实现单片机对电机的PID调速,需要注意采样周期,我定为10.25ms测试可用,不知这个时间有没有什么讲究。

使用位置式PID时,我创建的是float工程,最终无论如何也没有调试成功,难道是16为单片机(MC9S12EP100)对浮点运算有要求?后来换了增量式PID,采用整形的工程,先左移8位的计算完右移动的方式,避免系数太小除成 0,最终实现PID调速。

增量式整形工程的PID也有很多细节需要注意。最重要的就是注意最后计算完成右移语句的位置,必须是在完成所有计算之后再右移,否则当偏差不够大时还是会除成0,导致调不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值