警告
本文最后更新于 2024-11-28,文中内容可能已过时。
0. 参考文档
1. 证明不同阻值的两个电阻 IV 曲线斜率等于欧姆定律中的电阻值
构建模块
P1-1-a
让我们选择两个电阻。第一个是:
P1-1-b
四色环代码:橙、橙、棕、金
33×(1×101)=330Ω±5%检查一下:
P1-1-b-2
第二个是:
P1-1-c
四色环代码:棕、棕、红、金
11×(1×102)=1100Ω±5%检查一下:
P1-1-c-2
分析
我们知道 IV 曲线表示 y 轴为 I,x 轴为 V。因此它必须是线性函数,因为 IV 没有幂次。
使用线性函数的思想,我们可知斜率是 ΔYΔX。回到我们的案例中,就变成了 ΔIΔV。另外我们知道欧姆定律,即 IV=R。因此,斜率很可能是电阻 R。
如果我们取 R1=10Ω,R2=100Ω(如仿真设置)。我们应得到:
P1-2-a
如果我们将它们一起绘制,则得到
P1-2-b
这里是数据表:
I |
V=IR1 |
V=IR2 |
0 |
0 |
0 |
0.2 |
2 |
20 |
0.4 |
4 |
40 |
0.6 |
6 |
60 |
0.8 |
8 |
80 |
1 |
10 |
100 |
模拟
P1-3-a
测量
首先我们构建了一个这样的电路:
P1-4-a
这是基于实验手册中的图示。
P1-4-a-2
我们只改变了 R1,R2 的值。另外,很难在面包板上插表。因此我们在前面交叉了 V+ 电路
P1-4-b
这种方法不是理想的选择,但可以工作。
让我们开始吧:
对于 V+=0.5V,我们得到:
P1-4-c
P1-4-c-2
为了节省空间和工作量,我们不会展示每个结果。但这里是数据:
V+ |
V(R1) |
V(R1) |
I |
0V |
0V |
0V |
0mA |
0.5V |
0.142V |
0.396V |
0.3mA |
1V |
0.238V |
0.724V |
0.6mA |
1.5V |
0.358V |
1.126V |
1.0mA |
2V |
0.463V |
1.492V |
1.3mA |
2.5V |
0.572V |
1.831V |
1.6mA |
3V |
0.632V |
1.994V |
1.9mA |
使用以下 MATLAB 代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
% 步骤 1:输入数据
V_plus = [0, 0.5, 1, 1.5, 2, 2.5, 3]; % V+ 值
V_R1 = [0, 0.142, 0.238, 0.358, 0.463, 0.572, 0.632]; % V(R1) 值
V_R2 = [0, 0.396, 0.724, 1.126, 1.492, 1.831, 1.994]; % V(R2) 值
I = [0, 0.3, 0.6, 1.0, 1.3, 1.6, 1.9] * 1e-3; % I 值(A,转换为 mA)
% 步骤 2:绘制数据
figure;
% 绘制电阻 R1 的曲线
subplot(2, 1, 1);
plot(V_R1, I, '-o');
xlabel('电压 V(R1) (V)');
ylabel('电流 I (A)');
title('电阻 R1: 电流与电压的关系图');
grid on;
% 绘制电阻 R2 的曲线
subplot(2, 1, 2);
plot(V_R2, I, '-o');
xlabel('电压 V(R2) (V)');
ylabel('电流 I (A)');
title('电阻 R2: 电流与电压的关系图');
grid on;
|
我们得到了 R1 和 R2 的曲线:
P1-4-d
现在,让我们为两者创建拟合线。需要找到斜率(R=V/I)。为此,我们稍微修改了代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
% 步骤 1:输入数据
V_plus = [0, 0.5, 1, 1.5, 2, 2.5, 3]; % V+ 值
V_R1 = [0, 0.142, 0.238, 0.358, 0.463, 0.572, 0.632]; % V(R1) 值
V_R2 = [0, 0.396, 0.724, 1.126, 1.492, 1.831, 1.994]; % V(R2) 值
I = [0, 0.3, 0.6, 1.0, 1.3, 1.6, 1.9] * 1e-3; % I 值(A,转换为 mA)
% 步骤 2:拟合线性回归曲线
% 拟合电阻 R1 的曲线
p_R1 = polyfit(I, V_R1, 1);
slope_R1 = p_R1(1);
R_R1 = slope_R1; % 电阻 R1
% 拟合电阻 R2 的曲线
p_R2 = polyfit(I, V_R2, 1);
slope_R2 = p_R2(1);
R_R2 = slope_R2; % 电阻 R2
% 步骤 3:显示电阻值
fprintf('电阻 R1: %.3f ohms\n', R_R1);
fprintf('电阻 R2: %.3f ohms\n', R_R2);
% 步骤 4:绘制数据和拟合曲线
figure;
% 绘制电阻 R1 的曲线
subplot(2, 1, 1);
plot(V_R1, I, 'o');
hold on;
plot(polyval(p_R1, I), I, '-');
xlabel('电压 V(R1) (V)');
ylabel('电流 I (A)');
title('电阻 R1: 电流与电压的关系图(带线性拟合)');
legend('数据', '线性拟合');
grid on;
% 绘制电阻 R2 的曲线
subplot(2, 1, 2);
plot(V_R2, I, 'o');
hold on;
plot(polyval(p_R2, I), I, '-');
xlabel('电压 V(R2) (V)');
ylabel('电流 I (A)');
title('电阻 R2: 电流与电压的关系图(带线性拟合)');
legend('数据', '线性拟合');
grid on;
|
我们得到了结果:
1
2
|
电阻 R1: 331.144 ohms
电阻 R2: 1069.374 ohms
|
以及曲线图:
P1-4-e
检查这个结果,从万用表的读数来看
P1-4-d
P1-4-d-2
太好了!实际读数非常接近我们从 IV 测量数据和线性回归得出的电阻值。平均误差小于 1%。
讨论
我们在每次会话中进行了大量的讨论,而不是一次完成所有内容,这使得文档更加逻辑化并遵循流程。因此,我们将只总结未出现的内容。
首先,我们使用 LTSpecie 确定了两个电阻 R1=10Ω 和 R2=100Ω 的 IV 曲线(这只是为了证明我们的分析)。然后,我们构建了一个串联电路,并知道所有组件的电流相同。只要我们得到一些读数对,就可以绘制曲线图。结果与预期一致,误差小于 1%。
因此,我们证明了不同阻值的两个电阻 IV 曲线斜率等于欧姆定律中的电阻值。
2. 证明发光二极管的非线性 IV 曲线
构建模块
P3-1-a
分析
为了绘制一个二极管的 IV 曲线,我们需要找到一些重要的数据。
- 正向电压(VF)
- 反向击穿电压(VBR)
- 反向漏电流(IS)
根据 QED123 的数据表:
- VF=1.7V
- IF=100mA
- VBR=5V
- IS=10μA
我们将其绘制到标准二极管 IV 特性图中,得到
P2-2-a
模拟
P2-3-a
1N914 的开启电压约为 0.7V
测量
P3-4-a
我们创建了一个三角波,如图所示:
P3-4-b
幅度为 5V(10V 峰峰值),频率为 200 Hz,相位为 90 度。
然后我们使用通道 1 来测量电流
P3-4-b-2
以及 IV 曲线:
P3-4-b-3
使用以下 MATLAB 代码,我们得到
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
% 步骤 1:导入 CSV 文件
data = readmatrix('P2-4-c.csv');
% 步骤 2:提取列
voltage = data(:, 2); % 第二列为电压(V)
current = data(:, 1); % 第三列为电流(I)
% 步骤 3:绘制 I-V 曲线
figure;
plot(voltage, current, 'k-', 'LineWidth', 1.5);
xlabel('电压 (V)');
ylabel('电流 (I)');
title('IV 曲线');
grid on;
|
我们得到
P2-4-c-2
讨论
我们的实验结果与数据表一致。考虑到数据表中:
- VF=1.7V
- IF=100mA
我们得到的 1.7V 对应于 10mA,这符合数据表曲线。
3. 显示/证明二极管 IV 曲线不同区域中的微分电阻变化
构建模块
P3-1-a
分析
为了绘制一个二极管的 IV 曲线,我们需要找到一些重要的数据。
- 正向电压(VF)
- 反向击穿电压(VBR)
- 反向漏电流(IS)
根据 QED123 的数据表:
- VF=1.7V
- IF=100mA
- VBR=5V
- IS=10μA
我们将其绘制到标准二极管 IV 特性图中,得到
P2-2-a
模拟
P3-3-a
1N914 的开启电压约为 0.7V
测量
P3-4-a
我们创建了一个三角波,如图所示:
P3-4-b
幅度为 5V(10V 峰峰值),频率为 200 Hz,相位为 90 度。
然后我们使用通道 1 来测量电流
P3-4-b-2
以及 IV 曲线:
P3-4-b-3
使用以下 MATLAB 代码,我们得到
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
% 步骤 1:导入 CSV 文件
data = readmatrix('P2-4-c.csv');
% 步骤 2:提取列
voltage = data(:, 2); % 第二列为电压(V)
current = data(:, 1); % 第三列为电流(I)
% 步骤 3:绘制 I-V 曲线
figure;
plot(voltage, current, 'k-', 'LineWidth', 1.5);
xlabel('电压 (V)');
ylabel('电流 (I)');
title('IV 曲线');
grid on;
|
我们得到
P2-4-c-2
讨论
为了展示二极管 IV 曲线不同区域中的微分电阻变化,我们将代码稍微修改了一下以计算两个随机点的斜率。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
% 步骤 1:导入 CSV 文件
data = readmatrix('P2-4-c.csv');
% 步骤 2:提取列
voltage = data(:, 2); % 第二列为电压(V)
current = data(:, 1); % 第三列为电流(I)
% 步骤 3:选择两个随机点
num_points = length(current);
random_indices = randperm(num_points, 2); % 生成两个不同的随机索引
% 步骤 4:提取所选点的电压和电流值
V1 = voltage(random_indices(1));
V2 = voltage(random_indices(2));
I1 = current(random_indices(1));
I2 = current(random_indices(2));
% 步骤 5:计算斜率
slope1 = (V2 - V1) / (I2 - I1);
slope2 = (V1 - V2) / (I1 - I2); % 这与 slope1 相同,但反向计算
% 步骤 6:打印斜率
fprintf('在随机选择的点(I1 = %.4f, V1 = %.4f)和(I2 = %.4f, V2 = %.4f)之间的斜率为: %.4f\n', I1, V1, I2, V2, slope1);
fprintf('在随机选择的点(I2 = %.4f, V2 = %.4f)和(I1 = %.4f, V1 = %.4f)之间的斜率为: %.4f\n', I2, V2, I1, V1, slope2);
|
我们得到
在随机选择的点(I1 = 0.0097, V1 = 0.2959)和(I2 = 0.0036, V2 = -2.6254)之间的斜率为: 479.8789
在随机选择的点(I2 = 7.9784, V2 = 1.2568)和(I1 = 2.8170, V1 = 1.1975)之间的斜率为: 0.0115
可以看出它们非常不同。
4. 证明节点分析能确定电路中未知节点的电压
构建模块
P4-1-a
分析
P4-2-a
为了简化我们的生活,我将一些方程重写为 LATEX。
电阻中的电流:
IR=RVA−VB节点 B 的基尔霍夫电流定律(KCL):
IR1+IR2+IR3=0节点 C 的 KCL:
IR3+IR4=0用电压表示电流。从第一个方程:
R1VB−VA+R2VB+R3VB−VC=0从第二个方程:
R3VC−VB+R4VC−VD=0代入已知值。给定 VA=5 和 VD=0,方程变为:
2.5VB−VC=52VC−VB=0矩阵形式表示为:[2.5−1−12]⋅[VBVC]=[50]
手动求解:
1
2
3
4
5
6
7
8
9
10
|
% 定义矩阵 A 和向量 b
A = [2.5, -1; -1, 2];
b = [5; 0];
% 解线性方程组 A * x = b
x = A \ b;
% 显示结果
disp('解为:');
disp(x);
|
我们得到
因此,[VBVC]= [2.51.25]
模拟
P4-3-a
测量
P4-4-a
对于 VC,我们得到:
P4-4-b-1
对于 VB,我们得到:
P4-4-b-2
讨论
节点 |
分析 |
模拟 |
实验测量 |
差值 |
百分比误差 |
VB |
2.50V |
2.50V |
2.45V |
5mV |
2% |
VC |
1.25V |
1.25V |
1.22V |
3mV |
2.4% |
我们的分析与模拟一致。实验数据的误差小于 2.5%,这非常小。因此,我们证明了节点分析能确定电路中未知节点的电压。
5. 证明/演示使用节点分析设计电路的方法
构建模块
P5-3-a
分析
P5-2-a
为了简化我们的生活,我将一些方程重写为 LATEX。
给定值:
- VA=3V
- VC=0V
- VB 是未知的。
使用节点 B 的基尔霍夫电流定律(KCL):
R1VB−VA+R2VB−VC+R3VB−VC=0代入给定值和电阻:
1VB−3+4VB−0+4VB−0=0简化方程:
(VB−3)+4VB+4VB=0合并项:
VB−3+2VB=0乘以 2 清除分数:
2VB−6+VB=0合并项:
3VB=6解得 VB:
VB=2模拟
P5-3-a
测量
P5-4-a-1
对于 VB,我们得到:
P5-4-a
讨论
节点 |
分析 |
模拟 |
实验测量 |
差值 |
百分比误差 |
VB |
2V |
2V |
1.979V |
21mV |
1.1% |
我们的分析与模拟一致。实验数据的误差小于 1.2%,这非常小。因此,我们证明了节点分析能确定电路中未知节点的电压。
6. 证明运算放大器比较器的功能
构建模块
P6-1-a
分析
一个非反相比较器的传递函数为:
Vout={如果Vin<Vref,Vout=−5V如果Vin>Vref,Vout=5V在我们的情况下,我们得到:
Vout={如果Vin<0V,Vout=−5V如果Vin>0V,Vout=5V我们的电源电压为 5V 和 −5V,输入信号是幅度为 1V 的正弦波,并且参考电压为 GND(即 0V)。
模拟
P6-3-b
P6-3-a
测量
P6-4-a-b
P6-4-a
讨论
将我们的模拟与实验结果进行比较,我们看到两者都是方波,并且具有相同的周期和类似的幅度。它们在 5V 和 −5V 之间波动,这是我们的电源电压。这合乎情理,因为电源电压是运算放大器比较器的输出。
这证明了运算放大器比较器的功能。
7. 证明数学运算放大器的功能
构建模块
P8-1-a
分析
P8-2-a
求和放大器电路的传递函数如下:
Vout=−R1Rf⋅V1−R2Rf⋅V2在我们的情况下,希望使用 50KΩ 的电位器作为电阻,以便根据需求进行调整。然后,我们得到:
VoutVout=−50K50K⋅V1−50K50K⋅V2=−V1−V2模拟
我们在模拟中使用了两个不同频率(500Hz 和 1KHz)的正弦波。
P8-3-a
P5-3-b
测量
然后,我们搭建了电路。我们将示波器通道 1 连接到 Vout 来检查是否正常工作。
P8-4-a-b
我们的电源电压为 Vs+=5V 和 Vs−=−5V
P8-4-a
我们使用信号发生器生成两个频率分别为 500Hz 和 1KHz 的正弦波。
P8-4-b
并使用示波器通道 1+ 检查输出波形
P8-4-c
讨论
如我们所见,输出波形的形状与我们的模拟完全相同。仿真和测量中的输出波形幅度约为 1.75V,周期也相同。
由于实验波形的所有特征都与模拟一致,我们知道运算放大器在不同电压范围内都能正常工作。
这证明了求和放大器的概念,即数学运算放大器的功能。
8. 证明双通道音频混音器传输函数的概念
构建模块
P8-1-a
分析
P8-2-a
求和放大器电路的传递函数如下:
Vout=−R1Rf⋅V1−R2Rf⋅V2在我们的情况下,希望使用 50KΩ 的电位器作为电阻,以便根据需求进行调整。然后,我们得到:
VoutVout=−50K50K⋅V1−50K50K⋅V2=−V1−V2模拟
我们在模拟中使用了两个不同频率(500Hz 和 1KHz)的正弦波。
P8-3-a
P5-3-b
测量
然后,我们搭建了电路。我们将示波器通道 1 连接到 Vout 来检查是否正常工作。
P8-4-a-b
我们的电源电压为 Vs+=5V 和 Vs−=−5V
P8-4-a
并使用信号发生器生成两个频率分别为 500Hz 和 1KHz 的正弦波。
P8-4-b
并使用示波器通道 1+ 检查输出波形
P8-4-c
讨论
如我们所见,输出波形的形状与我们的模拟完全相同。仿真和测量中的输出波形幅度约为 1.75V,周期也相同。
这证明了求和放大器的概念。