A dynamical system is a system whose state changes with time. A hybrid system is a dynamical system whose state evolves either by continuous evolution specified by the current mode of the system or by a discrete jump that may change the mode of continuous evolution. In this chapter, we introduce hybrid automata for modeling hybrid systems. For general hybrid automata, the reachability problem, which is central to the analysis of models, is undecidable. There has been extensive research on finding subclasses of hybrid automata which are expressive enough to model real-life systems and at the same time are amenable to analysis. We focus on two such subclasses called rectangular hybrid automata and o-minimal hybrid automata.