Even though we still aren’t allowed to hang around our workshop, we’re still working intensively on our fs36 project. One section that had a lot of work put into it were the interface between strength verification and load calculation, along with the FEM model. These will be explained in more detail here.
In the past weeks, we developed a programme chain which would load values from our load calculation programme into our Abaqus/CAE FEM programme and automatically set the environment and parameters depending on said values. Just last summer, a member of the Akaflieg finished a Master’s thesis on the development of such a load calculation programme in the form of central MathCad programme chain. The design loads are calculated within this programme chain and output as a MathCad-legible text file. A Python script was developed to process said calculations even further.
Why Python?
The FEM programme we’re currently using, Abaqus/CAE, has a Python interface which allows for the programming of extensive modelling works. Python is more powerful and in terms of programming and cache administration more flexible than MathCAD, which works on a 32bit basis and doesn’t recognise variables. Nevertheless, we can’t completely forgo using MathCAD since its output in PDF is very well suited to the creation of official verification documents for the aviation office (Luftfahtbundesamt/LBA, Federal Aviation Office).
Since using FEM analysis as a means strength verification for the LBA isn’t possible at the moment, Python can be used without much fuss.
Programme Structure
To avoid the MathCad system, one last MathCAD programme was written into the chain, which outputs the loads along with their application points in a universally readable CSV file. These are then formatted with a VBA-Excel-Macro and loaded into a Python script. The loads from the load calculation programme apply to the centre of gravity of a multitude of parts and are distributed along the wing, flaps, and ailerons. These loads are, however, discretised much too finely for use in FEM calculations. In the above mentioned Python script, these loads are simulated on an application point every 50 millimetres in direction of span, which reduces the amount of points from over 800 to under 190. Next, the resulting loads (both the forces themselves and the moment they cause, along with their points) are output as a Python readable .npy-file. These are then loaded into a further script which regulates the automatic transfer to Abaqus/CAE. This script sets the application points as reference points in Abaqus, connects these to the surfaces in the model, and creates forces and moments which apply to said points. As the next step, the script determines the lateral forces in the direction of the x-axis and, depending on the load conditions, blocks movement in the direction of the y-axis for the forward and/or the aft lateral force bolts.
What comes next?
At the same time, we are working on a second iteration of the CAD model to help us create a new FEM model. Implementing the above Python script on this new model is pretty high on our to-do-list. We’re working with the assumption that the results will at least be partially applicable to the final design iteration as the wing planform and profile of the second iteration will be much closer to the expected final design. The next step would be to verify the feasibility of applying current results for highly loaded regions, such as the wing rootand spar ends, for the final iteration. Other possibilities are also open to us, and working on program structures for certain fields, such as Aeroelastic Tailoring, which can be applied on the final design iteration, is something we won’t ignore.
Author: Moritz Habermann
Funded by the Federal Ministry for Economic Affairs and Climate Action