|
|
Verändern eines Block-Paramters über Matlab Function |
|
simben |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 13.07.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 09:54
Titel: Verändern eines Block-Paramters über Matlab Function
|
|
|
|
|
Guten Tag,
ich habe in Sumlink ein mechanisches Modell aufgebaut, um einen Stoß zu simulieren. Der Stoß soll zwischen zwei Körpern stattfinden, wobei diese über einen CAD-Import ihre Eigenschaften (wie z.B. die Masse) erhalten. Daher arbeite ich in dem hochgeladenen Simulink-Modell mit Blöcken aus SimMechanics.
Stoßen die zwei Körper zusammen, stoppt das Simulationsmodell und die Geschwindigkeiten der Körper werden neu berechnet und den Joint-Blöcken übergeben. Dies geschieht über eine eingebettete Matlab-Function. Danach soll das Simulationsmodell mit den neuen Anfangsbedingungen weiterlaufen.
Soweit die Vorstellung.
Ich bekomme jedoch die Fehlermeldung, dass die Parameter während der Simulation nicht geändert werden können, obwohl ich in der Matlab-Function über set_param die Simulation stoppe. Dabei vermute das Problem bei der Matlab-Function, welche ja auch ein Block innerhalb des Modelles ist. Würde ich ein ähnliches externes M-File erstellen habe ich aber das Problem, dass ich nicht weiß wie die Geschwindkeiten ausgelesen werden können.
Somit möchte ich gerne wissen:
Was muss ich an der Matlab-Function ändern, sodass die Geschwindigkeiten eingetragen werden?
Wie kann ich die Geschwingkeit aus dem Joint-Block zu einem bestimmten Zeitpunkt auslesen?
Viele Grüße
Beschreibung: |
|
Download |
Dateiname: |
Stoss_2Koerper_Function.slx |
Dateigröße: |
24.46 KB |
Heruntergeladen: |
416 mal |
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 11:16
Titel:
|
|
Wenn Du das Modell stoppst, kann doch die embedded matlab function gar nicht mehr aufgerufen werden. Und wenn sie aufgerufen wird, ist die Simulation nicht gestoppt.
Du kannst aber in den Model Properties unter Callbacks deine Aktionen, die nach dem stoppen ausgeführt werden sollen unter StopFcn eintragen.
|
|
|
simben |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 13.07.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 13:11
Titel:
|
|
Vielen Dank für den Hinweis!
Ich habe die Variante über die StopFcn im Callback bereits im Vorfeld schon ausprobiert, habe aber dabei zwei Probleme:
1. Wie lese ich die Geschwindigkeiten zum Stoßzeitpunkt aus?
2. Gebe ich zum Testen Geschwindigkeiten nach dem Stoß vor, kann die Simulation aus der StopFcn nicht neu gestartet werden. Es erschient leider auch keine Fehlermeldung dazu.
Beschreibung: |
|
Download |
Dateiname: |
Stoss_2Koerper_Callback.slx |
Dateigröße: |
23.88 KB |
Heruntergeladen: |
400 mal |
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 16:14
Titel:
|
|
1. Du kannst Simulink in den model configurations parameters sagen, dass es den final state in den workspace schreiben soll. Da musst Du dann nur noch rausfinden, welcher Zustand Deine Drehzahl ist.
2. Das ist denkbar, dass das nicht geht, weil das Modell sich dann ja selbst aufruft. Das ist vermutlich nicht möglich. Dann brauchst Du wohl ein Skript, was die Aufrufe für Dich macht:
|
|
|
simben |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 13.07.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2015, 18:56
Titel:
|
|
Hallo,
vielen Dank für die Unterstützung. Der erste Hinweis, wie die berechneten Werte (hier die Geschwindigkeiten) herausgelesen werden können, hat super geklappt.
Damit kann ich nun mit den Werten arbeiten und die Simulation läuft nun so, wie ich es mir vorgestellt habe.
Viele Grüße und nochmals vielen Dank!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|