7.2 General Least Squares Linear Fit VI

Linear Fit VI calculează coeficienții ao și a1 care se potrivesc cel mai bine datelor experimentale (x[i] și y[i]) cu un model de linie dreaptă dat de y[i] = ao + a1*x[i].

Aici, y[i] este o combinație liniară a coeficienților ao și a1. Puteți extinde acest concept în continuare, astfel încât multiplicatorul pentru a1 să fie o funcție de x. De exemplu:

y[i] = ao + a1*sinus (ωx[i]) sau
y[i] = ao + a1*x[i]2 sau
y[i] = ao + a1*cos (ωx[i]2)

unde ω este frecvența unghiulară. În fiecare dintre aceste cazuri, y[i] este o combinație liniară a coeficienților ao și a1. Aceasta este ideea de bază din spatele VI-ului General LS Linear Fit, unde y[i] poate fi o combinație liniară a mai multor coeficienți, fiecare dintre ei putând fi înmulțiți cu o anumită funcție de x[i]. Prin urmare, îl puteți folosi pentru a calcula coeficienții modelelor funcționale care pot fi reprezentate cu combinații liniare ale coeficienților, cum ar fi

y = ao + a1 * sin (ωx) sau
y = ao + a1 * x2 + a2 * cos (ωx2)
y = ao + a1 * (3sin (ωx)) + a2 * x3 + a3 / x + ...

În fiecare caz, rețineți că y este o funcție liniară de coeficienți (deși poate fi o funcție neliniară de x).

Veți vedea acum cum să utilizați General LS Linear Fit VI pentru a găsi cea mai bună potrivire liniară unui set de puncte de date. Intrările și ieșirile VI-ului General LS Linear Fit sunt prezentate mai jos.

Datele pe care le colectați (x[i] și y[i]) trebuie să fie date intrărilor H și Y Values. Ieșirea Covariance este matricea covarianțelor dintre coeficienții ak, unde cij este covarianța dintre ai și aj și ckk este varianța lui ak. În această etapă, nu trebuie să fiți preocupați de intrările Standard Deviation, covariance selector și algorithm. Pentru acum, veți folosi valorile implicite. Pentru mai multe detalii despre aceste intrări, vă puteți referi la manualul LabVIEW Analysis VI.

Matricea H este cunoscută ca matricea de observare și va fi explicată în detaliu mai târziu. Y Values reprezintă setul de date observate y[i]. De exemplu, să presupunem că ați colectat eșantioane (Y Values) de la traductor și doriți să rezolvați pentru coeficienții modelului:

y = ao+a1sin(ωx)+a2cos(ωx)+a3x2

Veți vedea că multiplicatorul pentru fiecare aj (0 < j < 3) este o funcție diferită. De exemplu, ao este înmulțit cu 1, a1 este înmulțit cu sin(ωx), a2 este înmulțit cu cos(ωx) și așa mai departe. Pentru a construi H, setați fiecare coloană din H la funcțiile independente evaluate la fiecare valoare x, x[i]. Presupunând că există 100 de valori "x", H ar fi:

Dacă aveți N puncte de date și k coeficienți (ao, a1, .... ak-1) pentru care să rezolvați, H va fi o matrice N-by-k cu N linii și k coloane. Astfel, numărul de linii din H este egal cu numărul de elemente din Y Values, în timp ce numărul de coloane din H este egal cu numărul de coeficienți pentru care încercați să rezolvați.

În practică, H nu este disponibil și trebuie construit. Având în vedere că aveți N X Values independente și Y Values observate, următoarea diagramă bloc demonstrează cum se construiește H și se folosește General LS Linear Fit VI.

Exercițiul 7-4

OBIECTIV: Cum să configurați parametrii de intrare și să utilizați General LS Linear Fit VI.

Acest exercițiu demonstrează cum se utilizează VI-ul General LS Linear Fit pentru a obține setul de coeficienți cu cele mai mici pătrate a și valorile aproximate, precum și modul de configurare a parametrilor de intrare în VI. Scopul este de a găsi setul de coeficienți cu cele mai mici pătrate a care reprezintă cel mai bine setul de puncte de date (x[i], y[i]). De exemplu, să presupunem că aveți un proces fizic care generează date utilizând relația

unde

și noise este o valoare aleatoare. De asemenea, presupuneți că aveți o idee despre forma generală a relației dintre x și y, dar nu sunteți siguri de valorile coeficientului. Deci, ați putea crede că relația dintre x și y este de forma

unde

Ecuațiile (1) și (2) corespund, respectiv, procesului fizic real și aprecierii dvs. a acestui proces. Coeficienții pe care îi alegeți în estimarea dvs. pot fi apropiați de valorile reale sau pot fi departe de acestea. Obiectivul dvs. acum este de a determina cu acuratețe coeficienții a.

Construirea Matricei de Observare

Pentru a obține coeficienții a, trebuie să furnizați setul de puncte (x[i], y[i]) în matricele H și Y Values (în cazul în care matricea H este o matrice 2D) la General LS Linear Fit VI. Punctele x[i] și y[i] sunt valorile observate în experimentul dvs. O modalitate simplă de a construi matricea H este de a utiliza Formula Node așa cum se arată în următoarea diagramă bloc.

Puteți edita cu ușurință formula node pentru a modifica, adăuga sau șterge funcții.

În acest moment, aveți toate intrările necesare pentru a utiliza General LS Linear Fit VI pentru a rezolva pentru a. Pentru a obține ecuația (1) din ecuația (2), trebuie să se înmulțească fo(x) cu 0,0, f1(x) cu 2,0, f2(x) cu 1,0, f3(x) cu 4,0 și f4(x) cu 0,0. Astfel, privind la ecuațiile (1) și (2), rețineți că setul așteptat de coeficienți este

