利用MATLAB模拟点电荷的电场分布

一、实验目的:

1.熟悉点电荷的电场分布情况;

2.学会使用Matlab绘图;

二、实验内容:

1.根据库伦定律,利用Matlab强大的绘图功能画出单个点电荷的电场分布情况,包括电力线和等势面。

2.根据库伦定律,利用Matlab强大的绘图功能画出一对点电荷的电场分布情况,包括电力线的分布和等势面。

3.实验内容1中,可以在正电荷和负电荷中任选一组画出其电场分布,实验内容2中,可以在一对正电荷,一对负电荷和一正一负一对电荷中选择一组画出其电场分布情况。

三、实验步骤:

一.对于单个点荷的电力线和等势线:

真空中点电荷的场强大小是:

img (式1)

其中k=img为静电力恒量,q为点电荷的电量,r为点电荷到场点img(x,y)的距离。电场呈球对称分布,本实验中,取点电荷为正电荷,电力线是以电荷为起点的射线簇。以无穷远处为零势点,点电荷的电势为:

img (式2)

当U取常数时,此式就是等势面方程。等势面是以电荷中心,以r为半径的球面。

(1) 平面电力线的画法:

在平面上,电力线是等角平分布的射线簇,取射线的半径为img=0.12。其程序如下:

r0=0.12; % 射线的半径

th=linspace(0,2*pi,13); % 电力线的角度

[x,y]=pol2cart(th,r0); % 将极坐标转化为直角坐标

x=[x;0.1*x]; % 插入x的起始坐标

y=[y;0.1*y]; % 插入y的起始坐标

plot(x,y,‘b’) % 用蓝色画出所有电力线

grid on % 加网格

Hold on % 保持图像

plot(0,0,‘o’,‘MarkerSize’,12) % 画电荷

xlabel(‘x’,‘fontsize’,16) % 用16号字体标出X轴

ylabel(‘y’,‘fontsize’,16) % 用16号字体标出Y轴

title(‘正电荷的电力线’,‘fontsize’,20) % 添加标题

img

图1 正电荷的电力线

(2)平面等势面的画法

在过电荷的截面上,等势线就是以电荷为中心的圆簇。此实验中,由于r0=0.12,k=9x109,考虑到电势的大小,取q=1x10-9C,且最大的等势线的半径应该比射线的半径小一点,取r0=0.1,其电势为img。等势线共取7条,且最大的电势为最小电势的3倍。在电场线的基础上画出点电荷的等势线图,可以省略一些基本参数的设置,其图如图2所示,其程序如下:

k=9e9; % 设定k值

q=1e-9; % 设定电荷电量

r0=0.1; % 设定最大等势线的半径

u0=k*q/r0; % 算出最小的电势

u=linspace(1,3,7)*u0; % 求出各条等势线的电势大小

x=linspace(-r0,r0,100); % 将X坐标分成100等份

[X,Y]=meshgrid(x); % 在直角坐标中形成网格坐标

r=sqrt(X.2+Y.2); % 各个网格点到电荷点的距离

U=k*q./r; % 各点的电势

contour(X,Y,U,u) % 画出点电荷的电势面

title(‘正电荷的电场线和等势线’,‘fontsize’,20) %显示标题

img
图2 正电荷的电场线和等势线

(3) 点电荷的立体电力线

点电荷的立体等势线呈球形发射状的射线簇,因此要先形成三维单位球面坐标,参数还是用前面画平面图的参数。因此其程序如下:

r0=0.12 % 重新设定电力线的半径

[X,Y,Z]=sphere(8); % 形成三维单位球面坐标,绕Z轴一周有8条电力线

