Zurück zum Blog

Deterministische Ausführung in FPGA-basierter Echtzeitsimulation

Simulation

03 / 02 / 2026

Deterministische Ausführung in FPGA-basierter Echtzeitsimulation

Wichtigste Erkenntnisse

  • Deterministisches Timing ist die Glaubwürdigkeitsstufe in HIL, da es die Verzögerung im geschlossenen Regelkreis begrenzt und über Läufe und Workloads hinweg wiederholbar hält.
  • Die FPGA-Ausführung verbessert die HIL-Latenz und die Jitter-Steuerung durch feste hardware -Pfade und tick-ausgerichtete I/O, sodass Controller ein konsistentes Ursache-Wirkungs-Timing erkennen.
  • Stabile Ergebnisse werden durch explizite Zeitbudgets, sorgfältige CPU- und FPGA-Partitionierung und zeitstempelbasierte Validierung erzielt, die das Worst-Case-Verhalten durchgängig überprüft.

 

Deterministisches Timing macht ein Hardware-in- hardwareLoop-Ergebnis glaubwürdig.

Wenn das Timing nicht stimmt, erhalten Sie zwar weiterhin Plots und Pass-/Fail-Flags, wissen aber nicht, ob Sie Ihren Controller getestet haben oder nur Ihren Testaufbau. Harte Timing-Fehler verstecken sich oft als „Rauschen“, bis Sie den Code an ein Ziel senden, das sich unter Last anders verhält. Eine öffentliche Schätzung beziffert die jährlichen Kosten einer unzureichendenTests auf 59,5 Milliarden US-Dollar, was daran erinnert, dass die Glaubwürdigkeit von Tests nicht nur für den technischen Stolz, sondern auch für die Finanzen von Bedeutung ist.

FPGA-basierte Echtzeitsimulationen sind beliebt, weil sie Best-Effort-Timing durch feste, wiederholbare Ausführung und I/O ersetzen. Der Nutzen ist einfach: Wenn Sie Latenz und Jitter nicht durchgängig erklären und messen können, wird die Genauigkeit der Closed-Loop-Simulation zu einer Annahme. Wenn Sie dies können, wird HIL zu einer zuverlässigen Methode, um Randfälle frühzeitig und mit Sicherheit zu erkennen.

 

„Wenn diese beiden Faktoren übereinstimmen, verhält sich der Simulator wie ein stabiles Laborgerät.“

 

Deterministisches Timing legt das Vertrauensniveau in HIL-Tests fest

Deterministisches Timing bedeutet, dass jeder Simulationsschritt und I/O planmäßig mit begrenzter und wiederholbarer Verzögerung erfolgt. Ihr Controller reagiert bei jedem Durchlauf auf dasselbe Timing-Profil und nicht jedes Mal anders, wenn die CPU ausgelastet ist. Diese Wiederholbarkeit ist die Vertrauensbasis in HIL. Ohne sie sehen die Ergebnisse zwar präzise aus, aber das Timing-Verhalten bleibt unbekannt.

Man kann Determinismus als einen Vertrag betrachten, der drei Dinge umfasst. Der Solver-Schritt muss vor Ablauf einer festen Frist abgeschlossen sein, I/O muss an der Schrittgrenze ausgerichtet sein und die Zeit zwischen „Controller-Ausgabe” und „Anlagenreaktion” muss konsistent bleiben. Wenn einer dieser Punkte nicht eingehalten wird, schließt sich die Schleife zwar weiterhin, aber Sie validieren nicht mehr die zeitlichen Annahmen innerhalb Ihres Steuerungsdesigns. An diesem Punkt wird es schwierig, einen Test gegenüber einem Sicherheits- oder Validierungsteam zu verteidigen.

Die deterministische Echtzeitsimulation reduziert auch die Notwendigkeit, das Labor „abzustimmen“. Ein auf Jitter abgestimmter Regler sieht oft stabil aus, aber diese Stabilität kann ein Artefakt des Labors sein. Ein strenger Determinismus zwingt Sie dazu, sich an die Physik der Anlage und die beabsichtigte Abtastrate anzupassen. Mit der Zeit verbessert diese Disziplin die Wiederverwendbarkeit, da sich dasselbe Modell und derselbe Regler bei einer Erweiterung der Testabdeckung gleich verhalten.

