天天看點

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

作者:物聯網全棧開發

為了将PWM信号轉成直流,需要利用低通濾波器濾除PWM信号中的高次諧波信号。

多階RC低通濾波是一種比較常用的方法,如下圖的二階RC濾波電路:

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

用于PWM轉直流的二階RC濾波電路

拉普拉斯變換

機關階躍信号定義為:

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

機關階躍信号

其拉普拉斯變換定義為:

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

機關階躍信号的拉普拉斯變換

如果PWM信号的高電平為VH,當輸出高電平時,輸出信号的拉普拉斯變換為:

電容C3,C4在頻域下的阻抗分别為以及,得到頻域下的等效電路和參數:

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

頻率下的電路和參數

Octave符号運算

當輸入信号時,根據頻域下的電路,可以計算出電容C4兩端的電壓。

涉及到分式多項式的運算,運算量大,容易算錯。

可以使用Octave的符号運算快速得到結果。

Symbolic符号運算包需要用到Python的SymPy庫。

在Octave的指令行視窗,運作pkg install -forge symbolic,下載下傳symbolic符号運算包,

再運作pkg load symbolic,加載symbolic符号運算包。

運作以下腳本:

syms R3 R4 C3 C4 s VH
ZC4=1/(C4*s);%電容C4的阻抗
ZC3=1/(C3*s);%電容C3的阻抗
Z1=R4+ZC4;%Z1為R4與C4串聯
Z2=ZC3*Z1/(ZC3+Z1);%Z2為C3與Z1并聯
Vo=VH/s*Z2/(Z2+R3)*ZC4/Z1;%C4兩端的電壓為Z2與R3分壓之後,再由C4與R4分壓
simplify(Vo)%化簡符号表達式           
利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

Octave符号運作過程

得到電容C4兩端電壓Vo(s)為:

(式1)

拉普拉斯逆變換

假設分别為方程

的兩個根,

則根據韋達定理,有:

而可以表示為:

對于形如的多項式,

可以轉換為:

左右兩邊同時乘以s,得到,

在上式中,令s=0,得到:

左右兩邊同時乘以之後,令,得到:

同樣得到,

是以,

根據拉普拉斯的逆變換,

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

常見的拉普拉斯變換對

得到,C4兩端的電壓在時域的表達式為:

(式2)

PWM輸出直流的紋波分析

當R3=R4=10kΩ,C3=C4=1uF時,

分别是以下方程的兩個根,

的兩個根,

根據求根公式,得到,

的兩個根,

假設,

當PWM的頻率為800Hz時,占空比為100%時,充電的最長時間為1.25ms,

此時,最大為-38.2*1.25ms=-0.04775<1,

而最大為-261.8*1.25ms=-0.32725<1,

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

常見函數的泰勒公式展開

将函數,用泰勒公式展開,并保留至第二項;

得到:

代入式2,得到:

(式3)

當考慮PWM輸出一段時間之後,PWM在切換到高電平的瞬間,電容C4已經有一定的電壓U0,則式1應該加到電容C4的初始電壓,再經過拉普拉斯逆變換,得到,

--對于電容初始電壓不為0的情況,此處分析有誤,在另一篇文章的再做詳細分析。

利用拉普拉斯變換以及octave的符号運算分析二階RC濾波電路

充電波形

當高電平為5V,占空比為50%時,紋波大小為:

繼續閱讀