Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Interesant
  • Probleme moderne ale științei și educației. Folosind filtre Kalman

Probleme moderne ale științei și educației. Folosind filtre Kalman

filtru Kalman

Filtrul Kalman este utilizat pe scară largă în aplicații de inginerie și econometrie: de la radare și sisteme de viziune până la estimarea parametrilor modelelor macroeconomice. Filtrarea Kalman este o parte importantă a teoriei controlului, joacă un rol important în crearea sistemelor de control. Împreună cu controlerul liniar-quadratic, filtrul Kalman permite rezolvarea problemei de control Gaussian liniar-quadratic. Filtrul Kalman și controlerul liniar-quadratic sunt soluții posibile la majoritatea problemelor fundamentale din teoria controlului.

În majoritatea aplicațiilor, numărul de parametri care definesc starea unui obiect este mai mare decât numărul de parametri observați disponibili pentru măsurare. Folosind un model al unui obiect pentru un număr de măsurători disponibile, filtrul Kalman permite obținerea unei estimări a stării interne.

Filtrul Kalman este destinat reevaluării recursive a vectorului de stare al unui sistem dinamic cunoscut a priori, adică pentru a calcula starea curentă a sistemului, este necesar să se cunoască măsurarea curentă, precum și starea anterioară a filtrului. în sine. Astfel, filtrul Kalman, ca multe alte filtre recursive, este implementat mai degrabă în reprezentare temporală decât în ​​frecvență.

Un exemplu ilustrativ al capabilităților filtrului este obținerea de estimări precise, actualizate continuu ale poziției și vitezei unui obiect pe baza rezultatelor unei serii de timp de măsurători inexacte ale locației acestuia. De exemplu, în radar, există sarcina de a urmări o țintă, determinându-i locația, viteza și accelerația, în timp ce rezultatele măsurătorilor vin treptat și sunt foarte zgomotoase. Filtrul Kalman folosește un model probabilistic al dinamicii țintei, care specifică tipul de mișcare probabilă a unui obiect, ceea ce face posibilă reducerea efectului zgomotului și obținerea unor estimări bune ale poziției obiectului în momentul prezent, viitor sau trecut în timp. .

Introducere

Filtrul Kalman operează cu conceptul de vector de stare a sistemului (un set de parametri care descriu starea sistemului la un anumit moment în timp) și descrierea sa statistică. În cazul general, dinamica unui anumit vector de stare este descrisă de densitățile de probabilitate ale distribuției componentelor sale în fiecare moment de timp. În prezența unui anumit model matematic al observațiilor observate ale sistemului, precum și a unui model de modificare a priori a parametrilor vectorului de stare (și anume, ca proces de formare Markov), este posibil să se scrie o ecuație pentru densitatea de probabilitate posterioară a vectorului de stare în orice moment. Această ecuație diferențială se numește ecuația Stratonovich. Ecuația Stratonovich în formă generală nu este rezolvată. O soluție analitică poate fi obținută numai în cazul unui număr de restricții (ipoteze):

  • Gaussianitatea densităților de probabilitate a priori și a posteriori ale vectorului de stare în orice moment de timp (inclusiv cel inițial)
  • Zgomot de modelare gaussiană
  • Gaussianitatea zgomotului de observare
  • albul zgomotului de observare
  • liniaritatea modelului de observare
  • liniaritatea modelului procesului de formare (care, ne amintim, trebuie să fie un proces Markov)

Filtrul Kalman clasic este ecuații pentru calcularea primului și al doilea moment al densității de probabilitate posterioară (în sensul vectorului așteptărilor matematice și al matricei de varianțe, inclusiv a celor reciproce) sub aceste constrângeri. Având în vedere faptul că pentru o densitate normală de probabilitate așteptarea matematică și matricea de varianță definesc complet densitatea de probabilitate, putem spune că filtrul Kalman calculează densitatea de probabilitate posterioară a vectorului de stare în fiecare moment de timp. Aceasta înseamnă că descrie complet vectorul de stare ca o mărime vectorială aleatorie.

În acest caz, valorile calculate ale așteptărilor matematice sunt estimări optime în funcție de criteriul erorii pătratice medii, care determină utilizarea pe scară largă a acesteia.

Există mai multe varietăți de filtru Kalman, care diferă în aproximări și trucuri care trebuie utilizate pentru a reduce filtrul la forma descrisă și pentru a-i reduce dimensiunea:

  • Filtru Kalman extins (EKF). Reducerea modelelor de observație neliniară și a procesului de modelare prin liniarizare prin extinderea seriei Taylor.
  • Filtru Kalman fără parfum (UKF). Este utilizat în probleme în care liniarizarea simplă duce la distrugerea conexiunilor utile între componentele vectorului de stare. În acest caz, „liniarizarea” se bazează pe o transformare fără parfum.
  • Filtrul Ensemble Kalman (EnKF). Folosit pentru a reduce dimensiunea problemei.
  • Sunt posibile variante cu un filtru suplimentar neliniar, permițând normalizarea observațiilor non-Gauss.
  • Sunt posibile variante cu filtru de „albire”, permițându-vă să lucrați cu zgomot „de culoare”.
  • etc.

Model de sistem dinamic utilizat

Filtrele Kalman se bazează pe sisteme dinamice liniare discretizate în timp. Astfel de sisteme sunt modelate prin lanțuri Markov folosind operatori liniari și termeni distribuiți normal. Starea sistemului este descrisă de un vector de dimensiune finită - un vector de stare. La fiecare pas de timp, operatorul liniar acționează asupra vectorului de stare și îl transformă într-un alt vector de stare (schimbarea stării deterministă), se adaugă un anumit vector normal de zgomot (factori aleatori) și, în cazul general, un vector de control care simulează acțiunea a sistemului de control. Filtrul Kalman poate fi privit ca un analog al modelelor Markov ascunse, cu diferența că variabilele care descriu starea sistemului sunt elemente ale unui set infinit de numere reale (spre deosebire de un set finit de spațiu de stări în modelele Markov ascunse) . În plus, modelele Markov ascunse pot folosi distribuții arbitrare pentru valorile ulterioare ale vectorului de stare, spre deosebire de filtrul Kalman, care utilizează un model de zgomot distribuit normal. Există o relație puternică între ecuațiile filtrului Kalman și modelul Markov ascuns. Acestea și alte modele sunt revizuite de Roweis și Chahramani (1999).

Când se utilizează filtrul Kalman pentru a obține estimări ale vectorului de stare a procesului dintr-o serie de măsurători zgomotoase, este necesar să se prezinte un model al acestui proces în conformitate cu structura filtrului - sub forma unei ecuații matriceale de un anumit tip. Pentru fiecare ritm k a operaţiunii de filtrare este necesară determinarea matricelor în conformitate cu descrierea de mai jos: evoluţia procesului F k; matricea de observatie H k; matricea de covarianță a procesului Q k; matricea de covarianță a zgomotului de măsurare R k; în prezența acțiunilor de control - o matrice a coeficienților acestora B k .

