PDE Toolbox FEA Units

26 views (last 30 days)
colton campbell
colton campbell on 30 Sep 2020
Commented: colton campbell on 14 Oct 2020
Perhaps I am not understanding the units analysis correctly, but what is the default unit behavior for the PDE toolbox? From my research it should be unitless/based upon your input values, correct?
My max stress seems to be off by a multiplier of 100 when compared to some other FEA tools... am I just missing something with my unit conversions or is there some underlying plot and VonMises stress behavior I don't understand?
Secondly, since my input geometry is mm and my input force is N I should get stress in N/mm^2, or MPa.... however, this can't be possible because these stress values would be astronomical! If they are in Pa then I am off by a factor of 100... if they are in MPa then it is FAR above what should be expected....
I looked at a list of the stress values, to ensure there are no nodal stress spikes from bad mesh, and it all looks smooth and continuous.

Answers (1)

Ravi Kumar
Ravi Kumar on 30 Sep 2020
Hello Colton,
You are right, PDE Toolbox does not have any units. Two things you can check again:
  1. You save E as 10300000 psi in the comment, which converts to about 7.1E10 Pa, this not the value you use for E.
  2. Note that surface traction also has the units of Pa, if your model is in mm, then you are applying 4448 N/mm^2, not 4448 N.
If you are exporting the STL from SolidWorks, you can set the unts to be in m to avoid all these conversion from m to mm.
Regards,
Ravi
  11 Comments
Ravi Kumar
Ravi Kumar on 2 Oct 2020
Hi Colton,
The beam calculation is a good idea. However, I think that might not exactly pinpoint what is the source of difference. Can you try this script and tell me what is the results your obtain for max VM stress:
model = createpde('structural');
model.Geometry = multicuboid(0.5,0.1,0.1);
figure
pdegplot(model,'FaceLabels','on')
generateMesh(model);
figure
pdemesh(model)
structuralBC(model,'Face',5,'Constraint','fixed');
structuralBoundaryLoad(model,'Face',2,'Pressure',1E6);
structuralProperties(model,'YoungsModulus',210E9,'PoissonsRatio',0.28);
R = solve(model);
figure
pdeplot3D(model,'ColorMapData',R.VonMisesStress)
disp('Max von Mises stress')
max(R.VonMisesStress)
Also, is it possible for you to compare this beam results to other tools you are using? Please also tell which version of MATLAB you are using. In many tools, reduced integration is enabled by default that could have a significant impact on the stress, so does any any special averaging mechanisms.
I looked at your original model, I notice that both your loaded and constrained faces are cylindrical. In this thread we also discussed dividing the load by area. Note that STL is a tessellated geometry, if you calculated area using perfect cylinder kind of face, then it brings in some discretization error. And second descretization error is about the100 or so bad elements in the mesh with mesh quality < 0.3. Would it be possible to share the original CAD model. If not, can you try to export the finer STL and see how big an impact does STL refinement (not mesh refinement) on the values.
colton campbell
colton campbell on 14 Oct 2020
In response to the STL quality, running the simulation with a higher tesselated STL didn't make any change for me unfortunately. On a side note, it is a big pain to select individual faces from a plot to choose constraint locations in complex geometry... is there no better way to do this?
I am using 2020b
When I run your code the stress output is: ans = 8.1630e+07

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!