小笨蛋 发表于 2012-9-13 09:34:06

关于KK飞控积分的疑问

//###############################################
//
//   Integral value with limit and return
//   带限幅/带回归积分
//
int GyroIntegral(int v,int delta)
{
        //Integral gain
        //内部积分增益
        delta/=4;//delta=-511~511 -> -127~127
        v+=delta;
       
        //Limit value
        //限幅
        if(v>I_MAX)       v=I_MAX;
        if(v<-I_MAX) v=-I_MAX;

        //Return value
        //回归
        v/=I_RETSTEP;

        return v;
}什么叫带回归的积分?每次积分都减半,这是干什么啊?

jinbos 发表于 2012-9-13 15:02:19

比较巧妙,感觉就有点类似隔一段时间就进行角度控制一样,因只有陀螺数据,没办法计算出一个绝对的角度,陀螺有漂移,但是如果仅仅是用角速度做反馈的话,对四轴的稳定是不够的,特别地角速度反馈仅是对快速的动作有强列的抵制能力,但慢慢的漂移是没办法抵制,需要对积分值(角度差)进行控制,才有更好的效果,但如果是对长期的角度控制(积分出来的角度),比方你目标控制角度是0度,偏差角度用陀螺积分得到的,那积分值不能无限加大,否则在陀螺有漂移的情况下,积分偏差会越来越大,直到翻掉,他这种处理就有点类似了限定了时间积分一样,只是短时间地进行角度偏差控制,这样对长时间的陀螺漂移不会造成无限大的控制,而且对短时间的角度偏移有控制效应,从而不管飞行器偏移到任何姿态,都会努力稳定到这个姿态上,相当地高。

小笨蛋 发表于 2012-9-13 15:14:36

jinbos 发表于 2012-9-13 15:02 static/image/common/back.gif
比较巧妙,感觉就有点类似隔一段时间就进行角度控制一样,因只有陀螺数据,没办法计算出一个绝对的角度,陀 ...

反正没有加速度计不管怎么样都会有漂移的,除二也就是减弱一点罢了,你说的很有道理,但是呢还是不能完全理解……也不知道他是怎么想出来的。

borg 发表于 2012-9-20 15:48:40

v = (v+delta/4)/2,每一次计算当前值跟测量值各占50%权重,不知道这样理解对不对

xuxiang10 发表于 2014-9-2 17:14:07

解释的很好啊。。

jimmyxumotor 发表于 2015-11-6 16:55:04

有人这么用么?大家的积分都是怎么处理的?

jimmyxumotor 发表于 2015-11-6 17:33:57

LZ的这个积分怎么没有DT啊
页: [1]
查看完整版本: 关于KK飞控积分的疑问