Neujahrsgeschenk: Magnetfeldberechnung mit Quelltext

Ich habe von jemanden den Auftrag bekommen, eine DLL zu erstellen, die von beliebig vielen geraden Linienleitern in beliebig vielen Punkten das vektorielle Magnetfeld im Raum berechnet. Da das auch für andere interessant sein könnte, und der Auftraggeber damit einverstande war, habe ich es veröffentlicht, zusammen mit einem ausführlichen Dokument zur Herleitung der Berechnung:

formatting link

Da ich so gut wie keine Ahnung von den physikalischen Grundlagen habe, hoffe ich, keinen Fehler gemacht zu haben, zumindest das Beispiel mit einer Rahmenspule aus Wikipedia, zusammengebaut aus einzelnen Leitern im demo-Programm, stimmt überein und das Magnetfeld halbiert sich auch, wenn man die Entfernung verdoppelt, kann also nicht so ganz falsch sein :-)

Für Anwendungen, wo man Kurven und andere Formen durch Liniensegmente annähert ggf. interessant: Es kann ca. zwei Millionen Segmente pro Sekunde auf meinem Rechner berechnen.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss
Loading thread data ...

On Thu, 1 Jan 2009 22:37:10 +0100, Frank Buss wrote in de.sci.electronics:

Kann man damit auch einen Bändchenlautsprecher rechnen?

Gruß, U.

Reply to
Ulrich G. Kliegis

Meinst du sowas hier?

formatting link

Wenn das Bändchen hinreichend schmal ist, könnte man da vielleicht was machen, indem man es in kleine Abschnitte aufteilt, die dann schingen können, ggf. in Zusammenhang mit einer Physik-Engine. Aufgeschnitten und für 2D könnte das hier dabei helfen:

formatting link

Wäre mal eine gute Idee, in diese Engine Magnetfelder mit einzubauen. Die ist sogar schnell genug, um Flüssigkeiten zu simulieren:

formatting link

Aber generell berechnet meine DLL erstmal nur statische Magnetfelder, ohne Rückwirkung auf die Körper.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Hallo Frank,

On Thu, 1 Jan 2009 23:50:07 +0100, Frank Buss wrote in de.sci.electronics:

Ja, im Prinzip.

formatting link

Da beschreibt Michael, wie er solche Lautsprecher selbstbaut. Richtig interessant sind die "plissierten" Bändchen, weil da ein bunter Vektorensalat herauskommt.

Nun ist eine solche schwingende Membran ja auch nur eine ziemlich verbeulte Annäherung an einen Punktstrahler.

OK, aber der Ansatz ist da. Wär ja auch interessant für die Optimierung von bürstenlosen Elektromotoren. Dazu würde natürlich auch eine genaue Vermessung und Kategorisierung der Felder von Permanentmagneten gehören. So eine Art Freiformgestaltung...

Gruß, U.

Reply to
Ulrich G. Kliegis

Sieht interessant aus. Auch das Programm FEMM scheint nicht schlecht zu sein:

formatting link

Kann allerdings scheinbar keine beliebigen 3D Formen berechnen.

Ja, wäre sicher interessant. Es gibt mit ODE (

formatting link
) bereits eine gute 3D Engine. Wenn man da noch elektrische und magnetische Eigentschaften einbauen würde, könnte man bestimmt laufende Motoren simulieren. Wenn ich Zeit dazu hätte und mir einer ein Jahr dafür bezahlen würde, würde ich sofort damit anfangen :-)

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Gibt ein kleines Update im Quelltext für die Berechnung. Wegen sin(acos(x))=sqrt(1-x^2) konnte ich alle trigonometrischen Funktionen aus der Berechnung heraus kürzen, es werden jetzt nur noch die Grundrechenarten und Wurzelziehen benötigt, sodaß die Genauigkeit noch ein klein wenig höher und stabiler sein sollte (die Geschwindigkeit scheinbar nicht, scheint sogar ca. 20% langsamer geworden zu sein).

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Heutige Billigcompiler sind idiotisch. Hoffe du hast 1.-x*x geschrieben und nicht 1-x^2. In letzterem Fall floatet er erst die 1 und kramt dann in seiner Logarithmentabelle für das Quadrat.

--
mfg Rolf Bombach
Reply to
Rolf_Bombach

Ja, habe überall x*x stehen, wo ich das Quadrat brauche, x^2 gibt es in C++ nicht. pow(x, 2) zu schreiben wäre möglich, ist aber natürlich Unsinn.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.