二维直方图(`histogram2`)

二维直方图(histogram2)

03_统计与矩阵 5 张 MATLAB R2023b 100 mm 宽 @ 300 dpi

这个方法适合什么

两个变量联合分箱,用色阶表示落点密度。适合:负荷与气温的联合分布、电压与无功的联合分布、大样本散点的密化。

电气场景

1 负荷与气温联合分布

2 负荷率与线损率联合分布

3 风速与风电出力联合分布

4 电流与绕组温升联合分布

5 母线电压与无功联合分布

代码

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

if any(SEL==2)
    rng(202);

    % ---- 2.1 负荷与气温联合分布 ----
    Tt = 14 + 11*randn(4000,1);
    Pl = 8.2 + 0.11*Tt + 1.4*randn(4000,1);
    f  = ml_fig(PP,100,80);
    ax = axes('Parent',f,'Position',[0.165 0.190 0.690 0.755]);
    histogram2(ax,Pl,Tt,7:0.8:15,-6:4:42,'DisplayStyle','tile','ShowEmptyBins','on');
    colormap(ax,parula);
    xlabel(ml_tx('有功负荷 <i>P</i> / MW'));
    ylabel(ml_tx('气温 <i>T</i> / °C'));
    xlim(ax,[7.5 14.5]); ylim(ax,[-6 42]);
    cb = colorbar(ax); cb.FontName = PP.FontEN; cb.FontSize = PP.FS;
    cb.Label.String = ml_tx('样本数 / 个'); cb.Label.FontName = PP.FontEN;
    cb.Label.FontSize = PP.FS;
    save_png(f,FIGD,'负荷与气温联合分布');

    % ---- 2.2 负荷率与线损率联合分布 ----
    KL = 0.35 + 0.60*betarnd(2.4,1.8,4000,1);
    LL = 0.55 + 3.1*KL.^2 + 0.25*randn(4000,1);
    f  = ml_fig(PP,100,80);
    ax = axes('Parent',f,'Position',[0.165 0.190 0.690 0.755]);
    histogram2(ax,KL,LL,0.30:0.07:1.02,0.3:0.4:4.3,'DisplayStyle','tile','ShowEmptyBins','on');
    colormap(ax,flipud(hot));
    xlabel(ml_tx('负载率 <i>K</i>_{L} / p.u.'));
    ylabel(ml_tx('线损率 Δ<i>P</i> / %'));
    xlim(ax,[0.33 1.02]); ylim(ax,[0.3 4.3]);
    cb = colorbar(ax); cb.FontName = PP.FontEN; cb.FontSize = PP.FS;
    cb.Label.String = ml_tx('样本数 / 个'); cb.Label.FontName = PP.FontEN;
    cb.Label.FontSize = PP.FS;
    save_png(f,FIGD,'负荷率与线损率联合分布');

    % ---- 2.3 风速与风电出力联合分布 ----
    v  = wblrnd(8.0,2.2,9000,1);       % 威布尔风速
    Pw = 1.0./(1 + exp(-(v - 6.2)/0.95)) + 0.065*randn(9000,1);
    Pw = min(max(Pw,0),1.05);
    f  = ml_fig(PP,100,80);
    ax = axes('Parent',f,'Position',[0.165 0.190 0.690 0.755]);
    histogram2(ax,v,Pw,0:1.7:17,0:0.12:1.08,'DisplayStyle','tile','ShowEmptyBins','on');
    colormap(ax,parula);
    xlabel(ml_tx('风速 <i>v</i> / (m·s^{-1})'));
    ylabel(ml_tx('风电出力 <i>P</i>_{w} / p.u.'));
    xlim(ax,[0 17]); ylim(ax,[0 1.08]);
    cb = colorbar(ax); cb.FontName = PP.FontEN; cb.FontSize = PP.FS;
    cb.Label.String = ml_tx('样本数 / 个'); cb.Label.FontName = PP.FontEN;
    cb.Label.FontSize = PP.FS;
    save_png(f,FIGD,'风速与风电出力联合分布');

    % ---- 2.4 电流与绕组温升联合分布 ----
    Ia = 90 + 260*betarnd(2.0,2.6,4000,1);
    dT = 18 + 0.135*Ia + 3.2*randn(4000,1);
    f  = ml_fig(PP,100,80);
    ax = axes('Parent',f,'Position',[0.165 0.190 0.690 0.755]);
    histogram2(ax,Ia,dT,70:35:385,10:8:90,'DisplayStyle','tile','ShowEmptyBins','on');
    colormap(ax,turbo);
    xlabel(ml_tx('负荷电流 <i>I</i> / A'));
    ylabel(ml_tx('绕组温升 Δ<i>T</i> / K'));
    xlim(ax,[70 380]); ylim(ax,[12 92]);
    cb = colorbar(ax); cb.FontName = PP.FontEN; cb.FontSize = PP.FS;
    cb.Label.String = ml_tx('样本数 / 个'); cb.Label.FontName = PP.FontEN;
    cb.Label.FontSize = PP.FS;
    save_png(f,FIGD,'电流与绕组温升联合分布');

    % ---- 2.5 母线电压与无功联合分布(细网格)----
    Q  = 12*randn(9000,1) + 0.35*randn(9000,1);
    U  = 1.00 - 0.0022*Q + 0.004*randn(9000,1);
    xE = 0.965:0.0045:1.035;  yE = -38:5:37;
    f  = ml_fig(PP,100,80);
    ax = axes('Parent',f,'Position',[0.165 0.190 0.690 0.755]);
    histogram2(ax,U,Q,xE,yE,'DisplayStyle','tile','ShowEmptyBins','on');
    colormap(ax,turbo);
    xlabel(ml_tx('母线电压 <i>U</i> / p.u.'));
    ylabel(ml_tx('无功功率 <i>Q</i> / Mvar'));
    xlim(ax,[xE(1) xE(end)]); ylim(ax,[yE(1) yE(end)]);
    cb = colorbar(ax); cb.FontName = PP.FontEN; cb.FontSize = PP.FS;
    cb.Label.String = ml_tx('样本数 / 个'); cb.Label.FontName = PP.FontEN;
    cb.Label.FontSize = PP.FS;
    save_png(f,FIGD,'母线电压与无功联合分布');
end
posted @ 2026-11-09 00:05  小青蛙电气  阅读(4)  评论(0)    收藏  举报