Borrar filtros
Borrar filtros

how do I build the a beam deflection graph ?

15 visualizaciones (últimos 30 días)
Netanel Malihi
Netanel Malihi el 15 de Nov. de 2021
Respondida: NODIRABDUSHAKHIDOV el 26 de En. de 2024
How do you do?
I was wondering if someone could help me with a problem I have been given. It is about deflection of beams in a course in college called numerical analysis.
Given: 𝑞0 = 1𝑁𝑚𝑚, E = 140MPa, L = 1000mm, v = -0.7mm.
1.Draw the x in front of I for 100∙ 10^6 mm^4 ≤ I ≤ 450∙10^6 mm^4. What conclusion can be physically deduced from the graph?
2. Find the value of I for which the beam does not decrease to the value given above.
Write down how you chose an initial guess.
The code that i wrote gives me an empty graph
  4 comentarios
Netanel Malihi
Netanel Malihi el 15 de Nov. de 2021
Of course excuse me
VBBV
VBBV el 15 de Nov. de 2021
The code that you wrote in snapshot (image) is not same as whats posted in OP.
Did you try with code in your OP ?
Note that reason why you dont see the plot is that you're trying to plot against one point in x vector. vs I
when the for loop is completed, value of x is just one point instead of vector as specified in OP.

Iniciar sesión para comentar.

Respuestas (3)

KSSV
KSSV el 15 de Nov. de 2021
q0 = 1 ;
E = 140 ;
L = 1000 ;
v = -0.7 ;
beamDeflection(v,q0,L,E) ;
function beamDeflection(v,q0,L,E)
%for x=0:100:1000
%I = -(q0*L)/(3*pi^4*E*v)*(48*L^3*cos((pi*x)/(2*L))-48*L^3+3*pi^3*L*x^2-pi^3*x^3)
%end
%plot(x,I)
x = 0:1:1000 ;
I = -(q0*L)/(3*pi^4*E*v)*(48*L^3*cos((pi*x)/(2*L))-48*L^3+3*pi^3*L*x.^2-pi^3*x.^3) ;
plot(x,I)
end
  2 comentarios
Netanel Malihi
Netanel Malihi el 15 de Nov. de 2021
thanks, how do i code the range condition: 100∙ 10^6 mm^4 ≤ I ≤ 450∙10^6 mm^4 in the graph?
KSSV
KSSV el 15 de Nov. de 2021
Read about axis and inequalitties i.e. <, >

Iniciar sesión para comentar.


Talal
Talal el 17 de Abr. de 2023
function [X, y_true, y_num, error] = beam_deflection(x_initial,x_step, x_end,E, I, M)
% Calculates beam deflection using analytical and numerical integration methods
% Inputs:
% x_initial: starting value for x
% x_step: step size for x
% x_end: ending value for x
% E: modulus of elasticity
% I: moment of inertia
% M: function handle for moment as a function of x
% Outputs:
% X: array of x values
% y_true: array of true deflection values
% y_num: array of numerical deflection values
% error: array of errors between true and numerical deflection values
% Create array of x values
X = x_initial:x_step:x_end;
% Initialize arrays for y_true, y_num, and error
y_true = zeros(1, length(X));
y_num = zeros(1, length(X));
error = zeros(1, length(X));
% Calculate y_true for each x value using analytical integration
for i = 1:length(X)
x = X(i);
y_true(i) = integral(@(x) M(x)/(E*I), 0, x);
end
% Calculate y_num for each x value using numerical integration
for i = 2:length(X)
x = X(i);
x_prev = X(i-1);
theta_prev = M(x_prev)/(E*I);
theta = M(x)/(E*I);
y_num(i) = y_num(i-1) + ((x - x_prev)/2)*(theta +theta_prev);
end
% Calculate error for each x value
error = y_true - y_num;
end
% Input variables
x_initial = 0;
x_step = 0.01;
x_end = 5;
E = 200e9; % Pa
I = 8.333e-6; % m^4
wo = 1000; % N/m
% Moment as a function of x
M = @(x) (wo*x^2*(10-x)^2)/120;
% Call beam_deflection function
[X, y_true, y_num, error] = beam_deflection(x_initial, x_step, x_end, E, I, M);
% Plot results
figure
plot(X, y_true, 'r', X, y_num, 'b')
title('Beam Deflection')
xlabel('x (m)')
ylabel('y (m)')
legend('Analytical', 'Numerical')
I am not getting the plots, could anyone resolve this issue and rectidy the error

NODIRABDUSHAKHIDOV
NODIRABDUSHAKHIDOV el 26 de En. de 2024
check this out. Hope it solves your problem.
clear all
% Input variables
x_initial = 0;
x_step = 0.01;
x_end = 5;
E = 200e9; % Pa
I = 8.333e-6; % m^4
wo = 1000; % N/m
% Moment as a function of x
M = @(x) (wo*x.^2.*(10-x).^2)/120;
% Call beam_deflection function
[X, y_true, y_num, error] = beam_deflection(x_initial, x_step, x_end, E, I, M);
% Plot results
figure
plot(X, y_true, 'r', X, y_num, 'b');
xlabel('x');
ylabel('Deflection');
legend('True deflection', 'Numerical deflection');
title('Beam Deflection');
function [X, y_true, y_num, error] = beam_deflection(x_initial, x_step, x_end, E, I, M)
% Calculates beam deflection using analytical and numerical integration methods
% Inputs:
% x_initial: starting value for x
% x_step: step size for x
% x_end: ending value for x
% E: modulus of elasticity
% I: moment of inertia
% M: function handle for moment as a function of x
% Outputs:
% X: array of x values
% y_true: array of true deflection values
% y_num: array of numerical deflection values
% error: array of errors between true and numerical deflection values
% Create array of x values
X = x_initial:x_step:x_end;
% Initialize arrays for y_true, y_num, and error
y_true = zeros(1, length(X));
y_num = zeros(1, length(X));
error = zeros(1, length(X));
% Calculate y_true for each x value using analytical integration
for i = 1:length(X)
x = X(i);
y_true(i) = integral(@(x) M(x)/(E*I), 0, x);
end
% Calculate y_num for each x value using numerical integration
for i = 2:length(X)
x = X(i);
x_prev = X(i-1);
theta_prev = M(x_prev)/(E*I);
theta = M(x)/(E*I);
y_num(i) = y_num(i-1) + ((x - x_prev)/2)*(theta + theta_prev);
end
% Calculate error for each x value
error = abs(y_true - y_num); % Calculate absolute difference
end

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by