Generalità sui metodi numerici usati.
In questa pagina descrivo sinteticamente la "filosofia" delle due famiglie di metodi iterativi da cui hanno origine gli algoritmi di loadflow. Vedi le applicazioni al caso specifico del loadflow. Leggere prima le avvertenze. (torna all'indice).
Il problema
E' necessario risolvere il sistema non lineare di n equazioni reali in n incognite:
Le due famiglie di metodi (numerici) risolutivi sono:
Metodo di Gauss
(vedi l'applicazione e i dettagli implementativi) Torna SuPer applicare questo metodo bisogna porre il sistema nella forma:
Ossia si riscrive il sistema ponendolo in forma canonica. A seconda della forma canonica che si sceglie si può avere convergenza o meno verso una soluzione; nell'eventualità che il sistema ammetta più di una soluzione è necessario provare ad usare tutte le forme canoniche possibili.
La forma canonica fornisce l'equazione di stima delle incognite da calcolare iterativamente:
![]()
Una volta scelto il valore iniziale della n-upla delle incognite con queste formule si calcola la n-upla al passo 1 ; a partire da questa si calcola quella al passo 2 e così via.
Se i valori delle incognite divergono sarà necessario cambiare i valori iniziali o la forma canonica, in caso contrario si avrà la convergenza ad una soluzione del sistema. La convergenza sarà tanto più veloce quanto più i valori iniziali scelti saranno vicini alla soluzione stessa.
Le iterazioni avranno fine quando ogni incognita calcolata al passo k+1 differirà da quella al passo k per un valore minore dell' errore accettato.
Questo metodo ha il pregio di avere un calcolo ciclico semplice (valutare n funzioni); purtroppo però la convergenza alla soluzione è piuttosto lenta.
applicazione ai loadflow
Per quanto riguarda i calcoli di loadflow si ricerca un' unica soluzione, quella che ha senso fisico. Non si hanno troppi problemi nella scelta dei valori iniziali e della forma canonica.
Metodo di Newton
(vedi l'applicazione e i dettagli implementativi) Torna SuValutando il sistema non lineare con la n-upla di incognite all' iterazione k (la n-upla per k=0 corrisponde alle condizioni iniziali dalle quali partiamo con le iterazioni), otteniamo dei valori residui non nulli (sarebbero nulli nel caso fortunato che la n-upla all'iterazione k coincidesse con la soluzione esatta del sistema):
Ci proponiamo di stimare l'incremento Dx che dobbiamo dare alle incognite per annullare il residuo del sistema:Non è possibile valutarne il valore esatto (riusciremmo a risolvere il problema in un colpo solo) ma è possibile valutarne una sostanziosa componente scrivendo l'equazione data dallo sviluppo in serie di Taylor del sistema arrestato al primo ordine:Questa equazione fornisce l'incremento da dare alle incognite per annullare i residui del sistema linearizzato, sostituito cioè dall'iperpiano tangente al sistema nel punto corrispondente all' n-upla di incognite all'iterazione k (da qui il nome "metodo delle tangenti").
Risolvendo l'equazione matriciale scritta il vettore degli incrementi all'iterazione k viene ottenuto invertendo la matrice delle derivate parziali del sistema (detta Jacobiano del sistema) valutata nell' n-upla di incognite all'iterazione k e moltiplicandola per il vettore del residuo del sistema, valutato anch'esso con l' n-upla di incognite all'iterazione k:Riscrivendola in forma estesa:
Il vettore delle incognite può essere ora aggiornato sommando a sè stesso il vettore degli incrementi appena calcolato:E il ciclo ricomincia, fino a raggiungere l'approssimazione voluta.
La convergenza di questo metodo è molto veloce, ma ogni iterazione può comportare calcoli particolarmente onerosi se la matrice Jacobiana ha ordine elevato (e questo accade nei loadflow): ad ogni ciclo infatti bisogna invertirla, operazione veloce per matrici 2X2, un pò meno per matrici 10000X10000.
A tal proposito si fa notare che il metodo va in crisi nel raro caso che alla n-upla di incognite corrisponda un punto di stazionarietà dei valori del sistema (geometricamente l'iperpiano tangente non incontra mai quello delle incognite) ciò si traduce in uno Jacobiano singolare e quindi non invertibile (vedi la nota sull'inversione dello Jacobiano nella pagina che descrive gli algoritmi implementati). Al verificarsi di tale occorrenza non è più possibile procedere con il calcolo ma si può provare a ripartire da zero con un'altra condizione iniziale (se il sistema non è impossibile si dovrebbe arrivare ad una soluzione); se invece lo Jacobiano si è subito rivelato non invertibile è probabile che sia necessario eliminare un'indeterminazione dal sistema di equazioni da risolvere (a meno che abbiamo scelto la condizione iniziale sul punto di stazionarietà).
Per snellire i calcoli ad ogni iterazione, penalizzando però la velocità di convergenza, si può calcolare e invertire lo Jacobiano solo ogni p passi anzichè ogni passo.
nota
Per i calcoli di loadflow si usano più spesso algoritmi derivati da quello di Newton, caratterizzati da una convergenza più lenta ma da calcoli più veloci. A tal proposito si legga la prima parte delle note generali sull'algoritmo di Stott.
Torna all' indice Torna Su