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

variable automatisch ändern

 

Calle
Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2012, 08:44     Titel: variable automatisch ändern
  Antworten mit Zitat      
Ich habe eine funktion, in der mehrere Variablen vorkommen.
vereinfacht lautet die:
x=y*a
für x möchte ich gerne einen bestimmten Wert haben (z.B. 70)
a verändert sich immer, (sollte aber immer so um 0.1 liegen)
y ist in diesem fall eine maschine, die einen Wert zwischen 400 bis 800 schafft. Ist es möglich, dass zu Programmieren, dass sich y automatisch ändert, so dass ihc auf x = 70 komme? also wenn a größer wird, dass y automatisch kleiner wird?
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.03.2012, 08:53     Titel:
  Antworten mit Zitat      
fersteh die frage nicht richtung. wenn x immer 70 sein soll schreib doch gleich x=70
wenn du y als funktion von a haben willst kannst du das ja über ne anonyme funktion machen
Code:
y=@(a) 70/a
x=y(a)*a;
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2012, 09:09     Titel:
  Antworten mit Zitat      
es geht um einen kondensator.
Code:
Ts_c = temperature(P1); % boiling temperature [°C]
x1 = m*cp_g*(T1-Ts_c);  % power used from input to  boil [W]
if Q_c>x1
    x2 = m*cp_g*(T1-Ts_c)+m*dH; % power used from input to become liquid [W]
    if Q_c>x2
    T2 = (Ts_c+273)-((Q_c-m*cp_g*(T1-Ts_c)-m*dH)/(m*cp_l)); % output temperature [K]
    T2 = T2-273; % output temperature [°C]
    else
    T2 = Ts_c;  % output temperature [°C]
    disp('VAPOR! liquid and vapor after condenser')
    end            
else
    disp('VAPOR! just vapor after condenser')
    T2 = (T1+273)-Q_c/(m*cp_g); % output temperature [K]
    T2 = T2-273;    % output temperature [°C]
end
P2 = P1;    % output pressure [bar]
 


dort berechne ich die Ausgangstemperatur T2 (mein x) m ist der Massenstrom (a) und Q_c (y) ist die Wärmeleistung. jetzt möchte ich gerne den Massenstrom verstellen um zu sehen was passiert. In einem fixen zustand, benötige ich für Q_c 22000 W. Jetzt kann der Kondensator aber auch mehr Wärme abgeben als nur in den berechneten beispiel. Dies muss er auch machen, wenn ich den den massenstrom erhöhe.dazu möchte ich einen Wertebereich für Q_c eingeben. und dann kann ich sehen, ab wann der massenstrom zu hoch wird und es noch nicht alles kondensiert ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2012, 04:14     Titel:
  Antworten mit Zitat      
habe es jetzt doch hinbekommen. ist zwar (da gehe ich zumindestens mal von aus) nicht der schönste weg, aber es funktioniert.
für alle die es interressiert:
Code:
T2 = 40;    % should temperature [°C]
m = 0.1;    % massflow [kg/s]
Q_cmax = 30000; % max power of condenser [W]
Ts_c =  temperature(P1);    % boiling temperature at pressure P1 [°C]
x1 = m*cp_g*(T1-Ts_c);      % used power from input to start boiling [W]
if Q_cmax>x1
    x2 = m*cp_g*(T1-Ts_c)+m*dH; % uses power from input to end boiling [W]
    if Q_cmax>x2
        Q_c = m*cp_g*(T1-Ts_c)+m*dH+m*cp_l*(Ts_c-T2);   % used power from input to should temperature [W]
        if Q_c<=Q_cmax
            strQ_c = ['Q_c: ', num2str(Q_c),' [W]'];
            disp(strQ_c)
            T2 = (Ts_c+273)-Q_c/(m*cp_l)+((cp_g*(T1-Ts_c)+dH)/cp_l);  % output temperature [K]
            T2 = T2-273;    % output temperature [°C]
        else
            strQ_cmax = ['Q_cmax: ', num2str(Q_cmax),' [W]'];
            disp(strQ_cmax)
            T2 = (Ts_c+273)-Q_cmax/(m*cp_l)+((cp_g*(T1-Ts_c)+dH)/cp_l);  % output temperature [K]
            T2 = T2-273;    % output temoperatrue [°C]
        end
    else
    T2 = Ts_c;  % output temperature [°C]
    disp('VAPOR! liquid and vapor');
    end            
else
    disp('VAPOR! just vapor');
    T2 = (T1+273)-Q_c/(m*cp_g); % output temperature [K]
    T2 = T2-273;    % output temperature [°C]
end
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.