Software: SimX - Nadelantrieb - Wirkprinzip - Signalprozessor-Compound: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
Zeile 30: Zeile 30:


Unser Modell enthält bereits 16 Modell-Elemente und hat damit die maximal zulässige Anzahl innerhalb einer Modellebene im Rahmen der "Express Edition" von SimulationX erreicht:
Unser Modell enthält bereits 16 Modell-Elemente und hat damit die maximal zulässige Anzahl innerhalb einer Modellebene im Rahmen der "Express Edition" von SimulationX erreicht:
* Die Bildung von Compounds ist deshalb nicht mehr möglich und führt zur Fehlermeldung → "'''Die Maximale Anzahl der Komponenten wurde erreicht'''".
* Vor dem eigentlichen Zusammenfassen der markierten Elemente erzeugt der ''TypeDesigner'' innerhalb des aktuellen Modells automatisch die zusätzlich erforderlichen Anschlüsse für die Compound-Schnittstellen zum übergeordneten Modell.
* Erforderlich ist das temporäre Löschen von zwei Modell-Elementen, um diese Hürde zu überwinden. Um die Auswirkung der Compound-Bildung zu verifizieren, soll das Modell danach weiterhin ohne Funktionseinschränkung mit dem bereits konfigurierten Kraft-Verlauf betrieben werden:
* Diese zusätzlichen Anschlüsse werden mit den bereits markierten Elementen danach zum Compound zusammengefasst. Im Beispiel ist dies der eine mechanische translatorische Anschluss zum Bewegungssensor -> dieser wird als zusätzliche Instanz innerhalb des aktuellen Modells gezählt und damit wird die zulässige Anzahl von 16 überschritten!
* Die Bildung des Compounds ist deshalb nicht mehr möglich und führt zur Fehlermeldung → "'''Die Maximale Anzahl der Komponenten wurde erreicht'''".
* Erforderlich ist das temporäre Löschen von zwei Modell-Elementen, um diese Hürde zu überwinden! Anscheinend benötigt der ''TypeDesigner'' vor dem eigentlichen Zusammenfassen ein weiteres "Hilfselement" innerhalb des aktuellen Modells.  
* Um die Auswirkung der Compound-Bildung zu verifizieren, soll das Modell nach der erforderlichen Modellreduktion weiterhin ohne Funktionseinschränkung mit dem bereits konfigurierten Kraft-Verlauf betrieben werden:
** Wir löschen dann den '''Magnet'''-Impulsgenerator und die '''Kern'''-Wegvorgabe (die Fehlermeldungen können wir ignorieren!).
** Wir löschen dann den '''Magnet'''-Impulsgenerator und die '''Kern'''-Wegvorgabe (die Fehlermeldungen können wir ignorieren!).
** Im '''Luftspalt'''-Kraftelement ersetzen wir den '''Parameter'''-Wert für die Kraft '''F''' durch eine Formel, welche den gewünschten Dreiecksimpuls der Amplitude '''Fmax''' und '''1,7 ms''' Länge generiert:
** Im '''Luftspalt'''-Kraftelement ersetzen wir den '''Parameter'''-Wert für die Kraft '''F''' durch eine Formel, welche den gewünschten Dreiecksimpuls der Amplitude '''Fmax''' und '''1,7 ms''' Länge generiert:

Version vom 6. Februar 2024, 18:05 Uhr

.
Signalprozessor-Teilmodell (Compound-Definition)

Teilmodelle

Die Komplexität bei der Modellierung eines Gerätes oder einer Baugruppe ist nur durch Gliederung in "funktionelle Teilsysteme" beherrschbar:

  • Modelle von Teilsystemen werden auch "Teilmodelle" genannt.
  • Die Abgrenzung von Teilsystemen erfolgt überwiegend nach funktionellen Aspekten:
    • Es sollten funktionelle Einheiten entstehen, welche sowohl als reale Objekte als auch als Teilmodelle selbstständig betrieben werden können.
    • Die Abgrenzung von Teilsystemen ist nicht eindeutig, aber oft identisch mit der geometrischen Abgrenzung der Funktionseinheiten.
  • In unserem Beispiel ist es sinnvoll, den Bewegungssensor und alle damit verbundenen Signalglieder zu einem Signalprozessor-Teilmodell zusammenzufassen (blau markiert). Im realen Versuchsmuster würde man die gleiche Funktionalität durch ein Mikrocontroller-Programm nachbilden, welches aus dem eingespeisten Nadel-Positionen die geforderten Kennwerte berechnet.

