Sunteți pe pagina 1din 6

Laborator 11 – Deplasarea unui obiect pe o traiectorie

parabolică

Enunțul problemei
Să se realizeze un Instrument Virtual (VI) care să simuleze deplasarea în
timp a unui corp mobil cu raza de cinci pixeli, aruncat oblic cu viteza v0, sub un
unghi alfa cu orizontala. Instrumentul virtual va reprezenta și traiectoria corpului
mobil într-un element de tipul 2D Picture.
La apăsarea unui element de control Boolean, instrumentul virtual va scrie
coordonatele punctelor traiectoriei descrise de corpul mobil într-un fișier text,
salvat în același folder cu instrumentul virtual curent.

Considerații teoretice
Un obiect aruncat de pe o suprafață orizontală cu viteza inițială v0 care
formează un unghi α cu orizontala, se deplasează după o traiectorie considerată
de Galileo ca fiind o parabolă (figura 11.1).

Fig. 11.1. Traiectorie parabolică (https://en.wikipedia.org/wiki/Projectile_motion)


Ecuațiile parametrice ale traiectoriei parabolice la aruncarea oblică a unui
corp sunt date de formulele 11.1 (se presupune că frecarea cu aerul este
neglijabilă):

𝒙𝒙 = 𝒗𝒗𝟎𝟎 × 𝒕𝒕 × 𝒄𝒄𝒄𝒄𝒄𝒄(∝) (11.1)

𝒈𝒈 × 𝒕𝒕𝟐𝟐
𝒚𝒚 = 𝒗𝒗𝟎𝟎 × 𝒕𝒕 × 𝒔𝒔𝒔𝒔𝒔𝒔(∝) −
𝟐𝟐

unde:
x , y reprezintă coordonatele mobilului;
v0 - modulul vitezei inițiale de aruncare;
α - unghiul format de v0 cu orizontala;
g - accelerația gravitațională.
Dacă se elimină t din cele două ecuații, se obține relația 11.2.
𝑥𝑥 2 ×𝑔𝑔
𝑦𝑦 = 𝑥𝑥 × 𝑡𝑡𝑡𝑡𝑡𝑡(∝) − (11.2)
2×𝑣𝑣02 ×𝑐𝑐𝑐𝑐𝑐𝑐 2 (∝)

Distanța maximă parcursă de mobil pe orizontală până la atingerea


suprafeței orizontale este dată de formula 11.3.

2𝑣𝑣02 ×𝑠𝑠𝑠𝑠𝑠𝑠(∝)𝑐𝑐𝑐𝑐𝑐𝑐(∝)
𝑥𝑥𝑚𝑚𝑚𝑚𝑚𝑚 = (11.3)
𝑔𝑔

Înălțimea maximă la care poate ajunge mobilul pe verticală, se calculează


cu formula 11.4.

𝑣𝑣02 ×𝑠𝑠𝑠𝑠𝑠𝑠2 (∝)


𝑦𝑦𝑚𝑚𝑚𝑚𝑚𝑚 = (11.4)
𝑔𝑔

Descrierea funcționării instrumentului virtual


Pe panoul frontal al instrumentului virtual, utilizatorul va avea la
dispoziție un element de control numeric scalar, pentru a specifica viteza
inițială v0 și un element de control numeric de tip Dial, pentru a specifica
valoarea unghiului alfa.
La apăsarea unui element de control Boolean de tipul Push Button,
instrumentul virtual afișează imaginea reprezentând corpul mobil și traiectoria
sa în elementul indicator de tipul 2D Picture.
Elementul indicator de tipul 2D Picture se va dimensiona automat în
funcție de distanța maximă parcursă de mobil pe verticală și pe orizontală la
aruncarea cu viteza inițială v0 sub unghiul alfa.
Coordonatele punctelor traiectoriei descrise de corpul mobil vor fi scrise
într-un fișier text, salvat în același folder cu instrumentul virtual curent.

Instrumentul virtual va rula până la apăsarea butonului STOP.

Exemplu de panou
In figura 11.2 este prezentat panoul frontal al instrumentului virtual în
care au fost dispuse elementele de control și elementele indicatoare.

Fig. 11.2. Exemplu de panou


Indicații pentru proiectarea interfeței cu utilizatorul
Pe panoul frontal al unui nou instrument virtual se dispune un element
de control numeric scalar (click dreapta mouse în panoul frontal » Controls
palette » Modern » Numeric) și se denumește în eticheta „v0”. Tot din
meniul Numeric se adaugă în panoul frontal un element de tipul Dial care se
denumește în etichetă „alfa”. Se configurează elementul Dial astfel încât să
permită introducerea unor valorilor numerice pozitive, cuprinse în intervalul (0,
90).

Din meniul Boolean al paletei de controale, se dispune în panoul frontal


un element de tipul Stop Button și un element de tipul Push Button. Se
introduce în eticheta elementului de tipul Push Button textul „Start” și se
configurează elementul de control astfel încât acesta să își modifice valoarea
curentă numai când faceți clic și țineți apăsat butonul mouse-ului și revine la
valoarea anterioară când eliberați butonul mouse-ului. Din meniul propriu al
elementului se selectează opțiunea Mechanical Action » Switch Until
Released .

Pentru afișarea imaginii, se dispune în panoul frontal al instrumentului


virtual un element de indicator de tipul 2DPicture (click dreapta mouse în
panoul frontal » Controls palette » Modern » Graph » Controls »
2DPicture).

Indicații pentru realizarea diagramei instrumentului virtual


Realizarea algoritmului pentru reprezentarea imaginii corpului mobil și
traiectoria sa presupune parcurgerea următorilor pași:
- Se dispune în diagrama instrumentului virtual o buclă While
(disponibilă în paleta de funcții în meniul Programming, submeniul
Structures) astfel încât aceasta să includă în interiorul său toate
terminalele elementelor de control și indicatoare. Apoi se conectează
valoarea booleană de la terminalul elementului Stop Button la
terminalul de condiționare al buclei While.
- Pentru ca imaginea corpului mobil și traiectoria sa să fie trasate doar
atunci când utilizatorul apasă butonul Start, în interiorul buclei While
se introduce o structură Case, comandată la terminalul selector de
valoarea booleană de la terminalul elementului boolean Start .
- Simularea deplasări corpului mobil pe traiectoria sa în timp va fi
efectuată succesiv prin 100 de puncte. Pentru aceasta se vor calcula
valorile coordonatelor punctelor traiectoriei în interiorul unei structuri
For cu 100 de iterații. Calculele matematice se realizează în interiorul
unei structuri Formula Node conform formulelor 11.1-11.4. Unghiul
alfa se transformă din grade în radiani. Se definesc apoi intrările și
ieșire în structura Formula Node și se efectuează legăturile
corespunzătoare.
- Deoarece elementul indicator de tipul 2D Picture are axa Oy orientată
în jos, pentru ca simularea aruncării oblice să se realizeze în sus, se
schimbă semnul valorilor yi cu funcția Negate, disponibilă în paleta
de funcții, în meniul Numeric.
- Traiectoria corpului mobil este obținută prin desenarea a unor puncte
de culoare roșie, de coordonate (xi, yi) transmise succesiv, de la o
iterație la alta a unei structuri For, prin intermediul unui registru de
transfer (click dreapta pe laturile verticale ale structurii For și din
meniul propriu se selectează opțiunea Add Shift Register). Se
inițializează registrul de transfer cu o figură vidă obținută cu funcția
Empty Picture.
Punctele reprezentând traiectoria corpului mobil se obțin cu funcția
Draw Point disponibilă în diagramă » paleta de funcții »
Programming » Graphics & Sound » Picture Functions – Draw
Point. Se conectează imaginea de la terminalul de intrare al registrului
de transfer la intrarea picture a funcție Draw Point. Se conectează
structura de clustere reprezentând coordonatele (xi, yi) obținută la
ieșirea unei funcții Bundle la intrarea point (x,y) a funcție Draw
Point.
Se conectează o constantă Color Box de culoare roșie la intrarea color
a funcție Draw Point.
Pentru a specifica grosimea și tipul de linie cu care va fi trasată
imaginea traiectoriei corpului mobil se conectează o structura cluster
formată din valoarea numerică trei și o constată Solid la intrarea pen a
funcție Draw Point.

Simularea deplasării corpul mobil este reprezentată de un cerc cu raza de


5 și centrul în punctele de coordonate (xi, yi). În diagrama instrumentului virtual
se adaugă o funcția Draw Circle by Radius disponibilă în diagramă » paleta de
funcții » Programming » Graphics & Sound » Picture Functions.
Imaginea obținută la ieșirea new picture a funcției Draw Point se
conectează la intrarea picture a funcției Draw Circle by Radius.
Datele obținute la terminalul output cluster a funcție Bundle ,
reprezentând coordonatele centrului cercului, se conectează la intrarea
pixel center a funcție Draw Circle by Radius (figura 10.8) . Pentru
ca cercul să fie desenat plin cu culoarea albastră, la intrarea fill?(F) se
conectează o constantă booleană True, iar la intrarea color(black) se
conectează o constată Color Box, de culoare albastră. Alegerea culorii
se realizează prin apăsarea butonului mouse în interiorul constantei
Color Box și apoi din paleta de culori disponibilă se selectează
culoarea dorită. Imaginea obținută la terminalul new picture a funcției
Draw Circle by Radius se conectează la terminalul de intrare al
elementului indicator 2D Picture.
Dimensionarea zonei de reprezentarea a imaginii în elementul
indicator 2D Picture se realizează prin intermediul unui nod de
proprietăți cu poprietatea Draw Area Size (click dreapta mouse pe
elementul 2D Picture- Create – Property Node – Draw Area Size).
Pentru ca nodul de proprietăți să primească valori se selectează din
meniul propriu al acestuia opțiunea Change To Write. Se conectează
apoi la terminalul de intrare al nodului de proprietăți o structură cluster
obținută cu o funcție Bundle din valorile xmax și ymax.

Pentru scrierea coordonatelor xi, yi într-un fisier text se specifică calea fișierului
text în care urmează să se realizeze scrierea. Calea se obține plecând de la
constanta Current VI's Path, extrăgând din valoarea acesteia calea fără numele
programului (cu funcția Strip Path) și adăugând apoi, cu funcția Build Path,
numele dorit pentru fișier.
Pentru a putea fi scrise datele în fișier (cu ajutorul funcției Write to Text File
Function), se construiește cu funcția Build Array șirul format din textul Xi și
Yi. De asemenea, se construiește matricea formată din valorile numerice ale
coordonatelor xi, yi, matricea se va transpune cu funcția Transpose 2D Array,
iar apoi se transformă în date de tip string cu funcția Number To Fractional
String
Se construiește matricea formata din răndul xi,yi și rândurile cu valorile
numerice cu funcția Build Array, apoi Array-ul se transforma, utilizand functia
Array To Spreadsheet String, într-un text cu delimitatori Tab.
La intrarea format string a funcției Array To Spreadsheet String se
conectează o constanta de tip string cu valoarea %s.
Textul cu delimtatori Tab se conectează la intrarea text a funcției Write to Text
File Function.
Se conectează terminalul butonului STOP la terminalul condiționator al buclei
While.

S-ar putea să vă placă și