題:
可以使用兩個不同的建模程序來確認彼此的結果嗎?
hazzey
2015-03-29 02:24:32 UTC
view on stackexchange narkive permalink

計算機模型

計算機建模用於各種工程領域。我專門考慮結構分析或有限元分析(FEA)。有時使用模型來加快可以手工完成的重複計算。有時使用模型來執行不容易甚至無法手工完成的計算。

檢查

有幾種標準方法可以用來檢查計算機模型的結果。

  • 運行驗證模型並確認結果與先前計算的答案相符。
  • 運行可以通過手動計算進行檢查的簡單模型。
  • 測試物理模型。

上面兩種檢查方法的問題在於它們要么只檢查特定情況,要么僅檢查程序的簡單部分。

對於全尺寸模型,物理模型方法可能會很昂貴,而比例模型可能無法始終獲得與全尺寸模型相同的結果。

這在可檢查的結果上留下了空白。對於任何復雜的模型,沒有簡單的方法來檢查程序的結果是否正確。工程師必須相信該軟件能夠從模型中產生正確的結果。

比較檢查

模型可以輸入到兩個不同的程序中(由不同的程序組成)。公司)。假設是,如果兩個模型的結果足夠相似,則結果對於所使用的模型應該是正確的。這不會在創建原始模型時捕獲任何錯誤,但會捕獲軟件實現中的錯誤。

  • 能否使用兩個單獨的程序來檢查結果的“正確性”
  • ?是否可以使用這種在兩個單獨程序中比較模型的方法來提供與其他任何檢查方法相同的結果保證水平? >
  • 使用此過程可能有什麼缺點?
“航天飛機”使用5架飛行計算機進入了軌道。其中有4個運行同一程序,彼此檢查了結果,彼此同意,並且保持理智,並投票淘汰了任何瘋狂的成員。第五台計算機運行了完全不同的程序,該程序由不同的團隊獨立編寫。 '以防萬一'。我不知道是否需要。
兩種計算機程序都可能以相同的方式出錯,所以我拒絕。這不是一個好習慣。最好將數值解與通過解析,經驗或公開研究得出的解進行比較。
@Paul是的,這是通常檢查事物的方式,但這僅表明該程序可以解決該問題。您可以假設使用相同代碼路徑的其他配置是否也正確,但是始終會出現邊緣情況。使用兩個獨立程序所包含的假設是,程序員在不同的邊緣情況下會出錯。
六 答案:
Olin Lathrop
2015-03-29 18:55:09 UTC
view on stackexchange narkive permalink

是的,徵求第二意見可能會有用。這項工作通常在天氣預報中進行,在這種情況下,確切的解決方案是未知的,並且對如何應用各種因素有一些判斷。無論由誰編寫軟件,求解它的方程都基本相同。真正的問題不是解決網格問題,而是首先解決創建足夠好的網格問題。

因此獲得多種意見的一種方法是更改​​網格參數。希望您仍然能得到幾乎相同的答案。如果您將網格劃分為2x並得到明顯不同的答案,那麼就可以很好地了解原始網格不夠詳細。然後,您也無法確定下一個網格是否足夠詳細,而不必進行更詳細的描述並獲得相同的答案。這不再只是求解網格的物理原理,而是包括有關何時以及如何細分的啟發式方法。在這方面不同的軟件可能會有所不同,因此以相同的初始數據運行兩個不同的程序會很有用。

Ben Trettel
2015-03-30 22:35:38 UTC
view on stackexchange narkive permalink

我是從開發仿真軟件的工程師的角度編寫的。

我認為所描述的做法是不好的,建議您不要使用兩種不同的軟件來完成“確認”結果。

通常,除了它們的相似性外,不能使用兩種不同的建模軟件來確認很多其他東西。兩種軟件都可以輕易地得到兩個相似但錯誤的答案,尤其是當它們使用相似的模型時。我可以想到至少有一個確實是這樣的情況,而Trevor Archibald提到了另一個。兩種使用不同建模技術並獲得相似結果的軟件會給我留下深刻的印象。我將提供基本的草圖。驗證是將模型與“精確”解決方案(可能是手工計算或更複雜)進行比較,也就是說,要檢查軟件的數學運算。確切解決方案背後的假設可能是錯誤的,但是至少您要確保軟件正確地處理了數學部分。驗證是將模型與實驗進行比較。這使您可以檢查所使用的模型是否正確,這是驗證無法為您完成的事情。特定情況,否則它們只會檢查程序的簡單部分。

