Esempio n. 1
0
    def analizarRegistroDat(self, reg, calibr, tv, ti, header):
        reg.v1 = ((300 * reg.v1Raw) / 65278) * tv
        if self.largoRegistro == 12:
            reg.v1Max = ((300 * reg.v1MaxRaw) / 65278) * tv
            reg.v1Min = ((300 * reg.v1MinRaw) / 65278) * tv
            if reg.v1 > reg.v1Max: reg.v1Max = reg.v1
            if reg.v1Min > reg.v1: reg.v1 = reg.v1Min
            reg.v1, reg.v1Max, reg.v1Min = (limitar(
                v, 0, header.vNom * self.deltaMax * tv)
                                            for v in (reg.v1, reg.v1Max,
                                                      reg.v1Min))
        elif self.largoRegistro == 6:
            reg.v1Max, reg.v1Min = reg.v1, reg.v1

        thd = reg.thdRaw * 50 / 65278
        fkr = reg.fkrRaw * 20 / 65278
        reg.thd = limitar(thd, 0, self.thdCap)
        reg.fkr = limitar(fkr, 0, self.fkrCap)
        return reg
Esempio n. 2
0
 def analizarRegistroDat(self, reg, calibr, tv, ti, header):
     reg.v1 = reg.v1Raw * (header.vNom / calibr.cV) * tv
     reg.v1Max = reg.v1MaxRaw * (header.vNom / calibr.cV) * tv
     reg.v1Min = reg.v1MinRaw * (header.vNom / calibr.cV) * tv
     if reg.v1 > reg.v1Max: reg.v1 = reg.v1Max
     if reg.v1Min > reg.v1: reg.v1Min = reg.v1
     reg.v1, reg.v1Max, reg.v1Min = (limitar(v, 0, header.vNom * self.deltaMax * tv) for v in
                                     (reg.v1, reg.v1Max, reg.v1Min))
     try:
         thd = abs((100 / (reg.v1Raw * (header.vNom / calibr.cV))) * (
             (18 / calibr.cThd) * (reg.thdRaw - ((calibr.cRes / calibr.cV) * reg.v1Raw))))
     except ZeroDivisionError:
         thd = 0
     try:
         fkr = ((reg.fkrRaw * header.vNom * .02) / calibr.cFkr) * (100 / reg.v1 * tv)
     except ZeroDivisionError:
         fkr = 0
     reg.thd = limitar(thd, 0, self.thdCap)
     reg.fkr = limitar(fkr, 0, self.fkrCap)
     return reg
Esempio n. 3
0
    def analizarRegistroDat(self, reg, calibr, tv, ti, header):
        from math import floor
        calibr.cV = 26214 / (220 / header.vNom)
        reg.v1 = reg.v1Raw * (header.vNom / calibr.cV) * tv
        reg.v1Max = reg.v1MaxRaw * (header.vNom / calibr.cV) * tv
        reg.v1Min = reg.v1MinRaw * (header.vNom / calibr.cV) * tv
        if reg.v1 > reg.v1Max: reg.v1Max = reg.v1
        if reg.v1Min > reg.v1: reg.v1 = reg.v1Min
        reg.v1, reg.v1Max, reg.v1Min = (limitar(
            v, 0, header.vNom * self.deltaMax * tv)
                                        for v in (reg.v1, reg.v1Max,
                                                  reg.v1Min))

        reg.v2 = reg.v2Raw * (header.vNom / calibr.cV) * tv
        reg.v2Max = reg.v2MaxRaw * (header.vNom / calibr.cV) * tv
        reg.v2Min = reg.v2MinRaw * (header.vNom / calibr.cV) * tv
        if reg.v2 > reg.v2Max: reg.v2Max = reg.v2
        if reg.v2Min > reg.v2: reg.v2 = reg.v2Min
        reg.v2, reg.v2Max, reg.v2Min = (limitar(
            v, 0, header.vNom * self.deltaMax * tv)
                                        for v in (reg.v2, reg.v2Max,
                                                  reg.v2Min))

        reg.v3 = reg.v3Raw * (header.vNom / calibr.cV) * tv
        reg.v3Max = reg.v3MaxRaw * (header.vNom / calibr.cV) * tv
        reg.v3Min = reg.v3MinRaw * (header.vNom / calibr.cV) * tv
        if reg.v3 > reg.v3Max: reg.v3Max = reg.v3
        if reg.v3Min > reg.v3: reg.v3 = reg.v3Min
        reg.v3, reg.v3Max, reg.v3Min = (limitar(
            v, 0, header.vNom * self.deltaMax * tv)
                                        for v in (reg.v3, reg.v3Max,
                                                  reg.v3Min))

        reg.i1 = reg.i1Raw * (header.iNom / self.iCoef)
        reg.i1Max = reg.i1MaxRaw * (header.iNom / self.iCoef)
        reg.i1Min = reg.i1MinRaw * (header.iNom / self.iCoef)
        reg.i2 = reg.i2Raw * (header.iNom / self.iCoef)
        reg.i2Max = reg.i2MaxRaw * (header.iNom / self.iCoef)
        reg.i2Min = reg.i2MinRaw * (header.iNom / self.iCoef)
        reg.i3 = reg.i3Raw * (header.iNom / self.iCoef)
        reg.i3Max = reg.i3MaxRaw * (header.iNom / self.iCoef)
        reg.i3Min = reg.i3MinRaw * (header.iNom / self.iCoef)

        if reg.i1 > reg.i1Max: reg.i1Max = reg.i1
        if reg.i1Min > reg.i1: reg.i1 = reg.i1Min
        if reg.i2 > reg.i2Max: reg.i2Max = reg.i2
        if reg.i2Min > reg.i2: reg.i2 = reg.i2Min
        if reg.i3 > reg.i3Max: reg.i3Max = reg.i3
        if reg.i3Min > reg.i3: reg.i3 = reg.i3Min

        calibr.cV = header.vNom
        try:
            thd1 = abs(
                (100 / reg.v1) *
                ((18 / (calibr.cThd1 - calibr.cRes1)) *
                 (reg.thdRaw1 - (floor(calibr.cRes1 / calibr.cV) * reg.v1))))
        except ZeroDivisionError:
            thd1 = 0.0
        reg.thd = limitar(thd1, 0, self.thdCap)
        # thd2 = abs((100 / reg.v2) * (
        #         (18 / (calibr.cThd2-calibr.cRes2)) * (reg.thdRaw2 - (floor(calibr.cRes2 / calibr.cV) * reg.v2))))
        # thd3 = abs((100 / reg.v3) * (
        #         (18 / (calibr.cThd3-calibr.cRes3)) * (reg.thdRaw3 - (floor(calibr.cRes3 / calibr.cV) * reg.v3))))

        reg.e1 = ((((reg.e1b1 << 7) + reg.e1b2) << 7) + reg.e1b3) * (
            header.iNom / 35) * (self.eCoef / 1000) * tv * ti
        reg.e2 = ((((reg.e2b1 << 7) + reg.e2b2) << 7) + reg.e2b3) * (
            header.iNom / 35) * (self.eCoef / 1000) * tv * ti
        reg.e3 = ((((reg.e3b1 << 7) + reg.e3b2) << 7) + reg.e3b3) * (
            header.iNom / 35) * (self.eCoef / 1000) * tv * ti

        try:
            reg.phi1 = reg.e1 / (reg.i1 * reg.v1 / 1000 * header.periodo / 60)
        except ZeroDivisionError:
            reg.phi1 = 0.0
        try:
            reg.phi2 = reg.e2 / (reg.i2 * reg.v2 / 1000 * header.periodo / 60)
        except ZeroDivisionError:
            reg.phi2 = 0.0
        try:
            reg.phi3 = reg.e3 / (reg.i3 * reg.v3 / 1000 * header.periodo / 60)
        except ZeroDivisionError:
            reg.phi3 = 0.0
        reg.phi1, reg.phi2, reg.phi3 = (limitar(phi, 0, self.phiCap)
                                        for phi in (reg.phi1, reg.phi2,
                                                    reg.phi3))

        try:
            fkr = ((reg.fkrRaw * header.vNom * .02) /
                   calibr.cFkr) * (100 / reg.v1 * tv)
        except ZeroDivisionError:
            fkr = 0.0
        reg.fkr = limitar(fkr, 0, self.fkrCap) * (220 / header.vNom)

        reg.pTotal = (reg.v1 * reg.i1 * reg.phi1 + reg.v2 * reg.i2 * reg.phi2 +
                      reg.v3 * reg.i3 * reg.phi3) / 1000
        reg.eTotal = sum((reg.e1, reg.e2, reg.e3))

        return reg