4. Uruchomienie symulacji

4.1. Sygnały wejściowe i parametry symulatora

Wszystkie podstawowe sygnały wejściowe i parametry symulatora zdefiniowano jako zmienne wejściowe. Użytkownik może je zmieniać za pomocą metody klasy symulatora in_val__val(nazwa, wartość), której pierwszy parametr to nazwa zmiennej, a drugi to wartość, która ma postać ustawiona. Dostępne zmienne dotyczą nastaw regulatora PID (opisanych w rozdziale (Schemat wewnętrzny regulatora PID), sygnałów sterujących przedstawionych w opisie obiektu (Obiekt regulacji / modelowania) oraz dodatkowo możliwości włączania/wyłączania zakłócenia procesowego (distEnable).

Aby ułatwić pracę przygotowano specjalną funkcję ustawiającą domyśle wartości parametrów symulatora set_default_params(system) oraz funkcję ustawiającą wartości sygnałów sterujących set_modes(system) zdefiniowane w module utils.py.

Listing: Funkcja pomocnicza ustawiające domyślne wartości parametrów symulatora

def set_default_params(_system):
    _system.in_var_val('distEnable', 0)
    _system.in_var_val('kp', 10)
    _system.in_var_val('Ti', 15)
    _system.in_var_val('Td', 5)
    _system.in_var_val('Bias', 50)
    _system.in_var_val('Ienable', 1)
    _system.in_var_val('Denable', 1)
    
Listing: Funkcja pomocnicza ustawiające wartości sygnałów sterujących symulatora

def set_modes(_system, _sp_mode, _sp_man=0.2, _pid_mode=0, _cv_mode=1, _cv_man=0):
    # SP mode:
    #  1- manual
    #  2- steps in the whole range
    #  3- steps in working point (0.2)
    #  4- sinusoidal
    _system.in_var_val('SPmode', _sp_mode)
    _system.in_var_val('SPman', _sp_man)
    # PID mode:
    #  0 - auto
    #  1 - manual
    _system.in_var_val('PIDmode', _pid_mode)
    # CV mode:
    #  1- manual
    #  2- triangle
    _system.in_var_val('CVmode', _cv_mode)
    _system.in_var_val('CVman', _cv_man)
    

Dodatkowo, w pliku konfiguracyjnym general_params.py (moduł params) zdefiniowany jest podstawowy okres próbkowania oraz jego krotności dla zadania regulacji oraz monitorowania.

Listing: Plik konfiguracyjny ze zdefiniowanymi okresami próbkowania

# General sampling time [s]
tp = 0.05
# Processing rates: Controller, Monitoring
pr = {'control': 2, 'monit': 20}
    

Na listingu poniżej pokazano wykorzystanie funkcji pomocniczej do zapisu wszystkich dostępnych zmiennych wejściowych symulatora.

Listing: Przykład ustawienia domyślnych wartości zmiennych wejściowych symulatora za pomocą funkcji pomocniczej

from params.general_params import *
from subsystems.simulator import TtsPidSim
from common.utils import set_default_params

system = TtsPidSim(tp, pr)

set_default_params(system)
set_modes(system, 1, 0.2, 1, 2)