1.添加了画柱状图的函数
2.加了结果展示代码 Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
parent
971d2e3455
commit
0c9c2e2eb7
|
|
@ -0,0 +1,13 @@
|
|||
function barPlot( data, split_number,xWord,yWord,figTitle)
|
||||
ymin=min(data);
|
||||
ymax=max(data);
|
||||
% split_number=10;
|
||||
x=linspace(ymin,ymax,split_number); %将最大最小区间分成split_number个等分点(19等分),然后分别计算各个区间的个数
|
||||
yy=hist(data,x); %计算各个区间的个数
|
||||
% yy=yy/(sum(yy)*(ymax-ymin)/split_number); %计算各个区间的个数,除以总面积,总面积计算的方式为:所有小分割的面积的和即:
|
||||
bar(x,yy) %画出概率密度分布图
|
||||
xlabel(xWord);
|
||||
ylabel(yWord);
|
||||
title(figTitle);
|
||||
end
|
||||
|
||||
48
run.m
48
run.m
|
|
@ -1,5 +1,6 @@
|
|||
%% 利用先把负荷转换为电流的方法。这个方法要求知道电压量。
|
||||
%
|
||||
close all
|
||||
clc
|
||||
clear
|
||||
lineZ=readLineZ('feeder13\lineParameter.txt');
|
||||
|
|
@ -197,8 +198,8 @@ sigmaI1=normrnd(0,sigma,length(Loadi),1);
|
|||
I1measurement=mIf1(Loadi).*(1+sigmaI1);%测量值是等效发电机电流
|
||||
wI1r=abs( real(mIf1(Loadi).*sigmaI1) );
|
||||
wI1i=abs( imag(mIf1(Loadi).*sigmaI1) );
|
||||
[ V1r,V1i,I1r,I1i ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 );
|
||||
f=sum(([real(I1measurement);imag(I1measurement)]-[I1r;I1i]).^2)+sum((real(rV1)-V1r).^2)+sum((imag(rV1)-V1i).^2);
|
||||
% [ V1r,V1i,I1r,I1i ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 );
|
||||
% f=sum(([real(I1measurement);imag(I1measurement)]-[I1r;I1i]).^2)+sum((real(rV1)-V1r).^2)+sum((imag(rV1)-V1i).^2);
|
||||
% fprintf('目标值 %f\n',full(f));
|
||||
%% 算负序的
|
||||
fprintf('负序\n');
|
||||
|
|
@ -219,8 +220,8 @@ sigmaI2=normrnd(0,sigma,length(Loadi),1);
|
|||
I2measurement=mIf2(Loadi).*(1+sigmaI2);%测量值是等效发电机电流
|
||||
wI2r=abs( real(mIf2(Loadi).*sigmaI2) );
|
||||
wI2i=abs( imag(mIf2(Loadi).*sigmaI2) );
|
||||
[ V2r,V2i,I2r,I2i ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0 );
|
||||
f=sum(([real(I2measurement);imag(I2measurement)]-[I2r;I2i]).^2)+sum((real(rV2)-V2r).^2)+sum((imag(rV2)-V2i).^2);
|
||||
% [ V2r,V2i,I2r,I2i ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0 );
|
||||
% f=sum(([real(I2measurement);imag(I2measurement)]-[I2r;I2i]).^2)+sum((real(rV2)-V2r).^2)+sum((imag(rV2)-V2i).^2);
|
||||
% fprintf('目标值 %f\n',full(f));
|
||||
%% 算零序
|
||||
fprintf('零序\n');
|
||||
|
|
@ -241,8 +242,25 @@ sigmaI0=normrnd(0,sigma,length(Loadi),1);
|
|||
I0measurement=mIf0(Loadi).*(1+sigmaI0);%测量值是等效发电机电流
|
||||
wI0r=abs( real(mIf0(Loadi).*sigmaI0) );
|
||||
wI0i=abs( imag(mIf0(Loadi).*sigmaI0) );
|
||||
% matlabpool local 3
|
||||
tic
|
||||
for II=1:3
|
||||
|
||||
if II==1
|
||||
[ V1r,V1i,I1r,I1i ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 );
|
||||
end
|
||||
if II==2
|
||||
[ V2r,V2i,I2r,I2i ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0 );
|
||||
end
|
||||
if II==3
|
||||
[ V0r,V0i,I0r,I0i ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0 );
|
||||
f=sum(([real(I0measurement);imag(I0measurement)]-[I0r;I0i]).^2)+sum((real(rV0)-V0r).^2)+sum((imag(rV0)-V0i).^2);
|
||||
end
|
||||
|
||||
end
|
||||
toc
|
||||
% matlabpool close
|
||||
|
||||
% f=sum(([real(I0measurement);imag(I0measurement)]-[I0r;I0i]).^2)+sum((real(rV0)-V0r).^2)+sum((imag(rV0)-V0i).^2);
|
||||
% fprintf('目标值 %f\n',full(f));
|
||||
%% 把三序合成三相
|
||||
% 三相电压
|
||||
|
|
@ -257,7 +275,21 @@ SEIf1=I1r+1j*I1i;
|
|||
SEIf2=I2r+1j*I2i;
|
||||
SEIpABC=full(Tf2p*conj([SEIf0';SEIf1(1:3)';SEIf2']));
|
||||
%看一下差多少
|
||||
(full(abs(VoltpABC))-abs(SEVoltpABC))./abs(SEVoltpABC)*100
|
||||
|
||||
VError=(full(abs(VoltpABC))-abs(SEVoltpABC))./abs(VoltpABC)*100;
|
||||
VError=reshape(VError,size(VError,1)*size(VError,2),1);
|
||||
barPlot( VError, 10,['相对误差%'],['分布密度'],['电压幅值']);
|
||||
% 三相负荷
|
||||
SEVoltpABC(:,setxor(1:size(SEVoltpABC,2),Balance)).*conj(-SEIpABC)
|
||||
rThreeLoad=[ phaseASpotLoadP'+1j*phaseASpotLoadQ';
|
||||
phaseBSpotLoadP'+1j*phaseBSpotLoadQ';
|
||||
phaseCSpotLoadP'+1j*phaseCSpotLoadQ';
|
||||
];
|
||||
rThreeLoad=rThreeLoad(:,setxor(1:size(SEVoltpABC,2),Balance));
|
||||
SEThreeLoad=SEVoltpABC(:,setxor(1:size(SEVoltpABC,2),Balance)).*conj(-SEIpABC);
|
||||
phaseLoadPError=real(rThreeLoad-SEThreeLoad)./real(rThreeLoad)*100;
|
||||
phaseLoadQError=imag(rThreeLoad-SEThreeLoad)./imag(rThreeLoad)*100;
|
||||
phaseLoadPError=reshape(phaseLoadPError,size(phaseLoadPError,1)*size(phaseLoadPError,2),1);
|
||||
phaseLoadQError=reshape(phaseLoadQError,size(phaseLoadQError,1)*size(phaseLoadQError,2),1);
|
||||
figure()
|
||||
barPlot( phaseLoadPError, 10,['相对误差%'],['分布密度'],['有功负荷误差']);
|
||||
figure()
|
||||
barPlot( phaseLoadQError, 10,'相对误差%','分布密度','无功负荷误差');
|
||||
Loading…
Reference in New Issue