11.3 Rezolvarea ecuațiilor diferențiale

Puteți utiliza G Math pentru a rezolva ecuații diferențiale obișnuite, fie parțiale, liniare sau neliniare, și fie ecuații de prim ordin sau superior. G Math are șapte VI-uri pentru rezolvarea diferitelor tipuri de ecuații diferențiale. Aceste VI-uri sunt enumerate mai jos, clasificate în funcție de ordinul ecuației diferențiale pe care o pot rezolva.

Notă: Ordinul ecuației diferențiale este ordinul celei mai înalte derivate din ecuația diferențială.

Primele cinci VI-uri pot rezolva un set (sau mai multe) de ecuații diferențiale de ordinul întâi. Următoarele două VI-uri sunt pentru rezolvarea ecuațiilor diferențiale de ordin superior. Rețineți că puteți converti o ecuație diferențială de ordin mai mare într-un set de ecuații diferențiale de ordinul întâi (ulterior în această lecție, veți vedea un exemplu despre cum să faceți acest lucru).

VI-uri pentru rezolvarea unui set (sau mai multe) de ecuații diferențiale de ordinul întâi:

ODE Cash Karp 5th order pentru rezolvarea ecuațiilor diferențiale folosind metoda Cash Karp. ODE = Ordinary Differential Equations

ODE Euler Method pentru soluționarea ecuațiilor diferențiale cu ajutorul metodei Euler.

ODE Runge Kutta 4th order pentru rezolvarea ecuațiilor diferențiale folosind metoda Runge Kutta.

ODE Linear System Numeric pentru soluția numerică a unui sistem liniar de ecuații diferențiale.

ODE Linear System Symbolic pentru soluția simbolică a unui sistem liniar de ecuații diferențiale.

Dintre acestea, primele trei sunt pentru soluționarea ecuațiilor diferențiale neomogene (partea dreaptă ≠ 0), în timp ce ultimele două sunt pentru ecuații diferențiale omogene (partea dreaptă = 0).

VI-uri pentru rezolvarea ecuațiilor diferențiale de ordin superior:

ODE Linear nth order Numeric pentru soluția numerică a unui sistem liniar de ecuații diferențiale de ordinul al n-lea.

ODE Linear nth order Symbolic pentru soluția simbolică a unui sistem liniar de ecuații diferențiale de ordinul al n-lea.

Ambele VI-uri sunt destinate rezolvării ecuațiilor diferențiale omogene.

Rezolvarea ecuațiilor diferențiale neomogene

Din discuția anterioară, vedeți că există trei VI-uri disponibile pentru rezolvarea ecuațiilor diferențiale neomogene. Ele sunt

ODE Cash Karp 5th order VI
• ODE Euler Method VI
• ODE Runge Kutta 4th order IV

Fiecare VI folosește o metodă diferită pentru soluționarea ecuațiilor diferențiale. Fiecare metodă folosește un parametru cunoscut ca dimensiunea pasului (notată cu h) care determină distanța dintre punctele la care soluția este evaluată. Această dimensiune de pas este o constantă pentru ultimele două VI-uri (care utilizează metodele Euler și Runge-Kutta), în timp ce este variabilă (se adaptează automat la soluție) pentru primul VI (care utilizează metoda Cash Karp). Metoda Euler este cea mai simplă metodă, dar metoda Runge-Kutta oferă o soluție mai exactă.

Se pune întrebarea despre care dintre aceste trei VI-uri ar trebui să alegeți pentru aplicația dvs. Orientările generale sunt:

• Selectați ODE Euler Method VI pentru ODE foarte simple.

• Pentru toate celelalte cazuri, alegeți ODE Runge-Kutta 4th Order VI sau ODE Cash Karp 5th Order VI.

- Dacă aveți nevoie de puncte echidistante (adică h constantă - de exemplu, pentru aplicații de control robot), alegeți ODE Runge-Kutta 4th Order VI.

- Dacă sunteți interesat de o soluție globală și un calcul rapid, alegeți ODE Cash Karp 5th Order VI.

O clasă generală de ecuații diferențiale de ordinul doi

Ca exemplu, o clasă generală de ecuații diferențiale de ordinul doi este descrisă de următoarea problemă cu valoare inițială

(1)

cu

unde y(0) este valoarea y la t = 0, dy(0)/dt este valoarea dy/dt la y = 0, iar g(t) este cunoscută ca funcția de forțare. y(0) și dy(0)/dt sunt cunoscute sub numele de condiții inițiale (IC-uri). Rețineți că, deoarece partea dreaptă a ecuației (1) nu este egală cu zero, este o ecuație diferențială neomogenă. În absența unei funcții de forțare (g(t) = 0), aceasta ar fi o ecuație diferențială omogenă.

Unele dintre aplicațiile practice ale acestei clase de ecuații diferențiale sunt destinate modelării:

1. Mișcarea unei mase pe un arc vibrator

unde m este masa, c este coeficientul de amortizare, k este constanta arcului, iar F(t) este forța aplicată.

2. Fluxul unui curent electric într-un circuit serie

unde R, L și C sunt rezistența, inductanța și, respectiv, capacitatea în circuit, Q este sarcina care curge în circuitul serie, iar E(t) este tensiunea aplicată.

3. Mișcarea unui pendul oscilant

unde m este masa pendulului, l este lungimea tijei, g este accelerația datorată gravitației și ϴ este unghiul dintre tijă și o linie verticală care trece prin punctul în care tija este fixată (adică poziția de echilibru).

Pentru a rezolva ecuațiile de tipul ec. (1) folosind ODE Euler Method VI, ODE Runge-Kutta 4th Order VI sau ODE Cash Karp 5th Order VI, trebuie mai întâi să le convertiți într-un set de ecuații diferențiale de prim ordin. Acest lucru este realizat prin efectuarea înlocuirii x1 = y și x2 = dy/dt. Înlocuind acestea în ecuația (1), obțineți

Astfel, acum ați convertit ecuația diferențială de ordinul doi dat de (1) în următorul set echivalent de ecuații diferențiale de prim ordin

(2),(3)

Veți folosi G Math pentru a rezolva acest set de ecuații în exercițiul următor.

Exercițiul 11-3

Obiectiv: Construirea unui VI general G Math pentru aplicații ale căror soluții sunt ecuații diferențiale de ordinul doi.

În acest exercițiu, veți construi un VI care va rezolva ecuația diferențială generală de ordinul doi de tipul dat în ecuația (1). Această ecuație este dată și mai jos:

cu

Veți vedea cum încorporarea VI-ului Substitute Variables vă permite să rezolvați problemele legate de o mare varietate de aplicații.

Deoarece doriți să rezolvați ecuația de mai sus, care este o ecuație neomogenă, vă confruntați cu trei alegeri de VI-uri:

ODE Cash Karp 5th Order
• ODE Euler Method
• ODE Runge Kutta 4th Order

Deoarece aceasta este o ecuație diferențială simplă de ordinul doi, puteți selecta de fapt oricare dintre aceste VI-uri. Alegeți ODE Euler Method VI, care are următoarele intrări și ieșiri:

X: un șir de șiruri ce listează variabilele dependente
time start: momentul în care se încep calculele
time end: momentul în care se încheie calculele
h: incrementul timpului (viteza pasului) la care trebuie efectuate calculele
X0: condițiile inițiale (I.C.). Există o relație unu-la-unu între componentele lui X și cele ale lui X0. Adică, prima valoare în X0 este I.C. a primei variabile listate în X, a doua valoare în X0 este I.C. a celei de-a doua variabile listate în X și așa mai departe.
time: un șir care definește care este variabila independentă, de obicei timp (t).
F(X,t): părțile din dreapta ale setului de ecuații diferențiale de ordinul întâi. Există o relație unu-la-unu între elementele lui F(X,t) și X. Acest lucru va fi explicat în detaliu mai târziu.

Notă: F(X,t) necesită intrarea sa ca un set de ecuații diferențiale de prim ordin. Prin urmare, pentru a rezolva ecuația (1) cu acest VI, trebuie să utilizați forma echivalentă dată de ecuațiile (2) și (3).

ticks: este timpul în milisecunde necesar pentru calcule
Times: momentele de timp la care se evaluează soluția ecuațiilor diferențiale. Pentru ODE Euler Method VI și ODE Runge Kutta 4th Order VI, aceste momente încep la time start cu incremente de h, până la time end.

XValues: conține soluția pentru fiecare dintre variabilele dependente ale ecuațiilor diferențiale la fiecare moment instant în Times. Prima coloană este soluția pentru prima variabilă din X, a doua coloană este soluția pentru a doua variabilă din X și așa mai departe.

error: conține un cod de eroare în cazul oricărei erori. Consultați anexa pentru lista erorilor și codurile de eroare corespunzătoare.

1. Construiți VI-ul al cărui panou frontal și diagrama blocului sunt prezentate mai jos.

