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

Batterie SOC plotten

 

Sebi001
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 26.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2017, 01:43     Titel: Batterie SOC plotten
  Antworten mit Zitat      
Hallo zusammen,

kurz zu meinem Problem...

Ich möchte eine Batterie nutzen um schwankungen im Netz auszugleichen.


Habe einen plot der Schwankung und möchte gerne einen zweiten hinzufügen wo man den SOC der Batterie sieht. Wichtig hierbei zu erwähnen ist, dass die Batterie im Ausgangszustand 50% geladen ist, damit man in beide Richtungen(laden/entladen) gleich viel Spielraum hat.

Habe mir gedacht ich schreibe eine for schleife die bis zum Ende der Daten läuft. Sollte die Batterie einmal komplett voll oder komplett leer sein wird sie wieder auf Ausgangszustand entladen/geladen. Ansonsten einfach mit dem vorangegangenen Wert weitergerechnet.
Outcome sollte sein das ich weis wann/wie oft die Batterie ganz leer oder voll ist.

Leider funktioniert das Ganze nicht so wie ich es gerne hätte, denke ich komme garnicht in die schleife rein...

CODE:
Code:

%Battery
PRL = 1; %MW +/-
%By law worst case means provided power for 30min
Side_effect_comp = 1.5;  %Includes aging and charge problems (deep / full)

Capacity_Batt = (PRL*Side_effect_comp*0.5*2) / 2; %MWh %0.5h * 2MW (+/-)

for i=1:1:MEAN_Energy_12h(end)
   
    SOC = cumsum(MEAN_Energy_12h(:,1));
   
    if (-SOC > Capacity_Batt)
        %mark the graph above this level in different color
        SOC = 0
        Batt_full = Batt_full+1;

        else if (-SOC < Capacity_Batt)
          SOC = 0
          Batt_empty = Batt_empty+1;

        end
    end
end
figure(5)
bar(time_daily_mean,SOC)
 


Hoffe mir kann jemand hierbei helfen Wink
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.04.2017, 12:56     Titel: Re: Batterie SOC plotten
  Antworten mit Zitat      
Hallo Sebi001,

Zitat:
denke ich komme garnicht in die schleife rein...

Was bedeutet das?

Es geht wohl um den Befehl:
Code:
for i=1:1:MEAN_Energy_12h(end)

Welchen Wert hat "MEAN_Energy_12h(end)"?
Hast Du mal den Debugger verwendet um Zeile für Zeile durch den Code zu gehen?

Ein paar Dinge sind merkwürdig:
Code:
for i=1:1:MEAN_Energy_12h(end)
    SOC = cumsum(MEAN_Energy_12h(:,1));
 

Wird SOC hier in jeder Iteration berechnet, obwohl immer der gleiche Wert herauskommt? Vielleicht meinst Du:
Code:
SOC = cumsum(MEAN_Energy_12h(:,1));
for i = 1:size(MEAN_Energy_12h, 1)
  currentSOC = SOC(i);
  ...

Das ist aber wild geraten.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebi001
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 26.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2017, 14:41     Titel:
  Antworten mit Zitat      
Hy danke für die Rückmeldung Wink

ICh weis zwar was ich mäöchte tu mir aber schwer das zu 100% in Matlab umzusetzen :/
Konkret betrachte ich hier die Nutzung der Batterie zur dekcung eines bestimmten teiles der Primärregeleistung. Hier muss man immer +- X MW anbieten, also kann die kapazität der batterie nur zur hälfte genutzt werden

1. Weil output war das SOC nicht definiert ist.

2. MEAN_Energy_12h(end) sollte am Ende 200 ausgeben also die Länge des vektors das mache ich heir aber falsch denn ich gebe den letzten wert aus ^^ der ist 0^^

Ich möchte am ende einen Vektor haben mit dem jeweiligen SOC an jedem Zeitwert von Mean_Energy_12h

Denke allerdings ich mach das nicht richtig ... cumsum sollte passen da ich immer das jeweilige Ergebnis von vorher mitnehmen will aber ich muss auch berücksichtigen wann die Batterie voll und wann sie komplett leer ist, das ist also mein max und min.
Wenn eines der beiden Ereignisse eintritt muss die battterie wieder geladen werden bzw entladenn, was ich durch "Nullsetzen" darstellen würde also wieder auf 50 % ladung weil ich ja in beide richtungen wieder gleich viel "range" brauche.

