為了将PWM信号轉成直流,需要利用低通濾波器濾除PWM信号中的高次諧波信号。
多階RC低通濾波是一種比較常用的方法,如下圖的二階RC濾波電路:
用于PWM轉直流的二階RC濾波電路
拉普拉斯變換
機關階躍信号定義為:
機關階躍信号
其拉普拉斯變換定義為:
機關階躍信号的拉普拉斯變換
如果PWM信号的高電平為VH,當輸出高電平時,輸出信号的拉普拉斯變換為:
電容C3,C4在頻域下的阻抗分别為以及,得到頻域下的等效電路和參數:
頻率下的電路和參數
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符号運作過程
得到電容C4兩端電壓Vo(s)為:
(式1)
拉普拉斯逆變換
假設分别為方程
的兩個根,
則根據韋達定理,有:
而可以表示為:
對于形如的多項式,
可以轉換為:
左右兩邊同時乘以s,得到,
在上式中,令s=0,得到:
左右兩邊同時乘以之後,令,得到:
同樣得到,
是以,
根據拉普拉斯的逆變換,
常見的拉普拉斯變換對
得到,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,
常見函數的泰勒公式展開
将函數,用泰勒公式展開,并保留至第二項;
得到:
,
,
代入式2,得到:
(式3)
當考慮PWM輸出一段時間之後,PWM在切換到高電平的瞬間,電容C4已經有一定的電壓U0,則式1應該加到電容C4的初始電壓,再經過拉普拉斯逆變換,得到,
--對于電容初始電壓不為0的情況,此處分析有誤,在另一篇文章的再做詳細分析。
充電波形
當高電平為5V,占空比為50%時,紋波大小為: