Können zwei verschiedene Modellierungsprogramme verwendet werden, um die Ergebnisse voneinander zu bestätigen?

8

Computermodelle

Computermodellierung wird in verschiedenen technischen Bereichen eingesetzt. Ich betrachte speziell die Strukturanalyse oder Finite-Elemente-Analyse (FEA). Manchmal werden Modelle verwendet, um sich wiederholende Berechnungen zu beschleunigen, die von Hand durchgeführt werden können. Manchmal werden Modelle verwendet, um Berechnungen durchzuführen, die nicht einfach oder gar nicht von Hand durchzuführen sind.

Überprüfung

Es gibt einige Standardmethoden zum Überprüfen der Ergebnisse von Computermodellen.

  • Führen Sie Überprüfungsmodelle aus und bestätigen Sie, dass die Ergebnisse mit einer zuvor berechneten Antwort übereinstimmen.
  • Führen Sie einfache Modelle aus, die von Hand berechnet werden können.
  • Testen Sie physikalische Modelle.

Das Problem bei den ersten beiden oben genannten Überprüfungsmethoden besteht darin, dass sie entweder nur bestimmte Situationen oder nur die einfachen Teile des Programms überprüfen.

Die physikalische Modellmethode kann für Modelle in voller Größe teuer sein, und Modelle im Maßstab liefern möglicherweise nicht immer die gleichen Ergebnisse wie Modelle in voller Größe.

Dies lässt eine Lücke in den Ergebnissen, die überprüft werden können. Für jedes komplizierte Modell gibt es keine einfache Möglichkeit, die Richtigkeit der Programmergebnisse zu überprüfen. Der Ingenieur muss darauf vertrauen, dass die Software korrekte Ergebnisse aus dem Modell liefert.

Vergleichsprüfung

Das Modell könnte in zwei verschiedene Programme (von verschiedenen Unternehmen erstellt) eingegeben werden. Die Annahme ist, dass wenn die Ergebnisse der beiden Modelle ähnlich genug sind, die Ergebnisse für das verwendete Modell korrekt sein sollten. Dies würde keine Fehler beim Erstellen des ursprünglichen Modells auffangen, aber es würde Fehler in der Softwareimplementierung auffangen.

  • Könnten zwei separate Programme verwendet werden, um die "Richtigkeit" der Ergebnisse des Modells zu überprüfen?
  • Würde die Verwendung dieser Methode zum Vergleichen eines Modells in zwei separaten Programmen die gleiche Sicherheit für die Ergebnisse bieten wie jede andere Überprüfungsmethode?
  • Was könnten die Nachteile dieses Verfahrens sein?
Hazzey
quelle
Das "Space Shuttle" ging mit 5 x Flugcomputern in die Umlaufbahn. 4 von ihnen führten das gleiche Programm durch, überprüften die Ergebnisse der anderen, stimmten untereinander überein, wer gesund war, und wählten jedes verrückte Mitglied aus. Auf dem 5. Computer wurde ein völlig anderes Programm ausgeführt, das unabhängig von einem anderen Team geschrieben wurde. "Nur für den Fall". Ich weiß nicht, ob es jemals gebraucht wurde.
Russell McMahon
Beide Computerprogramme könnten auf die gleiche Weise falsch sein, also würde ich nein sagen. Dies ist keine gute Praxis. Es ist besser, numerische Lösungen mit Fällen zu vergleichen, in denen eine Lösung analytisch, empirisch oder durch veröffentlichte Forschung bekannt ist.
Paul
@Paul Ja, so werden die Dinge normalerweise überprüft, aber das zeigt nur, dass das Programm für dieses Problem funktioniert . Sie können davon ausgehen, dass andere Konfigurationen, die dieselben Codepfade verwenden, ebenfalls korrekt sind, es wird jedoch immer einen Randfall geben. Bei der Verwendung von zwei separaten Programmen wird davon ausgegangen, dass die Programmierer in verschiedenen Randfällen Fehler aufweisen .
Hazzey

Antworten:

7

Ja, eine zweite Meinung einzuholen kann nützlich sein. Dies geschieht routinemäßig bei Wettervorhersagen, bei denen genaue Lösungen unbekannt sind, und es gibt einige Einschätzungen darüber, wie verschiedene Faktoren anzuwenden sind.

