Sei sulla pagina 1di 23

Oltre il duty cycling: wake-up radio con risvegli selettivi per sistemi wireless a lunga durata

Il duty cycling non elimina l’ascolto idle, e si ottiene ad un prezzo di grandi latenze, il che è inaccettabile per molte applicazioni. X
questa ragione, la ricerca si è recentemente spostata verso la progettazione di architetture di comunicazione per WSN basate su
canali radio di wake-up, ovvero trans-ricevitori ausiliari usati per il solo scopo di svegliare i nodi vicini, e il cui consumo energetico è
considerevolmente minore di quello del canale radio principale. L’intenzione è quella di eliminare il bisogno del duty cycling, e di
conseguenza, il consumo energetico idle, mantenendo intanto a bada la latenza. La sola capacità di svegliare i vicini, tuttavia, non
fornirebbe i più importanti miglioramenti richiesti dalle nuove applicazioni critiche, siccome i nodi non interessati a comunicare
staranno svegli sprecando energia nell’overhearing e nelle contese. Le architetture wake-up vengono di conseguenza definite in
modo che permettano ai nodi di risvegliare vicini specifici per comunicare (risveglio selettivo). Questa capacità fondamentale,
tuttavia, porta avanti nuove richieste e sfide per progettare stack protocollari consapevoli del risveglio selettivo che prendano anche
in considerazione gli intervalli limitati ed i bassi tassi di dati dell’architettura del canale radio di wake-up.

Ricevitore a canale radio wake-up:


Il design prevede una grande sensitività, veloce reattività, consumo energetico molto basso, e capacità di indirizzamento selettivo. Il
ricevitore usa la modulazione on-off keyed (OOK), la più semplice forma di modulazione ASK (amplitude-shift keying) dove i dati
digitali vengono rappresentati come la presenza o assenza di un’onda portante. L’architettura proposta è fatta da 4 blocchi
principali: una rete di matching, il rilevatore envelope, il generatore di interruzioni, ed un modulo opzionale di indirizzamento (Fig1).

La rete di matching fornisce massimo trasferimento d’energia tra l’antenna ed il resto del circuito fornendo una corrispondenza
d’impedenza stabile alla src input. Quest’impedenza consiste di un filtro LC, i cui valori d’induttore e condensatore sono
dimensionati in base alla frequenza di trasmissione. Il ricevitore viene ottimizzato per operare nella frequenza di trasmissione a
868MHz. L’output della rete di matching è un segnale di radiofrequenza. Il secondo blocco è un circuito di demodulazione passiva
che permette di recuperare il contenuto informativo dal segnale modulato. Siccome il nostro design usa la modulazione OOK, il
circuito di demodulazione consiste di un rilevatore d’envelope passivo che scarta la frequenza ed il contenuto di fase del segnale di
radiofrequenza e rileva soltanto la sua ampiezza. Il meccanismo adattativo è progettato a seconda di un semplice circuito RC (R1-C4
in Fig. 1) che è connesso all’input negativo del comparatore. L’input positivo del comparatore è direttamente connesso al segnale
dal rilevatore envelope. L’offset di voltaggio del comparatore influenza la sensitività totale del canale radio wake-up: con un minore
offset di voltaggio è possibile sentire i segnali più piccoli. Tuttavia, comparatori con minore offset di voltaggio, in genere, hanno un
maggior consumo di corrente. Lo stadio successivo del circuito è il rilevatore di preambolo. X filtrare l’interferenza dal rumore o da
altre comunicazioni che possono generare risvegli indesiderati, usiamo uno specifico preambolo nel pacchetto di wake-up che può
essere rilevato da questa parte passiva del circuito. Il preambolo è un segnale modulato OOK di una lunghezza (nr di bits) specifica
che viene inviato ad un bit rate fp specifico. I segnali modulati in OOK che vengono inviati ad un data rate minore di fp vengono
filtrati dal filtro RC (R3-C5), che funziona come un filtro passa basso. Se viene ricevuto un preambolo con la frequenza specifica, il
rilevatore di preambolo segnala un interruzione wake-up al microcontrollore a bordo, che inizia poi a leggere dati dal pin connesso
all’output del comparatore (prima del diodo SD3). Il microcontrollore effettua la corrispondenza di indirizzo (address matching),
svegliando il nodo principale attraverso un pin di interruzione quando viene ricevuto un indirizzo di wake-up valido. In aggiunta, la
porta seriale abilita la riprogrammazione dinamica di indirizzo.

ALBA-R e ALBA-WUR:
ALBA-R è un protocollo cross-layer geografico x il converge-casting nelle WSN. Esso caratterizza l’integrazione di orari awake/asleep,
MAC, instradamento, load balancing, e trasmissioni back-to-back di pacchetto (ALBA) con un meccanismo x riconoscere ed
instradare attorno a buchi di connettività (Rainbow).

ALBA-WUR:
Abbiamo riprogettato ALBA-R x funzionare con le caratteristiche wake-up del ricevitore wireless. Quando un nodo x ha pacchetti da
trasmettere, esso sveglia soltanto quei vicini che soddisfano le seguenti condizioni. Per iniziare, soltanto nodi con il colore
appropriato vengono svegliati. X es., se x è blu, l’indirizzo di wake-up dovrebbe essere scelto in modo che soltanto i nodi che sono o
blu o rossi si svegliano. Entro questo insieme di nodi, il nodo x vorrà risvegliare quei nodi y che possono ricevere il nr di pacchetti NB
che x deve trasmettere, e con i loro My sopra una data soglia. X fare ciò, x diffonde in broadcast un pacchetto di wake-up costruito
dai seguenti campi: il suo colore, il nr di pacchetti NB ed il QPI target correntemente cercato.
I nodi che servono come relay indicano la loro disponibilità assegnando a loro stessi un pool di indirizzi WRx (Wireless Receiver),
dinamicamente aggiornati in base al loro stato, ognuno dei quali esprime una combinazione dei 3 valori: colore mittente,

1
dimensione burst ed il QPI target che il nodo può soddisfare. X es., secondo Rainbow, un nodo il cui colore è blu può servire da relay
solo x nodi di colore blu o rosso. Dunque, il pool dei suoi indirizzi WRx conterrà soltanto sequenze con Color = blu oppure Color =
rosso. Gli ultimi 2 campi dell’indirizzo WRx vengono impostati a seconda dello stato di occupazione della coda del nodo e della sua
storia di inoltro. In particolare, x ogni possibile dimensione del burst che il nodo può accettare a seconda dello stato della sua coda,
esso calcola il valore QPI corrispondente e lo memorizza nell’ultimo campo dell’indirizzo. Quando viene ricevuto un pacchetto wake-
up, gli indirizzi nel pool vengono controllati per una corrispondenza. Se il pacchetto matcha uno degli indirizzi, il nodo si risveglia.
Il meccanismo di indirizzamento di ALBA-WUR viene illustrato dal seguente esempio. Consideriamo un nodo rosso y che ha
correntemente un pacchetto memorizzato nella sua coda, cioè Qy = 1, e t.c. la sua media mobile pesata dei tentativi recenti di
max
trasmissione è 2, cioè My = 2. Se il max nr di pacchetti che possono essere inviati in un burst è NB = 2, per servire da relay, il nodo
y avrà i seguenti 4 indirizzi wake-up nel suo pool, ognuno corrispondente ad una combinazione di colore (rosso o blu), dimensione
del burst ed il QPI target che può soddisfare.
Colore = rosso Dimensione burst = 1 QPI = 1
Colore = rosso Dimensione burst = 2 QPI = 2
Colore = blu Dimensione burst = 1 QPI = 1
Colore = blu Dimensione burst = 2 QPI = 2
I valori QPI vengono calcolati a seconda di ALBA-R, ovvero (Qy+NB)/My.
Un nodo x il cui colore è blu, con NB = 1 pacchetti di dati da trasmettere e che sta cercando un relay con il miglior QPI diffonderà in
broadcast il seguente pacchetto wake-up.
Colore = blu Dimensione burst = 1 QPI target = 1
I vicini del nodo x che ricevono questo pacchetto risvegliano il loro microcontrollore principale e canale radio soltanto se il pacchetto
wake-up matcha uno degli indirizzi nel loro pool. X es., nodo y si risveglierebbe, siccome il terzo indirizzo nel suo pool matcha il
pacchetto wake-up inviato da x. Dopo la fase di risveglio selettivo, nodo x attende che i nodi vicini attivino il loro canale radio ed
invia un pacchetto RTS usando il canale radio principale. Il relay del hop successivo viene allora scelto secondo le operazioni di ALBA-
R. Se non viene trovato alcun vicino che possa soddisfare le richieste del nodo x, il processo di risveglio viene ripetuto con x che
abbassa le sue esigenze, cioè ricercando nodi con stato differente (x es., un minore QPI e/o dimensione del burst).
Vale la pena notare come le complesse politiche di selezione del relay che rendono ALBA-R uno dei protocolli ad alte prestazioni x
l’instradamento WSN sono naturalmente espresse dall’indirizzamento a semantica dinamica di ALBA-WUR, implementate in
maniera molto semplice attraverso la nostra tecnologia WRx. Il design del protocollo non è più guidato dal bisogno di bilanciare
consumo energetico e tempo di vita x latenza, siccome l’indirizzamento semantico efficientemente implementato permette ai
mittenti di selezionare velocemente soltanto quelli tra i loro vicini che possono promuovere al meglio il processo di instradamento.

Conclusioni:
È stato mostrato come la combinazione di un’architettura wake-up a consumo ultra-basso e di un protocollo cross-layer di
instradamento progettato x essa siano elementi chiave x ottenere le prestazioni necessarie x soddisfare il tempo di vita, l’affidabilità
e le richieste di latenza delle applicazioni più esigenti x sistemi di wireless sensing. Il ricevitore wake-up (WRx) presentato e qui
testato mostra alta sensitività e consumo energetico molto basso. La valutazione sperimentale del nostro WRx mostra un intervallo
di risveglio fino a 45 metri, il che soddisfa le richieste della maggior parte degli scenari WSN applicativi. In aggiunta, il nostro WRx
permette un risveglio selettivo, siccome i nodi possono essere risvegliati a seconda del loro stato corrente, il che impedisce
l’attivazione di nodi che non sono necessari per scopi comunicativi. Attraverso un’estesa campagna di simulazioni si è mostrato che
ALBA-WUR, il nuovo protocollo d’instradamento progettato x sfruttare le caratteristiche del WRx, ottiene notevoli risparmi
energetici (fino a 5 ordini di magnitudo), bassa latenza, e tempi di vita che sono di decenni più lunghi di quelli nelle WSN con il duty
cycling.

Un nuovo ricevitore wake-up con capacità d’indirizzamento per nodi sensori wireless
Le tecniche emergenti di radio triggering a bassa energia x i motes wireless sono un approccio promettente x prolungare il tempo di
vita delle WSN. Permettendo ai nodi di attivare il loro trans-ricevitore principale soltanto quando è necessario trasmettere o
ricevere dati, le soluzioni abilitate con wake-up eliminano virtualmente il bisogno dell’ascolto idle, riducendo cosi drasticamente il
consumo energetico delle comunicazioni.
L’utilizzo di un ricevitore wake-up permette la comunicazione on-demand, permettendo ai mote di un rete di sensori di mantenere il
proprio trans-ricevitore spento a meno che non sia necessaria la trasmissione o ricezione di dati. Quest’approccio elimina
virtualmente il bisogno dell’ascolto idle, che è una src di consumo energetico critica nelle WSN tradizionali. Inoltre, se il canale radio
wake-up supporta indirizzamento selettivo di nodi, allora anche lo spreco d’energia dovuto all’overhearing può essere
significativamente ridotto.
Qui viene descritto il design ed il prototipo di una nuova architettura a ricevitore wake-up (WuR) operante nella banda ISM 2.4GHz.
Il concetto proposto, basato su un innovativo filtro passa-banda con capacità di alta selettività, permette l’indirizzamento selettivo
di nodi combinando entrambi gli spazi di indirizzamento nel dominio di frequenza e di tempo. Più indirizzi di wake-up possono
essere assegnati dinamicamente a nodi. Per di più, siccome x WuR viene usata la stessa banda ISM impiegata nelle comunicazioni
WSN, non è necessario alcun hardware aggiuntivo x trasmettere indirizzi di wake-up. Il canale radio di wake-up sviluppato permette
di ottimizzare il bilanciamento della latenza vs prestazioni di consumo energetico rispetto a stack di comunicazione WSN a bassa
energia, che ottiene risparmio energetico richiedendo ai nodi di seguire dei bassi duty cycles. La caratteristica aggiuntiva del conceto
sviluppato, cioè la capacità di assegnare molteplici indirizzi di wake-up a nodi e di cambiarli dinamicamente, porta una caratteristica
aggiuntiva: la possibilità di sfruttare assegnamento dinamico dell’indirizzo x ottimizzare la prestazioni del sistema. Viene mostrato
come trarre vantaggio da questa funzionalità proponendo un nuovo stack di comunicazione abilitato x wake-up che fornisce sia la
2
disseminazione d’interesse e primitive di convergecasting. Questo stack di comunicazione include, inoltre, il supporto x capacità di
raccolta d’energia incorporate nei nodi sensori moderni, che permette di usare l’energia disponibile dall’ambiente (x es., da luce
solare, vento, movimenti, ecc.) come supplemento o persino come sostituzione completa delle tradizionali batterie.
Varie soluzioni tecnologiche sono state prese in considerazione per progettare WSN basate su canali radio wake-up. Un aspetto
critico è il miglior bilanciamento tra sensitività del ricevitore (e di conseguenza range di wake-up) e consumo energetico. I ricevitori
wake-up passivi sono un approccio molto attraente, xk operano facendo uso solo dell’energia disponibile nello spettro radio, senza
richiedere alcun supplemento energetico esterno. Tuttavia, in genere essi hanno sensitività limitata, quindi il range di wake-up che
possono raggiungere è molto più corto del tipico range di comunicazione di un nodo sensore.
Alcuni degli approcci esistenti sono basati su range, a significare che ogni nodo entro il range operativo viene risvegliato ogni volta
che un segnale di innesco radio viene trasmesso, mentre altri supportano anche risvegli basati su ID.
L’approccio del design proposto sfrutta il rilevamento incoerente. Siccome il ricevitore non è sincronizzato in fase con il
trasmittente, non è richiesto l’uso di un loop - ad alto consumo energetico - bloccato in fase, riducendo cosi il consumo energetico.
Siccome prendiamo come riferimento lo standard IEEE 802.15.4, la radiofrequenza complessiva deve avvicinarsi ad una sensitività di
-85dBm. Tale sensitività deve essere realizzata con un rapporto segnale-rumore (SNR) maggiore di 12dB. È stato specificato anche
un range dinamico istantaneo maggiore di 30dB, considerando uno scarto spurio minimo di 42dB. Altri requisiti includono supporto
x la riprogrammazione dinamico dell’indirizzo, e x assegnare molteplici indirizzi allo stesso ricevitore. Nel nostro design di WuR, un
indirizzo di nodo consiste di una sequenza di onde continue o impulsi a banda stretta appartenenti ad alcuni dei 16 canali dello
standard 802.15.4 operante nella banda ISM a 2.4GHz. I segnali wake-up vengono modulati con OOK nella stessa banda
selezionando un certo nr c di portanti. Figura 1 mostra un esempio di una sequenza wake-up trasmessa su 4 canali 802.15.4.

La nuova architettura proposta x il ricevitore wake-up è mostrata in Fig. 2.

La porzione critica del ricevitore consiste dalla catena dell’amplificatore di basso rumore (LNA) e dalla banca filtro. Entrambi devono
essere dei blocchi ad energia molto bassa, ma il LNA deve garantire guadagno e sensitività, mentre i filtri devono mostrare alta
selettività x scartare rumore ed interferenza. La banca dei filtri passa-banda e dei rilevatori di picco permettono il rilevamento di
forme d’onda. L’output del ricevitore è un insieme di c voltaggi DC istantanei proporzionali al segnale in arrivo a frequenza fi, i = 1 …
c. Poi, una piastra digitale aggiuntiva fornisce conversione da analogico a digitale dei c voltaggi DC, decodifica dell’indirizzo ricevuto
ed innesco di interruzioni wake-up verso il nodo.
La scelta del parametro c è un importante requisito per il design di WuR. Valori crescenti di c risultano in spazio di indirizzamento
maggiore senza aumentare il tempo di wake-up, ma richiedono anche una più alta selettività di ogni filtro. La banca dei filtri è quindi
un componente critico del complessivo ricevitore wake-up.

