potential/SelfAdaptSimulation.m

54 lines
1.9 KiB
Matlab

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;