In so etwas wie einer Finite-Elemente-Netzspannungsanalyse wird weniger Spielraum vorhanden sein, da die iterativen Gleichungen zur Lösung im Grunde die gleichen sind, unabhängig davon, wer die Software geschrieben hat. Das eigentliche Problem besteht darin, das Netz nicht so sehr zu lösen, als überhaupt ein ausreichend gutes Netz zu erstellen.

Eine Möglichkeit, mehrere Meinungen zu erhalten, besteht darin, die Netzparameter zu variieren. Hoffentlich bekommst du immer noch so ziemlich die gleiche Antwort. Wenn Sie das Netz 2x feiner machen und eine deutlich andere Antwort erhalten, ist dies ein starker Hinweis darauf, dass das ursprüngliche Netz nicht detailliert genug war. Sie wissen dann auch nicht sicher, ob das nächste Netz detailliert genug ist, ohne ein noch detaillierteres zu erstellen und ungefähr die gleiche Antwort zu erhalten.

Natürlich ist die Netzgenerierung selbst heutzutage etwas automatisiert und anpassungsfähig. Hier geht es nicht mehr nur um die Physik des Lösens des Netzes, sondern auch um Heuristiken darüber, wann und wie zu unterteilen ist. Unterschiedliche Software kann in dieser Hinsicht variieren, daher kann es nützlich sein, zwei verschiedene Programme mit denselben Anfangsdaten auszuführen.

Olin Lathrop
quelle
6

Ich schreibe dies aus der Perspektive eines Ingenieurs, der Simulationssoftware entwickelt.

Ich denke, die beschriebene Praxis ist schlecht, und ich empfehle Ihnen, keine zwei verschiedenen Softwareprogramme zu verwenden, um die Ergebnisse zu "bestätigen".

Im Allgemeinen können zwei verschiedene Modellierungssoftware nicht verwendet werden, um etwas anderes als ihre Ähnlichkeit zu bestätigen. Zwei Softwareprogramme können leicht zwei ähnliche, aber falsche Antworten erhalten, insbesondere wenn sie ähnliche Modelle verwenden. Ich kann mir mindestens einen Fall vorstellen, in dem dies definitiv der Fall ist, und Trevor Archibald erwähnt einen anderen. Ich wäre mehr beeindruckt von zwei Softwareprogrammen, die unterschiedliche Modellierungstechniken verwenden und ähnliche Ergebnisse erzielen.

Dieses Thema wird als Verifikation und Validierung von Computermodellen bezeichnet und verfügt über eine ziemlich umfangreiche Literatur. Ich werde eine Skizze der Grundlagen anbieten. Bei der Überprüfung wird ein Modell mit einer "exakten" Lösung verglichen (dies könnte eine Handberechnung oder etwas Komplexeres sein), dh die Mathematik der Software wird überprüft. Die Annahmen hinter der genauen Lösung könnten falsch sein, aber zumindest möchten Sie sicherstellen, dass die Software den mathematischen Teil richtig macht. Bei der Validierung wird ein Modell mit einem Experiment verglichen. Auf diese Weise können Sie überprüfen, ob das von Ihnen verwendete Modell korrekt ist. Dies kann die Überprüfung für Sie nicht tun.

Das Problem bei den ersten beiden oben genannten Überprüfungsmethoden besteht darin, dass sie entweder nur bestimmte Situationen oder nur die einfachen Teile des Programms überprüfen.

Dies ist ein echtes Problem für Softwareentwickler und -benutzer. Es gibt etablierte Möglichkeiten, um damit umzugehen, die viel besser sind als der Vergleich zweier verschiedener Software.

Das Problem ist, dass Sie niemals jeden möglichen Fall testen können. Ihre Software besteht möglicherweise Fall A, aber Fall A beinhaltet keine Physik X, Y oder Z, und das macht Sie völlig aus Fall B. Sie möchten also eine große Anzahl von Prüfungen, die mindestens alle abdecken die grundlegenden Funktionen, die Sie überprüfen möchten. Viele Softwareprogramme haben "V & V-Suiten", die im Grunde genau das sind.

