汽車NVH模擬教程 - Nastran聲振靈敏度NTF分析程序編寫

微信公眾號:汽車NVH模擬

摘要

上一次分享給出了使用hypermesh前處理軟體進行NTF分析的教程。本次分享,我們將只使用UlterEdit軟體編寫NTF分析計算程序。

  • 本次編寫程序使用到的軟體為 UltraEdit;
  • 本文主要介紹一種通過改寫nastran計算文件的方式來減少建模時間,前提需要讀者對NASTRAN的程序語言有一定的了解;

MSC.Nastran 輸入文件簡介

MSC.Nastran 的輸入文件包含有限元參數的完整描述,包括:

  • 執行的分析類型
  • 計算結果的輸入要求
  • 參數的幾何表示
  • 單元庫
  • 材料屬性
  • 邊界條件

輸入文件的格式為 . bdf, 或者 . dat ,可通過文本編輯或者有限元前處理軟體進行建立。輸入文件包含著5個不同的部分,輸入文件的結構框架如下圖所示:

  • Nastran語句(非必須)

Nastran語句是可選的,主要用來修飾某些操作參數,例如,工作存儲狀態,數據塊的大小,數據塊的參數,數值方法等。Nastran語句用於特殊情況,在多數情況下不需要使用。

  • 文件管理段(非必須)

文件管理段也是可選的,它主要用於初始化MSC. Nastran的數據。資料庫的初始化包括最大尺寸,成員名和物理名的說明。對於大多數MSC. Nastran計算問題,不要求文件管理語句,因為每次開始運行之前,都會執行預設的文件管理段。

  • 執行控制段(必須)

執行控制段的主要功能是規定執行工程問題分析解法的類型,對於MSC. Nastran的每一個問題分析都是要求的。執行控制段的結束用CEND限定符來標識。

  • 工況控制段(必須)

工況控制段用於規定與控制分析結果的輸出要求(即力,應力,位移等輸出要求)。工況控制指令也能管理一組模型數據的輸入,定義分析子工況(如在一個作業中施加多組載荷),以及選取載荷和邊界條件。工況控制段總是跟隨在執行控制段之後,而在數據段之前。

  • 數據段(必須)

數據段總是在工況控制段之後,以限定「BEGIN BULK」開始,以限定符「ENDDATA」結束,包含了有限元參數的全部模型數據:幾何,坐標系,單元參數,單元形狀,邊界條件以及材料屬性。

NTF分析程序

Nastran語句

由於在計算NTF的過程中會產生些很大的過程文件,如果進行計算的電腦沒有足夠的內存會導致計算進行過程中出現由於內存不足終止計算。所以一般對於一些比較大的計算模型,我們會對計算過程中出現的臨時文件進行內存分配。實現這一部分的程序如下所示。這部程序為上文所述的「nastran語句」。這段程序寫在整段程序的最前面。

nastran語句

執行控制段

然後編寫「執行控制段」,由於本次NTF分析的方法為頻響,所以緊接著程序後面加上 「SOL 111」表示選擇「Model Frequency Respond」作為求解方法,以 「CEND」結束(必須要有),表示執行控制段程序的完成。其中符號 $ 是標識號,首字元以 $ 開頭的語句對計算均不起作用,可起到標註功能。

執行控制段

工況控制段(全局工況)

上一章我們了解到,如果我們在hypermesh中分別創建81個DEARE,RLOAD1與DLOAD是一件很煩人的事情,其實我們只要細心想一下就發現,這81個工況中除了每個工況除了激勵點位置與激勵方向(DEARE)不一樣外,其餘都一樣。如果通過編寫程序的方法去設置,其實就是粘貼複製的問題。但是為了更加方便的編寫程序,需要我們先對內飾車身激勵點進行重新編號。在模型建立的過程中,把需要激勵的節點號renumber一下,比如說,本次分析所有的激勵點對應的節點號統一為:1001~1082,共81個激勵點。後面我們的相關設置就可以實現粘貼複製粘貼複製了。

其實我們從上一章節就注意到這81個工況中,每個工況除了激勵點位置與激勵方向(DEARE)不一樣外,其餘都一樣,所以我們可以把一樣的工況設置統一放在一塊,作為一個全局的工況控制程序放在所有工況控制段的前面,所以我們可以緊接著編寫一下程序。

全局工況控制段