a = {0.0, 2.0, 1.0, 4.0, 0.0}.

Diagrama bloc de mai jos demonstrează modul de configurare a VI-ului General LS Linear Fit pentru a obține coeficienții și un nou set de y values.

Data Create subVI generează matricele X și Y. Puteți înlocui acest icon cu unul care colectează de fapt datele din experimentele dvs. Icon-ul etichetat H(X,i) generează matricea H 2D.

Ultima parte a diagramei bloc acoperă punctele de date originale și cele estimate și produce o înregistrare vizuală a General LS Linear Fit. Executarea General LS Linear Fit VI cu valorile lui X, Y și H generează următorul set de coeficienți.

Ecuația rezultată este deci

y = 0,0298(1) + 2,1670sin (x2) + 1,0301 (3cos (x)) + 3,9226 / (x + 1) + 0,00 (x4)

= 0,0298 + 2,1670sin (x2) + 1,0301(3cos (x )) + 3,9226 / (x + 1)

Următorul grafic afișează rezultatele.

error: dă codul de eroare în cazul unor erori. Dacă codul de eroare = 0, acesta indică nicio eroare. Pentru o listă de coduri de eroare, consultați anexa.

Coefficients: valorile calculate ale coeficienților (ao, a1, a2, a3 și a4) ale modelului.

Acum veți vedea VI-ul în care a fost implementat acest exemplu.

1. Deschideți General LS Fit Example VI din biblioteca Lvspcex.llb.

2. Examinați diagrama bloc și panoul frontal.

noise amplitude: (amplitudinea zgomotului) poate schimba amplitudinea zgomotului adăugat la punctele de date. Cu cât este mai mare această valoare, cu atât este mai mare răspândirea punctelor de date.

NumData: numărul de puncte de date pe care doriți să le generați.

algorithm: oferă o alegere de șase algoritmi diferiți pentru a obține setul de coeficienți și valorile aproximate. În acest exemplu particular, nu există diferențe semnificative între diferiți algoritmi. Puteți selecta algoritmi diferiți de pe panoul frontal pentru a vedea rezultatele. În unele cazuri, diferiți algoritmi pot avea diferențe semnificative, în funcție de setul de date observat.

MSE: dă eroarea medie pătrată. Cu cât MSE este mai mică, cu atât este mai bună aproximarea.

3. Rulați VI-ul cu valori progresive ale amplitudinii zgomotului. Ce se întâmplă cu datele observate reprezentate grafic? Cum rămâne cu MSE?

4. Pentru o valoare fixă ​​a amplitudinii zgomotului, executați VI-ul prin alegerea unor algoritmi diferiți. Credeți că un algoritm este mai bun decât celălalt? Care dintre ele vă oferă cea mai mică valoare MSE?

5. Când ați terminat, închideți VI. Nu salvați nicio modificare.

Sfârșitul exercițiului 7-4

Exercițiul 7-5

OBIECTIV: Anticiparea costurile de producție folosind General LS Linear Fit VI.

VI-urile pe care le-ați văzut până acum au fost folosite pentru a aproxima o curbă unei funcții de o singură variabilă. În acest exercițiu, veți folosi General LS Linear Fit VI pentru a aproxima o curbă unei funcții multivariabile. În particular, funcția va avea două variabile, X1 și X2. Totuși, puteți generaliza la funcții de trei sau mai multe variabile.

Să presupunem că sunteți managerul unei fabrici de panificație și doriți să estimați costul total (în dolari) al unei producții de biscuiți copți folosind cantitatea produsă, X1, și prețul unui kilogram de făină, X2. Pentru a păstra lucrurile simplu, următoarele cinci puncte de date formează acest tabel de date.

Doriți să estimați coeficienții față de ecuația:

Y = ao + a1X1 + a2X2.

Puteți utiliza General LS Linear Fit VI. Trebuie să aibă intrările H, matricea de observare și Y Values, un vector al valorilor LHS (Y) a ecuației de mai sus. Fiecare coloană din H este formată din datele observate pentru fiecare dintre variabilele independente asociate cu coeficienții ao, a1 și a2.

Rețineți că prima coloană este unu, deoarece coeficientul ao nu este asociat cu nici o variabilă independentă. Deci, H ar trebui să fie completată astfel:

În LabVIEW (sau BridgeVIEW), datele observate ar apărea în mod normal în trei tablouri (Y, X1 și X2). Următoarea diagramă bloc demonstrează modul de a construi H.

1. Deschideți Predicting Cost VI din biblioteca Lvspcex.llb. Valorile Y, X1, X2 au fost deja introduse în controalele corespunzătoare de pe panoul frontal.

2. Examinați diagrama bloc. Asigurați-vă că ați înțeles cum se construiește matricea H. Majoritatea restului diagramei bloc este folosită pentru a construi șirul care afișează ecuația modelului funcțional. Nu trebuie să vă faceți griji cu privire la restul diagramei, pentru moment.

3. Treceți pe panoul frontal și executați VI-ul. Verificați dacă matricea H a fost creată corect.

După rularea VI-ului Predicting Cost, se obțin următorii coeficienți.

iar ecuația rezultantă pentru costul total al producției de biscuiți este, prin urmare:

Y = -20,34 + 0,38X1 + 19,05X2

4. Experimentați cu valori diferite ale X2 (prețul făinii).

5. Când ați terminat, închideți VI-ul. Nu salvați nicio modificare.

Sfârșitul exercițiului 7-5

7.3 Nonlinear Levenberg-Marquardt Fit V