Ejemplo n.º 1
0
    def calcLowSallenKey(self):
        nom = self.tf[0]
        den = self.tf[1]
        R1 = None
        R2 = None
        Ra = None
        Rb = None
        C1 = None
        C2 = None
        k = nom[2] / den[2]
        a = den[0] / den[2]
        b = den[1] / den[2]

        C1 = 10 * 10**-9
        C2 = C1
        Wo = 1 / (a**(1 / 2))
        R = 1 / (Wo * C1)
        Rb = 10 * 10**3
        Ra = (k - 1) * Rb
        if self.roun == True:
            R = find_nearest(E12, R)
            C1 = find_nearest(E12, C1)
            C2 = find_nearest(E12, C2)
            Ra = find_nearest(E12, Ra)
            Rb = find_nearest(E12, Rb)

        temp = {'R1': R, 'R2': R, 'C1': C1, 'C2': C2, 'Ra': Ra, 'Rb': Rb}
        return temp
Ejemplo n.º 2
0
def FTBand(k,wo,Q,R8,R3,R7,C1,C2):
    R2 = R8 / (wo**2 * R3*R7*C1*C2)
    R2 = find_nearest(E24,R2)
    R1 = Q/(C1*wo)
    R1 = find_nearest(E24,R1)
    R4 = R1*R8/(k*R7)
    R4 = find_nearest(E24,R4)
    temp = {'R1':R1,'R2':R2, 'R3':R3, 'R4':R4, 'R7':R7, 'R8':R8, 'C1':C1, 'C2':C2}
    return temp
Ejemplo n.º 3
0
def FTLow(k,wo,Q,R8,R3,R7,C1,C2):
    R2 = R8 / (wo**2 * R3*R7*C1*C2)
    R2 = find_nearest(E24,R2)
    R1 = Q/(C1*wo)
    R1 = find_nearest(E24,R1)
    R5 = R2/k#-R2/k 
    R5 = find_nearest(E24,R5)
    temp = {'R1':R1,'R2':R2, 'R3':R3,'R5':R5, 'R7':R7, 'R8':R8, 'C1':C1, 'C2':C2}
    return temp
    
Ejemplo n.º 4
0
def FTHigh(k,wo,Q,R8,R3,R7,C1,C2):
    R2 = R8 / (wo**2 * R3*R7*C1*C2)
    R2 = find_nearest(E24,R2)
    R1 = Q/(C1*wo)
    R1 = find_nearest(E24,R1)
    R6 = R8/k#-R8/k
    R6 = find_nearest(E24,R6)
    R4 = R1 * R6/R7
    R4 = find_nearest(E24,R4)
    temp = {'R1':R1,'R2':R2, 'R3':R3, 'R4':R4, 'R6':R6, 'R7':R7, 'R8':R8, 'C1':C1, 'C2':C2}
    return temp
Ejemplo n.º 5
0
 def roundValues(self, NormRes, NormCap):
     roundingNorm = NormRes
     roundingNormCap = NormCap
     self.values['C21'] = find_nearest(roundingNormCap, self.values['C21'])
     self.values['C22'] = find_nearest(roundingNormCap, self.values['C22'])
     self.values['C3'] = find_nearest(roundingNormCap, self.values['C3'])
     self.values['Ra1'] = find_nearest(roundingNorm, self.values['Ra1'])
     self.values['Ra2'] = find_nearest(roundingNorm, self.values['Ra2'])
     self.values['R41'] = find_nearest(roundingNorm, self.values['R41'])
     self.values['R42'] = find_nearest(roundingNorm, self.values['R42'])
     self.values['R1'] = find_nearest(roundingNorm, self.values['R1'])
     self.values['Rb'] = find_nearest(roundingNorm, self.values['Rb'])
def solar_current_gain():
    V_a_plus = (V_op - (I_solar_min * R1)) * (R4 /
                                              (R4 + R5)) - I_solar_min * R1
    R9 = R6 * (V_adc_max / V_a_plus - 1)
    R9 = find_nearest(E24, R9)
    print("R9 = " + str(R9))
    return R9
def battery_current_gain():
    V_b_plus = (V_op - (I_battery_min * R2)) * (R3 /
                                                (R3 + R7)) - I_battery_min * R2
    #print("v_b+ = " + str(V_b_plus))
    R10 = R8 * (V_adc_max / V_b_plus - 1)
    R10 = find_nearest(E24, R10)
    print("R10 = " + str(R10))
    return R10
def trickle_current():
    V_b_plus = (V_op + (I_trickle_current * R2)) * (
        R3 / (R3 + R7)) + I_trickle_current * R2
    print("v_b+ = " + str(V_b_plus))
    V_b_out = (R10 / R8 + 1) * V_b_plus
    print("V_b_out = " + str(V_b_out))
    R17 = (V_b_out * R18 * R19) / ((V_op - V_b_out) * R19 - V_b_out * R18)
    R17 = find_nearest(E24, R17)
    print("R17 = " + str(R17))
    return R17
