做网站推广电话,永泰建设工程网站,山东网站建设公司,制作宣传册用什么appPID控制原理
PID控制原理是一种广泛应用于工业自动化和其他领域的控制算法。PID控制器的名字来源于其三个主要组成部分#xff1a;比例#xff08;Proportional#xff09;、积分#xff08;Integral#xff09;和微分#xff08;Derivative#xff09;。PID控制器实现…PID控制原理
PID控制原理是一种广泛应用于工业自动化和其他领域的控制算法。PID控制器的名字来源于其三个主要组成部分比例Proportional、积分Integral和微分Derivative。PID控制器实现的是输入信号和期望信号的零误差。比例控制就是对误差成比例放大让输出信号按照线性规律接近期望值比例控制的目的就是让输出值无限接近期望值积分控制就是对误差随着时间的积分值按一定比例输出让输出信号能够到达期望值积分控制的目的就是让输出值在期望值附近振荡微分控制就是对误差的变化按一定比例输出微分控制的目的就是为了消除振荡让输出信号保持稳定。完整的PID控制就是将比例控制的输出值、积分控制的输出值和微分控制的输出值加起来。让输出的信号等于期望信号并保持稳定。
位置速度环PID原理 位置速度环控制如上图所示输入信号是期望的目标位置输出是电机的驱动信号控制电机的旋转启停、旋转速度。通过旋转编码器作为传感器获取电机的转动情况并经过一定的计算过程得到实际转轴的位置以及实际转轴的速度。
内环是速度环内环的输入是速度误差就是期望速度减去实际转轴速度速度误差输入到速度PID控制器中经过计算得到输出值该输出值就是对电机驱动信号的控制电机的控制一般以PWM信号来控制于是输出值就是PWM信号的占空比。
外环是位置环上述内环中的期望速度其实就是外环的输出是通过外环计算出来的而不是固定的外环的输入是位置误差就是期望位置减去实际转轴位置。外环的输入就是电机最终期望达到的位置。
内环和外环的关系有两点需要注意第一点是内环的期望值也就是输入是外环PID计算后得到的输出第二点是外环控制对象是内环控制对象的积分这里外环的控制对象是实际转轴的位置内环的控制对象是实际转轴的速度它俩存在一个积分的关系。
代码解析
实践是检验真理的唯一标准。下面用实际使用过的代码来解释一下位置速度环PID的实现过程。
硬件方面主控选择的是STM32单片机电机驱动模块选择TB6612模块还有电机及编码器。软件方面选择利用CubMX生成HAL库的工程具体生成过程大同小异。
首先第一步是获取电机编码器的脉冲数这里通过STM32内部的计数器实现。在总的定时器回调函数中htim7是20ms的定时器如下图所示每20ms进入中断函数一次。 首先获取电机每20ms内电机编码器输出脉冲数。hitm3和htim8都设置为encoder mode即定时器编码器模式获取两个电机编码器的脉冲值。获取到的脉冲值用于计算实际转轴的位置和速度。 后再看总的位置速度环PID控制函数Location_Speed_control()。总的PID控制函数的关键部分包括位置环PID控制函数location_pid_control()和速度环PID控制函数speed_pid_control()。 有了实际速度之后再通过速度环PID运算函数speed_pid_realize得到PID输出控制值。该函数通过一个结构体传递目标值、误差、上一个偏差值、PID系数以及积分值等参数这些参数中目标值是通过位置环PID运算函数计算得到的PID系数是要提前设置好的。 速度环PID运算函数speed_pid_realize得到PID输出控制值其实就是PWM输出。如下图所示speed_Outval和speed2outval就是速度环PID运算函数的计算结果它们的值传入MotorOutput电机输出函数中。 在MotorOutput电机输出函数中主要是判断方向以及限制PWM输出上限值。 最后我们再介绍一下位置环PID控制函数location_pid_control()。该函数也需要通过编码器脉冲数先获取电机转轴实际位置。 有了实际位置后通过location_pid_realize函数调用位置PID结构体和实际位置计算得到目标速度目标速度输出给速度环的输入这样就完成闭环了。 其他说明
上述介绍的代码在电子设计竞赛中实际应用过可以稳定运行需要相关文件用于借鉴学习可以私聊。