Sugestie: O modalitate ușoară de a construi VI-ul este de a construi mai întâi diagrama bloc, de a face pop up pe terminalele VI-ului ODE Euler Method și de a selecta Create Control pentru intrări și Create Indicator pentru ieșiri. Controalele și indicatoarele apar automat în forma corectă pe panoul frontal. În cele din urmă, puteți adăuga graficul Waveform.

Panoul frontal

Controalele time start și time end conțin momentele de început și de încheiere.

Ecuațiile diferențiale sunt tastate în controlul F(x, t). Variabilele dependente sunt introduse în controlul X.

Variabila independentă este introdusă în controlul time.

X0 conține valorile inițiale (condițiile inițiale) ale variabilelor dependente.

h conține dimensiunea pasului.

Substitution Rules conține parametrii și substituția corespunzătoare.

Notă: Există o corespondență unu-la-unu între elementele lui X, X0 și F(x,t). Primul element din X0 corespunde valorii inițiale a primului element din X, al doilea element din X0 corespunde valorii inițiale a celui de-al doilea element din X și așa mai departe. De asemenea, primul element din F(x,t) corespunde derivatei primului element din X, al doilea element din F(x,t) corespunde derivatei celui de al doilea element din X și așa mai departe.

Diagrama bloc

VI-ul ODE Euler Method (G Math » Ordinary Differential Equations) rezolvă un set de ecuații diferențiale folosind metoda Euler.

VI-ul Substitute Variables (G Math »Parser) înlocuiește valorile specificate pentru parametrii corespunzători.

2. Introduceți partea dreaptă a ecuațiilor (2) și, respectiv, (3) în primele două elemente ale lui F(X,t). Astfel, veți introduce x2 și (g - b*x2 -c*x1)/a.

Ecuația (2) din al doilea element al lui F(X,t) conține variabilele a, b, c și g. Valorile acestor variabile se vor modifica în funcție de aplicație. Prin urmare, în diagrama bloc, utilizați Substitute Variables VI pentru a atribui valori diferite acestor variabile. Puteți introduce aceste valori în controlul Substitution Rules din panoul frontal.

3. X conține numele variabilelor dependente, care în acest caz sunt introduse ca x1 și x2.

4. time conține numele variabilei independente, care în acest caz este t.

X0 va conține condițiile inițiale pentru x1 și x2. Prima valoare introdusă în X0 va corespunde primei variabile introduse în X. A doua valoare introdusă în X0 va corespunde celei de-a doua variabile introduse în X. Valorile IC-urilor vor varia în funcție de aplicație.

5. Salvați VI-ul ca ODE_2nd.vi în biblioteca Lvspcex.llb.

Acum aveți un VI pregătit pentru rezolvarea oricărei ecuații diferențiale neomogene de ordinul doi. Nu mai rămâne decât să introduceți valorile corespunzătoare ale lui a, b, c și g în controlul Substitution Rules și condițiile inițiale ale variabilelor controlului X0. Apoi puteți specifica intervalul de timp (între time start și time end, în pași de h) pentru care doriți soluția și rulați VI-ul. Imediat apare răspunsul. Vei continua această procedură în exercițiul următor.

Sfârșitul exercițiului 11-3

Exercițiul 11-4

Obiectiv: Proiectarea sistemului de suspensie al unui automobil.

Veţi folosi acum VI-ul pe care l-aţi construit în exercițiul precedent pentru a rezolva o problemă tipică de modelare mecanică. În particular, veți proiecta sistemul de suspensie al unui automobil pentru a avea un răspuns adecvat atunci când automobilul trece peste o groapă, denivelare pentru limitare de viteză și așa mai departe.

Puteți modela sistemul de suspensie prin ecuația diferențială neomogenă dată în ecuația (1) (reprodusă mai jos),

cu

unde

y(t) este poziția automobilului. y(t) = 0 indică faptul că vehiculul este într-o poziție de echilibru sau stabilă.

dy/dt este variaţia de viteză a automobilului.

c este constanta de bobină a arcului folosit in sistemul de suspensie. Este proporțională cu deplasarea arcului din poziția sa de echilibru. O valoare mai mare a lui c indică o bobină de arc puternică și deci un sistem de suspensie dur. c este cunoscută sub numele de constanta arcului.

b este un coeficient de rezistență care este proporțional cu variaţia de viteză a automobilului. O valoare mai mare a lui b indică o rezistență mai puternică la mișcarea în sus și în jos a automobilului și, prin urmare, un sistem de suspensie mai lin. b este cunoscută sub numele de constantă de șoc.

a este greutatea vehiculului.

