Sunteți pe pagina 1din 15

Temă de laborator la disciplina

Dinamică și elemente de inginerie seismică

Cadru didactic titular: Conf. Dr. Ing. Marius Florin Botiș

Nume student: Cristian Gafton

Grupa: 7LF191

Anul: III

-2022-
Cuprins

1. Date de calcul 2

2. Gradul de nedeterminare statică pentru structură 2

3. Gradele de libertate elastică pentru structură 2

4. Calculul caracteristicilor dinamice ale sistemului cu 1 GLD, pulsație, perioadă


și frecvență manual și cu programul Sistem_1_GLD.sce 3

4.1. Calcul manual 3

4.2 Calculul caracteristicilor dinamice ale sistemului cu 1 GLD în Scilab 4

4.2.1. Sistem_1_GLD.sce 4

4.2.2. Rezultat Scilab 8

4.3. Concluzii 8

5. Calculul caracteristicilor dinamice ale sistemului cu n GLD dacă masa


distribuită a structurii se concentrază în nodurile structurii folosind matricea
maselor distribuite sau matricea maselor concentrate cu programul
Sistem_n_GLD.sce. 9

5.1. Sistem_n_GLD.sce 9

5.2. Rezultat 13

5.3. Observații și concluzii 14

5.3.1. Observații 14

5.3.2. Concluzii 14

1
2. Gradul de nedeterminare statică pentru structură

b + r = 2n => 11 + 3 = 2*7

b = 11; r = 3; n = 7 14 = 14 => Sistem static determinat

3. Gradele de libertate elastică pentru structură

=> 14 GLD elastică ????

2
4. Calculul caracteristicilor dinamice ale sistemului cu 1 GLD, pulsație, perioadă și frecvență
manual și cu programul Sistem_1_GLD.sce

4.1. Calcul manual

3
4.2 Calculul caracteristicilor dinamice ale sistemului cu 1 GLD în Scilab

4.2.1. Sistem_1_GLD.sce
clear;clc;clf;
// coordonatele nodurilor (m)
noduri=[0 0;3 3;6 0;9 3;12 0;15 3;18 0];
// Elemente n1 n2
//E(N/m^2)A(m^2) Dens(kg/m^3)
A=1320*10^(-6);dens=7860;
elem=[ 1 2 2.1e11 A dens
2 4 2.1e11 A dens
4 6 2.1e11 A dens
6 7 2.1e11 A dens
7 5 2.1e11 A dens
5 3 2.1e11 A dens
3 1 2.1e11 A dens
2 3 2.1e11 A dens
3 4 2.1e11 A dens
5 4 2.1e11 A dens
5 6 2.1e11 A dens ];
// Constrangerile aplicate structurii
//Nodul constrangeri
// nod bx by
conde=[ 1 1 1
7 0 1 ];
//Mase concentrate
m=4900;
// Determinarea numarului de
// noduri si elemente
nnd=length(noduri(:,2));

4
nel=length(elem(:,4));
// Determinarea numarului de
//constrangeri
ncond=length(conde(:,1));
//Numar de noduri si
//numar de elemente
nnd=length(noduri(:,2));
nel=length(elem(:,4));
//Program pentru determinarea pulsatiilor si modurilor propri
//la structurile plane cu noduri articulate
cx=noduri(:,1);
cy=noduri(:,2);
//Numar de grade libertate pe nod ngn, numar grade de libertate pe elemente ngel
//numar de necunoscute ale structurii nec, numar de grade de libertate pe nod ndof
ngn=2;
ngel=2*ngn;
nec=nnd*ngn;
ndof=2;
//Initializarea cu zero a vectorilor si matricelor MR, matrice de rigiditate
//MC, MD matrice de mase concentrate si distribuite,F vectorul fortelor
//index vector numere ordine pentru elementele matricelor de rigiditate locale in matricea globala
MR=zeros(nec,nec);
MD=zeros(nec,nec);
MC=zeros(nec,nec);
index=zeros(2*ngn);
//Ciclu pe toate elementele structurii pentru determinarea matricelor de rigiditate si mase
for i=1:nel
//Determinarea nodurilor corespunzatoare fiecarui element
nod1=elem(i,1);
nod2=elem(i,2);
//Asignarea proprietatilor geometrice si mecanice pentru fiecare element
E=elem(i,3);
A=elem(i,4);
densitatea=elem(i,5);
//Pozitia termenilor matricei de rigiditate mrel a elementului in matricea MR
index(1)=ngn*nod1-1;
index(2)=ngn*nod1;
index(3)=ngn*nod2-1;
index(4)=ngn*nod2;
//Lungimea elementului de bara
le=sqrt((cx(nod2)-cx(nod1))^2+(cy(nod2)-cy(nod1))^2);
//Rigiditatea la intindere compresiune
ka=E*A/le;
//Cosinusi directori ai sistemului local in raport cu sistemul de referinta global
c=(cx(nod2)-cx(nod1))/le;
s=(cy(nod2)-cy(nod1))/le;
length(i)==le';
vc(i)=c;
vs(i)=s;
//Matricea de rigiditate a elementului in sistemul de referinta local
mrel=ka*[ 1 0 -1 0
00 00
-1 0 1 0
0 0 0 0 ];
// Matricea de rotatie
T=[ c s 0 0
-s c 0 0
0 0 cs
0 0 -s c ];
//Matricea de rigiditate a elementului in sistemul de referinta global
mrel=T'*mrel*T;
//Matricea de mase distribuite in sistemul local de coordonate
md=(densitatea*A*le/6)*[ 2 0 1 0
0 2 0 1
1 0 2 0
0 1 0 2 ];
//Matricea de mase concentrate in sistemul local de coordonate

5
mc=(densitatea*A*le/2)*[ 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1 ];
//Matricea de mase distribuite si concentrate ale elementului in sistemul global de coordonate
md=T'*md*T;
mc=T'*mc*T;
//Asamabalrea matricelor de rigiditate ale elementelor in matricea globala
for i1=1:ngel
j1=index(i1);
for i2=1:ngel
j2=index(i2);
MR(j1,j2)=MR(j1,j2)+mrel(i1,i2);
end
end
//Asamabalrea matricelor de mase distribuite ale elementelor in matricea globala de mase distribuite
//for i1=1:ngel
// j1=index(i1);
// for i2=1:ngel
// j2=index(i2);
// MD(j1,j2)=MD(j1,j2)+md(i1,i2);
//end
//end
//Asamabalrea matricelor de mase concentrate ale elementelor in matricea globala de mase concentrate
//for i1=1:ngel
// j1=index(i1);
//for i2=1:ngel
// j2=index(i2);
// MC(j1,j2)=MC(j1,j2)+mc(i1,i2);
// end
//end
end
//Aplicarea conditiilor la limita pentru matricea de rigiditate globala
for i=1:size(conde,1);
n=conde(i,1);
if conde(i,2)==1
MR(ngn*(n-1)+1,:)=zeros(1,nec);
MR(:,ngn*(n-1)+1)=zeros(nec,1);
MR(ngn*(n-1)+1,ngn*(n-1)+1)=0;
end
if conde(i,3)==1
MR(ngn*(n-1)+2,:)=zeros(1,nec);
MR(:,ngn*(n-1)+2)=zeros(nec,1);
MR(ngn*(n-1)+2,ngn*(n-1)+2)=0;
end
end;
//Aplicarea conditiilor la limita pentru matricea de mase distribuite globala
for i=1:size(conde,1);
n=conde(i,1);
if conde(i,2)==1
MD(ngn*(n-1)+1,:)=zeros(1,nec);
MD(:,ngn*(n-1)+1)=zeros(nec,1);
MD(ngn*(n-1)+1,ngn*(n-1)+1)=1;
end
if conde(i,3)==1
MD(ngn*(n-1)+2,:)=zeros(1,nec);
MD(:,ngn*(n-1)+2)=zeros(nec,1);
MD(ngn*(n-1)+2,ngn*(n-1)+2)=1;
end
end;
//Aplicarea conditiilor la limita pentru matricea de mase concentrate globala
for i=1:size(conde,1);
n=conde(i,1)
if conde(i,2)==1
MC(ngn*(n-1)+1,:)=zeros(1,nec);
MC(:,ngn*(n-1)+1)=zeros(nec,1);
MC(ngn*(n-1)+1,ngn*(n-1)+1)=1;