Jitter- und Latenzfehler verringern die Genauigkeit der Closed-Loop-Simulation.

Latenz ist die feste Verzögerung zwischen Ursache und Wirkung, während Jitter die Schwankung dieser Verzögerung von einem Zyklus zum nächsten ist. Die Genauigkeit der Closed-Loop-Simulation nimmt am schnellsten ab, wenn Jitter auftritt, da die Schleifenverzögerung nicht mehr vorhersehbar ist. Der Regler sieht effektiv eine zeitabhängige Anlage. Diese Zeitabweichung zeigt sich als zusätzliche Phasenverzögerung und verrauschte Rückkopplung, selbst bei perfekter Mathematik.

Teams konzentrieren sich oft auf die durchschnittliche Latenz und übersehen dabei die ungünstigsten Fälle. Eine stabile durchschnittliche Verzögerung kann dennoch gelegentliche lange Verzögerungen verbergen, die eine Schleife über ihre Stabilitätsgrenze hinausbringen. Jitter beeinträchtigt auch die Wiederholbarkeit, sodass Regressionen schwieriger zu reproduzieren sind und weniger leicht auf eine Modelländerung zurückgeführt werden können. Wenn ein Testfehler von der CPU-Auslastung, Buskonflikten oder Hintergrunddiensten abhängt, handelt es sich in erster Linie um einen Timing-Fehler und erst in zweiter Linie um einen Kontrollfehler.

Die Latenz ist nach wie vor wichtig, da sie die nutzbare Bandbreite der Schleife definiert. Wenn die Verzögerung der geschlossenen Schleife für die Abtastrate zu groß ist, müssen Sie die Verstärkung verringern, Filter hinzufügen oder eine langsamere Reaktion in Kauf nehmen. Diese „Korrekturen“ können Probleme der Anlage verschleiern und auch die Empfindlichkeit gegenüber Sensorrauschen verbergen. Ein klares Zeitbudget sorgt für Ehrlichkeit, da jede Mikrosekunde ihren Platz und ihren Grund hat.

Die FPGA-Ausführung reduziert die Latenz bei Echtzeitsimulationen und I/O .

FPGAs reduzieren Latenz und Jitter, da die Logik als feste hardware und nicht als zeitgeteilte software ausgeführt wird. Nach der Kompilierung führt ein FPGA-Design bei jedem Taktzyklus dieselbe Sequenz mit vorhersehbaren Pipeline-Verzögerungen aus. Dieser Determinismus gilt sowohl für die Berechnung als auch für I/O . Dadurch wird die FPGA-Latenz in HIL zu einem Faktor, den Sie bei der Entwicklung berücksichtigen können, und nicht zu einer Variablen, von der Sie hoffen, dass sie gering bleibt.

Ein konkretes Beispiel verdeutlicht dies. Ein Wechselrichter-Controller, der PWM mit 20 kHz aktualisiert, hat eine Steuerungsperiode von 50 Mikrosekunden, und selbst eine wenige Mikrosekunden betragende Abweichung I/O kann zu einer Veränderung der Stromwelligkeit und des Drehmomentverhaltens führen, die Ihr Modell nicht vorhersagen kann. Durch die Integration der schnellen Schaltfunktionen, der PWM-Erfassung und der Schutzlogik in einem FPGA bleibt dasVorteil wiederholbar, sodass die Schleife in jedem Zyklus die gleiche Verzögerung erkennt. Diese einzelne Änderung trägt oft mehr zur Genauigkeit der Closed-Loop-Simulation bei als das Hinzufügen von Modelldetails.

Mit FPGAs können Sie I/O auch I/O synchrone Daten und nicht als asynchrone Interrupts behandeln. ADC-Abtastung, digitale Erfassungen und Encoder-Decodierung können alle auf einen gemeinsamen Takt und einen gemeinsamen Tick abgestimmt werden. Diese Abstimmung reduziert die versteckte „Versetzung“ zwischen den Kanälen, die sich sonst als Phantom-Phasenverschiebungen bemerkbar macht. Der Nachteil ist der Designaufwand, da die FPGA-Partitionierung eine frühzeitige Planung und klare Timing-Ziele erfordert.

Modelle auf FPGA und CPU aufteilen, um Fristen einzuhalten