Disseminazione d’interesse:
Primitiva che fa riferimento alla trasmissione di comandi dal sink ai nodi sensore, che è di solito implementata x mezzo di
broadcasting a bassa potenza o di primitive di multicasting. Ci concentriamo su broadcasting, siccome lo stesso approccio può
essere seguito x abilitare la comunicazione su qualunque overlay creato da protocolli di multicasting esistenti.
Nella letteratura, diversi schemi sono stati proposti x implementare il broadcasting. Il flooding è l’implementazione base del
broadcasting, che tuttavia soffre di tempesta broadcast e da collisioni nel caso viene implementata una versione affidabile (ACK) del
flooding. Nel caso i nodi non seguano un duty cycle, ogni nodo trasmette soltanto una coppia del pacchetto broadcast. Tuttavia, in
questo caso il consumo energetico è alto ed i meccanismi x evitare la congestione nel caso di reti dense sono particolarmente critici.
Quando i nodi seguono un basso duty cycle, o tutti i vicini vengono sincronizzati su ON volte o ogni nodo deve trasmettere il
pacchetto broadcast più volte x poter raggiungere tutti i vicini, il che incrementa significativamente il consumo energetico.
Un primo contributo è quindi un nuovo protocollo di flooding, chiamato FLOOD-WUP, che risolve questi problemi ottenendo alta
affidabilità e miglior latenza vs prestazioni di consumo energetico. In FLOOD-WUP ai nodi vengono assegnati indirizzi di broadcast
condivisi. Supponiamo che ad ogni nodo vengono assegnati 2 indirizzi broadcast wake-up, chiamati wa e wb. questo concetto può
essere generalizzato a N indirizzi, con N inviato come il max nr di diversi pacchetti broadcast che possono essere generati nella rete
durante la disseminazione di interesse. Il seguente pacchetto broadcast verrà inviato usando la sequenza wake-up wb, e cosi via. Ad
3
ogni pacchetto broadcast viene associato un nr di sequenza univoco. I nodi nella rete sono inizialmente in sleep, cioè con i loro MCU
e canali radio disabilitati, con il canale radio wake-up attivo con indirizzo impostato a wa. Quando un nodo riceve un segnale wake-
up attivo con sequenza wa, si risveglia ed imposta il suo canale radio in modalità di ricezione x ricevere il pacchetto broadcast B. Alla
ricezione di B, ogni nodo cambia il suo indirizzo broadcast di wake-up da wa a wb. Ciò significa che i nodi che hanno già ricevuto il
pacchetto broadcast non si risveglieranno quando vengono trasmessi pacchetti duplicati, siccome la sequenza wa che precede ogni
pacchetto duplicato non è più attiva x quei nodi. Dopo aver ricevuto il pacchetto broadcast B, un nodo attende un tempo casuale e
ritrasmette il pacchetto broadcast precedendolo con la stessa sequenza wake-up wa.
X scopi di affidabilità, ogni nodo può ritrasmettere lo stesso pacchetto più volte (nbroad volte) x compensare le collisioni (mantenute
basse dal jitter), il PER nella trasmissione broadcast del pacchetto, e possibili sequenze wake-up false negative. Ognuno di questi
pacchetti viene ritrasmesso usando la stessa sequenza wake-up con cui è stato ricevuto. Tuttavia, potrebbe capitare che un nodo, a
causa di fallimenti o di sequenze wake-up false negative che non sono risolti da molteplici trasmissioni di pacchetto, perda la
connessione all’appropriata sequenza di trasmissioni broadcast del segnale wake-up (cioè che si aspetta che venga trasmessa wa
sulla rete quando wb viene trasmessa , o viceversa). In questo caso, un nodo rileva che ha mancato un pacchetto broadcast in base
al nr di sequenza dell’ultimo pacchetto ricevuto, e richiede che il pacchetto perso venga ritrasmesso inviando ai suoi vicini un msg di
controllo dedicato.
In FLOOD-WUP, i nodi consumano energia soltanto quando ricevono o trasmettono pacchetti. Il consumo energetico dovuto alla
ricezione è limitato al ricevimento della prima copia del pacchetto broadcast, siccome i nodi non si risvegliano quando vengono
trasmessi pacchetti duplicati. Il consumo energetico x trasmettere è limitato alla trasmissione del pacchetto broadcast e della
sequenza wake-up x una oppure, se le ritrasmissioni sono concepite x aggiungere robustezza, nbroad volte.

Convergecasting:
In questa sezione viene proposto un protocollo di converge casting basato su nr di hop, chiamato GREEN-WUP, che è a conoscenza
della raccolta d’energia e del canale radio wake-up. In GREEN-WUP l’inoltro di pacchetto è realizzato opportunisticamente
selezionando il relay del hop successivo tra tutto l’insieme dei vicini, anziché solo tra quelli svegli. A questo scopo, supponiamo che i
nodi attivano un sottoinsieme di possibili indirizzi wake-up unicast a seconda del loro stato. In altre parole, la rete si è accordata su
sequenze wake-up che hanno un significato semantico. In particolare, i nodi attivano una data sequenza wake-up wi nel caso siano
nel corrispondente stato i. Un tale stato esprime quanto è buono un nodo perché faccia da relay, e può essere calcolato in base a
fattori come la sua immissione corrente ed attesa d’energia dalla raccolta, come la sua energia residua, il suo nr di hop, la sua
dimensione della coda, la qualità del suo canale, e cosi via.
Nel caso specifico di GREEN-WUP, viene proposto che ogni nodo sia associato con un indirizzo wake-up w composto da 2 sequenze,
ovvero w = wlwe. La prima sottosequenza, wl, è settata in base al nr di hop del nodo, ottenuto dall’info di nr di hop piggybackata in
pacchetti broadcast durante la fase iniziale della disseminazione d’interesse. La seconda sottosequenza, we, è impostata da ogni
nodo in base alla sua energia residua. I livelli d’energia vengono discretizzati in un dato nr k di classi. Calcolando la sua energia
frazionaria residua (normalizzata rispetto ad una dimensione max di batteria), ogni nodo determina l’idx i di classe al quale
appartiene, ed imposta la sua sottosequenza we del suo indirizzo di conseguenza. In GREEN-WUP, ad idx più alti di classe energetica
corrispondono frazioni normalizzate più alte di energia residua. La classe con idx k viene usata x indicare i nodi che, dovuto al loro
stato energetico, sono relay preferiti. In particolare, i nodi alimentati dall’ambiente possono sperimentare periodi di picco
energetico, durante i quali essi raccolgono energia ad un tasso che eccede il loro corrente consumo energetico. Dal momento che
questo eccesso verrebbe sprecato se non utilizzato immediatamente, un nodo che sperimenta un picco energetico imposta we = k x
riflettere il fatto che esso è idealmente capace di effettuare inoltro a nessun costo. I nodi che hanno il loro livello di batteria
maggiore di una data soglia, anch’essi vengono inclusi in questa classe. La sequenza w viene ricalcolata periodicamente da ogni
nodo x riflettere i cambiamenti nel suo nr di hop e stato energetico, risultando cosi in modifiche dell’indirizzo wake-up attivato
quando lo stato locale del nodo cambia.
Ogni volta che un nodo N con nr di hop h ha un pacchetto, o auto-generato o precedentemente ricevuto, da trasmettere, esso invia
una sequenza w di indirizzamento wake-up, tra i nodi con nr di hop h-1, a quelli con we = k. la sequenza w viene seguita da un
pacchetto corto che include un indirizzo wake-up temporaneo wN, x cui relay potenziali possono usare x contattare il mittente. Il
nodo N si mette allora a dormire. I nodi riceventi che si risvegliano e che correttamente ricevono il pacchetto, scelgono un jitter
casuale, e rispondono poi con un pacchetto CTS. Il CTS, preceduto dalla sequenza wN di wake-up, include la sequenza unicast di
wake-up che il nodo N può usare x contattare il potenziale relay rispondente. Dopo aver trasmesso il pacchetto CTS, i nodi relay
potenziali si mettono di nuovo a dormire. Il nodo N sceglie il miglior relay ed invia la sequenza wake-up unicast x risvegliarlo, seguita
dall’effettiva trasmissione del pacchetto di dati. Se nessun nodo risponde alla sequenza wake-up iniziale, siccome non ci sono vicini
appartenenti alla classe indirizzata, il nodo mittente itera la procedura, indirizzando nodi con nr di hop h-1 e stato energetico k-1.
Poi, se non viene ricevuto alcun pacchetto CTS, il nodo N tenta di indirizzare nodi con nr di hop h-1 e stato energetico k-2, e cosi via,
finché non viene trovato un relay. Una volta scelto un relay, il mittente trasmette in un burst i suoi pacchetti bufferizzati,
effettuando trasmissioni back-to-back in cui i pacchetti di dati vengono riscontrati individualmente.

Traendo vantaggio dell’architettura proposta, 2 nuovi protocolli sono stati poposti, chiamati FLOOD-WUP e GREEN-WUP, che
sfruttano risvegli selettivi ed assegnamento dinamico di indirizzo x ottimizzare le prestazioni del sistema.

Assegnamento sensor-mission
Coinvolge il corrispondere le risorse di sensing di una WSN a task appropriate (missioni), che potrebbero arrivare dinamicamente
nella rete. Sebbene siano state proposte soluzioni a questo problema x WSN con nodi operanti a batterie, nessuna attenzione è
stata data alle reti i cui nodi hanno capacità di raccolta energetica e che in parte sono alimentati da sorgenti ambientali

4
incontrollabili, che impongono un modello energetico abbastanza differente. In questo caso indirizziamo l’attenzione a questo
problema fornendo un modello analitico ed un’euristica distribuita, chiamata EN-MASSE, specificamente su misura x WSN basate su
missioni a raccolta energetica. X valutare le prestazioni della soluzione proposta abbiamo interfacciato nodi TelosB con celle solari
ed effettuato esperimenti estensivi x derivare modelli e tracce di acquisizione di energia solare. Usiamo tali tracce del mondo reale
nelle simulazioni. Il profitto guadagnato da EN-MASSE è vicino all’ottimo. Il monitoraggio ambientale e del campo sono applicazioni
comuni x le WSN. In uno scenario tipico, i nodi di una WSN vengono piazzati in una regione x collezionare misurazioni su qualche
fenomeno. Il nr di nodi attivi nella rete (cioè quelli che eseguono correntemente le loro task di sensing e di comunicazione)
determina l’accuratezza dei dati collezionati ed il nr di task che possono essere completate con successo. C’è un bilanciamento tra
accuratezza, il nr di task eseguite e la longevità della rete.
Molte applicazioni possono richiedere alla rete di ottenere missioni molteplici, simultanee. X missione, ci riferiamo ad una task di
sensing il cui obiettivo principale è la collezione di info, alla quale uno o più sensori possono contribuire. In genere, i nodi sensori,
insieme ad altre src di info, possono far parte di una collezione di intelligence, sorveglianza e risorse di riconoscimento che
dovrebbero essere allocate x supportare gli obiettivi di una missione. Una missione viene eseguita solo se ha assegnato un insieme
di nodi sufficientemente buono, a seconda delle sue esigenze e della qualità di contributo che i nodi assegnati possono fornire. Lo
scopo di un algoritmo di assegnamento di un sensore ad una missione (sensor-to-mission) è di assegnare nodi disponibili ad
appropriate missioni, massimizzando il profitto ricevuto dalla rete x l’esecuzione della missione.
Diversi vincoli sulle decisioni di assegnamento portano a versioni differenti di questo problema, a seconda se le missioni arrivano nel
tempo (caso dinamico), o se sono tutte disponibili quando le operazioni della rete iniziano (caso statico). Altre varianti si
preoccupano se la rete abbia un predefinito tempo di vita operativo previsto oppure se deve durare il più a lungo possibile. Alcune
precedenti soluzioni proposte tengono in considerazione questo problema energetico, nel senso che tengono conto l’energia
residua del nodo x decidere gli assegnamenti di missione. Nel fare ciò, tuttavia, essi prendono la specifica supposizione che l’energia
stia decrementando in maniera monotona, come succede di solito con una batteria, e di conseguenza l’energia residua è l’unico
criterio x assegnare missioni.
Più recentemente, i nodi sensore vengono sviluppati in modo che, insieme a batterie tradizionali, montino dispositivi di raccolta
energetica che opportunisticamente assorbono energia dall’ambiente.
A differenza dei motes tradizionali, i nodi con capacità di raccolta energetica si alternano tra periodi in cui l’energia deve essere
usata in maniera attenta, e situazioni in cui può esserci un eccesso di energia disponibile, che verrebbe sprecata se non utilizzata a
breve termine. X questi nodi, sono necessari nuovi paradigmi x gli assegnamenti di missioni, che prendano in considerazione il fatto
che i nodi correntemente con poca o nessuna energia rimasta possano avere a sufficienza nel futuro x eseguire nuove missioni.
Queste soluzioni dovrebbe anche considerare che la disponibilità dell’energia è dipendente dal tempo, e che lo storage energetico è
limitato in dimensione e tempo (dovuto all’auto-scaricamento). Quindi l’utilizzo energetico dovrebbe essere pianificato
attentamente x minimizzare lo spreco.
In questo caso siamo preoccupati con il caso pratico delle WSN che eseguono applicazioni richiedenti alla rete di essere operazionale
x una data quantità di tempo, servendo missioni che arrivano dinamicamente nella rete (assegnamento dinamico con un orizzonte
temporale). Consideriamo nodi sensore con capacità di raccolta energetica. Ci riferiamo alla data quantità di tempo della rete che si
aspetta essere operativa, cioè accettando e completando missioni, come al tempo di via target della rete.

Ogni nodo nella rete viene equipaggiato con un sottosistema di raccolta energetica, che include uno o più panelli fotovoltaici ed un
supercondensatore che agisce come un buffer di energia x il nodo. Modelliamo varie caratteristiche reali di un tipico
Max
supercondensatore, includendo il fatto che abbia una dimensione finita C , che soffre da perdita ed auto-scaricamento, e che
C C
abbia un’efficienza di ricaricamento ηc < 1 e scaricamento ηd < 1. I nodi vengono equipaggiati anche con una batteria primaria non
max
ricaricabile di capacità B , il cui scopo è di garantire un tempo di vita minimo in caso nessuna o poca energia possa essere
B
assorbita dall’ambiente. Simile al supercondensatore, anche la batteria ha un’efficienza di scaricamento ηd < 1.
Il sistema ibrido di raccoglitore solare, supercondensatore, e batteria primaria fornisce l’energia x alimentare il nodo e x supportare
l’attività di sensing richiesta x l’esecuzione della missione.
Il nostro modello permette di definite:
(1) una misura specifica dell’applicazione di quanto utili i dati generati da un particolare nodo siano x effettuare una data task
(utilità);
(2) il livello max di utilità che una task potrebbe richiedere dalla rete di sensori (esigenza della missione);
(3) la priorità ed importanza di ogni task (profitto della missione);
La funzione utilità indica la qualità dell’info che un nodo può fornire ad una missione, dando una stima di quanto bene si
adatterebbe allo scopo della missione. Tale concetto può essere impiegato x definite vari requisiti specifici dell’applicazione di
scenari pratici. X es., un microfono potrebbe essere più utile all’applicazione se è più vicino ad un’area di interesse. Dunque, l’utilità
che può fornire può essere definita come una funzione della sua distanza dall’area osservata. In modo simile, un nodo camera dato
potrebbe essere completamente inutile ad un’applicazione di sorveglianza se il suo sensore video non è orientato in una certa
direzione. In questo caso, l’utilità del nodo sarebbe zero, a meno che la sua orientazione corrisponda al requisito dell’applicazione.
L’esigenza di una missione indica la quantità di capacità delle risorse di sensing che richiede. Intuitivamente, rappresenta la
“difficoltà” di una missione, siccome task con esigenze più alte richiedono quantità maggiori di risorse x essere eseguite. L’esigenza
può essere usata x indicare semplicemente quanti sensori dovrebbero essere assegnati ad una particolare missione, ma valuta
anche la totale qualità di contributo che i nodi assegnati ad una task possono fornire. X es., una missione x catturare una
rappresentazione 3D di un particolare target fallirà soltanto se soltanto una camera gli viene assegnata. Inoltre, l’accuratezza
dell’immagine risultante dipenderà non solo da quanti nodi sono assegnati alla missione, ma anche dalle loro posizioni ed
orientamenti. In altri scenari, invece, si potrebbe voler avere più nodi possibili x monitorare lo stesso target x incrementare la

5
ridondanza delle misurazioni e, in questo modo, la robustezza della rete ad eventi imprevedibili. In genere, l’interpretazione
dell’esigenza dipende strettamente dalla specifica metrica usata x calcolare valori di utilità.
Infine, il profitto di una task è una quantità specifica dell’applicazione che definisce il suo livello di importanza. Questa quantità
potrebbe essere usata x discriminare tra routine, missione a basso profitto, e missioni critiche ad alto profitto. X es., le missioni ad
alto profitto possono essere generate quando valori misurati sono sopra una soglia di allarme, oppure all’occorrenza di eventi
specifici. Se la rete è condivisa tra molteplici utenti, della priorità potrebbe anche essere assegnata a missioni generate da utenti in
base al loro ruolo.
Vale la pena notare che il profitto ed esigenza di una missione non sono necessariamente correlati. Una missione di monitoraggio a
basso profitto potrebbe essere costosa in termini di richieste di sensing. Allo stesso tempo, una missione urgente che richiede info
su un’area limitata in cui un allarme è stata innescata potrebbe essere a bassa esigenza, ma ,essendo critica x l’applicazione, avere
un profitto molto alto.

Formuliamo il problema di assegnamento di missione x WSN con capacità di raccolta energetica come segue. La rete consiste di un
insieme di nodi sensore dotati di raccolta energetica N1, …, Nn, già schierati in un campo. Sia M1, …, Mm l’insieme delle missioni che
viene chiesto alla rete di eseguire. Una missione Mj è una tupla (pj, dj, gj, tsj, tej) dove:
- pj è il profitto della missione x unità di tempo, indicando sia l’importanza che la ricompensa ottenuta dalla rete x la sua
realizzazione;
- dj è l’esigenza della missione, indicando la quantità di risorse di sensing che necessita;
- gj è la posizione geografica della missione nel campo;
- tsj è il tempo al quale la missione arriva nella rete;
- tej è il tempo al quale la missione termina.
Le missioni di solito durano x più unità di tempo, cioè tej > tsj. Durante l’esecuzione della missione, pj, dj, gj rimangono costanti nel
tempo.
Una missione viene eseguita soltanto se gli viene assegnato un insieme di nodi sufficientemente buono, a seconda della sua
esigenza e dalla qualità di contributo che i sensori assegnati possono fornire. Definiamo eij come l’utilità ricevuta dalla missione Mj
se nodo gli è assegnato il nodo Ni. Quest’utilità è zero se il nodo non può contribuire alla missione, capita quando x es il nodo non è
abbastanza vicino alla posizione della missione oppure se l’orientamento del sensore direzionale non è utile alla missione.
Mentre le missione possono essere eseguite da molteplici sensori in simultanea, supponiamo che un nodo, essendo equipaggiato
con sensori direzionali, possa essere assegnato ad al più una missione alla volta.
Sia ujt a denotare l’utilità totale ricevuta da una missione Mj a tempo t. Esprimiamo l’utilità totale ujt come la somma delle utilità
fornite dai sensori assegnati alla missione Mj a tempo t. Cioè ujt = ∑ xijteij, dove xijt = 1 sse nodo i sta servendo la missione j a tempo t.
L’utilità totale che una missione Mj richiede è espressa dalla sua esigenza dj. Se l’utilità totale ujt ricevuta da una missione è minore
della sua esigenza richiesta dj, diciamo che la missione Mj è parzialmente soddisfatta (a tempo t) ed indichiamo il suo livello di
soddisfazione con yjt = ujt/dj (nell’intervallo *0,1+).
I profitti vengono ricevuti dalla rete x la realizzazione della missione, in base al livello di soddisfazione della missione. In questa
formulazione del problema di assegnamento missione, i profitti possono essere ricompensati in frazioni, ma solo se una minima
soglia di soddisfacimento Tsat viene compiuta. Usiamo una singola soglia di soddisfacimento x tutte le missioni, ma la formulazione
sarebbe essenzialmente la stessa se la soglia varierebbe x missione.
Il profitto ottenuto x eseguire la missione Mj a tempo t dipende dal livello di soddisfacimento yjt della missione a tempo t, come
mostrato in Fig. 1.

