2つの異なるモデリングプログラムを使用して、互いの結果を確認できますか?


8

コンピューターモデル

コンピューターモデリングは、さまざまな工学分野で使用されています。具体的には、構造解析または有限要素解析(FEA)を検討しています。時には、手作業で実行できる反復計算を高速化するためにモデルが使用されます。モデルを使用して、簡単ではない計算や手作業では不可能な計算を実行することもあります。

確認中

コンピュータモデルの結果を確認するための標準的な方法がいくつかあります。

  • 検証モデルを実行し、結果が以前に計算された回答と一致することを確認します。
  • 手計算で確認できる単純なモデルを実行します。
  • 物理モデルをテストします。

上記の最初の2つのチェック方法の問題は、特定の状況のみをチェックするか、プログラムの単純な部分のみをチェックすることです。

物理モデルの方法は、フルサイズのモデルでは高価になる可能性があり、スケールモデルではフルサイズと同じ結果が得られない場合があります。

これにより、チェックできる結果にギャップが残ります。複雑なモデルの場合、プログラムの結果が正しいことを確認する簡単な方法はありません。エンジニアは、ソフトウェアがモデルから正しい結果を生成したことを信頼する必要があります。

比較チェック

モデルは、2つの異なるプログラム(異なる企業が作成)に入力できます。2つのモデルの結果が十分に類似している場合、結果は使用するモデルに対して正しいはずであるという仮定です。これは、元のモデルの作成時にエラーをキャッチしませんが、ソフトウェア実装のエラーをキャッチします。

  • 2つの別個のプログラムを使用して、モデルの結果の「正確さ」を確認できますか?
  • この2つの別々のプログラムでモデルを比較する方法を使用すると、他のチェック方法と同じレベルの結果が保証されますか?
  • この手順を使用することの欠点は何ですか?

「スペースシャトル」は、5台の飛行コンピューターを使用して軌道に乗りました。これらの4つは同じプログラムを実行し、お互いの結果を確認し、正気であるメンバー間で合意し、正気でないメンバーを投票しました。5台目のコンピューターは、異なるチームが独自に作成したまったく異なるプログラムを実行しました。'念のため'。それが必要だったかどうかはわかりません。
ラッセルマクマホン

両方のコンピュータープログラムが同じように間違っている可能性があるため、いいえと言います。これは良い習慣ではありません。数値解を、解析的、経験的、または公開された研究を通じて解が知られている場合と比較することをお勧めします。
ポール

@Paulはい、それは物事が通常どのようにチェックされるかですが、それはプログラムがその問題に対して機能することを示すだけです。同じコードパスを使用する他の構成も正しいかどうかを推測できますが、常に例外が発生します。2つの別個のプログラムの使用に含まれる仮定は、プログラマーが異なるエッジケースでエラーを持っているということです。
ハジー

回答:


7

はい、セカンドオピニオンを取得することは有用です。これは、正確な解決策が不明な天気予報で日常的に行われ、さまざまな要因をどのように適用するかについての判断があります。

有限要素メッシュストレス解析のようなものでは、それを解くための反復方程式はソフトウェアを誰が書いたとしても基本的に同じであるため、ゆらぎの余地は少なくなります。本当の問題は、そもそも十分なメッシュを作成するほどメッシュを解決することではありません。

したがって、複数の意見を得る1つの方法は、メッシュパラメーターを変更することです。うまくいけば、あなたはまだほとんど同じ答えを得ることができます。メッシュを2倍細かくして、大幅に異なる回答が得られた場合、それは元のメッシュが十分に詳細ではなかったという強力な手がかりです。また、さらに詳細なメッシュを作成して同じ答えを得ることなく、次のメッシュが十分に詳細であるかどうかもわかりません。

もちろん、今日のメッシュ生成自体はある程度自動化され、適応性があります。これは、メッシュを解くという物理学だけではなく、いつ、どのように分割するかについての経験則を含んでいます。この点でソフトウェアが異なる場合があるため、同じ初期データで2つの異なるプログラムを実行すると便利です。


6

これは、シミュレーションソフトウェアを開発するエンジニアの観点から書いています。

記載されている慣行は悪いと思うので、2つの異なるソフトウェアを使用して結果を「確認」しないことをお勧めします。

一般に、2つの異なるモデリングソフトウェアを使用して、それらの類似性以外の多くを確認することはできません。2つのソフトウェアは、特に類似したモデルを使用している場合は特に、2つの類似した間違った答えを簡単に取得できます。私はこれが間違いなく当てはまる事例を少なくとも1つ考えることができますが、Trevor Archibaldは別の事例に言及しています。似たような結果を得るために異なるモデリングテクニックを使用する2つのソフトウェアには、さらに感銘を受けます。