Innerhalb von SimulationX kann man Teilmodelle bilden, indem man innerhalb einer Modellstruktur beliebige Elemente mitsamt ihrer Verbindungen mittels des TypeDesigners in sogenannte "Compounds" verpackt:

  • Dabei entsteht ein neuer Element-Typ, welcher die ausgewählten Elemente und Verbindungen enthält.
  • Schnittstellen ermöglichen den Datenaustausch zwischen den Elementen innerhalb des Compounds und der übergeordneten Modellstruktur, in welche das Compound eingebunden wird.
  • Die Inhalte eines Compound-Typen können nachträglich mit dem TypeDesigner modifiziert werden.

Wichtig:

  • Bei der Compound-Bildung besteht die Gefahr der "Zerstörung" unseres erfolgreich aufgebauten Modells.
  • Deshalb erzeugen wir mit den Mitteln des Betriebssystems eine Sicherungskopie mit der Bezeichnung "Etappe1_xx_mit_Signalgliedern.isx" (mit xx=01..99)
  • Die weitere Bearbeitung erfolgt mit der Originaldatei "Etappe1_xx.isx".
  • Wir notieren uns die bisherigen exakten Ergebniswerte für tZyklus.y und Riss.y, da nach den folgenden Modelländerungen die gleichen Werte berechnet werden müssen.

Express Edition - Workaround

Beachte:

  • Wer die Übung nicht mit der im Funktionsumfang eingeschränkten SimulationX Express Edition bearbeitet, kann sich den folgenden Workaround bei der Bildung des Signalprozessor-Compounds ersparen!
  • Die Bilder der Anleitung berücksichtigen jedoch die in der Express Edition notwendige Modell-Reduktion.

Unser Modell enthält bereits 16 Modell-Elemente und hat damit die maximal zulässige Anzahl innerhalb einer Modellebene im Rahmen der "Express Edition" von SimulationX erreicht:

  • Vor dem eigentlichen Zusammenfassen der markierten Elemente erzeugt der TypeDesigner innerhalb des aktuellen Modells automatisch die zusätzlich erforderlichen Anschlüsse für die Compound-Schnittstellen zum übergeordneten Modell.
  • Diese zusätzlichen Anschlüsse werden mit den bereits markierten Elementen danach zum Compound zusammengefasst. Im Beispiel ist dies der eine mechanische translatorische Anschluss zum Bewegungssensor -> dieser wird als zusätzliche Instanz innerhalb des aktuellen Modells gezählt und damit wird die zulässige Anzahl von 16 überschritten!
  • Die Bildung des Compounds ist deshalb nicht mehr möglich und führt zur Fehlermeldung → "Die Maximale Anzahl der Komponenten wurde erreicht".
  • Erforderlich ist das temporäre Löschen von zwei Modell-Elementen, um diese Hürde zu überwinden! Anscheinend benötigt der TypeDesigner vor dem eigentlichen Zusammenfassen ein weiteres "Hilfselement" innerhalb des aktuellen Modells.
  • Um die Auswirkung der Compound-Bildung zu verifizieren, soll das Modell nach der erforderlichen Modellreduktion weiterhin ohne Funktionseinschränkung mit dem bereits konfigurierten Kraft-Verlauf betrieben werden:
    • Wir löschen dann den Magnet-Impulsgenerator und die Kern-Wegvorgabe (die Fehlermeldungen können wir ignorieren!).
    • Im Luftspalt-Kraftelement ersetzen wir den Parameter-Wert für die Kraft F durch eine Formel, welche den gewünschten Dreiecksimpuls der Amplitude Fmax und 1,7 ms Länge generiert:
if time/0.0017 <= 1 then CAD.Fmax*time/0.0017 else 0
  • Eine erneute Simulation des reduzierten Modells muss zu den gleichen Ergebnissen für tZyklus.y und Riss.yführen!

Erst nach der Definition und erfolgreichen Inbetriebnahme des Compound ergänzen wir wieder die beiden gelöschten Modell-Elemente mit ihren vorherigen Parametern einschließlich des Luftspalt-Elements.

Compound-Definition und -Inbetriebnahme

Zusammenfassung der Bewegungssignalverarbeitung zu einem Teilmodell (Compound)

Software SimX - Nadelantrieb - Wirkprinzip - Signalprozessor-Compound Zusammenfassen-Button.gif

Bevor man über die Multifunktionsleiste den TypeDesigner zur Compound-Bildung aufrufen kann, muss man alle Modell-Elemente markieren, welche zusammengefasst werden sollen.

Die gleichzeitige Markierung mehrerer Elemente erreicht man durch Rechteck-Auswahl mittels des Cursors bei gedrückter Maustaste (wie im Titelbild dieses Abschnitts gezeigt). Ist dies auf Grund der Element-Anordnung nicht möglich, kann man Modell-Elemente durch zusätzlich betätigter UMSCHALT-Taste bei der Cursor-Markierung der Auswahl hinzufügen bzw. auch entfernen:

.

Nach Aufruf des TypeDesigners erscheint dieser im Bearbeitungsmodus für einen neuen Compound-Typ, welcher die markierten Modell-Elemente und deren Verbindungen enthält:

.
  • Standardmäßig wird der neue Compound-Typ lokal im aktuellen Modell erzeugt und erscheint im Typen-Explorer (im Beispiel unter dem bereits vorhandenem CAD_Data-Typ).
  • Der grafische Editor des SimulationX enthält nun eine Ebene unter dem aktuellen Modell die Compound-Struktur, welche dort auch bearbeitet werden kann.
  • Standardmäßig wird für den Compound-Typ ein Symbol der Größe 60x30 mm² erzeugt. Im zugehörigen Grafikeditor wird passend zu dieser Größe ein Strukturbild der zusammengefassten Elemente bereitgestellt.
  • Für die Verbindungen zwischen den Compound-Elementen und der Rest der Modellstruktur werden passende Schnittstellen generiert. Im Beispiel ist dies ctr1 (translatorischer Mechanik-Konnektor), welcher den Anschluss des Bewegungssensors nach außen führt.
  • Die auf der linken Seite aufgelisteten Bearbeitungsschritte zur Typ-Definition entsprechen denen, welche wir bereits bei Erstellung des CAD_Data-Typs verwendet haben.

Allgemein

Wir modifizieren hier Namen, Kommentar und Grafiksymbol:

  • Name: Signalprozessor
  • Kommentar: Kennwerte der Nadelbewegung
  • Symbol:
    1. Breite x Höhe: 150 Pixel x 150 Pixel (diese Verkleinerung auf ca. 60% ermöglicht Erkennbarkeit)
    2. Bild-Anpassung: nach Wahl eines geeigneten Zoom-Faktors im Symbol-Editor (z.B. 200 %) mittels Cursor an den 2 diagonalen Eckpunkten das sehr kleine Bild auf komplette Symbolgröße ziehen (Sensor-Anschluss exakt auf Mitte an der oberen Kante):
.

Anschlüsse

Der mechanische Anschluss (translatorisch) überträgt die Bewegungsgrößen der Nadelmasse aus der übergeordneten Modellebene in den Bewegungssensor, welcher sich innerhalb des Compounds befindet:

  • Da nur dieser eine (automatisch generierte) Anschluss benötigt wird, kann der Name Ctr1 erhalten bleiben.
  • Den zugehörigen Ctr1-Marker muss man mit dem Cursor im Symbol-Editor auf die Mitte der oberen Kanten schieben (deckungsgleich mit Position im Symbol-Bild):
.

Komponenten-Definition (Parameter und Variable)

Parameter und Variable (Ergebnisse) bilden die Datenschnittstelle zwischen den Elementen im Compound und der übergeordneten Modellebene.

  • Hinweis:
    Die Namen von Compound-Komponenten dürfen innerhalb des Compound noch nicht anderweitig verwendet worden sein!
  • Zur Analyse eines Bewegungszyklus müssen in den Compound die folgenden x-Koordinaten als Parameter eingespeist werden, wobei keine Werte als Standardbelegung erforderlich sind:
Name Kommentar Standardbelegung Einheit
x0 Ruhelage mm
xEnd Endlage mm
xRiss Papier-Rissposition mm
  • Die Ergebnisse der implementierten Signalanalyse müssen der übergeordnete Modellebene als Variable bereitgestellt werden:
Name Kommentar Physik. Größe Einheit
t_Riss Riss-Zeitpunkt Zeit ms
t_Zyklus Zykluszeit Zeit ms
Praegemasz Praegungsmasz 0..1 Dimensionslos -
.

Mit der Definition der Komponenten ist ein wichtiger Bearbeitungsschritt beim Erstellen des Compound-Typs erbracht. Den bisher erreichten Zwischen-Zustand sichern wir durch "Fertigstellen":