Il profitto ottenuto dalla rete x l’esecuzione della missione è: zero se non viene ottenuto il minimo livello di soglia del
soddisfacimento Tsat; una frazione del profitto della missione se la soglia di soddisfacimento viene ottenuta, ma la missione non è
completamente soddisfatta; uguale al profitto della missione, pj, se la missione è completamente soddisfatta.
Il profitto totale ricevuto x aver eseguito la missione Mj è la somma dei profitti guadagnati nell’intero tempo di vita della missione,
cioè .
Idealmente, cerchiamo un assegnamento di sensori a missioni che soddisfi sempre ogni esigenza della missione almeno alla soglia di
soddisfacimento data. Tuttavia, soddisfare tutte le missioni potrebbe non essere praticabile. Quindi, il nostro obiettivo è di
massimizzare il profitto totale ottenuto dalla rete su un tempo di vita target dato.

Formulazione MIP:
La cui soluzione fornisce un limite superiore sul profitto massimo ottenibile su un dato tempo di vita target. Precedenti lavori hanno
proposto, x es., considerando nodi operanti a batterie che perdono energia in maniera monotona. Quando i nodi possono
raccogliere energia, tuttavia, l’energia disponibile ad ogni nodo fluttua nel tempo. questa caratteristica aggiunge complessità
significativa al problema MIP, xk è necessario aggiornare il livello energetico dei nodi con frequenza più alta x rappresentare
accuratamente l’energia correntemente disponibile. Il modello dovrebbe anche catturare le non idealità del buffer d’energia come

6
la limitata capacità ed efficienza di ricaricamento/scaricamento, x evitare di sovrastimare grossolanamente l’energia disponibile ai
nodi.
Una possibile soluzione a questo problema è di dividere il tempo in epoche discrete di tempo di piccola dimensione e di aggiornare
periodicamente il livello d’energia dei nodi. Dal momento che l’energia ambientale varia molto nel tempo, tali aggiornamenti
dovrebbero essere eseguiti entro secondi o minuti, con un bilanciamento tra una rappresentazione accurata delle variazioni
d’energia ed il modello di scalabilità. Tuttavia, tale approccio si è scoperto essere difficile da scalare, specialmente quando si
considerano esempi di vita reale con centinaia di nodi e tempi di vita target di settimane o mesi.
In questo lavoro proponiamo un approccio più scalabile x formalizzare l’assegnamento sensor-mission nelle WSN a raccolta
energetica. L’idea è di dividere il tempo in epoche di tempo discreto di dimensione relativamente grande, e di calcolare offline le
variazioni nel livello d’energia dei nodi entro ogni tali epoche. Più specificatamente, definiamo l’insieme di epoche temporali in cui il
c
livello d’energia del nodo Ni è aggiornato, τ i (dove c sta x “check”), come l’unione di tutti i tempi in cui una missione inizia o finisce
entro il suo intervallo di sensing. In questo modo, quando arriva una nuova missione e si deve prendere una decisione se assegnare
o no ad essa un nodo, ci assicuriamo che il livello d’energia del nodo sia aggiornato. In maniera simile, alla fine di una missione il
livello energetico di ogni nodo che gli è stato assegnato viene aggiornato, considerando l’energia spesa x eseguire la missione. Figura
c
3 mostra un esempio di τ i: le missioni Mi, Mj arrivano entro il range di sensing del nodo Ni in tempi diversi. Il livello d’energia di Ni è
aggiornato sia ai tempi d’inizio che di fine.

