|
|
Wie Ausgabe eines Vektors aus einer S-Function |
|
bolle123 |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 31.08.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.08.2010, 10:07
Titel: Wie Ausgabe eines Vektors aus einer S-Function
|
|
|
|
|
Hallo zusammen,
ich habe eine S-Function mit mehreren Berechnungen - soweit ja noch kein Problem.
Jetzt möchte ich allerdings in dieser S-Function in jedem Zeitschritt einen Vektor berechnen - mir erstmal egal ob die Größe des Vektors dynamisch angepasst werden kann oder eine feste Größe (z.B. 100 Einträge) hat.
Mein bisheriger Ansatz enstpricht dem des "Mathworks Documentation->Simulink ssGetOutputPortSignal":
"mdlOutput":
int *test_vektor = (int *)ssGetOutputPortSignal(S,5);
for (j = 0; j < 100; j++)
{
test_vektor[j] = vorher_berechneter_vektor[j];
}
und in "mdlInitializeSizes":
ssSetOutputPortVectorDimension(S, 5, 100);
Mal funktioniert es so, mal gibt es irgendwelche Fehler und Matlab beendet sich selbsttätig...mal stürzt Matlab auch ab wenn man sich die Ausgabe in Simulink in einem Scope ansehen will....
Für denn Fall, dass es funktioniert, stellt sich bei der Betrachtung im Workspace nach einem "simout-Block" dann das nächste Problem: Jeder zweite Eintrag in dem Vektor ist eine Null...
Anhand des Fehlerbildes vermute ich einfach mal, dass meine Lösung maximal eine "Frickellösung" ist, aber nicht wirklich funktioniert...
Könnt ihr mir helfen? Also wie gebe ich einen Vektor aus einer S-Function aus?
Vielen Dank im Voraus.
Schöne Grüße
|
|
|
|
|
bolle123 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 31.08.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.09.2010, 10:04
Titel:
|
|
Hallo zusammen,
die Ausgabe funktioniert jetzt, jedoch hab ich nicht so ganz verstanden warum bzw. wie:
Wenn ich mit der folgenden Vorschleife den Vektor befüllen möchte, werden nicht entsprechend der Schleife 21 Einträge sonder 42 Einträge des Vektors belegt....
Und zwar sieht der Vektor dann wie folgt aus:
"1,0,3,0,5,0,7,0,9,...,41,0"
Woher kommen die "0"-Einträge?
Ich hoffe, ihr könnt mir da was erklären...
Schönen Gruß
|
|
|
|
|
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 - 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.
|
|