このテーマは、コンピューターモデルの検証と検証と呼ばれ、かなり膨大な文献があります。基本のスケッチを提供します。検証とは、モデルを「正確な」ソリューション(手計算、またはより複雑なもの)と比較することです。つまり、ソフトウェアの数学をチェックします。正確なソリューションの背後にある仮定は間違っている可能性がありますが、少なくとも、ソフトウェアが数学部分を正しく取得することを確認したいでしょう。検証では、モデルと実験を比較します。これにより、使用しているモデルが正確かどうかを確認できますが、これは検証では不可能なことです。

上記の最初の2つのチェック方法の問題は、特定の状況のみをチェックするか、プログラムの単純な部分のみをチェックすることです。

これは、ソフトウェア開発者とユーザーが直面する本当の問題です。2つの異なるソフトウェアを比較するよりもはるかに優れた処理方法が確立されています。

問題は、考えられるすべてのケースをテストできないことです。ソフトウェアはケースAに合格するかもしれませんが、ケースAには物理X、Y、またはZが含まれていないため、ケースBから完全に外れます。したがって、少なくともすべての確認したい基本機能。多くのソフトウェアには、「V&Vスイート」がありますが、これは基本的にまさにそれです。

検証に関しては、多数のオプションがあります。さまざまなケースに対して新しい正確なソリューションを生成できます。これだけで十分な場合もあります。ただし、お気づきのように、多くの場合、手でできることは非常に単純な場合に限られています。より一般的なケースでは、製造されたソリューションの方法(Google it)と呼ばれる手法を使用できます。これにはプログラミングが必要で、面倒なこともありますが、基本的には考えられることなら何でもテストできます。(乱雑な部分はMASAなどのライブラリを介して処理できます。

また、Olin Lathropが提案したものとは対照的に、製造されたソリューションの方法を使用して、テスト目的で正確なソリューションを生成できることを指摘しておきます。厳密な意味で「正確」ではありません。ソフトウェアが修正なしで解く方程式を正確に満たさないからです。しかし、それらは非常に近い方程式を満たし、テストを厳密にするために違いが考慮されます。この手法は現時点ではあまり一般的ではありませんが、以前はテストが困難であると考えられていたものをテストするために使用されています。

検証の観点から、より多くの実験データを探すか、独自の実験を実行できます。


4

これは全体的に良い習慣だと思います。

2つの異なるソフトウェアを使用することで、2種類のエラーを回避できます。1)不正確なソフトウェアに起因するエラー(見逃してはならない)、2)ソフトウェアを使用するユーザーの習慣の欠如に起因するエラー(非表示オプション、デフォルト設定...)。

ソフトウェアが十分に異なる場合、同じ間違った結果を2回取得する可能性は低くなります。

ただし、この方法では、不適切なモデリングの選択に起因するエラーを回避することはできません。したがって、主な欠点は、結果が2つのソフトウェアによって確認されているため、結果を信頼しすぎることです。

複数のソフトウェアを使用して平均的な知識しか持たないよりも、すべての種類のテストケースを実行して(たとえば、学術結果と比較して)1つのソフトウェアを習得する方が良いと思います。さらに、FEM解析の基本を理解することが最善であり、ユーザーがモデリングエラーを再現する可能性が高いため、「ワンクリックで実行」するソフトウェアを2つだけ使用することは悪い習慣です。

PS:私は電磁気学/熱FEM解析ユーザーとして書いています(他のドメインはありません)。


2

設計エンジニアの観点からの回答

あるプログラムの結果を別のプログラムと比較すると、結果が正しいというある程度の確実性が得られます。100%の確実性を与えることはほとんどありませんが、そのレベルの確実性を達成するのは困難です。

私が見る大きな問題は、あるソフトウェアから別のソフトウェアにモデルを転送できることです。モデルのインポート/エクスポートはほとんどのソフトウェア会社によって改善されていますが(BIMが原因)、モデルのすべての機能がエクスポート可能であるとは期待していません。交換ファイルには座標を含めるだけでよいため、ジオメトリのインポート/エクスポートは比較的簡単です。しかし、たとえば、メンバーのエンドリリースは異なるソフトウェアによって非常に異なる方法で保存される可能性が高いため、ユニバーサルファイル交換フォーマットが合意されない限り、2つ目のソフトウェアプログラムでモデルを完全に再構築するには多大な努力が必要と思われます。

私自身の経験に基づいて、結果のエラーは、不適切に記述されたソフトウェアよりも、データの誤った入力または誤った仮定に起因する可能性がはるかに高くなります。したがって、独立したソフトウェアを使用して回答を検証する際の時間と労力は、おそらくあなたの時間の有効な活用ではありません。

ソフトウェアエンジニアの観点からの回答

他のソフトウェアに対してソフトウェアを検証することは、ソフトウェアが正しいことを正当化するものとはみなされません。ソフトウェアが正しい答えを与えることを確認するために使用できる公開されたデータ/結果を見つけることははるかに良いです。ソフトウェア会社がソフトウェアをエンジニアリング会社に販売しようとしている営業会議を想像してください。

