Als ich Python studierte, wurde mir klar, dass es einfach sein würde, komplexe Zahlen zu berechnen, und ich versuchte herauszufinden, ob es wirklich einfach ist, das in der Elektrotechnik in Python verwendete Ohmsche Gesetz umzusetzen.
Es ist eine der wichtigsten Regeln in der Elektrotechnik und die erste Formel, die gelernt werden muss.
V = IR
Ohm'sLawDC.py
# V = IR for DC circuit
print('Empty a parameter to calculate')
V = float(input('Input V : ') or 0)
I = float(input('Input I : ') or 0)
R = float(input('Input R : ') or 0)
if not V:
V = R * I
elif not I:
I = V / R
elif not R:
R = V / I
else:
print('Empty a parameter to calculate')
print('V =', V, '[V]')
print('I =', I, '[A]')
print('R =', R, '[Ω]')
Dies ist der erste Eingabeteil, es wird jedoch davon ausgegangen, dass die leer eingegebenen Parameter berechnet werden. Wenn Sie die Eingabe wie unten gezeigt konvertieren, tritt daher zum Zeitpunkt der Konvertierung ein Fehler mit dem Parameter der leeren Eingabe auf.
V = float(input('Input V : '))
Daher habe ich geschrieben, dass nach einmaliger Eingabe mit dem Typ str nur dann konvertiert wird, wenn die Eingabe nicht leer ist. Ich wünschte wirklich, ich könnte eine einfachere Notation haben ... Ich habe den Anfangswert der Eingabe überprüft und festgestellt, ob sie nicht festgelegt werden konnte, aber ich konnte ein solches Argument nicht finden
Nachtrag 2019/11/10 In den Kommentaren wurde mir gesagt, dass die folgende Notation verwendet werden kann. Dadurch konnte ich es in eine Zahl ohne if-Anweisung umwandeln. es ist wunderbar!
V = float(input('Input V : ') or 0)
Der Operator oder beurteilt den Wert auf der linken Seite tatsächlich als wahr oder falsch und gibt das Ergebnis zurück. Tief, ich verstehe ... https://docs.python.org/ja/3/library/stdtypes.html#boolean-operations-and-or-not
Das Ergebnis wird wie folgt ausgegeben.
Empty a parameter to calculate
Input V : 100
Input I :
Input R : 50
V = 100.0 [V]
I = 2.0 [A]
R = 50.0 [Ω]
Dies ist das Hauptthema dieser Zeit. Ich habe überhaupt keine komplexen Zahlen für Gleichstrom verwendet, aber für Wechselstrom muss ich komplexe Zahlen mit hinzugefügter Impedanz (Z) berechnen.
v = iz
z = \sqrt{(r^2+x^2)}
Der Unterschied zu DC besteht darin, dass ** $ x $ (Reaktanz) ** zu den Parametern hinzugefügt wird. Diese Reaktanz repräsentiert die imaginäre Komponente im Wechselstromkreis.
Schreiben wir nun das Ohmsche Gesetz in Wechselstromkreisen in Python. Stellen Sie sicher, dass Sie den leeren Parameter $ v $, $ i $, $ r $, $ x $ berechnen.
Ohm'sLawAC.py
# v = iz for AC circuit
print('Empty a parameter to calculate')
v = complex(input('Input v[V] : ') or 0)
i = complex(input('Input i[A] : ') or 0)
r = complex(input('Input r[Ω] : ') or 0)
x = complex(input('Input x[jΩ] : ') or 0)*1j
if not v:
z = (r ** 2 + (x / 1j) ** 2) ** (1/2)
v = z * i
elif not i:
z = (r ** 2 + (x / 1j) ** 2) ** (1/2)
i = v / z
elif not r:
z = v / i
r = (z ** 2 - (x / 1j) ** 2) ** (1/2)
elif not x:
z = v / i
x = (z ** 2 - r ** 2) ** (1/2) *1j
else:
print('Empty a parameter to calculate')
print('v =', v, '[V]')
print('i =', i, '[A]')
print('r =', r, '[Ω]')
print('x =', x, '[jΩ]')
print('z =', z, '[Ω]')
Überraschenderweise war es schwierig, reelle Zahlen einzugeben und intern von reellen Zahlen in komplexe Zahlen umzuwandeln. Es ist einfach, solange Sie wissen, dass Sie mit "* 1j" von real zu imaginär konvertieren können.
Das Ergebnis wird wie folgt ausgegeben.
Empty a parameter to calculate
Input v[V] : 10
Input i[A] : 2
Input r[Ω] : 3
Input x[jΩ] :
v = (10+0j) [V]
i = (2+0j) [A]
r = (3+0j) [Ω]
x = 4j [jΩ]
z = (5+0j) [Ω]
Ich könnte das Ohmsche Gesetz definitiv mit komplexen Zahlen berechnen. Es gab gelegentliche Auslösungen wie den Eingabe- / Ausgabeteil und die Konvertierungsmethode von reellen Zahlen zu komplexen Zahlen. Wenn Sie jedoch wissen, wie man imaginäre Zahlen in Python schreibt, funktioniert der Rest, solange Sie die Berechnungsformel gehorsam schreiben, sodass es fast kein Problem gibt. war. Ich denke es war wirklich einfach.
Immerhin bist du unglaublich! Python-Kun!
Recommended Posts