[an error occurred while processing this directive]   Suche  
 

Bestimmung von Ereigniszeitpunkten

Bei der Simulation eines dynamischen Systems reicht es nicht aus, die durch das Modell vorgegebenen Differentialgleichungen zu lösen. In den meisten Fällen müssen auch Zeitpunkte von Ereignissen bestimmt werden, etwa wann eine Zustandsvariable eine Nullstelle passiert oder wann bei Zustandsvariablen Unstetigkeiten auftreten.

Simulink versucht in jedem Integrationsschritt solche Ereignisse zu erkennen. Die dazu benutzte Technik wird zero crossing detection (ZCD) genannt. Man kann diese Eigenschaft im Fenster Simulation -> Parameters -> Diagnostics ein- und ausschalten, was sich natürlich auf die Genauigkeit der Ergebnisse erheblich auswirken kann.

Fenster zum Ausschalten von

Auch wenn ZCD global ein- bzw. ausgeschaltet wird, ist es doch eine Eigenschaft spezieller Blöcke. Nur bei diesen wird ZCD durchgeführt. Ein Modell muß also mit geeigneten Blöcken ausgestattet und bei der Simulation muß ZCD eingeschaltet sein, wenn Nullstellen und ähnliche Werte von Signalen möglichst genau bestimmt werden sollen. Die Ausstattung eines Modelles mit den geeigneten Blöcken zur Bestimmung der Nullstellen bedarf manchmal einiger Überlegungen. Häufig kann man die Funktion eines Blockes auch mit einem Funktions-Block erreichen, beachten Sie, daß dabei eine eventuelle ZCD verloren geht.

Beispiel 1:

Das folgende Modell dient zur Integration der Differentialgleichnung y'=-y mit dem Anfangswert y(0)=1. Das Ausgabesignal y(t) wird jeweils mit dem Testwert 1.0e-3 verglichen. Relational Operator-Blöcke arbeiten mit ZCD, der Wert von T=-log(1.0e-3) wird also möglichst genau festgestellt. Da die Lösung des Problems monoton fallend ist, hat das Ausgangssignal des Vergleichsblockes hat bis zum Zeitpunkt T den Wert 0, danach den Wert 1. Dieses Signal triggert ein Subsystem, das lediglich aus einer Leitung besteht. Nur zum Zeitpunkt T wird also ein Signal durchgelassen, es hat den Wert T. Im Fehler-Block wird der Wert u + log(1.0e-3) berechnet und im Display-Fenster ausgegeben. u ist der Eingangswert des Fehler-Blockes, also der numerisch berechnete Wert von T, -log(1.0e-3) ist der exakte Wert von T.

Modell zur Differentialgleichung y'(t)=-y(t)

Wenn zur Simulation das Dormand-Prince-Verfahren ode45 mit den Default-Parameterwerten verwenset wird, erhält man mit ZCD einen Fehler 6.3042e-7 (s.Graphik) ohne ZCD dagegen einen Fehler 9.2244e-2.

Das Problem, die Zeitpunkte von Nullstellen der Zustandsvariablen zu bestimmen, hat nichts mit der numerischen Integration des vorgegebenen dynamischen Systems zu tun, ist aber in die Integratoren mit variabler Schrittweite eingebaut. Wenn diese in einem Integrationsschritt einen Vorzeichenwechsel erkennen, wird die Nullstelle genauer bestimmt, sofern entsprechende Blöcke vorhanden sind, die dies anfordern und ZCD eingeschaltet ist. Diese Integratoren ersetzen dabei auch den betreffenden Integrationsschritt durch einige kürzere Integrationsschritte, vermeiden jedoch die Nullstelle als Integrationsstützpunkt. Es gibt also eine Verzahnung zwischen den Integratoren mit variabler Schrittweite und ZCD. Die Integratoren mit fester Schrittweite kennen keine ZCD, obwohl man die betreffenden Optionen im Parameterfenster auch hier an- bzw. ausklicken kann.

