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

Triggered Subsystems in loop/Schleife

 

Rev
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 02.05.11
Wohnort: ---
Version: MATLAB R2010b
     Beitrag Verfasst am: 14.02.2013, 15:26     Titel: Triggered Subsystems in loop/Schleife
  Antworten mit Zitat      
Hallo alle zusammen,

leider bin ich in Simulink noch nicht sonderlich erfahren und stolper deshalb von einem Problemchen in das nächste. Bisher konnte ich die meisten Sachen selber klären, aber nun gehen mir solangsam die Ideen aus. Ich habe folgendes Problem:

Zur Zeit habe ich ein System von 2 Uhren die unterschiedlich schnell auf unterschiedlich schnellen Prozessoren laufen. Diese Prozessoren werden durch ein "Triggered Subsystem" dargestellt, die den Output der anderen Uhr als Input verwenden. Als 2. Input habe ich dann noch eine Zählung, die allerdings kein Problem darstellen sollte. Problem ist nun, dass ich wie schon gesagt 2 Triggered Subsystems in einem Kreis zusammengeschaltet habe. Das ist allerdings notwendig, weil das Subsystem 1 Informationen von 2 benötigt und anders rum.

Nun meldet sich Simulink und meint, dass diese Schleife nicht lösbar ist bzw. nicht so sein darf.

Hat einer von euch vllt. etwas Erfahrung mit den "Triggered Subsystems" und dem Thema Schleifen und weis, was für Alternativen es gibt bzw. wie ich das Problem zumindest entschärfen kann?

Wäre super, wenn mir jemand nen Tipp geben könnte, weil ich das für meine Studienarbeit benötige und gerade ziemlich auf dem Trockenen sitze.

Gruß Chris
Private Nachricht senden Benutzer-Profile anzeigen


Tobias.S

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2013, 16:25     Titel: Antwort Loop
  Antworten mit Zitat      
Hallo Chris,

sofern ich das richtig verstanden habe, bildest du eine algebraische Schleife. Da durch den Trigger ein Block nicht mehr als ein mal ausgeführt werden kann, kann die Schleife nicht gelöst werden. Ein Delay sollte helfen, um die Schleife zu unterbrechen.

Gruß Tobias
 
Rev
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 02.05.11
Wohnort: ---
Version: MATLAB R2010b
     Beitrag Verfasst am: 15.02.2013, 18:34     Titel:
  Antworten mit Zitat      
Hi Tobi,

danke für deine Antwort Smile. Das hatte ich mir auch überlegt, allerdings versetze ich dann doch meine Signale um einen Zeitschritt oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobias.S
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 15.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2013, 19:51     Titel:
  Antworten mit Zitat      
Das ist richtig, der Delay Block speichert den Wert des letzten Zeitschritts.

Ich kenn dein System nicht, aber ich vermute du willst die Prozesse synchronisieren. Ich fürchte in einer technischen Umsetzung wärst du ebenfalls darauf angewiesen, im aktuellen Berechnungsschritt den letzten Zeitwert des jeweils anderen Prozessors einzulesen.

Sofern du dein dt kennst, könntest du das auch korrigieren.

Gruß Tobias
Private Nachricht senden Benutzer-Profile anzeigen
 
Rev
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 02.05.11
Wohnort: ---
Version: MATLAB R2010b
     Beitrag Verfasst am: 16.02.2013, 10:17     Titel:
  Antworten mit Zitat      
Ja, das stimmt sogar.. Ich möchte um genau zu sein eine Anzahl von Clocks (also Uhren) synchronisieren. Diese Uhren sollen auf unterschiedlich schnellen Prozessoren laufen, die einen update-Schritt ausführen sobald in diesem Netzwerk an Uhren alle Uhren j aus der Nachbarschaft einer Uhr i ihren aktuellen Status gesendet haben.
Der letzte Teil ist allerdings nicht relevant für mein Problem, deshalb:

Inwiefern meinst du könnte ich das mit dem Zeitschritt korrigieren. Matlab kann ich ja nicht austricksen, indem ich sage, es soll die Werte des vergangenen Zeitschritts verwenden und dann versuchen doch wieder die aktuellen Werte zu nehmen.... Also zumindest fehlen mir da gerade doch etwas die Ideen, wie ich das korrigieren könnte.

Gruß Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Tobias.S
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 15.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2013, 12:20     Titel:
  Antworten mit Zitat      
Ich erklärs mal so...

Du hast zwei Uhren. Eine Uhr wird aktualisiert, wenn die andere als Update auf ein gesetzt ist. Uhr eins aktualisiert im Zeitschritt k. Dies führt dazu, dass Uhr 2 im Zeitschritt k aktualisert. Nun wiederum würdest du im selben Zeitschritt wieder Uhr 1 synchronisieren wollen? Quasi zu sich selbst? Ich fürchte, das wird schwer. Wie gesagt, in der Technik hättest du auch einen Versatz (schon allein durch die Kommunikation). Sofern du die Simlationsschrittweite niedrig einstellst dürfte das doch aber kein großes Problem sein oder?

Die Korrekktur wäre über Extrapolation der Zeitschritte möglich, aber wahrscheinlich nicht sehr elegant.

Gruß Tobias
Private Nachricht senden Benutzer-Profile anzeigen
 
Rev
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 02.05.11
Wohnort: ---
Version: MATLAB R2010b
     Beitrag Verfasst am: 18.02.2013, 09:49     Titel:
  Antworten mit Zitat      
Hallo Tobi,

ok, dann habe ich dich doch richtig verstanden Smile. Ja Extrapolation ist denke ich nicht unbedingt notwendig. Ich werde das mal mit meinem Betreuer besprechen, insofern der in Australien überhaupt zu erreichen ist -.-.

Vielen Dank auf jeden Fall für deine Antworten.

Gruß Chris
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.