WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception d'une application pour le calcul et la simulation des efforts sur les pylônes

( Télécharger le fichier original )
par Clovis Bernard Tsopgo
Université de Douala - Ingénieur  2011
  

précédent sommaire

Extinction Rebellion

Annexes

Annexe 1 : quelques éléments d'un site de télécommunication Annexe 1.a : lecture des azimuts

Annexe 1.b : BTS

Annexe 1.c : Baie

Annexe 2 : quelques données de la norme NV 65 Annexe 2-a: coefficient de réduction

Annexe 2-b : coefficient de réponse

Annexe 2-c : coefficient de pulsation

Annexe 3 : Fonctions essentielles utilisées dans le code

Annexe 3-a : coordonnées et connectivités entre les noeuds.

function [t,p]=schema36(B,H) %

%cette fonction dessine le pylone %B: longueur des bases

%H:hauteur du pylone

%t:table de connectivité %p:coordonnées des noeuds %tsopgo clovis, faculte de genie industriel

%

[t,p]=type4(B(1),B(2),H(1));

for i=2:7

if i<6

[T,P]=type4(B(i),B(i+1),H(i)); elseif i==6

[T,P]=type5(B(i),B(i+1),H(i));

else

[T,P]=type6(B(i),B(i+1),H(i));

end

T=T+size(p,1)-2;

P=P(3:size(P,1),:);

P(:,2)=P(:,2)+sum(H(1:i-1));

t=[t;T]; p=[p;P];

end

return

Annexe 3-b: localisation de la matrice élémentaire dans la matrice globale

function L = Localise(t)

%calcul de la localisation de la matrice elementaire % dans la matrice globale

% t : table de connectivités de l'element % L : table de loacalisation

%

% tsopgo clovis,faculte de genie industriel

nne = length(t);

for i= 1:nne

L([2*i1 2*i]) = [2*t(i)1 2*t(i)];

end

return

annexe 3-c: longueurs et cosines directeurs des barres

function [ds,c,s] = EltLen(XY)

%

% Calcul de la longueur, du cos et du sin de la matrice de rotation pour un

% element barre à deux noeuds (x1,y1) (x2,y2)

% c : cosinus de l'angle

% s : sinus de l'angle

% XY: cordonnées des noeuds XY = [x1,y1; x2,y2]

%

% tsopgo clovis,faculte de genie industriel

dx = XY(2,1) - XY(1,1);
dy = XY(2,2) - XY(1,2);

ds = sqrt(dx^2 + dy^2);

c = dx/ds; s = dy/ds; return

annexe 3-d: élimination des noeuds bloqués

function A = DelDOFs(A,L)

% A = DelDOFs(A,L)

%

% A : matrice globale après assemblage

% L : liste des degrés de liberté à éliminer % tsopgo clovis faculté de genie industriel

L = sort(L); % tri de la liste des DDL

n = length(L); % longueur de L

if (size(A,2) == 1) % cas d'un vecteur

for i = n:-1:1 % parcourir L à partir du plus grand indice

A(L(i)) =[] ; % suppression de la composante associée au DDL

courant

end

else % cas d'une matrice

for i = n:-1:1

A(L(i),:) =[] ; % suppression de la ligne L(i)

A(:,L(i)) =[] ; % suppression de la colonne L(i)

end end return

annexe 3-e : ajout des noeuds bloqués

function U = AddDOFs(U,L)

%

% U = K \ F : FE solution

% L : Table de localisation des noeuds d'appuis

%

%tsopgo clovis faculté de génie industriel

[m,n] = size(L);

L = reshape(L,m*n,1); L = L(find(L));

L = sort(L);

n = length(L);

for i = 1:n

U = AddToVect(U,L(i),0);

end

U = U';

return

annexe 3-f : calcul des efforts normaux

function [F,R] = TrussForces(t,p,A,E,U)

% F : forces axiales dans les barres

% R : forces aux niveaux des noeuds = réactions dans le cas d'appuis % t : table de connectivités des éléments

% p : table des coordonnées des noeuds

% A : sections des éléments

% E : modules d'élasticité

% U : solution en déplacement

%

% tsopgo clovis, faculte de genie industriel

