• Non ci sono risultati.

Esempio 6.1

Nel documento Gestione Razionale dell Energia Elettrica (pagine 99-104)

global c0g ag bg Pd

c0g = [100 200];

ag = [20 21];

bg = [0.05 0.1];

P0 = [0; 0];

Pd = 600;

[P,C_tot,exitflag,output,molt] =

fmincon(@c_tot_1,P0,[],[],[],[],[],[],@vinc_1);

dove la funzione che contiene i vincoli vinc_1 è la seguente:

function [C, Ceq] = vinc_1(p)

global Pd

C = [];

Ceq = sum(p)- Pd;

Si noti che C è rappresentativa dei vincoli di disuguaglianza, qui non presenti, in quanto viene imposto nella risoluzione dell’algoritmo , mentre Ceq è rappresentativa dei vincoli di uguaglianza, in quanto viene imposto nella risoluzione dell’algoritmo . Ovviamente la soluzione del problema è la stessa ottenuta in precedenza.

A.2. Esempio 6.1

Si consideri una SG funzionante in parallelo alla rete, in cui sono in linea due unità di generazione i cui parametri sono riportati in Tab. I. La richiesta energetica per l’ora

considerata è anelastica ed è pari a MW; inoltre, per il dato intervallo di tempo, la tariffa oraria di acquisto di potenza dalla rete è pari a €/MW. Si supponga di non avere vincoli sulle potenze minime né su quelle massime che possono essere immesse sulla SG né da parte delle unità di generazione né al PCC. Tale esempio è uguale quindi al caso studio riportato nell’Esempio 6.1. Si calcolino i valori ottimali delle potenze prodotte dalle unità di generazione e della potenza acquistata dalla rete nell’ottica della minimizzazione dei costi di approvvigionamento.

Il file main .m in MATLAB che consente di risolvere il problema, impostando il vincolo di uguaglianza in forma matriciale, è il seguente:

clear all

dove la funzione obiettivo richiamata c_tot_2 che viene minimizzata è la seguente:

function Ct = c_tot_2(p)

Si consideri una SG funzionante in parallelo alla rete, in cui sono in linea due unità di generazione, i cui parametri sono riportati in Tab. V. La richiesta energetica per l’ora considerata è anelastica ed è pari a MW; inoltre, per il dato intervallo

di tempo, la tariffa oraria di acquisto di potenza dalla rete è pari a €/MW con un limite contrattuale di MW. Si supponga inoltre che non sia consentita l’immissione di potenza sulla rete di distribuzione al PCC. Si calcolino i valori ottimali delle potenze prodotte dalle unità di generazione e della potenza acquistata dalla rete nell’ottica della minimizzazione dei costi di approvvigionamento.

Tab.V. Parametri delle unità di generazione lower ed upper bound, è il seguente:

clear all particolare, il limite superiore sulla ) ha forzato la soluzione ad un valore differente.

È possibile avere una conferma di ciò dalla structure molt; come si evince in Fig. A2, infatti, il primo valore della variabile upper in essa contenuto è unitario, e conseguentemente il valore di costo marginale ( ) risulterà ridotto di 1 rispetto al valore .

Fig. A2. Struttura contenente i valori ottimi dei moltiplicatori

A.4. Esempio 7.2

Si consideri una SG funzionante in parallelo alla rete, in cui sono in linea due unità di generazione, i cui parametri sono riportati in Tab. V. La richiesta energetica per l’ora considerata è anelastica ed è pari a MW; inoltre, per il dato intervallo di tempo, la tariffa oraria di acquisto o vendita di potenza dalla rete di distribuzione è pari a €/MW. Si supponga stavolta che sia consentita l’immissione di potenza sulla rete di distribuzione al PCC, con un limite contrattuale di 150 MW in immissione o in prelievo. Si calcolino i valori ottimali delle potenze prodotte dalle unità di generazione e della potenza acquistata o ceduta alla rete di distribuzione nell’ottica della minimizzazione dei costi di approvvigionamento.

