Moment as boundary FEA structuralBoundaryLoad partial differential equation toolbox
5 views (last 30 days)
Show older comments
jose daniel hoyos giraldo
on 10 Jan 2022
Commented: jose daniel hoyos giraldo
on 10 Apr 2022
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!
0 Comments
Accepted Answer
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
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!