Sunteți pe pagina 1din 8

FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .

APLICAȚII

3. FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION . APLICAȚII


3.1 Algoritmul de calcul

Pentru a se dezvolta aplicații de calcul în fișiere Matlab, cu și fără argumente de


intrare și ieșire, se propune utilizarea algoritmului de calcul utilizat pentru determinarea
reacțiunilor pentru o grindă simplu rezemată, cu reazemele situate pe capetele grinzii.
Un exemplu pentru o astfel de grindă este dat în figura 3.1. Aceasta este încărcată cu
cele trei tipuri de încărcări întâlnite în mod frecvent în practica inginerească, și anume: forță
concentrată notată cu F, cuplu de forțe cu momentul cuplului notat cu Mo și forță distribuită
de intensitate notată cu q.
Pentru fiecare din aceste încărcări, considerate separat, reprezentate în figurile din
tabelul 3.1, se pot calcula reacțiuni în reazemele situate la capetele grinzii. Relațiile de calcul,
scrise în coloana 2 a tabelului 3.1 sunt obținute pe baza ecuațiilor de echilibru scrise pentru
grinzile reprezentate în figurile respective, utilizând încărcarea (cu sensul pozitiv indicat în
figură), cotele notate în figură și sensul pozitiv pentru reacțiuni fiind considerat sensul de jos
in sus. Acesta este obiectivul primelor aplicații ce se cere să fie scrise în paragraful 3.2.
Pentru o grindă cu încărcare complexă se poate aplica principiul suprapunerii
efectelor și reacțiunile totale să se obțină prin însumarea reacțiunilor parțiale – notate cu un
indice suplimentar care depinde de tipul încărcării și implicit de relația de calcul utilizată.
Acestea pot fi calculate, pentru fiecare încărcare simplă, folosind câte un fișier funcție cu
argumente de intrare și ieșire, care poate fi apelat din fișierul principal, acesta conține datele
inițiale. Prin execuția instrucțiunilor din fișierul principal , la comanda Run, sunt furnizate în
fereastra de comenzi, ca rezultate, reacțiunile parțiale și reacțiunile totale. Acesta este
obiectivul aplicațiilor ce se cere a fi scrise în paragraful 3.3.
În cadrul aplicațiilor se vor introduce date inițiale cu valorile identificate, pe baza
notațiilor din figurile din tabel, în figura 3.4. Spre exemplu e este distanța de la capătul grinzii
la punctul unde incepe sa fie aplicată sarcina distribuită, iar h este distanța de la punctul
unde se încheie aplicarea sarcinii distribuite la capătul din dreapta al grinzii, din figură rezultă
e=0, h=2 m.
Pentru o grindă încărcată cu mai multe forțe concentrate reacțiunile totale se obțin,
tot pe baza principiului suprapunerii efectelor, prin însumarea reacțiunilor parțiale. Acestea
se pot obține folosind aceleași relații de calcul date pentru o singură forță, dar datele inițiale,
pentru mai multe forțe, valori și cote referitoare la punctele de aplicație, se pot scrie sub
forma unor vectori, elementele referitoare la forța Fi vor fi F(i), a(i) și b(i). Acesta este
obiectivul aplicației ce se cere a fi scrisă în paragraful 3.4.

P a g . | 19
FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .APLICAȚII

3.2.Fișiere function – fără argumente de intrare și ieșire

Se cere să se scrie 3 aplicații în Matlab de tip Fișiere function – fără argumente de


