這篇文章想要跟大家介紹一下「暫態模擬」的基本概念,內容大部份是節錄自我過去所寫的高頻電子實驗教材(請拉至頁面最下方)。該門課程的授課對象是 EE 大三的學生,我們在該課程裡面總共教給修課同學們「直流、暫態、交流、諧波平衡以及散射參數」等 5 種不同的模擬器,以及模擬的觀念。因為實驗教材的內容都是 step by step,內容有點多,之後我會抽一點時間,將裡面比較重要的東西,簡化成一篇篇的文章來跟大家分享。
這裡要談的內容,比較適合 EE 大二與大三左右的學生,對於比較資深的工程師來講就太簡單啦!(或許可以直接看文章最後的"補充"之處就可以啦!)
這裡我們是以電子學裡很常見的 CE 放大器做為範例,但是請大家「不要看電路」,因為重點是暫態模擬的觀念介紹,不要被圖中那一堆密密麻麻的東西給嚇跑了哦!
在這個實驗的最後,我們用土法煉鋼的方式來畫出放大器的頻率響應。雖然感覺有點愚蠢,但有時候卻很實用。下一個實驗,我們來看看如何使用交流模擬來跑頻率響應,學一點更聰明的方法。
這裡要談的內容,比較適合 EE 大二與大三左右的學生,對於比較資深的工程師來講就太簡單啦!(或許可以直接看文章最後的"補充"之處就可以啦!)
這裡我們是以電子學裡很常見的 CE 放大器做為範例,但是請大家「不要看電路」,因為重點是暫態模擬的觀念介紹,不要被圖中那一堆密密麻麻的東西給嚇跑了哦!
暫態模擬的簡要說明
一個弦波的頻率若為 f,週期為 T (= 1/f ),見下圖。- 由於電腦的計算永遠都是用「資料 點(data points)」。所以一個類比的連續弦波只要在電腦中計算,一定是用「有限個」資料點表示出來的。
- 如果弦波的一個週期 T 內,我們分別用 8 個點跟用 100 個點去表示,一定是用 100 個點去描述會「比較」連續。
- 假使你學過取樣定理,你應該知道一個弦波在一個週期內最少要用 2 個點來表示,這是理論上可以將「離散資料點」回復成「類比弦波」的最低底限。
- 一般而言在模擬時,在弦波的一個週期 T 內用 4 ~ 16 個點來表示它,通常就已足夠。
- 如果說這個弦波的頻率是1 kHz,那麼它的週期將會是 T = 1 ms。若我們想在一個 T 內用至少 8 個點來表示它,那麼點跟點的時間間隔則必須小於1 ms/8 = 0.125 ms,這個數值也就是我們在暫態模擬中所講的 simulation time step。
- 知道 time step 的概念後,我們還要問:「如果我想看總共 5 個週期的弦波波形,需要模擬多長的時間?」
- 以 1 kHz 的弦波為例,模擬的總時間長度應該要有 1 ms * 5 cycles = 5 ms。如果模擬的 start time 統一都是從第 0 秒開始,那麼模擬弦波 5 個週期的 stop time 就是 5 ms。那麼電腦所需要跑的資料點數(一個週期若取 8 個點表示),總共就會是 5 ms / 0.125 ms = 40 個點 (或是 8 點 * 5 個週期 = 40 個點)。
CE 組態放大器的暫態模擬
這裡我們是以模擬一個 CE 放大器為例,大家不需要管電路的結構,只需要把焦點放在左下角的激發源(SRC4) 設定,以及模擬器 (TRANSIENT 那一塊) 的參數設定。- 激發源是一個頻率為 1 kHz 的弦波,振幅是 1 mV。
- 模擬參數是使用 0.1 ms 的 time step,總共要跑 10 ms 那麼長 (所以模擬的總資料點數將為 10 ms / 0.1 ms = 100 個點)。
找出放大器的電壓增益
- 執行完模擬後,我們可以將輸入與輸出的波形給繪製出來,然後用 marker 標記出輸入弦波電壓峰值處(m1)、輸出弦波電壓峰值處(m2)。
- 這些將輸出峰值電壓除以輸入峰值電壓,就可以計算出放大器的電壓增益囉!
- 這個範例所計算的是開路增益,請見電路圖粉紅色的 Vout 節點,輸出是沒有加上負載的喔!(目的在說明暫態模擬,不是要教電子學哦!)
- 曾經有讀者問過我,它把 markers m1 跟 m2 移到他位置(落在同樣的垂直線,但並非標記在 peak 處),結果得到的增益卻不一樣是為何啊?
- 這邊我做一點小補充,當我們在量增益時,marker 一定得放在 peak 處,因為 peak 處的電壓才是「弦波的"振幅"」。任意時刻下的電壓大小,不能稱之為振幅,因為任意時刻的電壓大小是 V*cos(ωt) ,並不是振幅 V。
用時域模擬來跑放大器的頻率響應
「頻率響應」指的就是我們想找出某個東西(例如放大器),輸出與輸入之間在不同頻率下的關係(例如電壓增益)。- 若我們想找放大器在 1 kHz 頻率下的電壓增益,我可以輸入一個 1 kHz 的正弦波給放大器,然後找出此時的 vout/vin 即知電壓增益 Av。
- 如果現在我想看放大器操作在 2 kHz、3 kHz、4 kHz…頻率下的電壓增益,我只要改變輸入訊號的頻率,然後將不同頻率下的 Av 記錄下來,就可以自己徒手畫出放大器的頻率響應了。
- 當我們在做「實際元件」的量測時,手邊可能只有任意波形產生器(弦波產生器)以及一台示波器。這時候,我們也是用同樣的方法來找出放大器的頻率響應,這是一種非常實際而且陽春的方法。
- 當然,我們可以使用「交流模擬」來跑出一個東西的頻率響應。但是在這之前,我們還是先來看一下怎麼樣用時域的方式找頻率響應,在模擬的設定上我們需要使用一些小技巧才行。請參照下圖的指示來進行模擬參數的設定。 => 將模擬參數給「變數化」,變數化之後,之後只要隨時修改變數 fs 的值,就能跑不同頻率的模擬囉! (當然,也可以跑變數掃描模擬,這裡就不說那檔事啦。)
- 設定完成後,請就弦波頻率 fs 為 1 kHz 時跑一次模擬,將電壓增益記錄下來。接著依序將 fs 改成 2 kHz、4 kHz、8 kHz、16 kHz、…、512 kHz、1024 kHz、2.048 MHz、4.096 MHz、8.192 MHz、16.384 MHz、…、131.072 MHz,分別記錄這些頻率下放大器的電壓增益。如果你願意,拿出一張紙來,x 軸為頻率,y 軸為增益,把這些點給畫出來,知道意思了吧?
總結
做完本實驗,其實你幾乎已經快學完時域暫態模擬原理的全部了。我們在實驗中的輸入訊號是以弦波當作例子,而你在其他課程中可能會學到數位電路的模擬,在那個情況下你的輸入訊號大部分都是方波。- 在描述方波時,不外乎就是用到振幅、duty cycle、上升時間 (rise time, tr) 與下降時間 (fall time, tf) 這些參數。
- 現在想一想,如果有一個頻率為 1 kHz 的方波,duty cycle 是 50% 而 tr = tf = 0.1 ms,我們在模擬的時候 time step 最大不可以超過多少,才可以觀察到正確的上升與下降現象呢?
- 如果你搞懂了,你已經學完暫態模擬的全部,沒有其他了。不管你是使用 PSPICE、HSPICE 或其他任何模擬軟體,只要是時域暫態模擬,都是一樣的觀念。學會一種觀念,就能輕易使用數十種模擬軟體了。
在這個實驗的最後,我們用土法煉鋼的方式來畫出放大器的頻率響應。雖然感覺有點愚蠢,但有時候卻很實用。下一個實驗,我們來看看如何使用交流模擬來跑頻率響應,學一點更聰明的方法。
補充
- 其實現在很多模擬器都很聰明,為了加速暫態模擬,並不一定是用等時距模擬 (uniform time step)。我們這裡介紹是很傳統的等時距觀念,不過對於暫態模擬參數的設定來講,我認為已經很足夠了。
- 暫態模擬最不容易處理的是「高頻與低頻」成分混和在一起的訊號,因為你要模擬得出「高頻」內容,time step 必定要設的很小;同時又想看出「低頻」內容,stop time 一定要設的夠長,否則模擬不出來呀!
- 最典型的例子就是模擬「調制訊號」,因為它同時有高頻的載波(例如 1 GHz) 以及低頻的資訊內容 (例如約 10 kHz)。所以你想跑出完整的時域波形,就要跑很久(這種做法稱作 passband simulation),資料量也會爆多,電腦的記憶體很快就會被塞爆。就算記憶體沒有爆,在繪製波形時也會很慢,電腦的壓力會很大。這有沒有解法呢?有,就是複數波包 (ADS 或稱電路波包) 模擬。這就是通訊系統裡面,我們講的「帶通訊號的等效低通訊號」理論的實際運用,有機會再跟大家介紹囉!這邊只能說,模擬速度是 1 與 1 萬的差別,非常之加速呀 XDDD。