Alpha beta filter - Alpha beta filter

Et alfa-beta-filter (også kaldet alfa-beta-filter, fg-filter eller gh-filter) er en forenklet form for observatør til estimering, udjævning af data og kontrolapplikationer. Det er tæt knyttet til Kalman-filtre og til lineære tilstandsobservatører, der anvendes i kontrolteori . Dens største fordel er, at den ikke kræver en detaljeret systemmodel.

Filtrer ligninger

Et alfa-beta-filter antager, at et system tilnærmes tilstrækkeligt af en model med to interne tilstande, hvor den første tilstand opnås ved at integrere værdien af ​​den anden tilstand over tid. Målte systemudgangsværdier svarer til observationer af den første modeltilstand plus forstyrrelser. Denne tilnærmelse med meget lav ordre er tilstrækkelig til mange enkle systemer, for eksempel mekaniske systemer, hvor position opnås som tidsintegral af hastighed. Baseret på en mekanisk systemanalogi kan de to tilstande kaldes position x og hastighed v . Under antagelse af, at hastigheden forbliver omtrent konstant over det lille tidsinterval AT mellem målingerne, projiceres positionstilstanden fremad for at forudsige dens værdi ved den næste samplingstid ved hjælp af ligning 1.

Da hastighedsvariablen v formodes at være konstant, er dens projicerede værdi ved den næste samplingstid lig med den aktuelle værdi.

Hvis der kendes yderligere information om, hvordan en kørefunktion vil ændre v- tilstanden under hvert tidsinterval, kan ligning 2 modificeres til at inkludere den.

Outputmålingen forventes at afvige fra forudsigelsen på grund af støj og dynamiske effekter, der ikke er inkluderet i den forenklede dynamiske model. Denne forudsigelsesfejl r kaldes også rest eller innovation baseret på statistiske eller Kalman-filtreringstolkninger

Antag at rest r er positiv. Dette kan resultere, fordi det foregående x estimat var lavt, det foregående v var lavt eller en kombination af de to. Alfa-beta-filteret tager valgte alfa- og beta- konstanter (hvorfra filteret får sit navn), bruger alfa gange afvigelsen r for at korrigere placeringsestimatet og bruger beta gange afvigelsen r til at korrigere hastighedsestimatet. En ekstra ΔT- faktor tjener traditionelt til at normalisere størrelsen af ​​multiplikatorerne.

Korrektionerne kan betragtes som små trin langs et skøn over gradientretningen. Da disse justeringer akkumuleres, reduceres fejl i statens skøn. For konvergens og stabilitet skal værdierne af alfa- og beta- multiplikatorerne være positive og små:

Støj undertrykkes kun, hvis ellers forstærkes støj.

Værdier for alfa og beta justeres typisk eksperimentelt. Generelt har større alfa- og beta- gevinster tendens til at producere hurtigere respons til sporing af forbigående ændringer, mens mindre alfa- og beta- gevinster reducerer niveauet af støj i statens estimater. Hvis der findes en god balance mellem nøjagtig sporing og støjreduktion, og algoritmen er effektiv, er filtrerede estimater mere nøjagtige end de direkte målinger. Dette motiverer at kalde alfa-beta-processen et filter .

Algoritmeoversigt

Initialiser.

  • Indstil startværdierne for tilstandsestimater x og v ved hjælp af forudgående information eller yderligere målinger; Ellers skal du indstille de oprindelige tilstandsværdier til nul.
  • Vælg værdier for alfa- og beta- korrektionsgevinster.

Opdatering. Gentag for hvert tidstrin ΔT:

  Project state estimates x and v using equations 1 and 2
  Obtain a current measurement of the output value
  Compute the residual r using equation 3
  Correct the state estimates using equations 4 and 5
  Send updated x and optionally v as the filter outputs

Prøveprogram

Alpha Beta-filter kan implementeres i C som følger:

#include <stdio.h>
#include <stdlib.h>

int main()
{
	float dt = 0.5;
	float xk_1 = 0, vk_1 = 0, a = 0.85, b = 0.005;

	float xk, vk, rk;
	float xm;

	while (1)
	{
	    // edit by abdou
		xm = rand() % 100; // input signal

		xk = xk_1 + (vk_1 * dt);
		vk = vk_1;

		rk = xm - xk;

		xk += a * rk;
		vk += (b * rk) / dt;

		xk_1 = xk;
		vk_1 = vk;

		printf("%f \t %f\n", xm, xk_1);
		sleep(1);
	}
}

Resultat

Følgende billeder viser resultatet af ovenstående program i grafisk format. I hvert billede er det blå spor indgangssignalet; udgangen er rød i det første billede, gul i det andet og grøn i det tredje. For de første to billeder er udgangssignalet synligt glattere end indgangssignalet og mangler ekstreme pigge set i indgangen. Outputtet bevæger sig også i et estimat af gradientens inputretning.

Jo højere alfaparameteren er, jo højere er effekten af ​​input x, og jo mindre dæmpning ses. En lav beta-værdi er effektiv til at kontrollere pludselige stigninger i hastighed. Efterhånden som alfa øges ud over enhed, bliver output grovere og mere ujævn end input.

