;+
; Procedure:
; thm_comp_efi_response
;
; Purpose:
; Compute the voltage gain (magnitude only) as a function of frequency
; for a given THEMIS EFI sensor (SPB or AXB).
;
; Calling Sequence:
; thm_comp_efi_response, sensor, ff, resp
; Arguements:
; sensor STRING, one of SPB or AXB.
; ff FLOAT[ N], array of frequencies at which to compute the sensor response.
; resp COMPLEX[ N], array of voltage gain vs. frequency.
;
; Notes:
; -- none.
;
; $LastChangedBy: jimm $
; $LastChangedDate: 2012-05-22 11:57:35 -0700 (Tue, 22 May 2012) $
; $LastChangedRevision: 10450 $
; $URL $
;-
pro thm_comp_efi_response, sensor, ff, resp,rsheath=rsheath,complex_response=complex_response
case strupcase( sensor) of
'SPB': begin
; rs = 50.e6 ; old value of sheath resistance, ohm. jmm, 2012-05-21
rs = 5.e6 ; sheath resistance, ohm. (can overridde by keyword)
cs = 10.e-12 ; sheath capacitance, F.
re = 100.e3 ; ESD protection resistor, ohm.
ce = 10.e-12 ; ESD bypass capacitor, F.
ri = 1.e12 ; op-amp input resistance, ohm.
ci = 7.e-12 ; op-amp effective input capacitance, F.
ro = 100. ; series output resistance, ohm.
ll = 25. ; cable length, m.
dc_dl = 75.e-12 ; cable capacitance, F/m.
dr_dl = 1.5 ; cable resistance, ohm/m.
rl = 100.e3 ; load resistance, ohm.
end
'AXB': begin
; rs = 50.e6 ; old value of sheath resistance, ohm. jmm, 2012-05-21
rs = 5.e6 ; sheath resistance, ohm. (can overridde by keyword)
cs = 5.e-12 ; sheath capacitance, F.
re = 100.e3 ; ESD protection resistor, ohm.
ce = 10.e-12 ; ESD bypass capacitor, F.
ri = 1.e12 ; op-amp input resistance, ohm.
ci = 7.e-12 ; op-amp effective input capacitance, F.
ro = 100. ; series output resistance, ohm.
ll = 3. ; cable length, m.
dc_dl = 75.e-12 ; cable capacitance, F/m.
dr_dl = 1.5 ; cable resistance, ohm/m.
rl = 100.e3 ; load resistance, ohm.
end
else: begin
dprint, string( sensor, format='(A,X,"sensor not recognized; NaN response will be returned.")')
resp = ff + !values.f_nan
return
end
endcase
if keyword_set(rsheath) then rs=rsheath
; compute cable resistance and capacitance from input parameters.
cc = ll*dc_dl
rc = ll*dr_dl
; compute voltage gain as a function of frequency.
ww = 2.0*!dpi*ff ; double, rad/s.
ss = dcomplex( 0.0, 1.0)*ww ; j*omega, rad/s.
ys = 1.0/rs + ss*cs ; sheath admittance, 1/ohm.
ye = 1.0/re + ss*ce ; ESD admittance, 1/ohm.
yi = 1.0/ri + ss*ci ; op-amp input admittance, 1/ohm.
yc = 1.0/(rc+rl) + ss*cc ; cable+load admitance, 1/ohm.
zs = 1.0/ys
ze = 1.0/ye
zi = 1.0/yi
zc = 1.0/yc
gv1 = zi/(zs+ze+zi) ; follower output voltage gain, volt/volt.
gv2 = zc/(ro+zc) ; output and cable voltage gain, volt/volt.
gv_tot = gv1*gv2
if keyword_set(complex_response) then $
resp = gv_tot $
else $
resp = float( sqrt( gv_tot*conj( gv_tot)))
return
end