基于Matlab的变压器铁芯截面优化设计
前言
变压器是电力系统中非常重要的设备,在变压器设计过程中,给定的铁心直径条件下,铁心截面积越大、填充率越高,变压器经济指标越好,因此铁心截面优化在变压器优化设计中是一个比较重要的环节。
为了充分利用圆形绕组内空间,铁心柱截面常采用多级阶梯形结构,如下图所示,截面在圆内是轴向对称的。阶梯形结构的每级都是由许多同种宽度的硅钢片叠起来的,当铁心柱外接圆直径一定时,使铁心柱有效面积最大是本设计的关键。铁心截面最大面积计算是一个典型的非线性整数规划问题,而本文从极值原理出发,推导出各级片宽和叠厚的关系,通过迭代计算求得较优的铁心截面设计方案。
优化思路
考虑到对称性,仅考虑四分之一截面。每级硅钢片对应角度为:
θ
1
、
θ
2
…
…
θ
n
θ_1 、θ_2……θ_n
θ1、θ2……θn
叠片宽度:
B
n
=
r
c
o
s
(
θ
n
)
B_n=rcos(θ_n)
Bn=rcos(θn)
叠片厚度:
A
n
=
r
[
s
i
n
(
θ
n
)
−
s
i
n
(
θ
n
−
1
)
]
(
n
≥
2
)
;
A
1
=
r
s
i
n
(
θ
1
)
A_n=r[sin(θ_n )-sin(θ_{n-1})](n\geq2) ; A_1=rsin(θ_1 )
An=r[sin(θn)−sin(θn−1)](n≥2);A1=rsin(θ1)
有效面积:
S
=
∑
A
n
B
n
=
r
2
[
s
i
n
(
θ
1
)
c
o
s
(
θ
1
)
+
(
s
i
n
(
θ
2
)
−
s
i
n
(
θ
1
)
)
c
o
s
(
θ
2
)
+
⋯
⋯
+
(
s
i
n
(
θ
n
)
−
s
i
n
(
θ
n
−
1
)
)
c
o
s
(
θ
n
)
]
S=∑A_n B_n=r^2 [sin(θ_1 )cos(θ_1 )+(sin(θ_2 )-sin(θ_1 ))cos(θ_2 )+⋯⋯+(sin(θ_n )-sin(θ_{n-1} ))cos(θ_n )]
S=∑AnBn=r2[sin(θ1)cos(θ1)+(sin(θ2)−sin(θ1))cos(θ2)+⋯⋯+(sin(θn)−sin(θn−1))cos(θn)]
利用极值原理求S最大值,分别对
θ
1
、
θ
2
…
…
θ
n
θ_1 、θ_2……θ_n
θ1、θ2……θn求导,令导数为零得:
∂
S
∂
θ
1
=
r
2
(
c
o
s
(
2
θ
1
)
−
c
o
s
(
θ
1
)
c
o
s
(
θ
1
)
)
=
0
\frac{∂S}{∂θ_1}=r^2 (cos(2θ_1 )-cos(θ_1) cos(θ_1) )=0
∂θ1∂S=r2(cos(2θ1)−cos(θ1)cos(θ1))=0
∂
S
∂
θ
2
=
r
2
(
c
o
s
(
2
θ
2
)
+
s
i
n
(
θ
1
)
s
i
n
(
θ
2
)
−
c
o
s
(
θ
2
)
c
o
s
(
θ
3
)
)
=
0
\frac{∂S}{∂θ_2}=r^2 (cos(2θ_2)+sin(θ_1)sin( θ_2)-cos(θ_2) cos(θ_3) )=0
∂θ2∂S=r2(cos(2θ2)+sin(θ1)sin(θ2)−cos(θ2)cos(θ3))=0
∂
S
∂
θ
n
−
1
=
r
2
(
c
o
s
(
2
θ
n
−
1
)
+
s
i
n
(
θ
n
−
2
)
s
i
n
(
θ
n
−
1
)
−
c
o
s
(
θ
n
−
1
)
c
o
s
(
θ
n
)
)
=
0
\frac{∂S}{∂θ_{n-1} }=r^2 (cos(2θ_{n-1} )+sin(θ_{n-2})sin(θ_{n-1})-cos(θ_{n-1}) cos(θ_n) )=0
∂θn−1∂S=r2(cos(2θn−1)+sin(θn−2)sin(θn−1)−cos(θn−1)cos(θn))=0
化简得:
c
o
s
(
θ
2
)
=
c
o
s
(
2
θ
1
)
c
o
s
(
θ
1
)
cos(θ_2)=\frac{cos(2θ_1 )}{cos(θ_1)}
cos(θ2)=cos(θ1)cos(2θ1)
c
o
s
(
θ
3
)
=
c
o
s
(
2
θ
2
)
c
o
s
(
θ
2
)
+
s
i
n
(
θ
1
)
t
a
n
(
θ
2
)
cos(θ_3)=\frac{cos(2θ_2)}{cos(θ_2)} +sin(θ_1)tan(θ_2)
cos(θ3)=cos(θ2)cos(2θ2)+sin(θ1)tan(θ2)
c
o
s
(
θ
n
)
=
c
o
s
(
2
θ
n
−
1
)
c
o
s
(
θ
n
−
1
)
+
s
i
n
(
θ
n
−
2
)
t
a
n
(
θ
n
−
1
)
cos(θ_n)=\frac{cos(2θ_{n-1})}{cos(θ_{n-1})} +sin(θ_{n-2})tan(θ_{n-1})
cos(θn)=cos(θn−1)cos(2θn−1)+sin(θn−2)tan(θn−1)
从而可得:
A
1
=
r
2
−
B
1
2
A_1=\sqrt{r^2-B_1^2 }
A1=r2−B12
B
2
=
2
B
1
2
−
r
2
B
1
,
A
2
=
r
2
−
B
2
2
B_2=\frac{2B_1^2-r^2}{B_1} ,A_2=\sqrt{r^2-B_2^2 }
B2=B12B12−r2,A2=r2−B22
B
3
=
2
B
2
2
−
r
2
+
A
1
A
2
B
2
,
A
3
=
r
2
−
B
3
2
B_3=\frac{2B_2^2-r^2+A_1 A_2}{B_2} ,A_3=\sqrt{r^2-B_3^2 }
B3=B22B22−r2+A1A2,A3=r2−B32
B
n
=
2
B
n
−
1
2
−
r
2
+
A
n
−
2
A
n
−
1
B
n
−
1
,
A
n
=
r
2
−
B
n
2
B_n=\frac{2B_{n-1}^2-r^2+A_{n-2} A_{n-1}}{B_{n-1}} ,A_n=\sqrt{r^2-B_n^2 }
Bn=Bn−12Bn−12−r2+An−2An−1,An=r2−Bn2
一般硅钢片级数大于2,则有:
B
2
=
2
B
1
2
−
r
2
B
1
>
0
B_2=\frac{2B_1^2-r^2}{B_1} >0
B2=B12B12−r2>0
即:
2
2
r
<
B
1
<
r
\frac{\sqrt{2}}{2} r<B_1<r
22r<B1<r
由此确定
B
1
B_1
B1的范围为:
2
2
r
<
B
1
<
r
\frac{\sqrt{2}}{2} r<B_1<r
22r<B1<r
当
B
1
B_1
B1确定后,
B
2
B_2
B2,
B
3
B_3
B3,……
B
n
B_n
Bn的值都可以确定,所以可以在
2
2
r
<
B
1
<
r
\frac{\sqrt{2}}{2} r<B_1<r
22r<B1<r范围内采用迭代的方法,每次迭代
B
1
B_1
B1的值加1(mm),求出最大面积和对应的片宽和叠厚,流程图如下。
Matlab程序运行结果:
以铁芯柱直径125mm,分级数6为例,程序运行结果如下:
结果分析
运行代码,计算铁芯柱直径为D=120mm、D=125mm和D=130mm,分级数为6时的最大填充率和对应的片宽和叠厚,并与《电磁装置设计原理》的表A-8的标准值对比:
分析:从计算值与实际值来看,计算值的铁心填充率更大一些,但片宽与叠厚不是整数。在加工中,整数的片宽叠厚更容易加工。并且D=125mm和D=130mm等都采用了片宽120,110,100,70,50等规格的硅钢片,所以采用这些数值在加工中可以先加工片宽,再根据不同直径加工叠厚,膜具大大节省了,加工速度显著提高,有利于标准化。对比二者铁心填充率,理论值只是略大于实际值,但若按此尺寸加工,效率大幅下降,成本提高,且对应每一个直径都要采用一套模具,加工繁琐不利于标准化。从实际工程考虑,牺牲小幅填充率提高加工的效率,便于统一标准是很好的选择。
代码
matlab代码如下:
1.输入铁芯柱直径D和分级数n
fprintf('请输入铁芯柱直径D:');
D=cell2mat(inputdlg('请输入铁芯柱直径D'));
D=str2double(D)
fprintf('请输入分级数n:');
n=cell2mat(inputdlg('请输入分级数n'));
n=str2double(n)
2.计算最优片宽和叠厚
B=zeros(1,n); %片宽
Bmax=B; %叠厚
A=zeros(1,n);
Amax=A;
%迭代求解
B0=sqrt(2)/4*D;
r=D/2
S=0;
Smax=0;
error=0;
for i=0:(r-B0)
S=0;
error=0;
for l=1:n
A(1,l)=0;
B(1,l)=0;
end
B(1,1)=B0+i;
A(1,1)=sqrt(r^2-B(1,1)^2);
S=S+A(1,1)*B(1,1);
B(1,2)=(2*(B(1,1)^2)-r^2)/B(1,1);
if B(1,2)>r||B(1,2)<0
error=1;
end
A(1,2)=sqrt(r^2-B(1,2)^2);
S=S+(A(1,2)-A(1,1))*B(1,2);
if n>2
for j=3:n
B(1,j)=(2*(B(1,j-1)^2)-r^2+A(1,j-2)*A(1,j-1))/B(1,j-1);
if B(1,j)>r||B(1,j)<0
error=1;
end
A(1,j)=sqrt(r^2-B(1,j)^2);
S=S+(A(1,j)-A(1,j-1))*B(1,j);
end
end
if S>Smax&&error==0
Smax=S;
for k=1:n
Amax(1,k)=A(1,k);
Bmax(1,k)=B(1,k);
end
end
end
Amax=Amax*2;
Bmax=Bmax*2;
Smax=Smax*4;
3.输出
fprintf('结果:\n');
fprintf('铁芯柱直径为:%dmm\n分级数为:%d',D,n);
fprintf('硅钢片有效面积为:%d mm^2\n铁心截面圆面积为:%d mm^2',Smax,(pi*D^2/4)*100);
fprintf('铁芯填充率为:%d%%',Smax/(pi*D^2/4)*100);
fprintf(' 片宽 叠厚');
for i=1:n
if i>1
fprintf('第%d级:%d %d\n',i,Bmax(1,i),(Amax(1,i)-Amax(1,i-1))/2);
else
fprintf('第%d级:%d %d\n',i,Bmax(1,1),Amax(1,1));
end
end
4.画铁芯柱示意图
fprintf('铁芯柱示意图如下:\n');
rectangle('Position',[-r,-r,D,D],'Curvature',[1,1]),axis equal;
hold on;
for i=1:n
if i>=2
rectangle('Position',[-Bmax(1,i)/2,-Amax(1,i)/2,Bmax(1,i),(Amax(1,i)-Amax(1,i-1))/2]),axis equal;
rectangle('Position',[-Bmax(1,i)/2,Amax(1,i-1)/2,Bmax(1,i),(Amax(1,i)-Amax(1,i-1))/2]),axis equal;
else
rectangle('Position',[-Bmax(1,1)/2,-Amax(1,1)/2,Bmax(1,1),Amax(1,1)]),axis equal;
end
end
axis off %隐藏坐标轴