Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Pumpspeicherwerk Modellierung
Autor
Universität/Hochschule Pumpspeicherwerk Modellierung
legacys01
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 26.11.2016
Mitteilungen: 21
  Themenstart: 2017-07-14

Hallo zusammen, ich benötige euere Hilfe bei einem Optimierungsproblem. es geht um einen Pumpenspeicherwerk, das Strom erzeugt(Turbine-->Einspeisung ins Netz) bzw. verbraucht (Pumpe-->Bezug aus dem Netz) je nach Strompreis in der Börse. das PSW besteht aus 2 Becken mit unterschiedlicher Höhe und Speichervolumen. im Oberen Becken gibt es einen Zufluss mit bekannter zuflussmenge. Tr: Energieerzeugung der Turbine pro Stunde Pp: Energieverbrauch der Pumpe pro Stunde G:Gewinn zufluss: m³/h (bekannt in stündlicher Auflösung) FZob: Füllzustand des Oberbeckens FZob0:Initiale Füllzustand des Oberbeckens FZub: Füllzustand des Unterbeckens FZub0:Initiale Füllzustand des Unterbeckens w: Wirkungsgrad der Pumpturbine inflow_Price_data.mat lädt den stündlichen Zufluss und die preise hoch. Ziel: optimal Fahren der Turbine und Pumpe um möglichst große Profit zu machen? Zielfunktion: G= Tr*Preis-Pp*preis Restriktionen: 1) equality in form : Aeq.x=beq FZob=FZob0-Tr+w*Pp+Zufluss Fzub=FZub0+Tr-w*Pp 2) Systemgrenzen ub=[Tr_max_leistung;Pp_max_leistung;FZob_max;FZub_max] ul=[Tr_min_leistung;Pp_min_leistung;FZob_min;FZub_min] anbei Mein sehr bescheidenen Code, was leider nicht wie erwartet funktioniert. ich hoffe, dass ihr mir dabei helfen könnt. operations.m \sourceon nameDerSprache %% Initialwerte definieren N=length(inFlow); %% Restriktionen definieren constraints; %% zu maximierende Funktion definieren P=c.*[price;-price;zeros(N,1);zeros(N,1);0;0]; %% optimierung [x1,fval1,exitflag,output,lambda]=linprog(P,[],[],Aeq,Beq,Lb,Ub); %% visualisierung plotResults(x1,price,N); %plotResults(x1,price,N); \sourceoff constraints.m \sourceon nameDerSprache %% Konstanten % Pumpeturbine Wirkungsgrad w=0.95; % Umrechnungsfaktor m³-->MWh c=998*(9.81)*(180.5)*(0.95)/(3600*1000000); % (kg/m³).(m/s²).m /(3600.1000000) %% Systemgrenze Bounds % [Turbine;Pumpe;Menge_max oberbecken;Menge_max_unterbecken; Ub=[40*ones(N,1);40*ones(N,1);408000*ones(N,1);488000*ones(N,1);300000;400000]; Lb=[zeros(N,1);zeros(N,1);15885*ones(N,1);95885*ones(N,1);50000;100000]; %% Restriktion Aeq.x=Beq t=ones(N,1); z=zeros(N,1); q=zeros(N,N); Tr=-spdiags([t -t],[0 N],N,N); Pp=w*spdiags([t -t],[0 N],N,N); Fzob=spdiags([t -t],[0 -1],N,N); Fzobx=q*Fzob; Fzub=spdiags([t -t],[0 -1],N,N); Fzubx=q*Fzub; Fzob0=z;Fzob0(1,1)=1; Fzub0=z;Fzub0(1,1)=1; % 2 Gleihungen Aeq=[Tr Pp Fzob Fzubx Fzob0 z;-Tr -Pp Fzobx Fzub z Fzub0]; Beq=[inFlow;z]; \sourceoff plotResults.m \sourceon nameDerSprache function plotResults(x,price,N) %% neue figure erzeugen figure('Position',[100,100,1020,800]); %% obere plot price subplot(2,1,1); plot(price) % Add labels xlabel('Zeit (h)'); ylabel('Preis (€/MWh)'); title('Strompreis'); grid minor; %% untere plot Erzeugung subplot(2,1,2); %v=[x(1:N),x(N+1:2*N),x(2*N+1:3*N),x(3*N+1*4*N),x(4*N+1,end)]; hold on; plot(x(1:N),'b'); hold on; plot(x(N+1:2*N),'r'); hold on; plot(x(2*N+1:3*N),'g'); % hold on; % plot(x(3*N+1:4*N),'-*c'); % Add labels ylabel('Turbine und Pumpeerzeugung (MWh)'); xlabel('Zeit (h)'); title('Pumpen und Turbine Erzeugung'); % Add legend legend('Turbine ','Pumpe', \sourceoff vielen Dank im voraus für euere Hilfe und Anregungen


   Profil

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]