箭头场图(`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

浙公网安备 33010602011771号