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?
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
采纳的回答
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 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!