-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
testcase: multizone_office_simple_hydronic #465
Comments
What compiler are you using with MSL4? |
I used Modelon Impact (OCT) to create and simulate the model so far |
I aim to tackle #422 this coming year to switch the default compiler we use for unit testing from JModelica to OpenModelica, as much as possible at least following on improvements to OpenModelica being made this year to simulate Buildings Library models. Do you know if the model simulates with the nightly build of OpenModelica? For now I'll also add your model to the tracking in #422. |
And how close is the model to being done? Are there signal exchange blocks, test case .csv data, and documentation all done? I ask because I'm trying to gauge how quickly you're trying to or would be ready to add this model to the repo, compared to how long #422 will take to complete. |
hey @dhblum, I just tried to compile it in OM, unsucessfully but so far due to the more strict requirements of OM with the Modelica standards (e.g. many each statements missing). I will have a look at this Test case .csv data is there, doc and exchange blocks are missing so far but I just had a meeting with @JavierArroyoBastida to discuss these points, so they'll be there soon. The idea is to have something fully ready by the next IBPSA meeting |
Update: signal exchange blocks are ready, model compiles with OM (but simulation fails at initialization) |
Follow-up update: after adding some energy dynamics (changing from steady-state) in some components here and there, the model now compiles and SIMULATES in OM for one whole year. |
Update on compilation process: Tried to substitute line 45 in parser.py from compile_fmu() to give the path of the FMU compiled in OM
Tried the same thing using OCT and the process can continue. However I was stopped also at line 182, regarding the compilation of the wrapper.fmu. What I did to circunvent the problem so far is to take the wrapper.mo, load and compile it into my OCT and again substitute the compile_fmu() by the path of the wrapper.fmu. Still to-do:
|
Moving recent problems from open-ideas/IDEAS#1343 to here. SetupOS: Ubuntu 20.04 (1) Dymola/OCT CompilationOCT fails compilation with errors:
The error with (2) Dymola/OM ResultsI see a problem where the simulation results for Dymola and OM do not agree. Here are results for the first 10 days of simulation (I get the same results respectively in each tool whether I use cvode or euler with a timestep of 15s). In OM, the temperature for zone 2 is not meeting setpoint. I haven't done further diagnostics at this point. |
Update here. Per here, the issue with These two things enables OCT to compile OK and simulate OK for the first 10 days. However, a yet third trajectory (below) which doesn't match OM nor Dymola shown above. @icupeiro were any other changes made between icupeiro@81decbb and icupeiro@fea7a9d that would cause a new trajectory? ![]() @jelgerjansen FYI |
Hi @dhblum , Yes, you skipped this commit It includes changes in the BMS to comply with the HP maximum supply temperatures, from 70degC (previously, a gas boiler), to a maximum of 50degC Regarding the difference in results, the culprit is an AND block that activates the heating pump of the south zone depending on the weekday and holiday calendars. For some reason works in the north zone, but not in the south zone. See below I solved it by changing the formulation from a connect statement to a simple equality New (corrected) results look in compliance with Dymola Why is this happening? Honestly I have no idea, but I am always suspicious of the quality of OpenModelica solvers Before doing any further commits (including the connection to equation change), can we agree on the tooling? Personally I would go for a pragmatic approach and disregard Dymola (their FMUs are not free of license). I would also suggest to do the testing with the FMU itself, which is the file that BOPTEST will use. However (correct me if I am wrong because I am not 100% sure) I think the FMU packs the solvers from the tool itself, so deciding to compile either with OM or OCT is important here. Despite it may have lower quality with the solvers, I prefer to go with OM just for the reason that is freely available for everyone, which for me is the strongest point when trying to outreach and aim to have an open-source tool such as BOPTEST |
Thanks @icupeiro. I've done more thinking and testing here.
OCT vs Dymola (Match)![]() OCT vs OM (OM Drifts)![]() |
Hey @dhblum , I agree to use OCT as the compiler. However, already from the start of the year we do not have a license anymore at dnergy, which can make testing an iterative between us that can lead to further delays. I do not know if sharing a license for a few days would be an option from your side. We can also set up a meeting and sit down together to finish up the emulator. Let me know if any of this options work for you or you have further suggestions! |
@icupeiro Is there more modeling work on the emulator you intended to do, other than maybe a final review? The heat pump's been implemented which I thought was the main thing. |
@icupeiro Here's what I propose:
Let me know what you think or any other things. |
hey @dhblum sorry for the delay I was on vacation Sounds good! I think I've sent you an invite! |
@icupeiro Yeup got it thanks!! Welcome back. |
Hey @icupeiro I hate to delay this further, but I was reviewing the simulation results from this test case again and noticed that there is simultaneous heating and cooling in the mornings every day, when I'm not sure it makes sense to have it. For example, see the screenshot below for the summer case where I can't imagine heating being needed, although similar happens in winter with cooling power being consumed . Also, all the pumps turn on and use power regardless of whether heating or cooling is needed or not. Finally, the electric power for cooling is negative, which is an issue for KPI calculation. I think these things need to be addressed in some way. The electric cooling power being negative is easy to address. But do you know why the simultaneous cooling and heating is happening? ![]() |
@dhblum Let's go step by step. Regarding the distribution pumps of the AHU, the RBC describes in the documentation:
The distribution pumps work as intended by the RBC. The RBC is inspired by actual controls of many buildings we control at dnergy, including their flaws. I agree the control is not optimal, but what we agreed in the past is to have a controller that represents the reality (including flaws to be addressed and having room for improvement), not optimize the baseline controller of the building. Then, the AHU doesn't seem to be providing heating. It looks more like the pre-conditioning of the fan coil units. But I would need more information to debug this. If it is not too much work, a pandas parquet file with the read/write values of the model + weather data for the specific period would be useful for further data analysis |
@icupeiro I made the change regarding the absolute value on cooling power. Regarding simultaneous heating and cooling, I found two things. 1: Schedule-based maximum activation of fan coil fan, cooling valve, and heating valve every morningThe control block "FcuInternal_ove_Control" shown below uses the activation signals for the circuits to control the fan speed, heating valve, and cooling valve during unoccupied times. In the morning, when the heating and cooling circuits are enabled by schedule, the fan, heating coil valve, and cooling coil valve are also controlled to maximum positions. So basically, every morning, the fan is on maximum speed, the cooling coil is providing maximum cooling, and then the heating coil is providing maximum heating (causing an even higher heating load since first overcoming the cooling being provided), until the occupied period starts at which point set point control takes over. Meanwhile, there is a control block "FcuInternalControl" in the package which only implements the set point control. If I use the FcuInternalControl (second plot below), rather than FcuInternal_ove_Control (first plot below), the simultaneous heating and cooling in the morning goes away, since even though both circuit pumps may be enabled, at least the valves and fan are still just being controlled to meet set point. There are flaws in real buildings, but the maximum simultaneous heating and cooling every morning still seems hard to defend as a baseline control for boptest. I would suggest using FcuInternalControl if there are not other implications. Plot of heating and cooling production power with FcuInternal_ove_Control (top) and FcuInternalControl (middle). Zone temperatures in each case plotted in the bottom. |
@icupeiro The second thing is: 2: Summertime heating in the AHU in afternoonsIn the afternoons in the summer when there is no need for heating at the zone level, there is still heating production, due to heating in the AHU. I can't really explain the behavior of the temperature downstream of the heat recovery when the bypass is activated. It seems to become a constant value that is below the supply air temperature set point (thus requiring heating), when I'd expect it to equal the outside air temperature? See the figure below. I can check if this is a tool thing with solving the equations or I'm misunderstanding the design and operation intent, but thought I'd also see if you notice(d) anything odd here. |
With updates from #654 and compiling and simulating with OCT 1.51.6, the plots for Day 185 - 190 now look good. Seems that Problems 1 and 2 described above are solved: ![]() |
Closed by #619. |
this issue is to track the two-zone office model based on real practice experience by DeltaQ
The text was updated successfully, but these errors were encountered: