Daniel Weber
Daniel Weber
Thank you for the question and sorry for the late response. 1.: In general possible to built an FMU with MATLAB Simulink and use it with openmodelica-microgrid-gym (OMG). You only...
Define states and actions: states x: f, U, P, Q...? - global (net-wide) - component dependent actions a: - change of the droop parameter (not implemented jet) Planned: ODE, which...
component power as state or input? - dw=sum(P)/(Jw) -> Input - P is depending on w (and droop params) -> state
First example: * voltage considered as fixed * two inverters connected via an inductor, resistive load between inv1 & ground. - leads to B = [B12, -B12; -B12, B12] and...
Unstable for longer simulations:   * Change solver * Calculate sign in matrix by hand to double-check due to it is working with -G (`p[k] += nomVolt * nomVolt...
https://github.com/upb-lea/openmodelica-microgrid-gym/blob/8073a3380766462fd8132844e0628ea238bdaa5a/openmodelica_microgrid_gym/env/modelica.py#L309 shift params from {values,...} to {...,self.net.params(delayed_action)} TAKE CARE: What if from net and model_params have the same key: `env.make( model_params={'r_load.resistor1.R': 10} )` and in `net -> Load(Component-class): 'r_load.resistor1.R': 20`...
Here: https://github.com/upb-lea/openmodelica-microgrid-gym/blob/8073a3380766462fd8132844e0628ea238bdaa5a/openmodelica_microgrid_gym/net/components.py#L179 use coponent.id('r_load') + '.' name from net ('resistor1.R : 10') instead if model_params (see above)
We have random noise, but it is sampled from a seeded distribution. Hence, we have a deterministic behavior, i.e. with the same bounds we can reproduce each of the above...
Seems like in the original silver paper they use different learning rates in the application, too:  https://arxiv.org/abs/1509.02971 p.11
Proof of concept: Delivers the same results for a known (P10) parameter setting) then Matlab and python do. Voltage: Matlab:  Julia:  Current: Matlab:  Julia: 