Autor Beitrag
.50AE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: So 21.01.07 19:01 
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:
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..
ausblenden volle Höhe 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; //temporär
//Weitere Variablen:
{
v0: Gesamtgeschwindigkeit
vH0,vV0: vertikale, horizontale Geschwindigkeit
B,E: Feldstärken (B=magn.; E=el.)
Q,M, usw sollte klar sein..
k: Kräftemultiplier (damit man was sieht ;-)
}

begin
 //MAGNETFELD
  v0 := sqrt(Power(vH0,2)+Power(vV0,2));  
  fL := B * Q * v0;
  fL := fL * k;
   //Alten "Vektor" berechnen
    vH1 := vH0; //vH1: temporäre horizointale Geschwindigkeit
    vV1 := vV0; //vV1: temporäre vertikale Geschwindigkeit
   //"Vektor" um 90° drehen
    vH1 := vV0;
    vV1 := -vH0;
   //Stärke der temporären, "gedrehten" Geschwindigkeit
    vH1 := vH1 * fL;
    vV1 := vV1 * fL;
   //Zur Globalen Geschwindigkeit hinzufügen...
    vH0 := vH0 + vH1;
    vV0 := vV0 + vV1;

 //ELEKTRISCHES FELD
  fEL := Q * E;
  fEL := fEL * k;
  vV0 := vV0 + fEl //Zur Globalen Geschwindigkeit hinzufügen...

 //GRAVITATIONSFELD
  ... //An der liegts nicht, schon getestet..

//POSITION
 eY := eY - vV0; //Da die Geschwindigkeit bei jedem Durchlauf
 eX := eX + vH0; //addiert wird, ersetzt sie die Beschleunigung

//KOLLISION
 ...

//TEXT OUTPUT
 ...

//ZEICHNEN
 ...


MfG
50ae


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 21.01.2007 um 18:26
Dragonclaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: 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.


Zuletzt bearbeitet von Dragonclaw am So 21.01.07 19:42, insgesamt 1-mal bearbeitet
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
    vH1 := vH0; //was soll das sein
    vV1 := vV0; //was soll das sein
   //"Vektor" um 90° drehen
    vH1 := vV0;//hier überschreibst du die Zuweisung von oben wieder die kannste dir dann auch stecken
    vV1 := -vH0;//hier überschreibst du die Zuweisung von oben wieder die kannste dir dann auch stecken
   //Stärke der temporären, "gedrehten" Geschwindigkeit
    vH1 := vH1 * fL;//versteh nicht was das soll
    vV1 := vV1 * fL;//soll das die Zentrifugalkraft werden
//wie du treffend bemerkt hast bewegt sich das Elektron geradlinig die gibt es also 
//nicht falls sie es denn überhaupt sein soll
.50AE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: So 21.01.07 20:20 
Hi,

ausblenden Delphi-Quelltext
1:
2:
    vH1 := vH0; //was soll das sein
    vV1 := vV0; //was soll das sein

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:
ausblenden Delphi-Quelltext
1:
2:
    vH1 := vV0;
    vV1 := -vH0;


ausblenden Delphi-Quelltext
1:
2:
    vH1 := vH1 * fL;//versteh nicht was das soll
    vV1 := vV1 * fL;//soll das die Zentrifugalkraft werden

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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: So 21.01.07 20:42 
user profile iconAllesquarks 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.

user profile iconAllesquarks 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..

user profile iconAllesquarks 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" ;)

user profile iconAllesquarks 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: 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.
ausblenden volle Höhe 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;

//F=Q*(E + v x B) Q=Ladung E=el.Feld B=magn Feld v=Geschwindigkeit
//result=Kraftvektor
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;

//dp/dt=F Newton =>m*deltav=F*deltatime
//Pneu=Palt+v*deltatime
function newpos(istpos,istv,Force:TVec):TVec;
begin
   //das musste aber noch selber ausfüllen
   //hier könntest du zum beispiel variable schrittweiten zur genaueren Analyse etc. 
   //einbauen
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100



BeitragVerfasst: 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 ;)
ausblenden Delphi-Quelltext
1:
2:
Fx := Q*(vX*B);
Fy := Q*(E - vY*B);


Delfiphan hat das bei dem 1. Thread zu diesem Thema 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