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

Quasi-dynnamische Simulation mit MATPOWER

 

Annagoesmatlab
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 04.11.12
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 28.07.2017, 12:16     Titel: Quasi-dynnamische Simulation mit MATPOWER
  Antworten mit Zitat      
Hallo,

ich habe ein Niederspannungsnetz welches ich in Matpower berechnen lasse und möchte nun anstatt statischen Lasten Lastgänge einfügen. Und mit diesen dann für jeden Wert im Lastgang (Viertelstunden Werte für ein Jahr) eine Netzberechnung durchführen und dann jeweils die Ergebnisse abspeichern. Leider habe da logische Probleme, da das Netz eine "function" ist und ich nicht weiß wie ich damit umgehen kann.

Hier mein bisheriges Netz:
Code:
function mpc = caseohneTrafo
%CASE9
%   Please see CASEFORMAT for details on the case file format.
%


%   MATPOWER
[A] = xlsread('Lastprofile_fertig');
for i = length(A);
%% MATPOWER Case Format : Version 2
mpc.version = '2';

%%-----  Power Flow Data  -----%%


%% bus data
%   bus_i   type   Pd   Qd   Gs   Bs   area   Vm   Va   baseKV   zone   Vmax   Vmin
mpc.bus = [
   1   3   0       0   0   0   1   1   0   0.4   1   1.025   0.9;
   2   1   0       0   0   0   1   1   0   0.4   1   1.025   0.9;
   3   1   0       0   0   0   1   1   0   0.4   1   1.025   0.9;
   4   1   A(i,4)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   5   1   A(i,1)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   6   1   A(i,2)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   7   1   A(i,3)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   8   1   A(i,5)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   9   1   A(i,6)   0   0   0   1   1   0   0.4   1   1.025   0.9;
    10   1   A(i,7)   0   0   0   1   1   0   0.4   1   1.025   0.9;
];

%% system MVA base
mpc.baseMVA = sum(mpc.bus(:,3))*1.2;
%% generator data
%   bus   Pg   Qg   Qmax   Qmin   Vg   mBase   status   Pmax   Pmin   Pc1   Pc2   Qc1min   Qc1max   Qc2min   Qc2max   ramp_agc   ramp_10   ramp_30   ramp_q   apf
mpc.gen = [
   1   mpc.baseMVA   0.2*mpc.baseMVA   0.3*mpc.baseMVA   -0.3*mpc.baseMVA   1   0   1   2*mpc.baseMVA   0.1*mpc.baseMVA   0   0   0   0   0   0   0   0   0   0   0;
];

%% branch data
%   fbus   tbus   r   x   b   rateA   rateB   rateC   ratio   angle   status   angmin   angmax
mpc.branch = [
   1   2   0.008       0.00722566   0   0   0   0   0   0   1   -360   360;
    1   3   0.008       0.00722566   0   0   0   0   0   0   1   -360   360;
    1   4   0.0048      0.0043354   0   0   0   0   0   0   1   -360   360;
    2   5   0.051675   0.04743805   0   0   0   0   0   0   1   -360   360;
    2   6   0.01        0.00903208   0   0   0   0   0   0   1   -360   360;
    2   7   0.013333   0.01204277   0   0   0   0   0   0   1   -360   360;
    3   8   0.02075     0.00722566   0   0   0   0   0   0   1   -360   360;
    3   9   0.088       0.07948229   0   0   0   0   0   0   1   -360   360;
    3   10   0.02        0.01806416   0   0   0   0   0   0   1   -360   360;
];

%%-----  OPF Data  -----%%
%% generator cost data
%   1   startup   shutdown   n   x1   y1   ...   xn   yn
%   2   startup   shutdown   n   c(n-1)   ...   c0
mpc.gencost = [
   2   1500   0   3   0.11   5   150;
];

% results = runopf('caseohneTrafo');

end
end
 


Wenn ich die results wie hier mit in der "for"-Schleife lasse, dann habe ich eine Endlosschleife erzeugt. Aber wenn ich dies nicht tue, dann berechnet er nicht für jedes i das Netz.

Ich hoffe, ich habe mich verständlich ausgedrückt.
Viele Dank für eure Hilfe.
Liebe Grüße,
Anna
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: 01.08.2017, 12:12     Titel: Re: Quasi-dynnamische Simulation mit MATPOWER
  Antworten mit Zitat      
Hallo Annagoesmatlab,

Ich habe die Frage noch nicht verstanden.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 04.11.12
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 01.08.2017, 12:48     Titel:
  Antworten mit Zitat      
Hey Jan,