Partitionierung ist die Praxis, jede Modellaufgabe auf die Rechenressource zu legen, die ihre Frist mit stabiler Zeitplanung einhalten kann. Die CPU verarbeitet numerisch aufwändige oder variable Aufgaben, die dennoch in einen festen Zeitplan passen. Der FPGA verarbeitet die schnellen, sich wiederholenden, zeitkritischen Teile, bei denen Jitter die Schleife am meisten beeinträchtigen würde. Wenn dies gut gemacht wird, erhält man Determinismus, ohne das gesamte Anlagenmodell in hardware umsetzen zu müssen.

Eine praktische Partitionierung beginnt in der Regel an der I/O und verläuft nach innen. Alles, was mit Schaltvorgängen, Vorteil oder Schutzverriegelungen zu tun hat, gehört in die Nähe der I/O, da verspätete Aktualisierungen nicht nur die Genauigkeit, sondern auch das Verhalten verändern. Langsamere Dynamiken, Überwachungslogik und Protokollierung passen besser auf die CPU, wo die Flexibilität höher ist. Plattformen, die CPU-Löser und I/O kombinieren, wie z. B. OPAL-RT-Systeme, machen diese Aufteilung praktikabel, solange Sie die Schnittstelle als Teil des Timing-Budgets behandeln.

Der Hauptfehler besteht darin, die Grenze zwischen CPU und FPGA wie einen freien Briefkasten zu behandeln. Jeder Übergang erfordert Pufferung, Handshaking und Taktdomänenverarbeitung, was zu Verzögerungen und Abweichungen führen kann, wenn dies nicht geplant ist. Auch Ratenübergänge müssen sorgfältig behandelt werden, da eine schnelle FPGA-Aufgabe, die eine langsamere CPU-Aufgabe speist, Aliasing verursacht, wenn Sie das Sampling- und Hold-Verhalten nicht definieren. Bei einer guten Partitionierung geht es weniger um die reine Geschwindigkeit als vielmehr darum, jede Schleifenverzögerung explizit und wiederholbar zu halten.

I/O und Scheduling-Optionen, die eine wiederholbare Zeitsteuerung gewährleisten

Wiederholbare Zeitsteuerung hängt von der Synchronisierung I/O dem Simulations-Tick und der Planung jeder Aktualisierung als vorhersehbare Sequenz ab. Synchrone Abtastung bedeutet, dass jeder Kanal zu einem bekannten Zeitpunkt erfasst wird und nicht „wenn der Treiber dazu kommt“. Deterministische Ausgabe bedeutet, dass Aktualisierungen zu einem definierten Vorteil angewendet werden und nicht über ein variables Fenster verteilt sind. Wenn diese beiden Faktoren übereinstimmen, verhält sich der Simulator wie ein stabiles Laborgerät.

Drei Entscheidungen sind dabei besonders wichtig. Erstens: Richten Sie ADC und digitale Erfassung auf einen gemeinsamen Takt und einen definierten Trigger aus, damit die Kanäle kohärent bleiben. Zweitens: Halten Sie die Pufferung explizit und begrenzt, damit „hilfreiche“ Warteschlangen keine versteckten Verzögerungen verursachen. Drittens: Behandeln Sie asynchrone Busse als zeitgesteuerte Schnittstellen, mit klaren Annahmen darüber, wann Werte relativ zum Takt gültig sind. Diese Details klingen unbedeutend, aber sie entscheiden darüber, ob Ihre Schleifenverzögerung konstant ist oder sich ständig ändert.

 

„Wenn man Latenz und Jitter nicht durchgängig erklären und messen kann, wird die Genauigkeit der Closed-Loop-Simulation zu einer Annahme.“

 

Zeitpunkt-Prüfpunkt, den Sie überprüfen können Wie wiederholbare Vorgänge in der Praxis aussehen
ADC-Abtastzeitpunkt Ein einziger Auslöser bestimmt, wann alle Kanäle erfasst werden.
Ausgabe-Update Vorteil DAC- und Digitalausgänge ändern sich an einer festen Tick-Grenze.
Taktbereichsübergänge Jede Kreuzung hat eine bekannte, konstante Pipeline-Verzögerung.
Puffertiefe und Warteschlange Die Warteschlangen sind begrenzt, sodass der Rückstand unter Last nicht wachsen kann.
Zeitliche Abstimmung über gemischte I/O hinweg Jedes Signal hat einen definierten Zeitstempel relativ zum Solver-Schritt.

 

