傳遞函數分析:小心三角函數陷阱!

作者 : John Dunn,EDN專欄作者

針對一些簡單的電路,可以非常容易地推導代數傳遞函數,並查看電路的增益和相位特性。使用SPICE模擬可以輕鬆進行檢查,但如果不巧沒有SPICE程式可用,想用幾行程式碼來計算代數就可能落入陷阱...

針對一些非常簡單的電路(在本例中為雙極點RC低通濾波器),我們可以非常容易地推導代數傳遞函數,並查看電路的增益和相位特性。使用SPICE模擬就可以輕鬆地進行檢查(1)。

Spice screenshots for a two-pole RC filter analysis

1:雙極點RC濾波器分析。

傳遞函數的分母有一個「實部」分量(我們稱為DR)和一個「虛部」分量(我們稱為DI),從中可以計算出增益和相位。但是,如果不巧並沒有SPICE程式可用,而是想用幾行程式碼來計算代數,那麼就可能遇到麻煩,如2所示。

annotated algebraic calculations for transfer function圖2:嘗試用幾行程式碼計算代數,可能會給自己找麻煩。

當我們掃描整個頻率範圍時,分母中的DR值會從正變為負,當發生這個情況時,反正切(arctangent)函數就會在計算得到的相位遲滯曲線中產生階躍變化。

four graphs show the arctangent function step change

圖3:反正切函數會在計算出的相位遲滯曲線中產生階躍變化。

在標準相位圖的第二和第四象限中,三角正切值為負。當DR值小於零時,反正切函數不會返回電路的實際相位遲滯角,而是返回主值角,就我們的目的而言,可以將其視為最接近於實軸正側零度位置的角。其結果是所計算出的相位結果突然增加了180°的階躍,但我們很清楚在構建這個電路時不會發生這種情況。

SPICE程式足夠聰明,可以知道這一點並進行適當但不可見的校正。當我們編寫自己的程式碼時,必須自己檢測並更正這個問題(圖4)。

校正示例:

CORRECTION=0:IF ABS(PHASEHOLD-PHASELAG)>90 THEN CORRECTION=180

calculations for the principal angle correction圖4:在編寫我們自己的程式碼時,必須自行檢測並更正這個問題。

(原文刊登於EDN美國版,參考連結:Transfer function analysis has a trigonometric booby trap,由趙明燦編譯。)

本文同步刊登於EDN Taiwan 2021年6月號雜誌

加入LINE@,最新消息一手掌握!

發表評論