Simple compression of cylinder- results of finite element model don't make sense

11 次查看(过去 30 天)
I am trying to simulate the steady state compression of a cylinder using finite element analysis. The model that I have runs, but the results don't make sense to me. It seems that the cylinder flattens almost down to zero height, no matter how weak of the compression force or how stiff the cylinder's material. I am a beginner to solid mechanics so perhaps this has to do with solving at steady state, or alternatively is there an error in my model that I am not able to see?
%% Declare pde
model = createpde('structural','static-solid'); %declare the model and physics
%% Cylindrical geometry
gm = multicylinder(0.025,0.025); %25mm diameter, 25mm height
model.Geometry = gm; %assign the cylinder to the model
generateMesh(model); %mesh the model
%Plot the geometry
figure
pdegplot(model,'FaceLabels','on')
%% Mesh it
fineness = 5e-3; %1mm element size, roughly
generateMesh(model,'Hmax',fineness);
%Plot the mesh
figure
pdeplot3D(model)
title('Mesh with Quadratic Tetrahedral Elements');
%% Define material props
structuralProperties(model,'YoungsModulus',1e12,'PoissonsRatio',0.49);
%% Define boundary conditions
structuralBC(model,'Face',1,'Constraint','fixed'); %bottom of cylinder is fixed
load = 1; % applied pressure in Pascals
structuralBoundaryLoad (model,'Face',2,'SurfaceTraction',[0;0;-load]); %Front face has a distributed load in minus z direction (compression force)
%% Solve
result = solve(model);
%% Plot the deformed object
figure
pdeplot3D(model,'ColorMapData',result.VonMisesStress, 'Deformation',result.Displacement)
axis on
cylinder mesh.png
cylinder deformation and stress.png
  1 个评论
Clay Swackhamer
Clay Swackhamer 2019-4-8
Update: I think that the problem is how I am applying the boundary condition to the bottom of the cylinder. I would like to simulated compression of a soft cylinder against a ridid plate. Can I specify that this boundary should be supported (ie a normal force updards to maintain static equilibrium) without requiring that the edges of the cylinder cannot spread out?

请先登录,再进行评论。

采纳的回答

Ravi Kumar
Ravi Kumar 2019-4-8
Hi Clay,
Your BCs are correct. I think the load you are applying is resulting in very small defomration. This is causing the default scaling factor to be very large and deforming the plot excessively. You can fix by applying the correct magnitude. If that still does not resolve the plot the stress with out 'Deformation' option and then manually find a appropriate sclae factor to observed the deformation by trying out few values as:
pdeplot3D(model,'ColorMapData',result.VonMisesStress, 'Deformation',result.Displacement,'DeformationScaleFactor',1)
Regards,
Ravi

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by