clear;
clc;
u0=4*pi*10^(-7);%真空磁导率/(H/m)
n1=60;%线圈匝数
n2=60;%线圈匝数
r1=30;%线圈半径/(cm)
r2=30;%线圈半径/(cm)
c=0;
R1=20;%电路内电阻
R2=20;%电路内电阻
RL=50;%负载电阻
w=2*pi;
Us=1;%电源电压
t=linspace(0,40,80);
h=linspace(0,40,80);
[T,H]=meshgrid(t,h);
fun=@(a,b,T,H)(cos(a).*cos(b)+sin(a).*sin(b).*cos(c))./((r1*cos(a)-r2*cos(b)).^2+(r1*sin(a).*cos(c)+T-r2*sin(b)).^2+(-r1*sin(a).*sin(c)+H).^2).^0.5;
M=(u0*r1*r2*n1*n2/4*pi)*arrayfun(@(T,H)integral2(@(a,b)fun(a,b,T,H),0,2*pi,0,2*pi),T,H);
P=((w*M*Us).^2)*RL./((R1*(R2+RL)+(w*M).^2)).^2;
n=(w*M).^2*RL*100./(R1*(R2+RL).^2+(R2+RL)*(w*M).^2);
surf(T,H,n);
hold on;
title('传输效率n随轴向距离t、径向距离h变化关系');
x1=xlabel('轴向距离t/(cm)');%x轴标题
x2=ylabel('径向距离h/(cm)');%y轴标题
x3=zlabel('传输效率η/(%)');%z轴标题
format short;
% 定义初始节点(t0,h0)
t0=5;h0=5;
% 定义近邻节点范围
dt=5;dh=5;
% 定义近邻节点划分份数
nT=5;nH=5;
% 定义计算精度
ep=1e-4;
gg=1;
grid on;
title(['爬山算法 ——','第',num2str(gg),'次搜素']);
hold on;
val1=0;
FUN=@(a,b,t0,h0)(cos(a).*cos(b)+sin(a).*sin(b).*cos(c))./((r1*cos(a)-r2*cos(b)).^2+(r1*sin(a).*cos(c)+t0-r2*sin(b)).^2+(-r1*sin(a).*sin(c)+h0).^2).^0.5;
M1=(u0*r1*r2*n1*n2/4*pi)*arrayfun(@(t0,h0)integral2(@(a,b)FUN(a,b,t0,h0),0,2*pi,0,2*pi),t0,h0)
n10=(w*M1).^2*RL*100./(R1*(R2+RL).^2+(R2+RL)*(w*M1).^2)
plot3(t0,h0,n10,'r.');
gg=1;%gg为搜索次数
dlt=1;%dlt为函数差值
hold on;
while(dlt>ep) %ep为计算精度
nt=linspace(t0-dt,t0+dt,nT*gg);
nh=linspace(h0-dh,h0+dh,nH*gg);
[ntt,nhh]=meshgrid(nt,nh);
Fun=@(a,b,nt,nh)(cos(a).*cos(b)+sin(a).*sin(b).*cos(c))./((r1*cos(a)-r2*cos(b)).^2+(r1*sin(a).*cos(c)+nt-r2*sin(b)).^2+(-r1*sin(a).*sin(c)+nh).^2).^0.5;
M2=(u0*r1*r2*n1*n2/4*pi).*arrayfun(@(nt,nh)integral2(@(a,b)Fun(a,b,nt,nh),0,2*pi,0,2*pi),ntt,nhh)
n22=(w*M2).^2*RL*100./(R1*(R2+RL).^2+(R2+RL)*(w*M2).^2)
% 求解近邻节点最大值及其位置
[val2,loc]=max(n22(:));
dlt=abs(n10-val2);
t0=ntt(loc);
h0=nhh(loc);
val1=val2;
plot3(t0,h0,val2,'r.');
title(['爬山算法 ——','第',num2str(gg),'次搜素']);
pause(0.1); % 暂停0.1
gg=gg+1;
end
% 绘制最终极大值点
plot3(t0,h0,val2,'ro');
hold off