Le missioni Mi e Mj compaiono in tempi diversi entro l’intervallo di sensing del nodo Nv. Nv può iniziare ad eseguire la missione Mi a
tempo tsi. Esso può iniziare ad eseguire le missioni Mj o a tempo tsj o tei. Di conseguenza, τv = {tsi, tsj, tei-. Il livello d’energia del nodo
c
Nv viene aggiornato prima di ogni tempo di inizio e fine di missione; τv = {tsi, tsj, tei, tej}.

Le variazioni nel livello d’energia dei nodi non vengono calcolati esplicitamente nel modello; invece, vengono pre-calcolati offline
attraverso simulazioni che tengono conto sia delle fluttuazioni nella disponibilità d’energia nell’ambiente sia nei comportamenti non
ideali dello storage energetico. Questi pre-calcoli sono necessari xk l’energia disponibile al nodo fluttua nel tempo, a seconda della
variabilità della src d’energia. X questa ragione, considerando un semplice indicatore, come la potenza media, dell’energia raccolta
durante ogni epoca temporale non è sufficiente x rappresentare correttamente la reale disponibilità energetica. X es., Figura 2
mostra l’energia raccolta da nodo Nv durante una particolare epoca temporale t tra le 13:30 e 14:40. Durante questo periodo,
l’energia media raccolta è cca 14.20 mW, mentre l’energia consumata del nodo è settata a 12 mW, supponendo che Ni stia
eseguendo qualche missione Mj. Nonostante il fatto che l’energia media raccolta sia più alta dell’energia consumata da Ni, all’inizio
dell’epoca temporale t l’energia raccolta non è sufficiente ad alimentare direttamente il nodo, richiedendo quindi che venga fornita
dell’energia da un buffer esterno. X modellare correttamente tali situazioni, il modello MIP dovrebbe assegnare il nodo Ni alla
missione Mj solo se Ni ha sufficiente energia disponibile nella sua batteria e supercondensatore all’inizio dell’epoca temporale t.
Le pre-computazioni permettono di identificare tali punti critici in termini di disponibilità energetica e x fare decisioni corrette x
l’assegnamento delle missioni, anche considerando grandi epoche temporali durante le quali l’energia raccolta può varaire
significativamente.
In confronto agli aggiornamenti a granularità fine del livello d’energia del nodo, la nostra soluzione fornisce una riduzione
sostanziale del nr di epoche temporali considerate nel modello, migliorando in questo modo significativamente il problema di
scalabilità MIP.

EN-MASSE:
In questa sezione introduciamo un’euristica decentralizzata x l’assegnamento di sensore a missione nelle WSN a raccolta d’energia,
chiamata EN-MASSE(Energy harvesting-aware sensor-Mission ASSignmEnt algorithm).
Ogni missione arriva nella rete ad una specifica posizione geografica gj. In EN-MASSE il nodo sensore più vicino a gj viene selezionato
come il mission leader e coordina l’assegnamento di nodi a missioni. I mission leader possono essere selezionati o dal sin kina un
fascino centralizzato oppure usando tecniche di instradamento geografico. Ogni volta che una nuova missione arriva nella rete, il
leader notifica info di missione, includendo la posizione della missione, profitto, esigenza, e durata ai suoi vicini. Quando un nodo
vicino sente tale msg di notifica, prende una decisione se fare un’offerta x la missione e diventare eleggibile x la selezione dal leader
o di ignorare la notifica. Se il nodo è già assegnato ad una missione, ignora il msg di notifica. Le decisioni di fare un’offerta vengono
prese i modo autonomo da ogni nodo nel vicinato, in base allo schema bidding che usano. I nodi che si offrono comunicano la loro
disponibilità al mission leader, il quale seleziona in modo greedy quale dei nodi sensore disponibili assegnare alla missione, in base
al loro contributo offerto, finché o la missione non è completamente soddisfatta o tutti i nodi che si sono offerti non sono stati
assegnati alla missione.

Schema bidding:
Alla ricezione di un msg di notifica di missione inviato dal leader, i nodi autonomamente decidono se offrirsi alla partecipazione nella
missione o no. Le decisioni di offrirsi si basano sui seguenti fattori:
(1) il livello corrente d’energia della batteria del nodo e del condensatore;
(2) il costo energetico della missione;
(3) la futura disponibilità energetica, ottenuta attraverso un modello di predizione d’energia solare;
7
(4) il profitto della missione rispetto al max profitto;
(5) l’utilità offerta dal nodo rispetto all’esigenza della missione, e
(6) il tempo di vita target della rete.
Un nodo usa i primi 3 fattori nella lista x classificare la missione in arrivo a seconda dell’impatto che la sua esecuzione avrebbe sul
reservoir d’energia del nodo. Più specificatamente, le missioni vengono classificare in un delle seguenti 4 classi:
- Missioni libere. Sono quelle che arrivano quando il super-condensatore del nodo è pieno ed il loro costo energetico si aspetta
che sia completamente sostenuto dall’energia raccolta durante la loro durata. Il modello di predizione energetica stima la
quantità di energia che verrà raccolta nel futuro vicino.
- Missioni recuperabili. Sono quelle il cui costo energetico può essere sostenuto usando l’energia immagazzinata nel
supercondensatore. Tale costo energetico può essere recuperato attraverso la raccolta in un piccolo periodo di tempo, a
seconda della predizione di futura disponibilità energetica.
- Missioni sostenibili da condensatore. Occorrono se il costo energetico totale della missione può essere sostenuto usando
soltanto il supercondensatore ma questo costo non si aspetta che sia recuperato attraverso raccolta nel vicino futuro.
- Missioni che richiedono batteria. Sono quelle il cui costo energetico deve essere totalmente o parzialmente fornito dalla
batteria.
Tale classifica viene usata dal nodo x decidere se fare o meno un’offerta x una missione. I nodi accettano sempre missioni libere,
siccome l’energia necessaria può essere direttamente fornita dal sottosistema di raccolta. Idealmente, eseguire una missione di
questa classe non dovrebbe assolutamente influenzare il reservoir energetico del nodo. Inoltre, in questa situazione non c’è ragione
x risparmiare energia: xk il condensatore è pieno, qualsiasi eccesso d’energia raccolta dall’ambiente sarebbe sprecata se non usata.
Se la missione in arrivo è recuperabile o sostenibile da condensatore, il nodo valuta quanto è redditizia la missione, in base al profitto
della missione rispetto al profitto max ed all’utilità offerta dal nodo rispetto all’esigenza della missione. Più in dettaglio, un sensore
confronta il profitto parziale che può fornire partecipando a quella missione con il profitto parziale atteso p’ di una missione tipica,
che viene calcolata in base alla distribuzione di profitto della missione ed esigenza ed al contributo di utilità atteso che un nodo può
offrire ad una tipica missione nel suo range:

dove E[u] è il contributo d’utilità atteso, E[d] e E[p] sono l’esigenza attesa ed il profitto atteso di una tipica missione, imparate dai
nodi in base alla storia precedente oppure ottenuta a tempo di design in base alle caratteristiche dell’applicazione, e P è il max
profitto della missione.
Il profitto parziale p* ottenibile dal nodo Ni partecipando alla missione in arrivo Mj è definito come:

dove eij è il potenziale contributo d’utilità che il nodo Ni può fornire alla missione data, dj e pj, sono, rispettivamente, l’esigenza della
missione e profitto, P è il max profitto della missione e w è il peso associato alla classifica della missione. Il valore p* viene allora
confrontato con p(soprassegnato), x avere un indicazione di quanto redditizia è la missione. Un nodo farà un’offerta x una data
missione soltanto se p* ≥ p(soprassegnato).
X decidere quali missione vengono classificate come recuperabili, i nodi stimano il tempo d’interarrivo delle missioni ed impostano
dinamicamente l’intervallo di tempo recuperabile, in modo che la sua durata sia al più il tempo atteso prima che arrivi la prossima
missione. In questo modo, scegliendo di eseguire una missione recuperabile è improbabile che influenzi la capacità del nodo di fare
offerta sulla missione successiva.
Le missioni richiedenti batteria sono quelle con il minore fattore pesato. Infatti, vogliamo che la rete sia capace a raggiungere un
dato tempo di vita target, quindi scegliamo di usare della preziosa energia di batteria soltanto x eseguire missioni con profitti relativi
più alti.
Se la missione è a richiesta di batteria, il nodo valuta separatamente il contributo d’energia fornito dal supercondensatore e dalla
batteria. Se il condensatore non è vuoto, il suo p* viene calcolato come nel caso sostenibile dal condensatore e poi pesato con la
frazione dell’energia richiesta che verrà fornita dal supercondensatore se niente energia è raccolta. Lo stesso approccio viene preso
x calcolare il profitto parziale p* associato con il contributo della batteria. Tuttavia in questo secondo caso usiamo un fattore
aggiuntivo quando p* viene calcolato, definito come segue:

dove ea è la quantità di energia disponibile al nodo, cioè il suo livello corrente di batteria, e er è la quantità di energia che il nodo
reputa necessaria x raggiungere un dato tempo di vita target della rete.
Sia te il tempo d’occupazione atteso, cioè la frazione di tempo che il nodo si aspetta di servire missioni nel futuro. Questo valore
viene calcolato in base a stime del tasso d’arrivo delle missioni, alla durata della missione attesa, alla probabilità che una data
missione sia entro l’intervallo di sensing del nodo ed alla probabilità γ che l’offerta di un sensore venga accettata. Denotiamo con rtl
il tempo di vita target rimanente, cioè la differenza tra l’iniziale tempo di vita target della rete ed il tempo corrente. Possiamo poi
esprimere er come: er = rtl x te x ecs, dove ecs è la media del costo di sensing di missione.
Il fattore we viene poi moltiplicato per w nel calcolo di p*:

L’obiettivo di we è di configurare il desiderio dei sensori di partecipare a nuove missioni. Costringe i nodi ad essere più conservativi
nell’accettare missioni siccome l’energia che essi hanno diventa bassa confrontata a quello che si aspetta che sia necessariox
raggiungere il tempo di vita target. D’altra parte, rende i nodi ad agire più aggressivamente con l’avvicinarsi del tempo di vita target
della rete.

8
Allocazione di task a sensori:
Una volta che il mission leader ha collezionato le risposte di offerte da nodi vicini, esso effettua la selezione dei nodi da assegnare
alla missione. I nodi vengono classificati a seconda dell’utilità offerta. Il mission leader gli assegna in maniera greedy alla missione, in
base al loro piazzamento, finché la missione non è completamente soddisfatta o finché non ci sono più sensori ad offrirsi. Una volta
raggiunta la minima soglia di soddisfacimento, il leader potrebbe decidere di fermare corto sulla copertura completa se il prossimo
nodo da aggiungere andrebbe oltre la necessaria utilità, siccome non c’è un profitto aggiuntivo guadagnato dalla rete se l’esigenza
richiesta viene superata. La missione ha (parzialmente) successo se raggiunge la soglia di successo Tsat; se no, il leader rilascia tutti i
sensori. Se la missione può essere iniziata con successo, un msg ACK viene inviato ai nodi scelti dal leader. Quando finisce una
missione, il leader invia un msg x annunciare la terminazione della missione, e tutti i suoi sensori assegnati vengono rilasciati.
I leader delle missioni che non hanno raggiunto la loro soglia di successo o che non sono completamente soddisfatti dopo il primo
processo d’assegnamento riproveranno ad ottenere più sensori quando una missione vicina termina e rilascia i suoi sensori. Tale
info può essere facilmente ottenuta x overhearing del msg che annuncia la fine di una missione.

Modelli di predizione energetica e dataset d’energia solare:


EN-MASSE usa un modello di predizione dell’energia x classificare le missioni in arrivo, stimando quanto tempo sarà necessario xk il
nodo recuperi, attraverso la raccolta energetica, l’energia richiesta x l’esecuzione della missione. Dal momento che tali stime
vengono fatte su un frame di tempo relativamente piccolo (di solito da una mezzora a vari ore), ci riferiamo a questo modello come
a corto termine. Vari modelli di predizione energetica sono stati proposti nella letteratura. Noi ci concentriamo su 3 di essi: il
modello di predizione Exponential Weighted Moving Average (EWMA), l’algoritmo Weather-Conditioned Moving Average
(WCMA), ed il predittore d’energia PROfile (Pro-Energy). WCMA e EWMA suppongo che la generazione d’energia in una tipica
giornata di essere correlata alla generazione d’energia allo stesso tempo in giorni precedenti. EWMA mantiene la quantità d’energia
disponibile durante i giorni passati come una media pesata, in cui il contributo dei dati più vecchi decade esponenzialmente. EWMA
sfrutta il ciclo diurno dell’energia solare e si adatta alle variazioni stagionali, ma esibisce errori di predizione significativi quando le
condizioni temporali cambiano di frequente, cioè quando le giornate solari e nuvolose vengono mescolate. WCMA migliora rispetto
a EWMA includendo un fattore che misura le condizioni solari nella giornata presente relativamente alle giornate precedenti, che è
particolarmente importante in condizioni temporali che cambiano di frequente. L’idea principale di Pro-Energy, invece, è di fare uso
di profili di raccolta rappresentanti l’immissione d’energia disponibile durante diversi tipi di “tipiche” giornate. X es., le giornate
possono essere classificate in nuvolose, solari o piovose, ed un profilo caratteristico potrebbe essere associato ad ognuna di queste
categorie. Tali profili energetici vengono poi usati x pronosticare l’immissione energetica futura attesa: una volta x slot temporale,
Pro-Energy consegna predizioni energetici guardando al profilo memorizzato più simile alla giornata corrente.

Il predittore energetico a corto termine permette ad EN-MASSE di classificare le missioni in arrivo, ma non prende in considerazione
il comportamento a lungo termine della src d’energia. X tener conto di questo aspeto, proponiamo un leggero predittore a lungo
termine che permette di configurare x bene il comportamento di EN-MASSE su frame temporali più lunghi. Tale predittore usa dati
temporali storici x ottenere l’energia media raccolta x giornata durante ogni mese in cui la rete si aspetta che sia operativa.
Il predittore a lungo termine funzione come segue: all’inizio di ogni mese, calcola un fattore, LTPm, indicando quanto l’energia media
raccolta x giorno si aspetta che cambi durante il prossimo mese rispetto al mese corrente. Questo fattore permette di stimare
quando l’energia memorizzata nella batteria dei nodi EN-MASSE è più probabile che sia necessaria sull’intero tempo di vita target, e
di stimare il suo utilizzo di conseguenza. Specificamente, il fattore LTPm viene definito come:

dove:
- m è il mese corrente;
- HEm è l’energia media x gg raccolta durante il mese corrente;
- HEm+1 è l’energia media x gg che il nodo si aspetta di raccogliere durante il prossimo mese;
- HE è la media dell’energia media raccolta al giorno durante l’intero tempo di vita;
- α, β sono 2 parametri di ponderazione, a,b ϵ [0,1].
I parametri HEm, HEm+1 e HE vengono tutti calcolati in base a dati temporali storici.
Il primo fattore nell’equazione LTPm rappresenta quanto la quantità d’energia raccolta al giorno si aspetta che cambi durante il
prossimo mese. Un rapporto maggiore di 1 indica un aumento nella media energetica raccolta al giorno, a significare che EN-MASSE
idealmente userebbe più energia dalla batteria durante il mese corrente che durante il mese prossimo.
Il secondo fattore è il rapporto tra l’energia media raccolta al giorno sull’intero tempo di vita target della rete e l’energia media
raccolta al giorno durante il mese corrente. Se questo rapporto è maggiore di 1, nel mese corrente l’energia media raccolta al giorno
è sotto la media. Ad EN-MASSE dovrebbe quindi essere permesso di usare più energia dalla batteria durante il mese corrente.
LTPm viene usato come un fattore di ponderazione nell’equazione p*, in modo da configurare x bene il desiderio dei nodi EN-MASSE
nell’accettare missioni richiedenti batteria. Soltanto x questa classe di missioni, il fattore peso wbattery viene aggiornato ogni mese m
e diventa:
wbattery = max{wbattery * LTPm, max weight},
dove max weight è il peso max che può essere assegnato ad una missione richiedente batteria, che dovrebbe essere minore a quello
assegnato alle altre classi di missione.

9
GreenCastalia: un frame work abilitato a raccogliere energia x il simulatore Castalia
L’emergenza di tecniche alla ricerca d’energia x alimentare le reti di dispositivi embedded sta sollevando il bisogno di frameworks di
simulazione dedicati che possano dare supportare ai ricercatori e sviluppatori nel design e nella valutazione delle prestazioni di
protocolli ed algoritmi consapevoli della raccolta. In questo lavoro presentiamo GreenCastalia, un framework di simulazione a
raccolta energetica open-source sviluppato x il popolare simulatore Castalia. GreenCastalia supporta architetture di raccolta
energetica multi-sorgente e multi-storage, è altamente modulare e facilmente personalizzabile. Inoltre, permette di simulare reti di
dispositivi embedded con capacità di raccolta eterogenea.
I sistemi alimentati dall’ambiente hanno il potenziale x un tempo di vita illimitato, ma quest’obiettivo è contestato
dall’imprevedibile natura delle sorgenti d’energia ambientali, che richiedono soluzioni dedicate x la gestione dell’energia. Infatti i
nodi a raccolta energetica di solito sperimentano un alternarsi tra periodi in cui l’energia deve essere scarsamente usata ed altri
periodi in cui ci può essere persino un eccesso di energia disponibile. Dal momento che le soluzioni tradizionali WSN non sono intese
x affrontare queste situazioni, i protocolli esistenti e gli algoritmi devono essere adattati o riprogettati x ottenere sistemi capaci di
adattare il loro scheduling del workload con la natura stocastica delle sorgenti d’energia ambientale.
A causa del costo relativamente alto e dei lunghi tempi necessari x dispiegare e mantenere WSN su larga scala, la simulazione è
tradizionalmente lo strumento scelto dalla ricerca. Questo è specialmente vero x le WSN a raccolta energetica (EH-WSN), siccome la
validazione nella vita reale dei sistemi di ricerca energetica viene ulteriormente sfidata da condizioni temporali e raccolta
dipendente dalla posizione, che compromettono ancora di più la ripetibilità degli esperimenti. Inoltre, effettuare esperimento su
EH-WSN richiede del tempo, siccome validare la robustezza di una soluzione richiede di testarla sotto una varietà di condizioni di
raccolta. Le soluzioni mitigano queste problematiche fornendo un metodo a costo effettivo x testare interamente nuovi algoritmi e
nuovi schemi in un ambiente controllato e riproducibile.
In questo lavoro viene descritto il design e l’implementazione di GreenCastalia, un framework a raccolta energetica open-source x il
simulatore Castalia. Castalia offre caratteristiche di simulazioni WSN a modelli avanzati del canale radio; fornisce anche un modello
altamente flessibile di nodi sensore che include rumore e bias, che possono essere usati x definire modelli accurati di processi fisici.
Nonostante le tanti caratteristiche desiderabili, la versione corrente di Castalia non supporta la simulazione di sistemi a raccolta
energetica, ma fornisce soltanto un ideale modello a batteria. La soluzione proposta (GreenCastalia) la integra nel simulatore
Castalia, estendendola con un framework flessibile x simulare reti di dispositivi embedded con capacità eterogenee di raccolta e
storage energetico.

Dovuto alla difficoltà di disporre sistemi WSN reali, un nr considerevole di simulatori di rete, sia general-purpose che specifico a
WSN, sono state impiegate e sviluppate negli anni passati x supportare la ricerca sulle WSN. I framework popolari sono ns-2, ns-3,
OMNeT++ e Castalia. Questi strumenti tuttavia offrono supporto limitato x simulazioni consapevoli dell’energia, siccome non
forniscono nativamente modelli di src e di storage d’energia.

La gestione energetica in Castalia è fatta interamente dal modulo ResourceManager, che mantiene parametri specifici d’energia,
come il consumo energetico di base del mote ed il suo budget energetico iniziale. Questo modulo tiene traccia dell’energia
rimanente effettuando aggiornamenti periodici sull’energia spesa dal nodo nel tempo. Gli aggiornamenti energetici vengono anche
innescati su richiesta dai moduli di Castalia che modellano le componenti hw ogni volta che cambia il loro consumo energetico. La
quantità d’energia rimasta viene calcolata dal ResourceManager modellando un’ideale batteria primaria che viene scaricata
linearmente.
Il modello energetico di Castalia è stato esteso introducendo un nuovo modulo composto, chiamato EnergySubsystem, che
sostituisce completamente il modulo ResourceManager x quel che riguarda la gestione energetica. X permettere una facile
integrazione con Castalia, ResourceManager è stato reso un modulo composto includendo il nuovo modulo EnergySubsystem. Il
EnergySubsystem è composto dai 3 sottomoduli principali:
- EnergyHarvester, che modella il processo di raccolta energetica e gestisce i dispositivi corrispondenti;
- EnergyStorage, che rappresenta un dispositivo di storage d’energia, cioè un supercondensatore, una batteria ricaricabile o
monouso;
- EnergyManager, che implementa la logica del controllo x l’utilizzazione dello storage e x la ricarica.
Le src d’energia ambientale vengono modellate dal modulo esterno EnergySource, di cui molteplici istanze possono essere create x
simulare i sistemi a raccolta multi-src. L’implementazione corrente di GreenCastalia fornisce un modulo generico
TraceEnergySource, che permette di alimentare il simulatore con tracce d’energia (con il timestamp corrispondente) collezionate
attraverso studi di misurazioni e dispiegamenti del mondo reale, oppure con tracce di disponibilità energetica ottenute da
repository di dati o da stazioni meteorologiche. Il modulo EnergySource può anche essere esteso x supportare modelli definiti da
utente oppure diverse src d’energia. In GreenCastalia ogni raccoglitore è logicamente connesso ad una e una sola src d’energia,
mentre molteplici raccoglitori possono ricavare energia dalla stessa src. Ciò permette di gestire EH-WSN eterogenee, in cui ogni
nodo può avere diverse capacità di raccolta.
In aggiunta, GreenCastalia fornisce supporto x predizioni energetiche attraverso il modulo EnergyPredictor.

Il modulo EnergyHarvester rapresenta un dispositivo fisico raccoglitore connesso ad un nodo. L’implementazione corrente fornisce
un modulo EnergyHarvester predefinito che ricava energia con una data efficienza dalla src energetica alla quale è connesso.
L’interfaccia x questo modello permette di indicare opzionalmente un file con timestamp che specifica come l’efficienza di
raccoglimento del dispositivo varia nel tempo. Ciò permette di modellare effetti a tempo variabile come ombre in movimento,
ostruzioni temporanee, il cambiamento dell’orientamento del raccoglitore, ed efficienza decrescente dovuta alla polvere o

10
all’invecchiamento. Tale modulo predefinito fornisce anche un’implementazione d’esempio di un EnergyHarvester, rendendo
relativamente facile l’integrazione di modelli alternativi con dispositivi di raccolta.

Il modulo EnergyStorage rappresenta un dispositivo di storage che fornisce energia al nodo. L’interfaccia predefinita x questo
modulo include parametri come l’efficienza di ricarica e scaricamento, voltaggio max e voltaggio tagliato fuori. Ad oggi,
GreenCastalia fornisce un’implementazione di 2 modelli a batteria e di un modello a supercondensatore:
- IdealBattery: un semplice modello in cui il voltaggio della batteria resta costante nel suo tempo di vita ed il tasso di
scaricamento è sempre proporzionale all’energia presa dalla batteria. Questo è il modello di batteria predefinito fornito da
Castalia;
- EmpiricalBattery: un modello simile ad IdealBattery, ma include supporto x simulare il voltaggio della batteria che decresce
nel tempo in base alla sua profondità di scaricamento. Il voltaggio stimato della batteria viene calcolato usando
un’approssimazione lineare a tratti del suo pattern empirico di scaricamento:

dove CR_1, …, CR_n+1 sono i valori d’energia residua in cui la pendenza della curva di scaricamento cambia significativamente e
a1, …, an , b1, …, bn sono costanti rappresentanti i coefficienti dei segmenti linea usati x l’approssimazione.
- Supercapacitor: un semplice modello in cui il voltaggio del supercondensatore viene stimato in base alla formula E(t) = ½
2
C(V(t)) , dove E(t) è l’energia immagazzinata dal supercondensatore a tempo t, C è la sua capacità misurata e V(t) è il
voltaggio attraverso di esso.
X quanto riguarda RechargeableBattery, viene fornito un semplice modello x tener conto dei cicli rimanenti, mentre modelli più
accurati sono sotto investigazione.

Il modulo EnergyManager è il cuore del sottosistema energetico, avendo una vista completa dell’energia raccolta e ricavata nel
tempo. Implementa la logica di controllo x l’utilizzazione dei dispositivi storage e di ricarica, simulando il flusso energetico da
raccoglitori e da dispositivi di storage verso il carico, e da raccoglitori verso dispositivi di storage. Tiene, inoltre, traccia dell’energia
sprecata dovuta a non idealità dei dispositivi di storage, come l’efficienza di ricarica e scaricamento, auto-scraricamento, e limitata
capacità, che possono causare eccesso d’energia dal raccoglimento che viene persa.
Se il consumo energetico netto è negativo, l’eccesso d’energia viene usato x ricaricare i dispositivi di storage. Altrimenti, i dispositivi
di storage vengono scaricati x fornire energia al nodo. Dispositivi gestiti da EnergyManager possono includere una combinazione di
supercondensatori, batterie ricaricabili e monouso. Estendendo il modulo EnergyManager, il controllore specifico x l’utilizzazione e
ricarica dei dispositivi di storage può essere modificato in modo da simulare una varietà di architetture, includendo sistemi ibridi e
storage multi-stadio.

Supporto x predizioni energetiche:


I sistemi in ricerca energetica devono affrontare i cambiamenti drammatici della disponibilità energetica nel tempo. Nel caso di src
energetiche prevedibili, come la luce solare, i modelli di predizione energetica sono uno strumento prezioso x escogitare strategie
d’allocazione energetica. Infatti, prevedendo l’immissione energetica attesa nel vicino futuro, si possono implementare strategie di
gestione energetica proattiva x ottimizzare l’utilizzazione dell’energia disponibile. Riconoscendo l’importanza delle predizioni
energetiche x la progettazione di protocolli consapevoli della raccolta, in GreenCastalia si è incluso un modulo EnergyPredictor.
L’interfaccia di questo modulo permette di definire la src energetica x cui vengono spedite le predizioni, il nr di timeslot al gg e la
frequenza con cui la src energetica viene campionata entro ogni timeslot. L’implementazione corrente di GreenCastalia include
l’algoritmo di predizione EWMA largamente utilizzato e 2 predittori di stato dell’arte, WCMA e Pro-Energy. EWMA mantiene la
storia sulla raccolta energetica dei giorni passati come una media mobile esponenziale. Le predizioni vengono consegnate in base
alla supposizione che l’energia disponibile ad un tempo dato del giorno sia simile all’immissione d’energia allo stesso tempo nei
giorni precedenti. In modo simile ad EWMA, WCMA prende in considerazione la disponibilità media energetica sperimentata nei
giorni passati, ma migliora l’accuratezza delle predizioni scalando ulteriormente questo valore medio basato su un fattore di
ponderazione che indica quanto le condizioni temporali della giornata corrente sono cambiate rispetto alle giornate precedenti. Pro-
Energy immagazzina ed usa un pool di profili raccolti osservati nel passato, che rappresentano l’immissione energetica registrata
durante diversi tipi di giornate tipiche (x es solare, nuvoloso, piovoso, ecc.). Quando vengono consegnate le predizioni energetiche,
Pro-Energy guarda al profilo immagazzinato che è il più simile alla giornata corrente e calcola stime in base ad una combinazione
dell’energia riportata nel profilo immagazzinato ed in base all’energia osservata durante la corrente giornata.

Esempio di simulazione:
Diamo un esempio ad alto livello di come GreenCastalia possa essere usata x implementare protocolli consapevoli della raccolta. A
questo scopo si è implementato un protocollo d’instradamento x il converge casting nelle EH-WSN che distribuiscono traffico nella
rete favorendo nodi che, grazie alla raccolta, hanno alta disponibilità energetica. L’inoltro del pacchetto viene realizzato
selezionando in maniera opportuna il relay del hop successivo attraverso una contesa basata su timer. Nella soluzione proposta, un
nodo che ha pacchetti da inviare fa partire il processo di selezione del relay disperdendo in broadcast un pacchetto RTS che contiene
info sul suo nr di hop e sul nr di pacchetti che intende inoltrare. I vicini che ricevono il pacchetto RTS partecipano nella contesa
soltanto se il loro nr di hop non è maggiore di quello del mittente. Alla ricezione di un pacchetto RTS, i vicini disponibili rispondono
con un msg CTS dopo un jitter casuale, che viene calcolato in base alla loro condizione di raccolta, reservoir energetico, e nr di hop.
Priorità più alta viene data a nodi che stanno sperimentando un picco energetico, cioè che hanno il loro storage quasi alla max
capacità mentre stanno raccogliendo energia. Tali nodi sono idealmente capaci di eseguire l’inoltro a nessun costo, siccome

11
l’energia raccolta durante un picco energetico verrebbe sprecata se non immediatamente usata. Essi, di conseguenza, rispondono a
msg RTS con un jitter minore degli altri nodi, che a loro volta calcolano il loro tempo d’attesa a seconda della frazione d’energia
disponibile e del loro corrente tasso di raccolta energetica. Tra relay potenziali che hanno un simile stato energetico, il nr di hop
viene usato x selezionare il miglior nodo che offre avanzamento positivo verso il sink. Il mittente seleziona come relay del hop
successivo il primo nodo che risponde con un CTS al suo msg RTS. Una volta selezionato un relay, il mittente trasmette i suoi
pacchetti bufferizzati in un burst, effettuando trasmissione back-to-back in cui i pacchetti di dati vengono riscontrati
individualmente.

Questa figura mostra un esempio di applicazione del protocollo proposto in una rete di nodi sensore wireless eterogenei modellato
in GreenCastalia. I nodi eseguono un’applicazioni di collezione di dati che richiede a loro di collezionare periodicamente misurazioni
di sensing e di spedirle al sink (nodo 1 nella figura), che si suppone abbia un rifornimento energetico illimitato. La rete è composta
da nodi equipaggiati con pannelli solari, microturbine di vento, oppure entrambe. I dispositivi in ricerca d’energia vengono
rappresentati nella figura da cerchi gialli, quadratini blu e diamanti verdi, rispettivamente. 2 moduli TraceEnergySouce vengono
istanziati in GreenCastalia, che alimentano il simulatore con tracce energetiche (con timestamp) di disponibilità di vento e solare
ottenuta in base ai dati dal “Laboratorio Nazionale statunitense d’Energia Rinnovabile”. I moduli EnergyHarvester di ogni nodo
vengono connessi alla src energetica appropriata, e, in caso di raccolta energetica solare, l’efficienza dei dispositivi viene resa
variabile x rappresentare ombre. Infine, circa 10% dei nodi nella rete sono mote tradizionali senza capacità di raccolta energetica
(rappresentati dai cerchi griggi).
La figura mostra una cattura dei cammini selezionati dai protocolli di istradamento in tempi diversi del giorno. Le linee più dense tra
nodi indicano traffico di dati più pesante. La figura 5(a) mostra rotte selezionate durante il giorno, x cui i nodi alimentanti dal sole e
quelli multi-src sperimentano picchi energetici. Tali nodi vengono quindi selezionati con priorità più alta come relay di hop
successivo, mentre i dati instradati attraverso mote alimentati da vento (x es., nodi 4 e 10) e da batteria (x es., nodi 2 e 31) sono
scarsi.
La figura 5(b) mostra l’effetto di un’ombra localizzata sulla selezione delle rotte: i traffico viene instradato attorno il nodo 17,
siccome è coperto da un’ombra temporanea che riduce di molto la sua raccolta energetica. Infine, come mostrato nella fig.5(c), di
notte i nodi alimentati da vento e multi-src vengono selezionati con priorità più alta rispetto ai nodi a raccolta solare ed alimentati
da batteria.

Pro-Energy: un nuovo modello di predizione energetica x WSN a raccolta energetica solare


ed a vento
I sistemi alimentati dall’ambiente devono affrontare il comportamento variabile delle src d’energia ambientale, che risulta in diverse
quantità e tassi di energia disponibile nel tempo. X alleviare il problema dell’energia raccolta che è né costante né continua, dei
metodi di predizione energetica possono essere impiegati. Tali metodi pronosticano la disponibilità energetica e stimano
l’immissione d’energia attesa, permettendo al sistema di prendere decisioni critiche sull’utilizzo dell’energia disponibile. In questo
lavoro viene presentato un nuovo modello di predizione energetica, chiamato Pro-Energy, x le WSN a raccolta energetica multi-src,
che è capace di influenzare osservazioni energetiche del passato x fornire stime accurate di disponibilità energetica futura. Una
valutazione delle prestazioni comparativa tra Pro-Energy e predittori d’energia precedentemente proposti nella letteratura, come
EWMA e WCMA, ha mostrato che la presente soluzione sorpassa significativamente gli algoritmi esistenti x orizzonti di predizione
sia a corto che medio termine, migliorando l’accuratezza delle predizioni fino a 60%.
X es., i nodi alimentati ad energia solare sperimentano cambiamenti nell’energia raccolta nel tempo, dovuto al ciclo diurno
dell’energia solare, condizioni temporali variabili, tendenze mensili e pattern stagionali. Inoltre, la posizione dei nodi e
l’orientamento delle loro celle solari impattano fortemente l’immissione energetica: anche se 2 nodi sono fisicamente collocati,
spesso i loro tassi di raccolta differiscono significativamente.
L’incertezza nella disponibilità energetica fornita da src ambientali, solleva nuove sfide nello sviluppo di soluzioni affidabili della
gestione energetica ad efficienza energetica. Molti lavori suppongono che le predizioni accurate sull’immissione energetica futura
siano disponibili al sistema, o semplicemente guardando alla storia passata oppure impiegando predittori d’energia più sofisticati. La
conoscenza sul comportamento delle src d’energia in frame temporali corti e medi è spesso necessaria x ottimizzare il sistema ed
alcune soluzioni si affidano persino ad essa x funzionare bene. In genere, non avere tale conoscenza disponibile risulterà in un
sistema sotto-performante, in cui i nodi non hanno possibilità di pianificare in anticipo come spendere l’energia che raccoglieranno
nel vicino futuro. Le predizioni sulla disponibilità energetica futura aiuta anche a minimizzare lo spreco energetico. I nodi
immagazzinano l’energia raccolta in dispositivi come supercondensatori oppure batterie ricaricabili, che sono limitati sia in
dimensione che tempo, dovuto alla loro limitata capacità, perdita ed auto-scaricamento, rispettivamente. Sviluppare predittori
d’energia x WSN che forniscono predizioni future accurate in corte (da qualche minuto a mezzora) e medie (qualche ora) finestre
temporali è molto importante, siccome permettono di sfruttare al meglio l’energia disponibile, minimizzare la probabilità che task
12
importanti non vengano eseguite dovuto a mancanza d’energia, e minimizzare lo spreco energetico, cioè casi incui l’energia
generata non viene né usata né immagazzinata siccome il buffer è pieno.
Finora, i lavori esistenti, come WCMA, si sono concentrati principalmente su predizioni a corto termine x la raccolta d’energia solare.
In WCMA, ogni giorno viene discretizzato in N slot temporali e, alla fine di ogni timeslot t, viene derivata la predizione energetica x il
timeslot t+1.
Lo scopo del presente lavoro è quello di sviluppare un framework generale x sistemi a raccolta energetica multi-src (cioè solare e
vento), che è capace di pronosticare accuratamente l’energia x orizzonti di previsione che vengono dinamicamente scelti in base alle
necessità dell’applicazione.

L’algoritmo Exponentially Weighted Moving-Average (EWMA) è uno schema di predizione energetica solare largamente utilizzata,
basata su un filtro a media mobile esponenzialmente pesata. EWMA confida nella supposizione che l’energia disponibile in un dato
tempo della giornata sia simile alla generazione d’energia osservata nello stesso tempo delle giornate precedenti. La quantità di
energia disponibile durante i giorni passati viene mantenuta come una media mobile, in cui il contributo dei dati più vecchi sta
esponenzialmente decrescendo. Quest’approccio è capace di sfruttare il ciclo diurno dell’energia solare e di adattarsi a variazioni
stagionali, ma comporta significativi errori di predizione nel caso di condizioni temporali che cambiano di frequente, cioè quando i
giorni solari e nuvolosi vengono mescolati.
In modo da indirizzare questo problema, un nuovo metodo di stima, il Weather-Conditioned Moving Average (WCMA), è stato
proposto. Gli alti errori di predizione mostrati da EWMA quando le giornate solari e nuvolose si alternano sono dovuti al grande
impatto che le condizioni temporali della giornata precedente ha quando si stima la generazione d’energia x la giornata corrente.
L’algoritmo di predizione WCMA evita questo effetto prendendo in considerazione, quando si calcola la predizione x un timeslot
dato, la disponibilità media d’energia sperimentata in quel slot delle giornate precedenti. Tale valore medio viene poi scalato a
seconda di un fattore di ponderazione indicante come le condizioni temporali della giornata corrente sono cambiate rispetto alle
giornate precedenti. Nel caso di condizioni temporali che cambiano di frequente, WCMA ottiene una media di errori di predizioni di
quasi 20% meno rispetto ad EWMA.
Finora nessuna soluzione è stata proposta che permetta di scegliere dinamicamente l’orizzonte temporale x la previsione in base
alle necessità dell’applicazione. Pro-Energy è l’unico algoritmo di predizione che pronostica l’immissione energetica futura x
orizzonti di predizione sia a corto che medio termine usando soltanto l’info collezionata dagli stessi nodi.

Pro-Energy:
X ridurre l’overhead di tempo e di memoria del modello di predizione, ogni giornata viene discretizzata in un dato nr, N, di timeslot a
lunghezza equivalente e le predizioni vengono effettuate una volta x slot. L’idea principale dell’algoritmo è di utilizzare profili di
raccolta rappresentanti l’immissione d’energia disponibile durante diversi tipi di giornate “tipiche”. X es., i giorni possono essere
classificati in solari, nuvolosi oppure piovosi ed un profilo caratteristico potrebbe essere associato con ognuna di queste categorie.
L’energia ricevuta durante la giornata corrente viene immagazzinata in un vettore, C, di lunghezza N, contenente l’energia ottenuta
durante ognuno dei timeslot passati. Un pool di profili d’energia osservati nel passato viene mantenuto in una matrice E, di
dimensione D x N. questi profili rappresentano l’energia ottenuta durante un dato nr, D, di giornate tipiche. Tali profili d’energia
vengono usati da Pro-Energy x pronosticare l’immissione futura d’energia in finestre temporali a corto e medio termine: una volta x
timeslot, Pro-Energy spedisce predizioni d’energia guardando al profilo immagazzinato che è il più vicino alla giornata corrente. X
ognuno di questi profili, la similarità con il profilo energetico osservato durante la giornata corrente viene calcolata come il loro
errore medio assoluto (MAE), prendendo in considerazione le ultime K osservazioni d’energia. Più formalmente, il profilo
d
immagazzinato, E , che, tra i D profili tipici immagazzinati, è il più simile al timeslot t alla giornata corrente, C, è definito come segue:

Figura 1 mostra un esempio di applicazione dell’algoritmo Pro-Energy in 4 giornate di predizioni solari.

Durante i timeslot iniziali di Ottobre 23, il primo profilo immagazzinato viene selezionato tra quelli tipici, siccome è il più simile alla
porzione della corrente giornata osservata finora. Con il passare della giornata, la forma del profilo viene scalata ed adattata a in
base alle nuove osservazioni. Altri 2 profili diversi vengono usati x le predizioni durante le giornate 2 e 3. Poi, alla 4° giornata, il
primo profilo viene di nuovo selezionato come il più simile alle osservazioni correnti.
Se le condizioni temporali cambiano durante il giorno corrente, x es., una mattina solare seguita da un pomeriggio nuvoloso, ci
aspettiamo che il profilo più simile sia uno di quelli immagazzinati che corrisponde ad una giornata solare nella mattina, ed una
d
nuvolosa nel pomeriggio. In tali casi, considerando soltanto le ultime K osservazioni dell’equazione E ha l’effetto di abbassare la
probabilità di scegliere il profilo sbagliato, mentre si riduce allo stesso tempo l’overhead computazionale di Pro-Energy.

13
Pro-Energy è costruito da 3 componenti:
1) Il modulo di predizione spedisce predizioni future x orizzonti di predizione a corto e medio termine;
2) L’analizzatore di profilo seleziona, tra i profili immagazzinati, quello che è più simile alla giornata corrente;
3) Il profile pool refresh aggiorna il pool di profili energetici, tenendo conto dell’età dei profili e della loro somiglianza.

