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

ein system bestehend aus subsystems regeln

 

brokenscene
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2013, 20:26     Titel: ein system bestehend aus subsystems regeln
  Antworten mit Zitat      
Hallo Leute,

ich habe das problem mein system bestehend aus einzelnen subsystems zu regeln. es geht um eine wärmepumpe als gesamtsystem, bestehend aus laute einzelne subsystems: verdampfer, kondensator, kompressor, expansionsventile, leitungen. subsystems sind in level2 matlab sfunctions geschrieben und mit from/to blöcke verbunden.
die wärmepumpe liefert i.d.r. immer mehr kondensatorheizleistung (istleistung) als es wirklich gebraucht/gefordert wird (sollleistung). während die kondensatorheizleistung mit der zunahme der umgebungstemperatur steigt, sind die geforderte leistung durch steigende umgebunstemperatur.

Ich will nun mit Hilfe vom hub bzw. drehzahl des kompressors die Istleistung an die Sollleistung anpassen und zwar während der simulation. Bisher ist der Hub manuell als ein konstanter systemeingang vorgesehen und soll vorgegeben werden. d.h. ich tippe händisch eine zahl zwischen 0.3 und 1 (unter 30% Hub gibt es nicht!). ensprechend habe ich die anpassung sollleistung=istleistung bisher händisch durchgeführt. ich will nun den block constant durch eine regelung ersetzen. der hub soll angepasst werden.

Mit PIregler ging es nicht, wiel kein linearer zusammenhang zwischen hub und kondensatorleistung besteht und ich nicht die richtigen koeffizienten finde. Ich versuche es gerade mit einer matlabfunction fcn, welche zwei eingänge besitzt: berechnete istliestung, und umgebungstemperatur. Leider funtioniert es nicht. fällt euch vielleicht etwas auf, was ich dort falsch mache?

vielen dank!

Code:

function y = fcn(u,v)
% Istleistung
Q_ist=u;
% Umegbungstemperatur
T_air=v;
% Sollleistung
Q_soll=((-0.6743*(T_air-273.15))+7.0132)*1000;
% Differenzleistung in Watt
err=abs(Q_ist-Q_soll)*10^-4;
% Hub ist zwischen 0.3 und 1
hub=linspace(0.3,1,20);
% es soll jeden hub ausprobiert werden bis Differenzleistung kleiner als
% 10^-2 wird

for i=1:length(hub)
   
if err<1e-2
y=hub(i);
break

else

y=hub(i);    
end

end

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