@techreport{R-91-38, TITLE = {Transformation of Equation-Based Real-World Models to Efficient Code, Applied to Machine Elements Geometry}, AUTHOR = {Peter Fritzson and Dag Fritzson and Lars Viklund and Johan Herber}, YEAR = {1991}, NUMBER = {R-91-38}, INSTITUTION = ida, ADDRESS = idaaddr, ABSTRACTURL = {/publications/cgi-bin/tr-fetch.pl?r-91-38+abstr}, ABSTRACT = {Software which deals with the real external world usually includes a model of relevant aspects of this world. A high level and concise way of expressing such models is through mathematics - equations and formulae, which can model geometry and other properties. However, software which interacts with the real world, usually real-time software, is very dependent on efficient execution of the code which implements the model. A typical example is a robot arm, where the software must include a computationally efficient model of the arm geometry and surroundings in order to precisely guide the arm movement.In our approach we combine the advantages of both a high level abstract model representation and execution of efficient code. This is achieved by providing symbolic transformations of the model: i.e. to minimize the part which is solved numerically and transform the model into a computationally efficient form. To this end, we have designed and implemented a prototype object-oriented programming environment to support the process. The environment can handle realistic problems, since the user can supply expertise in terms of transformations and simplifications of equations.An essential component in this environment is a modeling and programming language called ObjectMath (Object oriented Mathematical language for scientific computing). It is a hybrid language that combines object oriented language features with a computer algebra language, in this case Mathematica. Using ObjectMath, it is possible to model classes of equation objects, and to support inheritance of equations. Geometrical constraints are expressed through connection objects and coordinate system objects, and through use of parametric surface techniques. When necessary, equations can be transformed to C++ code for efficient numerical solution. A prototype version of the environment is currently being used for an example model of 200 equations describing a rolling bearing in three dimensions.}, IDANR = {LiTH-IDA-R-91-38}, NOTE = {Also in Proceedings of the 1st National Swedish Symposium on Real-Time Systems, Uppsala, August 19-20, 1991}