Ich hab dir mal einen plot angehängt wo man den Verlauf von Mean sieht und die grenzen. Bei erreichen der grenzen sollte dann wieder der aktuelle SOC zurückgesetzt werden und ich gehe mal davon aus das er schon für den darauffolgenden wert herangezogen wird. Dann müsste ich irgwendwie extra anzeigen lassen wann die Batt leer und voll ist hmm..

Würd auch gern einen counter haben der die beiden fälle trackt damit ich dann mit der kapazität ein bisschen sopielen kann um zu sehen wann diese fälle sich minimieren.

mfg
Sebastian

PRR_with_SOC_limits.fig
 Beschreibung:

Download
 Dateiname:  PRR_with_SOC_limits.fig
 Dateigröße:  70.02 KB
 Heruntergeladen:  315 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebi001
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 26.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2017, 14:57     Titel:
  Antworten mit Zitat      
Zur vollständigkeit...

Das file mit den zeitwerten in min
und das file mit den mean werten schon in MWh also die MW immer *0.25 gerechnet (15min schritte)

achja wichtig zu ewähnen: !! ein negativer MEAN wert heißt die batterie wird geladen ein positiver -> Batterie wird entladen

also müsste ich das ganze Mean_energy_12h-file negieren damit ich später dann [ SOC + Mean_energy_12h(:,1) machen kann.

Das macht dann mehr Sinn

mfg
Sebastian

time_daily_mean.mat
 Beschreibung:

Download
 Dateiname:  time_daily_mean.mat
 Dateigröße:  670 Bytes
 Heruntergeladen:  254 mal
Mean_energy_12h.mat
 Beschreibung:

Download
 Dateiname:  Mean_energy_12h.mat
 Dateigröße:  1.7 KB
 Heruntergeladen:  271 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebi001
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 26.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2017, 01:57     Titel:
  Antworten mit Zitat      
Hat niemand eine Idee? Sad

mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.05.2017, 17:14     Titel:
  Antworten mit Zitat      
Hallo Sebi001,

Zitat:
ICh weis zwar was ich mäöchte tu mir aber schwer das zu 100% in Matlab umzusetzen :/

Dann erkläre doch mal ganz genau, was Du tun möchtest.

Zitat:
Konkret betrachte ich hier die Nutzung der Batterie zur dekcung eines bestimmten teiles der Primärregeleistung.

Das hilft nicht wirklich weiter. Die meisten Leser haben keine Ahnung von Batterien und Primär-Leistungen --- Matlab aber ebenfalls nicht. Für Matlab sind dies alles Zahlen und genau so kannst Du auch an das Problem herangehen, wenn Du eine Lösung programmierst.

Zitat:
Hier muss man immer +- X MW anbieten, also kann die kapazität der batterie nur zur hälfte genutzt werden

Das ist für mich als Leser nur verwirrend. Ich habe keine Ahnung, was das bedeutet.

Zitat:
1. Weil output war das SOC nicht definiert ist.

Diesen Satz verstehe ich nicht.

Zitat:
2. MEAN_Energy_12h(end) sollte am Ende 200 ausgeben also die Länge des vektors das mache ich heir aber falsch denn ich gebe den letzten wert aus ^^ der ist 0^^

Das kann ich ebenfalls nicht nachvollziehen.

Zitat:
Ich möchte am ende einen Vektor haben mit dem jeweiligen SOC an jedem Zeitwert von Mean_Energy_12h

Denke daran, dass die Leser nicht die geringste Ahnung von dem haben, was Du machst. Sind die Bedeutungen von SOC und Mean_Energy_12h wichtig für die Lösung? Was ist ein "Zeitwert"?

Ich habe bisher zu keinem einzigen Satz der Erklärungen den Eindruck, dass ich verstehe, wovon er handelt. Versuche es also nochmal ganz abstrakt. Der Input wird wohl ein Vektor mit Zahlen sein, oder mehrere Vektoren. "Means" sind immer Mittelwerte, die mal positiv oder negativ zu machen, ist nur verwirrend. Erstelle lieber einen weiteren Vektor, der das Laden bzw Entladen definiert.

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