WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Identische Subsysteme koppeln und automatisch aktualisieren

 

bregscher
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 04.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2015, 09:25     Titel: Identische Subsysteme koppeln und automatisch aktualisieren
  Antworten mit Zitat      
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! Smile

Gruß,
Domi
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 07.05.2015, 09:31     Titel:
  Antworten mit Zitat      
Es gib hier Unklarheiten. Was ist eine "Variable"? Es scheint ein Signalname zu sein? Oder doch Paramenter innerhalb des Blocks?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
bregscher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 04.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2015, 09:35     Titel:
  Antworten mit Zitat      
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 Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 07.05.2015, 09:39     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
bregscher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 04.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2015, 09:50     Titel:
  Antworten mit Zitat      
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?

Beispiel_identische_Subsysteme.slx
 Beschreibung:

Download
 Dateiname:  Beispiel_identische_Subsysteme.slx
 Dateigröße:  14.66 KB
 Heruntergeladen:  397 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 07.05.2015, 11:26     Titel:
  Antworten mit Zitat      
> 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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
bregscher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 04.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2015, 12:09     Titel:
  Antworten mit Zitat      
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?

Unbenannt.JPG
 Beschreibung:

Download
 Dateiname:  Unbenannt.JPG
 Dateigröße:  33.36 KB
 Heruntergeladen:  468 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
rien

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2015, 19:16     Titel:
  Antworten mit Zitat      
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

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 04.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2015, 10:11     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
geieraffe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2015, 10:18     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.