# COMSOL整理 ## 目錄 [TOC] ## 硬體需求 #### CPU COMSOL主要用cpu來執行計算,多核心的要求高於時脈。 #### 記憶體 記憶體越大越穩定能執行更大的專案,大約是150萬個自由度以下,要求16GB內存,300萬個自由度以下為32GB內存,依此類推。建議至少16GB。 #### 硬碟 硬碟建議用SSD存放應用程式並且夠大即可,由於COMSOL專案不會太大,不包含結果資料的專案大約100Mb以下,所以不需要大空間儲存專案。如果專案結果極大,則有需要大空間硬碟儲存,可以用HDD就足夠,不過儲存和開啟的時間會很久。 #### 顯卡 不需要高效顯卡,除非模型過於複雜,有支援專業繪圖卡。 #### 詳細資料參見官網 https://cn.comsol.com/system-requirements https://cn.comsol.com/support/knowledgebase/866 http://cn.comsol.com/blogs/much-memory-needed-solve-large-comsol-models/ ## 安裝教學 [NAS下載連結](http://gofile.me/6FWQ2/JLg8BSoN6) 1. 開啟安裝檔 打開"COMSOL Multiphysics 5.6.0.401 Full Win-Linux-macOS"資料夾。 打開"COMSOL_5.6.0.401_DVD.iso" 進入"COMSOL56"的虛擬光碟中,打開"setup.exe" ![](https://i.imgur.com/vXv4s32.png) 2. 安裝檔設定 > 1. 選擇操作語言,按"下一步 >" > ![](https://i.imgur.com/INcRCDx.png) > > 2. 點選"新的COMSOL安裝" > ![](https://i.imgur.com/s0Lk1iX.png) > > 3. 點選"我接受同意條款" > ![](https://i.imgur.com/yrEaLet.png) > > 4. 回到"COMSOL Multiphysics 5.6.0.401 Full Win-Linux-macOS"的資料夾 > 5. 打開"Crack"資料夾,這裡的"readme_windows.txt"可以參考。 > 6. 找到"LMCOMSOL_Multiphysics_SSQ.lic",確認它的路徑。 > 7. 回到COMSOL安裝檔,這裡要求輸入"授權資訊",點選"授權格式"旁邊的下拉表格,選擇"授權檔"。 > ![](https://i.imgur.com/Hzqes0J.png) > > 8. 點選"瀏覽" > ![](https://i.imgur.com/ONSmZ0O.png) > > 9. 找到"LMCOMSOL_Multiphysics_SSQ.lic"檔,並按下"open"。 > ![](https://i.imgur.com/rACPbQd.png) > > 10. 回到安裝檔頁面,按"下一步 >" > 11. 選擇安裝內容,預設為全部,選好後按"下一步 >" > ![](https://i.imgur.com/lcL8KkM.png) > > 12. 來到選項,不要勾選 =="安裝後更新檢查"== 和 =="啟動自動更新"==。按"下一步 >" > ![](https://i.imgur.com/ZRXKo06.png) >  > 13. 即時連結,不要勾選任何選項,按"下一步 >" > ![](https://i.imgur.com/rgFuppr.png) > > 14. 確定安裝選項,點選"安裝",開始安裝。 > ![](https://i.imgur.com/OmAeYUg.png) ## 基本畫面操作 ### 1.開啟COMSOL ![](https://i.imgur.com/intBA8P.png) COMSOL開啟頁面預設為新增模擬的畫面 ### 2.新增模擬 > 1. 點選"模型精靈" > ![](https://i.imgur.com/R1t7fe2.png) > 2. 選擇空間維度 > ![](https://i.imgur.com/FZH5Sma.png) > 依需求選擇空間維度,其中"2D軸對稱"和"1D軸對稱"如下圖所示 > ![](https://i.imgur.com/Kc0Qr0g.png) > 3. 選擇物理量 > ![](https://i.imgur.com/Mc4CRwm.png) > 如果要做聲波在空氣中傳遞,且聲源是壓電材料,選擇"結構力學"->"電磁-結構交互作用"->"壓電效應"->"壓電效應-固體",雙擊左鍵或按"新增"即可增加物理量。 > ![](https://i.imgur.com/NGrCX1d.png) > ![](https://i.imgur.com/utBhl2l.png) > 4. 選擇好物理量,按"研究"。如果有少選或需要增加物理量,設定好後仍可修改。 > 5. 選擇研究,以聲波來說,常用的有"時間相依"、"頻遇"、"穩態"。 > 雙擊要的研究或是按下方的完成,及設定完成了! > ![](https://i.imgur.com/5I0p9KU.png) > ![](https://i.imgur.com/B7RnYxz.png) ### 3.基本概念 #### 工作區域 在COMSOL中,有實體的模擬要有"模型"、"材料"、"網格"、"物理量"、"研究"和"結果"。彼此間相互影響,不過COMSOL的設計可以方便查找問題。 ![](https://i.imgur.com/pQKD21N.png) 上圖為COMSOL主要的工作視窗,最左邊是"模型建立器"。這裡包含模擬中所有資訊,就像是編譯器中的project管理區。在COMSOL中,每個設定的參數是由"模型建立器"中由上而下逐一建成,比如全域定義中有定義的參數,下面的設定中皆可使用。 ![](https://i.imgur.com/Pvbf2Gd.png) 畫面中間是設定參數的地方,先選取"模型建立器"中要設定的參數,比如"幾何" (模型的造型),在這可以設定幾何的單位等等。換成其他選項會顯示可改變的參數,是設定COMSOL主要工作區。 ![](https://i.imgur.com/BQPse64.png) 最右邊為"圖形"區,將顯示模擬的視覺化結果,包含3D、2D繪圖、圖表等。在繪製模型時會顯示在此區域。 ![](https://i.imgur.com/cAYqHKv.png) 訊息、計算資訊、表格的顯示區域。要注意,COMSOL中輸出的 =="表格"== 會出現在這裡。 ![](https://i.imgur.com/EAVPr1f.png) 功能區。和office中上面那一欄是一樣的功能。要新增物理量、新增幾何、新增網格、輸出圖形等等,這裡可以找到。也可以在"模型建立器"中對要修改的地方按右鍵有相同的功能。 #### 模擬必須包含的設定 一個COMSOL模擬必須包含"模型,並且能往格化"、"材料"、"物理量"、"研究",最後生成"結果"。這裡給個簡單的範例。 ##### COMSOL簡單範例 https://www.youtube.com/watch?v=4uOOXLdzMgU&t=1789s 可以搭配這個影片一起學,不過前面1/4是廣告和最基礎的COMSOL教學,看一遍就好,皮托科技的影片都有這問題。 ### 簡單範例 這個範例是我自己寫的,建立在線性聲波在空氣中傳遞的模擬。在空間中心有一個聲源,隨時間傳播,撞擊到牆面會被吸收。 檔案名稱"1 點聲源_空盒_空氣_牆面反射_teaching.mph" 1. 新增COMSOL,點選"模型精靈" 2. 選擇"3D"空間維度。 3. 選擇"聲學"->"幾何聲學"->"線聲學(rac)",按"新增"後按"研究"。 ![](https://i.imgur.com/eq33aVN.png) 4. 在研究中選擇"時間相依"。按"完成"。 ![](https://i.imgur.com/4qd823Q.png) 5. 首先劃出幾何模型,點選幾何,並在上方工具列選擇"幾何"。先看一下中間的設定,第一個選項是長度單位,這裡選"m"公尺。 ![](https://i.imgur.com/UJbMpcM.png) 6. 在上面工具列中雙擊"立方體",在"模型建立器"中會新增"立方體 1 (blk1)" ![](https://i.imgur.com/R8BUlF1.png) 7. 在中間設定中,設定立方體的長寬高,預設為1。 8. 修改位置。在設定->位置->"以.為起始"中改成"中心"。 ![](https://i.imgur.com/zA3vnVv.png) 9. 按下"建立選項的"即可在"圖形"中生成。也可按下"建立所有物件"將設定好的幾何全部生成。 ![](https://i.imgur.com/al4SHvI.png) 10. 按下上方工具列中的"立方體",新增另一個立方體。 ![](https://i.imgur.com/Cs3Kpy6.png) 11. 設定長寬高,分別為"寬度0.1"、"高度0.5"、"長度0.5"。修改位置,以"中心"為起點,"x=0.25", "y=0", "z=0"。 ![](https://i.imgur.com/Emrkvfk.png) 12. 按"建立所有物件",檢查"圖形"中產生的物件。 ![](https://i.imgur.com/0G3KMIU.png) 13. 看到的圖和上面不一樣,記得按"透明度"即可看到內部結構。 ![](https://i.imgur.com/hK6Bbm0.png) 14. 接下來設定"材料",在上面工具列中點選"材料",點選"新增材料"。 ![](https://i.imgur.com/56CvsQy.png) 15. 點開後會在最右邊出現"新增材料"的視窗。可以直接搜尋要的材料(記得要用英文)。 ![](https://i.imgur.com/iUAF4b2.png) 16. 這裡用到"Air"和"Alumina",可以在"內建"中找到。雙擊要的材料即可新增。 ![](https://i.imgur.com/FmNd2Vf.png) 17. 關閉"新增材料" 18. 設定幾何與材料的關係。在"模型建立器"->"材料"->"Air",設定空氣的區域。 ![](https://i.imgur.com/fRdS9A5.png) 19. 到中間的"幾何本體選擇區"->"選擇區"將"所有區域"改成"手動"。 ![](https://i.imgur.com/huZYZcK.png) 20. 只選擇外面的大立方體,在這裡為代號"1"的區域。區域的代號為COMSOL給予,無法修改,出錯時只會回報區域、邊界、邊、點等的代號,要自己確認正確的位置。這步驟可以在"設定"中修改,也可以在圖形中修改。當圖形中滑鼠觸摸到的區域會以紅框或綠框呈現。綠框代表"已被選擇",紅框則"未被選擇"。如果要選擇的物體重疊在一起,"滾動滑鼠滾輪"即可選擇重疊中不同層的物體。 ![](https://i.imgur.com/ssFxA0L.png) 21. 設定"Alumin"的區域,在"模型建立器"中點選"Alumin"。 22. 選擇內部的立方體,這裡代號為"2"。 ![](https://i.imgur.com/WNLGqbw.png) 23. 接著設定物理量"線聲學"。在"模型建立器"中點選"線聲學"。 ![](https://i.imgur.com/PoJtWuA.png) 24. 首先修改"區域選擇"->"選擇區"改成"手動"->只選擇區域"1"。 ![](https://i.imgur.com/Bzs7y7C.png) 25. 往下看"外部與未網格區域的材料屬性"->"聲速"(Cext)為"343(m/s)",也就是聲波在空氣中傳播速度。 26. 往下看"強度計算"->"強度計算",改成"計算強度與功率"。往下看"額外變數",勾選"儲存光線狀態資料"。 ![](https://i.imgur.com/7rgEul6.png) 27. 在"線聲學"->"光束屬性"中設定聲波的"頻率"。這裡設定成"40000[kHz]。 ![](https://i.imgur.com/RnDqfkn.png) 27. 在"線聲學"中新增"從格點釋放",可以在上方工具列->物理量->"全域"中找到。也可在"模型建立器"中,對"線聲學"按右鍵->"從格點釋放"。 ![](https://i.imgur.com/2I3kneR.png) ![](https://i.imgur.com/gFgytXS.png) 28. 點選"從格點釋放"->"線方向相量"->"線方向相量"改成"球形"。 ![](https://i.imgur.com/hEfB5Yf.png) 29. 將"波向量空間的光線束"改成10000。 ![](https://i.imgur.com/Wm7SapR.png) 30. 將"總來源功率"設定成"10[W]" ![](https://i.imgur.com/PDPZ0f3.png) 31. 在"線聲學"中新增"光線終止"。在物理量->全域中可找到。或是對"線聲學"按右鍵->光線終止。 ![](https://i.imgur.com/3Y0oZyK.png) 32. 在"模型建立器"中點選"網格",直接按下"建立全部"。這是COMSOL自動生成網格。 ![](https://i.imgur.com/NppXTYb.png) 33. 在"模型建立器"中點選"研究"左邊的三角型,將"研究"中的下拉資料展開,點選"步驟1:時間相依"。 ![](https://i.imgur.com/cLoTtQL.png) 34. 在"研究設定"中修改"時間單位",改成"ms"毫秒。修改"輸出次數",改成"range(0,0.1,3)"。第一項為起始時間,第二項為時間差,第三項為終止時間。 ![](https://i.imgur.com/GpJ2qCj.png) 35. 按下"計算",COMSOL開始計算物理模擬,並在"結果"中輸出。 ![](https://i.imgur.com/QfbhOqB.png) 36. 接著COMSOL會自動跳到結果畫面,如下圖。 ![](https://i.imgur.com/ZzLX7qM.png) 37. 在"模型建立器"中,點選"結果"->"光線軌跡(rac)"->"光線軌跡 1",到"設定"->"著色與樣式",將"線樣式"改成"無","點樣式"改成"點"。結果就會是一包球形聲波,傳播與時間關係會以點點標示。 ![](https://i.imgur.com/xAcyLMY.png) 38. 按"繪製"旁邊的箭頭一張一張看結果。跳選到特定時間看結果時,記得要在選好時間後按"繪製"才會顯示。 ![](https://i.imgur.com/Do4SdVl.png) 39. 在這個畫面中,可以按下右上角的"動畫"->"播放器"可輸出動畫。 ![](https://i.imgur.com/dHaE1jq.png) ![](https://i.imgur.com/72MVDpa.png) 這個模型中可以看到聲波在打到牆壁時會停止。將研究改成"光線追蹤",可以看到聲波打到牆壁時會反射。 #### 參考其他人的資料 在COMSOL官網上,有其他人或是官方釋出的範例。有已設定好的COMSOL project檔和解釋的pdf。這個pdf很重要,它包含從新增檔案開始建立模擬到最後結果的製作流程,可以完全按照範例中的步驟做出一模一樣的結果。許多技巧和設定可以從中學習。不過有些非官方的範例沒有詳解,要自己在專案中一一檢查設定。 直接在Google中輸入關鍵字,並包含"COMSOL"即可找到相關範例,這裡搜尋"comsol piezoelectric receiver and transmitter"可以找到以下網頁 https://www.comsol.com/model/modeling-piezoelectric-devices-as-both-transmitters-and-receivers-71111 https://www.comsol.com/blogs/how-to-model-piezoelectric-devices-as-both-transmitters-and-receivers/ ![](https://i.imgur.com/LaCPzpn.png) 我是參考這個範例做出壓電材料與聲波傳遞的模擬。非常重要。 點選"Download the application files"可以找到以下檔案 ![](https://i.imgur.com/JBuFsmX.png) 選擇對應的COMSOL版本,其中".mph"是COMSOL project檔,下載後用COMSOL開啟即可操作。不過這裡的PDF檔是這個專案的簡介,並沒有附上詳解,下面我會做出這個專案的詳解。 ##### COMSOL內建範例 在COMSOL中以安裝部分官方範例,在COMSOL軟體中可以找到。 > 1. 進到COMSOL中,點選"檔案"->"應用資料庫"。 > ![](https://i.imgur.com/zlZC8a0.png) > 2. 進來後即可看到內建的範例檔,以物理量分類。 > ![](https://i.imgur.com/HpMHTjA.png) > 3. 左下方包含"開啟"和"PDF文件",分別是COMSOL專案和PDF詳解。 ## 聲波模擬範例 這裡模擬壓電元件釋放聲波在空氣中傳遞,打到一牆面後反射回來,並由另一個壓電元件接收聲波。參考以下範例修改而來,在參考範例中,一的壓電元件在水中釋放聲波,打到牆面後反射並由同一顆壓電元件接收聲波。這裡附上我製作的2D模擬詳解,可按照相同的步驟做出來。 ### 2D 壓電元件在空氣中傳遞聲波 檔案名稱"2 壓電材料_聲波傳遞_2D_反射體_壓電接收_teaching.mph" 1. 建立新的COMSOL專案,點選模型精靈 ![](https://i.imgur.com/h2TpatH.png) 2. 在空間維度中選擇"2D" ![](https://i.imgur.com/dNM75N2.png) 3. 物理量點選"聲波">"聲固交互作用">"聲壓電交互作用,暫態",選好後按"研究"。 ![](https://i.imgur.com/B3hretV.png) 4. 研究選擇"一般研究">"時間相依",選號後按"完成"。 ![](https://i.imgur.com/M8avQeN.png) 5. 進到工作區塊,首先設定幾何的參數,將單位改成"mm"毫米。 ![](https://i.imgur.com/3wXsaWI.png) 6. 點選上方工具列中的"幾何" ![](https://i.imgur.com/PF5Z1oj.png) 7. 點選"矩形",新增矩形 ![](https://i.imgur.com/TjXArsD.png) 8. 設定矩形的名稱,在"標籤"的欄位改成"Transmitter" ![](https://i.imgur.com/zBGxWLg.png) 9. 設定矩形的大小,在"尺寸與外型"下有"寬度"和"高度"的欄位,分別輸入"寬度:4","高度:1"。單位為預設單位,所以不用修改。需要修改可以在數字後面加上[m]即可將單位換成公尺。 ![](https://i.imgur.com/LSqVCst.png) 10. 設定矩形的位置,在"位置"下設定"以角落為起點",在"x"欄位輸入"212",在"y"欄位輸入"-1"。 ![](https://i.imgur.com/SvxH3oo.png) 11. 這樣就完成"Transmitter"的造型設定了,按下"建立所有物件",可以在右側"圖形"中看到結果。 ![](https://i.imgur.com/OC0jKd6.png) 12. 接著設定"Receiver",這裡可以用COMSOL的"重複"功能,複製一個相同的矩形。到"模型建立器"中滑鼠指著"Transmitter"的矩形按右鍵,點選"重複"。 ![](https://i.imgur.com/tdzysJo.png) 13. 這樣就會生成一模一樣的矩形。被稱作"Transmitter 1" ![](https://i.imgur.com/DK4PhyL.png) 14. 首先將"標籤"改成"Receiver"。 ![](https://i.imgur.com/9A4yXHa.png) 15. 這裡設定兩個壓電元件大小相同,因此不需要改變大小參數。 ![](https://i.imgur.com/ARupjb2.png) 16. 修改Receiver的位置,"x"設定成"188","y"一樣是"-1"。 ![](https://i.imgur.com/NtEEXNW.png) 17. 按下"建立所有物件"即可生成Receiver的造型,不過你可能看到下列情況。 ![](https://i.imgur.com/aTX6ubC.png) 18. 已經按下"建立所有物件",但是旁邊的圖形沒有改變。其實COMSOL已經生成另一個矩形了,只是沒有在畫面裡,在"圖形"視窗中點"縮放置視窗大小",就是紅框中的按鈕。就可以看到兩個矩形了! ![](https://i.imgur.com/rBxfzRK.png) 19. 接著設定反射的牆面"Reflector",在"幾何"中點選"矩形"。 ![](https://i.imgur.com/MkQDO8r.png) 20. 將標籤改成"Reflector"。 ![](https://i.imgur.com/KNLSA5D.png) 21. 在"尺寸與外觀"中修改尺寸,寬度設定成"40",高度設定成"5"。 ![](https://i.imgur.com/SpZxl7b.png) 22. 將"位置"改成,x設成"180",y設成"930"。 ![](https://i.imgur.com/2C3Gqv6.png) 23. 按下"建立所有物件"和"縮放置視窗大小"檢查圖形是否相符。 ![](https://i.imgur.com/eNePPDK.png) 24. 接著設定環境,新增一個"矩形",並將標籤改成"Enviroment"。 ![](https://i.imgur.com/ORdeQBR.png) 25. 設定"Enviroment"的尺寸,寬度:400,高度:1000。 ![](https://i.imgur.com/hKYquxk.png) 26. 設定"Enviroment"的位置,x:0,y:-40。 ![](https://i.imgur.com/ki9jRXr.png) 27. 往下滑點選"層",這裡新增"完美匹配層",用來優化模擬同時將矩形的邊界設為不反射壁。 ![](https://i.imgur.com/cUJFNC4.png) 28. 點開後在"層1"的後面設定厚度的地方輸入"20",將下面"左層"、"右層"、"下層"和"上層"全部勾選。按下"建立所有物件",就可以得到下面的圖形了。 ![](https://i.imgur.com/HJtQWdo.png) 29. 接著設定每個物件的"材料",首先點選上方工具列中的"材料"。 ![](https://i.imgur.com/RgZXo3k.png) 30. 點選"新增材料"。會看到右邊出現"新增材料"的視窗。 ![](https://i.imgur.com/0mWuaqG.png) 31. 點選"內建",雙擊"Air"即可新增air材料。 ![](https://i.imgur.com/XL7xSA9.png) 32. 雙擊"Alumin"新增材料 ![](https://i.imgur.com/vcnzELX.png) 33. 在"新增材料"視窗內第一欄是搜尋欄位,在搜尋欄輸入"pzt"按下"搜尋"或鍵盤"Enter"。選擇"內建"下的"Lead Zirconate Tianate(PZT-5H)"。這個是壓電元件的材料。 ![](https://i.imgur.com/px5MA3R.png) 34. 新增好材料後,將"新增材料"的視窗關閉,點選"新增材料"視窗右上的"x"。 ![](https://i.imgur.com/h84RbaO.png) 35. 在"模型建立器"中點選"材料"下的"Air"。 ![](https://i.imgur.com/zIjbpt5.png) 36. 修改"Air"的區域,在"幾何本體選擇區"中點選掃把圖案的按鈕,稱作"清除選擇"。可以看到下面框框中的數字消失,同時"選擇區"的欄位變成"手動"。 ![](https://i.imgur.com/9Le2YUC.png) 37. 點選"圖形"中中間的區域和邊邊上的矩形,這裡設定成"Air"的區域,對應選擇區的的數字,這些數字代表每個區域的代號。 ![](https://i.imgur.com/Kg5HmuV.png) ![](https://i.imgur.com/ZurAGcl.png) ![](https://i.imgur.com/PEAa1dF.png) 38. 接著在"模型建立器"中,點選"材料">"Alumin"。 ![](https://i.imgur.com/M6CJdg4.png) 39. 在"圖形"中點選上方薄片狀的矩形。可能沒辦法直接選取到,可以在指標只在矩形上時滾動滑鼠滾輪,來選擇到。 ![](https://i.imgur.com/dEDZ5hg.png) 40. 接著在"模型建立器"中點選"材料">"Lead Zirconate Tianate(PZT-5H)"。 ![](https://i.imgur.com/iV6EL98.png) 41. 在"圖形"中點選下方兩個小矩形,點不到先將畫面放大,在圖形上方的選項中點選"放大方塊",拉選下面的區域即可放大。 ![](https://i.imgur.com/Qf6TpGS.png) ![](https://i.imgur.com/pyeL37m.png) 42. 設定"完美匹配層",在"模型建立器"中找到"定義",點選"定義"展開。 ![](https://i.imgur.com/ZpoJLof.png) 43. 滑鼠只到"定義",按右鍵>點選"完美匹配層"。 ![](https://i.imgur.com/8yimBQe.png) 44. 進來後如下圖 ![](https://i.imgur.com/PCCcyMn.png) 45. 到右邊的"圖形"中,點選邊邊上所有的矩形。這樣就設定完成"完美匹配層" ![](https://i.imgur.com/AG46dUc.png) 46. 以上完成設定模型與材料,接著設定物理量。 47. 首先要先增加兩個物理量,分別是"固體力學"、"靜電"和"電路"。要多這兩個物理量是用來區分"Transmitter"和"Receiver"的特性。 48. 在上方工具列中點選"物理量"。 ![](https://i.imgur.com/zVJQA3m.png) 49. 點選"新增物理量"。和"新增材料"一樣,會在右邊出現"新增物理量"的視窗。 ![](https://i.imgur.com/LYiydpI.png) 50. 在"結構力學">雙擊"固體力學"來新增。會在"模型建立器"中出現"固體力學2" ![](https://i.imgur.com/hHgxL56.png) 51. 在"AC/DC">雙擊"電路",新增電路。 ![](https://i.imgur.com/aLjss9k.png) 52. 在"AC/DC">"電廠與電流">雙擊"靜電"。 ![](https://i.imgur.com/59AupvG.png) 53. 新增好物理量後,將"新增物理量"的視窗關閉 ![](https://i.imgur.com/yttH88Q.png) 54. 在"模型建立器"中找到"電路",將"電路"拖移到"固體力學2"上方。 ![](https://i.imgur.com/6OjaW6y.png) 55. 設定每個物理量作用的區域,在"模型建立器"中依次點開每個物理量來設定。 56. 首先點選"聲押,暫態(actd)"。 ![](https://i.imgur.com/sD7UZhO.png) 57. 在"區域選擇區"中點選"清除選項",再選擇中間和邊邊的矩形。如圖。 ![](https://i.imgur.com/ktsZqYu.png) 58. 回到"模型建立器"點選"固體力學(solid)" ![](https://i.imgur.com/Z1XX9N6.png) 59. 在"區域選擇區"中點選"清除選項",放大向方的區域,點選右邊的小矩形。 ![](https://i.imgur.com/UdKnm3O.png) 60. 回到"模型建立器"點選"靜電(es)" ![](https://i.imgur.com/QThEzaZ.png) 61. 在"區域選擇區"中點選"清除選項",放大向方的區域,點選右邊的小矩形。 ![](https://i.imgur.com/du9MERx.png) 62. 回到"模型建立器"點選"固體力學2(solid2)" ![](https://i.imgur.com/M5TmNPx.png) 63. 在"區域選擇區"中點選"清除選項",放大向方的區域,點選左邊的小矩形。 ![](https://i.imgur.com/MePKcq6.png) 64. 回到"模型建立器"點選"靜電2(es2)" ![](https://i.imgur.com/xUo06LT.png) 65. 在"區域選擇區"中點選"清除選項",放大向方的區域,點選左邊的小矩形。 ![](https://i.imgur.com/sUZsAl2.png) 66. 回到"模型建立器"點選"聲押,暫態(actd)"展開,點選"暫態壓力聲場模型 1",確認"模型輸入">溫度是"用戶自訂"。 ![](https://i.imgur.com/lR0aI6Y.png) 67. 回到"模型建立器"點選"固體力學(solid)"展開,點選"線性彈性材料1",檢查"模型輸入">"體積參考溫度"設定成"用戶自訂"。 ![](https://i.imgur.com/jiaAvAD.png) 68. 點選"固體力學">"壓電材料",確認"模型輸入">"體積參考溫度"設定成"用戶自訂"。 ![](https://i.imgur.com/opwl9px.png) 69. 點選上方工具列的"物理量">點開"邊界">點選"低反射邊界"。 ![](https://i.imgur.com/GzkKGWB.png) 70. 這時候沒辦法選取邊界,先回到"模型建立器">"多重物理量">"聲-結構邊界1(asb1)" ![](https://i.imgur.com/1G2mrSp.png) 71. 在"選取邊界"中點選"清除選擇",點選右邊矩形上邊,如圖 ![](https://i.imgur.com/FkPGPTm.png) 72. 回到"固體力學1">"低反射邊界1",點選右邊矩形下邊,如圖 ![](https://i.imgur.com/JiIRt5J.png) 73. 到"模型建立器"中點選"靜電(es)"展開,對"靜電(es)"按右鍵,點選"接地",點選右邊的矩形的下邊,如圖。 ![](https://i.imgur.com/9sgwagm.png) ![](https://i.imgur.com/RWiGRYC.png) 74. 對"靜電(es)"按右鍵,點選"終端",點選右邊矩形的上邊,在"終端"中設定"終端名稱",設定成"2","終端類型"改成"電路"。如圖 ![](https://i.imgur.com/tQCeWNO.png) ![](https://i.imgur.com/8q6NMJ4.png) ![](https://i.imgur.com/jU9H97h.png) 75. 到"模型建立器"中點選"電路"展開。 ![](https://i.imgur.com/yOCwiC4.png) 76. 上方的工具列會變成"電路",從中點選"電壓源" ![](https://i.imgur.com/aSNIe7k.png) 77. 在設定>"元件參數">"來源類型"設定成"正弦來源" ![](https://i.imgur.com/sx8RrTr.png) 78. 將"電壓Vsrc"設定成"100*exp(-((t-1.5*T0)/(T0/2))^2)",頻率設定成"f0"。 ==請回到編輯版本中複製函數。== ![](https://i.imgur.com/Xvl4dZK.png) 79. 將"接點連接"設定成"p:1","n:0",如圖 ![](https://i.imgur.com/ib38NGn.png) 80. 到上方工具列,點選"電阻",阻值設定成預設值"1000[Ω]" ![](https://i.imgur.com/D7QJDif.png) 81. 設定"接點連接"設定成"p:1","n:2",如圖 ![](https://i.imgur.com/HL8clqk.png) 82. 在上方工具列,點選"外部I-終端"。 ![](https://i.imgur.com/VEIyi23.png) 83. "節點名稱"設定成"2","外部終端""V"設定成"終端電壓(es/term1)"。 ![](https://i.imgur.com/Pz0msJi.png) 84. 接著設定"固體力學2"和"靜電2"。是"Receiver"的特性。 85. 到"模型建立器"中點選"固體力學2"展開 ![](https://i.imgur.com/NAKmpHA.png) 86. 點選"線性彈性材料1">"模型輸入">"體積參考溫度"設定成"用戶自訂"。 ![](https://i.imgur.com/QHH8gVZ.png) 87. 指標對"固體力學2"按右鍵>"材料模型">點選"壓電材料" ![](https://i.imgur.com/GOPEvQ5.png) 88. 將"模型輸入">"體積參考溫度"設定成"用戶自訂" ![](https://i.imgur.com/rYKpcBM.png) 89. 點選"圖形"中左邊的矩形 ![](https://i.imgur.com/6P9tQZw.png) 90. 指標對"固體力學2"按右鍵>"更多">點選"低反射邊界" ![](https://i.imgur.com/xEhkeQ7.png) 91. 點選"圖形"中左邊矩形的下邊 ![](https://i.imgur.com/u5w36Sl.png) 92. 指標對"固體力學2"按右鍵>點選"滾動"。這個步驟是關鍵,有加入壓電元件才會隨聲波震盪。 ![](https://i.imgur.com/KZYdkaJ.png) 93. 點選"圖形"中左邊矩形的下邊 ![](https://i.imgur.com/UZXr1Ic.png) 94. 到"模型建立器"點選"靜電2(es2)"展開 ![](https://i.imgur.com/ZBMGbu7.png) 95. 指標對"靜電2(es2)"按右鍵>點選"電荷守恆,壓電" ![](https://i.imgur.com/pezDjpw.png) 96. 點選"圖形"中左邊的矩形 ![](https://i.imgur.com/L0dN7Ey.png) 97. 指標對"靜電2(es2)"按右鍵>點選"接地" ![](https://i.imgur.com/bGkFzDH.png) 98. 點選"圖形"中左邊矩形的下邊 ![](https://i.imgur.com/1c9bW82.png) 99. 指標對"靜電2(es2)"按右鍵>點選"浮動電位" ![](https://i.imgur.com/RzjZEXQ.png) 100. 點選"圖形"中左邊矩形的上邊 ![](https://i.imgur.com/SFO1hOD.png) 101. 到"模型建立器"點選"多重物理量"展開 ![](https://i.imgur.com/yAxOo5L.png) 102. 指標對"多重物理量"按右鍵>點選"聲-結構邊界" ![](https://i.imgur.com/mGr8Uf0.png) 103. 在"耦合介面"中,將"結構"改成"固體力學2(solid2)"。再到"圖形"選左邊矩形的上邊。 ![](https://i.imgur.com/evfjVfp.png) 104. 指標對"多重物理量"按右鍵>點選"壓電效應" ![](https://i.imgur.com/I1c4BOn.png) 105. 在"耦合介面"中,將"固體力學"改成"固體力學2(solid2)",將"靜電"改成"靜電2(es2)"。會看到左邊的矩形被選取起來。 ![](https://i.imgur.com/qQ1Bo2z.png) 106. 這裡要回去設定"參數",在"模型建立器">"全域定義">"參數"。 ![](https://i.imgur.com/dBe4QKr.png) 107. 參數值參考下圖輸入值 ![](https://i.imgur.com/YaCR8II.png) 108. 接著設定"網格",在"模型建立器"中點選"網格" ![](https://i.imgur.com/MiiW0hs.png) 109. 指標對"網格"按右鍵>點選"映射" ![](https://i.imgur.com/5aVlwhW.png) 110. 這時會新增"尺寸"和"映射",先點選"尺寸","元素尺寸"勾選"自訂"。 ![](https://i.imgur.com/gOljqms.png) 111. 在"元素尺寸參數">"最大元素尺寸"設定成"air_cp/fmax" ![](https://i.imgur.com/JErcPxF.png) 112. 在"元素尺寸參數">"最小元素尺寸"設定成"0.06" ![](https://i.imgur.com/KfxB7Vc.png) 113. 點選"映射1">"區域選擇區">"幾何實際等級"改成"區域"、"手動" ![](https://i.imgur.com/NZRfNe2.png) 114. 在"圖形"中點選兩個小矩形,也就是壓電元件。 ![](https://i.imgur.com/XLxIWIJ.png) 115. 指標對"映射1"按右鍵>點選"尺寸" ![](https://i.imgur.com/CPb2Zss.png) 116. "元素尺寸"改成"自訂",勾選"最大元素尺寸"設定成"min(1[mm]/3,pzt_cs/fmax/5)" ![](https://i.imgur.com/MeDbHXi.png) 117. 指標對"網格"按右鍵>點選"任意三角形" ![](https://i.imgur.com/rDS42zk.png) 118. 點選"任意三角形">"區域選擇區">"幾何實際等級"改成"區域"、"手動" ![](https://i.imgur.com/VEL04dc.png) 119. 在"圖形"中選取中間區域和"Reflector"的矩形。 ![](https://i.imgur.com/lI7GZvE.png) 120. 指標對"網格"按右鍵>點選"映射" ![](https://i.imgur.com/f5MzGRd.png) 121. 指標對"映射2"按右鍵>點選"分布" ![](https://i.imgur.com/sIJjk8n.png) 122. 點選"圖形"中左和右邊的上邊,如圖 ![](https://i.imgur.com/ncPlPVd.png) 123. 在"分布">"有限元素數"改成"2"。 ![](https://i.imgur.com/8ApY5ZE.png) 124. 按下"建立全部",來建立網格。 ![](https://i.imgur.com/nH0KPIs.png) 125. 到"模型建立器">"研究1">"步驟1:時間相依" ![](https://i.imgur.com/nwt6zEl.png) 126. 到上方工具列,點選"研究" ![](https://i.imgur.com/gKmlqid.png) 127. 點選"顯示預設求解器" ![](https://i.imgur.com/NBQZNKk.png) 128. 點擊"解1(sol1)"展開>點選"時間相依求解器" ![](https://i.imgur.com/Djpypyq.png) 129. 點選"時間步階"展開>將"方法"改成"廣義alpha" ![](https://i.imgur.com/CFGYPL4.png) 130. "由求解器解決的步階"改成"手動",將"時間步階"改成"min(1/(60*fmax),min(1/(60*fmax),1/(60*fmax)))"(*要打出來) ![](https://i.imgur.com/JJshAp6.png) 131. 按下"計算"就可以等COMSOL計算了,這個範例大概算10多分鐘。 ![](https://i.imgur.com/tO3gE4r.png) 132. 接下來加入"探針",追蹤壓電元件的電壓與變形。回到"模型建立器">"單元件1">"定義" ![](https://i.imgur.com/2tBopqF.png) 133. 對"定義"按右鍵,點選"探針">"邊界探針" ![](https://i.imgur.com/I8O6hfo.png) 134. "探針類型"改成"積分" ![](https://i.imgur.com/ujRpCxW.png) 135. "來源端選擇">"清除選擇">放大"圖形"下方區域>點選左邊矩形的下邊。 ![](https://i.imgur.com/FG2wAm9.png) 136. 在"表示式"旁邊點選"取代表示式" ![](https://i.imgur.com/lu79B15.png) 137. 點選"單元件">"靜電2">"浮動電位">點選"es2.fp1.V0-浮動電位-V" ![](https://i.imgur.com/MY9JZhq.png) 138. 修改"標籤",改成"Receiver voltage" ![](https://i.imgur.com/2S33JUE.png) 139. 在"模型建立器"中,對"Receiver voltage"按右鍵>點選"重複" ![](https://i.imgur.com/5dB7whY.png) 140. 將標籤"Receiver voltage 1"改成"Transmitter voltage" ![](https://i.imgur.com/Rezg0VI.png) 141. 在"來源端選擇">"清除選擇",在"圖形"中點選右邊矩形的上邊。 ![](https://i.imgur.com/MxJSKiE.png) 142. 在"表示式"點選"取代表示式" ![](https://i.imgur.com/k3KNTwk.png) 143. 點選"單元件">"靜電">"終端">"es.V0_2-終端電壓-V" ![](https://i.imgur.com/gvDYBY4.png) 144. 到"模型建立器"中對"定義"按右鍵>"探針">點選"區域探針" ![](https://i.imgur.com/EiNdxjT.png) 145. 將標籤換成"Receiver volumn" ![](https://i.imgur.com/2bGSxz7.png) 146. 探針類型改成"積分" ![](https://i.imgur.com/Drh2qaH.png) 147. "來源端選擇">"清除選擇">點選"圖形"中左邊矩形。 ![](https://i.imgur.com/1Kex3CZ.png) 148. "表示式">點選"取代表示式" ![](https://i.imgur.com/I4t9hnR.png) 149. "單元件1">"固體力學2">"應變">"solid2.evol-體積應變" ![](https://i.imgur.com/dYLrZWa.png) 150. 往下滑到"表單和視窗設定">點擊旁邊的"+"號按鈕。這步驟三個探針都要有,不然圖表會擠在同一張。 ![](https://i.imgur.com/lXK2K1t.png) 151. 再次到"研究1">修改"研究設定">"時間單位"改成"ms","輸出次數"改成"range(0,0.1,2)"。 ![](https://i.imgur.com/M8YtS5C.png) 152. 按下"計算"開始計算,等待結果 153. 計算完成後會看到以下畫面,自動跳到第一項結果。 ![](https://i.imgur.com/oFGeHwO.png) 154. 點選"聲壓(actd)" ![](https://i.imgur.com/X2UJC0t.png) 155. 點選上方工具列中的"動畫">"播放器" ![](https://i.imgur.com/iPaGSdZ.png) 156. 聲波傳遞不太清楚,往下滑,點擊"進階",取消勾選"畫格間的比例同步化" ![](https://i.imgur.com/TVppzTN.png) 157. 按下"圖形"中的"播放"鍵,即可修改動畫。 ![](https://i.imgur.com/6bXhn0o.png) 158. 到資料夾中,開啟"壓電材料_聲波傳遞_2D_反射體_壓電接收_完成版.mph"比較結果是否相符。 ### 3D和2D的差異,3D網格建立 3D模擬中的網格同樣是3D的,因此在做完"映射"後,要加上"掃描"產生立體的網格。只做"映射"代表只完成立體物件表面的網格。 > 1. 首先繪製"圓柱",和2D一樣繪製"Transmitter"、"Receiver"、"Reflector"和"Enviroment",如圖 > ![](https://i.imgur.com/Guj555m.png) > 2. 和2D一樣設定好"物理量",後設定"網格" > 3. 在2D中,我們對"壓電元件"和"完美匹配層"做"映射",同樣的在3D中也做"映射"。 > ![](https://i.imgur.com/5SKRsJB.png) > 4. 其中對"完美匹配層"的"分布"設定比較多,分別要設定4個地方。 > ![](https://i.imgur.com/ZugRQ8p.png) > 5. 第一個是外圈由內向外的網格數,上下兩個外圈格數會同步,如果不放心可以上下都選擇起來,要選擇的地方如圖。 > ![](https://i.imgur.com/4OSeueZ.png) > 6. 第二個是外圈的厚度的網格數,一樣上下格數同步。 > ![](https://i.imgur.com/DS221cb.png) > 7. 第三是是外圈一圈的格數,這裡要注意,設定的網格數是1/4圈中的網格數,所以這裡設定網格數是"12",但一圈的總網格數是"48" > ![](https://i.imgur.com/vFLBIBw.png) > 8. 第四是圓柱高上的網格數 > ![](https://i.imgur.com/B6qDTlA.png) > 9. 最後新增"掃描",並設定"掃描"的區域和"映射"的區域相同,按下"建立網格"沒有報錯就完成了!! > ![](https://i.imgur.com/yGuFMhS.png) > ![](https://i.imgur.com/Cv2k9i6.png) ## COMSOL設定注意事項 在建立模擬時最常發生問題的地方是"網格"和"研究"下面會說明 ### 常見問題 #### 網格 網格的目是給COMSOL一個分割區域,就像是做微積分一樣,在進行計算時依照每個網格的大小來當作一次計算距離參數。所以網格越大,得到的結果誤差越大。 建立網格時最常遇到"網格不匹配"或"來源與目的網格不匹配"。造成的原因有兩種。 > 1. 兩個不同網格設定的物體太靠近,這時COMSOL沒辦法插入網格來配對兩套不同的網格,因此跳出"網格不匹配"的錯誤。解決辦法是回到"幾何",將兩個物件的距離拉遠,或是將其中一邊的網格設定成"任意四面體"或"任意三角形",由COMSOL來消除不匹配的網格。 > 2. 設定映射時,將相連的網格設定成不同參數,造成"來源與目的的網格不匹配"。將映射參數不同的地方調成相同即可。 #### 研究 研究是COMSOL進行計算的地方,因此到這邊沒有錯誤就表示模擬能正常運行,有錯誤一定是前面或研究步驟中有錯誤。 常見的錯誤有"缺少網格"、"結果沒有收斂"、"時間順序不能往前"等等 > 1. "缺少網格"通常是在做3D模擬時沒有做"掃描"或是沒有加入"任意四面體",造成區域中沒有網格,因此無法進行計算。 > 2. "結果沒有收斂"通常是參數設定問題,可能是給予的輸入值過大、研究的時間範圍太大等等,導致數值超過COMSOL模擬的上限,解決辦法有修改"單位"、修改參數、修改時間範圍來縮小數值。造成的原因如同設定浮點數時給予超過浮點數的範圍導致溢位,COMSOL有保護機制避免溢位發生。 > 3. "時間順序不能往前"顧名思義,在設置時間範圍時結束時間小於起始時間或間格時間導致。 > ## 目前進度 ### 將上述的2D聲波模擬換成3D模擬 前面有提到,COMSOL模擬的空間維度是一開始就設定好了,不能中間更改,因此要手動從頭製作3D模擬。目前已製作出來,但是要達到3公尺長的範圍太大,需要更多記憶體的電腦才跑得動。 檔案名稱"壓電材料_聲波傳遞_3D圓柱_2D延伸_1公尺_3D目前進度.mph" ### 待釐清的問題 > #### 數值模擬,"廣義alpha" > COMSOL模擬中為了將快計算速度,改由"廣義alpha(Generalized alpha method)"去跑數值模擬,至於詳細的運算方式還不太了解。 > https://opensees.berkeley.edu/wiki/index.php/Generalized_Alpha_Method > https://www.youtube.com/watch?v=wUsTSm-DY1g > #### COMSOL優化計算,直接求解與迭代器求解 > 直接求解計算較快速,記憶體需求大,但不精確;反之迭代器求解精確,記憶體需求較低,但花更多時間。需要了解原理。 > http://cn.comsol.com/blogs/solutions-linear-systems-equations-direct-iterative-solvers/ ### 機構設計想法 目前想法是使用3個Tx來建立聲波建設性干涉範圍,因此設計三個Tx同步發出聲波,將建設性干涉形成的強聲波區去貼近TP的觀測範圍。在4個角落上各放一個Rx,來接收聲波,4個Rx的接收範圍盡量不要重疊,來分辨物體在畫面中的位置。