天恩小朋友 2022-05-11 18:35 采纳率: 50%
浏览 63
已结题

MATLAB根据公式出结果图根据,现有的公式复制一份结果图,需要彩色图片

《单层方体三线圈均匀磁场源理论计算与仿真》
lear all;
M0=4 * pi1e-7;%初始化,给定环半径.电流、图形
I0 =5.0;Rh = 1;
C0=M0/(4
pi)I0;
Nx=21 ;Ny = 21;%设定观测点网格数
x=linspace(-Rh,Rh,Nx);%设定观测点范围及数组
y=linspace(-Rh,Rh,Ny);
Nh=20;%电流环分段
T0=linspace(0,2
pi,Nh+1);%环的圆周角分段
T1=T0(1:Nh);
yb=Rhcos(T1) ;
zb=Rh
sin(T1);%设置环各段向量的起点坐标yb,zb
T2=T0(2:Nh+1) ;
ye= Rhcos(T2);
ze=Rh
sin(T2);%设置环各段向量的终点坐标ye, ze
dlx=0;dly = ye-yb;dlz=ze-zb;%计算环各段向量dl的三个长度分量
xc=0;yc=(yb+ye)/2;zc=(zb+ze)/2;%计算环各段向量中点的三个坐标分量
for i=1 :Ny%循环计算各网格点上的B(x ,y)值
for j=1:Nx
rx =x(j)- xc;ry = y( i) - yc ;rz =0 -zc;%观测点在z=0平面上
r3 = sqrt( rx.^2+ry.^2 + rz.^2 ).^3 ;
dlXr_x=dly.* rz- dlz.* ry ;%计算叉乘积dlXr 的x和y的分量
dlXr_y= dlz.rx - dlx.rz;
Bx(i,j)=sum(C0
dlXr_x./r3);%把环各段产生的磁场分量累加
By(i,j)=sum(C0
dlXr_y./r3);
end
end
Bax = Bx(:,11 :21) + Bx(:,1:11);
Bay = By(:,11:21) + By(:,1:11);
subplot(1,2,1) ;
mesh(x(11:21),y,Bax);xlabel('x') ; ylabel('y');%画出其B分布三维图
subplot(1,2,2);
plot(y,Bax),grid,xlabel('y');ylabel('Bx');

  • 写回答

2条回答 默认 最新

  • Haleine 2022-05-12 12:45
    关注
    
    clear all;
    M0=4 * pi*1e-7;%初始化,给定环半径.电流、图形
    I0 =5.0;Rh = 1;
    C0=M0/((4*pi)*I0);
    Nx=21 ;Ny = 21;%设定观测点网格数
    x=linspace(-Rh,Rh,Nx);%设定观测点范围及数组
    y=linspace(-Rh,Rh,Ny);
    Nh=20;%电流环分段
    T0=linspace(0,2*pi,Nh+1);%环的圆周角分段
    T1=T0(1:Nh);
    yb=acosh(T1) ;
    zb=asinh(T1);%设置环各段向量的起点坐标yb,zb
    T2=T0(2:Nh+1) ;
    ye= acosh(T2);
    ze=asinh(T2);%设置环各段向量的终点坐标ye, ze
    dlx=0;dly = ye-yb;dlz=ze-zb;%计算环各段向量dl的三个长度分量
    xc=0;yc=(yb+ye)/2;zc=(zb+ze)/2;%计算环各段向量中点的三个坐标分量
    for i=1 :Ny%循环计算各网格点上的B(x ,y)值
        for j=1:Nx
            rx =x(j)- xc;ry = y( i) - yc ;rz =0 -zc;%观测点在z=0平面上
            r3 = sqrt( rx.^2+ry.^2 + rz.^2 ).^3 ;
            dlXr_x=dly.* rz- dlz.* ry ;%计算叉乘积dlXr 的x和y的分量
            dlXr_y= dlz.*rx - dlx.*rz;
            Bx(i,j)=sum(C0*dlXr_x./r3);%把环各段产生的磁场分量累加
            By(i,j)=sum(C0*dlXr_y./r3);
        end
    end
    Bax = Bx(:,11 :21) + Bx(:,1:11);
    Bay = By(:,11:21) + By(:,1:11);
    subplot(1,2,1) ;
    mesh(x(11:21),y,Bax);xlabel('x') ; ylabel('y');%画出其B分布三维图
    subplot(1,2,2);
    plot(y,Bax),grid,xlabel('y');ylabel('Bx');
    

    靠猜改了部分公式,但是画不出图1,mesh不能有复数,只有图2,忽略了虚部

    img

    但是都忽略虚部后的结果如下

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 请详细说明问题背景 5月12日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错