g(t) este forța externă care determină sistemul de suspensie al automobilului să se abată de la poziția de echilibru. Unele cauze posibile pot include o denivelare pentru limitare de viteză, o groapă sau o piatră în mijlocul drumului.

1. Folosind VI-ul dezvoltat în exercițiul precedent, introduceți următoarele valori în controalele de pe panoul frontal:

time start: 0
time end: 100
h: 0,.1
Substitution Rules
parameter name: a b c g
parameter content: 1000 125 1000 0
X0: 0 0

Condițiile inițiale de 0 specificate în X0 indică faptul că vehiculul este inițial într-o poziție de echilibru stabilă. g = 0, înseamnă că nu există o forță deranjantă.

2. Rulați VI-ul și notați formele de undă din graficul XY. Ce vedeţi? Explicați rezultatele.

3. Acum să presupunem că după ce a condus 10 secunde, șoferul automobilului a condus mai departe pe trotuar. Această acțiune poate fi modelată prin înlocuirea unei funcții treaptă pentru g. În controlul Substitution Rules, schimbați valoarea g de la 0 la 100*step(t-10) și executați VI-ul.

Observați că până la t = 10, valorile x și dx/dt sunt egale cu zero, deoarece nu s-a aplicat nicio forță (g) până atunci. La t = 10, se aplică o funcție treaptă de magnitudine 100 și se schimbă atât poziția cât și viteza de urcare și coborâre a automobilului. Totuşi, pe măsură ce trece timpul, oscilațiile scad și ambele valori tind să se stabilească la o poziție de echilibru. Puteți verifica acest lucru introducând 400 în controlul time end și rulând VI-ul.

4. O denivelare pentru limitare de viteză poate fi modelată aproximativ cu următoarea valoare pentru g: 10*sin(t)*(step(t) - step(t-3,142))

Constanta de înmulțire (în acest caz 10) controlează înălțimea denivelării, în timp ce termenul rămas modelează o „denivelare”.

Modul în care formula de mai sus corespunde cu o limitare de viteză este prezentat în figura de mai jos. Curba superioară este o diagramă a unui ciclu de sin(t). Curba din mijloc este o diagramă a treptei (t) - step(t-3,142), în timp ce curba inferioară este înmulțirea celor două curbe de mai sus rezultând în sin(t) * (step(t) - step((t-3,142) )).

Introduceți valoarea de mai sus a lui g și rulați VI-ul. Ce vedeți? Explicați rezultatele.

5. O groapă poate fi modelată într-o manieră similară, dar cu semnul opus: -10*sin(t)*(step(t) - step(t-3,142))

Introduceți valoarea de mai sus a lui g și rulați VI-ul. Ce modificare observați în comparație cu rezultatele pasului (4)?

6. Experimentați cu valoarea lui c astfel încât oscilațiile să se reducă la zero în mai puțin de 80 de secunde.

Sugestie: reduceți valoarea lui c la o valoare mai mică (de exemplu, 250)

7. Păstrând valoarea lui c la 1000, modificați valoarea lui b pentru ca oscilațiile să se reducă la zero în mai puțin de 80 de secunde.

Sugestie: creșteți valoarea b la o valoare mai mare (de exemplu, 175)

Astfel, vedeți că, prin selectarea corectă a lui b și/sau c, puteți proiecta sistemul de suspensie al unui automobil pentru a se comporta într-un anumit mod (adică pentru a avea un anumit răspuns). Selectarea lui b și/sau c ar putea corespunde unei anumite alegeri de materiale care vor fi utilizate la construirea sistemului de suspensie.

8. Închideți VI-ul când ați terminat.

Sfârșitul exercițiului 11-4

Exercițiul 11-5

Obiectiv: Vizualizarea unora dintre capabilitățile G Math Toolkit pentru funcții 1D.

1. Lansați 1D Explorer Example VI din folderul Labview/Exemple/Gmath/Math.llb. Acest VI arată o imagine de ansamblu bună a unora dintre funcționalitățile matematice ale G Math.

2. Formula implicită din controlul formula este sinc(c) + sin(2*c) + sin (3*c) + sin (2*c*c). Alegeți următoarele opțiuni ținând apăsat <Shift> și făcând clic pe butonul stânga al mouse-ului pe următoarele selecții

Modified Function Graph
• Integration Graph
• Roots
• Maxima

3. Rulați VI-ul și faceți clic pe butonul Start din partea dreaptă jos a panoului. Sunt afișate diagramele selecțiilor de mai sus. Rețineți că puteți introduce punctele de pornire și de final direct pe panoul frontal prin controalele start și end. De asemenea, rețineți că LabVIEW a generat graficele rapid deoarece LabVIEW rulează compilat. (Alte pachete matematice nu sunt compilate.)

