Exemplo n.º 1
0
    def test_super_mul(self):

        self.assertEqual(
            SuperpositionCurrent(5) * impedance(2), SuperpositionVoltage(10),
            'I * R')
        self.assertEqual(
            SuperpositionCurrent(5) * impedance(0 * s + 2),
            SuperpositionVoltage(10), 'I * R')
Exemplo n.º 2
0
 def test_voltage_properties(self):
     self.assertEqual(SuperpositionVoltage(
         3).is_dc, True, "Voltage(3).is_dc")
     self.assertEqual(SuperpositionVoltage(phasorvoltage(
         3)).is_ac, True, "Voltage(Vphasor(3)).is_ac")
     self.assertEqual(SuperpositionVoltage(voltage(2), phasorvoltage(3)).is_ac, False,
                      "Voltage(Vconst(2), Vphasor(3)).is_ac")
     self.assertEqual(SuperpositionVoltage(voltage(2), phasorvoltage(3)).is_ac, False,
                      "Voltage(Vconst(2), Vphasor(3)).is_dc")
Exemplo n.º 3
0
    def test_super_op_laplace(self):

        V = SuperpositionVoltage(10 / s)
        Z = impedance(2 * s)
        Y = admittance(1 / (2 * s))
        I = SuperpositionCurrent(5 / s**2)

        self.assertEqual(V._div(Z), I, 'V / R')
        self.assertEqual(I._div(Y), V, 'I / G')
        self.assertEqual(V._mul(Y), I, 'V / G')
        self.assertEqual(I._mul(Z), V, 'I * R')
Exemplo n.º 4
0
    def test_super_op_const(self):

        V = SuperpositionVoltage(10)
        Z = impedance(2)
        Y = admittance(1 / 2)
        I = SuperpositionCurrent(5)

        self.assertEqual(V._div(Z), I, 'V / R')
        self.assertEqual(I._div(Y), V, 'I / G')
        self.assertEqual(V._mul(Y), I, 'V / G')
        self.assertEqual(I._mul(Z), V, 'I * R')
Exemplo n.º 5
0
    def test_super_op_phasor(self):

        V = SuperpositionVoltage((10 * sin(omega * t)).as_phasor())
        # TODO, try with jw
        Z = impedance(2 * s)
        Y = admittance(1 / (2 * s))
        I = SuperpositionCurrent((-5 / omega * cos(omega * t)).as_phasor())

        self.assertEqual(V._div(Z), I, 'V / R')
        self.assertEqual(I._div(Y), V, 'I / G')
        self.assertEqual(V._mul(Y), I, 'V / G')
        self.assertEqual(I._mul(Z), V, 'I * R')
Exemplo n.º 6
0
    def test_super_printing(self):

        self.assertEqual(SuperpositionVoltage(3).latex(),
                         '3', 'SuperpositionVoltage(3)')
        self.assertEqual(SuperpositionVoltage(3 * s).latex(),
                         '3 s', 'SuperpositionVoltage(3 * s)')
        self.assertEqual(SuperpositionVoltage(2 * sin(omega * t)).latex(),
                         '2 \\sin{\\left(\\omega t \\right)}',
                         'SuperpositionVoltage(2 * sin(omega * t))')
        self.assertEqual(SuperpositionVoltage(3 + 2 * sin(omega * t)).latex(),
                         '2 \\sin{\\left(\\omega t \\right)} + 3',
                         'SuperpositionVoltage(3 + 2 * sin(omega * t))')
Exemplo n.º 7
0
 def test_voltage_add_sub_dc(self):
     self.assertEqual2(SuperpositionVoltage(
         3).dc, voltage(3), "Voltage(3).dc")
     self.assertEqual2(SuperpositionVoltage(2, 3).dc,
                       voltage(5), "Voltage(2, 3).dc")
     self.assertEqual2(SuperpositionVoltage(
         2, 3).ac, {}, "Voltage(2, 3).ac")
     self.assertEqual2(-SuperpositionVoltage(2).dc,
                       voltage(-2), "-Voltage(2).dc")
     self.assertEqual2(SuperpositionVoltage(2) + SuperpositionVoltage(3), SuperpositionVoltage(5),
                       "Voltage(2) + Voltage(3)")
     self.assertEqual2(SuperpositionVoltage(2) - SuperpositionVoltage(3), SuperpositionVoltage(-1),
                       "Voltage(2) - Voltage(3)")
Exemplo n.º 8
0
    def test_voltage_transform(self):

        V1 = SuperpositionVoltage('3 * exp(-2 * t)')
        self.assertEqual(V1.transform(s), voltage(3 / (s + 2)), 'transform(s)')

        V2 = SuperpositionVoltage('3 * exp(-2 * t) * u(t)')
        self.assertEqual(V2.transform(s), voltage(3 / (s + 2)), 'transform(s)')
        self.assertEqual(simplify(V2.transform(
            f) - voltage(3 / (j * 2 * pi * f + 2))), 0, 'transform(f)')
Exemplo n.º 9
0
    def test_voltage_has(self):

        a = SuperpositionVoltage('3 * exp(-t) * t * a')
        self.assertEqual(a.has(3), True, "has(3)")
        self.assertEqual(a.has(4), False, "has(4)")
        self.assertEqual(a.has(t), True, "has(t)")
        self.assertEqual(a.has_symbol(t), True, "has_symbol(t)")
        self.assertEqual(a.has_symbol('a'), True, "has_symbol(a)")
        self.assertEqual(a.has_symbol('b'), False, "has_symbol(b)")
Exemplo n.º 10
0
    def test_super_sympy_float(self):

        V = SuperpositionVoltage(sym.Float(8))

        self.assertEqual(isinstance(V.dc.expr, sym.Rational), True,
                         'Float -> Rational')
Exemplo n.º 11
0
    def test_super_reverse_mul(self):

        self.assertEqual(
            impedance(2) * SuperpositionCurrent(5), SuperpositionVoltage(10),
            'I * R')
Exemplo n.º 12
0
    def test_voltage_phasor(self):

        V = SuperpositionVoltage(3 * sin(7 * t) + 2 * cos(14 * t))
        self.assertEqual(V[7].magnitude, voltage(3), 'magnitude')
        self.assertEqual(V[14].omega, 14, 'omega')
Exemplo n.º 13
0
    def test_voltage_decompose(self):

        V1 = SuperpositionVoltage('1 + 3 * u(t) + cos(2 * pi * 3 * t)')
        self.assertEqual(V1.dc, voltage(1), '.dc')
        self.assertEqual(V1.transient, voltage('3 * u(t)'), '.transient')
Exemplo n.º 14
0
    def test_voltage_subs(self):

        a = SuperpositionVoltage('V1')
        b = a.subs('V1', 1)
        c = SuperpositionVoltage(1)
        self.assertEqual(b, c, "Voltage.subs")
Exemplo n.º 15
0
    def test_super_phasor(self):

        V = SuperpositionVoltage(PhasorFrequencyDomainExpression(3 + 4j))
        self.assertEqual(V.magnitude, 5, 'Magnitude of single phasor')
        self.assertEqual(V.phase, atan2(4, 3), 'Phase of single phasor')