1、理论基础

1.1 程序流程
(1)绘制出圆环的磁力线;
(2)绘制出圆环周围的磁通量强度的等高线;
(3)将等高线的围绕圆环旋转一周,就形成三维的磁力线分布图了。
1.2 磁通量分析
(1) 毕奥-萨伐尔定律:

设圆环垂直于x-y平面,位于x=0的位置,取z=0这个平面进行分析:

2、算法实现

import numpy as np
import matplotlib.pyplot as plt
from pylab import meshgrid,  arange, streamplot, show
import mpl_toolkits.mplot3d
from mpl_toolkits.mplot3d import Axes3Dx, y = meshgrid(arange(-2,2,0.04), arange(-2,2,0.04))
#[X,Y,Theta]=np.mgrid[-0.5:0.5:0.05, -0.5:0.5:0.05,0:2*np.pi:np.pi/20]vx = 2 * x- y
vy = y + x
R=0.35
X,Y,Theta=meshgrid(arange(-2,2,0.04), arange(-2,2,0.04),arange(0,2*np.pi,np.pi/20))
#Theta = meshgrid(arange(0,2*np.pi,np.pi/20))r=np.sqrt(X**2+(Y-R*np.sin(Theta))**2+(R*np.cos(Theta))**2)
r3=r**3
I=100
mu0=4*np.pi*1e-7
C0=mu0/(4*np.pi) * IdBx=-C0*R*(R-Y*np.sin(Theta))/r3
dBy=-C0*X*R*np.sin(Theta)/r3
dBz=-C0*X*R*np.cos(Theta)/r3Bx=np.pi/40*np.trapz(dBx,axis=2)
By=np.pi/40*np.trapz(dBy,axis=2)
Bz=np.pi/40*np.trapz(dBz,axis=2)
plt.figure(1)
#streamplot(x, y, vy, vx)
streamplot(x, y, Bx, By)
streamplot(x, y, Bx, Bz)
show()fig=plt.figure(2)
#ax = fig.add_subplot(111, projection='3d')
ax = plt.axes(projection='3d')ax.plot_surface(x, y, Bz,rstride = 1, cstride = 1,cmap='rainbow')#绘面
B = Bz
ax.contour(x, y, B,zdir='z', offset=0,cmap="rainbow")  #生成z方向投影,投到x-y平面
ax.contour(x, y, B,zdir='x', offset=-6,cmap="rainbow")  #生成x方向投影,投到y-z平面
ax.contour(x, y, B,zdir='y', offset=6,cmap="rainbow")   #生成y方向投影,投到x-z平面 ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()plt.figure()
CS = plt.contour(x, y, B,2)
plt.clabel(CS, inline=1, fontsize=10)
plt.title('Simplest default with labels')#定义图像和三维格式坐标轴
fig=plt.figure()
ax1 = Axes3D(fig)Bx=np.pi/40*np.trapz(dBx,axis=2)
By=np.pi/40*np.trapz(dBy,axis=2)
Bz=np.pi/40*np.trapz(dBz,axis=2)
r=R
a,b=0.0,5
theta = np.arange(0,4*np.pi,np.pi/20)
x1 = a + r * np.cos(theta)
y1 = [0]*len(theta)
z1 = r * np.sin(theta)
xd = 0
yd = 0
zd = 0
ax1.scatter3D(xd,yd,zd, cmap='Blues')  #绘制散点图
ax1.plot3D(x1,y1,z1,'gray')    #绘制空间曲线plt.show()
fig=plt.figure()ax1 = Axes3D(fig)
r=R
a,b=0.0,5
theta = np.arange(0,4*np.pi,np.pi/20)
x1 = a + r * np.cos(theta)
y1 = [0]*len(theta)
z1 = r * np.sin(theta)
xd = 0
yd = 0
zd = 0
ax1.scatter3D(xd,yd,zd, cmap='Blues')  #绘制散点图
ax1.plot3D(x1,y1,z1,'-->', linewidth=2,color='#B87333')    #绘制空间曲线
r=R-0.5
a,b=0.0,5
theta = np.arange(0,4*np.pi,np.pi/20)
x1 = a + r * np.cos(theta)
y1 = [0]*len(theta)
z1 = r * np.sin(theta)
ax1.plot3D(x1,y1,z1,'-->', linewidth=2,color='#B87333')    #绘制空间曲线
the = np.arange(0,2*np.pi,np.pi/8)
for i in range(1,len(CS.allsegs)-1):if(i!=int((len(CS.allsegs))/2)):dat0= CS.allsegs[i][0]for j in the:ax1.plot3D(dat0[:,0]*np.cos(j),dat0[:,1],dat0[:,0]*np.sin(j),'-->', linewidth=0.5,color='gray')  