O ilustrare a modului în care funcționează filtrul. Matricele sunt marcate cu pătrate. Elipsele marchează matrice ale distribuțiilor normale multivariate (inclusiv mediile și covarianța). Vectorii nu sunt conturați. În cel mai simplu caz, unele matrici nu se schimbă în timp (nu depind de index k), dar sunt încă folosite de filtru la fiecare ciclu de ceas.

Modelul sistem/proces presupune că starea reală în acest moment k este obţinută din starea adevărată în momentul de faţă k−1 conform ecuației:

,
  • F k- matricea evolutiei procesului/sistemului care afecteaza vectorul X k−1 (vectorul de stare în acest moment k−1 );
  • B k- matricea de control, care se aplica vectorului actiunilor de control u k ;
  • w k- proces normal aleator cu așteptare matematică zero și matrice de covarianță Q k, care descrie natura aleatorie a evoluției sistemului/procesului:

Pe moment k observație (măsurare) z k vector de stare adevărată X k, care sunt legate prin ecuația:

Unde H k- matrice de măsurare care conectează vectorul stare reală și vectorul măsurătorilor efectuate, v k- zgomot alb gaussian al măsurătorilor cu așteptare matematică zero și matrice de covarianță R k :

Starea inițială și vectorii proceselor aleatorii la fiecare ciclu de ceas ( X 0 , w 1 , …, w k , v 1 , …, v k) sunt considerate independente.

Multe sisteme dinamice reale nu pot fi descrise cu acuratețe de acest model. În practică, dinamica nesocotită în model poate strica serios performanța filtrului, mai ales atunci când se lucrează cu un semnal stocastic necunoscut la intrare. Mai mult decât atât, dinamica nesocotită în model poate face ca filtrul să fie instabil. Pe de altă parte, zgomotul alb independent ca semnal nu va duce la divergența algoritmului. Problema separării zgomotului de măsurare de dinamica neevaluată în model este dificilă; se rezolvă folosind teoria sistemelor de control robuste.

filtru Kalman

Filtrul Kalman este un fel de filtru recursiv. Pentru a calcula starea estimată a sistemului pentru ciclul curent de lucru, are nevoie de o estimare a stării (sub forma unei estimări a stării sistemului și a unei estimări a erorii în determinarea acestei stări) la ciclul anterior de lucru și măsurători la ciclul curent. Această proprietate o diferențiază de filtrele de pachete, care necesită cunoașterea istoricului măsurătorilor și/sau estimărilor în ciclul de ceas curent. În cele ce urmează, prin notație înțelegem estimarea vectorului adevărat în acest moment n tinand cont de masuratori din momentul inceperii lucrului si pana in momentul de fata m inclusiv.

Starea filtrului este stabilită de două variabile:

Iterațiile filtrului Kalman sunt împărțite în două faze: extrapolare și corecție. În timpul extrapolării, filtrul primește o evaluare preliminară a stării sistemului (în literatura în limba rusă este adesea indicat, unde înseamnă „extrapolare” k este numărul ciclului la care a fost primit) pentru pasul curent conform evaluării finale a stării din pasul precedent (sau o evaluare preliminară pentru ciclul următor conform evaluării finale a pasului curent, în funcție de interpretare). Această estimare preliminară se mai numește și estimare de stat a priori, deoarece observațiile pasului corespunzător nu sunt folosite pentru a o obține. În faza de corecție, extrapolarea a priori este completată cu măsurătorile curente corespunzătoare pentru a corecta estimarea. Estimarea ajustată se mai numește și estimarea stării posterioare, sau pur și simplu estimarea vectorului de stare. De regulă, aceste două faze se alternează: extrapolarea se face în funcție de rezultatele corecției până la următoarea observație, iar corectarea se face împreună cu observațiile disponibile la pasul următor etc. se omite și extrapolarea se efectuează pe estimarea neajustată (a priori). extrapolare). De asemenea, dacă măsurătorile independente sunt disponibile numai la anumite pași de timp, corecțiile sunt încă posibile (de obicei folosind o matrice de observație diferită H k ).

Etapa extrapolării

Etapa de corectare

Abaterea pasului primit k observații din observația așteptată din extrapolarea efectuată:
Matricea de covarianță pentru vectorul de abatere (vector de eroare):
Matricea de câștig optim Kalman formată pe baza matricelor de covarianță ale extrapolării disponibile a vectorului de stare și a măsurătorilor obținute (folosind matricea de covarianță a vectorului de deviație):
Corectarea extrapolării obținute anterior a vectorului de stare - obținerea unei estimări a vectorului de stare a sistemului:
Calculul matricei de covarianță a estimării vectorului de stare a sistemului:

Expresia pentru matricea de covarianță a estimării vectorului de stare a sistemului este valabilă numai atunci când este utilizat vectorul optim redus de coeficienți. În general, această expresie are o formă mai complexă.

Invariante

Dacă modelul este absolut exact și condițiile inițiale și sunt specificate absolut exact, atunci următoarele valori sunt salvate după orice număr de iterații ale operațiunii de filtrare - sunt invariante:

Așteptările matematice ale estimărilor și extrapolărilor vectorului de stare a sistemului, matricele de eroare sunt vectori zero:

unde este așteptarea matematică.

Matricele calculate de covarianță a extrapolărilor, estimările stării sistemului și vectorul de erori coincid cu adevăratele matrici de covarianță:

Un exemplu de construire a unui filtru

Imaginați-vă un cărucior stând pe șine infinit de lungi în absența frecării. Inițial, se odihnește în poziția 0, dar sub influența unor factori aleatori, asupra ei acționează o accelerație aleatoare. Măsurăm poziția căruciorului la fiecare ∆ t secunde, dar măsurătorile sunt inexacte. Dorim să obținem estimări pentru poziția căruciorului și viteza acestuia. Să aplicăm filtrul Kalman acestei probleme, să definim toate matricele necesare.

În această problemă, matricele F , H , Rși Q nu depind de timp, omitem indicii lor. În plus, nu controlăm căruciorul de mine, așa că matricea de control este B dispărut.

Coordonatele și viteza căruciorului sunt descrise de un vector în spațiul liniar al stărilor

unde este viteza (prima derivată a coordonatei în raport cu timpul).

Vom presupune că între ( k−1) al-lea și k-th bifa căruciorul se mișcă cu accelerație constantă un k distribuite conform legii normale cu așteptări matematice zero și abatere standard σ a... Conform mecanicii newtoniene, putem scrie

.

Matricea de covarianță a acțiunilor aleatoare

