Controllers toevoegen via de workflow

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- en timecontrollers worden op dit moment ondersteund.

PID-controller

Gebruik deze functie voor een PID-controller:

drtcmodel.add_pid_controller(structure_id='S_96544', observation_location='ObsS_96544', steering_variable='Crest level (s)', target_variable='Water level (op)', setpoint=13.2, upper_bound=13.4, lower_bound=12.8, pid_settings=pid_settings['global'])

Het pid_settings object moet een dictionary zijn zoals deze:

pid_settings["global"] = { "ki": 0.001, "kp": 0.00, "kd": 0.0, "maxspeed": 0.00033, }

In plaats van ['global'] kan ook het ID van een speicifiek kunstwerk gebruikt worden, in dat geval worden die settings toegekend aan dat object. Daarnaast blijft het ‘global’ element nodig voor andere kunstwerken.

Voor de betekenis van de parameters verwijzen we naar de D-RTC manual.

Time controller

Voor een time controller kan de volgende functie worden gebruikt:

drtcmodel.add_time_controller( structure_id="S_96548", steering_variable="Crest level (s)", data=timeseries.loc[:,'S_96548'] )

timeseries is een Pandas dataframe. Dat kan worden ingelezen uit een CSV (bijvoorbeeld). De naam van het kunstwerk moet gelijk zijn aan de naam van de betreffende kolom en de index van het dataframe moet de tijdstappen bevatten.

Aanmaken DRTCModel

Voorbeeld aanmaken drtcmodel-object:

D-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.