low frequency pe accelerometer angle θa ke barabar ho (gyro drift remove kare),
high frequency pe integrated gyro ke barabar ho (accel noise remove kare).
Sabse simple first-order low-pass lo Hlp(s)=1+τs1. Tab complement force ho jaata hai:
Hhp(s)=1−1+τs1=1+τsτs.
Notice karo Hhp mein ek factor s (ek derivative) hai. Gyro already θ˙=sθ deta hai, toh angle pe Hhp apply karna matlab rate pe 1+τsτ apply karna hai — koi explicit differentiation nahi chahiye. Combine karo:
θ^(s)=accel1+τs1θa(s)+gyro1+τsτsθg(s)
Discretize karo.sθ→θ˙=ωgyro replace karo (measured rate), Δt pe sample karo. Bilinear/Euler discretization karne se famous update milta hai:
Yeh step kyun? Term θ^k−1+ωkΔtgyro prediction hai (rate integrate karo). α<1 se multiply karna har step pe drift ko thoda bleed away karta hai; (1−α)θa,k gently estimate ko absolute accel reading ki taraf pull karta hai. Yahi gentle pull accel noise ki low-pass filtering hai.
1-D state x model karo (jaise angle) process aur measurement ke saath:
xk=xk−1+w,w∼N(0,Q)(process noise, variance Q)zk=xk+v,v∼N(0,R)(measurement noise, variance R)
Step 1 — Predict. Bina nayi measurement ke, hamara best guess wahi rehta hai, lekin uncertainty badhti hai:
x^k−=x^k−1,Pk−=Pk−1+Q.Kyun? Independent process noise add karna variances add karta hai.
Step 2 — Fuse two Gaussians. Hamare paas prior N(x^k−,Pk−) aur measurement N(zk,R) hai. Do Gaussians ka product ek Gaussian hai; combined variance minimize karna fused mean deta hai. Posterior mean ko weighted average likhke derive karo aur weight choose karo jo posterior variance minimize kare.
Estimate ho x^=x^−+K(z−x^−). Iska error variance:
P=(1−K)2P−+K2R.K ke upar minimize karo: dKdP=−2(1−K)P−+2KR=0⇒K=P−+RP−.
Recall Feynman: ek 12-saal ke bachche ko samjhao
Tumhare paas do dost hain jo temperature guess kar rahe hain. Ek dost, "Gyro-Guy," changes pe super fast react karta hai lekin dheere dheere aur zyada jhooth bolne lagta hai. Doosra, "Accel-Anne," average pe honest hai lekin jumpy hai aur random galat numbers chillata hai. Agar tum unhe smart tarike se average karo — Gyro-Guy pe quick changes ke liye believe karo lekin hamesha honest Anne ki taraf nudge karo wapas — toh tumhe dono se behtar guess milti hai. Complementary filter ek fixed trust ratio use karta hai. Kalman filter zyada clever hai: yeh ek "main kitna sure hoon" number rakhta hai, aur har moment perfect trust ratio choose karta hai, us dost pe zyada sunta hai jo abhi zyada reliable hai.
Complementary filter mein do transfer functions ki kya condition honi chahiye?
Unhe unity tak sum karna chahiye, Hlp(s)+Hhp(s)=1, jo unity DC gain deta hai (koi steady-state bias nahi).
Discrete complementary filter θ^k=α(θ^k−1+ωkΔt)+(1−α)θa mein α kya control karta hai?
Trust split: α→1 gyro pe trust karo (smooth, drift-prone), α→0 accelerometer pe trust karo (drift-free, noisy). α=τ/(τ+Δt).
Gyroscope ko accelerometer ki help kyun chahiye?
Gyro rate integrate karne se bias accumulate hota hai → unbounded slow drift; accelerometer ek absolute (drift-free) angle low frequency pe deta hai usse correct karne ke liye.
Scalar Kalman gain formula aur uska matlab likhiye.
K=P−+RP−; prior uncertainty ka total uncertainty se ratio — zyada prior doubt ya kam measurement noise ⇒ bada gain (measurement pe zyada trust karo).
Optimal Kalman gain derive karo.
P=(1−K)2P−+K2R ko K ke upar minimize karo: dP/dK=−2(1−K)P−+2KR=0⇒K=P−/(P−+R).
1/Pk=1/Pk−+1/R — do Gaussian sources fuse karne se unke inverse variances (information) add hote hain.
Kalman filter complementary filter se kaise related hai?
Complementary filter ek fixed gain wala Kalman filter hai; steady state pe P converge karta hai aur K constant ho jaata hai, toh Kalman complementary filter ban jaata hai.
Agar predict step mein +Q drop kar do toh kya hota hai?
P 0 tak shrink ho jaata hai, gain K→0, filter nayi measurements pe trust karna band kar deta hai → divergence.
Bada R filter ko sensor pe zyada trust karata hai ya kam?
Kam — R measurement-noise variance hai; bada R ⇒ chhota K.