6
end
if conde(i,3)==1
MC(ngn*(n-1)+2,:)=zeros(1,nec);
MC(:,ngn*(n-1)+2)=zeros(nec,1);
MC(ngn*(n-1)+2,ngn*(n-1)+2)=1;
end
end;
MC(8,8)=m;
MD(8,8)=m;
//Determinarea pulsatiilor proprii si modurilor propri asociate
s1=spec(MR,MD);
//fmd=sort(sqrt(s1))
fmd=gsort(sqrt(s1))//pulsatii proprii distribuit
s2=spec(MR,MC);
//fmc=qsort(sqrt(s2))
fmc=gsort(sqrt(s2))//pulsatii proprii concentrati
w=eye(1,1);
for i=1:nec
if fmd(i)<>0 then w(1,1)=fmd(i);
end
end
T=2*%pi/w;
f=1/T;
//pulsatii proprii concentrati
disp('Pulsatia [rad/s] Perioada [s] Frecventa [Hz]')
disp([w,T,f]);
//delimitare fereastra
xm=min(noduri,'r');
xM=max(noduri,'r');
marg=max(xM-xm)/10;
ax=get("current_axes");
ax.data_bounds =[xm-marg; xM+marg];
ax.isoview="on";
//desenare structura
for j=1:nel
xn=[cx(elem(j,1)) cx(elem(j,2))];yn=[cy(elem(j,1)) cy(elem(j,2))];
plot(xn,yn,'b','linewidth',2);
end
//desenare noduri
for h=1:nnd
xdn=cx(h);ydn=cy(h);
plot(xdn,ydn,'ro','MarkSize',10);
end
//desenare structura
for g=1:ncond
if conde(g,2)==1
//reazem pe x coordonatele care il definesc
rxx=[cx(conde(g,1)) cx(conde(g,1))-0.6 ];
rxy=[cy(conde(g,1)) cy(conde(g,1)) ];
plot(rxx,rxy,'k','linewidth',4);
end
if conde(g,3)==1
//reazem pe y coordonatele care il definesc
ryx=[cx(conde(g,1)) cx(conde(g,1)) ];
ryy=[cy(conde(g,1)) cy(conde(g,1))-0.6 ];
plot(ryx,ryy,'k','linewidth',4);
end
end

7
4.2.2. Rezultat Scilab

4.3. Concluzii

1. Rezultatele obținute prin calcul manual sunt identice cu cele obținute în Scilab, cu o mică
excepție: la frecvență apare o diferență la a 7-a zecimală, diferență ce poate fi ignorată.
Probabil, cauza este numărul de zecimale folosite în calcul.

2. Am verificat dacă, într-adevăr, perioada este maximă dacă se consideră 1 GLD pe direcția
D8.

Pulsația [rad/s] Perioada [s] Frecvența [Hz]

D3 73.120251 0.0859295 11.637449

D4 59.024981 0.1064496 9.3941175

D5 97.100831 0.0647078 15.454077

D6 40.802285 0.153991 6.4938854

D7 81.195629 0.0773833 12.922686

D8 37.042718 0.16962 5.8955317

D9 68.660656 0.0915107 10.927683

D10 40.802285 0.153991 6.4938854

D11 73.120251 0.0859295 11.637449

D12 59.024981 0.1064496 9.3941175

D13 56.061191 0.1120773 8.9224157

Se verifică.

Se observă o simetrie a rezultatelor (D3-D11, D4-D12, D6-D10) ceea ce este normal


deoarece structura este simetrică. Lipsa simetriei D5-D9 pate fi explicată prin asimetria
condițiilor de reazemare.

8
5. Calculul caracteristicilor dinamice ale sistemului cu n GLD dacă masa distribuită a
structurii se concentrază în nodurile structurii folosind matricea maselor distribuite sau
matricea maselor concentrate cu programul Sistem_n_GLD.sce.

5.1. Sistem_n_GLD.sce
clear;clc;clf;
// coordonatele nodurilor (m)
noduri=[0 0;3 3;6 0;9 3;12 0;15 3;18 0];
// Elemente n1 n2
//E(N/m^2)A(m^2) Dens(kg/m^3)
A=1320*10^(-6);dens=7860;
elem=[ 1 2 2.1e11 A dens
2 4 2.1e11 A dens
4 6 2.1e11 A dens
6 7 2.1e11 A dens
7 5 2.1e11 A dens
5 3 2.1e11 A dens
3 1 2.1e11 A dens
2 3 2.1e11 A dens
3 4 2.1e11 A dens
5 4 2.1e11 A dens
5 6 2.1e11 A dens ];
// Constrangerile aplicate structurii
//Nodul constrangeri
// nod bx by
conde=[ 1 1 1
7 0 1 ];
//Mase concentrate
m=4900;
//Determinarea numarului de
// noduri si elemente
nnd=length(noduri(:,2));
nel=length(elem(:,4));
// Determinarea numarului de
//constrangeri
ncond=length(conde(:,1));
//Numar de noduri si
//numar de elemente
nnd=length(noduri(:,2));
nel=length(elem(:,4));
//Program pentru determinarea pulsatiilor si modurilor propri
//la structurile plane cu noduri articulate
cx=noduri(:,1);
cy=noduri(:,2);
//Numar de grade libertate pe nod ngn, numar grade de libertate pe elemente ngel
//numar de necunoscute ale structurii nec, numar de grade de libertate pe nod ndof
ngn=2;
ngel=2*ngn;
nec=nnd*ngn;
ndof=2;
//Initializarea cu zero a vectorilor si matricelor MR, matrice de rigiditate
//MC, MD matrice de mase concentrate si distribuite,F vectorul fortelor
//index vector numere ordine pentru elementele matricelor de rigiditate locale in matricea globala
MR=zeros(nec,nec);
MD=zeros(nec,nec);
MC=zeros(nec,nec);
index=zeros(2*ngn);
//Ciclu pe toate elementele structurii pentru determinarea matricelor de rigiditate si mase
for i=1:nel
//Determinarea nodurilor corespunzatoare fiecarui element
nod1=elem(i,1);
nod2=elem(i,2);
//Asignarea proprietatilor geometrice si mecanice pentru fiecare element
E=elem(i,3);

