Projekt 4

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