本文整理汇总了Python中wfm.wave函数的典型用法代码示例。如果您正苦于以下问题:Python wave函数的具体用法?Python wave怎么用?Python wave使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wave函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: uvRamps
def uvRamps(motpow, bfield, ENDCNC):
ss=f('CNC','cncstepsize')
uvdt = f('UV','dt')
#---Ramp down red power
motpow.linear( 0.002, uvdt) #0.002 is max attenuation before RF switch
#---Bfield ramp
dtload = f('UV','dtload_bfield')
dtcnc = f('UV','dtcnc_bfield')
uvhold = f('UV','uvhold')
#OBSOLETE
#bfield.linear( f('UV','uvbfield'), uvdt)
#bfield.appendhold(dtload)
#bfield.linear( f('UV','uvbfieldf'), dtcnc)
bfield.linear( uvsec.uvbfield, uvsec.dt)
bfield.appendhold( uvsec.dtload_bfield)
bfield.linear( uvsec.uvbfieldf, uvsec.dtcnc_bfield)
#OBSOLETE
#bfield.appendhold(uvhold)
ENDUVMOT = max( motpow.dt(), bfield.dt() )
#---UVPOW ramps
#OBSOLETE
#dtload_uvpow = f('UV','dtload_uvpow')
#dtcnc_uvpow = f('UV','dtcnc_uvpow')
#
uvpow= wfm.wave('uvpow', f('UV','uvpow'),ss)
uvpow2= wfm.wave('uvpow2',f('UV','uvpow2'),ss)
#
uvpow.extend( ENDCNC + uvsec.dt + uvsec.dtload_uvpow)
uvpow2.extend(ENDCNC + uvsec.dt + uvsec.dtload_uvpow)
#
uvpow.linear( f('UV','uvpowf'), uvsec.dtcnc_uvpow)
uvpow2.linear( f('UV','uvpow2f') , uvsec.dtcnc_uvpow)
#---ENDUVMOT is defined as the point where the longest of bfield
#---or uvpow ramps ends
maxramp = max( motpow.dt(), bfield.dt(), uvpow.dt(), uvpow2.dt() )
ENDUVMOT = maxramp + uvhold
bfield.extend(ENDUVMOT)
uvpow.extend(ENDUVMOT)
uvpow2.extend(ENDUVMOT)
motpow.extend(ENDUVMOT)
bfield.extend(ENDUVMOT)
uvpow.extend(ENDUVMOT)
uvpow2.extend(ENDUVMOT)
return uvpow2, uvpow, motpow, bfield, ENDUVMOT
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:59,代码来源:uvmot.py
示例2: uvRamps
def uvRamps(motpow, bfield, ENDCNC):
ss=f('CNC','cncstepsize')
#---Put pulse on uvfppiezo
uvfppiezo= wfm.wave('uvfppiezo',0.0,ss)
uvfppiezo.extend( ENDCNC)
uvfppiezo.linear( f('UV','pulsedet'), 0.0)
uvfppiezo.appendhold( f('UV','dtpulse'))
uvfppiezo.linear( 0.0, f('UV','dtpulseramp'))
#uvfppiezo.dither( f('UV','dtpulse'), 3)
#uvfppiezo.lineardither( 0.0, f('UV','dtpulseramp'),3)
uvdt = f('UV','dt')
#---Ramp down red power
motpow.linear( 0.002, uvdt) #0.002 is max attenuation before RF switch
#---Bfield ramp
dtload = f('UV','dtload_bfield')
dtcnc = f('UV','dtcnc_bfield')
uvhold = f('UV','uvhold')
bfield.linear( f('UV','uvbfield'), uvdt)
bfield.appendhold(dtload)
bfield.linear( f('UV','uvbfieldf'), dtcnc)
#bfield.appendhold(uvhold)
ENDUVMOT = max( motpow.dt(), bfield.dt() )
#---UVPOW ramps
dtload_uvpow = f('UV','dtload_uvpow')
dtcnc_uvpow = f('UV','dtcnc_uvpow')
#
uvpow= wfm.wave('uvpow', f('UV','uvpow'),ss)
uvpow2= wfm.wave('uvpow2',f('UV','uvpow2'),ss)
#
uvpow.extend(ENDCNC+uvdt+dtload)
uvpow2.extend(ENDCNC+uvdt+dtload)
#
uvpow.linear( f('UV','uvpowf'), dtcnc_uvpow)
uvpow2.linear( f('UV','uvpow2f') , dtcnc_uvpow)
#---ENDUVMOT is defined as the point where the longest of bfield
#---or uvpow ramps ends
maxramp = max( motpow.dt(), bfield.dt(), uvpow.dt(), uvpow2.dt() )
ENDUVMOT = maxramp + uvhold
bfield.extend(ENDUVMOT)
uvpow.extend(ENDUVMOT)
uvpow2.extend(ENDUVMOT)
uvfppiezo.extend(ENDUVMOT)
motpow.extend(ENDUVMOT)
bfield.extend(ENDUVMOT)
uvpow.extend(ENDUVMOT)
uvpow2.extend(ENDUVMOT)
return uvfppiezo, uvpow2, uvpow, motpow, bfield, ENDUVMOT
开发者ID:drlightx,项目名称:apparatus3-seq,代码行数:56,代码来源:uvmot.py
示例3: odt_lightshift_evap
def odt_lightshift_evap(image):
evap_ss = f('EVAP','evapss')
p0 = f('ODT','odtpow')
p1 = f('EVAP','p1')
t1 = f('EVAP','t1')
tau = f('EVAP','tau')
beta = f('EVAP','beta')
offset = f('EVAP','offset')
t2 = f('EVAP','t2')
tau2 = f('EVAP','tau2')
odtpow2 = odt_wave('odtpow', p0, evap_ss)
#odtpow.Evap(p0, p1, t1, tau, beta, image)
#odtpow.Evap2(p0, p1, t1, tau, beta, offset, t2, tau2, image)
ficpow = odtpow2.Evap3(p0, p1, t1, tau, beta, offset, t2, tau2, image)
uvdet = wfm.wave('uvdet', None , evap_ss, volt=3.744)
uvdet.linear( f('UVLS','uvdet'), 100 )
maxDT = odtpow2.dt()
uvdet.extend(maxDT)
return odtpow2, uvdet, maxDT
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:25,代码来源:odt.py
示例4: odt_dbz
def odt_dbz(odtpow0):
dbz_ss = f('DBZ','dbz_ss')
odtpow = odt_wave('odtpow', None, dbz_ss, volt=odtpow0)
bfield = wfm.wave('bfield', f('FESHBACH','bias'), dbz_ss)
odtpow.linear( f('DBZ','cpow'), f('DBZ','cdt') )
odtpow.appendhold( f('DBZ','waitdt'))
bfield.extend(odtpow.dt())
#Field goes to zero
bfield.linear( 0.0, f('DBZ','bdt') )
bfield.appendhold( f('DBZ','waitdt2'))
#Field TTL goes off here
OFFDT1 = bfield.dt()
bfield.appendhold( f('DBZ','switchdt'))
#Field switches from feshbach to gradient here
bfield.appendhold( f('DBZ','switchdt'))
#Field TTL goes back on here
bfield.appendhold( f('DBZ','switchdt'))
bfield.linear( f('DBZ', 'dbz'), f('DBZ','rampdt'))
bfield.appendhold( f('DBZ','holddt'))
#Field goes off here (atoms should be oscillating in the trap)
bfield.linear( 0.0, f('DBZ','dbz_ss'))
odtpow.extend( bfield.dt() )
return odtpow, bfield, OFFDT1
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:27,代码来源:odt.py
示例5: odt_lightshift
def odt_lightshift(odtpow0):
ls_ss = f('UVLS','ls_ss')
odtpow = odt_wave('odtpow', None, ls_ss, volt=odtpow0)
bfield = wfm.wave('bfield', f('FESHBACH','bias'), ls_ss)
uv1freq = wfm.wave('uv1freq', None , ls_ss, volt=7.600)
uvpow2 = wfm.wave('uvpow2', f('UV','uvpow2'), ls_ss)
uv1freq.linear( None, 10.0, volt=f('UVLS','uvfreq'))
uvpow2.linear( f('UVLS','lspow2'), 10.0)
odtpow.linear( f('UVLS','cpow'), f('UVLS','cdt') )
odtpow.appendhold( f('UVLS','waitdt'))
bfield.extend(odtpow.dt())
bfield.linear( f('UVLS','bpulse'), f('UVLS','bdt') )
bfield.appendhold( f('UVLS','waitdt2'))
bfield.appendhold( f('UVLS','waitdt3'))
ENDC=bfield.dt()
#~ bfield.linear( f('UVLS','bpulse') , f('UVLS','bdt') )
#~ bfield.appendhold(f('UVLS','waitdt'))
#~ odtpow.extend(bfield.dt())
#~ odtpow.linear( f('UVLS','cpow'), f('UVLS','cdt') )
#~ odtpow.appendhold( f('UVLS', 'waitdt2'))
#~ ENDC = odtpow.dt()
#~ bfield.extend( odtpow.dt() )
odtpow.extend( bfield.dt() )
bfield.appendhold( f('UVLS','dtpulse'))
bfield.linear( f('ZEROCROSS','zcbias') , f('UVLS','hframpdt'))
#Change f('FESHBACH','bias') -> f('ZEROCROSS','zcbias') 110911 by Ernie
#bfield.linear( 0.0, f('UVLS','hframpdt'))
totalDT = bfield.dt()
odtpow.extend(totalDT)
uv1freq.extend(totalDT)
uvpow2.extend(totalDT)
return odtpow, bfield, uv1freq, uvpow2, ENDC
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:46,代码来源:odt.py
示例6: odt_adiabaticDown
def odt_adiabaticDown(ss, STARTDELAY):
maxpow = f("ODT", "odtpow")
tau = f("ODT", "tau")
dt = 2 * tau
odtpow = wfm.wave("odtpow", cnv("odtpow", maxpow), ss)
odtpow.extend(STARTDELAY + f("ODT", "intrap"))
odtpow.AdiabaticRampDown(dt, tau, "odtpow")
return odtpow
开发者ID:huletlab,项目名称:apparatus3-seq,代码行数:8,代码来源:odt_.py
示例7: odt_evap_field_free
def odt_evap_field_free(toENDBFIELD, scale =1.0):
odtfree = EVAP.free - EVAP.buffer - toENDBFIELD
#---Setup ODT ramp
odtpow = odt_wave('odtpow', ODT.odtpow, EVAP.evapss)
odtpow.appendhold( odtfree )
#image = DIMPLE.image if DIMPLE.image <= EVAP.image else EVAP.image
image = DIMPLE.image
### SELECT EVAP TRAJECTORY HERE###
finalcpow = odtpow.Evap8(\
ODT.odtpow, \
EVAP.p1, \
EVAP.t1,
EVAP.tau, \
EVAP.beta, \
EVAP.offset, \
EVAP.t2, \
EVAP.tau2, \
EVAP.smoothdt, \
image, \
EVAP.scale \
)
#Here, go ahead and save the finalcpow to the report
gen.save_to_report('EVAP','finalcpow', finalcpow)
#---Setup field ramp and shunt ramp
field_ramp_time = EVAP.fieldrampt0*scale
field_ramp_dt = EVAP.fieldrampdt*scale
print '\t...Making new Evap_field'
bfield = wfm.wave('bfield', FB.bias, EVAP.evapss)
bfield.extend(field_ramp_time + odtfree)
bfield.linear(EVAP.fieldrampfinal,field_ramp_dt)
if((field_ramp_time+field_ramp_dt)<image*scale):
bfield.extend(image*scale)
else:
bfield.chop(image*scale)
#---Setup ipganalog ramp
ipganalog = ipg_wave('ipganalog', 10., EVAP.evapss)
if ODT.use_servo == 0:
ipganalog.extend( odtpow.dt() )
elif ODT.use_servo == 1:
if ODT.ipgfollow == 1:
ipganalog.follow( odtpow ,ODT.ipgmin)
else:
ipganalog.extend( odtpow.dt() )
maxDT = odtpow.dt()
return bfield, odtpow, maxDT, finalcpow, ipganalog
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:56,代码来源:odt.py
示例8: odt_modulationRamps
def odt_modulationRamps(ss, STARTDELAY):
maxpow = f("ODT", "odtpow")
moddt = f("TRAPFREQ", "moddt")
modfreq = f("TRAPFREQ", "modfreq")
moddepth = f("TRAPFREQ", "moddepth")
odtpow = wfm.wave("odtpow", cnv("odtpow", maxpow), ss)
odtpow.extend(STARTDELAY + f("TRAPFREQ", "intrapdt"))
odtpow.SineMod(maxpow, moddepth, moddt, modfreq, "odtpow")
odtpow.linear(cnv("odtpow", maxpow), ss)
return odtpow
开发者ID:huletlab,项目名称:apparatus3-seq,代码行数:12,代码来源:odt_.py
示例9: odt_flicker
def odt_flicker(odtpow0):
flicker_ss = f('FLICKER','flicker_ss')
odtpow = odt_wave('odtpow', None, flicker_ss, volt=odtpow0)
bfield = wfm.wave('bfield', f('FESHBACH','bias'), flicker_ss)
odtpow.linear( f('FLICKER','cpow'), f('FLICKER','cdt') )
odtpow.appendhold( f('FLICKER','waitdt'))
bfield.extend(odtpow.dt())
bfield.linear( f('FLICKER','bflick'), f('FLICKER','bdt') )
bfield.appendhold( f('FLICKER','waitdt2'))
odtpow.extend( bfield.dt() )
return odtpow, bfield, odtpow.dt()
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:16,代码来源:odt.py
示例10: odt_trapfreq
def odt_trapfreq(odtpow0):
mod_ss = f('TRAPFREQ','mod_ss')
odtpow = odt_wave('odtpow', None, mod_ss, volt=odtpow0)
bfield = wfm.wave('bfield', f('FESHBACH','bias'), mod_ss)
odtpow.linear( f('TRAPFREQ','cpow'), f('TRAPFREQ','cdt') )
odtpow.appendhold( f('TRAPFREQ','waitdt'))
bfield.extend(odtpow.dt())
bfield.linear( f('TRAPFREQ','bmod'), f('TRAPFREQ','bdt') )
bfield.appendhold( f('TRAPFREQ','waitdt2'))
odtpow.extend( bfield.dt() )
#odtpow.SineMod( f('TRAPFREQ','cpow'), f('TRAPFREQ','moddt'), f('TRAPFREQ','modfreq'), f('TRAPFREQ','moddepth'))
#odtpow.SineMod2( f('TRAPFREQ','cpow'), f('TRAPFREQ','moddt'), f('TRAPFREQ','modfreq'), f('TRAPFREQ','moddepth'))
odtpow.SineMod3( f('TRAPFREQ','cpow'), f('TRAPFREQ','moddt'), f('TRAPFREQ','modfreq'), f('TRAPFREQ','moddepth'))
return odtpow, bfield, odtpow.dt()
开发者ID:drlightx,项目名称:apparatus3-seq,代码行数:19,代码来源:odt.py
示例11: odt_evap
def odt_evap(image):
evap_ss = f("EVAP", "evapss")
p0 = f("ODT", "odtpow")
p1 = f("EVAP", "p1")
t1 = f("EVAP", "t1")
tau = f("EVAP", "tau")
beta = f("EVAP", "beta")
odtpow = wfm.wave("odtpow", cnv("odtpow", p0), evap_ss)
odtpow.Evap(p0, p1, t1, tau, beta, image)
# ~ odtpow.Exponential(pow0,powf,evap_dt,tau)
# ~ odtpow.linear( cnv('odtpow',powf), evap_ss)
# ~ odtpow.appendhold( evap_dt)
maxDT = odtpow.dt()
return odtpow, maxDT
开发者ID:huletlab,项目名称:apparatus3-seq,代码行数:19,代码来源:odt_.py
示例12: uvzsload_imaging
def uvzsload_imaging():
# Initialize channels to MOT SS values and with cncstepsize
ss=f('CNC','cncstepsize')
motpow = wfm.wave('motpow', f('MOT','motpow') ,ss)
repdet = wfm.wave('repdet', f('MOT','repdetSS') ,ss)
trapdet = wfm.wave('trapdet',f('MOT','trapdetSS'),ss)
reppow = wfm.wave('reppow', f('MOT','reppowSS') ,ss)
trappow = wfm.wave('trappow',f('MOT','trappowSS'),ss)
bfield = wfm.wave('bfield', f('MOT','bfield') ,ss)
sec='ZSLOAD'
#Insert bfield imaging value at release
bfdt = 0.0
bfield.linear(f(sec,'imgbfield'),bfdt)
#Insert AOM imaging values 30us after release
imgdt=0.03
motpow.appendhold(imgdt)
repdet.appendhold(imgdt)
trapdet.appendhold(imgdt)
reppow.appendhold(imgdt)
trappow.appendhold(imgdt)
motpow.linear( f(sec,'imgpow'), 0.0)
#repdet.linear( f(sec,'imgdetrep'), 0.0)
repdet.linear( f(sec,'imgdettrap'), 0.0)
trapdet.linear(f(sec,'imgdettrap'),0.0)
reppow.linear( f(sec,'imgpowrep'), 0.0)
trappow.linear(f(sec,'imgpowtrap'),0.0)
maxDT = max( motpow.dt(), repdet.dt(), trapdet.dt(), bfield.dt(), reppow.dt(), trappow.dt())
motpow.extend(maxDT)
repdet.extend(maxDT)
trapdet.extend(maxDT)
bfield.extend(maxDT)
reppow.extend(maxDT)
trappow.extend(maxDT)
return motpow, repdet, trapdet, reppow, trappow, bfield
开发者ID:drlightx,项目名称:apparatus3-seq,代码行数:41,代码来源:cnc.py
示例13:
if lbf.bindbfield == 1:
lbf.bstage2 = lbf.bstage1
#This step size is used in all ramps from here on
ir_ss = 0.01
buffer=25.0 #Time needed to re-latch the trigger for the AOUTS
s.wait(buffer)
#########################################
## RAMPS TO INTERMEDIATE VALUES
#########################################
# Ramp B Field to intermediate value
bfield = wfm.wave('bfield', evap.fieldrampfinal ,ir_ss)
bfield.appendhold( lbf.brampdelay1 )
bfield.linear( lbf.bstage1, lbf.brampdt1 )
# With respect to the start of the sequence, set QUICK2 pulse
s.wait(-lbf.quick2time + lbf.brampdelay1 )
if lbf.usequick2 == 1:
s.digichg('quick2',1)
else:
s.digichg('quick2',0)
s.wait( lbf.quick2time - lbf.brampdelay1 )
# Ramp up IR and green beams to intermediate value
ir1 = lattice.lattice_wave('ir1pow', ir_p0, ir_ss,volt=-11)
ir2 = lattice.lattice_wave('ir2pow', ir_p0, ir_ss,volt=-11)
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:31,代码来源:Load_Lattice_Bragg_Field.py
示例14: dimple_to_lattice
#.........这里部分代码省略.........
with open(datfile, 'w') as f:
X = numpy.asarray( allRamps )
f.write(bytes(header))
format = '%.6e'
ncol = X.shape[1]
format = [format ,] *ncol
format = ' '.join(format)
newline = '\n'
for row in X:
f.write(numpy.compat.asbytes(format % tuple(row) + newline))
shutil.copyfile( figfile, seqconf.savedir() + 'expseq' + seqconf.runnumber() + '_latticeRamp.png')
shutil.copyfile( datfile, seqconf.savedir() + 'expseq' + seqconf.runnumber() + '_latticeRamp.dat')
#plt.savefig( seqconf.savedir() + 'expseq' + seqconf.runnumber() + '_latticeRamp.png', dpi=120)
#################################
#### APPEND RAMPS TO SEQUENCE ###
#################################
wfms=[]
if DL.signal == 0:
print " LOCK VALUE FOR SIGNAL / NOSIGNAL "
print " before = ", DL.lock_Er
DL.lock_Er = DL.lock_Er / 1.8
print " after = \n", DL.lock_Er
for ch in ['ir1pow','ir2pow','ir3pow']:
n = filter( str.isdigit, ch)[0]
w = wfm.wave(ch, 0.0, DL.ss) #Start value will be overrriden
w.y = physics.cnv( ch, y_ir )
if DL.lock:
endval = w.y[-1]
w.insertlin_cnv(DL.lock_Er, DL.lock_dtUP, DL.lock_t0 )
elif DL.lightassist_lock:
endval = w.y[-1]
w.linear(DL.lightassist_lockpowIR, DL.lightassist_lockdtUP)
w.appendhold( DL.lightassist_t0 + DL.lightassistdt )
if DL.endvalIR >= 0.:
w.linear( DL.endvalIR, DL.lightassist_lockdtDOWN)
else:
w.linear( None, DL.lightassist_lockdtDOWN, volt=endval)
wfms.append(w)
for ch in ['greenpow1','greenpow2','greenpow3']:
n = filter( str.isdigit, ch)[0]
w = wfm.wave(ch, 0.0, DL.ss) #Start value will be overrriden
correction = DIMPLE.__dict__['gr'+n+'correct']
w.y = physics.cnv( ch, correction * grwfms[ch] )
if DL.lightassist_lock:
endval = w.y[-1]
w.linear(DL.lightassist_lockpowGR, DL.lightassist_lockdtUP)
w.appendhold( DL.lightassist_t0 + DL.lightassistdt )
if DL.endvalGR >= 0.:
w.linear( DL.endvalGR, DL.lightassist_lockdtDOWN)
else:
w.linear( None, DL.lightassist_lockdtDOWN, volt=endval)
wfms.append(w)
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:65,代码来源:lattice.py
示例15:
#Get hfimg ready
s.digichg('hfimg',1)
#If using analoghfimg get it ready
if ANDOR.analoghfimg == 1:
s.digichg('analogimgttl',1)
# Do CNC, UVMOT, and field ramps
s, toENDBFIELD = highfield_uvmot.go_to_highfield(s)
analoghfimg = []
# THis section used to resolve the issue we have probe or bragg kill in dimple section
if DL.probekill ==1:
if (-DL.probekilltime) > DL.image:
analoghfimg = [wfm.wave('analogimg', DL.probekill_hfimg, EVAP.evapss)]
elif DL.braggkill == 1:
if (-DL.braggkilltime) > DL.image:
print "...braggkill will be inserted in DIMPLE part of sequence"
hfimgwfm = wfm.wave('analogimg', DL.braggkill_hfimg, EVAP.evapss)
analoghfimg = [hfimgwfm]
# Evaporate into the dimple
s, cpowend = odt.crossbeam_dimple_evap(s, toENDBFIELD,analoghfimg)
开发者ID:novaliu86,项目名称:apparatus3-seq,代码行数:29,代码来源:Evap_Dimple_Lattice.py
示例16: go_to_highfield
def go_to_highfield(s):
#Keep ODT on
ODT = gen.bstr('ODT',report)
if ODT == True:
s.digichg('odtttl',1)
s.wait(20.0)
ss = float(report['SEQ']['analogstepsize'])
# Cool and Compress MOT
# ENDCNC is defined as the time up to release from the MOT
motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps()
# Load UVMOT from CNCMOT
uvfppiezo, uvpow, motpow, repdet, trapdet, reppow, trappow, bfield, ENDUVMOT = uvcooling.uvcoolRamps(motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC)
# Set imaging values
camera = 'ANDOR'
motpow, repdet, trapdet, reppow, trappow, maxDT = cnc.imagingRamps_nobfield(motpow, repdet, trapdet, reppow, trappow, camera)
# Switch bfield to FESHBACH
overlapdt = float(report['ODT']['overlapdt'])
rampdelay = float(report['ODT']['rampdelay'])
rampbf = float(report['ODT']['rampbf'])
bf = float(report['ODT']['bf'])
feshbachdt = float(report['ODT']['feshbachdt'])
switchondt = float(report['FESHBACH']['switchondt'])
switchdelay = float(report['FESHBACH']['switchdelay'])
bias = float(report['FESHBACH']['bias'])
biasrampdt = float(report['FESHBACH']['rampdt'])
bfield.chop(ENDUVMOT-overlapdt)
bfield.appendhold(rampdelay)
bfield.linear( bf, rampbf)
bfield.extend(ENDUVMOT+feshbachdt)
bfield.linear(0.0, 0.0)
ENDBFIELD = feshbachdt
bfield.appendhold( switchondt + switchdelay)
bfield.linear(bias,biasrampdt)
rampupdt = float(report['ODT']['rampupdt'])
updt = float(report['ODT']['updt'])
overshootdt = float(report['ODT']['overshootdt'])
#~ odtpow0 = wfm.wave('odtpow', 0.0, ss)
#~ odtpow0.extend(ENDUVMOT-overlapdt-updt-rampupdt)
#~ odtpow0.odt_linear( 0.0 , f('ODT','odtpow0'), rampupdt)
#~ odtpow0.appendhold( updt)
#~ odtpow0.odt_linear(f('ODT','odtpow0'), f('ODT','odtpow'), overshootdt)
odtpow0 = wfm.wave('odtpow', f('ODT','odtpow0'), ss)
odtpow0.extend(ENDUVMOT-overlapdt)
odtpow0.odt_linear(f('ODT','odtpow0'), f('ODT','odtpow'), overshootdt)
EXTRA = max( overshootdt - (bfield.dt() - (ENDUVMOT-overlapdt-updt-rampupdt)) , 0.0)
print "...EXTRA time to allow for ODT overshoot = %f" % EXTRA
#Add waveforms to sequence
s.analogwfm_add(ss,[ motpow, repdet, trapdet, bfield, reppow, trappow, uvfppiezo, uvpow, odtpow0])
#wait normally rounds down using floor, here the duration is changed before so that
#the wait is rounded up
ENDUVMOT = ss*math.ceil(ENDUVMOT/ss)
#insert QUICK pulse for fast ramping of the field gradient
s.wait(-10.0)
quickval = 1 if gen.bstr('CNC',report) == True else 0
s.digichg('quick',quickval)
s.wait(10.0)
#insert UV pulse
uvtime = float(report['UV']['uvtime'])
s.wait(ENDCNC)
s.digichg('quick',0)
s.wait(uvtime)
#Shut down the UVAOM's and open the shutter
s.wait(-50.0)
s.digichg('uvaom1',0)
s.digichg('uvaom2',0)
s.digichg('uvshutter',1)
s.wait(50.0)
#Turn on UVAOM
s.digichg('uvaom1',1)
s.wait(-uvtime - ENDCNC)
#Go to MOT release time and set QUICK back to low
s.wait(ENDUVMOT)
s.digichg('quick',0)
#Leave UVMOT on for state transfer
fstatedt = float(report['ODT']['fstatedt'])
s.wait(fstatedt)
s.digichg('uvaom1',0)
s.wait(-fstatedt)
#RELEASE FROM MOT
#.........这里部分代码省略.........
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:101,代码来源:highfield.py
示例17: SineMod
sys.path.append('L:/software/apparatus3/seq/utilspy')
sys.path.append('L:/software/apparatus3/seq/seqspy')
sys.path.append('L:/software/apparatus3/convert')
import wfm, numpy
import time
mod_ss = 0.02
cpow = 6.0
moddt = 200.0
moddepth = 40.0
freq_0 = 10
step = 10
freq_f = 15000
odtpow = wfm.wave('odtpow', None, mod_ss, volt=cpow)
set = numpy.arange(freq_0 , freq_0 + step*(numpy.fix((freq_f-freq_0)/step)+1), step)
print set
print
for modfreq in set:
t0=time.time()
print "...Creating SineMod (cpow=%.2f, moddt=%.2f, modfreq=%.2f, moddepth=%.2f" % (cpow, moddt, modfreq, moddepth)
odtpow.SineMod( cpow, moddt, modfreq, moddepth)
print '...Time used = %.2f seconds\n' % (time.time()-t0)
print ""
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:31,代码来源:TRAPFREQ_ernie2.py
示例18: go_to_highfield
def go_to_highfield(s):
#---Keep ODT on
odton = gen.bstr('ODT',report)
if odton == True:
s.digichg('odtttl',1)
s.wait(20.0)
ss = SEQ.analogstepsize
#---Cool and Compress MOT
#---ENDCNC is defined as the time up to release from the MOT
motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps()
#---Load UVMOT from CNCMOT
uvpow2, uvpow, motpow, bfield, ENDUVMOT = uvmot.uvRamps(motpow, bfield, ENDCNC)
repdet.extend(ENDUVMOT)
trapdet.extend(ENDUVMOT)
reppow.extend(ENDUVMOT)
trappow.extend(ENDUVMOT)
#---Make sure everything has the same length before setting imaging values
#--- Set imaging values
camera = 'ANDOR'
motpow, repdet, trapdet, reppow, trappow, maxDT = cnc.imagingRamps_nobfield(motpow, repdet, trapdet, reppow, trappow, camera)
#---Switch bfield to FESHBACH
bfield.appendhold(FB.rampdelay)
bfield.linear( FB.bf, FB.rampbf)
bfield.appendhold( FB.feshbachdt)
bfield.linear(0.0, 0.0)
bfield.appendhold( FB.switchondt + FB.switchdelay + UV.extradt)
bfield.linear(FB.bias,FB.rampdt)
#---Set the starting voltage for the ODT
odtpow0 = odt.odt_wave('odtpow', ODT.odtpow0, ss)
odtpow0.extend(ENDUVMOT)
#---Change shunt value from motV to hfV before going to highfield
shunt = wfm.wave('gradientfield', SHUNT.motV, ss, volt = SHUNT.motV)
shunt.extend(ENDUVMOT + FB.rampdelay + FB.rampbf + FB.feshbachdt + UV.extradt)
#shunt.linear(SHUNT.hfV, 0.0,volt =SHUNT.hfV)
shunt.linear(SHUNT.hfV, 0.0,volt =0.0)
wfms = [ motpow, repdet, trapdet, bfield, reppow, trappow, uvpow, uvpow2,odtpow0, shunt]
#---Add waveforms to sequence
s.analogwfm_add(ss,wfms)
#wait normally rounds down using floor, here the duration is changed before so that
#the wait is rounded up
ENDUVMOT = ss*math.ceil(ENDUVMOT/ss)
#---Insert QUICK pulse for fast ramping of the field gradient during CNC
s.wait(-10.0)
quickval = 1 if gen.bstr('CNC',report) == True else 0
s.digichg('quick',quickval)
s.wait(10.0)
s.wait(ENDCNC)
s.digichg('quick',0)
#---Go back in time, shut down the UVAOM's and open the shutter
#---UVAOM's were on to keep them warm
s.wait(-50.0)
s.digichg('uvaom1',0)
s.digichg('uvaom2',0)
s.digichg('uvshutter',1)
s.wait(50.0)
#---Insert ODT overlap
s.wait(-ODT.overlapdt-ODT.servodt)
s.digichg('odt7595',1)
s.wait(ODT.servodt)
s.digichg('odtttl',1)
s.wait(ODT.overlapdt)
#---Turn OFF red light
s.wait(UV.delay_red)
s.digichg('motswitch',0)
s.digichg('motshutter',1)
s.wait(-UV.delay_red)
#---Turn ON UVAOM's
s.wait(UV.delay_uv)
s.digichg('uvaom1',1)
s.digichg('uvaom2',1)
s.wait(-UV.delay_uv)
#---Go to MOT release time
s.wait(-ENDCNC)
s.wait(ENDUVMOT)
#.........这里部分代码省略.........
开发者ID:brownfriend,项目名称:apparatus3-seq,代码行数:101,代码来源:highfield_uvmot.py
示例19:
ss=float(report['CNC']['cncstepsize'])
# Cool and Compress MOT
# ENDCNC is defined as the time up to release from the MOT
motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps()
#motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.statetransfer_F32(motpow, repdet, trapdet, reppow, trappow, bfield)
motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.statetransfer_F12(motpow, repdet, trapdet, reppow, trappow, bfield)
#camera='ANDOR'
camera='BASLER'
# Set imaging values
motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps(motpow, repdet, trapdet, reppow, trappow, bfield, camera)
# Set uv1freq for lightshift probing
freq=float(report['UVLIGHTSHIFT']['freq'])
uv1freq = wfm.wave('uv1freq',cnv('uv1freq',freq),ss)
uv1freq.extend(maxDT)
#Add waveforms to sequence
s.analogwfm_add(ss,[motpow,repdet,trapdet,bfield,reppow,trappow,uv1freq])
#wait normally rounds down using floor, here the duration is changed before so that
#the wait is rounded up
ENDCNC = ss*math.ceil(ENDCNC/ss)
#insert QUICK pulse for fast ramping of the field gradient
s.wait(-10.0)
quickval = 1 if gen.bstr('CNC',report) == True else 0
s.digichg('quick',quickval)
s.wait(10.0)
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:30,代码来源:basler_fluorescence_uvkill.py
示例20: cncRamps
def cncRamps():
# Initialize channels to MOT SS values and with cncstepsize
ss=f('CNC','cncstepsize')
motpow = wfm.wave('motpow', f('MOT','motpow') ,ss)
repdet = wfm.wave('repdet', f('MOT','repdetSS') ,ss)
trapdet = wfm.wave('trapdet',f('MOT','trapdetSS'),ss)
reppow = wfm.wave('reppow', f('MOT','reppowSS') ,ss)
trappow = wfm.wave('trappow',f('MOT','trappowSS'),ss)
bfield = wfm.wave('bfield', f('MOT','bfield') ,ss)
CNC = gen.bstr('CNC',report)
#If CNC is selected in the report then insert necessary linear ramps
#First ramp bfield
SINH = gen.bstr('sinh',report)
if SINH == True:
bfield.sinhRise(f('CNC','bfieldf') if CNC == True else f('MOT','bfield'), f('CNC','dtbfield'), f('CNC','dtbfield')*f('CNC','taubfield'))
else:
bfield.linear( f('CNC','bfieldf') if CNC == True else f('MOT','bfield'), f('CNC','dtbfield'))
#Hold off start of laser ramps
delay = f('CNC','delay')
motpow.appendhold( delay )
repdet.appendhold( delay )
trapdet.appendhold( delay )
reppow.appendhold( delay )
trappow.appendhold( delay )
#Do laser ramps
motpow.linear( f('CNC','motpowf') if CNC == True else f('MOT','motpow') , f('CNC','dtmotpow'))
repdet.linear( f('CNC','repdetf') if CNC == True else f('MOT','repdetSS') , f('CNC','dtrepdet'))
trapdet.linear( f('CNC','trapdetf') if CNC == True else f('MOT','trapdetSS'), f('CNC','dttrapdet'))
reppow.linear( f('CNC','reppowf') if CNC == True else f('MOT','reppowSS') , f('CNC','dtreppow'))
trappow.linear( f('CNC','trappowf') if CNC == True else f('MOT','trappowSS'), f('CNC','dttrappow'))
#print motpow.dt()
#Extend all ramps to match current total duration
print '...CNC = ' + str(CNC)
ht = (f('CNC','holdtime') if CNC == True else 0.0)
#print "holdtime = " + str(ht)
ENDCNC = max( motpow.dt(), repdet.dt(), trapdet.dt(), reppow.dt(), trappow.dt(), bfield.dt() ) + ht
motpow.extend( ENDCNC)
#print motpow.dt()
repdet.extend( ENDCNC)
trapdet.extend(ENDCNC)
bfield.extend( ENDCNC)
reppow.extend( ENDCNC)
trappow.extend( ENDCNC)
maxN=int(math.floor( (ENDCNC)/ss))+1
#print motpow.dt()
#print reppow.dt()
#print trappow.dt()
#print repdet.dt()
#print trapdet.dt()
#print bfield.dt()
#print uvdet.dt()
#Up to here you have a Cooled and Compressed MOT
#
return motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC
开发者ID:PedroMDuarte,项目名称:apparatus3-seq,代码行数:62,代码来源:cnc.py
注:本文中的wfm.wave函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论