第1章
电路电流
计算
在日常生活中,电路好像是一门离生活很远的学科,一些电路现象常常让我们感到高深莫测,摸不到头脑。为什么按下开关灯就会亮?电热水器又是如何工作的?其实,电路的知识在我们生活的很多地方都有体现,许多神奇的电路现象都向我们展示了电路的奇妙,生活中的许多现象都与电路有着联系。
本章通过观察物理现象,将物理知识与编程知识相结合,利用Python实现电路中电流的计算,通过绘制正常情况下和短路情况下电流的图表,认识电路中的短路现象,并引导学生在学习的过程中不断体会物理与生活的紧密关联与物理学科的乐趣。

1.1 物理现象观察
欧姆定律是电学的重要定律,是组成电学内容的主干知识。欧姆定律不仅在理论上非常重要,在实际应用中也非常广泛,将欧姆定律运用于人们的工作生活,去分析生活中简单的电学现象,是实现理论联系实际的重要方式。本案例通过带领学生观察真实的电路并设计电路计算短路电流,带领学生多方面地感知与学习电路知识,能够帮助学生更好地理解掌握相关的基础知识。
1.1.1 电流知识介绍
一个电路中必须有电源、开关、用电器,再用导线连接起来。当电路闭合时,电路中才有电流产生,而形成电压。
1.1.2 问题情境
一辆汽车的车灯接在12V电源两端,灯丝电阻为30Ω,求通过灯丝的电流。
(1)如何利用欧姆定律求通过灯丝的电流?
(2)如何利用欧姆定律解释电路短路现象?


1.2 案例:电流峰值现象
现实生活中,每家每户无时无刻都在使用电器,那我们是如何理解电器用电的运作原理的呢?当发生短路时又是哪里出问题了呢?下面用程序编写计算出每个用电器经过的电流,同时可以解释为什么导线直接连在电源两端会导致短路。
首先要弄清,短路指的是电源的短路,而不是某个元件的短接。
如图1-1所示,在开关K已经闭合的情况下,把电阻R1用导线短接,总电流I会因此而增大一些,但不是短路。

图1-1 电路的短路现象1
如图1-2所示,在开关K已经闭合的情况下,把电阻R1用导线短接,总电流I会因此而增大一些,但不是短路。


图1-2 电路的短路现象2
根据图1-1和图1-2我们提出一个实例:设电池电动势E=3V,内阻r=0.4Ω,电阻R1和R2均为10Ω,短路线为截面S=1mm2、长度为L=1m的铜线。我们来算一算短路前后的电流是如何变化的?(当然此时R1不能用短接线短路。)
先求外电路总电阻:R = R1+R2 = 10Ω+ 10Ω= 20Ω。
要解决此问题,首先要了解什么是欧姆定律。通过导体的电流,跟导体两端的电压成正比,跟导体的电阻成反比。这个规律叫作欧姆定律,表达式为I=U/R,其中,I表示电流,单位是安培(A);U表示电压,单位是伏特(V);R表示电阻,单位是欧姆(Ω)。根据欧姆定律,可以将上式代入公式。
此时正常运行的电流:= 0.147A
此时路端电压:。
现在把短路线接在A点与B点之间,此时电源被短接导线的电阻Rx给短路。注意,Rx实质上是与负载电阻R并联的,为此先求出短路导线的电阻:

短路线Rx与负载电阻R并联后的电阻为:

我们看到,短路线与负载电阻并联后,总电阻几乎就等于短接线电阻。
再来求短路电流:

这就是短路电流了。
1.2.1 编程前准备
1. 下载并安装matplotlib库文件
我们使用matplotlib库里面的pyplot包。
Python中的类库主要指一些写好的Python程序片段,有些库是Python内置的,有些是其他人创造的,当引入类库之后便可以使用库中已经写好的方法和属性。
(1)matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表,可根据数据集(DataFrame,Series)自行定义X,Y轴,绘制图形(线形图、柱状图、直方图、密度图、散布图等),能够解决大部分的需要。
(2)matplotlib中最基础的模块是pyplot。每个pyplot函数对图形进行一些更改。例如,创建图形、在图形中创建绘图区域、绘制绘图区域中的某些线条、使用标签装饰图形等。
下面将用它进行创建画布以及画出数据线条等。
2. 图像的加载
显示图像前需要划分x、y轴,这里我们使用NumPy包来对x轴的值进行取样:
NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;主要用于数组计算。
这里主要用到NumPy中的linspace函数,此函数的定义如下,接收三个参数,返回一个取样数组:
numpy.linspace(start, end, num=num_points),将在start和end之间生成一个统一的序列,共有num_points个元素。
其中:
start:范围的起点(包括)
end:范围的端点(包括)
num:序列中的总点数。
import numpy as np
import matplotlib.pyplot as plt

y = np.zeros(5)
x1 = np.linspace(0, 10, 5)
x2 = np.linspace(0, 10, 5)
plt.plot(x1, y, 'o')
plt.plot(x2, y + 0.5, 'o')
plt.ylim([-0.5, 1])
plt.show()
程序显示结果如图1-3所示。

