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

If-Block mit double als Eingangswert

 

KlapperKlaus
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 27.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2014, 11:31     Titel: If-Block mit double als Eingangswert
  Antworten mit Zitat      
Hallo zusammen,

ich beschäftige mich erst seit kurzer Zeit mit Matlab/Simulink und bin nun auf ein Problem mit dem If-Block gestoßen.
Wie in der angehängten Abbildung zu sehen, möchte ich einen momentanen Volumenstrom mit einem Durchschnittswert (Maximaler Volumenstrom an der Turbine genannt) vergleichen. Es soll also immer der Durchschnittswert ausgegeben werden, außer u2 ist größer als u1, dann soll der momentane Wert ausgegeben werden.
Das funktioniert auch wunderbar, wenn ich nur einen bestimmten Wert von u1 abfrage , zB u1(242) >= u2. Wie aber zu sehen ist, ist der momentane Volumenstrom ein Vektor (double) aus 35040x1 Werten. Ich möchte aber jetzt zu jedem Wert eine Abfrage haben und ebenso 35040 Ausgabewerte erhalten, um später einen zeitlich abhängigen plot zu erstellen.
Was kann ich da in meinem Modell machen?

Gruß,
Klapperklaus

Volumenstrom.jpg
 Beschreibung:

Download
 Dateiname:  Volumenstrom.jpg
 Dateigröße:  43.99 KB
 Heruntergeladen:  414 mal
Private Nachricht senden Benutzer-Profile anzeigen


KlapperKlaus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 27.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2014, 12:46     Titel:
  Antworten mit Zitat      
ok, war ne dämliche Frage, habe die For-Schleife vergessen Very Happy

Zwar weiß ich nicht genau, wie der For-Block in Simulink funktioniert, habe es aber mit einer eingebundenen Matlab-Funktion gemacht und funktioniert:

function y = fcn(V1,VT)
%#codegen
%V1 = 35040 verschiedene Werte zwischen 68 und 903
%VT = konstanter Wert von 169,5

[X,~] = size(V1);
y = zeros(X,1);

for i=1:1:X
if V1(i) >= VT;
y(i) = VT;
else
y(i)= V1(i);
end
end
end


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