Principles of Object-Oriented Modeling and Simulation with Modelica 3.3