Das Schrittweitendiagramm zeigt, daß daß die Schrittweite zum Zeitpunkt T deutlich einbricht.

Schrittweitendiagramm

ZCD wird von Simulink auch dazu verwendet, Unstetigkeiten bei den Zustandsvariablen zu erkennen und zu behandeln.

Beispiel 2:

Das nachfolgende Modell liefert die Lösung des Anfangswertproblemes y'(t)=-sign(y(t-1)-0.5)*y(t), y(0)=1. Die Simulation erfolgt mit dem Dormand-Prince-Verfahren ode45 mit Default-Parameterwerten über dem Intervall 0 bis 4.
Für den Transport Delay Block sind Anfangswert 1 und Verzögerungszeit 1 vorgegeben.
Numerisch ermittelt wird auch die erste Nullstelle der Funktion sign(y(t-1)-0.5), der Fehler gegenüber der exakten Nullstelle wird im Fehler-Fenster ausgegeben.

Schrittweitendiagramm

Der einzige Block in diesem Modell, der mit ZCD arbeitet ist der Sign-Block, es wird also möglicht genau bestimmt, wann der Funktionswert von sign(y(t-1)-0.5) eine Nullstelle passiert. Der exakte Wert der ersten Nullstelle ist 1-log(0.5). Mit ZCD wird dieser Wert mit einem Fehler von 7.1036e-4 bestimmt, ohne ZCD liegt der Fehler bei 6.6852e-2.

Zur Ermittlung der Nullstelle von y(t-1)-0.5 benutzt Simulink gespeicherte zurückliegende Werte. Es ist klar, daß die Nullstelle um so besser bestimmt werden kann, je besser diese Werte die Bestimmung der Nullstelle von y(t)-0.5 zulassen. Zur genauen Bestimmung dieser Nullstelle sind im obigen Modell aber keinerlei Vorkehrungen getroffen worden. Die ZCD im Sign-Block leidet daher unter schlechten Daten für ihre Aufgabe.

Im nachfolgenden Modell wird mit Hilfe eines Hit Crossing-Blockes die Nullstelle von y(t)-0.5 genau bestimmt, was dazu führt, daß auch die Nullstelle von y(t-1)-0.5 genauer bestimmt werden kann. Als Parameter des HC-Blockes werden 'hit crossing offset'=0.5 und 'hit crossing direction'='either' vorgegeben und bestimmt allgemein Nullstellen der Funktion 'Eingangssignal - hit crossing offset'. Anders als andere Blöcke die mit ZCD arbeiten, wird die Nullstellenbestimmung beim HC-Block auch dann durchgeführt, wenn ZCD global ausgeschaltet wurde.
Der Block wird ohne Ausgabeport verwendet, dient also nur dazu ZCD für y(t)-0.5 einzuschalten. Die Nullstelle von y(t-1)-0.5 kann mit diesem Modell bis auf einen Fehler von -6.2042e-10 bestimmt werden.

Modell mit Hit Crossing Block

Das folgende Diagramm zeigt von oben nach unten in einer halblogarithmischen Skala die Fehler bei der Bestimmung der Nullstelle von y(t-1)-0.5
  1. ohne ZCD
  2. mit ZCD aber ohne Hit Crossing Block zur Kontrolle der Nullstelle von y(t)-0.5
  3. mit ZCD und mit Hit Crossing Block
Die x-Werte in diesem Diagramm geben den negativen Zehnerexponenten der geforderten relativen Toleranz wieder. Die Werte bei x=5 gehören also zu einer Simulation mit relativer Toleranz: 1.0e-5. Die absolute Toleranz wurde in Abhängigkeit von der relativen Toleranz 1.0e-r jeweils zu 1.0e-(2*r) gewählt, wirkt sich aber hier nicht aus.

Man erkennt daß:

  • der Fehler ohne ZCD zwar mit fallender Fehlertoleranz für die Integration kleiner wird, jedoch nie diese Genauigkeit erreicht.
  • der Fehler mit ZCD im Sign-Block alleine sich nur bei schwachen Toleranzvorgaben auswirkt
  • der wesentliche Gewinn bei der Genauigkeit der Nullstellenbestimmung durch ZCD für die Nullstelle y(t)-0.5 erreicht wird.

