为了将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 VHZC4=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%时,纹波大小为:
|