图1-3 程序显示结果
3.图像的显示
(1)使用pyplot.plot(x,y,format_string)方法将点用线连接起来。
其中,x,y分别为X轴数据与Y轴数据,可以为列表或数组;format_string为控制曲线格式的字符串。
(2)pyplot.show()的功能为显示所有打开的图形。
1.2.2 算法设计
程序流程图是用规定的符号描述一个专用程序中所需要的各项操作或判断的图示。这种流程图着重说明程序的逻辑性与处理顺序,具体描述了微机解题的逻辑及步骤。当程序中有较多循环语句和转移语句时,程序的结构将比较复杂,给程序设计与阅读造成困难。程序流程图用图的形式画出程序流向,是算法的一种图形化表示方法,具有直观、清晰、更易理解的特点。
程序流程图由处理框、判断框、起止框、连接点、流程线、注释框等构成,并结合相应的算法,构成整个程序流程图。处理框具有处理功能;判断框(菱形框)具有条件判断功能,有一个入口,两个出口;起止框表示程序的开始或结束;连接点可将流程线连接起来;流程线表示流程的路径和方向;注释框是为了对流程图中某些框的操作做必要的补充说明。
(1)一开始给出杠杆的长度数值,同时给出左右两端物体的质量和力矩长度数据输入程序中。
(2)通过turtle库生成图形化界面进行展示。
(3)程序根据输入的数值和方程计算平衡时左右力矩的长度。
(4)判断力矩是否超过height/2,否则退回上一步,是则绘制出平衡后的图像。
(5)结束。
本案例主要包括利用欧姆定律计算电阻和利用编程绘制短路和正常情况下电流的变化,案例的主要思路如下:
(1)初始化电路,包括给出电源电动势与各个电阻的阻值,及其之间的连接情况。
(2)对于短路电路:
① 计算短路的导线电阻;
② 计算短路导线与电阻并联后的总电阻;
③ 利用欧姆定律计算此时的短路电流。
(3)对于非短路电路:
① 计算总电阻;
② 通过欧姆定律计算正常运行时的电流。
最后,将计算得到的数据传入绘图函数中,完成短路电流与正常电流图像的绘制。
程序流程图如图1-4所示。

图1-4 程序流程图

1.3 编写程序及运行
1.3.1 程序代码

import matplotlib.pyplot as plt
import numpy as np
def main():
    e, r, r0, s, l, ro = 3, 0.4, 20, 1e-6, 1, 1.7e-8
    i1 = np.array([e / (r + r0)]*10)

    rx = ro * l/s
    i2 = np.array([e / (rx * r0 / (rx + r0) + r)]*10)
    t1 = np.linspace(0, 5, 10)
    t2 = np.linspace(5, 10, 10)
    plt.figure()
    plt.plot(t1, i1, label="normal")
    plt.plot(t2, i2, label="short circuit")
    plt.legend()
    plt.arrow(t1[9], i1[9], 0, i2[9]-i1[9], width=0.01)
    plt.show()
if __name__ == "__main__":
    main()
1.3.2 运行程序
 	
1. 下载并安装Python
在https://www.python.org/downloads/中下载 Python 3.10.1,如图1-5所示。

图1-5 Python下载界面
如图1-6所示,进入页面后,根据系统选择Windows 64bit版本下载,下载后依据提示安装即可。

图1-6 下载Windows 64bit版本
2. 下载并安装PyCharm
打开https://www.jetbrains.com/pycharm/download/#section=
windows,下载PyCharm Community的安装程序,如图1-7所示,下载后,依据提示安装即可。

图1-7 PyCharm下载界面
3. 新建Python项目
运行PyCharm,单击New Project按钮后,输入项目名称为 “BookCase”后,单击Create按钮即可完成新建,如图1-8和图1-9所示。

图1-8 “新建”工程界面

图1-9 选择“新建工程”的文件位置
4. 安装中文环境、numpy包与matplotlib包
1)安装中文环境
打开PyCharm,单击右上角的设置图标后,选择Plugins命令后,在弹出的对话框中搜索“Chinese”,并单击Marketplace,找到第二个,单击Install按钮。完成安装后重启PyCharm即可,如图1-10和图1-11所示。

图1-10 中文环境设置1

图1-11 中文环境设置2
2)安装numpy包与matplotlib包
单击下方的终端,分别输入命令:
Pip3 install numpy
Pip3 install matplotlib
等待下载完成即可,如图1-12所示。

图1-12 安装numpy和matplotlib包
 	 
在刚才新建的项目中,右击左侧项目栏,在弹出的选择栏中选择“新建” “Python文件”,单击后,在页面中间弹出的命名栏中输入文件名“Case1”,并选择“Python文件”,回车,即可新建成功,如图1-13和图1-14所示。

图1-13 选择“新建工程”的文件位置

图1-14 在“新工程”下创建新文件
 	
将案例的代码粘贴至Case1.py中,如图1-15所示。

图1-15 程序代码的编写
	 
如图1-16所示,在任意空白处右击后,单击右键菜单中的“运行'Case1'”选项,即可运行。也可使用快捷键Ctrl+Shift+F10。

图1-16 程序的执行
程序运行结束之后,即可看到程序的运行结果,如图1-17所示。

图1-17 程序运行结果
1.4 拓 展 训 练
根据上述案例,试计算图1-1中接R1的短接线和不接R1的短接线的电流变化。