An Introduction to Bond Graph Modeling with Applications