3 、仿真结果

基于python 仿真载流圆环的3维磁场分布相关推荐

  1. python交通调查数据处理_基于Python的交通流数据清洗

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的交通流数据清洗 作者:李红梅 唐岚 来源:<电子技术与软件工程> 2016 年第 09 期 [关键词]交通 ...

  2. python下二进制流文件转二维码

    python下二进制流文件转二维码 之前做过的一个ctf中的misc,经过一系列操作得到一个flag.txt 里面是一串二进制流 突然束手无策 经简单计算 260^2=67600 所以尝试能否转化为一 ...

  3. 基于Python opencv实现车牌识别及二维码条形码识别系统 附完整源码

    完整代码:https://download.csdn.net/download/qq_38735017/87416699 原理简介 车牌字符识别使用的算法是 opencv 的 SVM opencv 的 ...

  4. 基于python实现的图像绘制(二维散点图、饼图,绘制三维的直方图、线图、散点图、利用pyecharts在地图上绘制各种图标)

    1. 问题描述 使用 Iris 数据集,在一个 figure 中绘制出右侧的 16 个子图. 分别使用花瓣长度.花瓣宽度.花萼长度和花萼宽度这四种数据,两两组合,形成散点. 找一组自己感兴趣的真实数据 ...

  5. 基于Python+Django的Kubernetes集群管理平台

    时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调度管理等方面都有其难以言喻的优 ...

  6. 大学物理电磁学——磁场对载流导线的作用

    磁场对载流导线的作用 一.安培定律 方法:微元分割+积分求和 第一个式子表示,电流元2对1的作用力. 注意: 两个电流元之间的作用力不满足牛顿第三定律. 但是两个载流闭合导线之间的相互作用力满足牛顿第 ...

  7. 交通流预测python代码_Python 3 amp; Keras 实现基于神经网络的交通流预测

    交通流量预测在智能交通(ITS)系统中占有重要地位,是实现交通诱导的前提.准确实时的短时交通流预测有助于更好的分析路网交通状况,对路网交通规划和交通优化控制有非常重要的作用.随着交通数据采集技术的不断 ...

  8. 交通状态预测 | Python实现基于Transformer的交通流预测

    交通状态预测 | Python实现基于Transformer的交通流预测 目录 交通状态预测 | Python实现基于Transformer的交通流预测 基本介绍 模型构建 程序设计 学习总结 基本介 ...

  9. 基于matlab的螺线管仿真,基于COMSOL Multiphysics恒流螺线管的电磁场仿真分析

    27 电子技术研发 Electronics R & D 10.3969/j.issn.1000-0755.2017.11.008 0 引言 在现代的工业生产中,螺线管在微电子.传感器.机电等领 ...

最新文章

  1. mysql 创建date,在MySQL中从DATE和TIME创建DATETIME?
  2. das,nas,san区别——大型数据中心会用NAS+SAN软硬结合思路
  3. 软件测试人员需要了解关于自动化的什么(译)
  4. Centos MySql基础
  5. 更高效的利用Jupyter+pandas进行数据分析,6种常用数据格式效率对比!
  6. LeetCode Hot100 ---- 滑动窗口专题
  7. linux中高端内存和低端内存的概念【转】
  8. 网页无障碍php,【译】开发无障碍的Web组件
  9. mysql三高讲解(二):2.8 mysql视图相关概念
  10. VALSE学习(八):矿视-轻量级深度模型的研究与实践
  11. Stm32 CubeMx安装和配置Cube.ai教程
  12. 数据结构1800题-错题集-第四章
  13. IDEA 格式化XML命令
  14. 二开免签支付修复版系统源码带YY通道
  15. Matlab App Designer 学习笔记
  16. kali 普通用户没有声音
  17. 软件测试及工程常用词汇(笔记一)
  18. CGB2106-Day03
  19. 区块链中的“链上”和“链下”
  20. 2023年PMP 续证的费用和流程最全介绍

热门文章

  1. 数据结构和算法文章目录(C语言 唐发根版)
  2. 如何使用TFTP客户端工具修复路由器固件
  3. C++ 图像线特征提取(LSD算法+opencv3.4.6)
  4. 分享iOS社区app创业经历
  5. android修改尾巴软件,能改QQ尾巴!让安卓脱胎换骨的超强工具
  6. MasterCAM 五轴后处理通用定义设定
  7. ArcGIS点、线、面状符号制作「制图入门(二)」
  8. jq点击事件(jq点击事件)
  9. jQuery 点击事件冲突
  10. jquery点击事件无效及解决办法