BlockWerk Dokumentation
÷

Divide

Math

Der Divide-Block führt eine algebraische Division zweier Eingangssignale durch: Zähler (Numerator) und Nenner (Denominator). Dieser Block verfügt über einen integrierten Schutz vor Division durch Null, sodass die Simulation auch bei mathematischen Singularitäten stabil und ohne Abstürze oder NaN-Fehler weiterläuft.

Der Block besitzt zwei separate Eingangsports: den oberen Port für den Zähler (num) und den unteren Port für den Nenner (den).

In BlockWerk simulieren

Interaktive Sandbox direkt im Browser — keine Installation, WebAssembly-Engine.

In BlockWerk simulieren →

Mathematisches Modell

Der Divide-Block implementiert:

y(t)=num(t)den(t)y(t) = \frac{\text{num}(t)}{\text{den}(t)}

Wobei:

  • y(t) das Ausgangssignal zum Zeitpunkt t ist
  • num(t) das Zählersignal ist
  • den(t) das Nennersignal ist

Schutz vor Division durch Null

Unterschreitet der Betrag des Nenners den Wert 2.22e-16 (Maschinengenauigkeit ε\varepsilon), greift die Schutzlogik:

  1. Der Block gibt den benutzerdefinierten Wert divByZeroValue aus (Standard: 0.0).
  2. Zeigt einen einmaligen visuellen Warnhinweis in der Benutzeroberfläche an.
  3. Protokolliert die Warnung in der Entwicklerkonsole des Browsers.

Ein- & Ausgänge

Direction ID Label Typ Status
→ In num Num number Required
→ In den Den number Required
← Out out Result number Output

Parameter

Parameter Label Typ Standardwert Beschreibung
divByZeroValue Zero-Div Value number 0 Value to return when denominator is zero
reportWarning Report Warning boolean true Send alert to console on division by zero

Anwendungsbeispiele

Signalnormalisierung

Skalierung eines Messsignals auf den normierten Bereich von 0 bis 1:

Messwert → Divide (num)
Maximalwert → Divide (den) → Normiertes Signal [0..1]

Widerstandsberechnung (Ohmsches Gesetz: R = U / I)

Berechnung des dynamischen Widerstands aus Spannung und Stromstärke:

Spannung U(t) → Divide (num)
Stromstärke I(t) → Divide (den) → Widerstand R(t)

_Tipp: Setzen Sie divByZeroValue auf einen sehr hohen Wert, um den unendlichen Leerlaufwiderstand bei I=0I = 0 abzubilden._

Hinweise & Best Practices

  • Maschinen-Epsilon: Die Nullprüfung verwendet die Fließkommatoleranz (f64::EPSILON), um Rundungsunsicherheiten abzufangen.
  • WASM-Performance: Die Schutzlogik ist nativ in Rust implementiert und verursacht im Normalbetrieb keinen spürbaren Rechenaufwand.
  • Port-Reihenfolge: Achten Sie auf die Beschriftung: num (oben) wird durch den (unten) dividiert.

Verwandte Blöcke

  • Product: Multiplikation zweier kontinuierlicher Signale
  • Gain: Skalierung um einen konstanten Faktor (Gain = 1/K1/K)
  • NumericDisplay: Zur Überprüfung der Rechenergebnisse
  • Saturation: Begrenzung extrem hoher Amplitudenwerte