最近在做平衡小車,角度融合我試了下一階互補濾波,效果一般般,引數沒調好的話有很大的滯后,而且不夠平滑。
然后網上找了二階互補的代碼,沒看明白,能不能通俗點解釋下?
float K2 =0.2; // 對加速度計取值的權重
float x1,x2,y1; //運算中間變數
float angle ;//濾波角度輸出
void Erjielvbo(float angle_m,float gyro_m)
{
x1 = (angle_m - angle) * (1 - K2) * (1 - K2);
y1 = y1 + x1 * dt;
x2 = y1 + 2 * (1 - K2) * (angle_m - angle2) + gyro_m;
angle = angle + x2 * dt;
}
angle_m:加速度求出的角度
gyro_m:角速度
dt:積分時間
卡爾曼濾波太復雜了,先不考慮。
uj5u.com熱心網友回復:
https://blog.csdn.net/seek97/article/details/81294097?utm_source=blogkpcl6看看這篇
uj5u.com熱心網友回復:
一階互補我理解了,就是二階的不懂
uj5u.com熱心網友回復:
http://www.doc88.com/p-2819102704066.html看看這篇文章,多加了一層積分
uj5u.com熱心網友回復:
不難,基礎要好一點就能推出來!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268936.html
標籤:C語言
下一篇:求助:c語言寫沙漏,部分正確
