1、积分本身是用于消除静态误差。但在短期内存在很大偏差的情况下,会造成积分累积,导致控制量超出执行机构可能允许的最大动作范围对应极限控制量,引起超调以及振荡。
2、积分分离的原理:当误差值比较大时,取消积分作用,以免由于积分作用使得系统稳定性降低,超调量增大;当被控量接近目标值时(即误差较小时),引入积分控制,以消除净差,提高控制精度。
3、简单来说,就是积分作用是用来消除静态误差,但是不能整个状态中都使用。误差较大时,如果还使用积分,就会使控制量很大,产生超调或者振荡。所以这里的分离的意思就是,在误差大的时候不用积分,在误差比较小的时候才用积分作用,用于消除静差。
4、伪程序:
if (err < err_threthold):
if (times >time_threthold): //进入误差阈值后,还要过一段时间再开始积分作用,较少大误差的影响
i_err += ki * err * dt;//计算积分作用
if (i_err > out_threthold)://限幅,限制积分作用上限
i_err = out_threthold;
eles if (i_err < -out_threthold):
i_err = -out_threthold;
eles:
time++;
else:
time = 0;