NEC-LIST: about a switch.......

From: <BURKE_at_email.domain.hidden>
Date: Thu, 15 Apr 1999 18:25:49 -0800 (PST)

Re: about a switch

If by modeling a switch you mean the interruption of current,
obviously NEC, as a frequency domain code, cannot do that directly.
However, you can do some things in post processing. A switch might be
represented as a time varying current I_s(t) at a position on the wire
or a time varying resistance R_s(t). The change in time should be
represented as some continuous function such as an ERF((t-t0)/tw) or
(1-Cos).

Then model the structure with a 1 V source at the position of the
switch and run NEC from low frequency up to some upper frequency such
as 1/(period of the current transition). NEC gives the source current
and also the admittance Y(f) and impedance Z(f). You can inverse
Fourier transform Y(f) or Z(f) to get impulse responses, current for
an impulse of voltage or voltage for an impulse of current,
respectively. It usually takes a little manipulating in something
such as Mathematica or MatLab. Interpolation with rational functions
(NEC auxiliary program ZPLOT) can be useful to resample the data and
resolve the resonances. If the imaginary Z (for a dipole) or Y (for a
loop) goes to infinity as 1/f, you should choose the sampling to
resolve that well, but the value used at zero frequency (not from NEC)
must be real. Some DC shift may result, but you can adjust that to
get a causal response. It is a little easier when the transfer
function goes to zero at zero frequency.

Once you have the transfer function in good shape you can get the
current response to an applied voltage V(t) as

I(t) = InverseFourier[Y(f)*Fourier[V(t)]]

For the switch with specified current you can evaluate the resulting
voltage as

V_s(t) = InverseFourier[Z(f)*Fourier[I_s(t)]]

If you want the transient radiated field, NEC gives E_rad(f) for unit
voltage. Then

E_rad(t)=InverseFourier[Z(f)*Fourier[I_s(t)]*E_rad(f)]

For a time varying resistance R(t) you get an integral equation for
the current I_s(t)

R(t)*I_s(t) = Convolution[Z(t),I_s(t)] where Z(t) = InverseFourier[Z(f)].

It looks like this could be solved by stepping in time. The
convolution integral would have to be evaluated at each time step.
Only the last sample of I_s(t) would be unknown, so you can solve for
it.

I don't guarantee that the above is free of errors, but I have tried
this to get V_s(t) with switched current. The resulting V_s(t) was
fed into the code TWTD, which is a time domain version of NEC, and the
source current was close to the desired form. The current used had
the form I_s(t)=Erf[(t-t1)/tw]-Erf[(t-t2)/tw] so that it went to zero
outside the range (t1,t2). This is nice for evaluating the transforms
numerically.

Jerry Burke
LLNL
Received on Fri Apr 16 1999 - 05:08:56 EDT

This archive was generated by hypermail 2.2.0 : Sat Oct 02 2010 - 00:10:39 EDT