(σ A este un scalar).

La fiecare ciclu de lucru se măsoară poziția căruciorului. Să presupunem că eroarea de măsurare v k are o distribuție normală cu așteptări matematice zero și abatere standard σ z... Atunci

iar matricea de covarianta a zgomotului de observatie are forma

.

Poziția inițială a căruciorului este cunoscută exact

, .

Dacă poziția și viteza căruciorului sunt cunoscute doar aproximativ, atunci matricea de dispersie poate fi inițializată cu un număr suficient de mare L astfel încât numărul să depășească varianța măsurătorilor coordonatei

, .

În acest caz, la primele cicluri de ceas, filtrul va folosi rezultatele măsurătorilor cu o greutate mai mare decât informațiile disponibile a priori.

Derivarea formulelor

Matricea de covarianță de estimare a vectorului de stare

Prin definiția matricei de covarianță P k|k

înlocuiți expresia pentru evaluarea vectorului de stare

și notează expresia pentru vectorul erorilor

și vectori de măsurare

scoateți vectorul erorii de măsurare v k

întrucât vectorul erorii de măsurare v k nu este corelat cu alte argumente, obținem expresia

în conformitate cu proprietățile covarianței vectoriale, această expresie este convertită la forma

înlocuind expresia pentru matricea de covarianță de extrapolare a vectorului de stare cu P k|k−1 și determinarea matricei de covarianță a zgomotului de observație pe R k, primim

Expresia rezultată este valabilă pentru o matrice arbitrară de coeficienți, dar dacă matricea de coeficienți, optimă după Kalman, acționează ca aceasta, atunci această expresie pentru matricea de covarianță poate fi simplificată.

Matrice optimă de câștig

Filtrul Kalman minimizează suma pătratelor erorilor așteptate ale estimării vectorului de stare.

Vector de eroare de estimare a vectorului de stare

Sarcina este de a minimiza suma așteptărilor matematice ale pătratelor componentelor unui vector dat.

,

ceea ce este echivalent cu minimizarea urmei matricei de covarianță a estimării vectorului de stare P k|k... Înlocuim expresiile existente în expresia pentru matricea de covarianță a estimării vectorului de stare și o completăm la un pătrat complet:

Rețineți că ultimul termen este matricea de covarianță a unei variabile aleatoare, deci urma sa este nenegativă. Minimul urmei este atins atunci când ultimul termen este pus la zero:

Se susține că această matrice este cea dorită și, atunci când este utilizată ca matrice de coeficienți în filtrul Kalman, minimizează suma pătratelor medii a erorilor estimării vectorului de stare.

Matricea de covarianță a estimării vectorului de stare folosind matricea coeficienților optimi

Expresia pentru matricea de covarianță a estimării vectorului de stare P k|k atunci când se utilizează matricea optimă de coeficienți va lua forma:

Această formulă este mai simplă din punct de vedere computațional și, prin urmare, este aproape întotdeauna utilizată în practică, dar este corectă numai atunci când se utilizează matricea optimă de coeficienți. Dacă, din cauza preciziei de calcul scăzute, apare o problemă cu stabilitatea de calcul sau dacă se utilizează o matrice de coeficienți, alta decât cea optimă, trebuie utilizată formula generală pentru matricea de covarianță a estimării vectorului de stare.

Critica la adresa filtrului Kalman

În prezent, principala critică la adresa filtrului Kalman este în următoarele domenii

  • Tutorial

Pe Internet, inclusiv pe Habré, puteți găsi o mulțime de informații despre filtrul Kalman. Dar este greu de găsit o derivație ușor digerabilă a formulelor în sine. Fără o concluzie, toată această știință este percepută ca un fel de șamanism, formulele arată ca un set fără chip de simboluri și, cel mai important, multe afirmații simple care se află la suprafața unei teorii sunt dincolo de înțelegere. Scopul acestui articol va fi acela de a vorbi despre acest filtru într-un limbaj cât mai accesibil.
Filtrul Kalman este un instrument puternic de filtrare a datelor. Principiul său principal este că la filtrare se utilizează informații despre fizica fenomenului în sine. De exemplu, dacă filtrați datele din vitezometrul unei mașini, atunci inerția mașinii vă oferă dreptul de a percepe salturi prea rapide de viteză ca o eroare de măsurare. Filtrul Kalman este interesant pentru că, într-un fel, este cel mai bun filtru. Vom discuta mai detaliat mai jos ce înseamnă exact cuvintele „cel mai bun”. La finalul articolului voi arăta că în multe cazuri formulele pot fi simplificate în așa măsură încât aproape nimic nu va rămâne din ele.

Program educațional

Înainte de a face cunoștință cu filtrul Kalman, îmi propun să reamintesc câteva definiții și fapte simple din teoria probabilității.

Valoare aleatoare

Când spun că este dată o variabilă aleatoare, înseamnă că această variabilă poate lua valori aleatoare. Ia valori diferite cu probabilități diferite. Când aruncați, să zicem, un zar, un set discret de valori va renunța:. Când vine vorba, de exemplu, de viteza unei particule rătăcitoare, atunci, evident, trebuie să se ocupe de un set continuu de valori. Vom nota valorile „abandonate” ale unei variabile aleatoare prin, dar uneori, vom folosi aceeași literă, pe care o folosim pentru a desemna o variabilă aleatoare:
În cazul unui set continuu de valori, variabila aleatoare este caracterizată de densitatea de probabilitate, care ne dictează că probabilitatea ca variabila aleatoare să „cădă” într-o mică vecinătate a unui punct cu lungime este egală cu. După cum putem vedea din imagine, această probabilitate este egală cu aria dreptunghiului umbrit de sub grafic:

Destul de des în viață, variabilele aleatoare sunt gaussiene când densitatea de probabilitate este egală.

Vedem ca functia are forma unui clopot centrat intr-un punct si cu o latime caracteristica ordinului.
Întrucât vorbim despre distribuția Gauss, ar fi un păcat să nu mai vorbim de unde a venit. Așa cum numerele sunt bine stabilite în matematică și se găsesc în cele mai neașteptate locuri, tot așa și distribuția gaussiană și-a luat rădăcini adânci în teoria probabilității. O afirmație remarcabilă care explică parțial omniprezența gaussiană este următoarea:
Să existe o variabilă aleatoare cu o distribuție arbitrară (de fapt, există unele restricții asupra acestui arbitrar, dar nu sunt deloc stricte). Să efectuăm experimente și să calculăm suma valorilor „abandonate” ale variabilei aleatoare. Să facem multe dintre aceste experimente. Este clar că de fiecare dată vom primi o valoare diferită a sumei. Cu alte cuvinte, această sumă este ea însăși o variabilă aleatoare cu propria sa lege de distribuție. Se dovedește că pentru suficient de mare legea distribuției acestei sume tinde către distribuția gaussiană (apropo, lățimea caracteristică a „clopotului” crește ca). Citiți mai multe în Wikipedia: Teorema limitei centrale. În viață, de foarte multe ori există cantități care sunt alcătuite dintr-un număr mare de variabile aleatoare independente distribuite egal și, prin urmare, sunt distribuite conform gaussianului.

