Projekt 5

Strona: SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych
Kurs: Integracja Technik Sztucznej Inteligencji
Książka: Projekt 5
Wydrukowane przez użytkownika: Gość
Data: sobota, 11 października 2025, 12:15

Opis

Odtwarzanie charakterystyki statycznej przy wykorzystaniu sieci neuronowych

1. Zadanie

Celem zadania jest odtworzenie zależności  F_3=f(L_3) (charakterystyka wylotu ze zbiornika 3) na podstawie archiwalnych danych procesowych przy wykorzystaniu jednego z modeli sztucznych sieci neuronowych a następnie porównanie otrzymanej charakterystyki ze współczynnikiem przepływu odtworzonym na podstawie modelu analitycznego.

2. Realizacja

Należy wykonać następujące kroki:

  1. Przeprowadzić stosowny eksperyment i przygotować zbiory danych uczących i testowych. Dane uczące przygotować w dwóch wersjach: dla pełnego zakresu pracy, dla ograniczonego zakresu pracy.
  2. Wybrać stosowną technikę modelowania (sztuczna sieć neuronowa) i dobrać parametry modelu.
  3. Przeprowadzić proces uczenia, dla dwóch wersji danych uczących.
  4. Wyznaczyć współczynnik przepływu na podstawie danych pomiarowych oraz założonego modelu analitycznego zależności wypływu.
  5. Ocenić i porównać dokładność odtworzenia charakterystyki statycznej dla: modelu neuronowego i dwóch zbiorów danych uczących oraz dla modelowania analitycznego.

3. Założenia

  • Biorąc pod uwagę dostępny okres próbkowania oraz wysoką dynamikę tego fragmentu procesu zakładamy, że charakterystyka  F_3=f(L_3) może być przybliżona poprzez zależność statyczną.
  • Charakterystyka  F_3=f(L_3) może być opisana następującą zależnością analityczną  F_2=k_{αS}(L_3) \sqrt{gL_3} , przy czym współczynnik  k_{αS} może być zależny od wysokości słupa cieczy w zbiorniku 3 (należy sprawdzić).
  • Struktura modelu:  F_3(k)=f(L_3(k)) , gdzie  k oznacza kolejną chwilę czasową.

4. Przykłady

W przykładzie wykorzystano sieć neuronową typu Sequencial z biblioteki Keras.

Do wygenerowania danych uczących wykorzystano generator CV (przebieg trójkątny) oraz pracę regulatora w trybie sterowania ręcznego. W taki sposób można zebrać możliwie szybko dane to odtworzenia charakterystyki statycznej.

Dane uczące do odtworzenia charakterystyki wypływu ze zbiornika 3
Dane uczące do odtworzenia charakterystyki wypływu ze zbiornika 3
Dane uczące do odtworzenia charakterystyki wypływu ze zbiornika 3

Do testów wykorzystano dane wygenerowane dla przebiegu SP z generatora dla skokowych zmian w całym zakresie pracy. Tryb pracy regulatora ustawiono na automatyczny.

Dane testowe
Dane testowe
Dane testowe

Na rysunku poniżej widać, że zależność  F_3=f(L_3) ma charakter statyczny, nieloniowy.

Charakterystyka statyczna F2(L3)
Charakterystyka statyczna F2(L3)

Do modelowania wybrano sieć typu Sequential z biblioteki Keras. Wybrano bardzo prostą strukturę sieci, z jedną warstwą ukrytą i funkcjami aktywacji w postaci tanh oraz optymalizatorem Adam. Wykorzystano normalizację sygnałów wejściowych.

Listing: Normalizacja i konfiguracja modelu sieci neuronowych

# Narmalizacja
normalizer = tf.keras.layers.Normalization(axis=-1)
normalizer.adapt(np.array(train_features))

# Warstwa wejść i konstrukcja modelu
input_layer = keras.layers.Input(train_features.shape[1:])
model = keras.Sequential([
      input_layer,
      layers.Dense(2, activation='tanh'),
      layers.Dense(1)
  ])

# Kompilacja modelu
model.compile(loss='mean_absolute_error',
              optimizer=tf.keras.optimizers.Adam(0.02))
    
Listing: Wywołanie procedury uczenia sieci neuronowej

# Proce uczenia
history = model.fit(
    train_features,
    train_labels,
    epochs=20,
    validation_split = 0.2)
    
Listing: Predykcja wartości wyjść sieci

# Predykcja
y = model_saved.predict(test_features)
    

Na rysunku poniżej widać ocenę jakości predykcji wartości L3 dokonywanej przez sieć. Pomimo bardzo prostej struktury i krótkiego procesu uczenia uzyskano dobre wyniki. Charakterystyka statyczna odtwarzana jest w zasadzie bezbłędnie.

Predykcja sygnału F3 na danych testowych
Predykcja sygnału F3 na danych testowych
Rzeczywista i odtworzona charakterystyka statyczna F2(L3)
Rzeczywista i odtworzona charakterystyka statyczna  F_2(L_3)