Predizioni d’energia a corto termine:


Quando si spediscono predizioni d’energia, Pro-Energy tenta di far corrispondere le osservazioni della giornata corrente con uno dei
profili tipici immagazzinati nel suo pool.
Pro-Energy calcola il valore pronosticato x il prossimo timeslot in base ad una combinazione del valore x il prossimo timeslot
d
riportato nel profilo immagazzinato ed in base all’energia osservata nell’ultimo timeslot, Ct. Più formalmente, essendo E il profilo
immagazzinato più simile (fino al timeslot t) alla giornata corrente, l’immissione d’energia pronosticata x il prossimo slot, t+1, della
d
giornata corrente viene calcolata come: Êt+1 = α∙Ct + (1-α)∙E t+1
dove:
- Êt+1 è l’immissione d’energia pronosticata nel timeslot t+1 della giornata corrente;
d
- E t+1 è l’energia raccolta durante il timeslot t+1 della giornata immagazzinata d;
- Ct è l’energia raccolta durante il timeslot t della giornata corrente C;
- α è un fattore di ponderazione, 0 ≤ α ≤ 1.
Il parametro di ponderazione, α, permette di combinare il valore riportato nel profilo immagazzinato con l’osservazione energetica
corrente, cioè l’energia osservata nell’ultimo slot, Ct.

Predizioni d’energia a medio termine:


Quando si calcolano le predizioni a corto termine, considerando la correlazione tra 2 timeslot consecutivi si solito aiuta ad
incrementare l’accuratezza della predizione. Quest’approccio, tuttavia, non è efficace come quando si spediscono predizioni a
medio termine. Infatti, la correlazione tra l’energia osservata a tempo t e quella osservata a tempo t+δt in genere decresce x un δt
crescente. X analizzare tale correlazione, abbiamo discretizzato ogni giorno in 48 slot di durate da 30 minuti e considerato un dato
timeslot, t, che corrisponde, nel nostro esempio, alle ore 8:30.
Figura 3 mostra un esempio dell’energia raccolta da una cella solare e da una microturbina a vento su 8 giorni in agosto, che
evidenzia il fatto che l’immissione d’energia a vento è in genere molto più variabile di quella solare.

Conoscenza di correlazione può essere sfruttata x una migliore accuratezza di predizione. A questo scopo, introduciamo un nuovo
parametro, γ, che determina l’influenza dell’ultima osservazione d’energia mentre vengono derivate predizione x i prossimi F slot
futuri.
Supponendo che 2 slot ad una distanza ≥ G mostri soltanto una debole correlazione, il parametro γ da usare quando si pronostica
l’immissione d’energia x il futuro slot i è definito come:

dove:
- α è il fattore di ponderazione definito nell’equazione Êt+1;
- i è l’i-esimo timeslot nel futuro, rispetto allo slot corrente, t;
- G è il nr di timeslot nel futuro che mostrano una correlazione sopra una data soglia con timeslot t;
- F è il nr di timeslot futuri x cui Pro-Energy spedisce predizione d’energia.
Avendo definito tale parametro γi, le predizioni di medio termine vengono calcolate usando una generalizzazione della versione a
d
corto termine: Êt+i = γi∙Ct + (1- γi)∙E t+i.

Aggiornamenti dei profili immagazzinati:


Pro-Energy mantiene un pool di D profili tipici, ognuno rappresentativo di una condizione temporale differente. In modo da adattare
predizioni a pattern stagionali che cambiano, questo pool deve essere periodicamente aggiornato. Alla fine di ogni giornata, Pro-
Energy decide se aggiornare o meno il pool di profili immagazzinati con il profilo osservato durante la giornata corrente C.
specificamente, esso implementa 2 strategie di aggiornamento insieme:
1) Se c’è un profilo nel pool che è stato immagazzinato più di A giorni fa, lo si sostituisce con il profilo osservato durante la
giornata corrente C.
d1 d2
2) Se ci sono 2 profili E e E nel pool che sono molto simili, cioè il loro MAE è sotto una data soglia, si sostituisce con C uno tra
i 2 che è il più simile alla giornata corrente. Nel caso di più coppie di profili simili, selezionare tra queste coppie quello più
simile a C.
La prima strategia permette di scartare profili che sono diventati obsoleti, mentre la seconda permette di mantenere un pool di
profili che siano idealmente rappresentativi di condizioni temporali differenti, scartando profili che sono molto simili.

14
Migliorare l’accuratezza di predizione combinando più profili:
Le predizioni di Pro-Energy possono essere ulteriormente migliorate attraverso una tecnica che permette di combinare più profili
inseme. Tale metodo seleziona un insieme di P profili, anziché uno solo, tra i D profili immagazzinati nella matrice E e li combina x
formare un profilo “pesato” WP.
L’idea principale dietro l’uso di più profili è di considerare diverse evoluzioni possibili della corrente giornata. X es., una mattina
solare potrebbe essere seguita da un pomeriggio nuvoloso oppure piovoso. Mentre si spedisce predizioni a medio e lungo termine,
considerando un singolo profilo potrebbe portare ad una povera accuratezza se occorrono variazioni significativi nelle condizioni
temporali. Al contrario, considerando profili molteplici permette di tener conto di questi cambiamenti, riducendo l’errore di
predizione al prezzo di un piccolo overhead aggiuntivo.
d1 d2 dP
Sia E , E , …, E la lista ordinata di profili che sono più simili alla giornata corrente C, cioè profili con i più piccoli MAE (Mean
Absolut Errors). Il profilo pesato WP, x lo slot futuro t+i, i ϵ ,1, 2, …, F}, viene calcolato come:

dove
X quanto riguarda il caso precedente, le predizioni d’energia x il futuro slot t+i vengono calcolate in base al valore x tale slot
memorizzato nel profilo WP ed all’energia raccolta durante l’ultimo timeslot.
L’immissione d’energia pronosticata x il futuro slot, t+i, viene allora calcolato come: Êt+i = γi∙Ct + (1-γi)∙WPt+i
dove:
- Êt+i è l’energia pronosticata nel timeslot t+i x la giornata corrente;
- Ct è l’energia raccolta durante l’ultimo timeslot;
- WP è il vettore della combinazione dei timeslot t+i dei P profili;
- γi è un fattore di correlazione del slot t+i.

Reti subacquee di sensori acustici