Rău

Valoarea medie a unei variabile aleatoare este ceea ce obținem în limită dacă efectuăm o mulțime de experimente și calculăm media aritmetică a valorilor scăzute. Valoarea medie este desemnată în diferite moduri: matematicienilor le place să desemneze prin (așteptare sau valoare medie), iar matematicienilor străini prin (așteptare). Fizicienii sunt prin sau. Vom desemna în mod străin:.
De exemplu, pentru o distribuție Gaussiană, media este.

Dispersia

În cazul distribuției gaussiene, vedem clar că variabila aleatoare preferă să cadă în apropierea valorii sale medii.

Admirați din nou distribuția gaussiană



După cum se poate observa din grafic, împrăștierea caracteristică a valorilor de ordine. Cum putem estima această răspândire a valorilor pentru o variabilă aleatoare arbitrară, dacă îi cunoaștem distribuția. Puteți desena un grafic al densității sale de probabilitate și puteți estima lățimea caracteristică cu ochiul. Dar preferăm să mergem pe calea algebrică. Puteți găsi lungimea medie (modulul) abaterii de la medie:. Această valoare va fi o bună estimare a împrăștierii caracteristice a valorilor. Dar tu și cu mine știm foarte bine că folosirea modulelor în formule este o durere de cap, așa că această formulă este rar folosită pentru a estima răspândirea caracteristică.
O modalitate mai ușoară (simple din punct de vedere al calculelor) este să găsești. Această valoare se numește varianță și este adesea menționată ca. Rădăcina varianței este o bună estimare a răspândirii unei variabile aleatoare. Rădăcina varianței se mai numește și abaterea standard.
De exemplu, pentru o distribuție Gaussiană, putem calcula că varianța definită mai sus este exact egală, ceea ce înseamnă că abaterea standard este egală, ceea ce este de acord foarte bine cu intuiția noastră geometrică.
De fapt, există o mică fraudă ascunsă aici. Cert este că în definiția distribuției gaussiene, sub exponent se află expresia. Aceste două din numitor sunt tocmai astfel încât abaterea standard să fie egală cu coeficientul. Adică formula de distribuție gaussiană în sine este scrisă într-o formă special ascuțită, astfel încât să luăm în considerare abaterea ei standard.

Variabile aleatoare independente

Variabilele aleatoare sunt dependente și nu. Imaginați-vă că aruncați un ac pe un avion și notați coordonatele ambelor capete. Aceste două coordonate sunt dependente, sunt legate de condiția ca distanța dintre ele să fie întotdeauna egală cu lungimea acului, deși sunt valori aleatorii.
Variabilele aleatoare sunt independente dacă rezultatul primei dintre ele este complet independent de rezultatul celei de-a doua dintre ele. Dacă variabilele aleatoare sunt independente, atunci valoarea medie a produsului lor este egală cu produsul valorilor lor medii:

Dovada

De exemplu, a avea ochi albaștri și a absolvi liceul cu o medalie de aur sunt variabile aleatoare independente. Dacă medaliați cu ochi albaștri, să zicem, medaliați cu aur, atunci medaliați cu ochi albaștri. Acest exemplu ne spune că, dacă variabilele aleatoare sunt date de densitățile lor de probabilitate, atunci independența acestor valori este exprimată prin faptul că densitatea probabilității ( prima valoare a renunțat, iar a doua) se găsește prin formula:

Din aceasta rezultă imediat că:

După cum puteți vedea, demonstrația este efectuată pentru variabile aleatoare care au un spectru continuu de valori și sunt date de densitatea lor de probabilitate. În alte cazuri, ideea de dovadă este similară.

filtru Kalman

Formularea problemei

Să notăm după valoarea pe care o vom măsura și apoi să filtram. Acestea pot fi coordonate, viteză, accelerație, umiditate, miros, temperatură, presiune etc.
Să începem cu un exemplu simplu care ne va conduce la formularea unei probleme generale. Imaginați-vă că avem o mașină controlată prin radio care poate merge doar înainte și înapoi. Cunoscând greutatea mașinii, forma, suprafața drumului etc., am calculat modul în care joystick-ul de control afectează viteza de mișcare.

Apoi coordonatele mașinii se vor schimba conform legii:

În viața reală, nu putem ține cont în calculele noastre de micile perturbații care acționează asupra mașinii (vânt, denivelări, pietricele de pe drum), astfel încât viteza reală a mașinii va diferi de cea calculată. O variabilă aleatorie este adăugată în partea dreaptă a ecuației scrise:

Avem un senzor GPS instalat pe o mașină de scris care încearcă să măsoare coordonatele adevărate a mașinii și, desigur, nu o poate măsura exact, ci o măsoară cu o eroare, care este și o variabilă aleatorie. Ca urmare, primim date eronate de la senzor:

Sarcina este ca, cunoscând citirile greșite ale senzorului, să găsească o bună aproximare pentru coordonatele adevărate a mașinii. Vom nota această bună aproximare ca.
În formularea sarcinii generale, orice poate fi responsabil pentru coordonată (temperatură, umiditate ...), iar termenul responsabil pentru controlul sistemului din exterior va fi notat cu (în exemplul cu o mașină). Ecuațiile pentru citirile de coordonate și senzori vor arăta astfel:

(1)

Să discutăm în detaliu ce știm:

Este de remarcat faptul că sarcina de filtrare nu este o sarcină anti-aliasing. Nu încercăm să netezim datele de la senzor, încercăm să obținem cea mai apropiată valoare de coordonata reală.

algoritmul lui Kalman

Vom argumenta prin inducție. Imaginați-vă că la pasul al treilea am găsit deja valoarea filtrată de la senzor, care aproximează bine coordonatele adevărate a sistemului. Nu uitați că cunoaștem ecuația care controlează modificarea coordonatei necunoscute:

Prin urmare, neprimind încă valoarea de la senzor, putem presupune că la un pas sistemul evoluează conform acestei legi și senzorul va arăta ceva apropiat. Din păcate, nu putem spune nimic mai precis până acum. Pe de altă parte, la un pas, vom avea o citire inexactă a senzorului pe mâini.
Ideea lui Kalman este că, pentru a obține cea mai bună aproximare a coordonatei adevărate, trebuie să alegem calea de mijloc între citirea unui senzor inexact și - predicția noastră a ceea ce ne așteptam să vedem de la acesta. Vom acorda greutate citirii senzorului și greutatea va rămâne pe valoarea prezisă:

Coeficientul se numește coeficient Kalman. Depinde de pasul de iterație, așa că mai corect ar fi să-l scriem, dar deocamdată, pentru a nu aglomera formulele de calcul, vom omite indicele lui.
Trebuie să alegem coeficientul Kalman astfel încât valoarea coordonatei optime rezultată să fie cea mai apropiată de coordonata adevărată. De exemplu, dacă știm că senzorul nostru este foarte precis, atunci vom avea mai multă încredere în citirea lui și vom acorda mai multă greutate valorii (aproape de una). Dacă senzorul, dimpotrivă, este complet inexact, atunci ne vom concentra mai mult pe valoarea prezisă teoretic.
În general, pentru a găsi valoarea exactă a coeficientului Kalman, trebuie doar să minimizați eroarea:

Folosim ecuațiile (1) (cele cu fundal albastru într-un cadru) pentru a rescrie expresia erorii:

Dovada


Acum este momentul să discutăm ce înseamnă expresia minimizați eroarea? La urma urmei, eroarea, după cum putem vedea, este ea însăși o variabilă aleatorie și de fiecare dată ia valori diferite. De fapt, nu există o abordare unică pentru a defini ceea ce înseamnă că eroarea este minimă. La fel ca și în cazul varianței unei variabile aleatoare, atunci când am încercat să estimăm lățimea caracteristică a răspândirii acesteia, aici vom alege cel mai simplu criteriu de calcul. Vom minimiza media erorii pătrate:

Să scriem ultima expresie:

cheia probei

Din faptul că toate variabilele aleatoare incluse în expresia pentru sunt independente, iar valorile medii ale erorilor senzorului și modelului sunt egale cu zero, rezultă că toți termenii „încrucișați” sunt egali cu zero:
.
În plus, formulele de varianță arată mult mai simple: și (din moment ce)

Această expresie capătă o valoare minimă atunci când (echivalăm derivata cu zero)

Aici scriem deja o expresie pentru coeficientul Kalman cu indicele pasului, prin urmare subliniem că depinde de pasul de iterație.
Înlocuim coeficientul Kalman, care îl minimizează, în expresia pentru eroarea pătratică medie. Primim:

Sarcina noastră a fost îndeplinită. Avem o formulă iterativă pentru a calcula coeficientul Kalman.

Toate formulele într-un singur loc


Exemplu

Imaginea publicitară de la începutul articolului filtrează datele de la un senzor GPS fictiv instalat pe o mașină fictivă care circulă uniform accelerat cu o accelerație fictivă cunoscută.

Aruncă o altă privire la rezultatul filtrării


Cod Matlab

curata tot; N = 100% număr de probe a = 0,1% accelerație sigmaPsi = 1 sigmaEta = 50; k = 1: N x = k x (1) = 0 z (1) = x (1) + normrnd (0, sigmaEta); pentru t = 1: (N-1) x (t + 1) = x (t) + a * t + normrnd (0, sigmaPsi); z (t + 1) = x (t + 1) + normrnd (0, sigmaEta); Sfârșit; % filtru kalman xOpt (1) = z (1); eOpt (1) = sigmaEta; % eOpt (t) este o rădăcină pătrată a dispersiei erorii (varianță). Nu este o variabilă aleatorie. Pentru t = 1: (N-1) eOpt (t + 1) = sqrt ((sigmaEta ^ 2) * (eOpt (t) ^ 2 + sigmaPsi ^ 2) / (sigmaEta ^ 2) + eOpt (t) ^ 2 + sigmaPsi ^ 2)) K (t + 1) = (eOpt (t + 1)) ^ 2 / sigmaEta ^ 2 xOpt (t + 1) = (xOpt (t) + a * t ) * (1-K (t + 1)) + K (t + 1) * z (t + 1) final; grafic (k, xOpt, k, z, k, x)

Analiză

Dacă urmărim modul în care coeficientul Kalman se modifică odată cu pasul de iterație, se poate demonstra că se stabilizează întotdeauna la o anumită valoare. De exemplu, atunci când erorile rms ale senzorului și ale modelului sunt legate între ele ca zece la unu, atunci graficul coeficientului Kalman în funcție de pasul de iterație arată astfel:

În exemplul următor, vom discuta despre modul în care acest lucru ne poate face viața mult mai ușoară.

Al doilea exemplu

În practică, se întâmplă adesea să nu știm nimic despre modelul fizic al ceea ce filtrăm. De exemplu, doriți să filtrați citirile de la accelerometrul preferat. Nu știi dinainte după ce lege intenționezi să rotești accelerometrul. Cele mai multe informații pe care le puteți obține este variația erorii senzorului. Într-o situație atât de dificilă, toată ignoranța asupra modelului de mișcare poate fi condusă într-o variabilă aleatoare:

Dar, sincer, un astfel de sistem nu mai satisface condițiile pe care le-am impus variabilei aleatoare, pentru că acum toată fizica mișcării necunoscută nouă este ascunsă acolo și, prin urmare, nu putem spune că în momente diferite erorile de model sunt independente de fiecare. altele și că valorile lor medii sunt zero. În acest caz, în general, teoria filtrului Kalman nu este aplicabilă. Însă, nu vom acorda atenție acestui fapt, ci, în mod prostesc, aplicăm toate formulele colosale, alegând coeficienții la ochi, pentru ca datele filtrate să pară drăguț.
Dar poți lua o cale diferită, mult mai simplă. După cum am văzut mai sus, coeficientul Kalman se stabilizează întotdeauna la o valoare cu creșterea numărului de pași. Prin urmare, în loc să alegem coeficienții și să găsim coeficientul Kalman folosind formule complexe, putem considera că acest coeficient este întotdeauna constant și selectam numai această constantă. Această presupunere nu strică aproape nimic. În primul rând, folosim deja ilegal teoria lui Kalman, iar în al doilea rând, coeficientul Kalman se stabilizează rapid la o constantă. Ca rezultat, totul va fi foarte simplificat. În general, nu avem nevoie de nicio formulă din teoria lui Kalman, trebuie doar să găsim o valoare acceptabilă și să o introducem în formula iterativă:

Următorul grafic prezintă date de la un senzor fictiv filtrat în două moduri diferite. Cu condiția să nu știm nimic despre fizica fenomenului. Prima cale este sinceră, cu toate formulele din teoria lui Kalman. Iar al doilea este simplificat, fără formule.

După cum putem vedea, metodele sunt aproape aceleași. O mică diferență se observă doar la început, când coeficientul Kalman nu s-a stabilizat încă.

Discuţie

După cum am văzut, ideea principală a filtrului Kalman este că este necesar să se găsească un coeficient astfel încât valoarea filtrată

