Donnerstag, 22. Februar 2024
Donnerstag, 22. Februar 2024
NX-motion-Simulink Co-Simulation Teil 3 - Signalrauschen verbessern
Verbesserung der Signalqualität der Messgrößen
Damit die Regelung richtig funktionieren kann, sollte die Signalqualität ausreichend gut sein. Wie man auf folgender Abb. sieht ist blau der anregende Signalverlauf dargestellt. Dieser wird direkt in Simulink mittels Sinus-Generator erzeugt und ist ideal glatt.
Gelb dargestellt sieht man eine aus NX-motion rückgeführte Messgröße … in diesem Fall ein Wegsignal in Z-Richtung. Man sieht deutlich ein überlagertes Rauschen mit einem Dreiecksverlauf. Dieses Rauschen stört die Funktion der im Zeitbereich operierende Signalblöcke wie den PID-Regler oder auch ein daraus erneut abgeleitetes Wegsignal für die Schwingungskompensation.

Erklärungsversuch 1
An welcher Stelle das Rauschen entsteht ist noch nicht ganz klar. Es sieht so aus als ob es aus einer unterschiedlichen Zeitsynchronisation her rührt. Wenn NX-motion mit 1ms Abtastzeit arbeitet, Simulink aber mit einem kleineren Intervall wie 0,5 ms arbeitet dann könnten die fehlenden Daten linear extrapoliert werden. Dadurch würden sich die Signalzacken erklären.
Erklärungsversuch 2
Da Simulink für die Regelung auch mit einem Solver mit variabler Schrittgröße arbeitet, würde Simulink zeitliche Zwischenschritte einfügen, an denen kein Messsignal anliegt.

Beim Betrachten des weiteren Signalverlaufs sieht man dass die Signalqualität im weiteren Verlauf etwas besser wird. Entweder sind am Anfang die zeitlichen Zwischenschritte im Simulink zu groß bzw. größer als die Zeitschritte im NX und gegen später wird das besser angeglichen?

Lösungsmöglichkeit 1
In NX-motion kann die Abtastzeit der Co-Simulation angegeben werden. Oben war diese mit Δt=0,001s (1ms) angegeben. Diese wird im weiteren auf Δt=0,0001s (0,1ms) verfeinert.

Ebenso sollte in Simulink der NX-motion-Block mit der gleichen Abtastzeit eingestellt werden. Dazu wird die Zeit der Simultation und durch die Abtastzeit geteilt. Daraus ergibt sich die Anzahl Schritte … also bei 10s Simulationszeit ergeben sich bei 0,1 ms Abtastzeit 100.000 Schritte.
Auch in der Lösung in NX-motion sollte diese Anzahl Schritte eingetragen werden, um beide Systeme möglichst optimal miteinander zu synchronisieren.


Auf diese Weise wird die Frequenz des störenden Sägezahn deutlich erhöht und mehr Zwischenschritte und damit die Amplitude reduziert. Wenn es ein Extrapolations-Problem ist, so wird die Anzahl der „schlechten Extrapolationen“ vermindert. Mit dieser Maßnahme wird die Regelbarkeit stark verbessert, wenn auch noch nicht ausreichend genug, um die Regelabweichung vollends ausregeln zu können.
Lösungsmöglichkeit 2
Eine weitere Möglichkeit wäre es den Signalverlauf im Zeitbereich zu glätten. Da die Filter fast immer im Frequenzbereich filtern bzw. das Signal immer erst in den Frequenzbereich wandeln, filtern und dann rücktransformieren, haben Filter immer den Nachteile eines sehr großen Zeitversatz.
Bei der Wandlung in den Frequenzbereich wird eine Frequenzanalyse durchgeführt … es wird also immer nach Sinus-Wellen gesucht. Wir haben aber dreieckförmige Störungen und da werden sehr viele verschiedene Frequenzen ermittelt. Also eher nicht so gut geeignet für eine schnelle Filterung.
Eine Idee wäre es, wenn jeder Punkt mit leicht zeitversetzten Punkten gemittelt würde. Durch die Mittelung werden benachbarte Punkte in der Streuung reduziert. Der dadurch entstehende zeitliche Versatz kann gering gehalten werden wenn die Abtastzeit sehr klein ist.

Hier sieht man gelb eine Sinuswelle. Die blaue Störung wird zum roten Signal überlagert. Das grüne Signal wird mittels 4 zeitlich nacheinander gemessenen Werten gemittelt.

Hier werden 4 Werte miteinander gemittelt:
•t
•t+0,05
• t+0,1
•t+0,15
Die Größen für den „Zeitfilter“ sollten in Relation zur Abtastzeit sein, also am besten ein ganzzahliges Vielfaches der Abtastzeit. Mit dem Transport-Delay-Block kann ein Wert in die nächsten Schritte mit übernommen werden ... ähnlich einer Variable.

Tips zur praktischen Umsetzung
Wenn man in ein Signal tief hineingeht - dieses also vergrößert bis man den Abstand der oberen und unteren Spitzen gut sehen kann - so kann mit dem Messwerkzeug der zeitliche Abstand zwischen den beiden lokalen Maximalpunkten ermittelt werden.

In unserem Falle beträgt der zeitliche Abstand 0,1ms bzw. 0,0001s. Diesen Wert trägt man im nachfolgenden Zeitfilter als "Delta-t" ein, so wird der aktuelle Wert und die 3 nachfolgenden ausgemittelt und zum neuen Mittelwert gewandelt.
In der vergleichenden Messung sieht man dass das Rauschen um ca. 70% reduziert wurde und eine Art gleitender Mittelwert entsteht.

Es ist anzunehmen, dass eine Erhöhung der Zeitversätze um noch 2-3 Messwerte den Verlauf weiter glätten können. Man sollte allerdings aufpassen, da sich dadurch die zeitliche Verschiebung (Offset) der gesamten Kurve immer weiter erhöht. Dieser Umstand kann bei Regelungen ebenfalls störend wirken da sie eine Art Totzeitglied darstellt. Am besten man probiert ein bisschen damit herum und findet das eigene Optimum aus noch akzeptablem Offset und guter Glättung.