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

Laufzeitproblem bei der Integration von Embedded Matlab F.

 

Schorsch
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.12.09
Wohnort: Kassel
Version: ---
     Beitrag Verfasst am: 09.12.2009, 17:59     Titel: Laufzeitproblem bei der Integration von Embedded Matlab F.
  Antworten mit Zitat      
Hallo alle miteinander,

vielleicht kann mir einer helfen. Bei einem Simulationsmodell in Simulink möchte ich einen bestimmten Wert aus dem Workspace über einen bestimmten Zeitraum halten und dann auf den nächsten Wert wechseln und diesen wieder über denselben Zeitraum halten.

Jetzt habe ich diese "Problem" zunächst über eine Embedded Matlab Function gelöst:

Code:

function y = fcn(u,clock)
%#eml
y=0;
zeile=1;
max=size(u,1);
maxt=max*3600;
for zeit=0:clock
if clock > 0 && clock < maxt,
    x=zeile*3600;
    if clock < x
        y = u(zeile,2);
    else
        zeile=zeile+1;
        y = u(zeile,2);
    end
end
end
 


Leider habe ich dann das Problem, dass meine ohnehin schon relativ langsame Simulationszeit sich weiter verlangsamt. Mein Ansatz war jetzt, die Embedded Matlab Function (s.o.) in Simulink umzusetzen, woran ich erstmal kläglich gescheitert bin.
Wie funktionieren die IF- und FOR Iterator-Blöcke oder gibt es nicht einen Block der eine solche Funktion übernehmen kann?! Finde gerade keine sinnvolle Lösung.

Vielen Dank schon mal im vorraus,
Schorsch
Private Nachricht senden Benutzer-Profile anzeigen


Benedikt
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 07.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2009, 18:42     Titel:
  Antworten mit Zitat      
hello!
gibt es da nicht so eine digiale clock die du da einfach reinziehen kannst und dann ein gain und an den gain ein terminator legst.

ehmmmm.....
lädest das programm dann auf einen target pc??

wenn ja, kannst du die auf jeden fall so die zeit holen.

mit getsignal(targetname,getsignalid(targetname,'pfad'))

targetname=xpctarget.xpc('TCPIP','192.168.0.22','2222');
pfad-> pfad es gain`s

besten gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Schorsch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.12.09
Wohnort: Kassel
Version: ---
     Beitrag Verfasst am: 16.12.2009, 11:21     Titel:
  Antworten mit Zitat      
Hallo Benedikt,

erstmal vielen Dank für Deine Antwort. Die digital Clock und der Gain sind für mich eher eine Art Zähler. Wie bekomme ich aber jetzt das System dazu, dass es mir nach 3600 Simulationsschritten den zweiten und nicht den 3601 Wert aus eine Workspace-Variblen zieht?? Bin leider noch immer ein bisschen ratlos...

Den Hinweis mit dem TargetPC nehme ich auf und werde das mal prüfen, bislang ist das nicht so...

Gruß Schorsch
Private Nachricht senden Benutzer-Profile anzeigen
 
ouglin
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.12.09
Wohnort: München
Version: ---
     Beitrag Verfasst am: 16.12.2009, 11:38     Titel:
  Antworten mit Zitat      
Hallo Schorsch,
du könntest den 'FromWorkspace' Block nutzen. Da mußt du sowieso zusätzlich zu deinem Datenvektor als erste Spalte einen Zeitvektor anlegen. Naja, jetzt kreierst du einfach einen Zeitvektor mit der Schrittweite 3600, dann steht also beim zweiten Wert 3600, beim dritten 7200 usw. kann man ja beliebig modifizieren und automatisieren.
Viel Erfolg dabei!
Private Nachricht senden Benutzer-Profile anzeigen
 
Schorsch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.12.09
Wohnort: Kassel
Version: ---
     Beitrag Verfasst am: 16.12.2009, 12:04     Titel:
  Antworten mit Zitat      
Natürlich. Machmal liegen die Lösungen so nahe...Vielen Dank für den Tip. funktioniert wunderbar...

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