Podręcznik
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
.
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)
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.
# 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.
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)