net = size(t,1); % nombre d'éléments total

nnt = size(p,1); % nombre de noeuds total

R = zeros(2*nnt,1); % Forces aux noeuds

for ie = 1:net % boucle sur les éléments

L = localise(t(ie,:)); % table de localisation

ke = truss2dKe(p(t(ie,:),:),A(ie),E); % matrice élémentaire

ue = U(L); % déplacements des noeuds

fe = ke*ue; % forces élémentaires dans (oxy)

R(L) = R(L) + fe; % tous les éléments liés au noeud

[L,c,s] = EltLen(p(t(ie,:),:)); % les cosinus directeurs

F(ie,:) = -( c*fe(1) + s*fe(2) ); % rotation au repère local

end % fin de boucle

return

annexe 3-g : maillage du pylône

function plotmesh(haut,base,entete,EltLabels,NodeLabels)

%

% cette fonction dessine le pylone

% haut: hauteur du pylone

% base: longueur de la base

% entete: longueur de l'entete

% NodeLabels : vaut true pour afficher les éléments

% EltLabels : vaut true pour afficher les noeuds

% color : couleur des lignes

% % %tsopgo clovis, faculte de genie industriel

%

axis equal

[hauteur, D,d,H,B]=geom(haut,base,entete);

[t,p]=schema(B,H); Net = size(t,1); for ie = 1:Net

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','r','linewidth',2)

if(EltLabels)

x = mean(XY(:,1));

y = mean(XY(:,2));

axis equal text(x,y,num2str(ie),'color','g')

end

end

Np = size(p,1); if(NodeLabels) for i=1:Np

text(p(i,1),p(i,2),num2str(i),'color','b')

end

end

if hauteur ==36; for ie = 21:40

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 61:80

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 101:108

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

elseif hauteur ==54;

for ie = 1:26

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 53:72

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 93:112

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 133:152
XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 173:180

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

elseif hauteur ==72;

for ie = 27:52

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 73:92

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 113:132

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 153:172
XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 193:212

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

for ie = 234:241

XY = p(t(ie,:),:);

X = [XY(:,1)];

Y = [XY(:,2)]; line(X,Y,'color','w','linewidth',2)

end

end

X=[-D -D];

Y=[-0.5 sum(H)+0.5];

line(X,Y,'color','w')

h=[0 H];

B = num2str(B,'%10.2f');

B=str2num(B);

x=[-D -1.5*D];

y=[0 0];

line(x,y,'color','w')

text(-1.6*D,0.45,num2str(B(1)),'color','b')

z1=[0.5*D+1 0.5*D+4]; z2=[sum(h)-1 sum(h)-1]; t1=[0.5*D+3.5 0.5*D+4]; t2=[sum(h)-1.5 sum(h)-1]; t3=[sum(h)-0.5 sum(h)-1];

line(z1,z2,'color','w','linewidth',2) line(t1,t2,'color','w','linewidth',2)

line(t1,t3,'color','w','linewidth',2)

text(0.5*D+2,sum(h)-0.4,'vent','color','w')

for i= 1:length(H)

s=0.5*(B(i+1)+B(i))*H(i); y=[sum(H(1:i)) sum(H(1:i))]; line(x,y,'color','w')

text(-D+0.3,sum(h(1:i))+0.5*h(i+1),'T','color','g') text(-D+0.9,sum(h(1:i))+0.5*h(i+1),num2str(i),'color','g') text(-1.35*D,sum(h(1:i))+0.5*h(i+1),num2str(s),'color','g') text(-1.6*D,sum(H(1:i))+0.45,num2str(B(i+1)),'color','b')

end

return

annexe 3-h: matrice de rigidité élémentaire

function [ke,L] = truss2dKe(XY,A,E)

%

% Calcul de la matrice elementaire pour un

% element barre à deux noeuds (x1,y1) (x2,y2) % A : section de l'element

% E : module d'élasticité

% XY: cordonnées des noeuds XY = [x1,y1; x2,y2] % L:longueur de la barre

%tsopgo clovis, faculte de genie industriel

[L,c,s] = EltLen(XY); % longueur et orientation de l'élément

cc = c*c; % cos(angle)^2

cs = c*s; % cos(angle)*sin(angle)

ss = s*s; % sin(angle)^2

ke = (A*E/L) * [ cc cs -cc -cs % matrice élémentaire Ke

cs ss -cs -ss -cc -cs cc cs cs ss cs ss

];

return

Annexe 3- i : programme principal

function [P,R,sigma,Ux,Umax,Rx1,Ry1,Rx2,Ry2,T,U,t,p,A,ba,Long,fy,obs,alpha] = truss2dKM(haut,base,entete,q,sa,masse,cornieres,ks,direct)

% haut: hauteur du pylone

% base: longueur de la base

% entete: longueur de l'entete % q:pression à 10 mètres du sol % sa: charge en tete du pylone % masse: masse des antennes

% cornières: matrice des cornières à utiliser

% ks: coefficient de site % direct:direction du vent

% P:vecteur des efforts normaux % R:réactions au niveau du sol

% sigma: vecteur des contraintes

% Ux: valeur de la flèche en tete du pylone

% Umax: déplacement maximal en tete du pylone

% RX, RY: valeurs des réactions au niveau du sol

% T: périodes propres

% U: vecteur déplacement % t : table de connectivités des éléments

% p : table des coordonées des noeuds

% A : sections des éléments (des barres)

% ba :numéros des barres

% long :longueur des barres % fy :contraintes maximales

% obs:vecteur à deux états: "oui" si sigma < fy et "non" sinon

% alpha: angle de rotation en tete

%tsopgo clovis, faculte de genie industriel

%

clc % effacer tout le contenu de la

fenetre de commande

[B,Al,A,si,sp,dens,E,G,H,Fv,Fp,t,p,iv,fy,Iw]=traitement(haut,base,entete,q,co rnieres,ks,direct);

if direct==0 %direction du vent qui vaut 0 pour

le vent

Fv=Fv/1.41; % diagonal et 1 pour le vent normal

end %fin de la boucle

qa=1.3*2.5*q*sa*(sum(H)+16)/(sum(H)+58); % frce du vent dur les antennes

net = size(t,1); %nombre de barres

nnt = 2*size(p,1); % nombre de noeuds, 2 signifie le

nombre de degré de liberté

K = sparse(nnt,nnt); % initialisation des matrices de

rigidité, d'inertie, et des forces

Kw = zeros(nnt,nnt); % par des matrices creuses nulles

M = sparse(nnt,nnt); FV = sparse(nnt,1); FP = sparse(nnt,1); Mw = sparse(nnt,1);

Fp=2*Fp; % prise en compte des barrres

latérales

FV(end -3) = FV(end-3)+0.5*qa; %ajout du poids des antennes

Long=zeros(net,1); %initialisation des longueurs des

barres

for i = 1:net %début de boucle sur les éléments

ti = t(i,:); %table de connectivité et de

Li = localise(ti); %localisation de l'élément courant

[Ke,l] = truss2dKe(p(ti,:),A(i),E);%matrice de rigidité élémentaire kw=((81e+9)*Iw(i)/l)*[1 0 -1 0;... %matrice de rigidité élémentaire 0 0 0 0;-1 0 1 0;0 0 0 0]; %en torsion

Long(i)=l;

Me = truss2dMe(p(ti,:),A(i),dens);%matrice masse élémentaire fe=Fv(i)*l*[0.5;0;0.5;0];

Fe=-Fp(i)*[0;0.5;0;0.5];

K(Li,Li)

=

K(Li,Li) +

Ke;

Kw(Li,Li)

=

Kw(Li,Li)

+ kw;

M(Li,Li)

=

M(Li,Li) +

Me;

%assemblage de la fonction K %assemblage de la matrice kw %assemblage de la matrice M

FV(Li) = FV(Li) + fe; %assemblage de la matrice FV

% FP(Li) = FP(Li) + Fe; %assemblage de la matrice FP

end %fin de la boucle

Long = num2str(Long,'%10.2f'); %choix du format d'affichage

Long=str2num(Long); %des longueurs

Mw(end-2)= 0.1*qa; %valeur du moment en tete

poids=masse*9.81; %poids des antennes

nul=1:4; %noeuds encastrés

K = DelDOFs(K,nul); %application

M = DelDOFs(M,nul); %des

FV = DelDOFs(FV,nul); %conditions

Mw = DelDOFs(Mw,nul); %aux

Kw = DelDOFs(Kw,nul); %limites

[y,kk]=chol(K); %décomposition

[yw,kk]=chol(Kw); %de cholesky

angle=yw'\Mw; %angle de

angle=yw\angle; %rotation

alpha= angle(end2)*180/3.14; %en tete du pylone

alpha = num2str(alpha,'%10.2f'); %normaux

alpha=str2num(alpha);

x=y'\FV; %calcul de

U=y\x; %la solution

U = AddDOFs(U,nul); %ajout des DDl des noeuds encastrés

Ux=100*U(end-1); %calcul de la flèche en tete

Ux = num2str(Ux,'%10.2f');

Ux=str2num(Ux);

Umax=sum(H)/2; %déplacement maximal

FP(end)=FP(end)-0.5*poids;

FP(end-2)=FP(end-2)-0.5*poids;

FP = DelDOFs(FP,nul); %conditions aux limites

U1=y'\(1.33*FP+1.5*FV);

U1=y\U1;

U1 = AddDOFs(U1,nul); % Ajouter les DDL des noeuds encastré

[phi, omega2] = eigs(K,M); % modes propres

omega = sqrt(diag(omega2)); % pulsations

T = 2*pi./sort(omega); % périodes propres par ordre croissant

T = num2str(T,3); % et choix du format d'affichage

[P,R] = TrussForces(t,p,A,E,U1); %calcul

sigma=(1e-6)*P./A %des éfforts

sigma = num2str(sigma,'%10.2f'); %normaux

sigma=str2num(sigma); %des contraintes

ba=1:length(t(:,1));

Rx1=R(1)/1000; %des réactions

Rx2=R(3)/1000; %et choix du format

Ry1=R(2)/1000; %d'affichage

Ry2=R(4)/1000;

Rx1 = num2str(Rx1,'%10.2f'); Rx1=str2num(Rx1);

Rx2 = num2str(Rx2,'%10.2f'); Rx2=str2num(Rx2);

Ry1 = num2str(Ry1,'%10.2f'); Ry1=str2num(Ry1);

Ry2 = num2str(Ry2,'%10.2f'); Ry2=str2num(Ry2);

%%%%% DIMMENSIONNEMENT %%%%%%

lam=Long./iv; %calcul de lamda

lam1=93.9*sqrt(235./fy); %de lamda 1

lba=lam./lam1; %de lamda barre

fi=0.5*(1+0.49*(lba-0.2)+lba.*lba); %de phi

ki=fi+sqrt(fi.*fi-lba.*lba); %de ki

ki=1./ki; %et

simax=ki.*fy./1.1; %de sigma max

for i=1:net % boucle de

if (lba(i)>0.2 && sigma(i)<=0) %vérification

fy(i)= simax(i); %des contraintes

end % fin

end % de la boucle

%%%%% FIN DU DIMENSIONNEMENT %%%%

P=P/1000; %conversion de la force en kN

P = num2str(P,'%10.2f'); %choix du format d'affichage

P=str2num(P); %de l'effort

fy = num2str(fy,'%10.2f'); %et de

fy=str2num(fy); %l'effort maximal

obs=100*ones(net,1); %affichage

sigma=troncon(sigma,H); %de la contrainte

P=troncon(P,H); %de l'effort normal

A=A*1e+6;

A=troncon(A,H); %de la section

ba=troncon(ba,H); %des numéros des barres

Long=troncon(Long,H); %des longueurs

fy=troncon(fy,H); %de la contrainte maximale

obs=troncon(obs,H); %et de l'observation en fonction de la

hauteur

return %fin de la fonction

Annexe 4 : pylône dans robot millénium

Annexe 4-a : vue en élévation du pylône (numéro des noeuds et des barres)

Annexe 4-b : déformée du pylône

Annexe 4-c valeur des réactions

Annexe 4-d : quelques valeurs des contraintes et déplacements

précédent sommaire






Extinction Rebellion





Changeons ce systeme injuste, Soyez votre propre syndic





"Nous voulons explorer la bonté contrée énorme où tout se tait"   Appolinaire