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

Funktionswerte aus Signalverlauf zu bestimmten Sim.zeiten

 

krische
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.01.09
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 12.02.2009, 14:27     Titel: Funktionswerte aus Signalverlauf zu bestimmten Sim.zeiten
  Antworten mit Zitat      
Hallo ihr lieben,

ich hab heute wieder einmal ein Problem, dass euch vom Hocker reißen wird. Ich habe ein Verlauf, der z.B. so hier aussieht:
http://twitpic.com/1g3bc
Nun möchte ich die Funktionswerte zu bestimmten Zeitpunkten (welche ich mit hinreichender Genauigkeit kenne) wissen.
Notiz am Rande: es sind das die Zeitpunkte ab dem rasanten Anstieg der Funktion bei ca. 0.35s und der maximale Wert bei ca. 0.36s.

Nun will ich die Funktionswerte nicht einfach in den Workspace schreiben, sondern sie spielen eine Rolle für den nächsten rasanten Anstieg, d.h. ich muss sie in der laufenden Simulation irgendwie auslesen und verarbeiten.
Ich bin für jede Idee offen und jede Schweinerei zu haben....

Grüße

Krische

Zuletzt bearbeitet von krische am 13.02.2009, 15:56, insgesamt 2-mal bearbeitet
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: 12.02.2009, 14:36     Titel:
  Antworten mit Zitat      
Die "nicht-Schweinerei" ist erst einmal die Information, dass man in den "Configuration Paramters" - "Data Import-Export" - "Save Options" - "Produce Additional Output" einstellen kann. Das ist aber zunächst einmal Output in den Workspace. Aber natürlich wird dadruch auch das Signal das in das Scope im Screenshot geht zu diesem Simulationszeitpunkt berechnet und dieses Signal kann auch in die Simulation zurückgeführt werden.

Wenn es mehr "Schweinerei" benötigt, dann dürfte das nur durch ein C MEX S-Function zu lösen sein. Der Aufwand kann durchaus beträchtlich sein, vereinigt aber die Macht von MATLAB/Simulink und C. Inhaltlich bin ich mit C MEX S-Functions aber leider nicht fit.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.01.09
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 12.02.2009, 14:44     Titel:
  Antworten mit Zitat      
Ok, eine spezielle C MEX S-Function kenne ich bis jetzt noch nicht, aber müsste es nicht prinzipiell auch mit einer normalen Matlab-Function gehen?
Bzw. ist mir der Vorteil von C noch nicht so klar....

Dennoch danke für den Tip. Irgendwie hab ich die letzten Tage soviel M-Files in meine Simulink-simulation gebracht, dass ich wohl heute fest davon überzeugt war, ich könnte es ohne schaffen.

Krische
Private Nachricht senden Benutzer-Profile anzeigen
 
krische
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.01.09
Wohnort: Dresden
Version: ---
     Beitrag Verfasst am: 13.02.2009, 15:54     Titel:
  Antworten mit Zitat      
Ich denke ich hab ne Lösung gefunden und für den Fall, dass jemand mal ein ähnliches Problem haben sollte hier meine Lösung
http://twitpic.com/1gqv2

Die Zeitpunkte zu denen ich die Werte auslesen wollte waren ja bekannt. Ich hab sie zusammen mit dem im ersten Themeneintrag geposteten Signalverlauf und der Simulationszeit auf ein Signal geführt. Diese dann auf folgende Matlab Funktionen geworfen:

Code:

function [s_max] = CalcSMax(t1, t0, signal, t)

s_max=0;
if t==t1
    s_max=signal;
end
end
 


Code:

function [s_min] = CalcSMin(t1, t0, signal, t)

s_min=0;
if t==t0
    s_min=signal;
end
end
 


Ja, so einfach kann es manchmal sein. Danke nochmal an Andreas, für den Tip und an alle die sich den Thread angeschaut haben.

Krische
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: 13.02.2009, 16:23     Titel:
  Antworten mit Zitat      
Super - und danke für das Zurückspeisen in die Community
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.