În medie, ar fi cel mai puțin diferit de valoarea reală a coordonatei. Putem vedea că valoarea filtrată este o funcție liniară a citirii senzorului și a valorii filtrate anterioare. Și valoarea filtrată anterioară este, la rândul său, o funcție liniară a citirii senzorului și a valorii filtrate anterioare. Și așa mai departe, până când lanțul se desfășoară complet. Adică, valoarea filtrată depinde de dintre toate citirile anterioare ale senzorului liniar:

Prin urmare, filtrul Kalman se numește filtru liniar.
Se poate dovedi că filtrul Kalman este cel mai bun dintre toate filtrele liniare. Cel mai bun în sensul că pătratul mediu al erorii filtrului este minim.

Caz multidimensional

Întreaga teorie a filtrului Kalman poate fi generalizată la cazul multidimensional. Formulele de acolo arată puțin mai înfricoșătoare, dar însăși ideea derivării lor este aceeași ca și în cazul unidimensional. În acest articol excelent, le puteți vedea:
Acest filtru este utilizat în diverse domenii - de la inginerie radio până la economie. Aici vom discuta despre ideea principală, sensul, esența acestui filtru. Va fi prezentat în cel mai simplu mod posibil.
Să presupunem că avem nevoie de a măsura unele cantități ale unui obiect. În inginerie radio, cel mai adesea se ocupă de măsurători ale tensiunilor la ieșirea unui anumit dispozitiv (senzor, antenă etc.). În exemplul cu un electrocardiograf (vezi) avem de-a face cu măsurători ale biopotențialelor pe corpul uman. În economie, de exemplu, valoarea măsurată poate fi cursul de schimb. În fiecare zi cursul de schimb este diferit, adică în fiecare zi „măsurătorile lui” ne dau o valoare diferită. Și dacă să generalizăm, atunci putem spune că cea mai mare parte a activității unei persoane (dacă nu toată) se reduce tocmai la măsurători-comparații constante ale anumitor cantități (vezi cartea).
Deci, să presupunem că măsurăm constant ceva. Să presupunem, de asemenea, că măsurătorile noastre vin întotdeauna cu o eroare - acest lucru este de înțeles, deoarece nu există instrumente de măsurare ideale și fiecare produce un rezultat cu o eroare. În cel mai simplu caz, ceea ce s-a descris poate fi redus la următoarea expresie: z = x + y, unde x este valoarea adevărată pe care dorim să o măsurăm și care ar fi măsurată dacă am avea un dispozitiv de măsurare ideal, y este eroarea de măsurare introdusă de dispozitivul de măsurare și z - valoarea pe care am măsurat-o. Așadar, sarcina filtrului Kalman este să ghicească (determină) din z-ul măsurat, dar care a fost valoarea adevărată a lui x atunci când am primit z-ul nostru (în care valoarea adevărată și eroarea de măsurare „stau”). Este necesar să se filtreze (înlăturați) valoarea adevărată a lui x din z - eliminați zgomotul de distorsionare y din z. Adică, având la îndemână doar suma, trebuie să ghicim ce termeni au dat această sumă.
În lumina celor de mai sus, vom formula acum totul după cum urmează. Să presupunem că există doar două numere aleatorii. Ni se dă doar suma lor și ni se cere să stabilim prin această sumă care sunt termenii. De exemplu, ni s-a dat numărul 12 și ei spun: 12 este suma numerelor x și y, întrebarea este cu ce sunt x și y egali. Pentru a răspunde la această întrebare, compunem ecuația: x + y = 12. Am obținut o ecuație cu două necunoscute, prin urmare, strict vorbind, nu este posibil să găsim două numere care au dat această sumă. Dar mai putem spune ceva despre aceste cifre. Putem spune că au fost fie numerele 1 și 11, fie 2 și 10, fie 3 și 9, fie 4 și 8 etc., de asemenea, este fie 13 și -1, fie 14 și -2, fie 15 și - 3, etc. Adică prin suma (în exemplul nostru, 12), putem determina setul de opțiuni posibile care însumează exact 12. Una dintre aceste opțiuni este perechea pe care o căutăm, care de fapt a dat 12 chiar acum. De asemenea, merită remarcat faptul că toate variantele de perechi de numere care dau un total de 12 formează o linie dreaptă prezentată în Fig. 1, care este dată de ecuația x + y = 12 (y = -x + 12).

Fig. 1

Astfel, perechea pe care o căutăm se află undeva pe această linie dreaptă. Repet, este imposibil să alegi dintre toate aceste opțiuni perechea care a fost de fapt - care a dat cifra 12, fără a avea niciun indiciu suplimentar. Dar, în situația pentru care a fost inventat filtrul Kalman, există astfel de indicii... Se știe ceva despre numerele aleatoare dinainte. În special, așa-numita histogramă de distribuție pentru fiecare pereche de numere este cunoscută acolo. Se obține de obicei după o observare destul de lungă a apariției acestor numere foarte aleatorii. Adică, de exemplu, se știe din experiență că în 5% din cazuri o pereche x = 1, y = 8 cade de obicei (notăm această pereche ca: (1,8)), în 2% din cazuri o pereche x = 2, y = 3 ( 2,3), în 1% din cazuri o pereche (3,1), în 0,024% din cazuri o pereche (11,1), etc. Din nou, această histogramă este setată pentru toate cuplurile numere, inclusiv cele care formează un total de 12. Astfel, pentru fiecare pereche, care dă un total de 12, putem spune că, de exemplu, o pereche (1, 11) iese în 0,8% din cazuri, o pereche ( 2, 10) - în 1% din cazuri, o pereche (3, 9) - în 1,5% din cazuri etc. Astfel, putem folosi histograma pentru a determina în ce procent din cazuri suma termenilor unei perechi este 12. Să presupunem, de exemplu, în 30% din cazuri suma este 12. Iar în restul de 70% perechile rămase cad out - acestea sunt (1,8), (2, 3), (3,1), etc. - cele care însumează alte numere decât 12. Și să cadă, de exemplu, o pereche (7,5) în 27% din cazuri, în timp ce toate celelalte perechi care însumează 12 cad în 0,024% + 0,8% + 1% + 1,5% +... = 3% din cazuri. Deci, conform histogramei, am aflat că numerele care dau un total de 12 cad în 30% din cazuri. În același timp, știm că dacă 12 a scăzut, atunci cel mai adesea (în 27% din 30%) motivul pentru aceasta este perechea (7,5). Adică dacă deja Cu 12 lansate, putem spune că în 90% (27% din 30% - sau, ceea ce este la fel de 27 de ori din 30), motivul unui 12 aruncat este o pereche (7,5). Știind că cel mai adesea motivul pentru a obține suma egală cu 12 este perechea (7,5), este logic să presupunem că, cel mai probabil, a căzut acum. Desigur, încă nu este un fapt că, de fapt, acum numărul 12 este format din această pereche specială, totuși, de data viitoare, dacă întâlnim 12 și presupunem din nou perechea (7,5), atunci undeva în 90% din cazuri din 100% vom avea dreptate. Dar dacă presupunem perechea (2, 10), atunci vom avea dreptate doar 1% din 30% din timp, ceea ce reprezintă 3,33% presupuneri corecte comparativ cu 90% dacă presupunem perechea (7,5). Asta e tot - acesta este punctul de vedere al algoritmului de filtru Kalman. Adică, filtrul Kalman nu garantează că nu va face o greșeală în determinarea sumandului, dar garantează că va greși de câte ori se va face o greșeală de câte ori (probabilitatea de eroare va fi minimă), deoarece folosește statistici - o histogramă a perechilor de numere lipsă. De asemenea, trebuie subliniat faptul că așa-numita densitate de distribuție a probabilității (PDF) este adesea folosită în algoritmul de filtrare Kalman. Cu toate acestea, trebuie să înțelegeți că sensul este același cu cel al histogramei. Mai mult, o histogramă este o funcție construită pe baza PDF-ului și este o aproximare a acesteia (vezi, de exemplu,).
În principiu, putem reprezenta această histogramă în funcție de două variabile - adică ca o suprafață deasupra planului xy. Acolo unde suprafața este mai mare, există o probabilitate mai mare de apariție a unei perechi corespunzătoare. Figura 2 prezintă o astfel de suprafață.


