|
| 1 | +scenario: |
| 2 | + name: "Hydrogen_system_4" # in mosaik so called world |
| 3 | + start_time: '2025-01-01 00:00:00' # ISO 8601 start time of the simulation |
| 4 | + end_time: '2025-02-01 00:00:00' # duration in seconds |
| 5 | + time_resolution: 3600 # time step in seconds (optional). Defaults to 15 minutes (900 s) |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +models: |
| 10 | +- name: CSVdayahead |
| 11 | + type: CSV |
| 12 | + parameters: |
| 13 | + file_path: './data/dayahead.csv' |
| 14 | + delimiter: ',' |
| 15 | + date_format: 'YYYY-MM-DD HH:mm:ss' |
| 16 | + |
| 17 | +- name: CSVbiomass |
| 18 | + type: CSV |
| 19 | + parameters: |
| 20 | + file_path: './data/biomass3.csv' |
| 21 | + delimiter: ',' |
| 22 | + date_format: 'YYYY-MM-DD HH:mm:ss' |
| 23 | + |
| 24 | + |
| 25 | +### Hydrogen production system components ### |
| 26 | +- name: thermolyzer1 |
| 27 | + type: Thermolyzer |
| 28 | + parameters: |
| 29 | + eff: 90 # thermolyzer effficiency [%] |
| 30 | + C_bio_h2 : 50 # conversion factor from biomass to hydrogen [kg/kg] |
| 31 | + C_CO_2 : 20 # absorption factor carbondioxide per h2 produced [kg/kg] |
| 32 | + C_Eelec_h2: 11.5 # conversion factor electrical energy to hydrogen mass [kWh/kg] |
| 33 | + max_ramp_up : 200 # maximum ramp up in power per timestep [kW/timestep] |
| 34 | + max_p_in : 8000 # maximum input power [kW] |
| 35 | + inputs: |
| 36 | + biomass_in : 0 # biomass input [kg/timestep] |
| 37 | + desired_out : 5 # desired output flow of hydrogen [kg/h] |
| 38 | + outputs: |
| 39 | + h_gen : 0 # hydrogen generation [kg] |
| 40 | + power_consumption : 0 # power consumption [kWh] |
| 41 | + CO2_out : 0 # CO2 output [kg] |
| 42 | + |
| 43 | +- name: ZZE1 |
| 44 | + type: ZZE |
| 45 | + parameters: |
| 46 | + e_eff: 90 # electrolyzer effficiency [%] |
| 47 | + max_p_in: 500 # maximum charging power [kW] |
| 48 | + max_p_out: 100 # maximum output power [kW] |
| 49 | + h2_capacity_tot: 2000 # total hydrogen capacity [kg] |
| 50 | + h2_soc_min: 0 |
| 51 | + h2_soc_max: 100 |
| 52 | + inputs: |
| 53 | + setpoint: 2 # charge setpoint [kg/h] |
| 54 | + outputs: |
| 55 | + # electrolyzer part |
| 56 | + power_consumption: 0 # power_consumption power [kWh] |
| 57 | + # buffer part |
| 58 | + h2_out: 30 |
| 59 | + overflow: 0 |
| 60 | + states: |
| 61 | + soc: 0 |
| 62 | + flag: 0 |
| 63 | + available_h2: 0 |
| 64 | + free_capacity: 0 |
| 65 | + |
| 66 | +- name: Joint1 |
| 67 | + type: H2Joint |
| 68 | + parameters: |
| 69 | + joint_eff: 100 # joint efficiency [%] |
| 70 | + inputs: |
| 71 | + h2_in_1: 0 # input flow [kg/timestep] |
| 72 | + h2_in_2: 0 # input flow [kg/timestep] |
| 73 | + outputs: |
| 74 | + out: 0 # output flow [kg/timestep] |
| 75 | + |
| 76 | +- name: PSA1 |
| 77 | + type: H2PSA |
| 78 | + parameters: |
| 79 | + eff: 100 # PSA efficiency [%] |
| 80 | + inputs: |
| 81 | + h2_in: 0 # hydrogen input [kg/timestep] |
| 82 | + outputs: |
| 83 | + h2_out: 0 # hydrogen output [kg/timestep] |
| 84 | + |
| 85 | + |
| 86 | +# # Additional hydrogen system components (buffers, valves, demands, compressor, controller) |
| 87 | + |
| 88 | +- name: Electrolyzer1 |
| 89 | + type: Electrolyzer |
| 90 | + parameters: |
| 91 | + e_eff: 70 # electrolyzer efficiency [%] |
| 92 | + max_p_in: 10 # maximum input power [kW] |
| 93 | + max_p_ramp_rate: 10 # maximum rampup power [kW/s] |
| 94 | + inputs: |
| 95 | + desired_out: 30 # desired output flow of the electrolyzer [kg/h] |
| 96 | + outputs: |
| 97 | + h_gen: 0 # hydrogen generation [kg/timestep] |
| 98 | + power_consumption: 0 # power consumption of the electrolyzer [kW] |
| 99 | + |
| 100 | +- name: H2_controller |
| 101 | + type: H2Controller2 |
| 102 | + parameters: |
| 103 | + dummy: 0 |
| 104 | + inputs: |
| 105 | + demand1: 10 |
| 106 | + demand2: 10 |
| 107 | + thermolyzer_out: 0 |
| 108 | + buffer_available_h2: 0 |
| 109 | + buffer_free_capacity: 0 |
| 110 | + outputs: |
| 111 | + dump: 0 |
| 112 | + states: |
| 113 | + buffer_in: 0 |
| 114 | + desired_out: 0 |
| 115 | + valve1_ratio1: 0 |
| 116 | + valve1_ratio2: 0 |
| 117 | + valve1_ratio3: 0 |
| 118 | + |
| 119 | +- name: H2Buffer1 |
| 120 | + type: H2Buffer |
| 121 | + parameters: |
| 122 | + h2_soc_min: 0 |
| 123 | + h2_soc_max: 100 |
| 124 | + h2_charge_eff: 100 |
| 125 | + h2_discharge_eff: 100 |
| 126 | + max_flow_rate_in: 200 # maximum hydrogen input rate [kg/h] |
| 127 | + min_flow_rate_in: 0 |
| 128 | + max_flow_rate_out: 200 # maximum hydrogen output rate [kg/h] |
| 129 | + min_flow_rate_out: 0 |
| 130 | + h2_capacity_tot: 100 |
| 131 | + inputs: |
| 132 | + h2_in: 0 |
| 133 | + desired_out: 29 |
| 134 | + outputs: |
| 135 | + h2_out: 20 |
| 136 | + actual_h2_in: 0 |
| 137 | + overflow: 0 |
| 138 | + states: |
| 139 | + soc: 0 |
| 140 | + flag: 0 |
| 141 | + available_h2: 0 |
| 142 | + free_capacity: 0 |
| 143 | + |
| 144 | +- name: compressor1 |
| 145 | + type: Compressor |
| 146 | + parameters: |
| 147 | + p_in: 30 |
| 148 | + p_out: 500 |
| 149 | + T_amb: 293.15 |
| 150 | + compressor_eff: 100 |
| 151 | + max_power_in: 10000 |
| 152 | + inputs: |
| 153 | + flow2c: 0 |
| 154 | + outputs: |
| 155 | + flow_from_c: 0 |
| 156 | + states: |
| 157 | + volume_flow_out: 0 |
| 158 | + power_req: 0 |
| 159 | + |
| 160 | +- name: H2Buffer2 |
| 161 | + type: H2Buffer |
| 162 | + parameters: |
| 163 | + h2_soc_min: 0 |
| 164 | + h2_soc_max: 100 |
| 165 | + h2_charge_eff: 100 |
| 166 | + h2_discharge_eff: 100 |
| 167 | + max_flow_rate_in: 200 # maximum hydrogen input rate [kg/h] |
| 168 | + min_flow_rate_in: 0 |
| 169 | + max_flow_rate_out: 200 # maximum hydrogen output rate [kg/h] |
| 170 | + min_flow_rate_out: 0 |
| 171 | + h2_capacity_tot: 1000 |
| 172 | + inputs: |
| 173 | + h2_in: 0 |
| 174 | + desired_out: 0 |
| 175 | + outputs: |
| 176 | + h2_out: 0 |
| 177 | + actual_h2_in: 0 |
| 178 | + overflow: 0 |
| 179 | + states: |
| 180 | + soc: 80 |
| 181 | + flag: 0 |
| 182 | + available_h2: 0 |
| 183 | + free_capacity: 0 |
| 184 | + |
| 185 | +- name: H2valve1 |
| 186 | + type: H2Valve |
| 187 | + parameters: |
| 188 | + valve_eff: 100 |
| 189 | + # max_flow: 100 |
| 190 | + inputs: |
| 191 | + h2_in: 0 |
| 192 | + ratio1: 33 |
| 193 | + ratio2: 33 |
| 194 | + ratio3: 34 |
| 195 | + outputs: |
| 196 | + out1: 0 |
| 197 | + out2: 0 |
| 198 | + out3: 0 |
| 199 | + |
| 200 | +- name: controller |
| 201 | + type: Hydrogen_production_controller |
| 202 | + parameters: |
| 203 | + dummy: 0 |
| 204 | + inputs: |
| 205 | + ZZE_soc : 0 |
| 206 | + DayAhead_price: 0 |
| 207 | + states: |
| 208 | + Thermolyzer_setpoint: 0 |
| 209 | + ZZE_setpoint: 0 |
| 210 | + |
| 211 | +connections: |
| 212 | + |
| 213 | +# from biomass to thermolyzer |
| 214 | +- from: CSVbiomass.biomass |
| 215 | + to: thermolyzer1.biomass_in |
| 216 | + |
| 217 | +# from thermolyzer to joint |
| 218 | +- from: thermolyzer1.h_gen |
| 219 | + to: Joint1.h2_in_1 |
| 220 | + |
| 221 | +### ZZE ELECTROLYZER ### |
| 222 | +- from: ZZE1.h2_out |
| 223 | + to: Joint1.h2_in_2 |
| 224 | + |
| 225 | +# from joint to PSA |
| 226 | +- from: Joint1.out |
| 227 | + to: PSA1.h2_in |
| 228 | + |
| 229 | +# control connections |
| 230 | +- from: ZZE1.soc |
| 231 | + to: controller.ZZE_soc |
| 232 | + time_shifted: True |
| 233 | +- from: controller.ZZE_setpoint |
| 234 | + to: ZZE1.setpoint |
| 235 | + # time_shifted: True |
| 236 | +- from: controller.Thermolyzer_setpoint |
| 237 | + to: thermolyzer1.desired_out |
| 238 | + |
| 239 | +- from: CSVdayahead.price |
| 240 | + to: controller.DayAhead_price |
| 241 | + |
| 242 | + |
| 243 | +### START hydrogen system additional components ### |
| 244 | + |
| 245 | +# from electrolyzer to buffer |
| 246 | +- from: Electrolyzer1.h_gen |
| 247 | + to: H2Buffer1.h2_in |
| 248 | + |
| 249 | +# from buffer to compressor |
| 250 | +- from: H2Buffer1.h2_out |
| 251 | + to: compressor1.flow2c |
| 252 | + |
| 253 | +# from compressor to big buffer |
| 254 | +- from: compressor1.flow_from_c |
| 255 | + to: H2Buffer2.h2_in |
| 256 | + |
| 257 | +# from big buffer to fuel station |
| 258 | +- from: H2Buffer2.h2_out |
| 259 | + to: H2valve1.h2_in |
| 260 | + |
| 261 | +# from buffer to controller |
| 262 | +- from: H2Buffer1.available_h2 |
| 263 | + to: H2_controller.buffer_available_h2 |
| 264 | +- from: H2Buffer1.free_capacity |
| 265 | + to: H2_controller.buffer_free_capacity |
| 266 | + |
| 267 | +# from controller to electrolyzer |
| 268 | +- from: H2_controller.desired_out |
| 269 | + to: Electrolyzer1.desired_out |
| 270 | + time_shifted: True |
| 271 | + |
| 272 | + |
| 273 | +# from controller to valve |
| 274 | +- from: H2_controller.valve1_ratio1 |
| 275 | + to: H2valve1.ratio1 |
| 276 | + time_shifted: True |
| 277 | +- from: H2_controller.valve1_ratio2 |
| 278 | + to: H2valve1.ratio2 |
| 279 | + time_shifted: True |
| 280 | +- from: H2_controller.valve1_ratio3 |
| 281 | + to: H2valve1.ratio3 |
| 282 | + time_shifted: True |
| 283 | + |
| 284 | + |
| 285 | + |
| 286 | +### END hydrogen system additional components ### |
| 287 | + |
| 288 | +monitor: |
| 289 | + file: './h2_system_example4_3.csv' |
| 290 | + items: |
| 291 | + |
| 292 | + - ZZE1.h2_out |
| 293 | + - ZZE1.soc |
| 294 | + - controller.ZZE_setpoint |
| 295 | + - controller.Thermolyzer_setpoint |
| 296 | + - thermolyzer1.h_gen |
| 297 | + - Joint1.out |
| 298 | + - CSVdayahead.price |
0 commit comments