.
  • Für das Compound-Element vergeben wir in der Modellstruktur den Namen "Messung" im Modell (Anordnung "unten").
  • Wir schieben das neue Element mit dem Cursor an eine günstigere Position.
  • Die Anschluss-Verbindung zum Compound-Element müssen wir danach mit Cursor auswählen, um die Lage eines waagerechten Teilstückes korrigieren (Falls es wie im Beispiel zu einer Überdeckung mit dem Papier-Element kam).
  • Modell-Datei > Speichern realisiert dann die gewünschte Sicherung des erreichten Bearbeitungszustandes auf einem Datenträger.

Einbindung des Compounds mittels der Parameter und Ergebnisse in die Modellstruktur

Bevor wir den Compound-Typ weiter bearbeiten, öffnen wir durch Doppelklick auf das Messung-Teilmodell dessen Eigenschaftsdialog:

  • In die leeren Parameter-Felder speisen wir die benötigten Kennwerte des Bewegungsablaufes ein:
.
  • Damit stehen diese Werte dann zur Parameter-Belegung in den Compound-internen Signalverarbeitungselementen zur Verfügung.
  • Wir überprüfen, ob die Ergebnisse wie gewünscht von dem Compound bereitgestellt werden und aktivieren diese für die Signal-Protokollierung:
    .

Von den drei Ergebnisgrößen wird nur der Riss-Zeitpunkt t_Riss direkt in einen Element-Parameter benutzt → Papier-Steifigkeit k: 36500*(1-sign(Riss.y)):

  • Der bisherige Bezug auf die Variable Riss.y ist im Papier-Element nicht mehr möglich, weil innerhalb des Modells nur auf die Anschlüsse und Komponenten eines Compounds zugegriffen werden kann.
  • Riss.y ist in der Formel deshalb durch Messung.t_Riss zu ersetzen:
    .

Diese Modelländerungen sollte man anschließend wieder speichern!

Einspeisung der Parameter-Werte in die Compound-Elemente (Strukturansicht)

Für das Bearbeiten eines bestehenden Compound-Typen kann man über das Kontext-Menü drei verschiedene Editoren öffnen:

.
  • Textansicht: mit Editor für den kompletten Quelltext des Compound-Typen (etwas für Profis und bei Interesse für die Sprachstruktur).
  • Strukturansicht: öffnet die grafische Struktur der verbundenen internen Modell-Elemente. Falls diese inzwischen geschlossen wurde, öffnen wir sie damit erneut. Anderenfalls wählen wir im Bereich der Strukturansicht anstatt der Modell-Struktur die Registerkarte der noch geöffneten Compound-Struktur.
  • TypeDesigner: mit den bereits bekannten Bearbeitungsschritten (benutzen wir erst wieder für die Ergebnis-Werte).

Die Bearbeitungsmöglichkeiten in der Strukturansicht des Compound entsprechen denen der übergeordneten Modell-Ebene:

  • Doppelklick auf die Struktur-Elemente öffnet deren Eigenschaftsdialog und damit den Zugriff auf Parameter und Ergebnisse.
  • Innerhalb des lokalen Compound-Typen kann zwar auf alle Bezeichner der übergeordneten Modell-Ebene direkt zugegriffen werden (z.B. auf "Nadel.x0"). Im Sinne der autonomen Betreibbarkeit von Teilmodellen sollte man den Datenaustausch zur übergeordneten Modellebene grundsätzlich nur über die Schnittstellen realisieren!
  • Im Vorschub-Element modifizieren wir deshalb die Formel "(Nadel.x0-self.x)/(Nadel.x0-CAD.x_Matrix-CAD.d_Praegung)" durch die entsprechenden Compound-Parameter:
    .
  • Das Riss-Element erhält als Grenzwert a: xRiss.
  • Das tZyklus-Element wird mit dem Grenzwert a: x0 belegt.

Mit geöffneter Compound-Strukturansicht können wir danach den aktuellen Bearbeitungszustand wieder speichern.

Belegung der Ergebnis-Variablen mittels Gleichungen (TypeDesigner-Verhalten)

Falls noch nicht geschehen, öffnen wir nun wieder den TypeDesigner, um im Verhalten die Zuweisung der Ergebniswerte zu ergänzen:

