天恩小朋友 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日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效