Peter Aronsson
MathCore Engineering AB, Linköping, Sweden
David Broman
Dept. of Computer & Information Science, Linköping University, Sweden
Download articlehttp://dx.doi.org/10.3384/ecp09430027Published in: Proceedings of the 7th International Modelica Conference; Como; Italy; 20-22 September 2009
Linköping Electronic Conference Proceedings 43:105, p. 890-897
Published: 2009-12-29
ISBN: 978-91-7393-513-5
ISSN: 1650-3686 (print), 1650-3740 (online)
Dimensional analysis and physical unit checking are important tools for helping users to detect and correct mistakes in dynamic mathematical models. To make tools useful in a broad range of domains; it is important to also support other units than the SI standard. For instance; such units are common in biochemical or financial modeling. Furthermore; if two or more units turn out be in conflict after checking; it is vital that the reported unit information is given in an understandable format for the user; e.g.; “N.m” should preferably be shown instead of “m2.kg.s-2”; even if they represent the same unit. Presently; there is no standardized solution to handle these problems for Modelica models. The contribution presented in this paper is twofold. Firstly; we propose an extension to the Modelica language that makes it possible for a library designer to define both new base units and derived units within Modelica models and packets. Today this information is implicitly defined in the specification. Secondly; we describe and analyze a solution to the problem of presenting units to users in a more convenient way; based on an algorithm using Mixed Integer Programming (MIP). Both solutions are implemented; tested; and illustrated with several examples.
Dimensional analysis; unit checking; dimensions; error reporting; language design