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

Leistungsprofil: Leistung über Zeit

 

noah89
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2019, 15:54     Titel: Leistungsprofil: Leistung über Zeit
  Antworten mit Zitat      
Hallo zusammen! Bin absoluter Beginner und stehe vor folgender Herausforderung:
Ich soll ein Leistungsprofil einer Speicherzelle darstellen. (Leistung über Zeit)

Habe mal munter losprogrammiert und wollte mal kurzes Feedback einholen.
Denke ich richtig?

Code:
% Hier einmal die 1. Version meiner Funktion

%%%%Leistungsprofil für eine Speicherzelle
%Zeit = 35.040 Messungen für 1 Jahr (8760h à 15 minütiger Messung)
%a stellt die Preise über die Zeit dar


function [e_batt, Zeit] = Leistungsprofil(Fuellstand_Speicher,a,MAXSpeicherkap,fig)

Leistungsprofil
minSpeicher = 0;
maxSpeicher = MAXSpeicherkap;


idxSpeicherEntladen = Entladen>0; % Index, in dem der Speicher entladen wird
idxSpeicherLaden = Laden<0;  %  Index, in dem der Speicher geladen wird

i = 1;
e_batt = linspace(Fuellstand_Speicher,Fuellstand_Speicher,length(a))'; % Speichervektor definieren, a ist ID Preis
Zeit = linspace(a,a,length(a))'; %Zeitvektor definieren

while(i<length(a))
    if (a(i,1)< a(i+1,1) && a(i,1)< a(i+2,1) && a(i,1)< a(i+3,1)) || a(i,1)<=0 %Ladung erfolgt erst vergleich ODER Preis negativ
        if e_batt<=5 %&& Live_MWh(i,1)>5000 %Nur Laden wenn noch nicht voll und Windpark mind. 5 MW liefern kann
            e_batt(i) = Laden(i) .* 1.25 + e_batt(i-1); % 1,25 MW Ladung pro 15 Minuten
            if idxSpeicherLaden(i) == 1  %wird der Speicher geladen?
                if e_batt(i-1)<=MAXSpeicherkap  %Stellt sicher, dass der Speicher nur geladen wird wenn er noch nicht voll ist
                elseif e_batt(i-1)>MAXSpeicherkap % Ansonsten setze den Speicherstand auf den Maximalwert
                    e_batt(i)=MAXSpeicherkap; %
                end
               
            elseif idxSpeicherEntladen(i) == 1  %wird der Speicher entladen?
                if e_batt(i-1)>=0
                elseif a(i,1)> a(i+1,1) && a(i,1)> a(i+2,1) && a(i,1)> a(i+3,1)
                    if e_batt>=1.25 %Nur Entladen wenn nicht leer
                        e_batt(i) = - Entladen(i) .* 1.25 + e_batt(i-1); % 1,25 MW Entladung pro 15 Minuten
                    elseif e_batt(i-1)<=0 % Ansonsten setze den Speicherstand auf Null
                        e_batt(i)=0; % Speicher komplett entladen
                    end
                   
                elseif idxSpeicherLaden(i)==0 && idxSpeicherEntladen(i) == 0
                    if i == 1
                        e_batt(i) = e_batt(i);
                    else
                        e_batt(i) = e_batt(i-1);
                    end
                end
                i = i+1;
               
            end
           
            e_batt(e_batt == 0) = 0;
            e_batt(e_batt > MAXSpeicherkap) = MAXSpeicherkap;
           
           
        end
    end


 


Freue mich über Erfahrungen von euch Profis!
Private Nachricht senden Benutzer-Profile anzeigen


T16
Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 31.01.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2019, 15:19     Titel:
  Antworten mit Zitat      
Gibt es denn Probleme? Liefert die Funktion physikalisch sinnvolle Ergebnisse? M.M.n. müsste matlab schon bei der Zeile

Code:
Zeit = linspace(a,a,length(a))'; %Zeitvektor definieren


mit roten Fehlermeldungen aufleuchten Smile Denn du gibst als Start- und Endwerte des Vektors den du da aufbaust eine Matrix vor, wo Matlab Skalare benötigt.
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.