9
A=elem(i,4);
densitatea=elem(i,5);
//Pozitia termenilor matricei de rigiditate mrel a elementului in matricea MR
index(1)=ngn*nod1-1;
index(2)=ngn*nod1;
index(3)=ngn*nod2-1;
index(4)=ngn*nod2;
//Lungimea elementului de bara
le=sqrt((cx(nod2)-cx(nod1))^2+(cy(nod2)-cy(nod1))^2);
//Rigiditatea la intindere compresiune
ka=E*A/le;
//Cosinusi directori ai sistemului local in raport cu sistemul de referinta global
c=(cx(nod2)-cx(nod1))/le;
s=(cy(nod2)-cy(nod1))/le;
length(i)==le';
vc(i)=c;
vs(i)=s;
//Matricea de rigiditate a elementului in sistemul de referinta local
mrel=ka*[ 1 0 -1 0
00 00
-1 0 1 0
0 0 0 0 ];
// Matricea de rotatie
T=[ c s 0 0
-s c 0 0
0 0c s
0 0 -s c ];
//Matricea de rigiditate a elementului in sistemul de referinta global
mrel=T'*mrel*T;
//Matricea de mase distribuite in sistemul local de coordonate
md=(densitatea*A*le/6)*[2 0 1 0
0 2 0 1
1 0 2 0
0 1 0 2];
//Matricea de mase concentrate in sistemul local de coordonate
mc=(densitatea*A*le/2)*[1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1];
//Matricea de mase distribuite si concentrate ale elementului in sistemul global de coordonate
md=T'*md*T;
mc=T'*mc*T;
//Asamabalrea matricelor de rigiditate ale elementelor in matricea globala
for i1=1:ngel
j1=index(i1);
for i2=1:ngel
j2=index(i2);
MR(j1,j2)=MR(j1,j2)+mrel(i1,i2);
end
end
//Asamabalrea matricelor de mase distribuite ale elementelor in matricea globala de mase distribuite
for i1=1:ngel
j1=index(i1);
for i2=1:ngel
j2=index(i2);
MD(j1,j2)=MD(j1,j2)+md(i1,i2);
end
end
//Asamabalrea matricelor de mase concentrate ale elementelor in matricea globala de mase concentrate
for i1=1:ngel
j1=index(i1);
for i2=1:ngel
j2=index(i2);
MC(j1,j2)=MC(j1,j2)+mc(i1,i2);
end
end
end

