Пример #1
0
    def fit_curve(self):
        if self.running == True or self.data[0] == []:
            return

        # for i in range(len(self.data[1])):
        # 	if self.data[1][i] > 0.1:
        # 		break

        # px = self.data[0][i:]
        # py = self.data[1][i:]

        f = em.fit_exp(self.data[0], self.data[1])
        if f != None:
            self.traces.append(
                self.pwin.plot(f[2], f[3], pen=self.traceCols[self.trial % 5]))
            self.trial += 1
            k = 1.38e-23  # Boltzmann const
            q = 1.6e-19  # unit charge
            Io = f[1][0]
            a1 = f[1][1]
            T = 300.0  # Room temp in Kelvin
            n = q / (a1 * k * T)
            ss1 = '%5.2e' % Io
            ss2 = '%5.2f' % n
            self.msg(
                self.tr('Fitted with Diode Equation : Io = ') + ss1 +
                self.tr(' mA , Ideality factor = ') + ss2 +
                'Knee Voltage Approx: ' + str(f[4]))
            self.history.append((self.data[0], f[0]))
        else:
            self.msg(self.tr('Analysis failed. Could not fit data'))
Пример #2
0
    def fit_curve(self):
        if self.history != []:
            fa = em.fit_exp(self.history[-1][0], self.history[-1][1])
        else:
            self.msg(self.tr('No data to analyze.'))
            return
        try:
            rval = float(self.Rval.text()) / 1000  # convert to kOhms
        except:
            return

        if fa != None:
            pa = fa[1]
            rc = abs(1.0 / pa[1])
            self.traces.append(
                self.pwin.plot(self.history[-1][0],
                               fa[0],
                               pen=self.traceCols[self.trial % 5]))
            self.trial += 1
            ss = '%5.1f' % rc
            self.msg(
                self.tr('Fitted data with V=Vo*exp(-t/RC). RC = ') + ss +
                self.tr(' mSec'))
        else:
            self.msg(self.tr('Failed to fit the curve with V=Vo*exp(-t/RC)'))
Пример #3
0
	def fit_curve(self):
		if self.running == True or self.data[0]==[]:
			return
		f = em.fit_exp(self.data[0], self.data[1])
		if f != None:
			self.traces.append(self.pwin.plot(self.data[0], f[0], pen = self.traceCols[self.trial%5]))
			self.trial += 1
			k = 1.38e-23    # Boltzmann const
			q = 1.6e-19     # unit charge
			Io = f[1][0]
			a1 = f[1][1]
			T = 300.0		# Room temp in Kelvin
			n = q/(a1*k*T)
			ss1 = '%5.2e'%Io
			ss2 = '%5.2f'%n
			self.msg(self.tr('Fitted with Diode Equation : Io = ') +ss1 + self.tr(' mA , Ideality factor = ') + ss2)
			self.history.append((self.data[0], f[0]))			
		else:
			self.msg(self.tr('Analysis failed. Could not fit data'))
Пример #4
0
	def fit_curve(self):
		if self.running == True or self.data[0]==[]:
			return
		f = em.fit_exp(self.data[0], self.data[1])
		if f != None:
			self.traces.append(self.pwin.plot(self.data[0], f[0], pen = self.traceCols[self.trial%5]))
			self.trial += 1
			k = 1.38e-23    # Boltzmann const
			q = 1.6e-19     # unit charge
			Io = f[1][0]
			a1 = f[1][1]
			T = 300.0		# Room temp in Kelvin
			n = q/(a1*k*T)
			ss1 = '%5.2e'%Io
			ss2 = '%5.2f'%n
			self.msg(self.tr('Fitted with Diode Equation : Io = ') +ss1 + self.tr(' mA , Ideality factor = ') + ss2)
			self.history.append((self.data[0], f[0]))			
		else:
			self.msg(self.tr('Analysis failed. Could not fit data'))
Пример #5
0
 def fit_curve(self):
     try:
         Rext = float(self.Rextext.text())
     except:
         self.msg(self.tr('Enter a valid Resistance'))
         return
     if self.history != []:
         sp = self.getSP(self.history[-1][1])
         ta = self.history[-1][0][sp:]
         va = self.history[-1][1][sp:]
         fa = em.fit_exp(ta, va)
     else:
         self.msg(self.tr('No data to analyze.'))
         return
     if fa != None:
         try:
             self.p.set_state(
                 OD1=1
             )  # Do some DC work to find the resistance of the Inductor
             time.sleep(.5)
             v = self.p.get_voltage('A2')
             Vind = self.p.get_voltage('A1')  # voltage across the Inductor
         except:
             self.comerr()
             return
         if v > 4.0:  # Means user has connected OD1 to A2
             vtotal = v
         else:
             vtotal = 5.0  # Assume OD1 = 5 volts
         i = (vtotal - Vind) / Rext
         Rind = Vind / i
         pa = fa[1]
         par1 = abs(1.0 / pa[1])
         ss1 = '%5.3f' % par1
         ss2 = '%5.0f' % Rind
         ss3 = '%5.1f' % ((Rext + Rind) * par1)
         self.msg(
             self.tr('L/R = ') + ss1 + self.tr(' mSec : Rind = ') + ss2 +
             self.tr(' Ohm : L = ') + ss3 + self.tr(' mH'))
         self.traces.append(self.pwin.plot(ta, va, pen=self.trial * 2))
     else:
         self.msg(self.tr('Failed to fit the curve with V=Vo*exp(-t*L/R)'))
Пример #6
0
	def fit_curve(self):
		try:
			Rext = float(self.Rextext.text())
		except:
			self.msg(self.tr('Enter a valid Resistance'))
			return
		if self.history != []:
			sp = self.getSP(self.history[-1][1])
			ta = self.history[-1][0][sp:]
			va = self.history[-1][1][sp:]
			fa = em.fit_exp(ta,va)
		else:
			self.msg(self.tr('No data to analyze.'))
			return
		if fa != None:
			try:
				self.p.set_state(OD1=1)			# Do some DC work to find the resistance of the Inductor
				time.sleep(.5)
				v = self.p.get_voltage('A2')
				Vind = self.p.get_voltage('A1')     # voltage across the Inductor
			except:
				self.comerr()
				return	
			if v > 4.0:					# Means user has connected OD1 to A2
				vtotal = v
			else:
				vtotal = 5.0			# Assume OD1 = 5 volts
			i = (vtotal - Vind)/Rext
			Rind = Vind/i
			pa = fa[1]
			par1 = abs(1.0 / pa[1])
			ss1 = '%5.3f'%par1
			ss2 = '%5.0f'%Rind
			ss3 = '%5.1f'%((Rext+Rind)*par1)
			self.msg(self.tr('L/R = ') + ss1 + self.tr(' mSec : Rind = ') + ss2 + self.tr(' Ohm : L = ') + ss3 +  self.tr(' mH'))
			self.traces.append(self.pwin.plot(ta,va, pen = self.trial*2))
		else:
			self.msg(self.tr('Failed to fit the curve with V=Vo*exp(-t*L/R)'))