Vous êtes sur la page 1sur 3

function [x, v, w, V, M, A] = EF (n, h,b, L, E, Fc, Fy, rho, G, Q, g)

%%Définition des paramétres :

n=2; %nombre d'éléments


b = 22; % Largeur de la section (mm)
h = 30; % Hauteur de la section (mm)
L = 6; % Longueur de la poutre (m)
Fc = 25; %Résistance caractéristique à la compression du béton (MPa)
Fy = 500; %Résistance caractéristique à la traction de l'acier(MPa)
G = 10; %Charge permanente répartie (kN/m)
Q = 5; %Charge variable répartie (kN/m)
g = 9.81; %Accélération de la pesanteur (m/s^2)

% vecteur coordonnées
x = 0 : L/n : L;
%%taille de l'élément
t = L/n ;
%%Aire de la section
A = b * h;
%% Densité du poids propre
d = -rho * A * g;

%% Initialisation de Ke et Fe
Ke = zeros(2*n+2);
Fe = zeros(2*n+2, 1);

Ke = EI/L^3 .* [12 6*L -12 6*L;


6*L 4*L^2 6*L 2*L^2;
-12 6*L 12 -6*L;
6*L 2*L^2 6*L 4*L^2];

Fe = [L/2; L^2/12; L/2; -L^2/12];

return

for i = 1:n
% Connectivité
t = [2*i-1, 2*i, 2*i+1, 2*i+2];

% Assemblage
K(t, t) = K(t, t) + Ke;
F(t) = F(t) + Fe;
end

%% Conditions aux limites

% supprimer la ligne 1 de Ke
K(1,:) = [];
% supprimer la colonne 1 de Ke
K(:,1) = [];
% supprimer la ligne avant derniére de Ke
K(2*n,:) = [];
% supprimer la colonne avant derniére de Ke
K(:,2*n) = [];
%% Résolution du système d'équations
U = inv(K) * F;

%% vecteur déplacement par MEF


U = [0; U(1:2*n-1);0;U(2*n)];
for i = 0 : n
v(i+1)=u(2*i+1)
w(i+1)=v(2i+2)
end

%%Calcul de l'effort tranchant et moment fléchissant


M = zeros (n+1,1);
V = zeros (n+1,1);
for i = 1 : n+1
M(i) = (w(i+1)-w(i)) / P
V(i) = M(i+1)-M(i) / P
end
% Initialisation des vecteurs de stockage
Mmax = zeros(n, 1);
Vmax = zeros(n, 1);

% Itération sur les éléments


for i = 1:n

% Calcul des efforts et moments aux extrémités de l'élément


Mi = M(i);
Vi = V(i);
Mi+1 = M(i+1);
Vi+1 = V(i+1);

% Identification des valeurs maximales


Mmax_i = max(Mi, Mi+1);
Vmax_i = max(abs(Vi), abs(Vi+1));

% Stockage des valeurs maximales


Mmax(i) = Mmax_i;
Vmax(i) = Vmax_i;
end

% Affichage des résultats

fprintf('Moments maximaux par élément:\n');


disp(Mmax);
fprintf('Efforts tranchants maximaux par élément:\n');
disp(Vmax);

%%Ferraillage

% Calcul de nu_cu
if Fc <= 50
fcd=Fc/1.5;
nu_cu = Mmax_i / (bw * d^2 * fcd);
end

% Vérification de la condition nu_cu <= nu_lu

if nu_cu <= nu_lu

% Calcul de As2 (acier de compression)


As2 = 0;

% Calcul de Alpha_u
Alpha_u = 1.25 * (1 - sqrt(1 - 2 * nu_cu));

% Calcul de Zc
d = 0.9 * h;

Zc = d * (1 - 0.4 * Alpha_u);

% Calcul de As1u (acier de traction)


As1u = Mmax_i / (Zc * fyd);
else
% Calcul de alpha_u (valeur limite)
alpha_u = alpha_li;

% Calcul de Epsilone_su2 (déformation unitaire de l'acier en compression)


d_prime = h-0.9*h;
epsilone_su2 = (1 - (d_prime / (alpha_u * d))) * epsilone_cu2;

% Calcul de sigma_su2 (contrainte de l'acier en compression)


if epsilone_su2 > fyd / E
sigma_su2 = fyd;
else
E = 210000; % Module d'élasticité de l'acier
sigma_su2 = E * epsilone_su2;
end

% Calcul de As2 (acier de compression)


As2 = ((nu_cu - nu_lu) * bw * d^2 * fcd) / ((d - d_prime) * sigma_su2);

% Calcul de Epsilone_su1 (déformation unitaire de l'acier de traction)


epsilone_su1 = ((1 - alpha_u) / alpha_u) * epsilone_cu2;

% Calcul de sigma_su1 (contrainte de l'acier de traction)


if epsilone_su1 > fyd / E
sigma_su1 = fyd;
else
sigma_su1 = E * epsilone_su1;
end

% Calcul de As1 (acier de traction)


As1 = (As2 * sigma_su2 + 0.8 * bw * d * alpha_u * fcd) / sigma_su1;
end

% Affichage des résultats (ajustez en fonction de vos besoins)


disp(['As2 (acier de compression) = ' num2str(As2) ' cm^2']);
disp(['As1 (acier de traction) = ' num2str(As1) ' cm^2']);

Vous aimerez peut-être aussi