Danke für die Antwort. Mein Problem hat sich mittlerweile auch verändert. Die Endlosschleife, die ich durch results = runopf('caseohneTrafo') innerhalb der for-Schleife erzeugt habe umgehe ich jetzt einfach, in dem ich den workspace als Datengrundlage für meinen optimal power flow Berechnung benutze.
Code:
function mpc = caseohneTrafo
%CASE9
%   Please see CASEFORMAT for details on the case file format.
%


%   MATPOWER
 [A] = xlsread('Lastprofile_fertig');
 for i = 1;
%% MATPOWER Case Format : Version 2
mpc.version = '2';

%%-----  Power Flow Data  -----%%


%% bus data
%   bus_i   type   Pd   Qd   Gs   Bs   area   Vm   Va   baseKV   zone   Vmax   Vmin
mpc.bus = [
   1   3   0       0   0   0   1   1   0   0.4   1   1.025   0.9;
   2   1   0       0   0   0   1   1   0   0.4   1   1.025   0.9;
   3   1   0       0   0   0   1   1   0   0.4   1   1.025   0.9;
   4   1   A(i,4)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   5   1   A(i,1)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   6   1   A(i,2)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   7   1   A(i,3)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   8   1   A(i,5)   0   0   0   1   1   0   0.4   1   1.025   0.9;
   9   1   A(i,6)   0   0   0   1   1   0   0.4   1   1.025   0.9;
    10   1   A(i,7)   0   0   0   1   1   0   0.4   1   1.025   0.9;
];

%% system MVA base
mpc.baseMVA = sum(mpc.bus(:,3))*1.2;
%% generator data
%   bus   Pg   Qg   Qmax   Qmin   Vg   mBase   status   Pmax   Pmin   Pc1   Pc2   Qc1min   Qc1max   Qc2min   Qc2max   ramp_agc   ramp_10   ramp_30   ramp_q   apf
mpc.gen = [
   1   mpc.baseMVA   0.2*mpc.baseMVA   0.3*mpc.baseMVA   -0.3*mpc.baseMVA   1   0   1   2*mpc.baseMVA   0.1*mpc.baseMVA   0   0   0   0   0   0   0   0   0   0   0;
];

%% branch data
%   fbus   tbus   r   x   b   rateA   rateB   rateC   ratio   angle   status   angmin   angmax
mpc.branch = [
   1   2   0.008       0.00722566   0   0   0   0   0   0   1   -360   360;
    1   3   0.008       0.00722566   0   0   0   0   0   0   1   -360   360;
    1   4   0.0048      0.0043354   0   0   0   0   0   0   1   -360   360;
    2   5   0.051675   0.04743805   0   0   0   0   0   0   1   -360   360;
    2   6   0.01        0.00903208   0   0   0   0   0   0   1   -360   360;
    2   7   0.013333   0.01204277   0   0   0   0   0   0   1   -360   360;
    3   8   0.02075     0.00722566   0   0   0   0   0   0   1   -360   360;
    3   9   0.088       0.07948229   0   0   0   0   0   0   1   -360   360;
    3   10   0.02        0.01806416   0   0   0   0   0   0   1   -360   360;
];

%%-----  OPF Data  -----%%
%% generator cost data
%   1   startup   shutdown   n   x1   y1   ...   xn   yn
%   2   startup   shutdown   n   c(n-1)   ...   c0
mpc.gencost = [
   2   1500   0   3   0.11   5   150;
];

% results = runopf('caseohneTrafo');
% Last = zeros(1:length(A));
%     Last(i) = sum(results.bus(:,3));
save workspace

results = runopf('workspace');% hier an dieser Stelle müssen die jeweilgen results  durchnummeriert werden(gerade wird results die ganze Zeit überschrieben und nur für die letzten Lastwerte bleiben die Werte in der Matrix)



 end
end
 

Jetzt ist mein Problem, dass ich für alle ~35000 Netzberechnungen die Ergebnisse in Form mehrerer Matritzen jeweils mit unterschiedlichen Namen bzw. durchnummeriert abspeichern möchte. Also z.B. results.1, results.2 usw..... Sobald die function aber die Berechnung beendet, sind alle Ergebnisse aus dem Workspace verschwunden. Sprich 1. Frage: Wie schaffe ich es, dass in einer for Schleife eine durchnummerierung der Ergebnissmatrizen statt findet und 2. Frage: Wie bleiben die Ergenisse im Workspace stehen?
Ich hoffe, ich habe mich diesmal verständlicher ausgedrückt.



Liebe Grüße,
Anna
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.