|
|
Simulink Paramter nach Matlab exportieren und dort ausgeben |
|
Dissmaster |

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 10:09
Titel: Simulink Paramter nach Matlab exportieren und dort ausgeben
|
 |
Hallo,
ich habe folgendes Problem, ich habe eine Simulink Datei die ich gerne über ein m-File starten würde. Dies kann man ja mit dem Befehl sim('.....') machen.
Die Daten werde im Workspace gespeichert, es sind einmal die Werte (simout) und die passende Zeit (tout) dazu.
Aus diesen Daten würde ich mir gerne nur diese Daten anzeigen lassen, die z.B. größer als 1 sind. Das mache ich ja mit find (simout>1).
Dieser Befehl gibt mir aber nur die Indizes aus.
Mit den Indizes Werten von simout, würde ich mir gerne die Werte von tout Anzeigen lassen, wenn das geht am besten in einer Schleife.
LG
|
|
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 10:43
Titel:
|
 |
Hallo Dissmaster,
mein Vorschlag ("leider" ohne Schleife):
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Dissmaster |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 10:49
Titel:
|
 |
Hallo,
mein m-File begint so:
sim ('Projekt')
find (simout>1)
Dann gibt er mir alle Indizes auf der Konsole aus. Diese würde ich aber gerne in einer Schleife so verwenden, dass mir die dazu passenden Werte der Variablen tout angezeigt werden.
LG
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 11:06
Titel:
|
 |
Hallo Dissmaster,
bitte beschreibe "dazu" genauer. Hast Du den Code mal ausprobiert? Sollen die Werte nebeneinander stehen?
Wozu soll die Schleife dienen?
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Dissmaster |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 11:13
Titel:
|
 |
Hallo,
super, so funktioniert es. Hätte ich ja auch selbst drauf kommen können.
K´Jetzt zeigt er mir die Werte von tout an, genau das was ich brauche.
Jetzt hätte ich noch eine Frage, wie kann ich jetzt mit den Werten rechnen?
Er gibt mir jetzt zum Beispiel 20 Werte auf der Konsole aus. Diese Werte sind wenn sie gezeichnet werden eine Rechteck Signal.
Ich würde aber jetzt gerne die Breite der oberen Welle und die der unteren Welle berechnen.
Ich habe mal gelesen, das es da die Funktion find max oder find first.
Kann ich die irgendwie zusammenpacken?
So was wie find first max tout ???
LG
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 11:38
Titel:
|
 |
Hallo Dissmaster,
bitte gib dafür mal Beispieldaten an. Also Daten für tout und simout, und welche davon Du herausfinden möchtest. Die "Breite der Welle" ist für mich noch etwas unspezifisch.
Prinzipiell kann man die Werte so am besten weiterverarbeiten:
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Dissmaster |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 12:12
Titel:
|
 |
Hallo Bijick,
da es sich um eine Rechteckfunktion handelt, springt der simout Wert z.B. von -0,5 auf +1, dort bleibt der Wert dann für ca. 0.75 sec und springt dann von +1 auf -0.5.
Auf diesem Wert bleibt er dann für ca. 0.5 sec und dann geht es wieder von vorne los.
Aber die Zeit vom ersten Sprung auf den zweiten Sprung (z.B. 0,75 sec)würde ich gerne berechnen, dafür brauche ich halt die Werte.
LG
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 12:45
Titel:
|
 |
Hallo Dissmaster,
hm, gar nicht so einfach. Ich bin nicht ganz sicher, wie oft simout den Wert 1 haben muss, damit Du auf 0.75 sec kommst. Hier ein Beispiel. s ist von t = 0.5 bis t = 1.25 auf 1.
Passt es so?
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Dissmaster |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 13:01
Titel:
|
 |
Hallo Bijick,
vielen Dank für deine schnelle Antwort.
Was ich aber nicht so ganz verstehe sind die ersten beiden Zeilen.
In denen gebe ich doch einen Bereich vor, oder?
Den Bereich will ich ja durch das tout bestimmen und s sind ja auch die Werte von simout.
Ich will das so haben wie eben, das ich über die Indizes von simout an die Werte von tout rankomme. Dabei hast du mir ja schon super geholfen
Von den tout Werten hätte ich jetzt gerne den ersten max wert und den Wert an dem er wieder ins negative springt. Und dann von den beiden Werten die Differenz.
Zur Vereinfachung kann ich ja in Simulink die Zeit von bis angeben.
Also wenn ich die Zeit von 10 - 15 angebe und mein System in dem Zeitraum einmal ins positive springt und einmal ins negative, dann sollte es doch einfacher sein die gesuchten Werte zu finden, oder?
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 13:38
Titel:
|
 |
Hallo Dissmaster,
die ersten beiden Zeilen brauchte ich, um ein lauffähiges Beispiel erstellen und testen zu können. Du brauchst sie nicht. Wie Du richtig vermutest, kannst Du t durch tout und s durch simout ersetzen.
Du hast recht: Wenn es jeweils nur einen Sprung gibt, ist es einfacher:
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Dissmaster |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2009, 13:49
Titel:
|
 |
Hallo,
mit 10 und 15 sind die Werte auf der Zeitachse gemeint und nicht die Indizes.
Ich werde es mal so versuchen, und mich dann bei dir melden.
Vielen Dank
|
|
|
Dissmaster |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.06.2009, 21:55
Titel:
|
 |
Hallo,
das funktioniert nicht so ganz.
Ich habe jetzt mal den m-File und die Schaltung drangehängt, ist vielleicht etwas einfacher.
Damit es genauer wird, habe ich beim Scope den Wert auf 20000 gesetzt, jetzt wirft er mir so viele Werte raus, ist echt der Hammer.
Aber ich brauche es halt genau.
Ich habe den Simulationsbereich schon eingegrenzt, aber irgendwie klappt es nicht.
Beschreibung: |
|
 Download |
Dateiname: |
Studienarbeit.mdl |
Dateigröße: |
21.74 KB |
Heruntergeladen: |
570 mal |
Beschreibung: |
|
 Download |
Dateiname: |
Au Berechnung.m |
Dateigröße: |
131 Bytes |
Heruntergeladen: |
540 mal |
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 07.06.2009, 14:32
Titel:
|
 |
Hallo Dissmaster,
was heißt "das funktioniert nicht so ganz"? Bitte erkläre, was passieren soll und was stattdessen passiert. Wenn es sich um ein neues Problem handelt (Au-Berechnung kam doch bisher noch nicht vor, oder), eröffne bitte ein neues Thema und beschreibe das neue Problem genau. Wenn man zum Nachvollziehen Simulink braucht, dann bitte in der entsprechenden Kategorie.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Dissmaster |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 15.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.06.2009, 14:41
Titel:
|
 |
Hallo,
das mit dem Au berechnen, das ist die Berechnung, die ich die ganze Zeit schon durchführen will.
Sprich den ersten Sprungwert - den letzten Sprungwert, dieser Wert heißt bei mir Au.
Die Simulink Datei habe ich nur angehängt, damit man sieht wo ich die Daten in den Workspace schreibe.
Ich hbae jetzt mal Simulink geschaut, ich kann die Daten die ich am Ende brauche komplett in ein Array schreiben lassen (in den Workspace).
Also ich kan mein Eingangssignal und mein Ausgangssignal incl. der Zeit in ein Array schreiben lassen.
Aber dann wies ich nicht, wie ich auf den Workspace zugreife, da ich ja dann drei Werte in dem Workspace stehen habe incl. noch der Indizes. Gibt es die Möglichkeit einzelne Spalten anzugeben?
LG
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|