写自适应模拟电荷法

Signed-off-by: dmy@lab <dmy@lab.com>
This commit is contained in:
dmy@lab 2015-09-18 16:49:55 +08:00
parent 2ad26b0a31
commit df66a759aa
1 changed files with 54 additions and 0 deletions

54
SelfAdaptSimulation.m Normal file
View File

@ -0,0 +1,54 @@
clc
clear
%%
% [1]. , .A..A., 线. , 2006(04): 92-96.
% [2]. , 线, 2012, .
%%
%
semi_lineDistance=20;%
semi_lineCount=4;%
ConductorX=[-9,9];%线
ConductorY=[14.5,14.5];%线
%%
%
Volt=[500;500;500;500;-500;-500;-500;-500];
%线线线
%
arc=2*pi/semi_lineCount;
%线线
R=semi_lineDistance/2/sin(arc/2);
%线
semi_linePos=ones(semi_lineCount,1);
for I=1:semi_lineCount
semi_linePos(I)=exp(1j*((I-1)*arc+arc/2))*R;%
end
semi_lineAPos=semi_linePos+20+1j*10;
semi_lineBPos=semi_linePos-20+1j*10;
semi_linePos=[semi_lineAPos;semi_lineBPos];
%
r1=2;
simulationChargePos=ones(semi_lineCount,1);
for I=1:semi_lineCount
simulationChargePos(I)=exp(1j*((I-1)*arc+arc/2))*(R+r1);%
end
simulationChargeAPos=simulationChargePos+ConductorX(1)+1j*ConductorY(1);
simulationChargeBPos=simulationChargePos+ConductorX(2)+1j*ConductorY(2);
simulationChargePos=[simulationChargeAPos;simulationChargeBPos];
%
H=diag(imag(simulationChargePos));
r=0.03/2*eye(length(imag(simulationChargePos)));%线
%线线
matSimulationChargePos=repmat(simulationChargePos,1,length(simulationChargePos));
conductor2conductorDistance=matSimulationChargePos-conj(matSimulationChargePos');
conductor2conductorDistance=abs(conductor2conductorDistance-diag(diag(conductor2conductorDistance)));
matMirrorChargePos=conj(matSimulationChargePos);%
conductor2MirrorDistance=matSimulationChargePos-conj(matMirrorChargePos');
conductor2MirrorDistance=abs(conductor2MirrorDistance-diag(diag(conductor2MirrorDistance)));
eslong=1;
P1=1/pi/eslong*log(2*H./r);
P1(isnan(P1))=0;
P2=1/pi/eslong*log(conductor2MirrorDistance./conductor2conductorDistance);
P2(isnan(P2))=0;
P=P1+P2;
%
QRI=P\Volt;