Functional Mockup Interface (FMI) simulation support
Support for minimum time problems
Improved support for redeclare/replaceable in the compiler frontend
Limited support for external functions
Support for stream connections (with up to two connectors in a connection)
Slice operations are now supported.
Array support is now nearly complete. The exceptions are:
Functions with array inputs with sizes declared as ':' - only basic support.
A few array-related function-like operators are not supported.
Connect clauses does not handle arrays of connectors properly.
Function calls can now be used as binding expressions for parameters and constants. The handling of Integer, Boolean and record type parameters is also improved.
Basic support for external functions written in C.
Annotations for libraries, includes, library directories and include directories supported.
Platform directories supported.
Can not be used together with CppAD.
Arrays as arguments are not yet supported. Functions in Modelica_utilies are also not supported.
Stream connectors, including the operators inStream and actualStream and connections with up to two stream connectors are supported.
All support mentioned for the Modelica compiler applies to the Optimica compiler as well.
Support for the objectiveIntegrand class attribute. In order to encode Lagrange cost functions of the type
the Optimica class attribute
objectiveIntegrand is supported by the Optimica compiler. The expression L may be utilized by optimization algorithms providing dedicated support for Lagrange cost functions.
Optimization problems with free initial and terminal times can now be solved by setting the free attribute of the class attributes startTime and finalTime to true. The Optimica compiler automatically translates the problem into a fixed horizon problems with free parameters for the start en terminal times, which in turn are used to rescale the time of the problem.
Using this method, no changes are required to the optimization algorithm, since a fixed horizon problem is solved.
Support for free dependent parameters in the collocation optimization algorithm is now implemented. In models containing parameter declarations such as:
parameter Real p1(free=true); parameter Real p2 = p1;
where the parameter p2 needs to be considered as being free in the optimization problem, with the additional equality constraint:
p1 = p2
included in the problem.
Support for simulation of an FMU (see below) using Assimulo. Simulation of an FMU can either be done by using the high-level method *simulate* or creating a model from the FMIModel class together with a problem class, FMIODE which is then passed to CVode.
Improved support for the Functional Mockup Interface (FMI) standard. Support for importing an FMI model, FMU (Functional Mockup Unit). The import consist of loading the FMU into Python and connecting the models C execution interface to Python. Note, strings are not currently supported.
Imported FMUs can be simulated using the Assimulo package.