4. Aliniați cursorul pe un maxim (galben) și vedeți valoarea acestuia.

5. Introduceți o nouă formulă sin(exp(x)) în controlul formula și faceți clic pe butonul Start.

6. Măriți un maxim cu ajutorul opțiunii de zoom a graficului.

7. Experimentați tastând alte formule în controlul formula.

8. Când terminați, puteți opri VI-ul făcând clic pe butonul STOP din partea dreaptă jos a panoului.

Sfârșitul exercițiului 11-5

Exercițiul 11-6 (opțional)

Obiectiv: Simularea problemei debitului din rezervor.

Acest exercițiu este o aplicație practică care combină introducerea formulelor pe panoul frontal, rezolvarea unei ecuații diferențiale obișnuite și vizualizarea unui proces pentru a simula procesul debitului de intrare și ieșire a rezervorului.

Considerați un rezervor cilindric cu secțiune transversală constantă A cm2. Apa este pompată în rezervor de sus cu o viteză constantă fi(t) cm3/s. Apa curge afară din partea de jos a rezervorului printr-o supapă de arie a(t) cm2. Rețineți că atât debitul de intrare cât și cel de ieșire sunt funcții de timp. Veți observa cum înălțimea apei, h(t), în rezervor variază în timp.

Soluția la această problemă este o ecuație diferențială de prim ordin, dată de

unde g este accelerația datorată gravitației, egală cu 980 cm/s2.

Debitul de intrare în rezervor, precum și aria supapei de ieșire, pot fi modelate ca ecuații pe panoul frontal. Selectați următoarele ecuații pentru aceste valori:

Input flow, fi(t): 340*square(t)
Area of valve, a(t), pentru ieșire: sin(t) + 1

1. Deschideți VI-ul Process Control Explorer Example VI, în folderul Labview/Exemple/Gmath/Misc.llb. Explicația panoului frontal este cea descrisă mai sus.

Notă: În acest exemplu, toate variabilele din ecuația diferențială pot fi controlate din panoul frontal.

2. Rulați VI-ul și selectați butonul Calculation. Acest buton va clipi în timp ce calculul este în curs.

3. După terminarea calculului, selectați butonul Simulation. Sistemul simulat este apoi trasat.

4. Modificați debitul de intrare și aria rezervorului în:

fi(t), debitul de intrare: 340*sin (t)
a(t), aria supapei: 0,01

5. Selectați butonul Calculation și apoi butonul Simulation. Observați că acum rezervorul se golește treptat.

6. Selectați butonul STOP.

Sfârșitul exercițiului 11-6

Exercițiul 11-7 (opțional)

Obiectiv: Exemplu de G Math Toolkit pentru vizualizarea datelor.

1. În folderul Labview/Exemple/Gmath/Graphics.llb, deschideți și executați VI-ul Representation Function Graph 2D VI.

Notă: Valoarea implicită a funcției este sin(3*x)*cos(5*y). Aceasta este o funcție de două variabile, x și y. Gama de valori care urmează să fie reprezentată este indicată pe controalele Start și End din panoul frontal. Valorile implicite sunt 0.0 și 1.0 atât pentru variabilele x cât și pentru y.

Când apare subVI-ul interactiv, puteți privi graficul din diferite puncte de vedere controlând valorile lui psi, phi și r cu ajutorul controalelor glisante. Psi și phi controlează unghiurile în raport cu planurile xz și respectiv xy, unde r controlează distanța de la origine. Modul în care aceste controale corespund punctelor de vedere diferite este prezentat în figura de mai jos:

2. Modificați valoarea psi de pe controlul glisant. Notați ce se întâmplă.

3. Modificați valoarea phi de pe controlul glisant. Notați ce se întâmplă.

4. Pentru a reveni la VI-ul principal, selectați butonul stop de pe panoul frontal.

5. Când ați terminat, închideți VI-ul.

Sfârșitul exercițiului 11-7

Rezumat

În această lecție, ați văzut componentele de bază ale G Math Toolkit și cum să îl utilizați pentru rezolvarea problemelor în inginerie, matematică și educație. În particular, ați creat un generator simplu de formă de undă arbitrară folosind VI-urile din biblioteca parser și ați proiectat, de asemenea, sistemul de suspensie al unui automobil, utilizând VI-uri de ecuație diferențială. În cele din urmă, ați experimentat cu alte VI-uri care au arătat unele dintre capabilitățile mai avansate ale G Math.