Forum: Projekte & Code Taschenrechner für Magnetfelder (MagnetiCalc)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Pawl W. (pawl_w)


Angehängte Dateien:

Lesenswert?

Moin allerseits!

Ich habe kürzlich einen "Taschenrechner" für Magnetfelder programmiert.
Die Software heißt "MagnetiCalc" und steht unter einer freien Lizenz, 
kann also von jedem benutzt, weitergegeben und verbessert werden.

Ich habe mal einen Screenshot der GUI angehängt.
Hier der Link zum GitHub-Repository: 
https://github.com/shredEngineer/MagnetiCalc

Momentan berechnet das Programm die magnetische Flussdichte, in 
zukünftigen Versionen möchte ich aber unbedingt auch eine Berechnung der 
Eigeninduktivität mit einbauen.
Insofern würde sich das Programm auch zur interaktiven Dimensionierung 
aller möglichen Luftspulen eigenen.

Außerdem sollten in Zukunft unbedingt auch permeable Kernmaterialien 
(also außer Vakuum halt) unterstützt werden.
Leider bin ich kein Physiker und warte an dieser Stelle immer noch auf 
den goldenen Tipp, wie man das ohne großartige analytische Umwege 
weiterhin durch Superposition mittels Biot-Savart hinbekommt...

Falls hier also jemand ebenso gerne in Python programmiert und sich für 
Magnetfelder oder Elektrodynamik im weitesten Sinne interessiert, freue 
ich mich natürlich um jede Mithilfe und "Commits" auf GitHub!

Lasst mal hören, was ihr davon haltet. Ich nehme jeden 
Verbesserungsvorschlag dankend an und werde versuchen, diese umgehend 
umzusetzen! :-)

Beste Grüße & ein schönes WE
- Paul

von Tobias P. (hubertus)


Lesenswert?

Hut ab. Ich habe mir den Code jetzt nicht angeschaut, aber bei solche 
Projekten bin ich immer schwer beeindruckt. Obwohl ich auch 
zwischendurch partielle DGL brauche (diese dann aber mit einem Programm 
lösen lasse...) und wir solche Lösungsverfahren im Studium rauf und 
runter durch exerziert haben, glaube ich ich könnte sowas niemals 
programmieren, erst recht nicht in Python und dann noch mit so einer 
hübschen Visualisierung.

sehr cool! wenngleich ich natürlich weiss, dass dir dieser Kommentar 
jetzt nicht viel nützt :-)

von Pawl W. (pawl_w)


Lesenswert?

Moin Tobias,

danke für deinen Kommentar! :-)
Dafür hast du vermutlich einen besseren theoretischen Hintergrund als 
ich. :-D

Allgemeiner Nachtrag: Was mich vom Hocker gehauen hat, als ich es jetzt 
endlich herausgefunden habe (bzw. die entsprechende Textstelle im 
Jackson gefunden habe): Die Induktivität ist einfach nur das 
Volumenintegral der quadrierten magnetischen Flussdichte. Also total 
simpel zu implementieren, ist jetzt auch vom Programm unterstützt.

(Ich dachte zuerst immer, dass man zuerst Leiterschleifen identifizieren 
muss, um dann mit Polygonen, Flächen und Normalenvektoren zu hantieren 
etc. ... dabei ist es trivial.)

Beste Grüße!
- Paul

von Tobias P. (hubertus)


Lesenswert?

Moin Paul

das weiss ich nicht. Aber ich habe mir vorgenommen deine SW genauer 
anzuschauen.
Ich wollte sowas immer mal selber entwickeln, aber ich bin nicht gut 
genug im Programmieren.
Man könnte deine SW noch für elektrische Felder aufbohren. Dann hätte 
man einen EM Solver, das ist schon cool.

von Pawl W. (pawl_w)


Lesenswert?

Ja, das könnte man tatsächlich machen. Man müsste sich nur überlegen, in 
welchem Umfang, und wie man das darstellt! :-)

Wenn keine Ladungen vorhanden sind, brauchen wir kein elektrisches 
Skalarpotential (wenn ich das richtig verstanden habe), und das E-Feld 
entspricht gerade der (negativen) Zeitableitung des Vektorpotentials, 
was ich ja glücklicherweise bereits berechne.

Nun könnte man den Spulenstrom zeitveränderlich machen, im einfachsten 
Fall natürlich einfach harmonisch.

Dann müsste man einen Loop einbauen, der den Spulenstrom verändert und 
alle Felder neu berechnet. Da ich jetzt eine GPU-Beschleunigung (CUDA) 
eingebaut habe, könnte das sogar mit annehmbarer Framerate passieren. 
Aber ok, es ist immer noch Python... man müsste schauen, wie "flüssig" 
das dann wird.

Aber es könnte schnell unübersichtlich werden, mehrere Felder 
gleichzeitig darzustellen -- müsste man ausprobieren!

EDIT: Am schönsten wäre natürlich, gleich alle Maxwell-Gleichungen mit 
unterzubringen. Dann könnte man sich auch die Freifeld-Propagation 
angucken...

Meine Priorität wäre allerdings gerade eine ganz andere: Und zwar möchte 
ich Kernmaterialien möglichst genau modellieren. Das ist momentan noch 
sehr naiv implementiert (über Regionen variabler Permeabilität), und 
ohne Sättigung, Hysterese, etc...

Viele Grüße!
- Paul

: Bearbeitet durch User
von Bernd (Gast)


Lesenswert?

Pawl W. schrieb:
> Meine Priorität wäre allerdings gerade eine ganz andere: Und zwar möchte
> ich Kernmaterialien möglichst genau modellieren. Das ist momentan noch
> sehr naiv implementiert (über Regionen variabler Permeabilität), und
> ohne Sättigung, Hysterese, etc...
Ui, bei den Kernmaterialien hast du Dir ja echt was vorgenommen.
Selbst im LT-Spice sind da nur rudimentäre Modelle hinterlegt.

Neben Sättigung und Hysterese kommt ja auch noch die 
Frequenzabhängigkeit dazu.
Verursacht wird das u.a. von den vielen unterschiedlichen 
Materialeinflüssen auf die magnetischen Domänen und deren 
Ummagnetisierungsverhalten:
https://www.youtube.com/watch?v=HzxTqQ40wSU

von Pawl W. (pawl_w)


Lesenswert?

Moin Bernd,

danke für das Video! Das ist total faszinierend; ich wusste garnicht, 
dass man den Weiss'schen Bezirken regelrecht beim Umkippen zusehen kann! 
:-)

Ja, wie genau ich das in Software modelliere weiß ich auch noch nicht.
Naja, eins nach dem anderen!

Beste Grüße!
- Paul

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.