這是軟件開發人員和用戶面臨的真正問題。建立處理它的方法比比較兩個不同的軟件要好得多。

問題在於您永遠無法測試所有可能的情況。您的軟件可能會通過案例A,但是案例A不涉及物理X,Y或Z,這使您完全脫離了案例B。因此,您想要的是大量檢查,至少涵蓋所有方面您要檢查的基本功能。許多軟件都有“ V&V套件”,基本上就是這樣。

在驗證方面,有很多選擇。您可以針對不同情況生成新的精確解決方案。有時僅此一項就足夠了。但是,您已經註意到,通常只能在非常簡單的情況下進行手工操作。對於更一般的情況,您可以使用一種稱為製造解決方案的方法(Google it)。這需要編程,並且可能會變得凌亂,但可以讓您基本上測試您能想到的任何東西。 (順便說一下,可以通過類似 MASA之類的庫來處理混亂的部分。)

我還要指出,這與Olin Lathrop的建議相反,使用製造的解決方案的方法,您可以生成用於測試目的的精確解決方案。從嚴格意義上講,它們不是“精確的”,因為它們不能完全滿足軟件未經修改即可求解的方程式。但是它們滿足非常接近的方程,並且為了使測試更加嚴格而考慮了差異。該技術目前還不太流行,但已用於測試以前認為難以測試的東西。

就驗證而言,您可以尋找更多實驗數據或運行您的自己的實驗。

TZDZ
2015-03-30 17:46:41 UTC
view on stackexchange narkive permalink

我認為總體而言,這是一個好的做法。

通過使用兩種不同的軟件,您可能可以避免兩種錯誤:1)來自不正確軟件的錯誤(不應2)由於用戶缺乏軟件使用習慣而導致的錯誤(隱藏選項,默認設置...)。

如果軟件足夠不同,則獲得兩次機會的可能性同樣的錯誤結果也很低。

但是,無法以這種方式避免錯誤的建模選擇所導致的錯誤。因此,我要說的主要缺點是過於信任結果,因為它們已經被兩個軟件證實了。

我確實認為最好掌握一種軟件,並運行各種測試用例(與學術成果進行比較),而不是使用多種軟件並且僅具有一般知識。此外,我認為最好了解FEM分析的基礎知識,並且僅使用兩個“一鍵運行”軟件是一個壞習慣,因為用戶可能會重現建模錯誤。

PS :我正在寫電磁/熱有限元分析用戶(無其他領域)。

AndyT
2015-03-30 17:25:11 UTC
view on stackexchange narkive permalink

從設計工程師的角度來看

將一個程序的結果與另一個程序的結果進行比較,可以使您確定結果的正確性。不可能給您100%的確定性,但是那樣的確定性水平很難實現。

我看到的一個大問題是能夠將模型從一種軟件轉移到另一種軟件。儘管大多數軟件公司(由於BIM)正在改進模型的導入/導出,但我不希望模型的所有功能都可以導出。幾何圖形相對易於導入/導出,因為交換文件僅需要包含坐標。但是例如成員最終版本可能由不同的軟件以非常不同的方式存儲,因此,除非/直到同意通用文件交換格式,否則我認為將需要大量的精力才能在第二個軟件程序中完全重建模型。

根據我自己的經驗,結果錯誤很可能是由於數據輸入錯誤或假設不正確所致,而不是由於編寫不良的軟件所致。因此,使用獨立軟件來驗證答案的時間和精力可能並不能很好地利用您的時間。

從軟件工程師的角度來看,答案

不能將軟件與其他軟件進行對比作為您軟件正確的辯護。最好找到可以用來驗證軟件給出正確答案的已發布數據/結果。想像一下一個銷售會議,其中一家軟件公司試圖將其軟件出售給一家工程公司:

工程師:我們怎麼知道您的軟件是正確的?

軟件銷售員:好吧,我們根據競爭對手的軟件進行了檢查,並得到了相同的答案。

工程師:因此,您是說競爭對手比您的軟件要好得多,他的軟件是您衡量軟件的標準?聽起來我們應該購買他的軟件!