In questo caso chiaramente MW e MW.

Il file main .m in MATLAB che consente di risolvere il problema, impostando il vincolo di uguaglianza in forma matriciale ed i vincoli di disuguaglianza in forma di lower ed upper bound, è il seguente:

clear all close all clc

global c0g ag bg aPCC

c0g = [100 200];

ag = [20 21];

bg = [0.05 0.1];

P0 = [0; 0; 0];

Aeq = [1 1 1];

beq = 100;

Pmin = [0; 0; -150];

Pmax = [80; 60; 150];

aPCC = 25;

[P,C_tot,exitflag,output,molt] = fmincon(@c_tot_2,P0,[],[],Aeq,beq,Pmin,Pmax);

La soluzione del problema è: MW, MW e MW; il valore della funzione costo in tali condizioni è pari a ( ) €; il valore ottimale del moltiplicatore di Lagrange è ancora pari a €/MW, in quanto imposto dalla tariffa di acquisto dalla rete. In queste condizioni, dunque, risulta conveniente produrre più potenza tramite le due unità di generazione rispetto a quanta richiesta dai carichi, vendendo il surplus di potenza al PCC. Dalla Fig. A3 si evince ancora il fatto che la funzione ha saturato in corrispondenza del vincolo superiore sulla

.

Fig. A3. Struttura contenente i valori ottimi dei moltiplicatori

A.5. Esempio 8.1

Si consideri una SG funzionante in parallelo alla rete, in cui sono in linea due unità di generazione, i cui parametri sono riportati in Tab. V, qui riportata per comodità di lettura, ed un carico elettrico i cui parametri sono riportati in Tab. VIII; inoltre, per il dato intervallo di tempo, la tariffa oraria di acquisto o vendita di potenza dalla rete di distribuzione è pari a €/MW. Si supponga che anche stavolta sia consentita l’immissione di potenza sulla rete di distribuzione al PCC, con un limite contrattuale di 500 MW in immissione o in prelievo. Si calcolino i valori ottimali delle potenze prodotte dalle unità di generazione, della potenza acquistata o ceduta alla rete di distribuzione e delle potenze di carico.

Tab. VIII. Parametri delle unità di carico Unità

(€/MWh) [€/(MW) 2h]

(MW) (MW)

1 80 0.1 500 700

In questo caso MW e MW.

Il file main .m in MATLAB che consente di risolvere il problema, impostando il vincolo di uguaglianza in forma matriciale ed i vincoli di disuguaglianza in forma di lower ed upper bound, è il seguente:

clear all close all clc

global c0g ag bg ac bc aPCC

c0g = [100 200];

ag = [20 21];

bg = [0.05 0.1];

ac = [80];

bc = [0.1];

P0 = [0; 0; 0; 0];

Aeq = [1 1 1 -1];

beq = 0;

Pmin = [0; 0; -500; 500];

Pmax = [80; 60; 500; 700];

aPCC = 25;

[P,C_tot,exitflag,output,molt] = fmincon(@c_tot_3,P0,[],[],Aeq,beq,Pmin,Pmax);

dove la funzione obiettivo richiamata c_tot_3 che viene minimizzata è la seguente:

function Ct = c_tot_3(p)

global c0g ag bg ac bc aPCC Ng = length(c0g);

Nc = length(ac);

for i = 1:Ng

C(i) = (bg(i)/2)*p(i)^2 + ag(i)*p(i) + c0g(i);

end

for i = 1:Nc

U(i) = -(bc(i)/2)*p(Ng+1+i)^2 + ac(i)*p(Ng+1+i);

end

Ct = sum(C) + aPCC*p(Ng+1) - sum(U);

La soluzione del problema è: MW, MW, MW e

MW con €/MWh.

Nel documento Gestione Razionale dell Energia Elettrica (pagine 99-104)