Hi Community ,

I need help and guidance. I am not getting Z_est (Estimated Measurements)
nearly equal to (True Measurements)

%---------------------------------------------------------------------------------------------------------%
%%              Select a case and run AC Power Flow.
mpc = loadcase('case4gs');% Load case data
pfres = runpf(mpc);% Runs an AC Power Flow based on Newton-Raphsons Method
casesystem = size(mpc.bus, 1);
%-----------------------------------------------------------------------------------------------------------%
                                           % Start DC State Estimation
%-----------------------------------------------------------------------------------------------------------%
%% Step-1: Make the Measurement Matrix( Real Power Injections and Real
Power Transmitted)
%-----------------------------------------------------------------------------------------------------------%
% (I). Real Power Injection Matrix
p_bus = real(makeSbus(mpc.baseMVA, mpc.bus, mpc.gen)) * mpc.baseMVA; % Real
Power Injections at the bus nodes
%-----------------------------------------------------------------------------------------------------------%
% (II). Real Power Flows(Power Transmitted from bus i to bus j)
n_lines = size(pfres.branch,1);

% Active Power Flow of Sending Nodes(From Bus)
PF_S = [ones(n_lines,1), 4*ones(n_lines,1), pfres.branch(:,14)/mpc.baseMVA,
pfres.branch(:,1:2), 0.005*ones(n_lines,1)];
pf_s=PF_S(:,3)*mpc.baseMVA;

% Real Power Flows(To Bus) of Recieving Nodes(To Bus)
PF_R = [ones(n_lines,1),4*ones(n_lines,1), pfres.branch(:,16)/mpc.baseMVA,
pfres.branch(:,1:2), 0.005*ones(n_lines,1)];
pf_r=PF_R(:,3)*mpc.baseMVA;

%-----------------------------------------------------------------------------------------------------------%
% (III) The Measurement Data Matrix obtained by combining Active Power
Injections and Active Power Flows)
Z_M = [p_bus; pf_s; pf_r]; % Only Real Power Injections and Power Flows due
to DC State Estimation

% (IV) Introducing random meaurement errors according to variances
% for i = 1:size(z, 1)
%     Z(i,3) = normrnd( zdata(i,3), zdata(i,6))
% end

%% Step-2:   Make H Matrix (H Matrix has three parts)
%( H=Part (1) B Matrix;Part (2) Connection Mat(Real Tx Pwr From bus i>j
);Part (3) Connection Mat(Real Tx Pwr From bus i>j)
%-----------------------------------------------------------------------------------------------------------%
% Stage-1:   Make Ybus(Bus Admittence Matrix)
[Ybus, YF, YT] = makeYbus(mpc);
Ybus=full(imag(Ybus))
% Stage-2 Make the B Matrix and phase shift injection vectors needed for a
DC power flow.
[Bbus, Bf, Pbusinj, Pfinj] = makeBdc(mpc.baseMVA, mpc.bus, mpc.branch);
H_P1=full(Bbus)%------ (1st Part of H-Matrix)
% Stage-3 Make the Connection Matrix or Incidence Matrix
[Ainc] = makeIncidence(mpc.bus, mpc.branch);
Ainc = full(Ainc)
% Stage-3 Make the 2nd Part & 3rd Part of H Matrix
[row col]= size (Ainc);
for i=1:row
    for j=1:col
        H_P2(i,j)=Ainc(i,j)*Ybus(i,j);%------ (2nd Part of H-Matrix)
        H_P3(i,j)=(-1)*Ainc(i,j)*Ybus(i,j);%------ (3rd Part of H-Matrix)
    end
end
% Stage-4 Make the H-Matrix (Combining 1st,2nd and Thrird Part)

H=[H_P1;H_P2;H_P3];

%% Step-3 Make the Co-Var Matrix
R=  0.1^2*diag([1 1 1 1 1 1 1 1 1 1 1 1]); % Co-Variance Matrix (0.01)
W= R^-1; % Reciprocal of Diagonal Matrix Elements
%% Step-4 Estimate the State(Voltage Angles) WLS Criteria
Ang_est=(H'*W *H)^-1* H' * W * Z_M
%% Step-4 Make the Estimated Measurments Matrix
Z_est=H*Ang_est; % Estimated Measurements

Regards
Saeed Ahmed


On 6 August 2017 at 15:51, Saeed Ahmed <saeed.ahme...@gmail.com> wrote:

> Hi Community,
> I need you to help and guide me to improve my results .... I have writtent
> the code but the estimated measurement matrix is not correct.
>
> First i run an AC power flow case '4gs' and then make the DC State
> estimation code to compare the state(angles) and estimated measurements
> %%              Select a case and run AC Power Flow.
> mpc = loadcase('case4gs');% Load case data
> pfres = runpf(mpc);% Runs an AC Power Flow based on Newton-Raphsons Method
> casesystem = size(mpc.bus, 1);
> %-----------------------------------------------------------
> ------------------------------------------------%
>                                            % Start DC State Estimation
> %-----------------------------------------------------------
> ------------------------------------------------%
> %% Step-1: Make the Measurement Matrix( Real Power Injections and Real
> Power Transmitted)
> %-----------------------------------------------------------
> ------------------------------------------------%
> % (I). Real Power Injection Matrix
> p_bus = real(makeSbus(mpc.baseMVA, mpc.bus, mpc.gen)) * mpc.baseMVA; %
> Real Power Injections at the bus nodes
> % p_bus(1,:)=[]; % Eleminate the Referece Bus
> %-----------------------------------------------------------
> ------------------------------------------------%
> % (II). Real Power Flows: Power Transmitted from bus i to bus j)
> n_lines = size(pfres.branch,1);
>
> % Active Power Flow of Sending Nodes(From Bus)
> PF_S = [ones(n_lines,1), 4*ones(n_lines,1), pfres.branch(:,14)/mpc.baseMVA,
> pfres.branch(:,1:2), 0.005*ones(n_lines,1)];
> pf_s=PF_S(:,3)*mpc.baseMVA;
>
> % Real Power Flows(To Bus) of Recieving Nodes(To Bus)
> PF_R = [ones(n_lines,1),4*ones(n_lines,1), pfres.branch(:,16)/mpc.baseMVA,
> pfres.branch(:,1:2), 0.005*ones(n_lines,1)];
> pf_r=PF_R(:,3)*mpc.baseMVA;
>
> %-----------------------------------------------------------
> ------------------------------------------------%
> % (III) The Measurement Data Matrix obtained by combining Active Power
> Injections and Active Power Flows)
> Z_M = [p_bus; pf_s; pf_r]; % Only Real Power Injections and Power Flows
> due to DC State Estimation
>
> % (IV) Introducing random meaurement errors according to variances
> % for i = 1:size(z, 1)
> %     Z(i,3) = normrnd( zdata(i,3), zdata(i,6))
> % end
>
> %% Step-2:   Make H Matrix (H Matrix has three parts)
> %( H=Part (1) B Matrix;Part (2) Connection Mat(Real Tx Pwr From bus i>j
> );Part (3) Connection Mat(Real Tx Pwr From bus i>j)
> %-----------------------------------------------------------
> ------------------------------------------------%
> % Stage-1:   Make Ybus(Bus Admittence Matrix)
> [Ybus, YF, YT] = makeYbus(mpc);
> Ybus=full(imag(Ybus))
> % Stage-2 Make the B Matrix and phase shift injection vectors needed for a
> DC power flow.
> [Bbus, Bf, Pbusinj, Pfinj] = makeBdc(mpc.baseMVA, mpc.bus, mpc.branch);
> H_P1=full(Bbus)%------ (1st Part of H-Matrix)
> % Stage-3 Make the Connection Matrix or Incidence Matrix
> [Ainc] = makeIncidence(mpc.bus, mpc.branch);
> Ainc = full(Ainc)
> % Stage-3 Make the 2nd Part & 3rd of H Matrix
> [row col]= size (Ainc);
> for i=1:row
>     for j=1:col
>         H_P2(i,j)=Ainc(i,j)*Ybus(i,j);%------ (2nd Part of H-Matrix)
>         H_P3(i,j)=(-1)*Ainc(i,j)*Ybus(i,j);%------ (3rd Part of H-Matrix)
>     end
> end
> % Stage-4 Make the H-Matrix (Combining 1st,2nd and Thrird Part)
>
> H=[H_P1;H_P2;H_P3];
>
> %% Step-3 Make the Co-Var Matrix
> R=  0.1^2*diag([1 1 1 1 1 1 1 1 1 1 1 1]); % Co-Variance Matrix (0.01)
> W= R^-1; % Reciprocal of Diagonal Matrix Elements
> %% Step-4 Estimate the State(Voltage Angles) WLS Criteria
> Ang_est=(H'*W *H)^-1* H' * W * Z_M
> %% Step-4 Make the Estimated Measurments Matrix
> Z_est=H*ang_est; % Estimated Measurements
>
> Regards
> Saeed Ahmed
>
>

Reply via email to