LC低通滤波器Bode图分析(传递函数&零极点)

LC低通滤波器

在这里插入图片描述

我们使得L=4.7uH,C=220uF;电感L的阻抗为Xl;电容C的阻抗为Xc;

传递函数

H ( s ) = u o u i = X C X C + X L = 1 s C 1 s C + s L = = 1 1 + s 2 L C (其中 s = j ω ) H(s)=\frac{u_{o} }{u_{i} } =\frac{X_{C} }{X_{C}+X_{L}} =\frac{\frac{1}{sC} }{\frac{1}{sC}+sL} ==\frac{1 }{1+s^{2} LC}(其中s=j\omega ) H(s)=uiuo=XC+XLXC=sC1+sLsC1==1+s2LC1(其中s=
将传递函数进一步整理可得:
H = 1 1 − ω 2 L C H=\frac{1}{1- \omega^{2} LC} H=1ω2LC1
由上式可得出传递函数的实部和虚部:
r e a l = 1 1 − ω 2 L C i m a g e = 0 \begin{matrix}real=\frac{1}{1- \omega^{2} LC} \\image=0 \end{matrix} real=1ω2LC1image=0
进一步求出幅值和相位表达式:
幅值 = r e a l 2 + i m a g e 2 = ∣ 1 1 − ω 2 L C ∣ 相位 = a r c t a n ( i m a g e r e a l ) = a r c t a n ( 0 ) ( 其中 ω = 2 π f ) \begin{matrix}幅值=\sqrt{real^{2}+image^{2} } =\left | \frac{1}{1- \omega^{2} LC} \right | \\相位=arctan\left (\frac{image}{real} \right ) =arctan\left (0\right ) \\(其中 \omega =2\pi f) \end{matrix} 幅值=real2+image2 = 1ω2LC1 相位=arctan(realimage)=arctan(0)(其中ω=2πf)

谐振频率

当电感L与电容C的阻抗相互抵消时,LC低通滤波器的整体阻抗最小,此时滤波器发生谐振,对应频率为谐振频率,计算公式如下:
X L = X C 2 π f L = 1 2 π f C \begin{matrix}X_{L} =X_{C} \\2\pi fL=\frac{1}{2\pi fC} \end{matrix} XL=XC2πfL=2πfC1

由此可以求出谐振频率:

f r = 1 2 π L C f_{r}=\frac{1}{2\pi \sqrt{LC} } fr=2πLC 1

零点与极点

由传递函数可求出零点与极点:
H ( s ) = u o u i = X C X C + X L = 1 s C 1 s C + s L = = 1 1 + s 2 L C (其中 s = j ω ) H(s)=\frac{u_{o} }{u_{i} } =\frac{X_{C} }{X_{C}+X_{L}} =\frac{\frac{1}{sC} }{\frac{1}{sC}+sL} ==\frac{1 }{1+s^{2} LC}(其中s=j\omega ) H(s)=uiuo=XC+XLXC=sC1+sLsC1==1+s2LC1(其中s=
零点:令传递函数的分子为0可求出零点,得此LC滤波器无零点;
极点:令传递函数的分子为0可求出极点,得
s 2 = − 1 L C s 1 , 2 = ± j 1 L C \begin{matrix}s^{2}=-\frac{1 }{LC } \\s_{1,2} = \pm j\frac{1}{\sqrt{LC}} \end{matrix} s2=LC1s1,2=±jLC 1
所以,LC低通滤波器有两个极点,但是都处在虚轴上,为纯虚极点,轴上的极点通常表示系统的自然频率,且没有阻尼(即实部为零);这两个自然频率点都会在bode图上表现出来,对bode图造成一定的影响;自然频率为:
f 1 , 2 = ± 1 2 π L C (负值需要取其绝对值) f_{1,2} = \pm\frac{1}{2\pi\sqrt{LC}}(负值需要取其绝对值) f1,2=±2πLC 1(负值需要取其绝对值)
自然频率:自然频率是指一个系统在没有外部驱动的情况下,自然振荡的频率。对于 LC 低通滤波器来说,系统的自然频率是指电感和电容共同决定的振荡频率。

在这里,谐振频率点与自然频率点在数值上相等。

Bode图绘制与分析

现在,我们使用matlab来画出这个LC滤波器的bode图,如下:
在这里插入图片描述

传递函数如下,我们通过传递函数来分析这个bode图:
H = 1 1 − ω 2 L C H=\frac{1}{1- \omega^{2} LC} H=1ω2LC1

  1. 在谐振频率左侧,当f<<fr时,对应的幅值和相位计算如下: H = 1 1 − ω 2 L C = 1 1 − ( 2 π f ) 2 L C ≈ 1 H=\frac{1}{1- \omega^{2} LC} =\frac{1}{1- (2\pi f)^{2} LC} ≈1 H=1ω2LC1=1(2πf)2LC11
    因此在bode图上对应的幅值增益为0dB,因为传递函数没有虚部,所以相位为0°。
  2. 在截止频率右侧,当f>>fr时,对应的幅值和相位计算如下: H = 1 1 − ω 2 L C = 1 1 − ( 2 π f ) 2 L C (随着频率增大幅值减小,斜率为 − 40 d B / 10 d e c ,即频率每增加 10 倍,幅值衰减 40 d B ) H=\frac{1}{1- \omega^{2} LC} =\frac{1}{1- (2\pi f)^{2} LC} (随着频率增大幅值减小,斜率为-40dB/10dec,即频率每增加10倍,幅值衰减40dB) H=1ω2LC1=1(2πf)2LC1(随着频率增大幅值减小,斜率为40dB/10dec,即频率每增加10倍,幅值衰减40dB
    在bode图上,幅值增益为负数,并逐渐减小;传递函数计算的H为负数,所以相位为-180°。
  3. 在谐振频率处f=fr≈4949.48Hz处,对应的幅值和相位计算如下: H = 1 1 − ω 2 L C = 1 1 − ( 2 π f r ) 2 L C = ∞ H=\frac{1}{1- \omega^{2} LC} =\frac{1}{1- (2\pi f_{r})^{2} LC} =∞ H=1ω2LC1=1(2πfr)2LC1=
    在bode图上增益为无穷大,相位从0°变化到-180°

matlab代码

L=4.7*10^(-6);
C=220*10^(-6);
H=tf(1,[(L*C) 0 1]);

% 获取零极点
z = zero(H);
p = pole(H);
disp(z);
disp(p);

opts = bodeoptions;
opts.FreqUnits = 'Hz'; % 设置频率单位为Hz

bode(H, opts);
grid on

% 获取当前坐标轴
h = findobj(gcf, 'Type', 'axes');

% 设置增益图的横纵坐标显示值
set(h(1), 'XScale', 'log'); % 设置横坐标为对数刻度


set(h(1), 'XLim', [0,10000000]);
set(h(1), 'XTick', [0,1,10,100,1000,10000,100000,1000000,10000000]); % 设置横坐标刻度
set(h(1), 'YLim', [-100, 100]); % 设置纵坐标范围
set(h(1), 'YTick',[-100,-50,0,50,100]); % 设置纵坐标刻度

% 设置相位图的横纵坐标显示值
set(h(2), 'XScale', 'log'); % 设置横坐标为对数刻度
set(h(1), 'XLim', [1,10000000]);
set(h(2), 'XTick', [0,1,10,100,1000,10000,100000,1000000,10000000]); % 设置横坐标刻度
set(h(2), 'YLim', [-225, 45]); % 设置纵坐标范围
set(h(2), 'YTick', [-225,-180,-135,-90,-45,0,45]); % 设置纵坐标刻度


% 计算截止频率
%RC = 1 / abs(p); % 截止频率为极点的绝对值的倒数
resonant_freq = 1 / (2 * pi *sqrt(L*C)); % 截止频率(Hz)
disp(resonant_freq);


% 在增益图上标示零点和极点
for i = 1:length(h)
    if i == 1 % 增益图
        % 标示零点
        for j = 1:length(z)
            if ~isinf(z(j)) % 排除无穷大
                hold on;
                % 将零点从弧度转换为赫兹
                freq_hz = real(z(j)) / (2 * pi);
                plot([freq_hz, freq_hz], [-180, 180], 'r--'); % 画虚线
                text(freq_hz, 90, sprintf('Zero: %.2f Hz', freq_hz), 'Color', 'r'); % 添加文本标注
            end
        end
        
        % 标示极点
        for j = 1:length(p)
           if ~isinf(p(j)) % 排除无穷大
                hold on;
                % 计算频率
                freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率
                % 处理负频率
                if freq_hz < 0
                
                    freq_hz_positive = -freq_hz; % 转换为正频率
                else
                    freq_hz_positive = freq_hz; % 保持正频率
                end
                
                % 标示正频率
                plot([freq_hz_positive, freq_hz_positive], [-100, 10], 'g--'); % 画虚线
                text(freq_hz_positive, 80, sprintf('Pole: %.2f Hz', freq_hz_positive), 'Color', 'g'); % 添加文本标注
            end
        end
        
        % 标示截止频率
        %hold on;
        %plot([cutoff_freq, cutoff_freq], [-100, 50], ':'); % 画截止频率虚线
        %text(cutoff_freq, -50, sprintf('Cutoff: %.2f Hz', cutoff_freq), 'Color', 'b');

    elseif i == 2 % 增益图
        % 标示零点
        for j = 1:length(z)
            if ~isinf(z(j)) % 排除无穷大
                hold on;
                % 将零点从弧度转换为赫兹
                freq_hz = real(z(j)) / (2 * pi);
                plot([freq_hz, freq_hz], [-180, 180], 'r--'); % 画虚线
                text(freq_hz, 90, sprintf('Zero: %.2f Hz', freq_hz), 'Color', 'r'); % 添加文本标注
            end
        end
        
        % 标示极点
        for j = 1:length(p)
           if ~isinf(p(j)) % 排除无穷大
                hold on;
                % 计算频率
                freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率
                % 处理负频率
                if freq_hz < 0
                
                    freq_hz_positive = -freq_hz; % 转换为正频率
                else
                    freq_hz_positive = freq_hz; % 保持正频率
                end
                
                % 标示正频率
                plot([freq_hz_positive, freq_hz_positive], [-180, 180], 'g--'); % 画虚线
                text(freq_hz_positive, -80, sprintf('Pole: %.2f Hz', freq_hz_positive), 'Color', 'g'); % 添加文本标注
            end
        end
        
       

    end
    
end
% 标示截止频率
hold on;
plot([resonant_freq, resonant_freq], [-225, 225], ':'); % 画截止频率虚线
text(resonant_freq, -90, sprintf('Resonant: %.2f Hz', resonant_freq), 'Color', 'b');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值