Step-by-Step Tutorial: Homework of Session 4 - Level 1


#1

NOTE: This tutorial was updated on 10/2016 to match the updated version of the platform

If you would like to watch the fourth session of the Drone Workshop again or in the case you missed it, you can access the full recording below.

Background:

Much effort is going into the investigation of vibrations when developing an aerial vehicle. Of further interest here are two main aspects: What are the design-dependent natural frequencies of the vehicle (eigenfrequencies) and how does the drone reacts to external periodic excitations at this specific frequencies.

This information are important to improve the dynamic stiffness of the drone while operating and to avoid long-term harm to the material like fatigue fractures.

Exercise:

To perform such a vibration analysis it is therefore necessary two run two different simulations. According to the preliminaries of the preface we will first run a Frequency Analysis to identify the eigenfrequencies of the drone design. This results will be used in Level 2 for the correct simulation setup.

Step-by-Step-Instructions:

Meshing:

First of all you have to import the geometries into your SimScale workspace. For this, you only have to click on this link and a project with everything you need will be added to your workspace. ease note that this can take several minutes. By default you will be in the Mesh Creator tab.

  • Click on the New Mesh item in the project tree. This will open an additional column in the middle.

  • Select Tetrahedral with local refinement from the list and define following parameters:
  • Name: Mesh
  • Maximum mesh edge length: 0.002
  • Minimal mesh edge length: 0.0008
  • Overall mesh fineness: 2 - Coarse
  • Activate NETGEN3D: True
  • Number of processors: 8

  • Save the settings by clicking on Save button.

Now we have defined a range for the base mesh size which is fine for regions where we are not expecting high stress. Here you should keep in mind that, in general, the mesh size is related to the local accuracy of the simulation. It is therefore necessary to refine the mesh in those areas where high stresses are expected.

We will now apply local refinements on faces where we expect high stresses.

  • Click on the New button near the Mesh Refinements option which will add a new sub-item to the project tree. Now you can specify the mesh refinement.
  • Name: High Stress Zone Refinement
  • Maximum mesh edge length: 0.0008
  • Minimal mesh edge length: 0.0008
  • Overall mesh fineness: 3 - Moderate
  • Next, select the faces you want to apply this refinement by using the list below. Since the face selection would take lot of time for this mesh, we have prepared a ready-to-use face set. To use this sets, please change the Filter for entity type to face sets and select refinement_set_1, refinement_set_2 and refinement_set_3.
  • Finally Save the settings.

  • Now our mesh is ready for computation. Click on the Mesh in the project tree and click the Start button. The meshing job will start in a few moments and all computation is done via cloud computing.

Once the mesh computation is completed, finished status will appear in the lower left corner.

Simulation Setup

  • After the mesh is completed we will set up the simulation. Click on the Simulation Designer button in the main ribbon bar.

  • Click on the New button to create a simulation.

This will open an additional column in the middle. Here you can select the type of simulation you want to run. In our case we will run a Frequency Analysis simulation.

  • Select Frequency Analysis option and then Save the settings.

Domain

Next you have to specify which mesh you want to use for your simulation. Click on the Domain item in the project tree and select QuarterModel_separatedScrews mesh from the menu which disappears in the middle column. Don’t forget to Save your selection.

Topological Entity Sets

Before proceeding with the simulation setup we will create Topological Entity Sets which we will use for the next steps. They allow to group multiple entities from the same type.

We will create four different face sets by selecting the faces we want to group graphically.

Contact_Zone_1 (14 faces)

This face set should contain all Master entities for the contact definition. To be able to select the surfaces it is necessary to hide some of the volumes of the mesh.

  • Hide therefore the following volumes by clicking the eye symbol: volumeOnGeoVolumes_0, volumeOnGeoVolumes_1, volumeOnGeoVolumes_2, volumeOnGeoVolumes_3.

  • Go to Topological Entity Sets in the project tree and then select all the 14 faces which are needed. Please use the images below to identify the faces you need.

  • Click on New from selection and give it a suitable name - Contact_Zone_1 (optional).

Contact_Zone_2 (18 faces)

This face set should contain all Slave entities for the contact definition. To be able to select the surfaces it is necessary to hide some of the volumes of the mesh.

  • Hide therefore the following volumes by clicking the eye symbol: volumeOnGeoVolumes_4, volumeOnGeoVolumes_5

