包河网站建设个人网站设计与开发
news/
2025/9/30 4:37:20/
文章来源:
包河网站建设,个人网站设计与开发,网页登录界面制作,上海正规做网站公司电话PID#xff0c;就是“比例#xff08;proportional#xff09;、积分#xff08;integral#xff09;、微分#xff08;derivative#xff09;”#xff0c;是一种很常见的控制算法。 需要将一个物理量保持在稳定状态#xff08;比如维持平衡#xff0c;温度、转速的…PID就是“比例proportional、积分integral、微分derivative”是一种很常见的控制算法。 需要将一个物理量保持在稳定状态比如维持平衡温度、转速的稳定这些场景都需要PID 假设现在有一个场景加热棒将一杯水加热到70℃
大多数情况下我们只需要“开关量”来控制加热棒当温度没达到时打开开关当温度达到时关闭开关。但是我们发现当温度达到70℃时断开开关后水温还是会由于“余热”持续升高。传感器的采集都是需要时间的所以为了精确控制便有了PID算法 可以将控制量带到目标值附近可以“预见”该控制量的变化趋势可以消除因为余热散热等因素引起的误差
P、I、D是三种不同的调节作用既可以单独使用也可以两两组合使用也可以三个一起使用。
先来说说PID的三个参数kP,kI,kD
①kP比例系数
还是那个场景
当水温差距很大时狠狠加热一下差距很小时慢慢加热一下
这就是P的作用
②kD微分时间常数
有了上述P的控制水温维持的晃晃悠悠所以此时我们需要稳定一下给它一个“阻尼”让控制量的变化速度趋于0
③kI积分时间常数
同样的场景不同的地方现在到北极了需要加热到70℃在P的作用下加热到了66℃此时水散热的速度和加热速度一样P在慢慢加热D觉得已经很稳定了于是水温永远是66℃。
此时就需要I的作用设置一个积分量只要没达到目标就一直积分。也就是增加加热功率 专业来讲 PID控制其实就是对偏差的控制过程如果偏差为 0, 则比例环节不起作用只有存在偏差时比例环节才起作用积分环节主要是用来消除静差所谓静差就是系统稳定后输出值和设定值之间的差值积分环节实际上就是偏差累计的过程把累计的误差加到原有系统上以抵消系统造成的静差而微分信号则反应了偏差信号的变化规律也可以说是变化趋势根据偏差信号的变化趋势来进行超前调节从而增加了系统的预知性。
PID结构体初始化
typedef struct
{float target_val; //目标值float actual_val; //实际值float err; //定义偏差值float err_last; //定义上一个偏差值float Kp,Ki,Kd; //定义比例、积分、微分系数float integral; //定义积分值
}pid;位置式PID算法 float PID_realize(float temp_val)
{/*计算目标值与实际值的误差*/pid.errpid.target_val-temp_val;/*误差累积*/pid.integralpid.err;/*PID算法实现*/pid.actual_valpid.Kp*pid.errpid.Ki*pid.integralpid.Kd*(pid.err-pid.err_last);/*误差传递*/pid.err_lastpid.err;/*返回当前实际值*/return pid.actual_val;
}增量式PID算法 float PID_realize(float temp_val)
{/*传入目标值*/pid.target_val temp_val;/*计算目标值与实际值的误差*/pid.errpid.target_val-pid.actual_val;/*PID算法实现*/float increment_val pid.Kp*(pid.err - pid.err_next) pid.Ki*pid.err pid.Kd*(pid.err - 2 * pid.err_next pid.err_last);/*累加*/pid.actual_val increment_val;/*传递误差*/pid.err_last pid.err_next;pid.err_next pid.err;/*返回当前实际值*/return pid.actual_val;
}增量式与位置式区别 1 增量式算法不需要做累加控制量增量的确定仅与最近几次偏差采样值有关计算误差对 控制 量计算的影响较小。而位置式算法要用到过去偏差的累加值容易产生较大的累加误 差。 2 增量式算法得出的是控制量的增量例如在阀门控制中只输出阀门开度的变化部分误 动作影响小必要时还可通过逻辑判断限制或禁止本次输出不会严重影响系统的工作。 而位置式的输出直接对应对象的输出因此对系统影响较大。 3 增量式 PID 控制输出的是控制量增量并无积分作用因此该方法适用于执行机构带积分 部件的对象如步进电机等而位置式 PID 适用于执行机构不带积分部件的对象如电液伺 服阀。 4 在进行 PID 控制时位置式 PID 需要有积分限幅和输出限幅而增量式 PID 只需输出限幅 位置式 PID 优缺点 优点 ①位置式 PID 是一种非递推式算法可直接控制执行机构如平衡小车u(k)的值和执行 机构的实际位置如小车当前角度是一一对应的因此在执行机构不带积分部件的对象中 可以很好应用 缺点 ①每次输出均与过去的状态有关计算时要对 e(k)进行累加运算工作量大。 增量式 PID 优缺点 优点 ①误动作时影响小必要时可用逻辑判断的方法去掉出错数据。 ②手动/自动切换时冲击小便于实现无扰动切换。当计算机故障时仍能保持原值。 ③算式中不需要累加。控制增量Δu(k)的确定仅与最近 3 次的采样值有关。 缺点 ①积分截断效应大有稳态误差 ②溢出的影响大。有的被控对象用增量式则不太好
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922464.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!