等值线图(`contour`)

等值线图(contour)

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

这个方法适合什么

只有线没有填充,适合叠在其他图上看场量分布。适合:电位等值线、温度等值线、效率等高线,常与散点或流线叠加。

电气场景

1 接地网地表电位等值线

2 变压器油箱壁温度等值线

3 逆变器效率等值线

4 线路下方工频电场等值线

5 电缆沟截面温度等值线

代码

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

if any(SEL==1)
    % ---- 1.1 接地网地表电位等值线 ----
    try
        xg = linspace(-30,30,121); yg = linspace(-30,30,121);
        [X,Y] = meshgrid(xg,yg);
        R  = hypot(X,Y);
        V  = 0.4 + 8.8*exp(-R.^2/430) + 1.7*exp(-((X-14).^2+(Y+9).^2)/130);
        LV = 0.8:0.8:8.8;

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        [c,h] = contour(ax,X,Y,V,LV,'LineWidth',0.65);
        clabel(c,h,'FontSize',7,'LabelSpacing',420);
        colormap(ax,parula); clim(ax,[LV(1) LV(end)]);
        xlabel(ml_tx('距接地中心 <i>x</i> / m'));
        ylabel(ml_tx('距接地中心 <i>y</i> / m'));
        xlim(ax,[-30 30]); ylim(ax,[-30 30]);
        cb2(ax,PP,'地表电位 <i>U</i> / kV');
        save_png(f,FIGD,'接地网地表电位等值线');
    catch ME
        fprintf('[FAIL] 1-1 %s\n',ME.message); close all
    end

    % ---- 1.2 变压器油箱壁温度等值线 ----
    try
        xg = linspace(0,2.0,121); yg = linspace(0,1.4,101);
        [X,Y] = meshgrid(xg,yg);
        T  = 38 + 15*(1-Y/1.4).^1.2 ...
             + 13*exp(-((X-0.55)/0.34).^2).*exp(-((Y-0.95)/0.32).^2) ...
             + 2.6*cos(3*pi*X/2);
        LV = 38:2:62;

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        [c,h] = contour(ax,X,Y,T,LV,'LineWidth',0.65);
        clabel(c,h,'FontSize',7,'LabelSpacing',380);
        colormap(ax,turbo); clim(ax,[LV(1) LV(end)]);
        xlabel(ml_tx('油箱宽度 <i>x</i> / m'));
        ylabel(ml_tx('距箱底高度 <i>y</i> / m'));
        xlim(ax,[0 2]); ylim(ax,[0 1.4]);
        cb2(ax,PP,'壁面温度 <i>T</i> / °C');
        save_png(f,FIGD,'变压器油箱壁温度等值线');
    catch ME
        fprintf('[FAIL] 1-2 %s\n',ME.message); close all
    end

    % ---- 1.3 逆变器效率等值线 ----
    try
        xg = linspace(500,900,121); yg = linspace(4,20,101);
        [X,Y] = meshgrid(xg,yg);
        ETA = 98.4 - 0.00026*(X-720).^2 - 0.055*(Y-10).^2 - 0.0035*(X-720).*(Y-10);
        LV  = 86:1.5:99;

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        [c,h] = contour(ax,X,Y,ETA,LV,'LineWidth',0.65);
        clabel(c,h,'FontSize',7,'LabelSpacing',420);
        colormap(ax,copper); clim(ax,[LV(1) LV(end)]);
        xlabel(ml_tx('直流母线电压 <i>U</i>_{dc} / V'));
        ylabel(ml_tx('开关频率 <i>f</i>_{sw} / kHz'));
        xlim(ax,[500 900]); ylim(ax,[4 20]);
        cb2(ax,PP,'变换效率 η / %');
        save_png(f,FIGD,'逆变器效率等值线');
    catch ME
        fprintf('[FAIL] 1-3 %s\n',ME.message); close all
    end

    % ---- 1.4 线路下方工频电场等值线 ----
    try
        xg = linspace(-40,40,141); yg = linspace(0,18,91);
        [X,Y] = meshgrid(xg,yg);
        E  = 0.55 + 4.10*exp(-(X/15).^2)./(1+0.055*Y.^1.3);
        LV = 0.6:0.4:4.6;

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        [c,h] = contour(ax,X,Y,E,LV,'LineWidth',0.65);
        clabel(c,h,'FontSize',7,'LabelSpacing',420);
        colormap(ax,sky); clim(ax,[LV(1) LV(end)]);
        xlabel(ml_tx('距线路中心水平距离 <i>x</i> / m'));
        ylabel(ml_tx('距地高度 <i>z</i> / m'));
        xlim(ax,[-40 40]); ylim(ax,[0 18]);
        cb2(ax,PP,'电场强度 <i>E</i> / (kV/m)');
        save_png(f,FIGD,'线路下方工频电场等值线');
    catch ME
        fprintf('[FAIL] 1-4 %s\n',ME.message); close all
    end

    % ---- 1.5 电缆沟截面温度等值线 ----
    try
        xg = linspace(0,1.2,111); yg = linspace(0,1.0,101);
        [X,Y] = meshgrid(xg,yg);
        T = 26 + 30*exp(-((X-0.20).^2+(Y-0.78).^2)/0.010) ...
               + 30*exp(-((X-0.60).^2+(Y-0.78).^2)/0.010) ...
               + 28*exp(-((X-1.00).^2+(Y-0.78).^2)/0.010) ...
               +  7*exp(-((X-0.60).^2+(Y-0.28).^2)/0.14);
        LV = 26:3:53;

        f  = ml_fig(PP,100,90);
        ax = ax2(f);
        [c,h] = contour(ax,X,Y,T,LV,'LineWidth',0.65);
        clabel(c,h,'FontSize',7,'LabelSpacing',420);
        colormap(ax,hot); clim(ax,[LV(1) LV(end)]);
        xlabel(ml_tx('电缆沟宽度 <i>x</i> / m'));
        ylabel(ml_tx('敷设深度 <i>d</i> / m'));
        xlim(ax,[0 1.2]); ylim(ax,[0 1.0]);
        cb2(ax,PP,'沟内温度 <i>T</i> / °C');
        save_png(f,FIGD,'电缆沟截面温度等值线');
    catch ME
        fprintf('[FAIL] 1-5 %s\n',ME.message); close all
    end
end
posted @ 2026-11-09 17:44  小青蛙电气  阅读(4)  评论(0)    收藏  举报