Matlab-Femset

Ein neues Element hinzufügen und testen

Der Aufruf von C-Funktionen aus Matlab ist für den Matlab-Anwender recht komfortabel, wenn die erforderlichen Interface-Routinen (“Mex-Files”, aus denen DLLs erzeugt wurden) verfügbar sind. Diese werden mit dem Matlab-Femset-Interface bereitgestellt.

Der umgekehrte Weg, Matlab-Functions aus C-Programmen aufzurufen, ist prinzipiell auch möglich, kann aber kaum empfohlen werden. Deshalb wird für das Ergänzen von Element-Steifigkeitsbeziehungen hier ein anderer Weg beschrieben.

Die Element-Skelett-Funktion emstif_f.c

In der C-Version von Femset wird für die Entscheidung, für welchen Elementtyp die Element-Steifigkeitsbeziehung aufgebaut werden soll, folgende Strategie verfolgt:

  • Wenn eine Elementtyp-Matrix (ungleich Null-Matrix) zum Berechnungsmodell gehört, werden die darin verzeichneten Elementschlüssel der vordefinierten Elemente zum Ansteuern der passenden Funktion abgefragt.
     
  • Wenn keine Elementschlüssel existieren, wird zunächst die Skelett-Funktion emstif_f aufgerufen, die mit ihrem Returnwert aber “Misserfolg beim Aufbau der Element-Steifigkeitsmatrix” signalisiert.
     
  • Schließlich wird versucht, aus der Element-Charakteristik zu entnehmen, für welchen Elementtyp die Element-Steifigkeitsbeziehung aufgebaut werden soll.

Wenn also die Dummy-Funktion emstif_f.c durch eine Funktion ersetzt wird, die eine Element-Steifigkeitsbeziehung aufbaut und mit ihrem Returnwert “Erfolg” signalisiert, dann kann man wegen der oben beschriebenen Aufruf-Hierarchie einen neuen Elementtyp testen, weil emstif_f immer dann aufgerufen wird, wenn keine Elementtyp-Matrix definiert ist.

Deshalb wird folgender Weg empfohlen für das ...

Testen eines neuen Elementtyps

  • Die Element-Steifigkeitsbeziehung wird als C-Funktion emstif_f.c geschrieben (durch Erweitern des Skelett-Files, wobei man die C-Funktionen für die vordefinierten Elemente als Beispiele heranziehen sollte).
     
  • Zum Matlab-Femset-Interface gehört eine “Mex-Function” t_femalg.c (entspricht der Quellcode-Datei, mit der die wichtigste Interface-DLL femalg_m.dll erstellt wurde). Diese wird mit dem “Mex-Compiler” übersetzt, der alle Referenzen auflöst, weshalb ihm die kompletten Femset-Bibliotheken (femset_f.lib und femtnw_f.lib) verfügbar gemacht werden müssen. In femset_f.lib würde der “Mex-Compiler” auch die Funktion emstif_f finden. Wenn man dem Compiler aber vorab die neue Funktion emstif_f.c anbietet, dann übersetzt er diese und bindet sie in die entstehende DLL ein.
     
  • Mit der Anweisung

mex t_femalg.c emstif_f.c femset_f.lib femtnw_f.lib

    wird die neue DLL  t_femalg.dll  erzeugt, die dann an Stelle von femalg_m aus Matlab aufgerufen werden kann.

Der gesamte Weg des Einbaus und Tests eines neuen Elements wird am Beispiel “Konische Welle” beschrieben.

Homepage MatlabFemset

www.JuergenDankert.de

D

nkert.de