Diseño de una lente dieléctrica usando Funciones de Usuario
Este documento muestra un ejemplo de cómo usar funciones de usuario. El caso específico detalla el proceso de diseño de una lente circular dieléctrica con newFASANT. La antena formará parte de la combinación de una antena de bocina corregida con una lente por su apertura.
double getLensThickness2(double step) {
// Find the distance of phase2
// Phase = (distance / lambda) * 2 * PI
double z0 = 0.0562; //Distance of initialPhase1
double zPlane = 1; //ZPosition of Observation Plane
double freq = 8E9; //Frequency in Hz
double epsReal = 2.7; //Dielectric constant
double lambda = 3E8 / freq; //Lambda_0
double lambdaMaterial = (lambda / Math.sqrt(epsReal)); //Lambda_m
double initialThickness = 0.02;
double minimumThickness = 0.005;
double error = 1E-6;
// Calculate Initial Phase
double initialPhase1 = (z0 / lambda) * 2 * Math.PI;
double initialPhase2 = (initialThickness / lambdaMaterial) * 2 * Math.PI;
double initialPhase3 = ((zPlane - initialThickness - z0) / lambda) * 2 * Math.PI;
double initialPhaseTotal = initialPhase1 + initialPhase2 + initialPhase3;
// Calculate Initial Thickness
double phase1 = (Math.sqrt(Math.pow(z0,2)+Math.pow(step,2)) / lambda) * 2 * Math.PI;
double phase3 = initialPhase3;
double phase2 = initialPhaseTotal - phase3 - phase1;
double thickness = lambdaMaterial * (phase2 / (2*Math.PI));
// Find the correct thickness
double diff = Double.MAX_VALUE;
while (Math.abs(diff)>error) {
phase3 = ((zPlane - thickness - z0) / lambda) * 2 * Math.PI;
phase2 = (thickness/lambdaMaterial) * 2 * Math.PI;
diff = initialPhaseTotal - (phase1 + phase2 + phase3);
thickness = thickness + lambdaMaterial * diff / (2 * Math.PI);
if (thickness < minimumThickness) {
thickness += lambdaMaterial;
initialPhaseTotal += 2*Math.PI;
}
}
return thickness;
}