Un filtre alpha-bêta (également appelé filtre alpha-bêta, filtre fg ou filtre gh ) est une forme simplifiée d' observateur pour les applications d'estimation, de lissage des données et de contrôle. Il est étroitement lié aux filtres de Kalman et aux observateurs d'état linéaires utilisés dans la théorie du contrôle . Son principal avantage est qu'il ne nécessite pas de modèle de système détaillé.
Équations de filtrage
Un filtre alpha bêta suppose qu'un système est correctement approximé par un modèle ayant deux états internes, où le premier état est obtenu en intégrant la valeur du deuxième état au fil du temps. Les valeurs de sortie mesurées du système correspondent aux observations du premier état du modèle, plus les perturbations. Cette approximation d'ordre très faible est adéquate pour de nombreux systèmes simples, par exemple les systèmes mécaniques où la position est obtenue comme l'intégrale temporelle de la vitesse. Sur la base d'une analogie avec un système mécanique, les deux états peuvent être appelés position x et vitesse v . En supposant que la vitesse reste approximativement constante sur le petit intervalle de temps ΔT entre les mesures, l'état de position est projeté vers l'avant pour prédire sa valeur au prochain temps d'échantillonnage à l'aide de l'équation 1.
Étant donné que la variable de vitesse v est présumée constante, sa valeur projetée au prochain temps d'échantillonnage est égale à la valeur actuelle.
Si des informations supplémentaires sont connues sur la manière dont une fonction de conduite modifiera l' état v pendant chaque intervalle de temps, l'équation 2 peut être modifiée pour l'inclure.
La mesure de sortie devrait s'écarter de la prédiction en raison du bruit et des effets dynamiques non inclus dans le modèle dynamique simplifié. Cette erreur de prédiction r est également appelée résidu ou innovation , en fonction des interprétations statistiques ou du filtrage de Kalman
Supposons que le résidu r soit positif. Cela peut être dû au fait que l'estimation précédente de x était faible, que l'estimation précédente de v était faible ou à une combinaison des deux. Le filtre alpha-bêta prend des constantes alpha et bêta sélectionnées (d'où le filtre tire son nom), utilise alpha multiplié par l'écart r pour corriger l'estimation de position et utilise bêta multiplié par l'écart r pour corriger l'estimation de vitesse. Un facteur ΔT supplémentaire sert traditionnellement à normaliser les valeurs des multiplicateurs.
Les corrections peuvent être considérées comme de petites étapes le long d'une estimation de la direction du gradient. Au fur et à mesure que ces ajustements s'accumulent, l'erreur dans les estimations d'état est réduite. Pour la convergence et la stabilité, les valeurs des multiplicateurs alpha et bêta doivent être positives et faibles :
Le bruit est supprimé uniquement si , sinon le bruit est amplifié.
Les valeurs alpha et bêta sont généralement ajustées expérimentalement. En général, des gains alpha et bêta plus importants ont tendance à produire une réponse plus rapide pour le suivi des changements transitoires, tandis que des gains alpha et bêta plus faibles réduisent le niveau de bruit dans les estimations d'état. Si un bon équilibre entre suivi précis et réduction du bruit est trouvé et que l'algorithme est efficace, les estimations filtrées sont plus précises que les mesures directes. C'est pourquoi le processus alpha-bêta est appelé un filtre .
Résumé de l'algorithme
Initialiser.
- Définissez les valeurs initiales des estimations d'état x et v , en utilisant des informations antérieures ou des mesures supplémentaires ; sinon, définissez les valeurs initiales de l'état à zéro.
- Sélectionnez les valeurs des gains de correction alpha et bêta .
Mise à jour. Répétez pour chaque pas de temps ΔT :
- L'état du projet estime x et v à l'aide des équations 1 et 2
- Obtenir une mesure actuelle de la valeur de sortie
- Calculer le résidu r en utilisant l'équation 3
- Corrigez les estimations d'état en utilisant les équations 4 et 5
- Envoyer x mis à jour et éventuellement v comme sorties de filtre
Exemple de programme
Le filtre Alpha Beta peut être implémenté en C comme suit :
#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 ; flottant xk , vk , rk ; flottant xm ; tandis que ( 1 ) { xm = rand () % 100 ; // signal d'entrée 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 %f " , xm , xk_1 ); dormir ( 1 ); } }
Résultat
Les images suivantes illustrent le résultat du programme ci-dessus sous forme graphique. Dans chaque image, la trace bleue correspond au signal d'entrée ; la sortie est rouge dans la première image, jaune dans la deuxième et verte dans la troisième. Pour les deux premières images, le signal de sortie est visiblement plus lisse que le signal d'entrée et ne présente pas de pics extrêmes observés dans l'entrée. De plus, la sortie se déplace dans une estimation de la direction du gradient d'entrée.
Plus le paramètre alpha est élevé, plus l'effet de l'entrée x est important et moins l'amortissement est observé. Une faible valeur de bêta est efficace pour contrôler les pics soudains de vitesse. De plus, lorsque alpha augmente au-delà de l'unité, la sortie devient plus rugueuse et plus irrégulière que l'entrée.
Relation avec les observateurs généraux de l'État
Les observateurs d'état plus généraux, tels que l' observateur de Luenberger pour les systèmes de contrôle linéaire, utilisent un modèle de système rigoureux. Les observateurs linéaires utilisent une matrice de gain pour déterminer les corrections d'estimation d'état à partir de multiples écarts entre les variables mesurées et les sorties prédites qui sont des combinaisons linéaires de variables d'état. Dans le cas des filtres alpha bêta, cette matrice de gain se réduit à deux termes. Il n'existe pas de théorie générale pour déterminer les meilleurs termes de gain d'observateur, et les gains sont généralement ajustés expérimentalement pour les deux.
Les équations de l'observateur linéaire de Luenberger se réduisent au filtre alpha bêta en appliquant les spécialisations et simplifications suivantes.
- La matrice de transition d'état discrète A est une matrice carrée de dimension 2, avec tous les termes diagonaux principaux égaux à 1, et les premiers termes super-diagonaux égaux à ΔT .
- La matrice d'équation d'observation C comporte une ligne qui sélectionne la valeur de la première variable d'état pour la sortie.
- La matrice de gain de correction du filtre L comporte une colonne contenant les valeurs de gain alpha et bêta.
- Tout signal de commande connu pour le deuxième terme d'état est représenté comme faisant partie du vecteur de signal d'entrée u , sinon le vecteur u est défini sur zéro.
- La matrice de couplage d'entrée B a un terme de gain non nul comme dernier élément si le vecteur u est non nul.
Relation avec les filtres de Kalman
Un filtre de Kalman estime les valeurs des variables d'état et les corrige de manière similaire à un filtre alpha bêta ou à un observateur d'état. Cependant, un filtre de Kalman le fait de manière beaucoup plus formelle et rigoureuse. Les principales différences entre les filtres de Kalman et les filtres alpha bêta sont les suivantes.
- Comme les observateurs d’état, les filtres de Kalman utilisent un modèle de système dynamique détaillé qui n’est pas limité à deux variables d’état.
- Comme les observateurs d’état, les filtres de Kalman utilisent en général plusieurs variables observées pour corriger les estimations des variables d’état, et celles-ci ne doivent pas nécessairement être des mesures directes des états individuels du système.
- Un filtre de Kalman utilise des modèles de bruit de covariance pour les états et les observations. À l'aide de ces modèles, une estimation de la covariance d'état en fonction du temps est automatiquement mise à jour et, à partir de là, les termes de la matrice de gain de Kalman sont calculés. Les gains du filtre alpha bêta sont sélectionnés manuellement et statiques.
- Pour certaines classes de problèmes, un filtre de Kalman est optimal selon Wiener , tandis que le filtrage alpha bêta est en général sous-optimal.
Un filtre de Kalman conçu pour suivre un objet en mouvement à l'aide d'un modèle de dynamique de cible à vitesse constante (c'est-à-dire une vitesse constante entre les mises à jour de mesure) avec une covariance du bruit de processus et une covariance de mesure maintenues constantes convergera vers la même structure qu'un filtre alpha-bêta. Cependant, le gain d'un filtre de Kalman est calculé de manière récursive à chaque pas de temps en utilisant les statistiques d'erreur de processus et de mesure supposées, tandis que le gain du filtre alpha-bêta est calculé ad hoc.
Choix des paramètres
Le filtre alpha-bêta devient un filtre de Kalman à l'état stable si les paramètres du filtre sont calculés à partir de l'intervalle d'échantillonnage , de la variance du processus et de la variance du bruit comme ceci
Ce choix de paramètres de filtre minimise l’erreur quadratique moyenne.
La variance de l'innovation à l'état stationnaire peut être exprimée comme suit :
Variations
Filtre alpha
Un membre plus simple de cette famille de filtres est le filtre alpha qui n'observe qu'un seul état :
avec le paramètre optimal calculé comme ceci :
Ce calcul est identique pour une moyenne mobile et un filtre passe-bas . Le lissage exponentiel est mathématiquement identique au filtre Alpha proposé.
Filtre alpha bêta gamma
Lorsque la seconde variable d'état varie rapidement, c'est-à-dire lorsque l'accélération du premier état est importante, il peut être utile d'étendre les états du filtre alpha bêta d'un niveau. Dans cette extension, la seconde variable d'état v est obtenue en intégrant un troisième état d'accélération , de manière analogue à la manière dont le premier état est obtenu en intégrant le second. Une équation pour l' état a est ajoutée au système d'équations. Un troisième multiplicateur, gamma , est sélectionné pour appliquer des corrections aux nouvelles estimations de l'état a . Cela donne les équations de mise à jour alpha bêta gamma .
Des extensions similaires à des ordres supérieurs supplémentaires sont possibles, mais la plupart des systèmes d'ordre supérieur ont tendance à avoir des interactions significatives entre les multiples états, donc l'approximation de la dynamique du système comme une simple chaîne d'intégrateurs est moins susceptible de s'avérer utile.
Le calcul des paramètres optimaux pour le filtre alpha-bêta-gamma est un peu plus complexe que pour le filtre alpha-bêta :