.
  • Innerhalb des Verhalten wurde beim Zusammenfassen der markierten Modell-Elemente automatisch ein Gleichungsabschnitt "connects" definiert. Dessen Gleichungen beschreiben alle Verbindungen zwischen den inneren Modell-Elementen und zu den Anschlüssen der Compound-Abgrenzung.
  • Aktiviert man in der Compound-Strukturansicht die Anzeige der Verbindungen, so kann man die einzelnen connect-Anweisungen gut nachvollziehen.
  • Da es sich hier um einen automatisch generierten Gleichungsabschnitt handelt. Änderungen in der Compound-Strukturansicht bzw. in den connects-Gleichungen werden automatisch synchronisiert. Deshalb sollte man diesen Abschnitt nicht durch eigene Gleichungen erweitern.
  • Wir ergänzen deshalb einen neuen Gleichungsabschnitt für die Zuweisung der Ergebniswerte:
.
  • Beim Erstellen der erforderlichen Gleichungen für die Belegung der Ergebnis-Variablen kann man die benötigten Objekt-Bezeichner mit dem Cursor aus dem eingeblendeten Compound-Modellexplorer ziehen.
  • Nach dem TypeDesigner > Fertigstellen und dem Speichern des Modells können wir mittels Simulation das Modellverhalten verifizieren.

Verifizierung und Komplettierung des Modells

Für die Verifizierung des Modells genügt der Vergleich der nun berechneten Werte für Messung.tZyklus und Messung.tRiss mit den bekannten vorherigen Werten tZyklus.y und Riss.y:

  • Insbesondere der Wert für die Zykluszeit hängt vom kompletten, korrekten Bewegungsablauf der Nadel ab.
  • Zusätzlich muss man überprüfen, ob weiterhin das korrekte Prägungsmaß für die vollständige Prägung ermittelt wird (Messung.Praegemasz ≈ 1).

Gibt es Fehlermeldungen nach Start der Simulation oder werden falschen Ergebniswerte berechnet, muss man die Fehler finden und beheben:

  • Fehler in Hinblick auf unbekannten Bezeichner beruhen im Beispiel meist auf vergessene Parameter-Änderungen (Schreibfehler sollten bereits beim Editieren gemeldet werden).
  • Fehlerhafte Ergebnisse resultieren meist aus fehlerhaften oder vergessenen Berechnungsformeln, aber auch aus fehlerhaften Parametern. Hier sollte man bei der Fehlersuche dem "Weg der Daten" rückwärts folgen (beginnend beim falschen Ergebniswert).
.

Nachdem unser Modell richtig rechnet, kann die bei der Nutzung der Express Edition von SimulationX erforderliche Modell-Reduktion rückgängig gemacht werden:

  • Den sägezahnförmigen Kraftimpuls realisieren wir wieder mittels einer Signalquelle - Impulsgenerator mit der ursprünglichen Konfiguration:
    .
  • Im Luftspalt-Element muss die Parameter-Formel wieder durch das Eingangssignal self.in1 ersetzt werden, damit das Dreieckssignal des Impulsgenerators als Kraftverlauf verwendet wird!
  • Abschließend ist die Kern-Wegvorgabe zu ergänzen (Luftspalt=0 mm bei vollständiger Prägung → Kern.x : CAD.x_Matrix + CAD.d_Praegung ).
  • Wichtig: Auch diese Modell-Änderung ist in Hinblick auf die Ergebnisse zu verifizieren!

Da alle Signalverarbeitungselemente im Compound "verschwunden" sind, fehlen jetzt ihre in Ergebnis-Fenstern des Modells dargestellten Ergebnisgrößen:

  • Bei der Menge der bisher meist zu Testzwecken konfigurierten Ergebnisfenster verliert man die Übersicht!
  • Wir konfigurieren deshalb abschließend ein Fenster mit aussagekräftigen Signalverläufen und löschen die restlichen Fenster:
.
  • Das Signalfenster kann jeder individuell gestalten, solange die wesentlichen Signalverläufe dabei ohne großen Aufwand interpretierbar bleiben!

Wichtig:

  • Unser Magnetantrieb arbeitet zeitlich im Bereich von wenigen Millisekunden.
  • Die im Magnet-Impulsgenerator als Einschaltzeit genutzte Anstiegsbreite R verwendet bisher noch die Maßeinheit "Sekunde". Dies führt zu unanschaulichen Zahlenwerten auch bei der noch folgenden Ermittlung der optimalen Einschaltzeit.
  • Wir wählen deshalb "ms" als sinnvollere Einheit für die Anstiegsbreite, dabei erfolgt automatisch eine Umrechnung des bereits eingegebenen Zeitwertes.
  • Eine erneute Simulation muss das gleiche Verhalten ergeben!

Damit ist Bildung und Implementierung des Signalanalyse-Teilmodells abgeschlossen und wir können den aktuellen Modellzustand sichern (durch Speichern).