ayuda con el codigo
Publicado por edu (4 intervenciones) el 21/08/2009 14:02:46
hola me han pasado un codigo para pintar el diagrama de radiacion de una antena pero no logro enterder bien como lo consigue, asi que soy incapaz de realizar algo parecido si alguien le puede exar un ojo y aclararme un poco el codigo se lo agradezco aqui os lo dejo a ver q tal.
function diagrama_antena_lineal(Lmax)
Lmin=Lmax
n = 2^7;
N=1;
if Lmin>=1.5
lz=2.6+0.77*(Lmax-1.5);
elseif (Lmin>=1.26)&(Lmax<=1.5)
lz=3.5
elseif (Lmax<1.5)
lz=1.7+2.37*(Lmax-0.5);
else
lz=3.3+0.667*Lmax;
end
if Lmin>=1.54
lx=2.65+0.054*Lmax;
else
lx=3.5;
end
theta = pi*(-n:2:n)'/n;
phi = (pi/2)*(-n:2:n)/n;
f2=zeros(size(theta));
f21theta=zeros(size(theta));
f22theta=zeros(size(theta));
J=zeros(1,N);
D=zeros(1,N);
Rrad=zeros(1,N);
Z0=zeros(1,N);
teta=zeros(1,N);
for j=1:N
L=(Lmax-Lmin)*(j-1)/N+Lmin;
Lc=sprintf('%.3g',L);
F2s = inline(['abs((cos(2*pi*(' Lc '/2).*cos(x))-cos(2*pi*(' Lc '/2)))' ...
'./sin(x)).^2.*sin(x)']);
Rrad(j)=60*quadl(F2s,0.01,pi-0.01);
Z0(j)=120*pi;
K = 120/Rrad(j);
for i=1:length(theta)
f2(i)=K*abs((cos(2*pi*(L/2)*cos(theta(i)))-cos(2*pi*(L/2)))/sin(theta(i))).^2;
f21theta(i)=f2(i)*sin(theta(i));f22theta(i)=f2(i)*cos(theta(i));
end
J(j)=L;
D(j)=max(f2);
[ymax Imax]=max( f2(n/2+1:3*n/4+1) );
teta(j)=180*theta(Imax+n/2+1)/pi;
%figure(1)
subplot(1,2,1)
X = f21theta*cos(phi);
Y = f21theta*sin(phi);
Z = f22theta*ones(size(phi));
surf(X,Y,Z,'FaceColor','blue','EdgeColor','none');
View(-37.5,14)
camlight left; lighting phong
axis([-lx lx -lx lx -lz lz])
subplot(1,2,2)
g=K*abs((cos(2*pi*(L/2).*cos(theta))-cos(2*pi*(L/2)))./sin(theta)).^2;
polar(theta,g,'b')
View(90,90)
end
function diagrama_antena_lineal(Lmax)
Lmin=Lmax
n = 2^7;
N=1;
if Lmin>=1.5
lz=2.6+0.77*(Lmax-1.5);
elseif (Lmin>=1.26)&(Lmax<=1.5)
lz=3.5
elseif (Lmax<1.5)
lz=1.7+2.37*(Lmax-0.5);
else
lz=3.3+0.667*Lmax;
end
if Lmin>=1.54
lx=2.65+0.054*Lmax;
else
lx=3.5;
end
theta = pi*(-n:2:n)'/n;
phi = (pi/2)*(-n:2:n)/n;
f2=zeros(size(theta));
f21theta=zeros(size(theta));
f22theta=zeros(size(theta));
J=zeros(1,N);
D=zeros(1,N);
Rrad=zeros(1,N);
Z0=zeros(1,N);
teta=zeros(1,N);
for j=1:N
L=(Lmax-Lmin)*(j-1)/N+Lmin;
Lc=sprintf('%.3g',L);
F2s = inline(['abs((cos(2*pi*(' Lc '/2).*cos(x))-cos(2*pi*(' Lc '/2)))' ...
'./sin(x)).^2.*sin(x)']);
Rrad(j)=60*quadl(F2s,0.01,pi-0.01);
Z0(j)=120*pi;
K = 120/Rrad(j);
for i=1:length(theta)
f2(i)=K*abs((cos(2*pi*(L/2)*cos(theta(i)))-cos(2*pi*(L/2)))/sin(theta(i))).^2;
f21theta(i)=f2(i)*sin(theta(i));f22theta(i)=f2(i)*cos(theta(i));
end
J(j)=L;
D(j)=max(f2);
[ymax Imax]=max( f2(n/2+1:3*n/4+1) );
teta(j)=180*theta(Imax+n/2+1)/pi;
%figure(1)
subplot(1,2,1)
X = f21theta*cos(phi);
Y = f21theta*sin(phi);
Z = f22theta*ones(size(phi));
surf(X,Y,Z,'FaceColor','blue','EdgeColor','none');
View(-37.5,14)
camlight left; lighting phong
axis([-lx lx -lx lx -lz lz])
subplot(1,2,2)
g=K*abs((cos(2*pi*(L/2).*cos(theta))-cos(2*pi*(L/2)))./sin(theta)).^2;
polar(theta,g,'b')
View(90,90)
end
Valora esta pregunta


0