Ein klassisches Beispiel für die Nullstellenbestimmung innerhalb eines Integrationsschrittes, das auch als Simulink-Demonstationsbeispiel verfügbar ist, ist die Bewegung eines elastischen Gummiballes. Die Nullstellen haben in diesem Beispiel einen Häufungspunkt, ein Problem, das auch mit ZCD nicht befriedigend gelöst werden kann.

Beispiel 3:

Ein Gummiball wird aus einer Höhe von s(0)=10m mit einer Anfangsgeschwindigkeit von v(0)=15m/sec senkrecht nach oben geworfen. Der Einfluß des Luftwiderstandes werde vernachlässigt, so daß nur die Schwerkraft g=-9.81m/sec^2 auf den Ball einwirkt. Wir wollen zunächst Geschwindigkeit v(t) und Position s(t) modellieren und dabei annehmen, daß der Ball unbeschränkt tief fallen kann. Die Simulationsparameter belassen wir auf ihren Default-Werten (Solver=ode45, Relative Toleranz=1.0e-3, Absolute Toleranz=auto, Zero crossing detection=on).

einfaches Modell des Problems

Die Anfangswerte v(0) und s(0) müssen als Blockparameter bei den jeweiligen Integratoren vorgegeben werden. Wie zu erwarten liefert v(t) eine Gerade und s(t) eine Parabel, die kurz vor 4 sec negative Werte annimmt. Wir wollen die Nullstelle von s(t) jetzt genauer bestimmen:

einfaches Modell mit Abbruchkriterium

Im Abbruchkriterium haben wir einen Hit crossing Block verwendet, wobei wir im Parameterfenster dazu die Werte für 'Hit crossing offset' auf 0 und für 'Hit crossing direction' auf 'falling' gesetzt haben. Der Block liefert 'wahr' bzw. 1, wenn diese beiden Bedingungen erfüllt sind, wenn also s(T)<=0 nach s(t)>0 für t<T festgestellt wird. Vor allem aber ist dies ein Block, der mit 'zero crossing detection' arbeitet. Natürlich hätte man das Abbruchkriterium auch mit anderen Blöcken modellieren können.

Wenn wir bei den Simulationsparametern 'Zero crossing detection' abschalten, sonst aber alle Parameterwerte beibehalten, liefert das Modell als Abbruchzeit T=3.68 anstelle von T=3.6211169879495. Dieser Wert ändert sich natürlich, wenn wir andere Vorgaben für die Fehlertoleranz machen. Mit rel.tol.=1.0e-6 und abs.tol=1.0e-9 erhalten wir mit zero crossing detection den unveränderten Wert von T, ohne diese Eigenschaft jedoch: T=3.63365...

Wir haben jetzt den Zeitpunkt T bestimmt, zu dem sich die Parameterwerte ändern. Die Frage ist nun, wie wir die Simulation mit den geänderten Parameterwerten fortsetzen können.

Der Integrator-Block verfügt über einen Reset Port, mit dessen Hilfe man seine Zustandsvariablen, abhängig vom Wert eines externen Signales, auf seine Anfangswerte zu&ruuml;cksetzen können. Um diesen Port zu benutzen, müssen wir wir als Wert des Block-Parameters External reset einen von 'none' verschiedenen Wert vorgeben. Wir haben im folgenden Modell den Wert falling vorgegeben und das Signal s(t) zum triggern. Das heißt genauer: s(t) setzt die Zustandsvarible des Intergatorblockes Int. v(t) auf ihren Anfangswert, wenn s(t) eine Nullstelle vom Positiven aus erreicht.

Modell mit Reset eines Integratorblockes

Als Ergebnisse erhalten wir die Geschwindigkeits- und Ortsdiagramme:

Geschwindigkeitsdiagramm
Ortsdiagramm

Da wir nur die Zustandswerte des Integrators Int. v(t), nicht aber die des Integrators Int s(t) zurückgesetzt haben, unterscheiden sich die Ergebnisse der Folgeläufe von denen des ersten Laufes.

In diesem Modell sind keine Blöcke enthalten, die eine genaue Bestimmung der Nullstellen der Lösung erzwingen würden. Es wird lediglich festgestellt, ob die Lösungen vom Positiven ins Negative geraten sind. Ist das der Fall, so wird eine neue Phase zum aktuellen Zeitpunkt gestartet, es wird aber nicht versucht, den Zeitpunkt des Nulldurchganges genauer zu bestimmen. Falls die Lösungswerte geringfügig ins Negative geraten, fällt dies insofern nicht auf, da die Anfangssteigung der neuen Phase wieder auf 15 (interner Parameterwert) gesetzt wird, was dafür sorgt, dass die Lösungswerte schnell wieder positiv werden.

Tatsächlich benötigen wir für unser Problem eine variable Vorgabe der Anfangswerte für die jeweiligen Simulationsphasen, wobei diese mit der Zeit immer kleiner werden.

Dazu setzen wir zunächst den Wert Initial condition source des Integrator-Blockes Int. v(t) von internal auf external, der Integrator-Block erhält dadurch einen dritten Eingang, über den wir die Anfangswerte der einzelnen Simulationsphasen vorgeben können. Wenn wir dort konstant den Wert 15 vorgeben, erhalten wir dieselben Ergebnisse wie bisher. Im folgenden Modell geben wir als Anfangswerte der einzelnen Phasen den Wert 10*exp(T) vor, wobei T der Zeitpunkt ist, zu dem die Phase beginnt.

Modell mit Reset und extern bestimmten Anfangswerten eines Integratorblockes

Modell mit mehreren Phasen, variablen Anfangswerten und grober Bestimmung der Phasenenden

Die Ergebnisse sind nicht brauchbar, da die Nullstellen des Ausgangssignales des Integrators Int.s(t) nicht genau bestimmt werden und die immer kleiner werdenden Anfangssteigungen der neuen Phasen irgendwann einmal nicht mehr ausreichen um die Lösungen wieder aus dem Negativen ins Positive zu führen. Konkret endet hier die Phase, die etwas vor 3.3 beginnt, soweit im Negativen, daß die nächste Phase keine positiven Werte mehr erreicht und dadurch auch kein Ende dieser Phase mehr festgestellt werden kann.

Ortsdiagramm

Wir können dieses Problem durch Vorgabe einer entsprechend kleinen maximalen Schrittweite beeinflussen, jedoch nicht endgültig beheben. Kleinere Schrittweiten sorgen dafür, daß der letzte Integrationsschritt einer Phase näher an der tatsächlichen Nullstelle endet, die Lösung also nicht soweit ins Negative gerät wie mit einem größeren Schritt, die jeweilige Anfangssteigung also länger ausreicht, die Lösung wieder ins Positive zu führen.

