本發(fā)明屬于電磁仿真設(shè)計(jì)領(lǐng)域,具體為一種將hfss工程文件轉(zhuǎn)化為通用前處理文件的方法。
背景技術(shù):
1、電磁仿真作為現(xiàn)代工程與科學(xué)研究的重要工具,與理論分析和實(shí)驗(yàn)方法齊頭并進(jìn)。電子設(shè)備和系統(tǒng)在運(yùn)行過程中會(huì)面臨各種電磁干擾,這些干擾會(huì)導(dǎo)致系統(tǒng)性能下降、信號(hào)失真,甚至設(shè)備故障,從而影響其整體功能和可靠性。因?yàn)殡姶努F(xiàn)象的復(fù)雜性及其與系統(tǒng)材料、幾何形狀等緊密相關(guān)。為了解決或減弱各類電磁干擾問題,傳統(tǒng)的實(shí)驗(yàn)測試方法由于其成本高昂、周期長且難以實(shí)時(shí)調(diào)整參數(shù),難以廣泛應(yīng)用,而電磁仿真方法成本低、周期短、易于優(yōu)化調(diào)整,極大地提升了設(shè)計(jì)效率和產(chǎn)品性能。電磁仿真能夠幫助工程師校核系統(tǒng)在各種工作環(huán)境下的電磁性能,確保電磁兼容性和信號(hào)完整性。因此,快速有效的電磁仿真技術(shù)是電子設(shè)備和系統(tǒng)設(shè)計(jì)的關(guān)鍵。
2、國產(chǎn)自主研發(fā)的電磁仿真軟件搖光與hfss軟件之間存在數(shù)據(jù)格式不兼容的問題,這使得在不同軟件間進(jìn)行仿真項(xiàng)目的數(shù)據(jù)交換變得極為困難。在搖光軟件中重建hfss中的工程文件,目前沒有直接的數(shù)據(jù)交換方法,需要工程師從建模、材料設(shè)置、求解設(shè)置方面開始重新建立工程,這會(huì)耗費(fèi)工程師大量精力,時(shí)間成本大大增加,并且可能引入操作失誤、參數(shù)設(shè)置錯(cuò)誤等因素。而通過解析hfss工程文件并自動(dòng)生成通用前處理文件,可以在搖光軟件中自動(dòng)重建工程,這不僅提高了工作效率,減少了人為錯(cuò)誤,還顯著提升了仿真結(jié)果的可信度和一致性。因此,開發(fā)通用前處理文件轉(zhuǎn)換方法是電磁仿真領(lǐng)域的關(guān)鍵步驟,有助于提高在不同軟件中重建工程的效率和魯棒性,打破軟件之間的屏障,減少人力和物力的浪費(fèi)。
技術(shù)實(shí)現(xiàn)思路
1、針對上述存在問題或不足,為解決格式不兼容問題,使hfss軟件中工程文件在搖光軟件中能夠快速重建,提高仿真設(shè)計(jì)效率;本發(fā)明提供了一種將hfss工程文件轉(zhuǎn)化為通用前處理文件的方法。
2、一種將hfss工程文件轉(zhuǎn)化為通用前處理文件的方法,包括以下步驟:
3、步驟1、基于visualstudio編程軟件導(dǎo)入目標(biāo)電磁仿真的hfss軟件工程文件,建立一個(gè)整體管理類psimulation。
4、整體管理類psimulation中包含變量容器m_mapproperties、材料管理類m_pmaterialmanager、邊界條件管理類m_pmanagerboundaries、模型管理類m_pmanagermodel、仿真設(shè)置管理類m_pmanagersolversetting、材料信息容器m_mapmaterial、實(shí)體列表savelist和求解類型m_nsolutiontype。
5、步驟2、讀取步驟1中的工程文件,讀取變量名稱及對應(yīng)數(shù)值作為鍵值對,存入變量容器m_mapproperties。
6、進(jìn)一步的,導(dǎo)入該工程文件后通過關(guān)鍵詞variableprop的查找,將變量名稱和對應(yīng)數(shù)值存入變量容器m_mapproperties。
7、步驟3、讀取步驟1中的工程文件,根據(jù)關(guān)鍵詞material獲取工程文件中的材料部分內(nèi)容;以材料名稱為索引對不同材料進(jìn)行分解,將其存儲(chǔ)為一個(gè)個(gè)獨(dú)立的材料文件;依次讀入存儲(chǔ)的材料文件,獲取材料信息,更新材料信息容器m_mapmaterial,生成第一個(gè)前處理文件simulationmaterials.xml。
8、材料管理類m_pmaterialmanager包含一個(gè)以唯一標(biāo)志符m_id和材料基類為鍵值對的索引容器m_mapindexmaterial,在材料基類的派生類中包括相對介電常數(shù)、相對磁導(dǎo)率、體電導(dǎo)率、電介質(zhì)損耗角正切、磁損耗角正切、磁矯頑力、熱導(dǎo)率、質(zhì)量密度、比熱容、楊氏模量、泊松比、熱膨脹系數(shù)和熱膨脹系數(shù)參考溫度屬性。
9、進(jìn)一步的,獲取材料信息的具體方式為:
10、創(chuàng)建材料基類對象的std::vector容器pmaterial,依次讀入分解出的材料文件,根據(jù)關(guān)鍵詞permittivity、permeability、conductivity、dielectric_loss_tangent、magnetic_loss_tangent、magnetic_coercivity、thermal_conductivity、mass_density、specific_heat、youngs_modulus、poissons_ratio和thermal_expansion_coeffcient,將相應(yīng)的數(shù)據(jù)存入對應(yīng)的材料基類的派生類實(shí)例,更新至容器pmaterial中。所有材料文件讀取完畢后,將容器pmaterial更新至材料管理類m_pmaterialmanager中,并更新材料信息容器m_mapmaterial。
11、步驟4、讀取步驟1中的工程文件,根據(jù)關(guān)鍵詞coordinatesystems獲取工程文件中的相對坐標(biāo)系部分;根據(jù)關(guān)鍵詞operation將不同坐標(biāo)系分解為一個(gè)個(gè)獨(dú)立的相對坐標(biāo)系文件,依次讀入分解出的相對坐標(biāo)系文件,獲取坐標(biāo)系信息,生成以該坐標(biāo)系操作唯一標(biāo)志符rcs_id和相對坐標(biāo)系位移信息trans為鍵值對的相對坐標(biāo)系信息容器m_maprcs。
12、步驟5、讀取步驟1中的工程文件,建立一個(gè)模型id信息容器tmapmodel,根據(jù)關(guān)鍵詞toplevelparts和operandparts獲取工程文件中的模型部分內(nèi)容;以模型名稱為索引對建模操作進(jìn)行分解,將其存儲(chǔ)為一個(gè)個(gè)獨(dú)立的模型文件,并且將對應(yīng)的唯一標(biāo)志符id和模型操作類型存入模型id信息容器tmapmodel。
13、模型管理類m_pmanagermodel中包含一個(gè)以唯一標(biāo)志符id和模型基類為鍵值對的模型信息容器m_mapmodel。模型基類中包含模型名稱、唯一標(biāo)志符id和模型操作類型,不同的模型操作類型對應(yīng)以下派生類,模型類:box、cylinder、sphere、circle、helix、polyhedron、polyline、rectangle、region和torus;布爾運(yùn)算類:unite、subtract、imprint、intersect和split;其它操作類:clone、mirror、rotate、duplicate、fillet和sweep等。每個(gè)派生類對應(yīng)的有一個(gè)以唯一標(biāo)志符id和派生類為鍵值對的索引容器,例如box的索引容器為m_mapbox。
14、進(jìn)一步的,以模型名稱為索引對建模操作進(jìn)行分解的流程具體如下:
15、模型部分以toplevelparts和operandparts為關(guān)鍵詞進(jìn)行一次分解,其中toplevelparts對應(yīng)的是需要導(dǎo)出的實(shí)體部分,operandparts對應(yīng)的是參與到布爾運(yùn)算中的客體,在建立模型時(shí)就被刪除,不需要導(dǎo)出的實(shí)體部分。
16、再以關(guān)鍵詞geometrypart進(jìn)行二次分解,geometrypart中包含兩類關(guān)鍵詞attribute和operation,其中attribute包含模型的名稱和材料信息,operation中包含唯一標(biāo)志符id和模型操作類型及其相關(guān)信息;一個(gè)geometrypart部分中會(huì)包含多個(gè)operation關(guān)鍵詞,根據(jù)關(guān)鍵詞operation進(jìn)行分解,得到一個(gè)個(gè)獨(dú)立的模型文件。
17、步驟6、基于步驟5獲得的模型id信息容器tmapmodel和模型文件,創(chuàng)建對應(yīng)數(shù)目的操作派生類;根據(jù)存儲(chǔ)順序依次讀入分解出的模型文件,結(jié)合步驟2、步驟3和步驟4中獲得的變量容器m_mapproperties、材料信息容器m_mapmaterial和相對坐標(biāo)系信息容器m_maprcs,得到模型信息,存入模型信息容器m_mapmodel和對應(yīng)派生類索引容器,如box索引容器m_mapbox。
18、進(jìn)一步的,所述模型信息存入的流程具體如下:
19、依次讀入分解出的模型文件,通過唯一標(biāo)志符id的匹配與否進(jìn)入對應(yīng)操作派生類的讀取。讀取關(guān)鍵詞name=獲取模型名稱信息;關(guān)鍵詞materialvalue=獲取材料模型信息,通過材料信息容器m_mapmaterial進(jìn)行索引,獲取該模型材料對應(yīng)的唯一標(biāo)志符m_id;referencecoordsystemid=關(guān)鍵詞獲取參考坐標(biāo)系對應(yīng)標(biāo)志符rcs_id,通過相對坐標(biāo)系信息容器m_maprcs進(jìn)行索引,獲取該模型的相對坐標(biāo)系位移信息trans;將唯一標(biāo)志符id和讀取到的操作信息存入模型信息容器m_mapmodel和對應(yīng)派生類索引容器。
20、步驟7、遍歷步驟6中的模型信息容器m_mapmodel,根據(jù)模型操作類型進(jìn)入對應(yīng)建模操作函數(shù)中生成模型并在模型上進(jìn)行特征唯一標(biāo)志m_id,將信息存入實(shí)體列表savelist并生成第二個(gè)前處理文件simulationmodels.sat。
21、進(jìn)一步的,利用3d?acis?modeler(acis)中的api函數(shù)建立模型,通過acis屬性操作函數(shù)對模型的體、面、邊、點(diǎn)分別進(jìn)行唯一標(biāo)記m_id。
22、步驟8、讀取步驟1中的工程文件,根據(jù)關(guān)鍵詞solutiontype=更新求解類型m_nsolutiontype。
23、步驟9、讀取步驟1中的工程文件,建立一個(gè)邊界id信息容器tmapboundaries,根據(jù)關(guān)鍵詞boundaries獲取工程文件中的邊界條件部分,以邊界名稱為索引對不同邊界條件進(jìn)行分解,將不同邊界存儲(chǔ)為一個(gè)個(gè)獨(dú)立的邊界文件,并且將對應(yīng)操作唯一標(biāo)志符id和邊界操作類型存入邊界id信息容器tmapboundaries。
24、邊界條件管理類m_pmanagerboundaries中包含一個(gè)以唯一標(biāo)志符id和邊界基類為鍵值對的索引容器m_mapindxbc。邊界基類中包含邊界名稱、邊界類型和面索引列表faceid,不同的邊界類型對應(yīng)不同派生類,激勵(lì)類:波段口激勵(lì)、集總端口激勵(lì)、floquet端口激勵(lì)和平面波激勵(lì);邊界類:理想電壁、理想磁壁、輻射邊界、有限導(dǎo)體邊界、阻抗邊界、主從邊界、理想匹配層和集總rlc邊界。每個(gè)派生類對應(yīng)的有一個(gè)以唯一標(biāo)志符id和派生類為鍵值對的索引容器,例如輻射邊界的索引容器為m_mapradiation。
25、步驟10、基于步驟9獲得的邊界id信息容器tmapboundaries和邊界文件,創(chuàng)建對應(yīng)數(shù)目的派生類;依次讀入分解出的邊界文件,結(jié)合步驟2和步驟7中獲得的變量容器m_mapproperties和實(shí)體列表savelist,得到邊界信息,更新邊界條件管理類m_pmanagerboundaries。
26、更新流程如下:依次讀入分解出的邊界文件,通過唯一標(biāo)志符id的匹配與否進(jìn)入對應(yīng)派生類的讀取。邊界類型不同需要讀取的邊界信息也不同,將id和讀取到的邊界信息存入m_mapindxbc和對應(yīng)派生類索引容器。
27、步驟11、讀取步驟1中的工程文件,根據(jù)關(guān)鍵詞geometrycore、solvesetups和farfieldsetups獲取工程文件中的仿真設(shè)置類部分,更新仿真設(shè)置管理類m_pmanagersolversetting;然后結(jié)合步驟10中得到的邊界條件管理類m_pmanagerboundaries中存儲(chǔ)的邊界條件信息,生成第三個(gè)前處理文件simulationsettings.xml。
28、仿真設(shè)置管理類m_pmanagersolversetting中包含單位類、設(shè)置類和仿真模塊類。單位類中包含距離單位和頻率單位;設(shè)置類中包含求解類型、求解頻率、是否掃頻、掃頻的最大最小頻率、掃頻點(diǎn)個(gè)數(shù)、掃頻類型、網(wǎng)格自適應(yīng)誤差和網(wǎng)格最大自適應(yīng)次數(shù)求解設(shè)置;仿真模塊類包含后處理相關(guān)參數(shù)和遠(yuǎn)場輻射球相關(guān)參數(shù)。
29、步驟12、使用搖光軟件的求解器調(diào)用步驟3、步驟7和步驟11中生成的三個(gè)前處理文件進(jìn)行求解,得到求解結(jié)果。
30、綜上所述,本發(fā)明通過讀取hfss中的工程文件生成通用前處理文件在搖光軟件中進(jìn)行計(jì)算實(shí)現(xiàn)在搖光軟件中快速重建hfss中的工程。本發(fā)明前處理文件的生成過程是自動(dòng)化的,所需時(shí)間幾乎可以忽略不計(jì)。相比之下,工程師從建模、材料設(shè)置、求解設(shè)置等方面從頭開始重新建立工程,將花費(fèi)大量的時(shí)間和精力。因此,本發(fā)明提供了一種高效的將hfss軟件的工程文件轉(zhuǎn)化為通用前處理文件的方法,極大地減少了重新建立工程所需的時(shí)間,提高了工作效率,推動(dòng)了電子設(shè)備和系統(tǒng)的設(shè)計(jì)。