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'))
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)'))
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'))
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)'))
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)'))