Mit der Vorgabe 'Max step size=001' anstelle der Vorgabe 'Max step size=auto' (bei 'rel.tol=1.0e-3, abs.tol=1.0e-6) schieben wir dieses Problem um viele Phasen bis nach 5.4 hinaus.

Ortsdiagramm

Endgültig beseitigen können wir das Problem nur, wenn wir den Ausgabewert des Integrators Int.s(t) nach unten durch 0 beschränken, wie dies im folgenden Parameterfenster der Fall ist.

Parameterfenster zum Integrator-Block

Beachten Sie, daß sowohl 'Limit output' angekreuzt als auch 'Lower saturation limit=0' gesetzt wurden. Die BeschrÄnkung des Ausgabewertes hat zwei Wirkungen:
  • der Ausgabewert kann nicht ins Negative geraten
  • zero crossing detection wird eingeschaltet
Der Integrator erkennt jetzt auch noch Phasen der Länge 1.0e-4 wie sie in der Nähe des Endes des Simulationsintervalles bei T=10 auftreten.

Ortsdiagramm

Bei einem elastischen Ball ist die Anfangsgeschwindigkeit einer Folgephase nicht durch einen Funktionswert, sondern durch die Endgeschwindigkeit der vorangehenden Phase bestimmt. Wir wollen annehmen, der Quotient aus beiden sei -0.8. Der negative Wert ist notwendig, da die Geschwindigkeit sich beim Aufprall auf die Erde umkehren soll. Dies legt im Groben das folgende Modell nahe:

Modell mit rückgekoppelten Anfangswerten

das jedoch nicht brauchbar ist:
  • die Ergebnisse sind unbrauchbar,
  • es enthät eine algebraische Schleife,
  • es berücksichtigt nicht den speziellen Anfangswert für die erste Phase
Der letzte Punkt ist dabei das einfachste Problem. Wenn Ihre Simulink-Version schon den IC-Block enthält, kann man den Anfangswert des Eingangssignales, also den Anfangswert für die erste Phase mit diesem Wert vorgeben. Ohne diesen Block ist etwas mehr Aufwand erforderlich (siehe Anhang).

Die beiden anderen Punkte sind aufwendiger zu umgehen, wobei wir annehmen, daß beide zusammenhängen. Das Problem der algebraischen Schleife bei der Vorgabe von Anfangswerten ist jedoch so häufig, daß Simulink einen Ausweg dazu eingebaut hat und in der Warnung zur algebraischen Schleife auch darauf hinweist.

Der Integrator-Block verfügt über einen Ausgang state port, den man zur Verfügung hat, sobald man im Parameterfenster 'Show state port' anklickt. Dieser Ausgang liefert zwar dasselbe Signal wie der normale Ausgang, vermeidet aber blockintern eine algebraische Schleife. Wir erhalten damit das nachfolgende Modell, das eine Lösung unseres Problems bis T=20 erlaubt.

Modell zum elastischen Ball

Anhang:
Sollte Ihre Simulink-Version nicht den IC-Block beinhalten, so können Sie dessen Funktion z.B. mit folgendem Subsystem modellieren:

Modell zum elastischen Ball

Leider ist 'zero crossing detection' kein Werkzeug, das immer hilft. Beim Beispiel des elastischen springenden Balles werden die Phasen im Laufe der simulierten Zeit immer kürzer und irgendwann einmal so kurz, daß 'zero crossing detection' und damit die gesamte Integration stecken bleibt. Wir können solche Probleme:
  • mit variabler Schrittweite aber ohne zero crossing detection
  • mit fester Schrittweite
integrieren, beides bedeutet Verzicht auf Genauigkeit und man muß sich in jedem Falle fragen, ob bzw. welchen Wert die so gewonnenen numerischen Ergebnisse haben.

Beispiel 3:

Wir betrachten erneut das Beispiel des elastischen Balles, nehmen zur Vereinfachung jetzt jedoch an:
  • die Gravitation betrage 10 m/sec^2,
  • die Anfangsgeschwindigkeit betrage v(0)=10 m/sec
  • die Anfangshöhe betrage s(0)=0 m

Man kann sich leicht überlegen, daß unter diesen Bedingungen die Länge der k. Sprungphase den Wert 2*(0.8)^(k-1) hat, die Endzeitpunkte also bei 2.0, 3.6, 4.24, .... liegen und zur Zeit 10 einen Häufungspunkt haben.

Wie gehen die einzelnen Integratoren mit dieser Situation um und welche Hinweise geben sie dem Anwender?

Dormand-Prince ode45 mit ZCD
Simuliert wurde von 0 bis 15, wobei die Simulation aber nach maximal 5000 Integrationschritten abgebrochen wurde. Als relative bzw. absolute Toleranzen wurden 1.0e-8 bzw. 1.0e-16 vorgegeben. ZCD wurde sowohl bei v(t) als auch bei s(t) verlangt.

      Abbruchszeit T:  10 + 1.009e-9
   angezeigte Phasen:  790
Integrationsschritte:

Integrationsschritte

Schrittweitendiagramm:

Schrittweitendiagramm

Phasendiagramm:

Phasendiagramm

Phasenlängen:

Phasenlängen

Quotient aufeinanderfolgender Phasenlängen:

Phasenlängenquotient

Amplituden:

Amplituden

Amplitudenquotient aufeinanderfolgender Phasen:

Amplitudenquotient

Dormand-Prince ode45 mit ZCD und Default-Parameterwerten

Simuliert wurde von 0 bis 15, wobei die Simulation aber nach maximal 5000 Integrationschritten abgebrochen wurde. ZCD wurde sowohl bei v(t) als auch bei s(t) verlangt.
      Abbruchszeit T:  10 + 1.014e-9
   angezeigte Phasen:  793
Die geringeren Genauigkeitsanforderungen machen sich praktisch nicht bemerkbar.

Steifer Integrator ode15s mit ZCD
Simuliert wurde von 0 bis 15, wobei die Simulation aber nach maximal 5000 Integrationschritten abgebrochen wurde. Als relative bzw. absolute Toleranzen wurden 1.0e-8 bzw. 1.0e-16 vorgegeben. ZCD wurde sowohl bei v(t) als auch bei s(t) verlangt.

      Abbruchszeit T:  10 - 1.393e-6
   angezeigte Phasen:  850
ode15s findet in einem kürzeren Intervall mehr Sprungphasen als ode45. Integrationsschritte:

Integrationsschritte

Schrittweitendiagramm:

Schrittweitendiagramm

Die restlichen Diagramme unterscheiden sich kaum von denen zu ode45 mit ZCD.

Dormand-Prince ode45 ohne ZCD
Simuliert wurde von 0 bis 15, wobei die Simulation aber nach maximal 5000 Integrationschritten abgebrochen wurde. Als relative bzw. absolute Toleranzen wurden 1.0e-8 bzw. 1.0e-16 vorgegeben. Der Integrator gibt eine Warnung aus, daß die geforderte Genauigkeit nicht garantiert werden kann und daß möglicherweise eine Unstetigkeit vorliegt.

      Abbruchszeit T:  10 + 9.655e-5
   angezeigte Phasen:  558
Integrationsschritte:

Integrationsschritte

Schrittweitendiagramm:

Schrittweitendiagramm

Phasendiagramm:

Phasendiagramm

Phasenlängen:

Phasenlängen

Quotient aufeinanderfolgender Phasenlängen:

Phasenlängenquotient

Amplituden:

Amplituden

Amplitudenquotient aufeinanderfolgender Phasen:

Amplitudenquotient

In der Umgebung von 10 nimmt der Quotient teilweise Werte über 400 an.

Dormand-Prince ode45 ohne ZCD und Default-Parameterwerten
Simuliert wurde von 0 bis 15, wobei die Simulation aber nach maximal 5000 Integrationschritten abgebrochen wurde.

      Abbruchszeit T:  15
   angezeigte Phasen:  8
Ohne ZCD ist das Verfahren bei geringen Genauigkeitsanforderungen für dieses Problem ungeeignet, man erhält keinerlei Hinweise auf eventuelle Probleme.

Phasenlängen:

Phasenlängen

Amplitudenquotient aufeinanderfolgender Phasen:

Amplitudenquotient

Steifer Integrator ode15s ohne ZCD

Simuliert wurde von 0 bis 15, wobei die Simulation aber nach maximal 5000 Integrationschritten abgebrochen wurde. Als relative bzw. absolute Toleranzen wurden 1.0e-8 bzw. 1.0e-16 vorgegeben.
      Abbruchszeit T:  1.9999999
   angezeigte Phasen:  1
ode15s kommt ohne ZCD mit 5000 Integrationsschritten nur bis zur ersten Unstetigkeit. Es wir eine Warnung ausgegeben, daß möglicherweise eine Unstetigkeit vorliegt und die Lösung nicht mit der geforderten Genauigkeit ermittelt werden kann.

Steifer Integrator ode15s mit Default-Parameterwerten, ohne ZCD

Simuliert wurde von 0 bis 15, wobei die Simulation aber nach maximal 5000 Integrationschritten abgebrochen wurde.
      Abbruchszeit T:  15
   angezeigte Phasen:  754
Das Verfahren liefert keine Hinweise auf den Häufungspunkt bei T=10.

Integrationsschritte:

Integrationsschritte

Schrittweitendiagramm:

Schrittweitendiagramm

Phasendiagramm:

Phasendiagramm

Phasenlängen:

Phasenlängen

Quotient aufeinanderfolgender Phasenlängen:

Phasenlängenquotient

Amplituden:

Amplituden

Amplitudenquotient aufeinanderfolgender Phasen:

Amplitudenquotient

Dormand-Prince ode5

Integratoren mit fester Schrittweite sind für dieses Problem ungeeignet, auch wenn die Ergebnisse mit kleineren Schrittweiten besser werden. Simuliert wurde von 0 bis 15 mit der Schrittweite 0.25.
      Abbruchszeit T:  15
   angezeigte Phasen:  8
Phasendiagramm:

Phasendiagramm

Phasenlängen:

Phasenlängen

Quotient aufeinanderfolgender Phasenlängen:

Phasenlängenquotient

Amplituden:

Amplituden

Amplitudenquotient aufeinanderfolgender Phasen:

Amplitudenquotient

Blöcke, die mit ZCD arbeiten

IconNameWas wird festgestellt?
abs-Block Abs Zeitpunkt zu dem das Eingangssignal das Vorzeichen wechselt
backlash-Block Backlash Zeitpunkt zu dem das Eingangssignal die obere bzw. untere Schranke erreicht
deadzone-Block Deadzone Zeitpunkt zu dem Anfang bzw. Ende der deadzone (Null-Zone) erreicht wird
Hit crossing-Block Hit crossing Eingangssignal passiert den offset Wert des Blockes, d.h. Nullstelle von 'Eingangssignal - offset'. Die genaue Bestimmung dieser Stelle wird auch bei abgeschalteter ZCD durchgeführt.
integrator-Block Integrator Der Integrator-Block arbeitet normalerweise ohne Nullstellenbestimmung. Diese wird erst durch die Vorgabe von oberen bzw. unteren Schranken für das Ausgabgssignal oder durch das Vorhandensein eines Reset ports im Block aktiviert. Bestimmt werden dann die Zeitpunkte, zu denen die Schranken über- oder unterschritten werden bzw. zu denen ein Reset erfolgen muss.
MinMax-Block MinMax Zeitpunkt zu dem bei einer der Komponenten des Ausgangssignales ein neues Minimum oder Maximum vorliegt. Ausgegeben wird immer das bisher aufgetretene Minimum bzw. Maximum der betreffenden Komponente des Eingangssignales.
Relay-Block Relay Zeitpunkte zu dem die Switch on bzw. Switch off Punkte erreicht werden.
Relational Operator-Block Relational Operator Bestimmt werden die Zeitpunkte, an denen der Wert des Ausgangssignales seinen Wert wechseln muss.
Saturation-Block Saturation Zeitpunkte zu denen die obere oder untere Schranke erreicht wird.
Sign-Block Sign Bestimmt werden die Nullstellen des Eingangssignales.
Step-Block Step Step time, also den Zeitpunkt, ab dem das Ausgangssignal den Endwert annimmt.
Subsystem-Block Subsystem Subsystem-Blöcke arbeiten nur dann mit Nullstellenbestimmung, wenn sie mit einem Enable- oder Trigger-Port versehen sind. Bestimmt werden dann die Zeitpunkte, zu denen das Subsystem aktiv wird.
Switch-Block Switch Zeitpunkt zu dem das Kontrollsignal den Schaltwert (treshold) erreicht. Dies ist eine Nullstelle von 'Kontrollwert-Schaltwert'.