|
|
Identische Subsysteme koppeln und automatisch aktualisieren |
|
bregscher |
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 04.05.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.05.2015, 09:25
Titel: Identische Subsysteme koppeln und automatisch aktualisieren
|
|
Hey Community,
Ich arbeite gerade an einem Subsystem welches ich in identischer Form 3 mal hintereinander hängen will. Heisst der Ausgang vom ersten geht in den Eingang vom Zweiten usw.
Nun zu meiner Frage:
Wenn ich in dem Basis Subsystem eine Variable hab, nennen wir sie mal "Ausgang_SubS1" geht diese in das zweite Subsystem. Hier kommt diese Variable wieder vor, aber als "Ausgang_SubS2".
Gibt es eine Möglichkeit, wie ich ein "Layout Subsystem" ändere, und alle identischen ändern sich mit ab? Also dass auch jedes Subsystem seine Nummerieung mit 1, 2, 3, usw behält?
Danke schonmal!
Gruß,
Domi
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 07.05.2015, 09:31
Titel:
|
|
Es gib hier Unklarheiten. Was ist eine "Variable"? Es scheint ein Signalname zu sein? Oder doch Paramenter innerhalb des Blocks?
Andreas
|
|
|
bregscher |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 04.05.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.05.2015, 09:35
Titel:
|
|
Sorry hätte das vielleicht genauer beschreiben sollen.
Also Ziel ist es, den Verlauf des Signals über die verschiedenen Subsysteme zu sehen.
Sagen wir eine Zahl x0 geht in Subsystem 1, wird dort verändert. geht danach als Zahl x1 in Subsystem 2 und wird dort wieder verändert. Usw.
Alle Veränderungen sollen dann in GoTo Blöcke fließen um sie am Schluss zusammenzutragen, ich will am Schluss also eine Sammlung von x0, x1, x2, usw.
Ist das soweit verständlich? Ansonsten bau ich schnell ein simples Beispielmodell zu meiner Fragestellung
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 07.05.2015, 09:39
Titel:
|
|
Ich denke ich verstehe es. Das macht man über Libraries. Letztendlich wird der Block getestet, dann eine Library erstellt und der Block dazu addiert. Nun kann man neue Modelle nehmen und diesen Library Block einfach mehrfach ins Modell ziehen.
Andreas
|
|
|
bregscher |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 04.05.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.05.2015, 09:50
Titel:
|
|
So ich habe das hier mal kurz in einfachster Form erstellt (Anhang).
Die Subsystem sollen immer identisch sein, außer dass die Variable hochzählt (hier z.B. B1, B2, B3) - abrufbar dann im Datensammler.
Wenn ich jetzt ein Subsystem verändere, will ich, dass die anderen die Änderung mitmachen.
Und das funktioniert über Librarys? Wie muss ich mir das vorstellen und wie lege ich das genau an?
Beschreibung: |
|
Download |
Dateiname: |
Beispiel_identische_Subsysteme.slx |
Dateigröße: |
14.66 KB |
Heruntergeladen: |
397 mal |
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 07.05.2015, 11:26
Titel:
|
|
> Wenn ich jetzt ein Subsystem verändere
> will ich, dass die anderen die Änderung mitmachen.
Jein. Wenn der Library Block verändert wird, ändern sich alle Blöcke.
Doku:
http://www.mathworks.com/help/simulink/libraries.html
Wenne wirklich über die Blöcke gehen soll, kann ich mir ein sehr umständliches Konstrukt über Callbacks vorstellen, die "st_param" und ähnliche Befehle verwenden. Aber alles nicht ratsam.
Andreas
|
|
|
bregscher |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 04.05.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.05.2015, 12:09
Titel:
|
|
ok danke!
aber hier könnte es ein problem bei mir geben, weil ich "keine library" habe. (siehe angehängtes bild)
ich kann blöcke nur aufrufen indem ich in meinem modell irgendwo hinklicke und den namen schreibe.
keine ahnung woran das liegt, wenn ich jetzt also eine neue library erstelle, mein subsystem dort reinziehe und es speichere (slx ist das glaube ich) kann ich danach nichts damit anfangen und es nicht in mein modell ziehen.
Wie bekomme ich das hin?
kann ich die library irgendwo ablegen, dann ich auch über "namen eingeben" einfach das subsystem als selbstständigen block öffne?
Beschreibung: |
|
Download |
Dateiname: |
Unbenannt.JPG |
Dateigröße: |
33.36 KB |
Heruntergeladen: |
468 mal |
|
|
|
rien |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.05.2015, 19:16
Titel:
|
|
Euhm habe ich dich richtig verstanden du willt wenn du in Subsystem 1 einen zweiten gain reinbaust, das dieser auch im Rest eingebaut wird?
Gehen würde dies schon: Aber der aufwand diese Abfrage zu programmieren ist verdammt gross und das Ergebnis ist auch nicht wirklich praktisch. Entweder du implementierst in jedes subsystem einen aktualisierer block mit callback oder du setzt einen bestimmten Block als dominant und arbeitest mit den Blockinitialisierungen...
Zu deinem eigentlichen Problem, du musst eine Initalisationsdatei erstellen (sl irgendwas) die Simulink mitteilt das du eine neue Library erstellt hast, dann erscheint sie bei den anderen Libraries.
Wenn du nun deinen Block ändern willst musst du diesen in der Library ändern und dein Modell aktualisieren. Siehe Matworks Homepage....
Was meinst du eigentlich mit namen eingeben?
addblock(....)?
|
|
|
bregscher |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 04.05.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.05.2015, 10:11
Titel:
|
|
Wie schreibt man so ein Skript?
Bei mir ist es so:
Ich klicke irgendwo in mein Modell, gebe zb "Scope" ein und dann zeigt es mir in einer Liste alle Blöcke ein in denen der Name Scope vorkommt, wenn ich einen auswähle erscheint er im Modell.
|
|
|
geieraffe |
Forum-Fortgeschrittener
|
|
Beiträge: 97
|
|
|
|
Anmeldedatum: 19.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.05.2015, 10:18
Titel:
|
|
Ich hab mal schnell eine gewisse Suchmaschine für dich bemüht:
Um die eigene Library tatsächlich auch im Browser zu "sehen" muss man eine slblocks.m schreiben:
hier oder hier
Ansonsten sind die bisher gegeben Antworten genau das was du brauchst. Mache ich seit ein paar Monaten auch genau so.
|
|
|
|
|
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.
|
|