% *********************************************** **********************
% LOOP.m
% *********************** *********************************************
% Esto es un programa basado en MATLAB calcula:
% I. Directividad máxima (adimensional y en dB)
% II. Resistencia a la radiación
% III. Patrón de directividad (en dB) en forma polar
% IV. Elevación normalizados de campo lejano patrón (E-phi, en dB)
%
% y también traza la:
% patrón polar I. directividad (en dB)
% II. Normalizado de campo lejano patrón polar amplitud (E-phi, en dB)
%
% para un bucle circular (con corriente constante). El bucle irradia
% hacia el espacio libre.
%
% La directividad y la resistencia a la radiación se calculan usando
el método del borde de fuga en incrementos de 1 grado en theta.
%
% ** Parámetros de entrada:
% 1. A: radio del bucle (en longitudes de onda)
%
% ** Nota:
% existe la extrema zona de campo eléctrico componente E-phi para
% 0 <theta <180 y 0 <phi <360.
% ------------------------------------------------- ----------------
% Convertido de Fortran a Matlab 3/2002 por Kelly O'Dell.
% Modificado por Marios Gkatzianas
% -------------------------------------------- ---------------------
%
borrar todo;
cierra todo;
formato largo;
advertencia de apagado;
% —Elección de salida—
fprintf ('Opción de dispositivo de salida \ n \ tOpción (1): Pantalla \ n \ tOpción (2): Archivo \ n');
ERR = 1;
while (ERR ~ = 0)
DISPOSITIVO = entrada ('\ nDispositivo de salida =', 's');
DISPOSITIVO = str2num (DISPOSITIVO);
si (DISPOSITIVO == 1)
ERR = 0;
elseif (DISPOSITIVO == 2)
FILNAM = input ('Ingrese el nombre de archivo de salida deseado:', 's');
ERR = 0;
else
error ('El número de dispositivo de salida debe ser 1 o 2 \ n');
fin
fin
% —Definición de constantes e inicialización—
PI = 4.0 o (1.0);
E = 120,0 PI;
THETA = PI / 180,0;
UMAX = 0,0;
PRAD = 0,0;
TOL = 1,0E-5;
% —Introduzca el radio del bucle—
A = input ('\ nRadius of loop in wavelengths =', 's');
A = str2num (A);
% Insertar bucle de error de datos de entrada **
%-Programa principal------------------------------------
I = 1;
mientras que (I <= 180)
XI = I PI / 180.0;
X = 2,0 PI A sen (XI);
si (abs (X) <TOL)
F = 0.0;
si no
F = besselj (1, X);
final
U = A 2 * (2.0 * PI) 2 / 8.0 E F ^ 2;
si (U> UMAX)
UMAX = U;
final
UA = U sen (XI) THETA 2 PI;
PRAD = PRAD + UA;
Yo = yo + 1;
final
D = (4.0 PI UMAX) / PRAD;
DDB = 10,0 log10 (D);
RR = 2,0 PRAD;
% —Cálculo de patrones de elevación de campo lejano en incrementos de 1 grado—
fid = fopen ('ElevPat.dat', 'w');
fprintf (fid, '\ tLoop \ n \ n \ tTheta \ t \ tH (dB) \ n');
fprintf (fid, '\ t ----- \ t \ t ------ \ n');
T = ceros (180,1);
HT = ceros (180,1);
HdB = ceros (180,1);
x = 1;
mientras que (x <= 180)
T (x) = x-0,99;
Y = 2 PI A * sin (T (x) THETA);
HT (x) = besselj (1, Y);
x = x + 1;
final
HT = abs (HT);
HTmax = max (HT);
HdB = 20 log10 (abs (HT) / HTmax);
x = 1;
while (x <= 180)
fprintf (fid, '\ n% 5.0f% 12.4f', T (x), HdB (x));
x = x + 1;
final
fclose (fid);
% —Crear salida ------------
if (DISPOSITIVO == 2)
fid = fopen (FILNAM, 'w');
else
fid = DISPOSITIVO;
final
x = linspace (0,4 pi A, 500);
dx = x (2) -x (1);
den = suma (besselj (2, x) * dx);
theta = linspace (0, pi, 300);
Dth = 4 pi A / den * (besselj (1,2 pi A sin (theta))). ^ 2;
Dth (1) = 0;
Dth_db = 10 log10 (Dth);
% —Parámetros de entrada de eco y parámetros calculados de
salida— fprintf (fid, '\ nLOOP: \ n -----');
fprintf (fid, '\ n \ nParámetros de entrada: \ n -----------------');
fprintf (fid, '\ nRadio del bucle en longitudes de onda =% 6.4f', A);
fprintf (fid, '\ n \ nParámetros de salida: \ n ------------------');
fprintf (fid, '\ nDirectividad (adimensional) =% 6.4f', D);
fprintf (fid, '\ nDirectividad (dB) \ t =% 6.4f', DDB);
fprintf (fid, '\ nResistencia a la radiación (ohmios) =% 9.4f', RR);
fprintf (fid, '\ n \ n *** NOTA: \ nEl patrón de elevación normalizado se almacena \ n');
fprintf (fid, 'en un archivo de salida llamado… ElevPat.dat \ n \ n');
if (DISPOSITIVO == 2)
fclose (fid);
final
%: Patrón de campo lejano de elevación del
gráfico ------ % plot (T, -abs (HdB), 'b');
eje% ([0 180 -60 0]);
% cuadrícula activa;
% xlabel ('Theta (grados)');
% ylabel ('Amplitud (dB)');
% leyenda (['a =', num2str (A), '\ lambda'], 0);
% title ('Patrón de elevación de campo lejano en bucle');
T = T '; HdB = HdB ';
T = [T T + 180];
Hdb = [Fliplr HdB (HdB)];
% Figura 1
% ********
polar_dB (T, -abs (Hdb), - 60, max (Hdb), 4);
title ('Patrón de amplitud normalizada del plano de elevación (dB)', 'tamaño de fuente', 16);
% Figura 2
% ********
figura (2);
polar_dB ([theta theta + pi] * 180 / pi, [Dth_db fliplr (Dth_db)], - 60, máx (Dth_db), 4);
título ('Patrón de directividad del plano de elevación (dB)', 'tamaño de fuente', 16);
% —Fin del programa -----------------------------------------