Sunteți pe pagina 1din 3

Modelare şi Simulare

Proiect 2023 – Modelul 5 şi cerinţele asociate


Data ultimei actualizări: 5 decembrie 2023

1 Descrierea modelului
 ⊤
Fie vectorul de poziţie r(t) = x(t) y(t) z(t) . Atunci mişcarea unui satelit care orbitează Pămân-
tul poate fi aproximată cu soluţia sistemul de ecuaţii diferenţiale
 
x − 5xz 2
 ∥r∥2     
 2 
GM⊕ r 3 
R⊕  y − 5yz 
2 2  x ẏ
r̈(t) = − − J2 GM⊕   + ω⊕ y + 2ω⊕ −ẋ; r(t0 ) = r0 , ṙ(t0 ) = ṙ0 .
2   
∥r∥22 ∥r∥2 2 ∥r∥52 
 ∥r∥ 2 
2  0 0
 3z − 5z 3 
∥r∥22
| {z }
f (t,r(t),ṙ(t))

Pentru a evita necesitatea transformărilor explicite ale sistemului de referință, ecuația mișcării este
exprimată în sistemul de referință fixat de Pământ și aflat în rotație. În consecință, termenii centrifugi
și Coriolis sunt luați în considerare în accelerația modelată. Constantele au valorile din Tabelul 1.

Simbol Semnificaţie Valoare Unitate


G constanta gravitațională universală 6.674 · 10−11 N m2 kg −2
M⊕ masa Pământului 5.972 · 1024 kg
R⊕ raza Pământului 6371000 m
J2 coeficient gravitaţional 1.08262668 · 10−3 -
ω⊕ viteza unghiulară a Pământului 7.2921 · 10−5 rad · s−1

Tabela 1: Valorile constantelor


Referinţe
Teunissen, P.J. and Montenbruck, O. eds., 2017. Springer handbook of global navigation satellite
systems (Vol. 10, pp. 978-3). Cham, Switzerland: Springer International Publishing.

Modelul
Se consideră doi sateliţi care orbitează Pământul, cu vectorii de poziţie r1 (t) şi r2 (t). Modelul este
descris de
r̈1 (t) = f (t, r1 (t), ṙ1 (t))+u(t), (1a)
r̈2 (t) = f (t, r2 (t), ṙ2 (t)), (1b)
∥r1 (t) − r2 (t)∥2
ε̇(t) = (1c)
∥r2 (t)∥2
y(t) = ϵ(t) (1d)
Semnalul exogen u(t) = k · 10−3 · 1(t) reprezintă o acceleraţie perturbatoare cu o valoare constantă k,
aleasă de voi.
Condiţiile iniţiale sunt
 ⊤
r1 (t0 ) = 106 · −3.111566746661099 2.420733547442338 −5.626803092559423
 ⊤
ṙ1 (t0 ) = 103 · 4.953572247000772 −3.787243278806948 −4.362500902062312
 ⊤
r2 (t0 ) = 106 · −3.422723421327209 2.662806902186572 −6.189483401815366
 ⊤
ṙ2 (t0 ) = 103 · 5.448929471700850 −4.165967606687643 −4.798750992268544

1
2 Cerinţe
[0.5 p.] 1. Alegeţi o condiţie iniţială ε(t0 ).

[3 p.] 2. Implementaţi modelul (1) în Simulink folosind blocuri Integrator şi Matlab function. În
raport, includeţi schema Simulink a modelului.

[4 p.] 3. Rearanjaţi (1) sub forma unui sistem de ecuaţii diferenţiale de ordinul I. Descrieţi noul sistem
de ecuaţii în raport.

[4 p.] 4. Rezolvaţi sistemul rezultat în cerinţa 3 prin integrare numerică, implementând metoda Runge-
Kutta descrisă mai jos:
h
y(t + h) ≈ y(t) + (k1 + 2k2 + 2k3 + k4 )
6
k1 = f (t, y(t)),
Å ã
h hk1
k2 = f t + , y(t) + ,
2 2
Å ã
h hk2
k3 = f t + , y(t) + ,
2 2
k4 = f (t + h, y(t) + hk3 ) ,

considerând pasul de integrare h = 1 secundă şi perturbaţia u(t) = 0, pe orizontul de timp


t ∈ [0, 1800] secunde.

[0.5 p.] 5. Ilustraţi orbita sateliţilor (soluţiile r1 (t) şi r2 (t)), pentru aceleaşi condiţii iniţiale şi în acelaşi
grafic, folosind funcţia Matlab plot3. Comparaţi grafic rezultatele obţinute în Simulink şi prin
utilizarea metodei Runge-Kutta cu pas constant.

[1 p.] 6. Evaluarea erorii de integrare:

• Realizați simulări în Simulink și prin metoda numerică Runge-Kutta pentru a obține ieșirile
y Slx (t) și y RK (t), respectiv.
• În cazul în care vectorii de timp pentru cele două simulări au lungimi diferite, utilizați
funcția interp1 din Matlab pentru a interpola ieșirile a.î. să aibă același număr de elemente.
• Calculați eroarea de integrare ca norma-2 a diferenței dintre ieșirile obținute la fiecare
moment de timp, folosind formula: ∥y Slx (t) − y RK (t)∥2 .
• Ilustrați eroarea de integrare printr-un grafic și discutați rezultatele obținute.

[1.5 p.] 7. Ilustrarea dependenței ε⋆ (u⋆ ) la momentul final tf :

• Definiți ε⋆ și u⋆ ca fiind valorile variabilelor ε și u la momentul final tf , unde tf este


momentul de timp maxim considerat în simulare, adică tf = max t.
• Simulaţi pentru a obține valorile lui ε⋆ și u⋆ la diferite momente de timp până la tf .
• Ilustrați grafic dependența dintre ε⋆ și u⋆ folosind un plot în care axa X reprezintă u⋆ și
axa Y reprezintă ε⋆ .
• Discutați orice tendințe sau comportamente interesante observate în grafic.

[1 p.] 8. Determinarea polinomului de aproximare:

• Bazându-vă pe coordonatele obținute anterior pentru ε⋆ (u⋆ ), identificați coeficienții polino-


mului care se potrivește cel mai bine acestor coordonate, utilizând metoda celor mai mici
pătrate.
• Puteți folosi funcția polyfit din Matlab pentru a calcula coeficienții polinomului.
• Salvați coeficienții polinomului într-o variabilă și discutați calitatea aproximării obținute în
funcție de distribuția punctelor ε⋆ (u⋆ ).

2
[1.5 p.] 9. Incertitudine multiplicativă:

• Considerăm o incertitudine multiplicativă a poziției inițiale r2 (t0 ) dată de relația


r̃2 (t0 ) = (1 + α) · r2 (t0 ), unde α ∼ N (0, 0.1) este un scalar.
• Efectuați 100 de simulări cu această incertitudine și ilustrați evoluția lui y(t) pe același
grafic.
• Analizați probabilitatea ca distanța relativă totală dintre sateliți ε(t) să depășească un
anumit prag ales de voi (de exemplu, 10 km), și discutați rezultatele.

[1.5 p.] 10. Incertitudine aditivă:

• Considerăm o incertitudine aditivă a poziției inițiale r2 (t0 ) dată de r̃2 (t0 ) = α + r2 (t0 ),
unde α ∈ R3 , iar fiecare componentă αi ∼ N (0, 5), i = 1 : 3.
• Efectuați 100 de simulări cu această incertitudine și ilustrați evoluția lui y(t) pe același
grafic.
• Analizați probabilitatea ca distanța relativă totală dintre sateliți ε(t) să depășească un
anumit prag ales de voi (de exemplu, 10 km), și discutați rezultatele.

[1.5 p.] 11. Analiza distribuției semnalului exogen și celei de-a “doua derivate discrete” a ieșirii:

• Presupunem că semnalul exogen u(t) are o distribuție normală, adică u(t) ∼ N (0, 1).
• Folosiți funcția diff din Matlab pentru a calcula a “doua derivată discretă” a ieșirii y(t).
Observaţie: funcția diff calculează “prima derivată discretă”.
• Ilustrați distribuția semnalului rezultat pe un grafic. Puteți utiliza comanda ylim([0
1000]) pentru a ajusta scara axei Y, dacă este necesar.
• Discutați ce observați referitor la distribuția semnalului rezultat comparativ cu distribuția
semnalului exogen.

Recomandări:

1. Etichetaţi corespunzător graficele:

• folosiţi comanda xlabel pentru a seta denumirea axei Ox şi specificaţi unitatea de măsură
(dacă există) – ex: xlabel('Timp (s)');
• folosiţi comanda ylabel pentru a seta denumirea axei Oy şi specificaţi unitatea de măsură
(dacă există) – ex: ylabel('Theta (rad)');
• folosiţi comanda title pentru a seta titlul figurii;
• adăugaţi legenda folosind comanda legend;

Lipsa etichetelor aduce o depunctare de 10% puncte din punctajul asociat cerinţei.

2. Delimitaţi cerinţele în scriptul Matlab cu %%Cerinţa x pentru a crea secţiuni care pot fi execu-
tate independent.

3. Adăugaţi în raport graficele şi fragmentele de cod esenţiale cerute în fiecare exerciţiu. Oferiţi
explicaţii scurte şi concrete acolo unde este necesar.

4. Salvaţi fişierele într-o arhivă care să respecte formatul: Nume_Prenume_Grupa_Proiect.zip.


Exemplu: Ionescu_Ion-Constantin_335AB_Proiect.zip

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