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

Funktionsaufruf in Schleife, veränderliche Reihenfolge

 

FelixW
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 19.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2022, 10:27     Titel: Funktionsaufruf in Schleife, veränderliche Reihenfolge
  Antworten mit Zitat      
Hallo zusammen:

Ich habe drei Funktionen

Code:

function [reward_grid_load,load_out] = load_grid_function(load_in, actual_price)
load_out = 0;
reward_grid_load = -load_in*actual_price;
end

function [reward_PV_load,load_out,left_PV] = load_PV_function(load_in, gen_PV_actual, actual_price)
load_out = max(load_in-gen_PV_actual,0); %% Die verbleibende Last nach der deckung durch PV ist das maximum aus der Differenz Last - PV Einspeisung und 0
reward_PV_load = actual_price*min(gen_PV_actual,load_in); %% Reward ist das Produkt aus durch PV gedeckter Last und dem aktuell zu zahlenden Strompreis
left_PV = max(gen_PV_actual-load_in,0); % ist die Last "zu" Beginn größer als die zur Verfügung stehende PV Einspeisung, verbleibt die Differenz von Last - PV Einspeisung zur Deckung durch andere Quellen
end

function [reward_stat_load,load_out,stat_charge_state_out] = load_stat_function(load_in, stat_P,stat_charge_state_in, actual_price)
load_out = max(load_in-min([stat_charge_state_in stat_P load_in]),0); % Die verbleibende Last als Differenz aus der Eingangsbeladung und dem Minimum aus: Eingangsbeladung/max.Entladeleisung/der "geforderten" Last
reward_stat_load = actual_price*min([load_in stat_charge_state_in stat_P]); % reward als Produkt der gedeckten Last und dem alternativ bei NEtzbezug zu zahlenden Strompreis
stat_charge_state_out = max(stat_charge_state_in-min([load_in stat_charge_state_in stat_P]),0); % Die Ausgangsbeladung als Maximum( Eingangsbeladung - Minimum("geforderten" Last / Eingengsbeladung / max. Entladeleistung),0)
end
 


Ich suche nach einem möglichst diese Funktionen immer wieder in veränderter Reihenfolge abzurufen.

Perfekt wäre nur ein Array übergeben zu müssen, in welchem die Funktionen in der aktuell gewünschten Reihenfolge stehen.

Viele Grüße Felix
Private Nachricht senden Benutzer-Profile anzeigen


FelixW
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 19.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2022, 19:34     Titel: Andere Lösung gefunden
  Antworten mit Zitat      
Wie sich gezeigt hatb waren deutlich weniger Kombinationen der verschiedenen Funktionen von Bedeutung als vermutet/befürchtet. Es gab 36 mögliche Kombinationen, aber nur 12 sind relevant (4 von sehr geringer Komplexität ca. 6 Zeilen) so dass es einfachere war alle 12 Varianten als je einen Block zu programmieren und über elseif die einzelnen Blöcke anzuwählen.
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.