From 6cac767552f7da36b3c6e0744793db7344efcdee Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:34:11 +0530 Subject: [PATCH 01/16] Create apparent_power.py --- electronics/apparent_power.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 electronics/apparent_power.py diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py new file mode 100644 index 000000000000..90e80d659eaa --- /dev/null +++ b/electronics/apparent_power.py @@ -0,0 +1,30 @@ +import math + +def calculate_apparent_power(real_power: float, reactive_power: float) -> float: + """ + Calculate apparent power from real power and reactive power. + + Args: + real_power (float): Real power in watts. + reactive_power (float): Reactive power in vars. + + Returns: + float: Apparent power in volt-amperes (VA). + + Examples:- + >>> calculate_apparent_power(100, 50) + 111.80339887498948 + >>> calculate_apparent_power(0, 0) + 0.0 + >>> calculate_apparent_power('100', 50) + Traceback (most recent call last): + ... + ValueError: real_power and reactive_power must be valid float values. + """ + apparent_power = math.sqrt(real_power ** 2 + reactive_power ** 2) + return apparent_power + + +if __name__ == "__main__": + import doctest + doctest.testmod() From 2c1db36212efd81ad8542a3629986ac2e2f1652c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 18:05:35 +0000 Subject: [PATCH 02/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- electronics/apparent_power.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 90e80d659eaa..3454245058b2 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -1,5 +1,6 @@ import math + def calculate_apparent_power(real_power: float, reactive_power: float) -> float: """ Calculate apparent power from real power and reactive power. @@ -21,10 +22,11 @@ def calculate_apparent_power(real_power: float, reactive_power: float) -> float: ... ValueError: real_power and reactive_power must be valid float values. """ - apparent_power = math.sqrt(real_power ** 2 + reactive_power ** 2) + apparent_power = math.sqrt(real_power**2 + reactive_power**2) return apparent_power if __name__ == "__main__": import doctest + doctest.testmod() From b588735e44cfa3fe1d9b8c0b248818062381af6e Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:41:27 +0530 Subject: [PATCH 03/16] Update apparent_power.py --- electronics/apparent_power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 3454245058b2..76093c370af8 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -17,7 +17,7 @@ def calculate_apparent_power(real_power: float, reactive_power: float) -> float: 111.80339887498948 >>> calculate_apparent_power(0, 0) 0.0 - >>> calculate_apparent_power('100', 50) + >>> calculate_apparent_power(abc, 50) Traceback (most recent call last): ... ValueError: real_power and reactive_power must be valid float values. From 92e1b90b0aae1be0b88503c5fd9dd14d49b54a9f Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:43:17 +0530 Subject: [PATCH 04/16] Update apparent_power.py --- electronics/apparent_power.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 76093c370af8..3e1822053315 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -15,6 +15,8 @@ def calculate_apparent_power(real_power: float, reactive_power: float) -> float: Examples:- >>> calculate_apparent_power(100, 50) 111.80339887498948 + >>> calculate_apparent_power(100, -50) + 111.80339887498948 >>> calculate_apparent_power(0, 0) 0.0 >>> calculate_apparent_power(abc, 50) From 7f0ca0d4f791e7500d936b4ba16dfcd65f1bb7d9 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:50:07 +0530 Subject: [PATCH 05/16] Update apparent_power.py --- electronics/apparent_power.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 3e1822053315..52f5e26bf094 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -19,10 +19,6 @@ def calculate_apparent_power(real_power: float, reactive_power: float) -> float: 111.80339887498948 >>> calculate_apparent_power(0, 0) 0.0 - >>> calculate_apparent_power(abc, 50) - Traceback (most recent call last): - ... - ValueError: real_power and reactive_power must be valid float values. """ apparent_power = math.sqrt(real_power**2 + reactive_power**2) return apparent_power From ecc1c4f1903c80df1a7ce472826a31c17500ca55 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 00:29:17 +0530 Subject: [PATCH 06/16] Update electronics/apparent_power.py Co-authored-by: Christian Clauss --- electronics/apparent_power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 52f5e26bf094..0f8df5a09efb 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -1,7 +1,7 @@ import math -def calculate_apparent_power(real_power: float, reactive_power: float) -> float: +def apparent_power(real_power: float, reactive_power: float) -> float: """ Calculate apparent power from real power and reactive power. From 811a2dba2fd8c752133ebe13044ea894e44a00a1 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 00:29:25 +0530 Subject: [PATCH 07/16] Update electronics/apparent_power.py Co-authored-by: Christian Clauss --- electronics/apparent_power.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 0f8df5a09efb..489e4e826781 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -20,8 +20,7 @@ def apparent_power(real_power: float, reactive_power: float) -> float: >>> calculate_apparent_power(0, 0) 0.0 """ - apparent_power = math.sqrt(real_power**2 + reactive_power**2) - return apparent_power + return math.sqrt(real_power**2 + reactive_power**2) if __name__ == "__main__": From 570354117e3b47e7fb002da20584b673cd9f2a15 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 00:30:08 +0530 Subject: [PATCH 08/16] Update apparent_power.py --- electronics/apparent_power.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 489e4e826781..3135881d8d3b 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -5,13 +5,6 @@ def apparent_power(real_power: float, reactive_power: float) -> float: """ Calculate apparent power from real power and reactive power. - Args: - real_power (float): Real power in watts. - reactive_power (float): Reactive power in vars. - - Returns: - float: Apparent power in volt-amperes (VA). - Examples:- >>> calculate_apparent_power(100, 50) 111.80339887498948 From 9430cdb1ce79a38b778263ba115f7a50caf55448 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 00:34:50 +0530 Subject: [PATCH 09/16] Update electronics/apparent_power.py Co-authored-by: Christian Clauss --- electronics/apparent_power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 3135881d8d3b..df471423340f 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -6,7 +6,7 @@ def apparent_power(real_power: float, reactive_power: float) -> float: Calculate apparent power from real power and reactive power. Examples:- - >>> calculate_apparent_power(100, 50) + >>> apparent_power(100, 50) 111.80339887498948 >>> calculate_apparent_power(100, -50) 111.80339887498948 From 1d987ebe1c2cef615676fc078f99a1876b821f05 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 00:36:56 +0530 Subject: [PATCH 10/16] Update apparent_power.py --- electronics/apparent_power.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index df471423340f..da89babf5aea 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -8,9 +8,13 @@ def apparent_power(real_power: float, reactive_power: float) -> float: Examples:- >>> apparent_power(100, 50) 111.80339887498948 - >>> calculate_apparent_power(100, -50) + >>> apparent_power(100, -50) 111.80339887498948 - >>> calculate_apparent_power(0, 0) + >>> apparent_power(-100, 50) + 111.80339887498948 + >>> apparent_power(-100, -50) + 111.80339887498948 + >>> apparent_power(0, 0) 0.0 """ return math.sqrt(real_power**2 + reactive_power**2) From 02897377cc919998f8ef487c46f45da03a156278 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:09:08 +0530 Subject: [PATCH 11/16] Update apparent_power.py --- electronics/apparent_power.py | 39 +++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index da89babf5aea..1a24d588d635 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -1,25 +1,34 @@ +import cmath import math -def apparent_power(real_power: float, reactive_power: float) -> float: +def apparent_power(voltage: float, current: float, voltage_angle: float, current_angle: float) -> complex: """ - Calculate apparent power from real power and reactive power. - - Examples:- - >>> apparent_power(100, 50) - 111.80339887498948 - >>> apparent_power(100, -50) - 111.80339887498948 - >>> apparent_power(-100, 50) - 111.80339887498948 - >>> apparent_power(-100, -50) - 111.80339887498948 - >>> apparent_power(0, 0) - 0.0 + Calculate the apparent power in a single-phase AC circuit. + + >>> apparent_power(100, 5, 0, 0) + (500+0j) + >>> apparent_power(100, 5, 90, 0) + (3.061616997868383e-14+500j) + >>> apparent_power(100, 5, -45, -60) + (-129.40952255126032-482.9629131445341j) + >>> apparent_power(200, 10, -30, -90) + (-999.9999999999998-1732.0508075688776j) """ - return math.sqrt(real_power**2 + reactive_power**2) + # Convert angles from degrees to radians + voltage_angle_rad = math.radians(voltage_angle) + current_angle_rad = math.radians(current_angle) + + # Convert voltage and current to rectangular form + voltage_rect = cmath.rect(voltage, voltage_angle_rad) + current_rect = cmath.rect(current, current_angle_rad) + + # Calculate apparent power + apparent_power = voltage_rect * current_rect + return apparent_power +# Doctests if __name__ == "__main__": import doctest From 34eab655cadff8d70060b292410302a742cd46ea Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:10:27 +0530 Subject: [PATCH 12/16] Update apparent_power.py --- electronics/apparent_power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 1a24d588d635..eb10b583cdd2 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -28,7 +28,7 @@ def apparent_power(voltage: float, current: float, voltage_angle: float, current return apparent_power -# Doctests + if __name__ == "__main__": import doctest From aad09f0eb72c407113f66b0e8252e6a0dd2fefc4 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 18 Apr 2023 04:41:03 +0000 Subject: [PATCH 13/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- electronics/apparent_power.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index eb10b583cdd2..8191e0e30ed0 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -2,10 +2,12 @@ import math -def apparent_power(voltage: float, current: float, voltage_angle: float, current_angle: float) -> complex: +def apparent_power( + voltage: float, current: float, voltage_angle: float, current_angle: float +) -> complex: """ Calculate the apparent power in a single-phase AC circuit. - + >>> apparent_power(100, 5, 0, 0) (500+0j) >>> apparent_power(100, 5, 90, 0) From 8063be2a75de8d22f5f609c1ec8fa7e8a93407b0 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:15:20 +0530 Subject: [PATCH 14/16] Update apparent_power.py --- electronics/apparent_power.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 8191e0e30ed0..62ee554f1d32 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -13,9 +13,9 @@ def apparent_power( >>> apparent_power(100, 5, 90, 0) (3.061616997868383e-14+500j) >>> apparent_power(100, 5, -45, -60) - (-129.40952255126032-482.9629131445341j) + (-129.40952255126027-482.9629131445341j) >>> apparent_power(200, 10, -30, -90) - (-999.9999999999998-1732.0508075688776j) + (-999.999999999-1732.0508075688j) """ # Convert angles from degrees to radians voltage_angle_rad = math.radians(voltage_angle) From 7d5891ed97f3daf6e7e78940b4716ebbee340b50 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:19:26 +0530 Subject: [PATCH 15/16] Update apparent_power.py --- electronics/apparent_power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index 62ee554f1d32..aac652ed3366 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -15,7 +15,7 @@ def apparent_power( >>> apparent_power(100, 5, -45, -60) (-129.40952255126027-482.9629131445341j) >>> apparent_power(200, 10, -30, -90) - (-999.999999999-1732.0508075688j) + (-999.9999999999998-1732.0508075688776j) """ # Convert angles from degrees to radians voltage_angle_rad = math.radians(voltage_angle) From 93c1bb956a9ece94e944b268684af06e9facdffd Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 12:46:25 +0530 Subject: [PATCH 16/16] Update apparent_power.py --- electronics/apparent_power.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/electronics/apparent_power.py b/electronics/apparent_power.py index aac652ed3366..a6f1a50822f7 100644 --- a/electronics/apparent_power.py +++ b/electronics/apparent_power.py @@ -26,9 +26,7 @@ def apparent_power( current_rect = cmath.rect(current, current_angle_rad) # Calculate apparent power - apparent_power = voltage_rect * current_rect - - return apparent_power + return voltage_rect * current_rect if __name__ == "__main__":