Festlegen und Validieren von Latenzbudgets mit zeitstempelbasierten Messungen

Ein Latenzbudget ist eine schriftlich festgelegte Grenze für jede Verzögerungskomponente im geschlossenen Regelkreis, von I/O über die Berechnung bis hin zur Aktualisierung der Ausgabe. Bei der zeitstempelbasierten Validierung wird überprüft, ob das Budget unter realistischen Lastbedingungen eingehalten wird, nicht nur in einer ruhigen Laborumgebung. Das Ziel ist der Nachweis der Grenzen, nicht eine Best-Case-Zahl. Sobald Sie es messen können, können Sie es auch verwalten.

Zeitstempel benötigen eine ausreichende Auflösung, um kleine Abweichungen anzuzeigen, und gängige Zeitformate unterstützen dies bereits. Ein standardmäßiger 64-Bit-NTP-Zeitstempel verwendet ein 32-Bit-Bruchteilfeld mit einer theoretischen Auflösung von etwa 233 Pikosekunden. Diese Auflösung geht weit über die typischen HIL-Anforderungen hinaus, unterstreicht jedoch das Prinzip, dass Messwerkzeuge viel feiner sein können als die von Ihnen veranschlagten Verzögerungen. Wichtig ist, Zeitstempel an den richtigen Stellen zu setzen, z. B. beim ADC-Latch, beim Start und Ende eines Solver-Schritts und bei der Ausgabe.

Eine nützliche Validierungsroutine kombiniert Instrumentierung und Belastung. Zeichnen Sie Zeitstempel auf, während Sie Ihre normale Arbeitslast ausführen, und wiederholen Sie dies dann, während Sie Protokollierung, Kommunikationsverkehr und die Worst-Case-Modellkonfiguration hinzufügen, die Sie voraussichtlich ausliefern werden. Vergleichen Sie Worst-Case- und typische Werte, nicht nur Durchschnittswerte, und behandeln Sie Ausreißer als zu behebende Fehler. Teams, die dies frühzeitig tun, vermeiden die Überraschung in der späten Phase, dass „das Modell in Ordnung ist“, aber das Timing nicht stimmt.

Häufige Fehler bei der HIL-Einrichtung, die zu nicht deterministischem Verhalten führen

Nicht deterministisches Verhalten in HIL entsteht in der Regel durch eine kleine Anzahl wiederholbarer Fehler und nicht durch mysteriöse physikalische Phänomene. Timing-Fehler treten auf, wenn Teile der Schleife mit unterschiedlichen Taktraten laufen, wenn software als „gut genug“ angesehen wird oder wenn Pufferungsverzögerungen auftreten. Die Behebung dieser Probleme ist selten glamourös, aber es ist die Arbeit, die die Glaubwürdigkeit schützt. Wenn das Timing diszipliniert ist, werden Ihre Ergebnisse bei Überprüfungen und Audits Bestand haben.

 

  • I/O frei I/O lassen statt tick-ausgerichtet
  • Ignorieren des schlimmsten Jitter-Falls und Vertrauen auf die durchschnittliche Latenz
  • Unbegrenzte Warteschlangen in Datenpfaden zulassen
  • Mischen von Taktdomänen ohne definierte Pipeline-Verzögerungen
  • Messung der Latenz an einem Punkt statt über die gesamte Strecke

 

Die praktische Beurteilung ist einfach. Sie sollten deterministisches Timing als Testanforderung behandeln, genauso wie Sie Sensorskalierung oder Sicherheitsverriegelungen als Anforderungen behandeln, da das Timing die Schleife definiert, die Sie validieren. OPAL-RT-Projekte, die langfristig erfolgreich sind, institutionalisieren dies in der Regel als Gewohnheit mit schriftlichen Budgets und wiederholbaren Messungen und nicht als einmalige Optimierungsmaßnahme. Diese Gewohnheit sorgt dafür, dass die Genauigkeit der Closed-Loop-Simulation an die technischen Vorgaben gebunden ist und nicht an die momentanen Bedingungen im Labor.

Echtzeitlösungen für alle Branchen

Entdecken Sie, wie OPAL-RT die weltweit fortschrittlichsten Branchen verändert.

Alle Branchen anzeigen