Пример #1
0
    def test_charge(self):
        bat = Battery(3.0, cells=4)

        # Can't charge a battery if voltage under battery's current voltage
        bat.charge(volts=14.0, amps=3, seconds=60)
        self.assertEqual(bat.charge_state, 1.5)
        self.assertEqual(bat.voltage, 14.4)

        # Can charge battery if voltage over battery's current voltage
        bat.charge(volts=16.6, amps=3, seconds=60)
        # Basic properties haven't changed:
        self.assertEqual(bat.capacity, 3.0)
        self.assertEqual(bat.cells, 4)
        self.assertEqual(bat.minimum_voltage, 3.0)
        self.assertEqual(bat.maximum_voltage, 4.2)
        # Charge state has changed
        self.assertEqual(bat.charge_state, 1.55)
        # Voltage has risen slightly
        self.assertGreater(bat.voltage, 14.4)

        # At this stage we can push a battery beyond the charge voltage if we
        # give a long enough duration, but we can't go over the battery's
        # capacity.
        bat.charge(volts=16.6, amps=3, seconds=3600)  # Should be well over
        # But capacity is limited to
        self.assertEqual(bat.charge_state, bat.capacity)
        # And voltage is maxed out
        self.assertEqual(bat.voltage, 16.8)
Пример #2
0
from battery import Battery

bat_deep = Battery()
bat_norm = Battery()
bat_shallow = Battery()
bat_shallow_mid = Battery()
bat_shallow_mid.charge = 0.5
bat_shallow_mid.start_charge = 0.5
for i in range(0, 900):
    bat_deep.run((-1, 270))
    bat_deep.recharge_update_health(1)
    bat_norm.run((-0.5, 135))
    bat_norm.recharge_update_health(0.5)
    bat_norm.run((-0.5, 135))
    bat_norm.recharge_update_health(0.5)
    for j in range(0, 5):
        bat_shallow.run((-0.1, 30))
        bat_shallow.recharge_update_health(0.1)
    for j in range(0, 5):
        bat_shallow_mid.run((-0.1, 30))
        bat_shallow_mid.recharge_update_health(0.1)
print("900 Full Discharges: " + str(bat_deep.lost_capacity))
print("1800 Half Discharges: " + str(bat_norm.lost_capacity))
print("4500 100-90 Discharges: " + str(bat_shallow.lost_capacity))
print("4500 50-40 Discharges: " + str(bat_shallow_mid.lost_capacity))