parent
da85b45e7e
commit
0bfd04b415
|
|
@ -5,15 +5,16 @@ clear
|
|||
% [2]. 陈习文, 特高压直流输电线路电磁环境的研究, 2012, 北京交通大学.
|
||||
%%
|
||||
%设置几个参数
|
||||
semi_lineDistance=457;%分裂间距
|
||||
semi_lineDistance=257;%分裂间距
|
||||
semi_lineCount=4;%分裂数
|
||||
ConductorX=[-14500,14500];%导线距地高度
|
||||
ConductorY=[16500,16500];%导线间距
|
||||
CSM_N=10;%每一个子导线的模拟电荷数
|
||||
subconductorR=30;%子导线半径
|
||||
%%
|
||||
%设置电压
|
||||
Volt=[500;500;500;500;-500;-500;-500;-500];
|
||||
Volt=[500*ones(CSM_N,1);-500*ones(CSM_N,1)];
|
||||
Volt=[500*ones(CSM_N*semi_lineCount,1);-500*ones(CSM_N*semi_lineCount,1)];
|
||||
%按分裂数和分裂导线间距布置单相线路导线
|
||||
%用极坐标
|
||||
arc=2*pi/semi_lineCount;
|
||||
|
|
@ -21,21 +22,28 @@ CSM_arc=2*pi/CSM_N;
|
|||
%子导线中心到导线中心的距离
|
||||
R=semi_lineDistance/2/sin(arc/2);
|
||||
%计算模拟电荷的位置
|
||||
r1=200;
|
||||
r1=2;
|
||||
error=10000;
|
||||
step=1/20;
|
||||
maxLoop=round((R-r1)/step);
|
||||
maxLoop=round((subconductorR-r1)/step);
|
||||
for Loop=1:maxLoop;
|
||||
simulationChargePos=ones(CSM_N,1);
|
||||
for I=1:CSM_N
|
||||
simulationChargePos(I)=exp(1j*((I-1)*CSM_arc+CSM_arc/2))*(R+r1);%逆时针转一个角度
|
||||
simulationChargeAPos=[];
|
||||
simulationChargeBPos=[];
|
||||
for sC=1:semi_lineCount
|
||||
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;%逆时针转一个角度
|
||||
end
|
||||
simulationChargeAPos=[simulationChargeAPos;simulationChargePos+ConductorX(1)+1j*ConductorY(1)+exp(1j*((sC-1)*arc+arc/2))*R];%移动到子导线中心
|
||||
simulationChargeBPos=[simulationChargeBPos;simulationChargePos+ConductorX(2)+1j*ConductorY(2)+exp(1j*((sC-1)*arc+arc/2))*R];%移动到子导线中心
|
||||
end
|
||||
simulationChargeAPos=simulationChargePos+ConductorX(1)+1j*ConductorY(1);
|
||||
simulationChargeBPos=simulationChargePos+ConductorX(2)+1j*ConductorY(2);
|
||||
% simulationChargeAPos=simulationChargePos+ConductorX(1)+1j*ConductorY(1);
|
||||
% simulationChargeBPos=simulationChargePos+ConductorX(2)+1j*ConductorY(2);
|
||||
simulationChargePos=[simulationChargeAPos;simulationChargeBPos];
|
||||
%计算电位系数
|
||||
H=diag(imag(simulationChargePos));
|
||||
r=100*eye(length(imag(simulationChargePos)));%导线自几何均距
|
||||
r=subconductorR*eye(length(imag(simulationChargePos)));%导线自几何均距
|
||||
%导线与导线的距离
|
||||
matSimulationChargePos=repmat(simulationChargePos,1,length(simulationChargePos));
|
||||
conductor2conductorDistance=matSimulationChargePos-conj(matSimulationChargePos');
|
||||
|
|
@ -52,16 +60,19 @@ for Loop=1:maxLoop;
|
|||
%求电荷
|
||||
QRI=P\Volt;
|
||||
%以下是验证部分
|
||||
if error<0.0001
|
||||
if error<0.01
|
||||
break;
|
||||
end
|
||||
%选检验导线上一个角度
|
||||
vrfRelA=linspace(0,2*pi)';%vrf=verify
|
||||
%计算检验点相对于子导线的位置
|
||||
vrfRelPos=exp(1j*vrfRelA)*R;
|
||||
vrfRelPos=exp(1j*vrfRelA)*subconductorR;
|
||||
%移动坐标,使验证的子导线中心和实际子导线中心重合。
|
||||
vrfPos=exp(1j*(0+arc/2))*R+ConductorX(1)+1j*ConductorY(1)+vrfRelPos;
|
||||
vrfPos=ConductorX(1)+1j*ConductorY(1)+vrfRelPos;
|
||||
vrfPos=[];
|
||||
for sC=1:semi_lineCount
|
||||
vrfPos=[vrfPos;exp(1j*((sC-1)*arc+arc/2))*R+ConductorX(1)+1j*ConductorY(1)+vrfRelPos];
|
||||
end
|
||||
% vrfPos=ConductorX(1)+1j*ConductorY(1)+vrfRelPos;
|
||||
%计算这一点的电位系数
|
||||
matVrfPos=repmat(vrfPos,1,length(simulationChargePos));
|
||||
vrf2ConductorDistance=abs(matVrfPos-repmat(conj(simulationChargePos'),length(vrfPos),1));
|
||||
|
|
@ -69,9 +80,16 @@ for Loop=1:maxLoop;
|
|||
Pij=1/2/pi/eslong*log(vrf2MirrorDistance./vrf2ConductorDistance);
|
||||
%计算电压
|
||||
V=Pij*QRI;
|
||||
error=sum(abs(V-500)./500)/length(V);
|
||||
r1=r1+Loop*step;
|
||||
error=sum(abs(V-500)./500)/length(V)
|
||||
r1=r1+step;
|
||||
end
|
||||
display('Finished.');
|
||||
display(Loop);
|
||||
scatter(real([simulationChargeAPos;vrfPos;ConductorX(1)]),imag([simulationChargeAPos;vrfPos;+1j*ConductorY(1)]));
|
||||
scatter(real(simulationChargeAPos),imag(simulationChargeAPos),[],'r');
|
||||
hold on;
|
||||
scatter(real(vrfPos),imag(vrfPos),[],'k');
|
||||
% scatter(real([simulationChargeAPos(1:10);]),imag([simulationChargeAPos(1:10);]),10,'red');
|
||||
% hold;
|
||||
% scatter(real([simulationChargeAPos(11:20);]),imag([simulationChargeAPos(11:20);]),10,'blue');
|
||||
% scatter(real([simulationChargeAPos(21:30);]),imag([simulationChargeAPos(21:30);]),10,'green');
|
||||
% scatter(real([simulationChargeAPos(31:40);]),imag([simulationChargeAPos(31:40);]),10,'yellow');
|
||||
Loading…
Reference in New Issue