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

Komisches Verhalten bei Kombination von Memory+MinMax-Blöck

 

Patrickk90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2014, 14:11     Titel: Komisches Verhalten bei Kombination von Memory+MinMax-Blöck
  Antworten mit Zitat      
Hallo zusammen,
meine Kollegen und ich sind am verzweifeln:

Ich habe ein Simulink-Modell (siehe Bilder), welches aus 2 Vektoren aus dem Workspace einen MinMax-Wert bildet. Ein anderer Teil des Modells verzögert eine Konstante 1 um 2 Integrationsschritte.

Leider wird die Konstante nicht immer um 2 Integrationsschritte verzögert.

Durch stundenlanges Rumprobieren konnte ich jetzt folgende Zusammenhänge feststellen, die für mich unerklärbar sind:

- Ist Index 2 von y1 kleiner als y2, dann funktioniert der zweite Memory-Block nicht. (Also meine Konstante wird lediglich um 1 verzögert)

- Ist Index 2 von y1 größer als y2 (z.B 101 ), dann wird meine Konstante korrekt um zwei Zeitschritte verzögert im Scope angezeigt.

- wenn statt des Min-Blocks ein Max-Block verwendet wird, verhält es sich genau umgekehrt

- andere Indizes von y1 bzw y2 sind irrelevant. Die Funktion der Memory Blöcke hängt nur vom Verhältnis der beiden zweiten Indizes ab. (also y1[2] und y2[2])


Die Simulation wird durch folgenden Befehl gestartet:
Code:
>> sim('fst_test_bad',time)


Als Solvereinstellung verwende ich Discrete/Variable Step

Da ich nicht an Spuk und Geister glaube, muss es wohl eine vernünftige Erklärung für das Verhalten geben Wink

workspace.PNG
 Beschreibung:

Download
 Dateiname:  workspace.PNG
 Dateigröße:  7.82 KB
 Heruntergeladen:  408 mal
scope.PNG
 Beschreibung:

Download
 Dateiname:  scope.PNG
 Dateigröße:  28.11 KB
 Heruntergeladen:  454 mal
modell.PNG
 Beschreibung:

Download
 Dateiname:  modell.PNG
 Dateigröße:  37.09 KB
 Heruntergeladen:  452 mal


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 13.10.2014, 15:12     Titel:
  Antworten mit Zitat      
Meine Theorie ist ein Zusammenhang mit Schrittweiten und, dass beide Memory Blöcke schon tun was sie sollen, aber ein Step unerwarten klein ausfällt. Ich denke ich kann eine konkrete Antwort geben, wenn das Modell mit den Daten hier Attached wird.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Patrickk90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2014, 08:23     Titel:
  Antworten mit Zitat      
Hallo Andreas,

schonmal Danke für die Antwort. Ich habe dir mal die mdl-Datei und den Workspace hochgeladen.

Das mit der Schrittweite könnte sein, aber komisch ist trotzdem, dass nur das zweite Element der beiden Vektoren eine Rolle spielt.

VG Patrick

workspace.mat.zip
 Beschreibung:

Download
 Dateiname:  workspace.mat.zip
 Dateigröße:  330 Bytes
 Heruntergeladen:  387 mal
fst_test_bad.mdl
 Beschreibung:

Download
 Dateiname:  fst_test_bad.mdl
 Dateigröße:  21.89 KB
 Heruntergeladen:  417 mal
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 16.10.2014, 11:59     Titel:
  Antworten mit Zitat      
Gut, ich gucke es mir gleich an.

"meine Kollegen und ich sind am verzweifeln"

Kollegen == Industrieunternehmen?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 16.10.2014, 12:07     Titel:
  Antworten mit Zitat      
In R2014b sehe ich den Sprung im Scope bei 1.333 Sekunden. Aber das ist
nicht so wichtig. Wichtig ist, dass das Modell auf variable Schrittweite
eingestellt ist und Simulink das dann auch tut. Ich habe Im Scope mal die
Einstellung vorgenommen, dass die Daten in den Workspace gespeichert werden
und im "format long" ist das Ergebnis


0 0
1.000000000000000 0
1.333333333333333 1.000000000000000
1.333333333333348 1.000000000000000
2.333333333333347 1.000000000000000
2.800000000000000 1.000000000000000
2.800000000000028 1.000000000000000
3.800000000000028 1.000000000000000
4.800000000000028 1.000000000000000
5.000000000000000 1.000000000000000

Die Memorryblöcke tun also was sie sollen - sie Verzögern um jeweils einen
Schritt. Jetzt ergeben sich einige Fragen inwiefern das tatsächliche
Projekt umgesetzt werden soll. Braucht es variable Schrittweite?
Braucht es den Memory Block oder eine andere Verzögerung? Alternativen sind in
der Doku des Memory Blocks beschrieben:

http://www.mathworks.de/help/simulink/slref/memory.html
"Comparision with similar blocks"

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Patrickk90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2014, 12:31     Titel:
  Antworten mit Zitat      
Vielen Dank für die Mühe Andreas!

Variable Schrittweite muss ich aufgrund des Gesamtmodells leider verwenden.

Aber ich hab nun bei allen MinMax- und RelationalOperator-Blöcken die Zero-Crossing-Detection ausgeschaltet und nun scheint es wieder korrekt zu funktionieren.
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 16.10.2014, 13:08     Titel:
  Antworten mit Zitat      
Gern geschehen. Würde mich trotzdem interessieren was der Projekthintergrund ist. Anfänger darf jeder sein, auch in der Industrie Wink

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.