8
/* This routine finds the self impedance of a dipole of arbitrary
9
length 'length' , radius 'r' at a wavelength 'wavelength'
11
Both the real part R and the imaginary part X are returned. R is
12
found from Antenna Theory, Analysis and Design, by Balans (Published
15
The real part, Rin is found by computing the radiation resistance Rr
16
(equ 4-70, pp 124) then computing Rin=Rr/(sin(k l/2)^2, as given by
19
The reactive part, Xin is found by computing Xm (equ 7-33, pp 294)
20
then using xin=Xm/(sin(k l/2)^2 (equ 70-30b pp 294). */
22
void self(double r, double length, double lambda, double *Rin, double *Xin)
24
double beta, mu, epsilon,eta,sin_bl,cos_bl,current_scale_factor;
25
double bl, ci_bl, si_bl, ci_2bl, si_2bl,Xm,Rr;
29
epsilon=8.854187818e-12;
33
/* We often need si(bl) , si(2*bl), ci(bl), ci(2*bl). These are
34
time consuming to calculate, so I calculate just once. The Numerical
35
recipes routine cisi, calculates both si and ci at the same time,
36
so I wont use my routines ci and si, which both simply call cisi,
37
but was one of the results */
38
cisi(bl, &ci_bl, &si_bl);
39
cisi(2*bl, &ci_2bl, &si_2bl);
42
/* imaginary part of zin given by Balans, pp 294 */
44
(2*si_bl+ cos_bl*( 2*si_bl - si_2bl )
45
-sin_bl*( 2*ci_bl-ci_2bl-ci(2*beta*r*r/length)) );
46
current_scale_factor=sin(bl/2)*sin(bl/2); /* sin(bl/2)^2 */
47
*Xin=Xm/current_scale_factor; /* Xin=Xm/(sin(bl/2)*sin(bl/2)); */
48
/* The radiation resistance, as described by Balans C. A. Antenna theory,
49
pp124, Published by Harper and Row, (1982) */
51
/* Rr=(eta/(M_PI*2.0))*(EULER+log(bl)-ci_bl+0.5*sin_bl*
52
(si_2bl-2.0*si_bl)+0.5*cos_bl
53
*(EULER+log(bl/2)+ci_2bl-2*ci_bl)); */
54
Rr=(eta/(2.0*M_PI))*(EULER+log(bl)-ci_bl+0.5*sin_bl*(si_2bl-2.0*si_bl)+0.5*cos_bl*(EULER+log(bl/2.0)+ci_2bl-2*ci_bl));
55
*Rin=Rr/current_scale_factor;
56
/* printf("Rr=%f Rin=%f csf=%f\n",Rr,*Rin,current_scale_factor); */
57
/* I'm a little bothered that Rin falls to ~60 Ohms at
58
resonance. Lawson suggested using 73, which would imply a large error.
59
A graph in RadCom by G3SEK would suggest the 60 Ohms is too low. A
60
graph in Krauss, would suggest ~70 Ohms, so what is going on????
61
I thought I'd use an equation in Krauss, but since this is the
62
Brown and King formuala given in Balans, that too gives ~60 Ohms.
63
The formula in Krass ignores the diameter, but gives much the same values
64
as the Balan's method */
65
/* Now compute by method in Krauss, pp 421. */
66
/* cot_bl_over_2=1.0/(tan(bl/2.0)); */
68
/* *Rin=30.0*( (1.0-(cot_bl_over_2*cot_bl_over_2))*Cin(2.0*bl)+4*cot_bl_over_2*cot_bl_over_2*Cin(bl)+2.0*cot_bl_over_2*(si_2bl-2.0*si_bl) );
69
printf("Rin=%f\n",*Rin); */