エンジニア:ソフトウェアが正しいことをどのように知るのですか?

ソフトウェアセールスマン:競合他社のソフトウェアと照合して、同じ答えを得ました。

エンジニア:それで、あなたの競争相手はあなたよりも十分に優れていると言っているのですか?代わりに彼のソフトウェアを購入する必要があるようです!


1
ソフトウェアエンジニアが、ソフトウェアが他のプログラムと比較されていることを、たとえラボでの場合であっても宣伝しないことを望みます。また、ソフトウェアエンジニアは、単体テストで完全にカバーされていないエッジケースが存在する可能性があることを理解すると思います。
ハジー

2

私はここで他の答えに同意します。これは一般に良いアイデアであり、シミュレーション結果の精度を保証するのに役立ちます。他の検証方法との関係で、以前の既知の結果と物理的テストの両方が実行可能であればより良いオプションですが、モデルが十分に複雑な場合は手計算で過剰な単純化が必要になる場合があります。

私が本当に指摘したいのは、最後のポイントで取り上げられていないことです。このプラクティスの潜在的な弱点です。2つの異なるFEAパッケージを使用すると、どちらの分析が正しく、どの分析がオフであるかを識別できれば、エラーの原因となる1つのパッケージの特性をキャッチできます。ただし、方法や実装に関係なく、FEA全体にはいくつかの一般的な制限があります。モデルの特異点の原因となる鋭い角やその他の応力集中部は、パッケージごとに大きく変化するものではなく、常に弱点です。これは、エンジニアリングの知識と直感が必要な場所です。

特定の応力に容易に耐えることがわかっている部品のシミュレーションを行ったところ、モデルは内部応力が降伏強度の10倍であることを示しています。インボリュートスプラインパターン上にあり、FEAソフトウェアはそれを好まないため、これは明らかに正しくありません。

最後に、ソフトウェアを変更してもユーザーエラーが排除されないことは明らかです。モデルまたはパラメーターにエラーを犯した場合、そのエラーは、それを分析するために何を使用しても、あなたを台無しにします。


「インボリュートスプラインパターン」が何なのかわからないので、このコメントは関係ないかもしれませんが、10倍の歩留まりで内部応力が発生している場合、おそらく非線形材料を使用したモデリングが適切でしょうか。それは極端な局所的な応力集中を除去します。
AndyT

この時点で、線形弾性材料の応答を使用したか、より基本的な応答を使用したかは覚えていませんが、シミュレーションを永遠に実行したくはありませんでした。これはFEAの初期の使用です。これは基本的に、故障モードがわかっている既存のパーツの再設計であり、モデルの設定方法によってスプラインに厳しい制約が課されました(インボリュートスプラインはほとんどのギアの歯の形状です)。私がより包括的な分析を行っていた場合、それを試して修正するかもしれませんが、これは既存の部分と比較して概念の証明でした。
トレバーアーチボルド

1

境界条件とモデリング手法は、結果に大きく影響します。単純化/理想化されたバージョン(平面、軸対称など)と完全なソリッドバージョンを実行し、2つを比較することをお勧めします。

2つの異なるFEAソフトウェアの問題は、内部でソルバーがほぼ同じになることです。観察される違いは、異なる収束基準から、または境界条件がどのように適用されるかについての異なる仮定からである可能性があります。モデルをチェックするのではなく、各ソルバーがモデルを知る能力が解決に達していることを確認します。

FEAの結果は、最初に常識と手計算によって検証され、次に類似するが異なるモデル(たとえば、梁ではなく固体)によって検証され、最終的にFEAが予測する場所方法で部品が故障するかどうかを確認する物理テストによって検証される必要があると思います。場合部分は失敗し、それが製造プロセス、材料の変形およびresudial応力によってinfuencedされているため、より困難です。


すべての工学分野が物理的な破壊テストを実行できるという贅沢を持っているわけではありません。土木工学および構造工学では、プロジェクトの大半が1回限りのユニークなアイテムを構築しています。破壊をテストするためだけに完全に別のアイテムを構築することは、非常に高価です。
AndyT

取られたポイント。サンプルやスケールピースを使用している場合でも、FEAの結果をテストで検証することをお勧めします。
ja72

私はあなたの主張を見ることができます...しかし、橋の設計の私の6年で、私は橋のスケールモデルで行われている物理的なテストを聞いたことがありません。
AndyT

それでは、どのブリッジを避けるべきですか?冗談。そのため、FEAでモデル化されていないものを説明するのに十分な安全マージンが必要です。100%正確なFEAモデルのようなものはありません。
ja72

実際、どこにでも安全性の要因があります!(現在ほとんど機能していない)英国規格BS5400には、gammaf3と呼ばれる1.1の係数が含まれていました。 」すなわち、FE分析でストレスが何であれ、それが控えめな値である場合に備えて、1.1を掛けます。
AndyT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.