|
|
Signaldimension erkennen und Subsystem dynamisch anpassen |
|
Student_1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2015, 09:02
Titel: Signaldimension erkennen und Subsystem dynamisch anpassen
|
|
Hallo,
ich habe folgendes Problem. Ich habe ein SubSystem, in das ein Signal mit dynamischer Dimension führt. Das Signal kann ein einfacher double bis x-wertige Vector sein. Nun benötige ich für die dynamische Anpassung des Inhaltes des Subsystem die Signaldimension. Ich möchte also wissen, ob der Vector 5-elementig oder 10-elementig oder oder oder ist. Ich benötige diese Informationen, weil im SubSystem entsprechend der Dimension eine Anzahl paralleler Blöcker erstellt werden muss.
Die derzeitige Lösung sieht so aus, dass ich in der Maske des Subsystemes die Dimension von "Hand" eintragen muss. Dies ist leider fehleranfällig, da sich die Eingangsgröße ändern kann und somit auch die Dimension. Damit man schnell simulieren kann, ist es nötig, dass sich die Demension der Einganggröße des Subsystems bestimmen lässt.
Welche Möglichkeiten gibt es dafür?
Viele Grüße,
Student
|
|
|
|
|
Mmmartina |
Forum-Meister
|
|
Beiträge: 745
|
|
|
|
Anmeldedatum: 30.10.12
|
|
|
|
Wohnort: hier
|
|
|
|
Version: R2020a
|
|
|
|
|
|
Verfasst am: 26.10.2015, 09:31
Titel:
|
|
So ganz klar ist es nicht, wie du das meinst.
Erstellst du die Blöcke im Subsystem dynamisch, oder per Hand?
Woher kommt denn das n-dimensionale Signal? Extern eingelesen? Oder von einem anderen Block?
Kennst du get_param?
http://de.mathworks.com/help/simulink/slref/get_param.html
Evt. läßt sich da ein Wert finden, der dir die Signalbreite mitteilt?
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Student_1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2015, 10:32
Titel:
|
|
Ich erstelle die Blöcke im Subsystem dynamisch anhand der Maskenparamter. Ein Parameter ist die Signaldimension. Dies wird benötigt, weil ich x parallele Blöcke dynamisch generieren lassen muss.
Das n-dimensionale Signal kommt von einem vorherigen Block. Dieser kann sich aber ändern bzw. die Signalbreite(Dimension) kann sich änderen. Ich möchte nun die Dimension automatisch finden, da es sonst zum Fehlerfall kommt, wenn der Parameter der Dimension in der Maske nicht korrekt eingestellt ist.
get_param ist bekannt. Leider habe ich bisher nichts zur Signalbreit finden können.
Viele Dank schonmal
|
|
|
Mmmartina |
Forum-Meister
|
|
Beiträge: 745
|
|
|
|
Anmeldedatum: 30.10.12
|
|
|
|
Wohnort: hier
|
|
|
|
Version: R2020a
|
|
|
|
|
|
Verfasst am: 26.10.2015, 10:45
Titel:
|
|
Probier mal, ob du mit dem Block "probe" weiterkommst.
Ansonsten: im vorhergehenden Subsystem läßt sich nicht irgendwo ein Parameter finden? Also z.B. Anzahl der Ausgänge aus dem Subsystem oder Busbreite, o.ä.?
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Student_1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2015, 10:56
Titel:
|
|
der "probe"-Block sieht sehr interessant aus. Spiel damit gleich mal rum.
Ich möchte gern unabhängig vom vorherigen System sein, weil dieses unbestimmt sein kann.
Danke für den guten Hinweis.
|
|
|
Student_1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2015, 11:13
Titel:
|
|
Also "probe" geht leider nicht
Das Problem ist, dass ich die Signaldimension zur Compiletime benötige und nicht während der Simulation. Ich benötige quasi die Signalbreite bevor der Inhalt des Subsystems dynamisch generiert wird. Und dies ist mit diesem Block nicht möglich, da der erste Wert erst verfügbar ist nachdem das Subsystem kompileirt wurde.
|
|
|
Mmmartina |
Forum-Meister
|
|
Beiträge: 745
|
|
|
|
Anmeldedatum: 30.10.12
|
|
|
|
Wohnort: hier
|
|
|
|
Version: R2020a
|
|
|
|
|
|
Verfasst am: 26.10.2015, 11:39
Titel:
|
|
Dann bleibt eigentlich nur zu schauen, wo genau wird das Signal erzeugt - und da eben gucken, ob du einen Parameter findest, den du per get_param auswerten kannst.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Student_1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2015, 13:47
Titel:
|
|
Schade. Dann werde ich es wohl nicht gelöst bekommen. Dann muss der Parameter bestehen bleiben und immer angepasst werden.
Trotzdem danke für deine Hilfe.
|
|
|
Student_1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2015, 13:48
Titel:
|
|
|
|
|
|
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.
|
|