Znajomość zjawisk i zdarzeń, które wystąpią w przyszłości interesuje ludzkość od wieków. Najbardziej oczywistym przykładem mogą być próby prognozowania zmian pogodowych. Początkowo wnioski dotyczące przyszłości były wynikiem obserwacji otoczenia i bazowały na wiedzy oraz doświadczeniu poszczególnych osób - ekspertów. Postęp technologiczny i rozwój nauki pozwoliły zastąpić „eksperta” specjalistycznym oprogramowaniem, które pozwala badać zjawiska zachodzące w przyszłości.
W obecnych czasach trafna prognoza różnych zjawisk w przyszłości przekłada się w gospodarce na wymierne korzyści materialne. Przykładem takiej sfery gospodarki jest przesył i dystrybucja gazu ziemnego. Wiarygodna informacja dotycząca wielkości poboru paliwa gazowego przez odbiorców w przyszłości pozwala na optymalne przygotowanie konfiguracji sieci gazowej i gwarantuje utrzymanie dostaw zgodnie z ustalonymi parametrami, co z uwagi na inercją całego systemu nie jest Łatwym zadaniem. Z punktu widzenia procesu prognozowania zapotrzebowania paliwa gazowego można wyróżnić dwie kategorie odbiorców. Pierwsza kategoria to odbiorcy wykorzystujący paliwo gazowe do celów utrzymania bieżącej działalności, gdzie zużycie paliwa gazowego jest ściśle związane ze skalą produkcji. Druga kategoria, to odbiorcy wykorzystujący paliwo gazowe do celów bytowych (ogrzewanie, przygotowanie posiłków). O ile w przypadku pierwszej kategorii, dany odbiorca znając plany dotyczące bieżącej działalności może poinformować dostawcę o zapotrzebowaniu na paliwo gazowe w przyszłości (składając np. nominacje), to w przypadku drugiej kategorii odbiorców, zużycie gazu jest uzależnione takich czynników jak temperatura, siłę wiatru, dzień tygodnia, pora dnia i nocy. Dla grupy takich odbiorców daje się zauważyć i opisać zależność zużycia gazu od wymienionych czynników, dzięki czemu wykorzystując odpowiednie modele matematyczne i algorytmy w powiązaniu z dostępną historią i prognozą dotycząca warunków atmosferycznych, możemy dokonać prognozy zużycia gazu w przyszłości.
W firmie TEL-STER od dłuższego czasu prowadzone są badania nad algorytmami związanymi z zagadnieniami prognozowania zużycia paliwa gazowego. Wynikiem tych badań są interesujące algorytmy bazujące na sieciach neuronowych, które z powodzeniem zostały zaimplementowane w gotowych produktach. Bazując na elementach tzw. sztucznej inteligencji, do jakich zalicza się rozwiązania oparte na sieciach neuronowych, udało się zaproponować rozwiązania, które zwalniają użytkownika z konieczności żmudnego budowania modelu dla celów prognozy. Efektem wspomnianych prac jest pakiet TelPrognose, który z powodzeniem uzupełnia oferowany przez firmę TEL-STER system TelWin SCADA o funkcje związane z analizę zachowania sieci gazowej w przyszłości. Podstawowym założeniem przy projektowaniu pakietu TelPrognose była pełna integracja z systemem TelWin SCADA. Zarówno dane wejściowe jak również wyniki są przechowywane w bazie Oracle systemu TelWin SCADA i są dostępne przez standardowe mechanizmy wizualizacji.
W skład pakietu TelPrognose wchodzą dwa moduły:
- TelProgCfg moduł wspierający proces konfiguracji,
- TelProgRun moduł obliczeniowy.
Etap konfiguracji pakietu TelPrognose sprowadza się do określenia tzw. węzłów prognozy dla których jest wyznaczana prognoza. Dostępne są dwa typy:
- pojedyncza stacja (rys.1),
- zespół stacji (rys.2).
Rys. 1 TelProgCfg - węzeł prognozy jako stacja
Rys. 2 TelProgCfg - węzeł prognozy jako zespół stacji
W ramach każdego z węzłów prognozy następuje przypisanie zmiennych środowiskowych (z danymi meteo) z systemu TelWin SCADA, które reprezentują:
- zmierzoną w przeszłości średnią dobową prędkość wiatru,
- zmierzoną w przeszłości średnią dobową temperaturę powietrza,
- prognozowaną średnią dobową prędkość wiatru,
- prognozowaną średnią dobową temperaturę powietrza.
Wykorzystanie sieci neuronowych - opis algorytmu
Sytuację idealną byłby przypadek, gdy dla każdego węzła prognozy dostępne są odpowiednie dane środowiskowe. W praktyce, ze względu na koszty pozyskania danych meteo, przyjmowane są większe obszary terytorialne, obejmujące swym zasięgiem szereg węzłów prognozy. W przypadku gdy węzeł prognozy jest położony w pobliżu granicy obszarów dla których pozyskiwane są dane meteo, istnieje możliwość dodania zmiennych środowiskowych pochodzących z wielu obszarów z określonymi wagami. W praktyce, dzięki wspomnianemu mechanizmowi można znacząco poprawić jakość prognozy. Kolejnym parametrem określanym w ramach węzła prognozy jest historia przepływu dla stacji, powiązana ze zmienną systemu TelWin SCADA. W przypadku węzła typu zespół, dla każdej stacji indywidualnie. Wszystkie wymienione parametry środowiskowe i historia przepływu są danymi wejściowymi do algorytmu prognozującego, zawartego w drugim z modułów pakietu TelPrognose – TelProgRun, który jest częścią obliczeniową. Dodatkowym parametrem wprowadzanym na wejście algorytmu prognozującego jest informacja o rodzaju dnia: dzień pracujący lub święto. Jak już wcześniej wspomniano, wykorzystywane algorytmy bazują na koncepcji sieci neuronowych, co w praktyce eliminuje proces strojenia procesu obliczeń.
Siecią neuronową określa się struktury matematyczne realizujące obliczenia lub przetwarzanie sygnałów poprzez elementy, zwane neuronami, wykonujące pewną podstawową operację na swoim wejściu. Podstawą wspomnianej koncepcji była budowa naturalnych neuronów oraz układów nerwowych, w szczególności mózgu. Neurony ułożone są w warstwy. Sygnały z każdego neuronu warstwy poprzedzającej dochodzą do każdego neuronu warstwy następnej. Do celów prognostycznych używa się sieci kilku warstwowych (minimum 3 – warstwa wejściowa, warstwa ukryta (tych warstw może być więcej) i warstwy wyjściowej). Liczba neuronów w warstwie wejściowej odpowiada liczbie parametrów wejściowych. Ostania warstwa ma jeden neuron (na jego wyjściu jest prognozowana wartość). Warstwy ukryte, pomiędzy warstwą wejściową a wyjściową, mogą mieć różną liczbę neuronów. Ich liczba w praktyce jest dobierana empirycznie i jest istotnym elementem wpływającym na jakość wyników. Jak już wcześniej wspomniano, sztuczny neuron jest matematycznym modelem (oczywiście uproszczonym) naturalnego neuronu. Sztuczny neuron ma n wejść i tylko jedno wyjście. Sygnały na wejściu są mnożone przez wagi wejść i następnie sumowane ze sobą. Ta suma jest wejściem funkcji aktywacji (1).
(1)
Wejścia do sieci neuronowej są zawsze standaryzowane do przedziału [0,1]. Na wyjściu również pojawia się liczba z zakresu 0 - 1 i należy ją przeliczyć na wartość rzeczywistą. Zgodnie z ideą działania algorytmów bazujących na sieciach neuronowych, moduł TelProgRun pracuje w dwóch trybach: uczenia oraz prognozowania. Uczenie odbywa się za pomocą danych z przeszłości. Jeden przykład uczący to tzw. wektor wejściowy. Dane są dzielone na 2 zbiory (pierwszy dużo większy od drugiego). W pierwszym znajdują się dane uczące a w drugim dane testowe. Podczas procesu uczenia na wejścia sieci dostarczany jest losowy wektor wejściowy ze zbioru uczącego i jest on propagowany przez sieć na wyjście. Następnie zestawiając otrzymany wynik z wartością rzeczywistą wyznaczany jest błąd jaki popełniła sieć, gdyż wartość realizacji jest znana. Za pomocą algorytmu wstecznej propagacji błędu wyznaczane są nowe wagi dla wejścia każdego z neuronów w każdej warstwie. Początkowe wagi, przed procesem uczenia, są losowe. Następnie wprowadzany jest kolejny, losowy wektor, obliczana są błąd i korekta wag za pomocą algorytmu wstecznej propagacji błędu. Proces kończy się w momencie wyczerpania wszystkich wektorów ze zbioru uczącego. W dalszej kolejności na wejście sieci dostarczane są wszystkie wektory ze zbioru testowego i obliczany jest błąd średniokwadratowy. Jedno przetworzenie danych uczący nazywa się epoką. W kolejnym kroku sieć ponownie zaczyna być uczona losowymi wektorami ze zbioru uczącego, do momentu zaprezentowania sieci całej epoki. Wprowadzane zostają ponownie dane testowe i obliczany jest błąd średniokwadratowy. Prowadzone testy i analizy wykazały, że dla zaproponowanego modelu wystarcza przetworzenie 200 epok. W trakcie nauki, pomiędzy poszczególnymi epokami, błąd średniokwadratowy maleje, a później zaczyna wzrastać (sieć zaczęła uczyć się na pamięć – następuje bardzo dobre dopasowanie sieci do danych uczących ale naruszona zostaje elastyczność sieci). Wybierana jest ta konfiguracja wag w której błąd średniokwadratowy jest najmniejszy. Konfiguracja wag i współczynniki do standaryzacji (0 - 1) danych wejściowych są zapisywane do bazy danych. W trakcie prowadzonych badań nad wyborem rozwiązania i modelu przyjęto, że każdy węzeł prognozy będzie dysponował własną konfiguracją, w ramach której będą: wspomniane wcześniej dane środowiskowe (meteo), przepływ archiwalny niezbędny do procesu nauki sieci oraz cała konfiguracja sieci (wagi dla neuronów). Moduł TelProgRun umożliwia otrzymanie wektora prognozy na 7 dni do przodu. Wartości wyliczona przez algorytm prognozujący jest wartością dobową. Wartość dobowa w przypadku prognozowania dla zespołu stacji jest rozbijana proporcjonalnie do poprzedniego dnia na poszczególne stacje, na podstawie realizacji, z uwzględnieniem ograniczeń (maksymalnego przepływu ustawianego w TelProgCfg, mocy dobowej z TelGAZ, prac planowych z TelGAZ i ograniczeń z TelGAZ-Limits. Jeżeli wystąpi przekroczenie dla jednej z stacji z zespołu, nadmiar jest rozdzielany proporcjonalnie na pozostałe stacje.
Efekt działania programu - przykładowe wyniki
Na rysunkach 3 - 6 przedstawiono przykładowe wyniki działania pakietu TelProgRun. Uzyskane wyniki wykazały słuszność przyjętych rozwiązań. Dla stacji, z minimalnym udziałem poboru gazu przez odbiorców przemysłowych wyniki charakteryzowały się błędem na poziomie 3 – 5 % w skali miesięca, liczonym zgodnie ze wzorem (2).
(2)
gdzie: Ei– błąd prognozy dla dnia, Ri – wartość realizacji dla dnia, Fi - wartość prognozy, E – błąd prognozy dla okresu czasu
Rys. 3 TelProgRun - przykładowe wyniki
Rys. 4 TelProgRun - przykładowe wyniki
Rys. 5 TelProgRun - przykładowe wyniki
Rys. 6 TelProgRun - przykładowe wyniki
Braku konieczności żmudnego strojenia modelu do warunków panujących w danym punkcie odbioru gazu zyskał uznanie użytkowników. Dzięki zastosowaniu sieci neuronowych cały proces strojenia algorytmu sprowadza się do procesu uczenia sieci, który przebiega automatycznie.