intrare și ieșire, pentru calculul reacțiunilor la cele trei bare date în tabelul 3.1. Notațiile și
relațiile de calcul sunt date, de asemenea, în tabelul 3.1. După scrierea aplicațiilor se vor
introduce datele inițiale din figura dată, luând în considerare, succesiv pentru fiecare
aplicație, doar una din sarcini: forța concentrată F, momentul Mo, sarcina distribuită q.
Aplicațiile independente care conțin relațiile de calcul din tabelul 3.1 se vor denumi:
ReactiuniF_1_NumePrenume;
ReactiuniM_1_NumePrenume;
Reactiuniq_1_NumePrenume.
3.3 Fișiere function – cu argumente de intrare și ieșire
Se cere să se creeze un fișier function ReactiuniFMq_NumePrenume prin care să se
poată determina reacțiunile din reazeme pentru o grindă simplu rezemată pe capete, cu
încărcare complexă formată din: forță concentrată, forță distribuită și moment, acționând
simultan. Se vor scrie mai întâi trei fișiere, cu argumente de intrare și ieșire, prin care să se
calculeze reacțiunile pentru fiecare încărcare simplă în parte:
function [V1F,V2F] = ReactiuniF_NumePrenume(a,b,l,F)
function [V1M,V2M] = ReactiuniM_NumePrenume(l,M)
function [V1q,V2q] = Reactiuniq_NumePrenume(l,e,g,h,q).
Notațiile pentru datele necesare și relațiile de calcul sunt date în tabelul 3.1.
Cele trei fișiere de mai sus se vor folosi ca subrutine în programul principal
function ReactiuniFqM_NumePrenume, fiind apelate cu o comandă de tipul:
[V1F,V2F] = ReactiuniF_NumePrenume(a,b,l,F).
Reacțiunile pentru încărcarea complexă se obțin prin însumarea reacțiunilor parțiale.
Se deschide fiecare fișier cu: New, Function și se salvează Save as Nume fișier , de
exemplu Save as ReactiuniF_NumePrenume.
3.4 Utilizarea operatorilor : ; .* ; ./
Se consideră o bară de lungime egală cu 10m încărcată cu 9 forțe concentrate cu valori
descrescătoare de la stînga la dreapta (90, 80,.....10), exprimate în kN, aplicate la distanțe
egale cu 1m (între forțe și față de capetele barei).
Folosind notațiile și relațiile de calcul date în tabelul 3.1 și operatorii indicați în titlul
aplicației, să se scrie o aplicație Matlab, denumită ReactiuniFi_NumePrenume pentru
calculul reacțiunilor totale corespunzătoare încărcării cu cele 9 forțe concentrate. (indicație:
help sum)

P a g . | 20
FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .APLICAȚII

Tabelul 3.1 Relaţiile de calcul şi datele de intrare


1 Grinda simplu rezemată încărcată cu forţa concentrată F

Reacțiuni
Fb Fa
V1  V2 
 

Fig.3.1

2. Grinda simplu rezemată încarcată cu un cuplu M o

Reacțiuni
Mo Mo
V1   V2 
 

Fig.3.2

3 Grinda simplu rezemată încrcată cu forţa distribuită uniform

Reacțiuni
q  g  (h  g / 2)
V1  ;

q  g  (e  g / 2)
V2 

Fig.3.3

Figura 3.4

P a g . | 21
FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .APLICAȚII

3.5 Aplicații.
1. Fișiere function fără argumente de intrare ieșire
Aceste aplicații funcționează independent, conțin datele inițiale utilizate în calcule și
prin comanda Save and run furnizează în fereastra de comenzi (Command Window)
rezultatele obținute prin calcul, pe baza relațiilor introduse în aplicație, pentru variabilele ce
trebuie determinate: V1F, V2F; V1M, V2M; V1q, V2q.
Aplicația 1. ReactiuniF_1_NumePrenume (ReactiuniF_1_SuciuFlavia)

function ReactiuniF_1_SuciuFlavia
%Reactiuni F varianta 1-fara argumente de intrare/iesire
%Date initiale
l=4000 %mm
a=2000 %mm
b=2000 %mm
F=10000 %N
%Se calculeaza reactiunile corespunzatoare sarcinii concentrate F
V1F=F*b/l
V2F=F*a/l

end

Aplicația 2. ReactiuniM_1_NumePrenume (ReactiuniM_1_SuciuFlavia)

function ReactiuniM_1_SuciuFlavia
%Reactiuni M
%Date initiale
l=4000 %mm
M=-8*10^6 %Nmm