fig. 2

După cum puteți vedea mai sus, linia dreaptă x + y = 12 (care este o variantă de perechi care dă un total de 12) punctele suprafeței sunt situate la diferite înălțimi și cea mai mare înălțime pentru varianta cu coordonate (7.5). Iar când întâlnim o sumă egală cu 12, în 90% din cazuri motivul apariției acestei sume este tocmai perechea (7,5). Acestea. această pereche, dând un total de 12, este cea care are cea mai mare probabilitate de apariție, cu condiția ca totalul să fie 12.
Astfel, ideea din spatele filtrului Kalman este descrisă aici. Pe el sunt construite tot felul de modificări - într-un singur pas, recurent în mai multe etape etc. Pentru un studiu mai profund al filtrului Kalman, recomand cartea: Van Tries G. Theory of detection, estimation and modulation.

p.s. Pentru cei care sunt interesați să explice conceptele de matematică, ceea ce se numește „pe degete”, le puteți sfătui această carte și, în special, capitolele din secțiunea ei „Matematică” (puteți achiziționa cartea în sine sau capitole individuale de la aceasta).

Să existe un sistem, a cărui stare este caracterizată în mod unic de un anumit set de cantități, de regulă, inaccesibile pentru măsurare (vectorul stării sistemului).

Există o serie de variabile. Într-un fel legat de starea sistemului, care poate fi măsurată cu o precizie dată. Algoritmul de filtru Kalman face posibilă construirea unei evaluări reale a stării sistemului în timp real, pe baza măsurătorilor care conțin erori. Vectorul de măsurare este considerat ca un semnal de ieșire multidimensional al sistemului, în timp ce este zgomotos, vectorul de stare este un semnal multidimensional necunoscut care trebuie determinat de condiția de optimitate a estimării construite este min. media sa - sq. erori.

Caracteristicile filtrului Kalman:

    Vă permite să obțineți o soluție la problema formulată în pr …………… comp

    Filtrul nu este staționar

    Are o formă recursivă, adică este convenabil pentru programare. Estimări noi sunt obținute prin corectarea celor vechi pe baza noilor observații.

În cazul general, este dat un spațiu Hilbert n-dimensional.

Este dat un proces format dintr-un sistem dinamic liniar numit filtru de modelare

Dx / dt = A (t) x (t) + B (t) u (t) + V (t)

    X (t) - proces aleator n-dimensional.

- UTC grămezi. proces sub forma unui l.s. cu o matrice de covarianță

K u (t, M (t)(t-)

X(t) observat cu un metru:

Y (t) = c (t) x (t) + n (t)

n (t) =B.Sh.

K n (t, ) = M = R (t)(t-)

Pe baza observatiilor laîn intervalul de timp, trebuie să găsiți estimarea semnalului x (t) tx (t))

X (t) = x (t) - x (t)- eroare de estimare

Criteriul optimității este pătratul său. Formă

// X (t) // 2 min

Procese u (t)și x (t)și V (t)și n (t) nu sunt corelate, iar filtrul de modelare satisface conditiile de realizare fizica.

U (t) x (t) x (t) n (t)

Фф - filtru de modelare

u

U (t) y (t)

L

x (t) x (t)

Proprietățile dinamice ale sistemului depind de L, alegere L prevede

X (t) - x (t)o

t

Condițiile inițiale la fiecare nou ciclu al algoritmului sunt evaluarea stării sistemului, iar valoarea îi caracterizează eroarea.

Algoritmul procesează secvenţial vectorii de măsurare nou sosiţi, luând în considerare la această valoare, comp. pe ciclul anterior. Pe cn. Etapa, cu prelucrarea măsurătorilor, sunt specificate prin n.o. pentru acest algoritm de calcul. fără corecții ale acestora bazate pe matrice de covarianță. Corectat asa. Bine. și sunt rezultatul filtrului Kalman la fiecare ciclu. În etapa finală a algoritmului are loc pregătirea pentru sosirea unui nou vector de măsurare. Pe baza unei transformări liniare date, care leagă vectorul său de stare ulterioară cu cel precedent, se prevede o estimare a stării sistemului la momentul următoarei măsurători.

Luați în considerare un filtru Kalman multidimensional pentru cazul staționar. Chiar descrierea obiectului trebuie cunoscută:

X (K + 1) = Ax (K) + Bu (K) + V (k)