Resultater for alfa = 0,85 og beta = 0,005
Resultater for alfa = 0,5 og beta = 0,1
Resultater for alfa = 1,5 og beta = 0,5

Forholdet til almindelige observatører

Mere generelle statsobservatører , såsom Luenberger-observatøren for lineære kontrolsystemer, bruger en streng systemmodel. Lineære observatører bruger en forstærkningsmatrix til at bestemme korrektion af tilstandsestimater fra flere afvigelser mellem målte variabler og forudsagte output, der er lineære kombinationer af tilstandsvariabler. I tilfælde af alfa-beta-filtre reduceres denne forstærkningsmatrix til to termer. Der er ingen generel teori til bestemmelse af de bedste observatørgevinstbetingelser, og typisk justeres gevinster eksperimentelt for begge.

De lineære Luenberger- observatørligninger reduceres til alfa-beta-filteret ved at anvende følgende specialiseringer og forenklinger.

  • Den diskrete tilstandsovergangsmatrix A er en firkantet matrix med dimension 2, hvor alle hoveddiagonale udtryk er lig med 1 og de første superdiagonale udtryk er lig med AT .
  • Observationsligningens matrix C har en række, der vælger værdien af ​​den første tilstandsvariabel til output.
  • Filterkorrektionsforstærkningsmatrix L har en kolonne, der indeholder alfa- og beta-forstærkningsværdierne.
  • Ethvert kendt drivsignal for den anden tilstandsperiode er repræsenteret som en del af indgangssignalvektoren u , ellers er u- vektoren sat til nul.
  • Inputkoblingsmatrix B har en ikke-nul forstærkningstid som sit sidste element, hvis vektor u er ikke-nul.

Forholdet til Kalman-filtre

Et Kalman-filter estimerer værdierne for tilstandsvariabler og korrigerer dem på en måde svarende til et alfa-beta-filter eller en tilstandsobservatør. Imidlertid gør et Kalman-filter dette på en meget mere formel og streng måde. De vigtigste forskelle mellem Kalman-filtre og alfa-beta-filtre er følgende.

  • Ligesom statsobservatører bruger Kalman-filtre en detaljeret dynamisk systemmodel, der ikke er begrænset til to stater.
  • Ligesom statsobservatører bruger Kalman-filtre generelt flere observerede variabler til at korrigere tilstandsvariabler, og disse behøver ikke at være direkte målinger af individuelle systemtilstande.
  • Et Kalman-filter bruger kovariansstøjmodeller til tilstande og observationer. Ved hjælp af disse opdateres et tidsafhængigt skøn over tilstandskovarians automatisk, og ud fra dette beregnes Kalman-gevinstmatrixbetingelserne . Alfa-beta-filtergevinster vælges manuelt og er statiske.
  • For visse klasser af problemer er et Kalman-filter Wiener-optimalt , mens alfa-beta-filtrering generelt er suboptimalt.

Et Kalman-filter designet til at spore et bevægeligt objekt ved hjælp af en mål-dynamikmodel (proces) med konstant hastighed (dvs. konstant hastighed mellem måleopdateringer) med processtøjkovarians og målekovarians holdt konstant vil konvergere til samme struktur som et alfa-beta-filter . Imidlertid beregnes forstærkning af et Kalman-filter rekursivt ved hvert gangstrin ved hjælp af den antagne proces- og målefejlstatistik, mens alfa-beta-forstærkning beregnes ad hoc.

Valg af parametre

Alfa-beta-filteret bliver et steady-state Kalman-filter, hvis filterparametre beregnes ud fra prøveudtagningsintervallet , procesvariansen og støjvariansen som denne

Dette valg af filterparametre minimerer den gennemsnitlige kvadratfejl.

Innovationsvariansen ved steady state kan udtrykkes som:

Variationer

Alfafilter

Et enklere medlem af denne familie af filtre er alfa-filteret, der kun observerer en tilstand:

med den optimale parameter beregnet således:

Denne beregning er identisk for et glidende gennemsnit og et lavpasfilter .

Alpha beta gamma filter

Når den anden tilstandsvariabel varierer hurtigt, dvs. når accelerationen af ​​den første tilstand er stor, kan det være nyttigt at udvide alfa-beta-filterets tilstande med et niveau. I denne udvidelse opnås den anden tilstandsvariabel v fra at integrere en tredje accelerationstilstand , analog med den måde, hvorpå den første tilstand opnås ved at integrere den anden. En ligning for en tilstand føjes til ligningssystemet. En tredje multiplikator, gamma , vælges til at anvende korrektioner til det nye estimat af en tilstand. Dette giver alpha beta gamma opdateringsligningerne.

Lignende udvidelser til yderligere højere ordrer er mulige, men de fleste systemer af højere orden har tendens til at have betydelige interaktioner mellem de mange tilstande, så tilnærmelse af systemdynamikken som en simpel integratorkæde er mindre tilbøjelig til at vise sig nyttig.

Beregning af optimale parametre for alfa-beta-gamma-filteret er lidt mere involveret end for alfa-beta-filteret:

Se også

Referencer

Kilder

eksterne links