7.1 Aproximarea curbei

In domeniul digital, un set de date poate fi reprezentat de două secvențe de intrare, valorile Y și valorile X. Un eșantion sau un punct din setul de date poate fi scris ca (x[i], y[i]) unde x[i] este al i-lea element al secvenței valorilor X și y[i] este al i-lea element al secvenței valorilor Y. Fiecare y[i] este legat de x[i] corespunzător. Vă interesează găsirea relației dintre y[i] și x[i] în domeniul digital și exprimarea ei sub forma unei ecuații în domeniul analogic.

Aproximarea curbei acționează ca o punte între lumea digitală și cea analogică. Folosind aproximarea curbei, datele digitale pot fi reprezentate cu un model continuu având un anumit set de parametri. Ideea de bază este extragerea unui set de parametri sau coeficienți ai curbei din setul de date pentru a obține o descriere funcțională a setului de date. Această descriere funcțională constă în setul de parametri a0, a1, ..., ak care se potrivește cel mai bine modelului experimental din care s-au obținut eșantioanele de date x[i] și y[i]. Odată ce obțineți modelul funcțional, îl puteți utiliza pentru estimarea punctelor de date lipsă, interpolarea datelor sau extrapolarea datelor.

Notă: Rețineți că y[i] este o funcție atât de parametrii ak, cât și de datele x[i]. Următoarea discuție se referă frecvent la termenii "liniar" și "neliniar". Acești termeni se referă la relația dintre y și a, și nu între y și x.

Biblioteca de analiză oferă algoritmi de aproximare a curbei liniare și neliniară. Diferite tipuri de aproximare a curbei în LabVIEW sunt prezentate mai jos:

Linear Fit - aproximează datele experimentale cu o linie dreaptă de forma y = mx + c

y[i] = ao + a1*x[i]

Exponential Fit - aproximează datele cu o curbă exponențială de forma y = a exp (bx)

y[i] = ao*exp (a1*x[i])

General Polinomial Fit - aproximează datele cu o funcție polinomială de forma y = a + bx + cx2 +. . .

y[i] = ao + a1*x[i] + a2*x[i]2 ...

dar cu algoritmi selectabili pentru o mai mare precizie și acuratețe.

General Linear Fit - aproximează datele cu y[i] = ao + a1*f1(x[i]) + a2*f2(x[i])+ ...

unde y[i] este o combinație liniară a parametrilor ao, a1, a2 ... Aproximarea liniară generală oferă de asemenea algoritmi selectabili pentru o mai bună precizie și acuratețe. De exemplu, y = ao + a1*sin(x) este o aproximare liniară deoarece y are o relație liniară cu parametrii ao și a1.

Aproximările polinomiale sunt întotdeauna liniare, din același motiv. Însă, algoritmi speciali pot fi proiectați pentru aproximare polinomială, pentru a accelera procesarea aproximării și pentru a îmbunătăți acuratețea.

Nonlinear Levenberg-Marquardt Fit - aproximează datele cu y[i] = f(x[i], ao, a1, a2 ...)

unde ao, a1, a2 ... sunt parametri. Această metodă este cea mai generală metodă și nu cere ca y să aibă o relație liniară cu ao, a1, a2 ... Se poate folosi pentru a aproxima curbe liniare sau neliniare, dar este aproape întotdeauna folosită pentru aproximarea unei curbe neliniare, deoarece metoda generală de aproximare liniară este mai potrivită pentru aproximarea curbelor liniare. Metoda Levenberg- Marquardt nu garantează întotdeauna un rezultat corect, deci este absolut necesar să verificăm rezultatele.

Eroarea medie pătratică

Algoritmul utilizat pentru a potrivi o curbă cu un anumit set de date este cunoscut sub numele de Metoda celor mai mici pătrate. Fie setul de date observat notat cu y(x), iar f(x, a) să fie descrierea funcțională a setului de date unde a este setul de coeficienți de curbă care descrie cel mai bine curba. Eroarea e(a) între valorile observate și descrierea sa funcțională este definită ca

e(a) = [f (x,a) - y(x)]

De exemplu, fie a vectorul a = {ao, a1}. Descrierea funcțională a unei linii este

f(x, a) = ao + a1x.