%Se calculeaza reactiunile corespunz[toare momentului M


V1M=-M/l
V2M=M/l

end

Aplicația 3. Reactiuniq_1_NumePrenume (Reactiuniq_1_SuciuFlavia)


function Reactiuniq_1_SuciuFlavia
%Reactiuniq
%Date de intrare
l=4000 %mm
e=0 %mm
g=2000 %mm
h=2000 %mm
q=6 %kN/m=N/mm

%Se calculeaza reactiunile corespunzatoare sarcinii distribuite


V1q=q*g*(h+g/2)/l

V2q=q*g*(e+g/2)/l

end

P a g . | 22
FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .APLICAȚII

2.Fișiere function cu argumente de intrare ieșire


Aceste aplicații nu funcționează independent, se pot doar apela dintr-un program
principal. Dacă se dă comanda Save and run va furniza eroare in fereastra de comenzi
(Command Window).
Prima linie a aplicațiilor de acest tip arată de forma:

function [ output_args ] = Untitled( input_args ).

Datele de intrare indicate în paranteza ( input_args )din prima linie a aplicației sunt
introduse ca variabile în programul principal.
Variabilele care trebuie calculate sunt indicate în paranteza [ output_args ] din prima
linie a aplicației, iar aceasta conține relațiile de calcul necesare.
Denumirea fișierului se introduce în locul cuvîntului Untitled.

Aplicația 1. ReactiuniF_NumePrenume (ReactiuniF_SuciuFlavia)

function [ V1F, V2F ] = ReactiuniF_SuciuFlavia( a, b,l,F )

%Reactiuni F
%Se calculeaza reactiunile corespunz[toare sarcinii concentrate F
V1F=F*b/l
V2F=F*a/l

end

Aplicația 2. ReactiuniM_NumePrenume (ReactiuniM_SuciuFlavia)

function [ V1M, V2M ] = ReactiuniM_SuciuFlavia(l,M )


%Reactiuni M
%Se calculeaza reactiunile corespunz[toare momentului M
V1M=-M/l
V2M=M/l

end

Aplicația 3. Reactiuniq_NumePrenume (Reactiuniq_SuciuFlavia)

function [ V1q, V2q ] = Reactiuniq_SuciuFlavia( l,e,g,h,q )


%Reactiuniq
%Se calculeaza reactiunile corespunzatoare sarcinii distribuite
V1q=q*g*(h+g/2)/l

V2q=q*g*(e+g/2)/l

end

P a g . | 23
FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .APLICAȚII

Aplicația 4. ReactiuniFqM_NumePrenume (ReactiuniFMq_SuciuFlavia)

function ReactiuniFMq_SuciuFlavia

%Reactiuni qFM
%Se calculeaza reactiunile corespunzatoare sarcinilor F, M , q

%Date de intrare și unități de măsură (indicate după semnul %)

l=4000 %mm
a=2000 %mm
b=2000 %mm
e=0 %mm
g=2000 %mm
h=2000 %mm
F=10000 %N
M=-8*10^6 %Nmm - se atribuie semnul (–) momentului în funcție de sens
q=6 %kN/m=N/mm

%Reactiuni corespunzatore fortei F


[ V1F, V2F ] = ReactiuniF_SuciuFlavia( a, b,l,F )

%Reactiuni corespunzatore Momentului M


[ V1M, V2M ] = ReactiuniM_SuciuFlavia(l,M )

%Reactiuni corespunzatore distribuitei q


[ V1q, V2q ] = Reactiuniq_SuciuFlavia( l,e,g,h,q )

%Reactiuni corespunzatoare incarcarii totale


V1=V1F+V1M+V1q

V2=V2F+V2M+V2q

end

P a g . | 24
FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .APLICAȚII

Pentru a se rezolva problema propusă în paragraful 3.4 se utilizează introducerea


datelor inițiale sub forma unor vectori (șiruri de valori) pe baza cărora se obțin reacțiunile
cerute tot sub forma unor vectori, ale căror elemente reprezintă rezultatele parțiale pentru
elementele F(i) ale vectorului F. Aplicația utilizează operatorul ( .* ) care impune
înmulțirea elementelor de pe aceeași poziție din vectorii care apar ca variabile în relația de
calcul.

Aplicația 5 ReactiuniFi_Numeprenume (ReactiuniFi_SuciuFlavia)

function ReactiuniFi_SuciuFlavia
%Reactiuni Fi -fara argumente de intrare/iesire

%Date initiale

l=10 %m
a=[1:+1:9] %m
b=[9:-1:1] %m
F=[90:-10:10]%kN

%Se calculeaza reactiunile corespunzatoare sarcinilor concentrate F(i)


V1Fi=F.*b/l
V2Fi=F.*a/l

V1=sum(V1Fi)
V2=sum(V2Fi)
end

P a g . | 25
FIȘIERE MATLAB. RUTINE - FIȘIERE FUNCTION .APLICAȚII

3.6 Rezultate
(Se citesc în Command Window)
Prin rularea aplicației 4 se obțin în fereastra de comenzi reacțiunile parțiale și reacțiunile
totale (în N):

V1F = 5000
V2F = 5000

V1M = 2000
V2M = -2000

V1q = 9000
V2q = 3000

V1 = 16000
V2 = 6000

Prin rularea aplicației 5 se obțin în fereastra de comenzi reacțiunile parțiale și reacțiunile


totale (în kN):

l = 10
a= 1 2 3 4 5 6 7 8 9
b= 9 8 7 6 5 4 3 2 1
F = 90 80 70 60 50 40 30 20 10
V1Fi = 81 64 49 36 25 16 9 4 1
V2Fi = 9 16 21 24 25 24 21 16 9

V1 = 285
V2 = 165

P a g . | 26

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