NREL / SOEP-QSS-Test

0 stars 1 forks source link

OCT FMU value reference repeats #15

Closed DeadParrot closed 3 years ago

DeadParrot commented 3 years ago

The 2021/05 OCT update was found to be using the same value references for multiple variables in a number of the Buildings models such as Case600, Case600FF, and Guideline36.

DeadParrot commented 3 years ago

Versions

The issue was observed with these component versions (may occur with others):

Component Version Date
OCT OCT-r23206_JM-r14295 2021/05
Buildings 9c37781 2021/05/04
QSS e4a0f62 2021/06/08

Build

Build the FMU with bld from the OCT directory as described in the Status page.

The dependencies can be examined in the modelDescription.xml file.

Run

Run the models with PyFMI or QSS from a console configured as described in the Status page.

PyFMI: Use run under the model OCT directories to generate the CVode simulation.

QSS: Use run under the model QSS directory in a method subdirectory such as QSS2.

chria commented 3 years ago

@DeadParrot Can you mention a few variables that have the same value reference (for Case600FF)?

DeadParrot commented 3 years ago

@chria In my Case600FF OCT build with QSS options enabled I see:

I also see valueReference repeats in the JModelica FMU I built 2 years ago so this isn't a new issue.

mwetter commented 3 years ago

The "2715" are the same temperature, the "58" are in the model Real variables that evaluate to a constant value of 1, and the "268437301" are constants that all have the value 1. So, this looks like OCT handles them as alias variables, which is good.

DeadParrot commented 3 years ago

I assumed some were aliases but I see repeats between different unit quantities. Maybe they are all constants and it isn't an issue. I didn't find any documentation that said valueReference can repeat for the same/aliased quantity but that makes sense for common port values. We just need to be sure that this isn't happening for states/derivatives or non-fixed values that aren't aliased.

DeadParrot commented 3 years ago

It sounds like these are expected and valid aliasing for non-states/derivatives.

I will close this issue and adjust the QSS value reference checking to allow duplicates for non-state/derivative variables with the same variability and causality and start value. This raises a couple of questions:

Edit: Due to the potential rule complexity for detecting an invalid value reference duplicate I am only checking for duplicates in the derivatives and state variables, where I believe duplicates should not appear despite any model symmetry or constant-valued derivatives.