這部分程序定義了車內駕駛員與乘客人耳附近共3處的聲壓響應點的節點號集合SET,這個SET的ID號為13(每個ID號是獨一的,程序的調用都會根據ID號來檢索),響應點對應的節點號為20000001~20000003三點(聲壓相應點);METHOD(STRUCTURE)=1表示結構模態提取的方式,指向load collector 的ID為1;METHOD(FLUID)=1表示聲腔模態提取的方式,指向load collector的 ID為10;FREQUENCY=2表示響應結果提取的頻率範圍,指向load collector的ID為2;SDAMPING(STRUCTURE)與SDAPING(FLUID)分別為結構與流體的阻尼,分別指向load collector的ID的3與30;MSN = 2000表示使用ID號為2000的非結構質量;MPC=7000001表示運動連接關係,指向ID 7000001;對於響應點為流體節點的情況,DISPLACEMENT=13表示輸出SET 13中的節點聲壓值(指向20000001~20000003節點)。如果該程序寫在工況控制段程序的前面,而且在其後面的工況控制沒有進行另外設置,以上的設置內容為工況的全局控制,81個工況同時受其作用。

工況控制段(子工況)

設置完了全局統一的工況後,下面我們針對每一個工況不同的地方進行進一步設置。例如,對於前懸掛安裝點節點號為1001,我們可以在程序後接著編寫:

子工況 subcase 1001

SUBCASE10011表示設置的前懸安裝點X向激勵的工況步,LABEL=1001-X表示該工況步標籤為1001-X,DLOAD=10011表示載入ID號為10011的激勵力;同理,對於SUBCASE10012與10013也一樣。到這裡,前懸掛1001節點3個方向的激勵工況就已經設置完成了(注意:為了方便操作,我使用數值1,2,3表示方向X, Y, Z. 在這裡SUBCASE的ID寫成10011表示節點1001的X向,後面所有的工況步ID命名方式亦是如此。當然對於這種關聯,讀者完全可以依據個人記憶的方式進行適當調整)。

然後,把上面的SUBCASE 10011到10013間程序複製,再接著後面粘貼,把內容中的1001改成1002即可完成前副車架安裝點1002節點3個方向的激勵工況。同樣的方法把就可以很快幾分鐘把81個工況全部設置出來。工況步設置完成後,就要進行下一步數據段程序的編寫(下圖截取部分子工況程序,為了使程序清晰可讀,建議適當使用 $ 字元來注釋)。

部分子工況程序

經過了全局與子步的設置,工況控制段程序就完成了。

數據段

這一部分要特別注意,該段程序必須要寫上 "begin bulk",表示開始讀入模型數據。其次,這段程序需要嚴格按著格式來編寫,每一個數據必須放在特定的位置,每個數據按照8位元組間隔大小分開。程序裡面每一個具體的詞都能夠在nastran自帶的幫助手冊中查到,程序中必須以BEGIN BULK開頭,EIGRL, TABDMP, TABLED1, FREQ1程序的緊接著的數字為其ID號,被前面所講的工況控制段程序檢索調用(圖中每隔8個位元組有一條白線隔開,方便檢查,如果讀者不知道程序怎麼填,找到安裝nastran裡面的幫助文件,搜索對應的詞就會得到對應程序的代碼解析)。

DLOAD, RLOAD1, DAREA指令緊跟著也是對應的ID號,被控制段程序檢索調用。同樣,我們先把節點1001對應3個方向的DLOAD, RLOAD1 與 DAREA對應的程序寫好,然後只需要粘貼複製,通過替換的方式把1001替換成1002,1003.....1082即可完成所有DLOAD, RLOAD1, DAERA的設置。(幾分鐘的事情把本來需要差不多一個多小時的活幹完,而且可以有效減少錯誤的發生,適當採用 $ 字元進行標準,進一步提高容錯率。)

最後,使用include語句,把我們的內飾車身與聲腔的幾何模型放進程序里,調用該幾何模型。在程序的結尾需要加上 "ENDDATA" 結束數據塊的輸入。到這裡,分析程序就編好了,導出 .dat格式,即可提交nastran計算了。


拓展閱讀:

  1. 關注微信公眾號,獲取更多相關內容

  • 本次分享旨在給讀者分享一種通過改寫程序快速建模的方法,所以很多地方沒有給出太多的解析。不理解的地方大家可以留言,我們一起討論一下;
  • 如果覺得本次分享對你有幫助,就轉發給更多的朋友吧。

推薦閱讀:

道路載荷譜介紹(一):背景介紹
採樣頻率到底多高才不會使信號幅值明顯失真?
對於一個從事汽車振動與雜訊的新人,有什麼建議?
什麼是路躁,跟胎噪的區別是什麼?
什麼是混疊?

TAG:NVH | 汽車行業 | 模態分析 |