clc;
clear;
t0 = clock;
%求解参数定义
format long;
Bz=5e-4;
Br=5e-4;
J1=155e6;
J2=155e6;
B0=1.5;
e=5e-6;
%meshgrid of the feasible coil space
%线圈区域1
z1_min=0;
z1_max=1.32/2;
r1_min=0.5;
r1_max=1;
n1_cell_r=100;
n1_cell_z=100;
s1_cell_r=(r1_max-r1_min)/n1_cell_r;
s1_cell_z=(z1_max-z1_min)/n1_cell_z;
area1_cell=s1_cell_r*s1_cell_z;
%
[R1,Z1]=meshgrid(r1_min+s1_cell_r/2:s1_cell_r:r1_max-s1_cell_r/2,z1_min+s1_cell_z/2:s1_cell_z:z1_max-s1_cell_z/2);
%线圈区域2
z2_min=0;
z2_max=1.32/2;
r2_min=0.5;
r2_max=1;
n2_cell_r=100;
n2_cell_z=100;
s2_cell_r=(r2_max-r2_min)/n2_cell_r;
s2_cell_z=(z2_max-z2_min)/n2_cell_z;
area2_cell=s2_cell_r*s2_cell_z;
[R2,Z2]=meshgrid(r2_min+s2_cell_r/2:s2_cell_r:r2_max-s2_cell_r/2,z2_min+s2_cell_z/2:s2_cell_z:z2_max-s2_cell_z/2);
%对称线圈
[R5,Z5]=meshgrid(r1_min+s1_cell_r/2:s1_cell_r:r1_max-s1_cell_r/2,-z1_min-s1_cell_z/2:-s1_cell_z:-z1_max+s1_cell_z/2);
[R6,Z6]=meshgrid(r2_min+s2_cell_r/2:s2_cell_r:r2_max-s2_cell_r/2,-z2_min-s2_cell_z/2:-s2_cell_z:-z2_max+s2_cell_z/2);
%将矩阵转换为向量
R1_v=reshape(R1,1,n1_cell_z*n1_cell_r);
Z1_v=reshape(Z1,1,n1_cell_z*n1_cell_r);
R2_v=reshape(R2,1,n2_cell_z*n2_cell_r);
Z2_v=reshape(Z2,1,n2_cell_z*n2_cell_r);
R5_v=reshape(R5,1,n1_cell_z*n1_cell_r);
Z5_v=reshape(Z5,1,n1_cell_z*n1_cell_r);
R6_v=reshape(R6,1,n2_cell_z*n2_cell_r);
Z6_v=reshape(Z6,1,n2_cell_z*n2_cell_r);
R=[R1_v,R2_v];
Z=[Z1_v,Z2_v];
%target points of DSV
center_DSV_R=0.0; %The center of DSV
center_DSV_Z=0.0;
r_DSV=0.25; %The radii of DSV
%l_DSV=0.045; %Te length of DSV
num1_targets=19;
the = linspace(0,pi/2,num1_targets);
%R1_targets=r_DSV*ones(1,num1_targets);
R1_targets=r_DSV.*sin(the);
%Z1_targets=0:pi/2/(num1_targets-1):pi/2;
%Z1_targets=r_DSV.*cos(Z1_targets);
Z1_targets=r_DSV.*cos(the);
%target points of stray field
R_stray=2.5;
Z_stray=4;
num2_targets=11;
the2 = linspace(0,pi/2,num2_targets);
Z2_targets = Z_stray.*cos(the2);
R2_targets=R_stray.*sin(the2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A1=ones(num1_targets,n1_cell_r*n1_cell_z);
A11=ones(num1_targets,n1_cell_r*n1_cell_z);
A2=ones(num1_targets,n2_cell_r*n2_cell_z);
A22=ones(num1_targets,n2_cell_r*n2_cell_z);
for n=1:1:n1_cell_r*n1_cell_z
for m=1:1:num1_targets
A1(m,n)=A_mn(R1_v(1,n),Z1_v(1,n),R1_targets(1,m),Z1_targets(1,m));
A11(m,n)=A_mn(R5_v(1,n),Z5_v(1,n),R1_targets(1,m),Z1_targets(1,m));
end
end
for n=1:1:n2_cell_r*n2_cell_z
for m=1:1:num1_targets
A2(m,n)=A_mn(R2_v(1,n),Z2_v(1,n),R1_targets(1,m),Z1_targets(1,m));
A22(m,n)=A_mn(R6_v(1,n),Z6_v(1,n),R1_targets(1,m),Z1_targets(1,m));
end
end
A=[A1+A11,-A2-A22];
%%%%%%%%%
Cz1=ones(num2_targets,n1_cell_r*n1_cell_z);
Cz11=ones(num2_targets,n1_cell_r*n1_cell_z);
Cz2=ones(num2_targets,n2_cell_r*n2_cell_z);
Cz22=ones(num2_targets,n2_cell_r*n2_cell_z);
for n=1:1:n1_cell_r*n1_cell_z
for m=1:1:num2_targets
Cz1(m,n)=A_mn(R1_v(1,n),Z1_v(1,n),R2_targets(1,m),Z2_targets(1,m));
Cz11(m,n)=A_mn(R5_v(1,n),Z5_v(1,n),R2_targets(1,m),Z2_targets(1,m));
end
end
for n=1:1:n2_cell_r*n2_cell_z
for m=1:1:num2_targets
Cz2(m,n)=A_mn(R2_v(1,n),Z2_v(1,n),R2_targets(1,m),Z2_targets(1,m));
Cz22(m,n)=A_mn(R6_v(1,n),Z6_v(1,n),R2_targets(1,m),Z2_targets(1,m));
end
end
Cz=[Cz1+Cz11,-Cz2-Cz22];
%%%%%%%%%%%%%%
Cr1=ones(num2_targets,n1_cell_r*n1_cell_z);
Cr11=ones(num2_targets,n1_cell_r*n1_cell_z);
Cr2=ones(num2_targets,n2_cell_r*n2_cell_z);
Cr22=ones(num2_targets,n2_cell_r*n2_cell_z);
for n=1:1:n1_cell_r*n1_cell_z
for m=1:1:num2_targets
Cr1(m,n)=Ar_mn(R1_v(1,n),Z1_v(1,n),R2_targets(1,m),Z2_targets(1,m));
Cr11(m,n)=Ar_mn(R5_v(1,n),Z5_v(1,n),R2_targets(1,m),Z2_targets(1,m));
end
end
for n=1:1:n2_cell_r*n2_cell_z
for m=1:1:num2_targets
Cr2(m,n)=Ar_mn(R2_v(1,n),Z2_v(1,n),R2_targets(1,m),Z2_targets(1,m));
Cr22(m,n)=Ar_mn(R6_v(1,n),Z6_v(1,n),R2_targets(1,m),Z2_targets(1,m));
end
end
Cr=[Cr1+Cr11,-Cr2-Cr22];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xm=zeros(n1_cell_z*n1_cell_r+n2_cell_z*n2_cell_r,1);
%xm(1:1:n1_cell_z*n1_cell_r)=J1*0.999*area1_cell;
%f=[J1*R1_v,J2*R2_v,J3*R3_v,J4*R4_v]'./J1*area1_cell;
f=[R1_v,R2_v]'; %考虑到电流密度不同的话电流对线包体积贡献的不同
Az=[A;-A;Cz;-Cz;Cr;-Cr];
B=[B0*(1+e)*ones(num1_targets,1);-B0*(1-e)*ones(num1_targets,1);Bz*ones(num2_targets,1);Bz*ones(num2_targets,1);Br*ones(num2_targets,1);Br*ones(num2_targets,1)];
Aeq=[];
Beq=[];
xM=[J1.*area1_cell.*ones(n1_cell_z*n1_cell_r,1);J2.*area2_cell.*ones(n2_cell_z*n2_cell_r,1)];
ff=optimset;
ff.MaxIter=500;
ff.TolX=1e-10;ff.TolFun=1e-10;TolCon=1e-10;ff.Display='iter';
[x,f_opt,key,c]=linprog(f,Az,B,Aeq,Beq,xm,xM,[],ff);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
price=f'*x*2*pi/J1
etime(clock,t0);
curr1 = x(1:10000);
curr2 = x(10001:20000);
curr = curr1 - curr2;
curr = reshape(curr,n1_cell_z,n1_cell_r);
%curr = reshape(curr,n1_cell_z,n1_cell_r);
zmin_plt = 0;
zmax_plt = 1.32/2;
rmax_plt = 1;
rmin_plt = 0.5;
zb = linspace(zmin_plt,zmax_plt,n1_cell_z);
rb = linspace(rmin_plt,rmax_plt,n1_cell_r);
figure('color','w');
surfc(rb(1:end),zb(1:end),curr);
colormap jet
matlab电磁优化计算功能_进行线型规划优化电磁设计_matlab
版权申诉
192 浏览量
2022-04-01
14:53:41
上传
评论
收藏 1KB RAR 举报
阿里matlab建模师
- 粉丝: 3391
- 资源: 2788
最新资源
- app-release.apk.zip
- python-leetcode面试题解之第421题数组中两个数的最大异或值.zip
- python-leetcode面试题解之第416题分割等和子集.zip
- python-leetcode面试题解之第414题第三大的数.zip
- python-leetcode面试题解之第412题Fizz-Buzz.zip
- python-leetcode面试题解之第409题最长回文串.zip
- python-leetcode面试题解之第408题有效单词缩写.zip
- python-leetcode面试题解之第405题数字转换为十六进制数.zip
- python-leetcode面试题解之第404题左叶子之和.zip
- python-leetcode面试题解之第401题二进制手表.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