Entwickler-Ecke
Sonstiges (Delphi) - Elektronenablenkung falsch
.50AE - So 21.01.07 19:01
Titel: Elektronenablenkung falsch
Hoi,
der Titel sagt zwar wahrscheinlich nicht so viel aus, aber ein besserer ist mir gerade nicht eingefallen..
Hier eine kurze Beschreibung und der Download des Programms:
http://www.christopherhauck.de/f2_elektrona.htm
Nach physikalischen Gesetzen sollte der Strahl gerade verlaufen, wenn die Geschwindigkeit
v = E/B
ist. (weil fEL = fL also e*E = v*e*B)
Nur tut er das leider nicht. Ich bin den Quellcode jetzt 10 mal durchgegangen; aber ich finde den Fehler einfach nicht..
Bei E=8 und B=2 z.B. muss man v=2 setzen damit er durchgeht.. eigentlich sollte es aber v=4 sein. Der Faktor ist aber nicht immer 2, sonst wärs schon gelöst xD
Deshalb hoffe ich sehr dass mir hier jemand weiterhelfen kann :)
Die folgende Prozedur wird mehrmals ausgeführt bis der Strahl mit etwas kollidiert..
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50:
| procedure Tmain.punktberechnen; var temp:string; fEl_nachoben: boolean; vV1,vH1: extended; begin v0 := sqrt(Power(vH0,2)+Power(vV0,2)); fL := B * Q * v0; fL := fL * k; vH1 := vH0; vV1 := vV0; vH1 := vV0; vV1 := -vH0; vH1 := vH1 * fL; vV1 := vV1 * fL; vH0 := vH0 + vH1; vV0 := vV0 + vV1;
fEL := Q * E; fEL := fEL * k; vV0 := vV0 + fEl ... eY := eY - vV0; eX := eX + vH0; ...
...
... |
MfG
50ae
Moderiert von
Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 21.01.2007 um 18:26
Dragonclaw - So 21.01.07 19:35
Also bei mir klappt das wenn ich B und E auf 6 setzte, dann entsteht eine Gerade Linie.
Allerdings NUR wenn die Konsensator Ladung nicht vertauscht ist und das Magnetfeld auch nicht umgedreht ist (klappt auch wieder wenn die beiden vertauscht sind.) Wenn nur eine davon Vertauscht ist, macht es sind dass das nicht gerade ausdurchgeht
Dragonclaw - So 21.01.07 19:40
Ahhh jetzt hab ich mit selber zitiert anstatt zu ändern. Sry dafür
zu obene: Wenn B und E gleich sind und V 1 ist klappt das. Allerdings NUR dann.
Ich werde noch mal in ein paar Büchern nachlesen.
Allesquarks - So 21.01.07 19:42
Das ist doch der Wien Filter oder Naja!
zunächst einmal sind das eigentlich vektorielle Gesetze das heißt du behandelst offenbar den spezialfall senkrechten Einfalls.
| Zitat: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| vH1 := vH0; vV1 := vV0; vH1 := vV0; vV1 := -vH0; vH1 := vH1 * fL; vV1 := vV1 * fL; | |
.50AE - So 21.01.07 20:20
Hi,
Delphi-Quelltext
1: 2:
| vH1 := vH0; vV1 := vV0; |
Da hast du recht Allesquarks, allerdings sollten diese 2 unnötigen Zeilen das Enderegebnis ja nicht verfälschen :D
Und ja - das Elektron fällt immer horizontal ein. (Ist ja egal obs hor. oder senkr. einfällt wenn man die Felder entsprechend wählt)
Die Lorentzkraft wirkt in dem Fall als Zentripetalkraft, also senkrecht auf die Bewegungsgeschwindigkeit, deshalb kann ich das so machen:
Delphi-Quelltext
1: 2:
| vH1 := vV0; vV1 := -vH0; |
Delphi-Quelltext
1: 2:
| vH1 := vH1 * fL; vV1 := vV1 * fL; |
Da auch die Zentripetalkraft eine Beschleunigung beim Elektron auslöst (und ich die Beschleunigung a dadurch ersetze, dass ich immer die Kraft zur globalen Geschwindigkeit hinzufüge), sollte das eigentlich stimmen. Wenn da nämlich ein + stehen würde, würde das Elektron nach etwa 3 Prozedurdurchläufen wieder zurückfliegen..
MfG
50ae
Allesquarks - So 21.01.07 20:26
Ok nur um das mal zu klären:
Es gibt zwei Kräfte die auf das Elektron wirken nämlich die Elektrische soiwe die Lorentzkraft (die sich evt auch als Zentripetalkraft bezeichnen lässt). Das wars.
Im besonderen gibt es keine Zentrifugalkraft/Petalkraft wegen einer eventuellen Kreisbahn des elektrons. Selbst wenn E/B mal nicht den exakten Wert hat bewegt sich das Elektron zwar auf einer gekrümmten Bahn. die Zentrifugalkraft ist aber eine Scheinkraft in bewschleunigten Bezugssystemen. Die kannste also knicken. Physikalisch richtiger wäre es eine elektromagnetische Abstrahlung des Elektrons einzubauen, da es beschleunigt ist.
.50AE - So 21.01.07 20:42
Allesquarks hat folgendes geschrieben: |
Ok nur um das mal zu klären:
Es gibt zwei Kräfte die auf das Elektron wirken nämlich die Elektrische soiwe die Lorentzkraft (die sich evt auch als Zentripetalkraft bezeichnen lässt). Das wars.
Im besonderen gibt es keine Zentrifugalkraft/Petalkraft wegen einer eventuellen Kreisbahn des elektrons. |
Wie meinst du das? Da die Lorentzkraft senkrecht auf das Elektron wirkt kann man sie als Zentripetalkraft bezeichnen.
Allesquarks hat folgendes geschrieben: |
| Selbst wenn E/B mal nicht den exakten Wert hat bewegt sich das Elektron zwar auf einer gekrümmten Bahn. |
Dann schon. Es geht aber darum, dass sich das Elektron bei meiner Simulation fälschlicherweise auch bei exakten Werten v=E/B nicht auf gerader Linie bewegt..
Allesquarks hat folgendes geschrieben: |
| die Zentrifugalkraft ist aber eine Scheinkraft in bewschleunigten Bezugssystemen. Die kannste also knicken. |
Stimmt. Die ZentriFUGALkraft ist eine Scheinkraft. Man spürt sie (z.B. im Auto in einer Kurve) nur, weil man nicht fest mit dem Auto befestigt ist und somit nicht die gleiche Zentripetalbeschleunigung erhält wie das Auto.
Da die Lorentzkraft aber direkt auf das Elektron einwirkt, kann und darf man diese Kraft auf keinen fall "knicken" ;)
Allesquarks hat folgendes geschrieben: |
Physikalisch richtiger wäre es eine elektromagnetische Abstrahlung des Elektrons einzubauen, da es beschleunigt ist. |
Elektromagnetische Abstrahlung da es beschleunigt ist? Kannst du mir das nochmals verdeutlichen?
Im übrigen geht es darum, die Elektronenflugbahn in den Feldern qualitativ darzustellen und nicht quantitativ exakte Werte zu sammeln ;)
MfG
50ae
Allesquarks - So 21.01.07 22:10
Zentripetal heißt ja nur aufs Zentrum gerichtet. Und genau das ist die Lorentzkraft ja auch.
War aber mehr nen Wortspiel.
Die Lorentzkraft sollste aber auf keinen Fall "stecken". Tut mir Leid wenn du das so verstanden hast. Ich meinte nur eine dritte Kraft gibt es nicht und dein rumgedingse da verstehe ich immer noch nicht.
Aber kleiner warum nicht einfach das ganze korrekt aufziehen. Das ist in der Physik meistens nämlcih am einfachsten.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40:
| type TVec=record x:extended; y:extended; z:extended; end;
implementation
function skalarprodukt(vec1,vec2:TVec):extended; begin result:=vec1.x*vec2.x+vec1.y*vec2.y+vec1.z*vec2.z; end;
function kreuzprodukt(vec1,vec2:TVec):TVec; begin result.x:=vec1.y*vec2.z-vec1.z*vec2.y; result.y:=-vec1.x*vec2.z+vec1.z*vec2.x; result.z:=vec1.x*vec2.y-vec1.y*vec2.x; end;
function Lorentzforce(Q:integer;E,B,v:TVec):TVec; var BForce:TVec; begin BForce:=kreuzprodukt(v,B); result.x:=Q*(E.x+BForce.x); result.y:=Q*(E.y+BForce.y); result.z:=Q*(E.z+BForce.z); end;
function newpos(istpos,istv,Force:TVec):TVec; begin end; |
//Edit: Achso eine beschleunigte Ladung strahlt nunmal, denn sie verursacht ja ein veränderliches elektrisches Feld. Das verselbstständigt sich aber und erzeugt seinerseits ein magnetisches und wieder umgekehrt. Da haben die sich auch lange gefragt, warum die "Elektronenbahnen" im Atom überhaupt stabil sein konnten. Stichwort hierzu vielleicht noch Dipolstrahlung. Sollte aber eigentlcih auch nur ne Randbemerkung sein. Und physikalisch korrekt wird sowieso arg schwierig.
Nebenbei mit meinem Code das jetzt auch quantitativ korrekt zu machen ist nicht mehr so schwerig
.50AE - Di 23.01.07 17:35
Danke für deine Antwort. So ganz versteh ich die ganzen Funktionen zwar nicht, aber allein mit dem hier klappt's auch schon ;)
Delphi-Quelltext
1: 2:
| Fx := Q*(vX*B); Fy := Q*(E - vY*B); |
Delfiphan hat das bei dem
1. Thread zu diesem Thema [
http://www.delphi-forum.de/viewtopic.php?t=67631&highlight=] auch schon gepostet; allerdings dachte ich damals noch, dass meine Lösung ebenfalls funktioniert. Abgesehen von dem Sonderfall bei dem v=E/B ist sah es auch ganz danach aus; aber mein Physiklehrer hat den Fehler bemerkt als ich es ihm vorgestellt habe.
Nunja, jetzt funktionierts ja, vielen Dank nochmals an Alle!
MfG
50ae
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!