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

Matrix, Werte aus If-Verzweigung zuordnen

 

heatblance

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2011, 10:51     Titel: Matrix, Werte aus If-Verzweigung zuordnen
  Antworten mit Zitat      
Hallo liebe MATLAB-Community,

es ist wirklich schön zu sehen, wie ihr euch hier gegenseitig Tipps gebt.
Ich bin noch relativ neu bei der Programmierung mit Matlab und habe eine Frage an euch.
Und zwar habe ich eine Matrix mit mehreren Startwerten, für die Ermittlung der weiteren Werte habe ich verschiedene Funktionen gegeben.
Das ganze soll jetzt mit einer If- Verzweigung umgsetzt werden (um nach jedem Zeitschritt die Ausgabewerte zu erreichen).
Wie sage ich MATLAB, dass es die berechneten FUnktionswerte an die Matrix übergeben soll? Oder kann man das so gar nicht machen?
Vielen Dank für eure Antworten!

Code:
dt=1; % time step
t=[1:dt:n]; % [s] operating time

% initial values
msto = zeros(n,2); % [kg] mass storage
msto(1,1:2) =[mhstart, mcstart];
Tsto = zeros(n,2); % [°C] temperature storage
Tsto(1,1:2) =[Thstart,Tcstart];
cpsto= zeros(n,2); % [J/kg/K] heat capacity storage
cpsto(1,1:2)=(1.5404 + (3.0924*10^-5)*Tsto(1,1:2))/1e3;
rhosto=zeros(n,2); % [kg/m^3] density storage salt
rhosto(1,1:2)=(2.1060-(6.6795*10^-4)*Tsto(1,1:2))*10^3;
Lsto= zeros(n,2); % [m] filling level storage
Lsto(1,1:2)=msto(1,1:2)/Across./rhosto(1,1:2);
Qsto= zeros(n,2); % [Ws] heat quantity storage
Qsto(1,1:2)=(msto(1,1:2).*cpsto(1,1:2).*(Tsto(1,1:2)-Tcstart*[1,1]));
Qloss= zeros(n,2);  % [W] heat loss storage
Qloss(1,1:2)=kwall*(U*Lsto(1,1:2)).*(Tsto(1,1:2)-Tamb*[1,1]);

if (t>1)&(t<n)
     
    % limitation of storage filling level
   %i f      Lsto(1)>Llim
    %       msalt=0;
   % elseif  Lsto(t-dt)>=Llim
   %        msalt=0;
   % elseif  Lsto(t-dt)<Llim
   % end
   
    msto(t,1:2)=msto(t-dt,1:2)+dt*msalt; % [kg] mass hot storage
    Qloss(t,1:2)=(kwall*(U*Lsto(t-dt,1:2)).*(Tsto(t-dt,1:2)-Tamb)); % [W] heat loss storage
    Tsto(t,1:2)=(Tsto(t-dt,1:2)+(((msalt.*(cpsalt.*(Tsalt+273.15)-cpsto(t-dt,1:2).*(Tsto(t-dt,1:2)+273.15)))./(msto(t,1:2).*cpsto(t-dt,1:2))))*dt);% -((Qloss(t,1:2)*dt)t/(msto(t,1:2).*cpsto(t-dt,1:2)));% [°C] temperature storage
    cpsto(t,1:2)=(1.5404 + (3.0924e-5)*Tsto(t,1:2))/1e3; % [J/kg/K] heat capacity storage                                                            
    rhosto(t,1:2)=(2.1060-(6.6795e-4)*Tsto(t,1:2))*10^3; % [kg/m^3] density storage salt
    Lsto(t,1:2)=msto(t,1:2)/Across./rhosto(t,1:2); % [m] filling level storage
    Qsto(t,1:2)=msto(t,1:2).*cpsto(t,1:2).*(Tsto(t,1:2)-Tcstart*[1,1]); % [Ws] heat quantity storage
   
    end
 


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.12.2011, 15:07     Titel: Re: Matrix, Werte aus If-Verzweigung zuordnen
  Antworten mit Zitat      
Hall heatblance,

Die Indices in Matrizen müssen immer positive Integer sein. In Deinem Fall ist dies durch "t=1:1:n;" sichergestellt. (Die zusätzlichen eckigen Klammern rauben nur Zeit). Für andere Schrittweiten funktioniert dies aber nicht, etwa "1:0.5:n". Dann müsste man die einen zusätzlichen Laufindex verwenden, etwa:
Code:
i = 0;
...
i = i+1;
M(i, 1:2) = ...


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