Ohmsches Gesetz mit Python

Einführung

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.

Ohmsches Gesetz (DC)

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 [Ω]

Ohmsches Gesetz (Austausch)

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

Ohmsches Gesetz mit Python
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Tweets mit Python posten
Fahren Sie WebDriver mit Python
Verwenden Sie Mecab mit Python 3
[Python] Mit CGIHTTPServer umleiten
Sprachanalyse mit Python
Denken Sie an Yaml mit Python
Kinesis mit Python betreiben
Erste Schritte mit Python
Verwenden Sie DynamoDB mit Python
Zundko Getter mit Python
Primzahlbeurteilung mit Python
Führen Sie Blender mit Python aus
Löse Mathe mit Python
Python ab Windows 7
Heatmap von Python + matplotlib
Asynchron mit Python verarbeiten
Python-Programmierung mit Atom
Python lernen mit ChemTHEATER 02
Verwenden Sie Python 3.8 mit Anaconda
Wettbewerbsfähige Programmierung mit Python
Behandle Rabbimq mit Python