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

set_param-Änderung wird in Simulation nicht berücksichtigt

 

Johnnyrocket

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2011, 17:11     Titel: set_param-Änderung wird in Simulation nicht berücksichtigt
  Antworten mit Zitat      
Hallo zusammen,

bin ziemlich frisch was Matlab/Simulink angeht.
Habe eine Simulation geschrieben, die nur einmal durchlaufen soll, mehrere Loops beinhaltet und einen Vektor an entsprechenden Stellen (mehrfach) ändert. Der Vektor wird anschließend to WS geschickt und dort ausgelesen um meine Werte für unterschiedliche Kombinationen von Pfaden vergleichen zu können.

Während des Durchlaufs sollen einzelne Werte im WS geändert werden (to file/ws-boxen rangehängt) und an anderer Stelle über set_param() Parameter während der laufenden Sim in Simulink angepasst werden. Dieser Parameter setzt einen Multi-Switch-Port auf "2" und lässt dadurch nicht das Eingangssignal (auf Port "1"), sondern den Loop durch.

Das hierfür laufende M-File (code-auszug für ersten Loop):

Code:


testgrosstest2 %dateiaufruf

pause(2)

load testmess1.mat   %to file-datei (parameter in der datei: "simout_quali1"; hier werden insb. stelle 14 (für Laufvariable p) und 29 (Connected-Signal für jeweiligen Manipulatorarm Nr.p) übermittelt)

p=simout_quali1(14)

if(p==1)
    ma1=simout_quali1(29)
    set_param('testgrosstest2/ma1','value','1')
end
if(p==2)
    ma2=simout_quali1(29)
    set_param('testgrosstest2/ma2','value','1')
    set_param('testgrosstest2/ma2+1','value','1')
end
if(p==3)
    ma3=simout_quali1(29)
    set_param('testgrosstest2/ma3+1','value','1')
end



Nun zum Problem. Nach dem ersten Durchlauf (inkl. 2 sec pause) liegt am port 2 mein Vektorsignal an, der Parameter innerhalb des Constant-Blocks wird auf "1" gesetzt und über Umwege zum Multi-Switch geschickt um Port 2 durchzuschalten.
Allerdings ändert sich der Constant-Block (vom alten Wert auf "1"), ohne dass eine "1" rauskommt!!! folglich wird auch der Port 2 nicht aktiviert.
Kann das mit den Loops zusammenhängen?

Vielen Dank im Voraus!
Gruß
Johannes

sim_nach_erstem_durchlauf_ma1_geändert_aber_ohne_wirkung.jpg
 Beschreibung:
hier sieht man anhand des displays, dass die "1" nicht durchgegeben wird, obwohl sie in ma1 per set_param gesetzt wurde

Download
 Dateiname:  sim_nach_erstem_durchlauf_ma1_geändert_aber_ohne_wirkung.jpg
 Dateigröße:  23.29 KB
 Heruntergeladen:  535 mal


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.07.2011, 18:17     Titel:
  Antworten mit Zitat      
Wird denn während der Simulation (wenn pausiert wird) überhaupt ein Paramater mit set_param geändert? Bei einem TransferFct. Blocks z.B. wird die Änderung nicht während einer Simulation durchgeführt, sondern immer nur davor oder danach.
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 - 2025 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.