三维箭头场图(`quiver3`)

三维箭头场图(quiver3)

05_场与矢量 5 张 MATLAB R2023b 100 mm 宽 @ 300 dpi

这个方法适合什么

三维空间中的箭头矢量场。适合:变压器漏磁、空间电场、风场等三维矢量的方向分布。

电气场景

1 球隙三维电场矢量

2 变压器漏磁三维矢量

3 开关柜热流三维矢量

4 接地体散流电流密度矢量

5 变电站风速三维矢量

代码

脚本 p5_field_vector.m 中对应 quiver3 的一段,SEL 用于选择只跑某几个方法。

if any(SEL==5)
    % ---- 5.1 球隙三维电场矢量 ----
    try
        [X,Y,Z,U,V,W] = gen_gap_E(7,5,5);

        f  = ml_fig(PP,100,90);
        ax = ax3(f,false);
        qv3(ax,X,Y,Z,U,V,W,0.40,C(1,:));
        xlabel(ml_tx('横向距离 <i>x</i> / m'));
        ylabel(ml_tx('纵向距离 <i>y</i> / m'));
        zlabel(ml_tx('高度 <i>z</i> / m'));
        xlim(ax,[0 4]); ylim(ax,[0 3]); zlim(ax,[0 3]);
        save_png(f,FIGD,'球隙三维电场矢量');
    catch ME
        fprintf('[FAIL] 5-1 %s\n',ME.message); close all
    end

    % ---- 5.2 变压器漏磁三维矢量 ----
    try
        xg = linspace(0,2.0,6); yg = linspace(0,1.6,5); zg = linspace(0,1.2,4);
        [X,Y,Z] = meshgrid(xg,yg,zg);
        RR = (X-1.00).^2 + (Y-0.80).^2 + 0.06;
        Bx = -3.6*(Y-0.80)./RR;
        By =  3.6*(X-1.00)./RR;
        Bz =  0.22 + 0.10*(Z/1.2);

        f  = ml_fig(PP,100,90);
        ax = ax3(f,false);
        qv3(ax,X,Y,Z,Bx,By,Bz,0.22,C(2,:));
        xlabel(ml_tx('铁心宽度方向 <i>x</i> / m'));
        ylabel(ml_tx('铁心厚度方向 <i>y</i> / m'));
        zlabel(ml_tx('高度 <i>z</i> / m'));
        xlim(ax,[0 2]); ylim(ax,[0 1.6]); zlim(ax,[0 1.2]);
        save_png(f,FIGD,'变压器漏磁三维矢量');
    catch ME
        fprintf('[FAIL] 5-2 %s\n',ME.message); close all
    end

    % ---- 5.3 开关柜热流三维矢量 ----
    try
        [X,Y,Z,QX,QY,QZ] = gen_cab_q(7,5,7);

        f  = ml_fig(PP,100,90);
        ax = ax3(f,false);
        qv3(ax,X,Y,Z,QX,QY,QZ,0.10,C(3,:));
        xlabel(ml_tx('柜宽 <i>x</i> / m'));
        ylabel(ml_tx('柜深 <i>y</i> / m'));
        zlabel(ml_tx('柜高 <i>z</i> / m'));
        xlim(ax,[0 1.2]); ylim(ax,[0 0.8]); zlim(ax,[0 1.8]);
        save_png(f,FIGD,'开关柜热流三维矢量');
    catch ME
        fprintf('[FAIL] 5-3 %s\n',ME.message); close all
    end

    % ---- 5.4 接地体散流电流密度矢量 ----
    try
        xg = linspace(-8,8,7); yg = linspace(-8,8,7); zg = linspace(-5,0,5);
        [X,Y,Z] = meshgrid(xg,yg,zg);
        dx = X; dy = Y; dz = Z + 0.8;
        RR = sqrt(dx.^2+dy.^2+dz.^2) + 0.50;
        JM = 900./(4*pi*RR.^2);
        U = JM.*dx./RR; V = JM.*dy./RR; W = JM.*dz./RR;

        f  = ml_fig(PP,100,90);
        ax = ax3(f,false);
        qv3(ax,X,Y,Z,U,V,W,1.10,C(4,:));
        xlabel(ml_tx('站区 <i>x</i> / m'));
        ylabel(ml_tx('站区 <i>y</i> / m'));
        zlabel(ml_tx('土壤深度 <i>z</i> / m'));
        xlim(ax,[-8 8]); ylim(ax,[-8 8]); zlim(ax,[-5 0]);
        save_png(f,FIGD,'接地体散流电流密度矢量');
    catch ME
        fprintf('[FAIL] 5-4 %s\n',ME.message); close all
    end

    % ---- 5.5 变电站风速三维矢量 ----
    try
        [X,Y,Z,U,V,W] = gen_wind(7,6,5);

        f  = ml_fig(PP,100,90);
        ax = ax3(f,false);
        qv3(ax,X,Y,Z,U,V,W,3.6,C(6,:));
        xlabel(ml_tx('站区长度 <i>x</i> / m'));
        ylabel(ml_tx('站区宽度 <i>y</i> / m'));
        zlabel(ml_tx('高度 <i>z</i> / m'));
        xlim(ax,[0 40]); ylim(ax,[0 30]); zlim(ax,[0 18]);
        save_png(f,FIGD,'变电站风速三维矢量');
    catch ME
        fprintf('[FAIL] 5-5 %s\n',ME.message); close all
    end
end
posted @ 2026-11-09 17:45  小青蛙电气  阅读(1)  评论(0)    收藏  举报