实验目的
1、熟悉RLC串联谐振电路的特点,加深对串联谐振电路特性的理解。
2、掌握RLC串联谐振电路各参数的测量方法。
3、掌握用实验方法测量、绘制RLC电路频率特性曲线的方法。
4、研究电路元件参数对谐振频率、品质因数和通频带的影响。
主要仪器设备及软件
硬件:函数信号发生器、数字示波器、台式万用表、5.6mH电感、20Ω电阻、0.1μF电容
软件:NI Multisim 14.0, Matlab 2023b, Visio
实验原理(或设计过程)
串联谐振电路由电阻(R)、电感(L)、电容(C)串联后外接正弦交流电源构成,各元件依次连接形成串联回路。当电路中电感产生的感抗(
)与电容产生的容抗(
)相等时,电路发生谐振,此时电源频率称为谐振频率
,该频率仅由电感和电容参数决定,与电阻无关。
谐振时电路呈现纯电阻特性,总阻抗
最小且等于电阻
,在电源电压一定的情况下,电路电流
达到最大值且与电压同相位;电感和电容两端电压大小相等,均为电源电压的
倍(
,品质因数
,
),可能出现高电压需注意安全,而电阻两端电压等于电源电压。
品质因数
反映电路对谐振频率的选择性和能量损耗,
值越大选择性越好、损耗越小;通频带是电流幅值降至谐振电流
倍时的频率范围,其宽度
,与
值成反比。实验中可通过改变电源频率或调节电感、电容参数,观察电流和电压变化,验证谐振条件与特性并测量相关参数。
实验电路图
实验数据分析和实验结果
1)Matlab理论计算结果:
谐振频率 f0 = 6725.523866 Hz
品质因数 Q = 2.366432
带宽 BW = 2842.052555 Hz
频率范围 f1 = 5304.497588 Hz, f2 = 8146.550143 Hz
- 数据表格

- 电流谐振曲线

实验小结
本实验中,熟练掌握了示波器、信号发生器、台式万用表的使用,加深了对RLC电路的理解。强化了RLC电路的推导分析,和Multisim,Matlab等仿真软件的使用。不足是电压测量的时候只有一个万用表,给实验造成了不变。实验箱电容偏大,导致测量结果与理论值相差较大。
思考题:
在串联谐振时,电容电压等于电感电压,相位相反。
VRt等于0.707VRt0
附录
MATLAB2023b****代码
理论计算:
% 定义参数
R = 50+30+20; % 电阻,单位:欧姆
L = 5.6e-3; % 电感,单位:亨利
C = 0.1e-6; % 电容,单位:法拉
% 计算谐振频率 f0,单位:Hz
f0 = 1 / (2 * pi * sqrt(L * C));
% 计算品质因数 Q
Q = sqrt(L / C) / R;
% 计算带宽 BW,单位:Hz
BW = f0 / Q;
% 计算频率范围 f1 和 f2
f1 = f0 - BW / 2;
f2 = f0 + BW / 2;
% 显示结果
fprintf('谐振频率 f0 = %f Hz\n', f0);
fprintf('品质因数 Q = %f\n', Q);
fprintf('带宽 BW = %f Hz\n', BW);
fprintf('频率范围 f1 = %f Hz, f2 = %f Hz\n', f1, f2);
图像绘制:
frequency = [2, 3, 4, 5.98, 6.5, 6.87, 7.5, 8.1, 9, 10, 20, 30] * 1000;
current = [0.65, 1.1, 1.8, 5.3, 6.9, 7.25, 6.35, 5.15, 3.7, 2.85, 0.9, 0.55];
frequency_fine = linspace(min(frequency), max(frequency), 300);
current_interpolated = interp1(frequency, current, frequency_fine, 'pchip');
figure;
semilogx(frequency_fine, current_interpolated, '-b');
hold on;
semilogx(frequency, current, 'or');
xlabel('Frequency (Hz)');
ylabel('Current (mA)');
title('Current vs. Frequency (Smoothed)');
grid on;
xticks = [2000, 3000, 4000, 6500, 7500, 9000, 10000, 20000, 30000];
set(gca, 'XTick', xticks);
set(gca, 'XTickLabel', arrayfun(@(x) sprintf('%d', x), xticks, 'UniformOutput', false));
for i = 1:length(frequency)
str = sprintf('(%d, %0.2f)', frequency(i), current(i));
text(frequency(i), current(i), str, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right');
end