Principles of Object-Oriented Modeling and Simulation with Modelica 2.1