10
//Aplicarea conditiilor la limita pentru matricea de rigiditate globala
for i=1:ncond;
n=conde(i,1);
if conde(i,2)==1
MR(ngn*(n-1)+1,:)=zeros(1,nec);
MR(:,ngn*(n-1)+1)=zeros(nec,1);
MR(ngn*(n-1)+1,ngn*(n-1)+1)=0;
end
if conde(i,3)==1
MR(ngn*(n-1)+2,:)=zeros(1,nec);
MR(:,ngn*(n-1)+2)=zeros(nec,1);
MR(ngn*(n-1)+2,ngn*(n-1)+2)=0;
end
end;
//Aplicarea conditiilor la limita pentru matricea de mase distribuite globala
for i=1:ncond;
n=conde(i,1);
if conde(i,2)==1
MD(ngn*(n-1)+1,:)=zeros(1,nec);
MD(:,ngn*(n-1)+1)=zeros(nec,1);
MD(ngn*(n-1)+1,ngn*(n-1)+1)=1;
end
if conde(i,3)==1
MD(ngn*(n-1)+2,:)=zeros(1,nec);
MD(:,ngn*(n-1)+2)=zeros(nec,1);
MD(ngn*(n-1)+2,ngn*(n-1)+2)=1;
end
end;
//Aplicarea conditiilor la limita pentru matricea de mase concentrate globala
for i=1:ncond;
n=conde(i,1)
if conde(i,2)==1
MC(ngn*(n-1)+1,:)=zeros(1,nec);
MC(:,ngn*(n-1)+1)=zeros(nec,1);
MC(ngn*(n-1)+1,ngn*(n-1)+1)=1;
end
if conde(i,3)==1
MC(ngn*(n-1)+2,:)=zeros(1,nec);
MC(:,ngn*(n-1)+2)=zeros(nec,1);
MC(ngn*(n-1)+2,ngn*(n-1)+2)=1;
end
end;
MD(8,8)=MD(8,8)+m;
MC(8,8)=MC(8,8)+m;
//MD(10,10)=MD(10,10)+m;
//Determinarea pulsatiilor proprii si modurilor propri asociate
s1=spec(MR,MD);
fmd=gsort(sqrt(s1))
s2=spec(MR,MC);
fmc=gsort(sqrt(s2))
B=zeros(nec,nec);
for i=1:nec
B(i,nec-i+1)=1;
end
fmd=B*fmd;
fmc=B*fmc;
//W=eye(nec,nec);
//for i=1:nec
// W(i,i)=fmd(i);
//end
T=zeros(nec,1);
f=zeros(nec,1);
for i=1:nec
if fmd(i)<>0 then T(i)=2*%pi/fmd(i); f(i)=1/T(i);
end
end
disp('Pulsatii [rad/s], periode [s], frecvente [Hz] proprii mase distribuite')

11
disp([fmd,T,f]);
T=zeros(nec,1);
f=zeros(nec,1);
for i=1:nec
if fmc(i)<>0 then T(i)=2*%pi/fmc(i); f(i)=1/T(i);
end
end
//desenare structura
for j=1:nel
xn=[cx(elem(j,1)) cx(elem(j,2))];yn=[cy(elem(j,1)) cy(elem(j,2))];
plot(xn,yn,'b','linewidth',2);
end
disp('Pulsatii [rad/s], periode [s], frecvente [Hz] proprii mase concentrate')
disp([fmc,T,f]);
//delimitare fereastra
xm=min(noduri,'r');
xM=max(noduri,'r');
marg=max(xM-xm)/10;
ax=get("current_axes");
ax.data_bounds =[xm-marg; xM+marg];
ax.isoview="on";
//desenare structura
for j=1:nel
xn=[cx(elem(j,1)) cx(elem(j,2))];yn=[cy(elem(j,1)) cy(elem(j,2))];
plot(xn,yn,'b','linewidth',2);
end
//desenare noduri
for h=1:nnd
xdn=cx(h);ydn=cy(h);
plot(xdn,ydn,'ro','MarkSize',10);
end
//desenare structura
for g=1:ncond
if conde(g,2)==1
//reazem pe x coordonatele care il definesc
rxx=[cx(conde(g,1)) cx(conde(g,1))-0.6 ];
rxy=[cy(conde(g,1)) cy(conde(g,1)) ];
plot(rxx,rxy,'k','linewidth',4);
end
if conde(g,3)==1
//reazem pe y coordonatele care il definesc
ryx=[cx(conde(g,1)) cx(conde(g,1)) ];
ryy=[cy(conde(g,1)) cy(conde(g,1))-0.6 ];
plot(ryx,ryy,'k','linewidth',4);
end
end

12
5.2. Rezultat

13
5.3. Observații și concluzii

5.3.1. Observații

1. Nu există diferențe semnificative între rezultatele obținute în varianta cu mase concentrate


și cele obținute în varianta cu mase distribuite (în modul 1). Diferențele ce apar se datorează
faptului ca în calculul cu mase concentrate se ignoră inerția barei (de translație și de rotație)
deoarece bara se consideră a fi fără masă.

2. Rezultatele obținute pentru primul mod de vibrații sunt considerabil diferite față de toate
celelalte moduri. Perioada este mult mai mare, iar pulsația și frecvența sunt mult mai mici.

3. Rezultatele obținute considerând n GLD (modul 1 de vibrație) sunt foarte apropiate de cele
obținute considerând 1 GLD.

5.3.2. Concluzii

Pentru această structură se pot face calcule dinamice (seism) considerând 1 GLD pe direcția
D8, nefiind necesar un calcul cu n GLD.

14

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