Projekt 4

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

Opis

Strojenie wybranych parametrów regulatora rozmytego przy wykorzystaniu algorytmów genetycznych

1. Zadanie

Celem zadania jest dobór nastaw regulatora rozmytego przy wykorzystaniu jednego z algorytmów inteligencji masowej. Można zatem częściowo skorzystać z opracowanych rozwiązań w projekcie 1 i projekcie 2.

2. Realizacja

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

  1. Zaprojektować strukturę rozmytego układu regulacji. Dostosować strukturę układu regulacji tak, aby umożliwiała strojenie (dobór) nastaw wybranych parametrów.
  2. Ocenić jakość działania układu regulacji dla wartości domyślnych nastaw. Należy wybrać minimum dwa wskaźniki jakości regulacji, najlepiej takie same jak w projekcie 1. Należy pamiętać o akceptowalnym przebiegu sygnału sterującego.
  3. Zaimplementować jeden z algorytmów inteligencji masowej.
  4. Określić odpowiednią funkcję celu.
  5. Sparametryzować algorytm i przeprowadzić proces doboru parametrów regulatora.
  6. Ocenić jakość działania układu regulacji dla nowych (optymalnych) parametrów.
  7. Porównać otrzymane rezultaty z tymi z projekcie 2 i skomentować wyniki.

3. Założenia

  • Optymalizację powinna uwzględniać pracę w możliwie całym zakresie. Wymaga to odpowiedniej rozbudowy funkcji wyznaczającej wskaźniki jakości regulacji.
  • Ocenić jakość regulacji możliwie w całym zakresie zmienności PV, czyli dla wartości przyjętych jako punkt pracy oraz dla wartości skrajnych.

4. Uwagi

  • Można wykorzystać implementację rozmytego układu regulacji z projektu 2.
  • Można skorzystać z implementacji algorytmu inteligencji masowej zastosowanego w projekcie 1.

5. Przykłady

W przykładzie wykorzystano elementy opracowane i przygotowane do realizacji projektu 1 i projektu 2.

Wykorzystany w projekcie 2 regulator rozmyty pozwala bezpośrednio na modyfikację parametrów ke, kde oraz kdCV, które zostały zdefiniowane jako parametry bloku regulatora rozmytego oraz udostępnione jako zmienne wejściowe symulatora. Zdecydowano się na optymalizację parametru ke oraz kdCV.

Wykorzystano tę samą implementację algorytmu genetycznego co w projekcie 1. Zmodyfikowano funkcję celu, tak aby uwzględnić oba dostrajane pareametry.

Listing: Modyfikacja funkcji celu uwzględniająca strojenie dwóch parametrów modelu rozmytego

def fitness_func(ga_instance, solution, solution_idx):
    # Symulacja
    system.in_var_val('ke', solution[0])
    system.in_var_val('kdCV', solution[1])
    proc_vars = system.simulate(tend, 'control')
    # Wyznaczenie wskaźników oceny jakości regulacji
    eval = calculate_quality_indicators(dt, proc_vars['t'], sp, proc_vars['e'])
    fitness1 = 1.0 / (eval['st'] + 0.000001)
    fitness2 = 1.0 / (eval['ISE'] + 0.000001)
    progress_bar(solution_idx + 1, sol_per_pop, 1)
    print(f" Step: {solution_idx + 1} Solution: kp={solution[0]} Eval - st: {eval['st']}, ISE: {eval['ISE']}")
    return [fitness1, fitness2]
    

Zmodyfikowano także parametry algorytmu genetycznego tak, aby uwzględnić oba strojone parametry:


# Parametry AG
num_generations = 100
num_parents_mating = 10
sol_per_pop = 20
#   dostrajne będą parametry: ke, kdCV
num_genes = 2
init_range_low = 0.01
init_range_high = 10

Najpierw dokonano oceny jakości regulacji dla struktury i parametrów modelu rozmytego z projektu 2.

Ocena jakości regulacji dla regulatora rozmytego z projektu 2
Ocena jakości regulacji dla regulatora rozmytego z projektu 2

Następnie dokonano oceny jakości regulacji dla parametrów modelu rozmytego dobranego w wyniku prowadzonej optymalizacji. Jak widać, uzyskano lepsze rezultaty, chociaż cały czas pozostało wiele do poprawienia.

Ocena jakości regulacji dla wartości ke, kdCV wyznaczonej przez algorytm genetyczny
Ocena jakości regulacji dla wartości ke, kdCV wyznaczonej przez algorytm genetyczny