箭头场图(`quiver`)

箭头场图(quiver)

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

这个方法适合什么

二维箭头表示矢量的方向与大小。适合:电流密度分布、梯度场、潮流方向、电场方向的可视化。

电气场景

1 接地网电流密度矢量场

2 地表电位梯度矢量场

3 配电网有功潮流方向

4 电缆沟热流密度矢量场

5 棒板间隙电场矢量场

代码

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

if any(SEL==4)
    % ---- 4.1 接地网电流密度矢量场 ----
    try
        xq = linspace(-26,26,15); yq = linspace(-26,26,11);
        [Xq,Yq] = meshgrid(xq,yq);
        Rq = hypot(Xq,Yq);
        Vq = 0.4 + 9.2*exp(-Rq.^2/520);
        [gx,gy] = gradient(Vq,xq,yq);
        sg = 42;                                   % kV/m → A/m² 折算系数

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        qv2(ax,Xq,Yq,-sg*gx,-sg*gy,2.2,C(1,:));
        xlabel(ml_tx('站区 <i>x</i> / m'));
        ylabel(ml_tx('站区 <i>y</i> / m'));
        xlim(ax,[-30 30]); ylim(ax,[-30 30]);
        save_png(f,FIGD,'接地网电流密度矢量场');
    catch ME
        fprintf('[FAIL] 4-1 %s\n',ME.message); close all
    end

    % ---- 4.2 地表电位梯度矢量场 ----
    try
        xq = linspace(2,38,14); yq = linspace(2,28,10);
        [Xq,Yq] = meshgrid(xq,yq);
        Vq = 6.2*exp(-((Xq-6).^2+(Yq-8).^2)/110) - 4.4*exp(-((Xq-32).^2+(Yq-20).^2)/150);
        [gx,gy] = gradient(Vq,xq,yq);

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        qv2(ax,Xq,Yq,-gx,-gy,1.7,C(2,:));
        xlabel(ml_tx('站区 <i>x</i> / m'));
        ylabel(ml_tx('站区 <i>y</i> / m'));
        xlim(ax,[0 41]); ylim(ax,[0 31]);
        save_png(f,FIGD,'地表电位梯度矢量场');
    catch ME
        fprintf('[FAIL] 4-2 %s\n',ME.message); close all
    end

    % ---- 4.3 配电网有功潮流方向 ----
    try
        xq = 2:3.2:38; yq = [1.5 4 6.5 9 11.5];
        [Xq,Yq] = meshgrid(xq,yq);
        U = 6.0*(1 - (Xq-2)/46);
        Vv = 0.55*(Yq-6)./6 + 0.35*sin(pi*Xq/38);
        MG = hypot(U,Vv);

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        quiver(ax,Xq,Yq,U,Vv,1.7,'Color',C(4,:), ...
               'LineWidth',0.5,'MaxHeadSize',0.45);
        xlabel(ml_tx('沿馈线距离 <i>x</i> / km'));
        ylabel(ml_tx('馈线位置 <i>y</i> / km'));
        xlim(ax,[0 40]); ylim(ax,[0 13]);
        save_png(f,FIGD,'配电网有功潮流方向');
    catch ME
        fprintf('[FAIL] 4-3 %s\n',ME.message); close all
    end

    % ---- 4.4 电缆沟热流密度矢量场 ----
    try
        xq = linspace(0.05,1.13,13); yq = linspace(0.05,0.95,11);
        [Xq,Yq] = meshgrid(xq,yq);
        Tq = 20 + 11*Yq ...
                + 30*exp(-((Xq-0.20).^2+(Yq-0.78).^2)/0.012) ...
                + 30*exp(-((Xq-0.60).^2+(Yq-0.78).^2)/0.012) ...
                + 28*exp(-((Xq-1.00).^2+(Yq-0.78).^2)/0.012);
        [gx,gy] = gradient(Tq,xq,yq);

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        qv2(ax,Xq,Yq,-0.35*gx,-0.35*gy,0.035,C(3,:));
        xlabel(ml_tx('电缆沟宽度 <i>x</i> / m'));
        ylabel(ml_tx('敷设深度 <i>d</i> / m'));
        xlim(ax,[0 1.2]); ylim(ax,[0 1.0]);
        save_png(f,FIGD,'电缆沟热流密度矢量场');
    catch ME
        fprintf('[FAIL] 4-4 %s\n',ME.message); close all
    end

    % ---- 4.5 棒板间隙电场矢量场 ----
    try
        xq = linspace(0.14,2.86,15); yq = linspace(0.14,2.26,11);
        [Xq,Yq] = meshgrid(xq,yq);
        Vq = 34./sqrt((Xq-1.5).^2+(Yq-2.2).^2+0.02) - 7.5*Yq;
        [gx,gy] = gradient(Vq,xq,yq);

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        qv2(ax,Xq,Yq,-gx,-gy,0.10,C(5,:));
        xlabel(ml_tx('横向距离 <i>x</i> / m'));
        ylabel(ml_tx('气隙高度 <i>y</i> / m'));
        xlim(ax,[0 3]); ylim(ax,[0 2.4]);
        save_png(f,FIGD,'棒板间隙电场矢量场');
    catch ME
        fprintf('[FAIL] 4-5 %s\n',ME.message); close all
    end
end
posted @ 2026-11-09 17:45  小青蛙电气  阅读(3)  评论(0)    收藏  举报