0% ont trouvé ce document utile (0 vote)
4 vues7 pages

Graphiques de Fissures sur Poutre

Le document présente une fonction MATLAB pour générer des graphiques illustrant les positions de fissures dans une poutre, en tenant compte des contraintes de flexion et de cisaillement. La visualisation inclut des éléments tels que la poutre, les appuis, les fissures, ainsi que des charges appliquées, le tout avec des marges et échelles adaptées pour une meilleure lisibilité. Des sous-graphes montrent également les résultats techniques comme le moment fléchissant, l'effort tranchant et les contraintes normales et de cisaillement.

Transféré par

Boris Fouotsa El Boris
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues7 pages

Graphiques de Fissures sur Poutre

Le document présente une fonction MATLAB pour générer des graphiques illustrant les positions de fissures dans une poutre, en tenant compte des contraintes de flexion et de cisaillement. La visualisation inclut des éléments tels que la poutre, les appuis, les fissures, ainsi que des charges appliquées, le tout avec des marges et échelles adaptées pour une meilleure lisibilité. Des sous-graphes montrent également les résultats techniques comme le moment fléchissant, l'effort tranchant et les contraintes normales et de cisaillement.

Transféré par

Boris Fouotsa El Boris
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

%% Fonction pour générer les graphiques avec positions de fissures

function genererGraphiques(x, M, V, y, sigma, tau, L, ...

h, b, E, sigma_adm, tau_adm, seuil_pourcent, ...

zones_fissures_flexion, zones_fissures_cisaillement)

% Création d'une figure BEAUCOUP PLUS GRANDE dédiée à la


visualisation

figure('Name', 'Visualisation Agrandie - Poutre avec Fissures', ...

'Position', [100 50 1400 900]); % Fenêtre plus large et plus haute

% Positions uniques des fissures

positions_fissures_flexion = unique(round(x(zones_fissures_flexion), 2));

positions_fissures_cisaillement =
unique(round(x(zones_fissures_cisaillement), 2));

% PARAMÈTRES D'ÉCHELLE TRÈS AGRANDIS

hauteur_poutre_visuelle = 1.0; % Poutre 2.5x plus haute visuellement

marge_verticale = 0.8; % Grande marge pour les légendes

marge_horizontale = L * 0.8; % Très grandes marges horizontales

% Dessin de la poutre (TRÈS GRANDE)

y_poutre = [-hauteur_poutre_visuelle/2, -hauteur_poutre_visuelle/2, ...

hauteur_poutre_visuelle/2, hauteur_poutre_visuelle/2, -
hauteur_poutre_visuelle/2];

x_poutre = [0, L, L, 0, 0];

fill(x_poutre, y_poutre, [0.9 0.9 0.8], 'FaceAlpha', 0.8, 'EdgeColor', 'k',


'LineWidth', 4);

hold on;

% Appuis (plus grands)

hauteur_appui = hauteur_poutre_visuelle * 0.6;


plot([0 0], [-hauteur_poutre_visuelle/2 - hauteur_appui, -
hauteur_poutre_visuelle/2], ...

'k-', 'LineWidth', 6);

plot([L L], [-hauteur_poutre_visuelle/2 - hauteur_appui, -


hauteur_poutre_visuelle/2], ...

'k-', 'LineWidth', 6);

% Marquage des positions de fissures probables (BEAUCOUP PLUS


VISIBLES)

% Fissures de flexion (rouge) - TRÈS VISIBLES

for i = 1:length(positions_fissures_flexion)

x_fissure = positions_fissures_flexion(i);

% Ligne de fissure principale (épaisse et colorée)

plot([x_fissure x_fissure], [-hauteur_poutre_visuelle/3


hauteur_poutre_visuelle/3], ...

'r-', 'LineWidth', 6, 'Color', [1 0 0]);

% Marqueur supérieur

plot(x_fissure, hauteur_poutre_visuelle/2 + 0.15, 'ro', ...

'MarkerSize', 12, 'MarkerFaceColor', 'r', 'LineWidth', 2);

end

% Fissures de cisaillement (bleu) - TRÈS VISIBLES

for i = 1:length(positions_fissures_cisaillement)

x_fissure = positions_fissures_cisaillement(i);

if ~ismember(x_fissure, positions_fissures_flexion)

% Ligne de fissure en pointillés épais

plot([x_fissure x_fissure], [-hauteur_poutre_visuelle/4


hauteur_poutre_visuelle/4], ...

'b--', 'LineWidth', 4, 'Color', [0 0 1]);

% Marqueur inférieur

plot(x_fissure, -hauteur_poutre_visuelle/2 - 0.15, 'bs', ...


'MarkerSize', 12, 'MarkerFaceColor', 'b', 'LineWidth', 2);

end

end

% Ajout des charges pour contexte

% Charge répartie

q = [Link];

if q > 0

for x_charge = linspace(0, L, 10)

plot([x_charge x_charge], [hauteur_poutre_visuelle/2 + 0.05,


hauteur_poutre_visuelle/2 + 0.15], ...

'g-', 'LineWidth', 1);

end

text(L/2, hauteur_poutre_visuelle/2 + 0.25, sprintf('q = %.0f N/m',


q), ...

'HorizontalAlignment', 'center', 'FontWeight', 'bold', 'Color',


'green');

end

% Charge ponctuelle

P = [Link];

a = [Link];

if P > 0

plot([a a], [hauteur_poutre_visuelle/2 + 0.05,


hauteur_poutre_visuelle/2 + 0.25], ...

'm-', 'LineWidth', 3, 'Color', 'magenta');

plot(a, hauteur_poutre_visuelle/2 + 0.3, 'mv', ...

'MarkerSize', 10, 'MarkerFaceColor', 'magenta');

text(a, hauteur_poutre_visuelle/2 + 0.4, sprintf('P = %.0f N', P), ...

'HorizontalAlignment', 'center', 'FontWeight', 'bold', 'Color',


'magenta');
end

% Mise en forme AVEC TRÈS GRANDE ZONE D'AFFICHAGE

xlabel('Position [m]', 'FontSize', 12, 'FontWeight', 'bold');

ylabel('', 'FontSize', 12);

title('VISUALISATION AGRANDIE - POUTRE AVEC POSITIONS DES


FISSURES', ...

'FontSize', 14, 'FontWeight', 'bold', 'Color', 'blue');

% LIMITES TRÈS LARGES POUR UNE BONNE VISIBILITÉ

xlim([-marge_horizontale L + marge_horizontale]);

ylim([-hauteur_poutre_visuelle/2 - marge_verticale,
hauteur_poutre_visuelle/2 + marge_verticale]);

grid on;

grid minor;

% Légende détaillée

legend_items = {};

legend_items{end+1} = 'Poutre';

legend_items{end+1} = 'Appuis';

if ~isempty(positions_fissures_flexion)

legend_items{end+1} = 'Fissures FLEXION';

legend_items{end+1} = 'Zones flexion critiques';

end

if ~isempty(positions_fissures_cisaillement)

legend_items{end+1} = 'Fissures CISAILLEMENT';

legend_items{end+1} = 'Zones cisaillement critiques';

end
if q > 0

legend_items{end+1} = 'Charge répartie q';

end

if P > 0

legend_items{end+1} = 'Charge ponctuelle P';

end

legend(legend_items, 'Location', 'northeastoutside', 'FontSize', 10);

% Affichage des informations techniques

info_text = {sprintf('Longueur poutre: %.1f m', L), ...

sprintf('Section: %.1f x %.1f cm', b*100, h*100), ...

sprintf('Seuil détection: %d%%', seuil_pourcent)};

text(-marge_horizontale + 1, hauteur_poutre_visuelle/2 + 0.5,


info_text, ...

'FontSize', 10, 'BackgroundColor', 'white', 'EdgeColor', 'black');

% Affichage console des positions exactes

fprintf('\n=== POSITIONS PROBABLES DE FISSURES ===\n');

if ~isempty(positions_fissures_flexion)

fprintf('🔴 Fissures FLEXION à x = ');

fprintf('%.2f m ', positions_fissures_flexion);

fprintf('\n');

end

if ~isempty(positions_fissures_cisaillement)

fprintf('🔵 Fissures CISAILLEMENT à x = ');


fprintf('%.2f m ', positions_fissures_cisaillement);

fprintf('\n');

end

if isempty(positions_fissures_flexion) &&
isempty(positions_fissures_cisaillement)

fprintf('✅ Aucune position critique identifiée\n');

end

% Création des graphiques techniques séparés

figure('Name', 'Résultats Techniques - Diagrammes', ...

'Position', [200 100 1200 600]);

% Moment fléchissant

subplot(2,3,1);

plot(x, M/1000, 'b-', 'LineWidth', 2);

xlabel('Position [m]'); ylabel('Moment [kN.m]');

title('Moment Fléchissant'); grid on;

% Effort tranchant

subplot(2,3,2);

plot(x, V/1000, 'r-', 'LineWidth', 2);

xlabel('Position [m]'); ylabel('Effort tranchant [kN]');

title('Effort Tranchant'); grid on;

% Flèche

subplot(2,3,3);

plot(x, y*1000, 'g-', 'LineWidth', 2);

xlabel('Position [m]'); ylabel('Flèche [mm]');

title('Déformée de la Poutre'); grid on;


% Contraintes normales

subplot(2,3,4);

plot(x, sigma/1e6, 'm-', 'LineWidth', 2);

hold on;

plot([0 L], [sigma_adm/1e6 sigma_adm/1e6], 'r--', 'LineWidth', 1.5,


'DisplayName', 'Limite admissible');

xlabel('Position [m]'); ylabel('Contrainte normale [MPa]');

title('Contraintes Normales (σ)');

legend('Contrainte', 'Limite');

grid on;

% Contraintes de cisaillement

subplot(2,3,5);

plot(x, tau/1e6, 'c-', 'LineWidth', 2);

hold on;

plot([0 L], [tau_adm/1e6 tau_adm/1e6], 'r--', 'LineWidth', 1.5,


'DisplayName', 'Limite admissible');

xlabel('Position [m]'); ylabel('Contrainte cisaillement [MPa]');

title('Contraintes de Cisaillement (τ)');

legend('Contrainte', 'Limite');

grid on;

% Graphique vide pour équilibrer la disposition

subplot(2,3,6);

text(0.5, 0.5, 'Voir figure séparée pour la visualisation détaillée des


fissures', ...

'HorizontalAlignment', 'center', 'FontSize', 12, 'FontWeight', 'bold');

axis off;

end

Vous aimerez peut-être aussi