CATIA-Systems / FMIKit-Simulink

Import and export Functional Mock-up Units with Simulink
Other
161 stars 54 forks source link

Add dependency info #212

Open meek1 opened 4 years ago

meek1 commented 4 years ago

Add dependency information in generated FMUs from Simulink. @robha67

t-sommer commented 4 years ago

Can you add some details on what dependencies you're referring to and where you want this information to be stored?

robha67 commented 3 years ago

The dependency information that @meek is refering to is the information conveyed in the “ModelStructure” element of the “ModelDescription” file, see for example page 64 of the FMI 2.0 specification. The FMUs that we have exported with FMIKit lacks this information. If I interpret the standard correctly, then this information is required, if for example, algebraic loops are to be resolved during initialization. If the information is not available, then the standard states that it “must be assumed that the unknowns depends on the knowns without a particular structure”. As far as I understand it, this means that the master simulation tool (for connected CS FMUs) might have to (depending on the implementation) need to iterate a solution in every communication step which is very inefficient.

chrbertsch commented 3 years ago

... (for connected CS FMUs) due to the calling sequence for 2.0 CS-FMUs (see p. 106 of the FMI 2.0.1 standard: "There is the additional restriction in “slaveInitialized” state that it is not allowed to call fmi2GetXXX functions after fmi2SetXXX functions without an fmi2DoStep call in between.) there is anyway no direct feedthough for CS FMUs. So this is only relevant ME FMUs in my understanding.

robha67 commented 3 years ago

I am not sure that I completely understand and, this may as a result not be a relevant comment, but on page 66 of the specification it is stated that "For standard Co-Simulation FMUs, it is common that no algebraic loops over the input/output variables nor over start-values is supported. In such a case, all dependencies lists for output variables under the InitialUnknowns element should be defined as empty lists defining that the setting of inputs and/or of start values does not influence the ouputs". What happens if there are no empty lists? In our FMUs there is no dependency information in the ModelDescription file.

robha67 commented 3 years ago

To clarify, there is no dependency information avalailable in the ModelDescription file, not under ModelStructure-Unknowns or ModelStructure-InitialUnknowns

t-sommer commented 3 years ago

Which target do you use to export your FMUs (grtfmi.tlc or rtwsfcnfmi.tlc)?

robha67 commented 3 years ago

I believe that we are using grtfmi.tlc but I will have to come back with a definite answer after the holidays

robha67 commented 3 years ago

I have now checked and we are using grtfmi.tlc