• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python wfm.wave函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python wfs_input_generator.InputFileGenerator类代码示例发布时间:2022-05-26
下一篇:
Python models.positive_value_exists函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap