Complexe sturing

Complexe sturing

Vanaf D-Hydamo 0.5.0 is de aanroep van DRTCModel gewijzigd. De belangrijkste wijziging is dat indien het complex_controllers_folder argument aanwezig is, dat het id_limit_complex_controllers argument ook verplicht is.

Het is mogelijk sturing op te geven uit bestaande XML-code. Op deze wijze kan complexere sturing worden opgenomen, die (bijvoorbeeld) in de D-HYDRO GUI wordt geschematiseerd. Als een kunstwerk zowel een simpele sturing als een complexe sturing heeft, zal de simpele sturing verwijderd worden.

Als bestaande XML-bestanden moeten worden gebruikt, dienen deze te worden geplaatst in een map waarnaar verwezen wordt bij het aanmaken van het DRTCModel-object:

drtcmodel = DRTCModel( hydamo, fm, output_path=output_path, rtc_timestep=60.0, complex_controllers_folder=data_path / "complex_controllers", # location where user defined XLM-code should be located, id_limit_complex_controllers=["ID_van_structure"] )

De inhoud van deze files wordt ingelezen en later samengevoegd met de rest van de RTC-schematisatie.

Een toepassing van deze mogelijkheid is door de sturing te grafisch te configureren in de D-Hydro GUI. Hiervoor zijn de volgende stappen nodig:

  1. Schematiseren “Control Group” in de D-Hydro GUI (zie hieronder voor een voorbeeld):

  2. Exporteren model via “Home”/ “Export” / “DIMR configuration”. Merk op dat alle RTC-code die wordt geexporteerd door D-HyDAMO wordt ingelezen. Zorg er dus voor dat het geexporteerde model alle gewenste controllers, en alleen die, bevat.

3 Kopieer de XML bestanden naar de locatie waarnaar hierboven, via ‘complex_controllers’, wordt verwezen. Voeg daaraan ook de dimr_config.xml uit de dimr export naar toe. Als die in het geexporteerde model een andere naam heeft gekregen, dient die hernoemd te worden naar dimr_config.xml.

Meerdere complexe controller mappen

Vanaf hydrolib 0.5 is het ook mogelijk om meerdere mappen met complexe controllers op te geven:

drtcmodel = DRTCModel( hydamo, fm, output_path=output_path, rtc_timestep=60.0, complex_controllers_folder=[ data_path / "complex_controllers1", data_path / "complex_controllers2", ], id_limit_complex_controllers=["ID_van_structure"] )

Selectie toegestane kunstwerken voor complexe controllers

Vanaf D-Hydamo 0.5 is het verplicht om een selecte lijst met kunstwerken die daadwerkelijk opgenomen moeten worden toe te staan (een zogenaamde 'whitelist’) met behulp van id_limit_complex_controllers:

drtcmodel = DRTCModel( hydamo, fm, output_path=output_path, rtc_timestep=60.0, complex_controllers_folder=[ data_path / "complex_controllers1", data_path / "complex_controllers2", ], id_limit_complex_controllers=[ "S_96684", "ObsS_96684", "uweir_test" ] )

 

Om het opstellen van deze lijst te vergemakkelijken, is een nieuwe functie toegevoegd die alle IDs ophaalt die gebruikt worden in de xml mappen (en die ook daadwerkelijk aanwezig zijn in het HyDAMO object). Deze functie kan los van het geïnitialiseerd DRTCModel gebruikt worden.

complex_controller_ids = DRTCModel.find_complex_controller_ids( [ data_path / "complex_controllers_1", data_path / "complex_controllers_2", ], hydamo, )