Als er eenmaal een drtcmodel object is aangemaakt in de worklow (zie hieronder voor een voorbeeld), kunnen controllers worden toegevoegd zoals hieronder wordt getoond. Alleen PID-, interval- en timecontrollers worden op dit moment ondersteund. Alle controllers accepteren een tijdreeks als streefpeil, het moet in dat geval een pandas Series zijn, met de tijd als index.
PID-controller
Gebruik deze functie voor een PID-controller:
Code Block | ||
---|---|---|
| ||
drtcmodel.add_pid_controller( structure_id='Sstruc_96544'id, steering_variable=steering_variable, observation_location='ObsS_96544' target_variable=target_variable, ki=ki, steering_variable='Crest level (s)', kp=kp, kd=kd, target_variable='Water level (op)', max_speed=max_speed, setpoint=13management.2streefwaarde, lower_bound=management.ondergrens, upper_bound=13management.4bovengrens, observation_location=management.meetlocatieid, lower_bound=12.8, pid_settings=pid_settings['global']) |
Het pid_settings object moet een dictionary zijn zoals deze:
Code Block |
---|
pid_settings["global"] = {
"ki": 0.001,
"kp": 0.00,
"kd": 0.0,
"maxspeed": 0.00033,
} |
...
) |
Interval controller
Code Block |
---|
drtcmodel.add_interval_controller(
structure_id=struc_id,
steering_variable=steering_variable,
target_variable=target_variable,
daedband=deadband,
setting_above=management.bovengrens,
setting_below=management.ondergrens,
max_speed=max_speed,
setpoint=management.streefwaarde,
observation_location=management.meetlocatieid,
) |
Voor de betekenis van de parameters verwijzen we naar de D-RTC manual.
...
Code Block |
---|
drtcmodel = DRTCModel( hydamo, fm, output_path=output_path, rtc_timestep=60.0 ) |
hydamo bevat alle D-Hydamo HyDAMO alle HyDAMO DAMO2.2 objecten, ‘fm’ is het deels opgebouwde 1D-model, output_path is de locatie waar het model geplaatst zal worden en rtc_timestep is de beoogde tijdstap in seconden.