Le reti sottacque consistono di un nr variabile di sensori e veicoli che vengono dispiegati x eseguire task collaborative di
monitoraggio su una superficie data. I nodi sensore subacquei devono possedere capacità di auto-configurazione, cioè devono
essere capaci di coordinare la loro operazione scambiando info di configurazione, posizione e movimento, e di trasmettere in relay
dati monitorati ad una stazione a terra.
Le comunicazioni acustiche sono la tecnologia tipica dello strato fisico nelle reti subacquee. Infatti, le onde radio si propagano in
lunghe distanze attraverso acqua marina conduttiva soltanto a frequenze molto basse (30-300 Hz), che richiedono antenne grandi
ed alta potenza di trasmissione. Le onde ottiche non soffrono di una tale grande attenuazione ma sono influenzate da scattering.
Per di più, la trasmissione dei segnali ottici richiede alta precisione nel puntare i stretti raggi laser. Di conseguenza, i collegamenti
nelle reti subacquee sono basati su comunicazioni wireless acustiche.
L’approccio tradizionale x il monitoraggio del fondale oceanico o della colonna oceanica è di dispiegare sensori subacquei che
registrino dati durante la missione di monitoraggio, e poi recuperare gli strumenti. Quest’approccio ha gli seguenti svantaggi:
- Nessun monitoraggio in tempo reale. I dati registrati non possono essere accessibili finché gli strumenti non vengono
recuperati, il che potrebbe capitare vari mesi dopo l’inizio della missione di monitoraggio. Ciò è di importanza critica
specialmente nelle applicazioni di sorveglianza o monitoraggio ambientale come il monitoraggio sismico.
- Nessuna riconfigurazione online del sistema. L’interazione tra sistemi di controllo a terra e gli strumenti di monitoraggio non
è possibile. Ciò ostacola qualunque tuning adattativo degli strumenti, né è possibile riconfigurare il sistema dopo che si sono
verificati particolari venti.
- Nessun rilevamento di guasto. Se si verificano dei guasti o errori di configurazione, potrebbe non essere possibile rilevarli
prima che gli strumenti vengano recuperati. Questo può facilmente portare al guasto completo di una missione di
monitoraggio.
- Capacità di storage limitata. La quantità di dati che può essere registrata durante la missione di monitoraggio da ogni sensore
è limitata dalla capacità dei dispositivi di storage a terra.
Di conseguenza, c’è bisogno di disporre reti subacquee che permettano il monitoraggio in tempo reale di superfici oceaniche
selezionate, la configurazione remota e l’interazione con operatori umani a terra. Ciò può essere ottenuto connettendo strumenti
subacquei x mezzo di collegamenti wireless basati su comunicazione acustica.
Le sfide più grandi nel progettare reti acustiche sono:
- la banda disponibile è severamente limitata;
- il canale subacqueo è severamente compromesso, specialmente a causa di multi-cammino e fading;
- il ritardo di propagazione sottacqua è 5 ordini di magnitudo maggiore di quella nei canali terrestri a radiofrequenza, ed
estremamente variabile;
- si possono sperimentare perdite temporanee di connettività (zone d’ombra) ed un alto BER, a causa delle caratteristiche
estreme del canale subacqueo;
- l’energia della batteria è imitata e le batterie di solito non possono essere ricaricabili, anche xk l’energia solare non può
essere sfruttata;
- i sensori subacquei sono inclini a guasti a causa di fouling e corrosione.

15
Descriviamo ora l’architettura di comunicazione delle reti subacquee di sensori acustici. La topologia della rete è in genere un
fattore cruciale nel determinare il consumo energetico, la capacità e l’affidabilità di una rete.
Le missioni di monitoraggio subacqueo possono essere estremamente costose a causa dell’alto costo dei dispositivi subacquei. Di
conseguenza, è importante che la rete disposta sia altamente affidabile, in modo da evitare guasti delle missioni di monitoraggio
dovuti al gusto di un singolo o molteplici dispositivi. X es., è cruciale evitare la progettazione della topologia della rete con un
singolo punto di vulnerabilità che potrebbe compromettere il funzionamento completo della rete.
Anche la capacità della rete è influenzata dalla topologia della rete. Dal momento che la capacità del canale subacqueo è
severamente limitato, è molto importante organizzare la topologia di rete in modo t.c. nessun collo di bottiglia di
comunicazione venga introdotto.
Le architetture di comunicazione introdotte qui vengono usate come base x la discussione delle sfide associate alle reti
subacquee di sensori acustici. Discutiamo le seguenti architetture:
- UW-ASN (Underwater Acoustic Sensor Networks) statiche bi-dimensionali x il monitoraggio del fondale oceanico. Queste sono
costituite da nodi sensore ancorati sul fondale oceanico. Le tipiche applicazioni possono essere monitoraggio ambientale,
oppure monitoraggio delle placche tettoniche.
- UW-ASN statiche tri-dimensionali x il monitoraggio delle colonne oceaniche. Queste includono reti di sensori le cui profondità
possono essere controllate, e potrebbero essere usate x applicazioni di sorveglianza o di monitoraggio di fenomeni oceanici.
- Reti tri-dimensionali di AUV (Autonomous Underwater Vehicles). Queste reti includono porzioni fisse composte da sensori
ancorati e da porzioni mobili costituite da veicoli autonomi.

Reti bi-dimensionali subacquee di sensori:


Un’architettura di riferimento x reti subacquee bi-dimensionali viene mostrata in Fig. 1.

Un gruppo di nodi sensore viene ancorato al fondale oceanico. I nodi sensore subacquei vengono interconnessi ad uno o più sink
subacquei (uw-sink) x mezzo di collegamenti acustici wireless. Gli uw-sink, come mostrato nella Fig. 1, sono dispositivi di rete
responsabili x trasmettere in relay i dati dalla rete sul fondale oceanico ad una stazione sulla superficie. X raggiungere
quest’obiettivo, gli uw-sink vengono equipaggiati con 2 trans-ricevitori acustici, ossia un trans-ricevitore verticale ed uno
orizzontale. Il trans-ricevitore orizzontale viene usato dal uw-sink x comunicare con i nodi sensore in modo da: (I) inviare comandi e
dati di configurazione ai sensori (da uw-sink a sensori); (II) collezionare dati monitorati (da sensori a uw-sink). Il link verticale viene
usato dagli uw-sink x trasmettere in relay i dati ad una stazione in superficie. In applicazioni ad acque profonde, i trans-ricevitori
verticali devono essere a lungo range siccome l’oceano può essere molto profondo (x es., 10 km). La stazione in superficie viene
equipaggiata con un trans-ricevitore acustico che è capace di gestire molteplici comunicazioni parallele con gli uw-sink disposti. È
anche dotato di un trasmettitore satellitare o di radiofrequenza a lungo range x comunicare con il sink in superficie.
I sensori possono essere connessi agli uw-sink attraverso link diretti oppure cammini multi-hop. Nel primo caso, ogni sensore invia
direttamente i dati al uw-sink selezionato. Tuttavia, nelle UW-ASN, l’energia necessaria x trasmettere potrebbe decadere con
potenze maggiori del doppio della distanza, e l’uw-sink potrebbe essere lontano dal nodo sensore. Di conseguenza, sebbene la
connessione a collegamento diretto sia il modo più semplice x i sensori della rete, potrebbe non essere la soluzione più
energeticamente efficiente. Inoltre, i link diretti molto probabilmente riducono il throughput della rete a causa dell’interferenza
acustica incrementata dovuto ad alta potenza di trasmissione. Nel caso di cammini multi-hop, come nelle reti di sensori terrestri, i
dati prodotti da un sensore src vengono trasmessi in relay da sensori intermedi finché non raggiungono l’uw-sink. Ciò potrebbe
risultare in risparmi energetici e capacità di rete aumentata, ma aumenta la complessità della funzionalità di instradamento. Infatti,
ogni dispositivi di rete di solito prende parte in un processo collaborativo il cui obiettivo è di diffondere info di topologia t.c. si
possano effettuare decisioni efficienti e libere da cicli di instradamento ad ogni nodo intermedio. Dal momento che l’energia e la
capacità sono risorse preziose in ambienti subacquei, nelle UW-ASN l’obiettivo è di spedire caratteristiche d’evento sfruttando
cammini multi-hop e minimizzando l’overhead di segnalazione necessario x costruire cammini subacquei allo stesso tempo.

16
Reti tri-dimensionali subacquee di sensori:
Vengono usate x rilevare ed osservare fenomeni che non possono essere adeguatamente osservati x mezzo di nodi sensore sul
fondale oceanico, cioè x effettuare campionamento cooperativo dell’ambiente 3D oceanico. Nelle reti subacquee 3D, i nodi sensore
galleggiano a diverse profondità in modo da osservare un dato fenomeno. Una possibile soluzione sarebbe di attaccare ogni nodo
uw-sensore ad un gavitello di superficie, x mezzo di fili le cui lunghezze possono essere regolate in modo da aggiustare la profondità
di ogni nodo sensore. Tuttavia, sebbene questa soluzione permetta un facile e veloce dispiegamento della rete di sensori, molteplici
gavitelli galleggianti potrebbero ostruire le navi che navigano sulla superficie. Inoltre, i gavitelli galleggianti sono vulnerabili alle
condizioni temporali ed alla manomissione o furti. X queste ragioni, un approccio differente può essere di ancorare dispositivi
sensore sul fondale oceanico. In questa architettura, raffigurata in Fig. 2, ogni sensore è ancorato al fondale oceanico ed
equipaggiato con un gavitello galleggiante che può essere gonfiato da una pompa.

Il gavitello spinge il sensore verso la superficie dell’oceano. La profondità del sensore può allora essere regolata aggiustando la
lunghezza del filo che connette il sensore all’ancora, x mezzo di un motore controllato elettronicamente che risiede sul sensore. Un
problema su cui stare attenti in una tale architettura è l’effetto delle correnti oceaniche sul meccanismo descritto x regolare la
profondità dei sensori.
Molte problematiche risalgono in una tale architettura, che devono essere risolte in modo da abilitare il monitoraggio 3D, incluso:
- Copertura di sensing. I sensori dovrebbero regolare in maniera collaborativa la loro profondità in modo da ottenere
copertura 3D della colonna oceanica, a seconda dei loro range di sensing. Quindi, deve essere possibile ottenere
campionamento del fenomeno desiderato a tutte le profondità.
- Copertura di comunicazione. Dal momento che nelle reti 3D subacquee potrebbe non esserci menzione di uw-sink, i sensori
dovrebbero essere capaci di trasmettere in relay info alla stazioni in superficie attraverso cammini multi-hop. Quindi, i
dispositivi di rete dovrebbero coordinare le loro profondità in modi tale che la topologia della rete sia sempre connessa, cioè
che esista sempre almeno un cammino da ogni sensore verso la stazione in superficie.

Reti di sensori con veicoli subacquei autonomi:


Queste reti possono funzionari come funi, cavi, oppure come controllo remoto, e di conseguenza hanno una moltitudine di
applicazioni in oceanografia, monitoraggio ambientale, e nello studio delle risorse subacquee.
Uno degli obiettivi di progettazione degli AUV è di fare in modo che si affidano su intelligenza locale. In genere, sono necessarie
delle strategie di controllo x il coordinamento autonomo,x evitare ostacoli e x strategie steering. I sistemi energetici solari
permettono di aumentare il tempo di vita degli AUV, cioè non è necessario recuperare e recuperare il veicolo quotidianamente. Di
conseguenza, gli AUV alimentati dal sole possono acquisire info continua x periodi di tempo dell’ordine di mesi.

Differenze con reti di sensori terrestri:


- Costo. I sensori subacquei sono dispositivi costosi. Ciò è soprattutto dovuto ai trans-ricevitori subacquei più complessi ed alla
protezione hw necessaria nell’ambiente subacqueo estremo.
- Distribuzione. Mentre le reti di sensori terrestre sono densamente distribuite, sottacqua il dispiegamento si ritiene che sia più
sparso, a causa del costo coinvolto ed alle problematiche associate al dispiegamento stesso.
- Energia. L’energia necessaria x le comunicazioni acustiche subacquee è maggiore rispetto alle radiocomunicazioni terrestri
dovuto alle distanze maggiori ed all’elaborazione di segnali più complessi ai ricevitori x compensare i danneggiamenti del
canale.
- Memoria. Mentre i nodi sensore terrestri hanno capacità di storage molto limitata, i sensori subacquei potrebbero dover
essere capaci di fare del caching di dati siccome il canale subacqueo potrebbe essere intermittente.
- Correlazione spaziale. Mentre le letture da sensori terrestri sono spesso correlati, ciò è più probabile che succeda nelle reti
subacquee a causa della maggior distanza tra sensori.

17
Uno stack protocollare cross-layer:
Uno stack protocollare x i sensori subacquei dovrebbe combinare consapevolezza e gestione energetica, e promuovere la
cooperazione tra i nodi sensore. Dovrebbe consistere della funzionalità degli strati fisico, di collegamento, di rete, di trasporto ed
applicativo. Dovrebbe, inoltre, includere un piano di gestione energetica, un piano di coordinazione ed un piano di localizzazione. Il
piano di gestione energetica è responsabile delle funzionalità di rete mirate a minimizzare il consumo energetico (x es., modalità
sleep, controllo energetico, ecc.). Il piano di coordinazione è responsabile di tutte le funzionalità che richiedono la coordinazione tra
i sensori (x es., coordinazione delle modalità sleep, aggregazione dati, ottimizzazione della topologia 3D). il piano di localizzazione è
responsabile x fornire info di localizzazione relativa o assoluta al nodo sensore, quando necessario dallo stack protocollare o
dall’applicazione.
L’ambiente subacqueo richiede particolarmente soluzioni di design cross-layer che permettano un uso più efficiente della scarsa
disponibilità di risorse.

Considerazione sulla propagazione acustica


La segnalazione acustica è la forma primaria delle comunicazione wireless subacquee. Non c’è un “tipico” ambiente acustico
subacqueo, quindi non esiste un “tipico” canale subacqueo di comunicazione acustica.
La propagazione acustica attraverso l’acqua marina è caratterizzata da una significativa attenuazione dipendente da frequenza ed
una velocità di propagazione relativamente lenta. Queste caratteristiche sono presenti in tutti gli ambienti oceanici.
Perdita di diffusione, perdita d’assorbimento e perdita di dispersione sono i 3 meccanismi primari che attenuano i segnali ascustici
subacquei. Le perdite di diffusione sono dovute all’espansione della quantità fissa d’energia trasmessa su una superficie più grande
con il propagarsi del segnale lontano dalla sua src. Ad intervalli relativamente corti, la superficie crescente viene rappresentata dalla
-2
superficie di una sfera, quindi il decadimento dell’energia del segnale dovuto alla perdita di diffusione è ad un tasso di R dove R è
l’intervallo dalla src.
Tuttavia, l’oceano è limitato da sopra dalla superficie e, alle frequenze ed intervalli di solito di interesse x le comunicazioni acustiche,
è effettivamente limitato da sotto dal fondale marino. Dunque, a qualche range dalla src il segnale acustico non può più diffondere
verticalmente e la natura della diffusione cambia da diffusione sferica a diffusione cilindrica. Questa transizione di solito occorre ad
intervalli molto maggiori della profondità dell’acqua. Nella regione di diffusione cilindrica, l’energia del segnale decade a causa della
-1
perdita di diffusione che è ad un tasso di R .
Un secondo meccanismo di perdita del segnale risulta dalla conversione dell’energia del segnale di propagazione in calore. Questo
meccanismo viene riferito come perdita di assorbimento. Nell’acqua marina, la perdita di assorbimento dei segnali acustici è
fortemente dipendente da frequenza ed aumenta con l’incremento della frequenza.
Ad intervalli corti, la perdita di diffusione sferica domina la perdita d’assorbimento. Persino ad intervalli corti (x es., cca 400 metri) la
perdita d’assorbimento a 100kHz eccede quella a 25 kHz da vicino a 15 dB.
La velocità relativamente lenta della propagazione del suono attraverso acqua marina (c ≈ 1500 m/s) è anche un fattore che la
differenzia dalla propagazione elettromagnetica (c ≈ 300.000.000 m/s). La velocità lenta di propagazione impatta le prestazioni dei
sistemi di comunicazioni in vari modi. Primo, i tempi di coerenza del canale possono essere dell’ordine di 40 ms e la qualità di un
singolo hop può cambiare significativamente in cca un secondo.
Infine, la velocità relativamente lenta di propagazione risulta in alte diffusioni o Doppler shifts di segnali ricevuti risultanti da
fluttuazioni di propagazione dovute al movimento della piattaforma. Il Doppler shift (fd) di un segnale ricevuto è dato da fd = fo v/c
dove fo è la frequenza originale del segnale e v è il tasso di cambiamento della lunghezza del cammino di propagazione (x es., la
velocità della piattaforma). Quindi, persino ai valori modesti di v = 2 m/s e fo = 25 kHz, il Doppler shift di un segnale sarebbe
approssimativamente 33 Hz. Simili diffusioni Doppler sono stati riportati risultanti da una differenza nei tassi delle fluttuazioni delle
lunghezze di 2 cammini di propagazione. Queste diffusioni Doppler e Doppler shifts risultano in una riduzione nel tempo di coerenza
o apparente incremento nel tasso di fluttuazione del canale. Ciò complica il problema del tracciamento del canale ad un ricevitore.

Propagazione delle guide d’onda, multicammino e zone d’ombra:


Nella maggior parte degli ambienti ed alle frequenze d’interesse x segnali di comunicazione, l’oceano può essere modellato come
una guida d’onda con una superficie riflettente e fondale oceanico ed una velocità del suono nell’acqua variante in spazio. Le
riflessioni dei segnali acustici dalla superficie e fondale del mare e la rifrazione dei segnali dalla velocità del suono nella colonna
d’acqua variante in spazio risulta in molteplici cammini di propagazione da ogni src verso il ricevente. Questo multicammino risulta
in una diffusione di ritardo nell’impulso di risposta spesso a tempo-variante del canale di comunicazione che porta ad interferenza
intersimbolica al ricevente. X sistemi coerenti ad alto tasso di fase, il ricevente deve o esplicitamente o implicitamente stimare
quest’impulso di risposta in modo da stimare con successo la sequenza di dati che è stata trasmessa attraverso il canale. La capacità
del ricevente x fare questo dipende dalla diffusione di ritardo e dal tasso di fluttuazione dell’impulso di risposta del canale ed è un
fattore primario nel determinare la capacità del canale x supportare tali comunicazioni.
La rifrazione dei segnali dalla fluttuazione della velocità del suono non da solo crescita a multicamminoma può risultare nella
formazione di “zone d’ombra”. Queste sono aree dove c’è poca energia di segnale che si propaga. Quindi potrebbe essere difficile
comunicare con un ricevente posizionato in una zona d’ombra. Il fenomeno della zona d’ombra viene trovato a poca profondità
(ordini di 100 metri) ed a intervalli più corti. In questi ambienti, il movimento verticale delle masse d’acqua risulta in movimento
verticale della struttura della velocità del suono della colonna d’acqua.

