Der kleine Fehler und die Folgen
Ein typischer Fehler bei Finite-Elemente-Berechnungen ist die falsche Modellierung der Lagerung. Wenn man versehentlich in dem oben zu sehenden Script in Zeile 8 nur eine Ziffer ändert und
kr(3,1) = 1 ;
an Stelle von kr(3,2) = 1 ; schreibt, dann bedeutet das, dass das linke Lager nicht mehr die vertikale, sondern die horizontale Verschiebung verhindert (nebenstehende Graphik). Solch ein Fehler ist typisch auch für die interaktive Erzeugung von Finite-Elemente-Modellen über die Benutzer-Oberfläche von FEM-Programmsystemen.
Dieses (nun falsche) Modell beschreibt eine nicht tragfähige Konstruktion, denn es sind unendlich kleine Starrkörper-Drehungen um das rechte Lager möglich. Für die Generierung des Finite-Elemente-Modells bedeutet das, dass ein lineares Gleichungssystem mit singulärer (und damit auch nicht mehr positiv definiter) Koeffizientenmatrix entsteht.
Der Anwender darf hoffen, dass er auf die Fehlerhaftigkeit seines Modells bei der versuchten Lösung des Gleichungssystems aufmerksam gemacht wird. Es ist für ihn schon schlimm genug, dass er in der Regel nicht die Ursache, sondern nur eine Meldung wie "Steifigkeitsmatrix ist nicht positiv definit" erfährt, aber wenigstens dieses Indiz erwartet er.
Nebenstehend ist das Command Window mit den Ergebnissen dieser Rechnung zu sehen:
- Die FEM-Rechnung zeigt die erwartete Reaktion und bemängelt die Steifigkeitsmatrix.
- Das Iterationsverfahren pcg erkennt zwar nicht die Singularität, weil es aber aus anderem Grunde nicht konvergierte, warnt es vor dem (falschen) Ergebnis, das abgeliefert wird.
- Der Matlab-Standard-Solver spricht keinerlei Warnung aus, liefert ohne Hinweis ein völlig unsinniges Ergebnis.
- Auch die Cholesky-Zerlegung äußert sich nicht, so dass es für den Anwender so aussieht, als wäre die zu zerlegende Matrix positiv definit.
- Da verwundert es schließlich auch nicht, dass für die Determinante ein riesiger Wert abgeliefert wird (Singularität bedeutet ja eigentlich: Determinante hat den Wert Null).
|