---
# System prepended metadata

title: COMSOL整理

---

# 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的接收範圍盡量不要重疊，來分辨物體在畫面中的位置。