Dispersione superficiale:
Le comunicazioni nella presenza della dispersione di un qualche segnale trasmesso dalla superficie marina in movimento presentano
uno degli scenari di comunicazione più problematici. La superficie ruvida del mare da luogo ad una crescita di una diffusione nel

18
ritardo di ogni cammino di rimbalzo superficiale, può ridurre la correlazione spaziale dei segnali sparsi, e può risultare in intensità
molto alta ed in arrivi rapidamente fluttuanti nel’impulso di risposta del canale.
Quando la superficie del mare è calma, ogni cammino sparso sulla superficie risulta in un arrivo nell’impulso di risposta che è sia
equamente stabile che localizzato in ritardo. In tali casi, l’impulso di risposta del canale è spesso sparso (cioè ha arrivi significativi a
soltanto qualche posizione in ritardo). Con la superficie che diventa più dinamica e ruvida, gli arrivi non solo iniziano a fluttuare nel
tempo ma diventano anche diffusi in ritardo. Ciò risulta nel bisogno di tracciare un impulso di risposta meno sparso.
La coerenza spaziale dei segnali ricevuti è di preoccupazione nei sistemi che usano tecniche MIMO x incrementare il tasso di dati del
link. Il ruolo della dispersione superficiale nel determinare la qualità dei link di comunicazione può risultare che la qualità del link
abbia una caratteristica periodica quando le onde superficiali sono quasi periodiche.

Ci sono vari src naturali importanti di rumore ambientale nell’oceano a frequenze di interesse x comunicazioni acustiche. Queste
includono onde che si infrangono e bolle, src biologiche, e pioggia. Il rumore ambientale è stato studiato estensivamente con un
tema comune che la potenza di densità spettrale del rumore decresce con l’aumentare della frequenza. Le bolle sono una scr
primaria di rumore ambientale nell’oceano aperto nella banda da 3 a 30 kHz.
L’attenuazione del segnale e la velocità di propagazione, la guida d’onda oceanica e multicammino che cambia nel tempo,
dispersione superficiale, bolle, e rumore ambientale tutti possono avere un impatto sullo strato fisico, MAC, routing, ecc..

CARP: protocollo di instradamento x reti wireless acustiche subacquee


CARP sfrutta info sulla qualità del link x l’inoltro dei dati, in modo che dei nodi vengono selezionati come relay se mostrano ai loro
vicini una storia recente di trasmissioni effettuate con successo. CARP evita i cicli e può instradare con successo attorno buchi di
connettività e zone d’ombra usando della semplice info di topologia, come il nr di hop. Il protocollo viene anche progettato x trarre
vantaggio del controllo energetico x selezionare link robusti.
I lunghi ritardi di propagazione, bassa banda, variabilità della velocità del suono, bassa attenuazione della potenza del segnale, e le
condizioni del canale subacqueo che cambiano rapidamente influenzano le UWSN su tutti i livello della loro progettazione e
dispiegamento. In particolare, i protocolli MAC e di instradamento trovano nuove problematiche rispetto alle loro controparti
terrestri, cioè che i meccanismi di accesso al canale e le tecniche di instradamento sono altamente influenzate dalla qualità del link
le cui variazioni sono meno prevedibili e gestibili di quelle dei link wireless radio. Le tendenze recenti nel design del protocollo
mostrano che le tecniche cross-layer possono avere un impatto positivo sulle prestazioni del protocollo, soprattutto in reti con
risorse limitate e/o dispiegate in ambienti problematici, come le UWSN. Un esempio di instradamento cross-layer viene fornito dal
protocollo Forward Beam Routing (FBR). I pacchetti di controllo (RTS e CTS come nell’accesso al canale CSMA/CA) vengono usati x
riservare il canale, una tipica funzione MAC. I pacchetti di controllo, tuttavia, portano anche info di posizione del nodo che viene
usata x scopi di instradamento, ossia x selezionare come relay del hop successivo il nodo che è più vicino al sink. L’uso dei pacchetti
corti x l’accesso al canale e x la selezione del relay risulta particolarmente efficace nell’instradamento nell’ambiente problematico
delle UWSN. Questo xk le loro trasmissioni sono relativamente facili anche a bassi tassi dei modem acustici, e xk sono meno
soggettivi ad errori di bit ed alle interferenze. Tuttavia, nelle condizioni velocemente varianti del canale subacqueo, il fatto che 2
nodi possano scambiare correttamente corti pacchetti di controllo, potrebbe non essere sufficiente a garantire che i pacchetti di
dati più lunghi verranno anche spediti in maniera sicura. In altre parole, i protocolli come FBR che non considerano l’info della
qualità del link come un criterio x la selezione del relay sono cmq molto inclini ad errori di bit. Questo è un problema che influenza
molte altre soluzioni cross-layer.
CARP, mentre cmq ottiene i benefici del design a cross-layer (piccoli pacchetti x l’accesso robusto al canale e x la selezione del relay),
ovvia gli svantaggi delle altre soluzioni x cui la qualità del link è esplicitamente presa in considerazione x selezionare il nodo del hop
successivo su una rotta verso il sink. La storia delle trasmissioni effettuate con successo verso nodi vicini viene mantenuta ed usata
nella selezione del relay. Altre caratteristiche che rendono la selezione di relay di CARP particolarmente adatta x implementare
instradamento multi-hop nelle UWSN includono il seguente: (I) l’utilizzo di semplice info di topologia (nr di hop) x instradare attorno
a buchi di connettività e zone d’ombra, evitando cosi le trappole ben conosciute dell’instradamento geografico; (II) il considerare
l’energia residua e lo spazio nel buffer, e (III) il trarre vantaggio del controllo energetico, se disponibile, x selezionare potenze di
trasmissione in modo che i pacchetti di controllo più corti sperimentano un simile Packet Error Rate (PER) di pacchetti di dati più
grandi.

Tra i primi protocolli x affrontare il problema del trovare rotte da un nodo sensore subacqueo verso il sink è il Vector-Based
Forwarding (VBF). I nodi inoltrano pacchetti diffondendoli verso nodi risiedenti in un “tubo” forzato di larghezza data nella direzione
del sink. Il tubo circonda una linea virtuale (un vettore) tra il nodo del pacchetto src ed il sink. L’efficienza del protocollo,
specialmente il suo throughput, dipende dalla determinazione critica del raggio del tubo: se il raggio è troppo piccolo, pochi o
nessun relay possono essere trovati nel tubo; se è troppo grande, troppi nodi potrebbero ricevere il pacchetto, la cui ritrasmissione
incrementa l’interferenza, l’overhead, ed i pacchetti duplicati.
Un’altra soluzione è ad instradamento geografico basato su flooding, Directional Flooding-based Routing (DFR). I pacchetti vengono
diffusi in broadcast da ogni nodo S a tutti i suoi vicini. In base ad info direzionale, ossia dall’angolo SFD tra il mittente S, il forwarder
F e la destinazione D (cioè il sink), un nodo decide se inoltrare il pacchetto o meno. La decisione viene fatta confrontando l’angolo
SFD con un angolo di riferimento portato dal pacchetto. Le condizioni variabili del canale subacqueo vengono indirizzate cambiando
l’angolo di riferimento su base hop-by-hop a seconda della qualità del link: migliore è il secondo, più piccola è la zona di flooding. Dal
momento che determinare l’info geografica subacquea può essere difficile, o potrebbe richiedere un alto costo/overhead, alcuni
protocolli usano info geografica parziale. Questo tipo di info, come la profondità (distanza dalla superficie), può essere facilmente
determinato con grande accuratezza. Questo è il caso di DBR, il protocollo Depth Based Routing. Ogni nodo che riceve un pacchetto

19
dati lo inoltra soltanto se la sua profondità è meno di quella del mittente. Prima di inoltrare il pacchetto dati, un nodo possiede un
pacchetto x un tempo che dipende dalla differenza tra la sua propria profondità e quella del mittente. In particolare, maggiore è la
distanza verticale, minore è il tempo di possesso, cosi che nodi che sono più vicini alla superficie (cioè al sink) sono i primi ad
inoltrare il pacchetto dati. Mentre si tiene il pacchetto, un nodo ascolta x le trasmissioni sul canale. Se risente (overhear) che il
pacchetto che sta x trasmetterlo in broadcast viene in effetti trasmesso da un altro nodo, il nodo scarta il pacchetto. Protocolli come
HydroCast e VAPR anch’essi basano le decisioni di inoltro sulla profondità del nodo. L’idea di queste soluzioni è simile a quella di
DBT: un nodo inoltra un pacchetto soltanto se altri nodi più vicini al sink non possono inviarlo. HydroCast cerca di trovare un insieme
di possibili relay che massimizzano il “avanzamento atteso del pacchetto”, mentre si limita il nr dei nodi di inoltro x ridurre le
trasmissioni ridondanti, le collisioni dei pacchetti e di conseguenza l’interferenza co-canale e l’impatto del fenomeno del terminale
nascosto. Delle strategie di recupero di rotta vengono fornite dove rotte alternative vengono scoperte attraverso una limitata
ricerca di hop di una superficie 2D di un convex hull attorno una zona vuota. VAPR usa lo stesso algoritmo di selezione dell’insieme
di inoltro di HydroCast. I nodi conoscono il loro vicino del hop successivo verso il sink grazie all’info di raggiungibilità della superficie
inondata partendo dal sink attraverso beaconing periodico. Usando le piste direzionali create, il protocollo effettua un local
opportunistic directional flooding x spedire i dati.
Il protocollo SUN (Source Routing for Underwater Networks), versione modificata del DSR adattata alle UWSN, determina rotte
verso il sink in base alla distanza di hop di un nodo dal sink ed in base al SNR (signal to noise ratio) dei link nella rotta.
Un approccio cross-layer x l’inoltro dei dati presenta 2 protocolli distribuiti x applicazioni non sensitive e sensitive al ritardo,
rispettivamente, dove ogni nodo seleziona in combinazione il suo migliore hop successivo, l’energia trasmessa, ed il tasso FEC x ogni
pacchetto in un fascino cross-layer. L’obiettivo è quello di minimizzare il consumo energetico, prendendo in considerazione la
condizione del canale subacqueo e dei requisiti delle applicazioni. Più recentemente, sono state sfruttate le interazioni cross-layer
delle funzionalità subacquee più importanti come la modulazione, FEC, MAC e l’instradamento x sviluppare un protocollo di
comunicazione x la condivisione efficiente ed equa del mezzo acustico subacqueo ad alto ritardo ed a banda limitata.
FBR (Focused Beam Routing) – i nodi conoscono la loro propria posizione e la posizione del sink (instradamento geografico). Quando
un nodo ha un pacchetto dati da inviare, esso prima trasmette un pacchetto di controllo (x es., un pacchetto RTS) ed attende
risposte da nodi in un cono centrato sulla linea tra se stesso ed il sink. Ogni nodo che riceve un pacchetto RTS risponde con un
pacchetto CTS contenente la sua posizione insieme ad altre info utili. Tra tutti i nodi che rispondono , il più vicino al sink viene scelto
come relay del hop successivo. FBR suppone anche che i nodi possono scegliere la loro potenza di trasmissione entro un insieme di
diversi livelli di potenza, da P1 a Pn. Se non ci sono nodi entro il range di ascolto a potenza Pi, il trasmittente incrementa la sua
potenza a Pi+1, e ritenta. Il processo continua finché non viene trovato un relay oppure il pacchetto viene scartato.

CARP:
Inizializzazione della rete e settaggio del nr di hop
Ogni nodo x memorizza la sua distanza di hop dal sink nella variabile HC(x), inizialmente impostata ad un valore molto grande
(maggiore della rotta più lunga possibile nella rete). La variabile HC del sink viene settata a 0. Alla partenza delle operazioni di rete il
sink inonda un pacchetto HELLO attraverso la rete. Questo pacchetto porta l’ID univoco (src) del nodo che lo inoltra (all’inizio, sarà
l’ID del sink) ed il valore HC del nr di hop: HELLO = <src,HC>. Alla ricezione di un pacchetto HELLO, un nodo x controlla se la
sua variabile del nr di hop HC(x) è maggiore del nr di hop HC portato dal pacchetto più 1. Se lo è, il nodo aggiorna il suo HC(x) al
valore del pacchetto HELLO più 1 e lo ritrasmette aggiornando il campo del nr di hop del pacchetto a HC(x); altrimenti, il nodo
scarta il pacchetto. Quando questa fase di avviamento ha finito ogni nodo conosce la sua distanza di hop dal sink.

Inoltro dati
Quando un nodo x ha uno o più pacchetti dati da inoltrare, esso invia un pacchetto di controllo broadcast, chiamato PING, cercando
un relay adatto nel suo vicinato. Il pacchetto PING porta la seguente info: PING = <src,HC,pid,Lpkt>. Il campo src è l’id
univoco del nodo x; HC è il val del nr di hop di x; pid è l’id univoco del pacchetto PING corrente (la coppia <src,pid> identifica
univocamente ogni pacchetto PING); Lpkt è una lista di coppie <pktsrc,pktid> ognuno ad identificare un pacchetto dati che x
deve inoltrare. In particolare, pktsrc è l’id univoco del nodo che genera il pacchetto il cui ID è pktid.. se il nr di queste coppie è > 1
allora un treno di pacchetti dati viene trasmesso in back-to-back.
Un nodo y che riceve un pacchetto PING dal nodo x e tale che HC(y) ≤ HC(x) risponde a x trasmettendo un pacchetto PONG. Il
pacchetto PONG porta la seguente info: PONG = <src,dst,pid,HC,coda,energia,lq,bit_maskLpkt,bit_maskJR>.
Il campo src e dst contengono gli id dei nodi y e x, rispettivamente. Il parametro pid è quello del PING ricevuto: i pacchetti PING e
PONG vengono sempre accoppiati da questo parametro. Il campo HC contiene HC(y). Il campo queue indica che lo spazio del buffer
disponibile a y, cioè il nr di pacchetti che y può immagazzinare nella sua coda di dati in arrivo. Il parametro Energy indica l’energia
residua disponibile al nodo y. Il parametri lq è un indicazione della qualità dei link in uscita da y. I campi bit_maskLpkt e
bit_maskJR vengono usati x gestire le asimmetrie dei link, cioè link unidirezionali, come l’interferenza. In particolare, essi
riportano sui pacchetti già ricevuti dal sink e dal relay selezionato, rispettivamente. Alla ricezione di un pacchetto PING da x, un
nodo y esegue Algoritmo 1:

20
Se il nr di hop del nodo y è maggiore di quello portato dal pacchetto PING, y scarta il PING. Altrimenti, esso prima controlla quali
Lpkt pacchetti sono già stati ricevuti dal sink ed imposta i bit bit_maskLpkt dei pacchetti spediti a 1. Controlla poi se ha ricevuto alcuni
dei Lpkt pacchetti da x, ed imposta di conseguenza i bit corrispondenti di bit_maskJR ad 1. Infine, il pacchetto PONG viene inviato al
2
nodo x .
La selezione relay si verifica come segue. Dopo aver inviato un PING, nodo x attende le risposte PONG dai suoi vicini x un tempo δ. Il
valore di δ viene impostato al RTT del vicino più lontano più i ritardi di trasmissione di un pacchetto PING e PONG. Se x non riceve
alcuna risposta dai suoi vicini, esso continuo ad invia lo stesso PING x al più k volte. Dopo questi k tentativi, incrementa il campo HC
del PING al valore del max nr di hop, cosi che chiunque dei suoi vicini risponderà con un PONG. (se di nuovo nessun PONG viene
ricevuto, i pacchetti dati vengono scartati). Dopo il tempo δ il nodo x esegue l’algoritmo 2. X ogni PONG ricevuto, controlla quali
pacchetti possono essere rimossi dalla sua coda xk sono già stati ricevuti dal sink (i loro bit in bit_maskLpkt sono impostati ad 1). Poi
sceglie il miglior relay tra i nodi che hanno risposto con un pacchetto PONG.

I pacchetti già ricevuti dal relay selezionato (riconosciuti dai bit impostati ad 1 nella maschera di bit bit_maskJR portata dal PONG)
vengono rimossi dalla coda x. Dopo questo aggiornamento, nodo x trasmette al relay selezionato tanti pacchetti quanto il relay ne
può ricevere (come indicato nel campo queue portato dal PONG), se ce ne sono (cioè se Lpkt ≠ 0). Quando si seleziona il miglior nodo
relay, x ogni vicino y che risponde con un PONG, nodo x calcola la goodness di quel vicino considerando la qualità lqx,y del link da x a
y, e la qualità del miglior link tra quelli da y ai suoi vicini z, come segue: goodnessy = lqx,ylqy,z. Il nodo y con il maggior valore
di goodnessy+1/HC(y) viene scelto come relay. Vengono preferiti i nodi con una minore distanza di hop o goodness più alta dal
sink. Se ci sono parità, viene data priorità al nodo con maggior energia, e poi al nodo con maggior spazio libero nel buffer. Ulteriori
parità vengono rotte usando gli id univoci del nodo. Alla ricezione di un treno di pacchetti dati, un nodo y risponde a x (unicast) con
un ACK cumulativo, riscontrando ogni singolo pacchetto nel treno che è stato ricevuto correttamente. In particolare: ACK =
<src,dst,pid,HC, bit_maskLpkt>, dove src e dst sono gli ID dell’ACK mittente (y) e del suo destinatario (x), pid è l’ID del
handshake PING/PONG, HC è il nr di hop del mittente, e la maschera di bit bit_maskLpkt codifica i pacchetti che vengono
riscontrati. Una volta ricevuto un riscontro da y, nodo x aggiorna il suo nr di hop x riflettere possibili cambiamenti nella topologia
della rete. Quando nodo y ha ricevuto un treno di uno o più pacchetti, controlla se gli ha ricevuti precedentemente in modo da
ritrasmettere solo quelli che prima non sono stati inviati. In modo da incrementare la robustezza, il sink diffonde sempre in
broadcast i suoi riscontri (anziché usare comunicazioni unicast come gli altri nodi). Come conseguenza, i vicini del sink che sono
consapevoli dei pacchetti consegnati con successo possono informare gli altri nodi con il piggybacking di questa info nel campo
bit_maskLpkt dei loro pacchetti PONG.
Calcolare la qualità del link lq. Valutare la qualità del link lq è il passo fondamentale x calcolare la goodness dei vicini di un
mittente x in ricerca di un relay. In particolare, il goodnessy di un vicino y di x punta a rappresentare una stima della qualità del
canale da x a y (lqx,y) e da y al suo miglior vicino raggiungibile z in una rotta verso il sink (lqy,z). LA qualità lqy,z dei link uscenti da
y viene calcolato da y in base al successo delle trasmissioni del passato ai suoi vicini z. È definito come una media mobile
esponenziale, dove il peso delle trasmissioni del passato è meno influenzale di quello delle trasmissioni recenti nel valutare la
goodness del link x le trasmissioni. Questo permette a CARP di tenere conto la natura variabile di tempo del canale, dando più
importanza alle prestazioni recenti. Più formalmente, consideriamo 2 tipi di trasmissioni sul canale: 1) il handshake PING/PONG, e
2) la trasmissione di un (treno di) pacchetto(i) dati ed il corrispondente ACK. X ogni trasmissione t dal nodo y ad uno dei suoi vicini z,
nodo y calcola: lqty,z = αYty,z+(1-α)lqt-1y,z. Il coefficiente α ϵ (0,1) è il fattore costante di smoothing attraverso il quale
possiamo controllare quanto velocemente l’influenza di trasmissioni più vecchie decresce. X es., un α maggiore potrebbe essere

