parent
eea457bae4
commit
152ee0a213
|
|
@ -11,10 +11,14 @@ ConductorX=[-14500,14500];%
|
||||||
ConductorY=[16500,16500];%导线间距
|
ConductorY=[16500,16500];%导线间距
|
||||||
CSM_N=80;%每一个子导线的模拟电荷数
|
CSM_N=80;%每一个子导线的模拟电荷数
|
||||||
subconductorR=30;%子导线半径
|
subconductorR=30;%子导线半径
|
||||||
|
phaseN=2;%相数,单回三相
|
||||||
%%
|
%%
|
||||||
%设置电压
|
%设置电压
|
||||||
Volt=[500;500;500;500;-500;-500;-500;-500];
|
Volt_=[500;-500;];
|
||||||
Volt=[500*ones(CSM_N*semi_lineCount,1);-500*ones(CSM_N*semi_lineCount,1)];
|
Volt=[];
|
||||||
|
for vLoop=1:length(Volt_)
|
||||||
|
Volt=[Volt;Volt_(vLoop)*ones(CSM_N*semi_lineCount,1);];
|
||||||
|
end
|
||||||
%按分裂数和分裂导线间距布置单相线路导线
|
%按分裂数和分裂导线间距布置单相线路导线
|
||||||
%用极坐标
|
%用极坐标
|
||||||
arc=2*pi/semi_lineCount;
|
arc=2*pi/semi_lineCount;
|
||||||
|
|
@ -28,24 +32,23 @@ step=1/10;
|
||||||
maxLoop=round((subconductorR-r1)/step);
|
maxLoop=round((subconductorR-r1)/step);
|
||||||
for Loop=1:maxLoop;
|
for Loop=1:maxLoop;
|
||||||
simulationChargePos=ones(CSM_N,1);
|
simulationChargePos=ones(CSM_N,1);
|
||||||
simulationChargeAPos=[];
|
simulationChargeABCPos=[];
|
||||||
simulationChargeBPos=[];
|
|
||||||
for sC=1:semi_lineCount
|
|
||||||
for I=1:CSM_N
|
for I=1:CSM_N
|
||||||
% simulationChargePos(I)=exp(1j*((I-1)*CSM_arc+CSM_arc/2))*(R+r1);%逆时针转一个角度
|
|
||||||
simulationChargePos(I)=exp(1j*((I-1)*CSM_arc+CSM_arc/2))*r1;%逆时针转一个角度
|
simulationChargePos(I)=exp(1j*((I-1)*CSM_arc+CSM_arc/2))*r1;%逆时针转一个角度
|
||||||
end
|
end
|
||||||
simulationChargeAPos=[simulationChargeAPos;simulationChargePos+ConductorX(1)+1j*ConductorY(1)+exp(1j*((sC-1)*arc+arc/2))*R];%移动到子导线中心
|
for phaseLoop=1:phaseN
|
||||||
simulationChargeBPos=[simulationChargeBPos;simulationChargePos+ConductorX(2)+1j*ConductorY(2)+exp(1j*((sC-1)*arc+arc/2))*R];%移动到子导线中心
|
for sC=1:semi_lineCount
|
||||||
|
simulationChargeABCPos=[simulationChargeABCPos;simulationChargePos+ConductorX(phaseLoop)+1j*ConductorY(phaseLoop)+exp(1j*((sC-1)*arc+arc/2))*R];%移动到子导线中心
|
||||||
|
end
|
||||||
end
|
end
|
||||||
% simulationChargeAPos=simulationChargePos+ConductorX(1)+1j*ConductorY(1);
|
% simulationChargeAPos=simulationChargePos+ConductorX(1)+1j*ConductorY(1);
|
||||||
% simulationChargeBPos=simulationChargePos+ConductorX(2)+1j*ConductorY(2);
|
% simulationChargeBPos=simulationChargePos+ConductorX(2)+1j*ConductorY(2);
|
||||||
simulationChargePos=[simulationChargeAPos;simulationChargeBPos];
|
% simulationChargePos=simulationChargeABCPos;
|
||||||
%计算电位系数
|
%计算电位系数
|
||||||
H=diag(imag(simulationChargePos));
|
H=diag(imag(simulationChargeABCPos));
|
||||||
r=subconductorR*eye(length(imag(simulationChargePos)));%导线自几何均距
|
r=subconductorR*eye(length(imag(simulationChargeABCPos)));%导线自几何均距
|
||||||
%导线与导线的距离
|
%导线与导线的距离
|
||||||
matSimulationChargePos=repmat(simulationChargePos,1,length(simulationChargePos));
|
matSimulationChargePos=repmat(simulationChargeABCPos,1,length(simulationChargeABCPos));
|
||||||
conductor2conductorDistance=matSimulationChargePos-conj(matSimulationChargePos');
|
conductor2conductorDistance=matSimulationChargePos-conj(matSimulationChargePos');
|
||||||
conductor2conductorDistance=abs(conductor2conductorDistance-diag(diag(conductor2conductorDistance)));
|
conductor2conductorDistance=abs(conductor2conductorDistance-diag(diag(conductor2conductorDistance)));
|
||||||
matMirrorChargePos=conj(matSimulationChargePos);%虚部取负号
|
matMirrorChargePos=conj(matSimulationChargePos);%虚部取负号
|
||||||
|
|
@ -69,18 +72,23 @@ for Loop=1:maxLoop;
|
||||||
vrfRelPos=exp(1j*vrfRelA)*subconductorR;
|
vrfRelPos=exp(1j*vrfRelA)*subconductorR;
|
||||||
%移动坐标,使验证的子导线中心和实际子导线中心重合。
|
%移动坐标,使验证的子导线中心和实际子导线中心重合。
|
||||||
vrfPos=[];
|
vrfPos=[];
|
||||||
|
for phaseLoop=1:phaseN
|
||||||
for sC=1:semi_lineCount
|
for sC=1:semi_lineCount
|
||||||
vrfPos=[vrfPos;exp(1j*((sC-1)*arc+arc/2))*R+ConductorX(1)+1j*ConductorY(1)+vrfRelPos];
|
vrfPos=[vrfPos;exp(1j*((sC-1)*arc+arc/2))*R+ConductorX(phaseLoop)+1j*ConductorY(phaseLoop)+vrfRelPos];
|
||||||
|
end
|
||||||
end
|
end
|
||||||
% vrfPos=ConductorX(1)+1j*ConductorY(1)+vrfRelPos;
|
|
||||||
%计算这一点的电位系数
|
%计算这一点的电位系数
|
||||||
matVrfPos=repmat(vrfPos,1,length(simulationChargePos));
|
matVrfPos=repmat(vrfPos,1,length(simulationChargeABCPos));
|
||||||
vrf2ConductorDistance=abs(matVrfPos-repmat(conj(simulationChargePos'),length(vrfPos),1));
|
vrf2ConductorDistance=abs(matVrfPos-repmat(conj(simulationChargeABCPos'),length(vrfPos),1));
|
||||||
vrf2MirrorDistance=abs(matVrfPos-repmat(conj(conj(simulationChargePos')),length(vrfPos),1));
|
vrf2MirrorDistance=abs(matVrfPos-repmat(conj(conj(simulationChargeABCPos')),length(vrfPos),1));
|
||||||
Pij=1/2/pi/eslong*log(vrf2MirrorDistance./vrf2ConductorDistance);
|
Pij=1/2/pi/eslong*log(vrf2MirrorDistance./vrf2ConductorDistance);
|
||||||
%计算电压
|
%计算电压
|
||||||
V=Pij*QRI;
|
V=Pij*QRI;
|
||||||
error=sum(abs(V-500)./500)/length(V);
|
Vvalidation=[];
|
||||||
|
for phaseLoop=1:phaseN
|
||||||
|
Vvalidation=[Vvalidation;Volt_(phaseLoop)*ones(semi_lineCount*200,1);];
|
||||||
|
end
|
||||||
|
error=sum(abs((V-Vvalidation)./Vvalidation))/length(Vvalidation);
|
||||||
r1=r1+step;
|
r1=r1+step;
|
||||||
end
|
end
|
||||||
display('Finished.');
|
display('Finished.');
|
||||||
|
|
@ -88,7 +96,8 @@ if Loop<maxLoop
|
||||||
display('Converged.');
|
display('Converged.');
|
||||||
end
|
end
|
||||||
display(Loop);
|
display(Loop);
|
||||||
scatter(real(simulationChargeAPos),imag(simulationChargeAPos),[],'r');
|
scatter(real(simulationChargeABCPos(1:length(simulationChargeABCPos)/1)),imag(simulationChargeABCPos(1:length(simulationChargeABCPos)/1)),[],'r');
|
||||||
|
axis equal
|
||||||
hold on;
|
hold on;
|
||||||
scatter(real(vrfPos),imag(vrfPos),[],'k');
|
scatter(real(vrfPos),imag(vrfPos),[],'k');
|
||||||
% scatter(real([simulationChargeAPos(1:10);]),imag([simulationChargeAPos(1:10);]),10,'red');
|
% scatter(real([simulationChargeAPos(1:10);]),imag([simulationChargeAPos(1:10);]),10,'red');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue