====== std.ee — Elektrotechnik ======
→ [[lyx_-_programmiersprache:units|Zurück zur Unit-Übersicht]] · [[lyx_-_programmiersprache:units:complex|std.complex]] · [[lyx_-_programmiersprache:units:units.lyx|std.units]]
Drei Units für die alltägliche Elektrotechnik: Konstanten und Vorsätze, Gleichstromnetzwerke, Wechselstrom mit komplexer Rechnung. Sie sind für **Auslegung und Nachrechnung** gedacht — Leitungsquerschnitt, Spannungsfall, Filtergrenzfrequenz, Blindleistungskompensation.
''std.ee'' selbst ist **keine Unit**, sondern ein Verzeichnis; importiert wird immer eine konkrete Unit.
**Quelle:** ''std/ee/''
----
===== Units im Überblick =====
^ Unit ^ Import ^ Inhalt ^
| [[lyx_-_programmiersprache:units:ee:const|std.ee.const]] | ''import std.ee.const;'' | Naturkonstanten nach SI 2019, SI-Vorsätze als exakte Zehnerpotenzen, Flächen- und Kreisfrequenz-Umrechnung, Fehlerwert |
| [[lyx_-_programmiersprache:units:ee:dc|std.ee.dc]] | ''import std.ee.dc;'' | Ohm, Leistung, Reihen- und Parallelschaltung, Spannungs- und Stromteiler (**belastet und unbelastet**), Leitungen, Temperaturgang, reale Quelle |
| [[lyx_-_programmiersprache:units:ee:ac|std.ee.ac]] | ''import std.ee.ac;'' | Blindwiderstände, komplexe Impedanz über [[lyx_-_programmiersprache:units:complex|std.complex]], Reihen-RLC, Resonanz und Güte, Effektivwerte je Kurvenform, Leistungsdreieck, Kompensation |
----
===== Die durchgehenden Regeln =====
* **Die Einheit steht im Namen.** ''DcWireResistanceOhm(rho, lenM, aMm2)'' nimmt Meter und **Quadratmillimeter** — die häufigste Fehlerquelle in Leitungsrechnungen ist nicht die Formel, sondern mm² gegen m². Wo eine Umrechnung nötig ist, gibt es sie als eigene Funktion (''EeMm2ToM2'') statt als Faktor im Kopf des Aufrufers.
* **Der Fehlerwert ist NaN**, geprüft mit ''EeIsError''. Eine 0 wäre hier untauglich: 0 V, 0 A und 0 Ω sind gültige Ergebnisse, und ein Fehler, der wie ein gültiger Wert aussieht, ist schlimmer als gar keine Antwort.
* **SI-Vorsätze sind exakte Zehnerpotenzen** (''EeMicro()'' = 1.0e-6), nicht aus Zeichenketten geparst. Ein abgeschnittener Vorsatz ist ein Rechenfehler: wer µ „ungefähr" behandelt und unterwegs rundet, verschiebt eine Zeitkonstante um Prozente.
----
===== Drei Fallen, gegen die die API gebaut ist =====
^ Falle ^ Was hier dagegen steht ^
| **Die Parallelformel hat einen Pol.** ''1/(1/R1 + 1/R2)'' ist für R = 0 nicht definiert — und R = 0 ist kein exotischer Fall, sondern der Kurzschluss, den man gerade nachrechnet | Jede Funktion prüft das und liefert den Fehlerwert statt einer Division durch null |
| **Der Spannungsteiler gilt nur unbelastet.** Wer einen Verbraucher anhängt und trotzdem so rechnet, bekommt eine zu hohe Spannung | ''DcVoltageDivider'' **und** ''DcVoltageDividerLoaded'' als getrennte Funktionen |
| **Scheitelwert durch √2 gilt nur für den Sinus.** Bei einem Rechteck ist der Effektivwert der Scheitelwert selbst | ''AcRmsFromPeakSine'', ''AcRmsFromPeakSquare'', ''AcRmsFromPeakTriangle'' — kein allgemeines ''AcRms'' |
----
===== Einstiegsbeispiel =====
unit main;
import std.ee.const;
import std.ee.dc;
import std.ee.ac;
import std.io;
import std.string;
fn main(): int64 {
PrintLn(StrConcat("Thermospannung 300K: ", FloatToStr(EeThermalVoltage(300.0), 5)));
PrintLn(StrConcat("Teiler 12V 1k/2k: ", FloatToStr(DcVoltageDivider(12.0, 1000.0, 2000.0), 3)));
PrintLn(StrConcat("dasselbe mit 2k Last: ", FloatToStr(DcVoltageDividerLoaded(12.0, 1000.0, 2000.0, 2000.0), 3)));
PrintLn(StrConcat("Cu 2x10m, 1.5mm2, 10A:", FloatToStr(DcVoltageDropV(10.0, DcRhoCopper(), 20.0, 1.5), 3)));
PrintLn(StrConcat("Resonanz 10mH/100nF: ", FloatToStr(AcResonanceHz(0.01, 100.0e-9), 1)));
return 0;
}
Thermospannung 300K: 0.02585
Teiler 12V 1k/2k: 8.000
dasselbe mit 2k Last: 6.000
Cu 2x10m, 1.5mm2, 10A:4.597
Resonanz 10mH/100nF: 5032.9
**Der Unterschied zwischen den beiden Teilerzeilen ist der Punkt**: dieselbe Schaltung, einmal unbelastet mit 8 V, einmal mit 2 kΩ Last bei 6 V. Wer die unbelastete Formel für einen belasteten Teiler nimmt, liegt hier um 25 % daneben.
----
===== Was nicht enthalten ist =====
* **Keine Halbleiterkennlinien** — Dioden, Transistoren, Kennlinienfelder. ''EeThermalVoltage'' ist die Grundlage dafür, mehr nicht.
* **Keine Netzberechnung.** Maschen- und Knotenanalyse mit Gleichungssystem stehen nicht hier; für das Gleichungssystem gibt es [[lyx_-_programmiersprache:units:linalg|std.linalg]].
* **Keine Normtabellen** — E-Reihen, Sicherungskennlinien, Verlegearten. Der zulässige Spannungsfall kommt aus der Vorschrift des Anwenders, nicht aus der Unit.
Letzte Aktualisierung: 2026-09-06 — Seite neu angelegt; erhoben aus ''std/ee/*.lyx'', Beispiel gegen lyxc 1.2.2D übersetzt und ausgeführt.