Opened 5 years ago
Closed 5 years ago
#5684 closed defect (fixed)
IBPSA Integration - specifically with records for pump
Reported by: | anonymous | Owned by: | Per Östlund |
---|---|---|---|
Priority: | normal | Milestone: | 2.0.0 |
Component: | New Instantiation | Version: | v1.14.0-dev-nightly |
Keywords: | IBPSA, Pump, Record, Fluid | Cc: |
Description
Attempting to check or simulate the PowerSimplified.mo
and PowerExact.mo
models within IBPSA.Fluid.Movers.Validation leads to the following error messages respectively:
[1] 15:23:03 Translation Error
[C:/dev/OM64bit/OMCompiler/Compiler/NFFrontEnd/NFCeval.mo: 2129:20-2129:78]: Internal >error NFCeval.evalBuiltinMax got invalid arguments (pump_Nrpm.per.pressure.V_flow)
[5] 15:26:40 Translation Error
[IBPSA.Fluid.Movers.BaseClasses.Characteristics.flowParameters: 5:3-6:57]: Failed to deduce >dimension 1 of V_flow due to missing binding equation.
In both cases the problem seems to be that setting 'per = per' within the pump models doesn't properly load the pump curve data into the models from the performance records.
If I instead replace each variable individually (e.g. per.pressure = per.pressure
, per.power = per.power
, per.use_powerCharcteristic = per.use_powerCharacteristic
) then the model will succesfully check and it will simulate.
Simulating the model, however, leads to a second problem cropping up. IBPSA says that in PowerExact.mo
all three pump models will be identical after importing the pump curves, but I continue to get the same answer for the FlowControlled_*
movers as is arrived at by the PowerSimplified.mo
model (which are different than the SpeedControlled_Nrpm
pump). The flow rate and dp are the same across all three pumps in both models as is expected.
I talked to the developers of the IBPSA library and they say that their test models all work in SimulationX so they believe it is a problem with OpenModelica. After talking with them the leading theory seems to be that the problem stems from the handling of Records.
Change History (3)
comment:1 by , 5 years ago
Component: | *unknown* → New Instantiation |
---|---|
Milestone: | Future → 2.0.0 |
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 5 years ago
I just checked PowerExact and PowerSimplified, they now report
[IBPSA latest/Fluid/Movers/Data/Generic.mo:7:3-11:47:writable] Warning: Parameter pressure has annotation(Evaluate=true) and no binding. ... [IBPSA latest/Fluid/Movers/BaseClasses/Characteristic/flowParameters.mo:5:3-6:57:writable] Error: Failed to deduce dimension 1 of V_flow due to missing binding equation.
I guess #5493 resolved some issues and unmasked others, maybe @perost can comment on this.
comment:3 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
It seems I fixed this issue two weeks ago in 291aef2, both the mentioned models now simulate.
Replying to anonymous:
See PowerExact and PowerSimplified for up-to-date error reports.
The handling of record with arrays is currently an open issue with the new front end, see #5493, because the new front end doesn't flatten arrays to scalar components until the end of the flattening process - this makes things awfully complex in the case of record with arrays and modifiers thereof, but is essential if we want to handle large-scale systems involving arrays of models in the future, which I guess is also interesting for you.
BTW, this issue affect a lot of other models, particularly in the
Buildings
library, and is the likely cause of a number of open issues cited in #5493.@perost has been working on this issue for several months. From what I understand he now has a good solution and he is fixing the last few cases where the frontend still fails in the testuite. I hope he'll be able to push in his work in the near future, but I can't make predictions about how long this will take.
Please follow #5493 for the latest news.