Moment as boundary FEA structuralBoundaryLoad partial differential equation toolbox

13 views (last 30 days)
Hello everybody. I found that there is no options for add momentum loads in structural analysis using structuralBoundaryLoad in the partial differential equation toolbox, there are just pressure, surface traction and force. For instance, I want to apply a moment in Z axis at the tip of a beam.
Is there something I missed or is this a serius limitation of the package.
Thank you!

Accepted Answer

Ravi Kumar
Ravi Kumar on 19 Jan 2022
Edited: Ravi Kumar on 19 Jan 2022
I am assuming you are asking about moment loads and not momentum loads. PDE Toolbox supports tet elements with displacement DoFs. There are no rotational DoFs, like beam elements, to apply moment load directly. However, you can use surface traction that is equivalent to the moment. Here is an example with a simple cylindrical beam.
model = createpde('structural','static-solid');
model.Geometry = multicylinder(0.1,1);
figure(1)
pdegplot(model,'FaceLabels','on')
structuralProperties(model,'Cell',1,'YoungsModulus',200e9 * 0.0254^2,'PoissonsRatio',0.3);
%% Boundary conditions. Clamp one extreme.
structuralBC(model,'Face',1,'Constraint','fixed');
%% Surface traction to create a bending moment at the end
bendingMoment = 1;
forcing_function = @(region,state) momentForcingFunction(region,state,bendingMoment);
structuralBoundaryLoad (model,'Face',3,'SurfaceTraction',forcing_function);
%% Create mesh
generateMesh(model);
% Plot the mesh
figure(2)
pdemesh(model)
%% Solve
R = solve(model);
%% Output
% Displacement
figure(3)
pdeplot3D(model,'ColorMapData',R.Displacement.Magnitude,'Deformation',R.Displacement)
title('displacement')
%% Define a function to provide its handle as input to SurfaceTraction
function sf = momentForcingFunction(region,~,M)
% the structure "region" refers to the spatial coordinates to define a
% nonuniform surface traction. the second argument (not used here) would be
% necessary for time-varying loads.
% Bending moment
%M = 1; %
% Diameter
d = 0.2;
% y-coordinate
y = region.y;
% A normal (z-direction) surface traction that varies linearly with y
% represents the effect of a bending moment
sf = [zeros(size(region.x));
zeros(size(region.y));
- 64 * M * y / (pi * d^4)];
end
  2 Comments
jose daniel hoyos giraldo
jose daniel hoyos giraldo on 10 Apr 2022
@Ravi Kumar Hello. Would you mind giving me a further explanation, please?
I'm trying to apply a twisting moment to an H beam fixed at root.
Thank you!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by