重学PID——参数及其作用


一、是什么是PID

P:比例 proportional
I: 积分 integral
D:微分 derivative

二、参数调整

Kp:比例系数:
让偏差(目标减去当前)与调节装置的“调节力度”,建立一个一次函数的关系
Kp 参数越大,调节作用越激进,参数越小,调节作用越保守。
Kd微分系数: 更注重于当前状态
你心里设想一个弹簧:现在在平衡位置上。拉它一下,然后松手。这时它会震荡起来。因为阻力很小,它可能会震荡很长时间,才会重新停在平衡位置。
要是把上图所示的系统浸没在水里,同样拉它一下 :这种情况下,重新停在平衡位置的时间就短得多。
Kd就相当于水的阻力,作用就是让系统尽快达到稳定状态。

Ki积分系数: 注重于系统整体过程
设置一个积分量,只要误差一直存在,就会对偏差不断进行累加,反应在调节力度上。

三、位置式PID

在这里插入图片描述
e(k): 用户设定的值(目标值) - 控制对象的当前的状态值
比例P : e(k)
积分I : ∑e(i) 误差的累加(包括e(k))
微分D : e(k) - e(k-1) 这次误差-上次误差
位置式PID是当前系统的实际位置,与你想要达到的预期位置的偏差,进行PID控制。

注意: 参数Ki作用的是积分项,与过去的状态都有关 ,所以当系统的值突然大幅度变化时就会引起整体大幅度变化。并且在积分项饱和时 系统还需要一段时间才能稳定,需要积分限幅输出限幅。

位置式PID,一般直接使用PD控制。


//pwm=Kp*e(k)+Ki*∑e(k)+Kd[e(k)-e(k-1)]
typedef struct PID
{
   
float kp;
float ki;
float kd;
float ek;     //当前误差
float ek_1;   //上一次误差
float ek_sum; //误差总和
float limit;  //限幅
}PID; 
static PID pid;
void PID_Init()
{
   
    pid.kp = 0.1;
    pid.ki = 0.2;
    pid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值