File tree 1 file changed +49
-0
lines changed
1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change
1
+ import math
2
+
3
+
4
+ def real_power (apparent_power : float , power_factor : float ) -> float :
5
+ """
6
+ Calculate real power from apparent power and power factor.
7
+
8
+ Examples:
9
+ >>> real_power(100, 0.9)
10
+ 90.0
11
+ >>> real_power(0, 0.8)
12
+ 0.0
13
+ >>> real_power(100, -0.9)
14
+ -90.0
15
+ """
16
+ if (
17
+ not isinstance (power_factor , (int , float ))
18
+ or power_factor < - 1
19
+ or power_factor > 1
20
+ ):
21
+ raise ValueError ("power_factor must be a valid float value between -1 and 1." )
22
+ return apparent_power * power_factor
23
+
24
+
25
+ def reactive_power (apparent_power : float , power_factor : float ) -> float :
26
+ """
27
+ Calculate reactive power from apparent power and power factor.
28
+
29
+ Examples:
30
+ >>> reactive_power(100, 0.9)
31
+ 43.58898943540673
32
+ >>> reactive_power(0, 0.8)
33
+ 0.0
34
+ >>> reactive_power(100, -0.9)
35
+ 43.58898943540673
36
+ """
37
+ if (
38
+ not isinstance (power_factor , (int , float ))
39
+ or power_factor < - 1
40
+ or power_factor > 1
41
+ ):
42
+ raise ValueError ("power_factor must be a valid float value between -1 and 1." )
43
+ return apparent_power * math .sqrt (1 - power_factor ** 2 )
44
+
45
+
46
+ if __name__ == "__main__" :
47
+ import doctest
48
+
49
+ doctest .testmod ()
You can’t perform that action at this time.
0 commit comments