Sunteți pe pagina 1din 17

Limbaje de programare

inginereti
Tema 7
Matlab

Utilizarea Matlab n modelarea i


rezolvarea problemelor tehnice
Rezolvarea unei probleme complexe se face
n mai multe etape.
n principal etapele aferente rezolvrii unei
probleme sunt:
1. Definirea problemei
2. Crearea unui model matematic
3. Determinarea metodei de calcul
4. Implementarea
5. Testarea i validarea rezultatelor

1. Definirea problemei
n aceast etap se face recunoaterea
problemei profund, pn n cele mai
mici detalii.
Se determin ce informaii sau date
(numite generic date de intrare) sunt
disponibile;
Se determin ce cunotine i din ce
domeniu pot fi aplicate;
Se determin ce rspunsuri, informaii
(numite generic date de ieire) sunt
ateptate.

2. Crearea unui model matematic


n aceast etap
se determin: principiile, legile i
formulele care se pot aplica sau au
legtur cu problema
Se fac notaiile necesare pentru date i
variabile
Se construiete un model pur matematic
al problemei

3. Determinarea metodei de calcul


n aceast etap se face analiza numeric. n
esen se determin dac modelul
matematic se poate rezolva numeric.
Dac modelul poate fi rezolvat numeric, se
indic algoritmi cunoscui, sau se indic
pas cu pas algoritmul dac este propriu.

4. Implementarea
n aceast etap, se alege un limbaj de
programare adecvat i se construiete
un program bazat pe algoritmul creat n
etapa precedent.
Limbajul Matlab are avantajul c este adaptat
algoritmilor numerici, astfel nct
fiecare pas al algoritmului se transform
ntr-o comand Matlab.

5. Testarea i validarea rezultatelor


n aceast etap se testeaz programul cu aa
numitele date de test, se verific i
rezultatele intermediare, dac acestea
sunt cunoscute.
Se introduc datele reale i se obin rezultatele
problemei

Exemplul 1.
Un obiect este aruncat n aer, de la sol
cu viteza de 50 mile/or sub un unghi de 30
grade fa de orizontala de la nivelul solului.
Determinai timpul de zbor (n secunde)
i distana (n metrii) dintre punctul de
lansare i punctul unde obiectul atinge din
nou solul.

1. Definirea problemei
Limbajul natural, n care este definit problema,
poate fi puin imprecis, si deci trebuiesc
fcute cteva precizri:
- Prin expresia aruncat de la sol se nelege c
nlimea de la care este aruncat este 0.
Nu s-a precizat nimic despre proprietile
geometrice ale corpului (vom presupune c
acestea au efecte neglijabile, n realitate nu
sunt neglijabile-disc, ciocan, suli, etc..)
Proprietile
mediului
nu
au
fost
precizate(vom neglija efectul acestora, dei
vntul, sau nlimea la care se face aruncarea
pot influena rezultatul.

1. Definirea problemei (cont.)


- Nu sunt precizate interaciunile (vom presupune ca exist
interaciune gravitaional, vom mai presupune ca
aruncarea se face la suprafata Pmntului, nu s-a
precizat valoarea lui g, vom considera g=9.81m/s 2.
Ne punem ntrebarea dac, problema are sens,
datele iniiale fiind date n uniti de msur atipice
(poate un englez are msura valori vitezei iniiale)
Nu se precizeaz corespondena dintre unitile de
msur SI sau CGS (mila, Metru, etc..) Vom
presupune c 1 mila=1609,3m, 1 ora are 3600
secunde, 2pi radiani=360 grade
Datele de ieire sunt clare
Teoria de aplicat este parte de mecanica
cinematica n dou dimensiuni

2. Crearea unui model matematic


Pentru crearea unui model matematic avem
nevoie de urmtoarele notaii:
- v0 =50 mile/or viteza de lansare ;
- afa=30o unghiul de lansare;
- t timpul n secunde;
- g=9.81 m/s2 acceleraia gravitaional;
- (x(t), y(t)) coordonatele carteziene ale
unui punct de pe traiectorie.
Ideea de baz este descompunerea vitezei v n
componenta orizontal vx i n
componenta vertical vy

2. Crearea unui model matematic(cont)


Descompunnd micarea pe dou direcii, putem scrie

Fx 0
v x v0 cos const
F urcare mg v urcare v sin gt
0
y
y
F coborare mg v coborare gt
y
y

3.Determinarea metodei de calcul


Timpul de urcare este tu =v0sin/g i este
egal cu timpul de coborre.
Deci timpul de zbor este, t = 2v0sin/g
Distana parcurs pe direcia x, este dat de legea
micrii rectilinii i fr frecare

x(t )

t zbor

v (t )dt v t
x

0 zbor

cos

4. Implementarea
Evident vom utiliza programul MATLAB pentru implementare
i vom defini o funcie numit zbor:
function [distanta, durata]=zbor(viteza,unghi)
% funcia calculeaz distana i durata unui zbor prin aruncare
%
% Apelare [distanta,durata]=zbor(viteza,unghi)
%
% parametrii intrare
% viteza viteza de aruncare in mile/ora
% unghi unghiul de aruncare n grade
%
% parametrii iesire
% distanta dstanta dintre locul de aruncare si locul de cadere
in m
% durata - durata zborului in secunde s

4. Implementare(cont)
% variabile locale
% v - viteza de aruncare n m/s
% alfa unghiul de aruncare in radiani
% g acceleratia gravitationala
% t - vectorul discretizat al timpului
% x vectorul distantelor la momentele t
% y vectorul inaltimilor la momentele t
% ymax inaltimea maxima

4. Implementare(cont)
%
% facem transformarea de unitti a datelor
initiale
g=9.81; % acceleratia gravitationala in m/s2
v=viteza*1609.3/3600; % viteza de aruncare
in m/s
alfa=unghi*pi/180; % unghiul de aruncare in
radiani
% calculam rezultatele
durata=2*v*sin(alfa)/g;
distanta=v*durata*cos(alfa);

4. Implementare(cont)
%
% in plus calculam traiectoria i o desenam
t=0:0.1:durata;
x=v*t*cos(alfa);
y=v*t*sin(alfa)-g*t.^2/2;
plot(x,y,r)
title(Traiectoria de zbor)
xlabel(Distanta [m] )
ylabel (Inaltimea [m] )
disp(inaltimea maxima)
ymax=(v*sin(alfa))^2/2*g