Algoritmul celor mai mici pătrate estimează valorile pentru a din valorile y[i] și x[i]. După ce aveți valorile pentru a, puteți obține o estimare a setului de date observat pentru orice valoare a lui x folosind descrierea funcțională f(x,a). VI-urile de aproximare a curbei stabilește automat și rezolvă ecuațiile necesare și generează setul de coeficienți care descriu cel mai bine setul de date. Astfel, vă puteți concentra pe descrierea funcțională a datelor și nu vă faceți griji cu privire la metodele utilizate de rezolvarea pentru a.

Pentru fiecare dintre punctele de date observate x[i], diferențele dintre valoarea polinomială f(x[i],a) și datele originale y(x[i]) sunt numite reziduuri și sunt date de

ei(a) = fi(x[i],a) - yi(x[i])

Eroarea medie pătratică (MSE) este o măsură relativă a acestor reziduuri între valorile curbei așteptate calculate de descrierea funcțională f(x[i],a) și valorile reale observate y[i] și este dată de

unde f este secvența reprezentând valorile aproximate, y este secvența reprezentând valorile observate și N este numărul de puncte de eșantioane observate. Cu cât MSE este mai mică, cu atât este mai bună aproximarea între descrierea funcțională și cea observată y(x).

În general, pentru fiecare tip predefinit de potrivire a curbei, există două tipuri de VI-uri, dacă nu se specifică altfel. Un tip generează numai coeficienții. Celălalt tip generează coeficienții, curba potrivită sau așteptată și MSE.

Aplicații ale aproximării curbelor

Aplicațiile practice ale potrivirii curbelor sunt numeroase. Unele dintre ele sunt enumerate mai jos.

• Eliminarea zgomotului de măsurare.

• Completarea punctelor de date lipsă (de ex., dacă unele măsurători au fost pierdute sau înregistrate incorect).

• Interpolarea (estimarea datelor între punctele de date) (de ex., dacă timpul dintre măsurători nu este suficient de mic).

• Extrapolarea (estimarea datelor dincolo de punctele de date) (de ex., dacă căutați valori de date înainte sau după măsurători).

• Diferențierea datelor digitale. (De exemplu, dacă trebuie să găsiți derivata punctelor de date. Datele discrete pot fi modelate de un polinom și ecuația polinomului rezultat poate fi diferențiată.)

• Integrarea datelor digitale (de exemplu, pentru a găsi aria sub o curbă atunci când aveți doar punctele discrete ale curbei).

• Obținerea traiectoriei unui obiect pe baza măsurărilor discrete ale vitezei sale (prima derivată) sau accelerației (a doua derivată).

Exercițiul 7-1

OBIECTIV: Realizarea aproximării cu o curbă liniară a datelor experimentale.

Panoul frontal

1. Deschideți Linear Curve Fit VI din biblioteca Lvspcex.llb.

Acest exemplu presupune că ați colectat 10 perechi de date experimentale t și y și credeți că există o relație liniară între fiecare pereche.

2. Pe panoul frontal, controlul input data din stânga arată valorile punctelor de date t[i] și y[i]. După calculul ecuației pentru potrivirea liniară, valorile calculate ale y[i] pentru valorile măsurate ale lui t[i] sunt afișate pe indicatorul fitted data din dreapta. VI-ul oferă, de asemenea, valori ale parametrilor ao și a1 (indicatorii a și b de pe panoul frontal) și MSE rezultată.

3. Treceți la diagrama bloc.

4. Examinați diagrama bloc.

Linear Fit VI (Analysis » Curve Fitting subpalette). În acest exercițiu, acest VI aproximează datele la o linie și găsește coeficienții a și b astfel încât y[i] = a + b*t[i], precum și eroarea medie pătratică între date și potrivirea liniară.

5. Datele de intrare sunt într-o matrice bidimensională, care este un format comun atunci când datele sunt colectate de la hardware-ul DAQ. Utilizați Index Array VI pentru a obține două matrice unidimensionale, y[i] și t[i].

6. MSE este eroarea medie pătratică. O eroare mai mică indică o potrivire mai bună.

7. Rulați VI-ul. Graficul ar trebui să afișeze datele originale, precum și aproximarea liniară.