x=r0*X(😃'; % 将X化成行向量

y=r0*Y(😃'; % 将Y化成行向量

z=r0*Z(😃'; % 将Z化成行向量

x=[x;zeros(size(x))]; % 对x坐标插入原点

y=[y;zeros(size(y))]; % 对y坐标插入原点

z=[z;zeros(size(z))]; % 对z坐标插入原点

plot3(x,y,z,‘b’) % 画出所有电力线

Hold on % 保持图像

xlabel(‘x’,‘fontsize’,16) % 用16号字体标出X轴

ylabel(‘y’,‘fontsize’,16) % 用16号字体标出Y轴

zlabel(‘z’,‘fontsize’,16) % 用16号字体标出Z轴

title(‘正电荷电场线的三维图形’,‘fontsize’,20) % 添加标题

其图形如下:

img
图3 正电荷电场线的三维图形

(4) 点电荷的等势面

画等势面时同样要先形成球面,不同的等势面对应不同的半径,而坐标所形成的一个一维的行向量,而三维单位球面的每一维都是21*21的网格矩阵,矩阵的维度不一样,不能直接相乘。因此为减少计算量,只画5条等势面。其程序如下:

u=linspace(1,3,5)*u0; % 计算各面的电势

r=k*q./u; % 计算各等势面的半径

[X,Y,Z]=sphere; % 形成三维的单位球

Z(X<0&Y<0)=nan; % 把球面的四分之一设为非数,便于观察

surf(r(1)*X,r(1)*Y,r(1)*Z); % 画最外面的等势面

hold on; % 保持图形

surf(r(2)*X,r(2)*Y,r(2)*Z);

hold on;

surf(r(3)*X,r(3)*Y,r(3)*Z);

hold on;

surf(r(4)*X,r(4)*Y,r(4)*Z);

hold on;

surf(r(5)*X,r(5)*Y,r(5)*Z);

shading interp % 将各球面的颜色设置成浓淡变化的

xlabel(‘x’,‘fontsize’,16) % 标记X坐标轴

ylabel(‘y’,‘fontsize’,16) % 标记X坐标轴

zlabel(‘z’,‘fontsize’,16) % 标记X坐标轴

title(‘正电荷等势面的三维图形’,‘fontsize’,20) % 添加标题
img

图四 正电荷等势面的三维图形

二.对于一对点电荷的电力线与等势线

到于两个点电荷的电场分布,比一个点电荷的电场分布要复杂得多,电场线的切线为该点电场强度E的方向。因此画电场线需要先计算出当前点的电场强度E方向,而E又是一个矢量,没有像电势U那样可以直接进行标量计算。因此对于多个点电荷的电场来说,先画出其等势线会更方便一些。

(1) 一对点电荷的平面等势线

对于两个点电荷,不妨取,正在这里插入图片描述
电荷在x轴的正方向,负电荷在x轴的负方向,它们到原点的距离定为a=0.02;假设平面的范围为img=0.05,在这里插入图片描述
=0.04。则其程序如下:

q1=1e-9; % 设置正电荷电量

q2=-1e-9; % 设置负电荷电量

a=0.02; % 设置电荷到原点的距离

xx0=0.05; % 设置X轴的范围

yy0=0.04; % 设置Y轴的范围

x=linspace(-xx0,xx0,20); % 将X轴进行20等分

y=linspace(-yy0,yy0,50); % 将Y轴进行50等分

[X,Y]=meshgrid(x); % 形成网格坐标

r1=sqrt((X-a).2+Y.2); % 各点到正电荷的距离

r2=sqrt((X+a).2+Y.2); % 各点到负电荷的距离

U=kq1./r1+kq2./r2; % 各点的电势

u0=500; % 设定最大电势的大小

u=linspace(u0,-u0,11); % 计算各等势线的电势

contour(X,Y,U,u,‘k-’); % 画出所有的等势线

Grid on % 形成网格

Hold on % 保持图形

plot(0,0,‘o’,‘MarkerSize’,12) % 画电荷

xlabel(‘x’,‘fontsize’,16) % 用16号字体标出X轴

ylabel(‘y’,‘fontsize’,16) % 用16号字体标出Y轴

title(‘一对相异电荷的等势线图’,‘fontsize’,20) % 添加标题

img

图五 一对相异电荷的等势线图

(2) 一对点电荷的平面电场线

各点的电场强度方向代替电力线。根据电势的梯度可以求出各点的场强的两个分量再在此方向上标上箭头。其程序如下所示:

[Ex,Ey]=gradient(-U); % 各点的场强的两个分量

E=sqrt(Ex.2+Ey.2); % 各点的合场强

Ex=Ex./E; % 为使箭头等长,将场强归一化

Ey=Ey./E;

quiver(X,Y,Ex,Ey); % 标出各网点的电场强度方向

title(‘一对相异电荷的等势线图和电场线图’,‘fontsize’,20); 标出标题

其图如图六所示:img

图六 一对相异电荷的等势线图和电场线图

四、 实验总结:

1、以上方法同样适合不同极性和大小的电荷的组合,只需要按要求设置不同的电荷电量即可。

2、以Matlab强大的数值计算和绘图功能,将抽象的电场形象化,大大增加了我们对电场的感性认识,为今后的学习打了牢固的基础。

3、由于对Matlab 的不熟悉,对多点电荷的三维电场分布情况,无法将具体的思路转化成实际的程序语言,所以无法绘出它的三维图形。今后一定要多学习Matlab这方面的知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/518092.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

填充每个节点的下一个右侧节点指针 II

题目链接 填充每个节点的下一个右侧节点指针 II 题目描述 注意点 初始状态下&#xff0c;所有 next 指针都被设置为NULL如果找不到下一个右侧节点&#xff0c;则将 next 指针设置为NULL 解答思路 首先想到的是层序遍历&#xff0c;将每一层的节点存储在队列中&#xff0c;…

鸿蒙文章专题-2021年鸿蒙相关的文章废弃

#原因 至于为什么说2021年我的鸿蒙专栏的文章废弃了&#xff0c;只是说没有了参考意义&#xff0c;是因为鸿蒙4.0以前的版本语言从以Java为主过渡为以ArkTS为主。以前的Java版本的工程已经无法再使用了&#xff0c;后续的开发都必须以ArkTS开发语言为主。 其中而且整个项目结构…

【硬件工程师面经整理21_其它】

文章目录 1 为何电源的滤波电路常常是大电容配合小电容滤波2 小信号敏感信号是什么&#xff0c;如何保护敏感信号3 555定时器4 CMOS不用输入管脚该怎么处理。5 为什么一个标准的倒相器中 P 管的宽长比要比 N 管的宽长比大&#xff1f;6 S11和反射系数和插损的关系7 眼图的功能8…

【Spring高级】第2讲:容器实现类

目录 BeanFactory实现BeanDefinition后置处理器单例bean创建后置处理器顺序总结 ApplicationContext实现ClassPathXmlApplicationContextFileSystemXmlApplicationContextAnnotationConfigApplicationContextAnnotationConfigServletWebServerApplicationContext BeanFactory实…

【论文阅读】单词级文本攻击TAAD2.2

TAAD2.2论文概览 0.前言1-101.Bridge the Gap Between CV and NLP! A Gradient-based Textual Adversarial Attack Frameworka. 背景b. 方法c. 结果d. 论文及代码 2.TextHacker: Learning based Hybrid Local Search Algorithm for Text Hard-label Adversarial Attacka. 背景b…

JavaScript极速入门(1)

初识JavaScript JavaScript是什么 JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中. 看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和…

常用设计模式详解

设计模式 1.UML图 统一建模语言是用来设计软件的可视化建模语言。定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 1.1类图 1.1.1类的表示方式 在UML类图中&#xff0c;类使用包含类名、属性(field) 和方法(method) 且带有分割线…

二维码门楼牌管理系统应用场景:赋能市场研究与城市决策的新动力

文章目录 前言一、市场研究的新视角&#xff1a;门牌数据揭示市场趋势二、城市规划的得力助手&#xff1a;门牌数据指导资源分配三、决策制定的科学依据&#xff1a;门牌数据提升决策准确性四、未来展望&#xff1a;二维码门楼牌管理系统的更多可能性 前言 随着信息技术的飞速…

电脑工作电压是多少你要看看光驱电源上面标的输入电压范围

要确定电脑的工作电压&#xff0c;必须查看电源上标注的输入电压范围。 国内法规规定民用220V电压范围为10%-15%&#xff0c;也就是说通信220V电压正常范围为187--242V&#xff0c;供电设备一般为180V。 --250V电压范围&#xff0c;即正常情况下电脑电源电压不低于187V即可工作…

基于单片机的电梯控制系统设计

目 录 摘 要 I Abstract II 引 言 1 1 总体方案设计 3 1.1 设计原理 3 1.2 系统设计方案 3 2 硬件电路的设计 7 2.1 主控制模块 7 2.2 单片机的最小系统 8 2.3 电源电路 9 2.4 电梯呼叫按键电路 9 2.5 楼层显示和楼层指示电路 9 2.6 电梯上下指示电路 10 2.7 防夹模块电路 10 …

无编制教师和有编制教师区别在哪

走进教育的世界&#xff0c;我们常常听到“编制教师”与“非编制教师”的说法&#xff0c;这两者之间的区别&#xff0c;犹如一道隐形的鸿沟&#xff0c;隔开了两种不同的教育生涯。今天&#xff0c;就让我们一起来探讨一下&#xff0c;这两者之间的差异究竟体现在哪里。 教育系…

超时检测、抓包分析、数据库

#include <myhead.h>//定义添加员工信息函数 int Add_worker(sqlite3 *ppDb) {//准备sql语句printf("请输入要添加的员工信息:\n");//从终端获取员工信息char rbuf[128]"";fgets(rbuf,sizeof(rbuf),stdin);rbuf[strlen(rbuf)-1]0;char sql[128]"…