可以达到0.01%的精度

Signed-off-by: dmy@lab <dmy@lab.com>
This commit is contained in:
dmy@lab 2015-09-23 20:11:25 +08:00
parent 0bfd04b415
commit eea457bae4
1 changed files with 9 additions and 6 deletions

View File

@ -9,7 +9,7 @@ semi_lineDistance=257;%
semi_lineCount=4;% semi_lineCount=4;%
ConductorX=[-14500,14500];%线 ConductorX=[-14500,14500];%线
ConductorY=[16500,16500];%线 ConductorY=[16500,16500];%线
CSM_N=10;%线 CSM_N=80;%线
subconductorR=30;%线 subconductorR=30;%线
%% %%
% %
@ -22,9 +22,9 @@ CSM_arc=2*pi/CSM_N;
%线线 %线线
R=semi_lineDistance/2/sin(arc/2); R=semi_lineDistance/2/sin(arc/2);
% %
r1=2; r1=20;
error=10000; error=10000;
step=1/20; 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);
@ -60,11 +60,11 @@ for Loop=1:maxLoop;
% %
QRI=P\Volt; QRI=P\Volt;
% %
if error<0.01 if error<0.0001
break; break;
end end
%线 %线
vrfRelA=linspace(0,2*pi)';%vrf=verify vrfRelA=linspace(0,2*pi,200)';%vrf=verify
%线 %线
vrfRelPos=exp(1j*vrfRelA)*subconductorR; vrfRelPos=exp(1j*vrfRelA)*subconductorR;
%使线线 %使线线
@ -80,10 +80,13 @@ for Loop=1:maxLoop;
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) error=sum(abs(V-500)./500)/length(V);
r1=r1+step; r1=r1+step;
end end
display('Finished.'); display('Finished.');
if Loop<maxLoop
display('Converged.');
end
display(Loop); display(Loop);
scatter(real(simulationChargeAPos),imag(simulationChargeAPos),[],'r'); scatter(real(simulationChargeAPos),imag(simulationChargeAPos),[],'r');
hold on; hold on;