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

Eine Art "Enabled Subsystem" ohne Enable-Block rea

 

Patrick84
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2013, 21:52     Titel: Eine Art "Enabled Subsystem" ohne Enable-Block rea
  Antworten mit Zitat      
Hallo zusammen,

ich hab ein kleines Problem und evtl. kann mir hier wer helfen. Und zwar geht es um das unten abgebildete Simulink-Modell.

Beim vorhandenen Simulink-Modell werden in den den Vektor_1, über eine gewisse Zeit, Daten geschrieben (Dimension am Simulationsende: 360000x13). Von den 360000 Zeilen sind jedoch nur 52 von Null verschieden (Rest wird über Impuls zu Null gesetzt). Ich will jetzt, dass diese ganzen Nullen nicht in den Vektor geschrieben werden, dieser also am Ende eine Dimension von 52x13 hat. Mein Hauptproblem ist, ich darf das nicht über ein Enabled-Subsystem machen (mit dem gehts), sondern muss es so irgendwie realisieren, da das Simulink-Modell später in einen anderen Code kompiliert wird, wo das Enabled-Subsystem nicht mehr funktioniert.

Ich hoffe hier kann mir wer helfen. Da ich noch nicht so viel Erfahrung mit Matlab/Simulink habe, komme ich atm. einfach nicht mehr weiter.



Viele Grüße
Patrick

Neue Bitmap.jpg
 Beschreibung:

Download
 Dateiname:  Neue Bitmap.jpg
 Dateigröße:  41.37 KB
 Heruntergeladen:  630 mal
Private Nachricht senden Benutzer-Profile anzeigen


knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2013, 07:25     Titel:
  Antworten mit Zitat      
Benutze eine Matlab Function block. Dort Initialisierst du den Vektor mit der Endgröße und füllst ihn mit Nullen. Immer wenn ein brauchbarer Wert kommt hängst du ihn rein (Nullen überschreiben), ansonsten überspringen und nächster Zeitschritt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Patrick84
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2013, 13:10     Titel:
  Antworten mit Zitat      
Und wie realisiere ich das mit dem "Überspringen", also das er, wenn ne Null kommt, nichts in den Vektor reinschreibt? Daran scheitert es im Moment.
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2013, 10:21     Titel:
  Antworten mit Zitat      
Du initialisierst eine Variable mit Nullen (kennst ja die Endgröße):

Code:
function vektor_1 = auswertung(impuls, eingangs_vektor)
persistent end_vektor;
if isempty(end_vektor)
     end_vektor = zeros(52,13);
end

if impuls == 0
    % Wert soll nicht abgespeichert werden.
    return;
else
    % Wert wird abgespeichert. Neuste Wert(e) ist/sind ganz oben im Vektor.
    circshift(end_vektor,1);
    end_vektor(1,:) = eingangs_vektor;
end
vektor_1 = end_vektor;
 


Das ist kein fertiger code und nur frei getippt .... pass es auf dein Problem an.
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.