def over_current():
    V_b_plus = (V_op +
                (I_over_current * R2)) * (R3 / (R3 + R7)) + I_over_current * R2
    print("v_b+ = " + str(V_b_plus))
    V_b_out = (R10 / R8 + 1) * V_b_plus
    print("V_b_out = " + str(V_b_out))
    R18 = R19 * V_op / V_b_out - R19
    R18 = find_nearest(E24, R18)
    print("R18 = " + str(R18))
    return R18
Ejemplo n.º 10
0
 def calcFirstOrderLowPass(self):
     nom = self.tf[0]
     den = self.tf[1]
     R = None
     Ra = None
     Rb = None
     C = None
     k = nom[2] / den[2]
     a = den[1] / den[2]
     C = 10 * 10**-9  ##Fijo constantes
     Rb = 10 * 10**3
     R = a * (1 / C)
     Ra = (k - 1) * Rb
     if self.roun == True:
         R = find_nearest(E12, R)
         Ra = find_nearest(E12, Ra)
         Rb = find_nearest(E12, Rb)
         C = find_nearest(E12, C)
     temp = {'R': R, 'Ra': Ra, 'Rb': Rb, 'C': C}
     return temp
Ejemplo n.º 11
0
    def calcFirstOrderHighPass(self):
        nom = self.tf[0]
        den = self.tf[1]

        a = den[1] / den[2]
        B = nom[1] / den[2]
        k = B / a
        Wo = 1 / a

        Rb = 10 * 10**3
        Ra = (k - 1) * Rb

        C = 10 * 10**-9
        R = 1 / (Wo * C)
        if self.roun == True:
            C = find_nearest(E12, C)
            R = find_nearest(E12, R)
            Ra = find_nearest(E12, Ra)
            Rb = find_nearest(E12, Rb)

        temp = {'C': C, 'Ra': Ra, 'Rb': Rb, 'R': R}
        return temp
Ejemplo n.º 12
0
    def calcHighSallenKey(self):
        nom = self.tf[0]
        den = self.tf[1]

        a = den[0] / den[2]
        B = nom[0] / den[2]
        k = B / a
        b = den[1] / den[2]
        Wo = 1 / (a**(1 / 2))

        Rb = 10 * 10**3
        Ra = (k - 1) * Rb

        C = 10 * 10**-9
        R = 1 / (Wo * C)
        if self.roun == True:
            R = find_nearest(E12, R)
            C = find_nearest(E12, C)
            Ra = find_nearest(E12, Ra)
            Rb = find_nearest(E12, Rb)

        temp = {'R1': R, 'R2': R, 'C1': C, 'C2': C, 'Ra': Ra, 'Rb': Rb}
        return temp
def solar_voltage_divider():
    R13 = R14 * ((V_solar_max / V_adc_max) - 1.0)
    R13 = find_nearest(E24, R13)
    print("R13 = " + str(R13))
    return R13
def ldo_divider():
    R27 = R28 * Vref_ldo / (Vout - Vref_ldo)
    R27 = find_nearest(E24, R27)
    print("R27 = " + str(R27))
    return R27
def mppt_pwm_resistor():
    Vset = V_sol * (R14 / (R13 + R14))
    R20 = (V_pwm - Vset) * (R22 * R23) / ((Vset * (R22 + R23) - V_op * R23))
    R20 = find_nearest(E24, R20)
    print("R20 = " + str(R20))
    return R20
def mppt_resistor_divider():
    R22 = R23 * ((R14 + R13) * V_op / (R14 * V_solar_mppt) - 1)
    R22 = find_nearest(E24, R22)
    print("R22 = " + str(R22))
    return R22
def boost_resistor_divider():
    R26 = R25 * V_ref_boost / (V_boost - V_ref_boost)
    R26 = find_nearest(E24, R26)
    print("R26 = " + str(R26))
    return R26
def battery_current_bias():
    R7 = (V_op * R3) / (I_solar_max * R2) - 2 * R3
    R7 = find_nearest(E24, R7)
    print("R7 = " + str(R7))
    return R7
Ejemplo n.º 19
0
def test_nearest_returns_value_from_series(data):
    series_key = data.draw(sampled_from(ESeries))
    value = data.draw(sampled_from(series(series_key)))
    assert find_nearest(series_key, value) == value
def solar_current_bias():
    R5 = (V_op * R4) / (I_solar_max * R1) - 2 * R4
    R5 = find_nearest(E24, R5)
    print("R5 = " + str(R5))
    return R5
Ejemplo n.º 21
0
def test_find_nearest_in_range(series_key, value):
    nearest = find_nearest(series_key, value)
    assert find_less_than_or_equal(
        series_key, value) <= nearest <= find_greater_than_or_equal(
            series_key, value)
def battery_voltage_divider():
    R11 = R12 * ((V_battery_max / V_adc_max) - 1.0)
    R11 = find_nearest(E24, R11)
    print("R11 = " + str(R11))
    return R11
Ejemplo n.º 23
0
def test_find_nearest_is_nearest(series_key, value):
    nearest = find_nearest(series_key, value)
    lower = find_less_than_or_equal(series_key, value)
    upper = find_greater_than_or_equal(series_key, value)
    assert (((nearest == lower) and (nearest - lower <= upper - nearest))
            or ((nearest == upper) and (upper - nearest <= nearest - lower)))