In Bezug auf die Überprüfung gibt es zahlreiche Optionen. Sie können neue exakte Lösungen für verschiedene Fälle generieren. Manchmal ist dies allein ausreichend. Wie Sie jedoch bemerkt haben, beschränkt sich das, was Sie von Hand tun können, häufig auf sehr einfache Fälle. Für die allgemeineren Fälle können Sie eine Technik verwenden, die als Methode der hergestellten Lösungen bezeichnet wird (Google it). Dies erfordert Programmierung und kann chaotisch werden, ermöglicht es Ihnen jedoch, grundsätzlich alles zu testen, was Sie sich vorstellen können. (Der Unordnungsteil kann übrigens über eine Bibliothek wie MASA erledigt werden .)

Ich möchte auch darauf hinweisen, dass Sie im Gegensatz zu den Vorschlägen von Olin Lathrop mit der Methode der hergestellten Lösungen genaue Lösungen zum Testen generieren können. Sie sind im engeren Sinne nicht "genau", da sie die Gleichungen, die die Software ohne Modifikation löst, nicht genau erfüllen. Aber sie erfüllen Gleichungen, die sehr nahe beieinander liegen, und der Unterschied wird berücksichtigt, um den Test streng zu machen. Diese Technik ist im Moment nicht sehr beliebt, wurde jedoch verwendet, um Dinge zu testen, die zuvor als schwierig zu testen galten.

In Bezug auf die Validierung können Sie nach mehr experimentellen Daten suchen oder Ihre eigenen Experimente durchführen.

Ben Trettel
quelle
4

Ich denke, das ist insgesamt eine gute Praxis.

Durch die Verwendung von zwei verschiedenen Softwareprogrammen können Sie möglicherweise zwei Arten von Fehlern vermeiden: 1) Fehler, die von einer ungenauen Software stammen (die nicht übersehen werden sollten), 2) Fehler, die auf die mangelnde Gewohnheit des Benutzers mit der Software zurückzuführen sind (versteckte Optionen, Standardeinstellungen ...).

Wenn die Software unterschiedlich genug ist, ist die Wahrscheinlichkeit, zweimal die gleichen falschen Ergebnisse zu erzielen, gering.

Die Fehler, die sich aus einer schlechten Modellierungsauswahl ergeben, können auf diese Weise jedoch nicht vermieden werden. Daher würde ich sagen, dass der Hauptnachteil darin besteht, den Ergebnissen zu vertrauen, da sie von zwei Softwareprogrammen bestätigt wurden.

Ich denke, dass es besser ist, eine Software zu beherrschen, alle Arten von Testfällen auszuführen (z. B. Vergleich mit akademischen Ergebnissen), als mehrere Software zu verwenden und nur ein durchschnittliches Wissen zu haben. Darüber hinaus denke ich, dass es am besten ist, die Grundlagen der FEM-Analyse zu kennen, und die Verwendung von nur zwei "One-Click-to-Run" -Software ist eine schlechte Praxis, da Benutzer wahrscheinlich Modellierungsfehler reproduzieren.

PS: Ich schreibe als Benutzer für Elektromagnetismus / thermische FEM-Analyse (keine anderen Bereiche).

TZDZ
quelle
2

Antwort aus Sicht eines Konstrukteurs

Wenn Sie die Ergebnisse eines Programms mit einem anderen vergleichen, erhalten Sie ein gewisses Maß an Sicherheit, dass die Ergebnisse korrekt sind. Es ist unwahrscheinlich, dass Sie 100% ige Sicherheit erhalten, aber dieses Maß an Sicherheit ist schwer zu erreichen.

Ein großes Problem, das ich sehe, ist die Möglichkeit, das Modell von einer Software auf eine andere zu übertragen. Obwohl der Import / Export von Modellen von den meisten Softwareunternehmen (aufgrund von BIM) verbessert wird, würde ich nicht erwarten, dass alle Funktionen eines Modells exportierbar sind. Geometrie ist relativ einfach zu importieren / exportieren, da die Austauschdatei nur Koordinaten enthalten muss. Aber zB werden Mitgliederendversionen wahrscheinlich von verschiedenen Softwareprogrammen sehr unterschiedlich gespeichert. Wenn also / bis ein universelles Dateiaustauschformat vereinbart ist, würde ich vermuten, dass ein großer Aufwand erforderlich wäre, um ein Modell im zweiten Softwareprogramm vollständig neu zu erstellen.

Nach meiner eigenen Erfahrung sind Fehler in den Ergebnissen weitaus wahrscheinlicher auf falsche Dateneingaben oder falsche Annahmen zurückzuführen als auf schlecht geschriebene Software. Der Zeit- und Arbeitsaufwand bei der Verwendung unabhängiger Software zur Überprüfung einer Antwort ist daher wahrscheinlich keine gute Verwendung Ihrer Zeit.

Antwort aus Sicht eines Software Engineers

Das Überprüfen von Software gegen andere Software wird nicht als Rechtfertigung für die Richtigkeit Ihrer Software angesehen. Es ist weitaus besser, veröffentlichte Daten / Ergebnisse zu finden, mit denen überprüft werden kann, ob die Software die richtigen Antworten liefert. Stellen Sie sich ein Verkaufstreffen vor, bei dem ein Softwareunternehmen versucht, seine Software an ein Ingenieurbüro zu verkaufen:

Ingenieur: Woher wissen wir, dass Ihre Software korrekt ist?

Softwareverkäufer: Nun, wir haben es mit der Software unseres Konkurrenten verglichen und die gleiche Antwort erhalten.

Ingenieur: Sie sagen also, dass Ihr Konkurrent ausreichend besser ist als Sie, dass seine Software der Maßstab ist, an dem Sie Ihre Software messen? Klingt so, als sollten wir stattdessen seine Software kaufen!

AndyT
quelle
1
Ich würde hoffen, dass der Software Engineer nicht ankündigt, dass die Software mit einem anderen Programm verglichen wird, selbst wenn dies im Labor der Fall ist. Ich würde auch denken, dass ein Softwareentwickler es zu schätzen wissen würde, dass es Randfälle geben könnte, die nicht vollständig mit Komponententests abgedeckt wurden.
Hazzey
2

Ich stimme den anderen Antworten hier zu, dass dies im Allgemeinen eine gute Idee sein kann und dazu beitragen wird, die Genauigkeit der Simulationsergebnisse sicherzustellen. In Bezug darauf, wie gut es in Bezug auf die anderen Verifizierungsmethoden ist, würde ich sagen, dass zuvor bekannte Ergebnisse und physikalische Tests beide bessere Optionen sind, wenn dies machbar ist, aber Handberechnungen erfordern möglicherweise eine übermäßige Vereinfachung, wenn das Modell ausreichend komplex ist.

Was ich wirklich hervorheben möchte, ist etwas, das im letzten Punkt nicht angesprochen wurde: mögliche Schwächen dieser Praxis. Die Verwendung von zwei verschiedenen FEA-Paketen kann eine Besonderheit eines Pakets erkennen, die einen Fehler verursacht, vorausgesetzt, Sie können feststellen, welche Analyse korrekt ist und welche nicht. Es gibt jedoch einige allgemeine Einschränkungen für die FEA insgesamt, unabhängig von Methode oder Implementierung. Scharfe Ecken und andere Spannungskonzentratoren, die Singularitäten im Modell verursachen, werden sich von Paket zu Paket nicht wesentlich ändern. Dies sind immer Schwachstellen. Hier sind technische Kenntnisse und Intuition erforderlich.

Ich habe Simulationen an Teilen durchgeführt, von denen ich weiß, dass sie bestimmten Spannungen problemlos standhalten, und das Modell zeigt, dass die innere Spannung das 10-fache der Streckgrenze beträgt. Dies ist offensichtlich falsch, da es sich um ein Evolventen-Spline-Muster handelt und die FEA-Software das nicht mag.

Schließlich sollte es offensichtlich sein, dass das Ändern von Software Benutzerfehler nicht beseitigt. Wenn Sie einen Fehler im Modell oder in den Parametern machen, wird dieser Fehler Sie durcheinander bringen, unabhängig davon, was Sie zur Analyse verwenden.

Trevor Archibald
quelle
Ich habe keine Ahnung, was ein "Evolventen-Spline-Muster" ist, daher ist dieser Kommentar möglicherweise nicht relevant. Wenn Sie jedoch eine interne Spannung mit 10-facher Ausbeute erhalten, ist möglicherweise eine Modellierung mit einem nichtlinearen Material angebracht. Das würde extreme lokale Spannungskonzentrationen beseitigen.
AndyT
Zu diesem Zeitpunkt erinnere ich mich nicht, ob ich eine linear-elastische Materialantwort oder etwas grundlegenderes verwendet habe, aber ich wollte nicht, dass die Simulation für immer läuft, und dies ist eine frühe Verwendung von FEA für uns. Es war im Wesentlichen eine Neugestaltung eines vorhandenen Teils, für das wir den Fehlermodus kennen, und die Art und Weise, wie wir das Modell einrichten mussten, stellte den Spline vor einige strenge Einschränkungen (ein Evolventen-Spline ist die Form der meisten Zahnradzähne). Wenn ich eine umfassendere Analyse durchführen würde, könnte ich versuchen, sie zu beheben, aber dies war im Vergleich zum vorhandenen Teil ein besserer Proof of Concept.
Trevor Archibald
1

Die Randbedingungen und die Modellierungstechnik werden die Ergebnisse stark beeinflussen. Ich schlage vor, eine vereinfachte / idealisierte Version (wie planar oder achsensymmetrisch) und eine vollständig solide Version auszuführen und die beiden zu vergleichen.

Das Problem mit zwei verschiedenen FEA-Software ist, dass die Löser unter der Haube weitgehend gleich sind. Die beobachteten Unterschiede würden möglicherweise auf unterschiedliche Konvergenzkriterien oder auf unterschiedliche Annahmen zur Anwendung der Randbedingungen zurückzuführen sein. Sie überprüfen das Modell nicht, aber die Fähigkeit jedes Lösers, zu wissen, dass es eine Lösung gefunden hat.

Ich denke, FEA-Ergebnisse sollten zuerst durch gesunden Menschenverstand und Handberechnungen validiert werden, dann durch ähnliche, aber unterschiedliche Modelle (z. B. Festkörper anstelle von Balken) und schließlich durch physikalische Tests, um festzustellen, ob Teile wo und wie die FEA vorhersagen. Der als ein Teil fehlschlagen ist schwieriger , weil es durch Herstellungsverfahren, Materialvariationen und resudial Spannungen beeinfusst wird.

ja72
quelle
Nicht alle Ingenieurdisziplinen haben den Luxus, einen physischen Zerstörungstest durchführen zu können. Im Hoch- und Tiefbau baut die überwiegende Mehrheit der Projekte einmalige Einzelstücke - der Bau eines separaten Einzelstücks, nur um es auf Zerstörung zu testen, wäre unerschwinglich teuer!
AndyT
Punkt genommen. Es ist immer noch eine gute Idee, die FEA-Ergebnisse mit Tests zu validieren, auch wenn es sich um Muster- oder Skalenstücke handelt.
Ja72
Ich kann Ihren Standpunkt verstehen ... aber in meinen sechs Jahren Brückenkonstruktion habe ich noch nie von einem physikalischen Test gehört, der an einem maßstabsgetreuen Modell einer Brücke durchgeführt wurde.
AndyT
Welche Brücken sollte ich dann meiden? Scherz. Es müssen also genügend Sicherheitsmargen vorhanden sein, um die Dinge zu berücksichtigen, die nicht mit FEA modelliert wurden. Es gibt kein 100% genaues FEA-Modell.
Ja72
In der Tat haben wir überall Sicherheitsfaktoren! Der (inzwischen ziemlich nicht mehr existierende) britische Standard BS5400 enthielt einen Faktor von 1,1, genannt gammaf3, der "ein Faktor ist, der eine ungenaue Bewertung der Auswirkungen der Belastung, eine unvorhergesehene Spannungsverteilung in der Struktur und Schwankungen der Maßgenauigkeit bei der Konstruktion berücksichtigt . " Was auch immer Ihre FE-Analyse Ihnen sagt, multiplizieren Sie es mit 1,1, nur für den Fall, dass es sich um einen nicht konservativen Wert handelt.
AndyT