21
usato x canali subacquei altamente variabili, siccome riduce più velocemente le trasmissioni più vecchie. Il termine Yty,z è il
rapporto di successo della t-esima trasmissione da y a z. Il termine lqt-1y,z è il valore della media mobile dopo t-1 trasmissioni da y
a z. Dal momento che la definizione dell’ultima equazione è ricorsiva, definiamo lq1y,z come il rapporto di successo della prima
trasmissione. Il valore lq che il nodo y trasmette nel suo pacchetto PONG a x è il migliore tra lqy,z a tutti i suoi vicini z che
potrebbero trasmettere ulteriormente in relay verso il sink il pacchetto, in base alle (differenti) trasmissioni con ognuno di loro. Il
valore lqx,y usato da x per calcolare la goodnessy viene determinato in maniera simile, attraverso trasmissione da x a y.
Aggiornare il nr di hop. Data l’estrema variabilità del canale subacqueo, determinare il nr di hop viene reso più dipendente dalla
qualità del canale che di quella dell’effettiva distanza di hop dal sink. Di conseguenza, nodo x monitora continuamente i link verso i
suoi vicini ed imposta il suo nr di hop ad un valore che dipende dalla qualità della trasmissione dati verso di loro. In modo da
implementare questo meccanismo, ogni nodo mantiene una struttura dati memorizzando Lratio_i x ogni nr di hop i, dove 1 ≤ i ≤
maxHC, essendo maxHC la distanza di hop max possibile di un nodo dal sink. Il Lratio_i è il valore della media mobile esponenziale del
rapporto tra il nr di pacchetti dati riscontrati ad x da ogni vicino con nr di hop i ed il nr di pacchetti inviati da x a quei nodi. Una soglia
viene impostata x filtrare via tutti quei link che non sono ritenuti adatti x trasmissioni con successo. Infine, x imposta il suo nr di hop
HC(x) al valore più piccolo i tale che Lratio_i è sopra una soglia.
Gestire l’asimmetria del link. La dinamica del canale può risultare in link che sono temporaneamente unidirezionali. Questi link
possono influenzare le prestazioni di CARP a seconda se il link unidirezionale è verso il sink, o verso un vicino. Link unidirezionali
verso il sink. Supponiamo che un vicino x del sink invia un PING x inizializzare la selezione relay. Questo PING viene ricevuto da tutti i
suoi vicini, incluso il sink. A causa del link unidirezionale verso il sink, x non può ricevere il PONG dal sink. Il relay del hop successivo
deve essere un altro nodo y che sarà il ricevente del pacchetto. Il sink, tuttavia, riceve il pacchetto dati correttamente, anche se il
pacchetto non è diretto ad esso. In modo da continuare ad inoltrare il pacchetto(i), nodo y diffonderà in broadcast un PING con l’id
(o gli id) del pacchetto(i) che vuole trasmettere. A questo punto, il sink è capace di identificare che ha già ricevuto quei pacchetti di
dati (da x), ed imposta il campo bit_maskLpkt del PONG verso y di conseguenza. Come conseguenza, nodo y elimina il pacchetto
dalla sua coda, evitando la sua ritrasmissione. Asimmetria del vicino. In modo da evitare ritrasmissioni non necessarie di pacchetti
ricevuti con successo ma i cui ACK sono andati persi, se un nodo riceve un PING facendo riferimento a pacchetti dati già ricevuti,
avverte il mittente usando la bit_maskJR del suo PONG appropriato. I bit corrispondenti ai pacchetti che sono stati correttamente
ricevuti vengono settati ad 1, che permette al mittente di scartarli.
CARP ed il controllo della potenza. I protocolli come CARP determinano il relay del hop successivo in base al corretto scambio dei
pacchetti di controllo. Una volta selezionato un vicino come relay, il canale viene riservato ed usato x la trasmissione dati. Tuttavia, i
pacchetti dati vengono di solito molto più grandi dei pacchetti di controllo. Di conseguenza, quello che è considerato un PER
accettabile x pacchetti di controllo potrebbe risultare in un PER (troppo) alto x i pacchetti dati. CARP trae vantaggio del controllo di
potenza del modem, se disponibile, x ottenere PER simile desiderato x entrambi i pacchetti di controllo e dati. La potenza usata x
trasmettere pacchetti PING e PONG viene calcolata x ottenere il PER desiderato corrispondente ad un dato tasso d’errore di bit
(BER) del canale. Una volta selezionato un relay, la potenza x inviare pacchetti dati viene aumentata cosi che il corrispondente PER
corrisponda a quello del handshake PING/PONG.

Una valutazione delle prestazioni comparativa dei protocolli MAC x reti di sensori
subacquee
La concentrazione è tutta su MAC. Varie soluzioni MAC che si rivolgono specificatamente sulle reti acustiche subacquee ad accesso
casuale sono state proposte. Tra le soluzioni basate su CSMA, Slotted Floor Acquisition Multiple Access (S-FAMA) combina il
rilevamento della portante con un dialogo tra la src e ricevente prima della trasmissione dati. Sebbene la slottizzazione del tempo
elimini il bisogno di pacchetti di controllo eccessivamente grandi, riducendo cosi il consumo energetico totale, dovuto all’alto ritardo
di propagazione, il meccanismo di handshake potrebbe cmq introdurre lunghi ritardi portanti ad abbassare il goodput del sistema.
Il Distance-Aware Collision Avoidance Protocol (DACAP), come S-FAMA, combina il rilevamento di portante ed uno scambio di
pacchetti di controllo RTS/CTS prima della trasmissione di dati, ma non richiede che i nodi siano sincronizzati su timeslot comuni. I
nodi ottengono l’info di distanza usando il RTT del pacchetto di controllo, ed usano questa info x migliorare l’utilizzazione del canale
riducendo il nr di collisioni.
Un altro modo di migliorare l’utilizzazione del sistema completo è di ridurre l’overhead, cioè la quantità di info di controllo inviata.
Questa è l’idea del protocollo T-Lohi dove i nodi inviano pacchetti corti (pacchetti tone) x notificare i vicini prima di inviare dati.
Impiegare pacchetti tone, la riservazione viene fatta in un modo rapido ed energeticamente efficiente. Ogni nodo invia il suo proprio
tone, ascolta il canale prima di trasmettere pacchetti dati, conta quanti altri nodi fanno lo stesso, in base al nr di pacchetti tone
ricevuti, e, se necessario, ritarda la sua trasmissione in base ad esso.
Qui viene proposto una nuova soluzione MAC basata su CSMA, col termine Propagation Delay Aware Protocol (PDAP). Il protocollo
punta a massimizzare l’utilizzazione della banda tenendo traccia delle trasmissioni vicine x evitare collisioni e ritrasmissioni,
permettendo cosi la trasmissione interleaved dei pacchetti tra diverse coppie di nodi.
I 3 protocolli, PDAP, DACAP (senza ACK) ed ALOHA (con ACK), in quest’ordine, sono molto meglio di tutti gli altri protocolli in uno
scenario a singolo hop. Nello scenario multi hop, i protocolli leggeri come ALOHA ed slotted ALOHA con ACK sono capaci di scalare a
carichi maggiori e di ottenere prestazioni migliori.
Con txRetry indichiamo il nr corrente di ritrasmissioni di un pacchetto. dataTime è il tempo che un nodo spende nel trasmettere un
pacchetto dati. rtsTime è il tempo che un nodo spende nel trasmettere un pacchetto di controllo RTS. ackTime indica il tempo che
un nodo spende nel trasmettere un pacchetto di controllo ACK. Infine, maxDelay è il max ritardo di propagazione di un pacchetto
nella rete, calcolato in base al max range di trasmissione e sulla velocità del suono sottacqua.

22
APCAP, il Adaptive Propagation-Delay Collision Avoidance Protocol, usa lo schema RTS/CTS x riservare il canale ed inviare dati. Tutti i
nodi vengono sincronizzati. Quando un nodo ha un pacchetto dati da trasmettere, esso invia un pacchetto RTS. A differenza del
classico schema RTS/CTS, il mittente non ha bisogno che il ricevente invii immediatamente indietro un CTS. Invece, imposta un
CTS_window indicando quando è disponibile x ricevere il pacchetto CTS. Questo permette al destinatario di negoziare con il
mittente il tempo quando può trasmettere il CTS. In modo simile, anche il mittente invia un DATA_window indicando il tempo x cui è
disponibile x trasmettere il pacchetto dati. Il tempo di trasmissione effettivo viene negoziato con la destinazione. L’utilizzo di queste
finestre riduce la chance che la destinazione fallisca nel trasmettere il CTS quando la src lo richiede xk non è disponibile, ed anche la
probabilità che la dst non riceva il pacchetto dati xk non è pronto x esso. Più precisamente, il protocollo APCAP funziona come
segue. Quando un nodo vuole trasmettere pacchetti dati controlla il suo proprio orario e scopre quando è libero x inviare il RTS. Esso
imposta anche il suo CTS_window e DATA_window. I valori di finestra vengono inviati nel RTS. Se il mittente riceve il CTS nel tempo
in cui lo attende, aggiorna il suo orario e trasmette il pacchetto al tempo negoziato portato nel CTS. Altrimenti, cancella il
CTS_window e DATA_window per questo pacchetto dati, e ritrasmette il RTS dopo un po’. Alla ricezione di un RTS se la dst è libera x
inviare un CTS entro la finestra temporale impostata dal mittente, lo fa ed indica un buon tempo x la ricezione di pacchetti dati. La
scelta del tempo aderisce con entrambi CTS_window e DATA_window come settato dal mittente, e prende in considerazione la
distanza da src e dst. Se la dst non può inviare un CTS quando la src lo può ricevere, esso ignora soltanto il RTS. Se la src non riceve il
CTS, pianifica x rinviarlo appena ha tempo libero. Secondo il meccanismo RTS/CTS x l’accesso al canale, quando un nodo riceve un
RTS e non è la dst intenzionata di questo pacchetto di controllo, imposta il suo Network Allocation Vector (NAV) in modo che esso
non trasmetta un pacchetto di controllo che arriverà al mittente durante il CTS_window. Quando un interferitore potenziale riceve
un CTS, imposta il suo NAV a seconda del tempo finale della trasmissione dati indicata dal CTS. Di conseguenza, non trasmetterà un
pacchetto di controllo che arriverebbe alla dst durante la ricezione del pacchetto dalla src. Il meccanismo APCAP adotta un
approccio aggressivo x l’accesso al canale, nel senso che un nodo che ha pianificato una data trasmissione non la ritarda o cancella
se gli viene detto delle altre comunicazione che si verificano nel canale. Questo a causa dei tipici lunghi ritardi di propagazione in un
ambiente subacqueo: c’è la possibilità che quando un nodo che ha pianificato una trasmissione sente che c’è un’altra trasmissione
in corso, quella trasmissione potrebbe essere già finita e di conseguenza non c’è alcuna ragione x ritardare il suo proprio invio.

DACAP sta x Distance Aware Collision Avoidance Protocol. Questo protocollo usa lo schema RTS/CTS x riservare il canale e x
trasmettere pacchetti dati. Quando un nodo ha un pacchetto dati da inviare, esso trasmette un RTS. Ricevendolo, la dst risponde
subito con un CTS. Esso attende poi il pacchetto dati. Se durante questo tempo esso sente un pacchetto di controllo x qualche altro
nodo, esso invia un pacchetto molto corto di WARNING al suo mittente. Alla ricezione di un CTS, un mittente attende qualche tempo
prima di trasmettere il pacchetto dati. Se sente un altro pacchetto di controllo oppure riceve un WARNING dalla dst durante questo
tempo, il nodo interrompe la trasmissione del pacchetto. La lunghezza del tempo di WARNING dipende dalla distanza tra la src e dst.
Il mittente può calcolare questa distanza misurando il RTT del RTS/CTS.
T-Lohi è un protocollo x reti subacquee a singolo hop. Quando un nodo ha un pacchetto dati da trasmettere, prima della
trasmissione effettiva fa partire un periodo di prenotazione (RP). Un RP è fatto da un certo nr di slot chiamati round di contesa (CR).
Durante un CR, il mittente trasmette un corto pacchetto di controllo (tone packet) x informare altri nodi del suo bisogno di accedere
al canale. Esso ascolta poi il canale x rilevare se anche altri nodi hanno pacchetti dati da inviare. Ogni nodo in contesa x il canale
conta quanti altri nodi fanno lo stesso in base al nr di tone packets ricevuti durante il CR. Se nessun altro tone viene sentito durante
il CR, il nodo prende il canale. Il suo RP è finito e trasmette il pacchetto dati. Se si verifica una contesa, i contendenti effettuano il
back off x un nr di CR scelti a caso ed uniformemente tra 0 ed il nr di competitori. Un nodo RP continua finché non ottiene l’accesso
al canale. Notiamo che i nodo non sono sincronizzati: ogni nodo che ha pacchetti dati da inviare fa partire il suo proprio RP x
l’accesso al canale e trasmissione, indipendentemente da altri nodi. La durata di un CR viene impostata in modo appropriato cosi
che un nodo ha abbastanza tempo x rilevare più contendenti possibili.

PDAP, il Propagation Delay Aware Protocol, usa il meccanismo RTS/CTS x il pernottamento del canale e x la trasmissione. Tutti i nodi
sono sincronizzati. In maniera simile ad APCAP, quando un nodo ha un pacchetto dati da trasmettere, controlla il suo proprio
orario(piano/schedule) x trovare tempi liberi x l’intero scambio di comunicazione; ovvero, x inviare il RTS, ricevere il CTS, ed inviare il
pacchetto dati. Il tempo x ricevere il CTS deve partire dopo il tempo necessario x il RTS x raggiungere la dst più il tempo x CTS a
ritornare. In modo simile, il tempo x inviare il pacchetto dati viene prenotato/pianificato immediatamente dopo il tempo di ricezione
del CTS. Prima di inviare il RTS, il mittente attende x un tempo casuale x evitare la sincronizzazione con altri potenziali mittenti.
txRetry
Questo tempo di attesa viene scelto a caso ed uniformemente in [0,T], dove T = 2 (2maxDelay + rtsTime). Quando è il tempo x
inviare il RTS un nodo controlla il canale. Se è idle, il nodo invia il RTS ed attende il CTS. Altrimenti, il mittente cancella la sua
prenotazione/schedule (tempi di pacchetti RTS, CTS e dati), incrementa il suo contatore di riprova e seleziona nuovi tempi x inviare il
RTS, ricevere il CTS e x inviare dati. Entrambi i pacchetti di controllo RTS e CTS contengono info sulla distanza tra la src e dst. Questa
dst viene calcolata in base al ritardo di propagazione del canale ed ai timestamp sui pacchetti di controllo. Di conseguenza, questa
info viene aggiornata ogni volta che i nodi comunicano. Quando un potenziale interferente riceve un pacchetto di controllo da un
nodo vicino, nel caso in cui abbia pianificato/prenotato una trasmissione che potrebbe collidere con comunicazione in corso, esso
aggiorna il suo proprio schedule e ritarda la sua trasmissione. La ricezione di RTS e CTS da un possibile interferente viene trattata
come segue. Quando un interferente riceve un pacchetto RTS, esso imposta il suo NAV in modo che non trasmetta info di controllo
che arriverebbe al mittente al tempo pianificato/prenotato della ricezione del CTS. Inoltre, esso non trasmetterà un pacchetto di
controllo che arriverebbe alla dst mentre la dst sta inviando il CTS. In modo simile, l’interferente non trasmetterà info di controllo
che arriverebbe al mittente durante la trasmissione del pacchetto dati ed alla dst mentre sta ricevendo i dati. Quando il nodo
interferente riceve il CTS, esso aggiorna il suo NAV a seconda del tempo di ricezione portato sul CTS. Come sì conseguenza,
l’interferente non trasmetterà info di controllo che arriverebbe alla dst durante la ricezione del pacchetto dati, ed alla src durante la
trasmissione dati. A differenza di APCAP, PDAP non ha una policy aggressiva di accesso al canale.
23

Potrebbero piacerti anche