8. Modificați valorile lui y[i] în controlul input data. Observați traseele corespunzătoare și efectul asupra MSE și pantei atunci când există puncte care nu se potrivesc bine.

9. Când terminați, opriți VI-ul făcând clic pe butonul STOP.

10. Închideți VI-ul. Nu salvați nicio modificare.

Sfârșitul exercițiului 7-1

Exercițiul 7-2

OBIECTIV: Realizarea aproximării cu o curbă polinomială a datelor experimentale.

Panoul frontal

1. Deschideți Polynomial Fit VI din biblioteca Lvspcex.llb. Acest exemplu presupune că datele de intrare experimentale au o relație polinomială unde y[i] = ao + a1*t[i] + a2*t[i]2 ...

2. Atunci când ordinul polinomial este 1, există doi coeficienți (ao și a1) și rezultatul este o potrivire liniară ca în exercițiul 7-1. Dar, atunci când ordinul este 2, este o aproximare polinomială de ordinul doi cu trei coeficienți.

Coeficienții polinomiali sunt stocați într-o matrice a[i]. Puteți utiliza controlul polynomial order pentru a alege ordinul polinomului.

3. Treceți la diagrama bloc.

4. Examinați diagrama bloc.

General Polynomial Fit VI (Analysis » Curve Fitting subpalette). În acest exercițiu, acest VI aproximează datele cu o curbă polinomială de ordinul doi și generează datele aproximate, coeficienții și eroarea medie pătratică dintre date și aproximarea polinomială.

5. Folosiți aproximarea polinomială pentru a obține coeficienții de aproximare ao, a1, a2, etc. În general, doriți să utilizați ordinul cel mai scăzut posibil pentru aproximare polinomială.

6. Rulați VI-ul. În grafic trebuie să apară atât datele originale, cât și cele aproximate.

7. Modificați valorile lui y[i] în controlul input data și ordinul polinomului în controlul polynomial order și observați modificările în trasee și MSE.

8. Când ați terminat, opriți VI-ul făcând clic pe butonul STOP.

9. Închideți VI-ul. Nu salvați nicio modificare.

Sfârșitul exercițiului 7-2

Exercițiul 7-3

OBIECTIV: Utilizarea și compararea VI-urilor Linear, Exponențial and Polynomial Curve Fit pentru a obține setul de coeficienți cu cele mai mici pătrate care reprezintă cel mai bine un set de puncte de date.

1. Deschideți Regressions Demo VI din biblioteca Lvspcex.llb.

Panoul frontal și schema bloc sunt deja construite.

Panoul frontal

Acest VI generează eșantioane de date "zgomotoase" care sunt aproximativ liniare, exponențiale sau polinomiale. Apoi utilizează VI-ul corespunzător aproximării curbei de analiză pentru a determina parametrii curbei care se potrivesc cel mai bine acestor puncte de date. (În acest stadiu, nu trebuie să vă faceți griji cu privire la modul în care sunt generate eșantioanele de date zgomotoase.) Puteți controla amplitudinea zgomotului cu Noise Level de pe panoul frontal.

Diagrama bloc

2. Selectați Linear din controlul Algorithm Selector și setați controlul Noise Level la aproximativ 0.1. Rulați VI-ul.

Rețineți răspândirea punctelor de date și a curbei aproximate (linia dreaptă).

3. Experimentați cu diferite valori în Order și Noise Level. Ce observați? Cum se schimbă MSE?

4. Schimbați Algorithm Selector la Exponential și executați VI-ul.

Experimentați cu diferite valori în Order și Noise Level. Ce observați?

5. Schimbați Algorithm Selector la Polynomial și executați VI-ul.

Experimentați cu diferite valori în Order și Noise Level. Ce observați?

6. În special, cu Algorithm Selector la Polynomial, modificați Order la 0 și executați VI-ul. Apoi schimbați-l la 1 și executați VI-ul. Explicați observațiile.

7. În funcție de observațiile din etapele 2, 3, 4 și 5, pentru care dintre algoritmi (Linear, Exponențial, Polinomial) este controlul Order cel mai eficient? De ce?

8. Închideți VI-ul. Nu salvați nicio modificare.

Sfârșitul exercițiului 7-3

7.2 General Least Squares Linear Fit VI