From df66a759aa113417616fe72cec6fb1f72a9df8d5 Mon Sep 17 00:00:00 2001 From: "dmy@lab" Date: Fri, 18 Sep 2015 16:49:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99=E8=87=AA=E9=80=82=E5=BA=94=E6=A8=A1?= =?UTF-8?q?=E6=8B=9F=E7=94=B5=E8=8D=B7=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dmy@lab --- SelfAdaptSimulation.m | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 SelfAdaptSimulation.m diff --git a/SelfAdaptSimulation.m b/SelfAdaptSimulation.m new file mode 100644 index 0000000..3489d36 --- /dev/null +++ b/SelfAdaptSimulation.m @@ -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; \ No newline at end of file