Now you are able to select the 18 faces which are needed. Please use the images below to identify the faces you need.

  • Click on New from selection and then give this set a suitable name - Contact_Zone_2 (optional).

In the following we will define two Topological Entity Sets for the two symmetry planes. Please note that for frequency and harmonic analysis it is necessary to not ‘overcontraint’ the simulation. You should therefore NOT include the faces of the battery to this face set.

YZ_Symmetry_Plane (5 faces)

This face set should contain all faces of the drone chassis (volumeOnGeoVolumes_5) which are in the YZ symmetry plane.

  • Select the faces according to the image below and create the entity set following the same steps as above.

  • Specify the name to be YZ_Symmetry_Plane.

XY_Symmetry_Plane (4 faces)

This face set should contain all faces of the drone chassis (volumeOnGeoVolumes_5) which are in the XY symmetry plane.

  • Select the faces according to the image below and create the entity set following the same steps as above.

  • Specify the name to be XY_Symmetry_Plane.

You can see all the created topological sets in the figure below.

Contacts

Since we are simulating an assembly of two parts, it is necessary to define Contacts which are describing the kinematic behaviour of the parts.

  • Click on the Contacts item in the project tree which will open a new middle column menu where you can add new contacts by clicking on the New button.

In contrast to the last two homeworks, today we will define all kinematic dependencies in one contact.

Contact

In this contact we will fix the assembly made of the battery, the frame, the screws, the engine and the propeller. Instead of selecting the faces for master and slave entity from the list or graphically we will use the face sets we created some minutes ago.

  • Specify the following parameters:
  • Name: Contact
  • Type: Bonded Contact
  • Master entity: Contact_Zone_1
  • Slave entity: Contact_Zone_2

Model

Next we have to define the physical model we want to use for this simulation.

  • Click therefore on the Model item in the project tree which will open a middle column windows. Here you can define the gravitation.

  • Specify the following parameters:

  • Magnitude: 9.81
  • x value: 0
  • y value: -1
  • z value: 0

Materials

Now we define and assign material properties to the different parts.

  • Click on the Material item in the project tree. This will open a middle column menu where you can edit and create materials and assign them to volumes. Click on the New button

Now you can define your new material based on your own material properties or access our Material Library which includes ready-to-use material models for several materials.

We will start with the manual definition of materials:

ABS Thermoplastics

  • Specify the following parameters:
  • Name: ABS Thermoplastic
  • Young’s Modulus [N/m2]: 1800000000
  • Poisson’s ratio: 0.35
  • Density [kg/m3]: 1040
  • Assign it to the drone body and the propeller (volumeOnGeoVolumes_4, volumeOnGeoVolumes_5) and finally Save the settings.

  • Add an additional material to your project tree for defining the next material.

Battery

  • Specify the following parameters:
  • Name: Battery
  • Young’s Modulus [N/m2]: 70000000000
  • Poisson’s ratio: 0.34
  • Density [kg/m3]: 2500
  • Assign the material to the battery of the drone (volumeOnGeoVolumes_0)and finally Save the settings.

Steel

Next we will assign the steel material model to the screws and the engine. Add an additional material to your project tree.

Now we will access our material library instead of creating the material model manually.

  • Click on the Import from material library which will open a widget.

  • Please select steel from the list on the left side and save your selection by clicking the related button.

  • Now assign the material to the screws and the engine (volumeOnGeoVolumes_1, volumeOnGeoVolumes_2, volumeOnGeoVolumes_3).

Boundary Conditions

Next we can start to define the boundary conditions.

There are two kinds of boundary conditions for structural simulations.

  • Constraint conditions are used to limit the degrees of freedom of the model.
  • Load conditions are applying an external load to the model

Due the fact that this is only a frequency analysis we only need to define two constraint boundary conditions (external loads are not important at this stage)

Symmetry XY-plane

This boundary condition is required because we are using a quarter model of the drone.

  • Create a new constraint boundary condition by first clicking on the Constraint and then on New button.

  • Specify the following parameters:

  • Name: Symmetry XY-plane
  • Type: Fixed Value
  • x displacement: unconstrained
  • y displacement: unconstrained
  • z displacement: prescribed with a value of 0
  • Finally, assign the boundary condition to the face set XY_Symmetry_Plane and then Save.

Symmetry YZ-plane

This boundary condition is required because we are using a quarter model of the drone.

  • Create a new constraint boundary condition same as above.
  • Specify the following parameters:
  • Name: Symmetry YZ-plane
  • Type: Fixed Value
  • x displacement: prescribed with a value of 0
  • y displacement: unconstrained
  • z displacement: unconstrained
  • Finally, assign the boundary condition to the face set YZ_Symmetry_Plane and then Save.

Numerics and Simulation Control

Numerics, which is the next item in the project tree, can be skipped since the default settings are fine.
Click on the Simulation Control item in the project tree to specify how fast and accurate you want the simulation to be computed and change the Number of computing cores to 8 in order to accelerate the simulation.

Simulation Runs

  • To start the simulation, click on the Simulation Runs item in the tree and click on the New button at the top of the middle column menu. This will create a snapshot of your simulation settings as a new sub-item.

  • You can now start the simulation run by selecting it from the project tree and then click on the Start button.

Once your simulation is finished, please click on the Post-Processor button in the main ribbon bar.

Post Processing

Now we will take a look at the results of our simulation. Since we are interested to find out the eigenfrequencies of the drone, we will not perform a 3D post processing.

Please click on the Eigenfrequency plot sub-item in the project tree. This will open a graph which shows the first 10 eigenmodes and the related eigenfrequency.

You can also access a table with the eigenfrequencies by clicking the Eigenfrequency table item in the project tree.


Step-by-Step Tutorial: Homework of Session 3 - Level 2
#2

#3

#4

Hello, I was not able to import the project into my workspace by clicking on the following link https://platform.simscale.com/?publiclink=849e8329-99e5-4b75-be81-f5d266664abe&_ga=1.187794088.1889366876.1438276513
Is this the correct link? Thank you!


#5

Hi,

Sorry, there is a wrong link on the website. We will fix it asap and in the meantime you can find the correct link in the tutorial above.

https://platform.simscale.com/?publiclink=6358940a-0b74-40c8-856c-0ad1511f56b9

Cheers,

Milad


#6

A small conceptual remark: it is unnecessary to specify gravity as described in the tutorial:

Next we have to define the physical Model we want to use for this simulation. Click therefore on the Model item in the project tree which will open a middle column windows. Here you can define the gravitation.

Magnitude: 9.81
x value: 0
y value: -1
z value: 0

Natural frequencies (eigenfrequencies) are NOT dependent on the WEIGHT: if you go on the moon, with different gravity, you will find exactly the same vibration frequencies and modal shapes. However, the drone will not be able to fly, in lack of atmosphere :wink:

I found a limitation in the solver that is rather disturbing: the solver complains about “over constrained” nodes if I select also the battery faces relevant to symmetry condition:

At least one node is overconstrained for the current settings. Please check your boundary conditions for incompatible settings.

More specifically:

*ERROR in cascade: the DOF corresponding to
node 2584 in direction 3 is detected on the
dependent side of a MPC and a SPC

There seems to be a limitation: I suspect the nodes (on the battery) in which both the symmetry and contact slave conditions are defined.


#7

@Milad_Mafi Thank you for the new link.

I am trying to compare my eigenfrequencies with the result in the tutorial, and found some differences.
First of all, I only got eigenmode 2 to 10, although I requested 10 modes to be calculated. Some of the modes have a frequency very close to the result in the tutorial, but the first three have bigger differences. I ran the simulation again. This time I got 10 eigenmodes, but still only some of them are close to the frequencies in the tutorial. I wonder if this uncertainty is the nature of calculating eigenfrequency by numerical simulation. What parameter could be used to increase the “accuracy” of eigenfrequency?

Could someone please take a quick look at my result here? Thank you very much!

https://platform.simscale.com/?publiclink=c725f711-1047-45fa-98b4-a0f5058f7e18


#8

Contact Zone 2 shows 18 entities in the tutorial screenshots, however I believe 1 entity is left out: faceGroupOnGeoFaces_208.

This is the underside of the propeller bolt looking from the top. As shown in the tutorial, only the bevels at that point are included. Running the simulation with it included gives a similar shape to the eigenfrequency calculations, however of interest to me was that some values were the same, but some were not.


#9

I have two questions.

  1. Why we don’t select battery faces when we are making XY/YZ Symmetry Plane. There is information about “overconstraining”, but i don’t understand it. If there would be displacement in battery and we have it without symmetry constraint we would have hole inside battery.
  2. How to tell which facesare master and which are slave ? Slaves are “outside” ?

#10

Hello @michele,

thx for your remarks. You are correct that the eigenfrequencies/eigenmodes only depend on the stiffness of a body and are not directly dependent on the mass. Still an elastic body that is loaded by a force or an volumetric load behaves differently than an unloaded structure. In this case the load has to be regarded in a static step first and that is exactly what is done in the simulation. Due to the static load the stiffness matrix changes and thus also the eigenfrequencies and eigenmodes.

If you design springs that support a huge load, like anti-oscillation systems in building etc. you have to take that into account. Of course the gravitational load is rather small and will not influence the results heavily. You can have a look at the following example project of a spring with different loading types:

https://platform.simscale.com/?publiclink=f1c168b7-c9b2-4681-a941-9f160be4a67d

You can see there that the gravity forces a rather small displacement compared to the applied pressure load in the third simulation. I added the static simulations as well, so that you can see what is executed before solving the eigenvalue problem.

The differences in the eigenfrequencies are rather small, but still considerable.

I hope that explanation helps. You can also have a look at the boundary condition part in the frequency analysis documentation:

https://www.simscale.com/docs/content/simulation/analysis_types/frequencyAnalysisDescription.html

Regarding the issue with the overconstrained nodes:

This is exactly how you described it, as some nodes are lying on the slave entity of the contact pair and are additionally constrained by a displacement condition, the solver can not resolve the displacement solution for the respected degrees of freedom anymore. To overcome that behavior one can resolve the bonded contact by fusing the respective parts in the first place or create a non-manifold in order to preserve the different volumes for material assignment. This will result in a conform mesh. We are also working to resolve this issue by excluding the respective edges nodes from one constraint.

All the best

Alex


#11

Hey @yul1,

I had a quick look at your simulation, but couldn’t dig deep into it so far. What you have to consider when only applying the symmetry conditions, so leaving the drone in a statically indeterminate state is that you have rigid body motions to consider as the first eigenfrequencies of the system. You can check on the rigid body motion in y-direction in your first simulation, that has a rather small eigenvalue (order e-02, e-03).

In reality of course the correct value is exactly zero as the stiffness matrix has zero eigenvalues for rigid body motions (infinite wave length) and becomes singular at that point.

The simulation behaves not very stable at that point. Also the load in the static step does not really make sense (gravity) as the structure is not fixed and is simple moved, although this should not change the stiffness matrix as it is a rigid motion. I hope this already helps.

All the best

Alex


#12

Hey @acros787,

have a look at @michele’s post and also my reply regarding the overconstrained nodes. If you want to read about some general rules of thumb regarding master-slave definition, you can check out the documentation of physical contacts (contact equations are resolved during solution time once the contact faces touch):

https://www.simscale.com/docs/content/simulation/model/physical-contacts.html

In principle this holds also for contact constraints (simply connecting degrees of freedom of the mesh parts, tying them together.

Cheers Alex


#13

I was running two runs with the same parameters, but the results are not the same.
Could you please take a quick look at my result here?
https://platform.simscale.com/?publiclink=11ebda96-ea94-46c0-b8e5-35190aa81b05

Thank you very much!


#14

Hi @icukor,
I think your question is the same as the one by asked @yul1 which was answered by @afischer in post 11.

Best,
Richard


#15

Hi,
When I click import project: Level 1 it goes to my simscale platform and nothing happens. I had never such a problem before (in case of 1st,2nd and 3rd session)
Best,
Lukasz


#16

I made 3 runs and merged the graphs into one. Looks a bit crude but you should be able to get the idea:

Edit: I did dumb, enjoy the fancy picture.

-Juhana


#17

it seems that my results are higher frequencies. Does anybody else have this? I already doublechecked the materials and settings.
Checking the simulation it gives out a warning:
Warning: The computation is not carried out in parallel for the selected solver. Please choose Spooles for parallel computation.

In the numerics the only solver available is Arpack. correct?

I’ll take a deeper look into it tomorrow evening…


#18

Hi @icukor, @yul1, @Juhana
and all others that experienced varying eigenfrequencies in consecutive runs with the same setup.

We took a closer look into that issue and it seems not to be related to the simulation setup (statically undefined system, pre-stress,…) .
Until we fixed the source of the problem we recommend you to only use 1 core for any eigenfrequency analysis.
When running the analysis on one core we never experienced variations in the results.

If you still encounter varying results on the same setup using 1 core, please report this to us.
I’ll keep you updated when we resolved the issue.

Best,
Richard