Hallo,
Zwei weitere aufschlußreiche Größen wären der Leistungsfaktor
(= Re(Z)/|Z|; bestimmt den Wirkstrom und die Wirkleistung) und
der Blindfaktor (= Im(Z)/|Z|; bestimmt den Blindstrom und die
Blindleistung).
Den Leistungsfaktor kenne ich als cos phi, unterscheidet sich
dieser von dem von dir genannten?
mal irgendeine komplexe Zahl z als Pfeil in ein Koordinatensystem. phi = Winkel gegen die Re-Achse. Fälle das Lot von der Pfeilspitze auf die Re-Achse. Suchbild: Wo ist das rechtwinklige Dreieck, dessen Gegenkathete/Ankathete/Hypothenuse die Länge Re(z) / Im(z) / |z| hat? _Siehst_ Du, daß Re(z)/|z| = cos phi gilt, und warum? Genau, es ist nichts weiter als die cos-Definition. Im(z)/|z| = sin phi und Im(z)/Re(z) = tan phi analog.
Die Sache mit dem Blindfaktor ist mir neu, das werde ich auf
jeden Fall noch einbauen,
Wobei Du den Blindfaktor durchaus auch weglassen kannst, sofern Du den Leistungsfaktor ausgibst. Wegen sin² + cos² = 1 sind diese beiden Größen nicht unabhängig voneinander, d. h. wenn ich Dir einen Leistungsfaktor nenne, kannst Du immer ausrechnen, wie groß der Blindfaktor ist, u. u.
Der Leistungsfaktor ist eine wichtige Information, weil er ein Maß dafür ist, wieviel von der gesamten im Spiel befindlichen Energie (= von der Quelle zum Verbraucher transportierte E. + zwischen V und Q hin und her pendelnde E.) dem Verbraucher zufließt. Nur Wirkleistung ist wirtschaftlich. Blindströme dagegen sind keineswegs „neutral“, wie man vielleicht denken könnte, sondern äußerst unökonomisch. Der Grund dafür ist, daß die Leitungen, über die sie laufen, Wirkwiderstand haben. Deshalb erzeugt jedes Ampere Blindstrom, das von einem „schlechten“ Verbraucher verursacht wird, in jedem Meter der Leitung zwischen dem Verbraucher und dem Kraftwerk Wirkleistung, für die im Kraftwerk die entsprechende Menge Kohle mehr verbrannt werden muß. Je näher der cos phi eines Verbrauchers an 1 liegt, desto weniger Kohle muß für ihn nutzlos verfeuert werden. Über Glühbirnen und Herdplatten freuen sich Kraftwerke sehr (cos phi = 1), über Motoren dagegen nicht ganz so doll: Ihr cos phi liegt unter 1, weil ihre Wicklungen neben ihrem ohmschen Widerstand leider auch eine beträchtliche Induktivität besitzen. Wenn Du das nächste mal einen Industriemotor siehst, studier mal das Typenschild: dort ist immer der Leistungsfaktor vermerkt („cos phi = 0.78“). Der Blindstromanteil von Haushalten ist so gering, daß dem Energieversorger das Schnuppe ist: der E-Zähler im Keller registriert von vornherein nur die Wirkleistung. Großabnehmer mit zu kleinem cos phi bekommen jedoch einen erhöhten Tarif berechnet.
den Datentyp „komplex“ habe ich selbst erstellt, er enthält
nur den reellen und den imaginären Anteil der jeweiligen
komplexen Zahl.
Das ist OK.
function Betrag(k:komplex):Extended;
begin
result := sqrt(k.re*k.re+k.j*k.j);
end;
Real- und Imaginärteile werden üblicherweise einfach mit „a“ und „b“ bezeichnet („z = a + i b“).
function kkwert(k:komplex):komplex;
var
temp: komplex;
begin
if (sqr(k.re)+sqr(k.j)) 0 then
begin
temp.re := k.re/(sqr(k.re)+sqr(k.j));
temp.j := -k.j/(sqr(k.re)+sqr(k.j));
end
else
begin
temp.re := 0;
temp.j := 0;
end;
result := temp;
end;
Du läßt drei mal sqr(k.re)+sqr(k.j) ausrechnen? Rechne es einmal aus und speichere das Ergebnis in einer reellen Hilfsvariablen zwischen.
Statt „sqr“ kannst Du auch „*“ verwenden (wie bei der Funktion „Betrag“). Es bringt keine Nachteile mit sich; der erzeugte Code ist gleich (FPU-Befehl „fmul“).
temp ist unnötig, Du kannst problemlos direkt an result zuweisen (ist gängige Praxis).
Ansonsten paßt das. Logisch gesehen ist der Code, soweit ich es überblickt habe, korrekt.
Den Widerstand der Parallelschaltung berechne ich anschließend
anhand dieser Funktionen folgendermaßen:
kkwert(add(kkwert(T1),kkwert(T2)))
Exakt. Und wie codierst Du eine Parallelschaltung aus _drei_ Elementen?
Mit freundlichem Gruß
Martin
PS: Programmcode hier am besten in das "pre"-Tag einschließen.
Er erscheint dann in Courier-Schrift und
Einrückungen
bleiben erhalten.