I agree with Ray. The base case dispatch being updated by OPF causes a reduction in generation, commensurate to the load reduction, and hence you are seeing a decrease in the load margin. What happens when you decrease the load at some other buses? Do you get the same behavior?
Shri From: Ray Zimmerman <r...@cornell.edu<mailto:r...@cornell.edu>> Reply-To: MATPOWER discussion forum <matpowe...@list.cornell.edu<mailto:matpowe...@list.cornell.edu>> Date: Thursday, February 16, 2017 at 8:28 AM To: MATPOWER discussion forum <matpowe...@list.cornell.edu<mailto:matpowe...@list.cornell.edu>> Subject: Re: load reduction in continuation power flow (CPF) The code looks correct to me. I’m not sure why the load margin decreases, but the changes in load (from positive to equally negative) may be forcing the OPF solution into generator dispatch solutions that somehow reduce the load margin. Ray On Feb 15, 2017, at 10:45 PM, Majid Mehdizadeh <majidmeh....@gmail.com<mailto:majidmeh....@gmail.com>> wrote: Dear sir and matpower committee It is very strange for me that when the load of some PQ buses in IEEE 39 bus test system are reduced and then cpf is performed then the load margin of the system is becoming lower . It should be noted that i use the following code to estimate the load margin of the system using maximum lambda.: clc clear all a=0; for ii=1:20 mpcb = loadcase(case39); % load base case for v=[1 3 4 7]; mpcb.bus(v,3)=mpcb.bus(v,3)-a*mpcb.bus(v,3); end mpopt = mpoption('verbose',0,'out.all',0); %default result=runopf(mpcb,mpopt);%bayad print ro disable koni mpcb.gen(:,2)=result.gen(:,2); load=sum(mpcb.bus(:,3)) generation=sum(mpcb.gen(:,2)) mpopt = mpoption('out.all',0,'verbose',0); mpopt = mpoption(mpopt,'cpf.stop_at','NOSE','cpf.step', 0.2); mpopt = mpoption(mpopt,'cpf.plot.level',0,'cpf.plot.bus',8); mpct = mpcb; % set up target case with mpct.gen(:,[2 3]) = mpcb.gen(:,[2 3]) * 3.5; % increased generation mpct.bus(:,[3 4]) = mpcb.bus(:,[3 4]) * 3.5; % and increased load results = runcpf(mpcb, mpct, mpopt); landa(ii)=results.cpf.max_lam;% Pf= mpcb.bus(:,3) +landa(ii)*(mpct.bus(:,3)-mpcb.bus(:,3)); Pinitial(ii)=sum(mpcb.bus(:,3)); Pfinal(ii)=sum(Pf); loadmargin(ii)=Pfinal(ii)-Pinitial(ii); a=a+0.1; end bar(loadmargin) Is there any wrong calculation of final or initial load with maximum lambda? as you see, the load margin is final load minus the initial load: Pf= mpcb.bus(:,3) +landa(ii)*(mpct.bus(:,3)-mpcb.bus(:,3)); Pinitial(ii)=sum(mpcb.bus(:,3)); Pfinal(ii)=sum(Pf); loadmargin(ii)=Pfinal(ii)-Pinitial(ii); -- Best Regards Majid Mehdizadeh Ph.D Student of electrical engineering, Power Department, Ferdowsi University of Mashhad Substation and Transmission Line Expert, Engineering office, Khorasan Regional Electric Co. http://mehdizadeh.majid.student.um.ac.ir<http://mehdizadeh.majid.student.um.ac.ir/>