我希望軟件工程師不要“宣傳”該軟件與另一個程序進行比較,即使在實驗室中也是如此。我還認為,軟件工程師將不勝感激,可能存在一些尚未完全包含在單元測試中的極端情況。
Trevor Archibald
2015-03-30 18:42:55 UTC
view on stackexchange narkive permalink

我在這裡同意其他答案,這通常是一個好主意,將有助於確保仿真結果的準確性。就與其他驗證方法相比有多好的優勢,我想說,如果可行的話,以前已知的結果和物理測試都是更好的選擇,但是如果模型足夠複雜,則手工計算可能需要過分簡化。

我真正要指出的是,最後一點還沒有解決:這種做法的潛在弱點。使用兩個不同的FEA軟件包可能會捕獲一個導致錯誤的軟件包的特殊性,前提是您可以確定哪個分析是正確的,哪個是不正確的。但是,無論採用何種方法或實施方式,FEA總體上都存在一些一般性限制。導致模型奇異的尖角和其他應力集中器不會隨封裝的變化而變化很大,而這些總是很薄弱的。這是需要工程知識和直覺的地方。

我已經對容易承受某些應力的零件進行了仿真,該模型顯示出內部應力是屈服強度的10倍;這顯然是不正確的,因為它採用漸開線樣條線模式,而FEA軟件則不喜歡這種方式。

最後,顯而易見的是,更改軟件並不能消除用戶錯誤。如果您在模型或參數中出現錯誤,則無論您使用什麼方法進行分析,該錯誤都會使您不知所措。

我不知道什麼是“漸開線樣條曲線模式”,因此此註釋可能不相關,但是如果您以10倍的屈服獲得內應力,也許可以使用非線性材料進行建模?那將消除極端的局部應力集中。
在這一點上,我不記得是否使用線彈性材料響應或更基本的東西,但是我不希望仿真永遠運行,這對我們來說是FEA的早期使用。它本質上是對現有零件的重新設計,我們知道該零件的失效模式,並且我們建立模型的方式對花鍵施加了一些嚴格的約束(漸開線花鍵是大多數齒輪齒的形狀)。如果我要進行更全面的分析,則可以嘗試進行修復,但是與現有零件相比,這更能證明概念。
John Alexiou
2015-04-11 02:17:40 UTC
view on stackexchange narkive permalink

邊界條件和建模技術將極大地影響結果。我建議運行簡化/理想化版本(如平面或軸對稱)和完整實體版本,然後將兩者進行比較。

使用兩個不同的FEA軟件的問題在於,求解器在很大程度上將是相同的。觀察到的差異可能來自不同的收斂標準,也可能來自於邊界條件如何應用的不同假設。您不是在檢查模型,而是每個求解器知道它已經達到解決方案的能力。實體而不是梁),最後通過物理測試來查看零件是否在FEA預測的 where how 失效。零件何時失效將更困難,因為它受製造過程,材料變化和殘餘應力的影響。

並非所有的工程學科都能夠進行物理破壞測試。在土木和結構工程中,絕大多數項目都在建造一次性的獨特物品-僅建造一個完整的單獨物品以對其進行破壞測試將是非常昂貴的!
點了。即使使用樣品或刻度尺,通過測試驗證FEA結果仍然是一個好主意。
我能理解您的意思……但是在我六年的橋樑設計中,我從未聽說過要對橋樑的比例模型進行物理測試。
那麼,那我應該避免哪些橋樑?開玩笑的因此,必須有足夠的安全裕度來說明未使用FEA建模的內容。沒有100%準確的FEA模型這樣的東西。
確實,我們到處都有安全因素!英國標準BS5400(現已失效)包括1.1係數,稱為gammaf3,“該係數考慮到了荷載影響的不正確評估,結構中不可預料的應力分佈以及建築中實現的尺寸精度變化。”也就是說,無論您的有限元分析告訴您的壓力是多少,都應乘以1.1以防萬一這是一個不保守的值。
“求解器將基本相同”。那是完全錯誤的。例如,在電磁學中,求解器可以使用標量或矢量電勢,直接求解器或迭代器,邊界條件並非總是以相同的方式處理,迭代地重新定型,模擬條件選擇的結束,被忽略的方程式等等。
為了澄清,我的意思是求解器後面的模型應該相同。迭代與直接意味著不同的收斂水平,但是平衡方程相同。他們如何區分,重新劃分或對待邊界將產生不同的結果,但它們所基於的模型(反映情況的物理原理)應該相同。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...