Y (K) = cx (K0 + n (K)

A 1 B 1 C = const(caz staționar)

Informațiile a priori despre semnal trebuie cunoscute:

M [x] = x o u cov [x] = o

Trebuie cunoscute informații a priori despre zgomot, adică R(v) - densitatea gaussiană  M [v] = o; cov [V] = V

P (n)M [n] = o; cov [n] = N

V - zgomot obiect; n - zgomot de măsurare

Algoritmul filtrului Kalman:

X (K + 1) = Ax (k) + Bu (k) + L (K + 1)

Fiecare scor este derivat din precedentul x (K)și pe baza măsurării curente y (u + 1); prezice eșantionul curent - Ax (u) + Bu (K)- stare extrapolată.

L Cbu (K) ajustează estimarea curentă pe baza estimării erorii

C - noutate între valoarea observată și cea prezisă.

L (K + 1) - coeficientul Kalman variabil în timp.

L = KoC 1 p -1 p - matricea semnalului în sine; Ko - singura soluție definitivă pozitivă a unei ecuații matriceale algebrice (ecuația Reccati)

Acest identificator trebuie să fie stabil, adică valoarea proprie a matricei are o parte reală „-”.

Ecuația filtrului Kalman determină în mod unic toți coeficienții de identificare din datele privind natura interferenței în conformitate cu alegerea criteriului min CK erori.

Să scriem forma recursivă:

L (K + 1) =(K + 1) c 1 -1 = P (K + 1) C 1 N -1

(K + 1) = AP (K) A 1 + V

P (K + 1) = [ -1 (K + 1)> C 1 N -1 C] -1 = (K + 1) - (K + 1) C 1 -1 c(k + 1)

(K + 1) - valoarea anterioară a matricei de covarianță a semnalului X pe baza k observatii.

În primul rând, calculează:

1. (k + 1)

2.P (k + 1)

3. L (k + 1)

4.x (k + 1)

Exemplu: simplificat deoarece: caz a priori (filtru escroc Kalman); și c = 1

Luarea în considerare a semnalului aleator staționar x (k) cu caractere statistice cunoscute, stats.b.sh este distorsionat. max/ cea mai bună estimare x (u)

X (k + 1) = ax (k) + v (k)

Y (k) = x (k) + n (k)

X (o) = x o P (o) = P o

M [v] = o M = Vij

M [k] = o M = Nij

M = O

x ^ (n + 1) = ax (k) + L (k + 1)

l (k + 1) =(k + 1) [(k + 1) + N] -1 = (k + 1) /(k + 1) + N

(k + 1) = AP (k) A 1 + V = a 2 P (k) + v

P (k + 1) = [ -1 (k + 1) + N -1 ] -1 = (k + 1) N /(k + 1) + N

X (k + 1) = (1-l (k + 1)) ax (k) + l (k + 1) y (k + 1) = N/ (k + 1) + N ax (k) +(k + 1) / (k + 1) + N y (k + 1)

L

L (k + 1) + (k + 1) = 1

Să presupunem că există informații a priori:

X o = o P o = o N = V=

K(k) l (k) P (k)

1 N 0,5 0,5N

2 1 ,25 N 0,555 0,555 N

3 1 ,28 N 0,56 0,56N

4 1 ,28 N 0,56 0,56N

X o = o P o = N = V a =

k(k) l (k) P (k)

o

1 1 N

2 1 ,5 N 0,6 0,6 N

3 1,3N 0,565 0,565 N

4 1 ,283 N 0,56 0,565 N

5 1 ,28 N 0,56 0,56 N

0 ,56 N

P (k) = P (k-1) = P - starea de staționare a filtrului

R= N /+ N = (a 2 P + V) N/a 2 P + N + V

(A 2 P + V) N = PN + P (a 2 P + V)

P 2 + N + V-a 2 N / A 2 P - VN / a 2 = O

P 2 + 3Np - 2N 2 = O

P = 0,56 N

    Câştig L nu depinde de observații și pot fi calculate în avans pentru întreaga procedură.

    Dependența de timp a matricelor A, B, CU nu face modificări fundamentale (când aceste matrici sunt pe deplin cunoscute)

    Filtrul Kalman implementează procesul de evaluare paralitică.

    Cu o distribuție parțială a variabilelor aleatoare în cazul staționar, filtrul considerat este optim, în sensul de polim. Pătrate, dacă sistemul nu este staționar, atunci filtrul este optim.

Estimarea simultană a parametrilor și a stării obiectului

Având în vedere problema evaluării stărilor, când se cunoaște doar structura matricei obiectului, adică se cunosc funcțiile care conțin matricele, iar valorile parametrilor care conțin funcțiile în sine nu sunt cunoscute. O abordare directă a soluționării unei astfel de probleme implică extinderea vectorului de stare din cauza unor parametri necunoscuți.

U (t) x 1 (t)

Y 1 (t)

Y 2 (t)

Este necesar să se evalueze starea Xși valoarea medie a interferenței P conform observaţiilor disponibile ale semnalelor la 1 și la 2 în care A necunoscut.

Să compunem un vector de stare extins, pe care îl vom defini:

X 1 (t) x 1 (t)

X (t) = a = x 2 (t)

N x 3 (t)

A = n = o(din moment ce nu sunt filtre de timp)

X 1 (t) / u (t) = 1 / a + s x 1 o (t) = -x 1 (t) x 2 (t) + u (t)

X 1 (t) = u (t) / a + s

X 1 (t) (a + s) = u (t)X 1 X 2 + sx 1 = u

Pentru vectorul de stare, scrieți ecuația constrângerii x (t)și u (t) imposibil.

X = A (x (t) + B (x (t), t) u (t)

-X 1 + x 2 (t) 1

A = o B = o

Luați în considerare un vector de observații

Y (t) = c (x (t), t) + v (t)

C (x (t), t) =

V (t) =

Lasă obiectul să fie descris

X = j (x, u, A, v, t)

Y = g (x, u,Cu,n, t)

X(X, tu,A, v, t)

[x/a] nu poate fi convertit în M- formă liniară, unde M nu depinde de Xși A.

Chiar și pentru un obiect liniar, sarcina este comună.

Estimarea parametrilor și stărilor în raport cu acest vector de parametri și stări. Toate abordările ar trebui să fie bazate pe model și iterative.

Luați în considerare pe baza semnalelor eșantionate:

X (k + 1) = t (x (k), u (k), a (k), v (k), k)

Y9k) = g (x (k), n (k),Cu(k), n (k), k)

Se folosește obiect neliniar nestaționar

(x (k), u (k), a (k), k) + G (k) V (k) g (x (k) u (k) c (k) k) + n (k)

(zgomotul obiectului este aditiv) (zgomotul de observare este aditiv)

A (k) x (k) + B (k) u (k) c (k) x (k) + D (k) u (k)

(obiect liniar) variabile de stare liniar-relative observabile

Ax (k) + Bu (k) cx (k) + Du (k)

(obiect staționar) constanta matricei de observație)

(k) = o

În această formă, sarcina se numește două puncte.

Identificarea obiectelor neliniare

Tipul de neliniaritate Hammerstein.

Acest model se bazează pe presupunerea că neliniaritatea și dinamica pot fi separate. Poate fi reprezentat sub forma unor combinații succesive a 2 verigi: neliniar inerțial și dinamic liniar.

U (t) y (t)

Y (t) = d

Într-un semnal unidimensional trebuie identificate 2 funcții. Aceste funcții sunt reprezentate ca o descompunere în termenii unor funcții specificate de sistem.

(u) =aj j (u); w (t) =b i w i (t)

j = 1 i = 1

Să introducem următoarea notație:

Y ij (t) = i () j }

Top articole similare