产品展示 | 联系我们 您好,欢迎访问M6米乐官网登录,我们将竭诚为您服务!
20年专注设备技术研发 专注技术 专心质量 专业服务
全国咨询热线:13528178965
您的位置: 首页 > 新闻动态 > 媒体动态

联系我们contact us

M6米乐官网登录
地址:广东省深圳市南山区前海路1428号南岗商务大厦1304室
联系人:米乐电竞下载
电话:13528178965
手机:13528138044

媒体动态

STM32F103C8T6实现直流电机速度PID控制

时间:2024-03-01 13:20:14 来源:M6米乐官网登录 点击:1次

  PID算法是上个世纪30年代左右提出的控制算法,大至航空航天、小至家庭温度调控都能够正常的使用PID算法,虽然PID算法从提出到现在已经历经了快一个世纪,其后也出现了很多现代的算法,比如蒙特卡洛、智能控制等等,但现在PID仍然经久不衰,可以说目前80%以上的控制仍然使用PID算法。

  PID算法是自动控制原理课程学习的一部分,但在课程中老师讲解的是最基本的原理,没有一点拓展,更别提应用了,首先,先简单说一下PID控制算法的原理。

  上图为PID算法的控制框图,在我们控制电机速度时,期望输入就是电机的期望速度值,期望输入与由编码器测得的实际速度作差,求出的误差值传给PID的控制部分,算出需要输出的控制信号,将该控制信号传给控制器,也就是输出给电机驱动板L298N,这样形成一个循环,就实现了对电机速度的精准控制。

  但是在计算机中计算机很难实现连续型变量的积分或者微分操作,因此在计算机中,个人会使用离散型的积分和微分,就是取时间间隔T为1,离散型PID公式如下:

  在实际的应用中,有可能不需要PID同时使用,比如在速度控制中一般只使用PI控制就够了

  在电机的速度PID控制算法中,因为我们通常用PI算法就够了,所以我们大家可以使用增量式PID算法,这样做才能够让我们的公式和代码更加简洁。

  因为积分的效果是累加,跟着时间的推移,积分项的值会升到很高,积分本来的作用是用来减小静态误差,但积分项过大会引起过大的震荡,所以我们大家可以加一个判断函数if,当积分项的值达到一定值后,就让积分项保持这个值,避免引起更大的震荡。

  如果刚开始的误差比较大,那么积分项则会在刚开始就累计到了一个很大的数值,那么当第一次实际输出达到期望值时,不会立刻停止,而是会产生一个很大的过冲。这时就要使用到积分分离,就是当误差值过大时,我们就不使用积分项,只让PD项单独作用,当误差值较小后,再加入积分项,以减小静态误差。

  为了使用起来更便捷,我们先定一个PID结构体,结构体储存左右轮的PID参数、限幅值、误差等参数。

  当编码器的定时器,每隔10ms反馈一次编码器测出的实际速度后,调用PID函数,求解输出给电机驱动板的PWM值,然后通过Set_Pwm函数进行设置,以此控制电机转速。

  测试给电机输入理想转速为1500mm/s,随便设置了一组PI参数,得到实验结果如下:

  对于PID算法这才是万里长征的第一步吧,想要调出完美的控制程序,还需要复杂的PID参数整定,这里能配合上位机进行调试。

在线客服
联系方式

热线电话

13528178965

上班时间

周一到周五

手机号码

13528138044

二维码
线