Elastic plate solver for panel speaker simulation

Numerical methods and mathematical models of Elmer
pwray
Posts: 31
Joined: 11 Nov 2022, 05:59
Antispam: Yes

Elastic plate solver for panel speaker simulation

Post by pwray »

Ive been playing with the elastic plate solver from Python, to attempt to model aspects of the response of panel speakers driven by moving coil exciters. I am not a mechanical engineer and have no background in continuum mechanics or FEM. This is just a personal hobby project.

It was relatively easy to get started with the elastic plate solver to get the eigenfrequencies, and to drive the meshing from Python to investigate different shapes, but I now I would like to go further.

1) There are some additional boundary conditions mentioned in the solver guide beyond clamped, free and simple support. For example 'soft simple support'. What is the meaning of soft simple support, and how is it applied to a boundary in the sif file?

2) Can I use the elastic plate solver to do an harmonic analysis (AKA dynamic analysis / frequency response analysis?) where a sinusoidal force is applied? It does not seem so from the options stated in the guide. (No specification of frequency for example).

3) Can the simple 2D elastic plate model be embedded in a 3D mesh for helmholtz or BEM for estimation of sound power output? (Presumably not unless the answer to 2) is "yes".

4) If I were to try to use the general elastic model with a 3D mesh, would that be the equivalent of the Mindlin plate model, in terms of accounting for shear stress and rotational inertia? This would be much more difficult for me as it seems I need to estimate all the stress tensor values. There is an example of modelling a tuning fork at https://computational-acoustics.gitlab.io/website/.

Sorry for the barrage of questions, I can ask them separately if that is preferable.
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Elastic plate solver for panel speaker simulation

Post by kevinarden »

several examples in the test cases of plate harmonic analyses
https://github.com/ElmerCSC/elmerfem/tr ... esHarmonic
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Elastic plate solver for panel speaker simulation

Post by kevinarden »

4) I don't know why you would have to estimate the stress tensor values for a 3D Mesh, Elmer will calculate them for you. A 3D mesh can represent the plate if meshed correctly.
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Elastic plate solver for panel speaker simulation

Post by kevinarden »

You may want to review this discussion
viewtopic.php?t=7833&hilit=speaker
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Elastic plate solver for panel speaker simulation

Post by raback »

Hi

1) When you say "soft simple support" to which code are you referring to? In the plate solver you can set the displacement to desired value, and its derivatives (components 2 & 3) to zero (maybe giving "clamped"?). If you would set nothing that's obviously "free".

2) Yes. Any solver in Elmer that can be run as transient should work also as harmonic & eigenmode. You can copy ideas from test cases:

Code: Select all

elmeruser@elmeruser-VirtualBox:~/elmerfem/fem/tests$ grep SmitcSolver -ri
PlatesHarmonic/plates.sif:  Procedure = "Smitc" "SmitcSolver"
platesEigen/plates.sif:  Procedure = "Smitc" "SmitcSolver"
PlatesHarmonic3/plates.sif:  Procedure = "Smitc" "SmitcSolver"
ShoeboxFsiStaticPlate/case.sif:  Procedure = "Smitc" "SmitcSolver"
PlatesEigenComplex/plates.sif:  Procedure = "Smitc" "SmitcSolver"
PlatesHarmonic2/plates.sif:  Procedure = "Smitc" "SmitcSolver"
ShoeboxHarmonicPlate/case.sif:  Procedure = "Smitc" "SmitcSolver"
ShoeboxFsiHarmonicPlate/case.sif:  Procedure = "Smitc" "SmitcSolver"
ShoeboxStaticPlate/case.sif:  Procedure = "Smitc" "SmitcSolver"
LimitPlate/case.sif:  Procedure = "Smitc" "SmitcSolver"
plates/plates.sif:  Procedure = "Smitc" "SmitcSolver"
3) Hierarchical or strongly coupled? Yes and yes. Sound power output is not automated you should integrate pressure over some boundary probably.

4) The main difficulty for using generic 3D would probably come from the challenging aspect ratios. Very thin 3D elements do not lead to nicely converging linear systems and the number of degrees of freedom quickly becomes computationally expensive. If you try have plates or shells it makes sense to use the appropriate equations.

-Peter
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Elastic plate solver for panel speaker simulation

Post by kevinarden »

1) I believe he is referring to

9.1.3 Boundary conditions
The following boundary conditions can be applied in the Reissner-Mindlin plate model:
• Soft fixed edge: w = 0 and θ · n = 0
• Hard fixed edge: w = 0 and θ = 0
• Soft simply supported edge: w = 0
• Hard simply supported edge: w = 0 and θ · t = 0
• Free edge: m · n = 0 and (q + T · ∇w) · n = 0

It isn't immediately clear that Displacement 1 is transverse to the plate, Displacement 2 is the rotation in the x direction, and displacement 3 is the rotation in the y direction. These can be set to 0, values, or left free.

It can be confusing in Paraview because Paraview assumes it is delection in the X, y, and z and defaults to a magnitude display. If you want to see the transverse deflection you have to change magnitude to X.

The GUI also has Displacement Condition 1, Displacement Condition 2, Displacement Condition 3, which I have not quite figure out yet.
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Elastic plate solver for panel speaker simulation

Post by raback »

Hi,

Any field with BC like "Varname Condition" means that a Dirichlet condition is applied conditionally only if the value of the keyword is positive. Say, you could have temperature for inlet velocity (v_x>0) defined only for incoming velocity. For outgoing it does not make sense...

Code: Select all

  Temperature = Real 300.0
  Temperature Condition = Equals "Velocity 1"
-Peter
pwray
Posts: 31
Joined: 11 Nov 2022, 05:59
Antispam: Yes

Re: Elastic plate solver for panel speaker simulation

Post by pwray »

Thanks for all the responses! It's great to know I can do harmonic analysis without moving to a new model.

Regarding the soft simple support, do n and t stand for normal and tangential? Is there a diagram to show how those bcs work, or an explanation as to what it means in practical terms?

If I had a rectangular plate, I suppose different bc specifications would be required for top vs side to apply those bcs which specify rotation around x or y axis?

Thanks
Paul
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Elastic plate solver for panel speaker simulation

Post by kevinarden »

If it is a clamped plate all edges can have displacement 1,2,3 at 0. If its simply supported all around then only 1 = 0 is needed. Note that it isn't rotation around the x and y axis it is rotation in the x and y directions. Displacement 2 is rotation about the y and and displacement 3 is about the x axis. So D1,3 = 0 at the bottom and top are clamped for those edges if the model is inx y plane.
pwray
Posts: 31
Joined: 11 Nov 2022, 05:59
Antispam: Yes

Re: Elastic plate solver for panel speaker simulation

Post by pwray »

Thanks Kevin
I have used D1=0 for simple support, I have left all displacements unspecified for free, and I set all D1, D2, D3 to 0 for clamped.
Those settings seemed to work as expected.

I know its not rotation about an absolute 'axis' itself, I should have been more specific. I'm picturing lines through the element parallel to the axes, which for brevity I called 'the axis'.

I am guessing now that in the terminology of the manual (please correct me if I'm wrong :) :
D1=0 specifies 'soft simply supported edge', which is practically speaking what you would get if you were to have a weightless, perfect hinged or taped joint at those edges of the plate.
D1=D2=D3=0 specifies 'hard fixed edge', which is what you would get if you were to clamp those edges (or rather, the plate material 'beyond' those edges) immovably in a 'perfect' vise.

For 'soft fixed edge' I guess we are (i) preventing displacement normal to the elements along the edge, and (ii) preventing rotation around the edge. But (iii) alowing rotation of the element around a direction perpendicular to the edge in the plane of the element?
From what you have said, I suppose this would be specified as D1=D3=0 for top and bottom of a rectangular plate, and D1=D2=0 for left and right sides of a rectangular plate. I dont have a good picture of this, or of what it means practically, because it seems to me it would be effectively identical to 'hard fixed edge', since even though elements can rotate in one direction, there can be no accumulated displacement, so any effect would be confined to individual elements. So I dont have a good grasp of what this means.

Similarly for 'hard simply supported edge', I suppose D1=D2=0 for top and bottom, and D1=D3=0 for left and right? But again Im guessing, and I don't understand how such a constraint could be practically implemented, or whether it makes any real difference.
Post Reply